workspai 0.65.0 → 0.66.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (195) hide show
  1. package/README.md +4 -1
  2. package/contracts/agent-customization-pack.v1.json +4 -2
  3. package/contracts/analyze-last-run.v1.json +9 -1
  4. package/contracts/cli-runtime-command-inventory.v1.snapshot.json +113 -0
  5. package/contracts/extension-cli-compatibility.v1.json +2 -0
  6. package/contracts/published-contract-catalog.v1.json +10 -0
  7. package/contracts/runtime-command-surface.v1.json +47 -2
  8. package/contracts/workspace-activity-event.v1.json +132 -0
  9. package/contracts/workspace-intelligence/agent-bootstrap-receipt.v1.json +17 -0
  10. package/contracts/workspace-intelligence/mcp-design.v1.json +49 -2
  11. package/contracts/workspace-intelligence/project-agent-entry.v1.json +3 -0
  12. package/contracts/workspace-intelligence/project-context-agent.v1.json +49 -7
  13. package/contracts/workspace-intelligence/project-knowledge-graph-reference.v1.json +51 -0
  14. package/contracts/workspace-intelligence/workspace-knowledge-graph.v1.json +97 -2
  15. package/contracts/workspace-intelligence/workspace-skills-index.v1.json +34 -0
  16. package/dist/analyze-UJQWGNM2.js +1 -0
  17. package/dist/{artifact-remediation-plan-XIQNI35L.js → artifact-remediation-plan-M2XBS2IU.js} +1 -1
  18. package/dist/autopilot-release-U6F4M2BQ.js +1 -0
  19. package/dist/capabilities-command-XUKPO25Z.js +1 -0
  20. package/dist/chunk-2LIVMG5C.js +2 -0
  21. package/dist/{chunk-XGE2FDI4.js → chunk-2PACEMNE.js} +1 -1
  22. package/dist/chunk-334J2KIP.js +7 -0
  23. package/dist/{chunk-6TBTMWNA.js → chunk-3H5ACWWZ.js} +1 -1
  24. package/dist/{chunk-HCFWT42C.js → chunk-3NM3JAZW.js} +1 -1
  25. package/dist/chunk-4XEH3WNV.js +13 -0
  26. package/dist/chunk-5OA33JH2.js +2 -0
  27. package/dist/chunk-5TY74LLW.js +2 -0
  28. package/dist/{chunk-QCKWQFCD.js → chunk-5U4L6VF2.js} +1 -1
  29. package/dist/{chunk-W6FHVXNL.js → chunk-5XGR3LRI.js} +1 -1
  30. package/dist/{chunk-KTN2ARZJ.js → chunk-6JX56VAL.js} +3 -3
  31. package/dist/chunk-6UNATTB7.js +1 -0
  32. package/dist/{chunk-J3X56S7L.js → chunk-727IQFGN.js} +1 -1
  33. package/dist/chunk-7FF5EOIO.js +2 -0
  34. package/dist/{chunk-D5YJOQYK.js → chunk-AP4PV6WJ.js} +1 -1
  35. package/dist/chunk-AXUA7PFV.js +2 -0
  36. package/dist/chunk-B4IVVTMQ.js +2 -0
  37. package/dist/{chunk-LNXIMF3O.js → chunk-C4S22E6S.js} +1 -1
  38. package/dist/{chunk-PXWKMPPI.js → chunk-D4UHRJAP.js} +1 -1
  39. package/dist/chunk-DUBOKZMA.js +49 -0
  40. package/dist/{chunk-VYDURWN7.js → chunk-ECLMYTWT.js} +1 -1
  41. package/dist/{chunk-2RL6RRT2.js → chunk-EHH4SKVH.js} +50 -50
  42. package/dist/chunk-EP4CUWOO.js +9 -0
  43. package/dist/chunk-FY4X2VOE.js +39 -0
  44. package/dist/chunk-GAYK3WGV.js +2 -0
  45. package/dist/{chunk-YUGKQ44M.js → chunk-H5RJCS5E.js} +1 -1
  46. package/dist/{chunk-YN5X2FTP.js → chunk-H7MRINGP.js} +1 -1
  47. package/dist/chunk-HJLGXFMK.js +1 -0
  48. package/dist/{chunk-VRGEPPUB.js → chunk-HLWDIIWL.js} +1 -1
  49. package/dist/{chunk-HDNATYW7.js → chunk-IIFFEEMX.js} +1 -1
  50. package/dist/chunk-IVF6NEHS.js +1 -0
  51. package/dist/chunk-JC4XSU7G.js +1 -0
  52. package/dist/chunk-JRP6WP5C.js +681 -0
  53. package/dist/chunk-JZJBA2V2.js +1 -0
  54. package/dist/{chunk-N4QQADXX.js → chunk-L5CCIIF2.js} +1 -1
  55. package/dist/chunk-L5Q2S5GY.js +3 -0
  56. package/dist/chunk-LPCZHKD5.js +1 -0
  57. package/dist/chunk-MZ7U4BIQ.js +157 -0
  58. package/dist/chunk-NMXGSVMD.js +1 -0
  59. package/dist/{chunk-GQSRNUCU.js → chunk-NVND4727.js} +3 -3
  60. package/dist/chunk-O37UBRMX.js +4 -0
  61. package/dist/chunk-OI2VOU6S.js +1 -0
  62. package/dist/chunk-PD7Y6HIM.js +2 -0
  63. package/dist/chunk-PJPS7CNH.js +1 -0
  64. package/dist/chunk-QGAPGZPL.js +97 -0
  65. package/dist/chunk-R2M5OJOK.js +5 -0
  66. package/dist/chunk-SX6A656X.js +1 -0
  67. package/dist/{chunk-X6TNBARH.js → chunk-TABXSDTR.js} +2 -2
  68. package/dist/chunk-TTHO4MFC.js +2 -0
  69. package/dist/chunk-U5ENEDJA.js +7 -0
  70. package/dist/chunk-UOCERSAN.js +1 -0
  71. package/dist/chunk-UPIPSSXY.js +1 -0
  72. package/dist/chunk-UTV4DTNM.js +1 -0
  73. package/dist/chunk-VA5VSOBL.js +2 -0
  74. package/dist/chunk-VQOWB26M.js +12 -0
  75. package/dist/chunk-VQZ5PI5J.js +1 -0
  76. package/dist/chunk-WTWRSEOW.js +1 -0
  77. package/dist/{chunk-D65FCQIO.js → chunk-XESFJN52.js} +1 -1
  78. package/dist/{chunk-YYQEWAES.js → chunk-XQFWUM2P.js} +1 -1
  79. package/dist/chunk-XWKGZRHN.js +1 -0
  80. package/dist/{chunk-WRQWVSBJ.js → chunk-YX5VWPR5.js} +1 -1
  81. package/dist/chunk-ZQH2I5RQ.js +1 -0
  82. package/dist/{create-ALT2ME6H.js → create-SOLLXXAB.js} +1 -1
  83. package/dist/{demo-kit-QHIDCSBI.js → demo-kit-5UQH2OXC.js} +1 -1
  84. package/dist/{doctor-RW4R3O5C.js → doctor-NQ5PUCUP.js} +1 -1
  85. package/dist/{dotnet-webapi-clean-AVHPJG7Y.js → dotnet-webapi-clean-YEHYIGOT.js} +1 -1
  86. package/dist/{goal-lifecycle-VYOKS6E6.js → goal-lifecycle-IPNY7KNR.js} +1 -1
  87. package/dist/goal-pack-2WV3EA4Y.js +1 -0
  88. package/dist/{gofiber-standard-47S2GYAO.js → gofiber-standard-C44IIQYH.js} +1 -1
  89. package/dist/{gogin-standard-EWB4XNOI.js → gogin-standard-X7VKACVR.js} +1 -1
  90. package/dist/index.d.ts +8 -2
  91. package/dist/index.js +170 -170
  92. package/dist/live-command-Q6E45N7S.js +18 -0
  93. package/dist/{pipeline-U4N2DVD7.js → pipeline-MIMENSI7.js} +1 -1
  94. package/dist/{project-agent-entry-YAQCHIMP.js → project-agent-entry-OWLJ3IHQ.js} +1 -1
  95. package/dist/project-intelligence-lens-I67EO6AE.js +1 -0
  96. package/dist/{project-test-coverage-4S7MEQ6T.js → project-test-coverage-OPDVSFPH.js} +1 -1
  97. package/dist/{pythonRapidkitExec-VAW5XE4Z.js → pythonRapidkitExec-44ORGQ4R.js} +1 -1
  98. package/dist/{rust-axum-M5X4ZC4Z.js → rust-axum-JKZTZDRZ.js} +1 -1
  99. package/dist/{springboot-standard-Y5ADLZMQ.js → springboot-standard-PI4FLTAN.js} +1 -1
  100. package/dist/verified-goal-46JWNCDY.js +1 -0
  101. package/dist/{workspace-HGUZWNAB.js → workspace-KO37XHF6.js} +1 -1
  102. package/dist/{workspace-agent-sync-GEN3KBAX.js → workspace-agent-sync-32FIJQBH.js} +1 -1
  103. package/dist/{workspace-archive-ZBCKJHXS.js → workspace-archive-6R5DRNZW.js} +1 -1
  104. package/dist/{workspace-context-4WIWFW26.js → workspace-context-JKRPX775.js} +1 -1
  105. package/dist/{workspace-contract-7DXK4GF5.js → workspace-contract-4T3NYNK5.js} +1 -1
  106. package/dist/workspace-explain-MOGL4GEA.js +1 -0
  107. package/dist/workspace-explain-contract-W2E6LF4Q.js +1 -0
  108. package/dist/{workspace-feedback-RQ4TGJW6.js → workspace-feedback-6VQ7T4CR.js} +1 -1
  109. package/dist/{workspace-foundation-J3NNRMI3.js → workspace-foundation-GHWO3BZU.js} +1 -1
  110. package/dist/{workspace-graph-stream-PQI7OGCE.js → workspace-graph-stream-PTVS47NJ.js} +1 -1
  111. package/dist/workspace-graph-token-efficiency-Z5JD5NHI.js +1 -0
  112. package/dist/{workspace-history-SYCDK7FO.js → workspace-history-M2K4M2JY.js} +1 -1
  113. package/dist/{workspace-intelligence-6FS26JOQ.js → workspace-intelligence-PJIPTXL3.js} +1 -1
  114. package/dist/{workspace-intelligence-evaluation-CQDKOYZZ.js → workspace-intelligence-evaluation-GONCRE6O.js} +1 -1
  115. package/dist/{workspace-intelligence-runner-XYUPCSLN.js → workspace-intelligence-runner-M47QR3JM.js} +1 -1
  116. package/dist/{workspace-intelligence-runtime-registry-IW6J53LO.js → workspace-intelligence-runtime-registry-FFGQF4A7.js} +1 -1
  117. package/dist/workspace-knowledge-graph-V2EAYDCL.js +1 -0
  118. package/dist/{workspace-knowledge-graph-contract-L3CLAM2M.js → workspace-knowledge-graph-contract-VANN7RCA.js} +1 -1
  119. package/dist/{workspace-knowledge-graph-query-FZXSPWGK.js → workspace-knowledge-graph-query-RASPF7FS.js} +1 -1
  120. package/dist/workspace-knowledge-graph-snapshot-5YIG6EMG.js +1 -0
  121. package/dist/{workspace-marker-7NHMDIRL.js → workspace-marker-XGAWZZDX.js} +1 -1
  122. package/dist/workspace-mcp-serve-YRORNE4P.js +3 -0
  123. package/dist/workspace-model-VSVKLX7M.js +1 -0
  124. package/dist/{workspace-onboarding-X3PWRIIS.js → workspace-onboarding-2VMJZVLZ.js} +1 -1
  125. package/dist/{workspace-python-engine-state-J4QKW55K.js → workspace-python-engine-state-BE4A3BL5.js} +1 -1
  126. package/dist/{workspace-readme-G7TZ3V5T.js → workspace-readme-6X3GLTBM.js} +2 -2
  127. package/dist/{workspace-registry-summary-LJN4WHIZ.js → workspace-registry-summary-QVSJKKTX.js} +1 -1
  128. package/dist/workspace-repair-engine-WSKV3Q4V.js +3 -0
  129. package/dist/workspace-run-3BXKTLVL.js +1 -0
  130. package/dist/{workspace-verify-USRRIM2F.js → workspace-verify-EJCSOBIK.js} +1 -1
  131. package/dist/{workspace-watch-43YZPLF7.js → workspace-watch-JTIFBF4Z.js} +1 -1
  132. package/docs/SETUP.md +10 -0
  133. package/docs/agent-entry.md +22 -7
  134. package/docs/ci-workflows.md +1 -1
  135. package/docs/commands-reference.md +41 -7
  136. package/docs/contracts/ARTIFACT_CATALOG.md +63 -44
  137. package/docs/contracts/COMMAND_OWNERSHIP_MATRIX.md +1 -0
  138. package/docs/contracts/NAMING_AND_COEXISTENCE.md +20 -18
  139. package/docs/contracts/README.md +4 -3
  140. package/docs/real-world-qualification.md +19 -3
  141. package/docs/workspace-knowledge-graph.md +95 -27
  142. package/docs/workspace-live-activity.md +199 -0
  143. package/docs/workspace-operations.md +32 -9
  144. package/package.json +1 -1
  145. package/dist/analyze-5PDVWECJ.js +0 -1
  146. package/dist/autopilot-release-JVIJCTKX.js +0 -1
  147. package/dist/capabilities-command-LHM3XIS6.js +0 -1
  148. package/dist/chunk-2647BYBC.js +0 -1
  149. package/dist/chunk-27UR373Z.js +0 -1
  150. package/dist/chunk-2C5ZBVBI.js +0 -2
  151. package/dist/chunk-6JWNDWOA.js +0 -1
  152. package/dist/chunk-CCDGHPEJ.js +0 -2
  153. package/dist/chunk-DFG33SBR.js +0 -2
  154. package/dist/chunk-FY4IIAIF.js +0 -1
  155. package/dist/chunk-HEZZ72V4.js +0 -94
  156. package/dist/chunk-HN7P4T3B.js +0 -681
  157. package/dist/chunk-ILIBOMYL.js +0 -1
  158. package/dist/chunk-J7QYANXK.js +0 -8
  159. package/dist/chunk-JD3A5QM6.js +0 -2
  160. package/dist/chunk-JQLJBK5N.js +0 -1
  161. package/dist/chunk-KLSSPJTV.js +0 -1
  162. package/dist/chunk-L22EABIC.js +0 -7
  163. package/dist/chunk-MDTI3UEB.js +0 -1
  164. package/dist/chunk-MOSXTVPU.js +0 -1
  165. package/dist/chunk-MYJQGGIU.js +0 -5
  166. package/dist/chunk-NOV6723U.js +0 -1
  167. package/dist/chunk-NYEAMMUL.js +0 -1
  168. package/dist/chunk-NZ3WZYD5.js +0 -1
  169. package/dist/chunk-O5B2L3R2.js +0 -1
  170. package/dist/chunk-OWB5KWSS.js +0 -13
  171. package/dist/chunk-P5PSZQPB.js +0 -2
  172. package/dist/chunk-QI3HG6IG.js +0 -144
  173. package/dist/chunk-SWGSFLTC.js +0 -1
  174. package/dist/chunk-THIOE2PB.js +0 -2
  175. package/dist/chunk-U5FCQTVL.js +0 -4
  176. package/dist/chunk-UXEO5QCF.js +0 -33
  177. package/dist/chunk-VR6XMUF3.js +0 -2
  178. package/dist/chunk-VVJK5NFY.js +0 -2
  179. package/dist/chunk-VXKWWX7S.js +0 -8
  180. package/dist/chunk-W322YDHS.js +0 -49
  181. package/dist/chunk-WPRLXKWC.js +0 -8
  182. package/dist/chunk-Y5YAP4F3.js +0 -2
  183. package/dist/chunk-YOCN7GF4.js +0 -1
  184. package/dist/goal-pack-YWPI43QL.js +0 -1
  185. package/dist/project-intelligence-lens-MRQR2LQW.js +0 -1
  186. package/dist/verified-goal-WM34TTGE.js +0 -1
  187. package/dist/workspace-explain-TE2LGOAV.js +0 -1
  188. package/dist/workspace-explain-contract-V2IVSROX.js +0 -1
  189. package/dist/workspace-graph-token-efficiency-2I4X374C.js +0 -1
  190. package/dist/workspace-knowledge-graph-SWCKDTPF.js +0 -1
  191. package/dist/workspace-knowledge-graph-snapshot-M572JRB4.js +0 -1
  192. package/dist/workspace-mcp-serve-IBMTFQDY.js +0 -3
  193. package/dist/workspace-model-ZL6WCICX.js +0 -1
  194. package/dist/workspace-repair-engine-NX7I632M.js +0 -3
  195. package/dist/workspace-run-6GT5OBQ5.js +0 -1
package/README.md CHANGED
@@ -64,10 +64,13 @@ your-workspace/ # canonical system boundary
64
64
  ├── AGENTS.md · CLAUDE.md · GEMINI.md · QWEN.md
65
65
  ├── .cursor/ · .claude/ · .github/ · .agents/ # host-native projections
66
66
  ├── nova-api/
67
+ │ ├── .agents/skills/workspai-*/SKILL.md # portable project Skill wrappers
67
68
  │ └── .workspai/
68
69
  │ ├── agent-entry.v1.json # canonical project entry
69
70
  │ ├── workspace-link.local.json # machine-local binding
70
- │ └── reports/project-context-agent.json
71
+ │ └── reports/
72
+ │ ├── project-context-agent.json
73
+ │ └── project-knowledge-graph-reference.json
71
74
  └── summit-web/ # same project-level boundary
72
75
  ```
73
76
 
@@ -52,9 +52,10 @@
52
52
  ]
53
53
  },
54
54
  "agents": {
55
- "meaning": "Generate portable AGENTS.md grounding for any agent.",
55
+ "meaning": "Generate portable AGENTS.md grounding and .agents/skills projections.",
56
56
  "outputFamilies": [
57
- "portable"
57
+ "portable",
58
+ "skills"
58
59
  ]
59
60
  },
60
61
  "copilot": {
@@ -281,6 +282,7 @@
281
282
  ".workspai/skills/"
282
283
  ],
283
284
  "l2PrefixedMirrorRoots": [
285
+ ".agents/",
284
286
  ".github/",
285
287
  ".cursor/",
286
288
  ".claude/",
@@ -26,8 +26,16 @@
26
26
  "profile": { "type": ["string", "null"] },
27
27
  "summary": {
28
28
  "type": "object",
29
- "required": ["score", "verdict", "projectCount", "runtimeCount", "findings"],
29
+ "required": [
30
+ "score",
31
+ "verdict",
32
+ "projectCount",
33
+ "runtimeCount",
34
+ "findings"
35
+ ],
30
36
  "properties": {
37
+ "statusScope": { "const": "source-structure" },
38
+ "releaseReadiness": { "const": "not-evaluated" },
31
39
  "score": { "type": "number" },
32
40
  "verdict": {
33
41
  "enum": ["ready", "needs-attention", "blocked"]
@@ -727,6 +727,98 @@
727
727
  }
728
728
  ]
729
729
  },
730
+ {
731
+ "path": [
732
+ "live"
733
+ ],
734
+ "command": "live",
735
+ "parent": null,
736
+ "registrationKind": "commander",
737
+ "aliases": [],
738
+ "description": "Open a live cross-terminal execution graph for Workspai activity",
739
+ "hidden": false,
740
+ "arguments": [
741
+ {
742
+ "name": "target",
743
+ "required": false,
744
+ "variadic": false
745
+ }
746
+ ],
747
+ "options": [
748
+ {
749
+ "flags": "--global",
750
+ "attributeName": "global"
751
+ },
752
+ {
753
+ "flags": "--run <runId>",
754
+ "attributeName": "run"
755
+ },
756
+ {
757
+ "flags": "--once",
758
+ "attributeName": "once"
759
+ },
760
+ {
761
+ "flags": "--json",
762
+ "attributeName": "json"
763
+ },
764
+ {
765
+ "flags": "--refresh-ms <milliseconds>",
766
+ "attributeName": "refreshMs"
767
+ },
768
+ {
769
+ "flags": "--max-runs <count>",
770
+ "attributeName": "maxRuns"
771
+ },
772
+ {
773
+ "flags": "--max-scopes <count>",
774
+ "attributeName": "maxScopes"
775
+ },
776
+ {
777
+ "flags": "--classic",
778
+ "attributeName": "classic"
779
+ },
780
+ {
781
+ "flags": "--no-color",
782
+ "attributeName": "color"
783
+ },
784
+ {
785
+ "flags": "--no-motion",
786
+ "attributeName": "motion"
787
+ },
788
+ {
789
+ "flags": "--ascii",
790
+ "attributeName": "ascii"
791
+ },
792
+ {
793
+ "flags": "--accessible",
794
+ "attributeName": "accessible"
795
+ },
796
+ {
797
+ "flags": "--capture <file>",
798
+ "attributeName": "capture"
799
+ },
800
+ {
801
+ "flags": "--capture-preset <preset>",
802
+ "attributeName": "capturePreset"
803
+ },
804
+ {
805
+ "flags": "--capture-theme <theme>",
806
+ "attributeName": "captureTheme"
807
+ },
808
+ {
809
+ "flags": "--no-capture-redact",
810
+ "attributeName": "captureRedact"
811
+ },
812
+ {
813
+ "flags": "--replay <runId>",
814
+ "attributeName": "replay"
815
+ },
816
+ {
817
+ "flags": "--replay-speed <multiplier>",
818
+ "attributeName": "replaySpeed"
819
+ }
820
+ ]
821
+ },
730
822
  {
731
823
  "path": [
732
824
  "mirror"
@@ -1469,6 +1561,22 @@
1469
1561
  "flags": "--scan-depth <count>",
1470
1562
  "attributeName": "scanDepth"
1471
1563
  },
1564
+ {
1565
+ "flags": "--graph-inventory-limit <count>",
1566
+ "attributeName": "graphInventoryLimit"
1567
+ },
1568
+ {
1569
+ "flags": "--graph-semantic-budget <count>",
1570
+ "attributeName": "graphSemanticBudget"
1571
+ },
1572
+ {
1573
+ "flags": "--graph-deep-budget <count>",
1574
+ "attributeName": "graphDeepBudget"
1575
+ },
1576
+ {
1577
+ "flags": "--graph-source-budget <count>",
1578
+ "attributeName": "graphSourceBudget"
1579
+ },
1472
1580
  {
1473
1581
  "flags": "--limit <count>",
1474
1582
  "attributeName": "limit"
@@ -1597,6 +1705,10 @@
1597
1705
  "flags": "--parallel",
1598
1706
  "attributeName": "parallel"
1599
1707
  },
1708
+ {
1709
+ "flags": "--plan",
1710
+ "attributeName": "plan"
1711
+ },
1600
1712
  {
1601
1713
  "flags": "--runtime <runtime>",
1602
1714
  "attributeName": "runtime"
@@ -1707,6 +1819,7 @@
1707
1819
  "goal",
1708
1820
  "import",
1709
1821
  "infra",
1822
+ "live",
1710
1823
  "mirror",
1711
1824
  "pipeline",
1712
1825
  "product",
@@ -18,6 +18,7 @@
18
18
  "projectWorkspaceLink": "project-workspace-link.v1",
19
19
  "projectWorkspaceResolution": "project-workspace-resolution.v1",
20
20
  "projectContextAgent": "project-context-agent.v1",
21
+ "projectKnowledgeGraphReference": "project-knowledge-graph-reference.v1",
21
22
  "projectAgentEntry": "workspai.agent-entry.v1",
22
23
  "agentBootstrapReceipt": "workspai.agent-bootstrap-receipt.v1",
23
24
  "doctorProjectEvidence": "doctor-project-evidence-v1",
@@ -63,6 +64,7 @@
63
64
  "repairTransaction": "workspai.workspace-repair-transaction.v1"
64
65
  },
65
66
  "cliLogEvent": "cli-log-event-v1",
67
+ "workspaceActivityEvent": "workspace-activity-event.v1",
66
68
  "freshnessMetadata": "rapidkit-freshness-metadata-v1",
67
69
  "factFreshness": "rapidkit-fact-freshness-v1",
68
70
  "blockerResolution": "rapidkit-blocker-resolution-v1",
@@ -76,6 +76,11 @@
76
76
  "contractPath": "contracts/workspace-intelligence/project-context-agent.v1.json",
77
77
  "publication": "json-schema"
78
78
  },
79
+ "projectKnowledgeGraphReference": {
80
+ "schemaVersion": "project-knowledge-graph-reference.v1",
81
+ "contractPath": "contracts/workspace-intelligence/project-knowledge-graph-reference.v1.json",
82
+ "publication": "json-schema"
83
+ },
79
84
  "projectAgentEntry": {
80
85
  "schemaVersion": "workspai.agent-entry.v1",
81
86
  "contractPath": "contracts/workspace-intelligence/project-agent-entry.v1.json",
@@ -321,6 +326,11 @@
321
326
  "contractPath": "contracts/cli-log-event.v1.json",
322
327
  "publication": "json-schema"
323
328
  },
329
+ "workspaceActivityEvent": {
330
+ "schemaVersion": "workspace-activity-event.v1",
331
+ "contractPath": "contracts/workspace-activity-event.v1.json",
332
+ "publication": "json-schema"
333
+ },
324
334
  "freshnessMetadata": {
325
335
  "schemaVersion": "rapidkit-freshness-metadata-v1",
326
336
  "contractPath": null,
@@ -51,6 +51,7 @@
51
51
  "goal",
52
52
  "agent",
53
53
  "snapshot",
54
+ "live",
54
55
  "bootstrap",
55
56
  "setup",
56
57
  "cache",
@@ -557,6 +558,13 @@
557
558
  "list"
558
559
  ]
559
560
  },
561
+ {
562
+ "invocation": "live",
563
+ "summary": "Render the versioned cross-terminal execution graph for Workspai runs in the current project or workspace.",
564
+ "canonicalArgv": [
565
+ "live"
566
+ ]
567
+ },
560
568
  {
561
569
  "invocation": "merge",
562
570
  "summary": "Combine supported governed configuration or project state through the owning runtime operation.",
@@ -1901,6 +1909,32 @@
1901
1909
  ]
1902
1910
  ]
1903
1911
  },
1912
+ {
1913
+ "artifactPath": ".workspai/reports/project-knowledge-graph-reference.json",
1914
+ "schemaVersion": "project-knowledge-graph-reference.v1",
1915
+ "contractPath": "contracts/workspace-intelligence/project-knowledge-graph-reference.v1.json",
1916
+ "producerCommands": [
1917
+ [
1918
+ "adopt"
1919
+ ],
1920
+ [
1921
+ "import"
1922
+ ],
1923
+ [
1924
+ "workspace",
1925
+ "model"
1926
+ ],
1927
+ [
1928
+ "workspace",
1929
+ "sync"
1930
+ ],
1931
+ [
1932
+ "workspace",
1933
+ "intelligence",
1934
+ "run"
1935
+ ]
1936
+ ]
1937
+ },
1904
1938
  {
1905
1939
  "artifactPath": ".workspai/agent-entry.v1.json",
1906
1940
  "schemaVersion": "workspai.agent-entry.v1",
@@ -3213,8 +3247,8 @@
3213
3247
  },
3214
3248
  {
3215
3249
  "id": "contract",
3216
- "usage": "workspai workspace contract [init|inspect|verify|graph] [--strict] [--json]",
3217
- "summary": "Create, inspect, verify, or project the workspace contract.",
3250
+ "usage": "workspai workspace contract [init|inspect|sync|verify|graph] [--strict] [--json]",
3251
+ "summary": "Create, inspect, synchronize, verify, or project the workspace contract.",
3218
3252
  "options": [
3219
3253
  {
3220
3254
  "flag": "--workspace",
@@ -3240,11 +3274,13 @@
3240
3274
  "subactions": [
3241
3275
  "init",
3242
3276
  "inspect",
3277
+ "sync",
3243
3278
  "verify",
3244
3279
  "graph"
3245
3280
  ],
3246
3281
  "artifact": ".workspai/workspace.contract.json",
3247
3282
  "examples": [
3283
+ "workspai workspace contract sync --strict --json",
3248
3284
  "workspai workspace contract verify --strict --json",
3249
3285
  "workspai workspace contract graph --json"
3250
3286
  ]
@@ -3496,6 +3532,14 @@
3496
3532
  "flag": "--scope",
3497
3533
  "description": "Limit the operation to a bounded scope such as project:<name>."
3498
3534
  },
3535
+ {
3536
+ "flag": "--plan",
3537
+ "description": "Resolve lifecycle commands without executing project code."
3538
+ },
3539
+ {
3540
+ "flag": "--runtime",
3541
+ "description": "Limit lifecycle planning or execution to one detected runtime family."
3542
+ },
3499
3543
  {
3500
3544
  "flag": "--affected",
3501
3545
  "description": "Run only projects affected by the selected Git change."
@@ -3542,6 +3586,7 @@
3542
3586
  ],
3543
3587
  "artifact": ".workspai/reports/workspace-run-last.json",
3544
3588
  "examples": [
3589
+ "workspai workspace run test --scope project:api --plan --runtime ruby --json",
3545
3590
  "workspai workspace run test --affected --blast-radius --strict",
3546
3591
  "workspai workspace run build --parallel --max-workers 4 --json"
3547
3592
  ]
@@ -0,0 +1,132 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://workspai.dev/contracts/workspace-activity-event.v1.json",
4
+ "title": "Workspai Workspace Activity Event",
5
+ "description": "Local-first operational activity emitted by Workspai commands. Activity is observational and does not by itself establish evidence or decision authority.",
6
+ "type": "object",
7
+ "required": [
8
+ "schemaVersion",
9
+ "eventId",
10
+ "sequence",
11
+ "timestamp",
12
+ "runId",
13
+ "scope",
14
+ "kind",
15
+ "status",
16
+ "component",
17
+ "message"
18
+ ],
19
+ "properties": {
20
+ "schemaVersion": { "const": "workspace-activity-event.v1" },
21
+ "eventId": { "type": "string", "minLength": 8 },
22
+ "sequence": { "type": "integer", "minimum": 1 },
23
+ "timestamp": { "type": "string", "format": "date-time" },
24
+ "runId": { "type": "string", "minLength": 8 },
25
+ "parentRunId": { "type": "string", "minLength": 8 },
26
+ "spanId": { "type": "string", "minLength": 1 },
27
+ "parentSpanId": { "type": "string", "minLength": 1 },
28
+ "causationId": { "type": "string", "minLength": 1 },
29
+ "correlationId": { "type": "string", "minLength": 1 },
30
+ "scope": {
31
+ "type": "object",
32
+ "required": ["kind", "id", "label", "portable"],
33
+ "properties": {
34
+ "kind": { "enum": ["ephemeral-project", "project", "workspace"] },
35
+ "id": { "type": "string", "minLength": 8 },
36
+ "label": { "type": "string", "minLength": 1 },
37
+ "portable": { "type": "boolean" }
38
+ },
39
+ "additionalProperties": false
40
+ },
41
+ "kind": {
42
+ "enum": [
43
+ "run.started",
44
+ "run.completed",
45
+ "run.failed",
46
+ "run.cancelled",
47
+ "block.planned",
48
+ "block.started",
49
+ "block.progress",
50
+ "block.completed",
51
+ "block.failed",
52
+ "block.blocked",
53
+ "block.skipped",
54
+ "edge.declared",
55
+ "operation.started",
56
+ "operation.completed",
57
+ "operation.failed",
58
+ "touch.planned",
59
+ "touch.observed",
60
+ "artifact.published",
61
+ "artifact.rejected",
62
+ "warning.detected"
63
+ ]
64
+ },
65
+ "status": {
66
+ "enum": [
67
+ "planned",
68
+ "running",
69
+ "succeeded",
70
+ "warned",
71
+ "blocked",
72
+ "failed",
73
+ "cancelled",
74
+ "skipped",
75
+ "rolled-back"
76
+ ]
77
+ },
78
+ "component": { "type": "string", "minLength": 1 },
79
+ "message": { "type": "string", "minLength": 1 },
80
+ "blockId": { "type": "string", "minLength": 1 },
81
+ "attempt": { "type": "integer", "minimum": 1 },
82
+ "origin": {
83
+ "type": "object",
84
+ "required": ["id", "kind", "label"],
85
+ "properties": {
86
+ "id": { "type": "string", "minLength": 8 },
87
+ "kind": { "enum": ["project", "workspace-root"] },
88
+ "label": { "type": "string", "minLength": 1 }
89
+ },
90
+ "additionalProperties": false
91
+ },
92
+ "projectId": { "type": "string", "minLength": 1 },
93
+ "durationMs": { "type": "number", "minimum": 0 },
94
+ "progress": {
95
+ "type": "object",
96
+ "properties": {
97
+ "completed": { "type": "number", "minimum": 0 },
98
+ "total": { "type": "number", "minimum": 0 },
99
+ "percent": { "type": "number", "minimum": 0, "maximum": 100 },
100
+ "iteration": { "type": "number", "minimum": 0 },
101
+ "iterations": { "type": "number", "minimum": 0 }
102
+ },
103
+ "additionalProperties": false
104
+ },
105
+ "target": {
106
+ "type": "object",
107
+ "required": ["kind"],
108
+ "properties": {
109
+ "kind": {
110
+ "enum": ["file", "directory", "artifact", "process", "workspace", "project", "other"]
111
+ },
112
+ "locator": { "type": "string" },
113
+ "operation": { "type": "string" },
114
+ "provenance": { "enum": ["authoritative", "observed", "inferred"] }
115
+ },
116
+ "additionalProperties": false
117
+ },
118
+ "edge": {
119
+ "type": "object",
120
+ "required": ["id", "fromBlockId", "toBlockId", "kind"],
121
+ "properties": {
122
+ "id": { "type": "string", "minLength": 1 },
123
+ "fromBlockId": { "type": "string", "minLength": 1 },
124
+ "toBlockId": { "type": "string", "minLength": 1 },
125
+ "kind": { "enum": ["sequence", "parallel", "gate", "handoff"] }
126
+ },
127
+ "additionalProperties": false
128
+ },
129
+ "attributes": { "type": "object", "additionalProperties": true }
130
+ },
131
+ "additionalProperties": false
132
+ }
@@ -10,6 +10,8 @@
10
10
  "generatedAt",
11
11
  "receiptId",
12
12
  "status",
13
+ "statusScope",
14
+ "readiness",
13
15
  "requestedAgent",
14
16
  "resolvedHost",
15
17
  "project",
@@ -28,6 +30,18 @@
28
30
  "generatedAt": { "type": "string", "format": "date-time" },
29
31
  "receiptId": { "$ref": "#/$defs/hash" },
30
32
  "status": { "$ref": "#/$defs/status" },
33
+ "statusScope": { "const": "agent-grounding" },
34
+ "readiness": {
35
+ "type": "object",
36
+ "additionalProperties": false,
37
+ "required": ["agentGrounding", "architectureEvidence", "projectEnvironment", "release"],
38
+ "properties": {
39
+ "agentGrounding": { "$ref": "#/$defs/status" },
40
+ "architectureEvidence": { "$ref": "#/$defs/status" },
41
+ "projectEnvironment": { "enum": ["ready", "degraded", "blocked"] },
42
+ "release": { "enum": ["not-verified", "degraded", "blocked"] }
43
+ }
44
+ },
31
45
  "requestedAgent": {
32
46
  "enum": [
33
47
  "generic",
@@ -127,6 +141,9 @@
127
141
  ],
128
142
  "properties": {
129
143
  "projectContext": { "const": ".workspai/reports/project-context-agent.json" },
144
+ "projectKnowledgeGraph": {
145
+ "const": ".workspai/reports/project-knowledge-graph-reference.json"
146
+ },
130
147
  "workspaceIndex": { "const": "workspace:.workspai/reports/INDEX.json" },
131
148
  "workspaceContext": {
132
149
  "const": "workspace:.workspai/reports/workspace-context-agent.json"
@@ -9,8 +9,10 @@
9
9
  "workspaceRoot",
10
10
  "status",
11
11
  "mode",
12
+ "runtime",
12
13
  "safety",
13
- "candidateTools"
14
+ "candidateTools",
15
+ "plannedTools"
14
16
  ],
15
17
  "properties": {
16
18
  "schemaVersion": {
@@ -25,11 +27,50 @@
25
27
  "minLength": 1
26
28
  },
27
29
  "status": {
28
- "const": "design-only"
30
+ "const": "implemented"
29
31
  },
30
32
  "mode": {
31
33
  "const": "read-mostly"
32
34
  },
35
+ "runtime": {
36
+ "type": "object",
37
+ "required": [
38
+ "command",
39
+ "transport",
40
+ "lifecycle",
41
+ "supportedProtocolVersions",
42
+ "structuredContent",
43
+ "toolExecutionErrors"
44
+ ],
45
+ "properties": {
46
+ "command": {
47
+ "type": "string",
48
+ "minLength": 1
49
+ },
50
+ "transport": {
51
+ "const": "stdio-jsonrpc"
52
+ },
53
+ "lifecycle": {
54
+ "const": "dual-era"
55
+ },
56
+ "supportedProtocolVersions": {
57
+ "type": "array",
58
+ "items": {
59
+ "type": "string",
60
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
61
+ },
62
+ "uniqueItems": true,
63
+ "minItems": 1
64
+ },
65
+ "structuredContent": {
66
+ "const": true
67
+ },
68
+ "toolExecutionErrors": {
69
+ "const": true
70
+ }
71
+ },
72
+ "additionalProperties": false
73
+ },
33
74
  "safety": {
34
75
  "type": "object"
35
76
  },
@@ -38,6 +79,12 @@
38
79
  "items": {
39
80
  "type": "object"
40
81
  }
82
+ },
83
+ "plannedTools": {
84
+ "type": "array",
85
+ "items": {
86
+ "type": "object"
87
+ }
41
88
  }
42
89
  },
43
90
  "additionalProperties": true
@@ -66,6 +66,9 @@
66
66
  "properties": {
67
67
  "projectContext": { "const": ".workspai/reports/project-context-agent.json" },
68
68
  "projectGrounding": { "const": ".workspai/PROJECT-GROUNDING.md" },
69
+ "projectKnowledgeGraph": {
70
+ "const": ".workspai/reports/project-knowledge-graph-reference.json"
71
+ },
69
72
  "goalIndex": { "const": "workspace:.workspai/goals/index.json" },
70
73
  "workspaceIndex": { "const": "workspace:.workspai/reports/INDEX.json" },
71
74
  "workspaceContext": {