workspai 0.48.0 → 0.50.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +151 -75
- package/contracts/analyze-last-run.v1.json +2 -2
- package/contracts/artifact-remediation-plan.v1.json +3 -9
- package/contracts/autopilot-release.v1.json +2 -0
- package/contracts/bootstrap-compliance.v1.json +2 -1
- package/contracts/cli-log-event.v1.json +1 -1
- package/contracts/cli-runtime-command-inventory.v1.snapshot.json +84 -0
- package/contracts/compatibility-matrix.v1.json +2 -0
- package/contracts/create-planner-capabilities.v1.json +144 -32
- package/contracts/doctor-project-evidence.v1.json +191 -11
- package/contracts/doctor-project-scan.v2.json +2 -0
- package/contracts/doctor-remediation-plan.v1.json +2 -2
- package/contracts/doctor-remediation-plan.v2.json +2 -2
- package/contracts/doctor-workspace-cache.v2.json +2 -0
- package/contracts/doctor-workspace-evidence.v1.json +189 -10
- package/contracts/extension-cli-compatibility.v1.json +11 -1
- package/contracts/infra-plan.v1.json +2 -0
- package/contracts/ingestion-plan.v1.json +85 -0
- package/contracts/ingestion-result.v1.json +59 -0
- package/contracts/mirror-ops.v1.json +2 -1
- package/contracts/pipeline-last-run.v1.json +2 -2
- package/contracts/private-product-manifest.v1.json +2 -0
- package/contracts/product-factory-plan.v1.json +2 -0
- package/contracts/project-archive.v1.json +2 -0
- package/contracts/project-entry-capability.v1.json +2 -3
- package/contracts/project-test-coverage.v1.json +189 -0
- package/contracts/project-workspace-link.v1.json +66 -0
- package/contracts/project-workspace-resolution.v1.json +28 -0
- package/contracts/published-contract-catalog.v1.json +50 -0
- package/contracts/release-readiness.v1.json +2 -2
- package/contracts/runtime-command-surface.v1.json +1456 -123
- package/contracts/transparency-evidence.v1.json +2 -1
- package/contracts/workspace-archive-capabilities.v1.json +11 -5
- package/contracts/workspace-archive-manifest.v1.json +236 -0
- package/contracts/workspace-archive-operation-result.v1.json +236 -0
- package/contracts/workspace-contract.v1.json +1 -1
- package/contracts/workspace-intelligence/agent-action-outcome.v1.json +2 -2
- package/contracts/workspace-intelligence/agent-customization-pack-report.v1.json +1 -1
- package/contracts/workspace-intelligence/agent-hooks.v1.json +2 -0
- package/contracts/workspace-intelligence/agent-reports-index.v1.json +1 -1
- package/contracts/workspace-intelligence/blocker-resolution.v1.json +3 -9
- package/contracts/workspace-intelligence/doctor-fix-result.v1.json +2 -2
- package/contracts/workspace-intelligence/doctor-graph-diagnosis.v1.json +208 -0
- package/contracts/workspace-intelligence/fact-freshness.v1.json +2 -2
- package/contracts/workspace-intelligence/mcp-design.v1.json +2 -0
- package/contracts/workspace-intelligence/model-usage-event.v1.json +1 -1
- package/contracts/workspace-intelligence/project-context-agent.v1.json +360 -0
- package/contracts/workspace-intelligence/studio-blocker-handoff.v1.json +1 -1
- package/contracts/workspace-intelligence/workspace-context.v1.json +1 -1
- package/contracts/workspace-intelligence/workspace-contract-verify.v1.json +2 -2
- package/contracts/workspace-intelligence/workspace-dependency-graph.v1.json +1 -1
- package/contracts/workspace-intelligence/workspace-explain.v1.json +1 -1
- package/contracts/workspace-intelligence/workspace-graph-stream.v1.json +262 -0
- package/contracts/workspace-intelligence/workspace-graph-token-efficiency.v1.json +1 -1
- package/contracts/workspace-intelligence/workspace-impact.v1.json +1 -1
- package/contracts/workspace-intelligence/workspace-intelligence-evaluation-comparison.v1.json +1 -1
- package/contracts/workspace-intelligence/workspace-intelligence-evaluation.v1.json +1 -1
- package/contracts/workspace-intelligence/workspace-intelligence-history.v1.json +1 -1
- package/contracts/workspace-intelligence/workspace-intelligence-run.v1.json +2 -2
- package/contracts/workspace-intelligence/workspace-knowledge-graph-change-overlay.v1.json +1 -1
- package/contracts/workspace-intelligence/workspace-knowledge-graph.v1.json +48 -5
- package/contracts/workspace-intelligence/workspace-knowledge-search.v1.json +1 -1
- package/contracts/workspace-intelligence/workspace-model-diff.v1.json +1 -1
- package/contracts/workspace-intelligence/workspace-model-snapshot.v1.json +1 -1
- package/contracts/workspace-intelligence/workspace-model.v1.json +97 -5
- package/contracts/workspace-intelligence/workspace-operational-skill.v1.json +1 -1
- package/contracts/workspace-intelligence/workspace-skills-index.v1.json +1 -1
- package/contracts/workspace-intelligence/workspace-verify.v1.json +1 -1
- package/contracts/workspace-intelligence-architecture.v1.json +33 -7
- package/contracts/workspace-intelligence-chain.v1.json +1 -1
- package/contracts/workspace-list.v1.json +2 -0
- package/contracts/workspace-model-cache.v1.json +2 -0
- package/contracts/workspace-registry.v1.json +1 -1
- package/contracts/workspace-run-last.v1.json +1 -1
- package/contracts/workspace-share-bundle.v1.json +2 -1
- package/contracts/workspace-snapshot.v1.json +2 -0
- package/contracts/workspace-snapshot.v2.json +2 -0
- package/contracts/workspace-sync.v1.json +2 -0
- package/contracts/workspace-watch-event.v1.json +2 -0
- package/dist/analyze-ZFQWTCJQ.js +1 -0
- package/dist/{artifact-remediation-plan-SPOUHMK5.js → artifact-remediation-plan-ICN3KOFG.js} +1 -1
- package/dist/autopilot-release-VKXQ7BS7.js +1 -0
- package/dist/chunk-2AXEGYPL.js +1 -0
- package/dist/chunk-2D4UOYOJ.js +1 -0
- package/dist/chunk-2OIBHUVH.js +1 -0
- package/dist/chunk-3GRKUP5W.js +33 -0
- package/dist/{managed-agent-markers-AXUM75OE.js → chunk-3RBUSW7H.js} +1 -1
- package/dist/chunk-5EXZBCAZ.js +4 -0
- package/dist/chunk-6UTM5AJI.js +1 -0
- package/dist/chunk-AFIFZTOY.js +2 -0
- package/dist/{chunk-BMWFQXGW.js → chunk-AHLMIL2T.js} +1 -1
- package/dist/chunk-AL237TSJ.js +7 -0
- package/dist/chunk-AL2A7Q4X.js +86 -0
- package/dist/{chunk-VU7NZHPM.js → chunk-BHYTI3RH.js} +1 -1
- package/dist/{chunk-ESLPI3XZ.js → chunk-BQGBU2Y3.js} +1 -1
- package/dist/chunk-C35UXTDM.js +2 -0
- package/dist/chunk-C3FLCDRN.js +2 -0
- package/dist/chunk-CZC5P2MF.js +1 -0
- package/dist/{chunk-Y5UJLPS4.js → chunk-DDQ3XK3H.js} +13 -13
- package/dist/{chunk-CRHYBQI3.js → chunk-DQ3PI7EP.js} +1 -1
- package/dist/chunk-EWZZUQBR.js +1 -0
- package/dist/{chunk-4KUIFXHM.js → chunk-GNQRYISX.js} +3 -3
- package/dist/chunk-I42F552T.js +2 -0
- package/dist/chunk-IDQKVJUF.js +2 -0
- package/dist/{chunk-3VFA7D5T.js → chunk-IND3TUVU.js} +1 -1
- package/dist/chunk-IPJ5URDF.js +1 -0
- package/dist/{chunk-I46XEIPL.js → chunk-JFUD73OZ.js} +52 -52
- package/dist/chunk-KKAOTTYO.js +8 -0
- package/dist/chunk-KMLPHFLD.js +2 -0
- package/dist/{chunk-NHN4QXPP.js → chunk-KVSYBHUR.js} +1 -1
- package/dist/chunk-KXG6E5VK.js +1 -0
- package/dist/chunk-L2YK5RV2.js +1 -0
- package/dist/chunk-LAJM2SBP.js +15 -0
- package/dist/{chunk-5S3DJQEP.js → chunk-LZQUZGXB.js} +1 -1
- package/dist/chunk-MOSXTVPU.js +1 -0
- package/dist/chunk-MV7KF75Q.js +13 -0
- package/dist/chunk-MVLIONQD.js +1 -0
- package/dist/chunk-RJIYCDVC.js +1 -0
- package/dist/{chunk-BGPXQQNY.js → chunk-RTVRZFIJ.js} +1 -1
- package/dist/chunk-RVQLMTTI.js +2 -0
- package/dist/chunk-SHXJ2GDR.js +75 -0
- package/dist/{chunk-32OJDBIG.js → chunk-SS2VV3D5.js} +1 -1
- package/dist/chunk-TDTCMZK7.js +10 -0
- package/dist/chunk-UETZ7USY.js +36 -0
- package/dist/chunk-VKTUWUS6.js +1 -0
- package/dist/chunk-VRW6KXNK.js +6 -0
- package/dist/chunk-Y5YAP4F3.js +2 -0
- package/dist/chunk-YPKNQCLK.js +2 -0
- package/dist/{create-DBQNAMKP.js → create-I23DC7SN.js} +1 -1
- package/dist/{demo-kit-DZ7TPG7K.js → demo-kit-KHH63TNA.js} +2 -2
- package/dist/{doctor-4NNUDNGZ.js → doctor-DOOMYLIH.js} +1 -1
- package/dist/{dotnet-webapi-clean-A6MVDYXX.js → dotnet-webapi-clean-VXEF4SHM.js} +5 -5
- package/dist/{gofiber-standard-I5YPQG5V.js → gofiber-standard-AQGSC7ON.js} +3 -3
- package/dist/{gogin-standard-VY2L4QT5.js → gogin-standard-7DU3OCBX.js} +3 -3
- package/dist/index.d.ts +41 -6
- package/dist/index.js +268 -356
- package/dist/managed-agent-markers-COE5DJ3W.js +1 -0
- package/dist/pipeline-U77HSINC.js +5 -0
- package/dist/platform-capabilities-PR6YL4KC.js +1 -0
- package/dist/project-intelligence-lens-BKKVPCLC.js +1 -0
- package/dist/project-test-coverage-4TEHZJFC.js +1 -0
- package/dist/{pythonRapidkitExec-CVCIK225.js → pythonRapidkitExec-YR7P5LWG.js} +1 -1
- package/dist/rust-axum-4HXDICIB.js +140 -0
- package/dist/{springboot-standard-55XKCBIZ.js → springboot-standard-EK6GYN5T.js} +7 -7
- package/dist/workspace-ZEYUVR26.js +1 -0
- package/dist/{workspace-agent-sync-662QHXGF.js → workspace-agent-sync-DKYJLUDP.js} +1 -1
- package/dist/workspace-archive-4JNT4S7N.js +1 -0
- package/dist/{workspace-context-23YYCUCP.js → workspace-context-IHUFMZT3.js} +1 -1
- package/dist/workspace-contract-PVLGPBBV.js +1 -0
- package/dist/workspace-explain-64HNKAHO.js +1 -0
- package/dist/workspace-explain-contract-H7O26QJU.js +1 -0
- package/dist/{workspace-feedback-SUVH2LUJ.js → workspace-feedback-RATRXFUC.js} +1 -1
- package/dist/{workspace-foundation-WXJ6I7ES.js → workspace-foundation-D33LJLGT.js} +1 -1
- package/dist/workspace-graph-stream-THNG2T7R.js +1 -0
- package/dist/{workspace-history-BANOJRQ2.js → workspace-history-EWFPT74O.js} +1 -1
- package/dist/workspace-intelligence-MCNSWWDV.js +1 -0
- package/dist/{workspace-intelligence-evaluation-IPH7M3WV.js → workspace-intelligence-evaluation-7CABG5Y6.js} +1 -1
- package/dist/workspace-intelligence-runner-TG2VLHNZ.js +1 -0
- package/dist/workspace-intelligence-runtime-registry-ZZ3GRAL2.js +1 -0
- package/dist/{workspace-knowledge-graph-ARDC6HHG.js → workspace-knowledge-graph-2EYR7N56.js} +1 -1
- package/dist/{workspace-marker-SMBC3Z2Q.js → workspace-marker-7NHMDIRL.js} +1 -1
- package/dist/workspace-mcp-serve-FLAVKWYW.js +3 -0
- package/dist/workspace-model-FMFYLHE4.js +1 -0
- package/dist/workspace-model-hash-ZXYPIGCW.js +1 -0
- package/dist/workspace-onboarding-MYROZDI2.js +1 -0
- package/dist/{workspace-python-engine-state-2MLKJYQG.js → workspace-python-engine-state-J4QKW55K.js} +1 -1
- package/dist/{workspace-registry-summary-ORDK7A36.js → workspace-registry-summary-6VXIAQLX.js} +1 -1
- package/dist/workspace-run-2ZI5UMJ2.js +1 -0
- package/dist/{workspace-verify-EBVL7FWT.js → workspace-verify-FKYI65UQ.js} +1 -1
- package/dist/workspace-watch-RP5KMVP2.js +1 -0
- package/docs/GLOSSARY.md +17 -16
- package/docs/OPEN_SOURCE_USER_SCENARIOS.md +18 -10
- package/docs/README.md +49 -14
- package/docs/README_CONTENT_CONTRACT.md +19 -10
- package/docs/ci-workflows.md +3 -3
- package/docs/commands-reference.md +41 -10
- package/docs/contracts/ARTIFACT_CATALOG.md +72 -27
- package/docs/contracts/COMMAND_OWNERSHIP_MATRIX.md +2 -0
- package/docs/contracts/RUNTIME_SUPPORT_MATRIX.md +3 -3
- package/docs/contracts/rapidkit-cli-contracts.json +2 -2
- package/docs/create-planner-capabilities.md +36 -5
- package/docs/creating-workspaces-and-projects.md +75 -15
- package/docs/doctor-command.md +148 -39
- package/docs/examples/ci-agent-grounding.yml +1 -1
- package/docs/from-code-to-shared-understanding.md +6 -3
- package/docs/graph-benchmark-methodology.md +2 -2
- package/docs/workspace-intelligence-evaluation.md +13 -6
- package/docs/workspace-intelligence-runner.md +17 -6
- package/docs/workspace-knowledge-graph.md +102 -7
- package/docs/workspace-operations.md +154 -10
- package/package.json +10 -5
- package/scripts/enterprise-package-smoke.mjs +13 -1
- package/templates/kits/fastapi-ddd/README.md.j2 +1 -1
- package/dist/analyze-EEEU3MIF.js +0 -1
- package/dist/autopilot-release-XGVXPOZI.js +0 -1
- package/dist/chunk-22DT744Z.js +0 -1
- package/dist/chunk-37CVKXBD.js +0 -1
- package/dist/chunk-3NU32T4A.js +0 -2
- package/dist/chunk-3ZK2GU7C.js +0 -1
- package/dist/chunk-4HDYADHT.js +0 -13
- package/dist/chunk-52PBRX7F.js +0 -1
- package/dist/chunk-54EP5CEV.js +0 -8
- package/dist/chunk-5XATWNME.js +0 -1
- package/dist/chunk-7YHK5NM3.js +0 -2
- package/dist/chunk-AFL3ACCR.js +0 -2
- package/dist/chunk-BFLJ2R4D.js +0 -80
- package/dist/chunk-EYJ2CQSK.js +0 -1
- package/dist/chunk-FTY7GGXJ.js +0 -33
- package/dist/chunk-FXQJX34Z.js +0 -1
- package/dist/chunk-GSWPGELT.js +0 -2
- package/dist/chunk-GZTYAEWX.js +0 -1
- package/dist/chunk-HDXNIN4N.js +0 -1
- package/dist/chunk-HZDXO65G.js +0 -36
- package/dist/chunk-J5ENLXDF.js +0 -1
- package/dist/chunk-KB44JP4M.js +0 -2
- package/dist/chunk-LHOZXC2M.js +0 -2
- package/dist/chunk-MER6ZBN2.js +0 -13
- package/dist/chunk-NAJCUQ4X.js +0 -2
- package/dist/chunk-OA537ZQ5.js +0 -1
- package/dist/chunk-OW42TZFB.js +0 -1
- package/dist/chunk-P3D5YQB2.js +0 -1
- package/dist/chunk-PHXQR6PX.js +0 -2
- package/dist/chunk-PRTR2DQ2.js +0 -1
- package/dist/chunk-QNONOO4F.js +0 -4
- package/dist/chunk-RHQW3DTP.js +0 -1
- package/dist/chunk-T4YR4RAI.js +0 -2
- package/dist/chunk-Y45WZR5N.js +0 -5
- package/dist/chunk-YJZOMRAS.js +0 -1
- package/dist/pipeline-TQM43A3K.js +0 -5
- package/dist/platform-capabilities-2B4QMZXE.js +0 -1
- package/dist/workspace-NCWRINEF.js +0 -1
- package/dist/workspace-archive-P76EDIUG.js +0 -10
- package/dist/workspace-contract-TU2I7GC2.js +0 -1
- package/dist/workspace-dependency-graph-BP4EXYQ5.js +0 -1
- package/dist/workspace-explain-MWUEN643.js +0 -1
- package/dist/workspace-explain-contract-ZPI3JXJU.js +0 -1
- package/dist/workspace-intelligence-MFJE7W67.js +0 -1
- package/dist/workspace-intelligence-runner-THYLHHMF.js +0 -1
- package/dist/workspace-mcp-serve-EZR6O76D.js +0 -3
- package/dist/workspace-model-7OU2M3LE.js +0 -1
- package/dist/workspace-model-hash-MHXK5MEI.js +0 -1
- package/dist/workspace-run-RLIYSOTN.js +0 -1
- package/dist/workspace-watch-3BPGLFLB.js +0 -1
|
@@ -19,56 +19,80 @@
|
|
|
19
19
|
"id": "fastapi.standard",
|
|
20
20
|
"runtime": "python",
|
|
21
21
|
"framework": "fastapi",
|
|
22
|
+
"category": "backend",
|
|
22
23
|
"owner": "core",
|
|
23
24
|
"stability": "stable",
|
|
25
|
+
"versionPolicy": "tested-baseline",
|
|
24
26
|
"moduleSupport": true
|
|
25
27
|
},
|
|
26
28
|
{
|
|
27
29
|
"id": "fastapi.ddd",
|
|
28
30
|
"runtime": "python",
|
|
29
31
|
"framework": "fastapi",
|
|
32
|
+
"category": "backend",
|
|
30
33
|
"owner": "core",
|
|
31
34
|
"stability": "stable",
|
|
35
|
+
"versionPolicy": "tested-baseline",
|
|
32
36
|
"moduleSupport": true
|
|
33
37
|
},
|
|
34
38
|
{
|
|
35
39
|
"id": "nestjs.standard",
|
|
36
40
|
"runtime": "node",
|
|
37
41
|
"framework": "nestjs",
|
|
42
|
+
"category": "backend",
|
|
38
43
|
"owner": "core",
|
|
39
44
|
"stability": "stable",
|
|
45
|
+
"versionPolicy": "tested-baseline",
|
|
40
46
|
"moduleSupport": true
|
|
41
47
|
},
|
|
42
48
|
{
|
|
43
49
|
"id": "springboot.standard",
|
|
44
50
|
"runtime": "java",
|
|
45
51
|
"framework": "springboot",
|
|
52
|
+
"category": "backend",
|
|
46
53
|
"owner": "npm",
|
|
47
54
|
"stability": "stable",
|
|
55
|
+
"versionPolicy": "tested-baseline",
|
|
48
56
|
"moduleSupport": false
|
|
49
57
|
},
|
|
50
58
|
{
|
|
51
59
|
"id": "gofiber.standard",
|
|
52
60
|
"runtime": "go",
|
|
53
61
|
"framework": "gofiber",
|
|
62
|
+
"category": "backend",
|
|
54
63
|
"owner": "npm",
|
|
55
64
|
"stability": "stable",
|
|
65
|
+
"versionPolicy": "tested-baseline",
|
|
56
66
|
"moduleSupport": false
|
|
57
67
|
},
|
|
58
68
|
{
|
|
59
69
|
"id": "gogin.standard",
|
|
60
70
|
"runtime": "go",
|
|
61
71
|
"framework": "gogin",
|
|
72
|
+
"category": "backend",
|
|
62
73
|
"owner": "npm",
|
|
63
74
|
"stability": "stable",
|
|
75
|
+
"versionPolicy": "tested-baseline",
|
|
64
76
|
"moduleSupport": false
|
|
65
77
|
},
|
|
66
78
|
{
|
|
67
79
|
"id": "dotnet.webapi.clean",
|
|
68
80
|
"runtime": "dotnet",
|
|
69
81
|
"framework": "dotnet",
|
|
82
|
+
"category": "backend",
|
|
70
83
|
"owner": "npm",
|
|
71
84
|
"stability": "preview",
|
|
85
|
+
"versionPolicy": "tested-baseline",
|
|
86
|
+
"moduleSupport": false
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"id": "rust.axum",
|
|
90
|
+
"runtime": "rust",
|
|
91
|
+
"framework": "axum",
|
|
92
|
+
"category": "backend",
|
|
93
|
+
"owner": "npm",
|
|
94
|
+
"stability": "preview",
|
|
95
|
+
"versionPolicy": "tested-baseline",
|
|
72
96
|
"moduleSupport": false
|
|
73
97
|
}
|
|
74
98
|
],
|
|
@@ -84,10 +108,12 @@
|
|
|
84
108
|
"ecosystem": "nextjs",
|
|
85
109
|
"status": "available",
|
|
86
110
|
"canExecuteCreate": true,
|
|
111
|
+
"versionPolicy": "latest-stable",
|
|
87
112
|
"officialCommands": [
|
|
88
113
|
"npx create-next-app@latest <name>"
|
|
89
114
|
],
|
|
90
|
-
"adoptAfterCreate": true
|
|
115
|
+
"adoptAfterCreate": true,
|
|
116
|
+
"category": "frontend"
|
|
91
117
|
},
|
|
92
118
|
{
|
|
93
119
|
"id": "frontend.remix",
|
|
@@ -100,10 +126,12 @@
|
|
|
100
126
|
"ecosystem": "remix",
|
|
101
127
|
"status": "available",
|
|
102
128
|
"canExecuteCreate": true,
|
|
129
|
+
"versionPolicy": "latest-stable",
|
|
103
130
|
"officialCommands": [
|
|
104
131
|
"npx create-react-router@latest <name>"
|
|
105
132
|
],
|
|
106
|
-
"adoptAfterCreate": true
|
|
133
|
+
"adoptAfterCreate": true,
|
|
134
|
+
"category": "frontend"
|
|
107
135
|
},
|
|
108
136
|
{
|
|
109
137
|
"id": "frontend.vite-react",
|
|
@@ -116,10 +144,12 @@
|
|
|
116
144
|
"ecosystem": "react",
|
|
117
145
|
"status": "available",
|
|
118
146
|
"canExecuteCreate": true,
|
|
147
|
+
"versionPolicy": "latest-stable",
|
|
119
148
|
"officialCommands": [
|
|
120
149
|
"npm create vite@latest <name> -- --template react-ts"
|
|
121
150
|
],
|
|
122
|
-
"adoptAfterCreate": true
|
|
151
|
+
"adoptAfterCreate": true,
|
|
152
|
+
"category": "frontend"
|
|
123
153
|
},
|
|
124
154
|
{
|
|
125
155
|
"id": "frontend.vite-vue",
|
|
@@ -132,10 +162,12 @@
|
|
|
132
162
|
"ecosystem": "vue",
|
|
133
163
|
"status": "available",
|
|
134
164
|
"canExecuteCreate": true,
|
|
165
|
+
"versionPolicy": "latest-stable",
|
|
135
166
|
"officialCommands": [
|
|
136
167
|
"npm create vite@latest <name> -- --template vue-ts"
|
|
137
168
|
],
|
|
138
|
-
"adoptAfterCreate": true
|
|
169
|
+
"adoptAfterCreate": true,
|
|
170
|
+
"category": "frontend"
|
|
139
171
|
},
|
|
140
172
|
{
|
|
141
173
|
"id": "frontend.vite-svelte",
|
|
@@ -148,10 +180,12 @@
|
|
|
148
180
|
"ecosystem": "svelte",
|
|
149
181
|
"status": "available",
|
|
150
182
|
"canExecuteCreate": true,
|
|
183
|
+
"versionPolicy": "latest-stable",
|
|
151
184
|
"officialCommands": [
|
|
152
185
|
"npm create vite@latest <name> -- --template svelte-ts"
|
|
153
186
|
],
|
|
154
|
-
"adoptAfterCreate": true
|
|
187
|
+
"adoptAfterCreate": true,
|
|
188
|
+
"category": "frontend"
|
|
155
189
|
},
|
|
156
190
|
{
|
|
157
191
|
"id": "frontend.vite-solid",
|
|
@@ -165,10 +199,12 @@
|
|
|
165
199
|
"ecosystem": "solid",
|
|
166
200
|
"status": "available",
|
|
167
201
|
"canExecuteCreate": true,
|
|
202
|
+
"versionPolicy": "latest-stable",
|
|
168
203
|
"officialCommands": [
|
|
169
204
|
"npm create vite@latest <name> -- --template solid-ts"
|
|
170
205
|
],
|
|
171
|
-
"adoptAfterCreate": true
|
|
206
|
+
"adoptAfterCreate": true,
|
|
207
|
+
"category": "frontend"
|
|
172
208
|
},
|
|
173
209
|
{
|
|
174
210
|
"id": "frontend.vite-vanilla",
|
|
@@ -181,10 +217,12 @@
|
|
|
181
217
|
"ecosystem": "vite",
|
|
182
218
|
"status": "available",
|
|
183
219
|
"canExecuteCreate": true,
|
|
220
|
+
"versionPolicy": "latest-stable",
|
|
184
221
|
"officialCommands": [
|
|
185
222
|
"npm create vite@latest <name> -- --template vanilla-ts"
|
|
186
223
|
],
|
|
187
|
-
"adoptAfterCreate": true
|
|
224
|
+
"adoptAfterCreate": true,
|
|
225
|
+
"category": "frontend"
|
|
188
226
|
},
|
|
189
227
|
{
|
|
190
228
|
"id": "frontend.nuxt",
|
|
@@ -197,10 +235,12 @@
|
|
|
197
235
|
"ecosystem": "nuxt",
|
|
198
236
|
"status": "available",
|
|
199
237
|
"canExecuteCreate": true,
|
|
238
|
+
"versionPolicy": "latest-stable",
|
|
200
239
|
"officialCommands": [
|
|
201
240
|
"npx create-nuxt@latest <name> --template minimal --packageManager npm --gitInit true"
|
|
202
241
|
],
|
|
203
|
-
"adoptAfterCreate": true
|
|
242
|
+
"adoptAfterCreate": true,
|
|
243
|
+
"category": "frontend"
|
|
204
244
|
},
|
|
205
245
|
{
|
|
206
246
|
"id": "frontend.angular",
|
|
@@ -212,10 +252,12 @@
|
|
|
212
252
|
"ecosystem": "angular",
|
|
213
253
|
"status": "available",
|
|
214
254
|
"canExecuteCreate": true,
|
|
255
|
+
"versionPolicy": "latest-stable",
|
|
215
256
|
"officialCommands": [
|
|
216
|
-
"npx @angular/cli@
|
|
257
|
+
"npx @angular/cli@latest new <name>"
|
|
217
258
|
],
|
|
218
|
-
"adoptAfterCreate": true
|
|
259
|
+
"adoptAfterCreate": true,
|
|
260
|
+
"category": "frontend"
|
|
219
261
|
},
|
|
220
262
|
{
|
|
221
263
|
"id": "frontend.astro",
|
|
@@ -226,10 +268,12 @@
|
|
|
226
268
|
"ecosystem": "astro",
|
|
227
269
|
"status": "available",
|
|
228
270
|
"canExecuteCreate": true,
|
|
271
|
+
"versionPolicy": "latest-stable",
|
|
229
272
|
"officialCommands": [
|
|
230
|
-
"npm create astro@
|
|
273
|
+
"npm create astro@latest <name>"
|
|
231
274
|
],
|
|
232
|
-
"adoptAfterCreate": true
|
|
275
|
+
"adoptAfterCreate": true,
|
|
276
|
+
"category": "frontend"
|
|
233
277
|
},
|
|
234
278
|
{
|
|
235
279
|
"id": "frontend.sveltekit",
|
|
@@ -241,10 +285,81 @@
|
|
|
241
285
|
"ecosystem": "sveltekit",
|
|
242
286
|
"status": "available",
|
|
243
287
|
"canExecuteCreate": true,
|
|
288
|
+
"versionPolicy": "latest-stable",
|
|
244
289
|
"officialCommands": [
|
|
245
290
|
"npx sv@latest create <name>"
|
|
246
291
|
],
|
|
247
|
-
"adoptAfterCreate": true
|
|
292
|
+
"adoptAfterCreate": true,
|
|
293
|
+
"category": "frontend"
|
|
294
|
+
},
|
|
295
|
+
{
|
|
296
|
+
"id": "desktop.tauri",
|
|
297
|
+
"aliases": [
|
|
298
|
+
"desktop.tauri",
|
|
299
|
+
"tauri",
|
|
300
|
+
"tauri-app"
|
|
301
|
+
],
|
|
302
|
+
"ecosystem": "tauri",
|
|
303
|
+
"status": "available",
|
|
304
|
+
"canExecuteCreate": true,
|
|
305
|
+
"versionPolicy": "latest-stable",
|
|
306
|
+
"officialCommands": [
|
|
307
|
+
"npm create tauri-app@latest <name> -- --template vanilla-ts"
|
|
308
|
+
],
|
|
309
|
+
"adoptAfterCreate": true,
|
|
310
|
+
"category": "desktop"
|
|
311
|
+
},
|
|
312
|
+
{
|
|
313
|
+
"id": "desktop.electron",
|
|
314
|
+
"aliases": [
|
|
315
|
+
"desktop.electron",
|
|
316
|
+
"electron",
|
|
317
|
+
"electron-forge"
|
|
318
|
+
],
|
|
319
|
+
"ecosystem": "electron",
|
|
320
|
+
"status": "available",
|
|
321
|
+
"canExecuteCreate": true,
|
|
322
|
+
"versionPolicy": "latest-stable",
|
|
323
|
+
"officialCommands": [
|
|
324
|
+
"npx create-electron-app@latest <name> --template=vite-typescript"
|
|
325
|
+
],
|
|
326
|
+
"adoptAfterCreate": true,
|
|
327
|
+
"category": "desktop"
|
|
328
|
+
},
|
|
329
|
+
{
|
|
330
|
+
"id": "extension.vscode",
|
|
331
|
+
"aliases": [
|
|
332
|
+
"extension.vscode",
|
|
333
|
+
"vscode",
|
|
334
|
+
"vscode-extension",
|
|
335
|
+
"visual-studio-code-extension"
|
|
336
|
+
],
|
|
337
|
+
"ecosystem": "vscode-extension",
|
|
338
|
+
"status": "available",
|
|
339
|
+
"canExecuteCreate": true,
|
|
340
|
+
"versionPolicy": "latest-stable",
|
|
341
|
+
"officialCommands": [
|
|
342
|
+
"npx --package yo@latest --package generator-code@latest -- yo code <name> --quick --extensionType ts --pkgManager npm --bundle esbuild"
|
|
343
|
+
],
|
|
344
|
+
"adoptAfterCreate": true,
|
|
345
|
+
"category": "extension"
|
|
346
|
+
},
|
|
347
|
+
{
|
|
348
|
+
"id": "php.laravel",
|
|
349
|
+
"aliases": [
|
|
350
|
+
"php.laravel",
|
|
351
|
+
"laravel",
|
|
352
|
+
"php-laravel"
|
|
353
|
+
],
|
|
354
|
+
"ecosystem": "laravel",
|
|
355
|
+
"status": "available",
|
|
356
|
+
"canExecuteCreate": true,
|
|
357
|
+
"versionPolicy": "latest-stable",
|
|
358
|
+
"officialCommands": [
|
|
359
|
+
"composer create-project --no-interaction --prefer-dist --stability=stable laravel/laravel <name>"
|
|
360
|
+
],
|
|
361
|
+
"adoptAfterCreate": true,
|
|
362
|
+
"category": "backend"
|
|
248
363
|
},
|
|
249
364
|
{
|
|
250
365
|
"id": "wordpress-site",
|
|
@@ -257,13 +372,15 @@
|
|
|
257
372
|
"ecosystem": "wordpress",
|
|
258
373
|
"status": "planned",
|
|
259
374
|
"canExecuteCreate": false,
|
|
375
|
+
"versionPolicy": "planned",
|
|
260
376
|
"officialCommands": [
|
|
261
377
|
"wp core download",
|
|
262
378
|
"wp config create",
|
|
263
379
|
"wp db create",
|
|
264
380
|
"wp core install"
|
|
265
381
|
],
|
|
266
|
-
"adoptAfterCreate": true
|
|
382
|
+
"adoptAfterCreate": true,
|
|
383
|
+
"category": "backend"
|
|
267
384
|
},
|
|
268
385
|
{
|
|
269
386
|
"id": "wordpress-block",
|
|
@@ -275,24 +392,12 @@
|
|
|
275
392
|
"ecosystem": "wordpress",
|
|
276
393
|
"status": "planned",
|
|
277
394
|
"canExecuteCreate": false,
|
|
395
|
+
"versionPolicy": "planned",
|
|
278
396
|
"officialCommands": [
|
|
279
397
|
"npx @wordpress/create-block@latest <slug>"
|
|
280
398
|
],
|
|
281
|
-
"adoptAfterCreate": true
|
|
282
|
-
|
|
283
|
-
{
|
|
284
|
-
"id": "laravel",
|
|
285
|
-
"aliases": [
|
|
286
|
-
"laravel",
|
|
287
|
-
"php-laravel"
|
|
288
|
-
],
|
|
289
|
-
"ecosystem": "php",
|
|
290
|
-
"status": "planned",
|
|
291
|
-
"canExecuteCreate": false,
|
|
292
|
-
"officialCommands": [
|
|
293
|
-
"composer create-project laravel/laravel <name>"
|
|
294
|
-
],
|
|
295
|
-
"adoptAfterCreate": true
|
|
399
|
+
"adoptAfterCreate": true,
|
|
400
|
+
"category": "backend"
|
|
296
401
|
},
|
|
297
402
|
{
|
|
298
403
|
"id": "symfony",
|
|
@@ -303,10 +408,12 @@
|
|
|
303
408
|
"ecosystem": "php",
|
|
304
409
|
"status": "planned",
|
|
305
410
|
"canExecuteCreate": false,
|
|
411
|
+
"versionPolicy": "planned",
|
|
306
412
|
"officialCommands": [
|
|
307
413
|
"composer create-project symfony/skeleton <name>"
|
|
308
414
|
],
|
|
309
|
-
"adoptAfterCreate": true
|
|
415
|
+
"adoptAfterCreate": true,
|
|
416
|
+
"category": "backend"
|
|
310
417
|
},
|
|
311
418
|
{
|
|
312
419
|
"id": "rails",
|
|
@@ -318,10 +425,12 @@
|
|
|
318
425
|
"ecosystem": "ruby",
|
|
319
426
|
"status": "planned",
|
|
320
427
|
"canExecuteCreate": false,
|
|
428
|
+
"versionPolicy": "planned",
|
|
321
429
|
"officialCommands": [
|
|
322
430
|
"rails new <name>"
|
|
323
431
|
],
|
|
324
|
-
"adoptAfterCreate": true
|
|
432
|
+
"adoptAfterCreate": true,
|
|
433
|
+
"category": "backend"
|
|
325
434
|
}
|
|
326
435
|
],
|
|
327
436
|
"existingRuntimeSignals": [
|
|
@@ -337,6 +446,9 @@
|
|
|
337
446
|
"Do not translate unsupported stack requests into unrelated native kits.",
|
|
338
447
|
"If native create is unavailable, explain the lane and guide to adopt/import.",
|
|
339
448
|
"The existing lane is open-ended for readable projects; existingRuntimeSignals are examples for planner detection, not an allowlist.",
|
|
340
|
-
"Use the same capability contract in CLI, CI, VS Code, and AI planning surfaces."
|
|
449
|
+
"Use the same capability contract in CLI, CI, VS Code, and AI planning surfaces.",
|
|
450
|
+
"Available official generators request the upstream latest stable channel and record that policy in project evidence.",
|
|
451
|
+
"Native Workspai-owned kits use tested dependency baselines so repeated creates remain deterministic.",
|
|
452
|
+
"Workspace management during project creation is foundation-only; it must not install the optional Python engine. Each selected kit owns its runtime prerequisites and install flow."
|
|
341
453
|
]
|
|
342
454
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"$id": "https://
|
|
4
|
-
"title": "
|
|
3
|
+
"$id": "https://workspai.dev/schemas/doctor-project-evidence.v1.json",
|
|
4
|
+
"title": "Workspai Doctor Project Evidence",
|
|
5
5
|
"type": "object",
|
|
6
6
|
"required": [
|
|
7
7
|
"schemaVersion",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"workspacePath": { "type": ["string", "null"] },
|
|
26
26
|
"projectPath": { "type": "string", "minLength": 1 },
|
|
27
27
|
"projectName": { "type": "string", "minLength": 1 },
|
|
28
|
-
"healthScore": { "
|
|
28
|
+
"healthScore": { "$ref": "#/$defs/healthScore" },
|
|
29
29
|
"evidenceFreshness": { "$ref": "#/$defs/evidenceFreshness" },
|
|
30
30
|
"system": { "type": "object", "additionalProperties": true },
|
|
31
31
|
"project": {
|
|
@@ -38,14 +38,24 @@
|
|
|
38
38
|
"repairCapabilities": {
|
|
39
39
|
"type": "array",
|
|
40
40
|
"items": { "$ref": "#/$defs/repairCapability" }
|
|
41
|
-
}
|
|
41
|
+
},
|
|
42
|
+
"dependencyAudit": { "$ref": "#/$defs/dependencyAudit" },
|
|
43
|
+
"graphDiagnosis": {
|
|
44
|
+
"$ref": "https://workspai.dev/schemas/workspace-intelligence/doctor-graph-diagnosis.v1.json"
|
|
45
|
+
},
|
|
46
|
+
"verdict": { "enum": ["passed", "attention", "blocked"] },
|
|
47
|
+
"probeSummary": { "$ref": "#/$defs/probeSummary" }
|
|
42
48
|
},
|
|
43
49
|
"additionalProperties": true
|
|
44
50
|
},
|
|
45
51
|
"summary": {
|
|
46
52
|
"type": "object",
|
|
47
53
|
"properties": {
|
|
48
|
-
"scopeProvenance": { "type": "object", "additionalProperties": true }
|
|
54
|
+
"scopeProvenance": { "type": "object", "additionalProperties": true },
|
|
55
|
+
"verdict": { "enum": ["passed", "attention", "blocked"] },
|
|
56
|
+
"probeSummary": { "$ref": "#/$defs/probeSummary" },
|
|
57
|
+
"blockingFindings": { "type": "integer", "minimum": 0 },
|
|
58
|
+
"advisoryFindings": { "type": "integer", "minimum": 0 }
|
|
49
59
|
},
|
|
50
60
|
"additionalProperties": true
|
|
51
61
|
},
|
|
@@ -58,16 +68,154 @@
|
|
|
58
68
|
"policyProfile": { "$ref": "#/$defs/policyProfile" }
|
|
59
69
|
},
|
|
60
70
|
"$defs": {
|
|
61
|
-
"
|
|
71
|
+
"dependencyAudit": {
|
|
62
72
|
"type": "object",
|
|
63
73
|
"required": [
|
|
64
|
-
"
|
|
65
|
-
"
|
|
66
|
-
"
|
|
74
|
+
"schemaVersion",
|
|
75
|
+
"runtime",
|
|
76
|
+
"ecosystem",
|
|
77
|
+
"tool",
|
|
67
78
|
"status",
|
|
68
|
-
"
|
|
69
|
-
"
|
|
79
|
+
"generatedAt",
|
|
80
|
+
"findingCount",
|
|
81
|
+
"blockingFindingCount",
|
|
82
|
+
"severityCounts",
|
|
83
|
+
"reason",
|
|
84
|
+
"limitations"
|
|
70
85
|
],
|
|
86
|
+
"properties": {
|
|
87
|
+
"schemaVersion": { "const": "doctor-dependency-audit-v1" },
|
|
88
|
+
"runtime": {
|
|
89
|
+
"enum": [
|
|
90
|
+
"node",
|
|
91
|
+
"bun",
|
|
92
|
+
"deno",
|
|
93
|
+
"python",
|
|
94
|
+
"go",
|
|
95
|
+
"java",
|
|
96
|
+
"rust",
|
|
97
|
+
"elixir",
|
|
98
|
+
"clojure",
|
|
99
|
+
"php",
|
|
100
|
+
"ruby",
|
|
101
|
+
"dotnet",
|
|
102
|
+
"scala",
|
|
103
|
+
"kotlin",
|
|
104
|
+
"c",
|
|
105
|
+
"cpp",
|
|
106
|
+
"unknown"
|
|
107
|
+
]
|
|
108
|
+
},
|
|
109
|
+
"ecosystem": { "type": "string", "minLength": 1 },
|
|
110
|
+
"tool": { "type": "string", "minLength": 1 },
|
|
111
|
+
"status": {
|
|
112
|
+
"enum": ["clean", "vulnerable", "tool-unavailable", "unsupported", "failed"]
|
|
113
|
+
},
|
|
114
|
+
"generatedAt": { "type": "string", "format": "date-time" },
|
|
115
|
+
"invocation": { "$ref": "#/$defs/commandInvocation" },
|
|
116
|
+
"exitCode": { "type": "integer" },
|
|
117
|
+
"findingCount": { "type": ["integer", "null"], "minimum": 0 },
|
|
118
|
+
"blockingFindingCount": { "type": ["integer", "null"], "minimum": 0 },
|
|
119
|
+
"severityCounts": {
|
|
120
|
+
"type": "object",
|
|
121
|
+
"required": ["low", "moderate", "high", "critical", "unknown"],
|
|
122
|
+
"properties": {
|
|
123
|
+
"low": { "type": "integer", "minimum": 0 },
|
|
124
|
+
"moderate": { "type": "integer", "minimum": 0 },
|
|
125
|
+
"high": { "type": "integer", "minimum": 0 },
|
|
126
|
+
"critical": { "type": "integer", "minimum": 0 },
|
|
127
|
+
"unknown": { "type": "integer", "minimum": 0 }
|
|
128
|
+
},
|
|
129
|
+
"additionalProperties": false
|
|
130
|
+
},
|
|
131
|
+
"subjects": {
|
|
132
|
+
"type": "array",
|
|
133
|
+
"items": { "$ref": "#/$defs/dependencyAuditSubject" }
|
|
134
|
+
},
|
|
135
|
+
"reason": { "type": "string", "minLength": 1 },
|
|
136
|
+
"limitations": { "type": "array", "items": { "type": "string" } }
|
|
137
|
+
},
|
|
138
|
+
"additionalProperties": false
|
|
139
|
+
},
|
|
140
|
+
"dependencyAuditSubject": {
|
|
141
|
+
"type": "object",
|
|
142
|
+
"required": ["name", "advisoryIds", "severities"],
|
|
143
|
+
"properties": {
|
|
144
|
+
"name": { "type": "string", "minLength": 1 },
|
|
145
|
+
"version": { "type": "string", "minLength": 1 },
|
|
146
|
+
"direct": { "type": "boolean" },
|
|
147
|
+
"advisoryIds": {
|
|
148
|
+
"type": "array",
|
|
149
|
+
"items": { "type": "string", "minLength": 1 },
|
|
150
|
+
"uniqueItems": true
|
|
151
|
+
},
|
|
152
|
+
"severities": {
|
|
153
|
+
"type": "array",
|
|
154
|
+
"items": { "enum": ["low", "moderate", "high", "critical", "unknown"] },
|
|
155
|
+
"uniqueItems": true
|
|
156
|
+
}
|
|
157
|
+
},
|
|
158
|
+
"additionalProperties": false
|
|
159
|
+
},
|
|
160
|
+
"scoreComponent": {
|
|
161
|
+
"type": "object",
|
|
162
|
+
"required": ["errors"],
|
|
163
|
+
"properties": {
|
|
164
|
+
"percent": { "type": "number", "minimum": 0, "maximum": 100 },
|
|
165
|
+
"total": { "type": "integer", "minimum": 0 },
|
|
166
|
+
"passed": { "type": "integer", "minimum": 0 },
|
|
167
|
+
"warnings": { "type": "integer", "minimum": 0 },
|
|
168
|
+
"errors": { "type": "integer", "minimum": 0 }
|
|
169
|
+
},
|
|
170
|
+
"additionalProperties": false
|
|
171
|
+
},
|
|
172
|
+
"healthScore": {
|
|
173
|
+
"type": "object",
|
|
174
|
+
"required": ["errors"],
|
|
175
|
+
"properties": {
|
|
176
|
+
"percent": { "type": "number", "minimum": 0, "maximum": 100 },
|
|
177
|
+
"total": { "type": "integer", "minimum": 0 },
|
|
178
|
+
"passed": { "type": "integer", "minimum": 0 },
|
|
179
|
+
"warnings": { "type": "integer", "minimum": 0 },
|
|
180
|
+
"errors": { "type": "integer", "minimum": 0 },
|
|
181
|
+
"verdict": { "enum": ["passed", "attention", "blocked"] },
|
|
182
|
+
"components": {
|
|
183
|
+
"type": "object",
|
|
184
|
+
"required": ["host", "projects"],
|
|
185
|
+
"properties": {
|
|
186
|
+
"host": { "$ref": "#/$defs/scoreComponent" },
|
|
187
|
+
"projects": { "$ref": "#/$defs/scoreComponent" }
|
|
188
|
+
},
|
|
189
|
+
"additionalProperties": false
|
|
190
|
+
}
|
|
191
|
+
},
|
|
192
|
+
"additionalProperties": false
|
|
193
|
+
},
|
|
194
|
+
"probeSummary": {
|
|
195
|
+
"type": "object",
|
|
196
|
+
"required": [
|
|
197
|
+
"total",
|
|
198
|
+
"passed",
|
|
199
|
+
"warnings",
|
|
200
|
+
"failed",
|
|
201
|
+
"blockingFindings",
|
|
202
|
+
"advisoryFindings",
|
|
203
|
+
"verdict"
|
|
204
|
+
],
|
|
205
|
+
"properties": {
|
|
206
|
+
"total": { "type": "integer", "minimum": 0 },
|
|
207
|
+
"passed": { "type": "integer", "minimum": 0 },
|
|
208
|
+
"warnings": { "type": "integer", "minimum": 0 },
|
|
209
|
+
"failed": { "type": "integer", "minimum": 0 },
|
|
210
|
+
"blockingFindings": { "type": "integer", "minimum": 0 },
|
|
211
|
+
"advisoryFindings": { "type": "integer", "minimum": 0 },
|
|
212
|
+
"verdict": { "enum": ["passed", "attention", "blocked"] }
|
|
213
|
+
},
|
|
214
|
+
"additionalProperties": false
|
|
215
|
+
},
|
|
216
|
+
"freshness": {
|
|
217
|
+
"type": "object",
|
|
218
|
+
"required": ["category", "generatedAt", "ttlSeconds", "status", "verifyBeforeUse", "reason"],
|
|
71
219
|
"properties": {
|
|
72
220
|
"category": { "enum": ["structure", "verification", "state"] },
|
|
73
221
|
"generatedAt": { "type": "string", "format": "date-time" },
|
|
@@ -237,6 +385,11 @@
|
|
|
237
385
|
"requiresReview": { "type": "boolean" },
|
|
238
386
|
"files": { "type": "array", "items": { "type": "string" } },
|
|
239
387
|
"command": { "type": "string" },
|
|
388
|
+
"invocation": { "$ref": "#/$defs/commandInvocation" },
|
|
389
|
+
"strategy": {
|
|
390
|
+
"type": "array",
|
|
391
|
+
"items": { "$ref": "#/$defs/repairStrategyStage" }
|
|
392
|
+
},
|
|
240
393
|
"operation": { "$ref": "#/$defs/repairOperation" },
|
|
241
394
|
"verifyCommand": { "type": "string" },
|
|
242
395
|
"refreshCommands": { "type": "array", "items": { "type": "string" } },
|
|
@@ -245,6 +398,33 @@
|
|
|
245
398
|
},
|
|
246
399
|
"additionalProperties": true
|
|
247
400
|
},
|
|
401
|
+
"commandInvocation": {
|
|
402
|
+
"type": "object",
|
|
403
|
+
"required": ["cwd", "executable", "args"],
|
|
404
|
+
"properties": {
|
|
405
|
+
"cwd": { "type": "string", "minLength": 1 },
|
|
406
|
+
"executable": { "type": "string", "minLength": 1 },
|
|
407
|
+
"args": { "type": "array", "items": { "type": "string" } }
|
|
408
|
+
},
|
|
409
|
+
"additionalProperties": false
|
|
410
|
+
},
|
|
411
|
+
"repairStrategyStage": {
|
|
412
|
+
"type": "object",
|
|
413
|
+
"required": ["id", "kind", "description", "risk", "continueWhen"],
|
|
414
|
+
"properties": {
|
|
415
|
+
"id": { "type": "string", "minLength": 1 },
|
|
416
|
+
"kind": {
|
|
417
|
+
"enum": ["diagnose", "safe-fix", "targeted-upgrade", "verify", "exception-review"]
|
|
418
|
+
},
|
|
419
|
+
"description": { "type": "string", "minLength": 1 },
|
|
420
|
+
"risk": { "enum": ["safe", "guarded", "invasive"] },
|
|
421
|
+
"invocation": { "$ref": "#/$defs/commandInvocation" },
|
|
422
|
+
"continueWhen": {
|
|
423
|
+
"enum": ["always", "previous-passed", "blocker-remains", "manual-decision"]
|
|
424
|
+
}
|
|
425
|
+
},
|
|
426
|
+
"additionalProperties": false
|
|
427
|
+
},
|
|
248
428
|
"repairOperation": {
|
|
249
429
|
"type": "object",
|
|
250
430
|
"required": ["type", "path"],
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"$id": "https://
|
|
4
|
-
"title": "
|
|
3
|
+
"$id": "https://workspai.dev/contracts/doctor-remediation-plan.v1.json",
|
|
4
|
+
"title": "Workspai Doctor Remediation Plan v2 Legacy Path Alias",
|
|
5
5
|
"description": "Deprecated compatibility path. New consumers must resolve contracts/doctor-remediation-plan.v2.json.",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"additionalProperties": false,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"$id": "https://
|
|
4
|
-
"title": "
|
|
3
|
+
"$id": "https://workspai.dev/contracts/doctor-remediation-plan.v2.json",
|
|
4
|
+
"title": "Workspai Doctor Remediation Plan v2",
|
|
5
5
|
"description": "Canonical v2 contract. The referenced v1 path is retained as a deprecated compatibility alias.",
|
|
6
6
|
"$ref": "doctor-remediation-plan.v1.json"
|
|
7
7
|
}
|