@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,538 @@
1
+ import { createHash } from "node:crypto";
2
+ import { TextDecoder, TextEncoder } from "node:util";
3
+ import { TERMINAL_FRAME_TYPES } from "./generated/terminal-wire-v1.js";
4
+ import { DEPLOYED_WIRE_COMPATIBILITY } from "../core/deployed-wire-compatibility.js";
5
+ export const TERMINAL_PROTOCOL = DEPLOYED_WIRE_COMPATIBILITY.terminalProtocol;
6
+ export const TERMINAL_PROTOCOL_VERSION = 1;
7
+ export const MAX_TERMINAL_FRAME_BYTES = 1024 * 1024;
8
+ export const MAX_TERMINAL_BUFFER_BYTES = MAX_TERMINAL_FRAME_BYTES * 2;
9
+ export const MAX_TERMINAL_QUEUED_FRAMES = 4096;
10
+ export const LOCAL_ACTION_PROTOCOL = "cuna.local-actions.v1";
11
+ export const MAX_LOCAL_ACTION_CONTROL_BYTES = 64 * 1024;
12
+ export const MAX_LOCAL_STREAM_WINDOW_BYTES = 1024 * 1024;
13
+ export const TERMINAL_LOCAL_ACTION_KINDS = Object.freeze([
14
+ "browser.open",
15
+ "auth.device.present",
16
+ "auth.callback.relay",
17
+ "auth.result.observe",
18
+ "clipboard.write",
19
+ "port.forward",
20
+ "file.select",
21
+ "attachment.import",
22
+ "artifact.save",
23
+ "preview.open",
24
+ "diff.open",
25
+ "editor.open",
26
+ "notification.show",
27
+ "git.sign",
28
+ "local_service.request",
29
+ "device.select",
30
+ ]);
31
+ const HEADER_BYTES = 20;
32
+ const MAGIC = Uint8Array.of(0x52, 0x54, 0x50, 0x31); // RTP1
33
+ const CRITICAL_FLAG = 0x01;
34
+ export { TERMINAL_FRAME_TYPES } from "./generated/terminal-wire-v1.js";
35
+ const LOCAL_ACTION_FRAME_TYPES = new Set([
36
+ "local_action_request",
37
+ "local_action_result",
38
+ "local_stream_open",
39
+ "local_stream_data",
40
+ "local_stream_close",
41
+ "local_stream_window_update",
42
+ ]);
43
+ export class TerminalProtocolError extends Error {
44
+ code;
45
+ constructor(code, message) {
46
+ super(message);
47
+ this.name = "TerminalProtocolError";
48
+ this.code = code;
49
+ }
50
+ }
51
+ const TYPE_NAMES = new Map(Object.entries(TERMINAL_FRAME_TYPES).map(([name, code]) => [code, name]));
52
+ const encoder = new TextEncoder();
53
+ const decoder = new TextDecoder("utf-8", { fatal: true });
54
+ export function encodeTerminalFrame(frame) {
55
+ if (frame.sequence < 0n || frame.sequence > 0xffffffffffffffffn) {
56
+ throw new TerminalProtocolError("malformed_frame", "The terminal sequence is outside uint64 bounds.");
57
+ }
58
+ if (frame.payload.byteLength > MAX_TERMINAL_FRAME_BYTES) {
59
+ throw new TerminalProtocolError("oversize_frame", "The terminal payload exceeds the protocol limit.");
60
+ }
61
+ const bytes = new Uint8Array(HEADER_BYTES + frame.payload.byteLength);
62
+ bytes.set(MAGIC, 0);
63
+ const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
64
+ view.setUint8(4, TERMINAL_PROTOCOL_VERSION);
65
+ view.setUint8(5, frame.critical ? CRITICAL_FLAG : 0);
66
+ view.setUint16(6, TERMINAL_FRAME_TYPES[frame.type], false);
67
+ view.setBigUint64(8, frame.sequence, false);
68
+ view.setUint32(16, frame.payload.byteLength, false);
69
+ bytes.set(frame.payload, HEADER_BYTES);
70
+ return bytes;
71
+ }
72
+ export function encodeTerminalControl(type, sequence, payload) {
73
+ return encodeTerminalFrame({ type, sequence, critical: true, payload: encoder.encode(JSON.stringify(payload)) });
74
+ }
75
+ function parseHeader(bytes) {
76
+ if (bytes.byteLength < HEADER_BYTES) {
77
+ throw new TerminalProtocolError("malformed_frame", "The terminal frame header is incomplete.");
78
+ }
79
+ if (!MAGIC.every((value, index) => bytes[index] === value)) {
80
+ throw new TerminalProtocolError("invalid_magic", "The terminal frame magic is invalid.");
81
+ }
82
+ const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
83
+ if (view.getUint8(4) !== TERMINAL_PROTOCOL_VERSION) {
84
+ throw new TerminalProtocolError("unsupported_version", "The terminal wire version is unsupported.");
85
+ }
86
+ const flags = view.getUint8(5);
87
+ if ((flags & ~CRITICAL_FLAG) !== 0) {
88
+ throw new TerminalProtocolError("malformed_frame", "The terminal frame contains unsupported flags.");
89
+ }
90
+ const payloadLength = view.getUint32(16, false);
91
+ if (payloadLength > MAX_TERMINAL_FRAME_BYTES) {
92
+ throw new TerminalProtocolError("oversize_frame", "The terminal payload exceeds the protocol limit.");
93
+ }
94
+ return {
95
+ typeCode: view.getUint16(6, false),
96
+ critical: (flags & CRITICAL_FLAG) !== 0,
97
+ sequence: view.getBigUint64(8, false),
98
+ payloadLength,
99
+ };
100
+ }
101
+ export function decodeTerminalFrame(bytes) {
102
+ const header = parseHeader(bytes);
103
+ if (bytes.byteLength !== HEADER_BYTES + header.payloadLength) {
104
+ throw new TerminalProtocolError("malformed_frame", "The terminal frame length does not match its payload.");
105
+ }
106
+ const type = TYPE_NAMES.get(header.typeCode);
107
+ if (type === undefined) {
108
+ if (header.critical) {
109
+ throw new TerminalProtocolError("unknown_critical_frame", "The terminal frame type is unknown and critical.");
110
+ }
111
+ return undefined;
112
+ }
113
+ return Object.freeze({
114
+ type,
115
+ critical: header.critical,
116
+ sequence: header.sequence,
117
+ payload: bytes.slice(HEADER_BYTES),
118
+ });
119
+ }
120
+ export class TerminalFrameDecoder {
121
+ #chunks = [];
122
+ #headIndex = 0;
123
+ #headOffset = 0;
124
+ #bufferedBytes = 0;
125
+ push(chunk) {
126
+ if (this.#bufferedBytes + chunk.byteLength > MAX_TERMINAL_BUFFER_BYTES) {
127
+ throw new TerminalProtocolError("buffer_limit", "The terminal receive buffer limit was exceeded.");
128
+ }
129
+ if (chunk.byteLength > 0) {
130
+ this.#chunks.push(chunk.slice());
131
+ this.#bufferedBytes += chunk.byteLength;
132
+ }
133
+ const frames = [];
134
+ while (this.#bufferedBytes >= HEADER_BYTES) {
135
+ const header = parseHeader(this.#copy(HEADER_BYTES, false));
136
+ const size = HEADER_BYTES + header.payloadLength;
137
+ if (this.#bufferedBytes < size)
138
+ break;
139
+ const frame = decodeTerminalFrame(this.#copy(size, true));
140
+ if (frame !== undefined)
141
+ frames.push(frame);
142
+ if (frames.length > MAX_TERMINAL_QUEUED_FRAMES) {
143
+ throw new TerminalProtocolError("queue_limit", "Too many terminal frames were decoded in one batch.");
144
+ }
145
+ }
146
+ return frames;
147
+ }
148
+ #copy(size, consume) {
149
+ const result = new Uint8Array(size);
150
+ let targetOffset = 0;
151
+ let chunkIndex = this.#headIndex;
152
+ let chunkOffset = this.#headOffset;
153
+ while (targetOffset < size) {
154
+ const chunk = this.#chunks[chunkIndex];
155
+ if (chunk === undefined) {
156
+ throw new TerminalProtocolError("malformed_frame", "The terminal receive buffer became inconsistent.");
157
+ }
158
+ const available = chunk.byteLength - chunkOffset;
159
+ const length = Math.min(available, size - targetOffset);
160
+ result.set(chunk.subarray(chunkOffset, chunkOffset + length), targetOffset);
161
+ targetOffset += length;
162
+ chunkOffset += length;
163
+ if (chunkOffset === chunk.byteLength) {
164
+ chunkIndex += 1;
165
+ chunkOffset = 0;
166
+ }
167
+ }
168
+ if (consume) {
169
+ this.#headIndex = chunkIndex;
170
+ this.#headOffset = chunkOffset;
171
+ this.#bufferedBytes -= size;
172
+ if (this.#bufferedBytes === 0) {
173
+ this.#chunks.length = 0;
174
+ this.#headIndex = 0;
175
+ this.#headOffset = 0;
176
+ }
177
+ else if (this.#headIndex >= 1_024 && this.#headIndex * 2 >= this.#chunks.length) {
178
+ this.#chunks.splice(0, this.#headIndex);
179
+ this.#headIndex = 0;
180
+ }
181
+ }
182
+ return result;
183
+ }
184
+ }
185
+ const LEGAL_FRAMES = Object.freeze({
186
+ negotiating: Object.freeze({ client_to_server: new Set(["heartbeat"]), server_to_client: new Set(["ready", "error"]) }),
187
+ ready: Object.freeze({ client_to_server: new Set(["resume", "heartbeat"]), server_to_client: new Set(["ready", "error", "heartbeat", "writer_epoch", "control_state"]) }),
188
+ attached: Object.freeze({
189
+ client_to_server: new Set(["input", "resize", "signal", "heartbeat", "resume"]),
190
+ server_to_client: new Set(["output", "acknowledgement", "heartbeat", "exit", "error", "ready", "writer_epoch", "control_state", "view_started", "view_ready"]),
191
+ }),
192
+ draining: Object.freeze({ client_to_server: new Set(["heartbeat"]), server_to_client: new Set(["output", "exit", "error", "heartbeat", "writer_epoch", "control_state"]) }),
193
+ interrupted: Object.freeze({ client_to_server: new Set(["resume"]), server_to_client: new Set(["ready", "error"]) }),
194
+ closed: Object.freeze({ client_to_server: new Set(), server_to_client: new Set() }),
195
+ });
196
+ export function assertTerminalFrameLegal(state, direction, type, localActionsNegotiated = false) {
197
+ const localActionLegal = localActionsNegotiated && state === "attached" && (type === "local_action_request" ? direction === "server_to_client" :
198
+ type === "local_action_result" ||
199
+ type === "local_stream_open" ||
200
+ type === "local_stream_data" ||
201
+ type === "local_stream_close" ||
202
+ type === "local_stream_window_update");
203
+ if (!LEGAL_FRAMES[state][direction].has(type) && !localActionLegal) {
204
+ throw new TerminalProtocolError("illegal_state", `${type} is illegal while the terminal is ${state}.`);
205
+ }
206
+ }
207
+ export function decodeTerminalControl(frame) {
208
+ if (frame.type === "input" || frame.type === "output") {
209
+ throw new TerminalProtocolError("invalid_payload", "Terminal byte frames are opaque and have no JSON control payload.");
210
+ }
211
+ if (isLocalActionFrameType(frame.type) && !frame.critical) {
212
+ throw new TerminalProtocolError("invalid_payload", "Negotiated local action frames must be critical.");
213
+ }
214
+ if ((frame.type === "local_action_request" || frame.type === "local_action_result") &&
215
+ frame.payload.byteLength > MAX_LOCAL_ACTION_CONTROL_BYTES)
216
+ throw new TerminalProtocolError("invalid_payload", "The local action control payload exceeds its negotiated bound.");
217
+ let value;
218
+ try {
219
+ value = JSON.parse(decoder.decode(frame.payload));
220
+ }
221
+ catch {
222
+ throw new TerminalProtocolError("invalid_payload", "The terminal control payload is not valid UTF-8 JSON.");
223
+ }
224
+ if (typeof value !== "object" || value === null || Array.isArray(value)) {
225
+ throw new TerminalProtocolError("invalid_payload", "The terminal control payload must be an object.");
226
+ }
227
+ if (frame.type === "control_state" && frame.critical)
228
+ throwInvalidPayload();
229
+ if ((frame.type === "view_started" || frame.type === "view_ready") && (!frame.critical || frame.sequence !== 0n))
230
+ throwInvalidPayload();
231
+ validateControlPayload(frame.type, value);
232
+ return Object.freeze(value);
233
+ }
234
+ function validateControlPayload(type, value) {
235
+ switch (type) {
236
+ case "control_state":
237
+ assertKeys(value, ["columns", "rows", "writerEpoch"]);
238
+ if (!isDimension(value.columns) || !isDimension(value.rows) ||
239
+ !isBoundedPositiveInteger(value.writerEpoch, Number.MAX_SAFE_INTEGER))
240
+ throwInvalidPayload();
241
+ return;
242
+ case "ready":
243
+ if (value.protocol !== TERMINAL_PROTOCOL ||
244
+ !isIdentifier(value.agentSessionId) ||
245
+ !isIdentifier(value.processEpoch) ||
246
+ !Number.isSafeInteger(value.fencingGeneration) ||
247
+ Number(value.fencingGeneration) < 1 ||
248
+ (value.resizeCapability !== "live" && value.resizeCapability !== "initial_resize_only") ||
249
+ (value.accessMode !== "writer" && value.accessMode !== "observer") ||
250
+ !isBoundedPositiveInteger(value.writerEpoch, Number.MAX_SAFE_INTEGER))
251
+ throwInvalidPayload();
252
+ assertKeys(value, ["protocol", "agentSessionId", "processEpoch", "fencingGeneration", "resizeCapability", "accessMode", "writerEpoch"], ["machineId", "machineGeneration", "workspaceBindingId", "workspaceBindingGeneration", "localActionProtocol", "terminalViewProtocol"]);
253
+ validateReadyIdentity(value);
254
+ if (value.terminalViewProtocol !== undefined)
255
+ validateTerminalViewProtocol(value.terminalViewProtocol, true);
256
+ if (value.localActionProtocol !== undefined)
257
+ validateLocalActionOffer(value.localActionProtocol);
258
+ return;
259
+ case "writer_epoch":
260
+ if (!isBoundedPositiveInteger(value.writerEpoch, Number.MAX_SAFE_INTEGER) ||
261
+ (value.writerClientInstanceId !== null && typeof value.writerClientInstanceId !== "string") ||
262
+ (value.accessMode !== "writer" && value.accessMode !== "observer"))
263
+ throwInvalidPayload();
264
+ assertKeys(value, ["writerEpoch", "writerClientInstanceId", "accessMode"]);
265
+ return;
266
+ case "resize":
267
+ if (!isDimension(value.columns) || !isDimension(value.rows))
268
+ throwInvalidPayload();
269
+ return;
270
+ case "signal":
271
+ if (!SIGNALS.has(String(value.signal)))
272
+ throwInvalidPayload();
273
+ return;
274
+ case "exit":
275
+ if ((value.exitCode !== null && !Number.isInteger(value.exitCode)) || !EXIT_REASONS.has(String(value.reason)))
276
+ throwInvalidPayload();
277
+ return;
278
+ case "error":
279
+ if (!isIdentifier(value.code) || typeof value.retryable !== "boolean" || !isIdentifier(value.safeReason))
280
+ throwInvalidPayload();
281
+ return;
282
+ case "acknowledgement":
283
+ if (!/^[1-9][0-9]*$/u.test(String(value.clientSequence)) ||
284
+ BigInt(String(value.clientSequence)) > 18446744073709551615n ||
285
+ value.meaning !== "durably_accepted_not_executed")
286
+ throwInvalidPayload();
287
+ return;
288
+ case "heartbeat":
289
+ assertKeys(value, []);
290
+ return;
291
+ case "resume":
292
+ assertKeys(value, ["resumeHandle", "afterOutputSequence"], ["localActionProtocol", "terminalViewProtocol"]);
293
+ if (!isIdentifier(value.resumeHandle) || !isUint64String(value.afterOutputSequence))
294
+ throwInvalidPayload();
295
+ if (value.terminalViewProtocol !== undefined) {
296
+ validateTerminalViewProtocol(value.terminalViewProtocol, false);
297
+ if (value.afterOutputSequence !== "0")
298
+ throwInvalidPayload();
299
+ }
300
+ if (value.localActionProtocol !== undefined)
301
+ validateLocalActionAcceptance(value.localActionProtocol);
302
+ return;
303
+ case "view_started":
304
+ assertKeys(value, ["protocol", "operation", "viewId", "columns", "rows"]);
305
+ if (value.protocol !== "cuna.terminal-view.v1" || value.operation !== "new" ||
306
+ !isCanonicalViewId(value.viewId) || !isBoundedPositiveInteger(value.columns, 4096) || !isBoundedPositiveInteger(value.rows, 4096) ||
307
+ Number(value.columns) * Number(value.rows) > 250_000)
308
+ throwInvalidPayload();
309
+ return;
310
+ case "view_ready":
311
+ assertKeys(value, ["viewId", "afterOutputSequence"]);
312
+ if (!isCanonicalViewId(value.viewId) || !isUint64String(value.afterOutputSequence) || !/^[1-9][0-9]*$/u.test(value.afterOutputSequence))
313
+ throwInvalidPayload();
314
+ return;
315
+ case "local_action_request":
316
+ validateLocalActionRequestFrame(value);
317
+ return;
318
+ case "local_action_result":
319
+ validateLocalActionResultFrame(value);
320
+ return;
321
+ case "local_stream_open":
322
+ assertKeys(value, ["streamId", "requestId", "direction", "initialCreditBytes"]);
323
+ if (!isIdentifier(value.streamId) || !isIdentifier(value.requestId) ||
324
+ (value.direction !== "local_to_remote" && value.direction !== "remote_to_local") ||
325
+ !isBoundedPositiveInteger(value.initialCreditBytes, MAX_LOCAL_STREAM_WINDOW_BYTES))
326
+ throwInvalidPayload();
327
+ return;
328
+ case "local_stream_data":
329
+ assertKeys(value, ["streamId", "offset", "bytesBase64url", "decodedLength", "chunkSha256"]);
330
+ if (!isIdentifier(value.streamId) || !isUint64Number(value.offset) ||
331
+ typeof value.bytesBase64url !== "string" || !BASE64URL.test(value.bytesBase64url) ||
332
+ !isBoundedNonnegativeInteger(value.decodedLength, MAX_LOCAL_ACTION_CONTROL_BYTES) ||
333
+ decodedBase64urlLength(value.bytesBase64url) !== value.decodedLength ||
334
+ !SHA256.test(String(value.chunkSha256)) ||
335
+ sha256Base64url(value.bytesBase64url) !== value.chunkSha256)
336
+ throwInvalidPayload();
337
+ return;
338
+ case "local_stream_close":
339
+ assertKeys(value, ["streamId", "finalOffset", "reason"]);
340
+ if (!isIdentifier(value.streamId) || !isUint64Number(value.finalOffset) ||
341
+ !new Set(["completed", "cancelled", "failed", "expired"]).has(String(value.reason)))
342
+ throwInvalidPayload();
343
+ return;
344
+ case "local_stream_window_update":
345
+ assertKeys(value, ["streamId", "acknowledgedOffset", "creditBytes"]);
346
+ if (!isIdentifier(value.streamId) || !isUint64Number(value.acknowledgedOffset) ||
347
+ !isBoundedPositiveInteger(value.creditBytes, MAX_LOCAL_STREAM_WINDOW_BYTES))
348
+ throwInvalidPayload();
349
+ return;
350
+ case "input":
351
+ case "output":
352
+ throwInvalidPayload();
353
+ }
354
+ }
355
+ export function isLocalActionFrameType(type) {
356
+ return LOCAL_ACTION_FRAME_TYPES.has(type);
357
+ }
358
+ export function negotiateTerminalLocalActions(offer, implementedKinds) {
359
+ if (offer === undefined)
360
+ return undefined;
361
+ validateLocalActionOffer(offer);
362
+ const acceptedKinds = offer.kinds.filter((kind) => implementedKinds.has(kind));
363
+ if (acceptedKinds.length === 0)
364
+ return undefined;
365
+ return Object.freeze({ name: LOCAL_ACTION_PROTOCOL, acceptedKinds: Object.freeze(acceptedKinds) });
366
+ }
367
+ function validateLocalActionOffer(value) {
368
+ const offer = objectValue(value);
369
+ assertKeys(offer, ["name", "maxRequestBytes", "maxResultBytes", "streamWindowBytes", "kinds"]);
370
+ if (offer.name !== LOCAL_ACTION_PROTOCOL ||
371
+ !isBoundedPositiveInteger(offer.maxRequestBytes, MAX_LOCAL_ACTION_CONTROL_BYTES) ||
372
+ !isBoundedPositiveInteger(offer.maxResultBytes, MAX_LOCAL_ACTION_CONTROL_BYTES) ||
373
+ !isBoundedPositiveInteger(offer.streamWindowBytes, MAX_LOCAL_STREAM_WINDOW_BYTES))
374
+ throwInvalidPayload();
375
+ validateKinds(offer.kinds, true);
376
+ }
377
+ function validateLocalActionAcceptance(value) {
378
+ const acceptance = objectValue(value);
379
+ assertKeys(acceptance, ["name", "acceptedKinds"]);
380
+ if (acceptance.name !== LOCAL_ACTION_PROTOCOL)
381
+ throwInvalidPayload();
382
+ validateKinds(acceptance.acceptedKinds, true);
383
+ }
384
+ function validateKinds(value, requireNonempty) {
385
+ if (!Array.isArray(value) || (requireNonempty && value.length === 0) || value.length > TERMINAL_LOCAL_ACTION_KINDS.length)
386
+ throwInvalidPayload();
387
+ const allowed = new Set(TERMINAL_LOCAL_ACTION_KINDS);
388
+ if (new Set(value).size !== value.length || value.some((kind) => typeof kind !== "string" || !allowed.has(kind)))
389
+ throwInvalidPayload();
390
+ }
391
+ function validateLocalActionRequestFrame(value) {
392
+ assertKeys(value, ["request"]);
393
+ const request = objectValue(value.request);
394
+ assertKeys(request, ["version", "id", "identity", "provider", "kind", "arguments", "argumentsDigest", "requestedScope", "createdAt", "expiresAt", "nonce"]);
395
+ const identity = objectValue(request.identity);
396
+ validateLocalActionIdentity(identity);
397
+ if (request.version !== 1 || !isIdentifier(request.id) ||
398
+ !new Set(["claude-code", "codex", "opencode"]).has(String(request.provider)) ||
399
+ !new Set(TERMINAL_LOCAL_ACTION_KINDS).has(String(request.kind)) ||
400
+ !isJsonObject(request.arguments) || !SHA256_PREFIXED.test(String(request.argumentsDigest)) ||
401
+ !isIdentifier(request.requestedScope) || !isSafeTimestamp(request.createdAt) ||
402
+ !isSafeTimestamp(request.expiresAt) || Number(request.expiresAt) <= Number(request.createdAt) ||
403
+ !isIdentifier(request.nonce))
404
+ throwInvalidPayload();
405
+ }
406
+ function validateLocalActionResultFrame(value) {
407
+ if (value.message === "ack") {
408
+ assertKeys(value, ["message", "requestId", "argumentDigest"]);
409
+ if (!isIdentifier(value.requestId) || !SHA256_PREFIXED.test(String(value.argumentDigest)))
410
+ throwInvalidPayload();
411
+ return;
412
+ }
413
+ assertKeys(value, ["message", "requestId", "argumentDigest", "result"]);
414
+ if (value.message !== "outcome" || !isIdentifier(value.requestId) || !SHA256_PREFIXED.test(String(value.argumentDigest)))
415
+ throwInvalidPayload();
416
+ const result = objectValue(value.result);
417
+ assertKeys(result, ["version", "requestId", "kind", "identity", "status", "completedAt"], ["safeData", "safeReason"]);
418
+ validateLocalActionIdentity(objectValue(result.identity));
419
+ if (result.version !== 1 || result.requestId !== value.requestId ||
420
+ !new Set(TERMINAL_LOCAL_ACTION_KINDS).has(String(result.kind)) ||
421
+ !new Set(["succeeded", "failed", "denied", "expired", "cancelled"]).has(String(result.status)) ||
422
+ !isSafeTimestamp(result.completedAt) ||
423
+ (result.safeData !== undefined && !isJsonObject(result.safeData)) ||
424
+ (result.safeReason !== undefined && !isIdentifier(result.safeReason)))
425
+ throwInvalidPayload();
426
+ }
427
+ function validateLocalActionIdentity(identity) {
428
+ assertKeys(identity, ["userId", "deviceId", "machineId", "workspaceBindingId", "workspaceBindingGeneration", "agentSessionId", "processEpoch", "fencingGeneration"]);
429
+ if (!isIdentifier(identity.userId) || !isIdentifier(identity.deviceId) || !isIdentifier(identity.machineId) ||
430
+ (identity.workspaceBindingId !== null && !isCanonicalUuid(identity.workspaceBindingId)) ||
431
+ (identity.workspaceBindingGeneration !== null && !isPositiveUint64Number(identity.workspaceBindingGeneration)) ||
432
+ (identity.workspaceBindingId === null) !== (identity.workspaceBindingGeneration === null) ||
433
+ !isIdentifier(identity.agentSessionId) || !isIdentifier(identity.processEpoch) ||
434
+ !isBoundedPositiveInteger(identity.fencingGeneration, Number.MAX_SAFE_INTEGER))
435
+ throwInvalidPayload();
436
+ }
437
+ function isCanonicalViewId(value) {
438
+ return typeof value === "string" && /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/u.test(value);
439
+ }
440
+ function validateTerminalViewProtocol(value, ready) {
441
+ if (typeof value !== "object" || value === null || Array.isArray(value))
442
+ throwInvalidPayload();
443
+ const record = value;
444
+ assertKeys(record, ready ? ["name", "operation", "history"] : ["name", "operation"]);
445
+ if (record.name !== "cuna.terminal-view.v1" || record.operation !== "new" ||
446
+ (ready && record.history !== "current_view"))
447
+ throwInvalidPayload();
448
+ }
449
+ function validateReadyIdentity(value) {
450
+ const present = ["machineId", "machineGeneration", "workspaceBindingId", "workspaceBindingGeneration"]
451
+ .filter((key) => key in value).length;
452
+ if (present === 0) {
453
+ if (value.localActionProtocol !== undefined)
454
+ throwInvalidPayload();
455
+ return;
456
+ }
457
+ if (present !== 4 ||
458
+ !isIdentifier(value.machineId) ||
459
+ !isIdentifier(value.machineGeneration) ||
460
+ (value.workspaceBindingId !== null && !isCanonicalUuid(value.workspaceBindingId)) ||
461
+ (value.workspaceBindingGeneration !== null && !isPositiveUint64Number(value.workspaceBindingGeneration)) ||
462
+ (value.workspaceBindingId === null) !== (value.workspaceBindingGeneration === null))
463
+ throwInvalidPayload();
464
+ }
465
+ function objectValue(value) {
466
+ if (typeof value !== "object" || value === null || Array.isArray(value))
467
+ throwInvalidPayload();
468
+ return value;
469
+ }
470
+ function assertKeys(value, required, optional = []) {
471
+ const keys = Object.keys(value);
472
+ const allowed = new Set([...required, ...optional]);
473
+ if (required.some((key) => !(key in value)) || keys.some((key) => !allowed.has(key)))
474
+ throwInvalidPayload();
475
+ }
476
+ function isJsonObject(value) {
477
+ if (typeof value !== "object" || value === null || Array.isArray(value))
478
+ return false;
479
+ try {
480
+ const encoded = JSON.stringify(value);
481
+ return encoded !== undefined && encoder.encode(encoded).byteLength <= MAX_LOCAL_ACTION_CONTROL_BYTES;
482
+ }
483
+ catch {
484
+ return false;
485
+ }
486
+ }
487
+ function isSafeTimestamp(value) {
488
+ return Number.isSafeInteger(value) && Number(value) >= 0;
489
+ }
490
+ function isUint64Number(value) {
491
+ return Number.isSafeInteger(value) && Number(value) >= 0;
492
+ }
493
+ function isPositiveUint64Number(value) {
494
+ return Number.isSafeInteger(value) && Number(value) >= 1;
495
+ }
496
+ function isUint64String(value) {
497
+ return typeof value === "string" && /^[0-9]+$/u.test(value) && BigInt(value) <= 0xffffffffffffffffn;
498
+ }
499
+ function isBoundedPositiveInteger(value, maximum) {
500
+ return Number.isSafeInteger(value) && Number(value) >= 1 && Number(value) <= maximum;
501
+ }
502
+ function isBoundedNonnegativeInteger(value, maximum) {
503
+ return Number.isSafeInteger(value) && Number(value) >= 0 && Number(value) <= maximum;
504
+ }
505
+ function decodedBase64urlLength(value) {
506
+ if (value.length === 0)
507
+ return 0;
508
+ const remainder = value.length % 4;
509
+ if (remainder === 1)
510
+ return -1;
511
+ return Math.floor(value.length * 3 / 4);
512
+ }
513
+ function sha256Base64url(value) {
514
+ try {
515
+ return createHash("sha256").update(Buffer.from(value, "base64url")).digest("hex");
516
+ }
517
+ catch {
518
+ return "";
519
+ }
520
+ }
521
+ const SIGNALS = new Set(["interrupt", "suspend", "terminate"]);
522
+ const EXIT_REASONS = new Set(["exited", "signaled", "terminated", "failed"]);
523
+ const BASE64URL = /^[A-Za-z0-9_-]*$/u;
524
+ const SHA256 = /^[0-9a-f]{64}$/u;
525
+ const SHA256_PREFIXED = /^sha256:[0-9a-f]{64}$/u;
526
+ function isIdentifier(value) {
527
+ return typeof value === "string" && value.length >= 1 && value.length <= 256 && !value.includes("\0");
528
+ }
529
+ function isCanonicalUuid(value) {
530
+ return typeof value === "string" && /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/u.test(value);
531
+ }
532
+ function isDimension(value) {
533
+ return Number.isSafeInteger(value) && Number(value) >= 1 && Number(value) <= 1000;
534
+ }
535
+ function throwInvalidPayload() {
536
+ throw new TerminalProtocolError("invalid_payload", "The terminal control payload is malformed.");
537
+ }
538
+ //# sourceMappingURL=codec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codec.js","sourceRoot":"","sources":["../../src/terminal/codec.ts"],"names":[],"mappings":"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"}