@cuna_labs/cli 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (624) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +9 -0
  3. package/README.md +169 -0
  4. package/THIRD_PARTY_NOTICES.md +29 -0
  5. package/dist/api/capability-evidence.d.ts +19 -0
  6. package/dist/api/capability-evidence.d.ts.map +1 -0
  7. package/dist/api/capability-evidence.js +38 -0
  8. package/dist/api/capability-evidence.js.map +1 -0
  9. package/dist/api/client.d.ts +167 -0
  10. package/dist/api/client.d.ts.map +1 -0
  11. package/dist/api/client.js +937 -0
  12. package/dist/api/client.js.map +1 -0
  13. package/dist/api/contracts.d.ts +345 -0
  14. package/dist/api/contracts.d.ts.map +1 -0
  15. package/dist/api/contracts.js +976 -0
  16. package/dist/api/contracts.js.map +1 -0
  17. package/dist/api/execution-workspaces.d.ts +17 -0
  18. package/dist/api/execution-workspaces.d.ts.map +1 -0
  19. package/dist/api/execution-workspaces.js +46 -0
  20. package/dist/api/execution-workspaces.js.map +1 -0
  21. package/dist/api/http.d.ts +76 -0
  22. package/dist/api/http.d.ts.map +1 -0
  23. package/dist/api/http.js +838 -0
  24. package/dist/api/http.js.map +1 -0
  25. package/dist/api/managed-executions.d.ts +37 -0
  26. package/dist/api/managed-executions.d.ts.map +1 -0
  27. package/dist/api/managed-executions.js +80 -0
  28. package/dist/api/managed-executions.js.map +1 -0
  29. package/dist/api/observer-v2-schema.d.ts +206 -0
  30. package/dist/api/observer-v2-schema.d.ts.map +1 -0
  31. package/dist/api/observer-v2-schema.js +264 -0
  32. package/dist/api/observer-v2-schema.js.map +1 -0
  33. package/dist/api/observer-v2.d.ts +33 -0
  34. package/dist/api/observer-v2.d.ts.map +1 -0
  35. package/dist/api/observer-v2.js +60 -0
  36. package/dist/api/observer-v2.js.map +1 -0
  37. package/dist/api/owner-observe-grants-v2-schema.d.ts +678 -0
  38. package/dist/api/owner-observe-grants-v2-schema.d.ts.map +1 -0
  39. package/dist/api/owner-observe-grants-v2-schema.js +887 -0
  40. package/dist/api/owner-observe-grants-v2-schema.js.map +1 -0
  41. package/dist/api/owner-observe-grants-v2.d.ts +268 -0
  42. package/dist/api/owner-observe-grants-v2.d.ts.map +1 -0
  43. package/dist/api/owner-observe-grants-v2.js +604 -0
  44. package/dist/api/owner-observe-grants-v2.js.map +1 -0
  45. package/dist/api/provider-v2-schema.d.ts +293 -0
  46. package/dist/api/provider-v2-schema.d.ts.map +1 -0
  47. package/dist/api/provider-v2-schema.js +381 -0
  48. package/dist/api/provider-v2-schema.js.map +1 -0
  49. package/dist/api/provider-v2.d.ts +55 -0
  50. package/dist/api/provider-v2.d.ts.map +1 -0
  51. package/dist/api/provider-v2.js +54 -0
  52. package/dist/api/provider-v2.js.map +1 -0
  53. package/dist/api/remote-workspace.d.ts +29 -0
  54. package/dist/api/remote-workspace.d.ts.map +1 -0
  55. package/dist/api/remote-workspace.js +62 -0
  56. package/dist/api/remote-workspace.js.map +1 -0
  57. package/dist/api/supervisor-live-update.d.ts +248 -0
  58. package/dist/api/supervisor-live-update.d.ts.map +1 -0
  59. package/dist/api/supervisor-live-update.js +434 -0
  60. package/dist/api/supervisor-live-update.js.map +1 -0
  61. package/dist/api/terminal-reason.d.ts +5 -0
  62. package/dist/api/terminal-reason.d.ts.map +1 -0
  63. package/dist/api/terminal-reason.js +12 -0
  64. package/dist/api/terminal-reason.js.map +1 -0
  65. package/dist/auth/browser-handoff.d.ts +59 -0
  66. package/dist/auth/browser-handoff.d.ts.map +1 -0
  67. package/dist/auth/browser-handoff.js +33 -0
  68. package/dist/auth/browser-handoff.js.map +1 -0
  69. package/dist/auth/browser.d.ts +11 -0
  70. package/dist/auth/browser.d.ts.map +1 -0
  71. package/dist/auth/browser.js +47 -0
  72. package/dist/auth/browser.js.map +1 -0
  73. package/dist/auth/human-client.d.ts +39 -0
  74. package/dist/auth/human-client.d.ts.map +1 -0
  75. package/dist/auth/human-client.js +66 -0
  76. package/dist/auth/human-client.js.map +1 -0
  77. package/dist/auth/human-contracts.d.ts +52 -0
  78. package/dist/auth/human-contracts.d.ts.map +1 -0
  79. package/dist/auth/human-contracts.js +229 -0
  80. package/dist/auth/human-contracts.js.map +1 -0
  81. package/dist/auth/human-session.d.ts +48 -0
  82. package/dist/auth/human-session.d.ts.map +1 -0
  83. package/dist/auth/human-session.js +902 -0
  84. package/dist/auth/human-session.js.map +1 -0
  85. package/dist/auth/onboarding-state.d.ts +31 -0
  86. package/dist/auth/onboarding-state.d.ts.map +1 -0
  87. package/dist/auth/onboarding-state.js +52 -0
  88. package/dist/auth/onboarding-state.js.map +1 -0
  89. package/dist/auth/pkce.d.ts +15 -0
  90. package/dist/auth/pkce.d.ts.map +1 -0
  91. package/dist/auth/pkce.js +19 -0
  92. package/dist/auth/pkce.js.map +1 -0
  93. package/dist/bin/cuna.d.ts +3 -0
  94. package/dist/bin/cuna.d.ts.map +1 -0
  95. package/dist/bin/cuna.js +4 -0
  96. package/dist/bin/cuna.js.map +1 -0
  97. package/dist/build-identity.d.ts +20 -0
  98. package/dist/build-identity.d.ts.map +1 -0
  99. package/dist/build-identity.js +77 -0
  100. package/dist/build-identity.js.map +1 -0
  101. package/dist/cli/command-help.d.ts +9 -0
  102. package/dist/cli/command-help.d.ts.map +1 -0
  103. package/dist/cli/command-help.js +324 -0
  104. package/dist/cli/command-help.js.map +1 -0
  105. package/dist/cli/help.d.ts +40 -0
  106. package/dist/cli/help.d.ts.map +1 -0
  107. package/dist/cli/help.js +256 -0
  108. package/dist/cli/help.js.map +1 -0
  109. package/dist/cli/output.d.ts +28 -0
  110. package/dist/cli/output.d.ts.map +1 -0
  111. package/dist/cli/output.js +95 -0
  112. package/dist/cli/output.js.map +1 -0
  113. package/dist/cli/parser.d.ts +65 -0
  114. package/dist/cli/parser.d.ts.map +1 -0
  115. package/dist/cli/parser.js +294 -0
  116. package/dist/cli/parser.js.map +1 -0
  117. package/dist/cli/process-entrypoint.d.ts +18 -0
  118. package/dist/cli/process-entrypoint.d.ts.map +1 -0
  119. package/dist/cli/process-entrypoint.js +26 -0
  120. package/dist/cli/process-entrypoint.js.map +1 -0
  121. package/dist/cli/run.d.ts +114 -0
  122. package/dist/cli/run.d.ts.map +1 -0
  123. package/dist/cli/run.js +1969 -0
  124. package/dist/cli/run.js.map +1 -0
  125. package/dist/commands/commands.d.ts +74 -0
  126. package/dist/commands/commands.d.ts.map +1 -0
  127. package/dist/commands/commands.js +2814 -0
  128. package/dist/commands/commands.js.map +1 -0
  129. package/dist/config/config.d.ts +86 -0
  130. package/dist/config/config.d.ts.map +1 -0
  131. package/dist/config/config.js +323 -0
  132. package/dist/config/config.js.map +1 -0
  133. package/dist/config/infra-contract-witness.d.ts +29 -0
  134. package/dist/config/infra-contract-witness.d.ts.map +1 -0
  135. package/dist/config/infra-contract-witness.js +30 -0
  136. package/dist/config/infra-contract-witness.js.map +1 -0
  137. package/dist/core/browser-url.d.ts +2 -0
  138. package/dist/core/browser-url.d.ts.map +1 -0
  139. package/dist/core/browser-url.js +20 -0
  140. package/dist/core/browser-url.js.map +1 -0
  141. package/dist/core/deployed-wire-compatibility.d.ts +15 -0
  142. package/dist/core/deployed-wire-compatibility.d.ts.map +1 -0
  143. package/dist/core/deployed-wire-compatibility.js +15 -0
  144. package/dist/core/deployed-wire-compatibility.js.map +1 -0
  145. package/dist/core/errors.d.ts +59 -0
  146. package/dist/core/errors.d.ts.map +1 -0
  147. package/dist/core/errors.js +82 -0
  148. package/dist/core/errors.js.map +1 -0
  149. package/dist/core/exit-codes.d.ts +68 -0
  150. package/dist/core/exit-codes.d.ts.map +1 -0
  151. package/dist/core/exit-codes.js +84 -0
  152. package/dist/core/exit-codes.js.map +1 -0
  153. package/dist/core/instant.d.ts +60 -0
  154. package/dist/core/instant.d.ts.map +1 -0
  155. package/dist/core/instant.js +90 -0
  156. package/dist/core/instant.js.map +1 -0
  157. package/dist/core/namespace.d.ts +171 -0
  158. package/dist/core/namespace.d.ts.map +1 -0
  159. package/dist/core/namespace.js +227 -0
  160. package/dist/core/namespace.js.map +1 -0
  161. package/dist/core/observation-budget.d.ts +185 -0
  162. package/dist/core/observation-budget.d.ts.map +1 -0
  163. package/dist/core/observation-budget.js +209 -0
  164. package/dist/core/observation-budget.js.map +1 -0
  165. package/dist/core/product-web.d.ts +81 -0
  166. package/dist/core/product-web.d.ts.map +1 -0
  167. package/dist/core/product-web.js +87 -0
  168. package/dist/core/product-web.js.map +1 -0
  169. package/dist/core/validation.d.ts +90 -0
  170. package/dist/core/validation.d.ts.map +1 -0
  171. package/dist/core/validation.js +199 -0
  172. package/dist/core/validation.js.map +1 -0
  173. package/dist/credentials/contracts.d.ts +82 -0
  174. package/dist/credentials/contracts.d.ts.map +1 -0
  175. package/dist/credentials/contracts.js +2 -0
  176. package/dist/credentials/contracts.js.map +1 -0
  177. package/dist/credentials/errors.d.ts +19 -0
  178. package/dist/credentials/errors.d.ts.map +1 -0
  179. package/dist/credentials/errors.js +16 -0
  180. package/dist/credentials/errors.js.map +1 -0
  181. package/dist/credentials/index.d.ts +6 -0
  182. package/dist/credentials/index.d.ts.map +1 -0
  183. package/dist/credentials/index.js +6 -0
  184. package/dist/credentials/index.js.map +1 -0
  185. package/dist/credentials/local-session.d.ts +101 -0
  186. package/dist/credentials/local-session.d.ts.map +1 -0
  187. package/dist/credentials/local-session.js +839 -0
  188. package/dist/credentials/local-session.js.map +1 -0
  189. package/dist/credentials/secret-material.d.ts +17 -0
  190. package/dist/credentials/secret-material.d.ts.map +1 -0
  191. package/dist/credentials/secret-material.js +49 -0
  192. package/dist/credentials/secret-material.js.map +1 -0
  193. package/dist/credentials/vault.d.ts +41 -0
  194. package/dist/credentials/vault.d.ts.map +1 -0
  195. package/dist/credentials/vault.js +719 -0
  196. package/dist/credentials/vault.js.map +1 -0
  197. package/dist/daemon/endpoint.d.ts +29 -0
  198. package/dist/daemon/endpoint.d.ts.map +1 -0
  199. package/dist/daemon/endpoint.js +66 -0
  200. package/dist/daemon/endpoint.js.map +1 -0
  201. package/dist/daemon/journal.d.ts +62 -0
  202. package/dist/daemon/journal.d.ts.map +1 -0
  203. package/dist/daemon/journal.js +299 -0
  204. package/dist/daemon/journal.js.map +1 -0
  205. package/dist/daemon/lease.d.ts +25 -0
  206. package/dist/daemon/lease.d.ts.map +1 -0
  207. package/dist/daemon/lease.js +94 -0
  208. package/dist/daemon/lease.js.map +1 -0
  209. package/dist/daemon/lifecycle.d.ts +14 -0
  210. package/dist/daemon/lifecycle.d.ts.map +1 -0
  211. package/dist/daemon/lifecycle.js +29 -0
  212. package/dist/daemon/lifecycle.js.map +1 -0
  213. package/dist/daemon/protocol.d.ts +65 -0
  214. package/dist/daemon/protocol.d.ts.map +1 -0
  215. package/dist/daemon/protocol.js +194 -0
  216. package/dist/daemon/protocol.js.map +1 -0
  217. package/dist/daemon/supervisor.d.ts +29 -0
  218. package/dist/daemon/supervisor.d.ts.map +1 -0
  219. package/dist/daemon/supervisor.js +87 -0
  220. package/dist/daemon/supervisor.js.map +1 -0
  221. package/dist/daemon/views.d.ts +31 -0
  222. package/dist/daemon/views.d.ts.map +1 -0
  223. package/dist/daemon/views.js +86 -0
  224. package/dist/daemon/views.js.map +1 -0
  225. package/dist/index.d.ts +38 -0
  226. package/dist/index.d.ts.map +1 -0
  227. package/dist/index.js +38 -0
  228. package/dist/index.js.map +1 -0
  229. package/dist/journey/api-effects.d.ts +59 -0
  230. package/dist/journey/api-effects.d.ts.map +1 -0
  231. package/dist/journey/api-effects.js +386 -0
  232. package/dist/journey/api-effects.js.map +1 -0
  233. package/dist/journey/derived-identity.d.ts +91 -0
  234. package/dist/journey/derived-identity.d.ts.map +1 -0
  235. package/dist/journey/derived-identity.js +123 -0
  236. package/dist/journey/derived-identity.js.map +1 -0
  237. package/dist/journey/index.d.ts +6 -0
  238. package/dist/journey/index.d.ts.map +1 -0
  239. package/dist/journey/index.js +6 -0
  240. package/dist/journey/index.js.map +1 -0
  241. package/dist/journey/intent.d.ts +36 -0
  242. package/dist/journey/intent.d.ts.map +1 -0
  243. package/dist/journey/intent.js +191 -0
  244. package/dist/journey/intent.js.map +1 -0
  245. package/dist/journey/orchestrator.d.ts +140 -0
  246. package/dist/journey/orchestrator.d.ts.map +1 -0
  247. package/dist/journey/orchestrator.js +415 -0
  248. package/dist/journey/orchestrator.js.map +1 -0
  249. package/dist/journey/provider-launch-intent.d.ts +12 -0
  250. package/dist/journey/provider-launch-intent.d.ts.map +1 -0
  251. package/dist/journey/provider-launch-intent.js +40 -0
  252. package/dist/journey/provider-launch-intent.js.map +1 -0
  253. package/dist/journey/remote-workspace.d.ts +34 -0
  254. package/dist/journey/remote-workspace.d.ts.map +1 -0
  255. package/dist/journey/remote-workspace.js +91 -0
  256. package/dist/journey/remote-workspace.js.map +1 -0
  257. package/dist/journey/root-entry.d.ts +56 -0
  258. package/dist/journey/root-entry.d.ts.map +1 -0
  259. package/dist/journey/root-entry.js +19 -0
  260. package/dist/journey/root-entry.js.map +1 -0
  261. package/dist/journey/selection.d.ts +165 -0
  262. package/dist/journey/selection.d.ts.map +1 -0
  263. package/dist/journey/selection.js +565 -0
  264. package/dist/journey/selection.js.map +1 -0
  265. package/dist/journey/session-failure.d.ts +4 -0
  266. package/dist/journey/session-failure.d.ts.map +1 -0
  267. package/dist/journey/session-failure.js +28 -0
  268. package/dist/journey/session-failure.js.map +1 -0
  269. package/dist/journey/workspace-effects.d.ts +30 -0
  270. package/dist/journey/workspace-effects.d.ts.map +1 -0
  271. package/dist/journey/workspace-effects.js +348 -0
  272. package/dist/journey/workspace-effects.js.map +1 -0
  273. package/dist/local-actions/broker.d.ts +32 -0
  274. package/dist/local-actions/broker.d.ts.map +1 -0
  275. package/dist/local-actions/broker.js +400 -0
  276. package/dist/local-actions/broker.js.map +1 -0
  277. package/dist/local-actions/browser-action.d.ts +78 -0
  278. package/dist/local-actions/browser-action.d.ts.map +1 -0
  279. package/dist/local-actions/browser-action.js +307 -0
  280. package/dist/local-actions/browser-action.js.map +1 -0
  281. package/dist/local-actions/callback-relay.d.ts +45 -0
  282. package/dist/local-actions/callback-relay.d.ts.map +1 -0
  283. package/dist/local-actions/callback-relay.js +265 -0
  284. package/dist/local-actions/callback-relay.js.map +1 -0
  285. package/dist/local-actions/clipboard.d.ts +3 -0
  286. package/dist/local-actions/clipboard.d.ts.map +1 -0
  287. package/dist/local-actions/clipboard.js +18 -0
  288. package/dist/local-actions/clipboard.js.map +1 -0
  289. package/dist/local-actions/contracts.d.ts +63 -0
  290. package/dist/local-actions/contracts.d.ts.map +1 -0
  291. package/dist/local-actions/contracts.js +18 -0
  292. package/dist/local-actions/contracts.js.map +1 -0
  293. package/dist/local-actions/desktop-presentation.d.ts +141 -0
  294. package/dist/local-actions/desktop-presentation.d.ts.map +1 -0
  295. package/dist/local-actions/desktop-presentation.js +253 -0
  296. package/dist/local-actions/desktop-presentation.js.map +1 -0
  297. package/dist/local-actions/device-selection.d.ts +43 -0
  298. package/dist/local-actions/device-selection.d.ts.map +1 -0
  299. package/dist/local-actions/device-selection.js +154 -0
  300. package/dist/local-actions/device-selection.js.map +1 -0
  301. package/dist/local-actions/executor.d.ts +49 -0
  302. package/dist/local-actions/executor.d.ts.map +1 -0
  303. package/dist/local-actions/executor.js +329 -0
  304. package/dist/local-actions/executor.js.map +1 -0
  305. package/dist/local-actions/file-transfers.d.ts +141 -0
  306. package/dist/local-actions/file-transfers.d.ts.map +1 -0
  307. package/dist/local-actions/file-transfers.js +446 -0
  308. package/dist/local-actions/file-transfers.js.map +1 -0
  309. package/dist/local-actions/foreground-notifications.d.ts +45 -0
  310. package/dist/local-actions/foreground-notifications.d.ts.map +1 -0
  311. package/dist/local-actions/foreground-notifications.js +163 -0
  312. package/dist/local-actions/foreground-notifications.js.map +1 -0
  313. package/dist/local-actions/git-signing.d.ts +39 -0
  314. package/dist/local-actions/git-signing.d.ts.map +1 -0
  315. package/dist/local-actions/git-signing.js +135 -0
  316. package/dist/local-actions/git-signing.js.map +1 -0
  317. package/dist/local-actions/index.d.ts +19 -0
  318. package/dist/local-actions/index.d.ts.map +1 -0
  319. package/dist/local-actions/index.js +19 -0
  320. package/dist/local-actions/index.js.map +1 -0
  321. package/dist/local-actions/local-service-actions.d.ts +87 -0
  322. package/dist/local-actions/local-service-actions.d.ts.map +1 -0
  323. package/dist/local-actions/local-service-actions.js +347 -0
  324. package/dist/local-actions/local-service-actions.js.map +1 -0
  325. package/dist/local-actions/loopback.d.ts +5 -0
  326. package/dist/local-actions/loopback.d.ts.map +1 -0
  327. package/dist/local-actions/loopback.js +15 -0
  328. package/dist/local-actions/loopback.js.map +1 -0
  329. package/dist/local-actions/policy-store.d.ts +7 -0
  330. package/dist/local-actions/policy-store.d.ts.map +1 -0
  331. package/dist/local-actions/policy-store.js +70 -0
  332. package/dist/local-actions/policy-store.js.map +1 -0
  333. package/dist/local-actions/policy.d.ts +21 -0
  334. package/dist/local-actions/policy.d.ts.map +1 -0
  335. package/dist/local-actions/policy.js +43 -0
  336. package/dist/local-actions/policy.js.map +1 -0
  337. package/dist/local-actions/private-port-forward.d.ts +36 -0
  338. package/dist/local-actions/private-port-forward.d.ts.map +1 -0
  339. package/dist/local-actions/private-port-forward.js +154 -0
  340. package/dist/local-actions/private-port-forward.js.map +1 -0
  341. package/dist/local-actions/provider-mcp-config.d.ts +101 -0
  342. package/dist/local-actions/provider-mcp-config.d.ts.map +1 -0
  343. package/dist/local-actions/provider-mcp-config.js +166 -0
  344. package/dist/local-actions/provider-mcp-config.js.map +1 -0
  345. package/dist/local-actions/providers.d.ts +12 -0
  346. package/dist/local-actions/providers.d.ts.map +1 -0
  347. package/dist/local-actions/providers.js +42 -0
  348. package/dist/local-actions/providers.js.map +1 -0
  349. package/dist/local-actions/schemas.d.ts +4 -0
  350. package/dist/local-actions/schemas.d.ts.map +1 -0
  351. package/dist/local-actions/schemas.js +314 -0
  352. package/dist/local-actions/schemas.js.map +1 -0
  353. package/dist/local-actions/sensitive-consent.d.ts +32 -0
  354. package/dist/local-actions/sensitive-consent.d.ts.map +1 -0
  355. package/dist/local-actions/sensitive-consent.js +47 -0
  356. package/dist/local-actions/sensitive-consent.js.map +1 -0
  357. package/dist/machines/command-launch.d.ts +17 -0
  358. package/dist/machines/command-launch.d.ts.map +1 -0
  359. package/dist/machines/command-launch.js +52 -0
  360. package/dist/machines/command-launch.js.map +1 -0
  361. package/dist/machines/execution-receipt.d.ts +18 -0
  362. package/dist/machines/execution-receipt.d.ts.map +1 -0
  363. package/dist/machines/execution-receipt.js +87 -0
  364. package/dist/machines/execution-receipt.js.map +1 -0
  365. package/dist/machines/executions-screen.d.ts +6 -0
  366. package/dist/machines/executions-screen.d.ts.map +1 -0
  367. package/dist/machines/executions-screen.js +410 -0
  368. package/dist/machines/executions-screen.js.map +1 -0
  369. package/dist/machines/explorer.d.ts +75 -0
  370. package/dist/machines/explorer.d.ts.map +1 -0
  371. package/dist/machines/explorer.js +1726 -0
  372. package/dist/machines/explorer.js.map +1 -0
  373. package/dist/machines/live-supervisor-update.d.ts +325 -0
  374. package/dist/machines/live-supervisor-update.d.ts.map +1 -0
  375. package/dist/machines/live-supervisor-update.js +513 -0
  376. package/dist/machines/live-supervisor-update.js.map +1 -0
  377. package/dist/machines/machine-first.d.ts +123 -0
  378. package/dist/machines/machine-first.d.ts.map +1 -0
  379. package/dist/machines/machine-first.js +119 -0
  380. package/dist/machines/machine-first.js.map +1 -0
  381. package/dist/machines/opencode-supervisor.d.ts +51 -0
  382. package/dist/machines/opencode-supervisor.d.ts.map +1 -0
  383. package/dist/machines/opencode-supervisor.js +124 -0
  384. package/dist/machines/opencode-supervisor.js.map +1 -0
  385. package/dist/machines/pagination.d.ts +4 -0
  386. package/dist/machines/pagination.d.ts.map +1 -0
  387. package/dist/machines/pagination.js +7 -0
  388. package/dist/machines/pagination.js.map +1 -0
  389. package/dist/machines/provider-availability.d.ts +42 -0
  390. package/dist/machines/provider-availability.d.ts.map +1 -0
  391. package/dist/machines/provider-availability.js +82 -0
  392. package/dist/machines/provider-availability.js.map +1 -0
  393. package/dist/machines/provider-screen.d.ts +12 -0
  394. package/dist/machines/provider-screen.d.ts.map +1 -0
  395. package/dist/machines/provider-screen.js +129 -0
  396. package/dist/machines/provider-screen.js.map +1 -0
  397. package/dist/machines/session-actionability.d.ts +86 -0
  398. package/dist/machines/session-actionability.d.ts.map +1 -0
  399. package/dist/machines/session-actionability.js +125 -0
  400. package/dist/machines/session-actionability.js.map +1 -0
  401. package/dist/machines/session-visibility.d.ts +139 -0
  402. package/dist/machines/session-visibility.d.ts.map +1 -0
  403. package/dist/machines/session-visibility.js +109 -0
  404. package/dist/machines/session-visibility.js.map +1 -0
  405. package/dist/platform/adapter.d.ts +62 -0
  406. package/dist/platform/adapter.d.ts.map +1 -0
  407. package/dist/platform/adapter.js +240 -0
  408. package/dist/platform/adapter.js.map +1 -0
  409. package/dist/platform/support.d.ts +12 -0
  410. package/dist/platform/support.d.ts.map +1 -0
  411. package/dist/platform/support.js +25 -0
  412. package/dist/platform/support.js.map +1 -0
  413. package/dist/pty/contracts.d.ts +45 -0
  414. package/dist/pty/contracts.d.ts.map +1 -0
  415. package/dist/pty/contracts.js +2 -0
  416. package/dist/pty/contracts.js.map +1 -0
  417. package/dist/pty/evidence-gate.d.ts +14 -0
  418. package/dist/pty/evidence-gate.d.ts.map +1 -0
  419. package/dist/pty/evidence-gate.js +35 -0
  420. package/dist/pty/evidence-gate.js.map +1 -0
  421. package/dist/pty/index.d.ts +5 -0
  422. package/dist/pty/index.d.ts.map +1 -0
  423. package/dist/pty/index.js +5 -0
  424. package/dist/pty/index.js.map +1 -0
  425. package/dist/pty/node-host-terminal.d.ts +14 -0
  426. package/dist/pty/node-host-terminal.d.ts.map +1 -0
  427. package/dist/pty/node-host-terminal.js +173 -0
  428. package/dist/pty/node-host-terminal.js.map +1 -0
  429. package/dist/pty/node-process.d.ts +26 -0
  430. package/dist/pty/node-process.d.ts.map +1 -0
  431. package/dist/pty/node-process.js +102 -0
  432. package/dist/pty/node-process.js.map +1 -0
  433. package/dist/runtime/api-terminal-control-plane.d.ts +7 -0
  434. package/dist/runtime/api-terminal-control-plane.d.ts.map +1 -0
  435. package/dist/runtime/api-terminal-control-plane.js +95 -0
  436. package/dist/runtime/api-terminal-control-plane.js.map +1 -0
  437. package/dist/runtime/backoff.d.ts +17 -0
  438. package/dist/runtime/backoff.d.ts.map +1 -0
  439. package/dist/runtime/backoff.js +61 -0
  440. package/dist/runtime/backoff.js.map +1 -0
  441. package/dist/runtime/boundary.d.ts +171 -0
  442. package/dist/runtime/boundary.d.ts.map +1 -0
  443. package/dist/runtime/boundary.js +1858 -0
  444. package/dist/runtime/boundary.js.map +1 -0
  445. package/dist/runtime/capability-gate.d.ts +25 -0
  446. package/dist/runtime/capability-gate.d.ts.map +1 -0
  447. package/dist/runtime/capability-gate.js +77 -0
  448. package/dist/runtime/capability-gate.js.map +1 -0
  449. package/dist/runtime/contracts.d.ts +25 -0
  450. package/dist/runtime/contracts.d.ts.map +1 -0
  451. package/dist/runtime/contracts.js +66 -0
  452. package/dist/runtime/contracts.js.map +1 -0
  453. package/dist/runtime/errors.d.ts +20 -0
  454. package/dist/runtime/errors.d.ts.map +1 -0
  455. package/dist/runtime/errors.js +22 -0
  456. package/dist/runtime/errors.js.map +1 -0
  457. package/dist/runtime/index.d.ts +9 -0
  458. package/dist/runtime/index.d.ts.map +1 -0
  459. package/dist/runtime/index.js +9 -0
  460. package/dist/runtime/index.js.map +1 -0
  461. package/dist/runtime/node-foreground-session.d.ts +50 -0
  462. package/dist/runtime/node-foreground-session.d.ts.map +1 -0
  463. package/dist/runtime/node-foreground-session.js +431 -0
  464. package/dist/runtime/node-foreground-session.js.map +1 -0
  465. package/dist/runtime/node-websocket-connector.d.ts +6 -0
  466. package/dist/runtime/node-websocket-connector.d.ts.map +1 -0
  467. package/dist/runtime/node-websocket-connector.js +344 -0
  468. package/dist/runtime/node-websocket-connector.js.map +1 -0
  469. package/dist/runtime/observer-screen.d.ts +6 -0
  470. package/dist/runtime/observer-screen.d.ts.map +1 -0
  471. package/dist/runtime/observer-screen.js +144 -0
  472. package/dist/runtime/observer-screen.js.map +1 -0
  473. package/dist/runtime/owner-grant-operations.d.ts +136 -0
  474. package/dist/runtime/owner-grant-operations.d.ts.map +1 -0
  475. package/dist/runtime/owner-grant-operations.js +216 -0
  476. package/dist/runtime/owner-grant-operations.js.map +1 -0
  477. package/dist/runtime/owner-grants-screen.d.ts +40 -0
  478. package/dist/runtime/owner-grants-screen.d.ts.map +1 -0
  479. package/dist/runtime/owner-grants-screen.js +987 -0
  480. package/dist/runtime/owner-grants-screen.js.map +1 -0
  481. package/dist/runtime/terminal-transport.d.ts +85 -0
  482. package/dist/runtime/terminal-transport.d.ts.map +1 -0
  483. package/dist/runtime/terminal-transport.js +152 -0
  484. package/dist/runtime/terminal-transport.js.map +1 -0
  485. package/dist/sync/continuous-sync-supervisor.d.ts +107 -0
  486. package/dist/sync/continuous-sync-supervisor.d.ts.map +1 -0
  487. package/dist/sync/continuous-sync-supervisor.js +1117 -0
  488. package/dist/sync/continuous-sync-supervisor.js.map +1 -0
  489. package/dist/sync/index.d.ts +9 -0
  490. package/dist/sync/index.d.ts.map +1 -0
  491. package/dist/sync/index.js +9 -0
  492. package/dist/sync/index.js.map +1 -0
  493. package/dist/sync/journal.d.ts +57 -0
  494. package/dist/sync/journal.d.ts.map +1 -0
  495. package/dist/sync/journal.js +685 -0
  496. package/dist/sync/journal.js.map +1 -0
  497. package/dist/sync/revisions.d.ts +118 -0
  498. package/dist/sync/revisions.d.ts.map +1 -0
  499. package/dist/sync/revisions.js +364 -0
  500. package/dist/sync/revisions.js.map +1 -0
  501. package/dist/sync/supervisor.d.ts +107 -0
  502. package/dist/sync/supervisor.d.ts.map +1 -0
  503. package/dist/sync/supervisor.js +246 -0
  504. package/dist/sync/supervisor.js.map +1 -0
  505. package/dist/sync/workspace-sync-client.d.ts +18 -0
  506. package/dist/sync/workspace-sync-client.d.ts.map +1 -0
  507. package/dist/sync/workspace-sync-client.js +150 -0
  508. package/dist/sync/workspace-sync-client.js.map +1 -0
  509. package/dist/sync/workspace-sync-coordinator.d.ts +76 -0
  510. package/dist/sync/workspace-sync-coordinator.d.ts.map +1 -0
  511. package/dist/sync/workspace-sync-coordinator.js +621 -0
  512. package/dist/sync/workspace-sync-coordinator.js.map +1 -0
  513. package/dist/sync/workspace-sync-product-service.d.ts +79 -0
  514. package/dist/sync/workspace-sync-product-service.d.ts.map +1 -0
  515. package/dist/sync/workspace-sync-product-service.js +398 -0
  516. package/dist/sync/workspace-sync-product-service.js.map +1 -0
  517. package/dist/sync/workspace-sync-protocol.d.ts +145 -0
  518. package/dist/sync/workspace-sync-protocol.d.ts.map +1 -0
  519. package/dist/sync/workspace-sync-protocol.js +347 -0
  520. package/dist/sync/workspace-sync-protocol.js.map +1 -0
  521. package/dist/terminal/appbar.d.ts +40 -0
  522. package/dist/terminal/appbar.d.ts.map +1 -0
  523. package/dist/terminal/appbar.js +55 -0
  524. package/dist/terminal/appbar.js.map +1 -0
  525. package/dist/terminal/cell-width.d.ts +3 -0
  526. package/dist/terminal/cell-width.d.ts.map +1 -0
  527. package/dist/terminal/cell-width.js +53 -0
  528. package/dist/terminal/cell-width.js.map +1 -0
  529. package/dist/terminal/codec.d.ts +107 -0
  530. package/dist/terminal/codec.d.ts.map +1 -0
  531. package/dist/terminal/codec.js +538 -0
  532. package/dist/terminal/codec.js.map +1 -0
  533. package/dist/terminal/foreground.d.ts +135 -0
  534. package/dist/terminal/foreground.d.ts.map +1 -0
  535. package/dist/terminal/foreground.js +2097 -0
  536. package/dist/terminal/foreground.js.map +1 -0
  537. package/dist/terminal/generated/terminal-wire-v1.d.ts +26 -0
  538. package/dist/terminal/generated/terminal-wire-v1.d.ts.map +1 -0
  539. package/dist/terminal/generated/terminal-wire-v1.js +27 -0
  540. package/dist/terminal/generated/terminal-wire-v1.js.map +1 -0
  541. package/dist/terminal/mode.d.ts +33 -0
  542. package/dist/terminal/mode.d.ts.map +1 -0
  543. package/dist/terminal/mode.js +99 -0
  544. package/dist/terminal/mode.js.map +1 -0
  545. package/dist/terminal/passthrough.d.ts +47 -0
  546. package/dist/terminal/passthrough.d.ts.map +1 -0
  547. package/dist/terminal/passthrough.js +666 -0
  548. package/dist/terminal/passthrough.js.map +1 -0
  549. package/dist/terminal/resume.d.ts +58 -0
  550. package/dist/terminal/resume.d.ts.map +1 -0
  551. package/dist/terminal/resume.js +185 -0
  552. package/dist/terminal/resume.js.map +1 -0
  553. package/dist/terminal/viewport.d.ts +93 -0
  554. package/dist/terminal/viewport.d.ts.map +1 -0
  555. package/dist/terminal/viewport.js +266 -0
  556. package/dist/terminal/viewport.js.map +1 -0
  557. package/dist/terminal/workbench.d.ts +32 -0
  558. package/dist/terminal/workbench.d.ts.map +1 -0
  559. package/dist/terminal/workbench.js +316 -0
  560. package/dist/terminal/workbench.js.map +1 -0
  561. package/dist/terminal/xterm-vte.d.ts +49 -0
  562. package/dist/terminal/xterm-vte.d.ts.map +1 -0
  563. package/dist/terminal/xterm-vte.js +602 -0
  564. package/dist/terminal/xterm-vte.js.map +1 -0
  565. package/dist/version.d.ts +3 -0
  566. package/dist/version.d.ts.map +1 -0
  567. package/dist/version.js +3 -0
  568. package/dist/version.js.map +1 -0
  569. package/dist/workspace/binding-path.d.ts +17 -0
  570. package/dist/workspace/binding-path.d.ts.map +1 -0
  571. package/dist/workspace/binding-path.js +91 -0
  572. package/dist/workspace/binding-path.js.map +1 -0
  573. package/dist/workspace/binding-store.d.ts +107 -0
  574. package/dist/workspace/binding-store.d.ts.map +1 -0
  575. package/dist/workspace/binding-store.js +783 -0
  576. package/dist/workspace/binding-store.js.map +1 -0
  577. package/dist/workspace/binding.d.ts +35 -0
  578. package/dist/workspace/binding.d.ts.map +1 -0
  579. package/dist/workspace/binding.js +70 -0
  580. package/dist/workspace/binding.js.map +1 -0
  581. package/dist/workspace/errors.d.ts +4 -0
  582. package/dist/workspace/errors.d.ts.map +1 -0
  583. package/dist/workspace/errors.js +19 -0
  584. package/dist/workspace/errors.js.map +1 -0
  585. package/dist/workspace/exclusion.d.ts +21 -0
  586. package/dist/workspace/exclusion.d.ts.map +1 -0
  587. package/dist/workspace/exclusion.js +243 -0
  588. package/dist/workspace/exclusion.js.map +1 -0
  589. package/dist/workspace/index.d.ts +8 -0
  590. package/dist/workspace/index.d.ts.map +1 -0
  591. package/dist/workspace/index.js +8 -0
  592. package/dist/workspace/index.js.map +1 -0
  593. package/dist/workspace/lifecycle.d.ts +56 -0
  594. package/dist/workspace/lifecycle.d.ts.map +1 -0
  595. package/dist/workspace/lifecycle.js +94 -0
  596. package/dist/workspace/lifecycle.js.map +1 -0
  597. package/dist/workspace/manifest.d.ts +47 -0
  598. package/dist/workspace/manifest.d.ts.map +1 -0
  599. package/dist/workspace/manifest.js +243 -0
  600. package/dist/workspace/manifest.js.map +1 -0
  601. package/dist/workspace/paths.d.ts +14 -0
  602. package/dist/workspace/paths.d.ts.map +1 -0
  603. package/dist/workspace/paths.js +67 -0
  604. package/dist/workspace/paths.js.map +1 -0
  605. package/dist/workspace/schema.d.ts +15 -0
  606. package/dist/workspace/schema.d.ts.map +1 -0
  607. package/dist/workspace/schema.js +33 -0
  608. package/dist/workspace/schema.js.map +1 -0
  609. package/dist/workspace/selection-screen.d.ts +4 -0
  610. package/dist/workspace/selection-screen.d.ts.map +1 -0
  611. package/dist/workspace/selection-screen.js +216 -0
  612. package/dist/workspace/selection-screen.js.map +1 -0
  613. package/dist/workspace/selection-service.d.ts +16 -0
  614. package/dist/workspace/selection-service.d.ts.map +1 -0
  615. package/dist/workspace/selection-service.js +65 -0
  616. package/dist/workspace/selection-service.js.map +1 -0
  617. package/node_modules/@xterm/headless/README.md +31 -0
  618. package/node_modules/@xterm/headless/lib-headless/xterm-headless.js +2 -0
  619. package/node_modules/@xterm/headless/lib-headless/xterm-headless.js.map +1 -0
  620. package/node_modules/@xterm/headless/lib-headless/xterm-headless.mjs +46 -0
  621. package/node_modules/@xterm/headless/lib-headless/xterm-headless.mjs.map +7 -0
  622. package/node_modules/@xterm/headless/package.json +29 -0
  623. package/node_modules/@xterm/headless/typings/xterm-headless.d.ts +1385 -0
  624. package/package.json +75 -0
@@ -0,0 +1,415 @@
1
+ import { ContractViolation } from "../core/validation.js";
2
+ import { randomUUID } from "node:crypto";
3
+ import { resolve } from "node:path";
4
+ import { EXIT_CODES, CunaError } from "../core/errors.js";
5
+ import { deriveMachineCreateIdentity } from "./derived-identity.js";
6
+ import { planAgentSessionSelection, planMachineSelection, } from "./selection.js";
7
+ function frozenLedger(ledger) {
8
+ return Object.freeze({
9
+ idempotencyKey: ledger.idempotencyKey,
10
+ ...(ledger.machineCreateRequestId === undefined
11
+ ? {}
12
+ : { machineCreateRequestId: ledger.machineCreateRequestId }),
13
+ ...(ledger.createdMachineId === undefined ? {} : { createdMachineId: ledger.createdMachineId }),
14
+ ...(ledger.createdAgentSessionId === undefined
15
+ ? {}
16
+ : { createdAgentSessionId: ledger.createdAgentSessionId }),
17
+ ...(ledger.synchronizedBindingId === undefined
18
+ ? {}
19
+ : { synchronizedBindingId: ledger.synchronizedBindingId }),
20
+ ...(ledger.lastCompletedPhase === undefined
21
+ ? {}
22
+ : { lastCompletedPhase: ledger.lastCompletedPhase }),
23
+ });
24
+ }
25
+ function cancelled() {
26
+ return new CunaError({
27
+ code: "cuna.journey.cancelled",
28
+ message: "The Cuna journey was cancelled before completion.",
29
+ exitCode: EXIT_CODES.network,
30
+ retryable: true,
31
+ hint: "No cloud resource was assumed deleted. Inspect `cuna machines list` before retrying.",
32
+ });
33
+ }
34
+ function selectionFailure(target, plan) {
35
+ const candidates = plan.kind === "ambiguous" ? plan.candidates.map((candidate) => candidate.id) : undefined;
36
+ return new CunaError({
37
+ code: plan.kind === "ambiguous" ? "cuna.journey.ambiguous" : "cuna.journey.authority_unavailable",
38
+ message: plan.kind === "ambiguous"
39
+ ? `More than one exact ${target} candidate remains.`
40
+ : `Cuna could not prove a safe ${target} selection.`,
41
+ exitCode: plan.kind === "ambiguous" ? EXIT_CODES.conflict : EXIT_CODES.policy,
42
+ hint: target === "machine"
43
+ ? plan.reason === "opencode-supervisor-update-required"
44
+ ? "An existing OpenCode machine needs its terminal supervisor updated before a session can start. Cuna did not create another machine. Open `cuna machines`, stop only the machine and sessions you choose, then select Update terminal supervisor."
45
+ : plan.reason === "agent-mismatch"
46
+ ? "Choose or create a machine configured for this provider (`cuna machines create --agent claude-code|codex|opencode ...`)."
47
+ : plan.reason === "not-found"
48
+ ? "No machine by that name exists in this account. See your machines with `cuna machines list`, create one with `cuna machines create --name NAME --agent claude-code|codex|opencode --yes`, or omit --machine to let Cuna use or create one."
49
+ : plan.reason === "state-not-reusable"
50
+ ? "That machine is not running. Start it with `cuna machines start MACHINE_ID --yes`, or omit --machine to let Cuna use or create a running one."
51
+ // `state-unknown` names a running machine whose provider runtime
52
+ // Cuna could not verify. Repeating `--machine NAME` was the old
53
+ // hint and it named the option the caller had already given.
54
+ : plan.reason === "state-unknown"
55
+ ? "That machine is running, but Cuna could not verify its agent runtime. Read it with `cuna capabilities --scope machine --resource-id MACHINE_ID`; if the terminal supervisor is the blocker, update it from `cuna machines`."
56
+ : "Read the machine with `cuna machines list` and select one that is running."
57
+ : plan.reason === "attachment-unobservable"
58
+ // Naming the prerequisite instead of implying a retry. The writer seat
59
+ // is read from the API; when it reports no attestable PTY (`none`,
60
+ // `owner_unrecoverable`) or the deployment does not serve the route,
61
+ // reuse cannot prove the session is free and abstains rather than
62
+ // racing a terminal that may already have a writer. Waiting changes
63
+ // nothing, which is exactly why this must not read as staleness.
64
+ ? "Cuna cannot observe whether the existing session's terminal is free (no attested terminal for its current process, or this API does not publish the seat), so it will not reuse it. Start a fresh one with --new-session, or inspect it with `cuna agent-sessions get ID`."
65
+ : plan.reason === "already-attached"
66
+ // The holder is the writer seat's client instance id as the API
67
+ // recorded it. No CLI flag exposes an observer attach today, and an
68
+ // explicit --agent-session of a held seat is refused by this same
69
+ // branch, so the hint names the one route that exists.
70
+ ? `Another client${plan.kind === "unavailable" && plan.holder !== undefined ? ` (${plan.holder})` : ""} holds the writer seat of the existing session for this workspace. Start a second session with --new-session, or wait until that client detaches.`
71
+ : "Select an exact child with --agent-session ID or request --new-session.",
72
+ details: {
73
+ target: target === "machine" ? "machine" : "agent_session",
74
+ reason: plan.reason,
75
+ ...(plan.kind === "unavailable" && plan.holder !== undefined ? { holder: plan.holder } : {}),
76
+ // Which one. Every `unavailable` plan may carry the id it rejected, and
77
+ // dropping it made two different branches indistinguishable from the
78
+ // outside: on 2026-08-30 a refusal reading
79
+ // `authority-observation-stale` could have come either from one
80
+ // session's own freshness or from the whole collection's, and the
81
+ // printed error could not say which -- while both inputs were hardcoded
82
+ // fresh, so neither branch should have been reachable at all.
83
+ ...("targetId" in plan && plan.targetId !== undefined
84
+ ? { target_id: plan.targetId }
85
+ : {}),
86
+ ...(candidates === undefined ? {} : { candidates }),
87
+ },
88
+ });
89
+ }
90
+ function unreconcilableCreate(cause) {
91
+ return new CunaError({
92
+ code: "cuna.journey.machine_create_outcome_unreconcilable",
93
+ message: "Cuna cannot prove whether the machine-create request committed.",
94
+ exitCode: EXIT_CODES.remote,
95
+ retryable: false,
96
+ // This hint used to read "the producer must expose the create request
97
+ // identity". It already did; the client was throwing the key away by
98
+ // minting it from randomness. The identity is now derived from the
99
+ // invocation, so repeating the SAME command is the recovery: it re-derives
100
+ // the same request identity and reconciles instead of creating a sibling.
101
+ hint: "Repeat this exact command to reconcile the same create request. Run `cuna machines list` first if you want to see the outcome before retrying.",
102
+ details: { unproven_outcome: "machine_create_request" },
103
+ cause,
104
+ });
105
+ }
106
+ function unreconcilableAgentSessionCreate(cause) {
107
+ // Only fixed vocabulary and opaque UUIDs cross this diagnostic boundary.
108
+ const codes = new Set(["cuna.network.failed", "cuna.network.service_unavailable", "cuna.network.rate_limited", "cuna.remote.rejected", "cuna.remote.conflict", "cuna.remote.not_found", "cuna.remote.operation_not_served", "cuna.remote.malformed_response", "cuna.provider.v2_unavailable", "cuna.provider.selection_cancelled", "cuna.provider.pending_intent_conflict", "cuna.provider.intent_history_full", "cuna.journey.agent_session_create_authority_mismatch"]);
109
+ const reasons = new Set(["agent_session_memory_capacity", "agent_session_machine_not_found", "invalid_provider_session_request", "provider_session_v2_invalid_input", "provider_session_v2_credentials_unavailable", "provider_session_v2_scope_unavailable", "provider_session_v2_profile_unavailable", "provider_session_v2_receipt_invalid", "provider_session_v2_authority_unavailable", "provider_session_v2_operation_conflict", "provider_session_v2_profile_mismatch", "provider_session_v2_capacity_exceeded", "provider_session_v2_machine_not_running"]);
110
+ const predicates = new Set(["provider_v2_create", "provider_v2_create_scope", "provider_v2_schema", "provider_v2_exact_contract", "contract_decode_failed", "matches_requested_resource", "response_within_size_limit"]);
111
+ const details = { recovery: "exhausted" };
112
+ const own = (value, key) => { const descriptor = Object.getOwnPropertyDescriptor(value, key); return descriptor && "value" in descriptor ? descriptor.value : undefined; };
113
+ if (cause instanceof ContractViolation) {
114
+ const predicate = own(cause, "predicate");
115
+ if (typeof predicate === "string" && predicates.has(predicate))
116
+ details.predicate = predicate;
117
+ // Response decoder violations are wrapped by fetchDecoded. This plain exact-contract
118
+ // violation in the create boundary comes from providerSessionBody before transport.
119
+ if (predicate === "provider_v2_exact_contract")
120
+ details.failure_stage = "local_pre_admission";
121
+ }
122
+ if (cause instanceof CunaError) {
123
+ const code = own(cause, "code");
124
+ if (typeof code === "string" && codes.has(code))
125
+ details.cause_code = code;
126
+ const raw = own(cause, "details");
127
+ if (raw && typeof raw === "object") {
128
+ const status = own(raw, "http_status");
129
+ if (typeof status === "number" && Number.isInteger(status) && status >= 400 && status <= 599)
130
+ details.http_status = status;
131
+ const reason = own(raw, "reason");
132
+ if (typeof reason === "string" && reasons.has(reason))
133
+ details.cause_reason = reason;
134
+ const predicate = own(raw, "predicate");
135
+ if (typeof predicate === "string" && predicates.has(predicate))
136
+ details.predicate = predicate;
137
+ for (const key of ["operation_id", "request_id"]) {
138
+ const value = own(raw, key);
139
+ if (typeof value === "string" && /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/.test(value))
140
+ details[key] = value;
141
+ }
142
+ }
143
+ if (typeof code === "string" && ["cuna.provider.v2_unavailable", "cuna.provider.selection_cancelled", "cuna.provider.pending_intent_conflict", "cuna.provider.intent_history_full"].includes(code))
144
+ details.failure_stage = "local_pre_admission";
145
+ }
146
+ if (details.cause_code === "cuna.remote.conflict" && details.http_status === 409 && details.cause_reason === "agent_session_memory_capacity") {
147
+ return new CunaError({
148
+ code: "cuna.agent.memory_capacity",
149
+ message: "The selected Machine does not have enough available memory to start this OpenCode session.",
150
+ exitCode: EXIT_CODES.conflict,
151
+ retryable: false,
152
+ hint: "Inspect the Machine's running sessions. If appropriate, stop an unneeded session to free memory, then repeat this command with the same Workspace and preset to resume the recorded launch. Its pending operation identity is preserved; do not request a different launch to bypass this refusal.",
153
+ details: { ...details, recovery: "pending_identity_preserved" },
154
+ cause,
155
+ });
156
+ }
157
+ const diagnostic = [details.cause_code, details.cause_reason, details.http_status, details.predicate].filter(value => value !== undefined).join(" / ");
158
+ return new CunaError({
159
+ code: "cuna.journey.agent_session_create_outcome_unreconcilable",
160
+ message: (details.failure_stage === "local_pre_admission" ? "Local launch preparation refused before this attempt dispatched; any earlier launch remains unresolved." : "Cuna cannot prove whether the AgentSession create request committed.") + (diagnostic ? " Diagnostic: " + diagnostic + "." : ""),
161
+ exitCode: EXIT_CODES.remote,
162
+ retryable: false,
163
+ hint: "Do not request another child with a new key. Retry recovery with the original journey identity.",
164
+ details,
165
+ cause,
166
+ });
167
+ }
168
+ /**
169
+ * Only the specifically recognized supervisor preflight refusal is passed
170
+ * through here. An HTTP status alone does not establish non-commit.
171
+ */
172
+ function isProvenAgentSessionCreateRejection(cause) {
173
+ return cause instanceof CunaError &&
174
+ cause.code === "cuna.agent.opencode_supervisor_upgrade_required";
175
+ }
176
+ function defaultAuthMode(intent) {
177
+ if (intent.authMode !== undefined)
178
+ return intent.authMode;
179
+ return intent.agent === "openclaw" ? "credential_binding" : "interactive_login";
180
+ }
181
+ async function boundary(input) {
182
+ if (input.signal.aborted)
183
+ throw cancelled();
184
+ input.effects.onPhase?.(input.phase);
185
+ if (input.signal.aborted)
186
+ throw cancelled();
187
+ const value = await input.action();
188
+ if (input.signal.aborted)
189
+ throw cancelled();
190
+ input.ledger.lastCompletedPhase = input.phase;
191
+ return value;
192
+ }
193
+ /**
194
+ * Executes the automatic CLI journey as a fenced sequence. A later phase can
195
+ * consume only authoritative output returned by its direct predecessor.
196
+ */
197
+ export async function orchestrateAgentJourney(input) {
198
+ const controller = input.signal === undefined ? new AbortController() : undefined;
199
+ const signal = input.signal ?? controller?.signal;
200
+ if (signal === undefined)
201
+ throw new TypeError("Missing journey cancellation authority.");
202
+ const ledger = {
203
+ // Scoped to this process on purpose. It keys the AgentSession create, whose
204
+ // canonical intent includes the workspace generation the sync is about to
205
+ // advance, so a value derived before that generation exists would replay
206
+ // the wrong child. The machine create, whose canonical intent IS known up
207
+ // front, gets a derived identity instead — see below.
208
+ idempotencyKey: input.idempotencyKey ?? `cuna-journey-${randomUUID()}`,
209
+ };
210
+ try {
211
+ const localPath = resolve(input.intent.localPath ?? process.cwd());
212
+ const workspaceInspection = await boundary({
213
+ phase: "inspect-workspace", signal, effects: input.effects, ledger,
214
+ action: () => input.effects.inspectWorkspace({
215
+ localPath,
216
+ syncMode: input.intent.syncMode,
217
+ signal,
218
+ }),
219
+ });
220
+ const machines = await boundary({
221
+ phase: "observe-machines", signal, effects: input.effects, ledger,
222
+ action: () => input.effects.observeMachines({ requestedAgent: input.intent.agent, signal }),
223
+ });
224
+ const planMachines = (projectMachineId) => planMachineSelection({
225
+ requestedAgent: input.intent.agent,
226
+ forceNew: input.intent.machine.kind === "new",
227
+ ...(input.intent.machine.kind === "exact-name"
228
+ ? { selector: { kind: "name", value: input.intent.machine.name } }
229
+ : {}),
230
+ ...(projectMachineId === undefined || input.intent.machine.kind !== "automatic"
231
+ ? {}
232
+ : { projectBinding: { machineId: projectMachineId, freshness: "fresh" } }),
233
+ collectionFreshness: "fresh",
234
+ machines,
235
+ });
236
+ let machinePlan = planMachines(workspaceInspection.projectMachineId);
237
+ if (machinePlan.kind === "stale-binding" && machinePlan.reason === "machine-missing") {
238
+ // The folder is the project; a Machine is disposable (PRD-PM-008 §H,
239
+ // E14-D1). A binding whose Machine is no longer in the collection does
240
+ // not stop the journey: select or create as an unbound folder would,
241
+ // and let the synchronize step read the bound Machine itself before it
242
+ // rebinds — a listing is not proof of absence, the Machine read is.
243
+ machinePlan = planMachines(undefined);
244
+ }
245
+ let machine;
246
+ if (machinePlan.kind === "select" && machinePlan.target === "machine") {
247
+ machine = { id: machinePlan.machineId, state: machinePlan.machine.state };
248
+ }
249
+ else if (machinePlan.kind === "create-required" && machinePlan.target === "machine") {
250
+ // Derived, not minted. A re-run of this exact invocation re-derives this
251
+ // identity and finds its own previous attempt; a random one is lost with
252
+ // the process that held it, and the orphan it leaves behind bills with
253
+ // nothing able to name it.
254
+ const createIdentity = deriveMachineCreateIdentity({
255
+ userId: input.scope.userId,
256
+ workspaceId: input.scope.workspaceId,
257
+ canonicalLocalRoot: workspaceInspection.canonicalLocalRoot,
258
+ agent: input.intent.agent,
259
+ machine: input.intent.machine,
260
+ });
261
+ const requestId = createIdentity.requestId;
262
+ // Set when the request actually leaves this process. A capability check
263
+ // or a declined confirmation fails BEFORE that, and reconciling then asks
264
+ // the server about a request it was never sent: it answers 404, and that
265
+ // 404 replaces the person's own decision with "the resource was not
266
+ // found" at exit 7, for what they chose at exit 4.
267
+ let dispatched = false;
268
+ try {
269
+ machine = await boundary({
270
+ phase: "create-machine", signal, effects: input.effects, ledger,
271
+ action: () => input.effects.createMachine({
272
+ requestedAgent: input.intent.agent,
273
+ idempotencyKey: createIdentity.idempotencyKey,
274
+ requestId,
275
+ onDispatch: () => {
276
+ // From here on an interrupted journey has a request identity to
277
+ // reconcile against.
278
+ dispatched = true;
279
+ ledger.machineCreateRequestId = requestId;
280
+ },
281
+ signal,
282
+ }),
283
+ });
284
+ ledger.createdMachineId = machine.id;
285
+ }
286
+ catch (createError) {
287
+ if (signal.aborted || !dispatched)
288
+ throw createError;
289
+ const reconciled = await boundary({
290
+ phase: "reconcile-machine-create", signal, effects: input.effects, ledger,
291
+ action: () => input.effects.reconcileMachineCreate({
292
+ requestId,
293
+ cause: createError,
294
+ signal,
295
+ }),
296
+ });
297
+ if (reconciled === "unreconcilable")
298
+ throw unreconcilableCreate(createError);
299
+ machine = reconciled;
300
+ ledger.createdMachineId = machine.id;
301
+ }
302
+ }
303
+ else {
304
+ throw selectionFailure("machine", machinePlan);
305
+ }
306
+ machine = await boundary({
307
+ phase: "ready-machine", signal, effects: input.effects, ledger,
308
+ action: () => input.effects.ensureMachineReady({
309
+ machineId: machine.id,
310
+ observedState: machine.state,
311
+ signal,
312
+ }),
313
+ });
314
+ if (machine.state !== "running") {
315
+ throw new CunaError({
316
+ code: "cuna.journey.machine_not_ready",
317
+ message: "The selected machine did not reach authoritative running state.",
318
+ exitCode: EXIT_CODES.remote,
319
+ hint: "Run `cuna machines list` to see its current state, then start it before attaching.",
320
+ details: { machine_id: machine.id, observed_state: machine.state },
321
+ });
322
+ }
323
+ const workspace = await boundary({
324
+ phase: "synchronize-workspace", signal, effects: input.effects, ledger,
325
+ action: () => input.effects.synchronizeWorkspace({
326
+ machineId: machine.id,
327
+ localPath,
328
+ syncMode: input.intent.syncMode,
329
+ signal,
330
+ }),
331
+ });
332
+ ledger.synchronizedBindingId = workspace.bindingId;
333
+ const agentSessions = await boundary({
334
+ phase: "observe-agent-sessions", signal, effects: input.effects, ledger,
335
+ action: () => input.effects.observeAgentSessions({ machineId: machine.id, signal }),
336
+ });
337
+ const authMode = defaultAuthMode(input.intent);
338
+ const sessionPlan = planAgentSessionSelection({
339
+ machineId: machine.id,
340
+ requestedAgent: input.intent.agent,
341
+ workspaceIdentity: workspace.workspaceIdentity,
342
+ workspaceGeneration: workspace.generation,
343
+ cwd: workspace.remoteCwd.replace(/^\/workspace\/?/u, "") || ".",
344
+ authMode,
345
+ forceNewSession: input.intent.newSession || ledger.createdMachineId !== undefined,
346
+ collectionFreshness: "fresh",
347
+ agentSessions,
348
+ });
349
+ let agentSession;
350
+ if (sessionPlan.kind === "select" && sessionPlan.target === "agent-session") {
351
+ agentSession = { id: sessionPlan.agentSessionId, machineId: sessionPlan.machineId };
352
+ }
353
+ else if (sessionPlan.kind === "create-required" && sessionPlan.target === "agent-session") {
354
+ try {
355
+ agentSession = await boundary({
356
+ phase: "create-agent-session", signal, effects: input.effects, ledger,
357
+ action: () => input.effects.createAgentSession({
358
+ machineId: machine.id,
359
+ agent: input.intent.agent,
360
+ authMode,
361
+ ...(input.intent.credentialBindingId === undefined
362
+ ? {}
363
+ : { credentialBindingId: input.intent.credentialBindingId }),
364
+ workspace,
365
+ idempotencyKey: `${ledger.idempotencyKey}-agent`,
366
+ signal,
367
+ }),
368
+ });
369
+ }
370
+ catch (createError) {
371
+ if (signal.aborted || isProvenAgentSessionCreateRejection(createError)) {
372
+ throw createError;
373
+ }
374
+ throw unreconcilableAgentSessionCreate(createError);
375
+ }
376
+ ledger.createdAgentSessionId = agentSession.id;
377
+ }
378
+ else {
379
+ throw selectionFailure("AgentSession", sessionPlan);
380
+ }
381
+ agentSession = await boundary({
382
+ phase: "ready-agent-session", signal, effects: input.effects, ledger,
383
+ action: () => input.effects.ensureAgentSessionReady({ agentSessionId: agentSession.id, signal }),
384
+ });
385
+ await boundary({
386
+ phase: "attach", signal, effects: input.effects, ledger,
387
+ action: () => input.effects.attach({
388
+ agentSessionId: agentSession.id,
389
+ expectedAgent: input.intent.agent,
390
+ signal,
391
+ }),
392
+ });
393
+ return Object.freeze({
394
+ machineId: machine.id,
395
+ agentSessionId: agentSession.id,
396
+ workspaceBindingId: workspace.bindingId,
397
+ workspaceGeneration: workspace.generation,
398
+ });
399
+ }
400
+ catch (error) {
401
+ if (signal.aborted || (error instanceof CunaError && error.code === "cuna.journey.cancelled")) {
402
+ const cleanupSignal = AbortSignal.timeout(5_000);
403
+ try {
404
+ await input.effects.reconcileCancellation({ ledger: frozenLedger(ledger), signal: cleanupSignal });
405
+ }
406
+ catch {
407
+ // Cancellation reconciliation is advisory evidence only. Its failure
408
+ // must not turn an unproven cloud outcome into successful cleanup.
409
+ }
410
+ throw cancelled();
411
+ }
412
+ throw error;
413
+ }
414
+ }
415
+ //# sourceMappingURL=orchestrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/journey/orchestrator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /** Reuses the fsync journal and exclusive local writer; no provider credentials are persisted. */
2
+ export declare function withProviderLaunchIntent<T>(input: {
3
+ stateDirectory: string;
4
+ ownerId: string;
5
+ workspaceId: string;
6
+ machineId: string;
7
+ executionWorkspaceId: string;
8
+ intent: Readonly<Record<string, unknown>>;
9
+ confirmNew?: () => Promise<boolean>;
10
+ create: (operationId: string) => Promise<T>;
11
+ }): Promise<T>;
12
+ //# sourceMappingURL=provider-launch-intent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-launch-intent.d.ts","sourceRoot":"","sources":["../../src/journey/provider-launch-intent.ts"],"names":[],"mappings":"AAMA,kGAAkG;AAClG,wBAAsB,wBAAwB,CAAC,CAAC,EAAE,KAAK,EAAC;IAAC,cAAc,EAAC,MAAM,CAAC;IAAA,OAAO,EAAC,MAAM,CAAC;IAAA,WAAW,EAAC,MAAM,CAAC;IAAA,SAAS,EAAC,MAAM,CAAC;IAAA,oBAAoB,EAAC,MAAM,CAAC;IAAA,MAAM,EAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAC,OAAO,CAAC,CAAC,CAAC;IAAA,UAAU,CAAC,EAAC,MAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAAA,MAAM,EAAC,CAAC,WAAW,EAAC,MAAM,KAAG,OAAO,CAAC,CAAC,CAAC,CAAA;CAAC,GAAE,OAAO,CAAC,CAAC,CAAC,CAoB1R"}
@@ -0,0 +1,40 @@
1
+ import { createHash, randomUUID } from 'node:crypto';
2
+ import { join } from 'node:path';
3
+ import { DurableSyncJournal, inspectSyncJournal } from '../sync/journal.js';
4
+ import { CunaError, EXIT_CODES } from '../core/errors.js';
5
+ import { stableUuid } from './derived-identity.js';
6
+ /** Reuses the fsync journal and exclusive local writer; no provider credentials are persisted. */
7
+ export async function withProviderLaunchIntent(input) {
8
+ const scope = JSON.stringify(['provider-launch-v2', input.ownerId, input.workspaceId, input.machineId, input.executionWorkspaceId]);
9
+ const directory = join(input.stateDirectory, 'provider-launch-v2', createHash('sha256').update(scope).digest('hex'));
10
+ const journal = await DurableSyncJournal.open({ directory, bindingId: stableUuid('provider-launch-v2', scope), bindingGeneration: 1, ownerId: randomUUID(), leaseMs: 120000 });
11
+ try {
12
+ const inspection = await inspectSyncJournal(directory);
13
+ const latest = new Map(inspection.records.map(record => [record.operationId, record]));
14
+ const pending = [...latest.values()].filter(record => record.state !== 'applied' && record.state !== 'conflicted');
15
+ const serialized = JSON.stringify(input.intent), digest = createHash('sha256').update(serialized).digest('hex');
16
+ if (pending.length > 1 || pending.some(record => record.digest !== digest))
17
+ throw new CunaError({ code: 'cuna.provider.pending_intent_conflict', message: 'A previous provider launch is unresolved with a different Workspace version or preset. Resolve that launch before requesting another.', exitCode: EXIT_CODES.conflict });
18
+ const resolved = [...latest.values()].filter(record => record.state === 'applied').at(-1);
19
+ if (pending.length === 0 && resolved && !(await input.confirmNew?.())) {
20
+ if (resolved.digest !== digest)
21
+ throw new CunaError({ code: 'cuna.provider.pending_intent_conflict', message: 'Resume requires the previously selected Workspace version and preset. Explicitly confirm a new session to change them.', exitCode: EXIT_CODES.conflict });
22
+ return await input.create(resolved.operationId);
23
+ }
24
+ if (pending.length === 0 && latest.size >= 1024)
25
+ throw new CunaError({ code: 'cuna.provider.intent_history_full', message: 'The local provider launch history is full. Inspect it before starting another launch.', exitCode: EXIT_CODES.conflict });
26
+ let record = pending[0] ?? await journal.append({ operationId: randomUUID(), baseGeneration: 1, digest, byteLength: Buffer.byteLength(serialized) });
27
+ if (record.state === 'queued')
28
+ record = await journal.transition(record.operationId, 'sending');
29
+ const result = await input.create(record.operationId);
30
+ await journal.renew();
31
+ if (record.state === 'sending' || record.state === 'uncertain')
32
+ await journal.transition(record.operationId, 'acknowledged');
33
+ await journal.transition(record.operationId, 'applied');
34
+ return result;
35
+ }
36
+ finally {
37
+ await journal.close();
38
+ }
39
+ }
40
+ //# sourceMappingURL=provider-launch-intent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-launch-intent.js","sourceRoot":"","sources":["../../src/journey/provider-launch-intent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import type { ProviderPreset } from "../api/provider-v2.js";
2
+ import { type CunaApiClient } from "../api/client.js";
3
+ import type { AgentSession } from "../api/contracts.js";
4
+ /** A remote-only launch never creates a local workspace binding. */
5
+ export declare function launchRemoteWorkspaceSession(input: {
6
+ readonly client: CunaApiClient;
7
+ readonly preset: ProviderPreset;
8
+ readonly machineId: string;
9
+ readonly workspaceId: string;
10
+ readonly agent: "claude-code" | "codex" | "opencode";
11
+ readonly signal?: AbortSignal;
12
+ readonly onProgress?: (message: string) => void;
13
+ readonly now?: () => number;
14
+ readonly sleep?: (milliseconds: number, signal: AbortSignal) => Promise<void>;
15
+ readonly providerLaunchState: {
16
+ stateDirectory: string;
17
+ ownerId: string;
18
+ };
19
+ readonly confirmNew?: () => Promise<boolean>;
20
+ }): Promise<string>;
21
+ /** Shared canonical admission for already published remote or synchronized Workspaces. */
22
+ export declare function createPublishedProviderSessionV2(input: {
23
+ client: CunaApiClient;
24
+ machineId: string;
25
+ agent: "opencode" | "codex" | "claude-code";
26
+ preset: ProviderPreset;
27
+ operationId: string;
28
+ executionWorkspaceId: string;
29
+ generation: number;
30
+ cwd: string;
31
+ signal: AbortSignal;
32
+ }): Promise<AgentSession>;
33
+ export declare function requireMatchingPreset(agent: string, preset: ProviderPreset): void;
34
+ //# sourceMappingURL=remote-workspace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-workspace.d.ts","sourceRoot":"","sources":["../../src/journey/remote-workspace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAI5D,OAAO,EAAqB,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAKxD,oEAAoE;AACpE,wBAAsB,4BAA4B,CAAC,KAAK,EAAE;IACxD,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,GAAG,UAAU,CAAC;IACrD,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9E,QAAQ,CAAC,mBAAmB,EAAE;QAAC,cAAc,EAAC,MAAM,CAAC;QAAA,OAAO,EAAC,MAAM,CAAA;KAAC,CAAC;IACrE,QAAQ,CAAC,UAAU,CAAC,EAAC,MAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CAC3C,GAAG,OAAO,CAAC,MAAM,CAAC,CAqDlB;AAED,0FAA0F;AAC1F,wBAAsB,gCAAgC,CAAC,KAAK,EAAC;IAAC,MAAM,EAAC,aAAa,CAAC;IAAA,SAAS,EAAC,MAAM,CAAC;IAAA,KAAK,EAAC,UAAU,GAAC,OAAO,GAAC,aAAa,CAAC;IAAA,MAAM,EAAC,cAAc,CAAC;IAAA,WAAW,EAAC,MAAM,CAAC;IAAA,oBAAoB,EAAC,MAAM,CAAC;IAAA,UAAU,EAAC,MAAM,CAAC;IAAA,GAAG,EAAC,MAAM,CAAC;IAAA,MAAM,EAAC,WAAW,CAAA;CAAC,GAAE,OAAO,CAAC,YAAY,CAAC,CAQtR;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,GAAE,IAAI,CAE7E"}