@vypdev/copilot 3.2.0 → 3.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/README.md +49 -16
  2. package/action.yml +67 -35
  3. package/build/api/index.js +4666 -0
  4. package/build/api/src/api.d.ts +35 -0
  5. package/build/api/src/application/ports/agent_configuration_ports.d.ts +3 -0
  6. package/build/api/src/application/ports/agent_findings_ports.d.ts +8 -0
  7. package/build/api/src/application/ports/agent_query_ports.d.ts +14 -0
  8. package/build/api/src/application/ports/bugbot_context_ports.d.ts +9 -0
  9. package/build/api/src/application/ports/bugbot_finding_publication_ports.d.ts +7 -0
  10. package/build/api/src/application/ports/bugbot_finding_resolution_ports.d.ts +6 -0
  11. package/build/api/src/application/ports/bugbot_issue_read_ports.d.ts +10 -0
  12. package/build/api/src/application/ports/bugbot_issue_write_ports.d.ts +12 -0
  13. package/build/api/src/application/ports/bugbot_pull_request_read_ports.d.ts +47 -0
  14. package/build/api/src/application/ports/bugbot_pull_request_resolution_ports.d.ts +3 -0
  15. package/build/api/src/application/ports/bugbot_pull_request_write_ports.d.ts +4 -0
  16. package/build/api/src/application/ports/bugbot_rule_ports.d.ts +12 -0
  17. package/build/api/src/application/ports/bugbot_telemetry_ports.d.ts +32 -0
  18. package/build/api/src/application/ports/pull_request_review_comment_ports.d.ts +43 -0
  19. package/build/api/src/application/usecases/steps/commit/bugbot/types.d.ts +112 -0
  20. package/build/api/src/data/model/agent.d.ts +2 -0
  21. package/build/api/src/data/model/ai.d.ts +28 -0
  22. package/build/api/src/data/model/branch_configuration.d.ts +6 -0
  23. package/build/api/src/data/model/branches.d.ts +12 -0
  24. package/build/api/src/data/model/commit.d.ts +8 -0
  25. package/build/api/src/data/model/config.d.ts +30 -0
  26. package/build/api/src/data/model/emoji.d.ts +5 -0
  27. package/build/api/src/data/model/execution.d.ts +75 -0
  28. package/build/api/src/data/model/execution_components.d.ts +43 -0
  29. package/build/api/src/data/model/execution_inputs.d.ts +94 -0
  30. package/build/api/src/data/model/hotfix.d.ts +7 -0
  31. package/build/api/src/data/model/images.d.ts +27 -0
  32. package/build/api/src/data/model/issue.d.ts +27 -0
  33. package/build/api/src/data/model/issue_types.d.ts +30 -0
  34. package/build/api/src/data/model/labels.d.ts +60 -0
  35. package/build/api/src/data/model/locale.d.ts +6 -0
  36. package/build/api/src/data/model/project_detail.d.ts +15 -0
  37. package/build/api/src/data/model/projects.d.ts +14 -0
  38. package/build/api/src/data/model/pull_request.d.ts +32 -0
  39. package/build/api/src/data/model/recommendation_state.d.ts +6 -0
  40. package/build/api/src/data/model/release.d.ts +6 -0
  41. package/build/api/src/data/model/result.d.ts +25 -0
  42. package/build/api/src/data/model/single_action.d.ts +43 -0
  43. package/build/api/src/data/model/size_threshold.d.ts +6 -0
  44. package/build/api/src/data/model/size_thresholds.d.ts +10 -0
  45. package/build/api/src/data/model/tokens.d.ts +4 -0
  46. package/build/api/src/data/model/welcome.d.ts +5 -0
  47. package/build/api/src/data/model/workflows.d.ts +5 -0
  48. package/build/api/src/domain/agent.d.ts +26 -0
  49. package/build/api/src/domain/bugbot/finding_identity.d.ts +26 -0
  50. package/build/api/src/domain/bugbot/review_command.d.ts +16 -0
  51. package/build/api/src/domain/bugbot/review_configuration.d.ts +25 -0
  52. package/build/api/src/domain/copilot_lifecycle.d.ts +42 -0
  53. package/build/api/src/domain/pull_request_description.d.ts +13 -0
  54. package/build/api/src/tooling/bugbot_analytics.d.ts +24 -0
  55. package/build/api/src/tooling/bugbot_benchmark.d.ts +26 -0
  56. package/build/api/src/tooling/bugbot_quality_eval.d.ts +41 -0
  57. package/build/cli/index.js +12503 -1754
  58. package/build/github_action/index.js +10076 -1305
  59. package/package.json +16 -6
  60. package/setup/ISSUE_TEMPLATE/help_request.yml +5 -0
  61. package/setup/workflows/agent-cli-provisioning.yml +26 -27
  62. package/setup/workflows/copilot_branch_sync.yml +19 -0
  63. package/setup/workflows/copilot_close_inactive_issues.yml +49 -0
  64. package/setup/workflows/copilot_commit.yml +56 -1
  65. package/setup/workflows/copilot_credential_health.yml +190 -0
  66. package/setup/workflows/copilot_issue.yml +42 -2
  67. package/setup/workflows/copilot_issue_comment.yml +53 -4
  68. package/setup/workflows/copilot_pull_request.yml +65 -3
  69. package/setup/workflows/copilot_pull_request_comment.yml +53 -4
  70. package/setup/workflows/hotfix_workflow.yml +39 -19
  71. package/setup/workflows/release_workflow.yml +39 -19
package/README.md CHANGED
@@ -30,29 +30,62 @@ Full documentation: **[docs.page/vypdev/copilot](https://docs.page/vypdev/copilo
30
30
 
31
31
  ## Getting started
32
32
 
33
- 1. **Create a PAT** and store it as a repo secret (e.g. `PAT`). See [Authentication](https://docs.page/vypdev/copilot/authentication).
34
- 2. **Use the action** from the marketplace so versions are stable:
35
- ```yaml
36
- uses: vypdev/copilot@v3
37
- ```
38
- 3. **Install the CLI** when you want to run setup or single actions locally:
39
- ```bash
40
- npm install --global @vypdev/copilot
41
- copilot --version
42
- ```
43
- 4. **Add workflows** — Copy the files from `setup/workflows/` into your `.github/workflows/`, or run **`copilot setup`** from your repo root (with `PERSONAL_ACCESS_TOKEN` in `.env`). See [How to use](https://docs.page/vypdev/copilot/how-to-use).
33
+ The recommended onboarding path is to install the published package globally with
34
+ `pnpm` and initialize the target repository with `copilot setup`:
35
+
36
+ ```bash
37
+ pnpm add --global @vypdev/copilot
38
+ copilot --version
39
+ cd /path/to/your/repository
40
+ copilot setup
41
+ ```
42
+
43
+ `@vypdev/copilot` contains both the `copilot` CLI and the compiled GitHub Action.
44
+ The global installation makes the CLI and the setup templates available; it does
45
+ not install an Action into GitHub. `copilot setup` is the canonical initialization
46
+ flow and will, according to the selected features:
47
+
48
+ - copy the required workflows, issue templates, and pull request template into the repository;
49
+ - create the labels and issue types used by the workflows;
50
+ - configure non-sensitive Repository Variables; and
51
+ - validate or provision the workflow PAT and provider credentials at the selected scope.
52
+
53
+ The setup PAT entered by the operator is separate from the workflow `PAT` Secret.
54
+ Use `copilot setup --dry-run` to inspect the plan before making local or remote
55
+ changes. See the complete [How to use](https://docs.page/vypdev/copilot/how-to-use)
56
+ guide and [Authentication](https://docs.page/vypdev/copilot/authentication).
57
+
58
+ ### Manual workflow integration (advanced)
59
+
60
+ You can integrate the Action manually when the CLI setup flow is not suitable:
61
+ copy selected files from `setup/workflows/` into `.github/workflows/` and add
62
+ steps such as:
63
+
64
+ ```yaml
65
+ - uses: vypdev/copilot@v3
66
+ with:
67
+ token: ${{ secrets.PAT }}
68
+ ```
69
+
70
+ This is a lower-level integration path, not an alternative name for
71
+ `copilot setup`: it does not automatically create labels, issue types, Variables,
72
+ Secrets, templates, or the complete set of workflows. Those resources must be
73
+ configured and kept consistent manually. See [Workflow setup](https://docs.page/vypdev/copilot/issues/workflow-setup)
74
+ for action-level examples.
44
75
 
45
76
  ---
46
77
 
47
78
  ## What it does
48
79
 
49
- - **Issues** — Branch creation from labels (feature, bugfix, hotfix, release, docs, chore), project linking, assignees, lifecycle/size/progress labels; optional Bugbot (AI) on the issue; from a comment you can plan, recheck, fix, or dismiss findings.
50
- - **Pull requests** — Link PRs to issues, update project columns, assign reviewers; optional AI-generated PR description and automatic Bugbot review with stable finding threads; from a PR review comment you can request a read-only recheck or an authorized autofix.
51
- - **Push (commits)** — Notify the issue, update size/progress; optional Bugbot (detection) and prefix checks.
80
+ - **Issues** — Branch creation from labels (feature, bugfix, hotfix, release, docs, chore), project linking, assignees, lifecycle/size/progress labels; new issues receive a contextual `@vypbot` welcome; from comments you can ask for help, explain/diagnose/analyze code, plan work, fix findings, or request an authorized implementation.
81
+ - **Pull requests** — Link PRs to issues, update project columns, assign reviewers; optional AI-generated PR description and automatic Bugbot review with stable finding threads; use `/copilot analyze` or `@vypbot analyze ...` for read-only review, or request an authorized change.
82
+ - **Push (commits)** — Notify the issue, update size/progress, and optionally run Bugbot; a separate agent-free observer watches every branch and recommends synchronizing children when their parent moves.
52
83
  - **Projects** — Link issues and PRs to boards and move them to the right columns.
53
84
  - **Single actions** — On-demand: check progress, think, create release/tag, mark deployed, etc.
54
- - **Evidence and safety** — Every run writes a bounded Job Summary; PR reviews expose a `Copilot / Review` Check Run, active findings fail that check, and all agent/comment content remains bounded and treated as untrusted data.
55
- - **Concurrency** — Uses a repository-wide application queue across the seven Copilot/Task mutation workflows. Polling is adaptive and rate-limit-aware, with a 90-minute queue deadline and no cancellation or overwrite of intermediate runs. See [Features → Workflow concurrency](https://docs.page/vypdev/copilot/features#workflow-concurrency-and-sequential-execution).
85
+ - **Branch synchronization** — Authorized issue/PR commands merge parent into working branch, call the fixer only for eligible conflicts, run verification, reject remote races, push, and report exactly what happened.
86
+ - **Evidence and safety** — Every run writes a bounded Job Summary; PR reviews expose a `Copilot / Review` Check Run, active findings fail that check, agent sandboxes run without approval or network access, and all agent/comment content remains bounded, secret-redacted, and treated as untrusted data.
87
+ - **Bugbot quality** — Hierarchical rules, semantic finding identity, safe GitHub suggestions, analysis-only dry runs, a multilingual regression corpus, real-agent benchmark runner, content-free telemetry/analytics, and the provider-neutral `@vypdev/copilot/bugbot` API.
88
+ - **Concurrency** — Each workflow waits only for older active runs of that same workflow. Polling is adaptive and rate-limit-aware, with a 90-minute queue deadline and no cancellation or overwrite of intermediate runs. Event templates can also skip bot-authored jobs before runner allocation through the optional, generic `COPILOT_BOT_LOGIN` Repository Variable. See [Features → Workflow concurrency](https://docs.page/vypdev/copilot/features#workflow-concurrency-and-sequential-execution).
56
89
 
57
90
  AI features use the configured agent runtime and qualified model; see the [Agents](https://docs.page/vypdev/copilot/agents) and [Security & Operations](https://docs.page/vypdev/copilot/security-operations) documentation. You can run progress and Bugbot locally through the [Single actions → Workflow & CLI](https://docs.page/vypdev/copilot/single-actions/workflow-and-cli) path.
58
91
 
package/action.yml CHANGED
@@ -20,6 +20,18 @@ inputs:
20
20
  single-action-changelog:
21
21
  description: "Changelog target for executing single action."
22
22
  default: ""
23
+ single-action-message:
24
+ description: "Markdown message for the publish_issue_comment single action."
25
+ default: ""
26
+ single-action-comment-id:
27
+ description: "Optional issue comment ID to replace or append to."
28
+ default: ""
29
+ single-action-comment-mode:
30
+ description: "Comment publication mode: create, replace, or append. Defaults to create without an ID and replace with an ID."
31
+ default: ""
32
+ inactivity-threshold-hours:
33
+ description: "Hours without issue activity before the scheduled inactivity action closes a waiting issue."
34
+ default: "168"
23
35
  emoji-labeled-title:
24
36
  description: "Enable titles with emojis based on issue labels."
25
37
  default: "true"
@@ -104,30 +116,36 @@ inputs:
104
116
  size-xs-label:
105
117
  description: "Label to indicate a task of size XS."
106
118
  default: "size: XS"
107
- copilot-state-analyzing-label:
108
- description: "Label for the Copilot lifecycle state: analyzing."
109
- default: "copilot:state:analyzing"
110
- copilot-state-planned-label:
119
+ state-ai-processing-label:
120
+ description: "Temporary label while a Copilot agent is analyzing or working."
121
+ default: "state:ai-processing"
122
+ state-planned-label:
111
123
  description: "Label for the Copilot lifecycle state: planned."
112
- default: "copilot:state:planned"
113
- copilot-state-in-progress-label:
124
+ default: "state:planned"
125
+ state-in-progress-label:
114
126
  description: "Label for the Copilot lifecycle state: implementation in progress."
115
- default: "copilot:state:in-progress"
116
- copilot-state-reviewing-label:
127
+ default: "state:in-progress"
128
+ state-reviewing-label:
117
129
  description: "Label for the Copilot lifecycle state: reviewing."
118
- default: "copilot:state:reviewing"
119
- copilot-state-changes-requested-label:
130
+ default: "state:reviewing"
131
+ state-changes-requested-label:
120
132
  description: "Label for the Copilot lifecycle state: changes requested."
121
- default: "copilot:state:changes-requested"
122
- copilot-state-verified-label:
133
+ default: "state:changes-requested"
134
+ state-verified-label:
123
135
  description: "Label for the Copilot lifecycle state: verified."
124
- default: "copilot:state:verified"
125
- copilot-state-ready-label:
136
+ default: "state:verified"
137
+ state-ready-label:
126
138
  description: "Label for the Copilot lifecycle state: ready."
127
- default: "copilot:state:ready"
128
- copilot-state-blocked-label:
139
+ default: "state:ready"
140
+ state-blocked-label:
129
141
  description: "Label for the Copilot lifecycle state: blocked."
130
- default: "copilot:state:blocked"
142
+ default: "state:blocked"
143
+ state-awaiting-maintainer-label:
144
+ description: "Label for work waiting on a maintainer response or approval."
145
+ default: "state:awaiting-maintainer"
146
+ state-awaiting-issue-author-label:
147
+ description: "Label for work waiting on more information or changes from the issue author."
148
+ default: "state:awaiting-issue-author"
131
149
  size-xxl-threshold-lines:
132
150
  description: "Threshold for size XXL in lines."
133
151
  default: "1000"
@@ -510,25 +528,12 @@ inputs:
510
528
  tester-command:
511
529
  description: "Optional CLI command override for test tasks."
512
530
  default: ""
513
- release-provider:
514
- description: "Optional provider override for release planning tasks."
515
- default: ""
516
- release-model-provider:
517
- description: "Optional model-provider override for release planning tasks."
518
- default: ""
519
- release-effort:
520
- description: "Optional reasoning effort or model variant override for release tasks."
521
- default: ""
522
- release-model:
523
- description: "Optional model override for release planning tasks."
524
- default: ""
525
- release-command:
526
- description: "Optional CLI command override for release planning tasks."
527
- default: ""
528
-
529
531
  ai-pull-request-description:
530
532
  description: "Enable AI-powered automatic updates for pull request descriptions."
531
533
  default: "true"
534
+ ai-pull-request-description-mode:
535
+ description: "PR description policy: replace (full ownership), append (preserve human text), preserve (only explicit /copilot description), or disabled."
536
+ default: "replace"
532
537
  ai-ignore-files:
533
538
  description: "Comma-separated list of files to ignore for AI operations."
534
539
  default: ""
@@ -536,8 +541,8 @@ inputs:
536
541
  description: "Restrict AI features to only organization/project members."
537
542
  default: "false"
538
543
  ai-include-reasoning:
539
- description: "Include reasoning or chain-of-thought in AI responses when supported by the model."
540
- default: "true"
544
+ description: "Include concise provider-supplied explanation metadata when available; never requests hidden chain-of-thought."
545
+ default: "false"
541
546
  bugbot-severity:
542
547
  description: "Minimum severity for potential-problem detections to be published (info, low, medium, high). Findings below this are not posted as comments."
543
548
  default: "low"
@@ -547,6 +552,33 @@ inputs:
547
552
  bugbot-fix-verify-commands:
548
553
  description: "Comma-separated commands to run after bugbot autofix (e.g. pnpm run build, pnpm test, pnpm run lint). The selected agent runtime runs these in its workspace; the runner can re-run them before commit. If empty, no additional verification commands are requested."
549
554
  default: ""
555
+ bugbot-dry-run:
556
+ description: "Analyze and return findings without publishing comments, resolving threads, updating checks, or performing autofix."
557
+ default: "false"
558
+ bugbot-effort:
559
+ description: "Review effort policy: low, default, high, or smart (selected from diff complexity)."
560
+ default: "default"
561
+ bugbot-review-drafts:
562
+ description: "Review draft pull requests when true."
563
+ default: "false"
564
+ bugbot-trace-rules:
565
+ description: "Include the ordered rule sources used by the review in its summary."
566
+ default: "false"
567
+ bugbot-suggested-changes:
568
+ description: "Allow safe line-local suggestions to be rendered as GitHub suggested changes."
569
+ default: "true"
570
+ bugbot-telemetry:
571
+ description: "Emit redacted structured review telemetry and include it in the action result."
572
+ default: "true"
573
+ bugbot-fail-on-unresolved:
574
+ description: "Fail this action invocation when the latest Bugbot result still contains open or reopened findings. Disabled by default."
575
+ default: "false"
576
+ bugbot-organization-rules:
577
+ description: "Semicolon- or newline-separated organization rules applied before repository and path-scoped rules."
578
+ default: ""
579
+ outputs:
580
+ bugbot-telemetry:
581
+ description: "JSON array of content-free Bugbot telemetry snapshots for this action run."
550
582
  runs:
551
583
  using: "node24"
552
584
  main: "build/github_action/index.js"