@maiaos/cli 0.1.0-canary.2

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 (413) hide show
  1. package/README.md +287 -0
  2. package/dist/bin/maia.NOTICES.txt +59 -0
  3. package/dist/bin/maia.cdx.json +145 -0
  4. package/dist/bin/maia.mjs +2 -0
  5. package/dist/bootstrap/index.d.ts +3 -0
  6. package/dist/bootstrap/index.js +3 -0
  7. package/dist/bootstrap/process.d.ts +5 -0
  8. package/dist/bootstrap/process.js +45 -0
  9. package/dist/bootstrap/run.d.ts +25 -0
  10. package/dist/bootstrap/run.js +95 -0
  11. package/dist/bootstrap/stdio.d.ts +4 -0
  12. package/dist/bootstrap/stdio.js +9 -0
  13. package/dist/cli/cli.d.ts +17 -0
  14. package/dist/cli/cli.js +481 -0
  15. package/dist/cli/environment.d.ts +8 -0
  16. package/dist/cli/environment.js +12 -0
  17. package/dist/cli/index.d.ts +2 -0
  18. package/dist/cli/index.js +2 -0
  19. package/dist/cli/services.d.ts +4 -0
  20. package/dist/cli/services.js +4 -0
  21. package/dist/command-line/context.d.ts +178 -0
  22. package/dist/command-line/context.js +2 -0
  23. package/dist/command-line/index.d.ts +7 -0
  24. package/dist/command-line/index.js +6 -0
  25. package/dist/command-line/input/arguments.d.ts +55 -0
  26. package/dist/command-line/input/arguments.js +220 -0
  27. package/dist/command-line/input/index.d.ts +4 -0
  28. package/dist/command-line/input/index.js +4 -0
  29. package/dist/command-line/input/prompt.d.ts +8 -0
  30. package/dist/command-line/input/prompt.js +44 -0
  31. package/dist/command-line/input/stdin-stream.d.ts +4 -0
  32. package/dist/command-line/input/stdin-stream.js +3 -0
  33. package/dist/command-line/input/stdin.d.ts +11 -0
  34. package/dist/command-line/input/stdin.js +23 -0
  35. package/dist/command-line/json-decoder.d.ts +3 -0
  36. package/dist/command-line/json-decoder.js +3 -0
  37. package/dist/command-line/json.d.ts +3 -0
  38. package/dist/command-line/json.js +4 -0
  39. package/dist/command-line/output.d.ts +57 -0
  40. package/dist/command-line/output.js +94 -0
  41. package/dist/command-line/rows.d.ts +10 -0
  42. package/dist/command-line/rows.js +32 -0
  43. package/dist/command-line/two-phase.d.ts +57 -0
  44. package/dist/command-line/two-phase.js +148 -0
  45. package/dist/command-receipt/command.d.ts +4 -0
  46. package/dist/command-receipt/command.js +59 -0
  47. package/dist/command-receipt/compact-list.d.ts +20 -0
  48. package/dist/command-receipt/compact-list.js +29 -0
  49. package/dist/command-receipt/index.d.ts +3 -0
  50. package/dist/command-receipt/index.js +3 -0
  51. package/dist/command-tree/commands.d.ts +17 -0
  52. package/dist/command-tree/commands.js +41 -0
  53. package/dist/command-tree/completion.d.ts +6 -0
  54. package/dist/command-tree/completion.js +36 -0
  55. package/dist/command-tree/grammar.d.ts +18 -0
  56. package/dist/command-tree/grammar.js +160 -0
  57. package/dist/command-tree/help.d.ts +62 -0
  58. package/dist/command-tree/help.js +219 -0
  59. package/dist/command-tree/index.d.ts +8 -0
  60. package/dist/command-tree/index.js +6 -0
  61. package/dist/command-tree/local.d.ts +3 -0
  62. package/dist/command-tree/local.js +126 -0
  63. package/dist/command-tree/placeholder.d.ts +3 -0
  64. package/dist/command-tree/placeholder.js +4 -0
  65. package/dist/command-tree/row.d.ts +29 -0
  66. package/dist/command-tree/row.js +2 -0
  67. package/dist/command-tree/suggest.d.ts +3 -0
  68. package/dist/command-tree/suggest.js +81 -0
  69. package/dist/command-tree/tree.d.ts +34 -0
  70. package/dist/command-tree/tree.js +124 -0
  71. package/dist/connection/client.d.ts +692 -0
  72. package/dist/connection/client.js +28 -0
  73. package/dist/connection/commands.d.ts +15 -0
  74. package/dist/connection/commands.js +118 -0
  75. package/dist/connection/index.d.ts +7 -0
  76. package/dist/connection/index.js +7 -0
  77. package/dist/connection/input.d.ts +50 -0
  78. package/dist/connection/input.js +90 -0
  79. package/dist/connection/login.d.ts +13 -0
  80. package/dist/connection/login.js +69 -0
  81. package/dist/connection/output/format.d.ts +32 -0
  82. package/dist/connection/output/format.js +94 -0
  83. package/dist/connection/output/index.d.ts +2 -0
  84. package/dist/connection/output/index.js +2 -0
  85. package/dist/connection/resolve.d.ts +60 -0
  86. package/dist/connection/resolve.js +30 -0
  87. package/dist/connection/signin.d.ts +4 -0
  88. package/dist/connection/signin.js +32 -0
  89. package/dist/connection/system.d.ts +4 -0
  90. package/dist/connection/system.js +190 -0
  91. package/dist/connection/tree/index.d.ts +2 -0
  92. package/dist/connection/tree/index.js +2 -0
  93. package/dist/connection/tree/tree.d.ts +3 -0
  94. package/dist/connection/tree/tree.js +209 -0
  95. package/dist/container/client.d.ts +142 -0
  96. package/dist/container/client.js +11 -0
  97. package/dist/container/commands.d.ts +7 -0
  98. package/dist/container/commands.js +100 -0
  99. package/dist/container/index.d.ts +3 -0
  100. package/dist/container/index.js +3 -0
  101. package/dist/container/output/format.d.ts +11 -0
  102. package/dist/container/output/format.js +28 -0
  103. package/dist/container/output/index.d.ts +2 -0
  104. package/dist/container/output/index.js +2 -0
  105. package/dist/context/client.d.ts +7 -0
  106. package/dist/context/client.js +21 -0
  107. package/dist/context/commands.d.ts +3 -0
  108. package/dist/context/commands.js +27 -0
  109. package/dist/context/index.d.ts +3 -0
  110. package/dist/context/index.js +3 -0
  111. package/dist/development/cli.d.ts +3 -0
  112. package/dist/development/cli.js +44 -0
  113. package/dist/execution/client.d.ts +25 -0
  114. package/dist/execution/client.js +24 -0
  115. package/dist/execution/index.d.ts +3 -0
  116. package/dist/execution/index.js +3 -0
  117. package/dist/execution/relocation.d.ts +6 -0
  118. package/dist/execution/relocation.js +123 -0
  119. package/dist/execution/tree/index.d.ts +2 -0
  120. package/dist/execution/tree/index.js +2 -0
  121. package/dist/execution/tree/tree.d.ts +3 -0
  122. package/dist/execution/tree/tree.js +137 -0
  123. package/dist/hold/client.d.ts +137 -0
  124. package/dist/hold/client.js +12 -0
  125. package/dist/hold/commands.d.ts +5 -0
  126. package/dist/hold/commands.js +91 -0
  127. package/dist/hold/index.d.ts +3 -0
  128. package/dist/hold/index.js +3 -0
  129. package/dist/hold/output/format.d.ts +11 -0
  130. package/dist/hold/output/format.js +29 -0
  131. package/dist/hold/output/index.d.ts +2 -0
  132. package/dist/hold/output/index.js +2 -0
  133. package/dist/hold/tree/index.d.ts +2 -0
  134. package/dist/hold/tree/index.js +2 -0
  135. package/dist/hold/tree/tree.d.ts +3 -0
  136. package/dist/hold/tree/tree.js +96 -0
  137. package/dist/import/client.d.ts +14 -0
  138. package/dist/import/client.js +16 -0
  139. package/dist/import/commands.d.ts +5 -0
  140. package/dist/import/commands.js +76 -0
  141. package/dist/import/index.d.ts +3 -0
  142. package/dist/import/index.js +3 -0
  143. package/dist/import/input.d.ts +16 -0
  144. package/dist/import/input.js +92 -0
  145. package/dist/import/output.d.ts +6 -0
  146. package/dist/import/output.js +40 -0
  147. package/dist/index.d.ts +2 -0
  148. package/dist/index.js +2 -0
  149. package/dist/integration/client.d.ts +1284 -0
  150. package/dist/integration/client.js +24 -0
  151. package/dist/integration/commands.d.ts +10 -0
  152. package/dist/integration/commands.js +104 -0
  153. package/dist/integration/index.d.ts +3 -0
  154. package/dist/integration/index.js +3 -0
  155. package/dist/integration/output.d.ts +22 -0
  156. package/dist/integration/output.js +20 -0
  157. package/dist/local-node/call.d.ts +7 -0
  158. package/dist/local-node/call.js +13 -0
  159. package/dist/local-node/client.d.ts +67 -0
  160. package/dist/local-node/client.js +241 -0
  161. package/dist/local-node/index.d.ts +3 -0
  162. package/dist/local-node/index.js +3 -0
  163. package/dist/login/agent-provider.d.ts +20 -0
  164. package/dist/login/agent-provider.js +109 -0
  165. package/dist/login/commands.d.ts +4 -0
  166. package/dist/login/commands.js +93 -0
  167. package/dist/login/failure.d.ts +3 -0
  168. package/dist/login/failure.js +14 -0
  169. package/dist/login/gateway.d.ts +12 -0
  170. package/dist/login/gateway.js +71 -0
  171. package/dist/login/index.d.ts +3 -0
  172. package/dist/login/index.js +2 -0
  173. package/dist/login/menu.d.ts +4 -0
  174. package/dist/login/menu.js +105 -0
  175. package/dist/login/output/format.d.ts +16 -0
  176. package/dist/login/output/format.js +31 -0
  177. package/dist/login/output/index.d.ts +2 -0
  178. package/dist/login/output/index.js +2 -0
  179. package/dist/login/vendor-account.d.ts +95 -0
  180. package/dist/login/vendor-account.js +75 -0
  181. package/dist/login/vendor-input.d.ts +14 -0
  182. package/dist/login/vendor-input.js +36 -0
  183. package/dist/mcp/calls.d.ts +7 -0
  184. package/dist/mcp/calls.js +202 -0
  185. package/dist/mcp/commands.d.ts +9 -0
  186. package/dist/mcp/commands.js +21 -0
  187. package/dist/mcp/index.d.ts +2 -0
  188. package/dist/mcp/index.js +2 -0
  189. package/dist/mcp/server.d.ts +11 -0
  190. package/dist/mcp/server.js +57 -0
  191. package/dist/orchestration/client.d.ts +78 -0
  192. package/dist/orchestration/client.js +89 -0
  193. package/dist/orchestration/commands.d.ts +14 -0
  194. package/dist/orchestration/commands.js +312 -0
  195. package/dist/orchestration/index.d.ts +3 -0
  196. package/dist/orchestration/index.js +3 -0
  197. package/dist/orchestration/output/compact-aggregate.d.ts +121 -0
  198. package/dist/orchestration/output/compact-aggregate.js +110 -0
  199. package/dist/orchestration/output/compact-run-list.d.ts +20 -0
  200. package/dist/orchestration/output/compact-run-list.js +16 -0
  201. package/dist/orchestration/output/human.d.ts +80 -0
  202. package/dist/orchestration/output/human.js +252 -0
  203. package/dist/orchestration/output/index.d.ts +4 -0
  204. package/dist/orchestration/output/index.js +4 -0
  205. package/dist/orchestration/tree/index.d.ts +2 -0
  206. package/dist/orchestration/tree/index.js +2 -0
  207. package/dist/orchestration/tree/tree.d.ts +3 -0
  208. package/dist/orchestration/tree/tree.js +142 -0
  209. package/dist/port-lease/client.d.ts +160 -0
  210. package/dist/port-lease/client.js +11 -0
  211. package/dist/port-lease/commands.d.ts +6 -0
  212. package/dist/port-lease/commands.js +17 -0
  213. package/dist/port-lease/index.d.ts +3 -0
  214. package/dist/port-lease/index.js +3 -0
  215. package/dist/port-lease/input.d.ts +65 -0
  216. package/dist/port-lease/input.js +67 -0
  217. package/dist/port-lease/output/format.d.ts +11 -0
  218. package/dist/port-lease/output/format.js +24 -0
  219. package/dist/port-lease/output/index.d.ts +2 -0
  220. package/dist/port-lease/output/index.js +2 -0
  221. package/dist/presentation/client.d.ts +10 -0
  222. package/dist/presentation/client.js +9 -0
  223. package/dist/presentation/commands.d.ts +6 -0
  224. package/dist/presentation/commands.js +78 -0
  225. package/dist/presentation/index.d.ts +4 -0
  226. package/dist/presentation/index.js +3 -0
  227. package/dist/presentation/output/format.d.ts +11 -0
  228. package/dist/presentation/output/format.js +32 -0
  229. package/dist/presentation/output/index.d.ts +3 -0
  230. package/dist/presentation/output/index.js +2 -0
  231. package/dist/project-guard/client.d.ts +88 -0
  232. package/dist/project-guard/client.js +7 -0
  233. package/dist/project-guard/commands.d.ts +4 -0
  234. package/dist/project-guard/commands.js +39 -0
  235. package/dist/project-guard/index.d.ts +3 -0
  236. package/dist/project-guard/index.js +3 -0
  237. package/dist/project-guard/input.d.ts +18 -0
  238. package/dist/project-guard/input.js +47 -0
  239. package/dist/project-guard/output/format.d.ts +11 -0
  240. package/dist/project-guard/output/format.js +35 -0
  241. package/dist/project-guard/output/index.d.ts +2 -0
  242. package/dist/project-guard/output/index.js +2 -0
  243. package/dist/project-workspace/client.d.ts +86 -0
  244. package/dist/project-workspace/client.js +159 -0
  245. package/dist/project-workspace/commands.d.ts +30 -0
  246. package/dist/project-workspace/commands.js +700 -0
  247. package/dist/project-workspace/index.d.ts +5 -0
  248. package/dist/project-workspace/index.js +5 -0
  249. package/dist/project-workspace/metadata-client.d.ts +99 -0
  250. package/dist/project-workspace/metadata-client.js +8 -0
  251. package/dist/project-workspace/metadata-commands.d.ts +4 -0
  252. package/dist/project-workspace/metadata-commands.js +56 -0
  253. package/dist/project-workspace/output/human.d.ts +126 -0
  254. package/dist/project-workspace/output/human.js +103 -0
  255. package/dist/project-workspace/output/index.d.ts +3 -0
  256. package/dist/project-workspace/output/index.js +3 -0
  257. package/dist/project-workspace/output/metadata.d.ts +11 -0
  258. package/dist/project-workspace/output/metadata.js +17 -0
  259. package/dist/project-workspace/tree/index.d.ts +2 -0
  260. package/dist/project-workspace/tree/index.js +2 -0
  261. package/dist/project-workspace/tree/tree.d.ts +3 -0
  262. package/dist/project-workspace/tree/tree.js +197 -0
  263. package/dist/provider/client.d.ts +6 -0
  264. package/dist/provider/client.js +5 -0
  265. package/dist/provider/commands.d.ts +3 -0
  266. package/dist/provider/commands.js +38 -0
  267. package/dist/provider/index.d.ts +3 -0
  268. package/dist/provider/index.js +3 -0
  269. package/dist/reference/commands.d.ts +3 -0
  270. package/dist/reference/commands.js +39 -0
  271. package/dist/reference/index.d.ts +3 -0
  272. package/dist/reference/index.js +3 -0
  273. package/dist/reference/resolve.d.ts +29 -0
  274. package/dist/reference/resolve.js +294 -0
  275. package/dist/reference/tree/index.d.ts +2 -0
  276. package/dist/reference/tree/index.js +2 -0
  277. package/dist/reference/tree/tree.d.ts +3 -0
  278. package/dist/reference/tree/tree.js +17 -0
  279. package/dist/remote-node/client.d.ts +258 -0
  280. package/dist/remote-node/client.js +12 -0
  281. package/dist/remote-node/commands.d.ts +6 -0
  282. package/dist/remote-node/commands.js +264 -0
  283. package/dist/remote-node/connector.d.ts +59 -0
  284. package/dist/remote-node/connector.js +122 -0
  285. package/dist/remote-node/index.d.ts +4 -0
  286. package/dist/remote-node/index.js +4 -0
  287. package/dist/remote-node/reachability.d.ts +22 -0
  288. package/dist/remote-node/reachability.js +34 -0
  289. package/dist/remote-node/text.d.ts +9 -0
  290. package/dist/remote-node/text.js +64 -0
  291. package/dist/remote-node/tree/index.d.ts +2 -0
  292. package/dist/remote-node/tree/index.js +2 -0
  293. package/dist/remote-node/tree/tree.d.ts +3 -0
  294. package/dist/remote-node/tree/tree.js +51 -0
  295. package/dist/run-ledger/client.d.ts +358 -0
  296. package/dist/run-ledger/client.js +13 -0
  297. package/dist/run-ledger/commands.d.ts +8 -0
  298. package/dist/run-ledger/commands.js +19 -0
  299. package/dist/run-ledger/index.d.ts +3 -0
  300. package/dist/run-ledger/index.js +3 -0
  301. package/dist/run-ledger/input.d.ts +42 -0
  302. package/dist/run-ledger/input.js +107 -0
  303. package/dist/run-ledger/output/format.d.ts +11 -0
  304. package/dist/run-ledger/output/format.js +49 -0
  305. package/dist/run-ledger/output/index.d.ts +2 -0
  306. package/dist/run-ledger/output/index.js +2 -0
  307. package/dist/session/agent-permission.d.ts +63 -0
  308. package/dist/session/agent-permission.js +20 -0
  309. package/dist/session/approval/client.d.ts +117 -0
  310. package/dist/session/approval/client.js +7 -0
  311. package/dist/session/approval/commands.d.ts +7 -0
  312. package/dist/session/approval/commands.js +123 -0
  313. package/dist/session/approval/index.d.ts +3 -0
  314. package/dist/session/approval/index.js +3 -0
  315. package/dist/session/approval/output/format.d.ts +12 -0
  316. package/dist/session/approval/output/format.js +25 -0
  317. package/dist/session/approval/output/index.d.ts +2 -0
  318. package/dist/session/approval/output/index.js +2 -0
  319. package/dist/session/attach-client.d.ts +16 -0
  320. package/dist/session/attach-client.js +8 -0
  321. package/dist/session/attach-render.d.ts +16 -0
  322. package/dist/session/attach-render.js +154 -0
  323. package/dist/session/attach.d.ts +5 -0
  324. package/dist/session/attach.js +106 -0
  325. package/dist/session/client.d.ts +132 -0
  326. package/dist/session/client.js +128 -0
  327. package/dist/session/coding-client.d.ts +16 -0
  328. package/dist/session/coding-client.js +15 -0
  329. package/dist/session/coding-commands.d.ts +4 -0
  330. package/dist/session/coding-commands.js +50 -0
  331. package/dist/session/commands.d.ts +13 -0
  332. package/dist/session/commands.js +488 -0
  333. package/dist/session/create-tasks.d.ts +20 -0
  334. package/dist/session/create-tasks.js +110 -0
  335. package/dist/session/index.d.ts +9 -0
  336. package/dist/session/index.js +7 -0
  337. package/dist/session/interaction/client.d.ts +347 -0
  338. package/dist/session/interaction/client.js +15 -0
  339. package/dist/session/interaction/commands.d.ts +7 -0
  340. package/dist/session/interaction/commands.js +101 -0
  341. package/dist/session/interaction/index.d.ts +3 -0
  342. package/dist/session/interaction/index.js +3 -0
  343. package/dist/session/interaction/input.d.ts +15 -0
  344. package/dist/session/interaction/input.js +46 -0
  345. package/dist/session/interaction/output/format.d.ts +11 -0
  346. package/dist/session/interaction/output/format.js +3 -0
  347. package/dist/session/interaction/output/index.d.ts +2 -0
  348. package/dist/session/interaction/output/index.js +2 -0
  349. package/dist/session/output/diff.d.ts +3 -0
  350. package/dist/session/output/diff.js +30 -0
  351. package/dist/session/output/failure.d.ts +11 -0
  352. package/dist/session/output/failure.js +24 -0
  353. package/dist/session/output/human.d.ts +112 -0
  354. package/dist/session/output/human.js +71 -0
  355. package/dist/session/output/index.d.ts +6 -0
  356. package/dist/session/output/index.js +6 -0
  357. package/dist/session/output/observe.d.ts +4 -0
  358. package/dist/session/output/observe.js +46 -0
  359. package/dist/session/output/tasks.d.ts +19 -0
  360. package/dist/session/output/tasks.js +34 -0
  361. package/dist/session/rename.d.ts +3 -0
  362. package/dist/session/rename.js +37 -0
  363. package/dist/session/task-file.d.ts +5 -0
  364. package/dist/session/task-file.js +23 -0
  365. package/dist/session/tree/index.d.ts +2 -0
  366. package/dist/session/tree/index.js +2 -0
  367. package/dist/session/tree/tree.d.ts +3 -0
  368. package/dist/session/tree/tree.js +309 -0
  369. package/dist/session/turn/client.d.ts +25 -0
  370. package/dist/session/turn/client.js +40 -0
  371. package/dist/session/turn/commands.d.ts +6 -0
  372. package/dist/session/turn/commands.js +157 -0
  373. package/dist/session/turn/index.d.ts +4 -0
  374. package/dist/session/turn/index.js +3 -0
  375. package/dist/session/turn/output.d.ts +42 -0
  376. package/dist/session/turn/output.js +38 -0
  377. package/dist/status/client.d.ts +119 -0
  378. package/dist/status/client.js +5 -0
  379. package/dist/status/command.d.ts +4 -0
  380. package/dist/status/command.js +40 -0
  381. package/dist/status/doctor.d.ts +15 -0
  382. package/dist/status/doctor.js +111 -0
  383. package/dist/status/index.d.ts +5 -0
  384. package/dist/status/index.js +4 -0
  385. package/dist/status/output/compact.d.ts +31 -0
  386. package/dist/status/output/compact.js +46 -0
  387. package/dist/status/output/human.d.ts +7 -0
  388. package/dist/status/output/human.js +30 -0
  389. package/dist/status/output/index.d.ts +3 -0
  390. package/dist/status/output/index.js +3 -0
  391. package/dist/terminal/arguments.d.ts +13 -0
  392. package/dist/terminal/arguments.js +79 -0
  393. package/dist/terminal/client.d.ts +79 -0
  394. package/dist/terminal/client.js +68 -0
  395. package/dist/terminal/commands.d.ts +7 -0
  396. package/dist/terminal/commands.js +131 -0
  397. package/dist/terminal/control-commands.d.ts +10 -0
  398. package/dist/terminal/control-commands.js +212 -0
  399. package/dist/terminal/index.d.ts +4 -0
  400. package/dist/terminal/index.js +4 -0
  401. package/dist/terminal/output/compact-list.d.ts +147 -0
  402. package/dist/terminal/output/compact-list.js +152 -0
  403. package/dist/terminal/output/human.d.ts +59 -0
  404. package/dist/terminal/output/human.js +55 -0
  405. package/dist/terminal/output/index.d.ts +3 -0
  406. package/dist/terminal/output/index.js +3 -0
  407. package/dist/terminal/tree/index.d.ts +2 -0
  408. package/dist/terminal/tree/index.js +2 -0
  409. package/dist/terminal/tree/tree.d.ts +3 -0
  410. package/dist/terminal/tree/tree.js +104 -0
  411. package/guidance/maia-cli/SKILL.md +58 -0
  412. package/guidance/maia-orchestration/SKILL.md +54 -0
  413. package/package.json +76 -0
@@ -0,0 +1,358 @@
1
+ import { type RunLedgerCreateParameters, type RunLedgerListParameters, type RunLedgerTaskDispatchParameters, type RunLedgerTaskListParameters, type RunLedgerTaskSettleParameters, type RunLedgerTaskShowParameters } from "@maiaos/sdk";
2
+ import type { CliNodeOperations } from "../local-node/index.js";
3
+ export declare const makeRunLedgerClient: (node: CliNodeOperations) => {
4
+ createRunLedger: (input: Omit<RunLedgerCreateParameters, "tasks"> & {
5
+ readonly tasks: readonly unknown[];
6
+ }) => import("../local-node/client.js").CliNodeEffect<{
7
+ readonly commandId: string;
8
+ readonly delivery: "duplicate" | "new";
9
+ readonly receipt: {
10
+ readonly actorId: string;
11
+ readonly aggregateRevision: string;
12
+ readonly commandId: string;
13
+ readonly createdAt: string;
14
+ readonly eventCursor: string;
15
+ readonly method: string;
16
+ readonly receiptId: string;
17
+ readonly schemaVersion: 1;
18
+ readonly state: "succeeded";
19
+ readonly target: {
20
+ readonly id: string;
21
+ readonly type: string;
22
+ };
23
+ readonly updatedAt: string;
24
+ };
25
+ readonly method: "run.ledger.create";
26
+ readonly run: {
27
+ readonly createdAt: string;
28
+ readonly id: string;
29
+ readonly schemaVersion: "maia.run-ledger/v1";
30
+ readonly state: "blocked" | "open" | "succeeded";
31
+ readonly taskCounts: {
32
+ readonly active: number;
33
+ readonly blocked: number;
34
+ readonly ready: number;
35
+ readonly stopped: number;
36
+ readonly succeeded: number;
37
+ };
38
+ readonly workspaceId: string;
39
+ };
40
+ readonly tasks: readonly {
41
+ readonly clientKey: string;
42
+ readonly createdAt: string;
43
+ readonly dependencyTaskIds: readonly string[];
44
+ readonly failedDispatches: number;
45
+ readonly id: string;
46
+ readonly revision: string;
47
+ readonly runId: string;
48
+ readonly schemaVersion: "maia.run-ledger/v1";
49
+ readonly state: "active" | "blocked" | "ready" | "stopped" | "succeeded";
50
+ readonly updatedAt: string;
51
+ readonly dispatches: readonly {
52
+ readonly createdAt: string;
53
+ readonly id: string;
54
+ readonly ordinal: number;
55
+ readonly sessionId: string;
56
+ readonly settledTurnId?: string | undefined;
57
+ readonly state: "active" | "failed" | "succeeded";
58
+ readonly turnId: string;
59
+ readonly updatedAt: string;
60
+ }[];
61
+ }[];
62
+ }>;
63
+ dispatchRunLedgerTask: (input: RunLedgerTaskDispatchParameters) => import("../local-node/client.js").CliNodeEffect<{
64
+ readonly commandId: string;
65
+ readonly delivery: "duplicate" | "new";
66
+ readonly receipt: {
67
+ readonly actorId: string;
68
+ readonly aggregateRevision: string;
69
+ readonly commandId: string;
70
+ readonly createdAt: string;
71
+ readonly eventCursor: string;
72
+ readonly method: string;
73
+ readonly receiptId: string;
74
+ readonly schemaVersion: 1;
75
+ readonly state: "succeeded";
76
+ readonly target: {
77
+ readonly id: string;
78
+ readonly type: string;
79
+ };
80
+ readonly updatedAt: string;
81
+ };
82
+ readonly dispatch: {
83
+ readonly createdAt: string;
84
+ readonly id: string;
85
+ readonly ordinal: number;
86
+ readonly sessionId: string;
87
+ readonly settledTurnId?: string | undefined;
88
+ readonly state: "active" | "failed" | "succeeded";
89
+ readonly turnId: string;
90
+ readonly updatedAt: string;
91
+ };
92
+ readonly method: "run.ledger.task.dispatch";
93
+ readonly task: {
94
+ readonly clientKey: string;
95
+ readonly createdAt: string;
96
+ readonly dependencyTaskIds: readonly string[];
97
+ readonly failedDispatches: number;
98
+ readonly id: string;
99
+ readonly revision: string;
100
+ readonly runId: string;
101
+ readonly schemaVersion: "maia.run-ledger/v1";
102
+ readonly state: "active" | "blocked" | "ready" | "stopped" | "succeeded";
103
+ readonly updatedAt: string;
104
+ readonly dispatches: readonly {
105
+ readonly createdAt: string;
106
+ readonly id: string;
107
+ readonly ordinal: number;
108
+ readonly sessionId: string;
109
+ readonly settledTurnId?: string | undefined;
110
+ readonly state: "active" | "failed" | "succeeded";
111
+ readonly turnId: string;
112
+ readonly updatedAt: string;
113
+ }[];
114
+ };
115
+ readonly turn: {
116
+ readonly createdAt: string;
117
+ readonly id: string;
118
+ readonly input: {
119
+ readonly text: string;
120
+ readonly type: "text";
121
+ };
122
+ readonly revision: string;
123
+ readonly schemaVersion: 1;
124
+ readonly sessionId: string;
125
+ readonly sessionRevision: string;
126
+ readonly updatedAt: string;
127
+ readonly state: "queued";
128
+ } | {
129
+ readonly createdAt: string;
130
+ readonly id: string;
131
+ readonly input: {
132
+ readonly text: string;
133
+ readonly type: "text";
134
+ };
135
+ readonly revision: string;
136
+ readonly schemaVersion: 1;
137
+ readonly sessionId: string;
138
+ readonly sessionRevision: string;
139
+ readonly updatedAt: string;
140
+ readonly state: "dispatching";
141
+ } | {
142
+ readonly createdAt: string;
143
+ readonly id: string;
144
+ readonly input: {
145
+ readonly text: string;
146
+ readonly type: "text";
147
+ };
148
+ readonly revision: string;
149
+ readonly schemaVersion: 1;
150
+ readonly sessionId: string;
151
+ readonly sessionRevision: string;
152
+ readonly updatedAt: string;
153
+ readonly state: "running";
154
+ } | {
155
+ readonly createdAt: string;
156
+ readonly id: string;
157
+ readonly input: {
158
+ readonly text: string;
159
+ readonly type: "text";
160
+ };
161
+ readonly revision: string;
162
+ readonly schemaVersion: 1;
163
+ readonly sessionId: string;
164
+ readonly sessionRevision: string;
165
+ readonly updatedAt: string;
166
+ readonly responseText: string;
167
+ readonly state: "completed";
168
+ readonly tokenUsage?: {
169
+ readonly cachedInputTokens: number;
170
+ readonly inputTokens: number;
171
+ readonly modelCallCount?: number | undefined;
172
+ readonly outputTokens: number;
173
+ readonly reasoningOutputTokens: number;
174
+ readonly totalTokens: number;
175
+ } | undefined;
176
+ } | {
177
+ readonly createdAt: string;
178
+ readonly id: string;
179
+ readonly input: {
180
+ readonly text: string;
181
+ readonly type: "text";
182
+ };
183
+ readonly revision: string;
184
+ readonly schemaVersion: 1;
185
+ readonly sessionId: string;
186
+ readonly sessionRevision: string;
187
+ readonly updatedAt: string;
188
+ readonly failure?: {
189
+ readonly code: string;
190
+ readonly message: string;
191
+ } | undefined;
192
+ readonly failureReason: "approval_required" | "repository_changed" | "runtime_failed" | "turn_rejected";
193
+ readonly state: "failed";
194
+ } | {
195
+ readonly createdAt: string;
196
+ readonly id: string;
197
+ readonly input: {
198
+ readonly text: string;
199
+ readonly type: "text";
200
+ };
201
+ readonly revision: string;
202
+ readonly schemaVersion: 1;
203
+ readonly sessionId: string;
204
+ readonly sessionRevision: string;
205
+ readonly updatedAt: string;
206
+ readonly failure?: {
207
+ readonly code: string;
208
+ readonly message: string;
209
+ } | undefined;
210
+ readonly failureReason: "output_limit_exceeded" | "protocol_invalid" | "runtime_exited" | "turn_deadline_exceeded";
211
+ readonly state: "outcome-unknown";
212
+ } | {
213
+ readonly createdAt: string;
214
+ readonly id: string;
215
+ readonly input: {
216
+ readonly text: string;
217
+ readonly type: "text";
218
+ };
219
+ readonly revision: string;
220
+ readonly schemaVersion: 1;
221
+ readonly sessionId: string;
222
+ readonly sessionRevision: string;
223
+ readonly updatedAt: string;
224
+ readonly state: "interrupted";
225
+ };
226
+ }>;
227
+ settleRunLedgerTask: (input: RunLedgerTaskSettleParameters) => import("../local-node/client.js").CliNodeEffect<{
228
+ readonly commandId: string;
229
+ readonly delivery: "duplicate" | "new";
230
+ readonly receipt: {
231
+ readonly actorId: string;
232
+ readonly aggregateRevision: string;
233
+ readonly commandId: string;
234
+ readonly createdAt: string;
235
+ readonly eventCursor: string;
236
+ readonly method: string;
237
+ readonly receiptId: string;
238
+ readonly schemaVersion: 1;
239
+ readonly state: "succeeded";
240
+ readonly target: {
241
+ readonly id: string;
242
+ readonly type: string;
243
+ };
244
+ readonly updatedAt: string;
245
+ };
246
+ readonly method: "run.ledger.task.settle";
247
+ readonly task: {
248
+ readonly clientKey: string;
249
+ readonly createdAt: string;
250
+ readonly dependencyTaskIds: readonly string[];
251
+ readonly failedDispatches: number;
252
+ readonly id: string;
253
+ readonly revision: string;
254
+ readonly runId: string;
255
+ readonly schemaVersion: "maia.run-ledger/v1";
256
+ readonly state: "active" | "blocked" | "ready" | "stopped" | "succeeded";
257
+ readonly updatedAt: string;
258
+ readonly dispatches: readonly {
259
+ readonly createdAt: string;
260
+ readonly id: string;
261
+ readonly ordinal: number;
262
+ readonly sessionId: string;
263
+ readonly settledTurnId?: string | undefined;
264
+ readonly state: "active" | "failed" | "succeeded";
265
+ readonly turnId: string;
266
+ readonly updatedAt: string;
267
+ readonly evidence?: string | undefined;
268
+ }[];
269
+ readonly objective: string;
270
+ };
271
+ }>;
272
+ listRunLedgers: (input: RunLedgerListParameters) => import("../local-node/client.js").CliNodeEffect<{
273
+ readonly items: readonly {
274
+ readonly createdAt: string;
275
+ readonly id: string;
276
+ readonly schemaVersion: "maia.run-ledger/v1";
277
+ readonly state: "blocked" | "open" | "succeeded";
278
+ readonly taskCounts: {
279
+ readonly active: number;
280
+ readonly blocked: number;
281
+ readonly ready: number;
282
+ readonly stopped: number;
283
+ readonly succeeded: number;
284
+ };
285
+ readonly workspaceId: string;
286
+ }[];
287
+ readonly method: "run.ledger.list";
288
+ readonly nextCursor?: string | undefined;
289
+ }>;
290
+ listRunLedgerTasks: (input: RunLedgerTaskListParameters) => import("../local-node/client.js").CliNodeEffect<{
291
+ readonly items: readonly {
292
+ readonly clientKey: string;
293
+ readonly createdAt: string;
294
+ readonly dependencyTaskIds: readonly string[];
295
+ readonly failedDispatches: number;
296
+ readonly id: string;
297
+ readonly revision: string;
298
+ readonly runId: string;
299
+ readonly schemaVersion: "maia.run-ledger/v1";
300
+ readonly state: "active" | "blocked" | "ready" | "stopped" | "succeeded";
301
+ readonly updatedAt: string;
302
+ readonly dispatches: readonly {
303
+ readonly createdAt: string;
304
+ readonly id: string;
305
+ readonly ordinal: number;
306
+ readonly sessionId: string;
307
+ readonly settledTurnId?: string | undefined;
308
+ readonly state: "active" | "failed" | "succeeded";
309
+ readonly turnId: string;
310
+ readonly updatedAt: string;
311
+ }[];
312
+ }[];
313
+ readonly method: "run.ledger.task.list";
314
+ readonly run: {
315
+ readonly createdAt: string;
316
+ readonly id: string;
317
+ readonly schemaVersion: "maia.run-ledger/v1";
318
+ readonly state: "blocked" | "open" | "succeeded";
319
+ readonly taskCounts: {
320
+ readonly active: number;
321
+ readonly blocked: number;
322
+ readonly ready: number;
323
+ readonly stopped: number;
324
+ readonly succeeded: number;
325
+ };
326
+ readonly workspaceId: string;
327
+ };
328
+ }>;
329
+ showRunLedgerTask: (input: RunLedgerTaskShowParameters) => import("../local-node/client.js").CliNodeEffect<{
330
+ readonly method: "run.ledger.task.show";
331
+ readonly task: {
332
+ readonly clientKey: string;
333
+ readonly createdAt: string;
334
+ readonly dependencyTaskIds: readonly string[];
335
+ readonly failedDispatches: number;
336
+ readonly id: string;
337
+ readonly revision: string;
338
+ readonly runId: string;
339
+ readonly schemaVersion: "maia.run-ledger/v1";
340
+ readonly state: "active" | "blocked" | "ready" | "stopped" | "succeeded";
341
+ readonly updatedAt: string;
342
+ readonly dispatches: readonly {
343
+ readonly createdAt: string;
344
+ readonly id: string;
345
+ readonly ordinal: number;
346
+ readonly sessionId: string;
347
+ readonly settledTurnId?: string | undefined;
348
+ readonly state: "active" | "failed" | "succeeded";
349
+ readonly turnId: string;
350
+ readonly updatedAt: string;
351
+ readonly evidence?: string | undefined;
352
+ }[];
353
+ readonly objective: string;
354
+ };
355
+ }>;
356
+ };
357
+ export type RunLedgerCliDependencies = ReturnType<typeof makeRunLedgerClient>;
358
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1,13 @@
1
+ import { runLedgerCreateParametersSchema, runLedgerListParametersSchema, runLedgerTaskDispatchParametersSchema, runLedgerTaskListParametersSchema, runLedgerTaskSettleParametersSchema, runLedgerTaskShowParametersSchema, } from "@maiaos/sdk";
2
+ const mutationClient = (node) => ({
3
+ createRunLedger: (input) => node.runValidatedNodeOperation(input, runLedgerCreateParametersSchema, (client, parameters, options) => client.createRunLedger(parameters, options), { commandId: input.commandId }),
4
+ dispatchRunLedgerTask: (input) => node.runValidatedNodeOperation(input, runLedgerTaskDispatchParametersSchema, (client, parameters, options) => client.dispatchRunLedgerTask(parameters, options), { commandId: input.commandId }),
5
+ settleRunLedgerTask: (input) => node.runValidatedNodeOperation(input, runLedgerTaskSettleParametersSchema, (client, parameters, options) => client.settleRunLedgerTask(parameters, options), { commandId: input.commandId }),
6
+ });
7
+ export const makeRunLedgerClient = (node) => ({
8
+ ...mutationClient(node),
9
+ listRunLedgers: (input) => node.runValidatedNodeOperation(input, runLedgerListParametersSchema, (client, parameters, options) => client.listRunLedgers(parameters, options)),
10
+ listRunLedgerTasks: (input) => node.runValidatedNodeOperation(input, runLedgerTaskListParametersSchema, (client, parameters, options) => client.listRunLedgerTasks(parameters, options)),
11
+ showRunLedgerTask: (input) => node.runValidatedNodeOperation(input, runLedgerTaskShowParametersSchema, (client, parameters, options) => client.showRunLedgerTask(parameters, options)),
12
+ });
13
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1,8 @@
1
+ import { type CommandContext, type CommandEffect } from "../command-line/index.js";
2
+ export declare const runLedgerCreate: (tokens: readonly string[], context: CommandContext) => CommandEffect;
3
+ export declare const runLedgerList: (tokens: readonly string[], context: CommandContext) => CommandEffect;
4
+ export declare const runLedgerTaskList: (tokens: readonly string[], context: CommandContext) => CommandEffect;
5
+ export declare const runLedgerTaskShow: (tokens: readonly string[], context: CommandContext) => CommandEffect;
6
+ export declare const runLedgerTaskDispatch: (tokens: readonly string[], context: CommandContext) => CommandEffect;
7
+ export declare const runLedgerTaskSettle: (tokens: readonly string[], context: CommandContext) => CommandEffect;
8
+ //# sourceMappingURL=commands.d.ts.map
@@ -0,0 +1,19 @@
1
+ import * as Effect from "effect/Effect";
2
+ import { writeNodeResult, } from "../command-line/index.js";
3
+ import { readLedgerCreate, readLedgerDispatch, readLedgerList, readLedgerSettle, readLedgerShow, readLedgerTasks, } from "./input.js";
4
+ import { formatRunLedgerResult, } from "./output/index.js";
5
+ const run = (operation, input, context) => {
6
+ if (operation === undefined)
7
+ return Effect.die(new Error("Missing Run ledger client."));
8
+ return input.pipe(Effect.flatMap(operation), Effect.map((result) => writeNodeResult(result, context, {
9
+ toResult: (value) => ({ command: value.method, result: value }),
10
+ toText: formatRunLedgerResult,
11
+ })));
12
+ };
13
+ export const runLedgerCreate = (tokens, context) => run(context.dependencies.createRunLedger, readLedgerCreate(tokens, context), context);
14
+ export const runLedgerList = (tokens, context) => run(context.dependencies.listRunLedgers, readLedgerList(tokens), context);
15
+ export const runLedgerTaskList = (tokens, context) => run(context.dependencies.listRunLedgerTasks, readLedgerTasks(tokens), context);
16
+ export const runLedgerTaskShow = (tokens, context) => run(context.dependencies.showRunLedgerTask, readLedgerShow(tokens), context);
17
+ export const runLedgerTaskDispatch = (tokens, context) => run(context.dependencies.dispatchRunLedgerTask, readLedgerDispatch(tokens), context);
18
+ export const runLedgerTaskSettle = (tokens, context) => run(context.dependencies.settleRunLedgerTask, readLedgerSettle(tokens, context), context);
19
+ //# sourceMappingURL=commands.js.map
@@ -0,0 +1,3 @@
1
+ export { makeRunLedgerClient, type RunLedgerCliDependencies, } from "./client.js";
2
+ export { runLedgerCreate, runLedgerList, runLedgerTaskDispatch, runLedgerTaskList, runLedgerTaskSettle, runLedgerTaskShow, } from "./commands.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,3 @@
1
+ export { makeRunLedgerClient, } from "./client.js";
2
+ export { runLedgerCreate, runLedgerList, runLedgerTaskDispatch, runLedgerTaskList, runLedgerTaskSettle, runLedgerTaskShow, } from "./commands.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,42 @@
1
+ import * as Effect from "effect/Effect";
2
+ import { CliArgumentError, type CommandContext } from "../command-line/index.js";
3
+ export declare const readLedgerCreate: (tokens: readonly string[], context: CommandContext) => Effect.Effect<{
4
+ commandId: string;
5
+ } & {
6
+ tasks: readonly unknown[];
7
+ workspaceId: string;
8
+ }, CliArgumentError, import("effect/Crypto").Crypto>;
9
+ export declare const readLedgerList: (tokens: readonly string[]) => Effect.Effect<{
10
+ limit: number;
11
+ workspaceId: string;
12
+ afterCursor?: string | undefined;
13
+ }, never, never>;
14
+ export declare const readLedgerTasks: (tokens: readonly string[]) => Effect.Effect<{
15
+ runId: string;
16
+ ready?: true | undefined;
17
+ }, never, never>;
18
+ export declare const readLedgerShow: (tokens: readonly string[]) => Effect.Effect<{
19
+ runId: string;
20
+ taskId: string;
21
+ }, never, never>;
22
+ export declare const readLedgerDispatch: (tokens: readonly string[]) => Effect.Effect<{
23
+ commandId: string;
24
+ } & {
25
+ expectedSessionRevision: string;
26
+ expectedTaskRevision: string;
27
+ runId: string;
28
+ sessionId: string;
29
+ taskId: string;
30
+ }, never, import("effect/Crypto").Crypto>;
31
+ export declare const readLedgerSettle: (tokens: readonly string[], context: CommandContext) => Effect.Effect<{
32
+ commandId: string;
33
+ } & {
34
+ expectedTaskRevision: string;
35
+ outcome: "failed" | "succeeded";
36
+ runId: string;
37
+ sessionId: string;
38
+ taskId: string;
39
+ turnId?: string | undefined;
40
+ evidence: string;
41
+ }, CliArgumentError, import("effect/Crypto").Crypto>;
42
+ //# sourceMappingURL=input.d.ts.map
@@ -0,0 +1,107 @@
1
+ import { MAX_RUN_LEDGER_EVIDENCE_BYTES } from "@maiaos/sdk";
2
+ import * as Effect from "effect/Effect";
3
+ import * as Predicate from "effect/Predicate";
4
+ import { CliArgumentError, decodeJsonText, parseOptions, readPageSize, readRevisionOption, requirePositionals, } from "../command-line/index.js";
5
+ import { commandIdentifier } from "../local-node/index.js";
6
+ const withCommandId = (options, input) => Effect.map(commandIdentifier(options.get("--command-id")), (commandId) => ({
7
+ commandId,
8
+ ...input,
9
+ }));
10
+ const requireOption = (options, name) => {
11
+ const value = options.get(name);
12
+ if (value === undefined)
13
+ throw new CliArgumentError(`Option '${name}' is required.`);
14
+ return value;
15
+ };
16
+ const readStdin = (context, label, maxBytes) => {
17
+ const stdin = context.io.stdin;
18
+ if (stdin === undefined)
19
+ return Effect.fail(new CliArgumentError("Standard input is unavailable."));
20
+ return stdin({ label, maxBytes, maxChunks: 1024 });
21
+ };
22
+ const readTasks = (context) => Effect.flatMap(readStdin(context, "Run ledger graph", 64 * 1024), (text) => Effect.flatMap(decodeJsonText(text, () => new CliArgumentError("Standard input must be one valid JSON graph.")), (graph) => Predicate.hasProperty(graph, "tasks") && Array.isArray(graph.tasks)
23
+ ? Effect.succeed(graph.tasks)
24
+ : Effect.fail(new CliArgumentError('Standard input must be { "tasks": [...] }.'))));
25
+ export const readLedgerCreate = (tokens, context) => {
26
+ const parsed = parseOptions(tokens, new Set(["--command-id", "--workspace"]), new Set(["--graph-stdin"]));
27
+ requirePositionals(parsed.positionals, 0);
28
+ if (!parsed.flags.has("--graph-stdin"))
29
+ throw new CliArgumentError("Option '--graph-stdin' is required.");
30
+ const workspaceId = requireOption(parsed.options, "--workspace");
31
+ return Effect.flatMap(readTasks(context), (tasks) => withCommandId(parsed.options, { tasks, workspaceId }));
32
+ };
33
+ export const readLedgerList = (tokens) => {
34
+ const parsed = parseOptions(tokens, new Set(["--after", "--limit", "--workspace"]));
35
+ requirePositionals(parsed.positionals, 0);
36
+ const afterCursor = parsed.options.get("--after");
37
+ return Effect.succeed({
38
+ limit: readPageSize(parsed.options.get("--limit")),
39
+ workspaceId: requireOption(parsed.options, "--workspace"),
40
+ ...(afterCursor === undefined ? {} : { afterCursor }),
41
+ });
42
+ };
43
+ export const readLedgerTasks = (tokens) => {
44
+ const parsed = parseOptions(tokens, new Set(["--run"]), new Set(["--ready"]));
45
+ requirePositionals(parsed.positionals, 0);
46
+ return Effect.succeed({
47
+ runId: requireOption(parsed.options, "--run"),
48
+ ...(parsed.flags.has("--ready") ? { ready: true } : {}),
49
+ });
50
+ };
51
+ export const readLedgerShow = (tokens) => {
52
+ const parsed = parseOptions(tokens, new Set(["--run"]));
53
+ requirePositionals(parsed.positionals, 1);
54
+ return Effect.succeed({
55
+ runId: requireOption(parsed.options, "--run"),
56
+ taskId: parsed.positionals[0] ?? "",
57
+ });
58
+ };
59
+ export const readLedgerDispatch = (tokens) => {
60
+ const parsed = parseOptions(tokens, new Set([
61
+ "--command-id",
62
+ "--expected-session-revision",
63
+ "--expected-task-revision",
64
+ "--run",
65
+ "--session",
66
+ ]));
67
+ requirePositionals(parsed.positionals, 1);
68
+ return withCommandId(parsed.options, {
69
+ expectedSessionRevision: readRevisionOption(parsed.options.get("--expected-session-revision"), "--expected-session-revision"),
70
+ expectedTaskRevision: readRevisionOption(parsed.options.get("--expected-task-revision"), "--expected-task-revision"),
71
+ runId: requireOption(parsed.options, "--run"),
72
+ sessionId: requireOption(parsed.options, "--session"),
73
+ taskId: parsed.positionals[0] ?? "",
74
+ });
75
+ };
76
+ const readOutcome = (value) => {
77
+ if (value === "succeeded" || value === "failed")
78
+ return value;
79
+ throw new CliArgumentError("Option '--outcome' must be succeeded or failed.");
80
+ };
81
+ const settleFields = (parsed) => {
82
+ const turnId = parsed.options.get("--turn");
83
+ return {
84
+ expectedTaskRevision: readRevisionOption(parsed.options.get("--expected-task-revision"), "--expected-task-revision"),
85
+ outcome: readOutcome(requireOption(parsed.options, "--outcome")),
86
+ runId: requireOption(parsed.options, "--run"),
87
+ sessionId: requireOption(parsed.options, "--session"),
88
+ taskId: parsed.positionals[0] ?? "",
89
+ ...(turnId === undefined ? {} : { turnId }),
90
+ };
91
+ };
92
+ export const readLedgerSettle = (tokens, context) => {
93
+ const parsed = parseOptions(tokens, new Set([
94
+ "--command-id",
95
+ "--expected-task-revision",
96
+ "--outcome",
97
+ "--run",
98
+ "--session",
99
+ "--turn",
100
+ ]), new Set(["--evidence-stdin"]));
101
+ requirePositionals(parsed.positionals, 1);
102
+ if (!parsed.flags.has("--evidence-stdin"))
103
+ throw new CliArgumentError("Option '--evidence-stdin' is required.");
104
+ const fields = settleFields(parsed);
105
+ return Effect.flatMap(readStdin(context, "settlement evidence", MAX_RUN_LEDGER_EVIDENCE_BYTES), (evidence) => withCommandId(parsed.options, { ...fields, evidence }));
106
+ };
107
+ //# sourceMappingURL=input.js.map
@@ -0,0 +1,11 @@
1
+ import type { RunLedgerCreateResult, RunLedgerListResult, RunLedgerTaskDispatchResult, RunLedgerTaskListResult, RunLedgerTaskSettleResult, RunLedgerTaskShowResult } from "@maiaos/sdk";
2
+ export type RunLedgerCliResult = RunLedgerCreateResult | RunLedgerListResult | RunLedgerTaskDispatchResult | RunLedgerTaskListResult | RunLedgerTaskSettleResult | RunLedgerTaskShowResult;
3
+ export type CliRunLedgerResult = {
4
+ readonly command: RunLedgerCliResult["method"];
5
+ readonly result: RunLedgerCliResult;
6
+ };
7
+ export declare const isRunLedgerResult: (result: {
8
+ readonly command: string;
9
+ }) => result is CliRunLedgerResult;
10
+ export declare const formatRunLedgerResult: ({ result }: CliRunLedgerResult) => string;
11
+ //# sourceMappingURL=format.d.ts.map
@@ -0,0 +1,49 @@
1
+ import { formatRows, withNextPage } from "../../command-line/index.js";
2
+ export const isRunLedgerResult = (result) => result.command.startsWith("run.ledger.");
3
+ const runLine = (run) => {
4
+ const counts = Object.entries(run.taskCounts)
5
+ .filter(([, count]) => count > 0)
6
+ .map(([state, count]) => `${state}=${String(count)}`)
7
+ .join(" ");
8
+ return `${run.id}\t${run.state}\t${counts}`;
9
+ };
10
+ const taskLine = (task) => {
11
+ const last = task.dispatches.at(-1);
12
+ const dispatch = last === undefined
13
+ ? ""
14
+ : `\t${last.state}:${last.sessionId}:${last.turnId}`;
15
+ return `${task.id}\t${task.clientKey}\t${task.state}\trevision=${task.revision}\tfailed=${String(task.failedDispatches)}${dispatch}`;
16
+ };
17
+ const taskRow = (task) => {
18
+ const last = task.dispatches.at(-1);
19
+ return `${task.id}\t${task.clientKey}\t${task.state}\t${task.revision}\t${String(task.failedDispatches)}\t${last === undefined ? "-" : `${last.state}:${last.sessionId}:${last.turnId}`}`;
20
+ };
21
+ const lines = (result) => {
22
+ switch (result.method) {
23
+ case "run.ledger.create":
24
+ return [runLine(result.run), ...result.tasks.map(taskLine)];
25
+ case "run.ledger.list":
26
+ return [
27
+ withNextPage(formatRows(result.items, runLine, {
28
+ empty: "No ledger runs.",
29
+ headers: ["RUN", "STATE", "TASKS"],
30
+ }), result.nextCursor).trimEnd(),
31
+ ];
32
+ case "run.ledger.task.dispatch":
33
+ return [taskLine(result.task), `turn: ${result.turn.id}`];
34
+ case "run.ledger.task.list":
35
+ return [
36
+ runLine(result.run),
37
+ formatRows(result.items, taskRow, {
38
+ empty: "No tasks.",
39
+ headers: ["TASK", "KEY", "STATE", "REVISION", "FAILED", "DISPATCH"],
40
+ }).trimEnd(),
41
+ ];
42
+ case "run.ledger.task.settle":
43
+ return [taskLine(result.task)];
44
+ case "run.ledger.task.show":
45
+ return [taskLine(result.task), result.task.objective];
46
+ }
47
+ };
48
+ export const formatRunLedgerResult = ({ result }) => `${lines(result).join("\n")}\n`;
49
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1,2 @@
1
+ export { type CliRunLedgerResult, formatRunLedgerResult, isRunLedgerResult, type RunLedgerCliResult, } from "./format.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,2 @@
1
+ export { formatRunLedgerResult, isRunLedgerResult, } from "./format.js";
2
+ //# sourceMappingURL=index.js.map