@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,68 @@
1
+ import { liveTerminalCloseParametersSchema, liveTerminalControllerAcquireParametersSchema, liveTerminalControllerReleaseParametersSchema, liveTerminalControllerRequestParametersSchema, liveTerminalControllerRequestShowParametersSchema, liveTerminalResizeParametersSchema, liveTerminalSignalParametersSchema, liveTerminalWriteParametersSchema, terminalCreateParametersSchema, terminalEventsListParametersSchema, terminalListParametersSchema, terminalReadParametersSchema, terminalShowParametersSchema, } from "@maiaos/sdk";
2
+ import * as Effect from "effect/Effect";
3
+ import { commandIdentifier, } from "../local-node/index.js";
4
+ export const makeTerminalClient = (node) => {
5
+ const createTerminal = (input) => {
6
+ return Effect.flatMap(commandIdentifier(input.commandId), (commandId) => {
7
+ return node.runValidatedNodeOperation(input.interactive === true
8
+ ? {
9
+ columns: input.columns,
10
+ commandId,
11
+ expectedRevision: "0",
12
+ mode: "interactive",
13
+ rows: input.rows,
14
+ workspaceId: input.workspaceId,
15
+ }
16
+ : {
17
+ commandId,
18
+ expectedRevision: "0",
19
+ workspaceId: input.workspaceId,
20
+ }, terminalCreateParametersSchema, (client, parameters, options) => client.createTerminal(parameters, options), { commandId });
21
+ });
22
+ };
23
+ const runValidatedTerminalMutation = (input, schema, operation) => {
24
+ return Effect.flatMap(commandIdentifier(input.commandId), (commandId) => {
25
+ return node.runValidatedNodeOperation({ ...input, commandId }, schema, operation, {
26
+ commandId,
27
+ });
28
+ });
29
+ };
30
+ const requestTerminalController = (input) => runValidatedTerminalMutation(input, liveTerminalControllerRequestParametersSchema, (client, parameters, options) => client.requestTerminalController(parameters, options));
31
+ const showTerminalControllerRequest = (input) => {
32
+ return node.runValidatedNodeOperation(input, liveTerminalControllerRequestShowParametersSchema, (client, parameters, options) => client.showTerminalControllerRequest(parameters, options));
33
+ };
34
+ const acquireTerminalController = (input) => runValidatedTerminalMutation(input, liveTerminalControllerAcquireParametersSchema, (client, parameters, options) => client.acquireTerminalController(parameters, options));
35
+ const releaseTerminalController = (input) => runValidatedTerminalMutation(input, liveTerminalControllerReleaseParametersSchema, (client, parameters, options) => client.releaseTerminalController(parameters, options));
36
+ const writeTerminalInput = (input) => runValidatedTerminalMutation(input, liveTerminalWriteParametersSchema, (client, parameters, options) => client.writeTerminalInput(parameters, options));
37
+ const resizeTerminal = (input) => runValidatedTerminalMutation(input, liveTerminalResizeParametersSchema, (client, parameters, options) => client.resizeTerminal(parameters, options));
38
+ const signalTerminal = (input) => runValidatedTerminalMutation(input, liveTerminalSignalParametersSchema, (client, parameters, options) => client.signalTerminal(parameters, options));
39
+ const closeTerminal = (input) => runValidatedTerminalMutation(input, liveTerminalCloseParametersSchema, (client, parameters, options) => client.closeTerminal(parameters, options));
40
+ const listTerminals = (input) => {
41
+ return node.runValidatedNodeOperation(input, terminalListParametersSchema, (client, parameters, options) => client.listTerminals(parameters, options));
42
+ };
43
+ const showTerminal = (terminalId) => {
44
+ return node.runValidatedNodeOperation({ terminalId }, terminalShowParametersSchema, (client, parameters, options) => client.showTerminal(parameters, options));
45
+ };
46
+ const listTerminalEvents = (input) => {
47
+ return node.runValidatedNodeOperation(input, terminalEventsListParametersSchema, (client, parameters, options) => client.listTerminalEvents(parameters, options));
48
+ };
49
+ const readTerminal = (input) => {
50
+ return node.runValidatedNodeOperation(input, terminalReadParametersSchema, (client, parameters, options) => client.readTerminal(parameters, options));
51
+ };
52
+ return {
53
+ acquireTerminalController,
54
+ closeTerminal,
55
+ createTerminal,
56
+ listTerminalEvents,
57
+ listTerminals,
58
+ readTerminal,
59
+ releaseTerminalController,
60
+ requestTerminalController,
61
+ resizeTerminal,
62
+ showTerminal,
63
+ showTerminalControllerRequest,
64
+ signalTerminal,
65
+ writeTerminalInput,
66
+ };
67
+ };
68
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1,7 @@
1
+ import { type CommandContext, type CommandEffect } from "../command-line/index.js";
2
+ export declare const runTerminalCreate: (tokens: readonly string[], context: CommandContext) => CommandEffect;
3
+ export declare const runTerminalList: (tokens: readonly string[], context: CommandContext) => CommandEffect;
4
+ export declare const runTerminalShow: (tokens: readonly string[], context: CommandContext) => CommandEffect;
5
+ export declare const runTerminalEventsList: (tokens: readonly string[], context: CommandContext) => CommandEffect;
6
+ export declare const runTerminalRead: (tokens: readonly string[], context: CommandContext) => CommandEffect;
7
+ //# sourceMappingURL=commands.d.ts.map
@@ -0,0 +1,131 @@
1
+ import * as Effect from "effect/Effect";
2
+ import { CliArgumentError, parseOptions, readCursor, readPageSize, requirePositionals, } from "../command-line/index.js";
3
+ import { readTerminalColumns, readTerminalRows } from "./arguments.js";
4
+ import { projectTerminalEventsResult, projectTerminalListResult, projectTerminalReadResult, projectTerminalShowResult, terminalOutputAudience, writeTerminalResult, } from "./output/index.js";
5
+ const summarizeTerminalCreation = (result) => {
6
+ if (!("accepted" in result) || result.accepted)
7
+ return result;
8
+ const unavailableResult = result;
9
+ return {
10
+ accepted: unavailableResult.accepted,
11
+ delivery: unavailableResult.delivery,
12
+ receipt: unavailableResult.receipt,
13
+ state: unavailableResult.terminal.state,
14
+ terminalId: unavailableResult.terminal.id,
15
+ unavailability: unavailableResult.terminal.unavailability,
16
+ workspaceId: unavailableResult.terminal.workspaceId,
17
+ workspaceRevision: unavailableResult.terminal.workspaceRevision,
18
+ };
19
+ };
20
+ const readTerminalEventPageSize = (value) => {
21
+ if (value === undefined)
22
+ return 20;
23
+ if (!/^(?:[1-9]|[12]\d|3[0-2])$/u.test(value)) {
24
+ throw new CliArgumentError("Option '--limit' must be an integer from 1 to 32 for terminal events.");
25
+ }
26
+ return Number(value);
27
+ };
28
+ const readTerminalChunkPageSize = (value) => {
29
+ if (value === undefined)
30
+ return 2;
31
+ if (!/^[1-8]$/u.test(value)) {
32
+ throw new CliArgumentError("Option '--limit' must be an integer from 1 to 8 for terminal chunks.");
33
+ }
34
+ return Number(value);
35
+ };
36
+ const parseTerminalCreate = (tokens) => {
37
+ const parsed = parseOptions(tokens, new Set(["--columns", "--command-id", "--rows", "--workspace"]), new Set(["--interactive"]));
38
+ requirePositionals(parsed.positionals, 0);
39
+ const workspaceId = parsed.options.get("--workspace");
40
+ if (workspaceId === undefined) {
41
+ throw new CliArgumentError("Option '--workspace' is required.");
42
+ }
43
+ return { parsed, workspaceId };
44
+ };
45
+ const makeTerminalCreateInput = (parsed, workspaceId) => {
46
+ const interactive = parsed.flags.has("--interactive");
47
+ if (!interactive &&
48
+ (parsed.options.has("--columns") || parsed.options.has("--rows"))) {
49
+ throw new CliArgumentError("Options '--columns' and '--rows' require '--interactive'.");
50
+ }
51
+ const commandId = parsed.options.get("--command-id");
52
+ return interactive
53
+ ? {
54
+ columns: readTerminalColumns(parsed.options.get("--columns"), 80),
55
+ ...(commandId === undefined ? {} : { commandId }),
56
+ interactive: true,
57
+ rows: readTerminalRows(parsed.options.get("--rows"), 24),
58
+ workspaceId,
59
+ }
60
+ : {
61
+ ...(commandId === undefined ? {} : { commandId }),
62
+ workspaceId,
63
+ };
64
+ };
65
+ export const runTerminalCreate = (tokens, context) => Effect.gen(function* () {
66
+ const { parsed, workspaceId } = parseTerminalCreate(tokens);
67
+ const input = makeTerminalCreateInput(parsed, workspaceId);
68
+ const result = yield* context.dependencies.createTerminal(input);
69
+ return writeTerminalResult(result, context, (value) => ({
70
+ command: "terminal.create",
71
+ result: summarizeTerminalCreation(value),
72
+ }));
73
+ });
74
+ const parseTerminalList = (tokens) => {
75
+ const parsed = parseOptions(tokens, new Set(["--after", "--limit", "--workspace"]));
76
+ requirePositionals(parsed.positionals, 0);
77
+ const workspaceId = parsed.options.get("--workspace");
78
+ if (workspaceId === undefined) {
79
+ throw new CliArgumentError("Option '--workspace' is required.");
80
+ }
81
+ return {
82
+ afterCursor: readCursor(parsed.options.get("--after")),
83
+ limit: readPageSize(parsed.options.get("--limit")),
84
+ workspaceId,
85
+ };
86
+ };
87
+ export const runTerminalList = (tokens, context) => Effect.gen(function* () {
88
+ const page = parseTerminalList(tokens);
89
+ const { workspaceId } = page;
90
+ const result = yield* context.dependencies.listTerminals(page);
91
+ return writeTerminalResult(result, context, (value) => projectTerminalListResult(value, workspaceId, terminalOutputAudience(context.json)));
92
+ });
93
+ export const runTerminalShow = (tokens, context) => Effect.gen(function* () {
94
+ const parsed = parseOptions(tokens, new Set());
95
+ requirePositionals(parsed.positionals, 1);
96
+ const terminalId = parsed.positionals[0];
97
+ if (terminalId === undefined) {
98
+ throw new CliArgumentError("The terminal identifier is missing.");
99
+ }
100
+ const result = yield* context.dependencies.showTerminal(terminalId);
101
+ return writeTerminalResult(result, context, (value) => projectTerminalShowResult(value, terminalOutputAudience(context.json)));
102
+ });
103
+ export const runTerminalEventsList = (tokens, context) => Effect.gen(function* () {
104
+ const parsed = parseOptions(tokens, new Set(["--after", "--limit", "--terminal"]));
105
+ requirePositionals(parsed.positionals, 0);
106
+ const terminalId = parsed.options.get("--terminal");
107
+ if (terminalId === undefined) {
108
+ throw new CliArgumentError("Option '--terminal' is required.");
109
+ }
110
+ const result = yield* context.dependencies.listTerminalEvents({
111
+ afterTerminalCursor: readCursor(parsed.options.get("--after")),
112
+ limit: readTerminalEventPageSize(parsed.options.get("--limit")),
113
+ terminalId,
114
+ });
115
+ return writeTerminalResult(result, context, (value) => projectTerminalEventsResult(value, terminalOutputAudience(context.json)));
116
+ });
117
+ export const runTerminalRead = (tokens, context) => Effect.gen(function* () {
118
+ const parsed = parseOptions(tokens, new Set(["--after", "--limit"]));
119
+ requirePositionals(parsed.positionals, 1);
120
+ const terminalId = parsed.positionals[0];
121
+ if (terminalId === undefined) {
122
+ throw new CliArgumentError("The terminal identifier is missing.");
123
+ }
124
+ const result = yield* context.dependencies.readTerminal({
125
+ afterChunkCursor: readCursor(parsed.options.get("--after")),
126
+ limit: readTerminalChunkPageSize(parsed.options.get("--limit")),
127
+ terminalId,
128
+ });
129
+ return writeTerminalResult(result, context, projectTerminalReadResult);
130
+ });
131
+ //# sourceMappingURL=commands.js.map
@@ -0,0 +1,10 @@
1
+ import { type CommandContext, type CommandEffect } from "../command-line/index.js";
2
+ export declare const runControllerRequestShow: (tokens: readonly string[], context: CommandContext) => CommandEffect;
3
+ export declare const runControllerRequestCreate: (tokens: readonly string[], context: CommandContext) => CommandEffect;
4
+ export declare const runControllerAcquire: (tokens: readonly string[], context: CommandContext) => CommandEffect;
5
+ export declare const runControllerRelease: (tokens: readonly string[], context: CommandContext) => CommandEffect;
6
+ export declare const runTerminalInputWrite: (tokens: readonly string[], context: CommandContext) => CommandEffect;
7
+ export declare const runTerminalResize: (tokens: readonly string[], context: CommandContext) => CommandEffect;
8
+ export declare const runTerminalSignal: (tokens: readonly string[], context: CommandContext) => CommandEffect;
9
+ export declare const runTerminalClose: (tokens: readonly string[], context: CommandContext) => CommandEffect;
10
+ //# sourceMappingURL=control-commands.d.ts.map
@@ -0,0 +1,212 @@
1
+ import { Buffer } from "node:buffer";
2
+ import { liveTerminalWriteParametersSchema, MAX_TERMINAL_INPUT_CHUNK_BYTES, } from "@maiaos/sdk";
3
+ import * as Effect from "effect/Effect";
4
+ import { CliArgumentError, parseOptions, requirePositionals, } from "../command-line/index.js";
5
+ import { readTerminalColumns, readTerminalControllerFence, readTerminalExpectedRevision, readTerminalGeneration, readTerminalInputSequence, readTerminalLeaseDuration, readTerminalRows, terminalControllerFenceOptionNames, } from "./arguments.js";
6
+ import { writeTerminalResult } from "./output/index.js";
7
+ const optionNames = (...additional) => new Set([...terminalControllerFenceOptionNames, ...additional]);
8
+ const commandId = (options) => {
9
+ const value = options.get("--command-id");
10
+ return value === undefined ? {} : { commandId: value };
11
+ };
12
+ const requiredTerminalOption = (options) => {
13
+ const terminalId = options.get("--terminal");
14
+ if (terminalId === undefined)
15
+ throw new CliArgumentError("Option '--terminal' is required.");
16
+ return terminalId;
17
+ };
18
+ const requiredTerminalId = (positionals) => {
19
+ const terminalId = positionals[0];
20
+ if (terminalId === undefined) {
21
+ throw new CliArgumentError("The terminal identifier is missing.");
22
+ }
23
+ return terminalId;
24
+ };
25
+ export const runControllerRequestShow = (tokens, context) => Effect.gen(function* () {
26
+ const parsed = parseOptions(tokens, new Set(["--terminal", "--terminal-generation"]));
27
+ requirePositionals(parsed.positionals, 1);
28
+ const terminalId = requiredTerminalOption(parsed.options);
29
+ const controllerRequestId = parsed.positionals[0];
30
+ if (controllerRequestId === undefined) {
31
+ throw new CliArgumentError("The controller request identifier is missing.");
32
+ }
33
+ const result = yield* context.dependencies.showTerminalControllerRequest({
34
+ controllerRequestId,
35
+ terminalGeneration: readTerminalGeneration(parsed),
36
+ terminalId,
37
+ });
38
+ return writeTerminalResult(result, context, (value) => ({
39
+ command: "terminal.controller.request.show",
40
+ result: value,
41
+ }));
42
+ });
43
+ export const runControllerRequestCreate = (tokens, context) => Effect.gen(function* () {
44
+ const parsed = parseOptions(tokens, new Set([
45
+ "--command-id",
46
+ "--lease-ms",
47
+ "--terminal",
48
+ "--terminal-generation",
49
+ ]));
50
+ requirePositionals(parsed.positionals, 0);
51
+ const terminalId = requiredTerminalOption(parsed.options);
52
+ const result = yield* context.dependencies.requestTerminalController({
53
+ ...commandId(parsed.options),
54
+ requestedLeaseDurationMs: readTerminalLeaseDuration(parsed),
55
+ terminalGeneration: readTerminalGeneration(parsed),
56
+ terminalId,
57
+ });
58
+ return writeTerminalResult(result, context, (value) => ({
59
+ command: "terminal.controller.request",
60
+ result: value,
61
+ }));
62
+ });
63
+ const readControllerAcquireInput = (tokens) => {
64
+ const parsed = parseOptions(tokens, new Set([
65
+ "--command-id",
66
+ "--expected-revision",
67
+ "--request",
68
+ "--terminal-generation",
69
+ ]));
70
+ requirePositionals(parsed.positionals, 1);
71
+ const terminalId = requiredTerminalId(parsed.positionals);
72
+ const controllerRequestId = parsed.options.get("--request");
73
+ if (controllerRequestId === undefined) {
74
+ throw new CliArgumentError("The controller request identifier is missing.");
75
+ }
76
+ return {
77
+ ...commandId(parsed.options),
78
+ controllerRequestId,
79
+ expectedTerminalRevision: readTerminalExpectedRevision(parsed),
80
+ terminalGeneration: readTerminalGeneration(parsed),
81
+ terminalId,
82
+ };
83
+ };
84
+ const requireAdmittedTerminalWriteScope = (scope) => {
85
+ const admission = liveTerminalWriteParametersSchema.safeParse({
86
+ ...scope,
87
+ bytesBase64: "AA==",
88
+ commandId: scope.commandId ?? "command_terminal_input_validation",
89
+ });
90
+ if (!admission.success) {
91
+ throw new CliArgumentError("The terminal input metadata is invalid.");
92
+ }
93
+ };
94
+ export const runControllerAcquire = (tokens, context) => Effect.gen(function* () {
95
+ const result = yield* context.dependencies.acquireTerminalController(readControllerAcquireInput(tokens));
96
+ return writeTerminalResult(result, context, (value) => ({
97
+ command: "terminal.controller.acquire",
98
+ result: value,
99
+ }));
100
+ });
101
+ const parseTerminalWriteOptions = (tokens) => {
102
+ const parsed = parseOptions(tokens, optionNames("--input-id", "--input-sequence"), new Set(["--input-stdin"]));
103
+ requirePositionals(parsed.positionals, 1);
104
+ if (!parsed.flags.has("--input-stdin")) {
105
+ throw new CliArgumentError("Option '--input-stdin' is required.");
106
+ }
107
+ return parsed;
108
+ };
109
+ const readTerminalWriteScope = (tokens) => {
110
+ const parsed = parseTerminalWriteOptions(tokens);
111
+ const terminalId = requiredTerminalId(parsed.positionals);
112
+ const inputId = parsed.options.get("--input-id");
113
+ if (inputId === undefined) {
114
+ throw new CliArgumentError("Option '--input-id' is required.");
115
+ }
116
+ const scope = {
117
+ ...commandId(parsed.options),
118
+ ...readTerminalControllerFence(parsed, terminalId),
119
+ inputId,
120
+ inputSequence: readTerminalInputSequence(parsed),
121
+ };
122
+ requireAdmittedTerminalWriteScope(scope);
123
+ return scope;
124
+ };
125
+ export const runControllerRelease = (tokens, context) => Effect.gen(function* () {
126
+ const parsed = parseOptions(tokens, optionNames());
127
+ requirePositionals(parsed.positionals, 1);
128
+ const terminalId = requiredTerminalId(parsed.positionals);
129
+ const result = yield* context.dependencies.releaseTerminalController({
130
+ ...commandId(parsed.options),
131
+ ...readTerminalControllerFence(parsed, terminalId),
132
+ });
133
+ return writeTerminalResult(result, context, (value) => ({
134
+ command: "terminal.controller.release",
135
+ result: value,
136
+ }));
137
+ });
138
+ const readTerminalInput = (context) => {
139
+ if (context.io.stdin === undefined) {
140
+ throw new CliArgumentError("Terminal input requires standard input.");
141
+ }
142
+ return context.io.stdin({
143
+ label: "terminal input",
144
+ maxBytes: MAX_TERMINAL_INPUT_CHUNK_BYTES,
145
+ maxChunks: 1024,
146
+ });
147
+ };
148
+ export const runTerminalInputWrite = (tokens, context) => Effect.gen(function* () {
149
+ const scope = readTerminalWriteScope(tokens);
150
+ const input = yield* readTerminalInput(context);
151
+ if (input.length === 0) {
152
+ throw new CliArgumentError("Terminal input must not be empty.");
153
+ }
154
+ const result = yield* context.dependencies.writeTerminalInput({
155
+ ...scope,
156
+ bytesBase64: Buffer.from(input, "utf8").toString("base64"),
157
+ });
158
+ return writeTerminalResult(result, context, (value) => ({
159
+ command: "terminal.input.write",
160
+ result: value,
161
+ }));
162
+ });
163
+ const readTerminalSignalInput = (tokens) => {
164
+ const parsed = parseOptions(tokens, optionNames("--signal"));
165
+ requirePositionals(parsed.positionals, 1);
166
+ const terminalId = requiredTerminalId(parsed.positionals);
167
+ const signal = parsed.options.get("--signal");
168
+ if (signal !== "hangup" && signal !== "interrupt" && signal !== "terminate") {
169
+ throw new CliArgumentError("Option '--signal' must be hangup, interrupt, or terminate.");
170
+ }
171
+ return {
172
+ ...commandId(parsed.options),
173
+ ...readTerminalControllerFence(parsed, terminalId),
174
+ signal,
175
+ };
176
+ };
177
+ export const runTerminalResize = (tokens, context) => Effect.gen(function* () {
178
+ const parsed = parseOptions(tokens, optionNames("--columns", "--rows"));
179
+ requirePositionals(parsed.positionals, 1);
180
+ const terminalId = requiredTerminalId(parsed.positionals);
181
+ const result = yield* context.dependencies.resizeTerminal({
182
+ ...commandId(parsed.options),
183
+ ...readTerminalControllerFence(parsed, terminalId),
184
+ columns: readTerminalColumns(parsed.options.get("--columns")),
185
+ rows: readTerminalRows(parsed.options.get("--rows")),
186
+ });
187
+ return writeTerminalResult(result, context, (value) => ({
188
+ command: "terminal.resize",
189
+ result: value,
190
+ }));
191
+ });
192
+ export const runTerminalSignal = (tokens, context) => Effect.gen(function* () {
193
+ const result = yield* context.dependencies.signalTerminal(readTerminalSignalInput(tokens));
194
+ return writeTerminalResult(result, context, (value) => ({
195
+ command: "terminal.signal",
196
+ result: value,
197
+ }));
198
+ });
199
+ export const runTerminalClose = (tokens, context) => Effect.gen(function* () {
200
+ const parsed = parseOptions(tokens, optionNames());
201
+ requirePositionals(parsed.positionals, 1);
202
+ const terminalId = requiredTerminalId(parsed.positionals);
203
+ const result = yield* context.dependencies.closeTerminal({
204
+ ...commandId(parsed.options),
205
+ ...readTerminalControllerFence(parsed, terminalId),
206
+ });
207
+ return writeTerminalResult(result, context, (value) => ({
208
+ command: "terminal.close",
209
+ result: value,
210
+ }));
211
+ });
212
+ //# sourceMappingURL=control-commands.js.map
@@ -0,0 +1,4 @@
1
+ export { type CreateTerminalInput, makeTerminalClient } from "./client.js";
2
+ export { runTerminalCreate, runTerminalEventsList, runTerminalList, runTerminalRead, runTerminalShow, } from "./commands.js";
3
+ export { runControllerAcquire, runControllerRelease, runControllerRequestCreate, runControllerRequestShow, runTerminalClose, runTerminalInputWrite, runTerminalResize, runTerminalSignal, } from "./control-commands.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,4 @@
1
+ export { makeTerminalClient } from "./client.js";
2
+ export { runTerminalCreate, runTerminalEventsList, runTerminalList, runTerminalRead, runTerminalShow, } from "./commands.js";
3
+ export { runControllerAcquire, runControllerRelease, runControllerRequestCreate, runControllerRequestShow, runTerminalClose, runTerminalInputWrite, runTerminalResize, runTerminalSignal, } from "./control-commands.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,147 @@
1
+ import type { TerminalEventsListResult, TerminalListResult, TerminalReadResult, TerminalShowResult } from "@maiaos/sdk";
2
+ type ProtocolTerminal = TerminalListResult["items"][number];
3
+ type ProtocolUnavailable = Extract<ProtocolTerminal, {
4
+ readonly state: "unavailable";
5
+ }>;
6
+ type ProtocolLive = Exclude<ProtocolTerminal, ProtocolUnavailable>;
7
+ type ProtocolCleanup = ProtocolLive["cleanup"];
8
+ type ProtocolExit = NonNullable<Extract<ProtocolLive, {
9
+ readonly exit?: unknown;
10
+ }>["exit"]>;
11
+ type ProtocolEvent = TerminalEventsListResult["items"][number];
12
+ type ProtocolLegacyEvent = Extract<ProtocolEvent, {
13
+ readonly eventType: unknown;
14
+ }>;
15
+ type ProtocolLiveEvent = Exclude<ProtocolEvent, ProtocolLegacyEvent>;
16
+ type ProtocolChunk = TerminalReadResult["items"][number];
17
+ export type CliOutputAudience = "human" | "json";
18
+ type CliTerminalCleanup = {
19
+ readonly reason: Extract<ProtocolCleanup, {
20
+ readonly state: "unknown";
21
+ }>["reason"];
22
+ readonly state: "unknown";
23
+ } | {
24
+ readonly state: Exclude<ProtocolCleanup["state"], "unknown">;
25
+ };
26
+ type CliUnavailableTerminal = {
27
+ readonly id: ProtocolUnavailable["id"];
28
+ readonly projectId: ProtocolUnavailable["projectId"];
29
+ readonly revision: ProtocolUnavailable["revision"];
30
+ readonly state: ProtocolUnavailable["state"];
31
+ readonly unavailability: ProtocolUnavailable["unavailability"];
32
+ readonly workspaceId: ProtocolUnavailable["workspaceId"];
33
+ readonly workspaceRevision: ProtocolUnavailable["workspaceRevision"];
34
+ };
35
+ type CliHumanLiveCapability = {
36
+ readonly capability: {
37
+ readonly tier: ProtocolLive["capability"]["tier"];
38
+ };
39
+ };
40
+ type CliLiveTerminalFields = {
41
+ readonly cleanup?: CliTerminalCleanup;
42
+ readonly exit?: ProtocolExit;
43
+ readonly generation: ProtocolLive["generation"];
44
+ readonly id: ProtocolLive["id"];
45
+ readonly projectId: ProtocolLive["projectId"];
46
+ readonly revision: ProtocolLive["revision"];
47
+ readonly state: ProtocolLive["state"];
48
+ readonly workspaceId: ProtocolLive["workspaceId"];
49
+ readonly workspaceRevision: ProtocolLive["workspaceRevision"];
50
+ };
51
+ export type CliLiveTerminal<TAudience extends CliOutputAudience = "json"> = TAudience extends "human" ? CliLiveTerminalFields & CliHumanLiveCapability : CliLiveTerminalFields;
52
+ export type CliTerminalListItem<TAudience extends CliOutputAudience = "json"> = CliLiveTerminal<TAudience> | CliUnavailableTerminal;
53
+ export type CliTerminalShowTerminal<TAudience extends CliOutputAudience = "json"> = (CliLiveTerminal<TAudience> & {
54
+ readonly viewport: ProtocolLive["viewport"];
55
+ }) | CliUnavailableTerminal;
56
+ export type CliTerminalListResult<TAudience extends CliOutputAudience = "json"> = {
57
+ readonly command: "terminal.list";
58
+ readonly count: number;
59
+ readonly items: readonly CliTerminalListItem<TAudience>[];
60
+ readonly nextCursor?: TerminalListResult["nextCursor"];
61
+ readonly workspaceId: ProtocolTerminal["workspaceId"];
62
+ };
63
+ export type CliTerminalShowResult<TAudience extends CliOutputAudience = "json"> = {
64
+ readonly command: "terminal.show";
65
+ readonly terminal: CliTerminalShowTerminal<TAudience>;
66
+ };
67
+ type CliLegacyEventFields = {
68
+ readonly cursor: string;
69
+ readonly type: ProtocolLegacyEvent["eventType"];
70
+ readonly unavailability: ProtocolUnavailable["unavailability"];
71
+ };
72
+ type CliLegacyTerminalEvent<TAudience extends CliOutputAudience = "json"> = TAudience extends "human" ? CliLegacyEventFields & {
73
+ readonly globalCursor: ProtocolLegacyEvent["globalCursor"];
74
+ } : CliLegacyEventFields;
75
+ export type CliTerminalEvent<TAudience extends CliOutputAudience = "json"> = CliLegacyTerminalEvent<TAudience> | {
76
+ readonly cleanup: CliTerminalCleanup;
77
+ readonly cursor: string;
78
+ readonly type: "cleanup";
79
+ } | {
80
+ readonly cursor: string;
81
+ readonly exit: ProtocolExit;
82
+ readonly type: "exit";
83
+ } | {
84
+ readonly cursor: string;
85
+ readonly headCursor: string;
86
+ readonly oldestAvailableCursor: string;
87
+ readonly reason: Extract<ProtocolLiveEvent, {
88
+ readonly type: "gap";
89
+ }>["reason"];
90
+ readonly recovery: Extract<ProtocolLiveEvent, {
91
+ readonly type: "gap";
92
+ }>["recovery"];
93
+ readonly requestedAfterCursor?: string;
94
+ readonly type: "gap";
95
+ } | {
96
+ readonly cursor: string;
97
+ readonly leaseId: string;
98
+ readonly reason: Extract<ProtocolLiveEvent, {
99
+ readonly type: "controller-revoked";
100
+ }>["reason"];
101
+ readonly type: "controller-revoked";
102
+ } | {
103
+ readonly cursor: string;
104
+ readonly previousCleanup: CliTerminalCleanup;
105
+ readonly previousGeneration: number;
106
+ readonly previousRevision: string;
107
+ readonly previousState: ProtocolLive["state"];
108
+ readonly terminal: CliTerminalListItem<TAudience>;
109
+ readonly transition: Extract<ProtocolLiveEvent, {
110
+ readonly type: "lifecycle-transition";
111
+ }>["transition"];
112
+ readonly type: "lifecycle-transition";
113
+ } | {
114
+ readonly cursor: string;
115
+ readonly type: "output";
116
+ };
117
+ export type CliTerminalEventsResult<TAudience extends CliOutputAudience = "json"> = {
118
+ readonly command: "terminal.events";
119
+ readonly count: number;
120
+ readonly headCursor: TerminalEventsListResult["headTerminalCursor"];
121
+ readonly items: readonly CliTerminalEvent<TAudience>[];
122
+ readonly nextCursor?: TerminalEventsListResult["nextTerminalCursor"];
123
+ readonly terminalId: TerminalEventsListResult["terminalId"];
124
+ };
125
+ type CliTerminalChunk = {
126
+ readonly bytesBase64: ProtocolChunk["bytesBase64"];
127
+ readonly cursor: ProtocolChunk["cursor"];
128
+ readonly generation?: number;
129
+ };
130
+ export type CliTerminalReadResult = {
131
+ readonly command: "terminal.read";
132
+ readonly count: number;
133
+ readonly headChunkCursor: TerminalReadResult["headChunkCursor"];
134
+ readonly items: readonly CliTerminalChunk[];
135
+ readonly nextChunkCursor?: TerminalReadResult["nextChunkCursor"];
136
+ readonly terminalId: TerminalReadResult["terminalId"];
137
+ };
138
+ export declare const terminalOutputAudience: (json: boolean) => CliOutputAudience;
139
+ export declare const projectTerminalListItem: <TAudience extends CliOutputAudience = "json">(terminal: ProtocolTerminal, audience?: TAudience) => CliTerminalListItem<TAudience>;
140
+ export declare const projectTerminalListResult: <TAudience extends CliOutputAudience = "json">(value: TerminalListResult, workspaceId: ProtocolTerminal["workspaceId"], audience?: TAudience) => CliTerminalListResult<TAudience>;
141
+ export declare const projectTerminalShowResult: <TAudience extends CliOutputAudience = "json">(value: TerminalShowResult, audience?: TAudience) => CliTerminalShowResult<TAudience>;
142
+ export declare const projectTerminalEvent: <TAudience extends CliOutputAudience = "json">(event: ProtocolEvent, audience?: TAudience) => CliTerminalEvent<TAudience>;
143
+ export declare const projectTerminalEventsResult: <TAudience extends CliOutputAudience = "json">(value: TerminalEventsListResult, audience?: TAudience) => CliTerminalEventsResult<TAudience>;
144
+ export declare const projectTerminalChunk: (chunk: ProtocolChunk) => CliTerminalChunk;
145
+ export declare const projectTerminalReadResult: (value: TerminalReadResult) => CliTerminalReadResult;
146
+ export {};
147
+ //# sourceMappingURL=compact-list.d.ts.map