workspai 0.70.0 → 0.72.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 (108) hide show
  1. package/README.md +43 -80
  2. package/contracts/artifact-remediation-plan.v1.json +49 -0
  3. package/contracts/workspace-intelligence/goal-lifecycle-result.v1.json +19 -0
  4. package/contracts/workspace-repair-capabilities.v1.json +7 -1
  5. package/dist/analyze-5ENZTHOT.js +1 -0
  6. package/dist/{artifact-remediation-plan-URQL5MBN.js → artifact-remediation-plan-WDK5ISRU.js} +1 -1
  7. package/dist/autopilot-release-PNSWAVZG.js +1 -0
  8. package/dist/{chunk-EP6Q2QBU.js → chunk-2RF75G5T.js} +1 -1
  9. package/dist/{chunk-4R7STECB.js → chunk-5OLNT6YD.js} +63 -63
  10. package/dist/{chunk-GED7JURY.js → chunk-5PFFR5S7.js} +1 -1
  11. package/dist/{chunk-QZODGRAI.js → chunk-5TKRCE6F.js} +1 -1
  12. package/dist/{chunk-IGJA6GBQ.js → chunk-62YBFWHY.js} +1 -1
  13. package/dist/chunk-6WOFOOM7.js +7 -0
  14. package/dist/{chunk-ZLCLGIM6.js → chunk-7LKCWDX6.js} +1 -1
  15. package/dist/chunk-7Q7X4X5I.js +1 -0
  16. package/dist/chunk-BVWDG66W.js +1 -0
  17. package/dist/{chunk-DNZHKBQ3.js → chunk-COBU44T5.js} +1 -1
  18. package/dist/chunk-CQBM6BBP.js +2 -0
  19. package/dist/chunk-CY4QZ3PE.js +3 -0
  20. package/dist/{chunk-LE2I2E6R.js → chunk-D5RUGSBC.js} +2 -2
  21. package/dist/chunk-EDPUQXP6.js +5 -0
  22. package/dist/{chunk-IBJEQHJR.js → chunk-HV6EQMUJ.js} +24 -7
  23. package/dist/{chunk-V52R2W2Q.js → chunk-IX5Z6EK6.js} +1 -1
  24. package/dist/{chunk-N6FJZ62B.js → chunk-JQINCVK5.js} +1 -1
  25. package/dist/{chunk-GL3KLNIG.js → chunk-KVPTZMEV.js} +1 -1
  26. package/dist/{chunk-UT57IFS4.js → chunk-LDNX2R6V.js} +6 -6
  27. package/dist/{chunk-WUXJCSYO.js → chunk-LLEKVSMX.js} +1 -1
  28. package/dist/{chunk-ZPOZ6MDX.js → chunk-N2PAAQKI.js} +1 -1
  29. package/dist/{chunk-S2TOSHQW.js → chunk-ONV6WW7A.js} +1 -1
  30. package/dist/{chunk-TEMFNVO2.js → chunk-QVUVJU56.js} +1 -1
  31. package/dist/{chunk-AGZWDYMF.js → chunk-QYXX6G5O.js} +8 -8
  32. package/dist/{chunk-S42KDOGG.js → chunk-S66NO5BX.js} +1 -1
  33. package/dist/{chunk-KFTJVVJR.js → chunk-SATPH22S.js} +1 -1
  34. package/dist/{chunk-IFHM2SI6.js → chunk-SG3QRCMM.js} +1 -1
  35. package/dist/{chunk-Z7JIUA6I.js → chunk-SS7X2YF5.js} +1 -1
  36. package/dist/{chunk-IET57ZKN.js → chunk-T6KHOIEY.js} +1 -1
  37. package/dist/{chunk-TLMP2MGH.js → chunk-T6LCDLJ7.js} +1 -1
  38. package/dist/{chunk-QNHKUSBH.js → chunk-TDQ2PRHV.js} +1 -1
  39. package/dist/{chunk-3S2U7WRM.js → chunk-TQQEZQLC.js} +1 -1
  40. package/dist/{chunk-LU6CYDLN.js → chunk-UHAPXPGW.js} +1 -1
  41. package/dist/chunk-V4LCPLV6.js +1 -0
  42. package/dist/{chunk-GYN6RPNU.js → chunk-WMC2H7MJ.js} +1 -1
  43. package/dist/{chunk-PTSEDZIV.js → chunk-WPZUKU2B.js} +1 -1
  44. package/dist/chunk-X5ZNFXFI.js +1 -0
  45. package/dist/{create-BBALBC3U.js → create-7CWWGDXQ.js} +1 -1
  46. package/dist/{doctor-WWVY7NB6.js → doctor-WYBSI3GC.js} +1 -1
  47. package/dist/{dotnet-webapi-clean-XL4IBUQV.js → dotnet-webapi-clean-VJX6SGGP.js} +39 -33
  48. package/dist/{goal-lifecycle-CEUTKUNV.js → goal-lifecycle-PSPYQ4TR.js} +1 -1
  49. package/dist/{goal-pack-JQL3YOKT.js → goal-pack-G7SAYDIC.js} +1 -1
  50. package/dist/{gofiber-standard-OHHMCNMJ.js → gofiber-standard-I6ASLOEE.js} +77 -66
  51. package/dist/{gogin-standard-BAZXPOKL.js → gogin-standard-U2LSRLIP.js} +78 -67
  52. package/dist/index.js +121 -121
  53. package/dist/{pipeline-V46WWMP4.js → pipeline-NDV7DBB7.js} +1 -1
  54. package/dist/{project-agent-entry-MRAYG7QD.js → project-agent-entry-HEBGPLMX.js} +1 -1
  55. package/dist/{project-intelligence-lens-4BKPN4PE.js → project-intelligence-lens-QTQEZXUY.js} +1 -1
  56. package/dist/{project-test-coverage-4RRCHY5W.js → project-test-coverage-4BGDDBBL.js} +1 -1
  57. package/dist/{proof-carrying-change-B7ONTBYO.js → proof-carrying-change-SHO2E3DX.js} +1 -1
  58. package/dist/{rust-axum-CCJ6UCBW.js → rust-axum-JMV7UPO7.js} +25 -20
  59. package/dist/{springboot-standard-M5JQEJML.js → springboot-standard-OC2RS3KC.js} +41 -39
  60. package/dist/verified-goal-BSREU6R7.js +1 -0
  61. package/dist/{workspace-FJ6JRYWA.js → workspace-E3MM3AIE.js} +1 -1
  62. package/dist/{workspace-agent-sync-V33UGII3.js → workspace-agent-sync-NBIOSXCG.js} +1 -1
  63. package/dist/{workspace-context-O6UBCBEA.js → workspace-context-ZDXF6S7S.js} +1 -1
  64. package/dist/{workspace-contract-S2JYDA4K.js → workspace-contract-E7GVWM7W.js} +1 -1
  65. package/dist/{workspace-explain-RP6VJ6QM.js → workspace-explain-YB66UFAS.js} +1 -1
  66. package/dist/{workspace-foundation-7QXEJJKZ.js → workspace-foundation-LRLYPR36.js} +1 -1
  67. package/dist/{workspace-graph-stream-YY65R5EC.js → workspace-graph-stream-SJUCBPS4.js} +1 -1
  68. package/dist/workspace-graph-token-efficiency-BTIS6JXL.js +1 -0
  69. package/dist/{workspace-intelligence-LMR42ICR.js → workspace-intelligence-3IAAM3H3.js} +1 -1
  70. package/dist/{workspace-intelligence-benchmark-S5OXVNLC.js → workspace-intelligence-benchmark-UCGDKMDF.js} +1 -1
  71. package/dist/{workspace-intelligence-runner-FXFSTCHC.js → workspace-intelligence-runner-FPPKTSNK.js} +1 -1
  72. package/dist/{workspace-knowledge-graph-3564KQXT.js → workspace-knowledge-graph-WNQMNAVL.js} +1 -1
  73. package/dist/{workspace-knowledge-graph-query-WHCGPBGS.js → workspace-knowledge-graph-query-3GPXGWYN.js} +1 -1
  74. package/dist/workspace-knowledge-graph-snapshot-MTFTCVFF.js +1 -0
  75. package/dist/{workspace-mcp-serve-ZK46EZUD.js → workspace-mcp-serve-KSZ2O66S.js} +1 -1
  76. package/dist/{workspace-model-6UMQAGUK.js → workspace-model-5FA2636K.js} +1 -1
  77. package/dist/{workspace-onboarding-C57OQ7XZ.js → workspace-onboarding-RJMTHN7Z.js} +1 -1
  78. package/dist/{workspace-registry-summary-GLQO4ZUF.js → workspace-registry-summary-WKENOFEA.js} +1 -1
  79. package/dist/workspace-repair-engine-4JTNNDZL.js +3 -0
  80. package/dist/workspace-run-HFOY2UYT.js +1 -0
  81. package/dist/{workspace-verify-LQHXBH2D.js → workspace-verify-37QL2JYE.js} +1 -1
  82. package/dist/{workspace-watch-Z32443UP.js → workspace-watch-P5X6TAFK.js} +1 -1
  83. package/docs/README.md +5 -2
  84. package/docs/README_CONTENT_CONTRACT.md +14 -9
  85. package/docs/ci-workflows.md +1 -1
  86. package/docs/commands-reference.md +53 -34
  87. package/docs/contracts/ARTIFACT_CATALOG.md +4 -1
  88. package/docs/doctor-command.md +13 -0
  89. package/docs/native-kit-baselines.md +82 -0
  90. package/docs/workspace-knowledge-graph.md +17 -2
  91. package/docs/workspace-repair-engine.md +9 -1
  92. package/docs/workspace-run.md +29 -0
  93. package/package.json +1 -1
  94. package/dist/analyze-OGWDSPXQ.js +0 -1
  95. package/dist/autopilot-release-QQDFEPT7.js +0 -1
  96. package/dist/chunk-DWL3PPLA.js +0 -1
  97. package/dist/chunk-EZPLMAW2.js +0 -1
  98. package/dist/chunk-IHKG5C6G.js +0 -1
  99. package/dist/chunk-IRLKWRLP.js +0 -3
  100. package/dist/chunk-TKXRP2B4.js +0 -1
  101. package/dist/chunk-U5ENEDJA.js +0 -7
  102. package/dist/chunk-WCJU3CFG.js +0 -1
  103. package/dist/chunk-XSSNM4F5.js +0 -5
  104. package/dist/verified-goal-YNSBL7L3.js +0 -1
  105. package/dist/workspace-graph-token-efficiency-WNAFAN2F.js +0 -1
  106. package/dist/workspace-knowledge-graph-snapshot-P27RPMV5.js +0 -1
  107. package/dist/workspace-repair-engine-5ZSSF3T5.js +0 -3
  108. package/dist/workspace-run-UGWGT3K2.js +0 -1
package/README.md CHANGED
@@ -13,6 +13,9 @@
13
13
 
14
14
  ## Workspace Intelligence for software systems
15
15
 
16
+ Workspai is an open-source CLI that gives people and AI tools one governed view
17
+ of the software system they are changing.
18
+
16
19
  ```bash
17
20
  npx workspai adopt .
18
21
  npx workspai workspace intelligence run --for-agent generic
@@ -47,36 +50,23 @@ for every supported host, without duplicating the Model or Graph.
47
50
 
48
51
  ### What the output looks like
49
52
 
50
- After a single run, the canonical workspace stores governed artifacts under
51
- `.workspai/`. Each linked project keeps only its local entry contract, scoped
52
- lens, and workspace binding under its own `.workspai/` directory:
53
+ The canonical workspace owns the Model, Graph, context, evidence index, and
54
+ Skills. Each linked project keeps only its portable entry, scoped context, and
55
+ workspace binding:
53
56
 
54
57
  ```text
55
- your-workspace/ # canonical system boundary
58
+ your-workspace/
56
59
  ├── .workspai/
57
- │ ├── workspace.contract.json # registered projects and declarations
58
- │ ├── reports/
59
- │ │ ├── workspace-model.json # canonical system model
60
- │ │ ├── workspace-knowledge-graph.json # derived proof-backed graph
61
- │ │ ├── workspace-context-agent.json # bounded consumer context
62
- │ │ └── INDEX.json # evidence inventory and read order
63
- │ └── skills/ # detected operational playbooks
64
- ├── AGENTS.md · CLAUDE.md · GEMINI.md · QWEN.md
65
- ├── .cursor/ · .claude/ · .github/ · .agents/ # host-native projections
66
- ├── nova-api/
67
- │ ├── .agents/skills/workspai-*/SKILL.md # portable project Skill wrappers
68
- │ └── .workspai/
69
- │ ├── agent-entry.v1.json # canonical project entry
70
- │ ├── workspace-link.local.json # machine-local binding
71
- │ └── reports/
72
- │ ├── project-context-agent.json
73
- │ └── project-knowledge-graph-reference.json
74
- └── summit-web/ # same project-level boundary
60
+ │ ├── reports/ # Model, Graph, verification, context
61
+ │ └── skills/ # evidence-derived playbooks
62
+ ├── AGENTS.md · .codex/ · .cursor/ · .claude/ · .github/ · .agents/
63
+ └── project/.workspai/
64
+ ├── agent-entry.v1.json # portable project entry
65
+ └── workspace-link.local.json # machine-local binding
75
66
  ```
76
67
 
77
- Your agent starts with `agent-entry.v1.json`, compact workspace context, and the Skills
78
- index; it then retrieves only task-scoped Graph evidence and targeted source. No broad
79
- scan or complete Graph load is needed for ordinary work.
68
+ Your agent starts with `agent-entry.v1.json`, compact workspace context, and the
69
+ Skills index; it then retrieves task-scoped Graph evidence and targeted source.
80
70
 
81
71
  ![Workspai CLI adopting and analyzing the gRPC repository](https://raw.githubusercontent.com/chistiq/workspai/main/packages/cli/docs/workspai-grpc-readme-cli.gif)
82
72
 
@@ -85,18 +75,6 @@ scan or complete Graph load is needed for ordinary work.
85
75
  [How it works](#how-workspace-intelligence-works) ·
86
76
  [Documentation](docs/README.md)
87
77
 
88
- ## Why Workspai
89
-
90
- Workspai is an open-source CLI that brings related software projects together,
91
- so people and AI tools can understand and work with the same system.
92
-
93
- - **See the whole system:** registered projects and proven relationships in one model.
94
- - **Ask with proof:** trace answers back to their evidence record and source location.
95
- - **Change safely:** know impact before you commit, verify after, and give AI agents
96
- only the context they need.
97
-
98
- ![From Code to Shared Understanding](https://raw.githubusercontent.com/chistiq/workspai/main/packages/cli/docs/From%20Code%20to%20Shared%20Understanding.png)
99
-
100
78
  ## Start in two minutes
101
79
 
102
80
  ### Use an existing project
@@ -135,14 +113,8 @@ Choose whether to create a workspace, scaffold a project, or add existing
135
113
  software. Project starters are grouped as Backend, Frontend, Desktop, and
136
114
  Extension.
137
115
 
138
- Global installation is optional:
139
-
140
- ```bash
141
- npm install -g workspai
142
- workspai --help
143
- ```
144
-
145
- `wspai` is an optional short alias for the same CLI.
116
+ Global installation is optional: `npm install -g workspai`. `wspai` is a short
117
+ alias for the same CLI.
146
118
 
147
119
  ## Give your agent a goal, not an open-ended prompt
148
120
 
@@ -150,10 +122,7 @@ Describe the outcome in plain language from the adopted project:
150
122
 
151
123
  ```bash
152
124
  npx workspai goal "Raise test coverage to 85%" --for-agent generic
153
- # In a polyglot scope, choose interactively or bind a canonical runtime:
154
125
  npx workspai goal "Raise test coverage to 85%" --runtime cpp --for-agent generic
155
- # Or pursue feature, defect, refactor, performance, documentation, or
156
- # system-understanding outcomes in the same governed flow.
157
126
  npx workspai goal "Add retry with exponential backoff" --for-agent generic
158
127
  ```
159
128
 
@@ -173,8 +142,6 @@ Multi-project scope and polyglot runtime choices are explicit. Interactive
173
142
  users get bounded choices from the canonical Workspace Model; automation gets
174
143
  a machine-readable decision and can use `--scope` and `--runtime`.
175
144
 
176
- ![Workspai turns a plain-language objective into a governed Goal Pack](https://raw.githubusercontent.com/chistiq/workspai/main/packages/cli/docs/workspai-goal-readme-cli.gif)
177
-
178
145
  [Learn how Goal Packs work](docs/goal-packs.md)
179
146
 
180
147
  ## Make every agent change carry proof
@@ -183,9 +150,8 @@ For source-changing work, begin a Goal-bound change before mutation:
183
150
 
184
151
  ```bash
185
152
  npx workspai change begin --json
186
- npx workspai change list --json
187
153
  npx workspai change authorize --change <change-id> --effects filesystem,command --json
188
- # The agent or extension records typed effects, then Workspai re-observes the Graph.
154
+ npx workspai change effect record --change <change-id> --file effect-receipt.json --json
189
155
  npx workspai change verify --change <change-id> --strict --json
190
156
  npx workspai change capsule validate --change <change-id> --json
191
157
  ```
@@ -195,10 +161,11 @@ observed effects, predicted-versus-actual Graph changes, verification receipts,
195
161
  and remaining uncertainty. Prediction can guide work but can never prove its
196
162
  own result. [Learn how Proof-Carrying Change works](docs/proof-carrying-change.md).
197
163
 
164
+ ![Workspai creates a Goal-bound Proof-Carrying Change before source mutation](https://raw.githubusercontent.com/chistiq/workspai/main/packages/cli/docs/workspai-pcc-readme-cli.gif)
165
+
198
166
  ## What happens after the first run
199
167
 
200
- Everything shown in the [output tree above](#what-the-output-looks-like) is
201
- generated in one run. The key files for each audience:
168
+ The key outputs for each audience are:
202
169
 
203
170
  | Audience | What to read |
204
171
  | ------------------- | ---------------------------------------------------------------------------- |
@@ -280,25 +247,24 @@ explicitly unproven.
280
247
 
281
248
  ## Everyday workflows
282
249
 
283
- | Goal | Command |
284
- | ------------------------------------------- | -------------------------------------------------------------------------------- |
285
- | Use guided setup | `npx workspai create` |
286
- | Link a project without moving it | `npx workspai adopt .` |
287
- | Turn an outcome into governed work | `npx workspai goal "Raise test coverage to 85%"` |
288
- | Prove an agent change from intent to verify | `npx workspai change begin --json` |
289
- | Ground an agent before source discovery | `npx workspai agent bootstrap --for-agent codex --strict --json` |
290
- | Audit every agent entry adapter | `npx workspai project agent-entry verify --for-agent all --strict --json` |
291
- | Copy or clone a project into a workspace | `npx workspai import <path-or-git-url> --workspace <path>` |
292
- | Check the current project | `npx workspai doctor project` |
293
- | Check the whole workspace | `npx workspai doctor workspace` |
294
- | Refresh Model and Graph | `npx workspai workspace model --write --json` |
295
- | Watch command activity as a portable board | `npx workspai live --once --json --projection board` |
296
- | Benchmark bounded agent retrieval | `npx workspai workspace graph benchmark-suite agent-core.v1 --write --json` |
297
- | Ask a focused architecture question | `npx workspai workspace graph search "authentication service" --limit 12 --json` |
298
- | Verify current evidence | `npx workspai workspace verify --strict --json` |
299
- | Inspect a governed repair before execution | `npx workspai workspace repair capabilities --json` |
300
- | Refresh agent and IDE context | `npx workspai workspace agent-sync --write --preset enterprise --json` |
301
- | Start MCP server for workspace queries | `npx workspai workspace mcp serve` |
250
+ | Goal | Command |
251
+ | ------------------------------------------- | ------------------------------------------------------------------------------------------------ |
252
+ | Use guided setup | `npx workspai create` |
253
+ | Link a project without moving it | `npx workspai adopt .` |
254
+ | Initialize workspace and project dependencies | `npx workspai init` |
255
+ | Refresh the complete system view | `npx workspai workspace intelligence run --for-agent generic --strict --json` |
256
+ | Turn an outcome into governed work | `npx workspai goal "Raise test coverage to 85%"` |
257
+ | Prove an agent change from intent to verify | `npx workspai change begin --json` |
258
+ | Ground an agent before source discovery | `npx workspai agent bootstrap --for-agent generic --strict --json` |
259
+ | Copy or clone a project into a workspace | `npx workspai import <path-or-git-url> --workspace <path>` |
260
+ | Diagnose project or workspace health | `npx workspai doctor project` / `npx workspai doctor workspace` |
261
+ | Observe CLI and Studio activity | `npx workspai live --once --json --projection board` |
262
+ | Ask a focused architecture question | `npx workspai workspace graph search "authentication service" --limit 12 --json` |
263
+ | Verify current evidence | `npx workspai workspace verify --strict --json` |
264
+ | Inspect a governed repair before execution | `npx workspai workspace repair capabilities --json` |
265
+ | Refresh agent and IDE context | `npx workspai workspace agent-sync --write --preset enterprise --json` |
266
+ | Run the broader release gate | `npx workspai pipeline --strict --json` |
267
+ | Start MCP server for workspace queries | `npx workspai workspace mcp serve` |
302
268
 
303
269
  For every command and flag, use the
304
270
  [Command Reference](docs/commands-reference.md).
@@ -312,7 +278,7 @@ Workspai exposes the same governed data through several stable surfaces:
312
278
  - versioned artifacts under `.workspai/reports/`;
313
279
  - focused context and instructions for AI agents;
314
280
  - MCP server with versioned read-oriented workspace tools (`workspace mcp serve`);
315
- - watch events and reports for IDEs and dashboards;
281
+ - Live activity projections and reports for IDEs and dashboards;
316
282
  - JSON, JSON-LD, Mermaid, DOT, GraphML, and GEXF graph exports.
317
283
 
318
284
  The [Workspai VS Code extension](https://marketplace.visualstudio.com/items?itemName=rapidkit.rapidkit-vscode)
@@ -339,11 +305,14 @@ modules; Workspai remains the workspace-level CLI.
339
305
  | Create, adopt, import, or connect software | [Creating workspaces and projects](docs/creating-workspaces-and-projects.md) |
340
306
  | Query Graph and inspect proof | [Workspace Knowledge Graph](docs/workspace-knowledge-graph.md) |
341
307
  | Understand the exact decision loop | [Workspace Intelligence runner](docs/workspace-intelligence-runner.md) |
308
+ | Run dependency, test, and build stages | [Workspace Run](docs/workspace-run.md) |
309
+ | Observe CLI and Studio activity | [Workspai Live](docs/workspace-live-activity.md) |
342
310
  | Plan, approve, execute, or roll back a repair | [Workspace Repair Engine](docs/workspace-repair-engine.md) |
343
311
  | Set a release, security, or coverage outcome | [Verified engineering goals](docs/workspace-intelligence-runner.md#verified-engineering-goals) |
344
312
  | Compile plain language into a governed plan | [Goal Packs](docs/goal-packs.md) |
345
313
  | Prove what an agent changed and why | [Proof-Carrying Change](docs/proof-carrying-change.md) |
346
314
  | Ground an agent in canonical project evidence | [Canonical-first agent entry](docs/agent-entry.md) |
315
+ | Measure bounded retrieval and model usage | [Evaluation](docs/workspace-intelligence-evaluation.md) and [benchmark](docs/workspace-intelligence-benchmark.md) |
347
316
  | Integrate CI | [CI workflows](docs/ci-workflows.md) |
348
317
  | Find generated files and schemas | [Artifact Catalog](docs/contracts/ARTIFACT_CATALOG.md) |
349
318
  | Browse all documentation | [Documentation index](docs/README.md) |
@@ -364,12 +333,6 @@ Workspai is developed in the open by
364
333
  [Chistiq](https://chistiq.com/), the intelligence infrastructure company behind
365
334
  RapidKit and Workspai.
366
335
 
367
- ```bash
368
- npm ci
369
- npm run build
370
- npm test
371
- ```
372
-
373
336
  Read [CONTRIBUTING.md](CONTRIBUTING.md), the
374
337
  [Development Guide](docs/DEVELOPMENT.md), and the
375
338
  [Security Policy](docs/SECURITY.md).
@@ -41,9 +41,29 @@
41
41
  "cardsCovered": { "type": "integer", "minimum": 0 },
42
42
  "totalActions": { "type": "integer", "minimum": 0 },
43
43
  "executableActions": { "type": "integer", "minimum": 0 },
44
+ "blockedActions": { "type": "integer", "minimum": 0 },
45
+ "guidanceActions": { "type": "integer", "minimum": 0 },
44
46
  "risk": { "$ref": "#/$defs/riskSummary" }
45
47
  }
46
48
  },
49
+ "execution": {
50
+ "type": "object",
51
+ "additionalProperties": false,
52
+ "required": ["nextActionId", "eligibleActionIds", "blockedActionIds"],
53
+ "properties": {
54
+ "nextActionId": { "type": ["string", "null"] },
55
+ "eligibleActionIds": {
56
+ "type": "array",
57
+ "items": { "type": "string", "minLength": 1 },
58
+ "uniqueItems": true
59
+ },
60
+ "blockedActionIds": {
61
+ "type": "array",
62
+ "items": { "type": "string", "minLength": 1 },
63
+ "uniqueItems": true
64
+ }
65
+ }
66
+ },
47
67
  "actions": {
48
68
  "type": "array",
49
69
  "items": { "$ref": "#/$defs/action" }
@@ -330,6 +350,11 @@
330
350
  "items": { "$ref": "#/$defs/repairStrategyStage" }
331
351
  },
332
352
  "transaction": { "$ref": "#/$defs/dependencyRepairTransaction" },
353
+ "requirements": {
354
+ "type": "array",
355
+ "items": { "$ref": "#/$defs/actionRequirement" }
356
+ },
357
+ "retryPolicy": { "$ref": "#/$defs/retryPolicy" },
333
358
  "status": { "enum": ["ready", "review-required", "blocked", "guidance-only"] },
334
359
  "mode": {
335
360
  "enum": [
@@ -367,6 +392,30 @@
367
392
  "items": { "type": "string" }
368
393
  }
369
394
  }
395
+ },
396
+ "actionRequirement": {
397
+ "type": "object",
398
+ "additionalProperties": false,
399
+ "required": ["kind", "id", "status", "message"],
400
+ "properties": {
401
+ "kind": { "enum": ["executable", "action"] },
402
+ "id": { "type": "string", "minLength": 1 },
403
+ "status": { "enum": ["satisfied", "missing", "pending"] },
404
+ "executable": { "type": "string", "minLength": 1 },
405
+ "actionId": { "type": "string", "minLength": 1 },
406
+ "message": { "type": "string", "minLength": 1 }
407
+ }
408
+ },
409
+ "retryPolicy": {
410
+ "type": "object",
411
+ "additionalProperties": false,
412
+ "required": ["sameGeneration", "resumeWhen"],
413
+ "properties": {
414
+ "sameGeneration": { "enum": ["allowed", "forbidden"] },
415
+ "resumeWhen": {
416
+ "enum": ["immediate", "dependencies-complete", "environment-changed"]
417
+ }
418
+ }
370
419
  }
371
420
  }
372
421
  }
@@ -132,6 +132,25 @@
132
132
  "agentHandoff": { "type": "string" },
133
133
  "verifiedGoalId": { "type": "string" },
134
134
  "repairTransactionId": { "type": "string" },
135
+ "repairTransactionIds": {
136
+ "type": "array",
137
+ "maxItems": 25,
138
+ "uniqueItems": true,
139
+ "items": { "type": "string", "minLength": 1 }
140
+ },
141
+ "changeTransactionId": {
142
+ "type": "string",
143
+ "pattern": "^change-[a-z0-9][a-z0-9-]{7,95}$"
144
+ },
145
+ "changeTransactionIds": {
146
+ "type": "array",
147
+ "maxItems": 25,
148
+ "uniqueItems": true,
149
+ "items": {
150
+ "type": "string",
151
+ "pattern": "^change-[a-z0-9][a-z0-9-]{7,95}$"
152
+ }
153
+ },
135
154
  "verificationReceipt": {
136
155
  "type": "object",
137
156
  "required": [
@@ -19,6 +19,10 @@
19
19
  "invariants": {
20
20
  "multiAdapterProjects": true,
21
21
  "missingTools": "decision-required",
22
+ "missingToolSameGenerationRetry": false,
23
+ "missingToolResumeBoundary": "environment-change-and-fresh-plan",
24
+ "plannerExecutorAvailabilityProbe": "shared-launchability-check",
25
+ "setupInstallsHostRuntimes": false,
22
26
  "unsupportedEcosystems": "decision-required",
23
27
  "silentFallbackToModelExecution": false,
24
28
  "mutationAuthority": "cli-only",
@@ -148,7 +152,9 @@
148
152
  "everyFailureTerminates": true,
149
153
  "everyMutationIsCheckpointed": true,
150
154
  "workspaceAndProjectScopesUseTheSameEngine": true,
151
- "linkedProjectsRemainBoundaryChecked": true
155
+ "linkedProjectsRemainBoundaryChecked": true,
156
+ "missingToolsBlockExecutionBeforeApproval": true,
157
+ "polyglotActionsDeclareIndependentExecutablePrerequisites": true
152
158
  }
153
159
  },
154
160
  "adapters": [
@@ -0,0 +1 @@
1
+ export{b as printAnalyzeReport,a as runAnalyze}from'./chunk-LLEKVSMX.js';
@@ -1 +1 @@
1
- export{a as buildArtifactRemediationPlan,b as writeArtifactRemediationPlan}from'./chunk-IRLKWRLP.js';
1
+ export{a as buildArtifactRemediationPlan,b as writeArtifactRemediationPlan}from'./chunk-CY4QZ3PE.js';
@@ -0,0 +1 @@
1
+ export{b as AUTOPILOT_RELEASE_ALIAS_FILENAME,a as AUTOPILOT_RELEASE_LAST_RUN_FILENAME,c as runAutopilotRelease}from'./chunk-LDNX2R6V.js';
@@ -1 +1 @@
1
- import {a as a$1}from'./chunk-A5FBGRJA.js';import {g as g$1,p}from'./chunk-PTSEDZIV.js';import {g,h}from'./chunk-FE5R6EUV.js';import {t,s}from'./chunk-ODK4LCEL.js';import {s as s$1,q}from'./chunk-RGNCL5OB.js';import {t as t$1}from'./chunk-VQZ5PI5J.js';import a from'path';import {existsSync}from'fs';import m from'fs-extra';var f=t.workspaceRegistry,w=s.workspaceRegistry.schemaVersion;function E(r){return {slug:r.slug,relativePath:r.relativePath,framework:r.framework,kit:r.kit,source:r.source}}async function b(r){let e=t$1(r,"workspace.json").find(t=>existsSync(t));if(!e)return {exists:false,legacyProjectCount:0};try{let t=await m.readJson(e),c=Array.isArray(t.projects)?t.projects.length:0,o=typeof t.workspace_name=="string"&&t.workspace_name.trim()||typeof t.name=="string"&&t.name.trim()||a.basename(r);return {exists:true,manifestPath:e,workspaceName:o,profile:typeof t.profile=="string"?t.profile:void 0,legacyProjectCount:c}}catch{return {exists:true,manifestPath:e,legacyProjectCount:0,workspaceName:a.basename(r)}}}async function _(r){let e=a$1(r);for(let t of s$1())if(await m.pathExists(t))try{let o=((await m.readJson(t)).workspaces||[]).find(s=>a$1(s.path)===e);if(o)return {exists:true,projectCount:Array.isArray(o.projects)?o.projects.length:0,registryPath:t}}catch{continue}return {exists:false,projectCount:0,registryPath:a.join(q(),"workspaces.json")}}async function T(r,e){let t=a.resolve(r),c=await g(t,g$1),o=await b(t),s=await _(t),i=e?.contract!==void 0||!!c,n=[];if(e?.contract)n=e.contract.projects||[];else if(i)try{let{contract:A}=await p({workspacePath:t});n=A.projects||[];}catch{n=[];}let d={contract:{exists:i,projectCount:n.length,path:g$1},globalRegistry:{exists:s.exists,projectCount:s.projectCount,path:s.registryPath},legacyWorkspaceJson:{exists:o.exists,projectCount:o.legacyProjectCount,path:o.manifestPath?a.relative(t,o.manifestPath):void 0}},p$1="none",u=[],y=0;return i?(p$1="workspace.contract.json",u=n.map(E),y=u.length):s.projectCount>0?(p$1="global-registry",y=s.projectCount):o.legacyProjectCount>0&&(p$1="legacy-workspace.json",y=o.legacyProjectCount),{contractExists:i,summary:{schemaVersion:w,kind:"rapidkit.workspace.registry",workspacePath:t,workspaceName:o.workspaceName||a.basename(t),profile:o.profile,projectCount:y,authority:p$1,contractPath:g$1,projects:u,sources:d}}}async function U(r){let e=await g(r,f);if(!e)return null;try{let t=await m.readJson(e);return t?.schemaVersion!==w?null:t}catch{return null}}async function D(r,e){let t=await M(r,e);return await h(r,f,t),t}async function M(r,e){return {...(await T(r,{contract:e?.contract})).summary,generatedAt:(e?.now??new Date).toISOString(),registrySummaryPath:f}}function F(r,e=""){return r.projectCount>0?r.authority==="workspace.contract.json"?`${r.projectCount} project(s) registered in workspace contract${e}.`:r.authority==="global-registry"?`${r.projectCount} project(s) registered in global workspace registry${e}.`:`${r.projectCount} project(s) registered in legacy workspace manifest${e}.`:`Workspace state exists, but no projects are registered yet${e}.`}export{f as a,w as b,T as c,U as d,D as e,M as f,F as g};
1
+ import {a as a$1}from'./chunk-A5FBGRJA.js';import {g as g$1,p}from'./chunk-WPZUKU2B.js';import {g,h}from'./chunk-FE5R6EUV.js';import {t,s}from'./chunk-ODK4LCEL.js';import {s as s$1,q}from'./chunk-RGNCL5OB.js';import {t as t$1}from'./chunk-VQZ5PI5J.js';import a from'path';import {existsSync}from'fs';import m from'fs-extra';var f=t.workspaceRegistry,w=s.workspaceRegistry.schemaVersion;function E(r){return {slug:r.slug,relativePath:r.relativePath,framework:r.framework,kit:r.kit,source:r.source}}async function b(r){let e=t$1(r,"workspace.json").find(t=>existsSync(t));if(!e)return {exists:false,legacyProjectCount:0};try{let t=await m.readJson(e),c=Array.isArray(t.projects)?t.projects.length:0,o=typeof t.workspace_name=="string"&&t.workspace_name.trim()||typeof t.name=="string"&&t.name.trim()||a.basename(r);return {exists:true,manifestPath:e,workspaceName:o,profile:typeof t.profile=="string"?t.profile:void 0,legacyProjectCount:c}}catch{return {exists:true,manifestPath:e,legacyProjectCount:0,workspaceName:a.basename(r)}}}async function _(r){let e=a$1(r);for(let t of s$1())if(await m.pathExists(t))try{let o=((await m.readJson(t)).workspaces||[]).find(s=>a$1(s.path)===e);if(o)return {exists:true,projectCount:Array.isArray(o.projects)?o.projects.length:0,registryPath:t}}catch{continue}return {exists:false,projectCount:0,registryPath:a.join(q(),"workspaces.json")}}async function T(r,e){let t=a.resolve(r),c=await g(t,g$1),o=await b(t),s=await _(t),i=e?.contract!==void 0||!!c,n=[];if(e?.contract)n=e.contract.projects||[];else if(i)try{let{contract:A}=await p({workspacePath:t});n=A.projects||[];}catch{n=[];}let d={contract:{exists:i,projectCount:n.length,path:g$1},globalRegistry:{exists:s.exists,projectCount:s.projectCount,path:s.registryPath},legacyWorkspaceJson:{exists:o.exists,projectCount:o.legacyProjectCount,path:o.manifestPath?a.relative(t,o.manifestPath):void 0}},p$1="none",u=[],y=0;return i?(p$1="workspace.contract.json",u=n.map(E),y=u.length):s.projectCount>0?(p$1="global-registry",y=s.projectCount):o.legacyProjectCount>0&&(p$1="legacy-workspace.json",y=o.legacyProjectCount),{contractExists:i,summary:{schemaVersion:w,kind:"rapidkit.workspace.registry",workspacePath:t,workspaceName:o.workspaceName||a.basename(t),profile:o.profile,projectCount:y,authority:p$1,contractPath:g$1,projects:u,sources:d}}}async function U(r){let e=await g(r,f);if(!e)return null;try{let t=await m.readJson(e);return t?.schemaVersion!==w?null:t}catch{return null}}async function D(r,e){let t=await M(r,e);return await h(r,f,t),t}async function M(r,e){return {...(await T(r,{contract:e?.contract})).summary,generatedAt:(e?.now??new Date).toISOString(),registrySummaryPath:f}}function F(r,e=""){return r.projectCount>0?r.authority==="workspace.contract.json"?`${r.projectCount} project(s) registered in workspace contract${e}.`:r.authority==="global-registry"?`${r.projectCount} project(s) registered in global workspace registry${e}.`:`${r.projectCount} project(s) registered in legacy workspace manifest${e}.`:`Workspace state exists, but no projects are registered yet${e}.`}export{f as a,w as b,T as c,U as d,D as e,M as f,F as g};