@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,511 @@
1
+ {
2
+ "format": "calliope.migration.verification-report/v1",
3
+ "verifier": "byte-parity-v1",
4
+ "adapter": "javascript-to-typescript-cli/v1",
5
+ "planDigest": "96518d5ee8c868901712d40be267ccf51b7c13ae9ad713f2abd40ad9e7e298c1",
6
+ "runtime": {
7
+ "image": "sha256:55fb5f5a527ea2c5c4a95f963e48ef90aa38c7b346054fdc8ee9957a2b55d205",
8
+ "node": "v24.22.1"
9
+ },
10
+ "pins": {
11
+ "source": {
12
+ "object": "b96c6972d5a4bfc7e1c52fea78ba340ff24b97c5",
13
+ "path": "source.mjs",
14
+ "revision": "54bdcbfa6e40806cd709736e448bd50c453799ea"
15
+ },
16
+ "candidate": {
17
+ "object": "4b551e05cce761a68a30a20207c47add9a9f4eff",
18
+ "path": "candidate.mts",
19
+ "revision": "f4732441c67d285f5005ac0afb25d412c2d74f93"
20
+ },
21
+ "negative": {
22
+ "object": "0d6091a5c5d47ed8b4c97b7f74f296853fcc09a0",
23
+ "path": "negative.mts",
24
+ "revision": "54bdcbfa6e40806cd709736e448bd50c453799ea"
25
+ },
26
+ "rules": {
27
+ "object": "ece25894441e04857adea069e792b6f622fb2e7b",
28
+ "path": "RULES.md",
29
+ "revision": "54bdcbfa6e40806cd709736e448bd50c453799ea"
30
+ }
31
+ },
32
+ "outcome": "passed",
33
+ "reason": "Baseline, negative control and candidate observations satisfy the declared contract.",
34
+ "observations": [
35
+ {
36
+ "phase": "runtime",
37
+ "caseId": null,
38
+ "matches": true,
39
+ "evidence": {
40
+ "version": 1,
41
+ "kind": "isolated-command",
42
+ "argv": [
43
+ "node",
44
+ "--version"
45
+ ],
46
+ "image": "sha256:55fb5f5a527ea2c5c4a95f963e48ef90aa38c7b346054fdc8ee9957a2b55d205",
47
+ "container": "calliope-check-27285e7f-fd33-4285-a9b5-d1e277aa452a",
48
+ "cleanupConfirmed": true,
49
+ "cleanup": {
50
+ "version": 1,
51
+ "removal": {
52
+ "outcome": "removed",
53
+ "exitCode": 0
54
+ }
55
+ },
56
+ "outputDigests": {
57
+ "version": 1,
58
+ "stdout": {
59
+ "sha256": "249baf635bb43877fcb9422efa1a4904b702d0ddf14d3949b7cd0950d5229c81",
60
+ "bytes": 9
61
+ },
62
+ "stderr": {
63
+ "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
64
+ "bytes": 0
65
+ }
66
+ },
67
+ "outcome": "passed",
68
+ "exitCode": 0,
69
+ "truncated": false,
70
+ "durationMs": 1648
71
+ }
72
+ },
73
+ {
74
+ "phase": "baseline",
75
+ "caseId": "positive",
76
+ "matches": true,
77
+ "evidence": {
78
+ "version": 1,
79
+ "kind": "isolated-command",
80
+ "argv": [
81
+ "node",
82
+ "/project/program.mjs",
83
+ "[1,2,3]"
84
+ ],
85
+ "image": "sha256:55fb5f5a527ea2c5c4a95f963e48ef90aa38c7b346054fdc8ee9957a2b55d205",
86
+ "container": "calliope-check-9cbf259b-c6dd-4711-93aa-9c0f78b3f7d4",
87
+ "cleanupConfirmed": true,
88
+ "cleanup": {
89
+ "version": 1,
90
+ "removal": {
91
+ "outcome": "removed",
92
+ "exitCode": 0
93
+ }
94
+ },
95
+ "outputDigests": {
96
+ "version": 1,
97
+ "stdout": {
98
+ "sha256": "26a6c68fc3a744dfefe9140f5877e335b896def676d850fb60e77b6224359086",
99
+ "bytes": 20
100
+ },
101
+ "stderr": {
102
+ "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
103
+ "bytes": 0
104
+ }
105
+ },
106
+ "outcome": "passed",
107
+ "exitCode": 0,
108
+ "truncated": false,
109
+ "durationMs": 1709
110
+ }
111
+ },
112
+ {
113
+ "phase": "baseline",
114
+ "caseId": "empty",
115
+ "matches": true,
116
+ "evidence": {
117
+ "version": 1,
118
+ "kind": "isolated-command",
119
+ "argv": [
120
+ "node",
121
+ "/project/program.mjs",
122
+ "[]"
123
+ ],
124
+ "image": "sha256:55fb5f5a527ea2c5c4a95f963e48ef90aa38c7b346054fdc8ee9957a2b55d205",
125
+ "container": "calliope-check-b3c21320-f6b3-4ede-ac10-45ff52bb0ebd",
126
+ "cleanupConfirmed": true,
127
+ "cleanup": {
128
+ "version": 1,
129
+ "removal": {
130
+ "outcome": "removed",
131
+ "exitCode": 0
132
+ }
133
+ },
134
+ "outputDigests": {
135
+ "version": 1,
136
+ "stdout": {
137
+ "sha256": "f991a9c8fd471b73bd9342a32ec1bb776039104ac3f28a0713fa955084e534ec",
138
+ "bytes": 20
139
+ },
140
+ "stderr": {
141
+ "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
142
+ "bytes": 0
143
+ }
144
+ },
145
+ "outcome": "passed",
146
+ "exitCode": 0,
147
+ "truncated": false,
148
+ "durationMs": 1789
149
+ }
150
+ },
151
+ {
152
+ "phase": "baseline",
153
+ "caseId": "negative-values",
154
+ "matches": true,
155
+ "evidence": {
156
+ "version": 1,
157
+ "kind": "isolated-command",
158
+ "argv": [
159
+ "node",
160
+ "/project/program.mjs",
161
+ "[-2,5]"
162
+ ],
163
+ "image": "sha256:55fb5f5a527ea2c5c4a95f963e48ef90aa38c7b346054fdc8ee9957a2b55d205",
164
+ "container": "calliope-check-61695e98-88b3-476e-9f2a-b489316406f3",
165
+ "cleanupConfirmed": true,
166
+ "cleanup": {
167
+ "version": 1,
168
+ "removal": {
169
+ "outcome": "removed",
170
+ "exitCode": 0
171
+ }
172
+ },
173
+ "outputDigests": {
174
+ "version": 1,
175
+ "stdout": {
176
+ "sha256": "215a9e8c42577c888936706cef00a56a0091601e6b9d04e03815290841633714",
177
+ "bytes": 20
178
+ },
179
+ "stderr": {
180
+ "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
181
+ "bytes": 0
182
+ }
183
+ },
184
+ "outcome": "passed",
185
+ "exitCode": 0,
186
+ "truncated": false,
187
+ "durationMs": 1588
188
+ }
189
+ },
190
+ {
191
+ "phase": "baseline",
192
+ "caseId": "invalid-type",
193
+ "matches": true,
194
+ "evidence": {
195
+ "version": 1,
196
+ "kind": "isolated-command",
197
+ "argv": [
198
+ "node",
199
+ "/project/program.mjs",
200
+ "[\"1\"]"
201
+ ],
202
+ "image": "sha256:55fb5f5a527ea2c5c4a95f963e48ef90aa38c7b346054fdc8ee9957a2b55d205",
203
+ "container": "calliope-check-facfc7c4-92e1-4254-ace4-2ef2bfe55d40",
204
+ "cleanupConfirmed": true,
205
+ "cleanup": {
206
+ "version": 1,
207
+ "removal": {
208
+ "outcome": "removed",
209
+ "exitCode": 0
210
+ }
211
+ },
212
+ "outputDigests": {
213
+ "version": 1,
214
+ "stdout": {
215
+ "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
216
+ "bytes": 0
217
+ },
218
+ "stderr": {
219
+ "sha256": "e0ff9287678e29e09a26eab68982328e210fe85bb35693282c9b98949b02ffed",
220
+ "bytes": 36
221
+ }
222
+ },
223
+ "outcome": "failed",
224
+ "exitCode": 2,
225
+ "truncated": false,
226
+ "durationMs": 2101
227
+ }
228
+ },
229
+ {
230
+ "phase": "baseline",
231
+ "caseId": "invalid-json",
232
+ "matches": true,
233
+ "evidence": {
234
+ "version": 1,
235
+ "kind": "isolated-command",
236
+ "argv": [
237
+ "node",
238
+ "/project/program.mjs",
239
+ "not-json"
240
+ ],
241
+ "image": "sha256:55fb5f5a527ea2c5c4a95f963e48ef90aa38c7b346054fdc8ee9957a2b55d205",
242
+ "container": "calliope-check-f1c4fb59-6071-4b5e-8f60-616972db9092",
243
+ "cleanupConfirmed": true,
244
+ "cleanup": {
245
+ "version": 1,
246
+ "removal": {
247
+ "outcome": "removed",
248
+ "exitCode": 0
249
+ }
250
+ },
251
+ "outputDigests": {
252
+ "version": 1,
253
+ "stdout": {
254
+ "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
255
+ "bytes": 0
256
+ },
257
+ "stderr": {
258
+ "sha256": "7038ca5c7c514c7f32614025464695a05a872fe0ec6f819d66b08df02fa82907",
259
+ "bytes": 14
260
+ }
261
+ },
262
+ "outcome": "failed",
263
+ "exitCode": 2,
264
+ "truncated": false,
265
+ "durationMs": 565
266
+ }
267
+ },
268
+ {
269
+ "phase": "negative-control",
270
+ "caseId": "positive",
271
+ "matches": true,
272
+ "evidence": {
273
+ "version": 1,
274
+ "kind": "isolated-command",
275
+ "argv": [
276
+ "node",
277
+ "/project/program.mts",
278
+ "[1,2,3]"
279
+ ],
280
+ "image": "sha256:55fb5f5a527ea2c5c4a95f963e48ef90aa38c7b346054fdc8ee9957a2b55d205",
281
+ "container": "calliope-check-1f2cf2a8-a6fc-4d82-ba1a-be2f17b03d71",
282
+ "cleanupConfirmed": true,
283
+ "cleanup": {
284
+ "version": 1,
285
+ "removal": {
286
+ "outcome": "removed",
287
+ "exitCode": 0
288
+ }
289
+ },
290
+ "outputDigests": {
291
+ "version": 1,
292
+ "stdout": {
293
+ "sha256": "0c95189e6d39baf767fb9ffae99434103582755c6e943c57baa4430110263fa7",
294
+ "bytes": 20
295
+ },
296
+ "stderr": {
297
+ "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
298
+ "bytes": 0
299
+ }
300
+ },
301
+ "outcome": "passed",
302
+ "exitCode": 0,
303
+ "truncated": false,
304
+ "durationMs": 681
305
+ }
306
+ },
307
+ {
308
+ "phase": "candidate",
309
+ "caseId": "positive",
310
+ "matches": true,
311
+ "evidence": {
312
+ "version": 1,
313
+ "kind": "isolated-command",
314
+ "argv": [
315
+ "node",
316
+ "/project/program.mts",
317
+ "[1,2,3]"
318
+ ],
319
+ "image": "sha256:55fb5f5a527ea2c5c4a95f963e48ef90aa38c7b346054fdc8ee9957a2b55d205",
320
+ "container": "calliope-check-b20b81d0-f0db-4b3c-9db3-1a67603953f1",
321
+ "cleanupConfirmed": true,
322
+ "cleanup": {
323
+ "version": 1,
324
+ "removal": {
325
+ "outcome": "removed",
326
+ "exitCode": 0
327
+ }
328
+ },
329
+ "outputDigests": {
330
+ "version": 1,
331
+ "stdout": {
332
+ "sha256": "26a6c68fc3a744dfefe9140f5877e335b896def676d850fb60e77b6224359086",
333
+ "bytes": 20
334
+ },
335
+ "stderr": {
336
+ "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
337
+ "bytes": 0
338
+ }
339
+ },
340
+ "outcome": "passed",
341
+ "exitCode": 0,
342
+ "truncated": false,
343
+ "durationMs": 661
344
+ }
345
+ },
346
+ {
347
+ "phase": "candidate",
348
+ "caseId": "empty",
349
+ "matches": true,
350
+ "evidence": {
351
+ "version": 1,
352
+ "kind": "isolated-command",
353
+ "argv": [
354
+ "node",
355
+ "/project/program.mts",
356
+ "[]"
357
+ ],
358
+ "image": "sha256:55fb5f5a527ea2c5c4a95f963e48ef90aa38c7b346054fdc8ee9957a2b55d205",
359
+ "container": "calliope-check-be36cfed-1a02-46c9-93c8-509df4274448",
360
+ "cleanupConfirmed": true,
361
+ "cleanup": {
362
+ "version": 1,
363
+ "removal": {
364
+ "outcome": "removed",
365
+ "exitCode": 0
366
+ }
367
+ },
368
+ "outputDigests": {
369
+ "version": 1,
370
+ "stdout": {
371
+ "sha256": "f991a9c8fd471b73bd9342a32ec1bb776039104ac3f28a0713fa955084e534ec",
372
+ "bytes": 20
373
+ },
374
+ "stderr": {
375
+ "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
376
+ "bytes": 0
377
+ }
378
+ },
379
+ "outcome": "passed",
380
+ "exitCode": 0,
381
+ "truncated": false,
382
+ "durationMs": 669
383
+ }
384
+ },
385
+ {
386
+ "phase": "candidate",
387
+ "caseId": "negative-values",
388
+ "matches": true,
389
+ "evidence": {
390
+ "version": 1,
391
+ "kind": "isolated-command",
392
+ "argv": [
393
+ "node",
394
+ "/project/program.mts",
395
+ "[-2,5]"
396
+ ],
397
+ "image": "sha256:55fb5f5a527ea2c5c4a95f963e48ef90aa38c7b346054fdc8ee9957a2b55d205",
398
+ "container": "calliope-check-eea61925-33c6-4c45-a722-76a131d240e9",
399
+ "cleanupConfirmed": true,
400
+ "cleanup": {
401
+ "version": 1,
402
+ "removal": {
403
+ "outcome": "removed",
404
+ "exitCode": 0
405
+ }
406
+ },
407
+ "outputDigests": {
408
+ "version": 1,
409
+ "stdout": {
410
+ "sha256": "215a9e8c42577c888936706cef00a56a0091601e6b9d04e03815290841633714",
411
+ "bytes": 20
412
+ },
413
+ "stderr": {
414
+ "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
415
+ "bytes": 0
416
+ }
417
+ },
418
+ "outcome": "passed",
419
+ "exitCode": 0,
420
+ "truncated": false,
421
+ "durationMs": 727
422
+ }
423
+ },
424
+ {
425
+ "phase": "candidate",
426
+ "caseId": "invalid-type",
427
+ "matches": true,
428
+ "evidence": {
429
+ "version": 1,
430
+ "kind": "isolated-command",
431
+ "argv": [
432
+ "node",
433
+ "/project/program.mts",
434
+ "[\"1\"]"
435
+ ],
436
+ "image": "sha256:55fb5f5a527ea2c5c4a95f963e48ef90aa38c7b346054fdc8ee9957a2b55d205",
437
+ "container": "calliope-check-7b3b1432-d045-4100-833f-807a30c8a8d4",
438
+ "cleanupConfirmed": true,
439
+ "cleanup": {
440
+ "version": 1,
441
+ "removal": {
442
+ "outcome": "removed",
443
+ "exitCode": 0
444
+ }
445
+ },
446
+ "outputDigests": {
447
+ "version": 1,
448
+ "stdout": {
449
+ "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
450
+ "bytes": 0
451
+ },
452
+ "stderr": {
453
+ "sha256": "e0ff9287678e29e09a26eab68982328e210fe85bb35693282c9b98949b02ffed",
454
+ "bytes": 36
455
+ }
456
+ },
457
+ "outcome": "failed",
458
+ "exitCode": 2,
459
+ "truncated": false,
460
+ "durationMs": 622
461
+ }
462
+ },
463
+ {
464
+ "phase": "candidate",
465
+ "caseId": "invalid-json",
466
+ "matches": true,
467
+ "evidence": {
468
+ "version": 1,
469
+ "kind": "isolated-command",
470
+ "argv": [
471
+ "node",
472
+ "/project/program.mts",
473
+ "not-json"
474
+ ],
475
+ "image": "sha256:55fb5f5a527ea2c5c4a95f963e48ef90aa38c7b346054fdc8ee9957a2b55d205",
476
+ "container": "calliope-check-9d04569d-15a5-4a25-aebd-a89e763a29d5",
477
+ "cleanupConfirmed": true,
478
+ "cleanup": {
479
+ "version": 1,
480
+ "removal": {
481
+ "outcome": "removed",
482
+ "exitCode": 0
483
+ }
484
+ },
485
+ "outputDigests": {
486
+ "version": 1,
487
+ "stdout": {
488
+ "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
489
+ "bytes": 0
490
+ },
491
+ "stderr": {
492
+ "sha256": "7038ca5c7c514c7f32614025464695a05a872fe0ec6f819d66b08df02fa82907",
493
+ "bytes": 14
494
+ }
495
+ },
496
+ "outcome": "failed",
497
+ "exitCode": 2,
498
+ "truncated": false,
499
+ "durationMs": 647
500
+ }
501
+ }
502
+ ],
503
+ "commandsUsed": 12,
504
+ "commandLimit": 12,
505
+ "retainedWorkspace": null,
506
+ "limitations": [
507
+ "Only declared cases of this self-contained command-line interface were compared; this is not proof of general program equivalence.",
508
+ "No TypeScript type-check, dependency install, migration dispatch or rollout was performed."
509
+ ],
510
+ "digest": "ae5cc54dee2e6e3679673d6b7c1832dbe2704dbb5ec0293acb26653a1f655e5e"
511
+ }
@@ -0,0 +1,63 @@
1
+ # Pinned migration inventory
2
+
3
+ `calliope migration inventory` captures deterministic input evidence for migration
4
+ assessment. It reads a full immutable Git commit in a local repository, including
5
+ committed files that differ from the current working tree. Dirty and untracked
6
+ files are neither included nor changed. It performs no provider inference, package
7
+ installation, repository script execution or migration dispatch.
8
+
9
+ ```sh
10
+ calliope migration capabilities --json
11
+ calliope migration schema --json
12
+ calliope migration inventory --repository /path/to/repository --revision FULL_COMMIT_ID --json
13
+ calliope migration inventory --repository /path/to/repository --revision FULL_COMMIT_ID --path packages/app --json
14
+ ```
15
+
16
+ The selected path must be the root of a complete local clone; repositories with
17
+ partial-clone/promisor configuration are refused before object lookup, including
18
+ on Git versions that ignore the no-lazy-fetch environment setting.
19
+ Revision expressions, branches,
20
+ annotated-tag objects and abbreviated hashes are refused; resolve the intended
21
+ commit before invoking the command. Repeated `--path` options select literal
22
+ repository-relative prefixes, not globs. Library callers use `inventorySource`
23
+ with explicit `readPaths` and an optional abort signal. Hosts must supply the read
24
+ scope already authorized for the task; this library does not grant access.
25
+
26
+ The `calliope.migration.inventory/v1` artifact contains:
27
+
28
+ - Exact commit/tree identities and read scope, plus every included tracked file's
29
+ object identity, mode, byte count and observed surface category.
30
+ - Parsed `package.json` names, build/test script **names**, and declared dependency
31
+ sections. Scripts and credential-bearing URL specs never enter the report.
32
+ Specs retain a digest; ordinary registry ranges/tags can be displayed.
33
+ - Candidate local package edges for supported `workspace:` name declarations and
34
+ relative `file:` declarations, dependency-first ordering, or exact cycle
35
+ components. Ambiguous names, unsupported aliases and missing/out-of-scope
36
+ targets remain unresolved. The graph is not proof of package-manager resolution,
37
+ workspace membership or source-level import dependencies.
38
+ - Explicit findings for malformed/oversized manifests, opaque dependency specs,
39
+ unsupported dependency formats, symlinks and submodules. Links are recorded but
40
+ never traversed, and Git replacement objects are disabled.
41
+ - A SHA-256 digest of the canonical artifact body, excluding `digest` itself.
42
+ The kit version, source identities, scope, declarations and limitations are bound
43
+ into that digest. No timestamp or machine-specific repository path affects it.
44
+
45
+ `schema` returns the packaged JSON Schema locally; its `$id` is an artifact
46
+ identifier and requires no network lookup. JSON errors have a bounded code/message
47
+ and omit raw Git errors, commands and repository arguments. Cancellation returns
48
+ exit code 130; other refusals return 1.
49
+
50
+ One observation is bounded to 30 seconds, 5,000 entries, 128 parsed npm manifests,
51
+ 256 KiB per manifest, 4 MiB of manifest bytes and 2,048 declared dependencies.
52
+ The shared Git runner also bounds each command's time/output and disables lazy
53
+ network fetching. Narrow the read scope when those limits prevent observation.
54
+
55
+ This is the inventory phase of the shared migration kit (#414), supporting
56
+ Cykick's assessment/execution work (#42/#43). It does not establish a behavioral
57
+ baseline, detect dynamic imports, test installability, estimate migration cost,
58
+ recommend a language adapter, approve compatibility exceptions or authorize
59
+ workers. Those conclusions require their own evidence and reviewed contracts.
60
+
61
+ The separate [behavior verification phase](migration-verification.md) compares
62
+ one supported public interface after explicit plan approval. Running inventory
63
+ alone never invokes that phase.