@calliopelabs/cli 3.5.3 → 3.6.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 (327) hide show
  1. package/README.md +8 -0
  2. package/dist/acp.d.ts +10 -3
  3. package/dist/acp.d.ts.map +1 -1
  4. package/dist/acp.js +27 -7
  5. package/dist/acp.js.map +1 -1
  6. package/dist/bin.d.ts.map +1 -1
  7. package/dist/bin.js +28 -11
  8. package/dist/bin.js.map +1 -1
  9. package/dist/brain/access.d.ts.map +1 -1
  10. package/dist/brain/access.js +2 -1
  11. package/dist/brain/access.js.map +1 -1
  12. package/dist/config.d.ts +2 -2
  13. package/dist/config.d.ts.map +1 -1
  14. package/dist/config.js +7 -6
  15. package/dist/config.js.map +1 -1
  16. package/dist/execution/authority.d.ts +4 -1
  17. package/dist/execution/authority.d.ts.map +1 -1
  18. package/dist/execution/authority.js +23 -7
  19. package/dist/execution/authority.js.map +1 -1
  20. package/dist/execution/child-grants.d.ts +2 -0
  21. package/dist/execution/child-grants.d.ts.map +1 -1
  22. package/dist/execution/child-grants.js +19 -4
  23. package/dist/execution/child-grants.js.map +1 -1
  24. package/dist/execution/delegated.d.ts +14 -0
  25. package/dist/execution/delegated.d.ts.map +1 -0
  26. package/dist/execution/delegated.js +66 -0
  27. package/dist/execution/delegated.js.map +1 -0
  28. package/dist/execution/files.js +6 -6
  29. package/dist/execution/files.js.map +1 -1
  30. package/dist/execution/guard.d.ts +5 -0
  31. package/dist/execution/guard.d.ts.map +1 -1
  32. package/dist/execution/guard.js +31 -16
  33. package/dist/execution/guard.js.map +1 -1
  34. package/dist/execution/index.d.ts +4 -0
  35. package/dist/execution/index.d.ts.map +1 -1
  36. package/dist/execution/index.js +4 -0
  37. package/dist/execution/index.js.map +1 -1
  38. package/dist/execution/ledger-cli.d.ts +2 -1
  39. package/dist/execution/ledger-cli.d.ts.map +1 -1
  40. package/dist/execution/ledger-cli.js +51 -14
  41. package/dist/execution/ledger-cli.js.map +1 -1
  42. package/dist/execution/ledger-protocol.d.ts +6 -2
  43. package/dist/execution/ledger-protocol.d.ts.map +1 -1
  44. package/dist/execution/ledger-protocol.js +110 -24
  45. package/dist/execution/ledger-protocol.js.map +1 -1
  46. package/dist/execution/ledger-server.d.ts +13 -0
  47. package/dist/execution/ledger-server.d.ts.map +1 -1
  48. package/dist/execution/ledger-server.js +57 -13
  49. package/dist/execution/ledger-server.js.map +1 -1
  50. package/dist/execution/ledger-tunnel.d.ts +50 -0
  51. package/dist/execution/ledger-tunnel.d.ts.map +1 -0
  52. package/dist/execution/ledger-tunnel.js +307 -0
  53. package/dist/execution/ledger-tunnel.js.map +1 -0
  54. package/dist/execution/ledger.d.ts +4 -0
  55. package/dist/execution/ledger.d.ts.map +1 -1
  56. package/dist/execution/ledger.js +30 -4
  57. package/dist/execution/ledger.js.map +1 -1
  58. package/dist/execution/parent-accounting.d.ts +41 -0
  59. package/dist/execution/parent-accounting.d.ts.map +1 -0
  60. package/dist/execution/parent-accounting.js +52 -0
  61. package/dist/execution/parent-accounting.js.map +1 -0
  62. package/dist/execution/parent-budget.d.ts +25 -0
  63. package/dist/execution/parent-budget.d.ts.map +1 -0
  64. package/dist/execution/parent-budget.js +102 -0
  65. package/dist/execution/parent-budget.js.map +1 -0
  66. package/dist/execution/project-spend.d.ts.map +1 -1
  67. package/dist/execution/project-spend.js +35 -5
  68. package/dist/execution/project-spend.js.map +1 -1
  69. package/dist/execution/quote.js +1 -1
  70. package/dist/execution/quote.js.map +1 -1
  71. package/dist/execution/remote-checkpoint.d.ts +15 -0
  72. package/dist/execution/remote-checkpoint.d.ts.map +1 -0
  73. package/dist/execution/remote-checkpoint.js +165 -0
  74. package/dist/execution/remote-checkpoint.js.map +1 -0
  75. package/dist/execution/remote-ledger.d.ts +12 -2
  76. package/dist/execution/remote-ledger.d.ts.map +1 -1
  77. package/dist/execution/remote-ledger.js +53 -21
  78. package/dist/execution/remote-ledger.js.map +1 -1
  79. package/dist/execution/types.d.ts +23 -5
  80. package/dist/execution/types.d.ts.map +1 -1
  81. package/dist/execution/types.js.map +1 -1
  82. package/dist/goals/supervised.js +2 -2
  83. package/dist/goals/supervised.js.map +1 -1
  84. package/dist/headless.d.ts +2 -6
  85. package/dist/headless.d.ts.map +1 -1
  86. package/dist/headless.js +17 -21
  87. package/dist/headless.js.map +1 -1
  88. package/dist/health/target.js +1 -1
  89. package/dist/health/target.js.map +1 -1
  90. package/dist/improvement/actions.d.ts +3 -4
  91. package/dist/improvement/actions.d.ts.map +1 -1
  92. package/dist/improvement/actions.js +10 -7
  93. package/dist/improvement/actions.js.map +1 -1
  94. package/dist/improvement/capabilities.d.ts +54 -0
  95. package/dist/improvement/capabilities.d.ts.map +1 -0
  96. package/dist/improvement/capabilities.js +44 -0
  97. package/dist/improvement/capabilities.js.map +1 -0
  98. package/dist/improvement/cli.d.ts +1 -1
  99. package/dist/improvement/cli.d.ts.map +1 -1
  100. package/dist/improvement/cli.js +14 -2
  101. package/dist/improvement/cli.js.map +1 -1
  102. package/dist/improvement/index.d.ts +5 -0
  103. package/dist/improvement/index.d.ts.map +1 -1
  104. package/dist/improvement/index.js +5 -0
  105. package/dist/improvement/index.js.map +1 -1
  106. package/dist/improvement/proposal-hash.d.ts +3 -0
  107. package/dist/improvement/proposal-hash.d.ts.map +1 -0
  108. package/dist/improvement/proposal-hash.js +5 -0
  109. package/dist/improvement/proposal-hash.js.map +1 -0
  110. package/dist/improvement/review-contract.d.ts +32 -0
  111. package/dist/improvement/review-contract.d.ts.map +1 -0
  112. package/dist/improvement/review-contract.js +62 -0
  113. package/dist/improvement/review-contract.js.map +1 -0
  114. package/dist/improvement/review-requests.d.ts +72 -0
  115. package/dist/improvement/review-requests.d.ts.map +1 -0
  116. package/dist/improvement/review-requests.js +63 -0
  117. package/dist/improvement/review-requests.js.map +1 -0
  118. package/dist/improvement/source-changes.d.ts +78 -0
  119. package/dist/improvement/source-changes.d.ts.map +1 -0
  120. package/dist/improvement/source-changes.js +91 -0
  121. package/dist/improvement/source-changes.js.map +1 -0
  122. package/dist/improvement/task-outcomes.d.ts +82 -0
  123. package/dist/improvement/task-outcomes.d.ts.map +1 -0
  124. package/dist/improvement/task-outcomes.js +72 -0
  125. package/dist/improvement/task-outcomes.js.map +1 -0
  126. package/dist/index.d.ts +10 -0
  127. package/dist/index.d.ts.map +1 -1
  128. package/dist/index.js +6 -0
  129. package/dist/index.js.map +1 -1
  130. package/dist/isolation/contracts.d.ts +13 -0
  131. package/dist/isolation/contracts.d.ts.map +1 -1
  132. package/dist/isolation/contracts.js +9 -1
  133. package/dist/isolation/contracts.js.map +1 -1
  134. package/dist/isolation/coordinator.d.ts.map +1 -1
  135. package/dist/isolation/coordinator.js +4 -0
  136. package/dist/isolation/coordinator.js.map +1 -1
  137. package/dist/isolation/process.d.ts.map +1 -1
  138. package/dist/isolation/process.js +3 -1
  139. package/dist/isolation/process.js.map +1 -1
  140. package/dist/isolation/worktree.d.ts +9 -1
  141. package/dist/isolation/worktree.d.ts.map +1 -1
  142. package/dist/isolation/worktree.js +8 -3
  143. package/dist/isolation/worktree.js.map +1 -1
  144. package/dist/local-model.d.ts +4 -4
  145. package/dist/local-model.js +5 -5
  146. package/dist/local-model.js.map +1 -1
  147. package/dist/memory.d.ts +5 -3
  148. package/dist/memory.d.ts.map +1 -1
  149. package/dist/memory.js +8 -6
  150. package/dist/memory.js.map +1 -1
  151. package/dist/migration/assessment-contract.d.ts +60 -0
  152. package/dist/migration/assessment-contract.d.ts.map +1 -0
  153. package/dist/migration/assessment-contract.js +132 -0
  154. package/dist/migration/assessment-contract.js.map +1 -0
  155. package/dist/migration/assessment-schema.d.ts +19 -0
  156. package/dist/migration/assessment-schema.d.ts.map +1 -0
  157. package/dist/migration/assessment-schema.js +43 -0
  158. package/dist/migration/assessment-schema.js.map +1 -0
  159. package/dist/migration/assessment.d.ts +159 -0
  160. package/dist/migration/assessment.d.ts.map +1 -0
  161. package/dist/migration/assessment.js +219 -0
  162. package/dist/migration/assessment.js.map +1 -0
  163. package/dist/migration/cli.d.ts +6 -0
  164. package/dist/migration/cli.d.ts.map +1 -0
  165. package/dist/migration/cli.js +101 -0
  166. package/dist/migration/cli.js.map +1 -0
  167. package/dist/migration/evidence.d.ts +27 -0
  168. package/dist/migration/evidence.d.ts.map +1 -0
  169. package/dist/migration/evidence.js +124 -0
  170. package/dist/migration/evidence.js.map +1 -0
  171. package/dist/migration/example.d.ts +33 -0
  172. package/dist/migration/example.d.ts.map +1 -0
  173. package/dist/migration/example.js +28 -0
  174. package/dist/migration/example.js.map +1 -0
  175. package/dist/migration/index.d.ts +21 -0
  176. package/dist/migration/index.d.ts.map +1 -0
  177. package/dist/migration/index.js +15 -0
  178. package/dist/migration/index.js.map +1 -0
  179. package/dist/migration/inventory.d.ts +70 -0
  180. package/dist/migration/inventory.d.ts.map +1 -0
  181. package/dist/migration/inventory.js +233 -0
  182. package/dist/migration/inventory.js.map +1 -0
  183. package/dist/migration/schema.d.ts +61 -0
  184. package/dist/migration/schema.d.ts.map +1 -0
  185. package/dist/migration/schema.js +76 -0
  186. package/dist/migration/schema.js.map +1 -0
  187. package/dist/migration/verification.d.ts +146 -0
  188. package/dist/migration/verification.d.ts.map +1 -0
  189. package/dist/migration/verification.js +260 -0
  190. package/dist/migration/verification.js.map +1 -0
  191. package/dist/model-detection.d.ts.map +1 -1
  192. package/dist/model-detection.js +2 -39
  193. package/dist/model-detection.js.map +1 -1
  194. package/dist/orchestration/actions.d.ts +2 -0
  195. package/dist/orchestration/actions.d.ts.map +1 -1
  196. package/dist/orchestration/actions.js.map +1 -1
  197. package/dist/orchestration/artifact-host.d.ts +46 -0
  198. package/dist/orchestration/artifact-host.d.ts.map +1 -0
  199. package/dist/orchestration/artifact-host.js +64 -0
  200. package/dist/orchestration/artifact-host.js.map +1 -0
  201. package/dist/orchestration/coordinator-actions.d.ts +1 -1
  202. package/dist/orchestration/coordinator-actions.d.ts.map +1 -1
  203. package/dist/orchestration/coordinator-actions.js +5 -3
  204. package/dist/orchestration/coordinator-actions.js.map +1 -1
  205. package/dist/orchestration/coordinator-types.d.ts +23 -2
  206. package/dist/orchestration/coordinator-types.d.ts.map +1 -1
  207. package/dist/orchestration/coordinator.d.ts +5 -0
  208. package/dist/orchestration/coordinator.d.ts.map +1 -1
  209. package/dist/orchestration/coordinator.js +30 -13
  210. package/dist/orchestration/coordinator.js.map +1 -1
  211. package/dist/orchestration/execution-cli.d.ts +1 -1
  212. package/dist/orchestration/execution-cli.d.ts.map +1 -1
  213. package/dist/orchestration/execution-cli.js +29 -6
  214. package/dist/orchestration/execution-cli.js.map +1 -1
  215. package/dist/orchestration/execution-journal.d.ts.map +1 -1
  216. package/dist/orchestration/execution-journal.js +79 -6
  217. package/dist/orchestration/execution-journal.js.map +1 -1
  218. package/dist/orchestration/execution-store.d.ts +5 -1
  219. package/dist/orchestration/execution-store.d.ts.map +1 -1
  220. package/dist/orchestration/execution-store.js +66 -5
  221. package/dist/orchestration/execution-store.js.map +1 -1
  222. package/dist/orchestration/execution.d.ts.map +1 -1
  223. package/dist/orchestration/execution.js +37 -10
  224. package/dist/orchestration/execution.js.map +1 -1
  225. package/dist/orchestration/index.d.ts +6 -0
  226. package/dist/orchestration/index.d.ts.map +1 -1
  227. package/dist/orchestration/index.js +6 -0
  228. package/dist/orchestration/index.js.map +1 -1
  229. package/dist/orchestration/interruption.d.ts +10 -0
  230. package/dist/orchestration/interruption.d.ts.map +1 -0
  231. package/dist/orchestration/interruption.js +38 -0
  232. package/dist/orchestration/interruption.js.map +1 -0
  233. package/dist/orchestration/question-contract.d.ts +19 -0
  234. package/dist/orchestration/question-contract.d.ts.map +1 -0
  235. package/dist/orchestration/question-contract.js +21 -0
  236. package/dist/orchestration/question-contract.js.map +1 -0
  237. package/dist/orchestration/questions.d.ts +9 -0
  238. package/dist/orchestration/questions.d.ts.map +1 -0
  239. package/dist/orchestration/questions.js +75 -0
  240. package/dist/orchestration/questions.js.map +1 -0
  241. package/dist/orchestration/reviewed-ledger.d.ts +23 -0
  242. package/dist/orchestration/reviewed-ledger.d.ts.map +1 -0
  243. package/dist/orchestration/reviewed-ledger.js +49 -0
  244. package/dist/orchestration/reviewed-ledger.js.map +1 -0
  245. package/dist/orchestration/source-candidates.d.ts +64 -0
  246. package/dist/orchestration/source-candidates.d.ts.map +1 -0
  247. package/dist/orchestration/source-candidates.js +95 -0
  248. package/dist/orchestration/source-candidates.js.map +1 -0
  249. package/dist/orchestration/validation.js +1 -1
  250. package/dist/orchestration/validation.js.map +1 -1
  251. package/dist/providers/compat.d.ts +1 -1
  252. package/dist/providers/compat.d.ts.map +1 -1
  253. package/dist/providers/compat.js +4 -8
  254. package/dist/providers/compat.js.map +1 -1
  255. package/dist/providers/index.d.ts.map +1 -1
  256. package/dist/providers/index.js +6 -7
  257. package/dist/providers/index.js.map +1 -1
  258. package/dist/runlog.js +2 -2
  259. package/dist/runlog.js.map +1 -1
  260. package/dist/runtime/permissions.d.ts.map +1 -1
  261. package/dist/runtime/permissions.js +3 -2
  262. package/dist/runtime/permissions.js.map +1 -1
  263. package/dist/runtime/turn.d.ts +2 -0
  264. package/dist/runtime/turn.d.ts.map +1 -1
  265. package/dist/runtime/turn.js +21 -7
  266. package/dist/runtime/turn.js.map +1 -1
  267. package/dist/session-management/actions.js +1 -1
  268. package/dist/session-management/actions.js.map +1 -1
  269. package/dist/sessions/execution-binding.d.ts +8 -0
  270. package/dist/sessions/execution-binding.d.ts.map +1 -0
  271. package/dist/sessions/execution-binding.js +9 -0
  272. package/dist/sessions/execution-binding.js.map +1 -0
  273. package/dist/sessions/index.d.ts +1 -0
  274. package/dist/sessions/index.d.ts.map +1 -1
  275. package/dist/sessions/index.js +1 -0
  276. package/dist/sessions/index.js.map +1 -1
  277. package/dist/setup.d.ts.map +1 -1
  278. package/dist/setup.js +1 -26
  279. package/dist/setup.js.map +1 -1
  280. package/dist/source-changes/writer.d.ts +77 -0
  281. package/dist/source-changes/writer.d.ts.map +1 -0
  282. package/dist/source-changes/writer.js +189 -0
  283. package/dist/source-changes/writer.js.map +1 -0
  284. package/dist/spawning/actions.d.ts +10 -1
  285. package/dist/spawning/actions.d.ts.map +1 -1
  286. package/dist/spawning/actions.js +26 -7
  287. package/dist/spawning/actions.js.map +1 -1
  288. package/dist/spawning/cli.js +1 -1
  289. package/dist/spawning/cli.js.map +1 -1
  290. package/dist/spawning/execution.d.ts.map +1 -1
  291. package/dist/spawning/execution.js +2 -0
  292. package/dist/spawning/execution.js.map +1 -1
  293. package/dist/spawning/types.d.ts +19 -6
  294. package/dist/spawning/types.d.ts.map +1 -1
  295. package/dist/spawning/validation.d.ts +16 -0
  296. package/dist/spawning/validation.d.ts.map +1 -1
  297. package/dist/spawning/validation.js +44 -8
  298. package/dist/spawning/validation.js.map +1 -1
  299. package/dist/storage.d.ts +3 -0
  300. package/dist/storage.d.ts.map +1 -1
  301. package/dist/storage.js +6 -1
  302. package/dist/storage.js.map +1 -1
  303. package/dist/supervision/contracts.js +4 -1
  304. package/dist/supervision/contracts.js.map +1 -1
  305. package/dist/tools.d.ts +1 -0
  306. package/dist/tools.d.ts.map +1 -1
  307. package/dist/tools.js +7 -2
  308. package/dist/tools.js.map +1 -1
  309. package/dist/types.d.ts +1 -1
  310. package/dist/types.d.ts.map +1 -1
  311. package/dist/types.js +0 -1
  312. package/dist/types.js.map +1 -1
  313. package/dist/ui/regions/modal-host.d.ts.map +1 -1
  314. package/dist/ui/regions/modal-host.js +1 -3
  315. package/dist/ui/regions/modal-host.js.map +1 -1
  316. package/dist/ui/state/use-chat-controller.js +2 -2
  317. package/dist/ui/state/use-chat-controller.js.map +1 -1
  318. package/docs/README.md +66 -0
  319. package/docs/delegation-ledger.md +329 -0
  320. package/docs/migration-assessment.md +113 -0
  321. package/docs/migration-example-plan.json +88 -0
  322. package/docs/migration-example-report.json +511 -0
  323. package/docs/migration-inventory.md +63 -0
  324. package/docs/migration-playbook.md +152 -0
  325. package/docs/migration-verification.md +177 -0
  326. package/docs/releases/3.6.0.md +43 -0
  327. package/package.json +7 -2
@@ -0,0 +1,62 @@
1
+ import { hex, shape, text, uuid, fail } from '../orchestration/validation.js';
2
+ import { OrchestrationError } from '../orchestration/types.js';
3
+ import { projectImprovementHistory } from './projection.js';
4
+ import { improvementProposalHash } from './proposal-hash.js';
5
+ export function validateImprovementReviewRequest(value) {
6
+ shape(value, ['version', 'action', 'executionRevision', 'cycleId', 'proposalHash', 'reason']);
7
+ if (value.version !== 1 || !['propose', 'run', 'rollback'].includes(String(value.action)) || !hex(value.executionRevision))
8
+ fail('Invalid improvement review request.');
9
+ text(value.reason, 1024);
10
+ if (/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]/.test(value.reason))
11
+ fail('Invalid review request text.');
12
+ if (value.action === 'propose' ? value.cycleId !== null || value.proposalHash !== null : !uuid(value.cycleId) || !hex(value.proposalHash))
13
+ fail('Review request requires an exact proposal identity.');
14
+ }
15
+ export function validateImprovementReviewEvent(event, manifest, header, state, prior) {
16
+ const c = event.change;
17
+ function conflict(message) { throw new OrchestrationError('conflict', message); }
18
+ if (state.ownerId || !state.supervision)
19
+ conflict('Improvement review requests require an inactive supervised run.');
20
+ if (c.type === 'improvement_review_dismissed') {
21
+ const last = prior.at(-1);
22
+ if (c.executionRevision !== state.revision || last?.id !== c.requestId || last.change.type !== 'improvement_review_requested')
23
+ conflict('Review request is no longer pending.');
24
+ return;
25
+ }
26
+ if (c.type !== 'improvement_review_requested')
27
+ fail('Invalid improvement review event.');
28
+ const request = c.request;
29
+ if (request.executionRevision !== state.revision || event.previous !== state.revision)
30
+ conflict('Review request revision changed.');
31
+ if (prior.at(-1)?.change.type === 'improvement_review_requested')
32
+ conflict('Resolve the pending review request before requesting another.');
33
+ if (prior.filter(e => e.change.type === 'improvement_review_requested').length >= 64)
34
+ conflict('Review request retention reached; preserve the run.');
35
+ const context = { ...manifest, plan: state.graph?.plan ?? manifest.plan };
36
+ const history = projectImprovementHistory(manifest, { header, events: prior, state }, context);
37
+ if (request.action === 'propose') {
38
+ if (Date.parse(event.at) >= state.deadline || state.status === 'completed' || state.supervision.review || state.supervision.rounds >= context.plan.supervision.maxRounds || !prior.some(e => e.change.type === 'task_finished'))
39
+ conflict('A new improvement proposal is unavailable.');
40
+ }
41
+ else {
42
+ const cycle = history.cycles.find(c => c.id === request.cycleId);
43
+ if (!cycle || cycle.withdrawal || improvementProposalHash(cycle) !== request.proposalHash)
44
+ conflict('Improvement proposal identity changed or was withdrawn.');
45
+ if (request.action === 'run' && (Date.parse(event.at) >= state.deadline || cycle.status !== 'proposed' || state.supervision.decisionId !== cycle.id))
46
+ conflict('Select the current unapplied improvement.');
47
+ if (request.action === 'rollback' && state.supervision.decisionId && state.supervision.decisionId !== cycle.id)
48
+ conflict('Resolve the current decision before requesting withdrawal.');
49
+ }
50
+ }
51
+ export function projectImprovementReviews(execution, now = Date.now()) {
52
+ return { version: 1, kind: 'improvement.review-requests', runId: execution.state.runId, executionRevision: execution.state.revision,
53
+ requests: execution.events.flatMap(event => {
54
+ if (event.change.type !== 'improvement_review_requested')
55
+ return [];
56
+ const dismissed = execution.events.find(e => e.change.type === 'improvement_review_dismissed' && e.change.requestId === event.id);
57
+ const status = dismissed ? 'dismissed' : event.hash !== execution.state.revision ? 'stale' : event.change.request.action !== 'rollback' && now >= execution.state.deadline ? 'expired' : 'pending';
58
+ return [{ id: event.id, hash: event.hash, at: event.at, request: structuredClone(event.change.request), status,
59
+ dismissal: dismissed ? { id: dismissed.id, hash: dismissed.hash, at: dismissed.at } : null }];
60
+ }) };
61
+ }
62
+ //# sourceMappingURL=review-contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-contract.js","sourceRoot":"","sources":["../../src/improvement/review-contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAC,kBAAkB,EAAkB,MAAM,2BAA2B,CAAC;AAE9E,OAAO,EAAC,yBAAyB,EAAC,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAC,uBAAuB,EAAC,MAAM,oBAAoB,CAAC;AAO3D,MAAM,UAAU,gCAAgC,CAAC,KAAa;IAC5D,KAAK,CAAC,KAAK,EAAC,CAAC,SAAS,EAAC,QAAQ,EAAC,mBAAmB,EAAC,SAAS,EAAC,cAAc,EAAC,QAAQ,CAAC,CAAC,CAAC;IACxF,IAAG,KAAK,CAAC,OAAO,KAAG,CAAC,IAAE,CAAC,CAAC,SAAS,EAAC,KAAK,EAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAE,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC;QAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;IAC9J,IAAI,CAAC,KAAK,CAAC,MAAM,EAAC,IAAI,CAAC,CAAC;IACxB,IAAG,kCAAkC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC9F,IAAG,KAAK,CAAC,MAAM,KAAG,SAAS,CAAA,CAAC,CAAA,KAAK,CAAC,OAAO,KAAG,IAAI,IAAE,KAAK,CAAC,YAAY,KAAG,IAAI,CAAA,CAAC,CAAA,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAE,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC;QAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;AACzL,CAAC;AACD,MAAM,UAAU,8BAA8B,CAAC,KAAoB,EAAC,QAAoB,EAAC,MAAsB,EAAC,KAAyB,EAAC,KAAsB;IAC9J,MAAM,CAAC,GAAC,KAAK,CAAC,MAAM,CAAC;IACrB,SAAS,QAAQ,CAAC,OAAc,IAAS,MAAM,IAAI,kBAAkB,CAAC,UAAU,EAAC,OAAO,CAAC,CAAC,CAAA,CAAC;IAC3F,IAAG,KAAK,CAAC,OAAO,IAAE,CAAC,KAAK,CAAC,WAAW;QAAC,QAAQ,CAAC,iEAAiE,CAAC,CAAC;IACjH,IAAG,CAAC,CAAC,IAAI,KAAG,8BAA8B,EAAC,CAAC;QAC1C,MAAM,IAAI,GAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACxB,IAAG,CAAC,CAAC,iBAAiB,KAAG,KAAK,CAAC,QAAQ,IAAE,IAAI,EAAE,EAAE,KAAG,CAAC,CAAC,SAAS,IAAE,IAAI,CAAC,MAAM,CAAC,IAAI,KAAG,8BAA8B;YAAC,QAAQ,CAAC,sCAAsC,CAAC,CAAC;QACpK,OAAO;IACT,CAAC;IACD,IAAG,CAAC,CAAC,IAAI,KAAG,8BAA8B;QAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IACrF,MAAM,OAAO,GAAC,CAAC,CAAC,OAAO,CAAC;IACxB,IAAG,OAAO,CAAC,iBAAiB,KAAG,KAAK,CAAC,QAAQ,IAAE,KAAK,CAAC,QAAQ,KAAG,KAAK,CAAC,QAAQ;QAAC,QAAQ,CAAC,kCAAkC,CAAC,CAAC;IAC5H,IAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,KAAG,8BAA8B;QAAC,QAAQ,CAAC,+DAA+D,CAAC,CAAC;IACxI,IAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,MAAM,CAAC,IAAI,KAAG,8BAA8B,CAAC,CAAC,MAAM,IAAE,EAAE;QAAC,QAAQ,CAAC,qDAAqD,CAAC,CAAC;IAC9I,MAAM,OAAO,GAAC,EAAC,GAAG,QAAQ,EAAC,IAAI,EAAC,KAAK,CAAC,KAAK,EAAE,IAAI,IAAE,QAAQ,CAAC,IAAI,EAAC,CAAC;IAClE,MAAM,OAAO,GAAC,yBAAyB,CAAC,QAAQ,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,OAAO,CAAC,CAAC;IACtF,IAAG,OAAO,CAAC,MAAM,KAAG,SAAS,EAAC,CAAC;QAC7B,IAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAE,KAAK,CAAC,QAAQ,IAAE,KAAK,CAAC,MAAM,KAAG,WAAW,IAAE,KAAK,CAAC,WAAY,CAAC,MAAM,IAAE,KAAK,CAAC,WAAY,CAAC,MAAM,IAAE,OAAO,CAAC,IAAI,CAAC,WAAY,CAAC,SAAS,IAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,MAAM,CAAC,IAAI,KAAG,eAAe,CAAC;YAAC,QAAQ,CAAC,4CAA4C,CAAC,CAAC;IACzQ,CAAC;SAAI,CAAC;QACJ,MAAM,KAAK,GAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,EAAE,KAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAC3D,IAAG,CAAC,KAAK,IAAE,KAAK,CAAC,UAAU,IAAE,uBAAuB,CAAC,KAAK,CAAC,KAAG,OAAO,CAAC,YAAY;YAAC,QAAQ,CAAC,yDAAyD,CAAC,CAAC;QACvJ,IAAG,OAAO,CAAC,MAAM,KAAG,KAAK,IAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAE,KAAK,CAAC,QAAQ,IAAE,KAAK,CAAC,MAAM,KAAG,UAAU,IAAE,KAAK,CAAC,WAAY,CAAC,UAAU,KAAG,KAAK,CAAC,EAAE,CAAC;YAAC,QAAQ,CAAC,2CAA2C,CAAC,CAAC;QAC7L,IAAG,OAAO,CAAC,MAAM,KAAG,UAAU,IAAE,KAAK,CAAC,WAAY,CAAC,UAAU,IAAE,KAAK,CAAC,WAAY,CAAC,UAAU,KAAG,KAAK,CAAC,EAAE;YAAC,QAAQ,CAAC,4DAA4D,CAAC,CAAC;IACjL,CAAC;AACH,CAAC;AACD,MAAM,UAAU,yBAAyB,CAAC,SAA6B,EAAC,GAAG,GAAC,IAAI,CAAC,GAAG,EAAE;IACpF,OAAO,EAAC,OAAO,EAAC,CAAU,EAAC,IAAI,EAAC,6BAAsC,EAAC,KAAK,EAAC,SAAS,CAAC,KAAK,CAAC,KAAK,EAAC,iBAAiB,EAAC,SAAS,CAAC,KAAK,CAAC,QAAQ;QAC3I,QAAQ,EAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAA,EAAE;YACvC,IAAG,KAAK,CAAC,MAAM,CAAC,IAAI,KAAG,8BAA8B;gBAAC,OAAM,EAAE,CAAC;YAC/D,MAAM,SAAS,GAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,MAAM,CAAC,IAAI,KAAG,8BAA8B,IAAE,CAAC,CAAC,MAAM,CAAC,SAAS,KAAG,KAAK,CAAC,EAAE,CAAC,CAAC;YACxH,MAAM,MAAM,GAAC,SAAS,CAAA,CAAC,CAAA,WAAW,CAAA,CAAC,CAAA,KAAK,CAAC,IAAI,KAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAA,CAAC,CAAA,OAAO,CAAA,CAAC,CAAA,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,KAAG,UAAU,IAAE,GAAG,IAAE,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAA,CAAC,CAAA,SAAS,CAAA,CAAC,CAAA,SAAS,CAAC;YAC7K,OAAM,CAAC,EAAC,EAAE,EAAC,KAAK,CAAC,EAAE,EAAC,IAAI,EAAC,KAAK,CAAC,IAAI,EAAC,EAAE,EAAC,KAAK,CAAC,EAAE,EAAC,OAAO,EAAC,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAC,MAAM;oBAClG,SAAS,EAAC,SAAS,CAAA,CAAC,CAAA,EAAC,EAAE,EAAC,SAAS,CAAC,EAAE,EAAC,IAAI,EAAC,SAAS,CAAC,IAAI,EAAC,EAAE,EAAC,SAAS,CAAC,EAAE,EAAC,CAAA,CAAC,CAAA,IAAI,EAAC,CAAC,CAAC;QACrF,CAAC,CAAC,EAAC,CAAC;AACR,CAAC"}
@@ -0,0 +1,72 @@
1
+ import type { CoordinatorOptions } from '../orchestration/coordinator.js';
2
+ import { type ImprovementReviewRequest } from './review-contract.js';
3
+ /** Separately negotiated metadata API; not an extension of the execution capability contract. */
4
+ export declare function improvementReviewCapabilities(): {
5
+ readonly version: 1;
6
+ readonly kind: 'improvement.review-capabilities';
7
+ readonly owner: 'calliope-cli';
8
+ readonly operations: readonly ['request', 'inspect', 'dismiss'];
9
+ readonly actions: readonly ['propose', 'run', 'rollback'];
10
+ readonly authority: 'request-only-no-execution';
11
+ readonly storage: 'native-execution-journal';
12
+ readonly maxRequests: 64;
13
+ };
14
+ export declare function inspectImprovementReviews(cwd: string, runId: string | undefined, options?: CoordinatorOptions): Promise<{
15
+ version: 1;
16
+ kind: 'improvement.review-requests';
17
+ runId: string;
18
+ executionRevision: string;
19
+ requests: {
20
+ id: string;
21
+ hash: string;
22
+ at: string;
23
+ request: ImprovementReviewRequest;
24
+ status: string;
25
+ dismissal: {
26
+ id: string;
27
+ hash: string;
28
+ at: string;
29
+ } | null;
30
+ }[];
31
+ }>;
32
+ export declare function requestImprovementReview(cwd: string, runId: string | undefined, request: ImprovementReviewRequest, options?: CoordinatorOptions): Promise<{
33
+ requestId: string;
34
+ existing: boolean;
35
+ reviews: {
36
+ version: 1;
37
+ kind: 'improvement.review-requests';
38
+ runId: string;
39
+ executionRevision: string;
40
+ requests: {
41
+ id: string;
42
+ hash: string;
43
+ at: string;
44
+ request: ImprovementReviewRequest;
45
+ status: string;
46
+ dismissal: {
47
+ id: string;
48
+ hash: string;
49
+ at: string;
50
+ } | null;
51
+ }[];
52
+ };
53
+ }>;
54
+ export declare function dismissImprovementReview(cwd: string, runId: string | undefined, requestId: string, executionRevision: string, options?: CoordinatorOptions): Promise<{
55
+ version: 1;
56
+ kind: 'improvement.review-requests';
57
+ runId: string;
58
+ executionRevision: string;
59
+ requests: {
60
+ id: string;
61
+ hash: string;
62
+ at: string;
63
+ request: ImprovementReviewRequest;
64
+ status: string;
65
+ dismissal: {
66
+ id: string;
67
+ hash: string;
68
+ at: string;
69
+ } | null;
70
+ }[];
71
+ }>;
72
+ //# sourceMappingURL=review-requests.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-requests.d.ts","sourceRoot":"","sources":["../../src/improvement/review-requests.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,iCAAiC,CAAC;AAExE,OAAO,EAA4D,KAAK,wBAAwB,EAAC,MAAM,sBAAsB,CAAC;AAE9H,iGAAiG;AACjG,wBAAgB,6BAA6B;aACnC,OAAO,EAAC,CAAC;aAAC,IAAI,EAAC,iCAAiC;aAAC,KAAK,EAAC,cAAc;aAAC,UAAU,YAAE,SAAS,EAAC,SAAS,EAAC,SAAS;aACrH,OAAO,YAAE,SAAS,EAAC,KAAK,EAAC,UAAU;aAAE,SAAS,EAAC,2BAA2B;aAAC,OAAO,EAAC,0BAA0B;aAAC,WAAW,EAAC,EAAE;EAC/H;AACD,wBAAsB,yBAAyB,CAAC,GAAG,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,GAAC,SAAS,EAAC,OAAO,GAAC,kBAAqB;;;;;;;;;;;;;;;;;GAG9G;AACD,wBAAsB,wBAAwB,CAAC,GAAG,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,GAAC,SAAS,EAAC,OAAO,EAAC,wBAAwB,EAAC,OAAO,GAAC,kBAAqB;;;;;;;;;;;;;;;;;;;;;GAiB9I;AACD,wBAAsB,wBAAwB,CAAC,GAAG,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,GAAC,SAAS,EAAC,SAAS,EAAC,MAAM,EAAC,iBAAiB,EAAC,MAAM,EAAC,OAAO,GAAC,kBAAqB;;;;;;;;;;;;;;;;;GAavJ"}
@@ -0,0 +1,63 @@
1
+ import { canonicalJson } from '../approvals/index.js';
2
+ import { authorizeSessionAction } from '../session-management/index.js';
3
+ import { OrchestrationError } from '../orchestration/types.js';
4
+ import { uuid, hex } from '../orchestration/validation.js';
5
+ import { inspectImprovements } from './actions.js';
6
+ import { projectImprovementReviews, validateImprovementReviewRequest } from './review-contract.js';
7
+ /** Separately negotiated metadata API; not an extension of the execution capability contract. */
8
+ export function improvementReviewCapabilities() {
9
+ return { version: 1, kind: 'improvement.review-capabilities', owner: 'calliope-cli', operations: ['request', 'inspect', 'dismiss'],
10
+ actions: ['propose', 'run', 'rollback'], authority: 'request-only-no-execution', storage: 'native-execution-journal', maxRequests: 64 };
11
+ }
12
+ export async function inspectImprovementReviews(cwd, runId, options = {}) {
13
+ const current = await inspectImprovements(cwd, runId, options);
14
+ return projectImprovementReviews(current.execution);
15
+ }
16
+ export async function requestImprovementReview(cwd, runId, request, options = {}) {
17
+ validateImprovementReviewRequest(request);
18
+ request = structuredClone(request);
19
+ const current = await inspectImprovements(cwd, runId, options), store = current.store;
20
+ if (current.owner?.alive || current.execution.state.ownerId)
21
+ throw new OrchestrationError('conflict', 'Stop or recover the active coordinator before requesting review.');
22
+ const duplicate = () => { const last = store.read().events.at(-1); return last?.change.type === 'improvement_review_requested' && canonicalJson(last.change.request) === canonicalJson(request) ? last : null; };
23
+ if (!duplicate())
24
+ store.assertRevision(request.executionRevision);
25
+ await authorizeSessionAction(cwd, 'orchestration_improvement_review_request', { path: cwd, runId: current.view.run.id, request, scope: 'record untrusted review request only; no model calls or execution authority' }, { ...options, confirmation: options.confirmation ?? 'mutating' });
26
+ const lease = store.acquire();
27
+ try {
28
+ lease.check();
29
+ const prior = store.read();
30
+ store.assertApproval(prior.header);
31
+ if (prior.state.ownerId)
32
+ throw new OrchestrationError('conflict', 'Execution became active during review request.');
33
+ const existing = duplicate();
34
+ if (existing)
35
+ return { requestId: existing.id, existing: true, reviews: projectImprovementReviews(prior) };
36
+ store.assertRevision(request.executionRevision);
37
+ const event = await store.append({ type: 'improvement_review_requested', request }, options.signal, undefined, () => { lease.check(); store.assertApproval(prior.header); store.assertRevision(request.executionRevision); });
38
+ return { requestId: event.id, existing: false, reviews: projectImprovementReviews(store.read()) };
39
+ }
40
+ finally {
41
+ lease.release();
42
+ }
43
+ }
44
+ export async function dismissImprovementReview(cwd, runId, requestId, executionRevision, options = {}) {
45
+ if (!uuid(requestId) || !hex(executionRevision))
46
+ throw new OrchestrationError('invalid', 'Review dismissal requires its exact request and revision.');
47
+ const current = await inspectImprovements(cwd, runId, options), store = current.store;
48
+ store.assertRevision(executionRevision);
49
+ const last = current.execution.events.at(-1);
50
+ if (current.owner?.alive || current.execution.state.ownerId || last?.id !== requestId || last.change.type !== 'improvement_review_requested')
51
+ throw new OrchestrationError('conflict', 'Review request is no longer pending.');
52
+ await authorizeSessionAction(cwd, 'orchestration_improvement_review_dismiss', { path: cwd, runId: current.view.run.id, requestId, executionRevision, scope: 'dismiss request only; retain the strategy and execution evidence' }, { ...options, confirmation: options.confirmation ?? 'mutating' });
53
+ const lease = store.acquire();
54
+ try {
55
+ const before = current.execution;
56
+ await store.append({ type: 'improvement_review_dismissed', requestId, executionRevision }, options.signal, undefined, () => { lease.check(); store.assertApproval(before.header); store.assertRevision(executionRevision); });
57
+ return projectImprovementReviews(store.read());
58
+ }
59
+ finally {
60
+ lease.release();
61
+ }
62
+ }
63
+ //# sourceMappingURL=review-requests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-requests.js","sourceRoot":"","sources":["../../src/improvement/review-requests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAC,sBAAsB,EAAC,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAC,kBAAkB,EAAC,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAC,IAAI,EAAC,GAAG,EAAC,MAAM,gCAAgC,CAAC;AAExD,OAAO,EAAC,mBAAmB,EAAC,MAAM,cAAc,CAAC;AACjD,OAAO,EAAC,yBAAyB,EAAC,gCAAgC,EAA+B,MAAM,sBAAsB,CAAC;AAE9H,iGAAiG;AACjG,MAAM,UAAU,6BAA6B;IAC3C,OAAO,EAAC,OAAO,EAAC,CAAC,EAAC,IAAI,EAAC,iCAAiC,EAAC,KAAK,EAAC,cAAc,EAAC,UAAU,EAAC,CAAC,SAAS,EAAC,SAAS,EAAC,SAAS,CAAC;QACtH,OAAO,EAAC,CAAC,SAAS,EAAC,KAAK,EAAC,UAAU,CAAC,EAAC,SAAS,EAAC,2BAA2B,EAAC,OAAO,EAAC,0BAA0B,EAAC,WAAW,EAAC,EAAE,EAAU,CAAC;AAC3I,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,GAAU,EAAC,KAAsB,EAAC,OAAO,GAAoB,EAAE;IAC7G,MAAM,OAAO,GAAC,MAAM,mBAAmB,CAAC,GAAG,EAAC,KAAK,EAAC,OAAO,CAAC,CAAC;IAC3D,OAAO,yBAAyB,CAAC,OAAO,CAAC,SAAU,CAAC,CAAC;AACvD,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,GAAU,EAAC,KAAsB,EAAC,OAAgC,EAAC,OAAO,GAAoB,EAAE;IAC7I,gCAAgC,CAAC,OAAO,CAAC,CAAC;IAAA,OAAO,GAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IAC3E,MAAM,OAAO,GAAC,MAAM,mBAAmB,CAAC,GAAG,EAAC,KAAK,EAAC,OAAO,CAAC,EAAC,KAAK,GAAC,OAAO,CAAC,KAAK,CAAC;IAC/E,IAAG,OAAO,CAAC,KAAK,EAAE,KAAK,IAAE,OAAO,CAAC,SAAU,CAAC,KAAK,CAAC,OAAO;QAAC,MAAM,IAAI,kBAAkB,CAAC,UAAU,EAAC,kEAAkE,CAAC,CAAC;IACtK,MAAM,SAAS,GAAC,GAAE,EAAE,GAAC,MAAM,IAAI,GAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,OAAO,IAAI,EAAE,MAAM,CAAC,IAAI,KAAG,8BAA8B,IAAE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAG,aAAa,CAAC,OAAO,CAAC,CAAA,CAAC,CAAA,IAAI,CAAA,CAAC,CAAA,IAAI,CAAC,CAAA,CAAC,CAAC;IAC9L,IAAG,CAAC,SAAS,EAAE;QAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAChE,MAAM,sBAAsB,CAAC,GAAG,EAAC,0CAA0C,EAAC,EAAC,IAAI,EAAC,GAAG,EAAC,KAAK,EAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAC,OAAO,EAAC,KAAK,EAAC,6EAA6E,EAAC,EAAC,EAAC,GAAG,OAAO,EAAC,YAAY,EAAC,OAAO,CAAC,YAAY,IAAE,UAAU,EAAC,CAAC,CAAC;IACzQ,MAAM,KAAK,GAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IAC5B,IAAG,CAAC;QACF,KAAK,CAAC,KAAK,EAAE,CAAC;QAAA,MAAM,KAAK,GAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAAA,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1E,IAAG,KAAK,CAAC,KAAK,CAAC,OAAO;YAAC,MAAM,IAAI,kBAAkB,CAAC,UAAU,EAAC,gDAAgD,CAAC,CAAC;QACjH,MAAM,QAAQ,GAAC,SAAS,EAAE,CAAC;QAC3B,IAAG,QAAQ;YAAC,OAAM,EAAC,SAAS,EAAC,QAAQ,CAAC,EAAE,EAAC,QAAQ,EAAC,IAAI,EAAC,OAAO,EAAC,yBAAyB,CAAC,KAAK,CAAC,EAAC,CAAC;QACjG,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAChD,MAAM,KAAK,GAAC,MAAM,KAAK,CAAC,MAAM,CAAC,EAAC,IAAI,EAAC,8BAA8B,EAAC,OAAO,EAAC,EAAC,OAAO,CAAC,MAAM,EAAC,SAAS,EAAC,GAAE,EAAE,GAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAA,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC;QAC/M,OAAM,EAAC,SAAS,EAAC,KAAK,CAAC,EAAE,EAAC,QAAQ,EAAC,KAAK,EAAC,OAAO,EAAC,yBAAyB,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAC,CAAC;IAC5F,CAAC;YAAO,CAAC;QAAA,KAAK,CAAC,OAAO,EAAE,CAAC;IAAA,CAAC;AAC5B,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,GAAU,EAAC,KAAsB,EAAC,SAAgB,EAAC,iBAAwB,EAAC,OAAO,GAAoB,EAAE;IACtJ,IAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAE,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAAC,MAAM,IAAI,kBAAkB,CAAC,SAAS,EAAC,2DAA2D,CAAC,CAAC;IACjJ,MAAM,OAAO,GAAC,MAAM,mBAAmB,CAAC,GAAG,EAAC,KAAK,EAAC,OAAO,CAAC,EAAC,KAAK,GAAC,OAAO,CAAC,KAAK,CAAC;IAC/E,KAAK,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;IACxC,MAAM,IAAI,GAAC,OAAO,CAAC,SAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,IAAG,OAAO,CAAC,KAAK,EAAE,KAAK,IAAE,OAAO,CAAC,SAAU,CAAC,KAAK,CAAC,OAAO,IAAE,IAAI,EAAE,EAAE,KAAG,SAAS,IAAE,IAAI,CAAC,MAAM,CAAC,IAAI,KAAG,8BAA8B;QAAC,MAAM,IAAI,kBAAkB,CAAC,UAAU,EAAC,sCAAsC,CAAC,CAAC;IACnN,MAAM,sBAAsB,CAAC,GAAG,EAAC,0CAA0C,EAAC,EAAC,IAAI,EAAC,GAAG,EAAC,KAAK,EAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAC,SAAS,EAAC,iBAAiB,EAAC,KAAK,EAAC,kEAAkE,EAAC,EAAC,EAAC,GAAG,OAAO,EAAC,YAAY,EAAC,OAAO,CAAC,YAAY,IAAE,UAAU,EAAC,CAAC,CAAC;IAClR,MAAM,KAAK,GAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IAC5B,IAAG,CAAC;QACF,MAAM,MAAM,GAAC,OAAO,CAAC,SAAU,CAAC;QAChC,MAAM,KAAK,CAAC,MAAM,CAAC,EAAC,IAAI,EAAC,8BAA8B,EAAC,SAAS,EAAC,iBAAiB,EAAC,EAAC,OAAO,CAAC,MAAM,EAAC,SAAS,EAAC,GAAE,EAAE,GAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAA,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA,KAAK,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC;QAChN,OAAO,yBAAyB,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;YAAO,CAAC;QAAA,KAAK,CAAC,OAAO,EAAE,CAAC;IAAA,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,78 @@
1
+ import type { RunActionOptions } from '../orchestration/actions.js';
2
+ export interface SourceChangeSelection {
3
+ runId: string;
4
+ cycleId: string;
5
+ executionRevision: string;
6
+ proposalHash: string;
7
+ taskId: string;
8
+ artifactId: string;
9
+ artifactHash: string;
10
+ }
11
+ export interface SourceChangeReview {
12
+ version: 1;
13
+ kind: 'source-change-review';
14
+ writer: 'git';
15
+ project: {
16
+ root: string;
17
+ key: string;
18
+ };
19
+ source: SourceChangeSelection;
20
+ manifestHash: string;
21
+ sourceHash: string;
22
+ baseCommit: string;
23
+ author: {
24
+ name: string;
25
+ email: string;
26
+ };
27
+ paths: string[];
28
+ patchBytes: number;
29
+ }
30
+ export declare function sourceChangeCapabilities(): {
31
+ readonly version: 1;
32
+ readonly owner: 'calliope-cli';
33
+ readonly writer: 'git';
34
+ readonly operations: readonly ['preview', 'propose', 'inspect', 'list'];
35
+ readonly semantics: 'verified-patch-to-local-review-branch';
36
+ readonly installation: false;
37
+ readonly merge: false;
38
+ readonly push: false;
39
+ readonly mayCallModel: false;
40
+ };
41
+ /** Preview reads verified evidence and Git metadata; it creates no Git object or ref. */
42
+ export declare function previewSourceChange(cwd: string, source: SourceChangeSelection, options?: RunActionOptions): Promise<{
43
+ review: SourceChangeReview;
44
+ hash: string;
45
+ branch: string;
46
+ patch: string;
47
+ }>;
48
+ export declare const proposeSourceChange: (cwd: string, source: SourceChangeSelection, reviewedHash: string, options?: RunActionOptions) => Promise<{
49
+ version: 1;
50
+ status: "prepared" | "proposed";
51
+ hash: string;
52
+ branch: string;
53
+ review: SourceChangeReview;
54
+ createdAt: string;
55
+ commit: string | null;
56
+ tree: string | null;
57
+ }>;
58
+ export declare const inspectSourceChange: (cwd: string, runId: string, hash: string, options?: RunActionOptions) => Promise<{
59
+ version: 1;
60
+ status: "prepared" | "proposed";
61
+ hash: string;
62
+ branch: string;
63
+ review: SourceChangeReview;
64
+ createdAt: string;
65
+ commit: string | null;
66
+ tree: string | null;
67
+ }>;
68
+ export declare const listSourceChanges: (cwd: string, runId: string, options?: RunActionOptions) => Promise<{
69
+ version: 1;
70
+ status: "prepared" | "proposed";
71
+ hash: string;
72
+ branch: string;
73
+ review: SourceChangeReview;
74
+ createdAt: string;
75
+ commit: string | null;
76
+ tree: string | null;
77
+ }[]>;
78
+ //# sourceMappingURL=source-changes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-changes.d.ts","sourceRoot":"","sources":["../../src/improvement/source-changes.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,6BAA6B,CAAC;AAIlE,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAC,MAAM,CAAC;IAAA,OAAO,EAAC,MAAM,CAAC;IAAA,iBAAiB,EAAC,MAAM,CAAC;IAAA,YAAY,EAAC,MAAM,CAAC;IACzE,MAAM,EAAC,MAAM,CAAC;IAAA,UAAU,EAAC,MAAM,CAAC;IAAA,YAAY,EAAC,MAAM,CAAC;CACrD;AACD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAC,CAAC,CAAC;IAAA,IAAI,EAAC,sBAAsB,CAAC;IAAA,MAAM,EAAC,KAAK,CAAC;IAAA,OAAO,EAAC;QAAC,IAAI,EAAC,MAAM,CAAC;QAAA,GAAG,EAAC,MAAM,CAAA;KAAC,CAAC;IACpF,MAAM,EAAC,qBAAqB,CAAC;IAAA,YAAY,EAAC,MAAM,CAAC;IAAA,UAAU,EAAC,MAAM,CAAC;IAAA,UAAU,EAAC,MAAM,CAAC;IACrF,MAAM,EAAC;QAAC,IAAI,EAAC,MAAM,CAAC;QAAA,KAAK,EAAC,MAAM,CAAA;KAAC,CAAC;IAAA,KAAK,EAAC,MAAM,EAAE,CAAC;IAAA,UAAU,EAAC,MAAM,CAAC;CACpE;AASD,wBAAgB,wBAAwB;aAAW,OAAO,EAAC,CAAC;aAAC,KAAK,EAAC,cAAc;aAAC,MAAM,EAAC,KAAK;aAC5F,UAAU,YAAE,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,MAAM;aAAE,SAAS,EAAC,uCAAuC;aACnG,YAAY;aAAO,KAAK;aAAO,IAAI;aAAO,YAAY;EAAkB;AAS1E,yFAAyF;AACzF,wBAAsB,mBAAmB,CAAC,GAAG,EAAC,MAAM,EAAC,MAAM,EAAC,qBAAqB,EAAC,OAAO,GAAC,gBAAmB;;;;;GAE5G;AA6CD,eAAO,MAAM,mBAAmB;;;;;;;;;EAAa,CAAC;AAC9C,eAAO,MAAM,mBAAmB;;;;;;;;;EAAe,CAAC;AAChD,eAAO,MAAM,iBAAiB;;;;;;;;;IAAY,CAAC"}
@@ -0,0 +1,91 @@
1
+ /** Verified source changes become review branches in their owning repository. */
2
+ import { sourceWriter } from '../source-changes/writer.js';
3
+ import { canonicalJson, digest } from '../approvals/index.js';
4
+ import { readCollectedArtifact } from '../orchestration/verification.js';
5
+ import { OrchestrationError } from '../orchestration/types.js';
6
+ import { id, pathName, shape } from '../orchestration/validation.js';
7
+ import { readPinnedWorktreeBase, worktreeGit } from '../isolation/worktree.js';
8
+ import { inspectImprovements, improvementProposalHash } from './actions.js';
9
+ function conflict(message) { throw new OrchestrationError('conflict', message); }
10
+ const hex = (v) => typeof v === 'string' && /^[a-f0-9]{64}$/.test(v);
11
+ const uuid = (v) => typeof v === 'string' && /^[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}$/.test(v);
12
+ const branchFor = (source, hash) => `refs/heads/calliope-proposals/${source.runId}/${hash}`;
13
+ const commitMessage = (source, hash) => `Propose source change for ${source.taskId}\n\nCalliope-Source-Proposal: ${hash}\nRun: ${source.runId}\nArtifact-SHA256: ${source.artifactHash}\n`;
14
+ const git = (project, args, options, input, accepted = [0]) => worktreeGit(project, ['--no-replace-objects', ...args], options.signal, accepted, input);
15
+ export function sourceChangeCapabilities() {
16
+ return { version: 1, owner: 'calliope-cli', writer: 'git',
17
+ operations: ['preview', 'propose', 'inspect', 'list'], semantics: 'verified-patch-to-local-review-branch',
18
+ installation: false, merge: false, push: false, mayCallModel: false };
19
+ }
20
+ function selection(value) {
21
+ shape(value, ['runId', 'cycleId', 'executionRevision', 'proposalHash', 'taskId', 'artifactId', 'artifactHash']);
22
+ if (!uuid(value.runId) || !uuid(value.cycleId) || ![value.executionRevision, value.proposalHash, value.artifactHash].every(hex))
23
+ throw new OrchestrationError('invalid', 'Select exact native improvement and artifact identities.');
24
+ id(value.taskId);
25
+ id(value.artifactId);
26
+ }
27
+ /** Preview reads verified evidence and Git metadata; it creates no Git object or ref. */
28
+ export async function previewSourceChange(cwd, source, options = {}) {
29
+ return preview(cwd, source, options);
30
+ }
31
+ async function preview(cwd, source, options, leaseId) {
32
+ selection(source);
33
+ const current = await inspectImprovements(cwd, source.runId, options), { store, view } = current, state = current.execution.state;
34
+ if (state.revision !== source.executionRevision || state.ownerId || current.owner?.alive && current.owner.id !== leaseId)
35
+ conflict('The source execution changed or is still owned. Refresh its verified results.');
36
+ store.assertApproval(current.execution.header);
37
+ const cycle = current.history.cycles.find(c => c.id === source.cycleId);
38
+ if (!cycle || cycle.status !== 'verified' || cycle.withdrawal || improvementProposalHash(cycle) !== source.proposalHash)
39
+ conflict('Select an exact verified improvement that has not been withdrawn.');
40
+ const task = store.context().plan.tasks.find(t => t.id === source.taskId), result = cycle.results.find(r => r.taskId === source.taskId);
41
+ if (!task?.isolation || task.isolation.mode === 'read-only-v1' || task.isolation.patchArtifactId !== source.artifactId ||
42
+ !result || result.status !== 'completed' || !result.checks.length || result.checks.some(c => !c.passed))
43
+ conflict('Source proposals require a completed isolated task and its executor-collected patch.');
44
+ const artifact = result.artifacts.find(a => a.id === source.artifactId);
45
+ if (!artifact || artifact.sha256 !== source.artifactHash || artifact.kind !== 'patch' || artifact.bytes < 1 || artifact.bytes > 1024 * 1024)
46
+ conflict('Select the verified nonempty native patch, up to 1 MiB.');
47
+ const bytes = await readCollectedArtifact(store, artifact, options);
48
+ let patch;
49
+ try {
50
+ patch = new TextDecoder('utf-8', { fatal: true }).decode(bytes);
51
+ }
52
+ catch {
53
+ conflict('Native patches must use UTF-8.');
54
+ }
55
+ const project = view.manifest.project, baseCommit = readPinnedWorktreeBase(store.root, project.root, view.manifest.planHash);
56
+ const head = (await git(project.root, ['rev-parse', '--verify', 'HEAD^{commit}'], options)).trim();
57
+ if (head !== baseCommit)
58
+ conflict('The owning repository advanced beyond the verified base. Prepare and verify a new change.');
59
+ const author = { name: (await git(project.root, ['config', '--local', '--get', 'user.name'], options)).trim(),
60
+ email: (await git(project.root, ['config', '--local', '--get', 'user.email'], options)).trim() };
61
+ if (Object.values(author).some(v => !v || v.length > 256 || /[\r\n<>\x00]/.test(v)))
62
+ conflict('Configure a valid repository-local Git author before reviewing a source proposal.');
63
+ const stats = await git(project.root, ['apply', '--numstat', '-z', '--'], options, { text: patch });
64
+ const paths = stats.split('\0').filter(Boolean).map(line => {
65
+ const match = /^(?:\d+|-)\t(?:\d+|-)\t(.+)$/s.exec(line);
66
+ if (!match)
67
+ conflict('Native patch path inventory is unavailable.');
68
+ const value = match[1];
69
+ pathName(value);
70
+ if (value.split('/').some(p => p.toLowerCase() === '.git'))
71
+ conflict('Git metadata cannot be proposed.');
72
+ return value;
73
+ });
74
+ const grants = store.context().plan.agents.find(a => a.id === task.agentId).allowedPaths.filter(g => g.access === 'write');
75
+ if (!paths.length || paths.length > 10000 || paths.some(p => !grants.some(g => g.path === '.' || p === g.path || p.startsWith(g.path + '/'))))
76
+ conflict('The patch includes paths outside the selected worker’s original write scope.');
77
+ const review = { version: 1, kind: 'source-change-review', writer: 'git', project: { root: project.root, key: project.key },
78
+ source, manifestHash: view.manifest.hash, sourceHash: digest(canonicalJson({ cycle, artifact })), baseCommit, author, paths, patchBytes: bytes.length };
79
+ const hash = digest(canonicalJson(review));
80
+ store.assertRevision(source.executionRevision);
81
+ store.assertApproval(current.execution.header);
82
+ return { review, hash, branch: branchFor(source, hash), patch };
83
+ }
84
+ const writer = sourceWriter({
85
+ directory: 'source-proposals', kind: 'source-change-review', status: 'proposed', tool: 'orchestration_source_proposal',
86
+ operation: 'Create one local review branch; do not merge, install, push or run work.', selection, branchFor, commitMessage, preview,
87
+ });
88
+ export const proposeSourceChange = writer.write;
89
+ export const inspectSourceChange = writer.inspect;
90
+ export const listSourceChanges = writer.list;
91
+ //# sourceMappingURL=source-changes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-changes.js","sourceRoot":"","sources":["../../src/improvement/source-changes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ import type { RunActionOptions } from '../orchestration/actions.js';
2
+ export interface TaskOutcomeSelection {
3
+ taskId: string;
4
+ attempt: number;
5
+ executionRevision: string;
6
+ }
7
+ export declare function taskOutcomeCapabilities(): {
8
+ readonly version: 1;
9
+ readonly owner: 'calliope-cli';
10
+ readonly operations: readonly ['inspect'];
11
+ readonly semantics: 'exact-native-attempt-observation';
12
+ readonly artifactValidation: 'retained-bytes';
13
+ readonly assessment: false;
14
+ readonly reward: false;
15
+ readonly mayCallModel: false;
16
+ };
17
+ export declare function inspectTaskOutcome(cwd: string, runId: string, selection: TaskOutcomeSelection, options?: RunActionOptions): Promise<{
18
+ value: {
19
+ version: 1;
20
+ kind: 'task.outcome-observation';
21
+ interpretation: 'native-attempt-evidence-not-user-assessment-or-reward';
22
+ source: {
23
+ runId: string;
24
+ manifestHash: string;
25
+ planHash: string;
26
+ approvalRevision: string;
27
+ executionRevision: string;
28
+ taskId: string;
29
+ agentId: string;
30
+ attempt: number;
31
+ sessionId: string;
32
+ started: {
33
+ id: string;
34
+ hash: string;
35
+ at: string;
36
+ sequence: number;
37
+ };
38
+ configurationHash: string;
39
+ graphHash: string;
40
+ };
41
+ status: "cancelled" | "completed" | "denied" | "failed" | "review_required" | "unknown";
42
+ executorStatus: "cancelled" | "completed" | "denied" | "failed" | "review_required" | "unknown";
43
+ finished: {
44
+ id: string;
45
+ hash: string;
46
+ at: string;
47
+ sequence: number;
48
+ } | null;
49
+ accepted: {
50
+ id: string;
51
+ hash: string;
52
+ at: string;
53
+ sequence: number;
54
+ } | null;
55
+ checks: import("../orchestration/coordinator-types.js").CheckEvidence[];
56
+ artifacts: {
57
+ id: string;
58
+ taskId: string;
59
+ agentId: string;
60
+ kind: "decision" | "evidence" | "file" | "patch" | "report" | "test_result";
61
+ sha256: string;
62
+ bytes: number;
63
+ source: {
64
+ runId: string;
65
+ eventId: string;
66
+ };
67
+ }[];
68
+ measurements: {
69
+ durationMs: number | null;
70
+ toolCalls: number;
71
+ toolFailures: number;
72
+ settledCostNanos: number | null;
73
+ };
74
+ accounting: {
75
+ basis: 'native-reservations-and-settlements';
76
+ revision: string | null;
77
+ charge: import("../orchestration/request-accounting.js").AttributedCharge | null;
78
+ };
79
+ };
80
+ hash: string;
81
+ }>;
82
+ //# sourceMappingURL=task-outcomes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-outcomes.d.ts","sourceRoot":"","sources":["../../src/improvement/task-outcomes.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,6BAA6B,CAAC;AAGlE,MAAM,WAAW,oBAAoB;IAAE,MAAM,EAAC,MAAM,CAAC;IAAA,OAAO,EAAC,MAAM,CAAC;IAAA,iBAAiB,EAAC,MAAM,CAAA;CAAC;AAG7F,wBAAgB,uBAAuB;aAAW,OAAO,EAAC,CAAC;aAAC,KAAK,EAAC,cAAc;aAAC,UAAU,YAAE,SAAS;aACpG,SAAS,EAAC,kCAAkC;aAAC,kBAAkB,EAAC,gBAAgB;aAAC,UAAU;aAAO,MAAM;aAAO,YAAY;EAAkB;AAE/I,wBAAsB,kBAAkB,CAAC,GAAG,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,EAAC,SAAS,EAAC,oBAAoB,EAAC,OAAO,GAAC,gBAAmB;;iBAgCpG,CAAC;cAAe,0BAA0B;wBAC9C,uDAAuD;;YAC9D,KAAK;YAAa,YAAY;YAAoB,QAAQ;YAAwB,gBAAgB;YACxG,iBAAiB;YAA0B,MAAM;YAAS,OAAO;YAAc,OAAO;YAAgB,SAAS;YAC/G,OAAO;;;;;;YAAY,iBAAiB;YACpC,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAKG,UAAU;YACtB,SAAS;YAAc,YAAY;YACnC,gBAAgB;;;YACN,KAAK,EAAC,qCAAqC;YAAU,QAAQ;YAA6D,MAAM;;;;GAG/I"}
@@ -0,0 +1,72 @@
1
+ /** Exact native attempt evidence for reviewed feedback, without assigning rewards. */
2
+ import { join } from 'node:path';
3
+ import { canonicalJson, digest } from '../approvals/index.js';
4
+ import { throwIfCancelled } from '../cancellation.js';
5
+ import { assertExecutionStoreOutsideProject } from '../execution/index.js';
6
+ import { inspectExecution } from '../orchestration/coordinator-actions.js';
7
+ import { replayExecution } from '../orchestration/execution-journal.js';
8
+ import { readCollectedArtifact } from '../orchestration/verification.js';
9
+ import { readRunAccounting } from '../orchestration/accounting.js';
10
+ import { workerAttemptContext } from '../orchestration/worker-context.js';
11
+ import { id, shape } from '../orchestration/validation.js';
12
+ import { OrchestrationError } from '../orchestration/types.js';
13
+ const ref = (event) => ({ id: event.id, hash: event.hash, at: event.at, sequence: event.sequence });
14
+ function conflict(message) { throw new OrchestrationError('conflict', message); }
15
+ export function taskOutcomeCapabilities() {
16
+ return { version: 1, owner: 'calliope-cli', operations: ['inspect'],
17
+ semantics: 'exact-native-attempt-observation', artifactValidation: 'retained-bytes', assessment: false, reward: false, mayCallModel: false };
18
+ }
19
+ export async function inspectTaskOutcome(cwd, runId, selection, options = {}) {
20
+ shape(selection, ['taskId', 'attempt', 'executionRevision']);
21
+ id(selection.taskId);
22
+ if (!Number.isSafeInteger(selection.attempt) || selection.attempt < 1 || typeof selection.executionRevision !== 'string' || !/^[a-f0-9]{64}$/.test(selection.executionRevision))
23
+ throw new OrchestrationError('invalid', 'Select the exact task attempt and execution revision.');
24
+ const current = await inspectExecution(cwd, runId, options), { store, view, execution } = current;
25
+ assertExecutionStoreOutsideProject(view.manifest.project.root, join(store.root, '..', '..'));
26
+ if (!execution || execution.state.revision !== selection.executionRevision || execution.state.ownerId || current.owner?.alive)
27
+ conflict('Stop or recover active execution and refresh its exact task evidence.');
28
+ const starts = execution.events.filter((event) => event.change.type === 'task_started' && event.change.taskId === selection.taskId);
29
+ const start = starts.find(event => event.change.attempt === selection.attempt);
30
+ if (!start)
31
+ throw new OrchestrationError('unavailable', 'No native task start has this attempt identity.');
32
+ const next = starts.find(event => event.sequence > start.sequence);
33
+ const events = execution.events.filter(event => event.sequence >= start.sequence && (!next || event.sequence < next.sequence));
34
+ const prefixEvents = execution.events.slice(0, start.sequence);
35
+ const prefix = { header: execution.header, events: prefixEvents, state: replayExecution(execution.header, view.manifest, prefixEvents) };
36
+ const context = store.context(prefix), task = context.plan.tasks.find(t => t.id === selection.taskId);
37
+ const agent = context.plan.agents.find(a => a.id === task.agentId);
38
+ const attempt = workerAttemptContext(context.plan, task, prefix).attempt;
39
+ const finished = events.filter((event) => event.change.type === 'task_finished' && event.change.taskId === task.id).at(-1);
40
+ const accepted = finished ? events.find(event => event.change.type === 'task_accepted' && event.change.taskId === task.id && event.sequence > finished.sequence) : undefined;
41
+ const output = finished?.change.output;
42
+ let bytes = 0;
43
+ for (const artifact of output?.artifacts ?? []) {
44
+ throwIfCancelled(options.signal);
45
+ bytes += artifact.bytes;
46
+ if (bytes > 64 * 1024 * 1024)
47
+ throw new OrchestrationError('limit', 'Selected attempt evidence exceeds the 64 MiB inspection bound.');
48
+ await readCollectedArtifact(store, artifact, options);
49
+ }
50
+ const accounting = readRunAccounting(store, execution);
51
+ const attribution = accounting.status === 'available' ? accounting.attribution : undefined;
52
+ const charge = attribution?.status === 'available' && attribution.executionRevision === execution.state.revision ? attribution.groups[start.id] ?? null : null;
53
+ const tools = events.filter(event => event.change.type === 'tool' && event.change.taskId === task.id && event.change.stage === 'finished');
54
+ const value = { version: 1, kind: 'task.outcome-observation',
55
+ interpretation: 'native-attempt-evidence-not-user-assessment-or-reward',
56
+ source: { runId: view.run.id, manifestHash: view.manifest.hash, planHash: view.manifest.planHash, approvalRevision: execution.header.approvalRevision,
57
+ executionRevision: execution.state.revision, taskId: task.id, agentId: task.agentId, attempt: attempt.number, sessionId: start.change.sessionId,
58
+ started: ref(start), configurationHash: digest(canonicalJson({ task, agent, strategy: prefix.state.supervision?.strategies[task.id] ?? null })),
59
+ graphHash: prefix.state.graph?.hash ?? view.manifest.planHash },
60
+ status: accepted ? 'completed' : finished?.change.status ?? 'unknown',
61
+ executorStatus: finished?.change.status ?? 'unknown', finished: finished ? ref(finished) : null, accepted: accepted ? ref(accepted) : null,
62
+ checks: structuredClone(output?.checks ?? []),
63
+ artifacts: (output?.artifacts ?? []).map(a => ({ id: a.id, taskId: a.taskId, agentId: a.agentId, kind: a.kind, sha256: a.sha256, bytes: a.bytes, source: { ...a.source } })),
64
+ measurements: { durationMs: finished ? Date.parse(finished.at) - Date.parse(start.at) : null,
65
+ toolCalls: tools.length, toolFailures: tools.filter(e => e.change.type === 'tool' && !e.change.success).length,
66
+ settledCostNanos: charge?.status === 'available' && charge.usageComplete ? charge.accounted.costNanos : null },
67
+ accounting: { basis: 'native-reservations-and-settlements', revision: attribution?.status === 'available' ? attribution.revision : null, charge: charge ? structuredClone(charge) : null } };
68
+ store.assertRevision(selection.executionRevision);
69
+ throwIfCancelled(options.signal);
70
+ return { value, hash: digest(canonicalJson(value)) };
71
+ }
72
+ //# sourceMappingURL=task-outcomes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-outcomes.js","sourceRoot":"","sources":["../../src/improvement/task-outcomes.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -22,4 +22,14 @@ export type { JudgmentRequest, JudgmentResponse, JudgmentEngine, Question, Answe
22
22
  export { runHeadless } from './headless.js';
23
23
  export type { HeadlessEvent, HeadlessOptions, HeadlessOutputMode } from './headless.js';
24
24
  export * from './runtime/index.js';
25
+ export { inventorySource, runMigrationCommand, MigrationError, INVENTORY_SCHEMA } from './migration/index.js';
26
+ export type { MigrationInventory } from './migration/index.js';
27
+ export { analyzeVerificationPlan, verifyMigration, VERIFICATION_SCHEMAS } from './migration/index.js';
28
+ export type { VerificationPlan, VerificationOptions } from './migration/index.js';
29
+ export { comparatorHealthy, compareBehavior, migrationExample } from './migration/index.js';
30
+ export { analyzeVerificationEvidence, EVIDENCE_REVIEW_SCHEMA } from './migration/index.js';
31
+ export { assessMigration, analyzeAssessmentRequest, ASSESSMENT_SCHEMAS } from './migration/index.js';
32
+ export type { AssessmentRequest, AssessmentOptions, AssessmentReview, AssessmentReviewRequest, AssessmentImplementation, PilotMeasurement } from './migration/index.js';
33
+ export { analyzeBaselinePlan, verifyMigrationBaseline, analyzeBaselineEvidence, BASELINE_SCHEMAS } from './migration/index.js';
34
+ export type { BaselinePlan } from './migration/index.js';
25
35
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EACL,SAAS,EACT,GAAG,EACH,GAAG,EACH,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,sBAAsB,EACtB,SAAS,EACT,UAAU,EACV,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACnG,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,eAAe,EAAE,YAAY,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC5J,YAAY,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AACjG,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGnI,OAAO,EACL,cAAc,EACd,UAAU,EAAE,YAAY,EAAE,iBAAiB,EAC3C,WAAW,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAC/D,WAAW,EAAE,iBAAiB,EAC9B,aAAa,GACd,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG1G,OAAO,EAAE,QAAQ,IAAI,KAAK,EAAE,eAAe,IAAI,uBAAuB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACnH,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC/G,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAIxF,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EACL,SAAS,EACT,GAAG,EACH,GAAG,EACH,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,sBAAsB,EACtB,SAAS,EACT,UAAU,EACV,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACnG,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,eAAe,EAAE,YAAY,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC5J,YAAY,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AACjG,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGnI,OAAO,EACL,cAAc,EACd,UAAU,EAAE,YAAY,EAAE,iBAAiB,EAC3C,WAAW,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAC/D,WAAW,EAAE,iBAAiB,EAC9B,aAAa,GACd,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG1G,OAAO,EAAE,QAAQ,IAAI,KAAK,EAAE,eAAe,IAAI,uBAAuB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACnH,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC/G,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAIxF,cAAc,oBAAoB,CAAC;AAEnC,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC9G,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACtG,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC5F,OAAO,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC3F,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrG,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxK,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC/H,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC"}