@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 @@
1
+ {"version":3,"file":"machine-first.d.ts","sourceRoot":"","sources":["../../src/machines/machine-first.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,119 @@
1
+ import { machineProviderAvailability } from "./provider-availability.js";
2
+ import { classifySessionActionability } from "./session-actionability.js";
3
+ export const INITIAL_MACHINE_FIRST_STATE = Object.freeze({
4
+ screen: Object.freeze({ kind: "machines" }),
5
+ selectedIndex: 0,
6
+ quit: false,
7
+ });
8
+ export function reduceMachineFirstNavigation(state, event) {
9
+ switch (event.type) {
10
+ case "move":
11
+ return Object.freeze({
12
+ ...state,
13
+ selectedIndex: Math.min(Math.max(0, event.itemCount - 1), Math.max(0, state.selectedIndex + event.delta)),
14
+ });
15
+ case "open-machine":
16
+ return Object.freeze({ screen: Object.freeze({ kind: "machine", machineId: event.machineId }), selectedIndex: 0, quit: false });
17
+ case "open-provider":
18
+ return Object.freeze({
19
+ screen: Object.freeze({ kind: "provider", machineId: event.machineId, provider: event.provider }),
20
+ selectedIndex: 0,
21
+ quit: false,
22
+ });
23
+ case "open-new-machine":
24
+ return Object.freeze({ screen: Object.freeze({ kind: "new-machine" }), selectedIndex: 0, quit: false });
25
+ case "choose-new-machine-provider":
26
+ return Object.freeze({
27
+ screen: Object.freeze({ kind: "new-machine-name", provider: event.provider }),
28
+ selectedIndex: 0,
29
+ quit: false,
30
+ });
31
+ case "back":
32
+ if (state.screen.kind === "provider") {
33
+ return Object.freeze({ screen: Object.freeze({ kind: "machine", machineId: state.screen.machineId }), selectedIndex: 0, quit: false });
34
+ }
35
+ if (state.screen.kind === "new-machine-name") {
36
+ return Object.freeze({ screen: Object.freeze({ kind: "new-machine" }), selectedIndex: 0, quit: false });
37
+ }
38
+ if (state.screen.kind === "machine" || state.screen.kind === "new-machine")
39
+ return INITIAL_MACHINE_FIRST_STATE;
40
+ return state;
41
+ case "quit": return Object.freeze({ ...state, quit: true });
42
+ }
43
+ }
44
+ export function resolveMachineContextActions(machine, options = {}) {
45
+ const provider = machineProviderAvailability(machine);
46
+ const remove = Object.freeze({ kind: "delete", label: "Delete", machineId: machine.id });
47
+ if (machine.state === "stopped") {
48
+ return Object.freeze([
49
+ ...(options.opencodeSupervisorRepairRequired === true
50
+ ? [Object.freeze({ kind: "update-supervisor", label: "Update terminal supervisor", machineId: machine.id })]
51
+ : []),
52
+ Object.freeze({ kind: "start", label: "Start", machineId: machine.id }),
53
+ remove,
54
+ ]);
55
+ }
56
+ if (machine.state === "paused") {
57
+ return Object.freeze([
58
+ ...(options.opencodeSupervisorRepairRequired === true
59
+ ? [Object.freeze({ kind: "supervisor-blocked", label: "OpenCode needs a terminal update", machineId: machine.id })]
60
+ : []),
61
+ Object.freeze({ kind: "start", label: "Start", machineId: machine.id }),
62
+ remove,
63
+ ]);
64
+ }
65
+ if (machine.state === "creating" && machine.createOperation?.machineId === machine.id
66
+ && ["in_progress", "unknown", "provider_succeeded"].includes(machine.createOperation.state)) {
67
+ return Object.freeze([Object.freeze({ kind: "recover", label: "Recover creation", machineId: machine.id }), remove]);
68
+ }
69
+ // `error`, `creating`, `deleted`, or any state this client does not know:
70
+ // no transition is offered, but the console's Delete still is.
71
+ if (machine.state !== "running")
72
+ return Object.freeze([remove]);
73
+ return Object.freeze([
74
+ ...(options.opencodeSupervisorRepairRequired === true
75
+ ? [Object.freeze({ kind: "supervisor-blocked", label: "OpenCode needs a terminal update", machineId: machine.id })]
76
+ : []),
77
+ ...(provider.actionable && provider.agent !== undefined && options.hasSessions !== false
78
+ ? [Object.freeze({
79
+ kind: "provider",
80
+ label: provider.displayName,
81
+ machineId: machine.id,
82
+ provider: provider.agent,
83
+ })]
84
+ : []),
85
+ ...(provider.actionable && provider.agent !== undefined && options.canCreateSession === true
86
+ ? [Object.freeze({
87
+ kind: "new-session",
88
+ label: `New ${provider.displayName} session`,
89
+ machineId: machine.id,
90
+ provider: provider.agent,
91
+ })]
92
+ : []),
93
+ Object.freeze({ kind: "stop", label: "Stop", machineId: machine.id }),
94
+ remove,
95
+ ]);
96
+ }
97
+ export function resolveProviderContextActions(input) {
98
+ const availability = machineProviderAvailability(input.machine);
99
+ if (input.machine.state !== "running" || !availability.actionable || availability.agent !== input.provider)
100
+ return Object.freeze([]);
101
+ const sessions = input.sessions
102
+ .filter((session) => session.agent === input.provider)
103
+ .filter((session) => classifySessionActionability({ session, machine: input.machine, now: input.now }).recoveryAction !== "none")
104
+ .map((session) => Object.freeze({ kind: "session", label: session.name, session }));
105
+ return Object.freeze(sessions);
106
+ }
107
+ export function shouldShowRemoteWaitProgress(elapsedMs) {
108
+ return elapsedMs >= 100;
109
+ }
110
+ export function canAutoContinueMachineFirst(input) {
111
+ // Deliberately retain the public helper as a fail-closed compatibility seam,
112
+ // but never use uniqueness or elapsed time as consent to attach a remote
113
+ // AgentSession. A person must select the exact session in its provider
114
+ // context. Keeping this false also prevents a future caller from reviving
115
+ // the former three-second auto-continue behaviour by accident.
116
+ void input;
117
+ return false;
118
+ }
119
+ //# sourceMappingURL=machine-first.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"machine-first.js","sourceRoot":"","sources":["../../src/machines/machine-first.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import { CunaError, type SafeErrorDetails } from "../core/errors.js";
2
+ export declare function isOpenCodeSupervisorUpgradeReason(value: unknown): boolean;
3
+ /** Only these provider-specific reasons authorize the explicit Machine repair. */
4
+ export declare function isOpenCodeSupervisorRepairReason(value: unknown): boolean;
5
+ /**
6
+ * A legacy supervisor is a durable, explicit upgrade prerequisite. Keep this
7
+ * narrower than `isOpenCodeSupervisorRepairReason`: an unannounced
8
+ * supervisor reports the same broad family of condition, but it is a
9
+ * retryable heartbeat wait rather than evidence that a person should restart
10
+ * anything.
11
+ */
12
+ export declare function isOpenCodeSupervisorUpgradeRequiredReason(value: unknown): boolean;
13
+ /** A compatible supervisor has not yet advertised its protocol heartbeat. */
14
+ export declare function isOpenCodeSupervisorProtocolUnavailableReason(value: unknown): boolean;
15
+ export declare function isOpenCodeRuntimeUnverifiedReason(value: unknown): boolean;
16
+ /**
17
+ * Capability discovery happens before the AgentSession create dispatch. The
18
+ * exact capability ID and reason prove that no create request was sent.
19
+ */
20
+ export declare function isOpenCodeSupervisorUpgradeCapabilityRejection(error: unknown): error is CunaError;
21
+ /**
22
+ * Runtime verification is a temporary create fence, not evidence that a
23
+ * create was accepted. Keep it provider-scoped so another agent's temporary
24
+ * capability result cannot be presented as an OpenCode status.
25
+ */
26
+ export declare function isOpenCodeRuntimeUnverifiedCapabilityRejection(error: unknown): error is CunaError;
27
+ /**
28
+ * The explicit Machine action has no selected provider argument, so it must
29
+ * not reinterpret the provider-neutral supervisor reason as OpenCode intent.
30
+ * Only the OpenCode-specific capability refusal makes the action available.
31
+ */
32
+ export declare function isOpenCodeSupervisorRepairCapabilityRejection(error: unknown): error is CunaError;
33
+ export declare function openCodeSupervisorUpgradeRequired(input?: Readonly<{
34
+ readonly details?: SafeErrorDetails;
35
+ /** A locally known, canonical Machine ID. Never interpolate untrusted text into a shell hint. */
36
+ readonly machineId?: string;
37
+ readonly retryable?: boolean;
38
+ readonly cause?: unknown;
39
+ }>): CunaError;
40
+ /**
41
+ * `requireCapability` runs before dispatching AgentSession creation. This
42
+ * specialised result preserves that fact and gives the foreground journey a
43
+ * truthful transient next step instead of a generic capability failure.
44
+ */
45
+ export declare function openCodeRuntimeUnverified(input?: Readonly<{
46
+ readonly details?: SafeErrorDetails;
47
+ /** A locally known, canonical Machine ID. Never interpolate untrusted text into a shell hint. */
48
+ readonly machineId?: string;
49
+ readonly cause?: unknown;
50
+ }>): CunaError;
51
+ //# sourceMappingURL=opencode-supervisor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-supervisor.d.ts","sourceRoot":"","sources":["../../src/machines/opencode-supervisor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAET,KAAK,gBAAgB,EACtB,MAAM,mBAAmB,CAAC;AAiB3B,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEzE;AAED,kFAAkF;AAClF,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAExE;AAED;;;;;;GAMG;AACH,wBAAgB,yCAAyC,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEjF;AAED,6EAA6E;AAC7E,wBAAgB,6CAA6C,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAErF;AAED,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEzE;AAED;;;GAGG;AACH,wBAAgB,8CAA8C,CAC5D,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,SAAS,CAKpB;AAED;;;;GAIG;AACH,wBAAgB,8CAA8C,CAC5D,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,SAAS,CAKpB;AAED;;;;GAIG;AACH,wBAAgB,6CAA6C,CAC3D,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,SAAS,CAKpB;AAED,wBAAgB,iCAAiC,CAAC,KAAK,GAAE,QAAQ,CAAC;IAChE,QAAQ,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC;IACpC,iGAAiG;IACjG,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAM,GAAG,SAAS,CAyBlB;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,GAAE,QAAQ,CAAC;IACxD,QAAQ,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC;IACpC,iGAAiG;IACjG,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAM,GAAG,SAAS,CAkBlB"}
@@ -0,0 +1,124 @@
1
+ import { CunaError, EXIT_CODES, } from "../core/errors.js";
2
+ const OPENCODE_SUPERVISOR_REPAIR_REASONS = new Set([
3
+ "opencode_supervisor_upgrade_required",
4
+ "opencode_supervisor_protocol_unavailable",
5
+ ]);
6
+ const OPENCODE_RUNTIME_UNVERIFIED_REASON = "opencode_runtime_unverified";
7
+ const OPENCODE_SUPERVISOR_UPGRADE_REASONS = new Set([
8
+ ...OPENCODE_SUPERVISOR_REPAIR_REASONS,
9
+ // A legacy supervisor can return this provider-neutral spelling. Callers
10
+ // must also fence it to an OpenCode create intent before showing
11
+ // OpenCode-specific copy.
12
+ "supervisor_upgrade_required",
13
+ ]);
14
+ const CANONICAL_MACHINE_ID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/u;
15
+ export function isOpenCodeSupervisorUpgradeReason(value) {
16
+ return typeof value === "string" && OPENCODE_SUPERVISOR_UPGRADE_REASONS.has(value);
17
+ }
18
+ /** Only these provider-specific reasons authorize the explicit Machine repair. */
19
+ export function isOpenCodeSupervisorRepairReason(value) {
20
+ return typeof value === "string" && OPENCODE_SUPERVISOR_REPAIR_REASONS.has(value);
21
+ }
22
+ /**
23
+ * A legacy supervisor is a durable, explicit upgrade prerequisite. Keep this
24
+ * narrower than `isOpenCodeSupervisorRepairReason`: an unannounced
25
+ * supervisor reports the same broad family of condition, but it is a
26
+ * retryable heartbeat wait rather than evidence that a person should restart
27
+ * anything.
28
+ */
29
+ export function isOpenCodeSupervisorUpgradeRequiredReason(value) {
30
+ return value === "opencode_supervisor_upgrade_required";
31
+ }
32
+ /** A compatible supervisor has not yet advertised its protocol heartbeat. */
33
+ export function isOpenCodeSupervisorProtocolUnavailableReason(value) {
34
+ return value === "opencode_supervisor_protocol_unavailable";
35
+ }
36
+ export function isOpenCodeRuntimeUnverifiedReason(value) {
37
+ return value === OPENCODE_RUNTIME_UNVERIFIED_REASON;
38
+ }
39
+ /**
40
+ * Capability discovery happens before the AgentSession create dispatch. The
41
+ * exact capability ID and reason prove that no create request was sent.
42
+ */
43
+ export function isOpenCodeSupervisorUpgradeCapabilityRejection(error) {
44
+ if (!(error instanceof CunaError))
45
+ return false;
46
+ const details = error.details;
47
+ return details?.capability_id === "agent_sessions.create" &&
48
+ isOpenCodeSupervisorUpgradeReason(details.reason ?? details.reason_code);
49
+ }
50
+ /**
51
+ * Runtime verification is a temporary create fence, not evidence that a
52
+ * create was accepted. Keep it provider-scoped so another agent's temporary
53
+ * capability result cannot be presented as an OpenCode status.
54
+ */
55
+ export function isOpenCodeRuntimeUnverifiedCapabilityRejection(error) {
56
+ if (!(error instanceof CunaError))
57
+ return false;
58
+ const details = error.details;
59
+ return details?.capability_id === "agent_sessions.create" &&
60
+ isOpenCodeRuntimeUnverifiedReason(details.reason ?? details.reason_code);
61
+ }
62
+ /**
63
+ * The explicit Machine action has no selected provider argument, so it must
64
+ * not reinterpret the provider-neutral supervisor reason as OpenCode intent.
65
+ * Only the OpenCode-specific capability refusal makes the action available.
66
+ */
67
+ export function isOpenCodeSupervisorRepairCapabilityRejection(error) {
68
+ if (!(error instanceof CunaError))
69
+ return false;
70
+ const details = error.details;
71
+ return details?.capability_id === "agent_sessions.create" &&
72
+ isOpenCodeSupervisorRepairReason(details.reason ?? details.reason_code);
73
+ }
74
+ export function openCodeSupervisorUpgradeRequired(input = {}) {
75
+ const reason = input.details?.reason ?? input.details?.reason_code;
76
+ const protocolUnavailable = reason === "opencode_supervisor_protocol_unavailable";
77
+ const machineId = input.machineId !== undefined && CANONICAL_MACHINE_ID.test(input.machineId)
78
+ ? input.machineId
79
+ : undefined;
80
+ const repair = machineId === undefined
81
+ ? "Open `cuna machines` to inspect this Machine. When you decide to stop it yourself, select Update terminal supervisor and confirm it."
82
+ : `When you decide to stop this Machine yourself, run \`cuna machines update-supervisor ${machineId} --yes\`, or open \`cuna machines\` and select Update terminal supervisor. That command refuses to stop the Machine and preserves server blockers for active AgentSessions.`;
83
+ const protection = "No OpenCode AgentSession was created. Cuna will not stop the Machine or terminate sessions for you, including existing AgentSessions.";
84
+ return new CunaError({
85
+ code: "cuna.agent.opencode_supervisor_upgrade_required",
86
+ message: protocolUnavailable
87
+ ? "OpenCode cannot start because this Machine's terminal supervisor does not provide the required protocol."
88
+ : "OpenCode cannot start until this Machine's terminal supervisor is updated.",
89
+ exitCode: EXIT_CODES.unsupported,
90
+ hint: protocolUnavailable
91
+ ? `${protection} This Machine's current terminal supervisor cannot provide the OpenCode protocol. ${repair} When the update completes, retry OpenCode.`
92
+ : `${protection} ${repair} When the update completes, retry OpenCode.`,
93
+ retryable: input.retryable ?? false,
94
+ ...(input.details === undefined && machineId === undefined
95
+ ? {}
96
+ : { details: Object.freeze({ ...input.details, ...(machineId === undefined ? {} : { machine_id: machineId }) }) }),
97
+ ...(input.cause === undefined ? {} : { cause: input.cause }),
98
+ });
99
+ }
100
+ /**
101
+ * `requireCapability` runs before dispatching AgentSession creation. This
102
+ * specialised result preserves that fact and gives the foreground journey a
103
+ * truthful transient next step instead of a generic capability failure.
104
+ */
105
+ export function openCodeRuntimeUnverified(input = {}) {
106
+ const machineId = input.machineId !== undefined && CANONICAL_MACHINE_ID.test(input.machineId)
107
+ ? input.machineId
108
+ : undefined;
109
+ const retry = machineId === undefined
110
+ ? "If the Machine is stopped, start it. Otherwise keep it running and retry OpenCode once it reports ready."
111
+ : `If this Machine is stopped, start it. Otherwise keep it running and retry OpenCode once it reports ready. You can inspect it with \`cuna machines\` or \`cuna capabilities --scope machine --resource-id ${machineId}\`.`;
112
+ return new CunaError({
113
+ code: "cuna.agent.opencode_runtime_unverified",
114
+ message: "Cuna is still checking that OpenCode is ready on this Machine.",
115
+ exitCode: EXIT_CODES.network,
116
+ hint: `No OpenCode AgentSession was created. ${retry} Cuna will not create another Machine or change this Machine automatically.`,
117
+ retryable: true,
118
+ ...(input.details === undefined && machineId === undefined
119
+ ? {}
120
+ : { details: Object.freeze({ ...input.details, ...(machineId === undefined ? {} : { machine_id: machineId }) }) }),
121
+ ...(input.cause === undefined ? {} : { cause: input.cause }),
122
+ });
123
+ }
124
+ //# sourceMappingURL=opencode-supervisor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-supervisor.js","sourceRoot":"","sources":["../../src/machines/opencode-supervisor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { CunaApiClient } from "../api/client.js";
2
+ import type { Machine } from "../api/contracts.js";
3
+ export declare function listAllMachines(client: CunaApiClient, signal?: AbortSignal): Promise<readonly Machine[]>;
4
+ //# sourceMappingURL=pagination.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../src/machines/pagination.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD,wBAAsB,eAAe,CACnC,MAAM,EAAE,aAAa,EACrB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,SAAS,OAAO,EAAE,CAAC,CAK7B"}
@@ -0,0 +1,7 @@
1
+ export async function listAllMachines(client, signal) {
2
+ // The public Machine contract is one unpaginated GET /v1/sessions. Do not
3
+ // invent AgentSession-style query parameters: app-website and the vendored
4
+ // OpenAPI both use the naked route.
5
+ return (await client.listMachines(signal)).items;
6
+ }
7
+ //# sourceMappingURL=pagination.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../src/machines/pagination.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAqB,EACrB,MAAoB;IAEpB,0EAA0E;IAC1E,2EAA2E;IAC3E,oCAAoC;IACpC,OAAO,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;AACnD,CAAC"}
@@ -0,0 +1,42 @@
1
+ import type { AgentKind, Machine } from "../api/contracts.js";
2
+ export type ActionableProvider = "claude-code" | "codex" | "opencode";
3
+ export type ProviderUsability = "declared-installed" | "unavailable";
4
+ export interface MachineProviderAvailability {
5
+ readonly machineId: string;
6
+ readonly declaredId?: string;
7
+ readonly agent?: AgentKind;
8
+ readonly displayName: string;
9
+ readonly usability: ProviderUsability;
10
+ readonly actionable: boolean;
11
+ readonly reasonCode?: "provider_not_observed" | "provider_not_supported_by_cli" | "provider_not_publicly_supported";
12
+ readonly observationVersion?: string;
13
+ }
14
+ /**
15
+ * Until the producer exposes an observed installed-provider collection,
16
+ * `machine.agent` is the sole provider inventory. Never infer a different
17
+ * provider from sessions, capabilities, or a display fallback.
18
+ */
19
+ export declare function machineProviderAvailability(machine: Pick<Machine, "id" | "agent" | "updatedAt">): MachineProviderAvailability;
20
+ /**
21
+ * The provider verdict a person acts on, not the declaration they cannot act on.
22
+ *
23
+ * `usability` and `actionable` are independent by construction above: a machine
24
+ * declaring a provider this CLI cannot drive comes back
25
+ * `usability: "declared-installed"` WITH `actionable: false` and a reason code.
26
+ * The human renderings printed the first field alone, so
27
+ * `Unknown (foo) declared-installed` read as installed and usable on exactly
28
+ * the machines where `agent-sessions create` fails closed with
29
+ * `cuna.agent.provider_not_installed`. One word decides whether the next
30
+ * command can run, so that is the word; the reason follows only when the
31
+ * answer is no.
32
+ *
33
+ * It lives here, beside the two fields it reconciles, so that every surface
34
+ * reaches one verdict instead of deriving its own. `machines` and
35
+ * `machines list` use it; the TUI explorer at `explorer.ts` still prints raw
36
+ * `usability` and carries the same defect until it adopts this.
37
+ */
38
+ export declare function providerVerdict(provider: MachineProviderAvailability): string;
39
+ export declare function providerDisplayName(provider: string): string;
40
+ export declare function providerAuthLabel(provider: string): string;
41
+ export declare function machineSupportsProvider(machine: Pick<Machine, "id" | "agent" | "updatedAt">, requested: AgentKind): boolean;
42
+ //# sourceMappingURL=provider-availability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-availability.d.ts","sourceRoot":"","sources":["../../src/machines/provider-availability.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9D,MAAM,MAAM,kBAAkB,GAAG,aAAa,GAAG,OAAO,GAAG,UAAU,CAAC;AACtE,MAAM,MAAM,iBAAiB,GAAG,oBAAoB,GAAG,aAAa,CAAC;AAErE,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,uBAAuB,GAAG,+BAA+B,GAAG,iCAAiC,CAAC;IACpH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC;AASD;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,GAAG,OAAO,GAAG,WAAW,CAAC,GAAG,2BAA2B,CA2B7H;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,2BAA2B,GAAG,MAAM,CAI7E;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAG5D;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,GAAG,OAAO,GAAG,WAAW,CAAC,EACpD,SAAS,EAAE,SAAS,GACnB,OAAO,CAGT"}
@@ -0,0 +1,82 @@
1
+ const DISPLAY_NAMES = Object.freeze({
2
+ "claude-code": "Claude",
3
+ codex: "Codex",
4
+ openclaw: "OpenClaw",
5
+ opencode: "OpenCode",
6
+ });
7
+ /**
8
+ * Until the producer exposes an observed installed-provider collection,
9
+ * `machine.agent` is the sole provider inventory. Never infer a different
10
+ * provider from sessions, capabilities, or a display fallback.
11
+ */
12
+ export function machineProviderAvailability(machine) {
13
+ const declaredId = machine.agent?.trim();
14
+ const agent = normalizeKnownProvider(declaredId);
15
+ if (agent === undefined) {
16
+ return Object.freeze({
17
+ machineId: machine.id,
18
+ ...(declaredId === undefined || declaredId.length === 0 ? {} : { declaredId }),
19
+ displayName: declaredId === undefined || declaredId.length === 0 ? "Unknown" : `Unknown (${declaredId})`,
20
+ usability: declaredId === undefined || declaredId.length === 0 ? "unavailable" : "declared-installed",
21
+ actionable: false,
22
+ reasonCode: declaredId === undefined || declaredId.length === 0
23
+ ? "provider_not_observed"
24
+ : "provider_not_supported_by_cli",
25
+ ...(machine.updatedAt === undefined ? {} : { observationVersion: machine.updatedAt }),
26
+ });
27
+ }
28
+ const actionable = agent === "claude-code" || agent === "codex" || agent === "opencode";
29
+ return Object.freeze({
30
+ machineId: machine.id,
31
+ declaredId: declaredId,
32
+ agent,
33
+ displayName: DISPLAY_NAMES[agent],
34
+ usability: actionable ? "declared-installed" : "unavailable",
35
+ actionable,
36
+ ...(actionable ? {} : { reasonCode: "provider_not_publicly_supported" }),
37
+ ...(machine.updatedAt === undefined ? {} : { observationVersion: machine.updatedAt }),
38
+ });
39
+ }
40
+ /**
41
+ * The provider verdict a person acts on, not the declaration they cannot act on.
42
+ *
43
+ * `usability` and `actionable` are independent by construction above: a machine
44
+ * declaring a provider this CLI cannot drive comes back
45
+ * `usability: "declared-installed"` WITH `actionable: false` and a reason code.
46
+ * The human renderings printed the first field alone, so
47
+ * `Unknown (foo) declared-installed` read as installed and usable on exactly
48
+ * the machines where `agent-sessions create` fails closed with
49
+ * `cuna.agent.provider_not_installed`. One word decides whether the next
50
+ * command can run, so that is the word; the reason follows only when the
51
+ * answer is no.
52
+ *
53
+ * It lives here, beside the two fields it reconciles, so that every surface
54
+ * reaches one verdict instead of deriving its own. `machines` and
55
+ * `machines list` use it; the TUI explorer at `explorer.ts` still prints raw
56
+ * `usability` and carries the same defect until it adopts this.
57
+ */
58
+ export function providerVerdict(provider) {
59
+ return provider.actionable
60
+ ? "ready"
61
+ : `unusable — ${provider.reasonCode ?? "provider_unusable"}`;
62
+ }
63
+ export function providerDisplayName(provider) {
64
+ const normalized = normalizeKnownProvider(provider);
65
+ return normalized === undefined ? `Unknown (${provider})` : DISPLAY_NAMES[normalized];
66
+ }
67
+ export function providerAuthLabel(provider) {
68
+ return `${providerDisplayName(provider)} auth`;
69
+ }
70
+ export function machineSupportsProvider(machine, requested) {
71
+ const availability = machineProviderAvailability(machine);
72
+ return availability.actionable && availability.agent === requested;
73
+ }
74
+ function normalizeKnownProvider(provider) {
75
+ if (provider === "claude")
76
+ return "claude-code";
77
+ if (provider === "claude-code" || provider === "codex" || provider === "openclaw" || provider === "opencode") {
78
+ return provider;
79
+ }
80
+ return undefined;
81
+ }
82
+ //# sourceMappingURL=provider-availability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-availability.js","sourceRoot":"","sources":["../../src/machines/provider-availability.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { CunaApiClient } from '../api/client.js';
2
+ import type { ProviderAgent, ProviderPreset } from '../api/provider-v2.js';
3
+ import type { ForegroundTerminalHost } from '../terminal/foreground.js';
4
+ /** One explicit pull; expiry repaints locally and never polls the provider. */
5
+ export declare function runProviderScreen(client: CunaApiClient, mode: {
6
+ kind: 'preset';
7
+ agent: ProviderAgent;
8
+ } | {
9
+ kind: 'check';
10
+ sessionId: string;
11
+ }, host?: ForegroundTerminalHost, signal?: AbortSignal): Promise<ProviderPreset | undefined>;
12
+ //# sourceMappingURL=provider-screen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-screen.d.ts","sourceRoot":"","sources":["../../src/machines/provider-screen.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAuB,MAAM,uBAAuB,CAAC;AAEhG,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAIxE,+EAA+E;AAC/E,wBAAsB,iBAAiB,CAAC,MAAM,EAAC,aAAa,EAAE,IAAI,EAAC;IAAC,IAAI,EAAC,QAAQ,CAAC;IAAA,KAAK,EAAC,aAAa,CAAA;CAAC,GAAC;IAAC,IAAI,EAAC,OAAO,CAAC;IAAA,SAAS,EAAC,MAAM,CAAA;CAAC,EAAE,IAAI,GAAC,sBAAyD,EAAE,MAAM,CAAC,EAAC,WAAW,GAAE,OAAO,CAAC,cAAc,GAAC,SAAS,CAAC,CAa7P"}
@@ -0,0 +1,129 @@
1
+ import { createNodeForegroundTerminalHost } from '../pty/node-host-terminal.js';
2
+ import { sanitizeHumanTerminalOutput } from '../cli/output.js';
3
+ import { truncateTerminalLine } from '../terminal/cell-width.js';
4
+ /** One explicit pull; expiry repaints locally and never polls the provider. */
5
+ export async function runProviderScreen(client, mode, host = createNodeForegroundTerminalHost(), signal) {
6
+ const lease = await host.acquire('rich');
7
+ const abort = new AbortController();
8
+ let closed = false, busy = false, index = 0, notice = '', items = [], observation;
9
+ let timer;
10
+ let writes = Promise.resolve();
11
+ let resolve;
12
+ const done = new Promise(r => { resolve = r; });
13
+ const close = (value) => { if (closed)
14
+ return; closed = true; abort.abort(); resolve(value); };
15
+ const render = () => {
16
+ if (closed)
17
+ return;
18
+ const size = host.dimensions();
19
+ const lines = mode.kind === 'preset' ? [` New ${mode.agent} session - select profile`, ...items.map((p, i) => `${i === index ? ' >' : ' '} ${p.label}`), mode.agent === 'opencode' ? ' Connect your provider and select this model in OpenCode after launch.' : ' Native interactive login; provider observation is unavailable.', ' Enter selects / r refresh / Esc or q returns'] : [' Check provider and model'];
20
+ if (mode.kind === 'check') {
21
+ if (observation?.state === 'observed' && observation.observed_at_ms <= Date.now() && observation.valid_until_ms > Date.now())
22
+ lines.push(` Provider: ${observation.provider.upstream_provider}`, ` Model: ${observation.provider.model}`, ` Agent version: ${observation.provider.agent_version}`, ` Expires: ${new Date(observation.valid_until_ms).toISOString()}`);
23
+ else
24
+ lines.push(' Provider and model unavailable.');
25
+ lines.push(' r Check provider / Esc or q returns');
26
+ }
27
+ if (busy)
28
+ lines.push(' Reading server state...');
29
+ if (notice)
30
+ lines.push(notice);
31
+ const frame = '\x1b[H\x1b[2J' + lines.slice(0, Math.max(1, size.rows - 1)).map(l => truncateTerminalLine(sanitizeHumanTerminalOutput(l), size.columns)).join('\r\n');
32
+ writes = writes.then(() => closed ? undefined : host.write(new TextEncoder().encode(frame))).catch(() => close());
33
+ };
34
+ const load = async () => { if (busy || closed)
35
+ return; busy = true; observation = undefined; notice = ''; if (timer)
36
+ clearTimeout(timer); render(); try {
37
+ if (mode.kind === 'preset') {
38
+ items = (await client.getProviderPresetsV2(abort.signal)).filter(p => p.agent === mode.agent);
39
+ index = 0;
40
+ if (!items.length)
41
+ notice = ' No matching profiles are available for this agent.';
42
+ }
43
+ else {
44
+ const session = await client.getAgentSession(mode.sessionId, abort.signal);
45
+ if (!session.processEpoch)
46
+ throw Error('scope');
47
+ const result = await client.checkProviderV2(session.id, session.processEpoch, abort.signal);
48
+ const current = await client.getAgentSession(session.id, abort.signal);
49
+ if (current.processEpoch !== session.processEpoch || current.desiredState !== 'running' || !['ready', 'running'].includes(current.processState))
50
+ throw Error('scope');
51
+ abort.signal.throwIfAborted();
52
+ observation = result;
53
+ if (result.state === 'observed')
54
+ timer = setTimeout(() => { observation = undefined; notice = ' Observation expired. Press r to check again.'; render(); }, Math.max(0, result.valid_until_ms - Date.now()));
55
+ }
56
+ }
57
+ catch {
58
+ items = [];
59
+ observation = undefined;
60
+ notice = ' Provider information unavailable. Press r to try again.';
61
+ }
62
+ finally {
63
+ busy = false;
64
+ render();
65
+ } };
66
+ let sequence = '';
67
+ let paste = false;
68
+ const input = host.onInput(bytes => { for (const byte of bytes) {
69
+ if (sequence) {
70
+ sequence += String.fromCharCode(byte);
71
+ if (sequence === '\x1b[200~') {
72
+ paste = true;
73
+ sequence = '';
74
+ }
75
+ else if (sequence === '\x1b[201~') {
76
+ paste = false;
77
+ sequence = '';
78
+ }
79
+ else if (sequence === '\x1b[A' || sequence === '\x1b[B') {
80
+ if (!paste && !busy) {
81
+ index = Math.max(0, Math.min(items.length - 1, index + (sequence.endsWith('A') ? -1 : 1)));
82
+ render();
83
+ }
84
+ sequence = '';
85
+ }
86
+ else if (sequence.length > 8)
87
+ sequence = '';
88
+ continue;
89
+ }
90
+ if (byte === 27) {
91
+ sequence = '\x1b';
92
+ setTimeout(() => { if (sequence === '\x1b') {
93
+ sequence = '';
94
+ close();
95
+ } }, 50);
96
+ continue;
97
+ }
98
+ if (paste)
99
+ continue;
100
+ if (byte === 3 || byte === 113) {
101
+ close();
102
+ return;
103
+ }
104
+ if (byte === 114)
105
+ void load();
106
+ if ((byte === 13 || byte === 10) && !busy && mode.kind === 'preset' && items[index])
107
+ close(items[index]);
108
+ } });
109
+ const resize = host.onResize(render);
110
+ const onAbort = () => close();
111
+ signal?.addEventListener('abort', onAbort, { once: true });
112
+ if (signal?.aborted)
113
+ close();
114
+ else
115
+ void load();
116
+ try {
117
+ return await done;
118
+ }
119
+ finally {
120
+ input();
121
+ resize();
122
+ signal?.removeEventListener('abort', onAbort);
123
+ if (timer)
124
+ clearTimeout(timer);
125
+ await writes;
126
+ await lease.restore();
127
+ }
128
+ }
129
+ //# sourceMappingURL=provider-screen.js.map