rapidkit 0.41.2 → 0.41.4

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 (80) hide show
  1. package/README.md +61 -52
  2. package/contracts/agent-customization-pack.v1.json +20 -0
  3. package/contracts/artifact-remediation-plan.v1.json +163 -0
  4. package/contracts/doctor-project-evidence.v1.json +260 -2
  5. package/contracts/doctor-remediation-plan.v1.json +496 -0
  6. package/contracts/doctor-workspace-evidence.v1.json +260 -2
  7. package/contracts/extension-cli-compatibility.v1.json +6 -2
  8. package/contracts/runtime-command-surface.v1.json +2 -0
  9. package/contracts/workspace-intelligence/doctor-fix-result.v1.json +11 -1
  10. package/contracts/workspace-intelligence/fact-freshness.v1.json +58 -0
  11. package/contracts/workspace-intelligence/workspace-context.v1.json +84 -1
  12. package/contracts/workspace-intelligence/workspace-intelligence-history.v1.json +6 -2
  13. package/contracts/workspace-intelligence/workspace-model.v1.json +80 -0
  14. package/dist/analyze-UTB3PNKM.js +1 -0
  15. package/dist/artifact-remediation-plan-HRR3WH7T.js +3 -0
  16. package/dist/autopilot-release-MSK4ELKR.js +1 -0
  17. package/dist/chunk-2E6WGUN6.js +1 -0
  18. package/dist/{chunk-RSYUNEH7.js → chunk-42ARJBM7.js} +1 -1
  19. package/dist/{chunk-WCICO7ZB.js → chunk-4RJESJ23.js} +1 -1
  20. package/dist/chunk-56GL3GG7.js +32 -0
  21. package/dist/chunk-7BEZH5LE.js +2 -0
  22. package/dist/{chunk-ZPXMZCYG.js → chunk-ALCH4JAS.js} +1 -1
  23. package/dist/{chunk-ITJ6RKUW.js → chunk-AM5OJWXF.js} +1 -1
  24. package/dist/chunk-COBMOVUK.js +1 -0
  25. package/dist/{chunk-ELU3G6DQ.js → chunk-DKNVDNT4.js} +1 -1
  26. package/dist/{chunk-KIUSCFHF.js → chunk-FI4VMG2I.js} +1 -1
  27. package/dist/chunk-HT3G7HOV.js +78 -0
  28. package/dist/{chunk-BFEBZABL.js → chunk-KZLRUBQ5.js} +19 -19
  29. package/dist/chunk-L3R2AS2W.js +1 -0
  30. package/dist/chunk-LRF6PQOZ.js +1 -0
  31. package/dist/chunk-T5GS4BUP.js +2 -0
  32. package/dist/chunk-TDSIF42O.js +1 -0
  33. package/dist/chunk-THSTNVE3.js +2 -0
  34. package/dist/chunk-ULIVVMT6.js +1 -0
  35. package/dist/chunk-WHQWVQJH.js +4 -0
  36. package/dist/{create-RNP5ACQL.js → create-XTKHAYH7.js} +1 -1
  37. package/dist/doctor-4UQZIELO.js +1 -0
  38. package/dist/index.d.ts +15 -3
  39. package/dist/index.js +165 -140
  40. package/dist/pipeline-UOGPOG7S.js +5 -0
  41. package/dist/{workspace-E554C5SM.js → workspace-VKUBU4M4.js} +1 -1
  42. package/dist/{workspace-agent-sync-BHE2V4KS.js → workspace-agent-sync-RWDOTSWV.js} +1 -1
  43. package/dist/{workspace-context-VJTXW3K4.js → workspace-context-R3XWWLFP.js} +1 -1
  44. package/dist/workspace-explain-JIAM63TE.js +1 -0
  45. package/dist/{workspace-feedback-65NR3EZH.js → workspace-feedback-KCDFF7YS.js} +1 -1
  46. package/dist/{workspace-foundation-LISDH53T.js → workspace-foundation-V6SLZRBY.js} +1 -1
  47. package/dist/workspace-history-DSCH7PQZ.js +1 -0
  48. package/dist/{workspace-intelligence-EC63CRVF.js → workspace-intelligence-5BBKUJAG.js} +1 -1
  49. package/dist/{workspace-marker-IOPQ42A7.js → workspace-marker-HAC7BMEG.js} +1 -1
  50. package/dist/workspace-mcp-serve-GPSSYKZK.js +3 -0
  51. package/dist/workspace-model-YAC5BKLL.js +1 -0
  52. package/dist/workspace-run-MNVPNDUK.js +1 -0
  53. package/dist/{workspace-verify-IAUHP6Y6.js → workspace-verify-YDPCHWGQ.js} +1 -1
  54. package/dist/{workspace-watch-H2AETGFI.js → workspace-watch-P2PGSYDD.js} +1 -1
  55. package/docs/commands-reference.md +1 -0
  56. package/docs/contracts/ARTIFACT_CATALOG.md +70 -20
  57. package/docs/contracts/NAMING_AND_COEXISTENCE.md +3 -2
  58. package/docs/contracts/README.md +2 -0
  59. package/docs/doctor-command.md +217 -13
  60. package/package.json +1 -1
  61. package/scripts/enterprise-package-smoke.mjs +35 -36
  62. package/dist/analyze-QYHMGLSG.js +0 -1
  63. package/dist/autopilot-release-YDEUKRW6.js +0 -1
  64. package/dist/chunk-33LR2QEM.js +0 -2
  65. package/dist/chunk-46AGNYI7.js +0 -50
  66. package/dist/chunk-DWXRVGOY.js +0 -2
  67. package/dist/chunk-EN6YCX36.js +0 -1
  68. package/dist/chunk-HYAT2EG7.js +0 -1
  69. package/dist/chunk-JNXT6KJV.js +0 -32
  70. package/dist/chunk-RV6HBTFC.js +0 -2
  71. package/dist/chunk-VDTAPIHB.js +0 -2
  72. package/dist/chunk-VKLL63TL.js +0 -1
  73. package/dist/chunk-VMJA36WD.js +0 -1
  74. package/dist/doctor-XM6QDTDC.js +0 -1
  75. package/dist/pipeline-YD2DO7XY.js +0 -5
  76. package/dist/workspace-explain-XJ22ZXJY.js +0 -1
  77. package/dist/workspace-history-VPDADQKG.js +0 -1
  78. package/dist/workspace-mcp-serve-KOM2V35Q.js +0 -3
  79. package/dist/workspace-model-YL7W3573.js +0 -1
  80. package/dist/workspace-run-F5FADRY5.js +0 -1
@@ -28,10 +28,24 @@
28
28
  "projectScanSignature": { "type": "string" },
29
29
  "cachePath": { "type": ["string", "null"] },
30
30
  "healthScore": { "type": "object", "additionalProperties": true },
31
+ "evidenceFreshness": { "$ref": "#/$defs/evidenceFreshness" },
31
32
  "system": { "type": "object", "additionalProperties": true },
32
33
  "projects": {
33
34
  "type": "array",
34
- "items": { "type": "object", "additionalProperties": true }
35
+ "items": {
36
+ "type": "object",
37
+ "properties": {
38
+ "probes": {
39
+ "type": "array",
40
+ "items": { "$ref": "#/$defs/probe" }
41
+ },
42
+ "repairCapabilities": {
43
+ "type": "array",
44
+ "items": { "$ref": "#/$defs/repairCapability" }
45
+ }
46
+ },
47
+ "additionalProperties": true
48
+ }
35
49
  },
36
50
  "summary": {
37
51
  "type": "object",
@@ -51,7 +65,251 @@
51
65
  "type": "array",
52
66
  "items": { "type": "object", "additionalProperties": true }
53
67
  },
54
- "contract": { "type": "object", "additionalProperties": true }
68
+ "contract": { "type": "object", "additionalProperties": true },
69
+ "policyProfile": { "$ref": "#/$defs/policyProfile" }
70
+ },
71
+ "$defs": {
72
+ "freshness": {
73
+ "type": "object",
74
+ "required": [
75
+ "category",
76
+ "generatedAt",
77
+ "ttlSeconds",
78
+ "status",
79
+ "verifyBeforeUse",
80
+ "reason"
81
+ ],
82
+ "properties": {
83
+ "category": { "enum": ["structure", "verification", "state"] },
84
+ "generatedAt": { "type": "string", "format": "date-time" },
85
+ "ttlSeconds": { "type": ["integer", "null"], "minimum": 0 },
86
+ "expiresAt": { "type": "string", "format": "date-time" },
87
+ "status": { "enum": ["fresh", "stale", "unknown"] },
88
+ "verifyBeforeUse": { "type": "boolean" },
89
+ "reason": { "type": "string" }
90
+ },
91
+ "additionalProperties": false
92
+ },
93
+ "evidenceFreshness": {
94
+ "type": "object",
95
+ "required": [
96
+ "generatedAt",
97
+ "status",
98
+ "staleProbeCount",
99
+ "unknownProbeCount",
100
+ "liveStateProbeCount",
101
+ "verifyBeforeUseProbeCount"
102
+ ],
103
+ "properties": {
104
+ "generatedAt": { "type": "string", "format": "date-time" },
105
+ "status": { "enum": ["fresh", "stale", "unknown"] },
106
+ "staleProbeCount": { "type": "integer", "minimum": 0 },
107
+ "unknownProbeCount": { "type": "integer", "minimum": 0 },
108
+ "liveStateProbeCount": { "type": "integer", "minimum": 0 },
109
+ "verifyBeforeUseProbeCount": { "type": "integer", "minimum": 0 },
110
+ "oldestProbeGeneratedAt": { "type": "string", "format": "date-time" }
111
+ },
112
+ "additionalProperties": false
113
+ },
114
+ "repairIntent": {
115
+ "type": "object",
116
+ "required": [
117
+ "mode",
118
+ "confidence",
119
+ "primaryActionLabel",
120
+ "requiresApproval",
121
+ "requiresFreshEvidence",
122
+ "reason",
123
+ "relatedCommands"
124
+ ],
125
+ "properties": {
126
+ "mode": {
127
+ "enum": [
128
+ "none",
129
+ "run-command",
130
+ "edit-file",
131
+ "review-required",
132
+ "verify-before-fix",
133
+ "refresh-evidence",
134
+ "manual-guidance"
135
+ ]
136
+ },
137
+ "confidence": { "enum": ["high", "medium", "low"] },
138
+ "primaryActionLabel": { "type": "string" },
139
+ "requiresApproval": { "type": "boolean" },
140
+ "requiresFreshEvidence": { "type": "boolean" },
141
+ "reason": { "type": "string" },
142
+ "relatedCommands": { "type": "array", "items": { "type": "string" } }
143
+ },
144
+ "additionalProperties": false
145
+ },
146
+ "policyProfile": {
147
+ "type": "object",
148
+ "required": [
149
+ "name",
150
+ "exitOnErrors",
151
+ "exitOnWarnings",
152
+ "warningExitCode",
153
+ "advisoryWarningsBlockRelease",
154
+ "description"
155
+ ],
156
+ "properties": {
157
+ "name": { "enum": ["local", "ci", "release", "enterprise-strict"] },
158
+ "exitOnErrors": { "const": true },
159
+ "exitOnWarnings": { "type": "boolean" },
160
+ "warningExitCode": { "enum": [0, 1, 2] },
161
+ "advisoryWarningsBlockRelease": { "type": "boolean" },
162
+ "description": { "type": "string" }
163
+ },
164
+ "additionalProperties": false
165
+ },
166
+ "probe": {
167
+ "type": "object",
168
+ "properties": {
169
+ "id": { "type": "string", "minLength": 1 },
170
+ "label": { "type": "string", "minLength": 1 },
171
+ "status": { "enum": ["pass", "warn", "fail"] },
172
+ "severity": { "enum": ["info", "warn", "error"] },
173
+ "scope": { "type": "string" },
174
+ "reason": { "type": "string" },
175
+ "recommendation": { "type": "string" },
176
+ "freshness": { "$ref": "#/$defs/freshness" },
177
+ "issueClass": {
178
+ "enum": [
179
+ "dependency",
180
+ "environment",
181
+ "security",
182
+ "test",
183
+ "quality",
184
+ "container",
185
+ "deployment",
186
+ "runtime",
187
+ "workspace-contract",
188
+ "source-tree",
189
+ "framework",
190
+ "configuration",
191
+ "custom",
192
+ "unknown"
193
+ ]
194
+ },
195
+ "operationalImpact": {
196
+ "enum": [
197
+ "none",
198
+ "developer-friction",
199
+ "ci-risk",
200
+ "release-risk",
201
+ "security-risk",
202
+ "runtime-risk",
203
+ "customer-risk"
204
+ ]
205
+ },
206
+ "repairIntent": { "$ref": "#/$defs/repairIntent" },
207
+ "repairCapability": { "$ref": "#/$defs/repairCapability" }
208
+ },
209
+ "additionalProperties": true
210
+ },
211
+ "repairCapability": {
212
+ "type": "object",
213
+ "required": [
214
+ "id",
215
+ "issueId",
216
+ "title",
217
+ "status",
218
+ "fixKind",
219
+ "risk",
220
+ "canAutoFix",
221
+ "canEditFiles",
222
+ "requiresApproval",
223
+ "requiresReview",
224
+ "files",
225
+ "refreshCommands",
226
+ "reason"
227
+ ],
228
+ "properties": {
229
+ "id": { "type": "string", "minLength": 1 },
230
+ "issueId": { "type": "string", "minLength": 1 },
231
+ "title": { "type": "string", "minLength": 1 },
232
+ "status": { "enum": ["available", "manual", "blocked"] },
233
+ "fixKind": {
234
+ "enum": [
235
+ "package-json-script",
236
+ "file-create",
237
+ "file-append",
238
+ "file-copy",
239
+ "dependency-sync",
240
+ "command",
241
+ "manual"
242
+ ]
243
+ },
244
+ "risk": { "enum": ["safe", "guarded", "invasive"] },
245
+ "canAutoFix": { "type": "boolean" },
246
+ "canEditFiles": { "type": "boolean" },
247
+ "requiresApproval": { "type": "boolean" },
248
+ "requiresReview": { "type": "boolean" },
249
+ "files": { "type": "array", "items": { "type": "string" } },
250
+ "command": { "type": "string" },
251
+ "operation": { "$ref": "#/$defs/repairOperation" },
252
+ "verifyCommand": { "type": "string" },
253
+ "refreshCommands": { "type": "array", "items": { "type": "string" } },
254
+ "reason": { "type": "string" },
255
+ "limitations": { "type": "array", "items": { "type": "string" } }
256
+ },
257
+ "additionalProperties": true
258
+ },
259
+ "repairOperation": {
260
+ "type": "object",
261
+ "required": ["type", "path"],
262
+ "properties": {
263
+ "type": {
264
+ "enum": [
265
+ "file-create",
266
+ "file-append",
267
+ "file-copy",
268
+ "package-json-script",
269
+ "json-edit",
270
+ "env-key-add",
271
+ "makefile-target"
272
+ ]
273
+ },
274
+ "sourcePath": { "type": "string", "minLength": 1 },
275
+ "path": { "type": "string", "minLength": 1 },
276
+ "content": { "type": "string" },
277
+ "overwrite": { "type": "boolean" },
278
+ "lines": { "type": "array", "items": { "type": "string" } },
279
+ "ensureNewline": { "type": "boolean" },
280
+ "scriptName": { "type": "string" },
281
+ "scriptValue": { "type": "string" },
282
+ "edits": {
283
+ "type": "array",
284
+ "items": {
285
+ "type": "object",
286
+ "required": ["pointer", "value"],
287
+ "properties": {
288
+ "pointer": { "type": "string" },
289
+ "value": { "type": ["string", "number", "boolean", "null"] }
290
+ },
291
+ "additionalProperties": false
292
+ }
293
+ },
294
+ "keys": {
295
+ "type": "array",
296
+ "items": {
297
+ "type": "object",
298
+ "required": ["name", "value"],
299
+ "properties": {
300
+ "name": { "type": "string" },
301
+ "value": { "type": "string" },
302
+ "comment": { "type": "string" }
303
+ },
304
+ "additionalProperties": false
305
+ }
306
+ },
307
+ "target": { "type": "string" },
308
+ "command": { "type": "string" },
309
+ "phony": { "type": "boolean" }
310
+ },
311
+ "additionalProperties": false
312
+ }
55
313
  },
56
314
  "additionalProperties": true
57
315
  }
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "schemaVersion": "rapidkit-extension-cli-compatibility.v1",
3
3
  "cli": "rapidkit-npm",
4
- "minimumVerifiedCliVersion": "0.41.2",
4
+ "minimumVerifiedCliVersion": "0.41.4",
5
5
  "publishedContractSchemas": {
6
6
  "runtimeCommandSurface": "rapidkit-runtime-command-surface-v1",
7
7
  "cliLogEvent": "cli-log-event-v1",
8
8
  "freshnessMetadata": "rapidkit-freshness-metadata-v1",
9
+ "factFreshness": "rapidkit-fact-freshness-v1",
9
10
  "blockerResolution": "rapidkit-blocker-resolution-v1",
10
11
  "workspaceModel": "workspace-model.v1",
11
12
  "workspaceImpact": "workspace-impact.v1",
@@ -17,6 +18,9 @@
17
18
  "workspaceOperationalSkill": "workspace-operational-skill.v1",
18
19
  "workspaceSkillsIndex": "workspace-skills-index.v1",
19
20
  "workspaceExplain": "workspace-explain.v1",
20
- "agentActionOutcome": "agent-action-outcome.v1"
21
+ "agentActionOutcome": "agent-action-outcome.v1",
22
+ "doctorRemediationPlan": "doctor-remediation-plan-v2",
23
+ "artifactRemediationPlan": "artifact-remediation-plan-v1",
24
+ "doctorFixResult": "rapidkit-doctor-fix-result-v1"
21
25
  }
22
26
  }
@@ -53,6 +53,7 @@
53
53
  "watch",
54
54
  "context",
55
55
  "agent-sync",
56
+ "remediation-plan",
56
57
  "explain",
57
58
  "why",
58
59
  "trace",
@@ -76,6 +77,7 @@
76
77
  "verify",
77
78
  "context",
78
79
  "agent-sync",
80
+ "remediation-plan",
79
81
  "explain",
80
82
  "why",
81
83
  "trace"
@@ -4,11 +4,21 @@
4
4
  "title": "Doctor fix execution result",
5
5
  "type": "object",
6
6
  "additionalProperties": true,
7
- "required": ["schemaVersion", "appliedFixes", "remainingBlockers", "verifyRecommended"],
7
+ "required": [
8
+ "schemaVersion",
9
+ "generatedAt",
10
+ "appliedFixes",
11
+ "remainingBlockers",
12
+ "verifyRecommended"
13
+ ],
8
14
  "properties": {
9
15
  "schemaVersion": {
10
16
  "const": "rapidkit-doctor-fix-result-v1"
11
17
  },
18
+ "generatedAt": {
19
+ "type": "string",
20
+ "format": "date-time"
21
+ },
12
22
  "appliedFixes": {
13
23
  "type": "array",
14
24
  "items": {
@@ -0,0 +1,58 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://getrapidkit.com/schemas/fact-freshness.v1.json",
4
+ "title": "RapidKit Fact Freshness Contract",
5
+ "type": "object",
6
+ "required": [
7
+ "schemaVersion",
8
+ "kind",
9
+ "category",
10
+ "generatedAt",
11
+ "ttlSeconds",
12
+ "status",
13
+ "verifyBeforeUse",
14
+ "reason"
15
+ ],
16
+ "properties": {
17
+ "schemaVersion": {
18
+ "const": "rapidkit-fact-freshness-v1"
19
+ },
20
+ "kind": {
21
+ "enum": ["durable", "derived", "evidence-backed", "live", "verify-before-use"]
22
+ },
23
+ "category": {
24
+ "enum": ["structure", "verification", "state"]
25
+ },
26
+ "generatedAt": {
27
+ "type": "string",
28
+ "format": "date-time"
29
+ },
30
+ "ttlSeconds": {
31
+ "type": ["integer", "null"],
32
+ "minimum": 0
33
+ },
34
+ "expiresAt": {
35
+ "type": "string",
36
+ "format": "date-time"
37
+ },
38
+ "status": {
39
+ "enum": ["fresh", "stale", "unknown"]
40
+ },
41
+ "verifyBeforeUse": {
42
+ "type": "boolean"
43
+ },
44
+ "sourceArtifact": {
45
+ "type": "string"
46
+ },
47
+ "sourcePath": {
48
+ "type": "string"
49
+ },
50
+ "inputsHash": {
51
+ "type": "string"
52
+ },
53
+ "reason": {
54
+ "type": "string"
55
+ }
56
+ },
57
+ "additionalProperties": false
58
+ }
@@ -41,7 +41,15 @@
41
41
  },
42
42
  "scope": { "type": "object", "additionalProperties": true },
43
43
  "projects": { "type": "array", "items": { "type": "object", "additionalProperties": true } },
44
- "safeCommands": { "type": "array", "items": { "type": "object", "additionalProperties": true } },
44
+ "safeCommands": {
45
+ "type": "array",
46
+ "items": { "type": "object", "additionalProperties": true }
47
+ },
48
+ "factFreshness": { "$ref": "#/$defs/factFreshnessSummary" },
49
+ "facts": {
50
+ "type": "array",
51
+ "items": { "$ref": "#/$defs/workspaceFact" }
52
+ },
45
53
  "validation": {
46
54
  "type": "object",
47
55
  "required": ["status", "errors", "warnings"],
@@ -55,5 +63,80 @@
55
63
  "additionalProperties": true
56
64
  }
57
65
  },
66
+ "$defs": {
67
+ "factFreshness": {
68
+ "type": "object",
69
+ "required": [
70
+ "schemaVersion",
71
+ "kind",
72
+ "category",
73
+ "generatedAt",
74
+ "ttlSeconds",
75
+ "status",
76
+ "verifyBeforeUse",
77
+ "reason"
78
+ ],
79
+ "properties": {
80
+ "schemaVersion": { "const": "rapidkit-fact-freshness-v1" },
81
+ "kind": {
82
+ "enum": ["durable", "derived", "evidence-backed", "live", "verify-before-use"]
83
+ },
84
+ "category": { "enum": ["structure", "verification", "state"] },
85
+ "generatedAt": { "type": "string", "format": "date-time" },
86
+ "ttlSeconds": { "type": ["integer", "null"], "minimum": 0 },
87
+ "expiresAt": { "type": "string", "format": "date-time" },
88
+ "status": { "enum": ["fresh", "stale", "unknown"] },
89
+ "verifyBeforeUse": { "type": "boolean" },
90
+ "sourceArtifact": { "type": "string" },
91
+ "sourcePath": { "type": "string" },
92
+ "inputsHash": { "type": "string" },
93
+ "reason": { "type": "string" }
94
+ },
95
+ "additionalProperties": false
96
+ },
97
+ "workspaceFact": {
98
+ "type": "object",
99
+ "required": ["id", "label", "scope", "value", "freshness"],
100
+ "properties": {
101
+ "id": { "type": "string" },
102
+ "label": { "type": "string" },
103
+ "scope": {
104
+ "enum": ["workspace", "project", "evidence", "policy", "contract", "command", "graph"]
105
+ },
106
+ "project": { "type": "string" },
107
+ "value": true,
108
+ "freshness": { "$ref": "#/$defs/factFreshness" }
109
+ },
110
+ "additionalProperties": false
111
+ },
112
+ "factFreshnessSummary": {
113
+ "type": "object",
114
+ "required": [
115
+ "schemaVersion",
116
+ "generatedAt",
117
+ "status",
118
+ "totalFacts",
119
+ "staleFacts",
120
+ "unknownFacts",
121
+ "liveFacts",
122
+ "verifyBeforeUseFacts",
123
+ "byKind",
124
+ "byCategory"
125
+ ],
126
+ "properties": {
127
+ "schemaVersion": { "const": "rapidkit-fact-freshness-v1" },
128
+ "generatedAt": { "type": "string", "format": "date-time" },
129
+ "status": { "enum": ["fresh", "stale", "unknown"] },
130
+ "totalFacts": { "type": "integer", "minimum": 0 },
131
+ "staleFacts": { "type": "integer", "minimum": 0 },
132
+ "unknownFacts": { "type": "integer", "minimum": 0 },
133
+ "liveFacts": { "type": "integer", "minimum": 0 },
134
+ "verifyBeforeUseFacts": { "type": "integer", "minimum": 0 },
135
+ "byKind": { "type": "object", "additionalProperties": { "type": "integer" } },
136
+ "byCategory": { "type": "object", "additionalProperties": { "type": "integer" } }
137
+ },
138
+ "additionalProperties": false
139
+ }
140
+ },
58
141
  "additionalProperties": true
59
142
  }
@@ -14,7 +14,7 @@
14
14
  "required": ["generatedAt"],
15
15
  "properties": {
16
16
  "generatedAt": { "type": "string", "format": "date-time" },
17
- "kind": { "enum": ["verify", "agent-action"] },
17
+ "kind": { "enum": ["verify", "agent-action", "doctor-fix"] },
18
18
  "verdict": { "enum": ["ready", "needs-attention", "blocked"] },
19
19
  "risk": { "type": "string" },
20
20
  "affectedProjects": { "type": "integer", "minimum": 0 },
@@ -26,7 +26,11 @@
26
26
  "scope": { "type": "string" },
27
27
  "summary": { "type": "string" },
28
28
  "outcome": { "enum": ["ok", "failed"] },
29
- "evidenceSha256": { "type": "string" }
29
+ "evidenceSha256": { "type": "string" },
30
+ "applied": { "type": "integer", "minimum": 0 },
31
+ "failed": { "type": "integer", "minimum": 0 },
32
+ "skipped": { "type": "integer", "minimum": 0 },
33
+ "remainingBlockers": { "type": "integer", "minimum": 0 }
30
34
  },
31
35
  "additionalProperties": true
32
36
  }
@@ -36,6 +36,11 @@
36
36
  },
37
37
  "identity": { "type": "object", "additionalProperties": true },
38
38
  "summary": { "type": "object", "additionalProperties": true },
39
+ "factFreshness": { "$ref": "#/$defs/factFreshnessSummary" },
40
+ "facts": {
41
+ "type": "array",
42
+ "items": { "$ref": "#/$defs/workspaceFact" }
43
+ },
39
44
  "projects": {
40
45
  "type": "array",
41
46
  "items": { "type": "object", "additionalProperties": true }
@@ -51,5 +56,80 @@
51
56
  "policies": { "type": "object", "additionalProperties": true },
52
57
  "validation": { "type": "object", "additionalProperties": true }
53
58
  },
59
+ "$defs": {
60
+ "factFreshness": {
61
+ "type": "object",
62
+ "required": [
63
+ "schemaVersion",
64
+ "kind",
65
+ "category",
66
+ "generatedAt",
67
+ "ttlSeconds",
68
+ "status",
69
+ "verifyBeforeUse",
70
+ "reason"
71
+ ],
72
+ "properties": {
73
+ "schemaVersion": { "const": "rapidkit-fact-freshness-v1" },
74
+ "kind": {
75
+ "enum": ["durable", "derived", "evidence-backed", "live", "verify-before-use"]
76
+ },
77
+ "category": { "enum": ["structure", "verification", "state"] },
78
+ "generatedAt": { "type": "string", "format": "date-time" },
79
+ "ttlSeconds": { "type": ["integer", "null"], "minimum": 0 },
80
+ "expiresAt": { "type": "string", "format": "date-time" },
81
+ "status": { "enum": ["fresh", "stale", "unknown"] },
82
+ "verifyBeforeUse": { "type": "boolean" },
83
+ "sourceArtifact": { "type": "string" },
84
+ "sourcePath": { "type": "string" },
85
+ "inputsHash": { "type": "string" },
86
+ "reason": { "type": "string" }
87
+ },
88
+ "additionalProperties": false
89
+ },
90
+ "workspaceFact": {
91
+ "type": "object",
92
+ "required": ["id", "label", "scope", "value", "freshness"],
93
+ "properties": {
94
+ "id": { "type": "string" },
95
+ "label": { "type": "string" },
96
+ "scope": {
97
+ "enum": ["workspace", "project", "evidence", "policy", "contract", "command", "graph"]
98
+ },
99
+ "project": { "type": "string" },
100
+ "value": true,
101
+ "freshness": { "$ref": "#/$defs/factFreshness" }
102
+ },
103
+ "additionalProperties": false
104
+ },
105
+ "factFreshnessSummary": {
106
+ "type": "object",
107
+ "required": [
108
+ "schemaVersion",
109
+ "generatedAt",
110
+ "status",
111
+ "totalFacts",
112
+ "staleFacts",
113
+ "unknownFacts",
114
+ "liveFacts",
115
+ "verifyBeforeUseFacts",
116
+ "byKind",
117
+ "byCategory"
118
+ ],
119
+ "properties": {
120
+ "schemaVersion": { "const": "rapidkit-fact-freshness-v1" },
121
+ "generatedAt": { "type": "string", "format": "date-time" },
122
+ "status": { "enum": ["fresh", "stale", "unknown"] },
123
+ "totalFacts": { "type": "integer", "minimum": 0 },
124
+ "staleFacts": { "type": "integer", "minimum": 0 },
125
+ "unknownFacts": { "type": "integer", "minimum": 0 },
126
+ "liveFacts": { "type": "integer", "minimum": 0 },
127
+ "verifyBeforeUseFacts": { "type": "integer", "minimum": 0 },
128
+ "byKind": { "type": "object", "additionalProperties": { "type": "integer" } },
129
+ "byCategory": { "type": "object", "additionalProperties": { "type": "integer" } }
130
+ },
131
+ "additionalProperties": false
132
+ }
133
+ },
54
134
  "additionalProperties": true
55
135
  }
@@ -0,0 +1 @@
1
+ export{b as printAnalyzeReport,a as runAnalyze}from'./chunk-DKNVDNT4.js';
@@ -0,0 +1,3 @@
1
+ import {a}from'./chunk-2E6WGUN6.js';import p from'path';import b from'fs-extra';var w=[{artifactKind:"bootstrap-compliance",cardId:"bootstrap",fileNames:["bootstrap-compliance.latest.json"]},{artifactKind:"doctor-workspace",cardId:"doctor",fileNames:["doctor-remediation-plan-last-run.json"]},{artifactKind:"analyze",cardId:"analyze",fileNames:["analyze-last-run.json"]},{artifactKind:"readiness",cardId:"readiness",fileNames:["release-readiness-last-run.json"]},{artifactKind:"pipeline",cardId:"pipeline",fileNames:["pipeline-last-run.json"]},{artifactKind:"workspace-run",cardId:"workspaceRun",fileNames:["workspace-run-last.json"]},{artifactKind:"workspace-verify",cardId:"workspaceVerify",fileNames:["workspace-verify-last-run.json"]}];function f(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:void 0}function m(e){return Array.isArray(e)?e.filter(r=>typeof r=="string"&&r.trim().length>0):[]}function k(e){return [...new Set(e.map(r=>r.trim()).filter(Boolean))]}function v(e,r,t){return t?r:p.relative(e,r)}function j(e){let r=e?.trim()||"npx rapidkit bootstrap";if(!/(?:^|\s)--ci(?:\s|$)/.test(r)&&/(?:^|\s)--json(?:\s|$)/.test(r))return r.replace(/(?:^|\s)--json(?:\s|$)/,i=>{let s=i.startsWith(" ")?" ":"",c=i.endsWith(" ")?" ":"";return `${s}--ci --json${c}`}).trim();let t=/(?:^|\s)--ci(?:\s|$)/.test(r)?r:`${r} --ci`;return /(?:^|\s)--json(?:\s|$)/.test(t)?t:`${t} --json`}function x(e){return `${JSON.stringify({schemaVersion:"rapidkit.compatibility-matrix.v1",generatedAt:e,source:"rapidkit workspace remediation-plan",runtimes:{},notes:["Minimal enterprise baseline. Add runtime and toolchain entries as governance matures."]},null,2)}
2
+ `}function I(e){return `${JSON.stringify({schema_version:"1.0",enabled:false,strategy:"on-demand",artifacts:[],created_at:e,note:"Minimal enterprise baseline. Set enabled: true and add artifact entries to activate mirroring."},null,2)}
3
+ `}function K(e){let r=e.payload,t=m(r.blockers),i=m(r.blockingReasons),s=m(r.failures),c=m(r.reasons),l=m(r.policyViolations),o=f(r.summary),g=m(o?.blockers);if(e.artifactKind==="analyze"){let a=(Array.isArray(r.findings)?r.findings:[]).map(n=>f(n)).filter(n=>!!n).map(n=>String(n.message??n.title??n.id??"").trim()).filter(Boolean);return k([...t,...a,...i])}if(e.artifactKind==="workspace-run"){let u=f(r.stages),a=Object.entries(u??{}).flatMap(([n,h])=>{let R=f(h);return (Array.isArray(R?.projects)?R.projects:[]).map(d=>f(d)).filter(d=>!!d).filter(d=>d.status==="failed"||d.ok===false).map(d=>`${n}: ${String(d.project??d.name??"project")} failed`)});return k([...t,...a,...i])}return k([...t,...i,...s,...c,...l,...g])}function y(e){return {id:e.id,artifactKind:e.artifactKind,cardId:e.cardId,title:e.title,order:e.order,phase:e.phase,scope:"workspace",status:e.status??"ready",mode:e.mode,risk:e.risk,requiresApproval:true,blocker:e.blocker,summary:e.summary,...e.command?{command:e.command}:{},verifyCommand:e.verifyCommand,cwd:"workspace",files:e.files??[],...e.operation?{operation:e.operation}:{},rollback:{available:!!e.operation,strategy:e.operation?"idempotent":"none"},notes:e.notes??[]}}function C(e){let r=[],t=j("npx rapidkit bootstrap --json");for(let i of e.blockers)i.includes("profile.enterprise.ci")&&r.push(y({id:"bootstrap.enterprise-ci",artifactKind:"bootstrap-compliance",cardId:"bootstrap",title:"Run bootstrap in deterministic CI mode",order:10,phase:"bootstrap-preflight",blocker:i,summary:"Enterprise bootstrap compliance requires --ci for deterministic execution.",mode:"run-command",risk:"safe",command:t,verifyCommand:t})),i.includes("profile.enterprise.compatibility-matrix")&&r.push(y({id:"bootstrap.compatibility-matrix",artifactKind:"bootstrap-compliance",cardId:"bootstrap",title:"Create enterprise compatibility matrix baseline",order:20,phase:"bootstrap-config",blocker:i,summary:"Create the missing compatibility matrix baseline without overwriting user data.",mode:"edit-file",risk:"safe",verifyCommand:t,files:[".rapidkit/compatibility-matrix.json"],operation:{type:"file-create",path:".rapidkit/compatibility-matrix.json",content:x(e.generatedAt),overwrite:false}})),i.includes("profile.enterprise.mirror-config")&&r.push(y({id:"bootstrap.mirror-config",artifactKind:"bootstrap-compliance",cardId:"bootstrap",title:"Create enterprise mirror config baseline",order:30,phase:"bootstrap-config",blocker:i,summary:"Create the missing mirror configuration baseline without enabling mirroring.",mode:"edit-file",risk:"safe",verifyCommand:t,files:[".rapidkit/mirror-config.json"],operation:{type:"file-create",path:".rapidkit/mirror-config.json",content:I(e.generatedAt),overwrite:false}}));return r}function M(e){let t={analyze:{title:"Refresh analyze evidence",phase:"analysis",command:"npx rapidkit analyze --strict --json",verify:"npx rapidkit analyze --strict --json"},readiness:{title:"Refresh release readiness",phase:"release-readiness",command:e.ciMode?"npx rapidkit readiness --strict --json":"npx rapidkit readiness --json",verify:e.ciMode?"npx rapidkit readiness --strict --json":"npx rapidkit readiness --json"},pipeline:{title:"Rerun governance pipeline",phase:"governance-pipeline",command:"npx rapidkit pipeline --json --strict",verify:"npx rapidkit pipeline --json --strict"},"workspace-run":{title:"Rerun failed workspace stage",phase:"fleet-run",command:e.ciMode?"npx rapidkit workspace run test --strict --json":"npx rapidkit workspace run test --json",verify:e.ciMode?"npx rapidkit workspace run test --strict --json":"npx rapidkit workspace run test --json"},"workspace-verify":{title:"Refresh workspace verify gate",phase:"verification",command:e.ciMode?"npx rapidkit workspace verify --strict --json":"npx rapidkit workspace verify --json",verify:e.ciMode?"npx rapidkit workspace verify --strict --json":"npx rapidkit workspace verify --json"},"doctor-workspace":{title:"Use Doctor remediation plan",phase:"doctor-remediation",command:"npx rapidkit doctor workspace --plan --json",verify:"npx rapidkit doctor workspace --json"}}[e.report.artifactKind]??{title:"Refresh artifact evidence",phase:"evidence-refresh",command:"npx rapidkit pipeline --json --strict",verify:"npx rapidkit pipeline --json --strict"};return y({id:`${e.report.cardId}.refresh.${e.order}`,artifactKind:e.report.artifactKind,cardId:e.report.cardId,title:t.title,order:e.order,phase:t.phase,blocker:e.blocker,summary:"No deterministic file operation is available for this artifact yet; refresh the evidence and continue with the card-specific plan.",mode:e.report.artifactKind==="doctor-workspace"?"verify-before-fix":"run-command",risk:"guarded",status:e.report.artifactKind==="doctor-workspace"?"review-required":"ready",command:t.command,verifyCommand:t.verify,notes:e.report.artifactKind==="doctor-workspace"?["Read doctor-remediation-plan-last-run.json for ordered file-level steps."]:[]})}async function N(e){let r=p.join(e,".rapidkit","reports"),t=[];for(let i of w)for(let s of i.fileNames){let c=p.join(r,s);if(await b.pathExists(c))try{let l=await b.readJSON(c),o=f(l);if(!o)continue;t.push({artifactKind:i.artifactKind,cardId:i.cardId,fileName:s,absolutePath:c,payload:o});}catch{t.push({artifactKind:i.artifactKind,cardId:i.cardId,fileName:s,absolutePath:c,payload:{blockers:[`${i.artifactKind}: report exists but could not be parsed.`]}});}}return t}async function _(e){let r=p.resolve(e.workspacePath),t=e.includeAbsolutePaths===true,i=e.ciMode===true,s=new Date().toISOString(),c=p.join(r,".rapidkit","reports"),l=await N(r),o=[],g=1;for(let a of l){let n=K(a);if(n.length!==0){if(a.artifactKind==="bootstrap-compliance"){o.push(...C({blockers:n,generatedAt:s})),g=o.length+1;continue}for(let h of n.slice(0,8))o.push(M({report:a,blocker:h,order:g,ciMode:i})),g+=1;}}let u={safe:o.filter(a=>a.risk==="safe").length,guarded:o.filter(a=>a.risk==="guarded").length,invasive:o.filter(a=>a.risk==="invasive").length};return {schemaVersion:a,generatedAt:s,workspace:{name:p.basename(r),...t?{path:r}:{}},source:{command:"workspace remediation-plan",reportsDir:v(r,c,t),includeAbsolutePaths:t,ciMode:i},summary:{artifactsScanned:l.length,cardsCovered:k(o.map(a=>a.cardId)).length,totalActions:o.length,executableActions:o.filter(a=>a.status==="ready").length,risk:u},actions:o}}async function z(e,r){let t=p.join(r,".rapidkit","reports","artifact-remediation-plan-last-run.json");return await b.ensureDir(p.dirname(t)),await b.writeJSON(t,e,{spaces:2}),t}export{_ as buildArtifactRemediationPlan,z as writeArtifactRemediationPlan};
@@ -0,0 +1 @@
1
+ export{b as AUTOPILOT_RELEASE_ALIAS_FILENAME,a as AUTOPILOT_RELEASE_LAST_RUN_FILENAME,c as runAutopilotRelease}from'./chunk-ALCH4JAS.js';
@@ -0,0 +1 @@
1
+ var A="artifact-remediation-plan-v1";export{A as a};
@@ -1,4 +1,4 @@
1
- import {k,e as e$1}from'./chunk-JU3VNLTY.js';import {b as b$2}from'./chunk-CDCYRBAY.js';import {e,g,f as f$1,b as b$4,c as c$1,d as d$1}from'./chunk-E5ZVQL3C.js';import {a,d,b as b$1}from'./chunk-RV6HBTFC.js';import {b}from'./chunk-Q2KZIBV4.js';import {f,c,e as e$2}from'./chunk-OLDPVVSV.js';import {b as b$3,j,i,l,h,q}from'./chunk-WRMCPKGA.js';import {promises}from'fs';import*as P from'fs-extra';import m from'path';import t from'chalk';import {execa}from'execa';async function H(e,o={}){let n=m.resolve(e),r=o.workspaceName??m.basename(n);try{let{registerWorkspace:a}=await import('./workspace-E554C5SM.js');await a(n,r);}catch(a){o.silent||console.warn(t.gray(`Note: Could not register workspace in shared registry: ${a?.message??a}`));}try{let{syncWorkspaceContract:a}=await import('./workspace-contract-OO4GMENV.js'),c=await a({workspacePath:n});if(o.silent||console.log(t.gray(`\u2139\uFE0F Workspace intelligence synced (contract + registry summary, ${c.contract.projects.length} project(s)).`)),!o.silent&&c.verification.status!=="passed"){console.log(t.yellow("\u26A0\uFE0F Workspace contract verification reported issues."));for(let d of c.verification.violations)console.log(t.gray(` Violation: ${d}`));console.log(t.white(" Next: npx rapidkit workspace contract inspect"));}}catch(a){o.silent||console.warn(t.gray(`Note: Could not sync workspace intelligence layer: ${a?.message??a}`));}}function S(){return h()}async function B(e,o,n,r){let a=d(o,b(),n);r&&(a.metadata||(a.metadata={}),a.metadata.python={version:r}),await b$1(e,a);}async function z(e){await P.outputFile(m.join(e,".gitignore"),`.venv/
1
+ import {k,e as e$1}from'./chunk-JU3VNLTY.js';import {b as b$2}from'./chunk-CDCYRBAY.js';import {e,g,f as f$1,b as b$4,c as c$1,d as d$1}from'./chunk-E5ZVQL3C.js';import {a,d,b as b$1}from'./chunk-7BEZH5LE.js';import {b}from'./chunk-Q2KZIBV4.js';import {f,c,e as e$2}from'./chunk-OLDPVVSV.js';import {b as b$3,j,i,l,h,q}from'./chunk-WRMCPKGA.js';import {promises}from'fs';import*as P from'fs-extra';import m from'path';import t from'chalk';import {execa}from'execa';async function H(e,o={}){let n=m.resolve(e),r=o.workspaceName??m.basename(n);try{let{registerWorkspace:a}=await import('./workspace-VKUBU4M4.js');await a(n,r);}catch(a){o.silent||console.warn(t.gray(`Note: Could not register workspace in shared registry: ${a?.message??a}`));}try{let{syncWorkspaceContract:a}=await import('./workspace-contract-OO4GMENV.js'),c=await a({workspacePath:n});if(o.silent||console.log(t.gray(`\u2139\uFE0F Workspace intelligence synced (contract + registry summary, ${c.contract.projects.length} project(s)).`)),!o.silent&&c.verification.status!=="passed"){console.log(t.yellow("\u26A0\uFE0F Workspace contract verification reported issues."));for(let d of c.verification.violations)console.log(t.gray(` Violation: ${d}`));console.log(t.white(" Next: npx rapidkit workspace contract inspect"));}}catch(a){o.silent||console.warn(t.gray(`Note: Could not sync workspace intelligence layer: ${a?.message??a}`));}}function S(){return h()}async function B(e,o,n,r){let a=d(o,b(),n);r&&(a.metadata||(a.metadata={}),a.metadata.python={version:r}),await b$1(e,a);}async function z(e){await P.outputFile(m.join(e,".gitignore"),`.venv/
2
2
  __pycache__/
3
3
  *.pyc
4
4
  .env