@jterrats/open-orchestra 1.1.1 → 1.2.0

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 (124) hide show
  1. package/AGENTS.md +30 -5
  2. package/CHANGELOG.md +48 -0
  3. package/CLAUDE.md +23 -4
  4. package/README.md +21 -6
  5. package/dist/benchmark.js +54 -6
  6. package/dist/benchmark.js.map +1 -1
  7. package/dist/capability-commands.d.ts +2 -0
  8. package/dist/capability-commands.js +82 -0
  9. package/dist/capability-commands.js.map +1 -0
  10. package/dist/capture-commands.d.ts +16 -0
  11. package/dist/capture-commands.js +70 -0
  12. package/dist/capture-commands.js.map +1 -0
  13. package/dist/chat-api-service.js +3 -0
  14. package/dist/chat-api-service.js.map +1 -1
  15. package/dist/cli-capability-catalog.d.ts +10 -0
  16. package/dist/cli-capability-catalog.js +110 -0
  17. package/dist/cli-capability-catalog.js.map +1 -0
  18. package/dist/cli-capability-data.d.ts +2 -0
  19. package/dist/cli-capability-data.js +203 -0
  20. package/dist/cli-capability-data.js.map +1 -0
  21. package/dist/cli-capability-renderer.d.ts +2 -0
  22. package/dist/cli-capability-renderer.js +43 -0
  23. package/dist/cli-capability-renderer.js.map +1 -0
  24. package/dist/cli-capability-types.d.ts +30 -0
  25. package/dist/cli-capability-types.js +2 -0
  26. package/dist/cli-capability-types.js.map +1 -0
  27. package/dist/cli.js +7 -1
  28. package/dist/cli.js.map +1 -1
  29. package/dist/command-manifest.d.ts +3 -0
  30. package/dist/command-manifest.js +90 -1
  31. package/dist/command-manifest.js.map +1 -1
  32. package/dist/command-routes.js +12 -2
  33. package/dist/command-routes.js.map +1 -1
  34. package/dist/commands.d.ts +3 -1
  35. package/dist/commands.js +6 -1
  36. package/dist/commands.js.map +1 -1
  37. package/dist/constants.js +2 -0
  38. package/dist/constants.js.map +1 -1
  39. package/dist/delivery-dashboard-charts.js +7 -3
  40. package/dist/delivery-dashboard-charts.js.map +1 -1
  41. package/dist/delivery-dashboard-types.d.ts +4 -0
  42. package/dist/delivery-dashboard.js +6 -0
  43. package/dist/delivery-dashboard.js.map +1 -1
  44. package/dist/effort-classification.d.ts +1 -0
  45. package/dist/effort-classification.js +15 -0
  46. package/dist/effort-classification.js.map +1 -1
  47. package/dist/mcp-integrations.d.ts +9 -2
  48. package/dist/mcp-integrations.js +50 -13
  49. package/dist/mcp-integrations.js.map +1 -1
  50. package/dist/mcp-oauth-proxy.d.ts +8 -0
  51. package/dist/mcp-oauth-proxy.js +25 -0
  52. package/dist/mcp-oauth-proxy.js.map +1 -1
  53. package/dist/mcp-runtime-config.d.ts +55 -0
  54. package/dist/mcp-runtime-config.js +235 -0
  55. package/dist/mcp-runtime-config.js.map +1 -0
  56. package/dist/mcp-tool-adapter.js +2 -4
  57. package/dist/mcp-tool-adapter.js.map +1 -1
  58. package/dist/phase-playbooks.js +9 -0
  59. package/dist/phase-playbooks.js.map +1 -1
  60. package/dist/real-evidence-gates.d.ts +23 -0
  61. package/dist/real-evidence-gates.js +182 -0
  62. package/dist/real-evidence-gates.js.map +1 -0
  63. package/dist/release-commands.d.ts +3 -0
  64. package/dist/release-commands.js +85 -0
  65. package/dist/release-commands.js.map +1 -1
  66. package/dist/release-inclusion.d.ts +115 -0
  67. package/dist/release-inclusion.js +378 -0
  68. package/dist/release-inclusion.js.map +1 -0
  69. package/dist/runtime-bootstrap.js +1 -0
  70. package/dist/runtime-bootstrap.js.map +1 -1
  71. package/dist/runtime-child-prompt.js +30 -2
  72. package/dist/runtime-child-prompt.js.map +1 -1
  73. package/dist/runtime-commands.d.ts +3 -0
  74. package/dist/runtime-commands.js +96 -0
  75. package/dist/runtime-commands.js.map +1 -1
  76. package/dist/runtime-events.d.ts +48 -0
  77. package/dist/runtime-events.js +255 -0
  78. package/dist/runtime-events.js.map +1 -0
  79. package/dist/runtime-execution-renderer.js +11 -3
  80. package/dist/runtime-execution-renderer.js.map +1 -1
  81. package/dist/runtime-execution.js +6 -2
  82. package/dist/runtime-execution.js.map +1 -1
  83. package/dist/runtime-parent-actions.js +40 -6
  84. package/dist/runtime-parent-actions.js.map +1 -1
  85. package/dist/runtime-spawn-bridge.js +15 -5
  86. package/dist/runtime-spawn-bridge.js.map +1 -1
  87. package/dist/sprint-metrics.js +7 -1
  88. package/dist/sprint-metrics.js.map +1 -1
  89. package/dist/tool-commands.js +34 -12
  90. package/dist/tool-commands.js.map +1 -1
  91. package/dist/types/metrics.d.ts +5 -1
  92. package/dist/types/runtime.d.ts +8 -2
  93. package/dist/types/workflow-run.d.ts +2 -0
  94. package/dist/types.d.ts +1 -0
  95. package/dist/web-api-read-routes.d.ts +1 -0
  96. package/dist/web-api-read-routes.js +6 -1
  97. package/dist/web-api-read-routes.js.map +1 -1
  98. package/dist/web-api.js +284 -2
  99. package/dist/web-api.js.map +1 -1
  100. package/dist/web-chat-routes.js +11 -0
  101. package/dist/web-chat-routes.js.map +1 -1
  102. package/dist/web-console/assets/index-Cip-y4WE.css +1 -0
  103. package/dist/web-console/assets/index-CuWjFxss.js +11 -0
  104. package/dist/web-console/index.html +2 -2
  105. package/dist/workflow-gates.js +49 -3
  106. package/dist/workflow-gates.js.map +1 -1
  107. package/dist/workflow-handoff-contract.js +30 -2
  108. package/dist/workflow-handoff-contract.js.map +1 -1
  109. package/dist/workflow-run-commands.js +11 -1
  110. package/dist/workflow-run-commands.js.map +1 -1
  111. package/dist/workflow-services.js +5 -3
  112. package/dist/workflow-services.js.map +1 -1
  113. package/docs/autonomous-workflow.md +6 -0
  114. package/docs/ci-self-hosted-runners.md +76 -0
  115. package/docs/command-contracts.md +21 -0
  116. package/docs/e2e-test-batteries.md +74 -16
  117. package/docs/release-inclusion-manifest.md +142 -0
  118. package/docs/runtime-adapters.md +8 -4
  119. package/docs/security-env-vars.md +1 -0
  120. package/package.json +6 -2
  121. package/site/dist/assets/{index-Bi8l6tCE.js → index-B1Xsl_Kg.js} +1 -1
  122. package/site/dist/index.html +1 -1
  123. package/dist/web-console/assets/index-CJup1cIA.css +0 -1
  124. package/dist/web-console/assets/index-CVDOfipu.js +0 -11
@@ -0,0 +1,142 @@
1
+ # Release Inclusion Manifest
2
+
3
+ Open Orchestra stays trunk-based, but release tags use an explicit release
4
+ inclusion manifest to decide which completed work belongs to a version bump.
5
+
6
+ ## Location
7
+
8
+ The canonical manifest path is:
9
+
10
+ ```text
11
+ .agent-workflow/releases/release-inclusion.json
12
+ ```
13
+
14
+ The manifest is workflow-local state. It is intended to be reviewed with the
15
+ release evidence for a candidate version, not bundled into the published npm
16
+ package as product behavior.
17
+
18
+ ## Schema
19
+
20
+ `schemaVersion` is currently `1`. Each item must declare:
21
+
22
+ - `state`: one of `included`, `excluded`, `deferred`, `blocked`, or
23
+ `already_released`.
24
+ - `taskId`: the Orchestra or GitHub-backed task id.
25
+ - `issueUrl`: the HTTPS issue URL for traceability.
26
+ - `commitReference`: a commit SHA or `start..end` SHA range.
27
+ - `versionTarget`: the semver version the item is evaluated against.
28
+ - `releaseNote`: a category and release-note text.
29
+ - `evidence`: one or more command, file, report, screenshot, trace, or video
30
+ references.
31
+ - `review`: status and reviewer roles or names.
32
+ - `risk`: risk status, rationale, and accepted-by marker when accepted.
33
+ - `rollback`: rollback note.
34
+ - `owner`: owner role and optional owner name.
35
+
36
+ ## Manual Editing
37
+
38
+ Keep manual edits deterministic:
39
+
40
+ - Sort items by `versionTarget`, then state, then `taskId`.
41
+ - Keep all text concise and reviewable in diffs.
42
+ - Prefer stable artifact paths or event ids for evidence references.
43
+ - Do not paste secrets, raw provider prompts, or full sensitive transcripts.
44
+ - Update `schemaVersion` only through a migration story.
45
+
46
+ ## CLI Workflow
47
+
48
+ Validate and inspect candidate scope for a version:
49
+
50
+ ```sh
51
+ orchestra release inclusion --version 1.1.3
52
+ orchestra release inclusion --version 1.1.3 --json
53
+ ```
54
+
55
+ Generate release notes from `included` items only:
56
+
57
+ ```sh
58
+ orchestra release notes --version 1.1.3
59
+ ```
60
+
61
+ Check tag readiness without creating a tag:
62
+
63
+ ```sh
64
+ orchestra release readiness --version 1.1.3
65
+ ```
66
+
67
+ The readiness gate only evaluates `included` items for the requested version.
68
+ Items marked `excluded`, `deferred`, `blocked`, or `already_released` remain
69
+ visible in the candidate report but are non-release scope for notes and tag
70
+ preparation.
71
+
72
+ ## GitHub and CI Sync
73
+
74
+ The manifest is the source of truth. GitHub labels, issue comments, project
75
+ fields, and CI artifacts are mirrors that help reviewers find state without
76
+ making GitHub required for local release work.
77
+
78
+ Recommended GitHub metadata mapping:
79
+
80
+ | Manifest state | Optional GitHub label | Release behavior |
81
+ | --- | --- | --- |
82
+ | `included` | `release:included` | Eligible for release notes and tag readiness. |
83
+ | `excluded` | `release:excluded` | Reported separately and omitted from notes. |
84
+ | `deferred` | `release:deferred` | Omitted until a later manifest update. |
85
+ | `blocked` | `release:blocked` | Omitted and should keep release review blocked. |
86
+ | `already_released` | `release:already-released` | Omitted from the next bump/tag scope. |
87
+
88
+ CI runs release inclusion validation in non-publishing mode. When a manifest is
89
+ present, CI should build the package, run `orchestra release inclusion
90
+ --version <package.json version> --json`, and upload the JSON report as a
91
+ review artifact. This check must not create tags or publish packages.
92
+
93
+ Manual fallback:
94
+
95
+ - If GitHub metadata is unavailable, reviewers use the manifest and CLI report.
96
+ - If CI cannot access secrets, run the same CLI commands locally and attach the
97
+ JSON output as release evidence.
98
+ - If GitHub labels drift from the manifest, update labels/comments to match the
99
+ manifest rather than editing the manifest to match labels.
100
+
101
+ ## Example
102
+
103
+ ```json
104
+ {
105
+ "schemaVersion": 1,
106
+ "versionTarget": "1.1.3",
107
+ "items": [
108
+ {
109
+ "state": "included",
110
+ "taskId": "GH-530",
111
+ "issueUrl": "https://github.com/jterrats/open-orchestra/issues/530",
112
+ "commitReference": "82ec5df",
113
+ "versionTarget": "1.1.3",
114
+ "releaseNote": {
115
+ "category": "internal",
116
+ "text": "Define release inclusion manifest schema."
117
+ },
118
+ "evidence": [
119
+ {
120
+ "type": "command",
121
+ "summary": "Release inclusion schema tests passed.",
122
+ "reference": "node --test test/release-inclusion.test.js"
123
+ }
124
+ ],
125
+ "review": {
126
+ "status": "approved",
127
+ "reviewers": ["qa", "release_manager"]
128
+ },
129
+ "risk": {
130
+ "status": "not_required",
131
+ "rationale": "Schema-only change with no release publishing behavior."
132
+ },
133
+ "rollback": {
134
+ "note": "Revert schema and docs commit before candidate generation."
135
+ },
136
+ "owner": {
137
+ "role": "release_manager"
138
+ }
139
+ }
140
+ ]
141
+ }
142
+ ```
@@ -501,8 +501,11 @@ agent path and records that choice in phase provenance.
501
501
 
502
502
  When no task or role executor is configured and the default executor is
503
503
  `generic-runtime`, `auto` and strict `subagents` mode infer the active runtime
504
- from `.agent-workflow/active-runtime.json`, then from `OPEN_ORCHESTRA_ACTIVE_RUNTIME`
505
- as a final fallback for non-hook environments (CI, scripts).
504
+ from `OPEN_ORCHESTRA_ACTIVE_RUNTIME`, then from
505
+ `.agent-workflow/active-runtime.json`. The environment value accepts either the
506
+ runtime target (`claude`, `codex`, `cursor`) or the executor id
507
+ (`claude-cli`, `codex-cli`, `cursor-cli`) and wins over a stale or mismatched
508
+ persisted record so a parent runtime can correct cross-project/session drift.
506
509
 
507
510
  `.agent-workflow/active-runtime.json` is the truthful signal of which AI runtime
508
511
  is currently driving the conversation. It is written by the active runtime's
@@ -515,8 +518,9 @@ pattern that must run at session start. Each hook overwrites the file with its
515
518
  own runtime id, so "last writer wins" matches "current parent runtime".
516
519
 
517
520
  The persisted record has a 24h TTL. Records older than that are ignored and
518
- inference falls through to the next signal. Codex maps to `codex-cli`, Claude
519
- maps to `claude-cli`, Cursor maps to `cursor-cli`, Windsurf maps to
521
+ inference falls through to the default when no environment override is present.
522
+ Codex maps to `codex-cli`, Claude maps to `claude-cli`, Cursor maps to
523
+ `cursor-cli`, Windsurf maps to
520
524
  `windsurf-agent`, and VS Code maps to `vscode-agent`.
521
525
 
522
526
  Explicit selections always take precedence in this order: `--runtime` flag,
@@ -18,6 +18,7 @@ or local secret files.
18
18
  - `OPENAI_API_KEY_FILE`: optional OpenAI credential file path.
19
19
  - `OPEN_ORCHESTRA_CLAUDE_NATIVE_CALLBACK`: local Claude native callback marker.
20
20
  - `OPEN_ORCHESTRA_CLAUDE_NATIVE_CHILD_ID`: Claude native child id marker.
21
+ - `OPEN_ORCHESTRA_COMMAND_MANIFEST_OUT`: optional command manifest check output path.
21
22
  - `ORCHESTRA_GITLEAKS_BIN`: optional absolute gitleaks binary override.
22
23
  - `ORCHESTRA_SECRET_SCAN_FORCE_FALLBACK`: forces fallback secret scanning.
23
24
  - `ORCHESTRA_SKIP_UPDATE_CHECK`: disables package update checks.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jterrats/open-orchestra",
3
- "version": "1.1.1",
3
+ "version": "1.2.0",
4
4
  "type": "module",
5
5
  "workspaces": [
6
6
  "extensions/vscode-open-orchestra",
@@ -30,7 +30,11 @@
30
30
  "validate:workflow": "node scripts/validate-workflow.js",
31
31
  "release:matrix": "node scripts/release-test-matrix.js",
32
32
  "performance:bench": "npm run build && node scripts/performance-benchmark.js",
33
- "precommit": "npm run lint && npm run typecheck && npm run secret-scan && npm run security:audit && npm test && npm run validate:workflow",
33
+ "check:commands": "npm run build && node scripts/check-command-manifest.js",
34
+ "precheck": "npm run check:commands",
35
+ "precommit": "npm run precheck",
36
+ "prepush": "npm run precheck",
37
+ "ci:quality": "npm run lint && npm run typecheck && npm run secret-scan && npm run security:audit && npm test && npm run validate:workflow",
34
38
  "package:build": "npm run build && npm run site:build",
35
39
  "package:validate": "node scripts/validate-package-contents.js",
36
40
  "prepack": "npm run package:build && npm run package:validate",