From 099c040912095b1422743b7954b321cebf730764 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 23 Mar 2026 17:31:51 +0000 Subject: [PATCH 1/9] Initial plan From 11d505819c33be1fc73cc717e3f44453d3230a8a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 23 Mar 2026 18:23:55 +0000 Subject: [PATCH 2/9] Add aw_context input to workflow dispatches (phases 1-4) Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/d7e35112-8128-4ff8-a6f3-615c80cc18fc --- .../agent-performance-analyzer.lock.yml | 9 +- .../workflows/agent-persona-explorer.lock.yml | 9 +- .github/workflows/artifacts-summary.lock.yml | 9 +- .github/workflows/audit-workflows.lock.yml | 9 +- .github/workflows/auto-triage-issues.lock.yml | 9 +- .github/workflows/blog-auditor.lock.yml | 9 +- .github/workflows/bot-detection.lock.yml | 8 +- .../breaking-change-checker.lock.yml | 9 +- .github/workflows/changeset.lock.yml | 11 +- .github/workflows/ci-coach.lock.yml | 8 +- .../claude-code-user-docs-review.lock.yml | 9 +- .../cli-consistency-checker.lock.yml | 8 +- .../workflows/cli-version-checker.lock.yml | 9 +- .../workflows/code-scanning-fixer.lock.yml | 7 +- .github/workflows/code-simplifier.lock.yml | 10 +- .../codex-github-remote-mcp-test.lock.yml | 6 + .../commit-changes-analyzer.lock.yml | 5 + .../constraint-solving-potd.lock.yml | 9 +- .github/workflows/contribution-check.lock.yml | 9 +- .../workflows/copilot-agent-analysis.lock.yml | 9 +- .../copilot-cli-deep-research.lock.yml | 9 +- .../copilot-pr-merged-report.lock.yml | 8 +- .../copilot-pr-nlp-analysis.lock.yml | 8 +- .../copilot-pr-prompt-analysis.lock.yml | 9 +- .../copilot-session-insights.lock.yml | 9 +- .../daily-architecture-diagram.lock.yml | 9 +- .../daily-assign-issue-to-user.lock.yml | 9 +- .github/workflows/daily-choice-test.lock.yml | 8 +- .../workflows/daily-cli-performance.lock.yml | 32 +- .../workflows/daily-cli-tools-tester.lock.yml | 9 +- .github/workflows/daily-code-metrics.lock.yml | 9 +- .../daily-community-attribution.lock.yml | 9 +- .../workflows/daily-compiler-quality.lock.yml | 9 +- .../daily-copilot-token-report.lock.yml | 8 +- .github/workflows/daily-doc-healer.lock.yml | 9 +- .github/workflows/daily-doc-updater.lock.yml | 9 +- .github/workflows/daily-fact.lock.yml | 8 +- .github/workflows/daily-file-diet.lock.yml | 9 +- .../workflows/daily-firewall-report.lock.yml | 9 +- .../workflows/daily-function-namer.lock.yml | 9 +- .../daily-integrity-analysis.lock.yml | 9 +- .../workflows/daily-issues-report.lock.yml | 9 +- .../daily-malicious-code-scan.lock.yml | 9 +- .../daily-mcp-concurrency-analysis.lock.yml | 8 +- .../daily-multi-device-docs-tester.lock.yml | 8 +- .github/workflows/daily-news.lock.yml | 8 +- .../daily-observability-report.lock.yml | 9 +- .../daily-performance-summary.lock.yml | 9 +- .github/workflows/daily-regulatory.lock.yml | 9 +- .../daily-rendering-scripts-verifier.lock.yml | 10 +- .../workflows/daily-repo-chronicle.lock.yml | 8 +- .../daily-safe-output-integrator.lock.yml | 9 +- .../daily-safe-output-optimizer.lock.yml | 10 +- .../daily-safe-outputs-conformance.lock.yml | 9 +- .../workflows/daily-secrets-analysis.lock.yml | 9 +- .../daily-security-red-team.lock.yml | 9 +- .github/workflows/daily-semgrep-scan.lock.yml | 9 +- .../daily-syntax-error-quality.lock.yml | 9 +- .../daily-team-evolution-insights.lock.yml | 9 +- .github/workflows/daily-team-status.lock.yml | 10 +- .../daily-testify-uber-super-expert.lock.yml | 10 +- .../workflows/daily-workflow-updater.lock.yml | 9 +- .github/workflows/dead-code-remover.lock.yml | 10 +- .github/workflows/deep-report.lock.yml | 8 +- .github/workflows/delight.lock.yml | 9 +- .github/workflows/dependabot-burner.lock.yml | 9 +- .../workflows/dependabot-go-checker.lock.yml | 8 +- .github/workflows/dev.lock.yml | 8 +- .../developer-docs-consolidator.lock.yml | 9 +- .github/workflows/dictation-prompt.lock.yml | 8 +- .../workflows/discussion-task-miner.lock.yml | 9 +- .github/workflows/docs-noob-tester.lock.yml | 9 +- .github/workflows/draft-pr-cleanup.lock.yml | 9 +- .../duplicate-code-detector.lock.yml | 9 +- .../example-permissions-warning.lock.yml | 6 + .../example-workflow-analyzer.lock.yml | 9 +- .github/workflows/firewall-escape.lock.yml | 11 +- .github/workflows/firewall.lock.yml | 6 + .../workflows/functional-pragmatist.lock.yml | 8 +- .../github-mcp-structural-analysis.lock.yml | 8 +- .../github-mcp-tools-report.lock.yml | 9 +- .../github-remote-mcp-auth-test.lock.yml | 9 +- .../workflows/glossary-maintainer.lock.yml | 8 +- .github/workflows/go-fan.lock.yml | 8 +- .github/workflows/go-logger.lock.yml | 9 +- .../workflows/go-pattern-detector.lock.yml | 8 +- .github/workflows/gpclean.lock.yml | 9 +- .github/workflows/hourly-ci-cleaner.lock.yml | 8 +- .../workflows/instructions-janitor.lock.yml | 9 +- .github/workflows/issue-arborist.lock.yml | 9 +- .github/workflows/issue-monster.lock.yml | 362 +----------------- .github/workflows/issue-triage-agent.lock.yml | 8 +- .github/workflows/jsweep.lock.yml | 9 +- .../workflows/layout-spec-maintainer.lock.yml | 8 +- .github/workflows/lockfile-stats.lock.yml | 9 +- .github/workflows/mcp-inspector.lock.yml | 9 +- .github/workflows/metrics-collector.lock.yml | 9 +- .../workflows/notion-issue-summary.lock.yml | 5 + .github/workflows/org-health-report.lock.yml | 9 +- .github/workflows/pdf-summary.lock.yml | 5 + .github/workflows/poem-bot.lock.yml | 8 +- .github/workflows/portfolio-analyst.lock.yml | 9 +- .github/workflows/pr-triage-agent.lock.yml | 8 +- .../prompt-clustering-analysis.lock.yml | 9 +- .github/workflows/python-data-charts.lock.yml | 6 + .github/workflows/refiner.lock.yml | 7 +- .github/workflows/release.lock.yml | 8 +- .../workflows/repo-audit-analyzer.lock.yml | 5 + .github/workflows/repo-tree-map.lock.yml | 9 +- .../repository-quality-improver.lock.yml | 8 +- .github/workflows/research.lock.yml | 5 + .github/workflows/safe-output-health.lock.yml | 9 +- .../schema-consistency-checker.lock.yml | 9 +- .../schema-feature-coverage.lock.yml | 9 +- .github/workflows/scout.lock.yml | 9 +- .../workflows/security-compliance.lock.yml | 5 + .../semantic-function-refactor.lock.yml | 9 +- .github/workflows/sergo.lock.yml | 9 +- .../workflows/slide-deck-maintainer.lock.yml | 8 +- .../workflows/smoke-agent-all-merged.lock.yml | 10 +- .../workflows/smoke-agent-all-none.lock.yml | 10 +- .../smoke-agent-public-approved.lock.yml | 10 +- .../smoke-agent-public-none.lock.yml | 10 +- .../smoke-agent-scoped-approved.lock.yml | 10 +- .../workflows/smoke-call-workflow.lock.yml | 8 +- .github/workflows/smoke-claude.lock.yml | 12 +- .github/workflows/smoke-codex.lock.yml | 12 +- .github/workflows/smoke-copilot-arm.lock.yml | 10 +- .github/workflows/smoke-copilot.lock.yml | 7 +- .../smoke-create-cross-repo-pr.lock.yml | 12 +- .github/workflows/smoke-gemini.lock.yml | 12 +- .github/workflows/smoke-multi-pr.lock.yml | 12 +- .github/workflows/smoke-project.lock.yml | 10 +- .github/workflows/smoke-temporary-id.lock.yml | 10 +- .github/workflows/smoke-test-tools.lock.yml | 12 +- .../smoke-update-cross-repo-pr.lock.yml | 12 +- .../smoke-workflow-call-with-inputs.lock.yml | 5 + .../workflows/smoke-workflow-call.lock.yml | 5 + .../workflows/stale-repo-identifier.lock.yml | 7 +- .../workflows/static-analysis-report.lock.yml | 9 +- .../workflows/step-name-alignment.lock.yml | 9 +- .github/workflows/sub-issue-closer.lock.yml | 9 +- .github/workflows/super-linter.lock.yml | 8 +- .../workflows/technical-doc-writer.lock.yml | 5 + .github/workflows/terminal-stylist.lock.yml | 9 +- .../test-create-pr-error-handling.lock.yml | 6 + .github/workflows/test-dispatcher.lock.yml | 11 + .../test-project-url-default.lock.yml | 6 + .github/workflows/test-workflow.lock.yml | 5 + .github/workflows/tidy.lock.yml | 10 +- .github/workflows/typist.lock.yml | 8 +- .../workflows/ubuntu-image-analyzer.lock.yml | 10 +- .github/workflows/unbloat-docs.lock.yml | 10 +- .github/workflows/update-astro.lock.yml | 10 +- .github/workflows/video-analyzer.lock.yml | 5 + .../weekly-blog-post-writer.lock.yml | 9 +- .../weekly-editors-health-check.lock.yml | 9 +- .../workflows/weekly-issue-summary.lock.yml | 8 +- .../weekly-safe-outputs-spec-review.lock.yml | 9 +- .../workflow-health-manager.lock.yml | 9 +- .../workflows/workflow-normalizer.lock.yml | 9 +- .../workflow-skill-extractor.lock.yml | 9 +- actions/setup/js/dispatch_workflow.cjs | 14 + actions/setup/js/dispatch_workflow.test.cjs | 54 ++- actions/setup/js/generate_aw_info.cjs | 13 + pkg/workflow/compiler_yaml.go | 3 + pkg/workflow/dispatch_workflow.go | 89 +++++ pkg/workflow/dispatch_workflow_test.go | 111 ++++++ 168 files changed, 1379 insertions(+), 681 deletions(-) diff --git a/.github/workflows/agent-performance-analyzer.lock.yml b/.github/workflows/agent-performance-analyzer.lock.yml index 206b7cfb618..0dc3a1d9f24 100644 --- a/.github/workflows/agent-performance-analyzer.lock.yml +++ b/.github/workflows/agent-performance-analyzer.lock.yml @@ -31,9 +31,14 @@ name: "Agent Performance Analyzer - Meta-Orchestrator" "on": schedule: - - cron: "18 17 * * *" - # Friendly format: daily (scattered) + - cron: 18 17 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/agent-persona-explorer.lock.yml b/.github/workflows/agent-persona-explorer.lock.yml index d9bfbf17f31..a889f48c9e9 100644 --- a/.github/workflows/agent-persona-explorer.lock.yml +++ b/.github/workflows/agent-persona-explorer.lock.yml @@ -31,9 +31,14 @@ name: "Agent Persona Explorer" "on": schedule: - - cron: "51 0 * * *" - # Friendly format: daily (scattered) + - cron: 51 0 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/artifacts-summary.lock.yml b/.github/workflows/artifacts-summary.lock.yml index 824dfd3b90d..4953664ca0e 100644 --- a/.github/workflows/artifacts-summary.lock.yml +++ b/.github/workflows/artifacts-summary.lock.yml @@ -32,9 +32,14 @@ name: "Artifacts Summary" "on": schedule: - - cron: "33 5 * * 0" - # Friendly format: weekly on sunday around 06:00 (scattered) + - cron: 33 5 * * 0 workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/audit-workflows.lock.yml b/.github/workflows/audit-workflows.lock.yml index 03bca88df02..c5dfe6945d6 100644 --- a/.github/workflows/audit-workflows.lock.yml +++ b/.github/workflows/audit-workflows.lock.yml @@ -33,9 +33,14 @@ name: "Agentic Workflow Audit Agent" "on": schedule: - - cron: "27 5 * * *" - # Friendly format: daily (scattered) + - cron: 27 5 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/auto-triage-issues.lock.yml b/.github/workflows/auto-triage-issues.lock.yml index 6986b2868ba..c36acef3d3f 100644 --- a/.github/workflows/auto-triage-issues.lock.yml +++ b/.github/workflows/auto-triage-issues.lock.yml @@ -35,9 +35,14 @@ name: "Auto-Triage Issues" - opened - edited schedule: - - cron: "12 */6 * * *" - # Friendly format: every 6h (scattered) + - cron: 12 */6 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/blog-auditor.lock.yml b/.github/workflows/blog-auditor.lock.yml index b38abdd7b12..65a34fc0dc6 100644 --- a/.github/workflows/blog-auditor.lock.yml +++ b/.github/workflows/blog-auditor.lock.yml @@ -31,9 +31,14 @@ name: "Blog Auditor" "on": schedule: - - cron: "26 11 * * 3" - # Friendly format: weekly on wednesday around 12:00 (scattered) + - cron: 26 11 * * 3 workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/bot-detection.lock.yml b/.github/workflows/bot-detection.lock.yml index 7ca7f2837a7..1605f0999bb 100644 --- a/.github/workflows/bot-detection.lock.yml +++ b/.github/workflows/bot-detection.lock.yml @@ -27,8 +27,14 @@ name: "Bot Detection" "on": schedule: - - cron: "0 */6 * * *" + - cron: 0 */6 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/breaking-change-checker.lock.yml b/.github/workflows/breaking-change-checker.lock.yml index 821dd7f07fe..56920636871 100644 --- a/.github/workflows/breaking-change-checker.lock.yml +++ b/.github/workflows/breaking-change-checker.lock.yml @@ -32,9 +32,14 @@ name: "Breaking Change Checker" "on": schedule: - - cron: "0 14 * * 1-5" - # skip-if-match: is:issue is:open in:title "[breaking-change]" # Skip-if-match processed as search check in pre-activation job + - cron: 0 14 * * 1-5 workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/changeset.lock.yml b/.github/workflows/changeset.lock.yml index 2518ad6ade4..06938c8a43c 100644 --- a/.github/workflows/changeset.lock.yml +++ b/.github/workflows/changeset.lock.yml @@ -32,12 +32,15 @@ name: "Changeset Generator" "on": pull_request: - # names: # Label filtering applied via job conditions - # - changeset # Label filtering applied via job conditions - # - smoke # Label filtering applied via job conditions types: - labeled - workflow_dispatch: null + workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/ci-coach.lock.yml b/.github/workflows/ci-coach.lock.yml index 0286c430fa0..08caa79d318 100644 --- a/.github/workflows/ci-coach.lock.yml +++ b/.github/workflows/ci-coach.lock.yml @@ -34,8 +34,14 @@ name: "CI Optimization Coach" "on": schedule: - - cron: "0 13 * * 1-5" + - cron: 0 13 * * 1-5 workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/claude-code-user-docs-review.lock.yml b/.github/workflows/claude-code-user-docs-review.lock.yml index 279afb7417f..6fb6198be28 100644 --- a/.github/workflows/claude-code-user-docs-review.lock.yml +++ b/.github/workflows/claude-code-user-docs-review.lock.yml @@ -31,9 +31,14 @@ name: "Claude Code User Documentation Review" "on": schedule: - - cron: "18 22 * * *" - # Friendly format: daily (scattered) + - cron: 18 22 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/cli-consistency-checker.lock.yml b/.github/workflows/cli-consistency-checker.lock.yml index 93b336766fd..533f42e3fd1 100644 --- a/.github/workflows/cli-consistency-checker.lock.yml +++ b/.github/workflows/cli-consistency-checker.lock.yml @@ -27,8 +27,14 @@ name: "CLI Consistency Checker" "on": schedule: - - cron: "0 13 * * 1-5" + - cron: 0 13 * * 1-5 workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/cli-version-checker.lock.yml b/.github/workflows/cli-version-checker.lock.yml index 9eddb612f45..9e4d7155e70 100644 --- a/.github/workflows/cli-version-checker.lock.yml +++ b/.github/workflows/cli-version-checker.lock.yml @@ -32,9 +32,14 @@ name: "CLI Version Checker" "on": schedule: - - cron: "40 9 * * *" - # Friendly format: daily (scattered) + - cron: 40 9 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/code-scanning-fixer.lock.yml b/.github/workflows/code-scanning-fixer.lock.yml index f8eaba7c8f5..991c087716c 100644 --- a/.github/workflows/code-scanning-fixer.lock.yml +++ b/.github/workflows/code-scanning-fixer.lock.yml @@ -30,8 +30,13 @@ name: "Code Scanning Fixer" "on": - # skip-if-match: is:pr is:open in:title "[code-scanning-fix]" # Skip-if-match processed as search check in pre-activation job workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/code-simplifier.lock.yml b/.github/workflows/code-simplifier.lock.yml index a36e135b197..6dac23aef24 100644 --- a/.github/workflows/code-simplifier.lock.yml +++ b/.github/workflows/code-simplifier.lock.yml @@ -32,10 +32,14 @@ name: "Code Simplifier" "on": schedule: - - cron: "35 18 * * *" - # Friendly format: daily (scattered) - # skip-if-match: is:pr is:open in:title "[code-simplifier]" # Skip-if-match processed as search check in pre-activation job + - cron: 35 18 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/codex-github-remote-mcp-test.lock.yml b/.github/workflows/codex-github-remote-mcp-test.lock.yml index f01f64117d8..3a2e02d501c 100644 --- a/.github/workflows/codex-github-remote-mcp-test.lock.yml +++ b/.github/workflows/codex-github-remote-mcp-test.lock.yml @@ -27,6 +27,12 @@ name: "Codex GitHub Remote MCP Test" "on": workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/commit-changes-analyzer.lock.yml b/.github/workflows/commit-changes-analyzer.lock.yml index e9e42b3170e..525c39c412b 100644 --- a/.github/workflows/commit-changes-analyzer.lock.yml +++ b/.github/workflows/commit-changes-analyzer.lock.yml @@ -32,6 +32,11 @@ name: "Commit Changes Analyzer" "on": workflow_dispatch: inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string commit_url: description: GitHub commit URL to analyze changes since (e.g., https://github.com/owner/repo/commit/abc123) required: true diff --git a/.github/workflows/constraint-solving-potd.lock.yml b/.github/workflows/constraint-solving-potd.lock.yml index d4df030ce06..a7f2ac2cab8 100644 --- a/.github/workflows/constraint-solving-potd.lock.yml +++ b/.github/workflows/constraint-solving-potd.lock.yml @@ -26,9 +26,14 @@ name: "Constraint Solving — Problem of the Day" "on": schedule: - - cron: "47 13 * * *" - # Friendly format: daily (scattered) + - cron: 47 13 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/contribution-check.lock.yml b/.github/workflows/contribution-check.lock.yml index ca354ca1add..4bbc37ff56a 100644 --- a/.github/workflows/contribution-check.lock.yml +++ b/.github/workflows/contribution-check.lock.yml @@ -26,9 +26,14 @@ name: "Contribution Check" "on": schedule: - - cron: "54 */4 * * *" - # Friendly format: every 4 hours (scattered) + - cron: 54 */4 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/copilot-agent-analysis.lock.yml b/.github/workflows/copilot-agent-analysis.lock.yml index 52649ab241c..f8f5fe5c943 100644 --- a/.github/workflows/copilot-agent-analysis.lock.yml +++ b/.github/workflows/copilot-agent-analysis.lock.yml @@ -34,9 +34,14 @@ name: "Copilot Agent PR Analysis" "on": schedule: - - cron: "24 20 * * *" - # Friendly format: daily (scattered) + - cron: 24 20 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/copilot-cli-deep-research.lock.yml b/.github/workflows/copilot-cli-deep-research.lock.yml index ed0ae439da7..3561b720fe5 100644 --- a/.github/workflows/copilot-cli-deep-research.lock.yml +++ b/.github/workflows/copilot-cli-deep-research.lock.yml @@ -31,9 +31,14 @@ name: "Copilot CLI Deep Research Agent" "on": schedule: - - cron: "5 21 * * *" - # Friendly format: daily (scattered) + - cron: 5 21 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/copilot-pr-merged-report.lock.yml b/.github/workflows/copilot-pr-merged-report.lock.yml index a04c0fe8f64..84ffa400c95 100644 --- a/.github/workflows/copilot-pr-merged-report.lock.yml +++ b/.github/workflows/copilot-pr-merged-report.lock.yml @@ -35,8 +35,14 @@ name: "Daily Copilot PR Merged Report" "on": schedule: - - cron: "0 15 * * 1-5" + - cron: 0 15 * * 1-5 workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/copilot-pr-nlp-analysis.lock.yml b/.github/workflows/copilot-pr-nlp-analysis.lock.yml index 6feaa373f84..bb3a3d67c07 100644 --- a/.github/workflows/copilot-pr-nlp-analysis.lock.yml +++ b/.github/workflows/copilot-pr-nlp-analysis.lock.yml @@ -36,8 +36,14 @@ name: "Copilot PR Conversation NLP Analysis" "on": schedule: - - cron: "0 10 * * 1-5" + - cron: 0 10 * * 1-5 workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/copilot-pr-prompt-analysis.lock.yml b/.github/workflows/copilot-pr-prompt-analysis.lock.yml index 294f8df20df..5f8b50af529 100644 --- a/.github/workflows/copilot-pr-prompt-analysis.lock.yml +++ b/.github/workflows/copilot-pr-prompt-analysis.lock.yml @@ -34,9 +34,14 @@ name: "Copilot PR Prompt Pattern Analysis" "on": schedule: - - cron: "26 4 * * *" - # Friendly format: daily (scattered) + - cron: 26 4 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/copilot-session-insights.lock.yml b/.github/workflows/copilot-session-insights.lock.yml index 3c215a13761..8af19417c7f 100644 --- a/.github/workflows/copilot-session-insights.lock.yml +++ b/.github/workflows/copilot-session-insights.lock.yml @@ -36,9 +36,14 @@ name: "Copilot Session Insights" "on": schedule: - - cron: "12 22 * * *" - # Friendly format: daily (scattered) + - cron: 12 22 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-architecture-diagram.lock.yml b/.github/workflows/daily-architecture-diagram.lock.yml index fe31810a5b9..b6416bbb28b 100644 --- a/.github/workflows/daily-architecture-diagram.lock.yml +++ b/.github/workflows/daily-architecture-diagram.lock.yml @@ -31,9 +31,14 @@ name: "Architecture Diagram Generator" "on": schedule: - - cron: "38 8 * * *" - # Friendly format: daily around 08:00 (scattered) + - cron: 38 8 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-assign-issue-to-user.lock.yml b/.github/workflows/daily-assign-issue-to-user.lock.yml index 0222fe96263..daddd2f8a7c 100644 --- a/.github/workflows/daily-assign-issue-to-user.lock.yml +++ b/.github/workflows/daily-assign-issue-to-user.lock.yml @@ -26,9 +26,14 @@ name: "Auto-Assign Issue" "on": schedule: - - cron: "40 15 * * *" - # Friendly format: daily (scattered) + - cron: 40 15 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-choice-test.lock.yml b/.github/workflows/daily-choice-test.lock.yml index 7e6eb6ed2a9..377a0c90fbc 100644 --- a/.github/workflows/daily-choice-test.lock.yml +++ b/.github/workflows/daily-choice-test.lock.yml @@ -27,8 +27,14 @@ name: "Daily Choice Type Test" "on": schedule: - - cron: "0 12 * * 1-5" + - cron: 0 12 * * 1-5 workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-cli-performance.lock.yml b/.github/workflows/daily-cli-performance.lock.yml index c7b84ee4d15..c2467c801d7 100644 --- a/.github/workflows/daily-cli-performance.lock.yml +++ b/.github/workflows/daily-cli-performance.lock.yml @@ -31,33 +31,15 @@ name: "Daily CLI Performance Agent" "on": - # permissions: # Permissions applied to pre-activation job - # contents: read schedule: - - cron: "20 14 * * *" - # Friendly format: daily (scattered) - # steps: # Steps injected into pre-activation job - # - id: changes - # name: Detect recent compilation-related changes - # uses: actions/github-script@v8 - # with: - # script: | - # const { owner, repo } = context.repo; - # const since = new Date(Date.now() - 24 * 60 * 60 * 1000).toISOString(); - # // Check commits touching Go source, go.mod/go.sum, or Makefile in last 24h - # const checkPaths = ['go.mod', 'go.sum', 'Makefile', 'pkg', 'cmd']; - # let hasChanges = false; - # for (const path of checkPaths) { - # const resp = await github.rest.repos.listCommits({ owner, repo, since, path, per_page: 1 }); - # if (resp.data.length > 0) { - # core.info(`Found recent compilation-related change via path: ${path}`); - # hasChanges = true; - # break; - # } - # } - # core.info(`has_changes=${hasChanges}`); - # core.setOutput('has_changes', hasChanges ? 'true' : 'false'); + - cron: 20 14 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-cli-tools-tester.lock.yml b/.github/workflows/daily-cli-tools-tester.lock.yml index 0028b9652a3..f3c0d4d18c3 100644 --- a/.github/workflows/daily-cli-tools-tester.lock.yml +++ b/.github/workflows/daily-cli-tools-tester.lock.yml @@ -31,9 +31,14 @@ name: "Daily CLI Tools Exploratory Tester" "on": schedule: - - cron: "39 23 * * *" - # Friendly format: daily (scattered) + - cron: 39 23 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-code-metrics.lock.yml b/.github/workflows/daily-code-metrics.lock.yml index 77fd9f81c30..1e56eb242bf 100644 --- a/.github/workflows/daily-code-metrics.lock.yml +++ b/.github/workflows/daily-code-metrics.lock.yml @@ -33,9 +33,14 @@ name: "Daily Code Metrics and Trend Tracking Agent" "on": schedule: - - cron: "24 11 * * *" - # Friendly format: daily (scattered) + - cron: 24 11 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-community-attribution.lock.yml b/.github/workflows/daily-community-attribution.lock.yml index 8a1f45b6d69..21857706d8e 100644 --- a/.github/workflows/daily-community-attribution.lock.yml +++ b/.github/workflows/daily-community-attribution.lock.yml @@ -31,9 +31,14 @@ name: "Daily Community Attribution Updater" "on": schedule: - - cron: "32 13 * * *" - # Friendly format: daily (scattered) + - cron: 32 13 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-compiler-quality.lock.yml b/.github/workflows/daily-compiler-quality.lock.yml index 5a86aba4562..4fd290c0d17 100644 --- a/.github/workflows/daily-compiler-quality.lock.yml +++ b/.github/workflows/daily-compiler-quality.lock.yml @@ -32,9 +32,14 @@ name: "Daily Compiler Quality Check" "on": schedule: - - cron: "0 0 * * *" - # Friendly format: daily (scattered) + - cron: 0 0 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-copilot-token-report.lock.yml b/.github/workflows/daily-copilot-token-report.lock.yml index 9e6657e68d5..b9ee7416547 100644 --- a/.github/workflows/daily-copilot-token-report.lock.yml +++ b/.github/workflows/daily-copilot-token-report.lock.yml @@ -33,8 +33,14 @@ name: "Daily Copilot Token Consumption Report" "on": schedule: - - cron: "0 11 * * 1-5" + - cron: 0 11 * * 1-5 workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-doc-healer.lock.yml b/.github/workflows/daily-doc-healer.lock.yml index 76c48c5eb26..5ccd9830d85 100644 --- a/.github/workflows/daily-doc-healer.lock.yml +++ b/.github/workflows/daily-doc-healer.lock.yml @@ -32,9 +32,14 @@ name: "Daily Documentation Healer" "on": schedule: - - cron: "59 18 * * *" - # Friendly format: daily (scattered) + - cron: 59 18 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-doc-updater.lock.yml b/.github/workflows/daily-doc-updater.lock.yml index 44cd75243c8..0cbf69e97da 100644 --- a/.github/workflows/daily-doc-updater.lock.yml +++ b/.github/workflows/daily-doc-updater.lock.yml @@ -31,9 +31,14 @@ name: "Daily Documentation Updater" "on": schedule: - - cron: "33 3 * * *" - # Friendly format: daily (scattered) + - cron: 33 3 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-fact.lock.yml b/.github/workflows/daily-fact.lock.yml index 7c2f54ff5cf..aeac810c308 100644 --- a/.github/workflows/daily-fact.lock.yml +++ b/.github/workflows/daily-fact.lock.yml @@ -29,8 +29,14 @@ name: "Daily Fact About gh-aw" "on": schedule: - - cron: "0 11 * * 1-5" + - cron: 0 11 * * 1-5 workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-file-diet.lock.yml b/.github/workflows/daily-file-diet.lock.yml index 55071277c76..ac860218905 100644 --- a/.github/workflows/daily-file-diet.lock.yml +++ b/.github/workflows/daily-file-diet.lock.yml @@ -34,9 +34,14 @@ name: "Daily File Diet" "on": schedule: - - cron: "0 13 * * 1-5" - # skip-if-match: is:issue is:open in:title "[file-diet]" # Skip-if-match processed as search check in pre-activation job + - cron: 0 13 * * 1-5 workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-firewall-report.lock.yml b/.github/workflows/daily-firewall-report.lock.yml index bd03df7598d..b9eb4e64fd5 100644 --- a/.github/workflows/daily-firewall-report.lock.yml +++ b/.github/workflows/daily-firewall-report.lock.yml @@ -32,9 +32,14 @@ name: "Daily Firewall Logs Collector and Reporter" "on": schedule: - - cron: "32 0 * * *" - # Friendly format: daily (scattered) + - cron: 32 0 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-function-namer.lock.yml b/.github/workflows/daily-function-namer.lock.yml index 50ab1bdb32d..911d57df18f 100644 --- a/.github/workflows/daily-function-namer.lock.yml +++ b/.github/workflows/daily-function-namer.lock.yml @@ -32,9 +32,14 @@ name: "Daily Go Function Namer" "on": schedule: - - cron: "17 0 * * *" - # Friendly format: daily (scattered) + - cron: 17 0 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-integrity-analysis.lock.yml b/.github/workflows/daily-integrity-analysis.lock.yml index 860db047cae..a65a0461b91 100644 --- a/.github/workflows/daily-integrity-analysis.lock.yml +++ b/.github/workflows/daily-integrity-analysis.lock.yml @@ -32,9 +32,14 @@ name: "Daily DIFC Integrity-Filtered Events Analyzer" "on": schedule: - - cron: "19 8 * * *" - # Friendly format: daily (scattered) + - cron: 19 8 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-issues-report.lock.yml b/.github/workflows/daily-issues-report.lock.yml index 6596924e3d7..343bce588a3 100644 --- a/.github/workflows/daily-issues-report.lock.yml +++ b/.github/workflows/daily-issues-report.lock.yml @@ -36,9 +36,14 @@ name: "Daily Issues Report Generator" "on": schedule: - - cron: "20 1 * * *" - # Friendly format: daily (scattered) + - cron: 20 1 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-malicious-code-scan.lock.yml b/.github/workflows/daily-malicious-code-scan.lock.yml index f6b04c85b25..f6e1c57fab2 100644 --- a/.github/workflows/daily-malicious-code-scan.lock.yml +++ b/.github/workflows/daily-malicious-code-scan.lock.yml @@ -31,9 +31,14 @@ name: "Daily Malicious Code Scan Agent" "on": schedule: - - cron: "49 7 * * *" - # Friendly format: daily (scattered) + - cron: 49 7 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-mcp-concurrency-analysis.lock.yml b/.github/workflows/daily-mcp-concurrency-analysis.lock.yml index f634bda1c94..3d8e402d43f 100644 --- a/.github/workflows/daily-mcp-concurrency-analysis.lock.yml +++ b/.github/workflows/daily-mcp-concurrency-analysis.lock.yml @@ -32,8 +32,14 @@ name: "Daily MCP Tool Concurrency Analysis" "on": schedule: - - cron: "0 9 * * 1-5" + - cron: 0 9 * * 1-5 workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-multi-device-docs-tester.lock.yml b/.github/workflows/daily-multi-device-docs-tester.lock.yml index 5388a7db8c3..9fae8ae2464 100644 --- a/.github/workflows/daily-multi-device-docs-tester.lock.yml +++ b/.github/workflows/daily-multi-device-docs-tester.lock.yml @@ -32,10 +32,14 @@ name: "Multi-Device Docs Tester" "on": schedule: - - cron: "41 1 * * *" - # Friendly format: daily (scattered) + - cron: 41 1 * * * workflow_dispatch: inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string devices: default: mobile,tablet,desktop description: "Device types to test (comma-separated: mobile,tablet,desktop)" diff --git a/.github/workflows/daily-news.lock.yml b/.github/workflows/daily-news.lock.yml index 01480c98700..360149a79f3 100644 --- a/.github/workflows/daily-news.lock.yml +++ b/.github/workflows/daily-news.lock.yml @@ -35,8 +35,14 @@ name: "Daily News" "on": schedule: - - cron: "0 9 * * 1-5" + - cron: 0 9 * * 1-5 workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-observability-report.lock.yml b/.github/workflows/daily-observability-report.lock.yml index 23e1c9c9d30..70f5a3491bb 100644 --- a/.github/workflows/daily-observability-report.lock.yml +++ b/.github/workflows/daily-observability-report.lock.yml @@ -31,9 +31,14 @@ name: "Daily Observability Report for AWF Firewall and MCP Gateway" "on": schedule: - - cron: "29 7 * * *" - # Friendly format: daily (scattered) + - cron: 29 7 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-performance-summary.lock.yml b/.github/workflows/daily-performance-summary.lock.yml index 038aacc5c89..16e53e72d26 100644 --- a/.github/workflows/daily-performance-summary.lock.yml +++ b/.github/workflows/daily-performance-summary.lock.yml @@ -33,9 +33,14 @@ name: "Daily Project Performance Summary Generator (Using MCP Scripts)" "on": schedule: - - cron: "26 19 * * *" - # Friendly format: daily (scattered) + - cron: 26 19 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-regulatory.lock.yml b/.github/workflows/daily-regulatory.lock.yml index 9b358bad44b..e9fdf1234b2 100644 --- a/.github/workflows/daily-regulatory.lock.yml +++ b/.github/workflows/daily-regulatory.lock.yml @@ -32,9 +32,14 @@ name: "Daily Regulatory Report Generator" "on": schedule: - - cron: "57 19 * * *" - # Friendly format: daily (scattered) + - cron: 57 19 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-rendering-scripts-verifier.lock.yml b/.github/workflows/daily-rendering-scripts-verifier.lock.yml index 8e68f49ce6c..b5bb65225a0 100644 --- a/.github/workflows/daily-rendering-scripts-verifier.lock.yml +++ b/.github/workflows/daily-rendering-scripts-verifier.lock.yml @@ -32,10 +32,14 @@ name: "Daily Rendering Scripts Verifier" "on": schedule: - - cron: "13 11 * * *" - # Friendly format: daily (scattered) - # skip-if-match: is:pr is:open in:title "[rendering-scripts]" # Skip-if-match processed as search check in pre-activation job + - cron: 13 11 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-repo-chronicle.lock.yml b/.github/workflows/daily-repo-chronicle.lock.yml index aeeb26df63d..b218da8357f 100644 --- a/.github/workflows/daily-repo-chronicle.lock.yml +++ b/.github/workflows/daily-repo-chronicle.lock.yml @@ -33,8 +33,14 @@ name: "The Daily Repository Chronicle" "on": schedule: - - cron: "0 16 * * 1-5" + - cron: 0 16 * * 1-5 workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-safe-output-integrator.lock.yml b/.github/workflows/daily-safe-output-integrator.lock.yml index 0615aadcc44..8501d0caad9 100644 --- a/.github/workflows/daily-safe-output-integrator.lock.yml +++ b/.github/workflows/daily-safe-output-integrator.lock.yml @@ -31,9 +31,14 @@ name: "Daily Safe Output Integrator" "on": schedule: - - cron: "24 16 * * *" - # Friendly format: daily (scattered) + - cron: 24 16 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-safe-output-optimizer.lock.yml b/.github/workflows/daily-safe-output-optimizer.lock.yml index 124ebb4d30a..6f274ad3398 100644 --- a/.github/workflows/daily-safe-output-optimizer.lock.yml +++ b/.github/workflows/daily-safe-output-optimizer.lock.yml @@ -33,10 +33,14 @@ name: "Daily Safe Output Tool Optimizer" "on": schedule: - - cron: "26 15 * * *" - # Friendly format: daily (scattered) - # skip-if-match: is:issue is:open in:title "[safeoutputs]" # Skip-if-match processed as search check in pre-activation job + - cron: 26 15 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-safe-outputs-conformance.lock.yml b/.github/workflows/daily-safe-outputs-conformance.lock.yml index 5dd435d53a6..4258604c74d 100644 --- a/.github/workflows/daily-safe-outputs-conformance.lock.yml +++ b/.github/workflows/daily-safe-outputs-conformance.lock.yml @@ -31,9 +31,14 @@ name: "Daily Safe Outputs Conformance Checker" "on": schedule: - - cron: "41 16 * * *" - # Friendly format: daily (scattered) + - cron: 41 16 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-secrets-analysis.lock.yml b/.github/workflows/daily-secrets-analysis.lock.yml index f22c5996fba..661a4e87976 100644 --- a/.github/workflows/daily-secrets-analysis.lock.yml +++ b/.github/workflows/daily-secrets-analysis.lock.yml @@ -31,9 +31,14 @@ name: "Daily Secrets Analysis Agent" "on": schedule: - - cron: "53 19 * * *" - # Friendly format: daily (scattered) + - cron: 53 19 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-security-red-team.lock.yml b/.github/workflows/daily-security-red-team.lock.yml index 60650230dc0..8848b862c63 100644 --- a/.github/workflows/daily-security-red-team.lock.yml +++ b/.github/workflows/daily-security-red-team.lock.yml @@ -31,9 +31,14 @@ name: "Daily Security Red Team Agent" "on": schedule: - - cron: "29 14 * * *" - # Friendly format: daily (scattered) + - cron: 29 14 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-semgrep-scan.lock.yml b/.github/workflows/daily-semgrep-scan.lock.yml index 9fbff221d35..2ebe23d32ba 100644 --- a/.github/workflows/daily-semgrep-scan.lock.yml +++ b/.github/workflows/daily-semgrep-scan.lock.yml @@ -31,9 +31,14 @@ name: "Daily Semgrep Scan" "on": schedule: - - cron: "6 11 * * *" - # Friendly format: daily (scattered) + - cron: 6 11 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-syntax-error-quality.lock.yml b/.github/workflows/daily-syntax-error-quality.lock.yml index 3c6d3c726e2..757415dd92c 100644 --- a/.github/workflows/daily-syntax-error-quality.lock.yml +++ b/.github/workflows/daily-syntax-error-quality.lock.yml @@ -31,9 +31,14 @@ name: "Daily Syntax Error Quality Check" "on": schedule: - - cron: "43 17 * * *" - # Friendly format: daily (scattered) + - cron: 43 17 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-team-evolution-insights.lock.yml b/.github/workflows/daily-team-evolution-insights.lock.yml index 0b83074f382..544cb00837f 100644 --- a/.github/workflows/daily-team-evolution-insights.lock.yml +++ b/.github/workflows/daily-team-evolution-insights.lock.yml @@ -31,9 +31,14 @@ name: "Daily Team Evolution Insights" "on": schedule: - - cron: "56 15 * * *" - # Friendly format: daily (scattered) + - cron: 56 15 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-team-status.lock.yml b/.github/workflows/daily-team-status.lock.yml index 821b33bf2fe..66c868bd7a6 100644 --- a/.github/workflows/daily-team-status.lock.yml +++ b/.github/workflows/daily-team-status.lock.yml @@ -39,8 +39,14 @@ name: "Daily Team Status" "on": schedule: - - cron: "0 9 * * 1-5" - workflow_dispatch: null + - cron: 0 9 * * 1-5 + workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-testify-uber-super-expert.lock.yml b/.github/workflows/daily-testify-uber-super-expert.lock.yml index 01d5ff226cd..9b6ee90a055 100644 --- a/.github/workflows/daily-testify-uber-super-expert.lock.yml +++ b/.github/workflows/daily-testify-uber-super-expert.lock.yml @@ -34,10 +34,14 @@ name: "Daily Testify Uber Super Expert" "on": schedule: - - cron: "53 14 * * *" - # Friendly format: daily (scattered) - # skip-if-match: is:issue is:open in:title "[testify-expert]" # Skip-if-match processed as search check in pre-activation job + - cron: 53 14 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-workflow-updater.lock.yml b/.github/workflows/daily-workflow-updater.lock.yml index f11002a70a7..4c698f84cfb 100644 --- a/.github/workflows/daily-workflow-updater.lock.yml +++ b/.github/workflows/daily-workflow-updater.lock.yml @@ -27,9 +27,14 @@ name: "Daily Workflow Updater" "on": schedule: - - cron: "12 9 * * *" - # Friendly format: daily (scattered) + - cron: 12 9 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/dead-code-remover.lock.yml b/.github/workflows/dead-code-remover.lock.yml index 4868676f8b0..8d19834eb9c 100644 --- a/.github/workflows/dead-code-remover.lock.yml +++ b/.github/workflows/dead-code-remover.lock.yml @@ -31,10 +31,14 @@ name: "Dead Code Removal Agent" "on": schedule: - - cron: "50 17 * * *" - # Friendly format: daily (scattered) - # skip-if-match: is:pr is:open in:title "[dead-code] " # Skip-if-match processed as search check in pre-activation job + - cron: 50 17 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/deep-report.lock.yml b/.github/workflows/deep-report.lock.yml index 672fe097d8f..ecbce59ba2a 100644 --- a/.github/workflows/deep-report.lock.yml +++ b/.github/workflows/deep-report.lock.yml @@ -34,8 +34,14 @@ name: "DeepReport - Intelligence Gathering Agent" "on": schedule: - - cron: "0 15 * * 1-5" + - cron: 0 15 * * 1-5 workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/delight.lock.yml b/.github/workflows/delight.lock.yml index 0995fcad3a7..b0dfbae6cf6 100644 --- a/.github/workflows/delight.lock.yml +++ b/.github/workflows/delight.lock.yml @@ -32,9 +32,14 @@ name: "Delight" "on": schedule: - - cron: "20 11 * * *" - # Friendly format: daily (scattered) + - cron: 20 11 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/dependabot-burner.lock.yml b/.github/workflows/dependabot-burner.lock.yml index 71b0b94af40..9448e9127f5 100644 --- a/.github/workflows/dependabot-burner.lock.yml +++ b/.github/workflows/dependabot-burner.lock.yml @@ -30,9 +30,14 @@ name: "Dependabot Burner" "on": schedule: - - cron: "42 7 * * 1" - # Friendly format: weekly (scattered) + - cron: 42 7 * * 1 workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/dependabot-go-checker.lock.yml b/.github/workflows/dependabot-go-checker.lock.yml index 3420d91eacc..3ba35c40e83 100644 --- a/.github/workflows/dependabot-go-checker.lock.yml +++ b/.github/workflows/dependabot-go-checker.lock.yml @@ -31,8 +31,14 @@ name: "Dependabot Dependency Checker" "on": schedule: - - cron: "0 9 * * 1,3,5" + - cron: 0 9 * * 1,3,5 workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/dev.lock.yml b/.github/workflows/dev.lock.yml index 103f8e0392f..417ca6246f2 100644 --- a/.github/workflows/dev.lock.yml +++ b/.github/workflows/dev.lock.yml @@ -27,8 +27,14 @@ name: "Dev" "on": schedule: - - cron: "0 9 * * *" + - cron: 0 9 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/developer-docs-consolidator.lock.yml b/.github/workflows/developer-docs-consolidator.lock.yml index 66331289a95..d0bb6c87a55 100644 --- a/.github/workflows/developer-docs-consolidator.lock.yml +++ b/.github/workflows/developer-docs-consolidator.lock.yml @@ -33,9 +33,14 @@ name: "Developer Documentation Consolidator" "on": schedule: - - cron: "49 23 * * *" - # Friendly format: daily (scattered) + - cron: 49 23 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/dictation-prompt.lock.yml b/.github/workflows/dictation-prompt.lock.yml index d13ffb0b0c8..9da5ccf436c 100644 --- a/.github/workflows/dictation-prompt.lock.yml +++ b/.github/workflows/dictation-prompt.lock.yml @@ -32,8 +32,14 @@ name: "Dictation Prompt Generator" "on": schedule: - - cron: "0 6 * * 0" + - cron: 0 6 * * 0 workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/discussion-task-miner.lock.yml b/.github/workflows/discussion-task-miner.lock.yml index 4a13c6f74aa..24e9be4ed34 100644 --- a/.github/workflows/discussion-task-miner.lock.yml +++ b/.github/workflows/discussion-task-miner.lock.yml @@ -32,9 +32,14 @@ name: "Discussion Task Miner - Code Quality Improvement Agent" "on": schedule: - - cron: "55 */6 * * *" - # Friendly format: every 6h (scattered) + - cron: 55 */6 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/docs-noob-tester.lock.yml b/.github/workflows/docs-noob-tester.lock.yml index f10b8cf5a18..969f58cf6de 100644 --- a/.github/workflows/docs-noob-tester.lock.yml +++ b/.github/workflows/docs-noob-tester.lock.yml @@ -32,9 +32,14 @@ name: "Documentation Noob Tester" "on": schedule: - - cron: "35 7 * * *" - # Friendly format: daily (scattered) + - cron: 35 7 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/draft-pr-cleanup.lock.yml b/.github/workflows/draft-pr-cleanup.lock.yml index 3f867c866cd..0687f6a4f47 100644 --- a/.github/workflows/draft-pr-cleanup.lock.yml +++ b/.github/workflows/draft-pr-cleanup.lock.yml @@ -27,9 +27,14 @@ name: "Draft PR Cleanup" "on": schedule: - - cron: "16 12 * * *" - # Friendly format: daily (scattered) + - cron: 16 12 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/duplicate-code-detector.lock.yml b/.github/workflows/duplicate-code-detector.lock.yml index 0816186a45f..3c5e40db54a 100644 --- a/.github/workflows/duplicate-code-detector.lock.yml +++ b/.github/workflows/duplicate-code-detector.lock.yml @@ -32,9 +32,14 @@ name: "Duplicate Code Detector" "on": schedule: - - cron: "9 3 * * *" - # Friendly format: daily (scattered) + - cron: 9 3 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/example-permissions-warning.lock.yml b/.github/workflows/example-permissions-warning.lock.yml index 46b3fc49fbc..69e60a814ca 100644 --- a/.github/workflows/example-permissions-warning.lock.yml +++ b/.github/workflows/example-permissions-warning.lock.yml @@ -27,6 +27,12 @@ name: "Example: Properly Provisioned Permissions" "on": workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/example-workflow-analyzer.lock.yml b/.github/workflows/example-workflow-analyzer.lock.yml index 5581dbf8182..4dc2dbdcdbf 100644 --- a/.github/workflows/example-workflow-analyzer.lock.yml +++ b/.github/workflows/example-workflow-analyzer.lock.yml @@ -31,9 +31,14 @@ name: "Weekly Workflow Analysis" "on": schedule: - - cron: "12 9 * * 1" - # Friendly format: weekly on monday around 09:00 (scattered) + - cron: 12 9 * * 1 workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/firewall-escape.lock.yml b/.github/workflows/firewall-escape.lock.yml index d701e04f4ce..0f61ce71495 100644 --- a/.github/workflows/firewall-escape.lock.yml +++ b/.github/workflows/firewall-escape.lock.yml @@ -27,14 +27,17 @@ name: "The Great Escapi" "on": pull_request: - # names: # Label filtering applied via job conditions - # - firewall-escape-test # Label filtering applied via job conditions types: - labeled schedule: - - cron: "7 17 * * *" - # Friendly format: daily (scattered) + - cron: 7 17 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/firewall.lock.yml b/.github/workflows/firewall.lock.yml index 571bd6afa8b..ec73469bb41 100644 --- a/.github/workflows/firewall.lock.yml +++ b/.github/workflows/firewall.lock.yml @@ -27,6 +27,12 @@ name: "Firewall Test Agent" "on": workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/functional-pragmatist.lock.yml b/.github/workflows/functional-pragmatist.lock.yml index f134e0a735f..8719baf2f42 100644 --- a/.github/workflows/functional-pragmatist.lock.yml +++ b/.github/workflows/functional-pragmatist.lock.yml @@ -31,8 +31,14 @@ name: "Functional Pragmatist" "on": schedule: - - cron: "0 9 * * 2,4" + - cron: 0 9 * * 2,4 workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/github-mcp-structural-analysis.lock.yml b/.github/workflows/github-mcp-structural-analysis.lock.yml index 7bd25d9b8ed..d31431b0c68 100644 --- a/.github/workflows/github-mcp-structural-analysis.lock.yml +++ b/.github/workflows/github-mcp-structural-analysis.lock.yml @@ -32,8 +32,14 @@ name: "GitHub MCP Structural Analysis" "on": schedule: - - cron: "0 11 * * 1-5" + - cron: 0 11 * * 1-5 workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/github-mcp-tools-report.lock.yml b/.github/workflows/github-mcp-tools-report.lock.yml index d48f5129c01..536c9580ca3 100644 --- a/.github/workflows/github-mcp-tools-report.lock.yml +++ b/.github/workflows/github-mcp-tools-report.lock.yml @@ -31,9 +31,14 @@ name: "GitHub MCP Remote Server Tools Report Generator" "on": schedule: - - cron: "20 12 * * 0" - # Friendly format: weekly on sunday around 12:00 (scattered) + - cron: 20 12 * * 0 workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/github-remote-mcp-auth-test.lock.yml b/.github/workflows/github-remote-mcp-auth-test.lock.yml index 854ec9668e4..9b216c3e44e 100644 --- a/.github/workflows/github-remote-mcp-auth-test.lock.yml +++ b/.github/workflows/github-remote-mcp-auth-test.lock.yml @@ -27,9 +27,14 @@ name: "GitHub Remote MCP Authentication Test" "on": schedule: - - cron: "40 4 * * *" - # Friendly format: daily (scattered) + - cron: 40 4 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/glossary-maintainer.lock.yml b/.github/workflows/glossary-maintainer.lock.yml index 91890eaeede..3f4afe19f0a 100644 --- a/.github/workflows/glossary-maintainer.lock.yml +++ b/.github/workflows/glossary-maintainer.lock.yml @@ -34,8 +34,14 @@ name: "Glossary Maintainer" "on": schedule: - - cron: "0 10 * * 1-5" + - cron: 0 10 * * 1-5 workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/go-fan.lock.yml b/.github/workflows/go-fan.lock.yml index 9d53e50281c..c074cebdcc7 100644 --- a/.github/workflows/go-fan.lock.yml +++ b/.github/workflows/go-fan.lock.yml @@ -32,8 +32,14 @@ name: "Go Fan" "on": schedule: - - cron: "0 7 * * 1-5" + - cron: 0 7 * * 1-5 workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/go-logger.lock.yml b/.github/workflows/go-logger.lock.yml index 9534558f3f1..d9c6b1daf34 100644 --- a/.github/workflows/go-logger.lock.yml +++ b/.github/workflows/go-logger.lock.yml @@ -31,9 +31,14 @@ name: "Go Logger Enhancement" "on": schedule: - - cron: "4 20 * * *" - # Friendly format: daily (scattered) + - cron: 4 20 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/go-pattern-detector.lock.yml b/.github/workflows/go-pattern-detector.lock.yml index 67a26584059..84f0b8eee63 100644 --- a/.github/workflows/go-pattern-detector.lock.yml +++ b/.github/workflows/go-pattern-detector.lock.yml @@ -32,8 +32,14 @@ name: "Go Pattern Detector" "on": schedule: - - cron: "0 14 * * 1-5" + - cron: 0 14 * * 1-5 workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/gpclean.lock.yml b/.github/workflows/gpclean.lock.yml index 90c489967d4..632f1d02c63 100644 --- a/.github/workflows/gpclean.lock.yml +++ b/.github/workflows/gpclean.lock.yml @@ -31,9 +31,14 @@ name: "GPL Dependency Cleaner (gpclean)" "on": schedule: - - cron: "35 1 * * *" - # Friendly format: daily (scattered) + - cron: 35 1 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/hourly-ci-cleaner.lock.yml b/.github/workflows/hourly-ci-cleaner.lock.yml index 3cf64731a3f..4c94523bef6 100644 --- a/.github/workflows/hourly-ci-cleaner.lock.yml +++ b/.github/workflows/hourly-ci-cleaner.lock.yml @@ -31,8 +31,14 @@ name: "CI Cleaner" "on": schedule: - - cron: "0 6,18 * * *" + - cron: 0 6,18 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/instructions-janitor.lock.yml b/.github/workflows/instructions-janitor.lock.yml index 2b34e12159e..e638d798660 100644 --- a/.github/workflows/instructions-janitor.lock.yml +++ b/.github/workflows/instructions-janitor.lock.yml @@ -27,9 +27,14 @@ name: "Instructions Janitor" "on": schedule: - - cron: "44 23 * * *" - # Friendly format: daily (scattered) + - cron: 44 23 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/issue-arborist.lock.yml b/.github/workflows/issue-arborist.lock.yml index e0db5bfbf28..191349aa429 100644 --- a/.github/workflows/issue-arborist.lock.yml +++ b/.github/workflows/issue-arborist.lock.yml @@ -32,9 +32,14 @@ name: "Issue Arborist" "on": schedule: - - cron: "39 6 * * *" - # Friendly format: daily (scattered) + - cron: 39 6 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/issue-monster.lock.yml b/.github/workflows/issue-monster.lock.yml index 1a7496e8d83..40a2f8de6c8 100644 --- a/.github/workflows/issue-monster.lock.yml +++ b/.github/workflows/issue-monster.lock.yml @@ -30,365 +30,15 @@ name: "Issue Monster" "on": - # permissions: # Permissions applied to pre-activation job - # issues: read - # pull-requests: read schedule: - cron: "*/30 * * * *" - # Friendly format: every 30m - # skip-if-match: # Skip-if-match processed as search check in pre-activation job - # max: 5 - # query: is:pr is:open is:draft author:app/copilot-swe-agent - # skip-if-no-match: is:issue is:open # Skip-if-no-match processed as search check in pre-activation job - # steps: # Steps injected into pre-activation job - # - id: search - # name: Search for candidate issues - # uses: actions/github-script@v8 - # with: - # script: | - # const { owner, repo } = context.repo; - # - # try { - # // Check for recent rate-limited PRs to avoid scheduling more work during rate limiting - # core.info('Checking for recent rate-limited PRs...'); - # const rateLimitCheckDate = new Date(); - # rateLimitCheckDate.setHours(rateLimitCheckDate.getHours() - 1); // Check last hour - # // Format as YYYY-MM-DDTHH:MM:SS for GitHub search API - # const rateLimitCheckISO = rateLimitCheckDate.toISOString().split('.')[0] + 'Z'; - # - # const recentPRsQuery = `is:pr author:app/copilot-swe-agent created:>${rateLimitCheckISO} repo:${owner}/${repo}`; - # const recentPRsResponse = await github.rest.search.issuesAndPullRequests({ - # q: recentPRsQuery, - # per_page: 10, - # sort: 'created', - # order: 'desc' - # }); - # - # core.info(`Found ${recentPRsResponse.data.total_count} recent Copilot PRs to check for rate limiting`); - # - # // Check if any recent PRs have rate limit indicators - # let rateLimitDetected = false; - # for (const pr of recentPRsResponse.data.items) { - # try { - # const prTimelineQuery = ` - # query($owner: String!, $repo: String!, $number: Int!) { - # repository(owner: $owner, name: $repo) { - # pullRequest(number: $number) { - # timelineItems(first: 50, itemTypes: [ISSUE_COMMENT]) { - # nodes { - # __typename - # ... on IssueComment { - # body - # createdAt - # } - # } - # } - # } - # } - # } - # `; - # - # const prTimelineResult = await github.graphql(prTimelineQuery, { - # owner, - # repo, - # number: pr.number - # }); - # - # const comments = prTimelineResult?.repository?.pullRequest?.timelineItems?.nodes || []; - # const rateLimitPattern = /rate limit|API rate limit|secondary rate limit|abuse detection|429|too many requests/i; - # - # for (const comment of comments) { - # if (comment.body && rateLimitPattern.test(comment.body)) { - # core.warning(`Rate limiting detected in PR #${pr.number}: ${comment.body.substring(0, 200)}`); - # rateLimitDetected = true; - # break; - # } - # } - # - # if (rateLimitDetected) break; - # } catch (error) { - # core.warning(`Could not check PR #${pr.number} for rate limiting: ${error.message}`); - # } - # } - # - # if (rateLimitDetected) { - # core.warning('🛑 Rate limiting detected in recent PRs. Skipping issue assignment to prevent further rate limit issues.'); - # core.setOutput('issue_count', 0); - # core.setOutput('issue_numbers', ''); - # core.setOutput('issue_list', ''); - # core.setOutput('has_issues', 'false'); - # return; - # } - # - # core.info('✓ No rate limiting detected. Proceeding with issue search.'); - # - # // Labels that indicate an issue should NOT be auto-assigned - # const excludeLabels = [ - # 'wontfix', - # 'duplicate', - # 'invalid', - # 'question', - # 'discussion', - # 'needs-discussion', - # 'blocked', - # 'on-hold', - # 'waiting-for-feedback', - # 'needs-more-info', - # 'no-bot', - # 'no-campaign' - # ]; - # - # // Labels that indicate an issue is a GOOD candidate for auto-assignment - # const priorityLabels = [ - # 'good first issue', - # 'good-first-issue', - # 'bug', - # 'enhancement', - # 'feature', - # 'documentation', - # 'tech-debt', - # 'refactoring', - # 'performance', - # 'security' - # ]; - # - # // Search for open issues with "cookie" label and without excluded labels - # // The "cookie" label indicates issues that are approved work queue items from automated workflows - # const query = `is:issue is:open repo:${owner}/${repo} label:cookie -label:"${excludeLabels.join('" -label:"')}"`; - # core.info(`Searching: ${query}`); - # const response = await github.rest.search.issuesAndPullRequests({ - # q: query, - # per_page: 100, - # sort: 'created', - # order: 'desc' - # }); - # core.info(`Found ${response.data.total_count} total issues matching basic criteria`); - # - # // Fetch full details for each issue to get labels, assignees, sub-issues, and linked PRs - # // Track integrity-filtered issues to emit a diagnostic summary - # const integrityFilteredIssues = []; - # const issuesWithDetails = (await Promise.all( - # response.data.items.map(async (issue) => { - # // Fetch full issue details — some issues may be blocked by integrity policy - # let fullIssue; - # try { - # fullIssue = await github.rest.issues.get({ - # owner, - # repo, - # issue_number: issue.number - # }); - # } catch (fetchError) { - # // Integrity-filtered issues (403/451) or other transient errors should be - # // skipped individually rather than failing the entire batch - # const status = fetchError.status || fetchError.response?.status; - # // 403 = Forbidden (integrity policy), 451 = Unavailable For Legal Reasons - # const isIntegrityBlock = status === 403 || status === 451 || - # /\bintegrity\b/i.test(fetchError.message || ''); - # const errorSummary = (fetchError.message || String(fetchError)).slice(0, 120); - # if (isIntegrityBlock) { - # integrityFilteredIssues.push(issue.number); - # core.warning(`⚠️ Skipping issue #${issue.number}: blocked by integrity policy (HTTP ${status || 'unknown'}): ${errorSummary}`); - # } else { - # core.warning(`⚠️ Skipping issue #${issue.number}: could not fetch details (HTTP ${status || 'unknown'}): ${errorSummary}`); - # } - # return null; - # } - # - # // Check if this issue has sub-issues and linked PRs using GraphQL - # let subIssuesCount = 0; - # let linkedPRs = []; - # try { - # const issueDetailsQuery = ` - # query($owner: String!, $repo: String!, $number: Int!) { - # repository(owner: $owner, name: $repo) { - # issue(number: $number) { - # subIssues { - # totalCount - # } - # timelineItems(first: 100, itemTypes: [CROSS_REFERENCED_EVENT]) { - # nodes { - # ... on CrossReferencedEvent { - # source { - # __typename - # ... on PullRequest { - # number - # state - # isDraft - # author { - # login - # } - # } - # } - # } - # } - # } - # } - # } - # } - # `; - # const issueDetailsResult = await github.graphql(issueDetailsQuery, { - # owner, - # repo, - # number: issue.number - # }); - # - # subIssuesCount = issueDetailsResult?.repository?.issue?.subIssues?.totalCount || 0; - # - # // Extract linked PRs from timeline - # const timelineItems = issueDetailsResult?.repository?.issue?.timelineItems?.nodes || []; - # linkedPRs = timelineItems - # .filter(item => item?.source?.__typename === 'PullRequest') - # .map(item => ({ - # number: item.source.number, - # state: item.source.state, - # isDraft: item.source.isDraft, - # author: item.source.author?.login - # })); - # - # core.info(`Issue #${issue.number} has ${linkedPRs.length} linked PR(s)`); - # } catch (error) { - # // If GraphQL query fails, continue with defaults - # core.warning(`Could not check details for #${issue.number}: ${error.message}`); - # } - # - # return { - # ...fullIssue.data, - # subIssuesCount, - # linkedPRs - # }; - # }) - # )).filter(Boolean); // Remove null entries (integrity-filtered or otherwise skipped) - # - # // Emit diagnostic summary for integrity-filtered issues - # if (integrityFilteredIssues.length > 0) { - # core.warning(`🛡️ Integrity filter diagnostic: ${integrityFilteredIssues.length} issue(s) were skipped due to integrity policy: #${integrityFilteredIssues.join(', #')}. These issues will be excluded from this run.`); - # } - # - # // Filter and score issues - # const scoredIssues = issuesWithDetails - # .filter(issue => { - # // Exclude issues that already have assignees - # if (issue.assignees && issue.assignees.length > 0) { - # core.info(`Skipping #${issue.number}: already has assignees`); - # return false; - # } - # - # // Exclude issues with excluded labels (double check) - # const issueLabels = issue.labels.map(l => l.name.toLowerCase()); - # if (issueLabels.some(label => excludeLabels.map(l => l.toLowerCase()).includes(label))) { - # core.info(`Skipping #${issue.number}: has excluded label`); - # return false; - # } - # - # // Exclude issues with campaign labels (campaign:*) - # // Campaign items are managed by campaign orchestrators - # if (issueLabels.some(label => label.startsWith('campaign:'))) { - # core.info(`Skipping #${issue.number}: has campaign label (managed by campaign orchestrator)`); - # return false; - # } - # - # // Exclude issues that have sub-issues (parent/organizing issues) - # if (issue.subIssuesCount > 0) { - # core.info(`Skipping #${issue.number}: has ${issue.subIssuesCount} sub-issue(s) - parent issues are used for organizing, not tasks`); - # return false; - # } - # - # // Exclude issues with closed PRs (treat as complete) - # const closedPRs = issue.linkedPRs?.filter(pr => pr.state === 'CLOSED' || pr.state === 'MERGED') || []; - # if (closedPRs.length > 0) { - # core.info(`Skipping #${issue.number}: has ${closedPRs.length} closed/merged PR(s) - treating as complete`); - # return false; - # } - # - # // Exclude issues with open PRs from Copilot coding agent - # const openCopilotPRs = issue.linkedPRs?.filter(pr => - # pr.state === 'OPEN' && - # (pr.author === 'copilot-swe-agent' || pr.author?.includes('copilot')) - # ) || []; - # if (openCopilotPRs.length > 0) { - # core.info(`Skipping #${issue.number}: has ${openCopilotPRs.length} open PR(s) from Copilot - already being worked on`); - # return false; - # } - # - # return true; - # }) - # .map(issue => { - # const issueLabels = issue.labels.map(l => l.name.toLowerCase()); - # let score = 0; - # - # // Score based on priority labels (higher score = higher priority) - # if (issueLabels.includes('good first issue') || issueLabels.includes('good-first-issue')) { - # score += 50; - # } - # if (issueLabels.includes('bug')) { - # score += 40; - # } - # if (issueLabels.includes('security')) { - # score += 45; - # } - # if (issueLabels.includes('documentation')) { - # score += 35; - # } - # if (issueLabels.includes('enhancement') || issueLabels.includes('feature')) { - # score += 30; - # } - # if (issueLabels.includes('performance')) { - # score += 25; - # } - # if (issueLabels.includes('tech-debt') || issueLabels.includes('refactoring')) { - # score += 20; - # } - # - # // Bonus for issues with clear labels (any priority label) - # if (issueLabels.some(label => priorityLabels.map(l => l.toLowerCase()).includes(label))) { - # score += 10; - # } - # - # // Age bonus: older issues get slight priority (days old / 10) - # const ageInDays = Math.floor((Date.now() - new Date(issue.created_at)) / (1000 * 60 * 60 * 24)); - # score += Math.min(ageInDays / 10, 20); // Cap age bonus at 20 points - # - # return { - # number: issue.number, - # title: issue.title, - # labels: issue.labels.map(l => l.name), - # created_at: issue.created_at, - # score - # }; - # }) - # .sort((a, b) => b.score - a.score); // Sort by score descending - # - # // Format output - # const issueList = scoredIssues.map(i => { - # const labelStr = i.labels.length > 0 ? ` [${i.labels.join(', ')}]` : ''; - # return `#${i.number}: ${i.title}${labelStr} (score: ${i.score.toFixed(1)})`; - # }).join('\n'); - # - # const issueNumbers = scoredIssues.map(i => i.number).join(','); - # - # core.info(`Total candidate issues after filtering: ${scoredIssues.length}`); - # if (scoredIssues.length > 0) { - # core.info(`Top candidates:\n${issueList.split('\n').slice(0, 10).join('\n')}`); - # } - # - # core.setOutput('issue_count', scoredIssues.length); - # core.setOutput('issue_numbers', issueNumbers); - # core.setOutput('issue_list', issueList); - # - # if (scoredIssues.length === 0) { - # core.info('🍽️ No suitable candidate issues - the plate is empty!'); - # core.setOutput('has_issues', 'false'); - # } else { - # core.setOutput('has_issues', 'true'); - # } - # } catch (error) { - # core.error(`Error searching for issues: ${error.message}`); - # core.setOutput('issue_count', 0); - # core.setOutput('issue_numbers', ''); - # core.setOutput('issue_list', ''); - # core.setOutput('has_issues', 'false'); - # } workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/issue-triage-agent.lock.yml b/.github/workflows/issue-triage-agent.lock.yml index 4f04837d6b6..14dd1c9405b 100644 --- a/.github/workflows/issue-triage-agent.lock.yml +++ b/.github/workflows/issue-triage-agent.lock.yml @@ -30,8 +30,14 @@ name: "Issue Triage Agent" "on": schedule: - - cron: "0 14 * * 1-5" + - cron: 0 14 * * 1-5 workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/jsweep.lock.yml b/.github/workflows/jsweep.lock.yml index a64df884081..54585b14e6f 100644 --- a/.github/workflows/jsweep.lock.yml +++ b/.github/workflows/jsweep.lock.yml @@ -27,9 +27,14 @@ name: "jsweep - JavaScript Unbloater" "on": schedule: - - cron: "5 2 * * *" - # Friendly format: daily (scattered) + - cron: 5 2 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/layout-spec-maintainer.lock.yml b/.github/workflows/layout-spec-maintainer.lock.yml index b92ce872286..3ff23240c3a 100644 --- a/.github/workflows/layout-spec-maintainer.lock.yml +++ b/.github/workflows/layout-spec-maintainer.lock.yml @@ -27,8 +27,14 @@ name: "Layout Specification Maintainer" "on": schedule: - - cron: "0 7 * * 1" + - cron: 0 7 * * 1 workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/lockfile-stats.lock.yml b/.github/workflows/lockfile-stats.lock.yml index 759ea443d4e..8c1f9648132 100644 --- a/.github/workflows/lockfile-stats.lock.yml +++ b/.github/workflows/lockfile-stats.lock.yml @@ -31,9 +31,14 @@ name: "Lockfile Statistics Analysis Agent" "on": schedule: - - cron: "26 16 * * *" - # Friendly format: daily (scattered) + - cron: 26 16 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/mcp-inspector.lock.yml b/.github/workflows/mcp-inspector.lock.yml index e5b9876525e..261bcbad3b9 100644 --- a/.github/workflows/mcp-inspector.lock.yml +++ b/.github/workflows/mcp-inspector.lock.yml @@ -46,9 +46,14 @@ name: "MCP Inspector Agent" "on": schedule: - - cron: "35 18 * * 1" - # Friendly format: weekly on monday around 18:00 (scattered) + - cron: 35 18 * * 1 workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/metrics-collector.lock.yml b/.github/workflows/metrics-collector.lock.yml index 9078921098c..eeb68f4a543 100644 --- a/.github/workflows/metrics-collector.lock.yml +++ b/.github/workflows/metrics-collector.lock.yml @@ -27,9 +27,14 @@ name: "Metrics Collector - Infrastructure Agent" "on": schedule: - - cron: "2 18 * * *" - # Friendly format: daily (scattered) + - cron: 2 18 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/notion-issue-summary.lock.yml b/.github/workflows/notion-issue-summary.lock.yml index 214e8bd4279..d41373f80fe 100644 --- a/.github/workflows/notion-issue-summary.lock.yml +++ b/.github/workflows/notion-issue-summary.lock.yml @@ -32,6 +32,11 @@ name: "Issue Summary to Notion" "on": workflow_dispatch: inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string issue-number: description: Issue number to analyze required: true diff --git a/.github/workflows/org-health-report.lock.yml b/.github/workflows/org-health-report.lock.yml index 0dd1b41673c..f7f5fff51cf 100644 --- a/.github/workflows/org-health-report.lock.yml +++ b/.github/workflows/org-health-report.lock.yml @@ -33,9 +33,14 @@ name: "Organization Health Report" "on": schedule: - - cron: "11 8 * * 1" - # Friendly format: weekly on monday around 09:00 (scattered) + - cron: 11 8 * * 1 workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/pdf-summary.lock.yml b/.github/workflows/pdf-summary.lock.yml index 0223546f1d9..1d6239db8ed 100644 --- a/.github/workflows/pdf-summary.lock.yml +++ b/.github/workflows/pdf-summary.lock.yml @@ -41,6 +41,11 @@ name: "Resource Summarizer Agent" - reopened workflow_dispatch: inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string query: default: summarize in the context of this repository description: Query or question to answer about the resource(s) diff --git a/.github/workflows/poem-bot.lock.yml b/.github/workflows/poem-bot.lock.yml index 06a9d7163a4..ca34ee627e3 100644 --- a/.github/workflows/poem-bot.lock.yml +++ b/.github/workflows/poem-bot.lock.yml @@ -35,11 +35,13 @@ name: "Poem Bot - A Creative Agentic Workflow" - opened - edited - reopened - # roles: # Roles processed as role check in pre-activation job - # - admin # Roles processed as role check in pre-activation job - # - maintainer # Roles processed as role check in pre-activation job workflow_dispatch: inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string poem_theme: default: technology and automation description: Theme for the generated poem diff --git a/.github/workflows/portfolio-analyst.lock.yml b/.github/workflows/portfolio-analyst.lock.yml index e906f428675..e1a097d4683 100644 --- a/.github/workflows/portfolio-analyst.lock.yml +++ b/.github/workflows/portfolio-analyst.lock.yml @@ -33,9 +33,14 @@ name: "Automated Portfolio Analyst" "on": schedule: - - cron: "50 8 * * 1" - # Friendly format: weekly on monday around 09:00 (scattered) + - cron: 50 8 * * 1 workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/pr-triage-agent.lock.yml b/.github/workflows/pr-triage-agent.lock.yml index 94fe9606691..0645e0ad6fd 100644 --- a/.github/workflows/pr-triage-agent.lock.yml +++ b/.github/workflows/pr-triage-agent.lock.yml @@ -27,8 +27,14 @@ name: "PR Triage Agent" "on": schedule: - - cron: "0 */6 * * *" + - cron: 0 */6 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/prompt-clustering-analysis.lock.yml b/.github/workflows/prompt-clustering-analysis.lock.yml index a77e63809ba..0b24deb97dd 100644 --- a/.github/workflows/prompt-clustering-analysis.lock.yml +++ b/.github/workflows/prompt-clustering-analysis.lock.yml @@ -35,9 +35,14 @@ name: "Copilot Agent Prompt Clustering Analysis" "on": schedule: - - cron: "15 12 * * *" - # Friendly format: daily (scattered) + - cron: 15 12 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/python-data-charts.lock.yml b/.github/workflows/python-data-charts.lock.yml index 99be20d4bb1..83f7f7952af 100644 --- a/.github/workflows/python-data-charts.lock.yml +++ b/.github/workflows/python-data-charts.lock.yml @@ -33,6 +33,12 @@ name: "Python Data Visualization Generator" "on": workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/refiner.lock.yml b/.github/workflows/refiner.lock.yml index 07f05caa7fd..f65eb57fa3b 100644 --- a/.github/workflows/refiner.lock.yml +++ b/.github/workflows/refiner.lock.yml @@ -27,12 +27,15 @@ name: "Code Refiner" "on": pull_request: - # names: # Label filtering applied via job conditions - # - refine # Label filtering applied via job conditions types: - labeled workflow_dispatch: inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string item_number: default: "" description: The number of the pull request diff --git a/.github/workflows/release.lock.yml b/.github/workflows/release.lock.yml index c77e6ee33cd..ec9a48d3571 100644 --- a/.github/workflows/release.lock.yml +++ b/.github/workflows/release.lock.yml @@ -30,11 +30,13 @@ name: "Release" "on": - # roles: # Roles processed as role check in pre-activation job - # - admin # Roles processed as role check in pre-activation job - # - maintainer # Roles processed as role check in pre-activation job workflow_dispatch: inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string release_type: default: patch description: Release type (patch, minor, or major) diff --git a/.github/workflows/repo-audit-analyzer.lock.yml b/.github/workflows/repo-audit-analyzer.lock.yml index 9efdda72b81..21d19e2941b 100644 --- a/.github/workflows/repo-audit-analyzer.lock.yml +++ b/.github/workflows/repo-audit-analyzer.lock.yml @@ -32,6 +32,11 @@ name: "Repository Audit & Agentic Workflow Opportunity Analyzer" "on": workflow_dispatch: inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string repository: default: FStarLang/FStar description: Target repository to audit (e.g., FStarLang/FStar) diff --git a/.github/workflows/repo-tree-map.lock.yml b/.github/workflows/repo-tree-map.lock.yml index 0bdd7be66a0..e343cd97473 100644 --- a/.github/workflows/repo-tree-map.lock.yml +++ b/.github/workflows/repo-tree-map.lock.yml @@ -31,9 +31,14 @@ name: "Repository Tree Map Generator" "on": schedule: - - cron: "55 15 * * 1" - # Friendly format: weekly on monday around 15:00 (scattered) + - cron: 55 15 * * 1 workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/repository-quality-improver.lock.yml b/.github/workflows/repository-quality-improver.lock.yml index bb0acacf050..55d4ec780a2 100644 --- a/.github/workflows/repository-quality-improver.lock.yml +++ b/.github/workflows/repository-quality-improver.lock.yml @@ -32,8 +32,14 @@ name: "Repository Quality Improvement Agent" "on": schedule: - - cron: "0 13 * * 1-5" + - cron: 0 13 * * 1-5 workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/research.lock.yml b/.github/workflows/research.lock.yml index c1e5d96b229..07a3ae1feb4 100644 --- a/.github/workflows/research.lock.yml +++ b/.github/workflows/research.lock.yml @@ -33,6 +33,11 @@ name: "Basic Research Agent" "on": workflow_dispatch: inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string topic: description: Research topic or question to investigate required: true diff --git a/.github/workflows/safe-output-health.lock.yml b/.github/workflows/safe-output-health.lock.yml index a4de2f5855f..dc26a403288 100644 --- a/.github/workflows/safe-output-health.lock.yml +++ b/.github/workflows/safe-output-health.lock.yml @@ -32,9 +32,14 @@ name: "Safe Output Health Monitor" "on": schedule: - - cron: "37 3 * * *" - # Friendly format: daily (scattered) + - cron: 37 3 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/schema-consistency-checker.lock.yml b/.github/workflows/schema-consistency-checker.lock.yml index bfe4e85dbf7..7d9d8904086 100644 --- a/.github/workflows/schema-consistency-checker.lock.yml +++ b/.github/workflows/schema-consistency-checker.lock.yml @@ -31,9 +31,14 @@ name: "Schema Consistency Checker" "on": schedule: - - cron: "39 9 * * *" - # Friendly format: daily (scattered) + - cron: 39 9 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/schema-feature-coverage.lock.yml b/.github/workflows/schema-feature-coverage.lock.yml index f86e3b6aba2..85d03c9c2d0 100644 --- a/.github/workflows/schema-feature-coverage.lock.yml +++ b/.github/workflows/schema-feature-coverage.lock.yml @@ -27,9 +27,14 @@ name: "Schema Feature Coverage Checker" "on": schedule: - - cron: "24 6 * * 1" - # Friendly format: weekly on monday around 07:00 (scattered) + - cron: 24 6 * * 1 workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/scout.lock.yml b/.github/workflows/scout.lock.yml index 4c27b3a3ae5..87f4d4c935e 100644 --- a/.github/workflows/scout.lock.yml +++ b/.github/workflows/scout.lock.yml @@ -62,12 +62,13 @@ name: "Scout" types: - created - edited - # roles: # Roles processed as role check in pre-activation job - # - admin # Roles processed as role check in pre-activation job - # - maintainer # Roles processed as role check in pre-activation job - # - write # Roles processed as role check in pre-activation job workflow_dispatch: inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string history: default: shallow description: "Git history to fetch: shallow (default) or full" diff --git a/.github/workflows/security-compliance.lock.yml b/.github/workflows/security-compliance.lock.yml index f89836177be..e722b5d198c 100644 --- a/.github/workflows/security-compliance.lock.yml +++ b/.github/workflows/security-compliance.lock.yml @@ -31,6 +31,11 @@ name: "Security Compliance Campaign" audit_date: description: Audit deadline (YYYY-MM-DD) required: true + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string max_issues: default: "500" description: Maximum vulnerabilities to process diff --git a/.github/workflows/semantic-function-refactor.lock.yml b/.github/workflows/semantic-function-refactor.lock.yml index d5f80fa7c98..e896cf8fd61 100644 --- a/.github/workflows/semantic-function-refactor.lock.yml +++ b/.github/workflows/semantic-function-refactor.lock.yml @@ -32,9 +32,14 @@ name: "Semantic Function Refactoring" "on": schedule: - - cron: "59 16 * * *" - # Friendly format: daily (scattered) + - cron: 59 16 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/sergo.lock.yml b/.github/workflows/sergo.lock.yml index 95d9f44c735..2dc7c23c931 100644 --- a/.github/workflows/sergo.lock.yml +++ b/.github/workflows/sergo.lock.yml @@ -32,9 +32,14 @@ name: "Sergo - Serena Go Expert" "on": schedule: - - cron: "3 22 * * *" - # Friendly format: daily (scattered) + - cron: 3 22 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/slide-deck-maintainer.lock.yml b/.github/workflows/slide-deck-maintainer.lock.yml index 2093422a79f..7508ef627d0 100644 --- a/.github/workflows/slide-deck-maintainer.lock.yml +++ b/.github/workflows/slide-deck-maintainer.lock.yml @@ -31,10 +31,14 @@ name: "Slide Deck Maintainer" "on": schedule: - - cron: "0 16 * * 1-5" - # skip-if-match: is:pr is:open in:title "[slides]" # Skip-if-match processed as search check in pre-activation job + - cron: 0 16 * * 1-5 workflow_dispatch: inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string focus: default: global-sweep description: Focus area (feature-deep-dive or global-sweep) diff --git a/.github/workflows/smoke-agent-all-merged.lock.yml b/.github/workflows/smoke-agent-all-merged.lock.yml index 6f01ea44ba5..75c47e02112 100644 --- a/.github/workflows/smoke-agent-all-merged.lock.yml +++ b/.github/workflows/smoke-agent-all-merged.lock.yml @@ -27,11 +27,15 @@ name: "Smoke Agent: all/merged" "on": pull_request: - # names: # Label filtering applied via job conditions - # - metal # Label filtering applied via job conditions types: - labeled - workflow_dispatch: null + workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/smoke-agent-all-none.lock.yml b/.github/workflows/smoke-agent-all-none.lock.yml index c46a8c85e96..77a9d191f19 100644 --- a/.github/workflows/smoke-agent-all-none.lock.yml +++ b/.github/workflows/smoke-agent-all-none.lock.yml @@ -27,11 +27,15 @@ name: "Smoke Agent: all/none" "on": pull_request: - # names: # Label filtering applied via job conditions - # - metal # Label filtering applied via job conditions types: - labeled - workflow_dispatch: null + workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/smoke-agent-public-approved.lock.yml b/.github/workflows/smoke-agent-public-approved.lock.yml index 62071271c99..4289600e755 100644 --- a/.github/workflows/smoke-agent-public-approved.lock.yml +++ b/.github/workflows/smoke-agent-public-approved.lock.yml @@ -27,11 +27,15 @@ name: "Smoke Agent: public/approved" "on": pull_request: - # names: # Label filtering applied via job conditions - # - metal # Label filtering applied via job conditions types: - labeled - workflow_dispatch: null + workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/smoke-agent-public-none.lock.yml b/.github/workflows/smoke-agent-public-none.lock.yml index 5064c419a91..a321ab83ab4 100644 --- a/.github/workflows/smoke-agent-public-none.lock.yml +++ b/.github/workflows/smoke-agent-public-none.lock.yml @@ -27,11 +27,15 @@ name: "Smoke Agent: public/none" "on": pull_request: - # names: # Label filtering applied via job conditions - # - metal # Label filtering applied via job conditions types: - labeled - workflow_dispatch: null + workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/smoke-agent-scoped-approved.lock.yml b/.github/workflows/smoke-agent-scoped-approved.lock.yml index a6bdf1fa31e..1d5da8d9ff8 100644 --- a/.github/workflows/smoke-agent-scoped-approved.lock.yml +++ b/.github/workflows/smoke-agent-scoped-approved.lock.yml @@ -27,11 +27,15 @@ name: "Smoke Agent: scoped/approved" "on": pull_request: - # names: # Label filtering applied via job conditions - # - metal # Label filtering applied via job conditions types: - labeled - workflow_dispatch: null + workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/smoke-call-workflow.lock.yml b/.github/workflows/smoke-call-workflow.lock.yml index 201994af6aa..4ac9f6b1594 100644 --- a/.github/workflows/smoke-call-workflow.lock.yml +++ b/.github/workflows/smoke-call-workflow.lock.yml @@ -27,11 +27,15 @@ name: "Smoke Call Workflow" "on": pull_request: - # names: # Label filtering applied via job conditions - # - water # Label filtering applied via job conditions types: - labeled workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/smoke-claude.lock.yml b/.github/workflows/smoke-claude.lock.yml index 8a8fcdbd180..73ee6837a97 100644 --- a/.github/workflows/smoke-claude.lock.yml +++ b/.github/workflows/smoke-claude.lock.yml @@ -39,13 +39,17 @@ name: "Smoke Claude" "on": pull_request: - # names: # Label filtering applied via job conditions - # - smoke # Label filtering applied via job conditions types: - labeled schedule: - - cron: "25 */12 * * *" - workflow_dispatch: null + - cron: 25 */12 * * * + workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/smoke-codex.lock.yml b/.github/workflows/smoke-codex.lock.yml index 9f9ed925471..f2c07c90055 100644 --- a/.github/workflows/smoke-codex.lock.yml +++ b/.github/workflows/smoke-codex.lock.yml @@ -32,13 +32,17 @@ name: "Smoke Codex" "on": pull_request: - # names: # Label filtering applied via job conditions - # - smoke # Label filtering applied via job conditions types: - labeled schedule: - - cron: "30 */12 * * *" - workflow_dispatch: null + - cron: 30 */12 * * * + workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/smoke-copilot-arm.lock.yml b/.github/workflows/smoke-copilot-arm.lock.yml index c61e6b51db3..b5a95d5b151 100644 --- a/.github/workflows/smoke-copilot-arm.lock.yml +++ b/.github/workflows/smoke-copilot-arm.lock.yml @@ -33,11 +33,15 @@ name: "Smoke Copilot ARM64" "on": pull_request: - # names: # Label filtering applied via job conditions - # - water # Label filtering applied via job conditions types: - labeled - workflow_dispatch: null + workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/smoke-copilot.lock.yml b/.github/workflows/smoke-copilot.lock.yml index d7cf10fab52..2f153345f06 100644 --- a/.github/workflows/smoke-copilot.lock.yml +++ b/.github/workflows/smoke-copilot.lock.yml @@ -36,9 +36,14 @@ name: "Smoke Copilot" types: - labeled schedule: - - cron: "47 */12 * * *" + - cron: 47 */12 * * * workflow_dispatch: inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string item_number: default: "" description: The number of the issue, pull request, or discussion diff --git a/.github/workflows/smoke-create-cross-repo-pr.lock.yml b/.github/workflows/smoke-create-cross-repo-pr.lock.yml index 1f1d4678474..bda6f241e8e 100644 --- a/.github/workflows/smoke-create-cross-repo-pr.lock.yml +++ b/.github/workflows/smoke-create-cross-repo-pr.lock.yml @@ -27,13 +27,17 @@ name: "Smoke Create Cross-Repo PR" "on": pull_request: - # names: # Label filtering applied via job conditions - # - smoke-create-cross-repo-pr # Label filtering applied via job conditions types: - labeled schedule: - - cron: "44 */12 * * *" - workflow_dispatch: null + - cron: 44 */12 * * * + workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/smoke-gemini.lock.yml b/.github/workflows/smoke-gemini.lock.yml index b7572804406..2b05dfef4dd 100644 --- a/.github/workflows/smoke-gemini.lock.yml +++ b/.github/workflows/smoke-gemini.lock.yml @@ -32,13 +32,17 @@ name: "Smoke Gemini" "on": pull_request: - # names: # Label filtering applied via job conditions - # - water # Label filtering applied via job conditions types: - labeled schedule: - - cron: "22 */12 * * *" - workflow_dispatch: null + - cron: 22 */12 * * * + workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/smoke-multi-pr.lock.yml b/.github/workflows/smoke-multi-pr.lock.yml index 27344ad5a64..73fe1ccea98 100644 --- a/.github/workflows/smoke-multi-pr.lock.yml +++ b/.github/workflows/smoke-multi-pr.lock.yml @@ -27,13 +27,17 @@ name: "Smoke Multi PR" "on": pull_request: - # names: # Label filtering applied via job conditions - # - smoke-multi-pr # Label filtering applied via job conditions types: - labeled schedule: - - cron: "45 */24 * * *" - workflow_dispatch: null + - cron: 45 */24 * * * + workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/smoke-project.lock.yml b/.github/workflows/smoke-project.lock.yml index 3591a9d03b4..371b49accf6 100644 --- a/.github/workflows/smoke-project.lock.yml +++ b/.github/workflows/smoke-project.lock.yml @@ -27,11 +27,15 @@ name: "Smoke Project" "on": pull_request: - # names: # Label filtering applied via job conditions - # - water # Label filtering applied via job conditions types: - labeled - workflow_dispatch: null + workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/smoke-temporary-id.lock.yml b/.github/workflows/smoke-temporary-id.lock.yml index 472005a4de6..2618a945805 100644 --- a/.github/workflows/smoke-temporary-id.lock.yml +++ b/.github/workflows/smoke-temporary-id.lock.yml @@ -27,11 +27,15 @@ name: "Smoke Temporary ID" "on": pull_request: - # names: # Label filtering applied via job conditions - # - water # Label filtering applied via job conditions types: - labeled - workflow_dispatch: null + workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/smoke-test-tools.lock.yml b/.github/workflows/smoke-test-tools.lock.yml index 8b7f9a33a8c..d651a883a2c 100644 --- a/.github/workflows/smoke-test-tools.lock.yml +++ b/.github/workflows/smoke-test-tools.lock.yml @@ -27,13 +27,17 @@ name: "Agent Container Smoke Test" "on": pull_request: - # names: # Label filtering applied via job conditions - # - smoke # Label filtering applied via job conditions types: - labeled schedule: - - cron: "29 */12 * * *" - workflow_dispatch: null + - cron: 29 */12 * * * + workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/smoke-update-cross-repo-pr.lock.yml b/.github/workflows/smoke-update-cross-repo-pr.lock.yml index 54d6a1866bf..6aa7cfeb44f 100644 --- a/.github/workflows/smoke-update-cross-repo-pr.lock.yml +++ b/.github/workflows/smoke-update-cross-repo-pr.lock.yml @@ -27,13 +27,17 @@ name: "Smoke Update Cross-Repo PR" "on": pull_request: - # names: # Label filtering applied via job conditions - # - smoke-update-cross-repo-pr # Label filtering applied via job conditions types: - labeled schedule: - - cron: "39 */12 * * *" - workflow_dispatch: null + - cron: 39 */12 * * * + workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/smoke-workflow-call-with-inputs.lock.yml b/.github/workflows/smoke-workflow-call-with-inputs.lock.yml index cff244e2a75..167cccae86b 100644 --- a/.github/workflows/smoke-workflow-call-with-inputs.lock.yml +++ b/.github/workflows/smoke-workflow-call-with-inputs.lock.yml @@ -42,6 +42,11 @@ name: "Smoke Workflow Call with Inputs" value: ${{ jobs.safe_outputs.outputs.created_issue_url }} workflow_dispatch: inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string task-description: default: generic task description: Short description of what this invocation should do diff --git a/.github/workflows/smoke-workflow-call.lock.yml b/.github/workflows/smoke-workflow-call.lock.yml index d493c80bdbf..2d20ec2f811 100644 --- a/.github/workflows/smoke-workflow-call.lock.yml +++ b/.github/workflows/smoke-workflow-call.lock.yml @@ -45,6 +45,11 @@ name: "Smoke Workflow Call" value: ${{ jobs.safe_outputs.outputs.comment_url }} workflow_dispatch: inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string task-description: default: validate workflow_call checkout description: Short description of the validation task to include in the output comment diff --git a/.github/workflows/stale-repo-identifier.lock.yml b/.github/workflows/stale-repo-identifier.lock.yml index 5a64bcdde6d..2f73bd1719b 100644 --- a/.github/workflows/stale-repo-identifier.lock.yml +++ b/.github/workflows/stale-repo-identifier.lock.yml @@ -34,9 +34,14 @@ name: "Stale Repository Identifier" "on": schedule: - - cron: "0 9 1 * *" + - cron: 0 9 1 * * workflow_dispatch: inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string organization: default: github description: GitHub organization to scan for stale repositories diff --git a/.github/workflows/static-analysis-report.lock.yml b/.github/workflows/static-analysis-report.lock.yml index ebed7aae7c7..f3e31d297f2 100644 --- a/.github/workflows/static-analysis-report.lock.yml +++ b/.github/workflows/static-analysis-report.lock.yml @@ -31,9 +31,14 @@ name: "Static Analysis Report" "on": schedule: - - cron: "7 6 * * *" - # Friendly format: daily (scattered) + - cron: 7 6 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/step-name-alignment.lock.yml b/.github/workflows/step-name-alignment.lock.yml index cb8afdfa7e4..a48aa27842f 100644 --- a/.github/workflows/step-name-alignment.lock.yml +++ b/.github/workflows/step-name-alignment.lock.yml @@ -27,9 +27,14 @@ name: "Step Name Alignment" "on": schedule: - - cron: "5 12 * * *" - # Friendly format: daily (scattered) + - cron: 5 12 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/sub-issue-closer.lock.yml b/.github/workflows/sub-issue-closer.lock.yml index 469672e317f..4917fa034c1 100644 --- a/.github/workflows/sub-issue-closer.lock.yml +++ b/.github/workflows/sub-issue-closer.lock.yml @@ -27,9 +27,14 @@ name: "Sub-Issue Closer" "on": schedule: - - cron: "12 9 * * *" - # Friendly format: daily (scattered) + - cron: 12 9 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/super-linter.lock.yml b/.github/workflows/super-linter.lock.yml index 0fe888fff6e..9260d2e532f 100644 --- a/.github/workflows/super-linter.lock.yml +++ b/.github/workflows/super-linter.lock.yml @@ -31,8 +31,14 @@ name: "Super Linter Report" "on": schedule: - - cron: "0 14 * * 1-5" + - cron: 0 14 * * 1-5 workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/technical-doc-writer.lock.yml b/.github/workflows/technical-doc-writer.lock.yml index c2bc849f07a..26380bfad89 100644 --- a/.github/workflows/technical-doc-writer.lock.yml +++ b/.github/workflows/technical-doc-writer.lock.yml @@ -34,6 +34,11 @@ name: "Rebuild the documentation after making changes" "on": workflow_dispatch: inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string topic: description: Documentation topic to review required: true diff --git a/.github/workflows/terminal-stylist.lock.yml b/.github/workflows/terminal-stylist.lock.yml index 1f24d01003f..782b01b4b8e 100644 --- a/.github/workflows/terminal-stylist.lock.yml +++ b/.github/workflows/terminal-stylist.lock.yml @@ -32,9 +32,14 @@ name: "Terminal Stylist" "on": schedule: - - cron: "14 22 * * *" - # Friendly format: daily (scattered) + - cron: 14 22 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/test-create-pr-error-handling.lock.yml b/.github/workflows/test-create-pr-error-handling.lock.yml index cde225c9688..ed80e5ed181 100644 --- a/.github/workflows/test-create-pr-error-handling.lock.yml +++ b/.github/workflows/test-create-pr-error-handling.lock.yml @@ -27,6 +27,12 @@ name: "Test Create PR Error Handling" "on": workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/test-dispatcher.lock.yml b/.github/workflows/test-dispatcher.lock.yml index 907ec8d04e0..463a5d7145a 100644 --- a/.github/workflows/test-dispatcher.lock.yml +++ b/.github/workflows/test-dispatcher.lock.yml @@ -26,6 +26,12 @@ name: "Test Dispatcher Workflow" "on": workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} @@ -344,6 +350,11 @@ jobs: "inputSchema": { "additionalProperties": false, "properties": { + "aw_context": { + "default": "", + "description": "(Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input.", + "type": "string" + }, "test_param": { "description": "Question from the dispatcher workflow", "type": "string" diff --git a/.github/workflows/test-project-url-default.lock.yml b/.github/workflows/test-project-url-default.lock.yml index 1caedca17c7..8a2d725c3bf 100644 --- a/.github/workflows/test-project-url-default.lock.yml +++ b/.github/workflows/test-project-url-default.lock.yml @@ -26,6 +26,12 @@ name: "Test Project URL Explicit Requirement" "on": workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/test-workflow.lock.yml b/.github/workflows/test-workflow.lock.yml index 91b3f8ee058..229fd582675 100644 --- a/.github/workflows/test-workflow.lock.yml +++ b/.github/workflows/test-workflow.lock.yml @@ -27,6 +27,11 @@ name: "Test Workflow" "on": workflow_dispatch: inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string test_param: description: Question from the dispatcher workflow required: true diff --git a/.github/workflows/tidy.lock.yml b/.github/workflows/tidy.lock.yml index 23b67022cd4..2a2439eb036 100644 --- a/.github/workflows/tidy.lock.yml +++ b/.github/workflows/tidy.lock.yml @@ -39,8 +39,14 @@ name: "Tidy" - "**/*.cjs" - "**/*.ts" schedule: - - cron: "0 7 * * *" - workflow_dispatch: null + - cron: 0 7 * * * + workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/typist.lock.yml b/.github/workflows/typist.lock.yml index 13315168361..0dc7edc3567 100644 --- a/.github/workflows/typist.lock.yml +++ b/.github/workflows/typist.lock.yml @@ -32,8 +32,14 @@ name: "Typist - Go Type Analysis" "on": schedule: - - cron: "0 11 * * 1-5" + - cron: 0 11 * * 1-5 workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/ubuntu-image-analyzer.lock.yml b/.github/workflows/ubuntu-image-analyzer.lock.yml index 6e5d2fded75..575f842a52c 100644 --- a/.github/workflows/ubuntu-image-analyzer.lock.yml +++ b/.github/workflows/ubuntu-image-analyzer.lock.yml @@ -31,10 +31,14 @@ name: "Ubuntu Actions Image Analyzer" "on": schedule: - - cron: "35 7 * * 5" - # Friendly format: weekly (scattered) - # skip-if-match: is:pr is:open in:title "[ubuntu-image]" # Skip-if-match processed as search check in pre-activation job + - cron: 35 7 * * 5 workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/unbloat-docs.lock.yml b/.github/workflows/unbloat-docs.lock.yml index 349e675ce8c..c98894fb878 100644 --- a/.github/workflows/unbloat-docs.lock.yml +++ b/.github/workflows/unbloat-docs.lock.yml @@ -37,8 +37,14 @@ name: "Documentation Unbloat" - created - edited schedule: - - cron: "52 23 * * *" - workflow_dispatch: null + - cron: 52 23 * * * + workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/update-astro.lock.yml b/.github/workflows/update-astro.lock.yml index 5fdbd7a8448..b1b5325a2ee 100644 --- a/.github/workflows/update-astro.lock.yml +++ b/.github/workflows/update-astro.lock.yml @@ -27,10 +27,14 @@ name: "Update Astro" "on": schedule: - - cron: "2 9 * * *" - # Friendly format: daily (scattered) - # skip-if-no-match: is:pr is:open author:app/dependabot label:dependencies # Skip-if-no-match processed as search check in pre-activation job + - cron: 2 9 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/video-analyzer.lock.yml b/.github/workflows/video-analyzer.lock.yml index 982e5a22076..79de1860972 100644 --- a/.github/workflows/video-analyzer.lock.yml +++ b/.github/workflows/video-analyzer.lock.yml @@ -32,6 +32,11 @@ name: "Video Analysis Agent" "on": workflow_dispatch: inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string video_url: description: URL to video file to analyze (must be publicly accessible) required: true diff --git a/.github/workflows/weekly-blog-post-writer.lock.yml b/.github/workflows/weekly-blog-post-writer.lock.yml index 19ec875a8f7..4b90746d9ac 100644 --- a/.github/workflows/weekly-blog-post-writer.lock.yml +++ b/.github/workflows/weekly-blog-post-writer.lock.yml @@ -31,9 +31,14 @@ name: "Weekly Blog Post Writer" "on": schedule: - - cron: "0 5 * * 1" - # Friendly format: weekly on monday (scattered) + - cron: 0 5 * * 1 workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/weekly-editors-health-check.lock.yml b/.github/workflows/weekly-editors-health-check.lock.yml index 135ff312210..a9fb290e1fd 100644 --- a/.github/workflows/weekly-editors-health-check.lock.yml +++ b/.github/workflows/weekly-editors-health-check.lock.yml @@ -27,9 +27,14 @@ name: "Weekly Editors Health Check" "on": schedule: - - cron: "43 21 * * 1" - # Friendly format: weekly (scattered) + - cron: 43 21 * * 1 workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/weekly-issue-summary.lock.yml b/.github/workflows/weekly-issue-summary.lock.yml index 73721548af0..8083171e3c4 100644 --- a/.github/workflows/weekly-issue-summary.lock.yml +++ b/.github/workflows/weekly-issue-summary.lock.yml @@ -33,8 +33,14 @@ name: "Weekly Issue Summary" "on": schedule: - - cron: "0 15 * * 1" + - cron: 0 15 * * 1 workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/weekly-safe-outputs-spec-review.lock.yml b/.github/workflows/weekly-safe-outputs-spec-review.lock.yml index 906f4d34294..4f75dff53f9 100644 --- a/.github/workflows/weekly-safe-outputs-spec-review.lock.yml +++ b/.github/workflows/weekly-safe-outputs-spec-review.lock.yml @@ -27,9 +27,14 @@ name: "Weekly Safe Outputs Specification Review" "on": schedule: - - cron: "38 22 * * 1" - # Friendly format: weekly on monday (scattered) + - cron: 38 22 * * 1 workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/workflow-health-manager.lock.yml b/.github/workflows/workflow-health-manager.lock.yml index c324e3f1dfb..5361babdda1 100644 --- a/.github/workflows/workflow-health-manager.lock.yml +++ b/.github/workflows/workflow-health-manager.lock.yml @@ -31,9 +31,14 @@ name: "Workflow Health Manager - Meta-Orchestrator" "on": schedule: - - cron: "7 7 * * *" - # Friendly format: daily (scattered) + - cron: 7 7 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/workflow-normalizer.lock.yml b/.github/workflows/workflow-normalizer.lock.yml index fe39e5dcd24..1d20d36e994 100644 --- a/.github/workflows/workflow-normalizer.lock.yml +++ b/.github/workflows/workflow-normalizer.lock.yml @@ -31,9 +31,14 @@ name: "Workflow Normalizer" "on": schedule: - - cron: "18 13 * * *" - # Friendly format: daily (scattered) + - cron: 18 13 * * * workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/workflow-skill-extractor.lock.yml b/.github/workflows/workflow-skill-extractor.lock.yml index 1279d82c027..32b34910fc5 100644 --- a/.github/workflows/workflow-skill-extractor.lock.yml +++ b/.github/workflows/workflow-skill-extractor.lock.yml @@ -31,9 +31,14 @@ name: "Workflow Skill Extractor" "on": schedule: - - cron: "3 16 * * 0" - # Friendly format: weekly (scattered) + - cron: 3 16 * * 0 workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/actions/setup/js/dispatch_workflow.cjs b/actions/setup/js/dispatch_workflow.cjs index 4e4137c4f6b..dea6f652849 100644 --- a/actions/setup/js/dispatch_workflow.cjs +++ b/actions/setup/js/dispatch_workflow.cjs @@ -188,6 +188,20 @@ async function main(config = {}) { } } + // Inject aw_context: caller metadata passed to the dispatched workflow. + // This allows the receiving workflow to trace back to its caller via + // github.event.inputs.aw_context in its activation job. + const awContext = { + repo: `${context.repo.owner}/${context.repo.repo}`, + run_id: String(context.runId ?? ""), + workflow_id: process.env.GITHUB_WORKFLOW ?? "", + workflow_call_id: process.env.GITHUB_WORKFLOW_REF ?? "", + time: new Date().toISOString(), + actor: context.actor ?? "", + event_type: context.eventName ?? "", + }; + inputs["aw_context"] = JSON.stringify(awContext); + // Get the workflow file extension from compile-time resolution const extension = workflowFiles[workflowName]; if (!extension) { diff --git a/actions/setup/js/dispatch_workflow.test.cjs b/actions/setup/js/dispatch_workflow.test.cjs index f0064bdfe36..50b7f68335d 100644 --- a/actions/setup/js/dispatch_workflow.test.cjs +++ b/actions/setup/js/dispatch_workflow.test.cjs @@ -85,11 +85,42 @@ describe("dispatch_workflow handler factory", () => { inputs: { param1: "value1", param2: "42", + aw_context: expect.any(String), }, return_run_details: true, }); }); + it("should inject aw_context with correct fields", async () => { + const config = { + workflows: ["test-workflow"], + workflow_files: { "test-workflow": ".lock.yml" }, + max: 5, + }; + const handler = await main(config); + + const result = await handler({ type: "dispatch_workflow", workflow_name: "test-workflow", inputs: {} }, {}); + + expect(result.success).toBe(true); + const callArgs = github.rest.actions.createWorkflowDispatch.mock.calls[0][0]; + const awContextRaw = callArgs.inputs["aw_context"]; + expect(awContextRaw).toBeDefined(); + + const awContext = JSON.parse(awContextRaw); + expect(awContext).toHaveProperty("repo"); + expect(awContext).toHaveProperty("run_id"); + expect(awContext).toHaveProperty("workflow_id"); + expect(awContext).toHaveProperty("workflow_call_id"); + expect(awContext).toHaveProperty("time"); + expect(awContext).toHaveProperty("actor"); + expect(awContext).toHaveProperty("event_type"); + // Validate time is a valid ISO 8601 timestamp + expect(() => new Date(awContext.time)).not.toThrow(); + expect(new Date(awContext.time).toISOString()).toBe(awContext.time); + // repo should match mocked context + expect(awContext.repo).toBe("test-owner/test-repo"); + }); + it("should reject workflows not in allowed list", async () => { const config = { workflows: ["allowed-workflow"], @@ -201,14 +232,15 @@ describe("dispatch_workflow handler factory", () => { expect(github.rest.actions.createWorkflowDispatch).toHaveBeenCalledWith( expect.objectContaining({ - inputs: { + inputs: expect.objectContaining({ string: "hello", number: "42", boolean: "true", object: '{"key":"value"}', null: "", undefined: "", - }, + aw_context: expect.any(String), + }), }) ); }); @@ -236,7 +268,9 @@ describe("dispatch_workflow handler factory", () => { repo: "test-repo", workflow_id: "no-inputs-workflow.lock.yml", ref: expect.any(String), - inputs: {}, // Should pass empty object even when inputs property is missing + inputs: expect.objectContaining({ + aw_context: expect.any(String), + }), return_run_details: true, }); }); @@ -309,7 +343,7 @@ describe("dispatch_workflow handler factory", () => { repo: "test-repo", workflow_id: "test-workflow.lock.yml", ref: "refs/heads/feature-branch", - inputs: {}, + inputs: expect.objectContaining({ aw_context: expect.any(String) }), return_run_details: true, }); }); @@ -340,7 +374,7 @@ describe("dispatch_workflow handler factory", () => { repo: "test-repo", workflow_id: "test-workflow.lock.yml", ref: "refs/heads/main", - inputs: {}, + inputs: expect.objectContaining({ aw_context: expect.any(String) }), return_run_details: true, }); }); @@ -371,7 +405,7 @@ describe("dispatch_workflow handler factory", () => { repo: "test-repo", workflow_id: "test-workflow.lock.yml", ref: "refs/heads/feature/add-new-feature", - inputs: {}, + inputs: expect.objectContaining({ aw_context: expect.any(String) }), return_run_details: true, }); }); @@ -404,7 +438,7 @@ describe("dispatch_workflow handler factory", () => { repo: "test-repo", workflow_id: "test-workflow.lock.yml", ref: "refs/heads/develop", - inputs: {}, + inputs: expect.objectContaining({ aw_context: expect.any(String) }), return_run_details: true, }); }); @@ -448,7 +482,7 @@ describe("dispatch_workflow handler factory", () => { repo: "test-repo", workflow_id: "test-workflow.lock.yml", ref: "refs/heads/staging", - inputs: {}, + inputs: expect.objectContaining({ aw_context: expect.any(String) }), return_run_details: true, }); }); @@ -512,7 +546,7 @@ describe("dispatch_workflow handler factory", () => { repo: "test-repo", workflow_id: "test-workflow.lock.yml", ref: "refs/heads/main", - inputs: {}, + inputs: expect.objectContaining({ aw_context: expect.any(String) }), return_run_details: true, }); @@ -522,7 +556,7 @@ describe("dispatch_workflow handler factory", () => { repo: "test-repo", workflow_id: "test-workflow.lock.yml", ref: "refs/heads/main", - inputs: {}, + inputs: expect.objectContaining({ aw_context: expect.any(String) }), }); expect(github.rest.actions.createWorkflowDispatch).toHaveBeenCalledTimes(2); diff --git a/actions/setup/js/generate_aw_info.cjs b/actions/setup/js/generate_aw_info.cjs index 961a59b645b..6ffa5f55f64 100644 --- a/actions/setup/js/generate_aw_info.cjs +++ b/actions/setup/js/generate_aw_info.cjs @@ -92,6 +92,19 @@ async function main(core, ctx) { awInfo.apm_version = apmVersion; } + // Include aw_context when the workflow was triggered via workflow_dispatch with + // the aw_context input set by a calling agentic workflow's dispatch_workflow handler. + // Validates JSON format and populates the context key in aw_info.json. + const awContextRaw = ctx.payload?.inputs?.aw_context; + if (awContextRaw && typeof awContextRaw === "string" && awContextRaw.trim() !== "") { + try { + const parsed = JSON.parse(awContextRaw); + awInfo.context = parsed; + } catch { + core.warning(`Failed to parse aw_context input as JSON: ${awContextRaw}`); + } + } + // Write to /tmp/gh-aw directory to avoid inclusion in PR fs.mkdirSync(TMP_GH_AW_PATH, { recursive: true }); const tmpPath = TMP_GH_AW_PATH + "/aw_info.json"; diff --git a/pkg/workflow/compiler_yaml.go b/pkg/workflow/compiler_yaml.go index 8c3d40de68c..1fe2626f58b 100644 --- a/pkg/workflow/compiler_yaml.go +++ b/pkg/workflow/compiler_yaml.go @@ -199,6 +199,9 @@ func (c *Compiler) generateWorkflowBody(yaml *strings.Builder, data *WorkflowDat if data.SafeOutputs != nil { onSection = c.injectWorkflowCallOutputs(onSection, data.SafeOutputs) } + // Inject aw_context input into workflow_dispatch triggers so dispatched workflows + // can receive caller metadata (repo, run_id, actor, etc.) from dispatch_workflow. + onSection = injectAwContextIntoOnYAML(onSection) yaml.WriteString(onSection + "\n\n") // Note: GitHub Actions doesn't support workflow-level if conditions diff --git a/pkg/workflow/dispatch_workflow.go b/pkg/workflow/dispatch_workflow.go index b2d4d2711f5..107929c8582 100644 --- a/pkg/workflow/dispatch_workflow.go +++ b/pkg/workflow/dispatch_workflow.go @@ -1,11 +1,100 @@ package workflow import ( + "strings" + "github.com/github/gh-aw/pkg/logger" + "github.com/github/gh-aw/pkg/parser" + "github.com/goccy/go-yaml" ) var dispatchWorkflowLog = logger.New("workflow:dispatch_workflow") +// awContextInputDescription is the description for the aw_context workflow_dispatch input. +// It signals to users that this input is managed internally by the agentic workflow system. +const awContextInputDescription = "(Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input." + +// injectAwContextIntoOnYAML adds the aw_context input to the workflow_dispatch trigger +// in the given on-section YAML string, if workflow_dispatch is present. +// The aw_context input carries caller metadata (repo, run_id, workflow_id, etc.) and is +// marked as optional and internal. This operates on the final on-section YAML string, +// after all other trigger processing, to avoid interfering with label_command or command +// trigger merging. +func injectAwContextIntoOnYAML(onSection string) string { + if !strings.Contains(onSection, "workflow_dispatch") { + return onSection + } + + // Parse the on section YAML + var onData map[string]any + if err := yaml.Unmarshal([]byte(onSection), &onData); err != nil { + dispatchWorkflowLog.Printf("Warning: failed to parse on section for aw_context injection: %v", err) + return onSection + } + + onMap, ok := onData["on"].(map[string]any) + if !ok { + return onSection + } + + wdVal, hasWD := onMap["workflow_dispatch"] + if !hasWD { + return onSection + } + + // Ensure workflow_dispatch is a map (it may be nil for bare "workflow_dispatch:" triggers) + var wdMap map[string]any + if wdVal == nil { + wdMap = make(map[string]any) + } else if m, ok := wdVal.(map[string]any); ok { + wdMap = m + } else { + return onSection + } + + // Get or create the inputs map + var inputsMap map[string]any + if existingInputs, hasInputs := wdMap["inputs"]; hasInputs { + if im, ok := existingInputs.(map[string]any); ok { + inputsMap = im + } else { + inputsMap = make(map[string]any) + } + } else { + inputsMap = make(map[string]any) + } + + // Inject aw_context as an optional internal input (skip if already present) + if _, alreadyExists := inputsMap["aw_context"]; alreadyExists { + return onSection + } + inputsMap["aw_context"] = map[string]any{ + "description": awContextInputDescription, + "required": false, + "default": "", + "type": "string", + } + + wdMap["inputs"] = inputsMap + onMap["workflow_dispatch"] = wdMap + + // Re-serialize to YAML preserving alphabetical key order and applying post-processing + // identical to extractTopLevelYAMLSection: QuoteCronExpressions + CleanYAMLNullValues. + orderedOn := OrderMapFields(onMap, []string{}) + wrappedData := yaml.MapSlice{{Key: "on", Value: orderedOn}} + newYAML, err := yaml.MarshalWithOptions(wrappedData, DefaultMarshalOptions...) + if err != nil { + dispatchWorkflowLog.Printf("Warning: failed to marshal on section after aw_context injection: %v", err) + return onSection + } + + result := strings.TrimSuffix(string(newYAML), "\n") + result = parser.QuoteCronExpressions(result) + result = CleanYAMLNullValues(result) + dispatchWorkflowLog.Print("Injected aw_context input into on.workflow_dispatch.inputs") + return result +} + // DispatchWorkflowConfig holds configuration for dispatching workflows from agent output type DispatchWorkflowConfig struct { BaseSafeOutputConfig `yaml:",inline"` diff --git a/pkg/workflow/dispatch_workflow_test.go b/pkg/workflow/dispatch_workflow_test.go index c7498485a71..ad21d54a9a5 100644 --- a/pkg/workflow/dispatch_workflow_test.go +++ b/pkg/workflow/dispatch_workflow_test.go @@ -6,6 +6,7 @@ import ( "encoding/json" "os" "path/filepath" + "strings" "testing" "github.com/stretchr/testify/assert" @@ -590,3 +591,113 @@ safe-outputs: assert.Contains(t, errStr, "self-reference", "Should contain first error") assert.NotContains(t, errStr, "Found 2", "Should not have multiple error header in fail-fast mode") } + +// TestInjectAwContextIntoOnYAML_NoWorkflowDispatch verifies that injectAwContextIntoOnYAML is +// a no-op when there is no workflow_dispatch trigger. +func TestInjectAwContextIntoOnYAML_NoWorkflowDispatch(t *testing.T) { + onYAML := `"on": + push:` + result := injectAwContextIntoOnYAML(onYAML) + assert.YAMLEq(t, onYAML, result, "Should return unchanged YAML when workflow_dispatch is absent") + assert.NotContains(t, result, "aw_context", "aw_context should not appear without workflow_dispatch") +} + +// TestInjectAwContextIntoOnYAML_BareWorkflowDispatch verifies that aw_context is injected +// into a bare workflow_dispatch trigger (no existing inputs). +func TestInjectAwContextIntoOnYAML_BareWorkflowDispatch(t *testing.T) { + onYAML := `"on": + workflow_dispatch:` + result := injectAwContextIntoOnYAML(onYAML) + assert.Contains(t, result, "aw_context:", "aw_context input should be injected") + assert.Contains(t, result, "workflow_dispatch:", "workflow_dispatch section should still be present") + assert.Contains(t, result, "type: string", "aw_context type should be string") + assert.Contains(t, result, "required: false", "aw_context should not be required") +} + +// TestInjectAwContextIntoOnYAML_ExistingInputs verifies that aw_context is appended without +// disturbing existing workflow_dispatch inputs. +func TestInjectAwContextIntoOnYAML_ExistingInputs(t *testing.T) { + onYAML := `"on": + workflow_dispatch: + inputs: + environment: + description: Deployment environment + required: true + type: string` + result := injectAwContextIntoOnYAML(onYAML) + assert.Contains(t, result, "environment:", "Existing 'environment' input should be preserved") + assert.Contains(t, result, "aw_context:", "aw_context should be added") +} + +// TestInjectAwContextIntoOnYAML_Idempotent verifies that calling injectAwContextIntoOnYAML twice +// does not duplicate the aw_context entry. +func TestInjectAwContextIntoOnYAML_Idempotent(t *testing.T) { + onYAML := `"on": + workflow_dispatch:` + once := injectAwContextIntoOnYAML(onYAML) + twice := injectAwContextIntoOnYAML(once) + assert.Equal(t, once, twice, "Second injection should be a no-op") + assert.Equal(t, 1, strings.Count(twice, "aw_context:"), "aw_context should appear exactly once") +} + +// TestInjectAwContextIntoOnYAML_WithOtherTriggers verifies that aw_context is injected +// even when other triggers are present alongside workflow_dispatch. +func TestInjectAwContextIntoOnYAML_WithOtherTriggers(t *testing.T) { + onYAML := `"on": + pull_request: + types: + - labeled + workflow_dispatch: + inputs: + item_number: + description: The number of the issue + required: false + default: "" + type: string` + result := injectAwContextIntoOnYAML(onYAML) + assert.Contains(t, result, "pull_request:", "pull_request trigger should be preserved") + assert.Contains(t, result, "item_number:", "item_number input should be preserved") + assert.Contains(t, result, "aw_context:", "aw_context should be added alongside item_number") +} + +// TestInjectAwContextIntoOnYAML_CompiledOutput verifies that a workflow with workflow_dispatch +// trigger produces aw_context in the compiled lock file on section. +func TestInjectAwContextIntoOnYAML_CompiledOutput(t *testing.T) { + compiler := NewCompilerWithVersion("1.0.0") + + tmpDir := t.TempDir() + workflowsDir := filepath.Join(tmpDir, ".github", "workflows") + require.NoError(t, os.MkdirAll(workflowsDir, 0755)) + + workflowMD := `--- +on: + workflow_dispatch: + inputs: + env: + description: "Target environment" + required: false + type: string +engine: copilot +permissions: + contents: read +--- + +# Test Workflow +Run tests. +` + mdFile := filepath.Join(workflowsDir, "test.md") + require.NoError(t, os.WriteFile(mdFile, []byte(workflowMD), 0644)) + + err := compiler.CompileWorkflow(mdFile) + require.NoError(t, err, "Compilation should succeed") + + lockFile := filepath.Join(workflowsDir, "test.lock.yml") + content, err := os.ReadFile(lockFile) + require.NoError(t, err, "Lock file should be generated") + + lockStr := string(content) + assert.Contains(t, lockStr, "aw_context:", "Compiled output should include aw_context input") + assert.Contains(t, lockStr, "Internal", "aw_context description should mention internal usage") + // Existing user input should still be present + assert.Contains(t, lockStr, "env:", "Existing user input should be preserved in compiled output") +} From 5fde3ebda39fe1874455e9950965579cc4d54f68 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 23 Mar 2026 19:20:40 +0000 Subject: [PATCH 3/9] fix(dispatch_workflow): correct workflow_id/workflow_call_id env vars and add aw_context validation" Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/6ace0e31-d2bf-40bb-87f6-697511f80581 --- actions/setup/js/dispatch_workflow.cjs | 8 ++- actions/setup/js/dispatch_workflow.test.cjs | 11 ++++ actions/setup/js/generate_aw_info.cjs | 25 +++++++- actions/setup/js/generate_aw_info.test.cjs | 69 +++++++++++++++++++++ 4 files changed, 109 insertions(+), 4 deletions(-) diff --git a/actions/setup/js/dispatch_workflow.cjs b/actions/setup/js/dispatch_workflow.cjs index dea6f652849..c57b013441d 100644 --- a/actions/setup/js/dispatch_workflow.cjs +++ b/actions/setup/js/dispatch_workflow.cjs @@ -194,8 +194,12 @@ async function main(config = {}) { const awContext = { repo: `${context.repo.owner}/${context.repo.repo}`, run_id: String(context.runId ?? ""), - workflow_id: process.env.GITHUB_WORKFLOW ?? "", - workflow_call_id: process.env.GITHUB_WORKFLOW_REF ?? "", + // GITHUB_WORKFLOW_REF provides the full workflow file path including the ref, + // e.g. "owner/repo/.github/workflows/dispatcher.yml@refs/heads/main" + workflow_id: process.env.GITHUB_WORKFLOW_REF ?? "", + // workflow_call_id uniquely identifies this specific call attempt: + // combine run_id with run_attempt (GITHUB_RUN_ATTEMPT) so re-runs produce different IDs. + workflow_call_id: `${process.env.GITHUB_RUN_ID ?? context.runId ?? ""}-${process.env.GITHUB_RUN_ATTEMPT ?? "1"}`, time: new Date().toISOString(), actor: context.actor ?? "", event_type: context.eventName ?? "", diff --git a/actions/setup/js/dispatch_workflow.test.cjs b/actions/setup/js/dispatch_workflow.test.cjs index 50b7f68335d..4cdc051e913 100644 --- a/actions/setup/js/dispatch_workflow.test.cjs +++ b/actions/setup/js/dispatch_workflow.test.cjs @@ -92,6 +92,13 @@ describe("dispatch_workflow handler factory", () => { }); it("should inject aw_context with correct fields", async () => { + process.env.GITHUB_WORKFLOW_REF = "test-owner/test-repo/.github/workflows/dispatcher.yml@refs/heads/main"; + process.env.GITHUB_RUN_ID = "99999"; + process.env.GITHUB_RUN_ATTEMPT = "2"; + global.context.runId = 99999; + global.context.actor = "octocat"; + global.context.eventName = "issues"; + const config = { workflows: ["test-workflow"], workflow_files: { "test-workflow": ".lock.yml" }, @@ -119,6 +126,10 @@ describe("dispatch_workflow handler factory", () => { expect(new Date(awContext.time).toISOString()).toBe(awContext.time); // repo should match mocked context expect(awContext.repo).toBe("test-owner/test-repo"); + // workflow_id uses GITHUB_WORKFLOW_REF (full workflow file path) + expect(awContext.workflow_id).toBe("test-owner/test-repo/.github/workflows/dispatcher.yml@refs/heads/main"); + // workflow_call_id combines run_id and run_attempt for uniqueness + expect(awContext.workflow_call_id).toBe("99999-2"); }); it("should reject workflows not in allowed list", async () => { diff --git a/actions/setup/js/generate_aw_info.cjs b/actions/setup/js/generate_aw_info.cjs index 6ffa5f55f64..863c8038e0d 100644 --- a/actions/setup/js/generate_aw_info.cjs +++ b/actions/setup/js/generate_aw_info.cjs @@ -94,12 +94,33 @@ async function main(core, ctx) { // Include aw_context when the workflow was triggered via workflow_dispatch with // the aw_context input set by a calling agentic workflow's dispatch_workflow handler. - // Validates JSON format and populates the context key in aw_info.json. + // Validates JSON format and structure before populating the context key in aw_info.json. const awContextRaw = ctx.payload?.inputs?.aw_context; if (awContextRaw && typeof awContextRaw === "string" && awContextRaw.trim() !== "") { try { const parsed = JSON.parse(awContextRaw); - awInfo.context = parsed; + + // Validate: must be a plain non-null object (not an array or primitive) + if (parsed === null || typeof parsed !== "object" || Array.isArray(parsed)) { + core.warning(`aw_context must be a JSON object, got: ${typeof parsed}`); + } else { + // Validate: no nested objects (all values must be primitives) + const nestedKeys = Object.entries(parsed) + .filter(([, v]) => v !== null && typeof v === "object") + .map(([k]) => k); + if (nestedKeys.length > 0) { + core.warning(`aw_context contains nested objects for keys: ${nestedKeys.join(", ")}. Ignoring aw_context.`); + } else { + // Validate: required fields must be present + const requiredFields = ["run_id", "repo", "workflow_id"]; + const missingFields = requiredFields.filter(f => !(f in parsed)); + if (missingFields.length > 0) { + core.warning(`aw_context is missing required fields: ${missingFields.join(", ")}. Ignoring aw_context.`); + } else { + awInfo.context = parsed; + } + } + } } catch { core.warning(`Failed to parse aw_context input as JSON: ${awContextRaw}`); } diff --git a/actions/setup/js/generate_aw_info.test.cjs b/actions/setup/js/generate_aw_info.test.cjs index 3215001fc9e..920f5024401 100644 --- a/actions/setup/js/generate_aw_info.test.cjs +++ b/actions/setup/js/generate_aw_info.test.cjs @@ -188,4 +188,73 @@ describe("generate_aw_info.cjs", () => { expect(mockCore.summary.addRaw).toHaveBeenCalled(); expect(mockCore.summary.write).toHaveBeenCalled(); }); + + it("should reject aw_context that is not a plain object", async () => { + const contextWithArrayInput = { + ...mockContext, + payload: { inputs: { aw_context: JSON.stringify([1, 2, 3]) } }, + }; + await main(mockCore, contextWithArrayInput); + const awInfo = JSON.parse(fs.readFileSync(awInfoPath, "utf8")); + expect(awInfo.context).toBeUndefined(); + expect(mockCore.warning).toHaveBeenCalledWith(expect.stringContaining("must be a JSON object")); + }); + + it("should reject aw_context with nested objects", async () => { + const contextWithNested = { + ...mockContext, + payload: { + inputs: { + aw_context: JSON.stringify({ + repo: "org/repo", + run_id: "123", + workflow_id: "my-workflow", + nested: { bad: "field" }, + }), + }, + }, + }; + await main(mockCore, contextWithNested); + const awInfo = JSON.parse(fs.readFileSync(awInfoPath, "utf8")); + expect(awInfo.context).toBeUndefined(); + expect(mockCore.warning).toHaveBeenCalledWith(expect.stringContaining("nested objects")); + }); + + it("should reject aw_context missing required fields", async () => { + const contextMissingFields = { + ...mockContext, + payload: { + inputs: { + aw_context: JSON.stringify({ actor: "octocat" }), + }, + }, + }; + await main(mockCore, contextMissingFields); + const awInfo = JSON.parse(fs.readFileSync(awInfoPath, "utf8")); + expect(awInfo.context).toBeUndefined(); + expect(mockCore.warning).toHaveBeenCalledWith(expect.stringContaining("missing required fields")); + expect(mockCore.warning).toHaveBeenCalledWith(expect.stringContaining("run_id")); + expect(mockCore.warning).toHaveBeenCalledWith(expect.stringContaining("repo")); + expect(mockCore.warning).toHaveBeenCalledWith(expect.stringContaining("workflow_id")); + }); + + it("should accept valid aw_context and set awInfo.context", async () => { + const validContext = { + repo: "org/repo", + run_id: "12345", + workflow_id: "org/repo/.github/workflows/dispatcher.yml@refs/heads/main", + workflow_call_id: "12345-1", + time: new Date().toISOString(), + actor: "octocat", + event_type: "issues", + }; + const contextWithValid = { + ...mockContext, + payload: { inputs: { aw_context: JSON.stringify(validContext) } }, + }; + await main(mockCore, contextWithValid); + const awInfo = JSON.parse(fs.readFileSync(awInfoPath, "utf8")); + expect(awInfo.context).toEqual(validContext); + expect(mockCore.warning).not.toHaveBeenCalledWith(expect.stringContaining("aw_context")); + }); }); From a950572c04ae0678f61347b31eb8ea1c99f651f5 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 23 Mar 2026 19:55:13 +0000 Subject: [PATCH 4/9] chore: merge main and recompile workflows Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/b6b38f90-3c5f-465a-909b-d27efb1e4cb0 --- .github/workflows/ci-doctor.lock.yml | 5 +++++ .github/workflows/daily-team-status.lock.yml | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci-doctor.lock.yml b/.github/workflows/ci-doctor.lock.yml index a19363a9c3a..0e3a15b9ba8 100644 --- a/.github/workflows/ci-doctor.lock.yml +++ b/.github/workflows/ci-doctor.lock.yml @@ -35,6 +35,11 @@ name: "CI Failure Doctor" - labeled workflow_dispatch: inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string item_number: default: "" description: The number of the issue, pull request, or discussion diff --git a/.github/workflows/daily-team-status.lock.yml b/.github/workflows/daily-team-status.lock.yml index 69f201a0333..071a20026f6 100644 --- a/.github/workflows/daily-team-status.lock.yml +++ b/.github/workflows/daily-team-status.lock.yml @@ -39,7 +39,7 @@ name: "Daily Team Status" "on": schedule: - - cron: 0 9 * * 1-5 + - cron: "0 9 * * 1-5" workflow_dispatch: inputs: aw_context: From a257941256eaf95a995c14d494a8fd9297be4aa7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 23 Mar 2026 20:14:03 +0000 Subject: [PATCH 5/9] Add changeset [skip-ci] --- .../patch-add-aw-context-workflow-dispatch-traceability.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/patch-add-aw-context-workflow-dispatch-traceability.md diff --git a/.changeset/patch-add-aw-context-workflow-dispatch-traceability.md b/.changeset/patch-add-aw-context-workflow-dispatch-traceability.md new file mode 100644 index 00000000000..be96904a22c --- /dev/null +++ b/.changeset/patch-add-aw-context-workflow-dispatch-traceability.md @@ -0,0 +1,5 @@ +--- +"gh-aw": patch +--- + +Add `aw_context` caller metadata propagation for compiled `workflow_dispatch` workflows, so dispatch traceability data is automatically injected at trigger time and surfaced in `aw_info.json`. From 8d2b7e49d2fdcacae1f4d68f8d827a01ea988c63 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 23 Mar 2026 20:35:01 +0000 Subject: [PATCH 6/9] refactor(aw_context): opt-in injection, shared aw_context.cjs, dispatch_repository support Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/a749f54b-e89d-4722-8561-c7122dd23223 --- .../agent-performance-analyzer.lock.yml | 7 +- .../workflows/agent-persona-explorer.lock.yml | 7 +- .github/workflows/artifacts-summary.lock.yml | 7 +- .github/workflows/audit-workflows.lock.yml | 7 +- .github/workflows/auto-triage-issues.lock.yml | 7 +- .github/workflows/blog-auditor.lock.yml | 7 +- .github/workflows/bot-detection.lock.yml | 6 - .../breaking-change-checker.lock.yml | 7 +- .github/workflows/changeset.lock.yml | 11 +- .github/workflows/ci-coach.lock.yml | 6 - .github/workflows/ci-doctor.lock.yml | 5 - .../claude-code-user-docs-review.lock.yml | 7 +- .../cli-consistency-checker.lock.yml | 6 - .../workflows/cli-version-checker.lock.yml | 7 +- .../workflows/code-scanning-fixer.lock.yml | 7 +- .github/workflows/code-simplifier.lock.yml | 8 +- .../codex-github-remote-mcp-test.lock.yml | 6 - .../commit-changes-analyzer.lock.yml | 5 - .../constraint-solving-potd.lock.yml | 7 +- .github/workflows/contribution-check.lock.yml | 7 +- .../workflows/copilot-agent-analysis.lock.yml | 7 +- .../copilot-cli-deep-research.lock.yml | 7 +- .../copilot-pr-merged-report.lock.yml | 6 - .../copilot-pr-nlp-analysis.lock.yml | 6 - .../copilot-pr-prompt-analysis.lock.yml | 7 +- .../copilot-session-insights.lock.yml | 7 +- .../daily-architecture-diagram.lock.yml | 7 +- .../daily-assign-issue-to-user.lock.yml | 7 +- .github/workflows/daily-choice-test.lock.yml | 6 - .../workflows/daily-cli-performance.lock.yml | 30 +- .../workflows/daily-cli-tools-tester.lock.yml | 7 +- .github/workflows/daily-code-metrics.lock.yml | 7 +- .../daily-community-attribution.lock.yml | 7 +- .../workflows/daily-compiler-quality.lock.yml | 7 +- .../daily-copilot-token-report.lock.yml | 6 - .github/workflows/daily-doc-healer.lock.yml | 7 +- .github/workflows/daily-doc-updater.lock.yml | 7 +- .github/workflows/daily-fact.lock.yml | 6 - .github/workflows/daily-file-diet.lock.yml | 7 +- .../workflows/daily-firewall-report.lock.yml | 7 +- .../workflows/daily-function-namer.lock.yml | 7 +- .../daily-integrity-analysis.lock.yml | 7 +- .../workflows/daily-issues-report.lock.yml | 7 +- .../daily-malicious-code-scan.lock.yml | 7 +- .../daily-mcp-concurrency-analysis.lock.yml | 6 - .../daily-multi-device-docs-tester.lock.yml | 6 +- .github/workflows/daily-news.lock.yml | 6 - .../daily-observability-report.lock.yml | 7 +- .../daily-performance-summary.lock.yml | 7 +- .github/workflows/daily-regulatory.lock.yml | 7 +- .../daily-rendering-scripts-verifier.lock.yml | 8 +- .../workflows/daily-repo-chronicle.lock.yml | 6 - .../daily-safe-output-integrator.lock.yml | 7 +- .../daily-safe-output-optimizer.lock.yml | 8 +- .../daily-safe-outputs-conformance.lock.yml | 7 +- .../workflows/daily-secrets-analysis.lock.yml | 7 +- .../daily-security-red-team.lock.yml | 7 +- .github/workflows/daily-semgrep-scan.lock.yml | 7 +- .../daily-syntax-error-quality.lock.yml | 7 +- .../daily-team-evolution-insights.lock.yml | 7 +- .github/workflows/daily-team-status.lock.yml | 8 +- .../daily-testify-uber-super-expert.lock.yml | 8 +- .../workflows/daily-workflow-updater.lock.yml | 7 +- .github/workflows/dead-code-remover.lock.yml | 8 +- .github/workflows/deep-report.lock.yml | 6 - .github/workflows/delight.lock.yml | 7 +- .github/workflows/dependabot-burner.lock.yml | 7 +- .../workflows/dependabot-go-checker.lock.yml | 6 - .github/workflows/dev.lock.yml | 6 - .../developer-docs-consolidator.lock.yml | 7 +- .github/workflows/dictation-prompt.lock.yml | 6 - .../workflows/discussion-task-miner.lock.yml | 7 +- .github/workflows/docs-noob-tester.lock.yml | 7 +- .github/workflows/draft-pr-cleanup.lock.yml | 7 +- .../duplicate-code-detector.lock.yml | 7 +- .../example-permissions-warning.lock.yml | 6 - .../example-workflow-analyzer.lock.yml | 7 +- .github/workflows/firewall-escape.lock.yml | 9 +- .github/workflows/firewall.lock.yml | 6 - .../workflows/functional-pragmatist.lock.yml | 6 - .../github-mcp-structural-analysis.lock.yml | 6 - .../github-mcp-tools-report.lock.yml | 7 +- .../github-remote-mcp-auth-test.lock.yml | 7 +- .../workflows/glossary-maintainer.lock.yml | 6 - .github/workflows/go-fan.lock.yml | 6 - .github/workflows/go-logger.lock.yml | 7 +- .../workflows/go-pattern-detector.lock.yml | 6 - .github/workflows/gpclean.lock.yml | 7 +- .github/workflows/hourly-ci-cleaner.lock.yml | 6 - .../workflows/instructions-janitor.lock.yml | 7 +- .github/workflows/issue-arborist.lock.yml | 7 +- .github/workflows/issue-monster.lock.yml | 362 +++++++++++++++++- .github/workflows/issue-triage-agent.lock.yml | 6 - .github/workflows/jsweep.lock.yml | 7 +- .../workflows/layout-spec-maintainer.lock.yml | 6 - .github/workflows/lockfile-stats.lock.yml | 7 +- .github/workflows/mcp-inspector.lock.yml | 7 +- .github/workflows/metrics-collector.lock.yml | 7 +- .../workflows/notion-issue-summary.lock.yml | 5 - .github/workflows/org-health-report.lock.yml | 7 +- .github/workflows/pdf-summary.lock.yml | 5 - .github/workflows/poem-bot.lock.yml | 8 +- .github/workflows/portfolio-analyst.lock.yml | 7 +- .github/workflows/pr-triage-agent.lock.yml | 6 - .../prompt-clustering-analysis.lock.yml | 7 +- .github/workflows/python-data-charts.lock.yml | 6 - .github/workflows/refiner.lock.yml | 7 +- .github/workflows/release.lock.yml | 8 +- .../workflows/repo-audit-analyzer.lock.yml | 5 - .github/workflows/repo-tree-map.lock.yml | 7 +- .../repository-quality-improver.lock.yml | 6 - .github/workflows/research.lock.yml | 5 - .github/workflows/safe-output-health.lock.yml | 7 +- .../schema-consistency-checker.lock.yml | 7 +- .../schema-feature-coverage.lock.yml | 7 +- .github/workflows/scout.lock.yml | 9 +- .../workflows/security-compliance.lock.yml | 5 - .../semantic-function-refactor.lock.yml | 7 +- .github/workflows/sergo.lock.yml | 7 +- .../workflows/slide-deck-maintainer.lock.yml | 6 +- .../workflows/smoke-agent-all-merged.lock.yml | 10 +- .../workflows/smoke-agent-all-none.lock.yml | 10 +- .../smoke-agent-public-approved.lock.yml | 10 +- .../smoke-agent-public-none.lock.yml | 10 +- .../smoke-agent-scoped-approved.lock.yml | 10 +- .../workflows/smoke-call-workflow.lock.yml | 8 +- .github/workflows/smoke-claude.lock.yml | 10 +- .github/workflows/smoke-codex.lock.yml | 10 +- .github/workflows/smoke-copilot-arm.lock.yml | 10 +- .github/workflows/smoke-copilot.lock.yml | 5 - .../smoke-create-cross-repo-pr.lock.yml | 10 +- .github/workflows/smoke-gemini.lock.yml | 10 +- .github/workflows/smoke-multi-pr.lock.yml | 10 +- .github/workflows/smoke-project.lock.yml | 10 +- .github/workflows/smoke-temporary-id.lock.yml | 10 +- .github/workflows/smoke-test-tools.lock.yml | 10 +- .../smoke-update-cross-repo-pr.lock.yml | 10 +- .../smoke-workflow-call-with-inputs.lock.yml | 5 - .../workflows/smoke-workflow-call.lock.yml | 5 - .../workflows/stale-repo-identifier.lock.yml | 5 - .../workflows/static-analysis-report.lock.yml | 7 +- .../workflows/step-name-alignment.lock.yml | 7 +- .github/workflows/sub-issue-closer.lock.yml | 7 +- .github/workflows/super-linter.lock.yml | 6 - .../workflows/technical-doc-writer.lock.yml | 5 - .github/workflows/terminal-stylist.lock.yml | 7 +- .../test-create-pr-error-handling.lock.yml | 6 - .github/workflows/test-dispatcher.lock.yml | 8 +- .../test-project-url-default.lock.yml | 6 - .github/workflows/test-workflow.lock.yml | 5 - .github/workflows/tidy.lock.yml | 8 +- .github/workflows/typist.lock.yml | 6 - .../workflows/ubuntu-image-analyzer.lock.yml | 8 +- .github/workflows/unbloat-docs.lock.yml | 8 +- .github/workflows/update-astro.lock.yml | 8 +- .github/workflows/video-analyzer.lock.yml | 5 - .../weekly-blog-post-writer.lock.yml | 7 +- .../weekly-editors-health-check.lock.yml | 7 +- .../workflows/weekly-issue-summary.lock.yml | 6 - .../weekly-safe-outputs-spec-review.lock.yml | 7 +- .../workflow-health-manager.lock.yml | 7 +- .../workflows/workflow-normalizer.lock.yml | 7 +- .../workflow-skill-extractor.lock.yml | 7 +- actions/setup/js/aw_context.cjs | 27 ++ actions/setup/js/dispatch_repository.cjs | 4 + actions/setup/js/dispatch_workflow.cjs | 24 +- actions/setup/js/dispatch_workflow.test.cjs | 10 + pkg/workflow/compiler_safe_outputs_config.go | 5 + pkg/workflow/compiler_yaml.go | 3 - pkg/workflow/dispatch_workflow.go | 98 +---- pkg/workflow/dispatch_workflow_test.go | 111 ------ pkg/workflow/safe_outputs_dispatch.go | 35 ++ 172 files changed, 637 insertions(+), 1202 deletions(-) create mode 100644 actions/setup/js/aw_context.cjs diff --git a/.github/workflows/agent-performance-analyzer.lock.yml b/.github/workflows/agent-performance-analyzer.lock.yml index ca5b9ca3136..24050e7fcaa 100644 --- a/.github/workflows/agent-performance-analyzer.lock.yml +++ b/.github/workflows/agent-performance-analyzer.lock.yml @@ -32,13 +32,8 @@ name: "Agent Performance Analyzer - Meta-Orchestrator" "on": schedule: - cron: "43 20 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/agent-persona-explorer.lock.yml b/.github/workflows/agent-persona-explorer.lock.yml index b016a614401..6d996f0f4d2 100644 --- a/.github/workflows/agent-persona-explorer.lock.yml +++ b/.github/workflows/agent-persona-explorer.lock.yml @@ -32,13 +32,8 @@ name: "Agent Persona Explorer" "on": schedule: - cron: "26 15 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/artifacts-summary.lock.yml b/.github/workflows/artifacts-summary.lock.yml index 6344a9fdc59..4c4304dd7a5 100644 --- a/.github/workflows/artifacts-summary.lock.yml +++ b/.github/workflows/artifacts-summary.lock.yml @@ -33,13 +33,8 @@ name: "Artifacts Summary" "on": schedule: - cron: "33 5 * * 0" + # Friendly format: weekly on sunday around 06:00 (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/audit-workflows.lock.yml b/.github/workflows/audit-workflows.lock.yml index 4c31063ab69..a91d6ce3cee 100644 --- a/.github/workflows/audit-workflows.lock.yml +++ b/.github/workflows/audit-workflows.lock.yml @@ -34,13 +34,8 @@ name: "Agentic Workflow Audit Agent" "on": schedule: - cron: "12 16 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/auto-triage-issues.lock.yml b/.github/workflows/auto-triage-issues.lock.yml index 75bd2130c37..fa70f3c5c45 100644 --- a/.github/workflows/auto-triage-issues.lock.yml +++ b/.github/workflows/auto-triage-issues.lock.yml @@ -36,13 +36,8 @@ name: "Auto-Triage Issues" - edited schedule: - cron: "27 */6 * * *" + # Friendly format: every 6h (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/blog-auditor.lock.yml b/.github/workflows/blog-auditor.lock.yml index 65033264143..6439b235c01 100644 --- a/.github/workflows/blog-auditor.lock.yml +++ b/.github/workflows/blog-auditor.lock.yml @@ -32,13 +32,8 @@ name: "Blog Auditor" "on": schedule: - cron: "26 11 * * 3" + # Friendly format: weekly on wednesday around 12:00 (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/bot-detection.lock.yml b/.github/workflows/bot-detection.lock.yml index 59e25f9ce0b..6dcc6b0aa17 100644 --- a/.github/workflows/bot-detection.lock.yml +++ b/.github/workflows/bot-detection.lock.yml @@ -29,12 +29,6 @@ name: "Bot Detection" schedule: - cron: "0 */6 * * *" workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/breaking-change-checker.lock.yml b/.github/workflows/breaking-change-checker.lock.yml index b8973254502..cd962f0db4a 100644 --- a/.github/workflows/breaking-change-checker.lock.yml +++ b/.github/workflows/breaking-change-checker.lock.yml @@ -33,13 +33,8 @@ name: "Breaking Change Checker" "on": schedule: - cron: "0 14 * * 1-5" + # skip-if-match: is:issue is:open in:title "[breaking-change]" # Skip-if-match processed as search check in pre-activation job workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/changeset.lock.yml b/.github/workflows/changeset.lock.yml index 453fd57594b..eb9d80de6f8 100644 --- a/.github/workflows/changeset.lock.yml +++ b/.github/workflows/changeset.lock.yml @@ -32,15 +32,12 @@ name: "Changeset Generator" "on": pull_request: + # names: # Label filtering applied via job conditions + # - changeset # Label filtering applied via job conditions + # - smoke # Label filtering applied via job conditions types: - labeled - workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string + workflow_dispatch: null permissions: {} diff --git a/.github/workflows/ci-coach.lock.yml b/.github/workflows/ci-coach.lock.yml index 7c65652bcee..f3d6a05849f 100644 --- a/.github/workflows/ci-coach.lock.yml +++ b/.github/workflows/ci-coach.lock.yml @@ -36,12 +36,6 @@ name: "CI Optimization Coach" schedule: - cron: "0 13 * * 1-5" workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/ci-doctor.lock.yml b/.github/workflows/ci-doctor.lock.yml index 0e3a15b9ba8..a19363a9c3a 100644 --- a/.github/workflows/ci-doctor.lock.yml +++ b/.github/workflows/ci-doctor.lock.yml @@ -35,11 +35,6 @@ name: "CI Failure Doctor" - labeled workflow_dispatch: inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string item_number: default: "" description: The number of the issue, pull request, or discussion diff --git a/.github/workflows/claude-code-user-docs-review.lock.yml b/.github/workflows/claude-code-user-docs-review.lock.yml index fa6bc4f3af5..10aa92e3fde 100644 --- a/.github/workflows/claude-code-user-docs-review.lock.yml +++ b/.github/workflows/claude-code-user-docs-review.lock.yml @@ -32,13 +32,8 @@ name: "Claude Code User Documentation Review" "on": schedule: - cron: "13 17 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/cli-consistency-checker.lock.yml b/.github/workflows/cli-consistency-checker.lock.yml index 0f65974e2a2..2819687b79f 100644 --- a/.github/workflows/cli-consistency-checker.lock.yml +++ b/.github/workflows/cli-consistency-checker.lock.yml @@ -29,12 +29,6 @@ name: "CLI Consistency Checker" schedule: - cron: "0 13 * * 1-5" workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/cli-version-checker.lock.yml b/.github/workflows/cli-version-checker.lock.yml index d69985c5c13..5094c424df8 100644 --- a/.github/workflows/cli-version-checker.lock.yml +++ b/.github/workflows/cli-version-checker.lock.yml @@ -33,13 +33,8 @@ name: "CLI Version Checker" "on": schedule: - cron: "45 6 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/code-scanning-fixer.lock.yml b/.github/workflows/code-scanning-fixer.lock.yml index eb79c8626fe..5ca69e91807 100644 --- a/.github/workflows/code-scanning-fixer.lock.yml +++ b/.github/workflows/code-scanning-fixer.lock.yml @@ -30,13 +30,8 @@ name: "Code Scanning Fixer" "on": + # skip-if-match: is:pr is:open in:title "[code-scanning-fix]" # Skip-if-match processed as search check in pre-activation job workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/code-simplifier.lock.yml b/.github/workflows/code-simplifier.lock.yml index 024a7c8cd0a..584080603d5 100644 --- a/.github/workflows/code-simplifier.lock.yml +++ b/.github/workflows/code-simplifier.lock.yml @@ -33,13 +33,9 @@ name: "Code Simplifier" "on": schedule: - cron: "30 17 * * *" + # Friendly format: daily (scattered) + # skip-if-match: is:pr is:open in:title "[code-simplifier]" # Skip-if-match processed as search check in pre-activation job workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/codex-github-remote-mcp-test.lock.yml b/.github/workflows/codex-github-remote-mcp-test.lock.yml index 300277a3e43..4cc8421d506 100644 --- a/.github/workflows/codex-github-remote-mcp-test.lock.yml +++ b/.github/workflows/codex-github-remote-mcp-test.lock.yml @@ -27,12 +27,6 @@ name: "Codex GitHub Remote MCP Test" "on": workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/commit-changes-analyzer.lock.yml b/.github/workflows/commit-changes-analyzer.lock.yml index 7cd978eddf2..2d63a5986f8 100644 --- a/.github/workflows/commit-changes-analyzer.lock.yml +++ b/.github/workflows/commit-changes-analyzer.lock.yml @@ -32,11 +32,6 @@ name: "Commit Changes Analyzer" "on": workflow_dispatch: inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string commit_url: description: GitHub commit URL to analyze changes since (e.g., https://github.com/owner/repo/commit/abc123) required: true diff --git a/.github/workflows/constraint-solving-potd.lock.yml b/.github/workflows/constraint-solving-potd.lock.yml index 60aaec0090e..5ca48355b9a 100644 --- a/.github/workflows/constraint-solving-potd.lock.yml +++ b/.github/workflows/constraint-solving-potd.lock.yml @@ -27,13 +27,8 @@ name: "Constraint Solving — Problem of the Day" "on": schedule: - cron: "32 16 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/contribution-check.lock.yml b/.github/workflows/contribution-check.lock.yml index 9994aedffbd..b777159d1d9 100644 --- a/.github/workflows/contribution-check.lock.yml +++ b/.github/workflows/contribution-check.lock.yml @@ -27,13 +27,8 @@ name: "Contribution Check" "on": schedule: - cron: "49 */4 * * *" + # Friendly format: every 4 hours (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/copilot-agent-analysis.lock.yml b/.github/workflows/copilot-agent-analysis.lock.yml index cac20b7b5f4..070ed8a6dab 100644 --- a/.github/workflows/copilot-agent-analysis.lock.yml +++ b/.github/workflows/copilot-agent-analysis.lock.yml @@ -35,13 +35,8 @@ name: "Copilot Agent PR Analysis" "on": schedule: - cron: "9 10 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/copilot-cli-deep-research.lock.yml b/.github/workflows/copilot-cli-deep-research.lock.yml index 4343e2fa302..790876f2146 100644 --- a/.github/workflows/copilot-cli-deep-research.lock.yml +++ b/.github/workflows/copilot-cli-deep-research.lock.yml @@ -32,13 +32,8 @@ name: "Copilot CLI Deep Research Agent" "on": schedule: - cron: "50 10 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/copilot-pr-merged-report.lock.yml b/.github/workflows/copilot-pr-merged-report.lock.yml index 28f66dc7b40..5a624f8ddb5 100644 --- a/.github/workflows/copilot-pr-merged-report.lock.yml +++ b/.github/workflows/copilot-pr-merged-report.lock.yml @@ -37,12 +37,6 @@ name: "Daily Copilot PR Merged Report" schedule: - cron: "0 15 * * 1-5" workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/copilot-pr-nlp-analysis.lock.yml b/.github/workflows/copilot-pr-nlp-analysis.lock.yml index 06dc2a38693..d2c0d161820 100644 --- a/.github/workflows/copilot-pr-nlp-analysis.lock.yml +++ b/.github/workflows/copilot-pr-nlp-analysis.lock.yml @@ -38,12 +38,6 @@ name: "Copilot PR Conversation NLP Analysis" schedule: - cron: "0 10 * * 1-5" workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/copilot-pr-prompt-analysis.lock.yml b/.github/workflows/copilot-pr-prompt-analysis.lock.yml index 52481c153e0..18365ab49db 100644 --- a/.github/workflows/copilot-pr-prompt-analysis.lock.yml +++ b/.github/workflows/copilot-pr-prompt-analysis.lock.yml @@ -35,13 +35,8 @@ name: "Copilot PR Prompt Pattern Analysis" "on": schedule: - cron: "11 10 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/copilot-session-insights.lock.yml b/.github/workflows/copilot-session-insights.lock.yml index e35c5d54221..f37529bcf52 100644 --- a/.github/workflows/copilot-session-insights.lock.yml +++ b/.github/workflows/copilot-session-insights.lock.yml @@ -37,13 +37,8 @@ name: "Copilot Session Insights" "on": schedule: - cron: "47 21 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/daily-architecture-diagram.lock.yml b/.github/workflows/daily-architecture-diagram.lock.yml index a902302a2d6..780cda8b8d3 100644 --- a/.github/workflows/daily-architecture-diagram.lock.yml +++ b/.github/workflows/daily-architecture-diagram.lock.yml @@ -32,13 +32,8 @@ name: "Architecture Diagram Generator" "on": schedule: - cron: "38 8 * * *" + # Friendly format: daily around 08:00 (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/daily-assign-issue-to-user.lock.yml b/.github/workflows/daily-assign-issue-to-user.lock.yml index ae1614a4bfd..789786bf33d 100644 --- a/.github/workflows/daily-assign-issue-to-user.lock.yml +++ b/.github/workflows/daily-assign-issue-to-user.lock.yml @@ -27,13 +27,8 @@ name: "Auto-Assign Issue" "on": schedule: - cron: "5 14 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/daily-choice-test.lock.yml b/.github/workflows/daily-choice-test.lock.yml index 593c9f5b637..7c8aeb79bd2 100644 --- a/.github/workflows/daily-choice-test.lock.yml +++ b/.github/workflows/daily-choice-test.lock.yml @@ -29,12 +29,6 @@ name: "Daily Choice Type Test" schedule: - cron: "0 12 * * 1-5" workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/daily-cli-performance.lock.yml b/.github/workflows/daily-cli-performance.lock.yml index 83d61886d1f..27262d000f1 100644 --- a/.github/workflows/daily-cli-performance.lock.yml +++ b/.github/workflows/daily-cli-performance.lock.yml @@ -31,15 +31,33 @@ name: "Daily CLI Performance Agent" "on": + # permissions: # Permissions applied to pre-activation job + # contents: read schedule: - cron: "5 22 * * *" + # Friendly format: daily (scattered) + # steps: # Steps injected into pre-activation job + # - id: changes + # name: Detect recent compilation-related changes + # uses: actions/github-script@v8 + # with: + # script: | + # const { owner, repo } = context.repo; + # const since = new Date(Date.now() - 24 * 60 * 60 * 1000).toISOString(); + # // Check commits touching Go source, go.mod/go.sum, or Makefile in last 24h + # const checkPaths = ['go.mod', 'go.sum', 'Makefile', 'pkg', 'cmd']; + # let hasChanges = false; + # for (const path of checkPaths) { + # const resp = await github.rest.repos.listCommits({ owner, repo, since, path, per_page: 1 }); + # if (resp.data.length > 0) { + # core.info(`Found recent compilation-related change via path: ${path}`); + # hasChanges = true; + # break; + # } + # } + # core.info(`has_changes=${hasChanges}`); + # core.setOutput('has_changes', hasChanges ? 'true' : 'false'); workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/daily-cli-tools-tester.lock.yml b/.github/workflows/daily-cli-tools-tester.lock.yml index 4a148628525..85eb0ad0cb8 100644 --- a/.github/workflows/daily-cli-tools-tester.lock.yml +++ b/.github/workflows/daily-cli-tools-tester.lock.yml @@ -32,13 +32,8 @@ name: "Daily CLI Tools Exploratory Tester" "on": schedule: - cron: "24 4 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/daily-code-metrics.lock.yml b/.github/workflows/daily-code-metrics.lock.yml index 00d7af28d9f..01bb4f73df8 100644 --- a/.github/workflows/daily-code-metrics.lock.yml +++ b/.github/workflows/daily-code-metrics.lock.yml @@ -34,13 +34,8 @@ name: "Daily Code Metrics and Trend Tracking Agent" "on": schedule: - cron: "29 18 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/daily-community-attribution.lock.yml b/.github/workflows/daily-community-attribution.lock.yml index 683ef43e8ff..04f2c974bbd 100644 --- a/.github/workflows/daily-community-attribution.lock.yml +++ b/.github/workflows/daily-community-attribution.lock.yml @@ -32,13 +32,8 @@ name: "Daily Community Attribution Updater" "on": schedule: - cron: "37 6 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/daily-compiler-quality.lock.yml b/.github/workflows/daily-compiler-quality.lock.yml index 784ca50dee1..94e27acbda2 100644 --- a/.github/workflows/daily-compiler-quality.lock.yml +++ b/.github/workflows/daily-compiler-quality.lock.yml @@ -33,13 +33,8 @@ name: "Daily Compiler Quality Check" "on": schedule: - cron: "5 0 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/daily-copilot-token-report.lock.yml b/.github/workflows/daily-copilot-token-report.lock.yml index 8cde58f6574..41d1e7e9d53 100644 --- a/.github/workflows/daily-copilot-token-report.lock.yml +++ b/.github/workflows/daily-copilot-token-report.lock.yml @@ -35,12 +35,6 @@ name: "Daily Copilot Token Consumption Report" schedule: - cron: "0 11 * * 1-5" workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/daily-doc-healer.lock.yml b/.github/workflows/daily-doc-healer.lock.yml index 31323f37c33..ce375c32ad6 100644 --- a/.github/workflows/daily-doc-healer.lock.yml +++ b/.github/workflows/daily-doc-healer.lock.yml @@ -33,13 +33,8 @@ name: "Daily Documentation Healer" "on": schedule: - cron: "24 8 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/daily-doc-updater.lock.yml b/.github/workflows/daily-doc-updater.lock.yml index 7ac07beb292..7197975dc40 100644 --- a/.github/workflows/daily-doc-updater.lock.yml +++ b/.github/workflows/daily-doc-updater.lock.yml @@ -32,13 +32,8 @@ name: "Daily Documentation Updater" "on": schedule: - cron: "38 18 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/daily-fact.lock.yml b/.github/workflows/daily-fact.lock.yml index a504894e3d8..b911668eabc 100644 --- a/.github/workflows/daily-fact.lock.yml +++ b/.github/workflows/daily-fact.lock.yml @@ -31,12 +31,6 @@ name: "Daily Fact About gh-aw" schedule: - cron: "0 11 * * 1-5" workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/daily-file-diet.lock.yml b/.github/workflows/daily-file-diet.lock.yml index f8a9a8a333c..cb2b761d60c 100644 --- a/.github/workflows/daily-file-diet.lock.yml +++ b/.github/workflows/daily-file-diet.lock.yml @@ -35,13 +35,8 @@ name: "Daily File Diet" "on": schedule: - cron: "0 13 * * 1-5" + # skip-if-match: is:issue is:open in:title "[file-diet]" # Skip-if-match processed as search check in pre-activation job workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/daily-firewall-report.lock.yml b/.github/workflows/daily-firewall-report.lock.yml index e7686e6cf3d..493d64f3f64 100644 --- a/.github/workflows/daily-firewall-report.lock.yml +++ b/.github/workflows/daily-firewall-report.lock.yml @@ -33,13 +33,8 @@ name: "Daily Firewall Logs Collector and Reporter" "on": schedule: - cron: "37 0 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/daily-function-namer.lock.yml b/.github/workflows/daily-function-namer.lock.yml index 8e00d9c46f2..7832b80249f 100644 --- a/.github/workflows/daily-function-namer.lock.yml +++ b/.github/workflows/daily-function-namer.lock.yml @@ -33,13 +33,8 @@ name: "Daily Go Function Namer" "on": schedule: - cron: "12 5 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/daily-integrity-analysis.lock.yml b/.github/workflows/daily-integrity-analysis.lock.yml index e845023da10..0ab95249c27 100644 --- a/.github/workflows/daily-integrity-analysis.lock.yml +++ b/.github/workflows/daily-integrity-analysis.lock.yml @@ -33,13 +33,8 @@ name: "Daily DIFC Integrity-Filtered Events Analyzer" "on": schedule: - cron: "54 9 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/daily-issues-report.lock.yml b/.github/workflows/daily-issues-report.lock.yml index 13dd8313f91..cebdc9c1019 100644 --- a/.github/workflows/daily-issues-report.lock.yml +++ b/.github/workflows/daily-issues-report.lock.yml @@ -37,13 +37,8 @@ name: "Daily Issues Report Generator" "on": schedule: - cron: "45 20 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/daily-malicious-code-scan.lock.yml b/.github/workflows/daily-malicious-code-scan.lock.yml index 7fcc4833f68..6b1c3dee083 100644 --- a/.github/workflows/daily-malicious-code-scan.lock.yml +++ b/.github/workflows/daily-malicious-code-scan.lock.yml @@ -32,13 +32,8 @@ name: "Daily Malicious Code Scan Agent" "on": schedule: - cron: "24 9 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/daily-mcp-concurrency-analysis.lock.yml b/.github/workflows/daily-mcp-concurrency-analysis.lock.yml index 199c1dd04ee..e693a9d02f4 100644 --- a/.github/workflows/daily-mcp-concurrency-analysis.lock.yml +++ b/.github/workflows/daily-mcp-concurrency-analysis.lock.yml @@ -34,12 +34,6 @@ name: "Daily MCP Tool Concurrency Analysis" schedule: - cron: "0 9 * * 1-5" workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/daily-multi-device-docs-tester.lock.yml b/.github/workflows/daily-multi-device-docs-tester.lock.yml index 5f551a48d27..4d36aa4f916 100644 --- a/.github/workflows/daily-multi-device-docs-tester.lock.yml +++ b/.github/workflows/daily-multi-device-docs-tester.lock.yml @@ -33,13 +33,9 @@ name: "Multi-Device Docs Tester" "on": schedule: - cron: "6 2 * * *" + # Friendly format: daily (scattered) workflow_dispatch: inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string devices: default: mobile,tablet,desktop description: "Device types to test (comma-separated: mobile,tablet,desktop)" diff --git a/.github/workflows/daily-news.lock.yml b/.github/workflows/daily-news.lock.yml index 2368adc75c2..d2cc60a32b4 100644 --- a/.github/workflows/daily-news.lock.yml +++ b/.github/workflows/daily-news.lock.yml @@ -37,12 +37,6 @@ name: "Daily News" schedule: - cron: "0 9 * * 1-5" workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/daily-observability-report.lock.yml b/.github/workflows/daily-observability-report.lock.yml index 8e1d9c73201..ab3a73134ef 100644 --- a/.github/workflows/daily-observability-report.lock.yml +++ b/.github/workflows/daily-observability-report.lock.yml @@ -32,13 +32,8 @@ name: "Daily Observability Report for AWF Firewall and MCP Gateway" "on": schedule: - cron: "14 4 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/daily-performance-summary.lock.yml b/.github/workflows/daily-performance-summary.lock.yml index b32af9971c7..5cb35270eeb 100644 --- a/.github/workflows/daily-performance-summary.lock.yml +++ b/.github/workflows/daily-performance-summary.lock.yml @@ -34,13 +34,8 @@ name: "Daily Project Performance Summary Generator (Using MCP Scripts)" "on": schedule: - cron: "51 8 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/daily-regulatory.lock.yml b/.github/workflows/daily-regulatory.lock.yml index 09f00a1976f..73300f5ce46 100644 --- a/.github/workflows/daily-regulatory.lock.yml +++ b/.github/workflows/daily-regulatory.lock.yml @@ -33,13 +33,8 @@ name: "Daily Regulatory Report Generator" "on": schedule: - cron: "52 23 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/daily-rendering-scripts-verifier.lock.yml b/.github/workflows/daily-rendering-scripts-verifier.lock.yml index 74c78c4fb3e..f723c8af6ca 100644 --- a/.github/workflows/daily-rendering-scripts-verifier.lock.yml +++ b/.github/workflows/daily-rendering-scripts-verifier.lock.yml @@ -33,13 +33,9 @@ name: "Daily Rendering Scripts Verifier" "on": schedule: - cron: "38 8 * * *" + # Friendly format: daily (scattered) + # skip-if-match: is:pr is:open in:title "[rendering-scripts]" # Skip-if-match processed as search check in pre-activation job workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/daily-repo-chronicle.lock.yml b/.github/workflows/daily-repo-chronicle.lock.yml index 4044991ceb9..30c6faac5a6 100644 --- a/.github/workflows/daily-repo-chronicle.lock.yml +++ b/.github/workflows/daily-repo-chronicle.lock.yml @@ -35,12 +35,6 @@ name: "The Daily Repository Chronicle" schedule: - cron: "0 16 * * 1-5" workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/daily-safe-output-integrator.lock.yml b/.github/workflows/daily-safe-output-integrator.lock.yml index 04470f3acc5..5f2fcc31a6d 100644 --- a/.github/workflows/daily-safe-output-integrator.lock.yml +++ b/.github/workflows/daily-safe-output-integrator.lock.yml @@ -32,13 +32,8 @@ name: "Daily Safe Output Integrator" "on": schedule: - cron: "19 5 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/daily-safe-output-optimizer.lock.yml b/.github/workflows/daily-safe-output-optimizer.lock.yml index bbdbbb91b56..0f7a5684861 100644 --- a/.github/workflows/daily-safe-output-optimizer.lock.yml +++ b/.github/workflows/daily-safe-output-optimizer.lock.yml @@ -34,13 +34,9 @@ name: "Daily Safe Output Tool Optimizer" "on": schedule: - cron: "11 4 * * *" + # Friendly format: daily (scattered) + # skip-if-match: is:issue is:open in:title "[safeoutputs]" # Skip-if-match processed as search check in pre-activation job workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/daily-safe-outputs-conformance.lock.yml b/.github/workflows/daily-safe-outputs-conformance.lock.yml index 6a60f9a51f1..75685c112f1 100644 --- a/.github/workflows/daily-safe-outputs-conformance.lock.yml +++ b/.github/workflows/daily-safe-outputs-conformance.lock.yml @@ -32,13 +32,8 @@ name: "Daily Safe Outputs Conformance Checker" "on": schedule: - cron: "16 15 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/daily-secrets-analysis.lock.yml b/.github/workflows/daily-secrets-analysis.lock.yml index d4356a0fa59..0c5c6e1c7a3 100644 --- a/.github/workflows/daily-secrets-analysis.lock.yml +++ b/.github/workflows/daily-secrets-analysis.lock.yml @@ -32,13 +32,8 @@ name: "Daily Secrets Analysis Agent" "on": schedule: - cron: "38 4 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/daily-security-red-team.lock.yml b/.github/workflows/daily-security-red-team.lock.yml index 78c5750641f..9b5035d7b73 100644 --- a/.github/workflows/daily-security-red-team.lock.yml +++ b/.github/workflows/daily-security-red-team.lock.yml @@ -32,13 +32,8 @@ name: "Daily Security Red Team Agent" "on": schedule: - cron: "34 12 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/daily-semgrep-scan.lock.yml b/.github/workflows/daily-semgrep-scan.lock.yml index 5601b51dd4f..e2b8071ebfc 100644 --- a/.github/workflows/daily-semgrep-scan.lock.yml +++ b/.github/workflows/daily-semgrep-scan.lock.yml @@ -32,13 +32,8 @@ name: "Daily Semgrep Scan" "on": schedule: - cron: "11 18 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/daily-syntax-error-quality.lock.yml b/.github/workflows/daily-syntax-error-quality.lock.yml index 1e80a2b6ea8..84729dcfaab 100644 --- a/.github/workflows/daily-syntax-error-quality.lock.yml +++ b/.github/workflows/daily-syntax-error-quality.lock.yml @@ -32,13 +32,8 @@ name: "Daily Syntax Error Quality Check" "on": schedule: - cron: "38 11 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/daily-team-evolution-insights.lock.yml b/.github/workflows/daily-team-evolution-insights.lock.yml index 268d05c9c08..ce4fe71ccbd 100644 --- a/.github/workflows/daily-team-evolution-insights.lock.yml +++ b/.github/workflows/daily-team-evolution-insights.lock.yml @@ -32,13 +32,8 @@ name: "Daily Team Evolution Insights" "on": schedule: - cron: "31 9 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/daily-team-status.lock.yml b/.github/workflows/daily-team-status.lock.yml index 071a20026f6..05af7a6e46c 100644 --- a/.github/workflows/daily-team-status.lock.yml +++ b/.github/workflows/daily-team-status.lock.yml @@ -40,13 +40,7 @@ name: "Daily Team Status" "on": schedule: - cron: "0 9 * * 1-5" - workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string + workflow_dispatch: null permissions: {} diff --git a/.github/workflows/daily-testify-uber-super-expert.lock.yml b/.github/workflows/daily-testify-uber-super-expert.lock.yml index 054c491089d..93949d80834 100644 --- a/.github/workflows/daily-testify-uber-super-expert.lock.yml +++ b/.github/workflows/daily-testify-uber-super-expert.lock.yml @@ -35,13 +35,9 @@ name: "Daily Testify Uber Super Expert" "on": schedule: - cron: "48 17 * * *" + # Friendly format: daily (scattered) + # skip-if-match: is:issue is:open in:title "[testify-expert]" # Skip-if-match processed as search check in pre-activation job workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/daily-workflow-updater.lock.yml b/.github/workflows/daily-workflow-updater.lock.yml index 8f675eddb59..387f3a157c1 100644 --- a/.github/workflows/daily-workflow-updater.lock.yml +++ b/.github/workflows/daily-workflow-updater.lock.yml @@ -28,13 +28,8 @@ name: "Daily Workflow Updater" "on": schedule: - cron: "17 6 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/dead-code-remover.lock.yml b/.github/workflows/dead-code-remover.lock.yml index 25d1f699190..1e9d14235c3 100644 --- a/.github/workflows/dead-code-remover.lock.yml +++ b/.github/workflows/dead-code-remover.lock.yml @@ -32,13 +32,9 @@ name: "Dead Code Removal Agent" "on": schedule: - cron: "25 21 * * *" + # Friendly format: daily (scattered) + # skip-if-match: is:pr is:open in:title "[dead-code] " # Skip-if-match processed as search check in pre-activation job workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/deep-report.lock.yml b/.github/workflows/deep-report.lock.yml index 957a954b5bf..32dd22b33e7 100644 --- a/.github/workflows/deep-report.lock.yml +++ b/.github/workflows/deep-report.lock.yml @@ -36,12 +36,6 @@ name: "DeepReport - Intelligence Gathering Agent" schedule: - cron: "0 15 * * 1-5" workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/delight.lock.yml b/.github/workflows/delight.lock.yml index d317b32dfb5..abc4a223ae2 100644 --- a/.github/workflows/delight.lock.yml +++ b/.github/workflows/delight.lock.yml @@ -33,13 +33,8 @@ name: "Delight" "on": schedule: - cron: "25 18 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/dependabot-burner.lock.yml b/.github/workflows/dependabot-burner.lock.yml index 68d63ea97b2..6ca073f9576 100644 --- a/.github/workflows/dependabot-burner.lock.yml +++ b/.github/workflows/dependabot-burner.lock.yml @@ -31,13 +31,8 @@ name: "Dependabot Burner" "on": schedule: - cron: "27 4 * * 0" + # Friendly format: weekly (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/dependabot-go-checker.lock.yml b/.github/workflows/dependabot-go-checker.lock.yml index 2f76d4ed3a5..d3e3e34abc7 100644 --- a/.github/workflows/dependabot-go-checker.lock.yml +++ b/.github/workflows/dependabot-go-checker.lock.yml @@ -33,12 +33,6 @@ name: "Dependabot Dependency Checker" schedule: - cron: "0 9 * * 1,3,5" workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/dev.lock.yml b/.github/workflows/dev.lock.yml index 67db42ac184..47335947ca0 100644 --- a/.github/workflows/dev.lock.yml +++ b/.github/workflows/dev.lock.yml @@ -29,12 +29,6 @@ name: "Dev" schedule: - cron: "0 9 * * *" workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/developer-docs-consolidator.lock.yml b/.github/workflows/developer-docs-consolidator.lock.yml index 87f388ddaff..d476b78487a 100644 --- a/.github/workflows/developer-docs-consolidator.lock.yml +++ b/.github/workflows/developer-docs-consolidator.lock.yml @@ -34,13 +34,8 @@ name: "Developer Documentation Consolidator" "on": schedule: - cron: "34 4 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/dictation-prompt.lock.yml b/.github/workflows/dictation-prompt.lock.yml index 7f86e87f078..42c165bcf1d 100644 --- a/.github/workflows/dictation-prompt.lock.yml +++ b/.github/workflows/dictation-prompt.lock.yml @@ -34,12 +34,6 @@ name: "Dictation Prompt Generator" schedule: - cron: "0 6 * * 0" workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/discussion-task-miner.lock.yml b/.github/workflows/discussion-task-miner.lock.yml index e29bfa81f02..ac96a01cdd4 100644 --- a/.github/workflows/discussion-task-miner.lock.yml +++ b/.github/workflows/discussion-task-miner.lock.yml @@ -33,13 +33,8 @@ name: "Discussion Task Miner - Code Quality Improvement Agent" "on": schedule: - cron: "40 */6 * * *" + # Friendly format: every 6h (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/docs-noob-tester.lock.yml b/.github/workflows/docs-noob-tester.lock.yml index 6986e6493da..2202a83975e 100644 --- a/.github/workflows/docs-noob-tester.lock.yml +++ b/.github/workflows/docs-noob-tester.lock.yml @@ -33,13 +33,8 @@ name: "Documentation Noob Tester" "on": schedule: - cron: "20 4 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/draft-pr-cleanup.lock.yml b/.github/workflows/draft-pr-cleanup.lock.yml index d56246c6fec..880a821b0a8 100644 --- a/.github/workflows/draft-pr-cleanup.lock.yml +++ b/.github/workflows/draft-pr-cleanup.lock.yml @@ -28,13 +28,8 @@ name: "Draft PR Cleanup" "on": schedule: - cron: "31 19 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/duplicate-code-detector.lock.yml b/.github/workflows/duplicate-code-detector.lock.yml index b10011eabf7..5d2468f47b8 100644 --- a/.github/workflows/duplicate-code-detector.lock.yml +++ b/.github/workflows/duplicate-code-detector.lock.yml @@ -33,13 +33,8 @@ name: "Duplicate Code Detector" "on": schedule: - cron: "44 3 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/example-permissions-warning.lock.yml b/.github/workflows/example-permissions-warning.lock.yml index e3f5a18f0e4..506e42b7fca 100644 --- a/.github/workflows/example-permissions-warning.lock.yml +++ b/.github/workflows/example-permissions-warning.lock.yml @@ -27,12 +27,6 @@ name: "Example: Properly Provisioned Permissions" "on": workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/example-workflow-analyzer.lock.yml b/.github/workflows/example-workflow-analyzer.lock.yml index 4e6cc3bffa9..abc8e80e035 100644 --- a/.github/workflows/example-workflow-analyzer.lock.yml +++ b/.github/workflows/example-workflow-analyzer.lock.yml @@ -32,13 +32,8 @@ name: "Weekly Workflow Analysis" "on": schedule: - cron: "12 9 * * 1" + # Friendly format: weekly on monday around 09:00 (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/firewall-escape.lock.yml b/.github/workflows/firewall-escape.lock.yml index 246c50e0d0b..e294dcfbc33 100644 --- a/.github/workflows/firewall-escape.lock.yml +++ b/.github/workflows/firewall-escape.lock.yml @@ -27,17 +27,14 @@ name: "The Great Escapi" "on": pull_request: + # names: # Label filtering applied via job conditions + # - firewall-escape-test # Label filtering applied via job conditions types: - labeled schedule: - cron: "42 15 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/firewall.lock.yml b/.github/workflows/firewall.lock.yml index f6cc7a981c6..b04273a7a48 100644 --- a/.github/workflows/firewall.lock.yml +++ b/.github/workflows/firewall.lock.yml @@ -27,12 +27,6 @@ name: "Firewall Test Agent" "on": workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/functional-pragmatist.lock.yml b/.github/workflows/functional-pragmatist.lock.yml index 0a5c7192b82..7dd486047ea 100644 --- a/.github/workflows/functional-pragmatist.lock.yml +++ b/.github/workflows/functional-pragmatist.lock.yml @@ -33,12 +33,6 @@ name: "Functional Pragmatist" schedule: - cron: "0 9 * * 2,4" workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/github-mcp-structural-analysis.lock.yml b/.github/workflows/github-mcp-structural-analysis.lock.yml index cfaaf9e97e2..f59f44cb55b 100644 --- a/.github/workflows/github-mcp-structural-analysis.lock.yml +++ b/.github/workflows/github-mcp-structural-analysis.lock.yml @@ -34,12 +34,6 @@ name: "GitHub MCP Structural Analysis" schedule: - cron: "0 11 * * 1-5" workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/github-mcp-tools-report.lock.yml b/.github/workflows/github-mcp-tools-report.lock.yml index 73aba851b15..4a910676969 100644 --- a/.github/workflows/github-mcp-tools-report.lock.yml +++ b/.github/workflows/github-mcp-tools-report.lock.yml @@ -32,13 +32,8 @@ name: "GitHub MCP Remote Server Tools Report Generator" "on": schedule: - cron: "20 12 * * 0" + # Friendly format: weekly on sunday around 12:00 (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/github-remote-mcp-auth-test.lock.yml b/.github/workflows/github-remote-mcp-auth-test.lock.yml index b3009c59b9d..00d5fbb89ba 100644 --- a/.github/workflows/github-remote-mcp-auth-test.lock.yml +++ b/.github/workflows/github-remote-mcp-auth-test.lock.yml @@ -28,13 +28,8 @@ name: "GitHub Remote MCP Authentication Test" "on": schedule: - cron: "5 20 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/glossary-maintainer.lock.yml b/.github/workflows/glossary-maintainer.lock.yml index a5edfca2008..32fabdc8e84 100644 --- a/.github/workflows/glossary-maintainer.lock.yml +++ b/.github/workflows/glossary-maintainer.lock.yml @@ -36,12 +36,6 @@ name: "Glossary Maintainer" schedule: - cron: "0 10 * * 1-5" workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/go-fan.lock.yml b/.github/workflows/go-fan.lock.yml index 57a0412ea0c..eb3ed395e2c 100644 --- a/.github/workflows/go-fan.lock.yml +++ b/.github/workflows/go-fan.lock.yml @@ -34,12 +34,6 @@ name: "Go Fan" schedule: - cron: "0 7 * * 1-5" workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/go-logger.lock.yml b/.github/workflows/go-logger.lock.yml index 2c1448f98a3..29040af341b 100644 --- a/.github/workflows/go-logger.lock.yml +++ b/.github/workflows/go-logger.lock.yml @@ -32,13 +32,8 @@ name: "Go Logger Enhancement" "on": schedule: - cron: "29 14 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/go-pattern-detector.lock.yml b/.github/workflows/go-pattern-detector.lock.yml index 4250c850227..581436270b3 100644 --- a/.github/workflows/go-pattern-detector.lock.yml +++ b/.github/workflows/go-pattern-detector.lock.yml @@ -34,12 +34,6 @@ name: "Go Pattern Detector" schedule: - cron: "0 14 * * 1-5" workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/gpclean.lock.yml b/.github/workflows/gpclean.lock.yml index ce0c88f95c9..a43e7b0453f 100644 --- a/.github/workflows/gpclean.lock.yml +++ b/.github/workflows/gpclean.lock.yml @@ -32,13 +32,8 @@ name: "GPL Dependency Cleaner (gpclean)" "on": schedule: - cron: "40 6 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/hourly-ci-cleaner.lock.yml b/.github/workflows/hourly-ci-cleaner.lock.yml index cd3129050c3..afb9352cff8 100644 --- a/.github/workflows/hourly-ci-cleaner.lock.yml +++ b/.github/workflows/hourly-ci-cleaner.lock.yml @@ -33,12 +33,6 @@ name: "CI Cleaner" schedule: - cron: "0 6,18 * * *" workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/instructions-janitor.lock.yml b/.github/workflows/instructions-janitor.lock.yml index 6e0e28f8c68..b8dc20fcf8e 100644 --- a/.github/workflows/instructions-janitor.lock.yml +++ b/.github/workflows/instructions-janitor.lock.yml @@ -28,13 +28,8 @@ name: "Instructions Janitor" "on": schedule: - cron: "29 4 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/issue-arborist.lock.yml b/.github/workflows/issue-arborist.lock.yml index ee55dbb8485..0b99d9003ed 100644 --- a/.github/workflows/issue-arborist.lock.yml +++ b/.github/workflows/issue-arborist.lock.yml @@ -33,13 +33,8 @@ name: "Issue Arborist" "on": schedule: - cron: "54 7 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/issue-monster.lock.yml b/.github/workflows/issue-monster.lock.yml index f8087264e30..dc18c30dae0 100644 --- a/.github/workflows/issue-monster.lock.yml +++ b/.github/workflows/issue-monster.lock.yml @@ -30,15 +30,365 @@ name: "Issue Monster" "on": + # permissions: # Permissions applied to pre-activation job + # issues: read + # pull-requests: read schedule: - cron: "*/30 * * * *" + # Friendly format: every 30m + # skip-if-match: # Skip-if-match processed as search check in pre-activation job + # max: 5 + # query: is:pr is:open is:draft author:app/copilot-swe-agent + # skip-if-no-match: is:issue is:open # Skip-if-no-match processed as search check in pre-activation job + # steps: # Steps injected into pre-activation job + # - id: search + # name: Search for candidate issues + # uses: actions/github-script@v8 + # with: + # script: | + # const { owner, repo } = context.repo; + # + # try { + # // Check for recent rate-limited PRs to avoid scheduling more work during rate limiting + # core.info('Checking for recent rate-limited PRs...'); + # const rateLimitCheckDate = new Date(); + # rateLimitCheckDate.setHours(rateLimitCheckDate.getHours() - 1); // Check last hour + # // Format as YYYY-MM-DDTHH:MM:SS for GitHub search API + # const rateLimitCheckISO = rateLimitCheckDate.toISOString().split('.')[0] + 'Z'; + # + # const recentPRsQuery = `is:pr author:app/copilot-swe-agent created:>${rateLimitCheckISO} repo:${owner}/${repo}`; + # const recentPRsResponse = await github.rest.search.issuesAndPullRequests({ + # q: recentPRsQuery, + # per_page: 10, + # sort: 'created', + # order: 'desc' + # }); + # + # core.info(`Found ${recentPRsResponse.data.total_count} recent Copilot PRs to check for rate limiting`); + # + # // Check if any recent PRs have rate limit indicators + # let rateLimitDetected = false; + # for (const pr of recentPRsResponse.data.items) { + # try { + # const prTimelineQuery = ` + # query($owner: String!, $repo: String!, $number: Int!) { + # repository(owner: $owner, name: $repo) { + # pullRequest(number: $number) { + # timelineItems(first: 50, itemTypes: [ISSUE_COMMENT]) { + # nodes { + # __typename + # ... on IssueComment { + # body + # createdAt + # } + # } + # } + # } + # } + # } + # `; + # + # const prTimelineResult = await github.graphql(prTimelineQuery, { + # owner, + # repo, + # number: pr.number + # }); + # + # const comments = prTimelineResult?.repository?.pullRequest?.timelineItems?.nodes || []; + # const rateLimitPattern = /rate limit|API rate limit|secondary rate limit|abuse detection|429|too many requests/i; + # + # for (const comment of comments) { + # if (comment.body && rateLimitPattern.test(comment.body)) { + # core.warning(`Rate limiting detected in PR #${pr.number}: ${comment.body.substring(0, 200)}`); + # rateLimitDetected = true; + # break; + # } + # } + # + # if (rateLimitDetected) break; + # } catch (error) { + # core.warning(`Could not check PR #${pr.number} for rate limiting: ${error.message}`); + # } + # } + # + # if (rateLimitDetected) { + # core.warning('🛑 Rate limiting detected in recent PRs. Skipping issue assignment to prevent further rate limit issues.'); + # core.setOutput('issue_count', 0); + # core.setOutput('issue_numbers', ''); + # core.setOutput('issue_list', ''); + # core.setOutput('has_issues', 'false'); + # return; + # } + # + # core.info('✓ No rate limiting detected. Proceeding with issue search.'); + # + # // Labels that indicate an issue should NOT be auto-assigned + # const excludeLabels = [ + # 'wontfix', + # 'duplicate', + # 'invalid', + # 'question', + # 'discussion', + # 'needs-discussion', + # 'blocked', + # 'on-hold', + # 'waiting-for-feedback', + # 'needs-more-info', + # 'no-bot', + # 'no-campaign' + # ]; + # + # // Labels that indicate an issue is a GOOD candidate for auto-assignment + # const priorityLabels = [ + # 'good first issue', + # 'good-first-issue', + # 'bug', + # 'enhancement', + # 'feature', + # 'documentation', + # 'tech-debt', + # 'refactoring', + # 'performance', + # 'security' + # ]; + # + # // Search for open issues with "cookie" label and without excluded labels + # // The "cookie" label indicates issues that are approved work queue items from automated workflows + # const query = `is:issue is:open repo:${owner}/${repo} label:cookie -label:"${excludeLabels.join('" -label:"')}"`; + # core.info(`Searching: ${query}`); + # const response = await github.rest.search.issuesAndPullRequests({ + # q: query, + # per_page: 100, + # sort: 'created', + # order: 'desc' + # }); + # core.info(`Found ${response.data.total_count} total issues matching basic criteria`); + # + # // Fetch full details for each issue to get labels, assignees, sub-issues, and linked PRs + # // Track integrity-filtered issues to emit a diagnostic summary + # const integrityFilteredIssues = []; + # const issuesWithDetails = (await Promise.all( + # response.data.items.map(async (issue) => { + # // Fetch full issue details — some issues may be blocked by integrity policy + # let fullIssue; + # try { + # fullIssue = await github.rest.issues.get({ + # owner, + # repo, + # issue_number: issue.number + # }); + # } catch (fetchError) { + # // Integrity-filtered issues (403/451) or other transient errors should be + # // skipped individually rather than failing the entire batch + # const status = fetchError.status || fetchError.response?.status; + # // 403 = Forbidden (integrity policy), 451 = Unavailable For Legal Reasons + # const isIntegrityBlock = status === 403 || status === 451 || + # /\bintegrity\b/i.test(fetchError.message || ''); + # const errorSummary = (fetchError.message || String(fetchError)).slice(0, 120); + # if (isIntegrityBlock) { + # integrityFilteredIssues.push(issue.number); + # core.warning(`⚠️ Skipping issue #${issue.number}: blocked by integrity policy (HTTP ${status || 'unknown'}): ${errorSummary}`); + # } else { + # core.warning(`⚠️ Skipping issue #${issue.number}: could not fetch details (HTTP ${status || 'unknown'}): ${errorSummary}`); + # } + # return null; + # } + # + # // Check if this issue has sub-issues and linked PRs using GraphQL + # let subIssuesCount = 0; + # let linkedPRs = []; + # try { + # const issueDetailsQuery = ` + # query($owner: String!, $repo: String!, $number: Int!) { + # repository(owner: $owner, name: $repo) { + # issue(number: $number) { + # subIssues { + # totalCount + # } + # timelineItems(first: 100, itemTypes: [CROSS_REFERENCED_EVENT]) { + # nodes { + # ... on CrossReferencedEvent { + # source { + # __typename + # ... on PullRequest { + # number + # state + # isDraft + # author { + # login + # } + # } + # } + # } + # } + # } + # } + # } + # } + # `; + # const issueDetailsResult = await github.graphql(issueDetailsQuery, { + # owner, + # repo, + # number: issue.number + # }); + # + # subIssuesCount = issueDetailsResult?.repository?.issue?.subIssues?.totalCount || 0; + # + # // Extract linked PRs from timeline + # const timelineItems = issueDetailsResult?.repository?.issue?.timelineItems?.nodes || []; + # linkedPRs = timelineItems + # .filter(item => item?.source?.__typename === 'PullRequest') + # .map(item => ({ + # number: item.source.number, + # state: item.source.state, + # isDraft: item.source.isDraft, + # author: item.source.author?.login + # })); + # + # core.info(`Issue #${issue.number} has ${linkedPRs.length} linked PR(s)`); + # } catch (error) { + # // If GraphQL query fails, continue with defaults + # core.warning(`Could not check details for #${issue.number}: ${error.message}`); + # } + # + # return { + # ...fullIssue.data, + # subIssuesCount, + # linkedPRs + # }; + # }) + # )).filter(Boolean); // Remove null entries (integrity-filtered or otherwise skipped) + # + # // Emit diagnostic summary for integrity-filtered issues + # if (integrityFilteredIssues.length > 0) { + # core.warning(`🛡️ Integrity filter diagnostic: ${integrityFilteredIssues.length} issue(s) were skipped due to integrity policy: #${integrityFilteredIssues.join(', #')}. These issues will be excluded from this run.`); + # } + # + # // Filter and score issues + # const scoredIssues = issuesWithDetails + # .filter(issue => { + # // Exclude issues that already have assignees + # if (issue.assignees && issue.assignees.length > 0) { + # core.info(`Skipping #${issue.number}: already has assignees`); + # return false; + # } + # + # // Exclude issues with excluded labels (double check) + # const issueLabels = issue.labels.map(l => l.name.toLowerCase()); + # if (issueLabels.some(label => excludeLabels.map(l => l.toLowerCase()).includes(label))) { + # core.info(`Skipping #${issue.number}: has excluded label`); + # return false; + # } + # + # // Exclude issues with campaign labels (campaign:*) + # // Campaign items are managed by campaign orchestrators + # if (issueLabels.some(label => label.startsWith('campaign:'))) { + # core.info(`Skipping #${issue.number}: has campaign label (managed by campaign orchestrator)`); + # return false; + # } + # + # // Exclude issues that have sub-issues (parent/organizing issues) + # if (issue.subIssuesCount > 0) { + # core.info(`Skipping #${issue.number}: has ${issue.subIssuesCount} sub-issue(s) - parent issues are used for organizing, not tasks`); + # return false; + # } + # + # // Exclude issues with closed PRs (treat as complete) + # const closedPRs = issue.linkedPRs?.filter(pr => pr.state === 'CLOSED' || pr.state === 'MERGED') || []; + # if (closedPRs.length > 0) { + # core.info(`Skipping #${issue.number}: has ${closedPRs.length} closed/merged PR(s) - treating as complete`); + # return false; + # } + # + # // Exclude issues with open PRs from Copilot coding agent + # const openCopilotPRs = issue.linkedPRs?.filter(pr => + # pr.state === 'OPEN' && + # (pr.author === 'copilot-swe-agent' || pr.author?.includes('copilot')) + # ) || []; + # if (openCopilotPRs.length > 0) { + # core.info(`Skipping #${issue.number}: has ${openCopilotPRs.length} open PR(s) from Copilot - already being worked on`); + # return false; + # } + # + # return true; + # }) + # .map(issue => { + # const issueLabels = issue.labels.map(l => l.name.toLowerCase()); + # let score = 0; + # + # // Score based on priority labels (higher score = higher priority) + # if (issueLabels.includes('good first issue') || issueLabels.includes('good-first-issue')) { + # score += 50; + # } + # if (issueLabels.includes('bug')) { + # score += 40; + # } + # if (issueLabels.includes('security')) { + # score += 45; + # } + # if (issueLabels.includes('documentation')) { + # score += 35; + # } + # if (issueLabels.includes('enhancement') || issueLabels.includes('feature')) { + # score += 30; + # } + # if (issueLabels.includes('performance')) { + # score += 25; + # } + # if (issueLabels.includes('tech-debt') || issueLabels.includes('refactoring')) { + # score += 20; + # } + # + # // Bonus for issues with clear labels (any priority label) + # if (issueLabels.some(label => priorityLabels.map(l => l.toLowerCase()).includes(label))) { + # score += 10; + # } + # + # // Age bonus: older issues get slight priority (days old / 10) + # const ageInDays = Math.floor((Date.now() - new Date(issue.created_at)) / (1000 * 60 * 60 * 24)); + # score += Math.min(ageInDays / 10, 20); // Cap age bonus at 20 points + # + # return { + # number: issue.number, + # title: issue.title, + # labels: issue.labels.map(l => l.name), + # created_at: issue.created_at, + # score + # }; + # }) + # .sort((a, b) => b.score - a.score); // Sort by score descending + # + # // Format output + # const issueList = scoredIssues.map(i => { + # const labelStr = i.labels.length > 0 ? ` [${i.labels.join(', ')}]` : ''; + # return `#${i.number}: ${i.title}${labelStr} (score: ${i.score.toFixed(1)})`; + # }).join('\n'); + # + # const issueNumbers = scoredIssues.map(i => i.number).join(','); + # + # core.info(`Total candidate issues after filtering: ${scoredIssues.length}`); + # if (scoredIssues.length > 0) { + # core.info(`Top candidates:\n${issueList.split('\n').slice(0, 10).join('\n')}`); + # } + # + # core.setOutput('issue_count', scoredIssues.length); + # core.setOutput('issue_numbers', issueNumbers); + # core.setOutput('issue_list', issueList); + # + # if (scoredIssues.length === 0) { + # core.info('🍽️ No suitable candidate issues - the plate is empty!'); + # core.setOutput('has_issues', 'false'); + # } else { + # core.setOutput('has_issues', 'true'); + # } + # } catch (error) { + # core.error(`Error searching for issues: ${error.message}`); + # core.setOutput('issue_count', 0); + # core.setOutput('issue_numbers', ''); + # core.setOutput('issue_list', ''); + # core.setOutput('has_issues', 'false'); + # } workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/issue-triage-agent.lock.yml b/.github/workflows/issue-triage-agent.lock.yml index 6e2827433a0..55e72c71c6b 100644 --- a/.github/workflows/issue-triage-agent.lock.yml +++ b/.github/workflows/issue-triage-agent.lock.yml @@ -32,12 +32,6 @@ name: "Issue Triage Agent" schedule: - cron: "0 14 * * 1-5" workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/jsweep.lock.yml b/.github/workflows/jsweep.lock.yml index 2ce82fa2fb4..b02526f559c 100644 --- a/.github/workflows/jsweep.lock.yml +++ b/.github/workflows/jsweep.lock.yml @@ -28,13 +28,8 @@ name: "jsweep - JavaScript Unbloater" "on": schedule: - cron: "40 21 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/layout-spec-maintainer.lock.yml b/.github/workflows/layout-spec-maintainer.lock.yml index 6e7e8e36a4e..27cfeafc9f0 100644 --- a/.github/workflows/layout-spec-maintainer.lock.yml +++ b/.github/workflows/layout-spec-maintainer.lock.yml @@ -29,12 +29,6 @@ name: "Layout Specification Maintainer" schedule: - cron: "0 7 * * 1" workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/lockfile-stats.lock.yml b/.github/workflows/lockfile-stats.lock.yml index eebf6d1a1ff..4c1366ed237 100644 --- a/.github/workflows/lockfile-stats.lock.yml +++ b/.github/workflows/lockfile-stats.lock.yml @@ -32,13 +32,8 @@ name: "Lockfile Statistics Analysis Agent" "on": schedule: - cron: "21 5 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/mcp-inspector.lock.yml b/.github/workflows/mcp-inspector.lock.yml index e5c4f700375..d61b63eac10 100644 --- a/.github/workflows/mcp-inspector.lock.yml +++ b/.github/workflows/mcp-inspector.lock.yml @@ -47,13 +47,8 @@ name: "MCP Inspector Agent" "on": schedule: - cron: "35 18 * * 1" + # Friendly format: weekly on monday around 18:00 (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/metrics-collector.lock.yml b/.github/workflows/metrics-collector.lock.yml index 56c06cbc0f8..aac4730cf30 100644 --- a/.github/workflows/metrics-collector.lock.yml +++ b/.github/workflows/metrics-collector.lock.yml @@ -28,13 +28,8 @@ name: "Metrics Collector - Infrastructure Agent" "on": schedule: - cron: "47 16 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/notion-issue-summary.lock.yml b/.github/workflows/notion-issue-summary.lock.yml index b822d1cb28f..5af6710f9d8 100644 --- a/.github/workflows/notion-issue-summary.lock.yml +++ b/.github/workflows/notion-issue-summary.lock.yml @@ -32,11 +32,6 @@ name: "Issue Summary to Notion" "on": workflow_dispatch: inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string issue-number: description: Issue number to analyze required: true diff --git a/.github/workflows/org-health-report.lock.yml b/.github/workflows/org-health-report.lock.yml index 8170ad837ff..9a50b28c181 100644 --- a/.github/workflows/org-health-report.lock.yml +++ b/.github/workflows/org-health-report.lock.yml @@ -34,13 +34,8 @@ name: "Organization Health Report" "on": schedule: - cron: "11 8 * * 1" + # Friendly format: weekly on monday around 09:00 (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/pdf-summary.lock.yml b/.github/workflows/pdf-summary.lock.yml index 32a12c6e297..b4baf261e2e 100644 --- a/.github/workflows/pdf-summary.lock.yml +++ b/.github/workflows/pdf-summary.lock.yml @@ -41,11 +41,6 @@ name: "Resource Summarizer Agent" - reopened workflow_dispatch: inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string query: default: summarize in the context of this repository description: Query or question to answer about the resource(s) diff --git a/.github/workflows/poem-bot.lock.yml b/.github/workflows/poem-bot.lock.yml index 84cce16c7ec..67fabc3b821 100644 --- a/.github/workflows/poem-bot.lock.yml +++ b/.github/workflows/poem-bot.lock.yml @@ -35,13 +35,11 @@ name: "Poem Bot - A Creative Agentic Workflow" - opened - edited - reopened + # roles: # Roles processed as role check in pre-activation job + # - admin # Roles processed as role check in pre-activation job + # - maintainer # Roles processed as role check in pre-activation job workflow_dispatch: inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string poem_theme: default: technology and automation description: Theme for the generated poem diff --git a/.github/workflows/portfolio-analyst.lock.yml b/.github/workflows/portfolio-analyst.lock.yml index 16b34bd578b..13e0cf0aa28 100644 --- a/.github/workflows/portfolio-analyst.lock.yml +++ b/.github/workflows/portfolio-analyst.lock.yml @@ -34,13 +34,8 @@ name: "Automated Portfolio Analyst" "on": schedule: - cron: "50 8 * * 1" + # Friendly format: weekly on monday around 09:00 (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/pr-triage-agent.lock.yml b/.github/workflows/pr-triage-agent.lock.yml index 988c10d3549..2766f12f9bf 100644 --- a/.github/workflows/pr-triage-agent.lock.yml +++ b/.github/workflows/pr-triage-agent.lock.yml @@ -29,12 +29,6 @@ name: "PR Triage Agent" schedule: - cron: "0 */6 * * *" workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/prompt-clustering-analysis.lock.yml b/.github/workflows/prompt-clustering-analysis.lock.yml index 91a094763ad..630d06786e8 100644 --- a/.github/workflows/prompt-clustering-analysis.lock.yml +++ b/.github/workflows/prompt-clustering-analysis.lock.yml @@ -36,13 +36,8 @@ name: "Copilot Agent Prompt Clustering Analysis" "on": schedule: - cron: "40 14 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/python-data-charts.lock.yml b/.github/workflows/python-data-charts.lock.yml index 342f64f2c4f..148497a2a8f 100644 --- a/.github/workflows/python-data-charts.lock.yml +++ b/.github/workflows/python-data-charts.lock.yml @@ -33,12 +33,6 @@ name: "Python Data Visualization Generator" "on": workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/refiner.lock.yml b/.github/workflows/refiner.lock.yml index cdb839b7424..cfb1136836a 100644 --- a/.github/workflows/refiner.lock.yml +++ b/.github/workflows/refiner.lock.yml @@ -27,15 +27,12 @@ name: "Code Refiner" "on": pull_request: + # names: # Label filtering applied via job conditions + # - refine # Label filtering applied via job conditions types: - labeled workflow_dispatch: inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string item_number: default: "" description: The number of the pull request diff --git a/.github/workflows/release.lock.yml b/.github/workflows/release.lock.yml index 1ed8c47a6cb..124b1d4d573 100644 --- a/.github/workflows/release.lock.yml +++ b/.github/workflows/release.lock.yml @@ -30,13 +30,11 @@ name: "Release" "on": + # roles: # Roles processed as role check in pre-activation job + # - admin # Roles processed as role check in pre-activation job + # - maintainer # Roles processed as role check in pre-activation job workflow_dispatch: inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string release_type: default: patch description: Release type (patch, minor, or major) diff --git a/.github/workflows/repo-audit-analyzer.lock.yml b/.github/workflows/repo-audit-analyzer.lock.yml index 3562f7e2ae5..a1e46d4e067 100644 --- a/.github/workflows/repo-audit-analyzer.lock.yml +++ b/.github/workflows/repo-audit-analyzer.lock.yml @@ -32,11 +32,6 @@ name: "Repository Audit & Agentic Workflow Opportunity Analyzer" "on": workflow_dispatch: inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string repository: default: FStarLang/FStar description: Target repository to audit (e.g., FStarLang/FStar) diff --git a/.github/workflows/repo-tree-map.lock.yml b/.github/workflows/repo-tree-map.lock.yml index 0f5e5f8e96b..de93e66caa5 100644 --- a/.github/workflows/repo-tree-map.lock.yml +++ b/.github/workflows/repo-tree-map.lock.yml @@ -32,13 +32,8 @@ name: "Repository Tree Map Generator" "on": schedule: - cron: "50 15 * * 1" + # Friendly format: weekly on monday around 15:00 (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/repository-quality-improver.lock.yml b/.github/workflows/repository-quality-improver.lock.yml index 1e429f0bc61..3efc724706c 100644 --- a/.github/workflows/repository-quality-improver.lock.yml +++ b/.github/workflows/repository-quality-improver.lock.yml @@ -34,12 +34,6 @@ name: "Repository Quality Improvement Agent" schedule: - cron: "0 13 * * 1-5" workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/research.lock.yml b/.github/workflows/research.lock.yml index 46922aa4c7e..b08e1a8ec54 100644 --- a/.github/workflows/research.lock.yml +++ b/.github/workflows/research.lock.yml @@ -33,11 +33,6 @@ name: "Basic Research Agent" "on": workflow_dispatch: inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string topic: description: Research topic or question to investigate required: true diff --git a/.github/workflows/safe-output-health.lock.yml b/.github/workflows/safe-output-health.lock.yml index fb8f3e06348..20695554f3c 100644 --- a/.github/workflows/safe-output-health.lock.yml +++ b/.github/workflows/safe-output-health.lock.yml @@ -33,13 +33,8 @@ name: "Safe Output Health Monitor" "on": schedule: - cron: "32 23 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/schema-consistency-checker.lock.yml b/.github/workflows/schema-consistency-checker.lock.yml index f878b9b09a0..483d8e2e256 100644 --- a/.github/workflows/schema-consistency-checker.lock.yml +++ b/.github/workflows/schema-consistency-checker.lock.yml @@ -32,13 +32,8 @@ name: "Schema Consistency Checker" "on": schedule: - cron: "24 16 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/schema-feature-coverage.lock.yml b/.github/workflows/schema-feature-coverage.lock.yml index 68eee569dd8..3b51a81ea7e 100644 --- a/.github/workflows/schema-feature-coverage.lock.yml +++ b/.github/workflows/schema-feature-coverage.lock.yml @@ -28,13 +28,8 @@ name: "Schema Feature Coverage Checker" "on": schedule: - cron: "24 6 * * 1" + # Friendly format: weekly on monday around 07:00 (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/scout.lock.yml b/.github/workflows/scout.lock.yml index 7aebc60bede..d65bea64254 100644 --- a/.github/workflows/scout.lock.yml +++ b/.github/workflows/scout.lock.yml @@ -62,13 +62,12 @@ name: "Scout" types: - created - edited + # roles: # Roles processed as role check in pre-activation job + # - admin # Roles processed as role check in pre-activation job + # - maintainer # Roles processed as role check in pre-activation job + # - write # Roles processed as role check in pre-activation job workflow_dispatch: inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string history: default: shallow description: "Git history to fetch: shallow (default) or full" diff --git a/.github/workflows/security-compliance.lock.yml b/.github/workflows/security-compliance.lock.yml index ec006cf4303..6d5ae1efe94 100644 --- a/.github/workflows/security-compliance.lock.yml +++ b/.github/workflows/security-compliance.lock.yml @@ -31,11 +31,6 @@ name: "Security Compliance Campaign" audit_date: description: Audit deadline (YYYY-MM-DD) required: true - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string max_issues: default: "500" description: Maximum vulnerabilities to process diff --git a/.github/workflows/semantic-function-refactor.lock.yml b/.github/workflows/semantic-function-refactor.lock.yml index 9b13a0b4437..7d47c4092df 100644 --- a/.github/workflows/semantic-function-refactor.lock.yml +++ b/.github/workflows/semantic-function-refactor.lock.yml @@ -33,13 +33,8 @@ name: "Semantic Function Refactoring" "on": schedule: - cron: "44 10 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/sergo.lock.yml b/.github/workflows/sergo.lock.yml index 46eea56ab1c..fd91519bd03 100644 --- a/.github/workflows/sergo.lock.yml +++ b/.github/workflows/sergo.lock.yml @@ -33,13 +33,8 @@ name: "Sergo - Serena Go Expert" "on": schedule: - cron: "8 12 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/slide-deck-maintainer.lock.yml b/.github/workflows/slide-deck-maintainer.lock.yml index cdd717fc364..58b557cec63 100644 --- a/.github/workflows/slide-deck-maintainer.lock.yml +++ b/.github/workflows/slide-deck-maintainer.lock.yml @@ -32,13 +32,9 @@ name: "Slide Deck Maintainer" "on": schedule: - cron: "0 16 * * 1-5" + # skip-if-match: is:pr is:open in:title "[slides]" # Skip-if-match processed as search check in pre-activation job workflow_dispatch: inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string focus: default: global-sweep description: Focus area (feature-deep-dive or global-sweep) diff --git a/.github/workflows/smoke-agent-all-merged.lock.yml b/.github/workflows/smoke-agent-all-merged.lock.yml index e5c40545815..206a11760de 100644 --- a/.github/workflows/smoke-agent-all-merged.lock.yml +++ b/.github/workflows/smoke-agent-all-merged.lock.yml @@ -27,15 +27,11 @@ name: "Smoke Agent: all/merged" "on": pull_request: + # names: # Label filtering applied via job conditions + # - metal # Label filtering applied via job conditions types: - labeled - workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string + workflow_dispatch: null permissions: {} diff --git a/.github/workflows/smoke-agent-all-none.lock.yml b/.github/workflows/smoke-agent-all-none.lock.yml index 4bf5506ffc2..6c00e4fcd36 100644 --- a/.github/workflows/smoke-agent-all-none.lock.yml +++ b/.github/workflows/smoke-agent-all-none.lock.yml @@ -27,15 +27,11 @@ name: "Smoke Agent: all/none" "on": pull_request: + # names: # Label filtering applied via job conditions + # - metal # Label filtering applied via job conditions types: - labeled - workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string + workflow_dispatch: null permissions: {} diff --git a/.github/workflows/smoke-agent-public-approved.lock.yml b/.github/workflows/smoke-agent-public-approved.lock.yml index 9c5e8123078..d6aa781377c 100644 --- a/.github/workflows/smoke-agent-public-approved.lock.yml +++ b/.github/workflows/smoke-agent-public-approved.lock.yml @@ -27,15 +27,11 @@ name: "Smoke Agent: public/approved" "on": pull_request: + # names: # Label filtering applied via job conditions + # - metal # Label filtering applied via job conditions types: - labeled - workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string + workflow_dispatch: null permissions: {} diff --git a/.github/workflows/smoke-agent-public-none.lock.yml b/.github/workflows/smoke-agent-public-none.lock.yml index 8a304bcb5d1..5edae40e733 100644 --- a/.github/workflows/smoke-agent-public-none.lock.yml +++ b/.github/workflows/smoke-agent-public-none.lock.yml @@ -27,15 +27,11 @@ name: "Smoke Agent: public/none" "on": pull_request: + # names: # Label filtering applied via job conditions + # - metal # Label filtering applied via job conditions types: - labeled - workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string + workflow_dispatch: null permissions: {} diff --git a/.github/workflows/smoke-agent-scoped-approved.lock.yml b/.github/workflows/smoke-agent-scoped-approved.lock.yml index 2deca6c7247..51cff19be12 100644 --- a/.github/workflows/smoke-agent-scoped-approved.lock.yml +++ b/.github/workflows/smoke-agent-scoped-approved.lock.yml @@ -27,15 +27,11 @@ name: "Smoke Agent: scoped/approved" "on": pull_request: + # names: # Label filtering applied via job conditions + # - metal # Label filtering applied via job conditions types: - labeled - workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string + workflow_dispatch: null permissions: {} diff --git a/.github/workflows/smoke-call-workflow.lock.yml b/.github/workflows/smoke-call-workflow.lock.yml index 3007a00b1f0..ad1861b0e2f 100644 --- a/.github/workflows/smoke-call-workflow.lock.yml +++ b/.github/workflows/smoke-call-workflow.lock.yml @@ -27,15 +27,11 @@ name: "Smoke Call Workflow" "on": pull_request: + # names: # Label filtering applied via job conditions + # - water # Label filtering applied via job conditions types: - labeled workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/smoke-claude.lock.yml b/.github/workflows/smoke-claude.lock.yml index 7f8741ee70e..af14a99f55c 100644 --- a/.github/workflows/smoke-claude.lock.yml +++ b/.github/workflows/smoke-claude.lock.yml @@ -39,17 +39,13 @@ name: "Smoke Claude" "on": pull_request: + # names: # Label filtering applied via job conditions + # - smoke # Label filtering applied via job conditions types: - labeled schedule: - cron: "10 */12 * * *" - workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string + workflow_dispatch: null permissions: {} diff --git a/.github/workflows/smoke-codex.lock.yml b/.github/workflows/smoke-codex.lock.yml index 8a25e6ab0ed..999168c82b2 100644 --- a/.github/workflows/smoke-codex.lock.yml +++ b/.github/workflows/smoke-codex.lock.yml @@ -32,17 +32,13 @@ name: "Smoke Codex" "on": pull_request: + # names: # Label filtering applied via job conditions + # - smoke # Label filtering applied via job conditions types: - labeled schedule: - cron: "45 */12 * * *" - workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string + workflow_dispatch: null permissions: {} diff --git a/.github/workflows/smoke-copilot-arm.lock.yml b/.github/workflows/smoke-copilot-arm.lock.yml index 3061d843561..313025a2136 100644 --- a/.github/workflows/smoke-copilot-arm.lock.yml +++ b/.github/workflows/smoke-copilot-arm.lock.yml @@ -33,15 +33,11 @@ name: "Smoke Copilot ARM64" "on": pull_request: + # names: # Label filtering applied via job conditions + # - water # Label filtering applied via job conditions types: - labeled - workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string + workflow_dispatch: null permissions: {} diff --git a/.github/workflows/smoke-copilot.lock.yml b/.github/workflows/smoke-copilot.lock.yml index 7b9637f22c8..7f9e5147f04 100644 --- a/.github/workflows/smoke-copilot.lock.yml +++ b/.github/workflows/smoke-copilot.lock.yml @@ -39,11 +39,6 @@ name: "Smoke Copilot" - cron: "32 */12 * * *" workflow_dispatch: inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string item_number: default: "" description: The number of the issue, pull request, or discussion diff --git a/.github/workflows/smoke-create-cross-repo-pr.lock.yml b/.github/workflows/smoke-create-cross-repo-pr.lock.yml index a55e860ece1..947d67c55c4 100644 --- a/.github/workflows/smoke-create-cross-repo-pr.lock.yml +++ b/.github/workflows/smoke-create-cross-repo-pr.lock.yml @@ -27,17 +27,13 @@ name: "Smoke Create Cross-Repo PR" "on": pull_request: + # names: # Label filtering applied via job conditions + # - smoke-create-cross-repo-pr # Label filtering applied via job conditions types: - labeled schedule: - cron: "39 */12 * * *" - workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string + workflow_dispatch: null permissions: {} diff --git a/.github/workflows/smoke-gemini.lock.yml b/.github/workflows/smoke-gemini.lock.yml index 6444762652c..7e97fcc9370 100644 --- a/.github/workflows/smoke-gemini.lock.yml +++ b/.github/workflows/smoke-gemini.lock.yml @@ -32,17 +32,13 @@ name: "Smoke Gemini" "on": pull_request: + # names: # Label filtering applied via job conditions + # - water # Label filtering applied via job conditions types: - labeled schedule: - cron: "27 */12 * * *" - workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string + workflow_dispatch: null permissions: {} diff --git a/.github/workflows/smoke-multi-pr.lock.yml b/.github/workflows/smoke-multi-pr.lock.yml index 791a94cce63..3e1094711d0 100644 --- a/.github/workflows/smoke-multi-pr.lock.yml +++ b/.github/workflows/smoke-multi-pr.lock.yml @@ -27,17 +27,13 @@ name: "Smoke Multi PR" "on": pull_request: + # names: # Label filtering applied via job conditions + # - smoke-multi-pr # Label filtering applied via job conditions types: - labeled schedule: - cron: "20 */24 * * *" - workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string + workflow_dispatch: null permissions: {} diff --git a/.github/workflows/smoke-project.lock.yml b/.github/workflows/smoke-project.lock.yml index d3b162bab49..11e08b8fd3e 100644 --- a/.github/workflows/smoke-project.lock.yml +++ b/.github/workflows/smoke-project.lock.yml @@ -27,15 +27,11 @@ name: "Smoke Project" "on": pull_request: + # names: # Label filtering applied via job conditions + # - water # Label filtering applied via job conditions types: - labeled - workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string + workflow_dispatch: null permissions: {} diff --git a/.github/workflows/smoke-temporary-id.lock.yml b/.github/workflows/smoke-temporary-id.lock.yml index 85b4f1664bd..e8db5fc495f 100644 --- a/.github/workflows/smoke-temporary-id.lock.yml +++ b/.github/workflows/smoke-temporary-id.lock.yml @@ -27,15 +27,11 @@ name: "Smoke Temporary ID" "on": pull_request: + # names: # Label filtering applied via job conditions + # - water # Label filtering applied via job conditions types: - labeled - workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string + workflow_dispatch: null permissions: {} diff --git a/.github/workflows/smoke-test-tools.lock.yml b/.github/workflows/smoke-test-tools.lock.yml index bc491554b78..3d18203d7c9 100644 --- a/.github/workflows/smoke-test-tools.lock.yml +++ b/.github/workflows/smoke-test-tools.lock.yml @@ -27,17 +27,13 @@ name: "Agent Container Smoke Test" "on": pull_request: + # names: # Label filtering applied via job conditions + # - smoke # Label filtering applied via job conditions types: - labeled schedule: - cron: "44 */12 * * *" - workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string + workflow_dispatch: null permissions: {} diff --git a/.github/workflows/smoke-update-cross-repo-pr.lock.yml b/.github/workflows/smoke-update-cross-repo-pr.lock.yml index 64a36746f83..1f5170124b7 100644 --- a/.github/workflows/smoke-update-cross-repo-pr.lock.yml +++ b/.github/workflows/smoke-update-cross-repo-pr.lock.yml @@ -27,17 +27,13 @@ name: "Smoke Update Cross-Repo PR" "on": pull_request: + # names: # Label filtering applied via job conditions + # - smoke-update-cross-repo-pr # Label filtering applied via job conditions types: - labeled schedule: - cron: "34 */12 * * *" - workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string + workflow_dispatch: null permissions: {} diff --git a/.github/workflows/smoke-workflow-call-with-inputs.lock.yml b/.github/workflows/smoke-workflow-call-with-inputs.lock.yml index 7f5b36f55ed..074181c4b75 100644 --- a/.github/workflows/smoke-workflow-call-with-inputs.lock.yml +++ b/.github/workflows/smoke-workflow-call-with-inputs.lock.yml @@ -42,11 +42,6 @@ name: "Smoke Workflow Call with Inputs" value: ${{ jobs.safe_outputs.outputs.created_issue_url }} workflow_dispatch: inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string task-description: default: generic task description: Short description of what this invocation should do diff --git a/.github/workflows/smoke-workflow-call.lock.yml b/.github/workflows/smoke-workflow-call.lock.yml index 2a011b2a312..1bcbc0c7b09 100644 --- a/.github/workflows/smoke-workflow-call.lock.yml +++ b/.github/workflows/smoke-workflow-call.lock.yml @@ -45,11 +45,6 @@ name: "Smoke Workflow Call" value: ${{ jobs.safe_outputs.outputs.comment_url }} workflow_dispatch: inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string task-description: default: validate workflow_call checkout description: Short description of the validation task to include in the output comment diff --git a/.github/workflows/stale-repo-identifier.lock.yml b/.github/workflows/stale-repo-identifier.lock.yml index c46585e4821..86f9a724c0c 100644 --- a/.github/workflows/stale-repo-identifier.lock.yml +++ b/.github/workflows/stale-repo-identifier.lock.yml @@ -37,11 +37,6 @@ name: "Stale Repository Identifier" - cron: "0 9 1 * *" workflow_dispatch: inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string organization: default: github description: GitHub organization to scan for stale repositories diff --git a/.github/workflows/static-analysis-report.lock.yml b/.github/workflows/static-analysis-report.lock.yml index a7ea085dd44..203a72b815f 100644 --- a/.github/workflows/static-analysis-report.lock.yml +++ b/.github/workflows/static-analysis-report.lock.yml @@ -32,13 +32,8 @@ name: "Static Analysis Report" "on": schedule: - cron: "32 2 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/step-name-alignment.lock.yml b/.github/workflows/step-name-alignment.lock.yml index a0720e830e9..42055b2a830 100644 --- a/.github/workflows/step-name-alignment.lock.yml +++ b/.github/workflows/step-name-alignment.lock.yml @@ -28,13 +28,8 @@ name: "Step Name Alignment" "on": schedule: - cron: "30 14 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/sub-issue-closer.lock.yml b/.github/workflows/sub-issue-closer.lock.yml index a1b996b4781..8c7f1f240e8 100644 --- a/.github/workflows/sub-issue-closer.lock.yml +++ b/.github/workflows/sub-issue-closer.lock.yml @@ -28,13 +28,8 @@ name: "Sub-Issue Closer" "on": schedule: - cron: "27 1 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/super-linter.lock.yml b/.github/workflows/super-linter.lock.yml index 398d31bda43..3b958e3c154 100644 --- a/.github/workflows/super-linter.lock.yml +++ b/.github/workflows/super-linter.lock.yml @@ -33,12 +33,6 @@ name: "Super Linter Report" schedule: - cron: "0 14 * * 1-5" workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/technical-doc-writer.lock.yml b/.github/workflows/technical-doc-writer.lock.yml index bb0fced1986..39ea6834d4f 100644 --- a/.github/workflows/technical-doc-writer.lock.yml +++ b/.github/workflows/technical-doc-writer.lock.yml @@ -34,11 +34,6 @@ name: "Rebuild the documentation after making changes" "on": workflow_dispatch: inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string topic: description: Documentation topic to review required: true diff --git a/.github/workflows/terminal-stylist.lock.yml b/.github/workflows/terminal-stylist.lock.yml index f5037444b15..fb0c9dceb3a 100644 --- a/.github/workflows/terminal-stylist.lock.yml +++ b/.github/workflows/terminal-stylist.lock.yml @@ -33,13 +33,8 @@ name: "Terminal Stylist" "on": schedule: - cron: "9 17 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/test-create-pr-error-handling.lock.yml b/.github/workflows/test-create-pr-error-handling.lock.yml index cb886ac4566..238b90a64c8 100644 --- a/.github/workflows/test-create-pr-error-handling.lock.yml +++ b/.github/workflows/test-create-pr-error-handling.lock.yml @@ -27,12 +27,6 @@ name: "Test Create PR Error Handling" "on": workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/test-dispatcher.lock.yml b/.github/workflows/test-dispatcher.lock.yml index b84cd5a71d8..6462ff9daf4 100644 --- a/.github/workflows/test-dispatcher.lock.yml +++ b/.github/workflows/test-dispatcher.lock.yml @@ -26,12 +26,6 @@ name: "Test Dispatcher Workflow" "on": workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} @@ -1009,7 +1003,7 @@ jobs: GH_AW_ALLOWED_DOMAINS: "api.business.githubcopilot.com,api.enterprise.githubcopilot.com,api.github.com,api.githubcopilot.com,api.individual.githubcopilot.com,api.snapcraft.io,archive.ubuntu.com,azure.archive.ubuntu.com,crl.geotrust.com,crl.globalsign.com,crl.identrust.com,crl.sectigo.com,crl.thawte.com,crl.usertrust.com,crl.verisign.com,crl3.digicert.com,crl4.digicert.com,crls.ssl.com,github.com,host.docker.internal,json-schema.org,json.schemastore.org,keyserver.ubuntu.com,ocsp.digicert.com,ocsp.geotrust.com,ocsp.globalsign.com,ocsp.identrust.com,ocsp.sectigo.com,ocsp.ssl.com,ocsp.thawte.com,ocsp.usertrust.com,ocsp.verisign.com,packagecloud.io,packages.cloud.google.com,packages.microsoft.com,ppa.launchpad.net,raw.githubusercontent.com,registry.npmjs.org,s.symcb.com,s.symcd.com,security.ubuntu.com,telemetry.enterprise.githubcopilot.com,ts-crl.ws.symantec.com,ts-ocsp.ws.symantec.com,www.googleapis.com" GITHUB_SERVER_URL: ${{ github.server_url }} GITHUB_API_URL: ${{ github.api_url }} - GH_AW_SAFE_OUTPUTS_HANDLER_CONFIG: "{\"dispatch_workflow\":{\"max\":1,\"workflow_files\":{\"test-workflow\":\".lock.yml\"},\"workflows\":[\"test-workflow\"]},\"missing_data\":{},\"missing_tool\":{},\"noop\":{\"max\":1,\"report-as-issue\":\"true\"}}" + GH_AW_SAFE_OUTPUTS_HANDLER_CONFIG: "{\"dispatch_workflow\":{\"aw_context_workflows\":[\"test-workflow\"],\"max\":1,\"workflow_files\":{\"test-workflow\":\".lock.yml\"},\"workflows\":[\"test-workflow\"]},\"missing_data\":{},\"missing_tool\":{},\"noop\":{\"max\":1,\"report-as-issue\":\"true\"}}" with: github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} script: | diff --git a/.github/workflows/test-project-url-default.lock.yml b/.github/workflows/test-project-url-default.lock.yml index fbc9831eb0c..0b37def197e 100644 --- a/.github/workflows/test-project-url-default.lock.yml +++ b/.github/workflows/test-project-url-default.lock.yml @@ -26,12 +26,6 @@ name: "Test Project URL Explicit Requirement" "on": workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/test-workflow.lock.yml b/.github/workflows/test-workflow.lock.yml index 38baafdb8e2..c1063a9cb93 100644 --- a/.github/workflows/test-workflow.lock.yml +++ b/.github/workflows/test-workflow.lock.yml @@ -27,11 +27,6 @@ name: "Test Workflow" "on": workflow_dispatch: inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string test_param: description: Question from the dispatcher workflow required: true diff --git a/.github/workflows/tidy.lock.yml b/.github/workflows/tidy.lock.yml index 98b0dc24d92..1f65a0fbc6f 100644 --- a/.github/workflows/tidy.lock.yml +++ b/.github/workflows/tidy.lock.yml @@ -40,13 +40,7 @@ name: "Tidy" - "**/*.ts" schedule: - cron: "0 7 * * *" - workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string + workflow_dispatch: null permissions: {} diff --git a/.github/workflows/typist.lock.yml b/.github/workflows/typist.lock.yml index 339ce95bfac..bd5e99e6cda 100644 --- a/.github/workflows/typist.lock.yml +++ b/.github/workflows/typist.lock.yml @@ -34,12 +34,6 @@ name: "Typist - Go Type Analysis" schedule: - cron: "0 11 * * 1-5" workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/ubuntu-image-analyzer.lock.yml b/.github/workflows/ubuntu-image-analyzer.lock.yml index b8ff8420379..6fffa5b11b5 100644 --- a/.github/workflows/ubuntu-image-analyzer.lock.yml +++ b/.github/workflows/ubuntu-image-analyzer.lock.yml @@ -32,13 +32,9 @@ name: "Ubuntu Actions Image Analyzer" "on": schedule: - cron: "50 13 * * 3" + # Friendly format: weekly (scattered) + # skip-if-match: is:pr is:open in:title "[ubuntu-image]" # Skip-if-match processed as search check in pre-activation job workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/unbloat-docs.lock.yml b/.github/workflows/unbloat-docs.lock.yml index 8e31b0f3f0d..1b928595677 100644 --- a/.github/workflows/unbloat-docs.lock.yml +++ b/.github/workflows/unbloat-docs.lock.yml @@ -38,13 +38,7 @@ name: "Documentation Unbloat" - edited schedule: - cron: "7 19 * * *" - workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string + workflow_dispatch: null permissions: {} diff --git a/.github/workflows/update-astro.lock.yml b/.github/workflows/update-astro.lock.yml index da85a891f4a..36b10d88709 100644 --- a/.github/workflows/update-astro.lock.yml +++ b/.github/workflows/update-astro.lock.yml @@ -28,13 +28,9 @@ name: "Update Astro" "on": schedule: - cron: "37 15 * * *" + # Friendly format: daily (scattered) + # skip-if-no-match: is:pr is:open author:app/dependabot label:dependencies # Skip-if-no-match processed as search check in pre-activation job workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/video-analyzer.lock.yml b/.github/workflows/video-analyzer.lock.yml index 99c1f66471a..131e7d90685 100644 --- a/.github/workflows/video-analyzer.lock.yml +++ b/.github/workflows/video-analyzer.lock.yml @@ -32,11 +32,6 @@ name: "Video Analysis Agent" "on": workflow_dispatch: inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string video_url: description: URL to video file to analyze (must be publicly accessible) required: true diff --git a/.github/workflows/weekly-blog-post-writer.lock.yml b/.github/workflows/weekly-blog-post-writer.lock.yml index dda2c37fc5a..b8a3fd6d550 100644 --- a/.github/workflows/weekly-blog-post-writer.lock.yml +++ b/.github/workflows/weekly-blog-post-writer.lock.yml @@ -32,13 +32,8 @@ name: "Weekly Blog Post Writer" "on": schedule: - cron: "25 20 * * 1" + # Friendly format: weekly on monday (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/weekly-editors-health-check.lock.yml b/.github/workflows/weekly-editors-health-check.lock.yml index e8e82b53d9e..8e357b97ddc 100644 --- a/.github/workflows/weekly-editors-health-check.lock.yml +++ b/.github/workflows/weekly-editors-health-check.lock.yml @@ -28,13 +28,8 @@ name: "Weekly Editors Health Check" "on": schedule: - cron: "8 2 * * 5" + # Friendly format: weekly (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/weekly-issue-summary.lock.yml b/.github/workflows/weekly-issue-summary.lock.yml index 9048fe18ed7..2e99568fcca 100644 --- a/.github/workflows/weekly-issue-summary.lock.yml +++ b/.github/workflows/weekly-issue-summary.lock.yml @@ -35,12 +35,6 @@ name: "Weekly Issue Summary" schedule: - cron: "0 15 * * 1" workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/weekly-safe-outputs-spec-review.lock.yml b/.github/workflows/weekly-safe-outputs-spec-review.lock.yml index 3062fbb94fc..3424196abbb 100644 --- a/.github/workflows/weekly-safe-outputs-spec-review.lock.yml +++ b/.github/workflows/weekly-safe-outputs-spec-review.lock.yml @@ -28,13 +28,8 @@ name: "Weekly Safe Outputs Specification Review" "on": schedule: - cron: "13 3 * * 1" + # Friendly format: weekly on monday (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/workflow-health-manager.lock.yml b/.github/workflows/workflow-health-manager.lock.yml index 3d6f598ef9c..fc34d488ff2 100644 --- a/.github/workflows/workflow-health-manager.lock.yml +++ b/.github/workflows/workflow-health-manager.lock.yml @@ -32,13 +32,8 @@ name: "Workflow Health Manager - Meta-Orchestrator" "on": schedule: - cron: "22 13 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/workflow-normalizer.lock.yml b/.github/workflows/workflow-normalizer.lock.yml index 35ec9ef00e7..08771a2d5a9 100644 --- a/.github/workflows/workflow-normalizer.lock.yml +++ b/.github/workflows/workflow-normalizer.lock.yml @@ -32,13 +32,8 @@ name: "Workflow Normalizer" "on": schedule: - cron: "53 15 * * *" + # Friendly format: daily (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/.github/workflows/workflow-skill-extractor.lock.yml b/.github/workflows/workflow-skill-extractor.lock.yml index ffa770fea00..1165c1c2b03 100644 --- a/.github/workflows/workflow-skill-extractor.lock.yml +++ b/.github/workflows/workflow-skill-extractor.lock.yml @@ -32,13 +32,8 @@ name: "Workflow Skill Extractor" "on": schedule: - cron: "48 4 * * 2" + # Friendly format: weekly (scattered) workflow_dispatch: - inputs: - aw_context: - default: "" - description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. - required: false - type: string permissions: {} diff --git a/actions/setup/js/aw_context.cjs b/actions/setup/js/aw_context.cjs new file mode 100644 index 00000000000..9c773c08f70 --- /dev/null +++ b/actions/setup/js/aw_context.cjs @@ -0,0 +1,27 @@ +// @ts-check +/// + +/** + * Builds the aw_context object that identifies the calling workflow run. + * This metadata is injected into dispatched workflows that declare an + * aw_context input, allowing them to trace back to their caller. + * + * @returns {{ repo: string, run_id: string, workflow_id: string, workflow_call_id: string, time: string, actor: string, event_type: string }} + */ +function buildAwContext() { + return { + repo: `${context.repo.owner}/${context.repo.repo}`, + run_id: String(context.runId ?? ""), + // GITHUB_WORKFLOW_REF provides the full workflow file path including the ref, + // e.g. "owner/repo/.github/workflows/dispatcher.yml@refs/heads/main" + workflow_id: process.env.GITHUB_WORKFLOW_REF ?? "", + // workflow_call_id uniquely identifies this specific call attempt: + // combine run_id with run_attempt (GITHUB_RUN_ATTEMPT) so re-runs produce different IDs. + workflow_call_id: `${process.env.GITHUB_RUN_ID ?? context.runId ?? ""}-${process.env.GITHUB_RUN_ATTEMPT ?? "1"}`, + time: new Date().toISOString(), + actor: context.actor ?? "", + event_type: context.eventName ?? "", + }; +} + +module.exports = { buildAwContext }; diff --git a/actions/setup/js/dispatch_repository.cjs b/actions/setup/js/dispatch_repository.cjs index 8848d11ecb6..a59e9132af2 100644 --- a/actions/setup/js/dispatch_repository.cjs +++ b/actions/setup/js/dispatch_repository.cjs @@ -13,6 +13,7 @@ const { createAuthenticatedGitHubClient } = require("./handler_auth.cjs"); const { parseRepoSlug, validateTargetRepo, parseAllowedRepos } = require("./repo_helpers.cjs"); const { logStagedPreviewInfo } = require("./staged_preview.cjs"); const { isStagedMode } = require("./safe_output_helpers.cjs"); +const { buildAwContext } = require("./aw_context.cjs"); /** * Main handler factory for dispatch_repository @@ -125,6 +126,9 @@ async function main(config = {}) { } } + // Inject aw_context so the receiving repository can trace the dispatch back to its caller. + clientPayload["aw_context"] = buildAwContext(); + const eventType = toolConfig.event_type || toolConfig.eventType || ""; if (!eventType) { core.warning(`dispatch_repository: tool "${toolName}" has no event_type configured`); diff --git a/actions/setup/js/dispatch_workflow.cjs b/actions/setup/js/dispatch_workflow.cjs index c57b013441d..27d54615690 100644 --- a/actions/setup/js/dispatch_workflow.cjs +++ b/actions/setup/js/dispatch_workflow.cjs @@ -13,6 +13,7 @@ const { createAuthenticatedGitHubClient } = require("./handler_auth.cjs"); const { resolveTargetRepoConfig, parseRepoSlug, validateTargetRepo } = require("./repo_helpers.cjs"); const { logStagedPreviewInfo } = require("./staged_preview.cjs"); const { isStagedMode } = require("./safe_output_helpers.cjs"); +const { buildAwContext } = require("./aw_context.cjs"); /** * Main handler factory for dispatch_workflow @@ -24,6 +25,7 @@ async function main(config = {}) { const allowedWorkflows = config.workflows || []; const maxCount = config.max || 1; const workflowFiles = config.workflow_files || {}; // Map of workflow name to file extension + const awContextWorkflows = new Set(config.aw_context_workflows || []); // Workflows that accept aw_context input const githubClient = await createAuthenticatedGitHubClient(config); const { defaultTargetRepo, allowedRepos } = resolveTargetRepoConfig(config); @@ -188,23 +190,11 @@ async function main(config = {}) { } } - // Inject aw_context: caller metadata passed to the dispatched workflow. - // This allows the receiving workflow to trace back to its caller via - // github.event.inputs.aw_context in its activation job. - const awContext = { - repo: `${context.repo.owner}/${context.repo.repo}`, - run_id: String(context.runId ?? ""), - // GITHUB_WORKFLOW_REF provides the full workflow file path including the ref, - // e.g. "owner/repo/.github/workflows/dispatcher.yml@refs/heads/main" - workflow_id: process.env.GITHUB_WORKFLOW_REF ?? "", - // workflow_call_id uniquely identifies this specific call attempt: - // combine run_id with run_attempt (GITHUB_RUN_ATTEMPT) so re-runs produce different IDs. - workflow_call_id: `${process.env.GITHUB_RUN_ID ?? context.runId ?? ""}-${process.env.GITHUB_RUN_ATTEMPT ?? "1"}`, - time: new Date().toISOString(), - actor: context.actor ?? "", - event_type: context.eventName ?? "", - }; - inputs["aw_context"] = JSON.stringify(awContext); + // Inject aw_context if the target workflow declares it as an input. + // Only workflows listed in aw_context_workflows (populated at compile time) support this. + if (awContextWorkflows.has(workflowName)) { + inputs["aw_context"] = JSON.stringify(buildAwContext()); + } // Get the workflow file extension from compile-time resolution const extension = workflowFiles[workflowName]; diff --git a/actions/setup/js/dispatch_workflow.test.cjs b/actions/setup/js/dispatch_workflow.test.cjs index 4cdc051e913..55d3f555c86 100644 --- a/actions/setup/js/dispatch_workflow.test.cjs +++ b/actions/setup/js/dispatch_workflow.test.cjs @@ -58,6 +58,7 @@ describe("dispatch_workflow handler factory", () => { workflow_files: { "test-workflow": ".lock.yml", }, + aw_context_workflows: ["test-workflow"], max: 5, }; const handler = await main(config); @@ -102,6 +103,7 @@ describe("dispatch_workflow handler factory", () => { const config = { workflows: ["test-workflow"], workflow_files: { "test-workflow": ".lock.yml" }, + aw_context_workflows: ["test-workflow"], max: 5, }; const handler = await main(config); @@ -223,6 +225,7 @@ describe("dispatch_workflow handler factory", () => { workflow_files: { "test-workflow": ".lock.yml", }, + aw_context_workflows: ["test-workflow"], }; const handler = await main(config); @@ -262,6 +265,7 @@ describe("dispatch_workflow handler factory", () => { workflow_files: { "no-inputs-workflow": ".lock.yml", }, + aw_context_workflows: ["no-inputs-workflow"], }; const handler = await main(config); @@ -337,6 +341,7 @@ describe("dispatch_workflow handler factory", () => { workflow_files: { "test-workflow": ".lock.yml", }, + aw_context_workflows: ["test-workflow"], }; const handler = await main(config); @@ -368,6 +373,7 @@ describe("dispatch_workflow handler factory", () => { workflow_files: { "test-workflow": ".lock.yml", }, + aw_context_workflows: ["test-workflow"], }; const handler = await main(config); @@ -399,6 +405,7 @@ describe("dispatch_workflow handler factory", () => { workflow_files: { "test-workflow": ".lock.yml", }, + aw_context_workflows: ["test-workflow"], }; const handler = await main(config); @@ -432,6 +439,7 @@ describe("dispatch_workflow handler factory", () => { workflow_files: { "test-workflow": ".lock.yml", }, + aw_context_workflows: ["test-workflow"], }; const handler = await main(config); @@ -471,6 +479,7 @@ describe("dispatch_workflow handler factory", () => { workflow_files: { "test-workflow": ".lock.yml", }, + aw_context_workflows: ["test-workflow"], }; const handler = await main(config); @@ -543,6 +552,7 @@ describe("dispatch_workflow handler factory", () => { const config = { workflows: ["test-workflow"], workflow_files: { "test-workflow": ".lock.yml" }, + aw_context_workflows: ["test-workflow"], }; const handler = await main(config); diff --git a/pkg/workflow/compiler_safe_outputs_config.go b/pkg/workflow/compiler_safe_outputs_config.go index 66ab52c0c95..32989c56446 100644 --- a/pkg/workflow/compiler_safe_outputs_config.go +++ b/pkg/workflow/compiler_safe_outputs_config.go @@ -605,6 +605,11 @@ var handlerRegistry = map[string]handlerBuilder{ builder.AddDefault("workflow_files", c.WorkflowFiles) } + // Add aw_context_workflows list if it has entries + if len(c.AwContextWorkflows) > 0 { + builder.AddStringSlice("aw_context_workflows", c.AwContextWorkflows) + } + builder.AddIfNotEmpty("target-ref", c.TargetRef) builder.AddIfNotEmpty("github-token", c.GitHubToken) builder.AddIfTrue("staged", c.Staged) diff --git a/pkg/workflow/compiler_yaml.go b/pkg/workflow/compiler_yaml.go index 1fe2626f58b..8c3d40de68c 100644 --- a/pkg/workflow/compiler_yaml.go +++ b/pkg/workflow/compiler_yaml.go @@ -199,9 +199,6 @@ func (c *Compiler) generateWorkflowBody(yaml *strings.Builder, data *WorkflowDat if data.SafeOutputs != nil { onSection = c.injectWorkflowCallOutputs(onSection, data.SafeOutputs) } - // Inject aw_context input into workflow_dispatch triggers so dispatched workflows - // can receive caller metadata (repo, run_id, actor, etc.) from dispatch_workflow. - onSection = injectAwContextIntoOnYAML(onSection) yaml.WriteString(onSection + "\n\n") // Note: GitHub Actions doesn't support workflow-level if conditions diff --git a/pkg/workflow/dispatch_workflow.go b/pkg/workflow/dispatch_workflow.go index 107929c8582..650351bc459 100644 --- a/pkg/workflow/dispatch_workflow.go +++ b/pkg/workflow/dispatch_workflow.go @@ -1,107 +1,19 @@ package workflow import ( - "strings" - "github.com/github/gh-aw/pkg/logger" - "github.com/github/gh-aw/pkg/parser" - "github.com/goccy/go-yaml" ) var dispatchWorkflowLog = logger.New("workflow:dispatch_workflow") -// awContextInputDescription is the description for the aw_context workflow_dispatch input. -// It signals to users that this input is managed internally by the agentic workflow system. -const awContextInputDescription = "(Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input." - -// injectAwContextIntoOnYAML adds the aw_context input to the workflow_dispatch trigger -// in the given on-section YAML string, if workflow_dispatch is present. -// The aw_context input carries caller metadata (repo, run_id, workflow_id, etc.) and is -// marked as optional and internal. This operates on the final on-section YAML string, -// after all other trigger processing, to avoid interfering with label_command or command -// trigger merging. -func injectAwContextIntoOnYAML(onSection string) string { - if !strings.Contains(onSection, "workflow_dispatch") { - return onSection - } - - // Parse the on section YAML - var onData map[string]any - if err := yaml.Unmarshal([]byte(onSection), &onData); err != nil { - dispatchWorkflowLog.Printf("Warning: failed to parse on section for aw_context injection: %v", err) - return onSection - } - - onMap, ok := onData["on"].(map[string]any) - if !ok { - return onSection - } - - wdVal, hasWD := onMap["workflow_dispatch"] - if !hasWD { - return onSection - } - - // Ensure workflow_dispatch is a map (it may be nil for bare "workflow_dispatch:" triggers) - var wdMap map[string]any - if wdVal == nil { - wdMap = make(map[string]any) - } else if m, ok := wdVal.(map[string]any); ok { - wdMap = m - } else { - return onSection - } - - // Get or create the inputs map - var inputsMap map[string]any - if existingInputs, hasInputs := wdMap["inputs"]; hasInputs { - if im, ok := existingInputs.(map[string]any); ok { - inputsMap = im - } else { - inputsMap = make(map[string]any) - } - } else { - inputsMap = make(map[string]any) - } - - // Inject aw_context as an optional internal input (skip if already present) - if _, alreadyExists := inputsMap["aw_context"]; alreadyExists { - return onSection - } - inputsMap["aw_context"] = map[string]any{ - "description": awContextInputDescription, - "required": false, - "default": "", - "type": "string", - } - - wdMap["inputs"] = inputsMap - onMap["workflow_dispatch"] = wdMap - - // Re-serialize to YAML preserving alphabetical key order and applying post-processing - // identical to extractTopLevelYAMLSection: QuoteCronExpressions + CleanYAMLNullValues. - orderedOn := OrderMapFields(onMap, []string{}) - wrappedData := yaml.MapSlice{{Key: "on", Value: orderedOn}} - newYAML, err := yaml.MarshalWithOptions(wrappedData, DefaultMarshalOptions...) - if err != nil { - dispatchWorkflowLog.Printf("Warning: failed to marshal on section after aw_context injection: %v", err) - return onSection - } - - result := strings.TrimSuffix(string(newYAML), "\n") - result = parser.QuoteCronExpressions(result) - result = CleanYAMLNullValues(result) - dispatchWorkflowLog.Print("Injected aw_context input into on.workflow_dispatch.inputs") - return result -} - // DispatchWorkflowConfig holds configuration for dispatching workflows from agent output type DispatchWorkflowConfig struct { BaseSafeOutputConfig `yaml:",inline"` - Workflows []string `yaml:"workflows,omitempty"` // List of workflow names (without .md extension) to allow dispatching - WorkflowFiles map[string]string `yaml:"workflow_files,omitempty"` // Map of workflow name to file extension (.lock.yml or .yml) - populated at compile time - TargetRepoSlug string `yaml:"target-repo,omitempty"` // Target repository for cross-repo dispatch (owner/repo or GitHub Actions expression) - TargetRef string `yaml:"target-ref,omitempty"` // Target ref for cross-repo dispatch; overrides the caller's GITHUB_REF + Workflows []string `yaml:"workflows,omitempty"` // List of workflow names (without .md extension) to allow dispatching + WorkflowFiles map[string]string `yaml:"workflow_files,omitempty"` // Map of workflow name to file extension (.lock.yml or .yml) - populated at compile time + AwContextWorkflows []string `yaml:"aw_context_workflows,omitempty"` // Workflows that declare aw_context in workflow_dispatch.inputs - populated at compile time + TargetRepoSlug string `yaml:"target-repo,omitempty"` // Target repository for cross-repo dispatch (owner/repo or GitHub Actions expression) + TargetRef string `yaml:"target-ref,omitempty"` // Target ref for cross-repo dispatch; overrides the caller's GITHUB_REF } // parseDispatchWorkflowConfig handles dispatch-workflow configuration diff --git a/pkg/workflow/dispatch_workflow_test.go b/pkg/workflow/dispatch_workflow_test.go index ad21d54a9a5..c7498485a71 100644 --- a/pkg/workflow/dispatch_workflow_test.go +++ b/pkg/workflow/dispatch_workflow_test.go @@ -6,7 +6,6 @@ import ( "encoding/json" "os" "path/filepath" - "strings" "testing" "github.com/stretchr/testify/assert" @@ -591,113 +590,3 @@ safe-outputs: assert.Contains(t, errStr, "self-reference", "Should contain first error") assert.NotContains(t, errStr, "Found 2", "Should not have multiple error header in fail-fast mode") } - -// TestInjectAwContextIntoOnYAML_NoWorkflowDispatch verifies that injectAwContextIntoOnYAML is -// a no-op when there is no workflow_dispatch trigger. -func TestInjectAwContextIntoOnYAML_NoWorkflowDispatch(t *testing.T) { - onYAML := `"on": - push:` - result := injectAwContextIntoOnYAML(onYAML) - assert.YAMLEq(t, onYAML, result, "Should return unchanged YAML when workflow_dispatch is absent") - assert.NotContains(t, result, "aw_context", "aw_context should not appear without workflow_dispatch") -} - -// TestInjectAwContextIntoOnYAML_BareWorkflowDispatch verifies that aw_context is injected -// into a bare workflow_dispatch trigger (no existing inputs). -func TestInjectAwContextIntoOnYAML_BareWorkflowDispatch(t *testing.T) { - onYAML := `"on": - workflow_dispatch:` - result := injectAwContextIntoOnYAML(onYAML) - assert.Contains(t, result, "aw_context:", "aw_context input should be injected") - assert.Contains(t, result, "workflow_dispatch:", "workflow_dispatch section should still be present") - assert.Contains(t, result, "type: string", "aw_context type should be string") - assert.Contains(t, result, "required: false", "aw_context should not be required") -} - -// TestInjectAwContextIntoOnYAML_ExistingInputs verifies that aw_context is appended without -// disturbing existing workflow_dispatch inputs. -func TestInjectAwContextIntoOnYAML_ExistingInputs(t *testing.T) { - onYAML := `"on": - workflow_dispatch: - inputs: - environment: - description: Deployment environment - required: true - type: string` - result := injectAwContextIntoOnYAML(onYAML) - assert.Contains(t, result, "environment:", "Existing 'environment' input should be preserved") - assert.Contains(t, result, "aw_context:", "aw_context should be added") -} - -// TestInjectAwContextIntoOnYAML_Idempotent verifies that calling injectAwContextIntoOnYAML twice -// does not duplicate the aw_context entry. -func TestInjectAwContextIntoOnYAML_Idempotent(t *testing.T) { - onYAML := `"on": - workflow_dispatch:` - once := injectAwContextIntoOnYAML(onYAML) - twice := injectAwContextIntoOnYAML(once) - assert.Equal(t, once, twice, "Second injection should be a no-op") - assert.Equal(t, 1, strings.Count(twice, "aw_context:"), "aw_context should appear exactly once") -} - -// TestInjectAwContextIntoOnYAML_WithOtherTriggers verifies that aw_context is injected -// even when other triggers are present alongside workflow_dispatch. -func TestInjectAwContextIntoOnYAML_WithOtherTriggers(t *testing.T) { - onYAML := `"on": - pull_request: - types: - - labeled - workflow_dispatch: - inputs: - item_number: - description: The number of the issue - required: false - default: "" - type: string` - result := injectAwContextIntoOnYAML(onYAML) - assert.Contains(t, result, "pull_request:", "pull_request trigger should be preserved") - assert.Contains(t, result, "item_number:", "item_number input should be preserved") - assert.Contains(t, result, "aw_context:", "aw_context should be added alongside item_number") -} - -// TestInjectAwContextIntoOnYAML_CompiledOutput verifies that a workflow with workflow_dispatch -// trigger produces aw_context in the compiled lock file on section. -func TestInjectAwContextIntoOnYAML_CompiledOutput(t *testing.T) { - compiler := NewCompilerWithVersion("1.0.0") - - tmpDir := t.TempDir() - workflowsDir := filepath.Join(tmpDir, ".github", "workflows") - require.NoError(t, os.MkdirAll(workflowsDir, 0755)) - - workflowMD := `--- -on: - workflow_dispatch: - inputs: - env: - description: "Target environment" - required: false - type: string -engine: copilot -permissions: - contents: read ---- - -# Test Workflow -Run tests. -` - mdFile := filepath.Join(workflowsDir, "test.md") - require.NoError(t, os.WriteFile(mdFile, []byte(workflowMD), 0644)) - - err := compiler.CompileWorkflow(mdFile) - require.NoError(t, err, "Compilation should succeed") - - lockFile := filepath.Join(workflowsDir, "test.lock.yml") - content, err := os.ReadFile(lockFile) - require.NoError(t, err, "Lock file should be generated") - - lockStr := string(content) - assert.Contains(t, lockStr, "aw_context:", "Compiled output should include aw_context input") - assert.Contains(t, lockStr, "Internal", "aw_context description should mention internal usage") - // Existing user input should still be present - assert.Contains(t, lockStr, "env:", "Existing user input should be preserved in compiled output") -} diff --git a/pkg/workflow/safe_outputs_dispatch.go b/pkg/workflow/safe_outputs_dispatch.go index b04dfd06f1c..1d19cee1522 100644 --- a/pkg/workflow/safe_outputs_dispatch.go +++ b/pkg/workflow/safe_outputs_dispatch.go @@ -21,6 +21,9 @@ var safeOutputsDispatchWorkflowLog = logger.New("workflow:safe_outputs_dispatch" // populateDispatchWorkflowFiles resolves the file extension for each dispatch // workflow listed in SafeOutputsConfig.DispatchWorkflow.Workflows. The resolved // extension is stored in WorkflowFiles for later use by the runtime handler. +// It also detects which workflows declare aw_context in their workflow_dispatch.inputs +// and stores those names in AwContextWorkflows, so the runtime handler only injects +// aw_context metadata for workflows that explicitly support it. // // Priority order: .lock.yml > .yml > .md (same-batch compilation target) func populateDispatchWorkflowFiles(data *WorkflowData, markdownPath string) { @@ -64,7 +67,39 @@ func populateDispatchWorkflowFiles(data *WorkflowData, markdownPath string) { // Store the file extension for runtime use data.SafeOutputs.DispatchWorkflow.WorkflowFiles[workflowName] = extension safeOutputsConfigLog.Printf("Mapped workflow %s to extension %s", workflowName, extension) + + // Check if the target workflow declares aw_context in its workflow_dispatch.inputs. + // We check the lock file first (compiled YAML), falling back to the markdown frontmatter. + if workflowHasAwContextInput(fileResult, workflowName) { + data.SafeOutputs.DispatchWorkflow.AwContextWorkflows = append( + data.SafeOutputs.DispatchWorkflow.AwContextWorkflows, workflowName, + ) + safeOutputsConfigLog.Printf("Workflow %s declares aw_context input", workflowName) + } + } +} + +// workflowHasAwContextInput reports whether the workflow identified by fileResult +// has aw_context declared in its workflow_dispatch.inputs. +func workflowHasAwContextInput(fileResult *findWorkflowFileResult, workflowName string) bool { + var inputs map[string]any + var err error + + if fileResult.lockExists { + inputs, err = extractWorkflowDispatchInputs(fileResult.lockPath) + } else if fileResult.ymlExists { + inputs, err = extractWorkflowDispatchInputs(fileResult.ymlPath) + } else if fileResult.mdExists { + inputs, err = extractMDWorkflowDispatchInputs(fileResult.mdPath) + } else { + return false + } + if err != nil { + safeOutputsConfigLog.Printf("Warning: error extracting inputs for %s: %v", workflowName, err) + return false } + _, hasAwContext := inputs["aw_context"] + return hasAwContext } // generateDispatchWorkflowTool generates an MCP tool definition for a specific workflow. From 3d1ba685c2e0476152c819db25616a06660aecc3 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 23 Mar 2026 20:45:10 +0000 Subject: [PATCH 7/9] chore: plan implementation for auto-inject aw_context in compiler Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/6afb2823-61db-43c5-8beb-8f394b12cd94 --- .github/workflows/test-dispatcher.lock.yml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/.github/workflows/test-dispatcher.lock.yml b/.github/workflows/test-dispatcher.lock.yml index c1648013fc8..b3bb8b769be 100644 --- a/.github/workflows/test-dispatcher.lock.yml +++ b/.github/workflows/test-dispatcher.lock.yml @@ -344,11 +344,6 @@ jobs: "inputSchema": { "additionalProperties": false, "properties": { - "aw_context": { - "default": "", - "description": "(Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input.", - "type": "string" - }, "test_param": { "description": "Question from the dispatcher workflow", "type": "string" @@ -1003,7 +998,7 @@ jobs: GH_AW_ALLOWED_DOMAINS: "api.business.githubcopilot.com,api.enterprise.githubcopilot.com,api.github.com,api.githubcopilot.com,api.individual.githubcopilot.com,api.snapcraft.io,archive.ubuntu.com,azure.archive.ubuntu.com,crl.geotrust.com,crl.globalsign.com,crl.identrust.com,crl.sectigo.com,crl.thawte.com,crl.usertrust.com,crl.verisign.com,crl3.digicert.com,crl4.digicert.com,crls.ssl.com,github.com,host.docker.internal,json-schema.org,json.schemastore.org,keyserver.ubuntu.com,ocsp.digicert.com,ocsp.geotrust.com,ocsp.globalsign.com,ocsp.identrust.com,ocsp.sectigo.com,ocsp.ssl.com,ocsp.thawte.com,ocsp.usertrust.com,ocsp.verisign.com,packagecloud.io,packages.cloud.google.com,packages.microsoft.com,ppa.launchpad.net,raw.githubusercontent.com,registry.npmjs.org,s.symcb.com,s.symcd.com,security.ubuntu.com,telemetry.enterprise.githubcopilot.com,ts-crl.ws.symantec.com,ts-ocsp.ws.symantec.com,www.googleapis.com" GITHUB_SERVER_URL: ${{ github.server_url }} GITHUB_API_URL: ${{ github.api_url }} - GH_AW_SAFE_OUTPUTS_HANDLER_CONFIG: "{\"dispatch_workflow\":{\"aw_context_workflows\":[\"test-workflow\"],\"max\":1,\"workflow_files\":{\"test-workflow\":\".lock.yml\"},\"workflows\":[\"test-workflow\"]},\"missing_data\":{},\"missing_tool\":{},\"noop\":{\"max\":1,\"report-as-issue\":\"true\"}}" + GH_AW_SAFE_OUTPUTS_HANDLER_CONFIG: "{\"dispatch_workflow\":{\"max\":1,\"workflow_files\":{\"test-workflow\":\".lock.yml\"},\"workflows\":[\"test-workflow\"]},\"missing_data\":{},\"missing_tool\":{},\"noop\":{\"max\":1,\"report-as-issue\":\"true\"}}" with: github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} script: | From 5492b4fd1880276bcf48f44a8160ccef5a1d4d63 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 23 Mar 2026 20:57:09 +0000 Subject: [PATCH 8/9] feat: auto-inject aw_context in compiled workflows, add to haiku-printer.yml Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/6afb2823-61db-43c5-8beb-8f394b12cd94 --- .../agent-performance-analyzer.lock.yml | 6 + .../workflows/agent-persona-explorer.lock.yml | 6 + .github/workflows/artifacts-summary.lock.yml | 6 + .github/workflows/audit-workflows.lock.yml | 6 + .github/workflows/auto-triage-issues.lock.yml | 6 + .github/workflows/blog-auditor.lock.yml | 6 + .github/workflows/bot-detection.lock.yml | 6 + .../breaking-change-checker.lock.yml | 6 + .github/workflows/changeset.lock.yml | 8 +- .github/workflows/ci-coach.lock.yml | 6 + .github/workflows/ci-doctor.lock.yml | 5 + .../claude-code-user-docs-review.lock.yml | 6 + .../cli-consistency-checker.lock.yml | 6 + .../workflows/cli-version-checker.lock.yml | 6 + .../workflows/code-scanning-fixer.lock.yml | 6 + .github/workflows/code-simplifier.lock.yml | 6 + .../codex-github-remote-mcp-test.lock.yml | 6 + .../commit-changes-analyzer.lock.yml | 5 + .../constraint-solving-potd.lock.yml | 6 + .github/workflows/contribution-check.lock.yml | 6 + .../workflows/copilot-agent-analysis.lock.yml | 6 + .../copilot-cli-deep-research.lock.yml | 6 + .../copilot-pr-merged-report.lock.yml | 6 + .../copilot-pr-nlp-analysis.lock.yml | 6 + .../copilot-pr-prompt-analysis.lock.yml | 6 + .../copilot-session-insights.lock.yml | 6 + .../daily-architecture-diagram.lock.yml | 6 + .../daily-assign-issue-to-user.lock.yml | 6 + .github/workflows/daily-choice-test.lock.yml | 6 + .../workflows/daily-cli-performance.lock.yml | 6 + .../workflows/daily-cli-tools-tester.lock.yml | 6 + .github/workflows/daily-code-metrics.lock.yml | 6 + .../daily-community-attribution.lock.yml | 6 + .../workflows/daily-compiler-quality.lock.yml | 6 + .../daily-copilot-token-report.lock.yml | 6 + .github/workflows/daily-doc-healer.lock.yml | 6 + .github/workflows/daily-doc-updater.lock.yml | 6 + .github/workflows/daily-fact.lock.yml | 6 + .github/workflows/daily-file-diet.lock.yml | 6 + .../workflows/daily-firewall-report.lock.yml | 6 + .../workflows/daily-function-namer.lock.yml | 6 + .../daily-integrity-analysis.lock.yml | 6 + .../workflows/daily-issues-report.lock.yml | 6 + .../daily-malicious-code-scan.lock.yml | 6 + .../daily-mcp-concurrency-analysis.lock.yml | 6 + .../daily-multi-device-docs-tester.lock.yml | 5 + .github/workflows/daily-news.lock.yml | 6 + .../daily-observability-report.lock.yml | 6 + .../daily-performance-summary.lock.yml | 6 + .github/workflows/daily-regulatory.lock.yml | 6 + .../daily-rendering-scripts-verifier.lock.yml | 6 + .../workflows/daily-repo-chronicle.lock.yml | 6 + .../daily-safe-output-integrator.lock.yml | 6 + .../daily-safe-output-optimizer.lock.yml | 6 + .../daily-safe-outputs-conformance.lock.yml | 6 + .../workflows/daily-secrets-analysis.lock.yml | 6 + .../daily-security-red-team.lock.yml | 6 + .github/workflows/daily-semgrep-scan.lock.yml | 6 + .../daily-syntax-error-quality.lock.yml | 6 + .../daily-team-evolution-insights.lock.yml | 6 + .github/workflows/daily-team-status.lock.yml | 8 +- .../daily-testify-uber-super-expert.lock.yml | 6 + .../workflows/daily-workflow-updater.lock.yml | 6 + .github/workflows/dead-code-remover.lock.yml | 6 + .github/workflows/deep-report.lock.yml | 6 + .github/workflows/delight.lock.yml | 6 + .github/workflows/dependabot-burner.lock.yml | 6 + .../workflows/dependabot-go-checker.lock.yml | 6 + .github/workflows/dev.lock.yml | 6 + .../developer-docs-consolidator.lock.yml | 6 + .github/workflows/dictation-prompt.lock.yml | 6 + .../workflows/discussion-task-miner.lock.yml | 6 + .github/workflows/docs-noob-tester.lock.yml | 6 + .github/workflows/draft-pr-cleanup.lock.yml | 6 + .../duplicate-code-detector.lock.yml | 6 + .../example-permissions-warning.lock.yml | 6 + .../example-workflow-analyzer.lock.yml | 6 + .github/workflows/firewall-escape.lock.yml | 6 + .github/workflows/firewall.lock.yml | 6 + .../workflows/functional-pragmatist.lock.yml | 6 + .../github-mcp-structural-analysis.lock.yml | 6 + .../github-mcp-tools-report.lock.yml | 6 + .../github-remote-mcp-auth-test.lock.yml | 6 + .../workflows/glossary-maintainer.lock.yml | 6 + .github/workflows/go-fan.lock.yml | 6 + .github/workflows/go-logger.lock.yml | 6 + .../workflows/go-pattern-detector.lock.yml | 6 + .github/workflows/gpclean.lock.yml | 6 + .github/workflows/haiku-printer.yml | 5 + .github/workflows/hourly-ci-cleaner.lock.yml | 6 + .../workflows/instructions-janitor.lock.yml | 6 + .github/workflows/issue-arborist.lock.yml | 6 + .github/workflows/issue-monster.lock.yml | 6 + .github/workflows/issue-triage-agent.lock.yml | 6 + .github/workflows/jsweep.lock.yml | 6 + .../workflows/layout-spec-maintainer.lock.yml | 6 + .github/workflows/lockfile-stats.lock.yml | 6 + .github/workflows/mcp-inspector.lock.yml | 6 + .github/workflows/metrics-collector.lock.yml | 6 + .../workflows/notion-issue-summary.lock.yml | 5 + .github/workflows/org-health-report.lock.yml | 6 + .github/workflows/pdf-summary.lock.yml | 5 + .github/workflows/poem-bot.lock.yml | 5 + .github/workflows/portfolio-analyst.lock.yml | 6 + .github/workflows/pr-triage-agent.lock.yml | 6 + .../prompt-clustering-analysis.lock.yml | 6 + .github/workflows/python-data-charts.lock.yml | 6 + .github/workflows/refiner.lock.yml | 5 + .github/workflows/release.lock.yml | 5 + .../workflows/repo-audit-analyzer.lock.yml | 5 + .github/workflows/repo-tree-map.lock.yml | 6 + .../repository-quality-improver.lock.yml | 6 + .github/workflows/research.lock.yml | 5 + .github/workflows/safe-output-health.lock.yml | 6 + .../schema-consistency-checker.lock.yml | 6 + .../schema-feature-coverage.lock.yml | 6 + .github/workflows/scout.lock.yml | 5 + .../workflows/security-compliance.lock.yml | 5 + .../semantic-function-refactor.lock.yml | 6 + .github/workflows/sergo.lock.yml | 6 + .../workflows/slide-deck-maintainer.lock.yml | 5 + .../workflows/smoke-agent-all-merged.lock.yml | 8 +- .../workflows/smoke-agent-all-none.lock.yml | 8 +- .../smoke-agent-public-approved.lock.yml | 8 +- .../smoke-agent-public-none.lock.yml | 8 +- .../smoke-agent-scoped-approved.lock.yml | 8 +- .../workflows/smoke-call-workflow.lock.yml | 6 + .github/workflows/smoke-claude.lock.yml | 8 +- .github/workflows/smoke-codex.lock.yml | 8 +- .github/workflows/smoke-copilot-arm.lock.yml | 15 ++- .github/workflows/smoke-copilot.lock.yml | 12 +- .../smoke-create-cross-repo-pr.lock.yml | 8 +- .github/workflows/smoke-gemini.lock.yml | 8 +- .github/workflows/smoke-multi-pr.lock.yml | 8 +- .github/workflows/smoke-project.lock.yml | 8 +- .github/workflows/smoke-temporary-id.lock.yml | 8 +- .github/workflows/smoke-test-tools.lock.yml | 8 +- .../smoke-update-cross-repo-pr.lock.yml | 8 +- .../smoke-workflow-call-with-inputs.lock.yml | 5 + .../workflows/smoke-workflow-call.lock.yml | 5 + .../workflows/stale-repo-identifier.lock.yml | 5 + .../workflows/static-analysis-report.lock.yml | 6 + .../workflows/step-name-alignment.lock.yml | 6 + .github/workflows/sub-issue-closer.lock.yml | 6 + .github/workflows/super-linter.lock.yml | 6 + .../workflows/technical-doc-writer.lock.yml | 5 + .github/workflows/terminal-stylist.lock.yml | 6 + .../test-create-pr-error-handling.lock.yml | 6 + .github/workflows/test-dispatcher.lock.yml | 13 ++- .../test-project-url-default.lock.yml | 6 + .github/workflows/test-workflow.lock.yml | 5 + .github/workflows/tidy.lock.yml | 8 +- .github/workflows/typist.lock.yml | 6 + .../workflows/ubuntu-image-analyzer.lock.yml | 6 + .github/workflows/unbloat-docs.lock.yml | 8 +- .github/workflows/update-astro.lock.yml | 6 + .github/workflows/video-analyzer.lock.yml | 5 + .../weekly-blog-post-writer.lock.yml | 6 + .../weekly-editors-health-check.lock.yml | 6 + .../workflows/weekly-issue-summary.lock.yml | 6 + .../weekly-safe-outputs-spec-review.lock.yml | 6 + .../workflow-health-manager.lock.yml | 6 + .../workflows/workflow-normalizer.lock.yml | 6 + .../workflow-skill-extractor.lock.yml | 6 + pkg/workflow/compiler_aw_context.go | 107 ++++++++++++++++++ pkg/workflow/compiler_yaml.go | 4 + .../basic-copilot.golden | 14 ++- .../smoke-copilot.golden | 14 ++- .../with-imports.golden | 14 ++- pkg/workflow/workflow_dispatch_inputs_test.go | 9 +- 170 files changed, 1147 insertions(+), 37 deletions(-) create mode 100644 pkg/workflow/compiler_aw_context.go diff --git a/.github/workflows/agent-performance-analyzer.lock.yml b/.github/workflows/agent-performance-analyzer.lock.yml index b79d5774483..064ff3b5284 100644 --- a/.github/workflows/agent-performance-analyzer.lock.yml +++ b/.github/workflows/agent-performance-analyzer.lock.yml @@ -34,6 +34,12 @@ name: "Agent Performance Analyzer - Meta-Orchestrator" - cron: "43 20 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/agent-persona-explorer.lock.yml b/.github/workflows/agent-persona-explorer.lock.yml index 78c5a5d2cd6..337c912436c 100644 --- a/.github/workflows/agent-persona-explorer.lock.yml +++ b/.github/workflows/agent-persona-explorer.lock.yml @@ -34,6 +34,12 @@ name: "Agent Persona Explorer" - cron: "26 15 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/artifacts-summary.lock.yml b/.github/workflows/artifacts-summary.lock.yml index ff9be19a027..c28ce40364a 100644 --- a/.github/workflows/artifacts-summary.lock.yml +++ b/.github/workflows/artifacts-summary.lock.yml @@ -35,6 +35,12 @@ name: "Artifacts Summary" - cron: "33 5 * * 0" # Friendly format: weekly on sunday around 06:00 (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/audit-workflows.lock.yml b/.github/workflows/audit-workflows.lock.yml index 19221d499dc..24c6af12e49 100644 --- a/.github/workflows/audit-workflows.lock.yml +++ b/.github/workflows/audit-workflows.lock.yml @@ -36,6 +36,12 @@ name: "Agentic Workflow Audit Agent" - cron: "12 16 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/auto-triage-issues.lock.yml b/.github/workflows/auto-triage-issues.lock.yml index 605f0fba71c..f9007d76491 100644 --- a/.github/workflows/auto-triage-issues.lock.yml +++ b/.github/workflows/auto-triage-issues.lock.yml @@ -38,6 +38,12 @@ name: "Auto-Triage Issues" - cron: "27 */6 * * *" # Friendly format: every 6h (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/blog-auditor.lock.yml b/.github/workflows/blog-auditor.lock.yml index b3e785921c2..2a1d140e686 100644 --- a/.github/workflows/blog-auditor.lock.yml +++ b/.github/workflows/blog-auditor.lock.yml @@ -34,6 +34,12 @@ name: "Blog Auditor" - cron: "26 11 * * 3" # Friendly format: weekly on wednesday around 12:00 (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/bot-detection.lock.yml b/.github/workflows/bot-detection.lock.yml index f0a55a9256e..0184f166467 100644 --- a/.github/workflows/bot-detection.lock.yml +++ b/.github/workflows/bot-detection.lock.yml @@ -29,6 +29,12 @@ name: "Bot Detection" schedule: - cron: "0 */6 * * *" workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/breaking-change-checker.lock.yml b/.github/workflows/breaking-change-checker.lock.yml index f04134ee43f..a28a11b70c3 100644 --- a/.github/workflows/breaking-change-checker.lock.yml +++ b/.github/workflows/breaking-change-checker.lock.yml @@ -35,6 +35,12 @@ name: "Breaking Change Checker" - cron: "0 14 * * 1-5" # skip-if-match: is:issue is:open in:title "[breaking-change]" # Skip-if-match processed as search check in pre-activation job workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/changeset.lock.yml b/.github/workflows/changeset.lock.yml index 7da61a07fcc..de5fae8575e 100644 --- a/.github/workflows/changeset.lock.yml +++ b/.github/workflows/changeset.lock.yml @@ -37,7 +37,13 @@ name: "Changeset Generator" # - smoke # Label filtering applied via job conditions types: - labeled - workflow_dispatch: null + workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/ci-coach.lock.yml b/.github/workflows/ci-coach.lock.yml index a28482834b5..f95b247b6b7 100644 --- a/.github/workflows/ci-coach.lock.yml +++ b/.github/workflows/ci-coach.lock.yml @@ -36,6 +36,12 @@ name: "CI Optimization Coach" schedule: - cron: "0 13 * * 1-5" workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/ci-doctor.lock.yml b/.github/workflows/ci-doctor.lock.yml index 6dfad8a2dc7..58cda04c3e0 100644 --- a/.github/workflows/ci-doctor.lock.yml +++ b/.github/workflows/ci-doctor.lock.yml @@ -35,6 +35,11 @@ name: "CI Failure Doctor" - labeled workflow_dispatch: inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string item_number: default: "" description: The number of the issue, pull request, or discussion diff --git a/.github/workflows/claude-code-user-docs-review.lock.yml b/.github/workflows/claude-code-user-docs-review.lock.yml index bf001ffcd2d..0ac1c1087c9 100644 --- a/.github/workflows/claude-code-user-docs-review.lock.yml +++ b/.github/workflows/claude-code-user-docs-review.lock.yml @@ -34,6 +34,12 @@ name: "Claude Code User Documentation Review" - cron: "13 17 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/cli-consistency-checker.lock.yml b/.github/workflows/cli-consistency-checker.lock.yml index 7abdc1c4d19..1478f5a9c56 100644 --- a/.github/workflows/cli-consistency-checker.lock.yml +++ b/.github/workflows/cli-consistency-checker.lock.yml @@ -29,6 +29,12 @@ name: "CLI Consistency Checker" schedule: - cron: "0 13 * * 1-5" workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/cli-version-checker.lock.yml b/.github/workflows/cli-version-checker.lock.yml index 138ab11c069..b09592d5436 100644 --- a/.github/workflows/cli-version-checker.lock.yml +++ b/.github/workflows/cli-version-checker.lock.yml @@ -35,6 +35,12 @@ name: "CLI Version Checker" - cron: "45 6 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/code-scanning-fixer.lock.yml b/.github/workflows/code-scanning-fixer.lock.yml index b3b7333032c..df2bb6953ac 100644 --- a/.github/workflows/code-scanning-fixer.lock.yml +++ b/.github/workflows/code-scanning-fixer.lock.yml @@ -32,6 +32,12 @@ name: "Code Scanning Fixer" "on": # skip-if-match: is:pr is:open in:title "[code-scanning-fix]" # Skip-if-match processed as search check in pre-activation job workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/code-simplifier.lock.yml b/.github/workflows/code-simplifier.lock.yml index 253e59dfaa2..b4540deaace 100644 --- a/.github/workflows/code-simplifier.lock.yml +++ b/.github/workflows/code-simplifier.lock.yml @@ -36,6 +36,12 @@ name: "Code Simplifier" # Friendly format: daily (scattered) # skip-if-match: is:pr is:open in:title "[code-simplifier]" # Skip-if-match processed as search check in pre-activation job workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/codex-github-remote-mcp-test.lock.yml b/.github/workflows/codex-github-remote-mcp-test.lock.yml index 7388331a379..50bf25bcd14 100644 --- a/.github/workflows/codex-github-remote-mcp-test.lock.yml +++ b/.github/workflows/codex-github-remote-mcp-test.lock.yml @@ -27,6 +27,12 @@ name: "Codex GitHub Remote MCP Test" "on": workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/commit-changes-analyzer.lock.yml b/.github/workflows/commit-changes-analyzer.lock.yml index 1223b4a5b63..20bd5d83d11 100644 --- a/.github/workflows/commit-changes-analyzer.lock.yml +++ b/.github/workflows/commit-changes-analyzer.lock.yml @@ -32,6 +32,11 @@ name: "Commit Changes Analyzer" "on": workflow_dispatch: inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string commit_url: description: GitHub commit URL to analyze changes since (e.g., https://github.com/owner/repo/commit/abc123) required: true diff --git a/.github/workflows/constraint-solving-potd.lock.yml b/.github/workflows/constraint-solving-potd.lock.yml index 052c61dc333..782c2f8b087 100644 --- a/.github/workflows/constraint-solving-potd.lock.yml +++ b/.github/workflows/constraint-solving-potd.lock.yml @@ -29,6 +29,12 @@ name: "Constraint Solving — Problem of the Day" - cron: "32 16 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/contribution-check.lock.yml b/.github/workflows/contribution-check.lock.yml index f40da967781..b4cb8be350b 100644 --- a/.github/workflows/contribution-check.lock.yml +++ b/.github/workflows/contribution-check.lock.yml @@ -29,6 +29,12 @@ name: "Contribution Check" - cron: "49 */4 * * *" # Friendly format: every 4 hours (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/copilot-agent-analysis.lock.yml b/.github/workflows/copilot-agent-analysis.lock.yml index 66738e140bb..49e254ffbb3 100644 --- a/.github/workflows/copilot-agent-analysis.lock.yml +++ b/.github/workflows/copilot-agent-analysis.lock.yml @@ -37,6 +37,12 @@ name: "Copilot Agent PR Analysis" - cron: "9 10 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/copilot-cli-deep-research.lock.yml b/.github/workflows/copilot-cli-deep-research.lock.yml index 1b65229cae5..2d7b1e4f3f4 100644 --- a/.github/workflows/copilot-cli-deep-research.lock.yml +++ b/.github/workflows/copilot-cli-deep-research.lock.yml @@ -34,6 +34,12 @@ name: "Copilot CLI Deep Research Agent" - cron: "50 10 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/copilot-pr-merged-report.lock.yml b/.github/workflows/copilot-pr-merged-report.lock.yml index fdfea1f848e..6d140faf7b5 100644 --- a/.github/workflows/copilot-pr-merged-report.lock.yml +++ b/.github/workflows/copilot-pr-merged-report.lock.yml @@ -37,6 +37,12 @@ name: "Daily Copilot PR Merged Report" schedule: - cron: "0 15 * * 1-5" workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/copilot-pr-nlp-analysis.lock.yml b/.github/workflows/copilot-pr-nlp-analysis.lock.yml index 9aca70d0ab0..ea4110658bc 100644 --- a/.github/workflows/copilot-pr-nlp-analysis.lock.yml +++ b/.github/workflows/copilot-pr-nlp-analysis.lock.yml @@ -38,6 +38,12 @@ name: "Copilot PR Conversation NLP Analysis" schedule: - cron: "0 10 * * 1-5" workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/copilot-pr-prompt-analysis.lock.yml b/.github/workflows/copilot-pr-prompt-analysis.lock.yml index 01ee1d11a15..ffd704a20f5 100644 --- a/.github/workflows/copilot-pr-prompt-analysis.lock.yml +++ b/.github/workflows/copilot-pr-prompt-analysis.lock.yml @@ -37,6 +37,12 @@ name: "Copilot PR Prompt Pattern Analysis" - cron: "11 10 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/copilot-session-insights.lock.yml b/.github/workflows/copilot-session-insights.lock.yml index de7042215b3..04e050002b5 100644 --- a/.github/workflows/copilot-session-insights.lock.yml +++ b/.github/workflows/copilot-session-insights.lock.yml @@ -39,6 +39,12 @@ name: "Copilot Session Insights" - cron: "47 21 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-architecture-diagram.lock.yml b/.github/workflows/daily-architecture-diagram.lock.yml index bcc70cc3687..009a94f5171 100644 --- a/.github/workflows/daily-architecture-diagram.lock.yml +++ b/.github/workflows/daily-architecture-diagram.lock.yml @@ -34,6 +34,12 @@ name: "Architecture Diagram Generator" - cron: "38 8 * * *" # Friendly format: daily around 08:00 (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-assign-issue-to-user.lock.yml b/.github/workflows/daily-assign-issue-to-user.lock.yml index 4eef912474d..91ad151bc8b 100644 --- a/.github/workflows/daily-assign-issue-to-user.lock.yml +++ b/.github/workflows/daily-assign-issue-to-user.lock.yml @@ -29,6 +29,12 @@ name: "Auto-Assign Issue" - cron: "5 14 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-choice-test.lock.yml b/.github/workflows/daily-choice-test.lock.yml index ffeec0d6859..c41181bf5e9 100644 --- a/.github/workflows/daily-choice-test.lock.yml +++ b/.github/workflows/daily-choice-test.lock.yml @@ -29,6 +29,12 @@ name: "Daily Choice Type Test" schedule: - cron: "0 12 * * 1-5" workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-cli-performance.lock.yml b/.github/workflows/daily-cli-performance.lock.yml index 96db6432ff3..e5c3584e2a9 100644 --- a/.github/workflows/daily-cli-performance.lock.yml +++ b/.github/workflows/daily-cli-performance.lock.yml @@ -58,6 +58,12 @@ name: "Daily CLI Performance Agent" # core.info(`has_changes=${hasChanges}`); # core.setOutput('has_changes', hasChanges ? 'true' : 'false'); workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-cli-tools-tester.lock.yml b/.github/workflows/daily-cli-tools-tester.lock.yml index 47108970880..5d21091b525 100644 --- a/.github/workflows/daily-cli-tools-tester.lock.yml +++ b/.github/workflows/daily-cli-tools-tester.lock.yml @@ -34,6 +34,12 @@ name: "Daily CLI Tools Exploratory Tester" - cron: "24 4 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-code-metrics.lock.yml b/.github/workflows/daily-code-metrics.lock.yml index 31d394f02e9..c13377c57b7 100644 --- a/.github/workflows/daily-code-metrics.lock.yml +++ b/.github/workflows/daily-code-metrics.lock.yml @@ -36,6 +36,12 @@ name: "Daily Code Metrics and Trend Tracking Agent" - cron: "29 18 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-community-attribution.lock.yml b/.github/workflows/daily-community-attribution.lock.yml index 2f56317b7f5..5d4a47d2f92 100644 --- a/.github/workflows/daily-community-attribution.lock.yml +++ b/.github/workflows/daily-community-attribution.lock.yml @@ -34,6 +34,12 @@ name: "Daily Community Attribution Updater" - cron: "37 6 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-compiler-quality.lock.yml b/.github/workflows/daily-compiler-quality.lock.yml index 3c2988661a4..739ffc93e53 100644 --- a/.github/workflows/daily-compiler-quality.lock.yml +++ b/.github/workflows/daily-compiler-quality.lock.yml @@ -35,6 +35,12 @@ name: "Daily Compiler Quality Check" - cron: "5 0 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-copilot-token-report.lock.yml b/.github/workflows/daily-copilot-token-report.lock.yml index 3a986caa34c..1ff35f7a1fd 100644 --- a/.github/workflows/daily-copilot-token-report.lock.yml +++ b/.github/workflows/daily-copilot-token-report.lock.yml @@ -35,6 +35,12 @@ name: "Daily Copilot Token Consumption Report" schedule: - cron: "0 11 * * 1-5" workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-doc-healer.lock.yml b/.github/workflows/daily-doc-healer.lock.yml index eb0cb6ff71e..91ebe1cb6b1 100644 --- a/.github/workflows/daily-doc-healer.lock.yml +++ b/.github/workflows/daily-doc-healer.lock.yml @@ -35,6 +35,12 @@ name: "Daily Documentation Healer" - cron: "24 8 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-doc-updater.lock.yml b/.github/workflows/daily-doc-updater.lock.yml index 64921c4f073..a746559e427 100644 --- a/.github/workflows/daily-doc-updater.lock.yml +++ b/.github/workflows/daily-doc-updater.lock.yml @@ -34,6 +34,12 @@ name: "Daily Documentation Updater" - cron: "38 18 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-fact.lock.yml b/.github/workflows/daily-fact.lock.yml index 3aa021f6ff1..068a70fed23 100644 --- a/.github/workflows/daily-fact.lock.yml +++ b/.github/workflows/daily-fact.lock.yml @@ -31,6 +31,12 @@ name: "Daily Fact About gh-aw" schedule: - cron: "0 11 * * 1-5" workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-file-diet.lock.yml b/.github/workflows/daily-file-diet.lock.yml index 4ddb12bc0c5..1212c418d68 100644 --- a/.github/workflows/daily-file-diet.lock.yml +++ b/.github/workflows/daily-file-diet.lock.yml @@ -37,6 +37,12 @@ name: "Daily File Diet" - cron: "0 13 * * 1-5" # skip-if-match: is:issue is:open in:title "[file-diet]" # Skip-if-match processed as search check in pre-activation job workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-firewall-report.lock.yml b/.github/workflows/daily-firewall-report.lock.yml index ff9685bdd1a..00de46da519 100644 --- a/.github/workflows/daily-firewall-report.lock.yml +++ b/.github/workflows/daily-firewall-report.lock.yml @@ -35,6 +35,12 @@ name: "Daily Firewall Logs Collector and Reporter" - cron: "37 0 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-function-namer.lock.yml b/.github/workflows/daily-function-namer.lock.yml index e5e916ca420..08ea7b713f6 100644 --- a/.github/workflows/daily-function-namer.lock.yml +++ b/.github/workflows/daily-function-namer.lock.yml @@ -35,6 +35,12 @@ name: "Daily Go Function Namer" - cron: "12 5 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-integrity-analysis.lock.yml b/.github/workflows/daily-integrity-analysis.lock.yml index 39f719ca10a..a661135db26 100644 --- a/.github/workflows/daily-integrity-analysis.lock.yml +++ b/.github/workflows/daily-integrity-analysis.lock.yml @@ -35,6 +35,12 @@ name: "Daily DIFC Integrity-Filtered Events Analyzer" - cron: "54 9 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-issues-report.lock.yml b/.github/workflows/daily-issues-report.lock.yml index d23734cea1f..141cd957213 100644 --- a/.github/workflows/daily-issues-report.lock.yml +++ b/.github/workflows/daily-issues-report.lock.yml @@ -39,6 +39,12 @@ name: "Daily Issues Report Generator" - cron: "45 20 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-malicious-code-scan.lock.yml b/.github/workflows/daily-malicious-code-scan.lock.yml index 281b2a695f9..415e26ae115 100644 --- a/.github/workflows/daily-malicious-code-scan.lock.yml +++ b/.github/workflows/daily-malicious-code-scan.lock.yml @@ -34,6 +34,12 @@ name: "Daily Malicious Code Scan Agent" - cron: "24 9 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-mcp-concurrency-analysis.lock.yml b/.github/workflows/daily-mcp-concurrency-analysis.lock.yml index a6a4e6369ba..69fc542a08e 100644 --- a/.github/workflows/daily-mcp-concurrency-analysis.lock.yml +++ b/.github/workflows/daily-mcp-concurrency-analysis.lock.yml @@ -34,6 +34,12 @@ name: "Daily MCP Tool Concurrency Analysis" schedule: - cron: "0 9 * * 1-5" workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-multi-device-docs-tester.lock.yml b/.github/workflows/daily-multi-device-docs-tester.lock.yml index 1e309e11013..cd9d51e0857 100644 --- a/.github/workflows/daily-multi-device-docs-tester.lock.yml +++ b/.github/workflows/daily-multi-device-docs-tester.lock.yml @@ -36,6 +36,11 @@ name: "Multi-Device Docs Tester" # Friendly format: daily (scattered) workflow_dispatch: inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string devices: default: mobile,tablet,desktop description: "Device types to test (comma-separated: mobile,tablet,desktop)" diff --git a/.github/workflows/daily-news.lock.yml b/.github/workflows/daily-news.lock.yml index 154dff0ab62..a48d6f30b16 100644 --- a/.github/workflows/daily-news.lock.yml +++ b/.github/workflows/daily-news.lock.yml @@ -37,6 +37,12 @@ name: "Daily News" schedule: - cron: "0 9 * * 1-5" workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-observability-report.lock.yml b/.github/workflows/daily-observability-report.lock.yml index fe98a6c66aa..04e200898b4 100644 --- a/.github/workflows/daily-observability-report.lock.yml +++ b/.github/workflows/daily-observability-report.lock.yml @@ -34,6 +34,12 @@ name: "Daily Observability Report for AWF Firewall and MCP Gateway" - cron: "14 4 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-performance-summary.lock.yml b/.github/workflows/daily-performance-summary.lock.yml index d4ae04ae8aa..434bb5d0135 100644 --- a/.github/workflows/daily-performance-summary.lock.yml +++ b/.github/workflows/daily-performance-summary.lock.yml @@ -36,6 +36,12 @@ name: "Daily Project Performance Summary Generator (Using MCP Scripts)" - cron: "51 8 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-regulatory.lock.yml b/.github/workflows/daily-regulatory.lock.yml index b4f6c5f39f5..769637b4d66 100644 --- a/.github/workflows/daily-regulatory.lock.yml +++ b/.github/workflows/daily-regulatory.lock.yml @@ -35,6 +35,12 @@ name: "Daily Regulatory Report Generator" - cron: "52 23 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-rendering-scripts-verifier.lock.yml b/.github/workflows/daily-rendering-scripts-verifier.lock.yml index 49f9cc5b609..64d90454b58 100644 --- a/.github/workflows/daily-rendering-scripts-verifier.lock.yml +++ b/.github/workflows/daily-rendering-scripts-verifier.lock.yml @@ -36,6 +36,12 @@ name: "Daily Rendering Scripts Verifier" # Friendly format: daily (scattered) # skip-if-match: is:pr is:open in:title "[rendering-scripts]" # Skip-if-match processed as search check in pre-activation job workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-repo-chronicle.lock.yml b/.github/workflows/daily-repo-chronicle.lock.yml index f3aa53bbd12..89d98a6f099 100644 --- a/.github/workflows/daily-repo-chronicle.lock.yml +++ b/.github/workflows/daily-repo-chronicle.lock.yml @@ -35,6 +35,12 @@ name: "The Daily Repository Chronicle" schedule: - cron: "0 16 * * 1-5" workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-safe-output-integrator.lock.yml b/.github/workflows/daily-safe-output-integrator.lock.yml index ee8be544a1c..b9cd9bffa5b 100644 --- a/.github/workflows/daily-safe-output-integrator.lock.yml +++ b/.github/workflows/daily-safe-output-integrator.lock.yml @@ -34,6 +34,12 @@ name: "Daily Safe Output Integrator" - cron: "19 5 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-safe-output-optimizer.lock.yml b/.github/workflows/daily-safe-output-optimizer.lock.yml index 92148bb7531..563c24479dd 100644 --- a/.github/workflows/daily-safe-output-optimizer.lock.yml +++ b/.github/workflows/daily-safe-output-optimizer.lock.yml @@ -37,6 +37,12 @@ name: "Daily Safe Output Tool Optimizer" # Friendly format: daily (scattered) # skip-if-match: is:issue is:open in:title "[safeoutputs]" # Skip-if-match processed as search check in pre-activation job workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-safe-outputs-conformance.lock.yml b/.github/workflows/daily-safe-outputs-conformance.lock.yml index 710230f2369..015c88f814c 100644 --- a/.github/workflows/daily-safe-outputs-conformance.lock.yml +++ b/.github/workflows/daily-safe-outputs-conformance.lock.yml @@ -34,6 +34,12 @@ name: "Daily Safe Outputs Conformance Checker" - cron: "16 15 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-secrets-analysis.lock.yml b/.github/workflows/daily-secrets-analysis.lock.yml index 4e48cfde4c9..2947ecd2d9e 100644 --- a/.github/workflows/daily-secrets-analysis.lock.yml +++ b/.github/workflows/daily-secrets-analysis.lock.yml @@ -34,6 +34,12 @@ name: "Daily Secrets Analysis Agent" - cron: "38 4 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-security-red-team.lock.yml b/.github/workflows/daily-security-red-team.lock.yml index bd8df10150f..c83593c195b 100644 --- a/.github/workflows/daily-security-red-team.lock.yml +++ b/.github/workflows/daily-security-red-team.lock.yml @@ -34,6 +34,12 @@ name: "Daily Security Red Team Agent" - cron: "34 12 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-semgrep-scan.lock.yml b/.github/workflows/daily-semgrep-scan.lock.yml index 6bfcf7024c1..cc71319136f 100644 --- a/.github/workflows/daily-semgrep-scan.lock.yml +++ b/.github/workflows/daily-semgrep-scan.lock.yml @@ -34,6 +34,12 @@ name: "Daily Semgrep Scan" - cron: "11 18 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-syntax-error-quality.lock.yml b/.github/workflows/daily-syntax-error-quality.lock.yml index 0918708c4a8..aef1d8ded52 100644 --- a/.github/workflows/daily-syntax-error-quality.lock.yml +++ b/.github/workflows/daily-syntax-error-quality.lock.yml @@ -34,6 +34,12 @@ name: "Daily Syntax Error Quality Check" - cron: "38 11 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-team-evolution-insights.lock.yml b/.github/workflows/daily-team-evolution-insights.lock.yml index 0599980ffc5..321180933eb 100644 --- a/.github/workflows/daily-team-evolution-insights.lock.yml +++ b/.github/workflows/daily-team-evolution-insights.lock.yml @@ -34,6 +34,12 @@ name: "Daily Team Evolution Insights" - cron: "31 9 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-team-status.lock.yml b/.github/workflows/daily-team-status.lock.yml index b173f88df3a..48ed2d2446c 100644 --- a/.github/workflows/daily-team-status.lock.yml +++ b/.github/workflows/daily-team-status.lock.yml @@ -40,7 +40,13 @@ name: "Daily Team Status" "on": schedule: - cron: "0 9 * * 1-5" - workflow_dispatch: null + workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-testify-uber-super-expert.lock.yml b/.github/workflows/daily-testify-uber-super-expert.lock.yml index d8ba2d98371..2529b41af66 100644 --- a/.github/workflows/daily-testify-uber-super-expert.lock.yml +++ b/.github/workflows/daily-testify-uber-super-expert.lock.yml @@ -38,6 +38,12 @@ name: "Daily Testify Uber Super Expert" # Friendly format: daily (scattered) # skip-if-match: is:issue is:open in:title "[testify-expert]" # Skip-if-match processed as search check in pre-activation job workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/daily-workflow-updater.lock.yml b/.github/workflows/daily-workflow-updater.lock.yml index ee0be0508eb..3743eed96c5 100644 --- a/.github/workflows/daily-workflow-updater.lock.yml +++ b/.github/workflows/daily-workflow-updater.lock.yml @@ -30,6 +30,12 @@ name: "Daily Workflow Updater" - cron: "17 6 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/dead-code-remover.lock.yml b/.github/workflows/dead-code-remover.lock.yml index 266c2795f04..1315e16fc45 100644 --- a/.github/workflows/dead-code-remover.lock.yml +++ b/.github/workflows/dead-code-remover.lock.yml @@ -35,6 +35,12 @@ name: "Dead Code Removal Agent" # Friendly format: daily (scattered) # skip-if-match: is:pr is:open in:title "[dead-code] " # Skip-if-match processed as search check in pre-activation job workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/deep-report.lock.yml b/.github/workflows/deep-report.lock.yml index 1636717a7dd..95e47c0494c 100644 --- a/.github/workflows/deep-report.lock.yml +++ b/.github/workflows/deep-report.lock.yml @@ -36,6 +36,12 @@ name: "DeepReport - Intelligence Gathering Agent" schedule: - cron: "0 15 * * 1-5" workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/delight.lock.yml b/.github/workflows/delight.lock.yml index 94fce1b65e9..c4da0685165 100644 --- a/.github/workflows/delight.lock.yml +++ b/.github/workflows/delight.lock.yml @@ -35,6 +35,12 @@ name: "Delight" - cron: "25 18 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/dependabot-burner.lock.yml b/.github/workflows/dependabot-burner.lock.yml index cf2b8db260d..6438b2bafed 100644 --- a/.github/workflows/dependabot-burner.lock.yml +++ b/.github/workflows/dependabot-burner.lock.yml @@ -33,6 +33,12 @@ name: "Dependabot Burner" - cron: "27 4 * * 0" # Friendly format: weekly (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/dependabot-go-checker.lock.yml b/.github/workflows/dependabot-go-checker.lock.yml index cd95e8709c1..c8582341f10 100644 --- a/.github/workflows/dependabot-go-checker.lock.yml +++ b/.github/workflows/dependabot-go-checker.lock.yml @@ -33,6 +33,12 @@ name: "Dependabot Dependency Checker" schedule: - cron: "0 9 * * 1,3,5" workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/dev.lock.yml b/.github/workflows/dev.lock.yml index 07c95499da0..3fc9a3b0d18 100644 --- a/.github/workflows/dev.lock.yml +++ b/.github/workflows/dev.lock.yml @@ -29,6 +29,12 @@ name: "Dev" schedule: - cron: "0 9 * * *" workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/developer-docs-consolidator.lock.yml b/.github/workflows/developer-docs-consolidator.lock.yml index 9719f821f79..a44ddb93799 100644 --- a/.github/workflows/developer-docs-consolidator.lock.yml +++ b/.github/workflows/developer-docs-consolidator.lock.yml @@ -36,6 +36,12 @@ name: "Developer Documentation Consolidator" - cron: "34 4 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/dictation-prompt.lock.yml b/.github/workflows/dictation-prompt.lock.yml index bcfb37c9208..a04752c126c 100644 --- a/.github/workflows/dictation-prompt.lock.yml +++ b/.github/workflows/dictation-prompt.lock.yml @@ -34,6 +34,12 @@ name: "Dictation Prompt Generator" schedule: - cron: "0 6 * * 0" workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/discussion-task-miner.lock.yml b/.github/workflows/discussion-task-miner.lock.yml index ad1040efe6a..d6358b80800 100644 --- a/.github/workflows/discussion-task-miner.lock.yml +++ b/.github/workflows/discussion-task-miner.lock.yml @@ -35,6 +35,12 @@ name: "Discussion Task Miner - Code Quality Improvement Agent" - cron: "40 */6 * * *" # Friendly format: every 6h (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/docs-noob-tester.lock.yml b/.github/workflows/docs-noob-tester.lock.yml index ded94733bb4..8e3b8f3513d 100644 --- a/.github/workflows/docs-noob-tester.lock.yml +++ b/.github/workflows/docs-noob-tester.lock.yml @@ -35,6 +35,12 @@ name: "Documentation Noob Tester" - cron: "20 4 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/draft-pr-cleanup.lock.yml b/.github/workflows/draft-pr-cleanup.lock.yml index 35d796975da..ffe4fc14a72 100644 --- a/.github/workflows/draft-pr-cleanup.lock.yml +++ b/.github/workflows/draft-pr-cleanup.lock.yml @@ -30,6 +30,12 @@ name: "Draft PR Cleanup" - cron: "31 19 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/duplicate-code-detector.lock.yml b/.github/workflows/duplicate-code-detector.lock.yml index 3920e87ba28..0e65fcab260 100644 --- a/.github/workflows/duplicate-code-detector.lock.yml +++ b/.github/workflows/duplicate-code-detector.lock.yml @@ -35,6 +35,12 @@ name: "Duplicate Code Detector" - cron: "44 3 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/example-permissions-warning.lock.yml b/.github/workflows/example-permissions-warning.lock.yml index be7b15ecb79..a3a13e31faa 100644 --- a/.github/workflows/example-permissions-warning.lock.yml +++ b/.github/workflows/example-permissions-warning.lock.yml @@ -27,6 +27,12 @@ name: "Example: Properly Provisioned Permissions" "on": workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/example-workflow-analyzer.lock.yml b/.github/workflows/example-workflow-analyzer.lock.yml index d214c0f6568..db5d16639c0 100644 --- a/.github/workflows/example-workflow-analyzer.lock.yml +++ b/.github/workflows/example-workflow-analyzer.lock.yml @@ -34,6 +34,12 @@ name: "Weekly Workflow Analysis" - cron: "12 9 * * 1" # Friendly format: weekly on monday around 09:00 (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/firewall-escape.lock.yml b/.github/workflows/firewall-escape.lock.yml index 57614fd35b3..e662c7c7f86 100644 --- a/.github/workflows/firewall-escape.lock.yml +++ b/.github/workflows/firewall-escape.lock.yml @@ -35,6 +35,12 @@ name: "The Great Escapi" - cron: "42 15 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/firewall.lock.yml b/.github/workflows/firewall.lock.yml index f53ed556c6c..ca1d938f9f1 100644 --- a/.github/workflows/firewall.lock.yml +++ b/.github/workflows/firewall.lock.yml @@ -27,6 +27,12 @@ name: "Firewall Test Agent" "on": workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/functional-pragmatist.lock.yml b/.github/workflows/functional-pragmatist.lock.yml index 5c289efe541..5f238cb5ea5 100644 --- a/.github/workflows/functional-pragmatist.lock.yml +++ b/.github/workflows/functional-pragmatist.lock.yml @@ -33,6 +33,12 @@ name: "Functional Pragmatist" schedule: - cron: "0 9 * * 2,4" workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/github-mcp-structural-analysis.lock.yml b/.github/workflows/github-mcp-structural-analysis.lock.yml index cc6de304be1..e0fa1b16931 100644 --- a/.github/workflows/github-mcp-structural-analysis.lock.yml +++ b/.github/workflows/github-mcp-structural-analysis.lock.yml @@ -34,6 +34,12 @@ name: "GitHub MCP Structural Analysis" schedule: - cron: "0 11 * * 1-5" workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/github-mcp-tools-report.lock.yml b/.github/workflows/github-mcp-tools-report.lock.yml index a9849882d8c..b2050ab4f8f 100644 --- a/.github/workflows/github-mcp-tools-report.lock.yml +++ b/.github/workflows/github-mcp-tools-report.lock.yml @@ -34,6 +34,12 @@ name: "GitHub MCP Remote Server Tools Report Generator" - cron: "20 12 * * 0" # Friendly format: weekly on sunday around 12:00 (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/github-remote-mcp-auth-test.lock.yml b/.github/workflows/github-remote-mcp-auth-test.lock.yml index f37898939f8..1007ef17aa2 100644 --- a/.github/workflows/github-remote-mcp-auth-test.lock.yml +++ b/.github/workflows/github-remote-mcp-auth-test.lock.yml @@ -30,6 +30,12 @@ name: "GitHub Remote MCP Authentication Test" - cron: "5 20 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/glossary-maintainer.lock.yml b/.github/workflows/glossary-maintainer.lock.yml index 4b93531d9b0..2bf4b77af38 100644 --- a/.github/workflows/glossary-maintainer.lock.yml +++ b/.github/workflows/glossary-maintainer.lock.yml @@ -36,6 +36,12 @@ name: "Glossary Maintainer" schedule: - cron: "0 10 * * 1-5" workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/go-fan.lock.yml b/.github/workflows/go-fan.lock.yml index 3d200d52dc0..88b68b62d5d 100644 --- a/.github/workflows/go-fan.lock.yml +++ b/.github/workflows/go-fan.lock.yml @@ -34,6 +34,12 @@ name: "Go Fan" schedule: - cron: "0 7 * * 1-5" workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/go-logger.lock.yml b/.github/workflows/go-logger.lock.yml index 072b6bbf5d5..d9006c58744 100644 --- a/.github/workflows/go-logger.lock.yml +++ b/.github/workflows/go-logger.lock.yml @@ -34,6 +34,12 @@ name: "Go Logger Enhancement" - cron: "29 14 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/go-pattern-detector.lock.yml b/.github/workflows/go-pattern-detector.lock.yml index 138661c9876..92805c30ba0 100644 --- a/.github/workflows/go-pattern-detector.lock.yml +++ b/.github/workflows/go-pattern-detector.lock.yml @@ -34,6 +34,12 @@ name: "Go Pattern Detector" schedule: - cron: "0 14 * * 1-5" workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/gpclean.lock.yml b/.github/workflows/gpclean.lock.yml index 49f2d60d775..6f93e2fb019 100644 --- a/.github/workflows/gpclean.lock.yml +++ b/.github/workflows/gpclean.lock.yml @@ -34,6 +34,12 @@ name: "GPL Dependency Cleaner (gpclean)" - cron: "40 6 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/haiku-printer.yml b/.github/workflows/haiku-printer.yml index 523509c8b70..a6d5992aa87 100644 --- a/.github/workflows/haiku-printer.yml +++ b/.github/workflows/haiku-printer.yml @@ -6,6 +6,11 @@ on: description: 'Message to print' type: string required: true + aw_context: + description: '(Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input.' + type: string + required: false + default: '' permissions: contents: read jobs: diff --git a/.github/workflows/hourly-ci-cleaner.lock.yml b/.github/workflows/hourly-ci-cleaner.lock.yml index 342cff66c80..2448f7fe60b 100644 --- a/.github/workflows/hourly-ci-cleaner.lock.yml +++ b/.github/workflows/hourly-ci-cleaner.lock.yml @@ -33,6 +33,12 @@ name: "CI Cleaner" schedule: - cron: "0 6,18 * * *" workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/instructions-janitor.lock.yml b/.github/workflows/instructions-janitor.lock.yml index 5864ad65b52..e7a24daf273 100644 --- a/.github/workflows/instructions-janitor.lock.yml +++ b/.github/workflows/instructions-janitor.lock.yml @@ -30,6 +30,12 @@ name: "Instructions Janitor" - cron: "29 4 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/issue-arborist.lock.yml b/.github/workflows/issue-arborist.lock.yml index 5694fa08941..b9624a50b21 100644 --- a/.github/workflows/issue-arborist.lock.yml +++ b/.github/workflows/issue-arborist.lock.yml @@ -35,6 +35,12 @@ name: "Issue Arborist" - cron: "54 7 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/issue-monster.lock.yml b/.github/workflows/issue-monster.lock.yml index 27158fb3346..f930ce5945e 100644 --- a/.github/workflows/issue-monster.lock.yml +++ b/.github/workflows/issue-monster.lock.yml @@ -389,6 +389,12 @@ name: "Issue Monster" # core.setOutput('has_issues', 'false'); # } workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/issue-triage-agent.lock.yml b/.github/workflows/issue-triage-agent.lock.yml index 5b6d44b7d8c..93cc59f67f6 100644 --- a/.github/workflows/issue-triage-agent.lock.yml +++ b/.github/workflows/issue-triage-agent.lock.yml @@ -32,6 +32,12 @@ name: "Issue Triage Agent" schedule: - cron: "0 14 * * 1-5" workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/jsweep.lock.yml b/.github/workflows/jsweep.lock.yml index 9c146112454..79d5cf83b96 100644 --- a/.github/workflows/jsweep.lock.yml +++ b/.github/workflows/jsweep.lock.yml @@ -30,6 +30,12 @@ name: "jsweep - JavaScript Unbloater" - cron: "40 21 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/layout-spec-maintainer.lock.yml b/.github/workflows/layout-spec-maintainer.lock.yml index 66d5618c919..37615c2774e 100644 --- a/.github/workflows/layout-spec-maintainer.lock.yml +++ b/.github/workflows/layout-spec-maintainer.lock.yml @@ -29,6 +29,12 @@ name: "Layout Specification Maintainer" schedule: - cron: "0 7 * * 1" workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/lockfile-stats.lock.yml b/.github/workflows/lockfile-stats.lock.yml index 38ee0d0da5f..1e4a5cc5502 100644 --- a/.github/workflows/lockfile-stats.lock.yml +++ b/.github/workflows/lockfile-stats.lock.yml @@ -34,6 +34,12 @@ name: "Lockfile Statistics Analysis Agent" - cron: "21 5 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/mcp-inspector.lock.yml b/.github/workflows/mcp-inspector.lock.yml index 4de3c8765cd..f97bfeb8cb6 100644 --- a/.github/workflows/mcp-inspector.lock.yml +++ b/.github/workflows/mcp-inspector.lock.yml @@ -49,6 +49,12 @@ name: "MCP Inspector Agent" - cron: "35 18 * * 1" # Friendly format: weekly on monday around 18:00 (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/metrics-collector.lock.yml b/.github/workflows/metrics-collector.lock.yml index 492aa8b9d4e..62027ddde1b 100644 --- a/.github/workflows/metrics-collector.lock.yml +++ b/.github/workflows/metrics-collector.lock.yml @@ -30,6 +30,12 @@ name: "Metrics Collector - Infrastructure Agent" - cron: "47 16 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/notion-issue-summary.lock.yml b/.github/workflows/notion-issue-summary.lock.yml index 42fabc73d49..399d2fd550f 100644 --- a/.github/workflows/notion-issue-summary.lock.yml +++ b/.github/workflows/notion-issue-summary.lock.yml @@ -32,6 +32,11 @@ name: "Issue Summary to Notion" "on": workflow_dispatch: inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string issue-number: description: Issue number to analyze required: true diff --git a/.github/workflows/org-health-report.lock.yml b/.github/workflows/org-health-report.lock.yml index 1188c32e2c0..208574679de 100644 --- a/.github/workflows/org-health-report.lock.yml +++ b/.github/workflows/org-health-report.lock.yml @@ -36,6 +36,12 @@ name: "Organization Health Report" - cron: "11 8 * * 1" # Friendly format: weekly on monday around 09:00 (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/pdf-summary.lock.yml b/.github/workflows/pdf-summary.lock.yml index 4c54c836ba3..cff7d5321be 100644 --- a/.github/workflows/pdf-summary.lock.yml +++ b/.github/workflows/pdf-summary.lock.yml @@ -41,6 +41,11 @@ name: "Resource Summarizer Agent" - reopened workflow_dispatch: inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string query: default: summarize in the context of this repository description: Query or question to answer about the resource(s) diff --git a/.github/workflows/poem-bot.lock.yml b/.github/workflows/poem-bot.lock.yml index bb2845db60d..e777e9ba186 100644 --- a/.github/workflows/poem-bot.lock.yml +++ b/.github/workflows/poem-bot.lock.yml @@ -40,6 +40,11 @@ name: "Poem Bot - A Creative Agentic Workflow" # - maintainer # Roles processed as role check in pre-activation job workflow_dispatch: inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string poem_theme: default: technology and automation description: Theme for the generated poem diff --git a/.github/workflows/portfolio-analyst.lock.yml b/.github/workflows/portfolio-analyst.lock.yml index 26b0dbbc2c5..f997438e4e1 100644 --- a/.github/workflows/portfolio-analyst.lock.yml +++ b/.github/workflows/portfolio-analyst.lock.yml @@ -36,6 +36,12 @@ name: "Automated Portfolio Analyst" - cron: "50 8 * * 1" # Friendly format: weekly on monday around 09:00 (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/pr-triage-agent.lock.yml b/.github/workflows/pr-triage-agent.lock.yml index 11837662a73..0e98008162d 100644 --- a/.github/workflows/pr-triage-agent.lock.yml +++ b/.github/workflows/pr-triage-agent.lock.yml @@ -29,6 +29,12 @@ name: "PR Triage Agent" schedule: - cron: "0 */6 * * *" workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/prompt-clustering-analysis.lock.yml b/.github/workflows/prompt-clustering-analysis.lock.yml index 228ca4eb3f9..54798a85b3f 100644 --- a/.github/workflows/prompt-clustering-analysis.lock.yml +++ b/.github/workflows/prompt-clustering-analysis.lock.yml @@ -38,6 +38,12 @@ name: "Copilot Agent Prompt Clustering Analysis" - cron: "40 14 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/python-data-charts.lock.yml b/.github/workflows/python-data-charts.lock.yml index cdcc8a6cef6..78bd031e3ca 100644 --- a/.github/workflows/python-data-charts.lock.yml +++ b/.github/workflows/python-data-charts.lock.yml @@ -33,6 +33,12 @@ name: "Python Data Visualization Generator" "on": workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/refiner.lock.yml b/.github/workflows/refiner.lock.yml index 28c3ef86bdb..c9bfd55e062 100644 --- a/.github/workflows/refiner.lock.yml +++ b/.github/workflows/refiner.lock.yml @@ -33,6 +33,11 @@ name: "Code Refiner" - labeled workflow_dispatch: inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string item_number: default: "" description: The number of the pull request diff --git a/.github/workflows/release.lock.yml b/.github/workflows/release.lock.yml index 27ca317782b..a4f73ee4372 100644 --- a/.github/workflows/release.lock.yml +++ b/.github/workflows/release.lock.yml @@ -35,6 +35,11 @@ name: "Release" # - maintainer # Roles processed as role check in pre-activation job workflow_dispatch: inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string release_type: default: patch description: Release type (patch, minor, or major) diff --git a/.github/workflows/repo-audit-analyzer.lock.yml b/.github/workflows/repo-audit-analyzer.lock.yml index 52ec2f2943c..003b4ceab77 100644 --- a/.github/workflows/repo-audit-analyzer.lock.yml +++ b/.github/workflows/repo-audit-analyzer.lock.yml @@ -32,6 +32,11 @@ name: "Repository Audit & Agentic Workflow Opportunity Analyzer" "on": workflow_dispatch: inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string repository: default: FStarLang/FStar description: Target repository to audit (e.g., FStarLang/FStar) diff --git a/.github/workflows/repo-tree-map.lock.yml b/.github/workflows/repo-tree-map.lock.yml index adca8ec1530..549a60464a6 100644 --- a/.github/workflows/repo-tree-map.lock.yml +++ b/.github/workflows/repo-tree-map.lock.yml @@ -34,6 +34,12 @@ name: "Repository Tree Map Generator" - cron: "50 15 * * 1" # Friendly format: weekly on monday around 15:00 (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/repository-quality-improver.lock.yml b/.github/workflows/repository-quality-improver.lock.yml index 87807e1833a..064e2a03d4c 100644 --- a/.github/workflows/repository-quality-improver.lock.yml +++ b/.github/workflows/repository-quality-improver.lock.yml @@ -34,6 +34,12 @@ name: "Repository Quality Improvement Agent" schedule: - cron: "0 13 * * 1-5" workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/research.lock.yml b/.github/workflows/research.lock.yml index bb28c735d81..45c3c58885f 100644 --- a/.github/workflows/research.lock.yml +++ b/.github/workflows/research.lock.yml @@ -33,6 +33,11 @@ name: "Basic Research Agent" "on": workflow_dispatch: inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string topic: description: Research topic or question to investigate required: true diff --git a/.github/workflows/safe-output-health.lock.yml b/.github/workflows/safe-output-health.lock.yml index 430f98f6870..b83e8e25421 100644 --- a/.github/workflows/safe-output-health.lock.yml +++ b/.github/workflows/safe-output-health.lock.yml @@ -35,6 +35,12 @@ name: "Safe Output Health Monitor" - cron: "32 23 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/schema-consistency-checker.lock.yml b/.github/workflows/schema-consistency-checker.lock.yml index 29d3703fd66..73f04f59b38 100644 --- a/.github/workflows/schema-consistency-checker.lock.yml +++ b/.github/workflows/schema-consistency-checker.lock.yml @@ -34,6 +34,12 @@ name: "Schema Consistency Checker" - cron: "24 16 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/schema-feature-coverage.lock.yml b/.github/workflows/schema-feature-coverage.lock.yml index 14f156f58e7..b5d48956a87 100644 --- a/.github/workflows/schema-feature-coverage.lock.yml +++ b/.github/workflows/schema-feature-coverage.lock.yml @@ -30,6 +30,12 @@ name: "Schema Feature Coverage Checker" - cron: "24 6 * * 1" # Friendly format: weekly on monday around 07:00 (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/scout.lock.yml b/.github/workflows/scout.lock.yml index f5b058e8423..cabba8cd901 100644 --- a/.github/workflows/scout.lock.yml +++ b/.github/workflows/scout.lock.yml @@ -68,6 +68,11 @@ name: "Scout" # - write # Roles processed as role check in pre-activation job workflow_dispatch: inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string history: default: shallow description: "Git history to fetch: shallow (default) or full" diff --git a/.github/workflows/security-compliance.lock.yml b/.github/workflows/security-compliance.lock.yml index 1c52c598f24..6d104d623b4 100644 --- a/.github/workflows/security-compliance.lock.yml +++ b/.github/workflows/security-compliance.lock.yml @@ -28,6 +28,11 @@ name: "Security Compliance Campaign" "on": workflow_dispatch: inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string audit_date: description: Audit deadline (YYYY-MM-DD) required: true diff --git a/.github/workflows/semantic-function-refactor.lock.yml b/.github/workflows/semantic-function-refactor.lock.yml index 61bc5eb5ef0..5d1cd79b1c4 100644 --- a/.github/workflows/semantic-function-refactor.lock.yml +++ b/.github/workflows/semantic-function-refactor.lock.yml @@ -35,6 +35,12 @@ name: "Semantic Function Refactoring" - cron: "44 10 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/sergo.lock.yml b/.github/workflows/sergo.lock.yml index 934df595db2..4fc7b9f79fe 100644 --- a/.github/workflows/sergo.lock.yml +++ b/.github/workflows/sergo.lock.yml @@ -35,6 +35,12 @@ name: "Sergo - Serena Go Expert" - cron: "8 12 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/slide-deck-maintainer.lock.yml b/.github/workflows/slide-deck-maintainer.lock.yml index 0377b17fd0f..4a8e32f0298 100644 --- a/.github/workflows/slide-deck-maintainer.lock.yml +++ b/.github/workflows/slide-deck-maintainer.lock.yml @@ -35,6 +35,11 @@ name: "Slide Deck Maintainer" # skip-if-match: is:pr is:open in:title "[slides]" # Skip-if-match processed as search check in pre-activation job workflow_dispatch: inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string focus: default: global-sweep description: Focus area (feature-deep-dive or global-sweep) diff --git a/.github/workflows/smoke-agent-all-merged.lock.yml b/.github/workflows/smoke-agent-all-merged.lock.yml index ceda8701af7..84de0290448 100644 --- a/.github/workflows/smoke-agent-all-merged.lock.yml +++ b/.github/workflows/smoke-agent-all-merged.lock.yml @@ -31,7 +31,13 @@ name: "Smoke Agent: all/merged" # - metal # Label filtering applied via job conditions types: - labeled - workflow_dispatch: null + workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/smoke-agent-all-none.lock.yml b/.github/workflows/smoke-agent-all-none.lock.yml index cf1d84ac4e8..a714c6bbfca 100644 --- a/.github/workflows/smoke-agent-all-none.lock.yml +++ b/.github/workflows/smoke-agent-all-none.lock.yml @@ -31,7 +31,13 @@ name: "Smoke Agent: all/none" # - metal # Label filtering applied via job conditions types: - labeled - workflow_dispatch: null + workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/smoke-agent-public-approved.lock.yml b/.github/workflows/smoke-agent-public-approved.lock.yml index 9fd4fc5017b..189a7bc8ab4 100644 --- a/.github/workflows/smoke-agent-public-approved.lock.yml +++ b/.github/workflows/smoke-agent-public-approved.lock.yml @@ -31,7 +31,13 @@ name: "Smoke Agent: public/approved" # - metal # Label filtering applied via job conditions types: - labeled - workflow_dispatch: null + workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/smoke-agent-public-none.lock.yml b/.github/workflows/smoke-agent-public-none.lock.yml index 2fe298de080..69756aa1272 100644 --- a/.github/workflows/smoke-agent-public-none.lock.yml +++ b/.github/workflows/smoke-agent-public-none.lock.yml @@ -31,7 +31,13 @@ name: "Smoke Agent: public/none" # - metal # Label filtering applied via job conditions types: - labeled - workflow_dispatch: null + workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/smoke-agent-scoped-approved.lock.yml b/.github/workflows/smoke-agent-scoped-approved.lock.yml index 5882468c575..e199e4cd8cb 100644 --- a/.github/workflows/smoke-agent-scoped-approved.lock.yml +++ b/.github/workflows/smoke-agent-scoped-approved.lock.yml @@ -31,7 +31,13 @@ name: "Smoke Agent: scoped/approved" # - metal # Label filtering applied via job conditions types: - labeled - workflow_dispatch: null + workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/smoke-call-workflow.lock.yml b/.github/workflows/smoke-call-workflow.lock.yml index 1129e6f57e5..c9b9431cf1e 100644 --- a/.github/workflows/smoke-call-workflow.lock.yml +++ b/.github/workflows/smoke-call-workflow.lock.yml @@ -32,6 +32,12 @@ name: "Smoke Call Workflow" types: - labeled workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/smoke-claude.lock.yml b/.github/workflows/smoke-claude.lock.yml index bae981e3b31..56b2a3dcc8b 100644 --- a/.github/workflows/smoke-claude.lock.yml +++ b/.github/workflows/smoke-claude.lock.yml @@ -45,7 +45,13 @@ name: "Smoke Claude" - labeled schedule: - cron: "10 */12 * * *" - workflow_dispatch: null + workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/smoke-codex.lock.yml b/.github/workflows/smoke-codex.lock.yml index a8dd260ed4d..f4262415115 100644 --- a/.github/workflows/smoke-codex.lock.yml +++ b/.github/workflows/smoke-codex.lock.yml @@ -38,7 +38,13 @@ name: "Smoke Codex" - labeled schedule: - cron: "45 */12 * * *" - workflow_dispatch: null + workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/smoke-copilot-arm.lock.yml b/.github/workflows/smoke-copilot-arm.lock.yml index 44c03493f06..ae8861f28e8 100644 --- a/.github/workflows/smoke-copilot-arm.lock.yml +++ b/.github/workflows/smoke-copilot-arm.lock.yml @@ -37,7 +37,13 @@ name: "Smoke Copilot ARM64" # - water # Label filtering applied via job conditions types: - labeled - workflow_dispatch: null + workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} @@ -536,6 +542,11 @@ jobs: "inputSchema": { "additionalProperties": false, "properties": { + "aw_context": { + "default": "", + "description": "(Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input.", + "type": "string" + }, "message": { "description": "Message to print", "type": "string" @@ -2015,7 +2026,7 @@ jobs: GITHUB_SERVER_URL: ${{ github.server_url }} GITHUB_API_URL: ${{ github.api_url }} GH_AW_SAFE_OUTPUT_JOBS: "{\"send_slack_message\":\"\"}" - GH_AW_SAFE_OUTPUTS_HANDLER_CONFIG: "{\"add_comment\":{\"allowed_repos\":[\"github/gh-aw\"],\"hide_older_comments\":true,\"max\":2},\"add_labels\":{\"allowed\":[\"smoke-copilot-arm\"],\"allowed_repos\":[\"github/gh-aw\"]},\"create_discussion\":{\"category\":\"announcements\",\"close_older_discussions\":true,\"expires\":2,\"fallback_to_issue\":true,\"labels\":[\"ai-generated\"],\"max\":1},\"create_issue\":{\"close_older_issues\":true,\"expires\":2,\"group\":true,\"labels\":[\"automation\",\"testing\"],\"max\":1},\"create_pull_request_review_comment\":{\"max\":5,\"side\":\"RIGHT\"},\"dispatch_workflow\":{\"max\":1,\"workflow_files\":{\"haiku-printer\":\".yml\"},\"workflows\":[\"haiku-printer\"]},\"missing_data\":{},\"missing_tool\":{},\"noop\":{\"max\":1,\"report-as-issue\":\"true\"},\"remove_labels\":{\"allowed\":[\"smoke\"]},\"submit_pull_request_review\":{\"max\":1}}" + GH_AW_SAFE_OUTPUTS_HANDLER_CONFIG: "{\"add_comment\":{\"allowed_repos\":[\"github/gh-aw\"],\"hide_older_comments\":true,\"max\":2},\"add_labels\":{\"allowed\":[\"smoke-copilot-arm\"],\"allowed_repos\":[\"github/gh-aw\"]},\"create_discussion\":{\"category\":\"announcements\",\"close_older_discussions\":true,\"expires\":2,\"fallback_to_issue\":true,\"labels\":[\"ai-generated\"],\"max\":1},\"create_issue\":{\"close_older_issues\":true,\"expires\":2,\"group\":true,\"labels\":[\"automation\",\"testing\"],\"max\":1},\"create_pull_request_review_comment\":{\"max\":5,\"side\":\"RIGHT\"},\"dispatch_workflow\":{\"aw_context_workflows\":[\"haiku-printer\"],\"max\":1,\"workflow_files\":{\"haiku-printer\":\".yml\"},\"workflows\":[\"haiku-printer\"]},\"missing_data\":{},\"missing_tool\":{},\"noop\":{\"max\":1,\"report-as-issue\":\"true\"},\"remove_labels\":{\"allowed\":[\"smoke\"]},\"submit_pull_request_review\":{\"max\":1}}" with: github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} script: | diff --git a/.github/workflows/smoke-copilot.lock.yml b/.github/workflows/smoke-copilot.lock.yml index eafb858e01f..a00f9541e99 100644 --- a/.github/workflows/smoke-copilot.lock.yml +++ b/.github/workflows/smoke-copilot.lock.yml @@ -39,6 +39,11 @@ name: "Smoke Copilot" - cron: "32 */12 * * *" workflow_dispatch: inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string item_number: default: "" description: The number of the issue, pull request, or discussion @@ -545,6 +550,11 @@ jobs: "inputSchema": { "additionalProperties": false, "properties": { + "aw_context": { + "default": "", + "description": "(Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input.", + "type": "string" + }, "message": { "description": "Message to print", "type": "string" @@ -2062,7 +2072,7 @@ jobs: GITHUB_SERVER_URL: ${{ github.server_url }} GITHUB_API_URL: ${{ github.api_url }} GH_AW_SAFE_OUTPUT_JOBS: "{\"send_slack_message\":\"\"}" - GH_AW_SAFE_OUTPUTS_HANDLER_CONFIG: "{\"add_comment\":{\"allowed_repos\":[\"github/gh-aw\"],\"hide_older_comments\":true,\"max\":2},\"add_labels\":{\"allowed\":[\"smoke-copilot\"],\"allowed_repos\":[\"github/gh-aw\"]},\"create_discussion\":{\"category\":\"announcements\",\"close_older_discussions\":true,\"close_older_key\":\"smoke-copilot\",\"expires\":2,\"fallback_to_issue\":true,\"labels\":[\"ai-generated\"],\"max\":1},\"create_issue\":{\"close_older_issues\":true,\"close_older_key\":\"smoke-copilot\",\"expires\":2,\"group\":true,\"labels\":[\"automation\",\"testing\"],\"max\":1},\"create_pull_request_review_comment\":{\"max\":5,\"side\":\"RIGHT\"},\"dispatch_workflow\":{\"max\":1,\"workflow_files\":{\"haiku-printer\":\".yml\"},\"workflows\":[\"haiku-printer\"]},\"missing_data\":{},\"missing_tool\":{},\"noop\":{\"max\":1,\"report-as-issue\":\"true\"},\"remove_labels\":{\"allowed\":[\"smoke\"]},\"reply_to_pull_request_review_comment\":{\"max\":5},\"set_issue_type\":{},\"submit_pull_request_review\":{\"max\":1}}" + GH_AW_SAFE_OUTPUTS_HANDLER_CONFIG: "{\"add_comment\":{\"allowed_repos\":[\"github/gh-aw\"],\"hide_older_comments\":true,\"max\":2},\"add_labels\":{\"allowed\":[\"smoke-copilot\"],\"allowed_repos\":[\"github/gh-aw\"]},\"create_discussion\":{\"category\":\"announcements\",\"close_older_discussions\":true,\"close_older_key\":\"smoke-copilot\",\"expires\":2,\"fallback_to_issue\":true,\"labels\":[\"ai-generated\"],\"max\":1},\"create_issue\":{\"close_older_issues\":true,\"close_older_key\":\"smoke-copilot\",\"expires\":2,\"group\":true,\"labels\":[\"automation\",\"testing\"],\"max\":1},\"create_pull_request_review_comment\":{\"max\":5,\"side\":\"RIGHT\"},\"dispatch_workflow\":{\"aw_context_workflows\":[\"haiku-printer\"],\"max\":1,\"workflow_files\":{\"haiku-printer\":\".yml\"},\"workflows\":[\"haiku-printer\"]},\"missing_data\":{},\"missing_tool\":{},\"noop\":{\"max\":1,\"report-as-issue\":\"true\"},\"remove_labels\":{\"allowed\":[\"smoke\"]},\"reply_to_pull_request_review_comment\":{\"max\":5},\"set_issue_type\":{},\"submit_pull_request_review\":{\"max\":1}}" with: github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} script: | diff --git a/.github/workflows/smoke-create-cross-repo-pr.lock.yml b/.github/workflows/smoke-create-cross-repo-pr.lock.yml index 812f75a5401..7cdd7ef98fe 100644 --- a/.github/workflows/smoke-create-cross-repo-pr.lock.yml +++ b/.github/workflows/smoke-create-cross-repo-pr.lock.yml @@ -33,7 +33,13 @@ name: "Smoke Create Cross-Repo PR" - labeled schedule: - cron: "39 */12 * * *" - workflow_dispatch: null + workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/smoke-gemini.lock.yml b/.github/workflows/smoke-gemini.lock.yml index 26770516bbb..d7475a2d02c 100644 --- a/.github/workflows/smoke-gemini.lock.yml +++ b/.github/workflows/smoke-gemini.lock.yml @@ -38,7 +38,13 @@ name: "Smoke Gemini" - labeled schedule: - cron: "27 */12 * * *" - workflow_dispatch: null + workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/smoke-multi-pr.lock.yml b/.github/workflows/smoke-multi-pr.lock.yml index f297b5367a5..8db682e1e66 100644 --- a/.github/workflows/smoke-multi-pr.lock.yml +++ b/.github/workflows/smoke-multi-pr.lock.yml @@ -33,7 +33,13 @@ name: "Smoke Multi PR" - labeled schedule: - cron: "20 */24 * * *" - workflow_dispatch: null + workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/smoke-project.lock.yml b/.github/workflows/smoke-project.lock.yml index cc381ec7b2c..10eda1e5100 100644 --- a/.github/workflows/smoke-project.lock.yml +++ b/.github/workflows/smoke-project.lock.yml @@ -31,7 +31,13 @@ name: "Smoke Project" # - water # Label filtering applied via job conditions types: - labeled - workflow_dispatch: null + workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/smoke-temporary-id.lock.yml b/.github/workflows/smoke-temporary-id.lock.yml index 348ca072bdf..986c103eb4e 100644 --- a/.github/workflows/smoke-temporary-id.lock.yml +++ b/.github/workflows/smoke-temporary-id.lock.yml @@ -31,7 +31,13 @@ name: "Smoke Temporary ID" # - water # Label filtering applied via job conditions types: - labeled - workflow_dispatch: null + workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/smoke-test-tools.lock.yml b/.github/workflows/smoke-test-tools.lock.yml index 3d27343bc1a..238d9582276 100644 --- a/.github/workflows/smoke-test-tools.lock.yml +++ b/.github/workflows/smoke-test-tools.lock.yml @@ -33,7 +33,13 @@ name: "Agent Container Smoke Test" - labeled schedule: - cron: "44 */12 * * *" - workflow_dispatch: null + workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/smoke-update-cross-repo-pr.lock.yml b/.github/workflows/smoke-update-cross-repo-pr.lock.yml index 72dda4ec3ee..50d9150d660 100644 --- a/.github/workflows/smoke-update-cross-repo-pr.lock.yml +++ b/.github/workflows/smoke-update-cross-repo-pr.lock.yml @@ -33,7 +33,13 @@ name: "Smoke Update Cross-Repo PR" - labeled schedule: - cron: "34 */12 * * *" - workflow_dispatch: null + workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/smoke-workflow-call-with-inputs.lock.yml b/.github/workflows/smoke-workflow-call-with-inputs.lock.yml index df072929dfe..7591d318cd5 100644 --- a/.github/workflows/smoke-workflow-call-with-inputs.lock.yml +++ b/.github/workflows/smoke-workflow-call-with-inputs.lock.yml @@ -42,6 +42,11 @@ name: "Smoke Workflow Call with Inputs" value: ${{ jobs.safe_outputs.outputs.created_issue_url }} workflow_dispatch: inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string task-description: default: generic task description: Short description of what this invocation should do diff --git a/.github/workflows/smoke-workflow-call.lock.yml b/.github/workflows/smoke-workflow-call.lock.yml index 73efcdcf947..d084e5ce53e 100644 --- a/.github/workflows/smoke-workflow-call.lock.yml +++ b/.github/workflows/smoke-workflow-call.lock.yml @@ -45,6 +45,11 @@ name: "Smoke Workflow Call" value: ${{ jobs.safe_outputs.outputs.comment_url }} workflow_dispatch: inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string task-description: default: validate workflow_call checkout description: Short description of the validation task to include in the output comment diff --git a/.github/workflows/stale-repo-identifier.lock.yml b/.github/workflows/stale-repo-identifier.lock.yml index 249c80f6f27..2a8d8567c72 100644 --- a/.github/workflows/stale-repo-identifier.lock.yml +++ b/.github/workflows/stale-repo-identifier.lock.yml @@ -37,6 +37,11 @@ name: "Stale Repository Identifier" - cron: "0 9 1 * *" workflow_dispatch: inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string organization: default: github description: GitHub organization to scan for stale repositories diff --git a/.github/workflows/static-analysis-report.lock.yml b/.github/workflows/static-analysis-report.lock.yml index 6714ce122fb..65a691828b2 100644 --- a/.github/workflows/static-analysis-report.lock.yml +++ b/.github/workflows/static-analysis-report.lock.yml @@ -34,6 +34,12 @@ name: "Static Analysis Report" - cron: "32 2 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/step-name-alignment.lock.yml b/.github/workflows/step-name-alignment.lock.yml index 9525e89dbc3..3133255dfe4 100644 --- a/.github/workflows/step-name-alignment.lock.yml +++ b/.github/workflows/step-name-alignment.lock.yml @@ -30,6 +30,12 @@ name: "Step Name Alignment" - cron: "30 14 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/sub-issue-closer.lock.yml b/.github/workflows/sub-issue-closer.lock.yml index f784f7a0b7f..32ea195cf96 100644 --- a/.github/workflows/sub-issue-closer.lock.yml +++ b/.github/workflows/sub-issue-closer.lock.yml @@ -30,6 +30,12 @@ name: "Sub-Issue Closer" - cron: "27 1 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/super-linter.lock.yml b/.github/workflows/super-linter.lock.yml index 0883b9806cb..9480f0df768 100644 --- a/.github/workflows/super-linter.lock.yml +++ b/.github/workflows/super-linter.lock.yml @@ -33,6 +33,12 @@ name: "Super Linter Report" schedule: - cron: "0 14 * * 1-5" workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/technical-doc-writer.lock.yml b/.github/workflows/technical-doc-writer.lock.yml index feb7de57b50..76c120d7d1f 100644 --- a/.github/workflows/technical-doc-writer.lock.yml +++ b/.github/workflows/technical-doc-writer.lock.yml @@ -34,6 +34,11 @@ name: "Rebuild the documentation after making changes" "on": workflow_dispatch: inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string topic: description: Documentation topic to review required: true diff --git a/.github/workflows/terminal-stylist.lock.yml b/.github/workflows/terminal-stylist.lock.yml index 6e940166cbd..dcdc1148e2a 100644 --- a/.github/workflows/terminal-stylist.lock.yml +++ b/.github/workflows/terminal-stylist.lock.yml @@ -35,6 +35,12 @@ name: "Terminal Stylist" - cron: "9 17 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/test-create-pr-error-handling.lock.yml b/.github/workflows/test-create-pr-error-handling.lock.yml index d2fcd846a28..2c81c802ba7 100644 --- a/.github/workflows/test-create-pr-error-handling.lock.yml +++ b/.github/workflows/test-create-pr-error-handling.lock.yml @@ -27,6 +27,12 @@ name: "Test Create PR Error Handling" "on": workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/test-dispatcher.lock.yml b/.github/workflows/test-dispatcher.lock.yml index b3bb8b769be..51eb1a4fcd6 100644 --- a/.github/workflows/test-dispatcher.lock.yml +++ b/.github/workflows/test-dispatcher.lock.yml @@ -26,6 +26,12 @@ name: "Test Dispatcher Workflow" "on": workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} @@ -344,6 +350,11 @@ jobs: "inputSchema": { "additionalProperties": false, "properties": { + "aw_context": { + "default": "", + "description": "(Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input.", + "type": "string" + }, "test_param": { "description": "Question from the dispatcher workflow", "type": "string" @@ -998,7 +1009,7 @@ jobs: GH_AW_ALLOWED_DOMAINS: "api.business.githubcopilot.com,api.enterprise.githubcopilot.com,api.github.com,api.githubcopilot.com,api.individual.githubcopilot.com,api.snapcraft.io,archive.ubuntu.com,azure.archive.ubuntu.com,crl.geotrust.com,crl.globalsign.com,crl.identrust.com,crl.sectigo.com,crl.thawte.com,crl.usertrust.com,crl.verisign.com,crl3.digicert.com,crl4.digicert.com,crls.ssl.com,github.com,host.docker.internal,json-schema.org,json.schemastore.org,keyserver.ubuntu.com,ocsp.digicert.com,ocsp.geotrust.com,ocsp.globalsign.com,ocsp.identrust.com,ocsp.sectigo.com,ocsp.ssl.com,ocsp.thawte.com,ocsp.usertrust.com,ocsp.verisign.com,packagecloud.io,packages.cloud.google.com,packages.microsoft.com,ppa.launchpad.net,raw.githubusercontent.com,registry.npmjs.org,s.symcb.com,s.symcd.com,security.ubuntu.com,telemetry.enterprise.githubcopilot.com,ts-crl.ws.symantec.com,ts-ocsp.ws.symantec.com,www.googleapis.com" GITHUB_SERVER_URL: ${{ github.server_url }} GITHUB_API_URL: ${{ github.api_url }} - GH_AW_SAFE_OUTPUTS_HANDLER_CONFIG: "{\"dispatch_workflow\":{\"max\":1,\"workflow_files\":{\"test-workflow\":\".lock.yml\"},\"workflows\":[\"test-workflow\"]},\"missing_data\":{},\"missing_tool\":{},\"noop\":{\"max\":1,\"report-as-issue\":\"true\"}}" + GH_AW_SAFE_OUTPUTS_HANDLER_CONFIG: "{\"dispatch_workflow\":{\"aw_context_workflows\":[\"test-workflow\"],\"max\":1,\"workflow_files\":{\"test-workflow\":\".lock.yml\"},\"workflows\":[\"test-workflow\"]},\"missing_data\":{},\"missing_tool\":{},\"noop\":{\"max\":1,\"report-as-issue\":\"true\"}}" with: github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} script: | diff --git a/.github/workflows/test-project-url-default.lock.yml b/.github/workflows/test-project-url-default.lock.yml index fa9a8e5c2c8..8534db379ee 100644 --- a/.github/workflows/test-project-url-default.lock.yml +++ b/.github/workflows/test-project-url-default.lock.yml @@ -26,6 +26,12 @@ name: "Test Project URL Explicit Requirement" "on": workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/test-workflow.lock.yml b/.github/workflows/test-workflow.lock.yml index 00a24d2b914..ce455e6b1f8 100644 --- a/.github/workflows/test-workflow.lock.yml +++ b/.github/workflows/test-workflow.lock.yml @@ -27,6 +27,11 @@ name: "Test Workflow" "on": workflow_dispatch: inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string test_param: description: Question from the dispatcher workflow required: true diff --git a/.github/workflows/tidy.lock.yml b/.github/workflows/tidy.lock.yml index cf5ebd57dc0..fc4ff489afb 100644 --- a/.github/workflows/tidy.lock.yml +++ b/.github/workflows/tidy.lock.yml @@ -40,7 +40,13 @@ name: "Tidy" - "**/*.ts" schedule: - cron: "0 7 * * *" - workflow_dispatch: null + workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/typist.lock.yml b/.github/workflows/typist.lock.yml index 747d2c3a20d..274431be74e 100644 --- a/.github/workflows/typist.lock.yml +++ b/.github/workflows/typist.lock.yml @@ -34,6 +34,12 @@ name: "Typist - Go Type Analysis" schedule: - cron: "0 11 * * 1-5" workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/ubuntu-image-analyzer.lock.yml b/.github/workflows/ubuntu-image-analyzer.lock.yml index 6d8f99bc9f0..feb00282c82 100644 --- a/.github/workflows/ubuntu-image-analyzer.lock.yml +++ b/.github/workflows/ubuntu-image-analyzer.lock.yml @@ -35,6 +35,12 @@ name: "Ubuntu Actions Image Analyzer" # Friendly format: weekly (scattered) # skip-if-match: is:pr is:open in:title "[ubuntu-image]" # Skip-if-match processed as search check in pre-activation job workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/unbloat-docs.lock.yml b/.github/workflows/unbloat-docs.lock.yml index 76519cd3ba7..e88dff33b83 100644 --- a/.github/workflows/unbloat-docs.lock.yml +++ b/.github/workflows/unbloat-docs.lock.yml @@ -38,7 +38,13 @@ name: "Documentation Unbloat" - edited schedule: - cron: "7 19 * * *" - workflow_dispatch: null + workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/update-astro.lock.yml b/.github/workflows/update-astro.lock.yml index fa2ecac9f50..491436ff375 100644 --- a/.github/workflows/update-astro.lock.yml +++ b/.github/workflows/update-astro.lock.yml @@ -31,6 +31,12 @@ name: "Update Astro" # Friendly format: daily (scattered) # skip-if-no-match: is:pr is:open author:app/dependabot label:dependencies # Skip-if-no-match processed as search check in pre-activation job workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/video-analyzer.lock.yml b/.github/workflows/video-analyzer.lock.yml index 05bb6290cee..0ebb1063fba 100644 --- a/.github/workflows/video-analyzer.lock.yml +++ b/.github/workflows/video-analyzer.lock.yml @@ -32,6 +32,11 @@ name: "Video Analysis Agent" "on": workflow_dispatch: inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string video_url: description: URL to video file to analyze (must be publicly accessible) required: true diff --git a/.github/workflows/weekly-blog-post-writer.lock.yml b/.github/workflows/weekly-blog-post-writer.lock.yml index 1b45fdab12a..d22489fe6cb 100644 --- a/.github/workflows/weekly-blog-post-writer.lock.yml +++ b/.github/workflows/weekly-blog-post-writer.lock.yml @@ -34,6 +34,12 @@ name: "Weekly Blog Post Writer" - cron: "25 20 * * 1" # Friendly format: weekly on monday (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/weekly-editors-health-check.lock.yml b/.github/workflows/weekly-editors-health-check.lock.yml index c7fd14ca4f1..83aafa4c911 100644 --- a/.github/workflows/weekly-editors-health-check.lock.yml +++ b/.github/workflows/weekly-editors-health-check.lock.yml @@ -30,6 +30,12 @@ name: "Weekly Editors Health Check" - cron: "8 2 * * 5" # Friendly format: weekly (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/weekly-issue-summary.lock.yml b/.github/workflows/weekly-issue-summary.lock.yml index c8086875e5e..91e0bbdd45a 100644 --- a/.github/workflows/weekly-issue-summary.lock.yml +++ b/.github/workflows/weekly-issue-summary.lock.yml @@ -35,6 +35,12 @@ name: "Weekly Issue Summary" schedule: - cron: "0 15 * * 1" workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/weekly-safe-outputs-spec-review.lock.yml b/.github/workflows/weekly-safe-outputs-spec-review.lock.yml index 2b1849da6df..bb185a732b5 100644 --- a/.github/workflows/weekly-safe-outputs-spec-review.lock.yml +++ b/.github/workflows/weekly-safe-outputs-spec-review.lock.yml @@ -30,6 +30,12 @@ name: "Weekly Safe Outputs Specification Review" - cron: "13 3 * * 1" # Friendly format: weekly on monday (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/workflow-health-manager.lock.yml b/.github/workflows/workflow-health-manager.lock.yml index c7cd76f29b3..2a901ba2dd4 100644 --- a/.github/workflows/workflow-health-manager.lock.yml +++ b/.github/workflows/workflow-health-manager.lock.yml @@ -34,6 +34,12 @@ name: "Workflow Health Manager - Meta-Orchestrator" - cron: "22 13 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/workflow-normalizer.lock.yml b/.github/workflows/workflow-normalizer.lock.yml index 9bf70df76e6..1cbfd21bb65 100644 --- a/.github/workflows/workflow-normalizer.lock.yml +++ b/.github/workflows/workflow-normalizer.lock.yml @@ -34,6 +34,12 @@ name: "Workflow Normalizer" - cron: "53 15 * * *" # Friendly format: daily (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/.github/workflows/workflow-skill-extractor.lock.yml b/.github/workflows/workflow-skill-extractor.lock.yml index dad3bb2b5e4..dd22952334d 100644 --- a/.github/workflows/workflow-skill-extractor.lock.yml +++ b/.github/workflows/workflow-skill-extractor.lock.yml @@ -34,6 +34,12 @@ name: "Workflow Skill Extractor" - cron: "48 4 * * 2" # Friendly format: weekly (scattered) workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} diff --git a/pkg/workflow/compiler_aw_context.go b/pkg/workflow/compiler_aw_context.go new file mode 100644 index 00000000000..ad775d18aa2 --- /dev/null +++ b/pkg/workflow/compiler_aw_context.go @@ -0,0 +1,107 @@ +package workflow + +import ( + "strings" +) + +// awContextInputDescription is the description for the aw_context workflow_dispatch input. +// It signals to users that this input is managed internally by the agentic workflow system. +const awContextInputDescription = "(Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input." + +// injectAwContextIntoOnYAML adds the aw_context input to the workflow_dispatch trigger +// in the given on-section YAML string, if workflow_dispatch is present. +// +// The injection is string-based to preserve existing YAML comments and formatting. +// It handles two cases: +// - Bare "workflow_dispatch:" (no sub-keys): adds an inputs: block with aw_context +// - "workflow_dispatch:" with an "inputs:" sub-key: adds aw_context inside inputs +// +// The function is idempotent: calling it twice produces the same result. +func injectAwContextIntoOnYAML(onSection string) string { + if !strings.Contains(onSection, "workflow_dispatch") { + return onSection + } + // Idempotency: skip if already injected + if strings.Contains(onSection, "aw_context:") { + return onSection + } + + lines := strings.Split(onSection, "\n") + + // Find the workflow_dispatch: line (bare — no sub-value on same line) + wdLineIdx := -1 + wdIndent := 0 + for i, line := range lines { + stripped := strings.TrimLeft(line, " \t") + rest, found := strings.CutPrefix(stripped, "workflow_dispatch:") + if found { + rest = strings.TrimSpace(rest) + if rest == "" || rest == "null" || rest == "~" { + wdLineIdx = i + wdIndent = len(line) - len(stripped) + break + } + } + } + + if wdLineIdx == -1 { + return onSection + } + + // Look for an "inputs:" key directly inside workflow_dispatch (at wdIndent+2 depth). + // Only the first non-empty, non-comment line after wdLineIdx matters. + inputsLineIdx := -1 + for i := wdLineIdx + 1; i < len(lines); i++ { + stripped := strings.TrimLeft(lines[i], " \t") + if stripped == "" || strings.HasPrefix(stripped, "#") { + continue + } + lineIndent := len(lines[i]) - len(stripped) + if lineIndent <= wdIndent { + break // left workflow_dispatch block entirely + } + if strings.HasPrefix(stripped, "inputs:") { + inputsLineIdx = i + } + break // only inspect the first substantive child key + } + + awContextLines := buildAwContextInputLines(wdIndent) + + result := make([]string, 0, len(lines)+len(awContextLines)+1) + for i, line := range lines { + // When the workflow_dispatch: line contains an explicit null/~ value, + // replace it with a bare workflow_dispatch: so sub-keys can follow. + if i == wdLineIdx && (strings.HasSuffix(strings.TrimSpace(line), " null") || + strings.HasSuffix(strings.TrimSpace(line), " ~")) { + stripped := strings.TrimLeft(line, " \t") + line = strings.Repeat(" ", wdIndent) + strings.SplitN(stripped, ":", 2)[0] + ":" + } + result = append(result, line) + + if inputsLineIdx != -1 && i == inputsLineIdx { + // Insert aw_context as the first entry under existing inputs: + result = append(result, awContextLines...) + } else if inputsLineIdx == -1 && i == wdLineIdx { + // workflow_dispatch is bare — add inputs: + aw_context + result = append(result, strings.Repeat(" ", wdIndent+2)+"inputs:") + result = append(result, awContextLines...) + } + } + + return strings.Join(result, "\n") +} + +// buildAwContextInputLines returns the indented YAML lines for the aw_context input +// definition, sized relative to the workflow_dispatch: line's indentation. +func buildAwContextInputLines(wdIndent int) []string { + awIndent := strings.Repeat(" ", wdIndent+4) // under inputs: + propIndent := strings.Repeat(" ", wdIndent+6) // properties of aw_context + return []string{ + awIndent + "aw_context:", + propIndent + "default: \"\"", + propIndent + "description: " + awContextInputDescription, + propIndent + "required: false", + propIndent + "type: string", + } +} diff --git a/pkg/workflow/compiler_yaml.go b/pkg/workflow/compiler_yaml.go index 8c3d40de68c..1fb5238a0f0 100644 --- a/pkg/workflow/compiler_yaml.go +++ b/pkg/workflow/compiler_yaml.go @@ -199,6 +199,10 @@ func (c *Compiler) generateWorkflowBody(yaml *strings.Builder, data *WorkflowDat if data.SafeOutputs != nil { onSection = c.injectWorkflowCallOutputs(onSection, data.SafeOutputs) } + // Inject aw_context input into workflow_dispatch triggers so dispatched workflows + // can receive caller metadata (repo, run_id, actor, etc.) from dispatch_workflow. + // String-based injection preserves existing YAML comments and formatting. + onSection = injectAwContextIntoOnYAML(onSection) yaml.WriteString(onSection + "\n\n") // Note: GitHub Actions doesn't support workflow-level if conditions diff --git a/pkg/workflow/testdata/wasm_golden/TestWasmGolden_CompileFixtures/basic-copilot.golden b/pkg/workflow/testdata/wasm_golden/TestWasmGolden_CompileFixtures/basic-copilot.golden index d857823ec57..32b369d8867 100644 --- a/pkg/workflow/testdata/wasm_golden/TestWasmGolden_CompileFixtures/basic-copilot.golden +++ b/pkg/workflow/testdata/wasm_golden/TestWasmGolden_CompileFixtures/basic-copilot.golden @@ -1,6 +1,12 @@ name: "basic-copilot-test" "on": workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} @@ -48,7 +54,7 @@ jobs: GH_AW_INFO_STAGED: "false" GH_AW_INFO_ALLOWED_DOMAINS: '["defaults"]' GH_AW_INFO_FIREWALL_ENABLED: "true" - GH_AW_INFO_AWF_VERSION: "v0.24.5" + GH_AW_INFO_AWF_VERSION: "v0.25.0" GH_AW_INFO_AWMG_VERSION: "" GH_AW_INFO_FIREWALL_TYPE: "squid" GH_AW_COMPILED_STRICT: "true" @@ -271,7 +277,7 @@ jobs: env: GH_HOST: github.com - name: Install AWF binary - run: bash ${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh v0.24.5 + run: bash ${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh v0.25.0 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 @@ -283,7 +289,7 @@ jobs: const determineAutomaticLockdown = require('${{ runner.temp }}/gh-aw/actions/determine_automatic_lockdown.cjs'); await determineAutomaticLockdown(github, context, core); - name: Download container images - run: bash ${RUNNER_TEMP}/gh-aw/actions/download_docker_images.sh ghcr.io/github/gh-aw-firewall/agent:0.24.5 ghcr.io/github/gh-aw-firewall/api-proxy:0.24.5 ghcr.io/github/gh-aw-firewall/squid:0.24.5 ghcr.io/github/gh-aw-mcpg:v0.2.1 ghcr.io/github/github-mcp-server:v0.32.0 + run: bash ${RUNNER_TEMP}/gh-aw/actions/download_docker_images.sh ghcr.io/github/gh-aw-firewall/agent:0.25.0 ghcr.io/github/gh-aw-firewall/api-proxy:0.25.0 ghcr.io/github/gh-aw-firewall/squid:0.25.0 ghcr.io/github/gh-aw-mcpg:v0.2.1 ghcr.io/github/github-mcp-server:v0.32.0 - name: Start MCP Gateway id: start-mcp-gateway env: @@ -353,7 +359,7 @@ jobs: set -o pipefail touch /tmp/gh-aw/agent-step-summary.md # shellcheck disable=SC1003 - sudo -E awf --env-all --container-workdir "${GITHUB_WORKSPACE}" --mount "${RUNNER_TEMP}/gh-aw:${RUNNER_TEMP}/gh-aw:ro" --mount "${RUNNER_TEMP}/gh-aw:/host${RUNNER_TEMP}/gh-aw:ro" --allow-domains "api.business.githubcopilot.com,api.enterprise.githubcopilot.com,api.github.com,api.githubcopilot.com,api.individual.githubcopilot.com,api.snapcraft.io,archive.ubuntu.com,azure.archive.ubuntu.com,crl.geotrust.com,crl.globalsign.com,crl.identrust.com,crl.sectigo.com,crl.thawte.com,crl.usertrust.com,crl.verisign.com,crl3.digicert.com,crl4.digicert.com,crls.ssl.com,github.com,host.docker.internal,json-schema.org,json.schemastore.org,keyserver.ubuntu.com,ocsp.digicert.com,ocsp.geotrust.com,ocsp.globalsign.com,ocsp.identrust.com,ocsp.sectigo.com,ocsp.ssl.com,ocsp.thawte.com,ocsp.usertrust.com,ocsp.verisign.com,packagecloud.io,packages.cloud.google.com,packages.microsoft.com,ppa.launchpad.net,raw.githubusercontent.com,registry.npmjs.org,s.symcb.com,s.symcd.com,security.ubuntu.com,telemetry.enterprise.githubcopilot.com,ts-crl.ws.symantec.com,ts-ocsp.ws.symantec.com,www.googleapis.com" --log-level info --proxy-logs-dir /tmp/gh-aw/sandbox/firewall/logs --enable-host-access --image-tag 0.24.5 --skip-pull --enable-api-proxy \ + sudo -E awf --env-all --container-workdir "${GITHUB_WORKSPACE}" --mount "${RUNNER_TEMP}/gh-aw:${RUNNER_TEMP}/gh-aw:ro" --mount "${RUNNER_TEMP}/gh-aw:/host${RUNNER_TEMP}/gh-aw:ro" --allow-domains "api.business.githubcopilot.com,api.enterprise.githubcopilot.com,api.github.com,api.githubcopilot.com,api.individual.githubcopilot.com,api.snapcraft.io,archive.ubuntu.com,azure.archive.ubuntu.com,crl.geotrust.com,crl.globalsign.com,crl.identrust.com,crl.sectigo.com,crl.thawte.com,crl.usertrust.com,crl.verisign.com,crl3.digicert.com,crl4.digicert.com,crls.ssl.com,github.com,host.docker.internal,json-schema.org,json.schemastore.org,keyserver.ubuntu.com,ocsp.digicert.com,ocsp.geotrust.com,ocsp.globalsign.com,ocsp.identrust.com,ocsp.sectigo.com,ocsp.ssl.com,ocsp.thawte.com,ocsp.usertrust.com,ocsp.verisign.com,packagecloud.io,packages.cloud.google.com,packages.microsoft.com,ppa.launchpad.net,raw.githubusercontent.com,registry.npmjs.org,s.symcb.com,s.symcd.com,security.ubuntu.com,telemetry.enterprise.githubcopilot.com,ts-crl.ws.symantec.com,ts-ocsp.ws.symantec.com,www.googleapis.com" --log-level info --proxy-logs-dir /tmp/gh-aw/sandbox/firewall/logs --enable-host-access --image-tag 0.25.0 --skip-pull --enable-api-proxy \ -- /bin/bash -c '/usr/local/bin/copilot --add-dir /tmp/gh-aw/ --log-level all --log-dir /tmp/gh-aw/sandbox/agent/logs/ --add-dir "${GITHUB_WORKSPACE}" --disable-builtin-mcps --allow-all-tools --allow-all-paths --prompt "$(cat /tmp/gh-aw/aw-prompts/prompt.txt)"' 2>&1 | tee -a /tmp/gh-aw/agent-stdio.log env: COPILOT_AGENT_RUNNER_TYPE: STANDALONE diff --git a/pkg/workflow/testdata/wasm_golden/TestWasmGolden_CompileFixtures/smoke-copilot.golden b/pkg/workflow/testdata/wasm_golden/TestWasmGolden_CompileFixtures/smoke-copilot.golden index 9f83ac58873..6db8cfbe49f 100644 --- a/pkg/workflow/testdata/wasm_golden/TestWasmGolden_CompileFixtures/smoke-copilot.golden +++ b/pkg/workflow/testdata/wasm_golden/TestWasmGolden_CompileFixtures/smoke-copilot.golden @@ -11,6 +11,12 @@ name: "Smoke Copilot" # Friendly format: every 12h (scattered) status-comment: true workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} @@ -62,7 +68,7 @@ jobs: GH_AW_INFO_STAGED: "false" GH_AW_INFO_ALLOWED_DOMAINS: '["defaults","node","github","playwright"]' GH_AW_INFO_FIREWALL_ENABLED: "true" - GH_AW_INFO_AWF_VERSION: "v0.24.5" + GH_AW_INFO_AWF_VERSION: "v0.25.0" GH_AW_INFO_AWMG_VERSION: "" GH_AW_INFO_FIREWALL_TYPE: "squid" GH_AW_COMPILED_STRICT: "true" @@ -397,7 +403,7 @@ jobs: env: GH_HOST: github.com - name: Install AWF binary - run: bash ${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh v0.24.5 + run: bash ${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh v0.25.0 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 @@ -409,7 +415,7 @@ jobs: const determineAutomaticLockdown = require('${{ runner.temp }}/gh-aw/actions/determine_automatic_lockdown.cjs'); await determineAutomaticLockdown(github, context, core); - name: Download container images - run: bash ${RUNNER_TEMP}/gh-aw/actions/download_docker_images.sh ghcr.io/github/gh-aw-firewall/agent:0.24.5 ghcr.io/github/gh-aw-firewall/api-proxy:0.24.5 ghcr.io/github/gh-aw-firewall/squid:0.24.5 ghcr.io/github/gh-aw-mcpg:v0.2.1 ghcr.io/github/github-mcp-server:v0.32.0 ghcr.io/github/serena-mcp-server:latest mcr.microsoft.com/playwright/mcp + run: bash ${RUNNER_TEMP}/gh-aw/actions/download_docker_images.sh ghcr.io/github/gh-aw-firewall/agent:0.25.0 ghcr.io/github/gh-aw-firewall/api-proxy:0.25.0 ghcr.io/github/gh-aw-firewall/squid:0.25.0 ghcr.io/github/gh-aw-mcpg:v0.2.1 ghcr.io/github/github-mcp-server:v0.32.0 ghcr.io/github/serena-mcp-server:latest mcr.microsoft.com/playwright/mcp - name: Install gh-aw extension env: GH_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN || secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} @@ -553,7 +559,7 @@ jobs: set -o pipefail touch /tmp/gh-aw/agent-step-summary.md # shellcheck disable=SC1003 - sudo -E awf --env-all --container-workdir "${GITHUB_WORKSPACE}" --mount "${RUNNER_TEMP}/gh-aw:${RUNNER_TEMP}/gh-aw:ro" --mount "${RUNNER_TEMP}/gh-aw:/host${RUNNER_TEMP}/gh-aw:ro" --allow-domains "*.githubusercontent.com,*.jsr.io,api.business.githubcopilot.com,api.enterprise.githubcopilot.com,api.github.com,api.githubcopilot.com,api.individual.githubcopilot.com,api.npms.io,api.snapcraft.io,archive.ubuntu.com,azure.archive.ubuntu.com,bun.sh,cdn.jsdelivr.net,cdn.playwright.dev,codeload.github.com,crl.geotrust.com,crl.globalsign.com,crl.identrust.com,crl.sectigo.com,crl.thawte.com,crl.usertrust.com,crl.verisign.com,crl3.digicert.com,crl4.digicert.com,crls.ssl.com,deb.nodesource.com,deno.land,docs.github.com,esm.sh,get.pnpm.io,github-cloud.githubusercontent.com,github-cloud.s3.amazonaws.com,github.blog,github.com,github.githubassets.com,go.dev,golang.org,googleapis.deno.dev,googlechromelabs.github.io,goproxy.io,host.docker.internal,json-schema.org,json.schemastore.org,jsr.io,keyserver.ubuntu.com,lfs.github.com,nodejs.org,npm.pkg.github.com,npmjs.com,npmjs.org,objects.githubusercontent.com,ocsp.digicert.com,ocsp.geotrust.com,ocsp.globalsign.com,ocsp.identrust.com,ocsp.sectigo.com,ocsp.ssl.com,ocsp.thawte.com,ocsp.usertrust.com,ocsp.verisign.com,packagecloud.io,packages.cloud.google.com,packages.microsoft.com,pkg.go.dev,playwright.download.prss.microsoft.com,ppa.launchpad.net,proxy.golang.org,raw.githubusercontent.com,registry.bower.io,registry.npmjs.com,registry.npmjs.org,registry.yarnpkg.com,repo.yarnpkg.com,s.symcb.com,s.symcd.com,security.ubuntu.com,skimdb.npmjs.com,storage.googleapis.com,sum.golang.org,telemetry.enterprise.githubcopilot.com,telemetry.vercel.com,ts-crl.ws.symantec.com,ts-ocsp.ws.symantec.com,www.googleapis.com,www.npmjs.com,www.npmjs.org,yarnpkg.com" --log-level info --proxy-logs-dir /tmp/gh-aw/sandbox/firewall/logs --enable-host-access --image-tag 0.24.5 --skip-pull --enable-api-proxy \ + sudo -E awf --env-all --container-workdir "${GITHUB_WORKSPACE}" --mount "${RUNNER_TEMP}/gh-aw:${RUNNER_TEMP}/gh-aw:ro" --mount "${RUNNER_TEMP}/gh-aw:/host${RUNNER_TEMP}/gh-aw:ro" --allow-domains "*.githubusercontent.com,*.jsr.io,api.business.githubcopilot.com,api.enterprise.githubcopilot.com,api.github.com,api.githubcopilot.com,api.individual.githubcopilot.com,api.npms.io,api.snapcraft.io,archive.ubuntu.com,azure.archive.ubuntu.com,bun.sh,cdn.jsdelivr.net,cdn.playwright.dev,codeload.github.com,crl.geotrust.com,crl.globalsign.com,crl.identrust.com,crl.sectigo.com,crl.thawte.com,crl.usertrust.com,crl.verisign.com,crl3.digicert.com,crl4.digicert.com,crls.ssl.com,deb.nodesource.com,deno.land,docs.github.com,esm.sh,get.pnpm.io,github-cloud.githubusercontent.com,github-cloud.s3.amazonaws.com,github.blog,github.com,github.githubassets.com,go.dev,golang.org,googleapis.deno.dev,googlechromelabs.github.io,goproxy.io,host.docker.internal,json-schema.org,json.schemastore.org,jsr.io,keyserver.ubuntu.com,lfs.github.com,nodejs.org,npm.pkg.github.com,npmjs.com,npmjs.org,objects.githubusercontent.com,ocsp.digicert.com,ocsp.geotrust.com,ocsp.globalsign.com,ocsp.identrust.com,ocsp.sectigo.com,ocsp.ssl.com,ocsp.thawte.com,ocsp.usertrust.com,ocsp.verisign.com,packagecloud.io,packages.cloud.google.com,packages.microsoft.com,pkg.go.dev,playwright.download.prss.microsoft.com,ppa.launchpad.net,proxy.golang.org,raw.githubusercontent.com,registry.bower.io,registry.npmjs.com,registry.npmjs.org,registry.yarnpkg.com,repo.yarnpkg.com,s.symcb.com,s.symcd.com,security.ubuntu.com,skimdb.npmjs.com,storage.googleapis.com,sum.golang.org,telemetry.enterprise.githubcopilot.com,telemetry.vercel.com,ts-crl.ws.symantec.com,ts-ocsp.ws.symantec.com,www.googleapis.com,www.npmjs.com,www.npmjs.org,yarnpkg.com" --log-level info --proxy-logs-dir /tmp/gh-aw/sandbox/firewall/logs --enable-host-access --image-tag 0.25.0 --skip-pull --enable-api-proxy \ -- /bin/bash -c '/usr/local/bin/copilot --add-dir /tmp/gh-aw/ --log-level all --log-dir /tmp/gh-aw/sandbox/agent/logs/ --add-dir "${GITHUB_WORKSPACE}" --disable-builtin-mcps --allow-all-tools --allow-all-paths --prompt "$(cat /tmp/gh-aw/aw-prompts/prompt.txt)"' 2>&1 | tee -a /tmp/gh-aw/agent-stdio.log env: COPILOT_AGENT_RUNNER_TYPE: STANDALONE diff --git a/pkg/workflow/testdata/wasm_golden/TestWasmGolden_CompileFixtures/with-imports.golden b/pkg/workflow/testdata/wasm_golden/TestWasmGolden_CompileFixtures/with-imports.golden index 1ad829fdd49..76edb51d3b9 100644 --- a/pkg/workflow/testdata/wasm_golden/TestWasmGolden_CompileFixtures/with-imports.golden +++ b/pkg/workflow/testdata/wasm_golden/TestWasmGolden_CompileFixtures/with-imports.golden @@ -1,6 +1,12 @@ name: "with-imports-test" "on": workflow_dispatch: + inputs: + aw_context: + default: "" + description: (Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input. + required: false + type: string permissions: {} @@ -48,7 +54,7 @@ jobs: GH_AW_INFO_STAGED: "false" GH_AW_INFO_ALLOWED_DOMAINS: '["defaults"]' GH_AW_INFO_FIREWALL_ENABLED: "true" - GH_AW_INFO_AWF_VERSION: "v0.24.5" + GH_AW_INFO_AWF_VERSION: "v0.25.0" GH_AW_INFO_AWMG_VERSION: "" GH_AW_INFO_FIREWALL_TYPE: "squid" GH_AW_COMPILED_STRICT: "true" @@ -274,7 +280,7 @@ jobs: env: GH_HOST: github.com - name: Install AWF binary - run: bash ${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh v0.24.5 + run: bash ${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh v0.25.0 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 @@ -286,7 +292,7 @@ jobs: const determineAutomaticLockdown = require('${{ runner.temp }}/gh-aw/actions/determine_automatic_lockdown.cjs'); await determineAutomaticLockdown(github, context, core); - name: Download container images - run: bash ${RUNNER_TEMP}/gh-aw/actions/download_docker_images.sh ghcr.io/github/gh-aw-firewall/agent:0.24.5 ghcr.io/github/gh-aw-firewall/api-proxy:0.24.5 ghcr.io/github/gh-aw-firewall/squid:0.24.5 ghcr.io/github/gh-aw-mcpg:v0.2.1 ghcr.io/github/github-mcp-server:v0.32.0 + run: bash ${RUNNER_TEMP}/gh-aw/actions/download_docker_images.sh ghcr.io/github/gh-aw-firewall/agent:0.25.0 ghcr.io/github/gh-aw-firewall/api-proxy:0.25.0 ghcr.io/github/gh-aw-firewall/squid:0.25.0 ghcr.io/github/gh-aw-mcpg:v0.2.1 ghcr.io/github/github-mcp-server:v0.32.0 - name: Start MCP Gateway id: start-mcp-gateway env: @@ -356,7 +362,7 @@ jobs: set -o pipefail touch /tmp/gh-aw/agent-step-summary.md # shellcheck disable=SC1003 - sudo -E awf --env-all --container-workdir "${GITHUB_WORKSPACE}" --mount "${RUNNER_TEMP}/gh-aw:${RUNNER_TEMP}/gh-aw:ro" --mount "${RUNNER_TEMP}/gh-aw:/host${RUNNER_TEMP}/gh-aw:ro" --allow-domains "api.business.githubcopilot.com,api.enterprise.githubcopilot.com,api.github.com,api.githubcopilot.com,api.individual.githubcopilot.com,api.snapcraft.io,archive.ubuntu.com,azure.archive.ubuntu.com,crl.geotrust.com,crl.globalsign.com,crl.identrust.com,crl.sectigo.com,crl.thawte.com,crl.usertrust.com,crl.verisign.com,crl3.digicert.com,crl4.digicert.com,crls.ssl.com,github.com,host.docker.internal,json-schema.org,json.schemastore.org,keyserver.ubuntu.com,ocsp.digicert.com,ocsp.geotrust.com,ocsp.globalsign.com,ocsp.identrust.com,ocsp.sectigo.com,ocsp.ssl.com,ocsp.thawte.com,ocsp.usertrust.com,ocsp.verisign.com,packagecloud.io,packages.cloud.google.com,packages.microsoft.com,ppa.launchpad.net,raw.githubusercontent.com,registry.npmjs.org,s.symcb.com,s.symcd.com,security.ubuntu.com,telemetry.enterprise.githubcopilot.com,ts-crl.ws.symantec.com,ts-ocsp.ws.symantec.com,www.googleapis.com" --log-level info --proxy-logs-dir /tmp/gh-aw/sandbox/firewall/logs --enable-host-access --image-tag 0.24.5 --skip-pull --enable-api-proxy \ + sudo -E awf --env-all --container-workdir "${GITHUB_WORKSPACE}" --mount "${RUNNER_TEMP}/gh-aw:${RUNNER_TEMP}/gh-aw:ro" --mount "${RUNNER_TEMP}/gh-aw:/host${RUNNER_TEMP}/gh-aw:ro" --allow-domains "api.business.githubcopilot.com,api.enterprise.githubcopilot.com,api.github.com,api.githubcopilot.com,api.individual.githubcopilot.com,api.snapcraft.io,archive.ubuntu.com,azure.archive.ubuntu.com,crl.geotrust.com,crl.globalsign.com,crl.identrust.com,crl.sectigo.com,crl.thawte.com,crl.usertrust.com,crl.verisign.com,crl3.digicert.com,crl4.digicert.com,crls.ssl.com,github.com,host.docker.internal,json-schema.org,json.schemastore.org,keyserver.ubuntu.com,ocsp.digicert.com,ocsp.geotrust.com,ocsp.globalsign.com,ocsp.identrust.com,ocsp.sectigo.com,ocsp.ssl.com,ocsp.thawte.com,ocsp.usertrust.com,ocsp.verisign.com,packagecloud.io,packages.cloud.google.com,packages.microsoft.com,ppa.launchpad.net,raw.githubusercontent.com,registry.npmjs.org,s.symcb.com,s.symcd.com,security.ubuntu.com,telemetry.enterprise.githubcopilot.com,ts-crl.ws.symantec.com,ts-ocsp.ws.symantec.com,www.googleapis.com" --log-level info --proxy-logs-dir /tmp/gh-aw/sandbox/firewall/logs --enable-host-access --image-tag 0.25.0 --skip-pull --enable-api-proxy \ -- /bin/bash -c '/usr/local/bin/copilot --add-dir /tmp/gh-aw/ --log-level all --log-dir /tmp/gh-aw/sandbox/agent/logs/ --add-dir "${GITHUB_WORKSPACE}" --disable-builtin-mcps --allow-all-tools --allow-all-paths --prompt "$(cat /tmp/gh-aw/aw-prompts/prompt.txt)"' 2>&1 | tee -a /tmp/gh-aw/agent-stdio.log env: COPILOT_AGENT_RUNNER_TYPE: STANDALONE diff --git a/pkg/workflow/workflow_dispatch_inputs_test.go b/pkg/workflow/workflow_dispatch_inputs_test.go index d4fd594b079..dc7e1c652d0 100644 --- a/pkg/workflow/workflow_dispatch_inputs_test.go +++ b/pkg/workflow/workflow_dispatch_inputs_test.go @@ -141,7 +141,9 @@ Test workflow with choice input`, t.Fatalf("Expected 'inputs' to be a map, got %T", workflowDispatch["inputs"]) } - // Get the first (and only) input + // Get the first (and only) user-defined input + // (aw_context is automatically injected by the compiler and should be filtered out) + delete(inputs, "aw_context") if len(inputs) != 1 { t.Fatalf("Expected 1 input, got %d", len(inputs)) } @@ -414,9 +416,10 @@ Test workflow with all input types` inputs := workflowDispatch["inputs"].(map[string]any) // Verify all inputs exist + // (aw_context is automatically injected by the compiler) expectedInputs := []string{"message", "debug", "count", "environment", "deploy_target"} - if len(inputs) != len(expectedInputs) { - t.Fatalf("Expected %d inputs, got %d", len(expectedInputs), len(inputs)) + if len(inputs) != len(expectedInputs)+1 { + t.Fatalf("Expected %d inputs (including aw_context), got %d", len(expectedInputs)+1, len(inputs)) } for _, inputName := range expectedInputs { From 4f830922f97dc0ffa2f19cea8ef30f9cd75a27ac Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 23 Mar 2026 22:17:39 +0000 Subject: [PATCH 9/9] feat: remove aw_context from haiku-printer.yml, rely on compile-time detection Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/a8d9c07c-b36b-454b-bc88-a222a7ff6c67 --- .github/workflows/haiku-printer.yml | 5 ----- .github/workflows/smoke-copilot-arm.lock.yml | 7 +------ .github/workflows/smoke-copilot.lock.yml | 7 +------ 3 files changed, 2 insertions(+), 17 deletions(-) diff --git a/.github/workflows/haiku-printer.yml b/.github/workflows/haiku-printer.yml index a6d5992aa87..523509c8b70 100644 --- a/.github/workflows/haiku-printer.yml +++ b/.github/workflows/haiku-printer.yml @@ -6,11 +6,6 @@ on: description: 'Message to print' type: string required: true - aw_context: - description: '(Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input.' - type: string - required: false - default: '' permissions: contents: read jobs: diff --git a/.github/workflows/smoke-copilot-arm.lock.yml b/.github/workflows/smoke-copilot-arm.lock.yml index ae8861f28e8..51cf6ac9c3f 100644 --- a/.github/workflows/smoke-copilot-arm.lock.yml +++ b/.github/workflows/smoke-copilot-arm.lock.yml @@ -542,11 +542,6 @@ jobs: "inputSchema": { "additionalProperties": false, "properties": { - "aw_context": { - "default": "", - "description": "(Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input.", - "type": "string" - }, "message": { "description": "Message to print", "type": "string" @@ -2026,7 +2021,7 @@ jobs: GITHUB_SERVER_URL: ${{ github.server_url }} GITHUB_API_URL: ${{ github.api_url }} GH_AW_SAFE_OUTPUT_JOBS: "{\"send_slack_message\":\"\"}" - GH_AW_SAFE_OUTPUTS_HANDLER_CONFIG: "{\"add_comment\":{\"allowed_repos\":[\"github/gh-aw\"],\"hide_older_comments\":true,\"max\":2},\"add_labels\":{\"allowed\":[\"smoke-copilot-arm\"],\"allowed_repos\":[\"github/gh-aw\"]},\"create_discussion\":{\"category\":\"announcements\",\"close_older_discussions\":true,\"expires\":2,\"fallback_to_issue\":true,\"labels\":[\"ai-generated\"],\"max\":1},\"create_issue\":{\"close_older_issues\":true,\"expires\":2,\"group\":true,\"labels\":[\"automation\",\"testing\"],\"max\":1},\"create_pull_request_review_comment\":{\"max\":5,\"side\":\"RIGHT\"},\"dispatch_workflow\":{\"aw_context_workflows\":[\"haiku-printer\"],\"max\":1,\"workflow_files\":{\"haiku-printer\":\".yml\"},\"workflows\":[\"haiku-printer\"]},\"missing_data\":{},\"missing_tool\":{},\"noop\":{\"max\":1,\"report-as-issue\":\"true\"},\"remove_labels\":{\"allowed\":[\"smoke\"]},\"submit_pull_request_review\":{\"max\":1}}" + GH_AW_SAFE_OUTPUTS_HANDLER_CONFIG: "{\"add_comment\":{\"allowed_repos\":[\"github/gh-aw\"],\"hide_older_comments\":true,\"max\":2},\"add_labels\":{\"allowed\":[\"smoke-copilot-arm\"],\"allowed_repos\":[\"github/gh-aw\"]},\"create_discussion\":{\"category\":\"announcements\",\"close_older_discussions\":true,\"expires\":2,\"fallback_to_issue\":true,\"labels\":[\"ai-generated\"],\"max\":1},\"create_issue\":{\"close_older_issues\":true,\"expires\":2,\"group\":true,\"labels\":[\"automation\",\"testing\"],\"max\":1},\"create_pull_request_review_comment\":{\"max\":5,\"side\":\"RIGHT\"},\"dispatch_workflow\":{\"max\":1,\"workflow_files\":{\"haiku-printer\":\".yml\"},\"workflows\":[\"haiku-printer\"]},\"missing_data\":{},\"missing_tool\":{},\"noop\":{\"max\":1,\"report-as-issue\":\"true\"},\"remove_labels\":{\"allowed\":[\"smoke\"]},\"submit_pull_request_review\":{\"max\":1}}" with: github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} script: | diff --git a/.github/workflows/smoke-copilot.lock.yml b/.github/workflows/smoke-copilot.lock.yml index a00f9541e99..e981f0e39c1 100644 --- a/.github/workflows/smoke-copilot.lock.yml +++ b/.github/workflows/smoke-copilot.lock.yml @@ -550,11 +550,6 @@ jobs: "inputSchema": { "additionalProperties": false, "properties": { - "aw_context": { - "default": "", - "description": "(Internal) JSON context injected by the calling agentic workflow. Not intended for direct user input.", - "type": "string" - }, "message": { "description": "Message to print", "type": "string" @@ -2072,7 +2067,7 @@ jobs: GITHUB_SERVER_URL: ${{ github.server_url }} GITHUB_API_URL: ${{ github.api_url }} GH_AW_SAFE_OUTPUT_JOBS: "{\"send_slack_message\":\"\"}" - GH_AW_SAFE_OUTPUTS_HANDLER_CONFIG: "{\"add_comment\":{\"allowed_repos\":[\"github/gh-aw\"],\"hide_older_comments\":true,\"max\":2},\"add_labels\":{\"allowed\":[\"smoke-copilot\"],\"allowed_repos\":[\"github/gh-aw\"]},\"create_discussion\":{\"category\":\"announcements\",\"close_older_discussions\":true,\"close_older_key\":\"smoke-copilot\",\"expires\":2,\"fallback_to_issue\":true,\"labels\":[\"ai-generated\"],\"max\":1},\"create_issue\":{\"close_older_issues\":true,\"close_older_key\":\"smoke-copilot\",\"expires\":2,\"group\":true,\"labels\":[\"automation\",\"testing\"],\"max\":1},\"create_pull_request_review_comment\":{\"max\":5,\"side\":\"RIGHT\"},\"dispatch_workflow\":{\"aw_context_workflows\":[\"haiku-printer\"],\"max\":1,\"workflow_files\":{\"haiku-printer\":\".yml\"},\"workflows\":[\"haiku-printer\"]},\"missing_data\":{},\"missing_tool\":{},\"noop\":{\"max\":1,\"report-as-issue\":\"true\"},\"remove_labels\":{\"allowed\":[\"smoke\"]},\"reply_to_pull_request_review_comment\":{\"max\":5},\"set_issue_type\":{},\"submit_pull_request_review\":{\"max\":1}}" + GH_AW_SAFE_OUTPUTS_HANDLER_CONFIG: "{\"add_comment\":{\"allowed_repos\":[\"github/gh-aw\"],\"hide_older_comments\":true,\"max\":2},\"add_labels\":{\"allowed\":[\"smoke-copilot\"],\"allowed_repos\":[\"github/gh-aw\"]},\"create_discussion\":{\"category\":\"announcements\",\"close_older_discussions\":true,\"close_older_key\":\"smoke-copilot\",\"expires\":2,\"fallback_to_issue\":true,\"labels\":[\"ai-generated\"],\"max\":1},\"create_issue\":{\"close_older_issues\":true,\"close_older_key\":\"smoke-copilot\",\"expires\":2,\"group\":true,\"labels\":[\"automation\",\"testing\"],\"max\":1},\"create_pull_request_review_comment\":{\"max\":5,\"side\":\"RIGHT\"},\"dispatch_workflow\":{\"max\":1,\"workflow_files\":{\"haiku-printer\":\".yml\"},\"workflows\":[\"haiku-printer\"]},\"missing_data\":{},\"missing_tool\":{},\"noop\":{\"max\":1,\"report-as-issue\":\"true\"},\"remove_labels\":{\"allowed\":[\"smoke\"]},\"reply_to_pull_request_review_comment\":{\"max\":5},\"set_issue_type\":{},\"submit_pull_request_review\":{\"max\":1}}" with: github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} script: |