@open-agent-toolkit/cli 0.2.28 → 0.2.29

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.
@@ -0,0 +1,4 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "oatVersion": "0.2.29"
4
+ }
@@ -66,6 +66,31 @@ The canonical autonomy contract and exhaustive gate inventory
66
66
  `references/docs/autonomy-contract.md`) map each prompt to its autonomous
67
67
  resolution and provenance.
68
68
 
69
+ ### Dispatch-ladder scope selection
70
+
71
+ An incomplete reusable dispatch ladder is auto-resolvable when an authorized
72
+ adoption-compatible config scope is available. Autonomous planning checks
73
+ config-file existence in this fixed order without prompting or reordering from
74
+ effective value or matrix-cell provenance:
75
+
76
+ 1. user config (`~/.oat/config.json`);
77
+ 2. repo-local config (`.oat/config.local.json`);
78
+ 3. shared config (`.oat/config.json`), only when repository policy already
79
+ authorizes that write.
80
+
81
+ Before writing, planning rejects a candidate that would preserve a
82
+ provider-level scalar in that scope or remain shadowed by one at higher
83
+ precedence. It always tries the next authorized compatible candidate and stops
84
+ without mutation only when none remains.
85
+
86
+ The planner runs exactly one matching `oat config adopt dispatch-matrix`
87
+ command, records file-existence and compatibility evidence plus the selected
88
+ scope, and re-runs dispatch preflight. Existing explicit cells remain unchanged;
89
+ their provenance does not select the persistence scope. No authorized
90
+ compatible scope, or a ladder that remains incomplete after adoption, is still
91
+ a repository-policy boundary. `OAT_NON_INTERACTIVE=1` without
92
+ `OAT_AUTONOMOUS=1` does not select a scope and continues to fail closed.
93
+
69
94
  ## Review contract
70
95
 
71
96
  Autonomous execution preserves independent review:
@@ -1,6 +1,6 @@
1
1
  {
2
- "cli": "0.2.28",
3
- "docs-config": "0.2.28",
4
- "docs-theme": "0.2.28",
5
- "docs-transforms": "0.2.28"
2
+ "cli": "0.2.29",
3
+ "docs-config": "0.2.29",
4
+ "docs-theme": "0.2.29",
5
+ "docs-transforms": "0.2.29"
6
6
  }
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-autonomous
3
- version: 1.0.5
3
+ version: 1.0.6
4
4
  description: Use when a user explicitly asks to run an OAT project autonomously end-to-end. Activates session-only autonomy, resumes the correct lifecycle phase, and drives the existing OAT skills through final PR or a reported boundary.
5
5
  argument-hint: '<goal | project-slug | ticket-ref>'
6
6
  disable-model-invocation: true
@@ -72,6 +72,9 @@ waits.
72
72
  - Selecting quick or spec-driven mode from the review-density rule.
73
73
  - Invoking existing OAT lifecycle and dispatch skills in their required order.
74
74
  - Auto-resolving only the gates authorized by the autonomy contract.
75
+ - Selecting the first existing compatible dispatch-ladder config scope through
76
+ the canonical user → local → authorized-shared order and adopting the bundled
77
+ matrix once.
75
78
  - Committing and pushing completed phase boundaries, subject to repository
76
79
  policy, and reporting explicit boundary stops.
77
80
 
@@ -297,6 +300,19 @@ Invoke each lifecycle skill by name and let it own its complete workflow,
297
300
  artifacts, gates, commits, and state transitions. Re-read project status after
298
301
  each return and route to the next earliest incomplete owner.
299
302
 
303
+ When planning finds an incomplete dispatch ladder, apply the gate inventory's
304
+ autonomous ownership resolution instead of treating ordinary non-interactive
305
+ behavior as authoritative. Check config-file existence in this fixed order:
306
+ user config, repo-local config, authorized shared config. Do not prompt or
307
+ reorder candidates from effective value or matrix-cell provenance. Before
308
+ writing, test each existing candidate in order, skip any that preserves a
309
+ provider scalar or is shadowed by one at higher precedence, and block without
310
+ mutation only when no authorized adoption-compatible scope remains. Existing
311
+ explicit matrix cells are preserved by adoption; their provenance does not
312
+ choose the persistence scope. Run exactly one matching
313
+ `oat config adopt dispatch-matrix` command and re-run the reviewer preflight.
314
+ Block when the ladder remains incomplete after adoption.
315
+
300
316
  At every required artifact or code review:
301
317
 
302
318
  1. Resolve the route before launch through
@@ -110,7 +110,7 @@ remains.
110
110
  | QS-05 | `oat-project-quick-start` | Requirements gate | Confirm, add a minor requirement, or redirect scope | Use the existing non-interactive auto-confirm path; contradictory or materially incomplete requirements stop | `auto-resolve` / `boundary:product-judgment` | Requirements-gate note in discovery/plan handoff |
111
111
  | QS-06 | `oat-project-quick-start` | Lightweight-design mode | Choose collaborative or draft | Use the existing non-interactive draft-and-review path | `auto-resolve` | `design.md` non-interactive banner |
112
112
  | QS-07 | `oat-project-quick-start` | Collaborative section approval | Approve or revise each section | Unreachable under the autonomous draft path; if explicitly preselected collaborative mode is encountered, switch to draft before authoring | `auto-resolve` | Design mode and review record |
113
- | QS-08 | `oat-project-quick-start` | Dispatch-ladder ownership | Choose shared, local, user, or no adoption | Do not choose a persistence scope; an incomplete ladder remains a readiness boundary | `boundary:repository-policy-approval` | Resolver diagnostic |
113
+ | QS-08 | `oat-project-quick-start` | Dispatch-ladder scope | Choose shared, local, user, or no adoption | Check existing user, local, then authorized shared config in that fixed order without prompting or provenance-based reordering; skip scalar-blocked candidates, stop before writing only if none is compatible, then adopt once and re-run preflight | `auto-resolve` / `boundary:repository-policy-approval` | File existence, compatibility evidence, selected scope, and recheck |
114
114
  | QS-09 | `oat-project-quick-start` | Project dispatch policy | Choose a named ceiling, uncapped, inherit, or unresolved | Preserve an explicit/configured value; unresolved non-interactive state blocks | `boundary:repository-policy-approval` | `state.md` policy or resolver diagnostic |
115
115
  | QS-10 | `oat-project-quick-start` | Optional phase-gate setup | Choose all, selected, or disabled | Use the shared non-interactive contract: leave absent and disabled unless an explicit value already exists | `auto-resolve` | Phase-gate setup status |
116
116
  | QS-11 | `oat-project-quick-start` | Plan artifact-review findings | Accept offered Medium/Minor fixes | Apply in-bundle, unambiguous fixes and re-review; preserve residuals and stop on unresolved Critical or material ambiguity | `auto-resolve` / `boundary:unresolved-critical-findings` | Plan review row and residual-finding note |
@@ -135,7 +135,7 @@ remains.
135
135
  | PLAN-02 | `oat-project-plan` | Missing active project | Ask for project name | Use only an explicitly supplied or valid active project; otherwise stop | `boundary:product-judgment` | Resolved project path |
136
136
  | PLAN-03 | `oat-project-plan` | Incomplete design | Ask user to finish design | Stop and route to design | `boundary:product-judgment` | Design-readiness diagnostic |
137
137
  | PLAN-04 | `oat-project-plan` | Existing draft plan | Resume, view, or overwrite | Resume in place; never overwrite autonomously | `auto-resolve` | Plan continuation note |
138
- | PLAN-05 | `oat-project-plan` | Dispatch-ladder ownership | Choose persistence scope | Do not choose a persistence scope; incomplete ladder blocks readiness | `boundary:repository-policy-approval` | Resolver diagnostic |
138
+ | PLAN-05 | `oat-project-plan` | Dispatch-ladder scope | Choose persistence scope | Check existing user, local, then authorized shared config in that fixed order without prompting or provenance-based reordering; skip scalar-blocked candidates, stop before writing only if none is compatible, then adopt once and re-run preflight | `auto-resolve` / `boundary:repository-policy-approval` | File existence, compatibility evidence, selected scope, and recheck |
139
139
  | PLAN-06 | `oat-project-plan` | Project dispatch policy | Choose a runnable policy | Preserve explicit/configured policy; unresolved non-interactive state blocks | `boundary:repository-policy-approval` | `state.md` policy or resolver diagnostic |
140
140
  | PLAN-07 | `oat-project-plan` | Plan breakdown confirmation | Confirm tasks or request changes | Complete the independent plan artifact-review loop, apply unambiguous fixes, and confirm only a clean executable plan | `auto-resolve` / `boundary:unresolved-critical-findings` | Plan review row |
141
141
  | PLAN-08 | `oat-project-plan` | Optional phase-gate setup | Choose all, selected, or disabled | Use the shared non-interactive contract: preserve explicit state or leave disabled | `auto-resolve` | Phase-gate setup status |
@@ -147,7 +147,7 @@ remains.
147
147
  | IMPORT-02 | `oat-project-import-plan` | Missing project | Ask for project identity | Use explicit invocation context; otherwise stop rather than guess | `boundary:product-judgment` | Resolved project path |
148
148
  | IMPORT-03 | `oat-project-import-plan` | Source plan selection or extension exception | Choose a candidate/path or confirm nonstandard Markdown | Use an explicit unique source; ambiguity or nonstandard content stops | `auto-resolve` / `boundary:product-judgment` | Import reference metadata |
149
149
  | IMPORT-04 | `oat-project-import-plan` | Existing source snapshot | Confirm overwrite | Never overwrite; create the documented timestamped copy | `auto-resolve` | Imported reference path |
150
- | IMPORT-05 | `oat-project-import-plan` | Dispatch-ladder ownership | Choose persistence scope | Do not choose a persistence scope; incomplete ladder blocks readiness | `boundary:repository-policy-approval` | Resolver diagnostic |
150
+ | IMPORT-05 | `oat-project-import-plan` | Dispatch-ladder scope | Choose persistence scope | Check existing user, local, then authorized shared config in that fixed order without prompting or provenance-based reordering; skip scalar-blocked candidates, stop before writing only if none is compatible, then adopt once and re-run preflight | `auto-resolve` / `boundary:repository-policy-approval` | File existence, compatibility evidence, selected scope, and recheck |
151
151
  | IMPORT-06 | `oat-project-import-plan` | Project dispatch policy | Choose a runnable policy | Preserve explicit/configured policy; unresolved non-interactive state blocks | `boundary:repository-policy-approval` | `state.md` policy or resolver diagnostic |
152
152
  | IMPORT-07 | `oat-project-import-plan` | Optional phase-gate setup | Choose all, selected, or disabled | Preserve explicit imported state; otherwise use the shared non-interactive disabled behavior | `auto-resolve` | Phase-gate setup status |
153
153
  | IMPORT-08 | `oat-project-import-plan` | Import-aware artifact-review findings | Accept offered Medium/Minor fixes | Apply only unambiguous canonicalization fixes; never rewrite source intent; unresolved Critical or ambiguity stops | `auto-resolve` / `boundary:unresolved-critical-findings` | Plan review row and import disposition |
@@ -110,7 +110,7 @@ remains.
110
110
  | QS-05 | `oat-project-quick-start` | Requirements gate | Confirm, add a minor requirement, or redirect scope | Use the existing non-interactive auto-confirm path; contradictory or materially incomplete requirements stop | `auto-resolve` / `boundary:product-judgment` | Requirements-gate note in discovery/plan handoff |
111
111
  | QS-06 | `oat-project-quick-start` | Lightweight-design mode | Choose collaborative or draft | Use the existing non-interactive draft-and-review path | `auto-resolve` | `design.md` non-interactive banner |
112
112
  | QS-07 | `oat-project-quick-start` | Collaborative section approval | Approve or revise each section | Unreachable under the autonomous draft path; if explicitly preselected collaborative mode is encountered, switch to draft before authoring | `auto-resolve` | Design mode and review record |
113
- | QS-08 | `oat-project-quick-start` | Dispatch-ladder ownership | Choose shared, local, user, or no adoption | Do not choose a persistence scope; an incomplete ladder remains a readiness boundary | `boundary:repository-policy-approval` | Resolver diagnostic |
113
+ | QS-08 | `oat-project-quick-start` | Dispatch-ladder scope | Choose shared, local, user, or no adoption | Check existing user, local, then authorized shared config in that fixed order without prompting or provenance-based reordering; skip scalar-blocked candidates, stop before writing only if none is compatible, then adopt once and re-run preflight | `auto-resolve` / `boundary:repository-policy-approval` | File existence, compatibility evidence, selected scope, and recheck |
114
114
  | QS-09 | `oat-project-quick-start` | Project dispatch policy | Choose a named ceiling, uncapped, inherit, or unresolved | Preserve an explicit/configured value; unresolved non-interactive state blocks | `boundary:repository-policy-approval` | `state.md` policy or resolver diagnostic |
115
115
  | QS-10 | `oat-project-quick-start` | Optional phase-gate setup | Choose all, selected, or disabled | Use the shared non-interactive contract: leave absent and disabled unless an explicit value already exists | `auto-resolve` | Phase-gate setup status |
116
116
  | QS-11 | `oat-project-quick-start` | Plan artifact-review findings | Accept offered Medium/Minor fixes | Apply in-bundle, unambiguous fixes and re-review; preserve residuals and stop on unresolved Critical or material ambiguity | `auto-resolve` / `boundary:unresolved-critical-findings` | Plan review row and residual-finding note |
@@ -135,7 +135,7 @@ remains.
135
135
  | PLAN-02 | `oat-project-plan` | Missing active project | Ask for project name | Use only an explicitly supplied or valid active project; otherwise stop | `boundary:product-judgment` | Resolved project path |
136
136
  | PLAN-03 | `oat-project-plan` | Incomplete design | Ask user to finish design | Stop and route to design | `boundary:product-judgment` | Design-readiness diagnostic |
137
137
  | PLAN-04 | `oat-project-plan` | Existing draft plan | Resume, view, or overwrite | Resume in place; never overwrite autonomously | `auto-resolve` | Plan continuation note |
138
- | PLAN-05 | `oat-project-plan` | Dispatch-ladder ownership | Choose persistence scope | Do not choose a persistence scope; incomplete ladder blocks readiness | `boundary:repository-policy-approval` | Resolver diagnostic |
138
+ | PLAN-05 | `oat-project-plan` | Dispatch-ladder scope | Choose persistence scope | Check existing user, local, then authorized shared config in that fixed order without prompting or provenance-based reordering; skip scalar-blocked candidates, stop before writing only if none is compatible, then adopt once and re-run preflight | `auto-resolve` / `boundary:repository-policy-approval` | File existence, compatibility evidence, selected scope, and recheck |
139
139
  | PLAN-06 | `oat-project-plan` | Project dispatch policy | Choose a runnable policy | Preserve explicit/configured policy; unresolved non-interactive state blocks | `boundary:repository-policy-approval` | `state.md` policy or resolver diagnostic |
140
140
  | PLAN-07 | `oat-project-plan` | Plan breakdown confirmation | Confirm tasks or request changes | Complete the independent plan artifact-review loop, apply unambiguous fixes, and confirm only a clean executable plan | `auto-resolve` / `boundary:unresolved-critical-findings` | Plan review row |
141
141
  | PLAN-08 | `oat-project-plan` | Optional phase-gate setup | Choose all, selected, or disabled | Use the shared non-interactive contract: preserve explicit state or leave disabled | `auto-resolve` | Phase-gate setup status |
@@ -147,7 +147,7 @@ remains.
147
147
  | IMPORT-02 | `oat-project-import-plan` | Missing project | Ask for project identity | Use explicit invocation context; otherwise stop rather than guess | `boundary:product-judgment` | Resolved project path |
148
148
  | IMPORT-03 | `oat-project-import-plan` | Source plan selection or extension exception | Choose a candidate/path or confirm nonstandard Markdown | Use an explicit unique source; ambiguity or nonstandard content stops | `auto-resolve` / `boundary:product-judgment` | Import reference metadata |
149
149
  | IMPORT-04 | `oat-project-import-plan` | Existing source snapshot | Confirm overwrite | Never overwrite; create the documented timestamped copy | `auto-resolve` | Imported reference path |
150
- | IMPORT-05 | `oat-project-import-plan` | Dispatch-ladder ownership | Choose persistence scope | Do not choose a persistence scope; incomplete ladder blocks readiness | `boundary:repository-policy-approval` | Resolver diagnostic |
150
+ | IMPORT-05 | `oat-project-import-plan` | Dispatch-ladder scope | Choose persistence scope | Check existing user, local, then authorized shared config in that fixed order without prompting or provenance-based reordering; skip scalar-blocked candidates, stop before writing only if none is compatible, then adopt once and re-run preflight | `auto-resolve` / `boundary:repository-policy-approval` | File existence, compatibility evidence, selected scope, and recheck |
151
151
  | IMPORT-06 | `oat-project-import-plan` | Project dispatch policy | Choose a runnable policy | Preserve explicit/configured policy; unresolved non-interactive state blocks | `boundary:repository-policy-approval` | `state.md` policy or resolver diagnostic |
152
152
  | IMPORT-07 | `oat-project-import-plan` | Optional phase-gate setup | Choose all, selected, or disabled | Preserve explicit imported state; otherwise use the shared non-interactive disabled behavior | `auto-resolve` | Phase-gate setup status |
153
153
  | IMPORT-08 | `oat-project-import-plan` | Import-aware artifact-review findings | Accept offered Medium/Minor fixes | Apply only unambiguous canonicalization fixes; never rewrite source intent; unresolved Critical or ambiguity stops | `auto-resolve` / `boundary:unresolved-critical-findings` | Plan review row and import disposition |
@@ -110,7 +110,7 @@ remains.
110
110
  | QS-05 | `oat-project-quick-start` | Requirements gate | Confirm, add a minor requirement, or redirect scope | Use the existing non-interactive auto-confirm path; contradictory or materially incomplete requirements stop | `auto-resolve` / `boundary:product-judgment` | Requirements-gate note in discovery/plan handoff |
111
111
  | QS-06 | `oat-project-quick-start` | Lightweight-design mode | Choose collaborative or draft | Use the existing non-interactive draft-and-review path | `auto-resolve` | `design.md` non-interactive banner |
112
112
  | QS-07 | `oat-project-quick-start` | Collaborative section approval | Approve or revise each section | Unreachable under the autonomous draft path; if explicitly preselected collaborative mode is encountered, switch to draft before authoring | `auto-resolve` | Design mode and review record |
113
- | QS-08 | `oat-project-quick-start` | Dispatch-ladder ownership | Choose shared, local, user, or no adoption | Do not choose a persistence scope; an incomplete ladder remains a readiness boundary | `boundary:repository-policy-approval` | Resolver diagnostic |
113
+ | QS-08 | `oat-project-quick-start` | Dispatch-ladder scope | Choose shared, local, user, or no adoption | Check existing user, local, then authorized shared config in that fixed order without prompting or provenance-based reordering; skip scalar-blocked candidates, stop before writing only if none is compatible, then adopt once and re-run preflight | `auto-resolve` / `boundary:repository-policy-approval` | File existence, compatibility evidence, selected scope, and recheck |
114
114
  | QS-09 | `oat-project-quick-start` | Project dispatch policy | Choose a named ceiling, uncapped, inherit, or unresolved | Preserve an explicit/configured value; unresolved non-interactive state blocks | `boundary:repository-policy-approval` | `state.md` policy or resolver diagnostic |
115
115
  | QS-10 | `oat-project-quick-start` | Optional phase-gate setup | Choose all, selected, or disabled | Use the shared non-interactive contract: leave absent and disabled unless an explicit value already exists | `auto-resolve` | Phase-gate setup status |
116
116
  | QS-11 | `oat-project-quick-start` | Plan artifact-review findings | Accept offered Medium/Minor fixes | Apply in-bundle, unambiguous fixes and re-review; preserve residuals and stop on unresolved Critical or material ambiguity | `auto-resolve` / `boundary:unresolved-critical-findings` | Plan review row and residual-finding note |
@@ -135,7 +135,7 @@ remains.
135
135
  | PLAN-02 | `oat-project-plan` | Missing active project | Ask for project name | Use only an explicitly supplied or valid active project; otherwise stop | `boundary:product-judgment` | Resolved project path |
136
136
  | PLAN-03 | `oat-project-plan` | Incomplete design | Ask user to finish design | Stop and route to design | `boundary:product-judgment` | Design-readiness diagnostic |
137
137
  | PLAN-04 | `oat-project-plan` | Existing draft plan | Resume, view, or overwrite | Resume in place; never overwrite autonomously | `auto-resolve` | Plan continuation note |
138
- | PLAN-05 | `oat-project-plan` | Dispatch-ladder ownership | Choose persistence scope | Do not choose a persistence scope; incomplete ladder blocks readiness | `boundary:repository-policy-approval` | Resolver diagnostic |
138
+ | PLAN-05 | `oat-project-plan` | Dispatch-ladder scope | Choose persistence scope | Check existing user, local, then authorized shared config in that fixed order without prompting or provenance-based reordering; skip scalar-blocked candidates, stop before writing only if none is compatible, then adopt once and re-run preflight | `auto-resolve` / `boundary:repository-policy-approval` | File existence, compatibility evidence, selected scope, and recheck |
139
139
  | PLAN-06 | `oat-project-plan` | Project dispatch policy | Choose a runnable policy | Preserve explicit/configured policy; unresolved non-interactive state blocks | `boundary:repository-policy-approval` | `state.md` policy or resolver diagnostic |
140
140
  | PLAN-07 | `oat-project-plan` | Plan breakdown confirmation | Confirm tasks or request changes | Complete the independent plan artifact-review loop, apply unambiguous fixes, and confirm only a clean executable plan | `auto-resolve` / `boundary:unresolved-critical-findings` | Plan review row |
141
141
  | PLAN-08 | `oat-project-plan` | Optional phase-gate setup | Choose all, selected, or disabled | Use the shared non-interactive contract: preserve explicit state or leave disabled | `auto-resolve` | Phase-gate setup status |
@@ -147,7 +147,7 @@ remains.
147
147
  | IMPORT-02 | `oat-project-import-plan` | Missing project | Ask for project identity | Use explicit invocation context; otherwise stop rather than guess | `boundary:product-judgment` | Resolved project path |
148
148
  | IMPORT-03 | `oat-project-import-plan` | Source plan selection or extension exception | Choose a candidate/path or confirm nonstandard Markdown | Use an explicit unique source; ambiguity or nonstandard content stops | `auto-resolve` / `boundary:product-judgment` | Import reference metadata |
149
149
  | IMPORT-04 | `oat-project-import-plan` | Existing source snapshot | Confirm overwrite | Never overwrite; create the documented timestamped copy | `auto-resolve` | Imported reference path |
150
- | IMPORT-05 | `oat-project-import-plan` | Dispatch-ladder ownership | Choose persistence scope | Do not choose a persistence scope; incomplete ladder blocks readiness | `boundary:repository-policy-approval` | Resolver diagnostic |
150
+ | IMPORT-05 | `oat-project-import-plan` | Dispatch-ladder scope | Choose persistence scope | Check existing user, local, then authorized shared config in that fixed order without prompting or provenance-based reordering; skip scalar-blocked candidates, stop before writing only if none is compatible, then adopt once and re-run preflight | `auto-resolve` / `boundary:repository-policy-approval` | File existence, compatibility evidence, selected scope, and recheck |
151
151
  | IMPORT-06 | `oat-project-import-plan` | Project dispatch policy | Choose a runnable policy | Preserve explicit/configured policy; unresolved non-interactive state blocks | `boundary:repository-policy-approval` | `state.md` policy or resolver diagnostic |
152
152
  | IMPORT-07 | `oat-project-import-plan` | Optional phase-gate setup | Choose all, selected, or disabled | Preserve explicit imported state; otherwise use the shared non-interactive disabled behavior | `auto-resolve` | Phase-gate setup status |
153
153
  | IMPORT-08 | `oat-project-import-plan` | Import-aware artifact-review findings | Accept offered Medium/Minor fixes | Apply only unambiguous canonicalization fixes; never rewrite source intent; unresolved Critical or ambiguity stops | `auto-resolve` / `boundary:unresolved-critical-findings` | Plan review row and import disposition |
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-import-plan
3
- version: 1.4.8
3
+ version: 1.4.9
4
4
  description: Use when you have an external markdown plan to execute with OAT. Preserves the source plan and normalizes it into canonical plan.md format.
5
5
  argument-hint: '<path-to-plan.md> [--provider codex|cursor|claude] [--project <name>]'
6
6
  oat_gateable: true
@@ -257,8 +257,12 @@ oat config adopt dispatch-matrix --user
257
257
 
258
258
  Adoption preserves explicit cells. Re-run the resolver and completeness check.
259
259
  An incomplete or missing ladder after adoption blocks readiness; do not
260
- overwrite explicit cells or infer provider defaults. Non-interactive import
261
- also blocks on a missing or incomplete ladder.
260
+ overwrite explicit cells or infer provider defaults. Ordinary non-interactive
261
+ import blocks on a missing or incomplete ladder. When `OAT_AUTONOMOUS=1`,
262
+ follow the shared contract's deterministic user-first existing-scope
263
+ resolution, run exactly one adoption against the selected config scope, and
264
+ block only if no authorized compatible scope exists or the post-adoption ladder
265
+ remains incomplete.
262
266
 
263
267
  The selected scope owns only reusable ladders. A project-specific active policy
264
268
  or ceiling must not be written to user `~/.oat/config.json`. Resolve or ask
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-plan
3
- version: 1.4.3
3
+ version: 1.4.4
4
4
  description: Use when design.md is complete and executable implementation tasks are needed. Breaks design into bite-sized TDD tasks in canonical plan.md format.
5
5
  oat_gateable: true
6
6
  disable-model-invocation: true
@@ -371,8 +371,11 @@ oat config adopt dispatch-matrix --user
371
371
  Adoption fills missing cells but preserves explicit values. Re-run the resolver
372
372
  and the completeness check. An incomplete or missing ladder after adoption
373
373
  blocks readiness; do not overwrite explicit cells, infer a fallback, or mark
374
- the plan ready. Non-interactive setup also blocks on a missing or incomplete
375
- ladder.
374
+ the plan ready. Ordinary non-interactive setup blocks on a missing or
375
+ incomplete ladder. When `OAT_AUTONOMOUS=1`, follow the shared contract's
376
+ deterministic user-first existing-scope resolution, run exactly one adoption
377
+ against the selected config scope, and block only if no authorized compatible
378
+ scope exists or the post-adoption ladder remains incomplete.
376
379
 
377
380
  The owning scope stores only the reusable ladders. A project-specific active
378
381
  policy or ceiling must not be written to user `~/.oat/config.json`.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-plan-writing
3
- version: 1.2.17
3
+ version: 1.2.18
4
4
  description: Use when authoring or mutating plan.md in any OAT workflow. Defines canonical format invariants — stable task IDs, required sections, review table rules, and resume guardrails.
5
5
  disable-model-invocation: true
6
6
  user-invocable: false
@@ -102,7 +102,8 @@ asking to write anything:
102
102
  | Claude | haiku, sonnet | sonnet | opus | fable |
103
103
  | Cursor (opaque) | `gpt-5.6-luna-low`, `gpt-5.6-luna-medium`, `gpt-5.6-luna-high` | `gpt-5.6-luna-xhigh`, `gpt-5.6-terra-low`, `gpt-5.6-terra-medium`, `gpt-5.6-terra-high`, `gpt-5.6-terra-xhigh` | `gpt-5.6-sol-low`, `gpt-5.6-sol-medium`, `gpt-5.6-sol-high` | `gpt-5.6-sol-xhigh`, `gpt-5.6-sol-max` |
104
104
 
105
- Ask the user to select the owning scope explicitly before any adoption write:
105
+ In an interactive run, ask the user to select the owning scope explicitly
106
+ before any adoption write:
106
107
 
107
108
  1. **Shared repository** - team-owned `.oat/config.json`; run
108
109
  `oat config adopt dispatch-matrix --shared`.
@@ -118,13 +119,39 @@ project's named ceiling is a separate project-state constraint. A
118
119
  project-specific active policy or ceiling must not be written to user
119
120
  `~/.oat/config.json`.
120
121
 
122
+ In an autonomous run (`OAT_AUTONOMOUS=1`), resolve ownership without prompting:
123
+
124
+ 1. Check config-file existence in this fixed order: user config
125
+ `~/.oat/config.json`, repo-local config `.oat/config.local.json`, then shared
126
+ config `.oat/config.json`. Consider shared only when repository-policy
127
+ authority already permits that write. Do not ask which scope to use and do
128
+ not reorder candidates from effective value or matrix-cell provenance.
129
+ 2. Before selecting a scope, inspect only the raw dispatch-ceiling shapes in
130
+ that scope and higher-precedence scopes. The scope is adoption-compatible
131
+ only when the recommendation can fill the preflight's missing provider/tier
132
+ cells without preserving a provider-level scalar in the selected scope or
133
+ being shadowed by one at higher precedence. A lower-precedence scalar is not
134
+ an obstacle when the selected scope writes the provider matrix above it.
135
+ 3. Select the first existing adoption-compatible authorized scope. If none
136
+ exists, name
137
+ the conflicting scalar paths and report the repository-policy boundary
138
+ before any write.
139
+ 4. Run exactly one matching adoption command, record the file-existence and
140
+ compatibility evidence plus the selected scope, then re-run the reviewer
141
+ preflight resolver.
142
+
143
+ This ownership lookup may inspect file existence and raw config only for the
144
+ scalar compatibility check above. It must not hand-merge config values or
145
+ replace the effective resolver boundary. Existing explicit matrix cells remain
146
+ preserved by adoption; their provenance does not choose the persistence scope.
147
+ In ordinary non-interactive mode without `OAT_AUTONOMOUS=1`, an incomplete
148
+ ladder or missing effective cells block readiness rather than choosing a scope.
149
+
121
150
  Adoption preserves explicit cells. After adoption, re-run the reviewer
122
151
  preflight resolver and re-check `ladderCompleteness.complete` and
123
152
  `ladderCompleteness.missingCells`. If preserved legacy or partial cells still
124
153
  leave effective cells incomplete or missing, identify those cells and block;
125
- do not overwrite, infer, or mark the plan implementation-ready. In
126
- non-interactive mode, incomplete or missing effective cells block readiness
127
- without choosing an ownership scope.
154
+ do not overwrite, infer, or mark the plan implementation-ready.
128
155
 
129
156
  ### Reviewer Ceiling Contract
130
157
 
@@ -110,7 +110,7 @@ remains.
110
110
  | QS-05 | `oat-project-quick-start` | Requirements gate | Confirm, add a minor requirement, or redirect scope | Use the existing non-interactive auto-confirm path; contradictory or materially incomplete requirements stop | `auto-resolve` / `boundary:product-judgment` | Requirements-gate note in discovery/plan handoff |
111
111
  | QS-06 | `oat-project-quick-start` | Lightweight-design mode | Choose collaborative or draft | Use the existing non-interactive draft-and-review path | `auto-resolve` | `design.md` non-interactive banner |
112
112
  | QS-07 | `oat-project-quick-start` | Collaborative section approval | Approve or revise each section | Unreachable under the autonomous draft path; if explicitly preselected collaborative mode is encountered, switch to draft before authoring | `auto-resolve` | Design mode and review record |
113
- | QS-08 | `oat-project-quick-start` | Dispatch-ladder ownership | Choose shared, local, user, or no adoption | Do not choose a persistence scope; an incomplete ladder remains a readiness boundary | `boundary:repository-policy-approval` | Resolver diagnostic |
113
+ | QS-08 | `oat-project-quick-start` | Dispatch-ladder scope | Choose shared, local, user, or no adoption | Check existing user, local, then authorized shared config in that fixed order without prompting or provenance-based reordering; skip scalar-blocked candidates, stop before writing only if none is compatible, then adopt once and re-run preflight | `auto-resolve` / `boundary:repository-policy-approval` | File existence, compatibility evidence, selected scope, and recheck |
114
114
  | QS-09 | `oat-project-quick-start` | Project dispatch policy | Choose a named ceiling, uncapped, inherit, or unresolved | Preserve an explicit/configured value; unresolved non-interactive state blocks | `boundary:repository-policy-approval` | `state.md` policy or resolver diagnostic |
115
115
  | QS-10 | `oat-project-quick-start` | Optional phase-gate setup | Choose all, selected, or disabled | Use the shared non-interactive contract: leave absent and disabled unless an explicit value already exists | `auto-resolve` | Phase-gate setup status |
116
116
  | QS-11 | `oat-project-quick-start` | Plan artifact-review findings | Accept offered Medium/Minor fixes | Apply in-bundle, unambiguous fixes and re-review; preserve residuals and stop on unresolved Critical or material ambiguity | `auto-resolve` / `boundary:unresolved-critical-findings` | Plan review row and residual-finding note |
@@ -135,7 +135,7 @@ remains.
135
135
  | PLAN-02 | `oat-project-plan` | Missing active project | Ask for project name | Use only an explicitly supplied or valid active project; otherwise stop | `boundary:product-judgment` | Resolved project path |
136
136
  | PLAN-03 | `oat-project-plan` | Incomplete design | Ask user to finish design | Stop and route to design | `boundary:product-judgment` | Design-readiness diagnostic |
137
137
  | PLAN-04 | `oat-project-plan` | Existing draft plan | Resume, view, or overwrite | Resume in place; never overwrite autonomously | `auto-resolve` | Plan continuation note |
138
- | PLAN-05 | `oat-project-plan` | Dispatch-ladder ownership | Choose persistence scope | Do not choose a persistence scope; incomplete ladder blocks readiness | `boundary:repository-policy-approval` | Resolver diagnostic |
138
+ | PLAN-05 | `oat-project-plan` | Dispatch-ladder scope | Choose persistence scope | Check existing user, local, then authorized shared config in that fixed order without prompting or provenance-based reordering; skip scalar-blocked candidates, stop before writing only if none is compatible, then adopt once and re-run preflight | `auto-resolve` / `boundary:repository-policy-approval` | File existence, compatibility evidence, selected scope, and recheck |
139
139
  | PLAN-06 | `oat-project-plan` | Project dispatch policy | Choose a runnable policy | Preserve explicit/configured policy; unresolved non-interactive state blocks | `boundary:repository-policy-approval` | `state.md` policy or resolver diagnostic |
140
140
  | PLAN-07 | `oat-project-plan` | Plan breakdown confirmation | Confirm tasks or request changes | Complete the independent plan artifact-review loop, apply unambiguous fixes, and confirm only a clean executable plan | `auto-resolve` / `boundary:unresolved-critical-findings` | Plan review row |
141
141
  | PLAN-08 | `oat-project-plan` | Optional phase-gate setup | Choose all, selected, or disabled | Use the shared non-interactive contract: preserve explicit state or leave disabled | `auto-resolve` | Phase-gate setup status |
@@ -147,7 +147,7 @@ remains.
147
147
  | IMPORT-02 | `oat-project-import-plan` | Missing project | Ask for project identity | Use explicit invocation context; otherwise stop rather than guess | `boundary:product-judgment` | Resolved project path |
148
148
  | IMPORT-03 | `oat-project-import-plan` | Source plan selection or extension exception | Choose a candidate/path or confirm nonstandard Markdown | Use an explicit unique source; ambiguity or nonstandard content stops | `auto-resolve` / `boundary:product-judgment` | Import reference metadata |
149
149
  | IMPORT-04 | `oat-project-import-plan` | Existing source snapshot | Confirm overwrite | Never overwrite; create the documented timestamped copy | `auto-resolve` | Imported reference path |
150
- | IMPORT-05 | `oat-project-import-plan` | Dispatch-ladder ownership | Choose persistence scope | Do not choose a persistence scope; incomplete ladder blocks readiness | `boundary:repository-policy-approval` | Resolver diagnostic |
150
+ | IMPORT-05 | `oat-project-import-plan` | Dispatch-ladder scope | Choose persistence scope | Check existing user, local, then authorized shared config in that fixed order without prompting or provenance-based reordering; skip scalar-blocked candidates, stop before writing only if none is compatible, then adopt once and re-run preflight | `auto-resolve` / `boundary:repository-policy-approval` | File existence, compatibility evidence, selected scope, and recheck |
151
151
  | IMPORT-06 | `oat-project-import-plan` | Project dispatch policy | Choose a runnable policy | Preserve explicit/configured policy; unresolved non-interactive state blocks | `boundary:repository-policy-approval` | `state.md` policy or resolver diagnostic |
152
152
  | IMPORT-07 | `oat-project-import-plan` | Optional phase-gate setup | Choose all, selected, or disabled | Preserve explicit imported state; otherwise use the shared non-interactive disabled behavior | `auto-resolve` | Phase-gate setup status |
153
153
  | IMPORT-08 | `oat-project-import-plan` | Import-aware artifact-review findings | Accept offered Medium/Minor fixes | Apply only unambiguous canonicalization fixes; never rewrite source intent; unresolved Critical or ambiguity stops | `auto-resolve` / `boundary:unresolved-critical-findings` | Plan review row and import disposition |
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-quick-start
3
- version: 2.3.4
3
+ version: 2.3.5
4
4
  description: Use when a task is small enough for quick mode or rapid iteration is preferred. Scaffolds a lightweight OAT project from discovery directly to a runnable plan, with optional brainstorming and lightweight design.
5
5
  argument-hint: '<project-name> ["project description"]'
6
6
  oat_gateable: true
@@ -556,8 +556,12 @@ The selected scope owns only the reusable ladders. A project-specific active
556
556
  policy or ceiling must not be written to user `~/.oat/config.json`.
557
557
  Adoption preserves explicit cells, so re-run the resolver and completeness
558
558
  check. An incomplete or missing ladder after adoption blocks readiness; do not
559
- overwrite explicit cells or silently infer a fallback. Non-interactive setup
560
- also blocks on a missing or incomplete ladder.
559
+ overwrite explicit cells or silently infer a fallback. Ordinary non-interactive
560
+ setup blocks on a missing or incomplete ladder. When `OAT_AUTONOMOUS=1`, follow
561
+ the shared contract's deterministic user-first existing-scope resolution, run
562
+ exactly one adoption against the selected config scope, and block only if no
563
+ authorized compatible scope exists or the post-adoption ladder remains
564
+ incomplete.
561
565
 
562
566
  Then resolve the named ceiling in this order:
563
567
 
@@ -110,7 +110,7 @@ remains.
110
110
  | QS-05 | `oat-project-quick-start` | Requirements gate | Confirm, add a minor requirement, or redirect scope | Use the existing non-interactive auto-confirm path; contradictory or materially incomplete requirements stop | `auto-resolve` / `boundary:product-judgment` | Requirements-gate note in discovery/plan handoff |
111
111
  | QS-06 | `oat-project-quick-start` | Lightweight-design mode | Choose collaborative or draft | Use the existing non-interactive draft-and-review path | `auto-resolve` | `design.md` non-interactive banner |
112
112
  | QS-07 | `oat-project-quick-start` | Collaborative section approval | Approve or revise each section | Unreachable under the autonomous draft path; if explicitly preselected collaborative mode is encountered, switch to draft before authoring | `auto-resolve` | Design mode and review record |
113
- | QS-08 | `oat-project-quick-start` | Dispatch-ladder ownership | Choose shared, local, user, or no adoption | Do not choose a persistence scope; an incomplete ladder remains a readiness boundary | `boundary:repository-policy-approval` | Resolver diagnostic |
113
+ | QS-08 | `oat-project-quick-start` | Dispatch-ladder scope | Choose shared, local, user, or no adoption | Check existing user, local, then authorized shared config in that fixed order without prompting or provenance-based reordering; skip scalar-blocked candidates, stop before writing only if none is compatible, then adopt once and re-run preflight | `auto-resolve` / `boundary:repository-policy-approval` | File existence, compatibility evidence, selected scope, and recheck |
114
114
  | QS-09 | `oat-project-quick-start` | Project dispatch policy | Choose a named ceiling, uncapped, inherit, or unresolved | Preserve an explicit/configured value; unresolved non-interactive state blocks | `boundary:repository-policy-approval` | `state.md` policy or resolver diagnostic |
115
115
  | QS-10 | `oat-project-quick-start` | Optional phase-gate setup | Choose all, selected, or disabled | Use the shared non-interactive contract: leave absent and disabled unless an explicit value already exists | `auto-resolve` | Phase-gate setup status |
116
116
  | QS-11 | `oat-project-quick-start` | Plan artifact-review findings | Accept offered Medium/Minor fixes | Apply in-bundle, unambiguous fixes and re-review; preserve residuals and stop on unresolved Critical or material ambiguity | `auto-resolve` / `boundary:unresolved-critical-findings` | Plan review row and residual-finding note |
@@ -135,7 +135,7 @@ remains.
135
135
  | PLAN-02 | `oat-project-plan` | Missing active project | Ask for project name | Use only an explicitly supplied or valid active project; otherwise stop | `boundary:product-judgment` | Resolved project path |
136
136
  | PLAN-03 | `oat-project-plan` | Incomplete design | Ask user to finish design | Stop and route to design | `boundary:product-judgment` | Design-readiness diagnostic |
137
137
  | PLAN-04 | `oat-project-plan` | Existing draft plan | Resume, view, or overwrite | Resume in place; never overwrite autonomously | `auto-resolve` | Plan continuation note |
138
- | PLAN-05 | `oat-project-plan` | Dispatch-ladder ownership | Choose persistence scope | Do not choose a persistence scope; incomplete ladder blocks readiness | `boundary:repository-policy-approval` | Resolver diagnostic |
138
+ | PLAN-05 | `oat-project-plan` | Dispatch-ladder scope | Choose persistence scope | Check existing user, local, then authorized shared config in that fixed order without prompting or provenance-based reordering; skip scalar-blocked candidates, stop before writing only if none is compatible, then adopt once and re-run preflight | `auto-resolve` / `boundary:repository-policy-approval` | File existence, compatibility evidence, selected scope, and recheck |
139
139
  | PLAN-06 | `oat-project-plan` | Project dispatch policy | Choose a runnable policy | Preserve explicit/configured policy; unresolved non-interactive state blocks | `boundary:repository-policy-approval` | `state.md` policy or resolver diagnostic |
140
140
  | PLAN-07 | `oat-project-plan` | Plan breakdown confirmation | Confirm tasks or request changes | Complete the independent plan artifact-review loop, apply unambiguous fixes, and confirm only a clean executable plan | `auto-resolve` / `boundary:unresolved-critical-findings` | Plan review row |
141
141
  | PLAN-08 | `oat-project-plan` | Optional phase-gate setup | Choose all, selected, or disabled | Use the shared non-interactive contract: preserve explicit state or leave disabled | `auto-resolve` | Phase-gate setup status |
@@ -147,7 +147,7 @@ remains.
147
147
  | IMPORT-02 | `oat-project-import-plan` | Missing project | Ask for project identity | Use explicit invocation context; otherwise stop rather than guess | `boundary:product-judgment` | Resolved project path |
148
148
  | IMPORT-03 | `oat-project-import-plan` | Source plan selection or extension exception | Choose a candidate/path or confirm nonstandard Markdown | Use an explicit unique source; ambiguity or nonstandard content stops | `auto-resolve` / `boundary:product-judgment` | Import reference metadata |
149
149
  | IMPORT-04 | `oat-project-import-plan` | Existing source snapshot | Confirm overwrite | Never overwrite; create the documented timestamped copy | `auto-resolve` | Imported reference path |
150
- | IMPORT-05 | `oat-project-import-plan` | Dispatch-ladder ownership | Choose persistence scope | Do not choose a persistence scope; incomplete ladder blocks readiness | `boundary:repository-policy-approval` | Resolver diagnostic |
150
+ | IMPORT-05 | `oat-project-import-plan` | Dispatch-ladder scope | Choose persistence scope | Check existing user, local, then authorized shared config in that fixed order without prompting or provenance-based reordering; skip scalar-blocked candidates, stop before writing only if none is compatible, then adopt once and re-run preflight | `auto-resolve` / `boundary:repository-policy-approval` | File existence, compatibility evidence, selected scope, and recheck |
151
151
  | IMPORT-06 | `oat-project-import-plan` | Project dispatch policy | Choose a runnable policy | Preserve explicit/configured policy; unresolved non-interactive state blocks | `boundary:repository-policy-approval` | `state.md` policy or resolver diagnostic |
152
152
  | IMPORT-07 | `oat-project-import-plan` | Optional phase-gate setup | Choose all, selected, or disabled | Preserve explicit imported state; otherwise use the shared non-interactive disabled behavior | `auto-resolve` | Phase-gate setup status |
153
153
  | IMPORT-08 | `oat-project-import-plan` | Import-aware artifact-review findings | Accept offered Medium/Minor fixes | Apply only unambiguous canonicalization fixes; never rewrite source intent; unresolved Critical or ambiguity stops | `auto-resolve` / `boundary:unresolved-critical-findings` | Plan review row and import disposition |
@@ -1,2 +1,3 @@
1
+ export declare function validateAssetsBundle(assetsRoot: string, expectedVersion?: string): Promise<void>;
1
2
  export declare function resolveAssetsRoot(): Promise<string>;
2
3
  //# sourceMappingURL=assets.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../src/fs/assets.ts"],"names":[],"mappings":"AAMA,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CAsBzD"}
1
+ {"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../src/fs/assets.ts"],"names":[],"mappings":"AA2BA,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,EAClB,eAAe,SAAc,GAC5B,OAAO,CAAC,IAAI,CAAC,CAoCf;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CAwBzD"}
package/dist/fs/assets.js CHANGED
@@ -1,7 +1,41 @@
1
- import { stat } from 'node:fs/promises';
1
+ import { readFile, stat } from 'node:fs/promises';
2
2
  import { dirname, join, resolve } from 'node:path';
3
3
  import { fileURLToPath } from 'node:url';
4
4
  import { CliError } from '../errors/index.js';
5
+ import { OAT_VERSION } from '../shared/oat-version.js';
6
+ const BUNDLE_METADATA_FILENAME = 'bundle-metadata.json';
7
+ function isBundleMetadata(value) {
8
+ if (!value || typeof value !== 'object') {
9
+ return false;
10
+ }
11
+ const metadata = value;
12
+ return (metadata.schemaVersion === 1 &&
13
+ typeof metadata.oatVersion === 'string' &&
14
+ metadata.oatVersion.length > 0);
15
+ }
16
+ export async function validateAssetsBundle(assetsRoot, expectedVersion = OAT_VERSION) {
17
+ const metadataPath = join(assetsRoot, BUNDLE_METADATA_FILENAME);
18
+ let rawMetadata;
19
+ try {
20
+ rawMetadata = await readFile(metadataPath, 'utf8');
21
+ }
22
+ catch {
23
+ throw new CliError(`Bundled asset metadata not found: ${metadataPath}. Reinstall @open-agent-toolkit/cli or rebuild the CLI before updating tools.`, 2);
24
+ }
25
+ let metadata;
26
+ try {
27
+ metadata = JSON.parse(rawMetadata);
28
+ }
29
+ catch {
30
+ throw new CliError(`Bundled asset metadata is invalid: ${metadataPath}. Reinstall @open-agent-toolkit/cli or rebuild the CLI before updating tools.`, 2);
31
+ }
32
+ if (!isBundleMetadata(metadata)) {
33
+ throw new CliError(`Bundled asset metadata is invalid: ${metadataPath}. Reinstall @open-agent-toolkit/cli or rebuild the CLI before updating tools.`, 2);
34
+ }
35
+ if (metadata.oatVersion !== expectedVersion) {
36
+ throw new CliError(`Bundled assets version mismatch: CLI ${expectedVersion}, assets ${metadata.oatVersion}. Reinstall @open-agent-toolkit/cli or rebuild the CLI before updating tools.`, 2);
37
+ }
38
+ }
5
39
  export async function resolveAssetsRoot() {
6
40
  const modulePath = fileURLToPath(import.meta.url);
7
41
  const cliRoot = resolve(dirname(modulePath), '..', '..');
@@ -18,5 +52,6 @@ export async function resolveAssetsRoot() {
18
52
  }
19
53
  throw new CliError(`Assets directory not found: ${assetsRoot}. Run 'pnpm build' to generate bundled assets.`, 2);
20
54
  }
55
+ await validateAssetsBundle(assetsRoot);
21
56
  return assetsRoot;
22
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"public-package-contract.d.ts","sourceRoot":"","sources":["../../src/release/public-package-contract.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,KAAK,GAAG,cAAc,GAAG,iBAAiB,CAAC;IACjD,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,uBAAuB,EAAE,yBAAyB,EAAE,CAAC;IACrD,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,4BAA4B,EAAE,MAAM,EAAE,CAAC;IACvC,2BAA2B,EAAE,MAAM,EAAE,CAAC;CACvC;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AA2KD,wBAAgB,yBAAyB,IAAI,qBAAqB,EAAE,CAenE;AAED,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,QAAQ,EAAE,qBAAqB,GAC9B,MAAM,EAAE,CAIV;AAED,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,SAAS,MAAM,EAAE,EAC9B,QAAQ,EAAE,qBAAqB,GAC9B,MAAM,EAAE,CAIV;AAED,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,SAAS,MAAM,EAAE,EAC9B,QAAQ,EAAE,qBAAqB,GAC9B,MAAM,EAAE,CAMV;AAED,wBAAgB,6BAA6B,CAC3C,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACjD,QAAQ,EAAE,qBAAqB,GAC9B,MAAM,EAAE,CAoBV;AAED,wBAAgB,oCAAoC,CAClD,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACnC,MAAM,EAAE,CAmBV;AAED,wBAAgB,qCAAqC,CACnD,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,kBAAkB,EAAE,SAAS,MAAM,EAAE,EACrC,qBAAqB,EAAE,SAAS,MAAM,EAAE,GACvC,MAAM,EAAE,CA0BV"}
1
+ {"version":3,"file":"public-package-contract.d.ts","sourceRoot":"","sources":["../../src/release/public-package-contract.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,KAAK,GAAG,cAAc,GAAG,iBAAiB,CAAC;IACjD,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,uBAAuB,EAAE,yBAAyB,EAAE,CAAC;IACrD,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,4BAA4B,EAAE,MAAM,EAAE,CAAC;IACvC,2BAA2B,EAAE,MAAM,EAAE,CAAC;CACvC;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AA4KD,wBAAgB,yBAAyB,IAAI,qBAAqB,EAAE,CAenE;AAED,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,QAAQ,EAAE,qBAAqB,GAC9B,MAAM,EAAE,CAIV;AAED,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,SAAS,MAAM,EAAE,EAC9B,QAAQ,EAAE,qBAAqB,GAC9B,MAAM,EAAE,CAIV;AAED,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,SAAS,MAAM,EAAE,EAC9B,QAAQ,EAAE,qBAAqB,GAC9B,MAAM,EAAE,CAMV;AAED,wBAAgB,6BAA6B,CAC3C,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACjD,QAAQ,EAAE,qBAAqB,GAC9B,MAAM,EAAE,CAoBV;AAED,wBAAgB,oCAAoC,CAClD,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACnC,MAAM,EAAE,CAmBV;AAED,wBAAgB,qCAAqC,CACnD,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,kBAAkB,EAAE,SAAS,MAAM,EAAE,EACrC,qBAAqB,EAAE,SAAS,MAAM,EAAE,GACvC,MAAM,EAAE,CA0BV"}
@@ -44,6 +44,7 @@ const PUBLIC_PACKAGE_CONTRACTS = [
44
44
  requiredPaths: [
45
45
  'dist/index.js',
46
46
  'assets',
47
+ 'assets/bundle-metadata.json',
47
48
  'assets/migration/pjm-restructure.md',
48
49
  'assets/templates/decision.md',
49
50
  'assets/templates/repo-agents.md',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open-agent-toolkit/cli",
3
- "version": "0.2.28",
3
+ "version": "0.2.29",
4
4
  "private": false,
5
5
  "description": "Open Agent Toolkit CLI",
6
6
  "homepage": "https://github.com/voxmedia/open-agent-toolkit/tree/main/packages/cli",
@@ -34,7 +34,7 @@
34
34
  "ora": "^9.0.0",
35
35
  "yaml": "2.8.2",
36
36
  "zod": "^3.25.76",
37
- "@open-agent-toolkit/control-plane": "0.2.28"
37
+ "@open-agent-toolkit/control-plane": "0.2.29"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@types/node": "^22.10.0",