oxe-cc 1.2.1 → 1.4.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 (281) hide show
  1. package/.cursor/commands/oxe-ask.md +2 -2
  2. package/.cursor/commands/oxe-capabilities.md +2 -2
  3. package/.cursor/commands/oxe-checkpoint.md +2 -2
  4. package/.cursor/commands/oxe-compact.md +2 -2
  5. package/.cursor/commands/oxe-dashboard.md +2 -2
  6. package/.cursor/commands/oxe-debug.md +2 -2
  7. package/.cursor/commands/oxe-discuss.md +2 -2
  8. package/.cursor/commands/oxe-execute.md +5 -2
  9. package/.cursor/commands/oxe-forensics.md +2 -2
  10. package/.cursor/commands/oxe-help.md +2 -2
  11. package/.cursor/commands/oxe-loop.md +2 -2
  12. package/.cursor/commands/oxe-milestone.md +2 -2
  13. package/.cursor/commands/oxe-next.md +2 -2
  14. package/.cursor/commands/oxe-obs.md +2 -2
  15. package/.cursor/commands/oxe-plan-agent.md +2 -2
  16. package/.cursor/commands/oxe-plan.md +2 -2
  17. package/.cursor/commands/oxe-project.md +2 -2
  18. package/.cursor/commands/oxe-quick.md +2 -2
  19. package/.cursor/commands/oxe-research.md +2 -2
  20. package/.cursor/commands/oxe-retro.md +2 -2
  21. package/.cursor/commands/oxe-review-pr.md +2 -2
  22. package/.cursor/commands/oxe-route.md +2 -2
  23. package/.cursor/commands/oxe-scan.md +2 -2
  24. package/.cursor/commands/oxe-security.md +2 -2
  25. package/.cursor/commands/oxe-session.md +2 -2
  26. package/.cursor/commands/oxe-ship.md +2 -2
  27. package/.cursor/commands/oxe-skill.md +2 -2
  28. package/.cursor/commands/oxe-spec.md +2 -2
  29. package/.cursor/commands/oxe-ui-review.md +2 -2
  30. package/.cursor/commands/oxe-ui-spec.md +2 -2
  31. package/.cursor/commands/oxe-update.md +2 -2
  32. package/.cursor/commands/oxe-validate-gaps.md +2 -2
  33. package/.cursor/commands/oxe-verify.md +5 -2
  34. package/.cursor/commands/oxe-workstream.md +2 -2
  35. package/.cursor/commands/oxe.md +2 -2
  36. package/.github/copilot-instructions.md +13 -13
  37. package/.github/prompts/oxe-ask.prompt.md +2 -2
  38. package/.github/prompts/oxe-capabilities.prompt.md +2 -2
  39. package/.github/prompts/oxe-checkpoint.prompt.md +2 -2
  40. package/.github/prompts/oxe-compact.prompt.md +2 -2
  41. package/.github/prompts/oxe-dashboard.prompt.md +2 -2
  42. package/.github/prompts/oxe-debug.prompt.md +2 -2
  43. package/.github/prompts/oxe-discuss.prompt.md +2 -2
  44. package/.github/prompts/oxe-execute.prompt.md +5 -2
  45. package/.github/prompts/oxe-forensics.prompt.md +2 -2
  46. package/.github/prompts/oxe-help.prompt.md +2 -2
  47. package/.github/prompts/oxe-loop.prompt.md +2 -2
  48. package/.github/prompts/oxe-milestone.prompt.md +2 -2
  49. package/.github/prompts/oxe-next.prompt.md +2 -2
  50. package/.github/prompts/oxe-obs.prompt.md +2 -2
  51. package/.github/prompts/oxe-plan-agent.prompt.md +2 -2
  52. package/.github/prompts/oxe-plan.prompt.md +2 -2
  53. package/.github/prompts/oxe-project.prompt.md +2 -2
  54. package/.github/prompts/oxe-quick.prompt.md +2 -2
  55. package/.github/prompts/oxe-research.prompt.md +2 -2
  56. package/.github/prompts/oxe-retro.prompt.md +2 -2
  57. package/.github/prompts/oxe-review-pr.prompt.md +2 -2
  58. package/.github/prompts/oxe-route.prompt.md +2 -2
  59. package/.github/prompts/oxe-scan.prompt.md +2 -2
  60. package/.github/prompts/oxe-security.prompt.md +2 -2
  61. package/.github/prompts/oxe-session.prompt.md +2 -2
  62. package/.github/prompts/oxe-ship.prompt.md +2 -2
  63. package/.github/prompts/oxe-skill.prompt.md +2 -2
  64. package/.github/prompts/oxe-spec.prompt.md +2 -2
  65. package/.github/prompts/oxe-ui-review.prompt.md +2 -2
  66. package/.github/prompts/oxe-ui-spec.prompt.md +2 -2
  67. package/.github/prompts/oxe-update.prompt.md +2 -2
  68. package/.github/prompts/oxe-validate-gaps.prompt.md +2 -2
  69. package/.github/prompts/oxe-verify.prompt.md +5 -2
  70. package/.github/prompts/oxe-workstream.prompt.md +2 -2
  71. package/.github/prompts/oxe.prompt.md +2 -2
  72. package/AGENTS.md +5 -3
  73. package/CHANGELOG.md +72 -10
  74. package/LICENSE +21 -674
  75. package/README.md +631 -535
  76. package/bin/banner.txt +6 -6
  77. package/bin/lib/oxe-agent-install.cjs +69 -69
  78. package/bin/lib/oxe-azure.cjs +1445 -1445
  79. package/bin/lib/oxe-context-engine.cjs +867 -867
  80. package/bin/lib/oxe-dashboard.cjs +76 -28
  81. package/bin/lib/oxe-operational.cjs +2144 -1340
  82. package/bin/lib/oxe-project-health.cjs +483 -1
  83. package/bin/lib/oxe-runtime-semantics.cjs +12 -0
  84. package/bin/oxe-cc.js +554 -152
  85. package/commands/oxe/ask.md +2 -2
  86. package/commands/oxe/capabilities.md +2 -2
  87. package/commands/oxe/checkpoint.md +2 -2
  88. package/commands/oxe/compact.md +2 -2
  89. package/commands/oxe/dashboard.md +2 -2
  90. package/commands/oxe/debug.md +2 -2
  91. package/commands/oxe/discuss.md +2 -2
  92. package/commands/oxe/execute.md +5 -2
  93. package/commands/oxe/forensics.md +2 -2
  94. package/commands/oxe/help.md +2 -2
  95. package/commands/oxe/loop.md +2 -2
  96. package/commands/oxe/milestone.md +2 -2
  97. package/commands/oxe/next.md +2 -2
  98. package/commands/oxe/obs.md +2 -2
  99. package/commands/oxe/oxe.md +2 -2
  100. package/commands/oxe/plan-agent.md +2 -2
  101. package/commands/oxe/plan.md +2 -2
  102. package/commands/oxe/project.md +2 -2
  103. package/commands/oxe/quick.md +2 -2
  104. package/commands/oxe/research.md +2 -2
  105. package/commands/oxe/retro.md +2 -2
  106. package/commands/oxe/review-pr.md +2 -2
  107. package/commands/oxe/route.md +2 -2
  108. package/commands/oxe/scan.md +2 -2
  109. package/commands/oxe/security.md +2 -2
  110. package/commands/oxe/session.md +2 -2
  111. package/commands/oxe/ship.md +2 -2
  112. package/commands/oxe/skill.md +2 -2
  113. package/commands/oxe/spec.md +2 -2
  114. package/commands/oxe/ui-review.md +2 -2
  115. package/commands/oxe/ui-spec.md +2 -2
  116. package/commands/oxe/update.md +2 -2
  117. package/commands/oxe/validate-gaps.md +2 -2
  118. package/commands/oxe/verify.md +5 -2
  119. package/commands/oxe/workstream.md +2 -2
  120. package/lib/runtime/delivery/branch-manager.d.ts +1 -0
  121. package/lib/runtime/delivery/branch-manager.js +7 -0
  122. package/lib/runtime/delivery/ci-checks.js +34 -1
  123. package/lib/runtime/delivery/delivery-records.d.ts +34 -0
  124. package/lib/runtime/delivery/delivery-records.js +48 -0
  125. package/lib/runtime/delivery/index.d.ts +1 -0
  126. package/lib/runtime/delivery/index.js +1 -0
  127. package/lib/runtime/delivery/promotion-pipeline.d.ts +26 -2
  128. package/lib/runtime/delivery/promotion-pipeline.js +111 -14
  129. package/lib/runtime/gate/gate-manager.d.ts +41 -0
  130. package/lib/runtime/gate/gate-manager.js +108 -1
  131. package/lib/runtime/index.d.ts +2 -2
  132. package/lib/runtime/index.js +3 -1
  133. package/lib/runtime/models/gate-decision.d.ts +4 -1
  134. package/lib/runtime/models/workspace.d.ts +3 -0
  135. package/lib/runtime/plugins/capability-adapter.d.ts +12 -0
  136. package/lib/runtime/plugins/capability-adapter.js +204 -0
  137. package/lib/runtime/plugins/capability-matrix.d.ts +5 -0
  138. package/lib/runtime/plugins/capability-matrix.js +48 -17
  139. package/lib/runtime/plugins/index.d.ts +1 -0
  140. package/lib/runtime/plugins/index.js +1 -0
  141. package/lib/runtime/plugins/plugin-abi.d.ts +2 -0
  142. package/lib/runtime/plugins/plugin-manifest.d.ts +1 -1
  143. package/lib/runtime/plugins/plugin-manifest.js +6 -2
  144. package/lib/runtime/plugins/plugin-registry.d.ts +46 -0
  145. package/lib/runtime/plugins/plugin-registry.js +79 -2
  146. package/lib/runtime/policy/policy-engine.d.ts +19 -0
  147. package/lib/runtime/policy/policy-engine.js +76 -4
  148. package/lib/runtime/projection/projection-engine.d.ts +9 -1
  149. package/lib/runtime/projection/projection-engine.js +73 -3
  150. package/lib/runtime/scheduler/multi-agent-coordinator.d.ts +43 -1
  151. package/lib/runtime/scheduler/multi-agent-coordinator.js +151 -39
  152. package/lib/runtime/scheduler/run-journal.d.ts +1 -1
  153. package/lib/runtime/scheduler/scheduler.d.ts +19 -1
  154. package/lib/runtime/scheduler/scheduler.js +258 -13
  155. package/lib/runtime/verification/verification-compiler.d.ts +43 -0
  156. package/lib/runtime/verification/verification-compiler.js +137 -0
  157. package/lib/runtime/verification/verification-manifest.d.ts +9 -0
  158. package/lib/runtime/verification/verification-manifest.js +56 -6
  159. package/lib/runtime/workspace/strategies/ephemeral-container.d.ts +1 -0
  160. package/lib/runtime/workspace/strategies/ephemeral-container.js +4 -0
  161. package/lib/runtime/workspace/strategies/git-worktree.d.ts +1 -0
  162. package/lib/runtime/workspace/strategies/git-worktree.js +2 -0
  163. package/lib/runtime/workspace/strategies/inplace.d.ts +1 -0
  164. package/lib/runtime/workspace/strategies/inplace.js +2 -0
  165. package/lib/runtime/workspace/workspace-manager.d.ts +2 -1
  166. package/lib/sdk/README.md +20 -8
  167. package/lib/sdk/index.cjs +33 -24
  168. package/lib/sdk/index.d.ts +149 -14
  169. package/oxe/templates/ACTIVE-RUN.template.json +32 -32
  170. package/oxe/templates/CAPABILITIES.template.md +7 -7
  171. package/oxe/templates/CAPABILITY.template.md +45 -45
  172. package/oxe/templates/CHECKPOINTS.template.md +7 -7
  173. package/oxe/templates/EXECUTION-RUNTIME.template.md +68 -68
  174. package/oxe/templates/HYPOTHESES.template.md +33 -33
  175. package/oxe/templates/LESSONS-METRICS.template.json +13 -13
  176. package/oxe/templates/NOTES.template.md +16 -16
  177. package/oxe/templates/PLAN-REVIEW.template.md +31 -31
  178. package/oxe/templates/SESSION.template.md +34 -34
  179. package/oxe/templates/SKILL.template.md +26 -26
  180. package/oxe/templates/STATE.md +55 -55
  181. package/oxe/templates/WORKFLOW_AUTHORING.md +18 -18
  182. package/oxe/workflows/ask.md +96 -96
  183. package/oxe/workflows/capabilities.md +25 -25
  184. package/oxe/workflows/dashboard.md +33 -33
  185. package/oxe/workflows/discuss.md +12 -12
  186. package/oxe/workflows/execute.md +14 -0
  187. package/oxe/workflows/help.md +352 -352
  188. package/oxe/workflows/next.md +22 -22
  189. package/oxe/workflows/oxe.md +6 -6
  190. package/oxe/workflows/plan-agent.md +9 -9
  191. package/oxe/workflows/plan.md +51 -20
  192. package/oxe/workflows/quick.md +10 -10
  193. package/oxe/workflows/references/reasoning-discovery.md +28 -28
  194. package/oxe/workflows/references/reasoning-execution.md +29 -29
  195. package/oxe/workflows/references/reasoning-planning.md +32 -32
  196. package/oxe/workflows/references/reasoning-review.md +29 -29
  197. package/oxe/workflows/references/reasoning-status.md +24 -24
  198. package/oxe/workflows/references/robustness-elevation.md +295 -295
  199. package/oxe/workflows/references/workflow-runtime-contracts.json +952 -930
  200. package/oxe/workflows/route.md +16 -16
  201. package/oxe/workflows/session.md +213 -213
  202. package/oxe/workflows/ship.md +142 -142
  203. package/oxe/workflows/skill.md +44 -44
  204. package/oxe/workflows/ui-review.md +36 -36
  205. package/oxe/workflows/verify-audit.md +73 -73
  206. package/oxe/workflows/verify.md +10 -0
  207. package/package.json +92 -92
  208. package/packages/runtime/package.json +16 -15
  209. package/packages/runtime/src/audit/audit-trail.ts +243 -243
  210. package/packages/runtime/src/audit/index.ts +2 -2
  211. package/packages/runtime/src/audit/policy-pack.ts +62 -62
  212. package/packages/runtime/src/compiler/graph-compiler.ts +245 -245
  213. package/packages/runtime/src/compiler/index.ts +1 -1
  214. package/packages/runtime/src/context/context-pack-builder.ts +259 -259
  215. package/packages/runtime/src/context/context-pack-store.ts +197 -197
  216. package/packages/runtime/src/context/context-profiles.ts +60 -60
  217. package/packages/runtime/src/context/index.ts +3 -3
  218. package/packages/runtime/src/decision/decision-engine.ts +174 -174
  219. package/packages/runtime/src/decision/decision-memo.ts +211 -211
  220. package/packages/runtime/src/decision/index.ts +2 -2
  221. package/packages/runtime/src/delivery/branch-manager.ts +91 -84
  222. package/packages/runtime/src/delivery/ci-checks.ts +285 -252
  223. package/packages/runtime/src/delivery/delivery-records.ts +75 -0
  224. package/packages/runtime/src/delivery/index.ts +5 -4
  225. package/packages/runtime/src/delivery/pr-manager.ts +112 -112
  226. package/packages/runtime/src/delivery/promotion-pipeline.ts +334 -180
  227. package/packages/runtime/src/events/bus.ts +92 -92
  228. package/packages/runtime/src/events/catalog.ts +29 -29
  229. package/packages/runtime/src/events/envelope.ts +14 -14
  230. package/packages/runtime/src/events/index.ts +3 -3
  231. package/packages/runtime/src/evidence/evidence-store.ts +130 -130
  232. package/packages/runtime/src/evidence/index.ts +1 -1
  233. package/packages/runtime/src/gate/gate-manager.ts +289 -137
  234. package/packages/runtime/src/gate/index.ts +1 -1
  235. package/packages/runtime/src/index.ts +41 -37
  236. package/packages/runtime/src/models/attempt.ts +19 -19
  237. package/packages/runtime/src/models/evidence.ts +21 -21
  238. package/packages/runtime/src/models/gate-decision.ts +25 -21
  239. package/packages/runtime/src/models/index.ts +8 -8
  240. package/packages/runtime/src/models/run.ts +24 -24
  241. package/packages/runtime/src/models/session.ts +11 -11
  242. package/packages/runtime/src/models/verification-result.ts +10 -10
  243. package/packages/runtime/src/models/work-item.ts +25 -25
  244. package/packages/runtime/src/models/workspace.ts +31 -28
  245. package/packages/runtime/src/plugins/capability-adapter.ts +206 -0
  246. package/packages/runtime/src/plugins/capability-matrix.ts +126 -83
  247. package/packages/runtime/src/plugins/index.ts +5 -4
  248. package/packages/runtime/src/plugins/plugin-abi.ts +97 -95
  249. package/packages/runtime/src/plugins/plugin-manifest.ts +118 -113
  250. package/packages/runtime/src/plugins/plugin-registry.ts +232 -124
  251. package/packages/runtime/src/policy/index.ts +1 -1
  252. package/packages/runtime/src/policy/policy-engine.ts +330 -244
  253. package/packages/runtime/src/projection/index.ts +1 -1
  254. package/packages/runtime/src/projection/projection-engine.ts +328 -249
  255. package/packages/runtime/src/reducers/debug-reducer.ts +36 -36
  256. package/packages/runtime/src/reducers/index.ts +2 -2
  257. package/packages/runtime/src/reducers/run-state-reducer.ts +269 -269
  258. package/packages/runtime/src/scheduler/agent-registry.ts +132 -132
  259. package/packages/runtime/src/scheduler/agent-roles.ts +109 -109
  260. package/packages/runtime/src/scheduler/index.ts +4 -4
  261. package/packages/runtime/src/scheduler/multi-agent-coordinator.ts +521 -333
  262. package/packages/runtime/src/scheduler/run-journal.ts +62 -62
  263. package/packages/runtime/src/scheduler/scheduler.ts +722 -441
  264. package/packages/runtime/src/verification/index.ts +2 -2
  265. package/packages/runtime/src/verification/verification-compiler.ts +436 -225
  266. package/packages/runtime/src/verification/verification-manifest.ts +252 -192
  267. package/packages/runtime/src/workspace/index.ts +5 -5
  268. package/packages/runtime/src/workspace/strategies/ephemeral-container.ts +126 -121
  269. package/packages/runtime/src/workspace/strategies/git-worktree.ts +79 -77
  270. package/packages/runtime/src/workspace/strategies/inplace.ts +38 -35
  271. package/packages/runtime/src/workspace/workspace-manager.ts +16 -15
  272. package/packages/runtime/tsconfig.json +17 -17
  273. package/vscode-extension/.vscodeignore +7 -7
  274. package/vscode-extension/LICENSE +21 -0
  275. package/vscode-extension/oxe-agents-1.0.0.vsix +0 -0
  276. package/vscode-extension/oxe-agents-1.4.0.vsix +0 -0
  277. package/vscode-extension/package.json +184 -184
  278. package/vscode-extension/src/extension.js +310 -310
  279. package/vscode-extension/src/shared/contextLoader.js +137 -137
  280. package/vscode-extension/src/shared/contractBuilder.js +159 -159
  281. package/vscode-extension/src/shared/stateReader.js +101 -101
@@ -6,13 +6,31 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.classifyFailure = classifyFailure;
7
7
  exports.buildManifest = buildManifest;
8
8
  exports.buildRiskLedger = buildRiskLedger;
9
+ exports.summarizeEvidenceCoverage = summarizeEvidenceCoverage;
9
10
  exports.saveManifest = saveManifest;
10
11
  exports.loadManifest = loadManifest;
11
12
  exports.saveRiskLedger = saveRiskLedger;
12
13
  exports.loadRiskLedger = loadRiskLedger;
14
+ exports.saveEvidenceCoverage = saveEvidenceCoverage;
15
+ exports.loadEvidenceCoverage = loadEvidenceCoverage;
13
16
  const crypto_1 = __importDefault(require("crypto"));
14
17
  const path_1 = __importDefault(require("path"));
15
18
  const fs_1 = __importDefault(require("fs"));
19
+ function runDir(projectRoot, runId) {
20
+ return path_1.default.join(projectRoot, '.oxe', 'runs', runId);
21
+ }
22
+ function manifestPath(projectRoot, runId) {
23
+ return path_1.default.join(runDir(projectRoot, runId), 'verification-manifest.json');
24
+ }
25
+ function riskLedgerPath(projectRoot, runId) {
26
+ return path_1.default.join(runDir(projectRoot, runId), 'residual-risk-ledger.json');
27
+ }
28
+ function legacyRiskLedgerPath(projectRoot, runId) {
29
+ return path_1.default.join(runDir(projectRoot, runId), 'residual-risks.json');
30
+ }
31
+ function evidenceCoveragePath(projectRoot, runId) {
32
+ return path_1.default.join(runDir(projectRoot, runId), 'evidence-coverage.json');
33
+ }
16
34
  const PROFILE_REQUIRED_CHECKS = {
17
35
  quick: ['deterministic'],
18
36
  standard: ['deterministic', 'policy_failure'],
@@ -95,13 +113,25 @@ function buildRiskLedger(runId, manifest) {
95
113
  risks,
96
114
  };
97
115
  }
116
+ function summarizeEvidenceCoverage(manifest) {
117
+ const totalChecks = manifest.checks.length;
118
+ const checksWithEvidence = manifest.checks.filter((check) => check.evidence_refs.length > 0).length;
119
+ const totalEvidenceRefs = manifest.checks.reduce((sum, check) => sum + check.evidence_refs.length, 0);
120
+ const coveragePercent = totalChecks === 0 ? 100 : Math.round((checksWithEvidence / totalChecks) * 100);
121
+ return {
122
+ total_checks: totalChecks,
123
+ checks_with_evidence: checksWithEvidence,
124
+ total_evidence_refs: totalEvidenceRefs,
125
+ coverage_percent: coveragePercent,
126
+ };
127
+ }
98
128
  function saveManifest(projectRoot, runId, manifest) {
99
- const p = path_1.default.join(projectRoot, '.oxe', 'runs', runId, 'verification-manifest.json');
129
+ const p = manifestPath(projectRoot, runId);
100
130
  fs_1.default.mkdirSync(path_1.default.dirname(p), { recursive: true });
101
131
  fs_1.default.writeFileSync(p, JSON.stringify(manifest, null, 2), 'utf8');
102
132
  }
103
133
  function loadManifest(projectRoot, runId) {
104
- const p = path_1.default.join(projectRoot, '.oxe', 'runs', runId, 'verification-manifest.json');
134
+ const p = manifestPath(projectRoot, runId);
105
135
  if (!fs_1.default.existsSync(p))
106
136
  return null;
107
137
  try {
@@ -112,12 +142,32 @@ function loadManifest(projectRoot, runId) {
112
142
  }
113
143
  }
114
144
  function saveRiskLedger(projectRoot, runId, ledger) {
115
- const p = path_1.default.join(projectRoot, '.oxe', 'runs', runId, 'residual-risks.json');
116
- fs_1.default.mkdirSync(path_1.default.dirname(p), { recursive: true });
117
- fs_1.default.writeFileSync(p, JSON.stringify(ledger, null, 2), 'utf8');
145
+ const canonical = riskLedgerPath(projectRoot, runId);
146
+ const legacy = legacyRiskLedgerPath(projectRoot, runId);
147
+ fs_1.default.mkdirSync(path_1.default.dirname(canonical), { recursive: true });
148
+ fs_1.default.writeFileSync(canonical, JSON.stringify(ledger, null, 2), 'utf8');
149
+ fs_1.default.writeFileSync(legacy, JSON.stringify(ledger, null, 2), 'utf8');
118
150
  }
119
151
  function loadRiskLedger(projectRoot, runId) {
120
- const p = path_1.default.join(projectRoot, '.oxe', 'runs', runId, 'residual-risks.json');
152
+ const canonical = riskLedgerPath(projectRoot, runId);
153
+ const legacy = legacyRiskLedgerPath(projectRoot, runId);
154
+ const p = fs_1.default.existsSync(canonical) ? canonical : legacy;
155
+ if (!fs_1.default.existsSync(p))
156
+ return null;
157
+ try {
158
+ return JSON.parse(fs_1.default.readFileSync(p, 'utf8'));
159
+ }
160
+ catch {
161
+ return null;
162
+ }
163
+ }
164
+ function saveEvidenceCoverage(projectRoot, runId, coverage) {
165
+ const p = evidenceCoveragePath(projectRoot, runId);
166
+ fs_1.default.mkdirSync(path_1.default.dirname(p), { recursive: true });
167
+ fs_1.default.writeFileSync(p, JSON.stringify(coverage, null, 2), 'utf8');
168
+ }
169
+ function loadEvidenceCoverage(projectRoot, runId) {
170
+ const p = evidenceCoveragePath(projectRoot, runId);
121
171
  if (!fs_1.default.existsSync(p))
122
172
  return null;
123
173
  try {
@@ -14,6 +14,7 @@ export declare class EphemeralContainerManager implements WorkspaceManager {
14
14
  private containerIds;
15
15
  private useFallback;
16
16
  constructor(projectRoot: string, opts?: ContainerOptions);
17
+ get isolation_level(): 'shared' | 'isolated';
17
18
  get usingFallback(): boolean;
18
19
  allocate(req: WorkspaceRequest): Promise<WorkspaceLease>;
19
20
  snapshot(id: string): Promise<SnapshotRef>;
@@ -30,6 +30,9 @@ class EphemeralContainerManager {
30
30
  }
31
31
  }
32
32
  }
33
+ get isolation_level() {
34
+ return this.useFallback ? this.fallbackManager.isolation_level : 'isolated';
35
+ }
33
36
  get usingFallback() { return this.useFallback; }
34
37
  async allocate(req) {
35
38
  if (this.useFallback)
@@ -56,6 +59,7 @@ class EphemeralContainerManager {
56
59
  return {
57
60
  workspace_id: wsId,
58
61
  strategy: 'ephemeral_container',
62
+ isolation_level: this.isolation_level,
59
63
  branch: null,
60
64
  base_commit: null,
61
65
  root_path: `docker:${containerId}:${this.opts.mountPath}`,
@@ -2,6 +2,7 @@ import type { WorkspaceManager, WorkspaceRequest } from '../workspace-manager';
2
2
  import type { WorkspaceLease, SnapshotRef } from '../../models/workspace';
3
3
  export declare class GitWorktreeManager implements WorkspaceManager {
4
4
  private readonly projectRoot;
5
+ readonly isolation_level: "isolated";
5
6
  private leases;
6
7
  constructor(projectRoot: string);
7
8
  allocate(req: WorkspaceRequest): Promise<WorkspaceLease>;
@@ -11,6 +11,7 @@ const crypto_1 = __importDefault(require("crypto"));
11
11
  class GitWorktreeManager {
12
12
  constructor(projectRoot) {
13
13
  this.projectRoot = projectRoot;
14
+ this.isolation_level = 'isolated';
14
15
  this.leases = new Map();
15
16
  }
16
17
  async allocate(req) {
@@ -24,6 +25,7 @@ class GitWorktreeManager {
24
25
  const lease = {
25
26
  workspace_id: wsId,
26
27
  strategy: 'git_worktree',
28
+ isolation_level: this.isolation_level,
27
29
  branch,
28
30
  base_commit: baseCommit,
29
31
  root_path: worktreePath,
@@ -2,6 +2,7 @@ import type { WorkspaceManager, WorkspaceRequest } from '../workspace-manager';
2
2
  import type { WorkspaceLease, SnapshotRef } from '../../models/workspace';
3
3
  export declare class InplaceWorkspaceManager implements WorkspaceManager {
4
4
  private readonly projectRoot;
5
+ readonly isolation_level: "shared";
5
6
  constructor(projectRoot: string);
6
7
  allocate(req: WorkspaceRequest): Promise<WorkspaceLease>;
7
8
  snapshot(id: string): Promise<SnapshotRef>;
@@ -8,11 +8,13 @@ const crypto_1 = __importDefault(require("crypto"));
8
8
  class InplaceWorkspaceManager {
9
9
  constructor(projectRoot) {
10
10
  this.projectRoot = projectRoot;
11
+ this.isolation_level = 'shared';
11
12
  }
12
13
  async allocate(req) {
13
14
  return {
14
15
  workspace_id: `ws-inplace-${req.work_item_id}-a${req.attempt_number}`,
15
16
  strategy: 'inplace',
17
+ isolation_level: this.isolation_level,
16
18
  branch: null,
17
19
  base_commit: null,
18
20
  root_path: this.projectRoot,
@@ -1,4 +1,4 @@
1
- import type { WorkspaceLease, SnapshotRef, WorkspaceStrategy } from '../models/workspace';
1
+ import type { WorkspaceLease, SnapshotRef, WorkspaceStrategy, WorkspaceIsolationLevel } from '../models/workspace';
2
2
  export interface WorkspaceRequest {
3
3
  work_item_id: string;
4
4
  attempt_number: number;
@@ -6,6 +6,7 @@ export interface WorkspaceRequest {
6
6
  mutation_scope: string[];
7
7
  }
8
8
  export interface WorkspaceManager {
9
+ readonly isolation_level: WorkspaceIsolationLevel;
9
10
  allocate(req: WorkspaceRequest): Promise<WorkspaceLease>;
10
11
  snapshot(id: string): Promise<SnapshotRef>;
11
12
  reset(id: string, snapRef: SnapshotRef): Promise<void>;
package/lib/sdk/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # OXE SDK (`oxe-cc`)
2
2
 
3
- API programática estável para scripts, CI e integrações. O binário `oxe-cc` usa os mesmos módulos em `bin/lib/`.
3
+ API programática estável para scripts, CI e integrações. O binário `oxe-cc` usa os mesmos módulos em `bin/lib/` e reexporta bridges do runtime enterprise.
4
4
 
5
5
  ## Instalação
6
6
 
@@ -46,10 +46,11 @@ const { options, warnings: w } = oxe.install.resolveOptionsFromConfig(dir, {
46
46
  | **Meta** | `version`, `name`, `PACKAGE_ROOT`, `readPackageMeta`, `readMinNode` |
47
47
  | **health** | `loadOxeConfigMerged`, `validateConfigShape`, `buildHealthReport`, `suggestNextStep`, `oxePaths`, constantes de config |
48
48
  | **workflows** | `resolveWorkflowsDir`, `listWorkflowMdFiles`, `diffWorkflows`, `validateWorkflowShapes` (avisos `WORKFLOW_SHAPE`) |
49
- | **install** | `resolveOptionsFromConfig` |
49
+ | **install** | `resolveOptionsFromConfig` |
50
50
  | **manifest** | `loadFileManifest`, `writeFileManifest`, `sha256File`, `collectFilesRecursive` |
51
51
  | **agents** | `adjustWorkflowPathsForNestedLayout`, `parseCursorCommandFrontmatter` |
52
52
  | **azure** | `azurePaths`, `detectAzureCli`, `loadAzureProfile`, `syncAzureInventory`, `planAzureOperation`, `applyAzureOperation`, `azureDoctor` |
53
+ | **runtime / operational** | `buildRuntimePluginRegistry`, `readRuntimeGates`, `resolveRuntimeGate`, `runRuntimeVerify`, `runRuntimePromotion`, `recoverRuntimeState`, `replayRuntimeState`, `readRuntimeMultiAgentStatus`, `multiAgentStatus` |
53
54
  | **doctor** | `runDoctorChecks` — resultado estruturado (erros + avisos + diff de workflows + `workflowShape` com lint leve dos `.md`) |
54
55
 
55
56
  TypeScript: ver `index.d.ts` junto deste ficheiro.
@@ -57,12 +58,23 @@ TypeScript: ver `index.d.ts` junto deste ficheiro.
57
58
  ## `health.buildHealthReport` e `parseLastCompactDate`
58
59
 
59
60
  - **`parseLastCompactDate(stateText)`** — lê a data em **`.oxe/STATE.md`** na secção **Último compact** (mesma convenção que **Último scan**). Devolve `Date | null` se a linha for placeholder ou ilegível.
60
- - **`buildHealthReport(projectRoot)`** — agrega fase, datas, avisos de SPEC/PLAN/VERIFY e o próximo passo sugerido. Campos usados em CI e em `oxe-cc status --json`:
61
- - **`scanDate`**, **`stale`** — último scan e idade face a `scan_max_age_days` (`stale: { stale, days }`).
62
- - **`compactDate`**, **`staleCompact`** — último compact e idade face a `compact_max_age_days`.
63
- - **`azureActive`**, **`azure`** — contexto Azure resolvido, inventário materializado, warnings e pendências do provider.
64
- - **`next`** — `{ step, cursorCmd, reason, artifacts }` (espelha a lógica de `suggestNextStep`).
61
+ - **`buildHealthReport(projectRoot)`** — agrega fase, datas, avisos de SPEC/PLAN/VERIFY e o próximo passo sugerido. Campos usados em CI e em `oxe-cc status --json`:
62
+ - **`scanDate`**, **`stale`** — último scan e idade face a `scan_max_age_days` (`stale: { stale, days }`).
63
+ - **`compactDate`**, **`staleCompact`** — último compact e idade face a `compact_max_age_days`.
64
+ - **`azureActive`**, **`azure`** — contexto Azure resolvido, inventário materializado, warnings e pendências do provider.
65
+ - **`next`** — `{ step, cursorCmd, reason, artifacts }` (espelha a lógica de `suggestNextStep`).
65
66
 
66
67
  ## `runDoctorChecks` e relatório de saúde
67
68
 
68
- O resultado inclui **`healthReport`** com a mesma forma que `buildHealthReport` — útil em pipelines para falhar ou avisar quando `healthReport.stale.stale` ou `healthReport.staleCompact.stale` é verdadeiro (alinhado aos avisos do `oxe-cc doctor`).
69
+ O resultado inclui **`healthReport`** com a mesma forma que `buildHealthReport` — útil em pipelines para falhar ou avisar quando `healthReport.stale.stale` ou `healthReport.staleCompact.stale` é verdadeiro (alinhado aos avisos do `oxe-cc doctor`).
70
+
71
+ ## Helpers enterprise de release
72
+
73
+ O SDK já expõe os helpers usados pela operação enterprise do OXE:
74
+
75
+ - `verifyRun(...)` — verify executável com evidence store, manifest e residual risk
76
+ - `operational.readRuntimeGates(...)` / `operational.resolveRuntimeGate(...)`
77
+ - `operational.recoverRuntimeState(...)` / `operational.replayRuntimeState(...)`
78
+ - `operational.readRuntimeMultiAgentStatus(...)` / `operational.multiAgentStatus(...)`
79
+
80
+ Use esses helpers quando quiser integrar gates, verify, recovery e multi-agent a scripts de CI, automações internas ou observabilidade.
package/lib/sdk/index.cjs CHANGED
@@ -648,22 +648,31 @@ module.exports = {
648
648
  operationalPaths: operational.operationalPaths,
649
649
  appendEvent: operational.appendEvent,
650
650
  readEvents: operational.readEvents,
651
- summarizeEvents: operational.summarizeEvents,
652
- writeRunState: operational.writeRunState,
653
- readRunState: operational.readRunState,
654
- buildOperationalGraph: operational.buildOperationalGraph,
655
- serializeCanonicalState: operational.serializeCanonicalState,
656
- hydrateCanonicalState: operational.hydrateCanonicalState,
657
- reduceCanonicalRunState: operational.reduceCanonicalRunState,
658
- compileExecutionGraphFromArtifacts: operational.compileExecutionGraphFromArtifacts,
659
- compileVerificationSuiteFromArtifacts: operational.compileVerificationSuiteFromArtifacts,
660
- projectRuntimeArtifacts: operational.projectRuntimeArtifacts,
661
- runRuntimeCiChecks: operational.runRuntimeCiChecks,
662
- applyRuntimeAction: operational.applyRuntimeAction,
663
- parseCapabilityManifest: operational.parseCapabilityManifest,
664
- readCapabilityCatalog: operational.readCapabilityCatalog,
651
+ summarizeEvents: operational.summarizeEvents,
652
+ writeRunState: operational.writeRunState,
653
+ readRunState: operational.readRunState,
654
+ buildOperationalGraph: operational.buildOperationalGraph,
655
+ serializeCanonicalState: operational.serializeCanonicalState,
656
+ hydrateCanonicalState: operational.hydrateCanonicalState,
657
+ reduceCanonicalRunState: operational.reduceCanonicalRunState,
658
+ compileExecutionGraphFromArtifacts: operational.compileExecutionGraphFromArtifacts,
659
+ compileVerificationSuiteFromArtifacts: operational.compileVerificationSuiteFromArtifacts,
660
+ projectRuntimeArtifacts: operational.projectRuntimeArtifacts,
661
+ runRuntimeCiChecks: operational.runRuntimeCiChecks,
662
+ buildRuntimePluginRegistry: operational.buildRuntimePluginRegistry,
663
+ readRuntimeGates: operational.readRuntimeGates,
664
+ resolveRuntimeGate: operational.resolveRuntimeGate,
665
+ runRuntimeVerify: operational.runRuntimeVerify,
666
+ runRuntimePromotion: operational.runRuntimePromotion,
667
+ recoverRuntimeState: operational.recoverRuntimeState,
668
+ applyRuntimeAction: operational.applyRuntimeAction,
669
+ parseCapabilityManifest: operational.parseCapabilityManifest,
670
+ readCapabilityCatalog: operational.readCapabilityCatalog,
665
671
  buildMemoryLayers: operational.buildMemoryLayers,
666
672
  replayEvents: operational.replayEvents,
673
+ replayRuntimeState: operational.replayRuntimeState,
674
+ readRuntimeMultiAgentStatus: operational.readRuntimeMultiAgentStatus,
675
+ multiAgentStatus: operational.readRuntimeMultiAgentStatus,
667
676
  },
668
677
 
669
678
  /** Context Engine V2: seleção, compressão e inspeção determinística de artefatos. */
@@ -742,13 +751,13 @@ module.exports = {
742
751
  /** Um único objeto com verificações tipo `doctor` + relatório de saúde. */
743
752
  runDoctorChecks,
744
753
  };
745
-
746
-
747
- // Re-exports from @oxe/runtime (R1 — Runtime Foundation)
748
- // The compiled runtime lives at lib/runtime/ alongside this file.
749
- try {
750
- const runtime = require('../runtime/index.js');
751
- Object.assign(module.exports, runtime);
752
- } catch {
753
- // Runtime not built yet — safe to skip during development
754
- }
754
+
755
+
756
+ // Re-exports from @oxe/runtime (R1 — Runtime Foundation)
757
+ // The compiled runtime lives at lib/runtime/ alongside this file.
758
+ try {
759
+ const runtime = require('../runtime/index.js');
760
+ Object.assign(module.exports, runtime);
761
+ } catch {
762
+ // Runtime not built yet — safe to skip during development
763
+ }
@@ -100,6 +100,111 @@ export interface CopilotIntegrationReport {
100
100
  warnings: string[];
101
101
  }
102
102
 
103
+ export interface VerificationSummary {
104
+ total: number;
105
+ pass: number;
106
+ fail: number;
107
+ skip: number;
108
+ error: number;
109
+ allPassed: boolean;
110
+ profile: string | null;
111
+ manifestPath: string;
112
+ }
113
+
114
+ export interface ResidualRiskSummary {
115
+ total: number;
116
+ highOrCritical: number;
117
+ ledgerPath: string;
118
+ }
119
+
120
+ export interface EvidenceCoverageSummary {
121
+ total_checks: number;
122
+ checks_with_evidence: number;
123
+ total_evidence_refs: number;
124
+ coverage_percent: number;
125
+ }
126
+
127
+ export interface PendingGatesSummary {
128
+ path: string;
129
+ total: number;
130
+ gateSlaHours?: number;
131
+ staleGateCount?: number;
132
+ pending: Array<Record<string, unknown>>;
133
+ stalePending: Array<Record<string, unknown>>;
134
+ }
135
+
136
+ export interface GateQueueSnapshot {
137
+ path: string;
138
+ total: number;
139
+ gate_sla_hours?: number;
140
+ staleCount?: number;
141
+ pending: Array<Record<string, unknown>>;
142
+ stale_pending?: Array<Record<string, unknown>>;
143
+ resolved_recent?: Array<Record<string, unknown>>;
144
+ byRun?: Record<string, number>;
145
+ byScope?: Record<string, number>;
146
+ all?: Array<Record<string, unknown>>;
147
+ }
148
+
149
+ export interface MultiAgentStatusSummary {
150
+ path: string | null;
151
+ enabled: boolean;
152
+ runId: string | null;
153
+ mode: string | null;
154
+ workspaceIsolationEnforced: boolean;
155
+ agents: Array<Record<string, unknown>>;
156
+ ownership: Array<Record<string, unknown>>;
157
+ orphanReassignments: Array<Record<string, unknown>>;
158
+ handoffs: Array<Record<string, unknown>>;
159
+ arbitrationResults: Array<Record<string, unknown>>;
160
+ }
161
+
162
+ export interface PolicyDecisionSummary {
163
+ total: number;
164
+ denied: number;
165
+ gated: number;
166
+ overridesWithoutRationale: number;
167
+ }
168
+
169
+ export interface QuotaSummary {
170
+ limits: {
171
+ maxWorkItemsPerRun: number | null;
172
+ maxMutationsPerRun: number | null;
173
+ maxRetriesPerRun: number | null;
174
+ };
175
+ consumed: {
176
+ workItems: number;
177
+ mutations: number;
178
+ retries: number;
179
+ };
180
+ violations: string[];
181
+ exceeded: boolean;
182
+ }
183
+
184
+ export interface AuditSummary {
185
+ path: string;
186
+ totalEntries: number;
187
+ runEntries: number;
188
+ warn: number;
189
+ critical: number;
190
+ oldest: string | null;
191
+ newest: string | null;
192
+ actors: string[];
193
+ actions: Record<string, number>;
194
+ }
195
+
196
+ export interface PromotionSummary {
197
+ status: string | null;
198
+ targetKind: string | null;
199
+ remote: string | null;
200
+ targetRef: string | null;
201
+ prUrl: string | null;
202
+ prNumber: number | null;
203
+ coveragePercent: number | null;
204
+ reasons: string[];
205
+ path: string;
206
+ }
207
+
103
208
  /** Relatório retornado por `health.buildHealthReport` e incluído em `runDoctorChecks`.healthReport. */
104
209
  export interface OxeHealthReport {
105
210
  configPath: string | null;
@@ -130,6 +235,16 @@ export interface OxeHealthReport {
130
235
  activeRun?: Record<string, unknown> | null;
131
236
  eventsSummary?: Record<string, unknown> | null;
132
237
  memoryLayers?: Record<string, unknown> | null;
238
+ verificationSummary?: VerificationSummary | null;
239
+ residualRiskSummary?: ResidualRiskSummary | null;
240
+ evidenceCoverage?: EvidenceCoverageSummary | null;
241
+ pendingGates?: PendingGatesSummary | null;
242
+ policyDecisionSummary?: PolicyDecisionSummary | null;
243
+ enterpriseWarn?: string[];
244
+ quotaSummary?: QuotaSummary | null;
245
+ auditSummary?: AuditSummary | null;
246
+ promotionSummary?: PromotionSummary | null;
247
+ multiAgent?: MultiAgentStatusSummary | null;
133
248
  next: OxeNextSuggestion;
134
249
  azureActive?: boolean;
135
250
  azure?: AzureHealthContext | null;
@@ -478,6 +593,17 @@ export interface OxeSdk {
478
593
  parseLessonsMetrics: (metricsJson: string) => LessonMetric[];
479
594
  updateLessonMetric: (metrics: LessonMetric[], lessonId: string, outcome: LessonOutcome) => LessonMetric[];
480
595
  deprecateLowEffectiveness: (metrics: LessonMetric[], threshold?: number, minObservations?: number) => LessonMetric[];
596
+ verifyRun?: (input: {
597
+ projectRoot: string;
598
+ runId: string;
599
+ workItemId: string;
600
+ cwd: string;
601
+ suite: Record<string, unknown>;
602
+ pluginRegistry?: Record<string, unknown>;
603
+ evidenceStore?: Record<string, unknown>;
604
+ attemptNumber?: number;
605
+ timeoutMs?: number;
606
+ }) => Promise<Record<string, unknown>>;
481
607
 
482
608
  health: {
483
609
  loadOxeConfigMerged: (targetProject: string) => { config: Record<string, unknown>; path: string | null; parseError: string | null; sources: { system: string | null; user: string | null; project: string | null } };
@@ -573,20 +699,26 @@ export interface OxeSdk {
573
699
  operationalPaths: (projectRoot: string, activeSession: string | null) => Record<string, string | null>;
574
700
  appendEvent: (projectRoot: string, activeSession: string | null, event?: Record<string, unknown>) => Record<string, unknown>;
575
701
  readEvents: (projectRoot: string, activeSession: string | null) => Array<Record<string, unknown>>;
576
- summarizeEvents: (events: Array<Record<string, unknown>>) => Record<string, unknown>;
577
- writeRunState: (projectRoot: string, activeSession: string | null, runState?: Record<string, unknown>) => Record<string, unknown>;
578
- readRunState: (projectRoot: string, activeSession: string | null) => Record<string, unknown> | null;
579
- buildOperationalGraph: (runState?: Record<string, unknown>) => { nodes: Array<Record<string, unknown>>; edges: Array<Record<string, unknown>> };
580
- serializeCanonicalState: (state: unknown) => Record<string, unknown> | null;
581
- hydrateCanonicalState: (serialized: unknown) => Record<string, unknown>;
582
- reduceCanonicalRunState: (projectRoot: string, activeSession: string | null, options?: Record<string, unknown>) => Record<string, unknown> | null;
583
- compileExecutionGraphFromArtifacts: (projectRoot: string, activeSession: string | null, options?: Record<string, unknown>) => Record<string, unknown>;
584
- compileVerificationSuiteFromArtifacts: (projectRoot: string, activeSession: string | null, options?: Record<string, unknown>) => Record<string, unknown>;
585
- projectRuntimeArtifacts: (projectRoot: string, activeSession: string | null, options?: Record<string, unknown>) => Record<string, unknown>;
586
- runRuntimeCiChecks: (projectRoot: string, activeSession: string | null, options?: Record<string, unknown>) => Promise<Record<string, unknown>>;
587
- applyRuntimeAction: (projectRoot: string, activeSession: string | null, input?: Record<string, unknown>) => Record<string, unknown>;
588
- parseCapabilityManifest: (text: string) => Record<string, unknown>;
589
- readCapabilityCatalog: (projectRoot: string) => Array<Record<string, unknown>>;
702
+ summarizeEvents: (events: Array<Record<string, unknown>>) => Record<string, unknown>;
703
+ writeRunState: (projectRoot: string, activeSession: string | null, runState?: Record<string, unknown>) => Record<string, unknown>;
704
+ readRunState: (projectRoot: string, activeSession: string | null) => Record<string, unknown> | null;
705
+ buildOperationalGraph: (runState?: Record<string, unknown>) => { nodes: Array<Record<string, unknown>>; edges: Array<Record<string, unknown>> };
706
+ serializeCanonicalState: (state: unknown) => Record<string, unknown> | null;
707
+ hydrateCanonicalState: (serialized: unknown) => Record<string, unknown>;
708
+ reduceCanonicalRunState: (projectRoot: string, activeSession: string | null, options?: Record<string, unknown>) => Record<string, unknown> | null;
709
+ compileExecutionGraphFromArtifacts: (projectRoot: string, activeSession: string | null, options?: Record<string, unknown>) => Record<string, unknown>;
710
+ compileVerificationSuiteFromArtifacts: (projectRoot: string, activeSession: string | null, options?: Record<string, unknown>) => Record<string, unknown>;
711
+ projectRuntimeArtifacts: (projectRoot: string, activeSession: string | null, options?: Record<string, unknown>) => Record<string, unknown>;
712
+ runRuntimeCiChecks: (projectRoot: string, activeSession: string | null, options?: Record<string, unknown>) => Promise<Record<string, unknown>>;
713
+ buildRuntimePluginRegistry: (projectRoot: string) => Record<string, unknown> | null;
714
+ readRuntimeGates: (projectRoot: string, activeSession: string | null, options?: Record<string, unknown>) => GateQueueSnapshot;
715
+ resolveRuntimeGate: (projectRoot: string, activeSession: string | null, options?: Record<string, unknown>) => Promise<Record<string, unknown>>;
716
+ runRuntimeVerify: (projectRoot: string, activeSession: string | null, options?: Record<string, unknown>) => Promise<Record<string, unknown>>;
717
+ runRuntimePromotion: (projectRoot: string, activeSession: string | null, options?: Record<string, unknown>) => Promise<Record<string, unknown>>;
718
+ recoverRuntimeState: (projectRoot: string, activeSession: string | null, options?: Record<string, unknown>) => Record<string, unknown>;
719
+ applyRuntimeAction: (projectRoot: string, activeSession: string | null, input?: Record<string, unknown>) => Record<string, unknown>;
720
+ parseCapabilityManifest: (text: string) => Record<string, unknown>;
721
+ readCapabilityCatalog: (projectRoot: string) => Array<Record<string, unknown>>;
590
722
  buildMemoryLayers: (projectRoot: string, activeSession: string | null) => Record<string, unknown>;
591
723
  replayEvents: (projectRoot: string, activeSession: string | null, options?: {
592
724
  fromEventId?: string;
@@ -595,6 +727,9 @@ export interface OxeSdk {
595
727
  limit?: number;
596
728
  writeReport?: boolean;
597
729
  }) => ReplayReport;
730
+ replayRuntimeState: (projectRoot: string, activeSession: string | null, options?: Record<string, unknown>) => Record<string, unknown>;
731
+ readRuntimeMultiAgentStatus: (projectRoot: string, activeSession: string | null, options?: Record<string, unknown>) => MultiAgentStatusSummary;
732
+ multiAgentStatus: (projectRoot: string, activeSession: string | null, options?: Record<string, unknown>) => MultiAgentStatusSummary;
598
733
  };
599
734
 
600
735
  azure: {
@@ -1,32 +1,32 @@
1
- {
2
- "run_id": "oxe-run-YYYYMMDD-001",
3
- "status": "planned",
4
- "created_at": "YYYY-MM-DDTHH:mm:ssZ",
5
- "updated_at": "YYYY-MM-DDTHH:mm:ssZ",
6
- "plan_ref": "PLAN.md",
7
- "session_id": null,
8
- "current_wave": null,
9
- "cursor": {
10
- "wave": null,
11
- "task": null,
12
- "mode": null
13
- },
14
- "active_tasks": [],
15
- "pending_checkpoints": [],
16
- "retries": [],
17
- "failures": [],
18
- "evidence": [],
19
- "provider_context": {
20
- "azure": null
21
- },
22
- "graph": {
23
- "nodes": [],
24
- "edges": []
25
- },
26
- "metrics": {
27
- "predicted_confidence": null,
28
- "coverage_ratio": null,
29
- "retry_count": 0,
30
- "checkpoint_count": 0
31
- }
32
- }
1
+ {
2
+ "run_id": "oxe-run-YYYYMMDD-001",
3
+ "status": "planned",
4
+ "created_at": "YYYY-MM-DDTHH:mm:ssZ",
5
+ "updated_at": "YYYY-MM-DDTHH:mm:ssZ",
6
+ "plan_ref": "PLAN.md",
7
+ "session_id": null,
8
+ "current_wave": null,
9
+ "cursor": {
10
+ "wave": null,
11
+ "task": null,
12
+ "mode": null
13
+ },
14
+ "active_tasks": [],
15
+ "pending_checkpoints": [],
16
+ "retries": [],
17
+ "failures": [],
18
+ "evidence": [],
19
+ "provider_context": {
20
+ "azure": null
21
+ },
22
+ "graph": {
23
+ "nodes": [],
24
+ "edges": []
25
+ },
26
+ "metrics": {
27
+ "predicted_confidence": null,
28
+ "coverage_ratio": null,
29
+ "retry_count": 0,
30
+ "checkpoint_count": 0
31
+ }
32
+ }
@@ -1,7 +1,7 @@
1
- # OXE — Capabilities Instaladas
2
-
3
- > Catálogo local de capabilities do projeto. Cada capability vive em `.oxe/capabilities/<id>/`.
4
-
5
- | ID | Tipo | Status | Escopo | Política | Side effects | Requer env | Evidência | Resumo |
6
- |----|------|--------|--------|-----------|--------------|------------|-----------|--------|
7
- | (vazio) | — | — | — | — | — | — | — | Nenhuma capability instalada |
1
+ # OXE — Capabilities Instaladas
2
+
3
+ > Catálogo local de capabilities do projeto. Cada capability vive em `.oxe/capabilities/<id>/`.
4
+
5
+ | ID | Tipo | Status | Escopo | Política | Side effects | Requer env | Evidência | Resumo |
6
+ |----|------|--------|--------|-----------|--------------|------------|-----------|--------|
7
+ | (vazio) | — | — | — | — | — | — | — | Nenhuma capability instalada |