workspai 0.53.0 → 0.55.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 (47) hide show
  1. package/contracts/artifact-remediation-plan.v1.json +22 -3
  2. package/contracts/doctor-project-evidence.v1.json +21 -2
  3. package/contracts/doctor-remediation-plan.v1.json +22 -3
  4. package/contracts/doctor-workspace-evidence.v1.json +21 -2
  5. package/contracts/extension-cli-compatibility.v1.json +1 -1
  6. package/contracts/studio-card-repair-capabilities.v1.json +65 -1
  7. package/contracts/workspace-intelligence/doctor-dependency-repair-transaction.v1.json +52 -13
  8. package/contracts/workspace-intelligence/workspace-repair-proposal.v1.json +8 -0
  9. package/contracts/workspace-intelligence/workspace-repair-transaction.v1.json +57 -6
  10. package/contracts/workspace-repair-capabilities.v1.json +104 -0
  11. package/dist/{artifact-remediation-plan-CJSPCMWA.js → artifact-remediation-plan-O3YIULQN.js} +1 -1
  12. package/dist/autopilot-release-EZXOGAVE.js +1 -0
  13. package/dist/chunk-4GPKQFPY.js +1 -0
  14. package/dist/chunk-B5AY55A5.js +1 -0
  15. package/dist/chunk-CEIJIFY7.js +88 -0
  16. package/dist/{chunk-2FJW6GSW.js → chunk-HUPLAFZQ.js} +1 -1
  17. package/dist/{chunk-HOVJUP7K.js → chunk-KJYLCZRI.js} +1 -1
  18. package/dist/{chunk-OLX6LX77.js → chunk-NWQ5VWUW.js} +3 -3
  19. package/dist/chunk-TEHQ7XKK.js +3 -0
  20. package/dist/chunk-UFOCUHG3.js +1 -0
  21. package/dist/{chunk-3GRKUP5W.js → chunk-W3HXTCSY.js} +6 -6
  22. package/dist/{chunk-HRN5J6PW.js → chunk-WSAFBPS5.js} +1 -1
  23. package/dist/{create-R6A7EHQZ.js → create-3NSOY7CA.js} +1 -1
  24. package/dist/{doctor-KNIYGDM7.js → doctor-UEFFNAUD.js} +1 -1
  25. package/dist/index.js +147 -147
  26. package/dist/{pipeline-PVCLAQDI.js → pipeline-ZYKDWUKK.js} +1 -1
  27. package/dist/{pythonRapidkitExec-YR7P5LWG.js → pythonRapidkitExec-4YTAMLBD.js} +1 -1
  28. package/dist/{verified-goal-MCSNMA3P.js → verified-goal-PE2PGAHF.js} +1 -1
  29. package/dist/{workspace-B53XH35L.js → workspace-C4UETGY7.js} +1 -1
  30. package/dist/{workspace-foundation-FFNCK5ZD.js → workspace-foundation-3EVAQ5X6.js} +1 -1
  31. package/dist/{workspace-intelligence-runner-JNCQLUH7.js → workspace-intelligence-runner-GLC666ER.js} +1 -1
  32. package/dist/{workspace-onboarding-2B7CYZ5H.js → workspace-onboarding-5KO7Z7AD.js} +1 -1
  33. package/dist/workspace-repair-engine-NMKOWUQP.js +3 -0
  34. package/dist/workspace-run-2DEVJOVH.js +1 -0
  35. package/docs/ci-workflows.md +1 -1
  36. package/docs/doctor-command.md +6 -0
  37. package/docs/workspace-repair-engine.md +59 -10
  38. package/package.json +3 -3
  39. package/dist/autopilot-release-LZWNQQLY.js +0 -1
  40. package/dist/chunk-27AXFTKW.js +0 -1
  41. package/dist/chunk-E5YYVFM2.js +0 -1
  42. package/dist/chunk-SUV7Y2FH.js +0 -3
  43. package/dist/chunk-T6JI7GYZ.js +0 -88
  44. package/dist/chunk-ZTKIBREF.js +0 -1
  45. package/dist/workspace-repair-engine-SRWECKZO.js +0 -3
  46. package/dist/workspace-run-3U77TMKX.js +0 -1
  47. /package/dist/{chunk-USMLRNZ7.js → chunk-BQ24743S.js} +0 -0
@@ -131,10 +131,12 @@
131
131
  "schemaVersion": {
132
132
  "const": "workspai.doctor-dependency-repair-transaction.v1"
133
133
  },
134
- "kind": { "const": "dependency-security" },
134
+ "kind": { "enum": ["dependency-security", "dependency-materialization"] },
135
135
  "state": { "const": "planned" },
136
136
  "projectPath": { "type": "string", "minLength": 1 },
137
137
  "ecosystem": { "type": "string", "minLength": 1 },
138
+ "sourceMutationRequired": { "type": "boolean" },
139
+ "observableState": { "enum": ["runtime-dependency-tree"] },
138
140
  "requiredStages": {
139
141
  "type": "array",
140
142
  "items": { "enum": ["reconcile", "audit", "test", "build"] },
@@ -145,7 +147,6 @@
145
147
  "additionalProperties": false,
146
148
  "required": [
147
149
  "manifestLockConsistent",
148
- "auditClean",
149
150
  "declaredTestsPass",
150
151
  "declaredBuildPass",
151
152
  "canonicalVerificationRequired"
@@ -153,12 +154,30 @@
153
154
  "properties": {
154
155
  "manifestLockConsistent": { "const": true },
155
156
  "auditClean": { "const": true },
157
+ "installedTreePresent": { "const": true },
156
158
  "declaredTestsPass": { "const": true },
157
159
  "declaredBuildPass": { "const": true },
158
160
  "canonicalVerificationRequired": { "const": true }
159
161
  }
160
162
  }
161
- }
163
+ },
164
+ "allOf": [
165
+ {
166
+ "if": { "properties": { "kind": { "const": "dependency-security" } } },
167
+ "then": { "properties": { "completion": { "type": "object", "properties": { "auditClean": { "const": true } }, "required": ["auditClean"] } } }
168
+ },
169
+ {
170
+ "if": { "properties": { "kind": { "const": "dependency-materialization" } } },
171
+ "then": {
172
+ "required": ["sourceMutationRequired", "observableState"],
173
+ "properties": {
174
+ "sourceMutationRequired": { "const": false },
175
+ "observableState": { "const": "runtime-dependency-tree" },
176
+ "completion": { "type": "object", "properties": { "installedTreePresent": { "const": true } }, "required": ["installedTreePresent"] }
177
+ }
178
+ }
179
+ }
180
+ ]
162
181
  },
163
182
  "action": {
164
183
  "type": "object",
@@ -497,10 +497,12 @@
497
497
  "schemaVersion": {
498
498
  "const": "workspai.doctor-dependency-repair-transaction.v1"
499
499
  },
500
- "kind": { "const": "dependency-security" },
500
+ "kind": { "enum": ["dependency-security", "dependency-materialization"] },
501
501
  "state": { "const": "planned" },
502
502
  "projectPath": { "type": "string", "minLength": 1 },
503
503
  "ecosystem": { "type": "string", "minLength": 1 },
504
+ "sourceMutationRequired": { "type": "boolean" },
505
+ "observableState": { "enum": ["runtime-dependency-tree"] },
504
506
  "requiredStages": {
505
507
  "type": "array",
506
508
  "items": { "enum": ["reconcile", "audit", "test", "build"] },
@@ -510,7 +512,6 @@
510
512
  "type": "object",
511
513
  "required": [
512
514
  "manifestLockConsistent",
513
- "auditClean",
514
515
  "declaredTestsPass",
515
516
  "declaredBuildPass",
516
517
  "canonicalVerificationRequired"
@@ -518,6 +519,7 @@
518
519
  "properties": {
519
520
  "manifestLockConsistent": { "const": true },
520
521
  "auditClean": { "const": true },
522
+ "installedTreePresent": { "const": true },
521
523
  "declaredTestsPass": { "const": true },
522
524
  "declaredBuildPass": { "const": true },
523
525
  "canonicalVerificationRequired": { "const": true }
@@ -525,6 +527,23 @@
525
527
  "additionalProperties": false
526
528
  }
527
529
  },
530
+ "allOf": [
531
+ {
532
+ "if": { "properties": { "kind": { "const": "dependency-security" } } },
533
+ "then": { "properties": { "completion": { "type": "object", "properties": { "auditClean": { "const": true } }, "required": ["auditClean"] } } }
534
+ },
535
+ {
536
+ "if": { "properties": { "kind": { "const": "dependency-materialization" } } },
537
+ "then": {
538
+ "required": ["sourceMutationRequired", "observableState"],
539
+ "properties": {
540
+ "sourceMutationRequired": { "const": false },
541
+ "observableState": { "const": "runtime-dependency-tree" },
542
+ "completion": { "type": "object", "properties": { "installedTreePresent": { "const": true } }, "required": ["installedTreePresent"] }
543
+ }
544
+ }
545
+ }
546
+ ],
528
547
  "additionalProperties": false
529
548
  },
530
549
  "commandInvocation": {
@@ -186,10 +186,12 @@
186
186
  "schemaVersion": {
187
187
  "const": "workspai.doctor-dependency-repair-transaction.v1"
188
188
  },
189
- "kind": { "const": "dependency-security" },
189
+ "kind": { "enum": ["dependency-security", "dependency-materialization"] },
190
190
  "state": { "const": "planned" },
191
191
  "projectPath": { "type": "string", "minLength": 1 },
192
192
  "ecosystem": { "type": "string", "minLength": 1 },
193
+ "sourceMutationRequired": { "type": "boolean" },
194
+ "observableState": { "enum": ["runtime-dependency-tree"] },
193
195
  "requiredStages": {
194
196
  "type": "array",
195
197
  "items": { "enum": ["reconcile", "audit", "test", "build"] },
@@ -200,7 +202,6 @@
200
202
  "additionalProperties": false,
201
203
  "required": [
202
204
  "manifestLockConsistent",
203
- "auditClean",
204
205
  "declaredTestsPass",
205
206
  "declaredBuildPass",
206
207
  "canonicalVerificationRequired"
@@ -208,12 +209,30 @@
208
209
  "properties": {
209
210
  "manifestLockConsistent": { "const": true },
210
211
  "auditClean": { "const": true },
212
+ "installedTreePresent": { "const": true },
211
213
  "declaredTestsPass": { "const": true },
212
214
  "declaredBuildPass": { "const": true },
213
215
  "canonicalVerificationRequired": { "const": true }
214
216
  }
215
217
  }
216
- }
218
+ },
219
+ "allOf": [
220
+ {
221
+ "if": { "properties": { "kind": { "const": "dependency-security" } } },
222
+ "then": { "properties": { "completion": { "type": "object", "properties": { "auditClean": { "const": true } }, "required": ["auditClean"] } } }
223
+ },
224
+ {
225
+ "if": { "properties": { "kind": { "const": "dependency-materialization" } } },
226
+ "then": {
227
+ "required": ["sourceMutationRequired", "observableState"],
228
+ "properties": {
229
+ "sourceMutationRequired": { "const": false },
230
+ "observableState": { "const": "runtime-dependency-tree" },
231
+ "completion": { "type": "object", "properties": { "installedTreePresent": { "const": true } }, "required": ["installedTreePresent"] }
232
+ }
233
+ }
234
+ }
235
+ ]
217
236
  },
218
237
  "repairIntent": {
219
238
  "type": "object",
@@ -507,10 +507,12 @@
507
507
  "schemaVersion": {
508
508
  "const": "workspai.doctor-dependency-repair-transaction.v1"
509
509
  },
510
- "kind": { "const": "dependency-security" },
510
+ "kind": { "enum": ["dependency-security", "dependency-materialization"] },
511
511
  "state": { "const": "planned" },
512
512
  "projectPath": { "type": "string", "minLength": 1 },
513
513
  "ecosystem": { "type": "string", "minLength": 1 },
514
+ "sourceMutationRequired": { "type": "boolean" },
515
+ "observableState": { "enum": ["runtime-dependency-tree"] },
514
516
  "requiredStages": {
515
517
  "type": "array",
516
518
  "items": { "enum": ["reconcile", "audit", "test", "build"] },
@@ -520,7 +522,6 @@
520
522
  "type": "object",
521
523
  "required": [
522
524
  "manifestLockConsistent",
523
- "auditClean",
524
525
  "declaredTestsPass",
525
526
  "declaredBuildPass",
526
527
  "canonicalVerificationRequired"
@@ -528,6 +529,7 @@
528
529
  "properties": {
529
530
  "manifestLockConsistent": { "const": true },
530
531
  "auditClean": { "const": true },
532
+ "installedTreePresent": { "const": true },
531
533
  "declaredTestsPass": { "const": true },
532
534
  "declaredBuildPass": { "const": true },
533
535
  "canonicalVerificationRequired": { "const": true }
@@ -535,6 +537,23 @@
535
537
  "additionalProperties": false
536
538
  }
537
539
  },
540
+ "allOf": [
541
+ {
542
+ "if": { "properties": { "kind": { "const": "dependency-security" } } },
543
+ "then": { "properties": { "completion": { "type": "object", "properties": { "auditClean": { "const": true } }, "required": ["auditClean"] } } }
544
+ },
545
+ {
546
+ "if": { "properties": { "kind": { "const": "dependency-materialization" } } },
547
+ "then": {
548
+ "required": ["sourceMutationRequired", "observableState"],
549
+ "properties": {
550
+ "sourceMutationRequired": { "const": false },
551
+ "observableState": { "const": "runtime-dependency-tree" },
552
+ "completion": { "type": "object", "properties": { "installedTreePresent": { "const": true } }, "required": ["installedTreePresent"] }
553
+ }
554
+ }
555
+ }
556
+ ],
538
557
  "additionalProperties": false
539
558
  },
540
559
  "commandInvocation": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": "rapidkit-extension-cli-compatibility.v1",
3
3
  "cli": "workspai",
4
- "minimumVerifiedCliVersion": "0.53.0",
4
+ "minimumVerifiedCliVersion": "0.55.0",
5
5
  "publishedContractSchemas": {
6
6
  "workspaceContract": 1,
7
7
  "runtimeCommandSurface": "rapidkit-runtime-command-surface-v1",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": "workspai.studio-card-repair-capabilities.v1",
3
- "invariant": "A card repair closes only after its exact producer is non-blocking and aggregate Workspace Verify passes.",
3
+ "invariant": "A card repair closes only after its exact producer refreshes, its selected causal action set is absent, and aggregate Workspace Verify completes without an execution failure. Unrelated workspace blockers are reported separately and do not reopen the selected card.",
4
4
  "cards": [
5
5
  {
6
6
  "cardId": "doctor",
@@ -10,6 +10,8 @@
10
10
  "verifyCommand": "npx workspai doctor workspace --json",
11
11
  "verifyArtifact": ".workspai/reports/doctor-last-run.json",
12
12
  "aggregateVerifyCommand": "npx workspai workspace verify --json",
13
+ "targetClosure": "exact-producer-and-causal-action-set",
14
+ "workspacePosture": "reported-separately",
13
15
  "repairPolicy": "diagnose-and-repair",
14
16
  "remediationArtifacts": [
15
17
  ".workspai/reports/doctor-remediation-plan-last-run.json",
@@ -24,6 +26,8 @@
24
26
  "verifyCommand": "npx workspai doctor project --json",
25
27
  "verifyArtifact": ".workspai/reports/doctor-project-last-run.json",
26
28
  "aggregateVerifyCommand": "npx workspai workspace verify --json",
29
+ "targetClosure": "exact-producer-and-causal-action-set",
30
+ "workspacePosture": "reported-separately",
27
31
  "repairPolicy": "diagnose-and-repair",
28
32
  "remediationArtifacts": [
29
33
  ".workspai/reports/doctor-remediation-plan-last-run.json",
@@ -38,6 +42,8 @@
38
42
  "verifyCommand": "npx workspai pipeline --json --strict",
39
43
  "verifyArtifact": ".workspai/reports/pipeline-last-run.json",
40
44
  "aggregateVerifyCommand": "npx workspai workspace verify --json",
45
+ "targetClosure": "exact-producer-and-causal-action-set",
46
+ "workspacePosture": "reported-separately",
41
47
  "repairPolicy": "source-repair-then-produce",
42
48
  "remediationArtifacts": [
43
49
  ".workspai/reports/artifact-remediation-plan-last-run.json"
@@ -51,6 +57,8 @@
51
57
  "verifyCommand": "npx workspai analyze --json",
52
58
  "verifyArtifact": ".workspai/reports/analyze-last-run.json",
53
59
  "aggregateVerifyCommand": "npx workspai workspace verify --json",
60
+ "targetClosure": "exact-producer-and-causal-action-set",
61
+ "workspacePosture": "reported-separately",
54
62
  "repairPolicy": "source-repair-then-produce",
55
63
  "remediationArtifacts": [
56
64
  ".workspai/reports/artifact-remediation-plan-last-run.json"
@@ -64,6 +72,8 @@
64
72
  "verifyCommand": "npx workspai readiness --json",
65
73
  "verifyArtifact": ".workspai/reports/release-readiness-last-run.json",
66
74
  "aggregateVerifyCommand": "npx workspai workspace verify --json",
75
+ "targetClosure": "exact-producer-and-causal-action-set",
76
+ "workspacePosture": "reported-separately",
67
77
  "repairPolicy": "source-repair-then-produce",
68
78
  "remediationArtifacts": [
69
79
  ".workspai/reports/artifact-remediation-plan-last-run.json"
@@ -77,6 +87,8 @@
77
87
  "verifyCommand": "npx workspai bootstrap --ci --json",
78
88
  "verifyArtifact": ".workspai/reports/bootstrap-compliance.latest.json",
79
89
  "aggregateVerifyCommand": "npx workspai workspace verify --json",
90
+ "targetClosure": "exact-producer-and-causal-action-set",
91
+ "workspacePosture": "reported-separately",
80
92
  "repairPolicy": "source-repair-then-produce",
81
93
  "remediationArtifacts": [
82
94
  ".workspai/reports/artifact-remediation-plan-last-run.json"
@@ -90,6 +102,8 @@
90
102
  "verifyCommand": "npx workspai workspace sync --json",
91
103
  "verifyArtifact": ".workspai/workspace-registry.v1.json",
92
104
  "aggregateVerifyCommand": "npx workspai workspace verify --json",
105
+ "targetClosure": "exact-producer-and-causal-action-set",
106
+ "workspacePosture": "reported-separately",
93
107
  "repairPolicy": "refresh-producer",
94
108
  "remediationArtifacts": []
95
109
  },
@@ -101,6 +115,8 @@
101
115
  "verifyCommand": "npx workspai workspace foundation ensure --json",
102
116
  "verifyArtifact": ".workspai/workspace.json",
103
117
  "aggregateVerifyCommand": "npx workspai workspace verify --json",
118
+ "targetClosure": "exact-producer-and-causal-action-set",
119
+ "workspacePosture": "reported-separately",
104
120
  "repairPolicy": "refresh-producer",
105
121
  "remediationArtifacts": []
106
122
  },
@@ -112,6 +128,8 @@
112
128
  "verifyCommand": "npx workspai workspace contract verify --strict --json",
113
129
  "verifyArtifact": ".workspai/reports/workspace-contract-verify-last-run.json",
114
130
  "aggregateVerifyCommand": "npx workspai workspace verify --json",
131
+ "targetClosure": "exact-producer-and-causal-action-set",
132
+ "workspacePosture": "reported-separately",
115
133
  "repairPolicy": "source-repair-then-produce",
116
134
  "remediationArtifacts": []
117
135
  },
@@ -123,6 +141,8 @@
123
141
  "verifyCommand": "npx workspai autopilot release --json",
124
142
  "verifyArtifact": ".workspai/reports/autopilot-release-last-run.json",
125
143
  "aggregateVerifyCommand": "npx workspai workspace verify --json",
144
+ "targetClosure": "exact-producer-and-causal-action-set",
145
+ "workspacePosture": "reported-separately",
126
146
  "repairPolicy": "source-repair-then-produce",
127
147
  "remediationArtifacts": []
128
148
  },
@@ -134,6 +154,8 @@
134
154
  "verifyCommand": "npx workspai workspace run test --json",
135
155
  "verifyArtifact": ".workspai/reports/workspace-run-last.json",
136
156
  "aggregateVerifyCommand": "npx workspai workspace verify --json",
157
+ "targetClosure": "exact-producer-and-causal-action-set",
158
+ "workspacePosture": "reported-separately",
137
159
  "repairPolicy": "source-repair-then-produce",
138
160
  "remediationArtifacts": [
139
161
  ".workspai/reports/artifact-remediation-plan-last-run.json"
@@ -147,6 +169,8 @@
147
169
  "verifyCommand": "npx workspai setup --json",
148
170
  "verifyArtifact": ".workspai/toolchain.lock",
149
171
  "aggregateVerifyCommand": "npx workspai workspace verify --json",
172
+ "targetClosure": "exact-producer-and-causal-action-set",
173
+ "workspacePosture": "reported-separately",
150
174
  "repairPolicy": "source-repair-then-produce",
151
175
  "remediationArtifacts": []
152
176
  },
@@ -158,6 +182,8 @@
158
182
  "verifyCommand": "npx workspai doctor project --json",
159
183
  "verifyArtifact": ".workspai/reports/doctor-project-last-run.json",
160
184
  "aggregateVerifyCommand": "npx workspai workspace verify --json",
185
+ "targetClosure": "exact-producer-and-causal-action-set",
186
+ "workspacePosture": "reported-separately",
161
187
  "repairPolicy": "diagnose-and-repair",
162
188
  "remediationArtifacts": [
163
189
  ".workspai/reports/artifact-remediation-plan-last-run.json"
@@ -171,6 +197,8 @@
171
197
  "verifyCommand": "npx workspai snapshot create --json",
172
198
  "verifyArtifact": ".workspai/reports/snapshot-last-run.json",
173
199
  "aggregateVerifyCommand": "npx workspai workspace verify --json",
200
+ "targetClosure": "exact-producer-and-causal-action-set",
201
+ "workspacePosture": "reported-separately",
174
202
  "repairPolicy": "refresh-producer",
175
203
  "remediationArtifacts": []
176
204
  },
@@ -182,6 +210,8 @@
182
210
  "verifyCommand": "npx workspai workspace model --json --write",
183
211
  "verifyArtifact": ".workspai/reports/workspace-model.json",
184
212
  "aggregateVerifyCommand": "npx workspai workspace verify --json",
213
+ "targetClosure": "exact-producer-and-causal-action-set",
214
+ "workspacePosture": "reported-separately",
185
215
  "repairPolicy": "refresh-producer",
186
216
  "remediationArtifacts": []
187
217
  },
@@ -193,6 +223,8 @@
193
223
  "verifyCommand": "npx workspai workspace snapshot --json",
194
224
  "verifyArtifact": ".workspai/reports/workspace-model-snapshot.json",
195
225
  "aggregateVerifyCommand": "npx workspai workspace verify --json",
226
+ "targetClosure": "exact-producer-and-causal-action-set",
227
+ "workspacePosture": "reported-separately",
196
228
  "repairPolicy": "refresh-producer",
197
229
  "remediationArtifacts": []
198
230
  },
@@ -204,6 +236,8 @@
204
236
  "verifyCommand": "npx workspai workspace diff --from .workspai/reports/workspace-model-snapshot.json --json",
205
237
  "verifyArtifact": ".workspai/reports/workspace-model-diff-last-run.json",
206
238
  "aggregateVerifyCommand": "npx workspai workspace verify --json",
239
+ "targetClosure": "exact-producer-and-causal-action-set",
240
+ "workspacePosture": "reported-separately",
207
241
  "repairPolicy": "refresh-producer",
208
242
  "remediationArtifacts": []
209
243
  },
@@ -215,6 +249,8 @@
215
249
  "verifyCommand": "npx workspai workspace impact --from .workspai/reports/workspace-model-diff-last-run.json --json",
216
250
  "verifyArtifact": ".workspai/reports/workspace-impact-last-run.json",
217
251
  "aggregateVerifyCommand": "npx workspai workspace verify --json",
252
+ "targetClosure": "exact-producer-and-causal-action-set",
253
+ "workspacePosture": "reported-separately",
218
254
  "repairPolicy": "refresh-producer",
219
255
  "remediationArtifacts": []
220
256
  },
@@ -226,6 +262,8 @@
226
262
  "verifyCommand": "npx workspai workspace intelligence run --for-agent generic --strict --json",
227
263
  "verifyArtifact": ".workspai/reports/workspace-intelligence-run-last-run.json",
228
264
  "aggregateVerifyCommand": "npx workspai workspace verify --json",
265
+ "targetClosure": "exact-producer-and-causal-action-set",
266
+ "workspacePosture": "reported-separately",
229
267
  "repairPolicy": "source-repair-then-produce",
230
268
  "remediationArtifacts": []
231
269
  },
@@ -237,6 +275,8 @@
237
275
  "verifyCommand": "npx workspai workspace verify --json",
238
276
  "verifyArtifact": ".workspai/reports/workspace-verify-last-run.json",
239
277
  "aggregateVerifyCommand": "npx workspai workspace verify --json",
278
+ "targetClosure": "exact-producer-and-causal-action-set",
279
+ "workspacePosture": "reported-separately",
240
280
  "repairPolicy": "source-repair-then-produce",
241
281
  "remediationArtifacts": [
242
282
  ".workspai/reports/artifact-remediation-plan-last-run.json"
@@ -250,6 +290,8 @@
250
290
  "verifyCommand": "npx workspai workspace explain release-blocked --json --write",
251
291
  "verifyArtifact": ".workspai/reports/workspace-explain-last-run.json",
252
292
  "aggregateVerifyCommand": "npx workspai workspace verify --json",
293
+ "targetClosure": "exact-producer-and-causal-action-set",
294
+ "workspacePosture": "reported-separately",
253
295
  "repairPolicy": "refresh-producer",
254
296
  "remediationArtifacts": []
255
297
  },
@@ -261,6 +303,8 @@
261
303
  "verifyCommand": "npx workspai workspace why release-blocked --json --write",
262
304
  "verifyArtifact": ".workspai/reports/workspace-why-last-run.json",
263
305
  "aggregateVerifyCommand": "npx workspai workspace verify --json",
306
+ "targetClosure": "exact-producer-and-causal-action-set",
307
+ "workspacePosture": "reported-separately",
264
308
  "repairPolicy": "refresh-producer",
265
309
  "remediationArtifacts": []
266
310
  },
@@ -272,6 +316,8 @@
272
316
  "verifyCommand": "npx workspai workspace trace --from .workspai/reports/workspace-model-diff-last-run.json --json --write",
273
317
  "verifyArtifact": ".workspai/reports/workspace-trace-last-run.json",
274
318
  "aggregateVerifyCommand": "npx workspai workspace verify --json",
319
+ "targetClosure": "exact-producer-and-causal-action-set",
320
+ "workspacePosture": "reported-separately",
275
321
  "repairPolicy": "refresh-producer",
276
322
  "remediationArtifacts": []
277
323
  },
@@ -283,6 +329,8 @@
283
329
  "verifyCommand": "npx workspai workspace watch --once --json",
284
330
  "verifyArtifact": ".workspai/reports/workspace-model.json",
285
331
  "aggregateVerifyCommand": "npx workspai workspace verify --json",
332
+ "targetClosure": "exact-producer-and-causal-action-set",
333
+ "workspacePosture": "reported-separately",
286
334
  "repairPolicy": "refresh-producer",
287
335
  "remediationArtifacts": []
288
336
  },
@@ -294,6 +342,8 @@
294
342
  "verifyCommand": "npx workspai workspace context --for-agent --json --write",
295
343
  "verifyArtifact": ".workspai/reports/workspace-context-agent.json",
296
344
  "aggregateVerifyCommand": "npx workspai workspace verify --json",
345
+ "targetClosure": "exact-producer-and-causal-action-set",
346
+ "workspacePosture": "reported-separately",
297
347
  "repairPolicy": "refresh-producer",
298
348
  "remediationArtifacts": []
299
349
  },
@@ -305,6 +355,8 @@
305
355
  "verifyCommand": "npx workspai workspace agent-sync --write --refresh-context --json --preset enterprise --target vscode",
306
356
  "verifyArtifact": ".workspai/reports/agent-customization-pack.json",
307
357
  "aggregateVerifyCommand": "npx workspai workspace verify --json",
358
+ "targetClosure": "exact-producer-and-causal-action-set",
359
+ "workspacePosture": "reported-separately",
308
360
  "repairPolicy": "refresh-producer",
309
361
  "remediationArtifacts": []
310
362
  },
@@ -316,6 +368,8 @@
316
368
  "verifyCommand": "npx workspai workspace share --output .workspai/reports/share-bundle.json --json",
317
369
  "verifyArtifact": ".workspai/reports/share-bundle.json",
318
370
  "aggregateVerifyCommand": "npx workspai workspace verify --json",
371
+ "targetClosure": "exact-producer-and-causal-action-set",
372
+ "workspacePosture": "reported-separately",
319
373
  "repairPolicy": "refresh-producer",
320
374
  "remediationArtifacts": []
321
375
  },
@@ -327,6 +381,8 @@
327
381
  "verifyCommand": "npx workspai workspace export --output team-workspace.workspai-archive.zip --json",
328
382
  "verifyArtifact": ".workspai/archive-manifest.json",
329
383
  "aggregateVerifyCommand": "npx workspai workspace verify --json",
384
+ "targetClosure": "exact-producer-and-causal-action-set",
385
+ "workspacePosture": "reported-separately",
330
386
  "repairPolicy": "refresh-producer",
331
387
  "remediationArtifacts": []
332
388
  },
@@ -338,6 +394,8 @@
338
394
  "verifyCommand": "npx workspai mirror status --json",
339
395
  "verifyArtifact": ".workspai/reports/mirror-ops.latest.json",
340
396
  "aggregateVerifyCommand": "npx workspai workspace verify --json",
397
+ "targetClosure": "exact-producer-and-causal-action-set",
398
+ "workspacePosture": "reported-separately",
341
399
  "repairPolicy": "refresh-producer",
342
400
  "remediationArtifacts": []
343
401
  },
@@ -349,6 +407,8 @@
349
407
  "verifyCommand": "npx workspai cache status --json",
350
408
  "verifyArtifact": ".workspai/cache-config.yml",
351
409
  "aggregateVerifyCommand": "npx workspai workspace verify --json",
410
+ "targetClosure": "exact-producer-and-causal-action-set",
411
+ "workspacePosture": "reported-separately",
352
412
  "repairPolicy": "refresh-producer",
353
413
  "remediationArtifacts": []
354
414
  },
@@ -360,6 +420,8 @@
360
420
  "verifyCommand": "npx workspai workspace policy show --json",
361
421
  "verifyArtifact": ".workspai/policies.yml",
362
422
  "aggregateVerifyCommand": "npx workspai workspace verify --json",
423
+ "targetClosure": "exact-producer-and-causal-action-set",
424
+ "workspacePosture": "reported-separately",
363
425
  "repairPolicy": "source-repair-then-produce",
364
426
  "remediationArtifacts": []
365
427
  },
@@ -371,6 +433,8 @@
371
433
  "verifyCommand": "npx workspai infra plan --json",
372
434
  "verifyArtifact": ".workspai/reports/infra-plan.json",
373
435
  "aggregateVerifyCommand": "npx workspai workspace verify --json",
436
+ "targetClosure": "exact-producer-and-causal-action-set",
437
+ "workspacePosture": "reported-separately",
374
438
  "repairPolicy": "source-repair-then-produce",
375
439
  "remediationArtifacts": []
376
440
  }
@@ -2,7 +2,7 @@
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://workspai.dev/contracts/workspace-intelligence/doctor-dependency-repair-transaction.v1.json",
4
4
  "title": "Workspai Doctor Dependency Repair Transaction v1",
5
- "description": "The portable closure contract a consumer must satisfy after changing a dependency manifest or lockfile.",
5
+ "description": "The portable closure contract for dependency security changes and runtime dependency materialization.",
6
6
  "type": "object",
7
7
  "additionalProperties": false,
8
8
  "required": [
@@ -19,7 +19,7 @@
19
19
  "const": "workspai.doctor-dependency-repair-transaction.v1"
20
20
  },
21
21
  "kind": {
22
- "const": "dependency-security"
22
+ "enum": ["dependency-security", "dependency-materialization"]
23
23
  },
24
24
  "state": {
25
25
  "const": "planned"
@@ -32,24 +32,20 @@
32
32
  "type": "string",
33
33
  "minLength": 1
34
34
  },
35
+ "sourceMutationRequired": { "type": "boolean" },
36
+ "observableState": {
37
+ "enum": ["runtime-dependency-tree"]
38
+ },
35
39
  "requiredStages": {
36
40
  "type": "array",
37
- "prefixItems": [
38
- { "const": "reconcile" },
39
- { "const": "audit" },
40
- { "const": "test" },
41
- { "const": "build" }
42
- ],
43
- "items": false,
44
- "minItems": 4,
45
- "maxItems": 4
41
+ "items": { "enum": ["reconcile", "audit", "test", "build"] },
42
+ "uniqueItems": true
46
43
  },
47
44
  "completion": {
48
45
  "type": "object",
49
46
  "additionalProperties": false,
50
47
  "required": [
51
48
  "manifestLockConsistent",
52
- "auditClean",
53
49
  "declaredTestsPass",
54
50
  "declaredBuildPass",
55
51
  "canonicalVerificationRequired"
@@ -57,10 +53,53 @@
57
53
  "properties": {
58
54
  "manifestLockConsistent": { "const": true },
59
55
  "auditClean": { "const": true },
56
+ "installedTreePresent": { "const": true },
60
57
  "declaredTestsPass": { "const": true },
61
58
  "declaredBuildPass": { "const": true },
62
59
  "canonicalVerificationRequired": { "const": true }
63
60
  }
64
61
  }
65
- }
62
+ },
63
+ "allOf": [
64
+ {
65
+ "if": { "properties": { "kind": { "const": "dependency-security" } } },
66
+ "then": {
67
+ "properties": {
68
+ "requiredStages": {
69
+ "prefixItems": [
70
+ { "const": "reconcile" },
71
+ { "const": "audit" },
72
+ { "const": "test" },
73
+ { "const": "build" }
74
+ ],
75
+ "items": false,
76
+ "minItems": 4,
77
+ "maxItems": 4
78
+ },
79
+ "completion": { "type": "object", "properties": { "auditClean": { "const": true } }, "required": ["auditClean"] }
80
+ }
81
+ }
82
+ },
83
+ {
84
+ "if": { "properties": { "kind": { "const": "dependency-materialization" } } },
85
+ "then": {
86
+ "required": ["sourceMutationRequired", "observableState"],
87
+ "properties": {
88
+ "sourceMutationRequired": { "const": false },
89
+ "observableState": { "const": "runtime-dependency-tree" },
90
+ "requiredStages": {
91
+ "prefixItems": [
92
+ { "const": "reconcile" },
93
+ { "const": "test" },
94
+ { "const": "build" }
95
+ ],
96
+ "items": false,
97
+ "minItems": 3,
98
+ "maxItems": 3
99
+ },
100
+ "completion": { "type": "object", "properties": { "installedTreePresent": { "const": true } }, "required": ["installedTreePresent"] }
101
+ }
102
+ }
103
+ }
104
+ ]
66
105
  }
@@ -9,6 +9,14 @@
9
9
  "properties": {
10
10
  "schemaVersion": { "const": "workspai.workspace-repair-proposal.v1" },
11
11
  "cardId": { "type": "string", "minLength": 1, "maxLength": 160 },
12
+ "blockerSignature": { "type": "string", "minLength": 1, "maxLength": 256 },
13
+ "targetActionIds": {
14
+ "type": "array",
15
+ "minItems": 1,
16
+ "maxItems": 200,
17
+ "uniqueItems": true,
18
+ "items": { "type": "string", "minLength": 1, "maxLength": 500 }
19
+ },
12
20
  "projectName": { "type": "string", "minLength": 1, "maxLength": 200 },
13
21
  "projectPath": { "type": "string", "minLength": 1, "maxLength": 1000 },
14
22
  "rationale": { "type": "string", "minLength": 1, "maxLength": 4000 },