@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.
- package/AGENTS.md +30 -5
- package/CHANGELOG.md +48 -0
- package/CLAUDE.md +23 -4
- package/README.md +21 -6
- package/dist/benchmark.js +54 -6
- package/dist/benchmark.js.map +1 -1
- package/dist/capability-commands.d.ts +2 -0
- package/dist/capability-commands.js +82 -0
- package/dist/capability-commands.js.map +1 -0
- package/dist/capture-commands.d.ts +16 -0
- package/dist/capture-commands.js +70 -0
- package/dist/capture-commands.js.map +1 -0
- package/dist/chat-api-service.js +3 -0
- package/dist/chat-api-service.js.map +1 -1
- package/dist/cli-capability-catalog.d.ts +10 -0
- package/dist/cli-capability-catalog.js +110 -0
- package/dist/cli-capability-catalog.js.map +1 -0
- package/dist/cli-capability-data.d.ts +2 -0
- package/dist/cli-capability-data.js +203 -0
- package/dist/cli-capability-data.js.map +1 -0
- package/dist/cli-capability-renderer.d.ts +2 -0
- package/dist/cli-capability-renderer.js +43 -0
- package/dist/cli-capability-renderer.js.map +1 -0
- package/dist/cli-capability-types.d.ts +30 -0
- package/dist/cli-capability-types.js +2 -0
- package/dist/cli-capability-types.js.map +1 -0
- package/dist/cli.js +7 -1
- package/dist/cli.js.map +1 -1
- package/dist/command-manifest.d.ts +3 -0
- package/dist/command-manifest.js +90 -1
- package/dist/command-manifest.js.map +1 -1
- package/dist/command-routes.js +12 -2
- package/dist/command-routes.js.map +1 -1
- package/dist/commands.d.ts +3 -1
- package/dist/commands.js +6 -1
- package/dist/commands.js.map +1 -1
- package/dist/constants.js +2 -0
- package/dist/constants.js.map +1 -1
- package/dist/delivery-dashboard-charts.js +7 -3
- package/dist/delivery-dashboard-charts.js.map +1 -1
- package/dist/delivery-dashboard-types.d.ts +4 -0
- package/dist/delivery-dashboard.js +6 -0
- package/dist/delivery-dashboard.js.map +1 -1
- package/dist/effort-classification.d.ts +1 -0
- package/dist/effort-classification.js +15 -0
- package/dist/effort-classification.js.map +1 -1
- package/dist/mcp-integrations.d.ts +9 -2
- package/dist/mcp-integrations.js +50 -13
- package/dist/mcp-integrations.js.map +1 -1
- package/dist/mcp-oauth-proxy.d.ts +8 -0
- package/dist/mcp-oauth-proxy.js +25 -0
- package/dist/mcp-oauth-proxy.js.map +1 -1
- package/dist/mcp-runtime-config.d.ts +55 -0
- package/dist/mcp-runtime-config.js +235 -0
- package/dist/mcp-runtime-config.js.map +1 -0
- package/dist/mcp-tool-adapter.js +2 -4
- package/dist/mcp-tool-adapter.js.map +1 -1
- package/dist/phase-playbooks.js +9 -0
- package/dist/phase-playbooks.js.map +1 -1
- package/dist/real-evidence-gates.d.ts +23 -0
- package/dist/real-evidence-gates.js +182 -0
- package/dist/real-evidence-gates.js.map +1 -0
- package/dist/release-commands.d.ts +3 -0
- package/dist/release-commands.js +85 -0
- package/dist/release-commands.js.map +1 -1
- package/dist/release-inclusion.d.ts +115 -0
- package/dist/release-inclusion.js +378 -0
- package/dist/release-inclusion.js.map +1 -0
- package/dist/runtime-bootstrap.js +1 -0
- package/dist/runtime-bootstrap.js.map +1 -1
- package/dist/runtime-child-prompt.js +30 -2
- package/dist/runtime-child-prompt.js.map +1 -1
- package/dist/runtime-commands.d.ts +3 -0
- package/dist/runtime-commands.js +96 -0
- package/dist/runtime-commands.js.map +1 -1
- package/dist/runtime-events.d.ts +48 -0
- package/dist/runtime-events.js +255 -0
- package/dist/runtime-events.js.map +1 -0
- package/dist/runtime-execution-renderer.js +11 -3
- package/dist/runtime-execution-renderer.js.map +1 -1
- package/dist/runtime-execution.js +6 -2
- package/dist/runtime-execution.js.map +1 -1
- package/dist/runtime-parent-actions.js +40 -6
- package/dist/runtime-parent-actions.js.map +1 -1
- package/dist/runtime-spawn-bridge.js +15 -5
- package/dist/runtime-spawn-bridge.js.map +1 -1
- package/dist/sprint-metrics.js +7 -1
- package/dist/sprint-metrics.js.map +1 -1
- package/dist/tool-commands.js +34 -12
- package/dist/tool-commands.js.map +1 -1
- package/dist/types/metrics.d.ts +5 -1
- package/dist/types/runtime.d.ts +8 -2
- package/dist/types/workflow-run.d.ts +2 -0
- package/dist/types.d.ts +1 -0
- package/dist/web-api-read-routes.d.ts +1 -0
- package/dist/web-api-read-routes.js +6 -1
- package/dist/web-api-read-routes.js.map +1 -1
- package/dist/web-api.js +284 -2
- package/dist/web-api.js.map +1 -1
- package/dist/web-chat-routes.js +11 -0
- package/dist/web-chat-routes.js.map +1 -1
- package/dist/web-console/assets/index-Cip-y4WE.css +1 -0
- package/dist/web-console/assets/index-CuWjFxss.js +11 -0
- package/dist/web-console/index.html +2 -2
- package/dist/workflow-gates.js +49 -3
- package/dist/workflow-gates.js.map +1 -1
- package/dist/workflow-handoff-contract.js +30 -2
- package/dist/workflow-handoff-contract.js.map +1 -1
- package/dist/workflow-run-commands.js +11 -1
- package/dist/workflow-run-commands.js.map +1 -1
- package/dist/workflow-services.js +5 -3
- package/dist/workflow-services.js.map +1 -1
- package/docs/autonomous-workflow.md +6 -0
- package/docs/ci-self-hosted-runners.md +76 -0
- package/docs/command-contracts.md +21 -0
- package/docs/e2e-test-batteries.md +74 -16
- package/docs/release-inclusion-manifest.md +142 -0
- package/docs/runtime-adapters.md +8 -4
- package/docs/security-env-vars.md +1 -0
- package/package.json +6 -2
- package/site/dist/assets/{index-Bi8l6tCE.js → index-B1Xsl_Kg.js} +1 -1
- package/site/dist/index.html +1 -1
- package/dist/web-console/assets/index-CJup1cIA.css +0 -1
- 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
|
+
```
|
package/docs/runtime-adapters.md
CHANGED
|
@@ -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
|
|
505
|
-
|
|
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
|
|
519
|
-
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.
|
|
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
|
-
"
|
|
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",
|