workspai 0.59.1 → 0.60.1
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 +5 -0
- package/contracts/cli-runtime-command-inventory.v1.snapshot.json +4 -0
- package/contracts/extension-cli-compatibility.v1.json +1 -1
- package/contracts/workspace-intelligence/goal-agent-handoff.v1.json +89 -8
- package/contracts/workspace-intelligence/goal-index.v1.json +100 -7
- package/contracts/workspace-intelligence/goal-lifecycle-result.v1.json +74 -6
- package/contracts/workspace-intelligence/goal-pack.v1.json +182 -19
- package/contracts/workspace-intelligence/verified-goal.v1.json +44 -3
- package/dist/analyze-FYNMI5KT.js +1 -0
- package/dist/autopilot-release-IRXB2VOH.js +1 -0
- package/dist/{chunk-DGGTTRYE.js → chunk-7ITSLGPZ.js} +1 -1
- package/dist/{chunk-5NIZNXRS.js → chunk-A4BK7C7M.js} +1 -1
- package/dist/{chunk-FLTIFYTJ.js → chunk-AJ535F22.js} +1 -1
- package/dist/{chunk-KVSYBHUR.js → chunk-B6FJ6RG6.js} +1 -1
- package/dist/{chunk-5PSKBJKJ.js → chunk-DIJGQUEV.js} +1 -1
- package/dist/{chunk-QMPFNXI7.js → chunk-E4LJ3PQD.js} +1 -1
- package/dist/{chunk-6FBNSTUS.js → chunk-GPGEJVVO.js} +1 -1
- package/dist/{chunk-U3MGJN7A.js → chunk-HQWDW2BV.js} +1 -1
- package/dist/chunk-I2O6AC2Z.js +2 -0
- package/dist/chunk-ILIBOMYL.js +1 -0
- package/dist/chunk-J7G3YL4O.js +1 -0
- package/dist/{chunk-NOZ4JCH7.js → chunk-KCJ3VS6R.js} +1 -1
- package/dist/{chunk-SP5EHSWG.js → chunk-KG3TUTXU.js} +1 -1
- package/dist/chunk-KNTPDRZB.js +1 -0
- package/dist/{chunk-QPE6VCDW.js → chunk-KTW4EN47.js} +19 -19
- package/dist/{chunk-RVKMGKYL.js → chunk-MDF2FBLS.js} +1 -1
- package/dist/{chunk-WSRUPDZN.js → chunk-NA2NXX5P.js} +1 -1
- package/dist/{chunk-OFWSZYUX.js → chunk-NBJ6AP7K.js} +1 -1
- package/dist/{chunk-RTDEFUTL.js → chunk-NRVSDL4J.js} +1 -1
- package/dist/{chunk-7WUT5ZSO.js → chunk-NVQUBUTY.js} +1 -1
- package/dist/{chunk-YEEAWZWI.js → chunk-O6R7SE6Y.js} +1 -1
- package/dist/{chunk-7SFXADXO.js → chunk-OU7DF6MP.js} +1 -1
- package/dist/{chunk-WJVB6SSD.js → chunk-PTNLVI62.js} +5 -5
- package/dist/{chunk-WP3CXMVA.js → chunk-SCP5LJNO.js} +1 -1
- package/dist/{chunk-QFBVQUKV.js → chunk-TFOOSYGO.js} +6 -6
- package/dist/{chunk-3CGR6435.js → chunk-TYQMO36U.js} +1 -1
- package/dist/chunk-UJXE4UAX.js +1 -0
- package/dist/{chunk-ENKGGWRX.js → chunk-VDFHUYAQ.js} +8 -8
- package/dist/chunk-VR6XMUF3.js +2 -0
- package/dist/{chunk-Y4B55J5S.js → chunk-VV55EAWO.js} +1 -1
- package/dist/{chunk-ZJCM37KX.js → chunk-WLFJHRB3.js} +1 -1
- package/dist/{chunk-P2WH7W2H.js → chunk-WUB6QGC7.js} +6 -6
- package/dist/chunk-X6TNBARH.js +6 -0
- package/dist/{create-HUEDWYDM.js → create-ZLDOBXG4.js} +1 -1
- package/dist/demo-kit-QHIDCSBI.js +149 -0
- package/dist/{doctor-NAZEKMGU.js → doctor-MAPZ2ZCD.js} +1 -1
- package/dist/{dotnet-webapi-clean-VXEF4SHM.js → dotnet-webapi-clean-AVHPJG7Y.js} +5 -5
- package/dist/goal-command-contract-43E22XQD.js +1 -0
- package/dist/goal-interactive-selection-6YJOK4WC.js +1 -0
- package/dist/goal-lifecycle-OV6NZDD6.js +1 -0
- package/dist/goal-pack-Q3O2Z7R5.js +1 -0
- package/dist/{gofiber-standard-AQGSC7ON.js → gofiber-standard-47S2GYAO.js} +2 -2
- package/dist/{gogin-standard-7DU3OCBX.js → gogin-standard-EWB4XNOI.js} +3 -3
- package/dist/index.js +122 -122
- package/dist/{pipeline-62A2SDLC.js → pipeline-NICVJLZF.js} +1 -1
- package/dist/{project-agent-entry-7SYHRY7J.js → project-agent-entry-DVPKQST7.js} +1 -1
- package/dist/{project-intelligence-lens-BSG5LK6N.js → project-intelligence-lens-RLYSPJB2.js} +1 -1
- package/dist/{project-test-coverage-HP37HUV2.js → project-test-coverage-E2Q4QL44.js} +1 -1
- package/dist/{rust-axum-4HXDICIB.js → rust-axum-M5X4ZC4Z.js} +4 -4
- package/dist/{springboot-standard-EK6GYN5T.js → springboot-standard-Y5ADLZMQ.js} +7 -7
- package/dist/verified-goal-2BRQZQBL.js +1 -0
- package/dist/{workspace-BNRSBWSL.js → workspace-LQ77WAHC.js} +1 -1
- package/dist/{workspace-agent-sync-ANBHBZ2H.js → workspace-agent-sync-YLP75OWF.js} +1 -1
- package/dist/{workspace-context-RAO62QVU.js → workspace-context-YAK5XX27.js} +1 -1
- package/dist/{workspace-contract-ACSIHJIO.js → workspace-contract-3BWIRSVQ.js} +1 -1
- package/dist/{workspace-explain-RH27OQB4.js → workspace-explain-QH4FXQW5.js} +1 -1
- package/dist/{workspace-foundation-EWYJPPT6.js → workspace-foundation-G4KPT5CN.js} +1 -1
- package/dist/{workspace-graph-stream-ZZZEQQTE.js → workspace-graph-stream-XTSDKRLM.js} +1 -1
- package/dist/{workspace-intelligence-3YERTBA3.js → workspace-intelligence-625UN27X.js} +1 -1
- package/dist/{workspace-intelligence-runner-QLLBUD6G.js → workspace-intelligence-runner-T6CVJIQQ.js} +1 -1
- package/dist/{workspace-knowledge-graph-HZZP6ZRB.js → workspace-knowledge-graph-3ZBPSAS7.js} +1 -1
- package/dist/workspace-knowledge-graph-snapshot-ZI4W735H.js +1 -0
- package/dist/{workspace-mcp-serve-5TTAN243.js → workspace-mcp-serve-ALIZV72K.js} +1 -1
- package/dist/{workspace-model-EIQSKDX7.js → workspace-model-ETCLINRB.js} +1 -1
- package/dist/{workspace-onboarding-UW3CSURE.js → workspace-onboarding-46BE3EQD.js} +1 -1
- package/dist/{workspace-registry-summary-OV5KX3WC.js → workspace-registry-summary-VSOBKAJG.js} +1 -1
- package/dist/workspace-repair-engine-SZZKV3JF.js +3 -0
- package/dist/workspace-run-JTEFCQYQ.js +1 -0
- package/dist/{workspace-verify-W4P6LBIH.js → workspace-verify-7ENGIY4S.js} +1 -1
- package/dist/{workspace-watch-EZ4D4VCF.js → workspace-watch-2YFSB2WL.js} +1 -1
- package/docs/ci-workflows.md +1 -1
- package/docs/commands-reference.md +12 -2
- package/docs/goal-packs.md +51 -11
- package/package.json +1 -1
- package/dist/analyze-52TEGLDR.js +0 -1
- package/dist/autopilot-release-NFLAKBA3.js +0 -1
- package/dist/chunk-DQ6VXTDE.js +0 -1
- package/dist/chunk-MZKKRAAJ.js +0 -2
- package/dist/chunk-RO73VVHW.js +0 -2
- package/dist/chunk-T3GJ7YVG.js +0 -1
- package/dist/chunk-VRW6KXNK.js +0 -6
- package/dist/demo-kit-KHH63TNA.js +0 -149
- package/dist/goal-command-contract-CHE7U6YY.js +0 -1
- package/dist/goal-lifecycle-NUKWVUAL.js +0 -1
- package/dist/goal-pack-TWOXHXN6.js +0 -1
- package/dist/verified-goal-B6HQOZWA.js +0 -1
- package/dist/workspace-knowledge-graph-snapshot-7DWHMEM2.js +0 -1
- package/dist/workspace-repair-engine-DHH2UUJN.js +0 -3
- package/dist/workspace-run-BLHRXT2N.js +0 -1
package/README.md
CHANGED
|
@@ -106,6 +106,8 @@ Describe the outcome in plain language from the adopted project:
|
|
|
106
106
|
|
|
107
107
|
```bash
|
|
108
108
|
npx workspai goal "Raise test coverage to 85%" --for-agent generic
|
|
109
|
+
# In a polyglot scope, choose interactively or bind a canonical runtime:
|
|
110
|
+
npx workspai goal "Raise test coverage to 85%" --runtime cpp --for-agent generic
|
|
109
111
|
# Or pursue feature, defect, refactor, performance, documentation, or
|
|
110
112
|
# system-understanding outcomes in the same governed flow.
|
|
111
113
|
npx workspai goal "Add retry with exponential backoff" --for-agent generic
|
|
@@ -123,6 +125,9 @@ control. The command prepares governed work; it does not edit source or claim
|
|
|
123
125
|
that the outcome is complete. Exact coverage, dependency-security, and release
|
|
124
126
|
Goals have deterministic CLI verifiers; other outcomes retain CLI safety and
|
|
125
127
|
rollback while the consumer performs an evidence-backed outcome review.
|
|
128
|
+
Multi-project scope and polyglot runtime choices are explicit. Interactive
|
|
129
|
+
users get bounded choices from the canonical Workspace Model; automation gets
|
|
130
|
+
a machine-readable decision and can use `--scope` and `--runtime`.
|
|
126
131
|
|
|
127
132
|

|
|
128
133
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "rapidkit-extension-cli-compatibility.v1",
|
|
3
3
|
"cli": "workspai",
|
|
4
|
-
"minimumVerifiedCliVersion": "0.
|
|
4
|
+
"minimumVerifiedCliVersion": "0.60.1",
|
|
5
5
|
"publishedContractSchemas": {
|
|
6
6
|
"workspaceContract": 1,
|
|
7
7
|
"runtimeCommandSurface": "rapidkit-runtime-command-surface-v1",
|
|
@@ -3,7 +3,22 @@
|
|
|
3
3
|
"$id": "https://workspai.dev/schemas/workspace-intelligence/goal-agent-handoff.v1.json",
|
|
4
4
|
"title": "Workspai Goal Agent Handoff",
|
|
5
5
|
"type": "object",
|
|
6
|
-
"required": [
|
|
6
|
+
"required": [
|
|
7
|
+
"schemaVersion",
|
|
8
|
+
"goalId",
|
|
9
|
+
"goalFingerprint",
|
|
10
|
+
"generatedAt",
|
|
11
|
+
"consumer",
|
|
12
|
+
"state",
|
|
13
|
+
"objective",
|
|
14
|
+
"scope",
|
|
15
|
+
"discovery",
|
|
16
|
+
"retrieval",
|
|
17
|
+
"evidence",
|
|
18
|
+
"guardrails",
|
|
19
|
+
"workflow",
|
|
20
|
+
"renewal"
|
|
21
|
+
],
|
|
7
22
|
"properties": {
|
|
8
23
|
"schemaVersion": { "const": "workspai.goal-agent-handoff.v1" },
|
|
9
24
|
"goalId": { "type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{7,95}$" },
|
|
@@ -16,10 +31,46 @@
|
|
|
16
31
|
"type": "object",
|
|
17
32
|
"required": ["kind", "projects", "selectionSource"],
|
|
18
33
|
"properties": {
|
|
19
|
-
"kind": { "enum": ["workspace", "project"] },
|
|
20
|
-
"projects": {
|
|
21
|
-
|
|
34
|
+
"kind": { "enum": ["workspace", "project", "project-set"] },
|
|
35
|
+
"projects": {
|
|
36
|
+
"type": "array",
|
|
37
|
+
"minItems": 1,
|
|
38
|
+
"items": { "type": "string", "minLength": 1 },
|
|
39
|
+
"uniqueItems": true
|
|
40
|
+
},
|
|
41
|
+
"selectionSource": {
|
|
42
|
+
"enum": [
|
|
43
|
+
"workspace",
|
|
44
|
+
"single-project-workspace",
|
|
45
|
+
"invocation-project",
|
|
46
|
+
"explicit",
|
|
47
|
+
"interactive"
|
|
48
|
+
]
|
|
49
|
+
},
|
|
50
|
+
"resolution": { "enum": ["selected", "selection-required"] }
|
|
22
51
|
},
|
|
52
|
+
"allOf": [
|
|
53
|
+
{
|
|
54
|
+
"if": { "properties": { "kind": { "const": "project" } } },
|
|
55
|
+
"then": { "properties": { "projects": { "type": "array", "maxItems": 1 } } }
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"if": { "properties": { "kind": { "const": "project-set" } } },
|
|
59
|
+
"then": { "properties": { "projects": { "type": "array", "minItems": 2 } } }
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"if": {
|
|
63
|
+
"properties": { "resolution": { "const": "selection-required" } },
|
|
64
|
+
"required": ["resolution"]
|
|
65
|
+
},
|
|
66
|
+
"then": {
|
|
67
|
+
"properties": {
|
|
68
|
+
"kind": { "const": "workspace" },
|
|
69
|
+
"selectionSource": { "const": "workspace" }
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
],
|
|
23
74
|
"additionalProperties": false
|
|
24
75
|
},
|
|
25
76
|
"evidence": {
|
|
@@ -51,7 +102,12 @@
|
|
|
51
102
|
"properties": {
|
|
52
103
|
"index": { "const": ".workspai/goals/index.json" },
|
|
53
104
|
"statusCommand": { "type": "string", "pattern": "^workspai goal --status " },
|
|
54
|
-
"requiredReads": {
|
|
105
|
+
"requiredReads": {
|
|
106
|
+
"type": "array",
|
|
107
|
+
"minItems": 3,
|
|
108
|
+
"items": { "type": "string", "pattern": "^\\.workspai/" },
|
|
109
|
+
"uniqueItems": true
|
|
110
|
+
}
|
|
55
111
|
},
|
|
56
112
|
"additionalProperties": false
|
|
57
113
|
},
|
|
@@ -61,12 +117,37 @@
|
|
|
61
117
|
"properties": {
|
|
62
118
|
"status": { "enum": ["grounded", "partial", "empty"] },
|
|
63
119
|
"strategy": { "const": "deterministic-category-v1" },
|
|
64
|
-
"queries": {
|
|
65
|
-
|
|
120
|
+
"queries": {
|
|
121
|
+
"type": "array",
|
|
122
|
+
"minItems": 1,
|
|
123
|
+
"maxItems": 3,
|
|
124
|
+
"items": { "type": "string", "minLength": 1 },
|
|
125
|
+
"uniqueItems": true
|
|
126
|
+
},
|
|
127
|
+
"anchors": {
|
|
128
|
+
"type": "array",
|
|
129
|
+
"maxItems": 20,
|
|
130
|
+
"items": {
|
|
131
|
+
"type": "object",
|
|
132
|
+
"required": ["entityId", "kind", "label", "proofIds"],
|
|
133
|
+
"properties": {
|
|
134
|
+
"entityId": { "type": "string" },
|
|
135
|
+
"kind": { "type": "string" },
|
|
136
|
+
"label": { "type": "string" },
|
|
137
|
+
"proofIds": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }
|
|
138
|
+
},
|
|
139
|
+
"additionalProperties": false
|
|
140
|
+
}
|
|
141
|
+
}
|
|
66
142
|
},
|
|
67
143
|
"additionalProperties": false
|
|
68
144
|
},
|
|
69
|
-
"guardrails": {
|
|
145
|
+
"guardrails": {
|
|
146
|
+
"type": "array",
|
|
147
|
+
"minItems": 5,
|
|
148
|
+
"items": { "type": "string", "minLength": 1 },
|
|
149
|
+
"uniqueItems": true
|
|
150
|
+
},
|
|
70
151
|
"workflow": {
|
|
71
152
|
"type": "array",
|
|
72
153
|
"minItems": 5,
|
|
@@ -12,28 +12,97 @@
|
|
|
12
12
|
"type": "array",
|
|
13
13
|
"items": {
|
|
14
14
|
"type": "object",
|
|
15
|
-
"required": [
|
|
15
|
+
"required": [
|
|
16
|
+
"id",
|
|
17
|
+
"fingerprint",
|
|
18
|
+
"objective",
|
|
19
|
+
"category",
|
|
20
|
+
"state",
|
|
21
|
+
"lifecycle",
|
|
22
|
+
"scope",
|
|
23
|
+
"createdAt",
|
|
24
|
+
"updatedAt",
|
|
25
|
+
"goalPack",
|
|
26
|
+
"agentHandoff"
|
|
27
|
+
],
|
|
16
28
|
"properties": {
|
|
17
29
|
"id": { "type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{7,95}$" },
|
|
18
30
|
"fingerprint": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
|
|
19
31
|
"objective": { "type": "string", "minLength": 1, "maxLength": 2000 },
|
|
20
|
-
"category": {
|
|
32
|
+
"category": {
|
|
33
|
+
"enum": [
|
|
34
|
+
"release-readiness",
|
|
35
|
+
"dependency-security",
|
|
36
|
+
"test-coverage",
|
|
37
|
+
"defect-repair",
|
|
38
|
+
"feature-change",
|
|
39
|
+
"refactor",
|
|
40
|
+
"performance",
|
|
41
|
+
"documentation",
|
|
42
|
+
"system-understanding"
|
|
43
|
+
]
|
|
44
|
+
},
|
|
21
45
|
"state": { "enum": ["ready-to-plan", "needs-confirmation", "needs-evidence", "blocked"] },
|
|
22
|
-
"lifecycle": {
|
|
46
|
+
"lifecycle": {
|
|
47
|
+
"enum": ["planned", "active", "cancelled", "verification-ready", "verified", "failed"]
|
|
48
|
+
},
|
|
23
49
|
"scope": {
|
|
24
50
|
"type": "object",
|
|
25
51
|
"required": ["kind", "projects", "selectionSource"],
|
|
26
52
|
"properties": {
|
|
27
|
-
"kind": { "enum": ["workspace", "project"] },
|
|
28
|
-
"projects": {
|
|
29
|
-
|
|
53
|
+
"kind": { "enum": ["workspace", "project", "project-set"] },
|
|
54
|
+
"projects": {
|
|
55
|
+
"type": "array",
|
|
56
|
+
"minItems": 1,
|
|
57
|
+
"items": { "type": "string", "minLength": 1 },
|
|
58
|
+
"uniqueItems": true
|
|
59
|
+
},
|
|
60
|
+
"selectionSource": {
|
|
61
|
+
"enum": [
|
|
62
|
+
"workspace",
|
|
63
|
+
"single-project-workspace",
|
|
64
|
+
"invocation-project",
|
|
65
|
+
"explicit",
|
|
66
|
+
"interactive"
|
|
67
|
+
]
|
|
68
|
+
},
|
|
69
|
+
"resolution": { "enum": ["selected", "selection-required"] }
|
|
30
70
|
},
|
|
71
|
+
"allOf": [
|
|
72
|
+
{
|
|
73
|
+
"if": { "properties": { "kind": { "const": "project" } } },
|
|
74
|
+
"then": {
|
|
75
|
+
"properties": { "projects": { "type": "array", "maxItems": 1 } }
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"if": { "properties": { "kind": { "const": "project-set" } } },
|
|
80
|
+
"then": {
|
|
81
|
+
"properties": { "projects": { "type": "array", "minItems": 2 } }
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"if": {
|
|
86
|
+
"properties": { "resolution": { "const": "selection-required" } },
|
|
87
|
+
"required": ["resolution"]
|
|
88
|
+
},
|
|
89
|
+
"then": {
|
|
90
|
+
"properties": {
|
|
91
|
+
"kind": { "const": "workspace" },
|
|
92
|
+
"selectionSource": { "const": "workspace" }
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
],
|
|
31
97
|
"additionalProperties": false
|
|
32
98
|
},
|
|
33
99
|
"createdAt": { "type": "string", "format": "date-time" },
|
|
34
100
|
"updatedAt": { "type": "string", "format": "date-time" },
|
|
35
101
|
"goalPack": { "type": "string", "pattern": "^\\.workspai/goals/[^/]+/goal-pack\\.json$" },
|
|
36
|
-
"agentHandoff": {
|
|
102
|
+
"agentHandoff": {
|
|
103
|
+
"type": "string",
|
|
104
|
+
"pattern": "^\\.workspai/goals/[^/]+/agent-handoff\\.json$"
|
|
105
|
+
},
|
|
37
106
|
"verifiedGoalId": { "type": "string", "minLength": 1 },
|
|
38
107
|
"repairTransactionId": { "type": "string", "minLength": 1 },
|
|
39
108
|
"repairTransactionIds": {
|
|
@@ -41,6 +110,30 @@
|
|
|
41
110
|
"maxItems": 25,
|
|
42
111
|
"uniqueItems": true,
|
|
43
112
|
"items": { "type": "string", "minLength": 1 }
|
|
113
|
+
},
|
|
114
|
+
"verificationReceipt": {
|
|
115
|
+
"type": "object",
|
|
116
|
+
"required": [
|
|
117
|
+
"verifiedGoalId",
|
|
118
|
+
"attempt",
|
|
119
|
+
"statusHash",
|
|
120
|
+
"modelHash",
|
|
121
|
+
"graphFingerprint",
|
|
122
|
+
"graphFingerprintSemantics",
|
|
123
|
+
"recordedAt"
|
|
124
|
+
],
|
|
125
|
+
"properties": {
|
|
126
|
+
"verifiedGoalId": { "type": "string", "minLength": 1 },
|
|
127
|
+
"attempt": { "type": "integer", "minimum": 1 },
|
|
128
|
+
"statusHash": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
|
|
129
|
+
"modelHash": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
|
|
130
|
+
"graphFingerprint": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
|
|
131
|
+
"graphFingerprintSemantics": {
|
|
132
|
+
"enum": ["workspace-knowledge-graph-inputs-v1", "canonical-json-v1"]
|
|
133
|
+
},
|
|
134
|
+
"recordedAt": { "type": "string", "format": "date-time" }
|
|
135
|
+
},
|
|
136
|
+
"additionalProperties": false
|
|
44
137
|
}
|
|
45
138
|
},
|
|
46
139
|
"additionalProperties": false
|
|
@@ -28,7 +28,9 @@
|
|
|
28
28
|
"schemaVersion": { "const": "workspai.goal-pack.v1" },
|
|
29
29
|
"id": { "type": "string" },
|
|
30
30
|
"fingerprint": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
|
|
31
|
-
"state": {
|
|
31
|
+
"state": {
|
|
32
|
+
"enum": ["ready-to-plan", "needs-confirmation", "needs-evidence", "blocked"]
|
|
33
|
+
}
|
|
32
34
|
}
|
|
33
35
|
},
|
|
34
36
|
{ "type": "null" }
|
|
@@ -71,15 +73,57 @@
|
|
|
71
73
|
]
|
|
72
74
|
},
|
|
73
75
|
"state": { "enum": ["ready-to-plan", "needs-confirmation", "needs-evidence", "blocked"] },
|
|
74
|
-
"lifecycle": {
|
|
76
|
+
"lifecycle": {
|
|
77
|
+
"enum": ["planned", "active", "cancelled", "verification-ready", "verified", "failed"]
|
|
78
|
+
},
|
|
75
79
|
"scope": {
|
|
76
80
|
"type": "object",
|
|
77
81
|
"required": ["kind", "projects", "selectionSource"],
|
|
78
82
|
"properties": {
|
|
79
|
-
"kind": { "enum": ["workspace", "project"] },
|
|
80
|
-
"projects": {
|
|
81
|
-
|
|
83
|
+
"kind": { "enum": ["workspace", "project", "project-set"] },
|
|
84
|
+
"projects": {
|
|
85
|
+
"type": "array",
|
|
86
|
+
"minItems": 1,
|
|
87
|
+
"items": { "type": "string", "minLength": 1 },
|
|
88
|
+
"uniqueItems": true
|
|
89
|
+
},
|
|
90
|
+
"selectionSource": {
|
|
91
|
+
"enum": [
|
|
92
|
+
"workspace",
|
|
93
|
+
"single-project-workspace",
|
|
94
|
+
"invocation-project",
|
|
95
|
+
"explicit",
|
|
96
|
+
"interactive"
|
|
97
|
+
]
|
|
98
|
+
},
|
|
99
|
+
"resolution": { "enum": ["selected", "selection-required"] }
|
|
82
100
|
},
|
|
101
|
+
"allOf": [
|
|
102
|
+
{
|
|
103
|
+
"if": { "properties": { "kind": { "const": "project" } } },
|
|
104
|
+
"then": {
|
|
105
|
+
"properties": { "projects": { "type": "array", "maxItems": 1 } }
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"if": { "properties": { "kind": { "const": "project-set" } } },
|
|
110
|
+
"then": {
|
|
111
|
+
"properties": { "projects": { "type": "array", "minItems": 2 } }
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"if": {
|
|
116
|
+
"properties": { "resolution": { "const": "selection-required" } },
|
|
117
|
+
"required": ["resolution"]
|
|
118
|
+
},
|
|
119
|
+
"then": {
|
|
120
|
+
"properties": {
|
|
121
|
+
"kind": { "const": "workspace" },
|
|
122
|
+
"selectionSource": { "const": "workspace" }
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
],
|
|
83
127
|
"additionalProperties": false
|
|
84
128
|
},
|
|
85
129
|
"createdAt": { "type": "string", "format": "date-time" },
|
|
@@ -87,7 +131,31 @@
|
|
|
87
131
|
"goalPack": { "type": "string" },
|
|
88
132
|
"agentHandoff": { "type": "string" },
|
|
89
133
|
"verifiedGoalId": { "type": "string" },
|
|
90
|
-
"repairTransactionId": { "type": "string" }
|
|
134
|
+
"repairTransactionId": { "type": "string" },
|
|
135
|
+
"verificationReceipt": {
|
|
136
|
+
"type": "object",
|
|
137
|
+
"required": [
|
|
138
|
+
"verifiedGoalId",
|
|
139
|
+
"attempt",
|
|
140
|
+
"statusHash",
|
|
141
|
+
"modelHash",
|
|
142
|
+
"graphFingerprint",
|
|
143
|
+
"graphFingerprintSemantics",
|
|
144
|
+
"recordedAt"
|
|
145
|
+
],
|
|
146
|
+
"properties": {
|
|
147
|
+
"verifiedGoalId": { "type": "string", "minLength": 1 },
|
|
148
|
+
"attempt": { "type": "integer", "minimum": 1 },
|
|
149
|
+
"statusHash": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
|
|
150
|
+
"modelHash": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
|
|
151
|
+
"graphFingerprint": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
|
|
152
|
+
"graphFingerprintSemantics": {
|
|
153
|
+
"enum": ["workspace-knowledge-graph-inputs-v1", "canonical-json-v1"]
|
|
154
|
+
},
|
|
155
|
+
"recordedAt": { "type": "string", "format": "date-time" }
|
|
156
|
+
},
|
|
157
|
+
"additionalProperties": false
|
|
158
|
+
}
|
|
91
159
|
},
|
|
92
160
|
"additionalProperties": false
|
|
93
161
|
}
|