oxe-cc 1.2.1 → 1.3.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 (276) 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/CHANGELOG.md +52 -17
  73. package/README.md +610 -551
  74. package/bin/banner.txt +1 -1
  75. package/bin/lib/oxe-agent-install.cjs +69 -69
  76. package/bin/lib/oxe-azure.cjs +1445 -1445
  77. package/bin/lib/oxe-context-engine.cjs +867 -867
  78. package/bin/lib/oxe-dashboard.cjs +76 -28
  79. package/bin/lib/oxe-operational.cjs +2144 -1340
  80. package/bin/lib/oxe-project-health.cjs +483 -1
  81. package/bin/lib/oxe-runtime-semantics.cjs +12 -0
  82. package/bin/oxe-cc.js +554 -152
  83. package/commands/oxe/ask.md +2 -2
  84. package/commands/oxe/capabilities.md +2 -2
  85. package/commands/oxe/checkpoint.md +2 -2
  86. package/commands/oxe/compact.md +2 -2
  87. package/commands/oxe/dashboard.md +2 -2
  88. package/commands/oxe/debug.md +2 -2
  89. package/commands/oxe/discuss.md +2 -2
  90. package/commands/oxe/execute.md +5 -2
  91. package/commands/oxe/forensics.md +2 -2
  92. package/commands/oxe/help.md +2 -2
  93. package/commands/oxe/loop.md +2 -2
  94. package/commands/oxe/milestone.md +2 -2
  95. package/commands/oxe/next.md +2 -2
  96. package/commands/oxe/obs.md +2 -2
  97. package/commands/oxe/oxe.md +2 -2
  98. package/commands/oxe/plan-agent.md +2 -2
  99. package/commands/oxe/plan.md +2 -2
  100. package/commands/oxe/project.md +2 -2
  101. package/commands/oxe/quick.md +2 -2
  102. package/commands/oxe/research.md +2 -2
  103. package/commands/oxe/retro.md +2 -2
  104. package/commands/oxe/review-pr.md +2 -2
  105. package/commands/oxe/route.md +2 -2
  106. package/commands/oxe/scan.md +2 -2
  107. package/commands/oxe/security.md +2 -2
  108. package/commands/oxe/session.md +2 -2
  109. package/commands/oxe/ship.md +2 -2
  110. package/commands/oxe/skill.md +2 -2
  111. package/commands/oxe/spec.md +2 -2
  112. package/commands/oxe/ui-review.md +2 -2
  113. package/commands/oxe/ui-spec.md +2 -2
  114. package/commands/oxe/update.md +2 -2
  115. package/commands/oxe/validate-gaps.md +2 -2
  116. package/commands/oxe/verify.md +5 -2
  117. package/commands/oxe/workstream.md +2 -2
  118. package/lib/runtime/delivery/branch-manager.d.ts +1 -0
  119. package/lib/runtime/delivery/branch-manager.js +7 -0
  120. package/lib/runtime/delivery/ci-checks.js +34 -1
  121. package/lib/runtime/delivery/delivery-records.d.ts +34 -0
  122. package/lib/runtime/delivery/delivery-records.js +48 -0
  123. package/lib/runtime/delivery/index.d.ts +1 -0
  124. package/lib/runtime/delivery/index.js +1 -0
  125. package/lib/runtime/delivery/promotion-pipeline.d.ts +26 -2
  126. package/lib/runtime/delivery/promotion-pipeline.js +111 -14
  127. package/lib/runtime/gate/gate-manager.d.ts +41 -0
  128. package/lib/runtime/gate/gate-manager.js +108 -1
  129. package/lib/runtime/index.d.ts +2 -2
  130. package/lib/runtime/index.js +3 -1
  131. package/lib/runtime/models/gate-decision.d.ts +4 -1
  132. package/lib/runtime/models/workspace.d.ts +3 -0
  133. package/lib/runtime/plugins/capability-adapter.d.ts +12 -0
  134. package/lib/runtime/plugins/capability-adapter.js +204 -0
  135. package/lib/runtime/plugins/capability-matrix.d.ts +5 -0
  136. package/lib/runtime/plugins/capability-matrix.js +48 -17
  137. package/lib/runtime/plugins/index.d.ts +1 -0
  138. package/lib/runtime/plugins/index.js +1 -0
  139. package/lib/runtime/plugins/plugin-abi.d.ts +2 -0
  140. package/lib/runtime/plugins/plugin-manifest.d.ts +1 -1
  141. package/lib/runtime/plugins/plugin-manifest.js +6 -2
  142. package/lib/runtime/plugins/plugin-registry.d.ts +46 -0
  143. package/lib/runtime/plugins/plugin-registry.js +79 -2
  144. package/lib/runtime/policy/policy-engine.d.ts +19 -0
  145. package/lib/runtime/policy/policy-engine.js +76 -4
  146. package/lib/runtime/projection/projection-engine.d.ts +9 -1
  147. package/lib/runtime/projection/projection-engine.js +73 -3
  148. package/lib/runtime/scheduler/multi-agent-coordinator.d.ts +43 -1
  149. package/lib/runtime/scheduler/multi-agent-coordinator.js +151 -39
  150. package/lib/runtime/scheduler/run-journal.d.ts +1 -1
  151. package/lib/runtime/scheduler/scheduler.d.ts +19 -1
  152. package/lib/runtime/scheduler/scheduler.js +258 -13
  153. package/lib/runtime/verification/verification-compiler.d.ts +43 -0
  154. package/lib/runtime/verification/verification-compiler.js +137 -0
  155. package/lib/runtime/verification/verification-manifest.d.ts +9 -0
  156. package/lib/runtime/verification/verification-manifest.js +56 -6
  157. package/lib/runtime/workspace/strategies/ephemeral-container.d.ts +1 -0
  158. package/lib/runtime/workspace/strategies/ephemeral-container.js +4 -0
  159. package/lib/runtime/workspace/strategies/git-worktree.d.ts +1 -0
  160. package/lib/runtime/workspace/strategies/git-worktree.js +2 -0
  161. package/lib/runtime/workspace/strategies/inplace.d.ts +1 -0
  162. package/lib/runtime/workspace/strategies/inplace.js +2 -0
  163. package/lib/runtime/workspace/workspace-manager.d.ts +2 -1
  164. package/lib/sdk/README.md +9 -9
  165. package/lib/sdk/index.cjs +33 -24
  166. package/lib/sdk/index.d.ts +149 -14
  167. package/oxe/templates/ACTIVE-RUN.template.json +32 -32
  168. package/oxe/templates/CAPABILITIES.template.md +7 -7
  169. package/oxe/templates/CAPABILITY.template.md +45 -45
  170. package/oxe/templates/CHECKPOINTS.template.md +7 -7
  171. package/oxe/templates/EXECUTION-RUNTIME.template.md +68 -68
  172. package/oxe/templates/HYPOTHESES.template.md +33 -33
  173. package/oxe/templates/LESSONS-METRICS.template.json +13 -13
  174. package/oxe/templates/NOTES.template.md +16 -16
  175. package/oxe/templates/PLAN-REVIEW.template.md +31 -31
  176. package/oxe/templates/SESSION.template.md +34 -34
  177. package/oxe/templates/SKILL.template.md +26 -26
  178. package/oxe/templates/STATE.md +55 -55
  179. package/oxe/templates/WORKFLOW_AUTHORING.md +18 -18
  180. package/oxe/workflows/ask.md +96 -96
  181. package/oxe/workflows/capabilities.md +25 -25
  182. package/oxe/workflows/dashboard.md +33 -33
  183. package/oxe/workflows/discuss.md +12 -12
  184. package/oxe/workflows/execute.md +14 -0
  185. package/oxe/workflows/help.md +352 -352
  186. package/oxe/workflows/next.md +22 -22
  187. package/oxe/workflows/oxe.md +6 -6
  188. package/oxe/workflows/plan-agent.md +9 -9
  189. package/oxe/workflows/quick.md +10 -10
  190. package/oxe/workflows/references/reasoning-discovery.md +28 -28
  191. package/oxe/workflows/references/reasoning-execution.md +29 -29
  192. package/oxe/workflows/references/reasoning-planning.md +32 -32
  193. package/oxe/workflows/references/reasoning-review.md +29 -29
  194. package/oxe/workflows/references/reasoning-status.md +24 -24
  195. package/oxe/workflows/references/robustness-elevation.md +295 -295
  196. package/oxe/workflows/references/workflow-runtime-contracts.json +952 -930
  197. package/oxe/workflows/route.md +16 -16
  198. package/oxe/workflows/session.md +213 -213
  199. package/oxe/workflows/ship.md +142 -142
  200. package/oxe/workflows/skill.md +44 -44
  201. package/oxe/workflows/ui-review.md +36 -36
  202. package/oxe/workflows/verify-audit.md +73 -73
  203. package/oxe/workflows/verify.md +10 -0
  204. package/package.json +92 -92
  205. package/packages/runtime/package.json +17 -17
  206. package/packages/runtime/src/audit/audit-trail.ts +243 -243
  207. package/packages/runtime/src/audit/index.ts +2 -2
  208. package/packages/runtime/src/audit/policy-pack.ts +62 -62
  209. package/packages/runtime/src/compiler/graph-compiler.ts +245 -245
  210. package/packages/runtime/src/compiler/index.ts +1 -1
  211. package/packages/runtime/src/context/context-pack-builder.ts +259 -259
  212. package/packages/runtime/src/context/context-pack-store.ts +197 -197
  213. package/packages/runtime/src/context/context-profiles.ts +60 -60
  214. package/packages/runtime/src/context/index.ts +3 -3
  215. package/packages/runtime/src/decision/decision-engine.ts +174 -174
  216. package/packages/runtime/src/decision/decision-memo.ts +211 -211
  217. package/packages/runtime/src/decision/index.ts +2 -2
  218. package/packages/runtime/src/delivery/branch-manager.ts +91 -84
  219. package/packages/runtime/src/delivery/ci-checks.ts +285 -252
  220. package/packages/runtime/src/delivery/delivery-records.ts +75 -0
  221. package/packages/runtime/src/delivery/index.ts +5 -4
  222. package/packages/runtime/src/delivery/pr-manager.ts +112 -112
  223. package/packages/runtime/src/delivery/promotion-pipeline.ts +334 -180
  224. package/packages/runtime/src/events/bus.ts +92 -92
  225. package/packages/runtime/src/events/catalog.ts +29 -29
  226. package/packages/runtime/src/events/envelope.ts +14 -14
  227. package/packages/runtime/src/events/index.ts +3 -3
  228. package/packages/runtime/src/evidence/evidence-store.ts +130 -130
  229. package/packages/runtime/src/evidence/index.ts +1 -1
  230. package/packages/runtime/src/gate/gate-manager.ts +289 -137
  231. package/packages/runtime/src/gate/index.ts +1 -1
  232. package/packages/runtime/src/index.ts +41 -37
  233. package/packages/runtime/src/models/attempt.ts +19 -19
  234. package/packages/runtime/src/models/evidence.ts +21 -21
  235. package/packages/runtime/src/models/gate-decision.ts +25 -21
  236. package/packages/runtime/src/models/index.ts +8 -8
  237. package/packages/runtime/src/models/run.ts +24 -24
  238. package/packages/runtime/src/models/session.ts +11 -11
  239. package/packages/runtime/src/models/verification-result.ts +10 -10
  240. package/packages/runtime/src/models/work-item.ts +25 -25
  241. package/packages/runtime/src/models/workspace.ts +31 -28
  242. package/packages/runtime/src/plugins/capability-adapter.ts +206 -0
  243. package/packages/runtime/src/plugins/capability-matrix.ts +126 -83
  244. package/packages/runtime/src/plugins/index.ts +5 -4
  245. package/packages/runtime/src/plugins/plugin-abi.ts +97 -95
  246. package/packages/runtime/src/plugins/plugin-manifest.ts +118 -113
  247. package/packages/runtime/src/plugins/plugin-registry.ts +232 -124
  248. package/packages/runtime/src/policy/index.ts +1 -1
  249. package/packages/runtime/src/policy/policy-engine.ts +330 -244
  250. package/packages/runtime/src/projection/index.ts +1 -1
  251. package/packages/runtime/src/projection/projection-engine.ts +328 -249
  252. package/packages/runtime/src/reducers/debug-reducer.ts +36 -36
  253. package/packages/runtime/src/reducers/index.ts +2 -2
  254. package/packages/runtime/src/reducers/run-state-reducer.ts +269 -269
  255. package/packages/runtime/src/scheduler/agent-registry.ts +132 -132
  256. package/packages/runtime/src/scheduler/agent-roles.ts +109 -109
  257. package/packages/runtime/src/scheduler/index.ts +4 -4
  258. package/packages/runtime/src/scheduler/multi-agent-coordinator.ts +521 -333
  259. package/packages/runtime/src/scheduler/run-journal.ts +62 -62
  260. package/packages/runtime/src/scheduler/scheduler.ts +722 -441
  261. package/packages/runtime/src/verification/index.ts +2 -2
  262. package/packages/runtime/src/verification/verification-compiler.ts +436 -225
  263. package/packages/runtime/src/verification/verification-manifest.ts +252 -192
  264. package/packages/runtime/src/workspace/index.ts +5 -5
  265. package/packages/runtime/src/workspace/strategies/ephemeral-container.ts +126 -121
  266. package/packages/runtime/src/workspace/strategies/git-worktree.ts +79 -77
  267. package/packages/runtime/src/workspace/strategies/inplace.ts +38 -35
  268. package/packages/runtime/src/workspace/workspace-manager.ts +16 -15
  269. package/packages/runtime/tsconfig.json +17 -17
  270. package/vscode-extension/.vscodeignore +7 -7
  271. package/vscode-extension/oxe-agents-1.0.0.vsix +0 -0
  272. package/vscode-extension/package.json +185 -185
  273. package/vscode-extension/src/extension.js +310 -310
  274. package/vscode-extension/src/shared/contextLoader.js +137 -137
  275. package/vscode-extension/src/shared/contractBuilder.js +159 -159
  276. 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
@@ -47,21 +47,21 @@ const { options, warnings: w } = oxe.install.resolveOptionsFromConfig(dir, {
47
47
  | **health** | `loadOxeConfigMerged`, `validateConfigShape`, `buildHealthReport`, `suggestNextStep`, `oxePaths`, constantes de config |
48
48
  | **workflows** | `resolveWorkflowsDir`, `listWorkflowMdFiles`, `diffWorkflows`, `validateWorkflowShapes` (avisos `WORKFLOW_SHAPE`) |
49
49
  | **install** | `resolveOptionsFromConfig` |
50
- | **manifest** | `loadFileManifest`, `writeFileManifest`, `sha256File`, `collectFilesRecursive` |
51
- | **agents** | `adjustWorkflowPathsForNestedLayout`, `parseCursorCommandFrontmatter` |
52
- | **azure** | `azurePaths`, `detectAzureCli`, `loadAzureProfile`, `syncAzureInventory`, `planAzureOperation`, `applyAzureOperation`, `azureDoctor` |
53
- | **doctor** | `runDoctorChecks` — resultado estruturado (erros + avisos + diff de workflows + `workflowShape` com lint leve dos `.md`) |
50
+ | **manifest** | `loadFileManifest`, `writeFileManifest`, `sha256File`, `collectFilesRecursive` |
51
+ | **agents** | `adjustWorkflowPathsForNestedLayout`, `parseCursorCommandFrontmatter` |
52
+ | **azure** | `azurePaths`, `detectAzureCli`, `loadAzureProfile`, `syncAzureInventory`, `planAzureOperation`, `applyAzureOperation`, `azureDoctor` |
53
+ | **doctor** | `runDoctorChecks` — resultado estruturado (erros + avisos + diff de workflows + `workflowShape` com lint leve dos `.md`) |
54
54
 
55
55
  TypeScript: ver `index.d.ts` junto deste ficheiro.
56
56
 
57
57
  ## `health.buildHealthReport` e `parseLastCompactDate`
58
58
 
59
59
  - **`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`).
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`).
65
65
 
66
66
  ## `runDoctorChecks` e relatório de saúde
67
67
 
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 |
@@ -1,45 +1,45 @@
1
- ---
2
- oxe_capability: true
3
- id: sample-capability
4
- version: 1
5
- type: script
6
- status: active
7
- scope: execute
8
- requires_env: []
9
- entrypoint: ""
10
- approval_policy: require_approval_if_external_side_effect
11
- side_effects: []
12
- evidence_outputs: []
13
- session_compatibility: [legacy, session]
14
- ---
15
-
16
- # OXE — Capability
17
-
18
- ## Objetivo
19
-
20
- - O que esta capability faz.
21
-
22
- ## Escopo OXE
23
-
24
- - `scan` | `ask` | `research` | `spec` | `plan` | `execute` | `verify`
25
-
26
- ## Operações
27
-
28
- - Operação 1
29
-
30
- ## Entradas e saídas
31
-
32
- - Entradas esperadas
33
- - Saídas produzidas
34
-
35
- ## Requisitos
36
-
37
- - Variáveis de ambiente
38
- - Dependências externas
39
- - Aprovação necessária ou bypass permitido
40
-
41
- ## Evidência e segurança
42
-
43
- - Como a capability produz evidência útil.
44
- - Limites e riscos.
45
- - Side effects possíveis e como são governados.
1
+ ---
2
+ oxe_capability: true
3
+ id: sample-capability
4
+ version: 1
5
+ type: script
6
+ status: active
7
+ scope: execute
8
+ requires_env: []
9
+ entrypoint: ""
10
+ approval_policy: require_approval_if_external_side_effect
11
+ side_effects: []
12
+ evidence_outputs: []
13
+ session_compatibility: [legacy, session]
14
+ ---
15
+
16
+ # OXE — Capability
17
+
18
+ ## Objetivo
19
+
20
+ - O que esta capability faz.
21
+
22
+ ## Escopo OXE
23
+
24
+ - `scan` | `ask` | `research` | `spec` | `plan` | `execute` | `verify`
25
+
26
+ ## Operações
27
+
28
+ - Operação 1
29
+
30
+ ## Entradas e saídas
31
+
32
+ - Entradas esperadas
33
+ - Saídas produzidas
34
+
35
+ ## Requisitos
36
+
37
+ - Variáveis de ambiente
38
+ - Dependências externas
39
+ - Aprovação necessária ou bypass permitido
40
+
41
+ ## Evidência e segurança
42
+
43
+ - Como a capability produz evidência útil.
44
+ - Limites e riscos.
45
+ - Side effects possíveis e como são governados.