@songsid/agend 2.3.5-alpha.3 → 2.3.5-alpha.5

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 (865) hide show
  1. package/THIRD_PARTY_NOTICES.md +52 -0
  2. package/dist/accounts-view.d.ts +97 -0
  3. package/dist/accounts-view.js +116 -0
  4. package/dist/accounts-view.js.map +1 -0
  5. package/dist/agent-cli-instructions.md +1 -1
  6. package/dist/agent-credentials.d.ts +24 -0
  7. package/dist/agent-credentials.js +66 -0
  8. package/dist/agent-credentials.js.map +1 -0
  9. package/dist/agent-endpoint.d.ts +3 -1
  10. package/dist/agent-endpoint.js +13 -0
  11. package/dist/agent-endpoint.js.map +1 -1
  12. package/dist/agent-file-read.js +1 -1
  13. package/dist/agent-file-read.js.map +1 -1
  14. package/dist/agent-runtime-api.d.ts +4 -0
  15. package/dist/agent-runtime-api.js +59 -0
  16. package/dist/agent-runtime-api.js.map +1 -0
  17. package/dist/agent-runtime-change.d.ts +76 -0
  18. package/dist/agent-runtime-change.js +114 -0
  19. package/dist/agent-runtime-change.js.map +1 -0
  20. package/dist/agent-workspace.d.ts +93 -0
  21. package/dist/agent-workspace.js +353 -0
  22. package/dist/agent-workspace.js.map +1 -0
  23. package/dist/auth-api.d.ts +27 -0
  24. package/dist/auth-api.js +168 -3
  25. package/dist/auth-api.js.map +1 -1
  26. package/dist/authority/session-authorizations.d.ts +28 -4
  27. package/dist/authority/session-authorizations.js +63 -17
  28. package/dist/authority/session-authorizations.js.map +1 -1
  29. package/dist/backend/antigravity.js +3 -1
  30. package/dist/backend/antigravity.js.map +1 -1
  31. package/dist/backend/codex-footer-hints.d.ts +7 -0
  32. package/dist/backend/codex-footer-hints.js +41 -0
  33. package/dist/backend/codex-footer-hints.js.map +1 -0
  34. package/dist/backend/codex-metadata.d.ts +14 -0
  35. package/dist/backend/codex-metadata.js +45 -0
  36. package/dist/backend/codex-metadata.js.map +1 -1
  37. package/dist/backend/codex-quota-history.d.ts +7 -0
  38. package/dist/backend/codex-quota-history.js +57 -0
  39. package/dist/backend/codex-quota-history.js.map +1 -0
  40. package/dist/backend/codex-session-lookup.d.ts +6 -0
  41. package/dist/backend/codex-session-lookup.js +1 -1
  42. package/dist/backend/codex-session-lookup.js.map +1 -1
  43. package/dist/backend/codex-speed.d.ts +14 -0
  44. package/dist/backend/codex-speed.js +35 -0
  45. package/dist/backend/codex-speed.js.map +1 -0
  46. package/dist/backend/codex.d.ts +7 -0
  47. package/dist/backend/codex.js +85 -24
  48. package/dist/backend/codex.js.map +1 -1
  49. package/dist/backend/grok-weekly-reset.d.ts +24 -0
  50. package/dist/backend/grok-weekly-reset.js +95 -0
  51. package/dist/backend/grok-weekly-reset.js.map +1 -0
  52. package/dist/backend/grok.d.ts +30 -1
  53. package/dist/backend/grok.js +301 -54
  54. package/dist/backend/grok.js.map +1 -1
  55. package/dist/backend/kiro.d.ts +3 -0
  56. package/dist/backend/kiro.js +50 -2
  57. package/dist/backend/kiro.js.map +1 -1
  58. package/dist/backend/muse.js +5 -3
  59. package/dist/backend/muse.js.map +1 -1
  60. package/dist/backend/native-pane.d.ts +3 -1
  61. package/dist/backend/native-pane.js +2 -2
  62. package/dist/backend/native-pane.js.map +1 -1
  63. package/dist/backend/types.d.ts +13 -1
  64. package/dist/backend/types.js +3 -0
  65. package/dist/backend/types.js.map +1 -1
  66. package/dist/build-provenance-cli.d.ts +3 -0
  67. package/dist/build-provenance-cli.js +11 -0
  68. package/dist/build-provenance-cli.js.map +1 -0
  69. package/dist/build-provenance.d.ts +20 -0
  70. package/dist/build-provenance.js +67 -0
  71. package/dist/build-provenance.js.map +1 -0
  72. package/dist/build-provenance.json +1 -0
  73. package/dist/cache-ledger.d.ts +95 -0
  74. package/dist/cache-ledger.js +276 -4
  75. package/dist/cache-ledger.js.map +1 -1
  76. package/dist/cache-service.d.ts +5 -0
  77. package/dist/cache-service.js +16 -4
  78. package/dist/cache-service.js.map +1 -1
  79. package/dist/channel/adapters/discord.js +11 -3
  80. package/dist/channel/adapters/discord.js.map +1 -1
  81. package/dist/channel/adapters/telegram.d.ts +51 -0
  82. package/dist/channel/adapters/telegram.js +235 -17
  83. package/dist/channel/adapters/telegram.js.map +1 -1
  84. package/dist/channel/mcp-tools.js +3 -3
  85. package/dist/channel/mcp-tools.js.map +1 -1
  86. package/dist/channel/types.d.ts +2 -0
  87. package/dist/claude-auth-status.d.ts +48 -0
  88. package/dist/claude-auth-status.js +149 -0
  89. package/dist/claude-auth-status.js.map +1 -0
  90. package/dist/cli.js +138 -37
  91. package/dist/cli.js.map +1 -1
  92. package/dist/config-validator.js +21 -1
  93. package/dist/config-validator.js.map +1 -1
  94. package/dist/cross-instance-notice.d.ts +10 -0
  95. package/dist/cross-instance-notice.js +67 -5
  96. package/dist/cross-instance-notice.js.map +1 -1
  97. package/dist/daemon.d.ts +70 -1
  98. package/dist/daemon.js +547 -25
  99. package/dist/daemon.js.map +1 -1
  100. package/dist/dashboard-permissions.d.ts +8 -0
  101. package/dist/dashboard-permissions.js +16 -0
  102. package/dist/dashboard-permissions.js.map +1 -1
  103. package/dist/delivery-consumed-watch.d.ts +23 -1
  104. package/dist/delivery-consumed-watch.js +30 -3
  105. package/dist/delivery-consumed-watch.js.map +1 -1
  106. package/dist/delivery-reconciliation.d.ts +1 -1
  107. package/dist/delivery-reconciliation.js +1 -1
  108. package/dist/delivery-reconciliation.js.map +1 -1
  109. package/dist/doctor.js +20 -9
  110. package/dist/doctor.js.map +1 -1
  111. package/dist/export-import.d.ts +7 -0
  112. package/dist/export-import.js +44 -10
  113. package/dist/export-import.js.map +1 -1
  114. package/dist/fleet-context.d.ts +2 -0
  115. package/dist/fleet-manager.d.ts +362 -7
  116. package/dist/fleet-manager.js +1522 -91
  117. package/dist/fleet-manager.js.map +1 -1
  118. package/dist/fleet-windows-runtime.d.ts +8 -2
  119. package/dist/fleet-windows-runtime.js +93 -6
  120. package/dist/fleet-windows-runtime.js.map +1 -1
  121. package/dist/general-knowledge/skills/concepts/SKILL.md +425 -0
  122. package/dist/general-knowledge/skills/credential-profiles/SKILL.md +5 -2
  123. package/dist/general-knowledge/skills/cross-instance-messaging/SKILL.md +1 -0
  124. package/dist/general-knowledge/skills/fleet-health/SKILL.md +2 -2
  125. package/dist/general-knowledge/skills/instance-lifecycle/SKILL.md +3 -1
  126. package/dist/general-knowledge/skills/kiro-engine-migration/SKILL.md +41 -4
  127. package/dist/general-knowledge/skills/session-management/SKILL.md +1 -1
  128. package/dist/general-knowledge/skills/tui-effort/SKILL.md +10 -10
  129. package/dist/general-knowledge/skills/web-dashboard/SKILL.md +31 -15
  130. package/dist/general-knowledge/skills/worker-collaboration/SKILL.md +1 -1
  131. package/dist/general-role.d.ts +1 -1
  132. package/dist/general-role.js +1 -0
  133. package/dist/general-role.js.map +1 -1
  134. package/dist/hub/admission.d.ts +28 -0
  135. package/dist/hub/admission.js +62 -0
  136. package/dist/hub/admission.js.map +1 -0
  137. package/dist/hub/attachments/limits.d.ts +20 -0
  138. package/dist/hub/attachments/limits.js +48 -0
  139. package/dist/hub/attachments/limits.js.map +1 -0
  140. package/dist/hub/attachments/store.d.ts +116 -0
  141. package/dist/hub/attachments/store.js +246 -0
  142. package/dist/hub/attachments/store.js.map +1 -0
  143. package/dist/hub/audit/index.d.ts +62 -0
  144. package/dist/hub/audit/index.js +344 -0
  145. package/dist/hub/audit/index.js.map +1 -0
  146. package/dist/hub/browser-certificate.d.ts +38 -0
  147. package/dist/hub/browser-certificate.js +247 -0
  148. package/dist/hub/browser-certificate.js.map +1 -0
  149. package/dist/hub/buttons-model.d.ts +9 -0
  150. package/dist/hub/buttons-model.js +42 -0
  151. package/dist/hub/buttons-model.js.map +1 -0
  152. package/dist/hub/buttons.d.ts +54 -0
  153. package/dist/hub/buttons.js +346 -0
  154. package/dist/hub/buttons.js.map +1 -0
  155. package/dist/hub/catalog.d.ts +74 -0
  156. package/dist/hub/catalog.js +195 -0
  157. package/dist/hub/catalog.js.map +1 -0
  158. package/dist/hub/client.d.ts +69 -0
  159. package/dist/hub/client.js +300 -0
  160. package/dist/hub/client.js.map +1 -0
  161. package/dist/hub/compose/member.d.ts +139 -0
  162. package/dist/hub/compose/member.js +450 -0
  163. package/dist/hub/compose/member.js.map +1 -0
  164. package/dist/hub/compose/server.d.ts +77 -0
  165. package/dist/hub/compose/server.js +349 -0
  166. package/dist/hub/compose/server.js.map +1 -0
  167. package/dist/hub/compose/views.d.ts +12 -0
  168. package/dist/hub/compose/views.js +4 -0
  169. package/dist/hub/compose/views.js.map +1 -0
  170. package/dist/hub/db.d.ts +56 -0
  171. package/dist/hub/db.js +188 -0
  172. package/dist/hub/db.js.map +1 -0
  173. package/dist/hub/directory/config.d.ts +39 -0
  174. package/dist/hub/directory/config.js +108 -0
  175. package/dist/hub/directory/config.js.map +1 -0
  176. package/dist/hub/directory/directory.d.ts +18 -0
  177. package/dist/hub/directory/directory.js +320 -0
  178. package/dist/hub/directory/directory.js.map +1 -0
  179. package/dist/hub/directory/index.d.ts +7 -0
  180. package/dist/hub/directory/index.js +4 -0
  181. package/dist/hub/directory/index.js.map +1 -0
  182. package/dist/hub/directory/profiles.d.ts +41 -0
  183. package/dist/hub/directory/profiles.js +90 -0
  184. package/dist/hub/directory/profiles.js.map +1 -0
  185. package/dist/hub/directory/types.d.ts +71 -0
  186. package/dist/hub/directory/types.js +14 -0
  187. package/dist/hub/directory/types.js.map +1 -0
  188. package/dist/hub/execution/cli-provider.d.ts +23 -0
  189. package/dist/hub/execution/cli-provider.js +341 -0
  190. package/dist/hub/execution/cli-provider.js.map +1 -0
  191. package/dist/hub/execution/index.d.ts +13 -0
  192. package/dist/hub/execution/index.js +8 -0
  193. package/dist/hub/execution/index.js.map +1 -0
  194. package/dist/hub/execution/model-broker.d.ts +24 -0
  195. package/dist/hub/execution/model-broker.js +208 -0
  196. package/dist/hub/execution/model-broker.js.map +1 -0
  197. package/dist/hub/execution/provider-setup.d.ts +11 -0
  198. package/dist/hub/execution/provider-setup.js +21 -0
  199. package/dist/hub/execution/provider-setup.js.map +1 -0
  200. package/dist/hub/execution/sandbox-runner.d.ts +1 -0
  201. package/dist/hub/execution/sandbox-runner.js +221 -0
  202. package/dist/hub/execution/sandbox-runner.js.map +1 -0
  203. package/dist/hub/execution/service.d.ts +136 -0
  204. package/dist/hub/execution/service.js +459 -0
  205. package/dist/hub/execution/service.js.map +1 -0
  206. package/dist/hub/execution/store.d.ts +61 -0
  207. package/dist/hub/execution/store.js +182 -0
  208. package/dist/hub/execution/store.js.map +1 -0
  209. package/dist/hub/execution/views.d.ts +20 -0
  210. package/dist/hub/execution/views.js +48 -0
  211. package/dist/hub/execution/views.js.map +1 -0
  212. package/dist/hub/http/compose.d.ts +20 -0
  213. package/dist/hub/http/compose.js +518 -0
  214. package/dist/hub/http/compose.js.map +1 -0
  215. package/dist/hub/http/core.d.ts +49 -0
  216. package/dist/hub/http/core.js +124 -0
  217. package/dist/hub/http/core.js.map +1 -0
  218. package/dist/hub/http/deps.d.ts +61 -0
  219. package/dist/hub/http/deps.js +2 -0
  220. package/dist/hub/http/deps.js.map +1 -0
  221. package/dist/hub/http/schema.d.ts +14 -0
  222. package/dist/hub/http/schema.js +80 -0
  223. package/dist/hub/http/schema.js.map +1 -0
  224. package/dist/hub/identity.d.ts +32 -0
  225. package/dist/hub/identity.js +80 -0
  226. package/dist/hub/identity.js.map +1 -0
  227. package/dist/hub/init/browser-certificate.d.ts +9 -0
  228. package/dist/hub/init/browser-certificate.js +78 -0
  229. package/dist/hub/init/browser-certificate.js.map +1 -0
  230. package/dist/hub/init/browser-tls.d.ts +18 -0
  231. package/dist/hub/init/browser-tls.js +62 -0
  232. package/dist/hub/init/browser-tls.js.map +1 -0
  233. package/dist/hub/init/cli.d.ts +3 -0
  234. package/dist/hub/init/cli.js +83 -0
  235. package/dist/hub/init/cli.js.map +1 -0
  236. package/dist/hub/init/directory-certificate.d.ts +24 -0
  237. package/dist/hub/init/directory-certificate.js +222 -0
  238. package/dist/hub/init/directory-certificate.js.map +1 -0
  239. package/dist/hub/init/existing-fleet.d.ts +6 -0
  240. package/dist/hub/init/existing-fleet.js +58 -0
  241. package/dist/hub/init/existing-fleet.js.map +1 -0
  242. package/dist/hub/init/handoff.d.ts +8 -0
  243. package/dist/hub/init/handoff.js +36 -0
  244. package/dist/hub/init/handoff.js.map +1 -0
  245. package/dist/hub/init/identity.d.ts +5 -0
  246. package/dist/hub/init/identity.js +24 -0
  247. package/dist/hub/init/identity.js.map +1 -0
  248. package/dist/hub/init/initializer.d.ts +24 -0
  249. package/dist/hub/init/initializer.js +385 -0
  250. package/dist/hub/init/initializer.js.map +1 -0
  251. package/dist/hub/init/inventory.d.ts +17 -0
  252. package/dist/hub/init/inventory.js +33 -0
  253. package/dist/hub/init/inventory.js.map +1 -0
  254. package/dist/hub/init/layout.d.ts +32 -0
  255. package/dist/hub/init/layout.js +53 -0
  256. package/dist/hub/init/layout.js.map +1 -0
  257. package/dist/hub/init/network.d.ts +18 -0
  258. package/dist/hub/init/network.js +104 -0
  259. package/dist/hub/init/network.js.map +1 -0
  260. package/dist/hub/init/plan-digest.d.ts +5 -0
  261. package/dist/hub/init/plan-digest.js +47 -0
  262. package/dist/hub/init/plan-digest.js.map +1 -0
  263. package/dist/hub/init/prompt.d.ts +26 -0
  264. package/dist/hub/init/prompt.js +110 -0
  265. package/dist/hub/init/prompt.js.map +1 -0
  266. package/dist/hub/init/secret-file.d.ts +1 -0
  267. package/dist/hub/init/secret-file.js +59 -0
  268. package/dist/hub/init/secret-file.js.map +1 -0
  269. package/dist/hub/init/text.d.ts +127 -0
  270. package/dist/hub/init/text.js +247 -0
  271. package/dist/hub/init/text.js.map +1 -0
  272. package/dist/hub/init/types.d.ts +114 -0
  273. package/dist/hub/init/types.js +9 -0
  274. package/dist/hub/init/types.js.map +1 -0
  275. package/dist/hub/init/wizard.d.ts +34 -0
  276. package/dist/hub/init/wizard.js +554 -0
  277. package/dist/hub/init/wizard.js.map +1 -0
  278. package/dist/hub/initialization.d.ts +23 -0
  279. package/dist/hub/initialization.js +28 -0
  280. package/dist/hub/initialization.js.map +1 -0
  281. package/dist/hub/member/agent-mode.d.ts +6 -0
  282. package/dist/hub/member/agent-mode.js +23 -0
  283. package/dist/hub/member/agent-mode.js.map +1 -0
  284. package/dist/hub/member/attachments.d.ts +29 -0
  285. package/dist/hub/member/attachments.js +107 -0
  286. package/dist/hub/member/attachments.js.map +1 -0
  287. package/dist/hub/member/exposure-api.d.ts +87 -0
  288. package/dist/hub/member/exposure-api.js +64 -0
  289. package/dist/hub/member/exposure-api.js.map +1 -0
  290. package/dist/hub/member/exposures.d.ts +123 -0
  291. package/dist/hub/member/exposures.js +282 -0
  292. package/dist/hub/member/exposures.js.map +1 -0
  293. package/dist/hub/member/pairing-api.d.ts +85 -0
  294. package/dist/hub/member/pairing-api.js +385 -0
  295. package/dist/hub/member/pairing-api.js.map +1 -0
  296. package/dist/hub/member/quota.d.ts +20 -0
  297. package/dist/hub/member/quota.js +98 -0
  298. package/dist/hub/member/quota.js.map +1 -0
  299. package/dist/hub/member-journal.d.ts +104 -0
  300. package/dist/hub/member-journal.js +336 -0
  301. package/dist/hub/member-journal.js.map +1 -0
  302. package/dist/hub/member-reconciliation.d.ts +14 -0
  303. package/dist/hub/member-reconciliation.js +97 -0
  304. package/dist/hub/member-reconciliation.js.map +1 -0
  305. package/dist/hub/mount.d.ts +39 -0
  306. package/dist/hub/mount.js +123 -0
  307. package/dist/hub/mount.js.map +1 -0
  308. package/dist/hub/pairing-client.d.ts +17 -0
  309. package/dist/hub/pairing-client.js +108 -0
  310. package/dist/hub/pairing-client.js.map +1 -0
  311. package/dist/hub/pairing.d.ts +65 -0
  312. package/dist/hub/pairing.js +211 -0
  313. package/dist/hub/pairing.js.map +1 -0
  314. package/dist/hub/policy.d.ts +63 -0
  315. package/dist/hub/policy.js +147 -0
  316. package/dist/hub/policy.js.map +1 -0
  317. package/dist/hub/preview.d.ts +32 -0
  318. package/dist/hub/preview.js +64 -0
  319. package/dist/hub/preview.js.map +1 -0
  320. package/dist/hub/private-files.d.ts +5 -0
  321. package/dist/hub/private-files.js +44 -0
  322. package/dist/hub/private-files.js.map +1 -0
  323. package/dist/hub/profile.d.ts +59 -0
  324. package/dist/hub/profile.js +73 -0
  325. package/dist/hub/profile.js.map +1 -0
  326. package/dist/hub/protocol.d.ts +779 -0
  327. package/dist/hub/protocol.js +93 -0
  328. package/dist/hub/protocol.js.map +1 -0
  329. package/dist/hub/quota.d.ts +24 -0
  330. package/dist/hub/quota.js +112 -0
  331. package/dist/hub/quota.js.map +1 -0
  332. package/dist/hub/representative.d.ts +141 -0
  333. package/dist/hub/representative.js +528 -0
  334. package/dist/hub/representative.js.map +1 -0
  335. package/dist/hub/retention.d.ts +17 -0
  336. package/dist/hub/retention.js +45 -0
  337. package/dist/hub/retention.js.map +1 -0
  338. package/dist/hub/rooms.d.ts +120 -0
  339. package/dist/hub/rooms.js +535 -0
  340. package/dist/hub/rooms.js.map +1 -0
  341. package/dist/hub/runtime.d.ts +106 -0
  342. package/dist/hub/runtime.js +298 -0
  343. package/dist/hub/runtime.js.map +1 -0
  344. package/dist/hub/server.d.ts +56 -0
  345. package/dist/hub/server.js +202 -0
  346. package/dist/hub/server.js.map +1 -0
  347. package/dist/hub/service-start.d.ts +17 -0
  348. package/dist/hub/service-start.js +109 -0
  349. package/dist/hub/service-start.js.map +1 -0
  350. package/dist/hub/sessions.d.ts +53 -0
  351. package/dist/hub/sessions.js +196 -0
  352. package/dist/hub/sessions.js.map +1 -0
  353. package/dist/hub/socket.d.ts +24 -0
  354. package/dist/hub/socket.js +79 -0
  355. package/dist/hub/socket.js.map +1 -0
  356. package/dist/hub/store.d.ts +77 -0
  357. package/dist/hub/store.js +88 -0
  358. package/dist/hub/store.js.map +1 -0
  359. package/dist/hub/tls.d.ts +31 -0
  360. package/dist/hub/tls.js +135 -0
  361. package/dist/hub/tls.js.map +1 -0
  362. package/dist/hub/types.d.ts +401 -0
  363. package/dist/hub/types.js +2 -0
  364. package/dist/hub/types.js.map +1 -0
  365. package/dist/hub/validation.d.ts +33 -0
  366. package/dist/hub/validation.js +136 -0
  367. package/dist/hub/validation.js.map +1 -0
  368. package/dist/hub/version-floor.d.ts +10 -0
  369. package/dist/hub/version-floor.js +45 -0
  370. package/dist/hub/version-floor.js.map +1 -0
  371. package/dist/hub-browser-certificate-policy.d.ts +31 -0
  372. package/dist/hub-browser-certificate-policy.js +25 -0
  373. package/dist/hub-browser-certificate-policy.js.map +1 -0
  374. package/dist/hub-membership-settings.d.ts +6 -0
  375. package/dist/hub-membership-settings.js +21 -0
  376. package/dist/hub-membership-settings.js.map +1 -0
  377. package/dist/hub-mode.d.ts +15 -0
  378. package/dist/hub-mode.js +17 -0
  379. package/dist/hub-mode.js.map +1 -0
  380. package/dist/hub-pairing-summary.d.ts +48 -0
  381. package/dist/hub-pairing-summary.js +36 -0
  382. package/dist/hub-pairing-summary.js.map +1 -0
  383. package/dist/hub-report-target.d.ts +32 -0
  384. package/dist/hub-report-target.js +33 -0
  385. package/dist/hub-report-target.js.map +1 -0
  386. package/dist/hub-retention-policy.d.ts +14 -0
  387. package/dist/hub-retention-policy.js +15 -0
  388. package/dist/hub-retention-policy.js.map +1 -0
  389. package/dist/instance-config-impact.js +3 -0
  390. package/dist/instance-config-impact.js.map +1 -1
  391. package/dist/instance-lifecycle.d.ts +17 -2
  392. package/dist/instance-lifecycle.js +58 -8
  393. package/dist/instance-lifecycle.js.map +1 -1
  394. package/dist/instance-topic-delete.d.ts +77 -0
  395. package/dist/instance-topic-delete.js +123 -0
  396. package/dist/instance-topic-delete.js.map +1 -0
  397. package/dist/instructions.d.ts +1 -1
  398. package/dist/instructions.js +1 -1
  399. package/dist/instructions.js.map +1 -1
  400. package/dist/kiro-engine-status.d.ts +11 -0
  401. package/dist/kiro-engine-status.js +6 -0
  402. package/dist/kiro-engine-status.js.map +1 -1
  403. package/dist/launchd-service-domain.d.ts +5 -0
  404. package/dist/launchd-service-domain.js +21 -0
  405. package/dist/launchd-service-domain.js.map +1 -0
  406. package/dist/locale.js +125 -3
  407. package/dist/locale.js.map +1 -1
  408. package/dist/log-service.d.ts +28 -0
  409. package/dist/log-service.js +29 -0
  410. package/dist/log-service.js.map +1 -1
  411. package/dist/log-steps.d.ts +4 -3
  412. package/dist/log-steps.js +32 -7
  413. package/dist/log-steps.js.map +1 -1
  414. package/dist/logger.d.ts +16 -2
  415. package/dist/logger.js +346 -66
  416. package/dist/logger.js.map +1 -1
  417. package/dist/login-flows.d.ts +15 -7
  418. package/dist/login-flows.js +29 -3
  419. package/dist/login-flows.js.map +1 -1
  420. package/dist/login-manager.js +25 -4
  421. package/dist/login-manager.js.map +1 -1
  422. package/dist/ls-rows.js +3 -4
  423. package/dist/ls-rows.js.map +1 -1
  424. package/dist/missed-offline.d.ts +25 -0
  425. package/dist/missed-offline.js +79 -0
  426. package/dist/missed-offline.js.map +1 -0
  427. package/dist/native-instance-api.d.ts +0 -1
  428. package/dist/native-instance-api.js +15 -3
  429. package/dist/native-instance-api.js.map +1 -1
  430. package/dist/native-instance-input.d.ts +3 -0
  431. package/dist/native-instance-input.js +6 -1
  432. package/dist/native-instance-input.js.map +1 -1
  433. package/dist/native-instance-registry.d.ts +6 -0
  434. package/dist/native-instance-registry.js +24 -0
  435. package/dist/native-instance-registry.js.map +1 -1
  436. package/dist/native-mcp.d.ts +3 -0
  437. package/dist/native-mcp.js +15 -2
  438. package/dist/native-mcp.js.map +1 -1
  439. package/dist/native-pane-lifecycle.d.ts +8 -0
  440. package/dist/native-pane-lifecycle.js +13 -4
  441. package/dist/native-pane-lifecycle.js.map +1 -1
  442. package/dist/native-pane-manager.js +17 -9
  443. package/dist/native-pane-manager.js.map +1 -1
  444. package/dist/needs-you-hub.d.ts +9 -1
  445. package/dist/needs-you-hub.js +46 -8
  446. package/dist/needs-you-hub.js.map +1 -1
  447. package/dist/needs-you.d.ts +47 -2
  448. package/dist/needs-you.js +31 -3
  449. package/dist/needs-you.js.map +1 -1
  450. package/dist/office-share-page.js +3 -3
  451. package/dist/office-share-page.js.map +1 -1
  452. package/dist/office-share.d.ts +11 -0
  453. package/dist/office-share.js +14 -0
  454. package/dist/office-share.js.map +1 -1
  455. package/dist/office-talk.d.ts +26 -0
  456. package/dist/office-talk.js +50 -0
  457. package/dist/office-talk.js.map +1 -0
  458. package/dist/outbound-handlers.d.ts +14 -0
  459. package/dist/outbound-handlers.js +49 -6
  460. package/dist/outbound-handlers.js.map +1 -1
  461. package/dist/outbound-schemas.d.ts +33 -1
  462. package/dist/outbound-schemas.js +29 -16
  463. package/dist/outbound-schemas.js.map +1 -1
  464. package/dist/pane-quota-history.d.ts +9 -0
  465. package/dist/pane-quota-history.js +67 -0
  466. package/dist/pane-quota-history.js.map +1 -0
  467. package/dist/pause-marker.d.ts +1 -1
  468. package/dist/pause-marker.js +1 -1
  469. package/dist/pause-marker.js.map +1 -1
  470. package/dist/platform-general.d.ts +46 -0
  471. package/dist/platform-general.js +91 -0
  472. package/dist/platform-general.js.map +1 -0
  473. package/dist/public-web-gateway.js +7 -0
  474. package/dist/public-web-gateway.js.map +1 -1
  475. package/dist/public-web-link.d.ts +6 -0
  476. package/dist/public-web-link.js +9 -0
  477. package/dist/public-web-link.js.map +1 -1
  478. package/dist/queued-handoffs.d.ts +33 -0
  479. package/dist/queued-handoffs.js +75 -0
  480. package/dist/queued-handoffs.js.map +1 -0
  481. package/dist/quickstart.d.ts +13 -0
  482. package/dist/quickstart.js +81 -5
  483. package/dist/quickstart.js.map +1 -1
  484. package/dist/quota-notice.d.ts +7 -0
  485. package/dist/quota-notice.js +40 -0
  486. package/dist/quota-notice.js.map +1 -1
  487. package/dist/reply-buttons-controller.js +10 -6
  488. package/dist/reply-buttons-controller.js.map +1 -1
  489. package/dist/reply-polls.d.ts +2 -2
  490. package/dist/reply-polls.js +3 -3
  491. package/dist/reply-polls.js.map +1 -1
  492. package/dist/runtime-api.d.ts +2 -0
  493. package/dist/runtime-api.js +106 -13
  494. package/dist/runtime-api.js.map +1 -1
  495. package/dist/runtime-build-info.d.ts +9 -0
  496. package/dist/runtime-build-info.js +59 -0
  497. package/dist/runtime-build-info.js.map +1 -0
  498. package/dist/runtime-bundle.d.ts +6 -1
  499. package/dist/runtime-bundle.js +17 -9
  500. package/dist/runtime-bundle.js.map +1 -1
  501. package/dist/runtime-cli.d.ts +13 -1
  502. package/dist/runtime-cli.js +173 -19
  503. package/dist/runtime-cli.js.map +1 -1
  504. package/dist/runtime-client-store.d.ts +27 -1
  505. package/dist/runtime-client-store.js +86 -6
  506. package/dist/runtime-client-store.js.map +1 -1
  507. package/dist/runtime-client.d.ts +74 -0
  508. package/dist/runtime-client.js +336 -26
  509. package/dist/runtime-client.js.map +1 -1
  510. package/dist/runtime-connection.d.ts +22 -0
  511. package/dist/runtime-connection.js +93 -0
  512. package/dist/runtime-connection.js.map +1 -0
  513. package/dist/runtime-coordinator.d.ts +16 -0
  514. package/dist/runtime-coordinator.js +287 -62
  515. package/dist/runtime-coordinator.js.map +1 -1
  516. package/dist/runtime-credential-profiles.d.ts +78 -0
  517. package/dist/runtime-credential-profiles.js +280 -0
  518. package/dist/runtime-credential-profiles.js.map +1 -0
  519. package/dist/runtime-install.d.ts +50 -0
  520. package/dist/runtime-install.js +186 -0
  521. package/dist/runtime-install.js.map +1 -0
  522. package/dist/runtime-pane-assets.d.ts +1 -1
  523. package/dist/runtime-pane-assets.js +1 -1
  524. package/dist/runtime-pane-assets.js.map +1 -1
  525. package/dist/runtime-pane-boot.d.ts +7 -0
  526. package/dist/runtime-pane-boot.js +23 -0
  527. package/dist/runtime-pane-boot.js.map +1 -1
  528. package/dist/runtime-pane-codex-index.d.ts +10 -1
  529. package/dist/runtime-pane-codex-index.js +131 -27
  530. package/dist/runtime-pane-codex-index.js.map +1 -1
  531. package/dist/runtime-pane-host.d.ts +19 -0
  532. package/dist/runtime-pane-host.js +50 -7
  533. package/dist/runtime-pane-host.js.map +1 -1
  534. package/dist/runtime-pane-link.d.ts +7 -0
  535. package/dist/runtime-pane-link.js +93 -2
  536. package/dist/runtime-pane-link.js.map +1 -1
  537. package/dist/runtime-pane-mcp-relay.d.ts +1 -0
  538. package/dist/runtime-pane-mcp-relay.js +10 -0
  539. package/dist/runtime-pane-mcp-relay.js.map +1 -1
  540. package/dist/runtime-pane-mcp.d.ts +4 -0
  541. package/dist/runtime-pane-mcp.js +6 -3
  542. package/dist/runtime-pane-mcp.js.map +1 -1
  543. package/dist/runtime-pane-native.d.ts +32 -2
  544. package/dist/runtime-pane-native.js +55 -6
  545. package/dist/runtime-pane-native.js.map +1 -1
  546. package/dist/runtime-pane-port.d.ts +5 -0
  547. package/dist/runtime-pane-port.js +17 -1
  548. package/dist/runtime-pane-port.js.map +1 -1
  549. package/dist/runtime-pane-process.d.ts +1 -1
  550. package/dist/runtime-pane-process.js +11 -2
  551. package/dist/runtime-pane-process.js.map +1 -1
  552. package/dist/runtime-pane-protocol.d.ts +11 -1
  553. package/dist/runtime-pane-protocol.js +27 -5
  554. package/dist/runtime-pane-protocol.js.map +1 -1
  555. package/dist/runtime-pane-quota-history.d.ts +6 -0
  556. package/dist/runtime-pane-quota-history.js +44 -0
  557. package/dist/runtime-pane-quota-history.js.map +1 -0
  558. package/dist/runtime-pane-service.d.ts +5 -0
  559. package/dist/runtime-pane-service.js +47 -12
  560. package/dist/runtime-pane-service.js.map +1 -1
  561. package/dist/runtime-pane-transcript.d.ts +5 -0
  562. package/dist/runtime-pane-transcript.js +66 -5
  563. package/dist/runtime-pane-transcript.js.map +1 -1
  564. package/dist/runtime-pane-worker.js +19 -6
  565. package/dist/runtime-pane-worker.js.map +1 -1
  566. package/dist/runtime-protocol.d.ts +30 -2
  567. package/dist/runtime-protocol.js +30 -0
  568. package/dist/runtime-protocol.js.map +1 -1
  569. package/dist/runtime-update-activity.d.ts +21 -0
  570. package/dist/runtime-update-activity.js +51 -0
  571. package/dist/runtime-update-activity.js.map +1 -0
  572. package/dist/runtime-update-artifact.d.ts +31 -0
  573. package/dist/runtime-update-artifact.js +252 -0
  574. package/dist/runtime-update-artifact.js.map +1 -0
  575. package/dist/runtime-update-install.d.ts +31 -0
  576. package/dist/runtime-update-install.js +205 -0
  577. package/dist/runtime-update-install.js.map +1 -0
  578. package/dist/runtime-update-journal.d.ts +44 -0
  579. package/dist/runtime-update-journal.js +121 -0
  580. package/dist/runtime-update-journal.js.map +1 -0
  581. package/dist/runtime-update-lock.d.ts +48 -0
  582. package/dist/runtime-update-lock.js +217 -0
  583. package/dist/runtime-update-lock.js.map +1 -0
  584. package/dist/runtime-update-owners.d.ts +29 -0
  585. package/dist/runtime-update-owners.js +240 -0
  586. package/dist/runtime-update-owners.js.map +1 -0
  587. package/dist/runtime-update-protocol.d.ts +15 -0
  588. package/dist/runtime-update-protocol.js +13 -0
  589. package/dist/runtime-update-protocol.js.map +1 -0
  590. package/dist/runtime-windows-bridge.d.ts +2 -1
  591. package/dist/runtime-windows-bridge.js +11 -1
  592. package/dist/runtime-windows-bridge.js.map +1 -1
  593. package/dist/scheduler/db.d.ts +2 -1
  594. package/dist/scheduler/db.js +23 -9
  595. package/dist/scheduler/db.js.map +1 -1
  596. package/dist/scheduler/task-board-text.js +1 -1
  597. package/dist/scheduler/task-board-text.js.map +1 -1
  598. package/dist/scheduler/task-board.d.ts +13 -0
  599. package/dist/scheduler/task-board.js +28 -3
  600. package/dist/scheduler/task-board.js.map +1 -1
  601. package/dist/service-drain.d.ts +19 -0
  602. package/dist/service-drain.js +64 -0
  603. package/dist/service-drain.js.map +1 -0
  604. package/dist/service-installer.d.ts +7 -2
  605. package/dist/service-installer.js +13 -10
  606. package/dist/service-installer.js.map +1 -1
  607. package/dist/settings-api.d.ts +20 -0
  608. package/dist/settings-api.js +414 -4
  609. package/dist/settings-api.js.map +1 -1
  610. package/dist/settings-baseline.d.ts +6 -0
  611. package/dist/settings-baseline.js +3 -1
  612. package/dist/settings-baseline.js.map +1 -1
  613. package/dist/settings-change.js +29 -6
  614. package/dist/settings-change.js.map +1 -1
  615. package/dist/settings-effect.d.ts +13 -0
  616. package/dist/settings-effect.js +98 -1
  617. package/dist/settings-effect.js.map +1 -1
  618. package/dist/settings-http-confirmation.d.ts +3 -0
  619. package/dist/settings-http-confirmation.js +28 -1
  620. package/dist/settings-http-confirmation.js.map +1 -1
  621. package/dist/settings-instance-patch.js +27 -0
  622. package/dist/settings-instance-patch.js.map +1 -1
  623. package/dist/setup-wizard.js +6 -2
  624. package/dist/setup-wizard.js.map +1 -1
  625. package/dist/task-board-tool.d.ts +13 -1
  626. package/dist/task-board-tool.js +104 -4
  627. package/dist/task-board-tool.js.map +1 -1
  628. package/dist/task-board-waker.d.ts +6 -0
  629. package/dist/task-board-waker.js +4 -0
  630. package/dist/task-board-waker.js.map +1 -1
  631. package/dist/tmux-binary.d.ts +59 -0
  632. package/dist/tmux-binary.js +200 -0
  633. package/dist/tmux-binary.js.map +1 -0
  634. package/dist/tmux-control.js +4 -4
  635. package/dist/tmux-control.js.map +1 -1
  636. package/dist/tmux-exec-helper.js +32 -1
  637. package/dist/tmux-exec-helper.js.map +1 -1
  638. package/dist/tmux-manager.d.ts +1 -1
  639. package/dist/tmux-manager.js +45 -36
  640. package/dist/tmux-manager.js.map +1 -1
  641. package/dist/tmux-read.js +4 -3
  642. package/dist/tmux-read.js.map +1 -1
  643. package/dist/tool-permissions.d.ts +5 -2
  644. package/dist/tool-permissions.js +6 -5
  645. package/dist/tool-permissions.js.map +1 -1
  646. package/dist/tool-progress.d.ts +2 -0
  647. package/dist/tool-progress.js +19 -3
  648. package/dist/tool-progress.js.map +1 -1
  649. package/dist/topic-commands.js +10 -5
  650. package/dist/topic-commands.js.map +1 -1
  651. package/dist/transcript-monitor.d.ts +20 -0
  652. package/dist/transcript-monitor.js +47 -3
  653. package/dist/transcript-monitor.js.map +1 -1
  654. package/dist/transcript-needles.d.ts +7 -0
  655. package/dist/transcript-needles.js +9 -1
  656. package/dist/transcript-needles.js.map +1 -1
  657. package/dist/transcript-records.d.ts +1 -1
  658. package/dist/transcript-records.js +2 -1
  659. package/dist/transcript-records.js.map +1 -1
  660. package/dist/types.d.ts +6 -0
  661. package/dist/ui/account-identity.js +27 -0
  662. package/dist/ui/accounts-view.js +214 -0
  663. package/dist/ui/agent-runtime-settings.js +68 -0
  664. package/dist/ui/agent-runtime.js +20 -2
  665. package/dist/ui/backend-signin.js +39 -21
  666. package/dist/ui/chat-ambient.js +1 -1
  667. package/dist/ui/chat-md-strings.js +3 -0
  668. package/dist/ui/chat-render.js +3 -670
  669. package/dist/ui/chat-store.js +1 -1
  670. package/dist/ui/chat-strings.js +3 -333
  671. package/dist/ui/chat-thread.js +3 -919
  672. package/dist/ui/chat-time.js +3 -80
  673. package/dist/ui/chat-tour.js +1 -1
  674. package/dist/ui/credential-profile-select.js +54 -0
  675. package/dist/ui/fleet-office-dialogue.d.ts +30 -0
  676. package/dist/ui/fleet-office-dialogue.js +382 -0
  677. package/dist/ui/fleet-office-pack.d.ts +9 -0
  678. package/dist/ui/fleet-office-pack.js +76 -4
  679. package/dist/ui/fleet-office-skin.js +23 -5
  680. package/dist/ui/fleet-office-store.js +5 -0
  681. package/dist/ui/fleet-office.js +173 -6
  682. package/dist/ui/fleet-task-card.js +10 -6
  683. package/dist/ui/fleet-task-common.js +12 -2
  684. package/dist/ui/fleet-task-menu.js +188 -0
  685. package/dist/ui/fleet-task-stats.js +124 -0
  686. package/dist/ui/fleet-task-view.js +340 -0
  687. package/dist/ui/fleet-tasks.js +131 -43
  688. package/dist/ui/fleet-usage.js +90 -27
  689. package/dist/ui/html-attachment.js +3 -40
  690. package/dist/ui/hub-agent-copy.js +23 -0
  691. package/dist/ui/hub-button-actions.js +65 -0
  692. package/dist/ui/hub-chat-store.js +158 -0
  693. package/dist/ui/hub-chat-strings.js +77 -0
  694. package/dist/ui/hub-client.js +329 -0
  695. package/dist/ui/hub-owner-strings.js +51 -0
  696. package/dist/ui/hub-provider-guidance.js +31 -0
  697. package/dist/ui/hub-quota.js +85 -0
  698. package/dist/ui/hub-strings.js +162 -0
  699. package/dist/ui/hub-switcher.js +27 -0
  700. package/dist/ui/native-instance-settings.js +5 -8
  701. package/dist/ui/native-pane-recovery.js +1 -1
  702. package/dist/ui/office-share-page.js +4 -2
  703. package/dist/ui/panel-chat.js +36 -49
  704. package/dist/ui/panel-details.js +1 -1
  705. package/dist/ui/panel-fleet.js +82 -12
  706. package/dist/ui/panel-hub.js +619 -0
  707. package/dist/ui/panel-log.js +2 -2
  708. package/dist/ui/panel-needs.js +24 -8
  709. package/dist/ui/panel-runtimes.js +239 -45
  710. package/dist/ui/panel-settings.js +266 -192
  711. package/dist/ui/panel-windows-cli.js +88 -42
  712. package/dist/ui/preview-pages.js +1 -1
  713. package/dist/ui/preview-panel.js +92 -6
  714. package/dist/ui/preview-versions.js +1 -1
  715. package/dist/ui/preview.js +3 -476
  716. package/dist/ui/runtime-commands.d.ts +4 -0
  717. package/dist/ui/runtime-commands.js +59 -0
  718. package/dist/ui/search-dialog.js +2 -0
  719. package/dist/ui/settings-access-strings.js +42 -0
  720. package/dist/ui/settings-agent-filters.js +94 -0
  721. package/dist/ui/settings-appearance.js +122 -23
  722. package/dist/ui/settings-build-version.js +35 -0
  723. package/dist/ui/settings-codex-copy.js +19 -0
  724. package/dist/ui/settings-devices.js +253 -0
  725. package/dist/ui/settings-dialogs.js +33 -12
  726. package/dist/ui/settings-guests.js +25 -11
  727. package/dist/ui/settings-hub-browser-certificate.js +74 -0
  728. package/dist/ui/settings-hub-membership.js +72 -0
  729. package/dist/ui/settings-hub-retention.js +52 -0
  730. package/dist/ui/settings-hub.js +196 -0
  731. package/dist/ui/settings-layout.js +242 -0
  732. package/dist/ui/settings-model.js +24 -2
  733. package/dist/ui/settings-outside.js +104 -38
  734. package/dist/ui/settings-registry.js +9 -4
  735. package/dist/ui/settings-shared-strings.js +143 -0
  736. package/dist/ui/settings-shared.js +345 -0
  737. package/dist/ui/settings-shortcuts.js +65 -0
  738. package/dist/ui/settings-strings.js +89 -32
  739. package/dist/ui/settings-web-authority.js +17 -11
  740. package/dist/ui/shared/accounts.css +15 -0
  741. package/dist/ui/shared/app-i18n.js +2 -2
  742. package/dist/ui/shared/app-needs.js +1 -1
  743. package/dist/ui/shared/app-route.js +6 -1
  744. package/dist/ui/shared/app-session.js +6 -2
  745. package/dist/ui/shared/app-shell.js +81 -15
  746. package/dist/ui/shared/app.css +1114 -13
  747. package/dist/ui/shared/app.js +12 -3
  748. package/dist/ui/shared/chat-composer.js +68 -0
  749. package/dist/ui/shared/chat-md-strings.js +9 -0
  750. package/dist/ui/shared/chat-render.js +682 -0
  751. package/dist/ui/shared/chat-strings.js +333 -0
  752. package/dist/ui/shared/chat-thread.js +969 -0
  753. package/dist/ui/shared/chat-time.js +80 -0
  754. package/dist/ui/shared/header-tools.js +3 -5
  755. package/dist/ui/shared/html-attachment.js +42 -0
  756. package/dist/ui/shared/hub-chat.css +85 -0
  757. package/dist/ui/shared/hub-owner.css +33 -0
  758. package/dist/ui/shared/hub-quota.css +8 -0
  759. package/dist/ui/shared/hub.css +71 -0
  760. package/dist/ui/shared/instance-nav.js +3 -2
  761. package/dist/ui/shared/machine-name.js +13 -0
  762. package/dist/ui/shared/page-head.js +8 -0
  763. package/dist/ui/shared/panel-view.js +77 -4
  764. package/dist/ui/shared/preview.js +476 -0
  765. package/dist/ui/shared/runtime-install.css +26 -0
  766. package/dist/ui/shared/settings-width.js +31 -0
  767. package/dist/ui/shared/side-rail.js +15 -0
  768. package/dist/ui/shared/signin.js +172 -0
  769. package/dist/ui/shared/task-board.css +95 -0
  770. package/dist/ui/shared/tokens.css +1 -0
  771. package/dist/ui/shared/ui-dialog.js +2 -2
  772. package/dist/ui/shared/ui-menu.js +3 -3
  773. package/dist/ui/shared/usage-dialog.js +18 -1
  774. package/dist/ui/shared/view-history.css +17 -0
  775. package/dist/ui/shared/view-history.js +438 -0
  776. package/dist/ui/shared/view-strings.js +16 -0
  777. package/dist/ui/shared/workspace.css +20 -0
  778. package/dist/ui/signin.html +21 -0
  779. package/dist/ui/windows-cli-catalog.js +41 -12
  780. package/dist/ui/workspace-panel.js +189 -0
  781. package/dist/ui/workspace-strings.js +35 -0
  782. package/dist/unattended-install.d.ts +11 -2
  783. package/dist/unattended-install.js +41 -6
  784. package/dist/unattended-install.js.map +1 -1
  785. package/dist/usage/capacity.d.ts +69 -0
  786. package/dist/usage/capacity.js +119 -0
  787. package/dist/usage/capacity.js.map +1 -0
  788. package/dist/usage/i18n-keys.d.ts +1 -1
  789. package/dist/usage/i18n-keys.js +3 -0
  790. package/dist/usage/i18n-keys.js.map +1 -1
  791. package/dist/usage/profile-timeline.d.ts +16 -0
  792. package/dist/usage/profile-timeline.js +58 -0
  793. package/dist/usage/profile-timeline.js.map +1 -0
  794. package/dist/usage/providers.js +2 -1
  795. package/dist/usage/providers.js.map +1 -1
  796. package/dist/usage/quota-history.d.ts +43 -0
  797. package/dist/usage/quota-history.js +168 -0
  798. package/dist/usage/quota-history.js.map +1 -0
  799. package/dist/usage/usage-api.d.ts +31 -0
  800. package/dist/usage/usage-api.js +80 -1
  801. package/dist/usage/usage-api.js.map +1 -1
  802. package/dist/usage-report.d.ts +25 -1
  803. package/dist/usage-report.js +55 -4
  804. package/dist/usage-report.js.map +1 -1
  805. package/dist/usage-rollup.d.ts +6 -1
  806. package/dist/usage-rollup.js +16 -4
  807. package/dist/usage-rollup.js.map +1 -1
  808. package/dist/view-api.d.ts +16 -0
  809. package/dist/view-api.js +105 -23
  810. package/dist/view-api.js.map +1 -1
  811. package/dist/view-history.d.ts +84 -0
  812. package/dist/view-history.js +116 -0
  813. package/dist/view-history.js.map +1 -0
  814. package/dist/web-api.d.ts +49 -2
  815. package/dist/web-api.js +279 -8
  816. package/dist/web-api.js.map +1 -1
  817. package/dist/web-backend-login.d.ts +23 -1
  818. package/dist/web-backend-login.js +11 -17
  819. package/dist/web-backend-login.js.map +1 -1
  820. package/dist/web-device-login.d.ts +153 -0
  821. package/dist/web-device-login.js +278 -0
  822. package/dist/web-device-login.js.map +1 -0
  823. package/dist/web-office-skins.d.ts +9 -0
  824. package/dist/web-office-skins.js +16 -1
  825. package/dist/web-office-skins.js.map +1 -1
  826. package/dist/web-session-authorization.d.ts +13 -2
  827. package/dist/web-session-authorization.js +10 -3
  828. package/dist/web-session-authorization.js.map +1 -1
  829. package/dist/web-session.d.ts +35 -0
  830. package/dist/web-session.js +7 -0
  831. package/dist/web-session.js.map +1 -1
  832. package/dist/web-settings-patch.d.ts +3 -1
  833. package/dist/web-settings-patch.js +4 -1
  834. package/dist/web-settings-patch.js.map +1 -1
  835. package/dist/web-shell-routes.d.ts +6 -0
  836. package/dist/web-shell-routes.js +7 -0
  837. package/dist/web-shell-routes.js.map +1 -1
  838. package/dist/web-terminal.d.ts +4 -30
  839. package/dist/web-terminal.js +9 -6
  840. package/dist/web-terminal.js.map +1 -1
  841. package/dist/windows-agents.d.ts +4 -1
  842. package/dist/windows-agents.js +14 -10
  843. package/dist/windows-agents.js.map +1 -1
  844. package/dist/windows-cli-api.d.ts +12 -1
  845. package/dist/windows-cli-api.js +29 -2
  846. package/dist/windows-cli-api.js.map +1 -1
  847. package/dist/windows-cli-providers.d.ts +0 -9
  848. package/dist/windows-cli-providers.js +4 -9
  849. package/dist/windows-cli-providers.js.map +1 -1
  850. package/dist/windows-cli-worker.d.ts +25 -0
  851. package/dist/windows-cli-worker.js +98 -7
  852. package/dist/windows-cli-worker.js.map +1 -1
  853. package/dist/windows-cli.d.ts +11 -0
  854. package/dist/windows-cli.js +17 -3
  855. package/dist/windows-cli.js.map +1 -1
  856. package/dist/yaml-shared-nodes.js +8 -3
  857. package/dist/yaml-shared-nodes.js.map +1 -1
  858. package/launcher/agend-install.cjs +8 -1
  859. package/launcher/launchd-session-type.cjs +14 -0
  860. package/launcher/postinstall.cjs +27 -2
  861. package/launcher/private-home.cjs +1 -1
  862. package/launcher/tmux-bundle.cjs +247 -0
  863. package/package.json +3 -2
  864. package/templates/launchd.plist.ejs +3 -1
  865. package/templates/runtime-install/install.ps1 +270 -0
@@ -0,0 +1,280 @@
1
+ /**
2
+ * Named CLI sign-ins ("credential profiles") for a Windows computer paired as a Runtime.
3
+ *
4
+ * AgEnD (the server) only ever sends a NAME. This module is the only place a name becomes a directory, and it does so under a
5
+ * root the Runtime owns on this computer. A path, a drive letter, "..", a link or a device name can never be selected from the
6
+ * outside. Sign-in data stays in the directory; only names (and a signed-in yes/no) are reported back.
7
+ *
8
+ * Built-ins only: it is loaded by the standalone Runtime and by AgEnD's server for the same name check.
9
+ */
10
+ import { existsSync, lstatSync, mkdirSync, readdirSync, readFileSync, realpathSync } from "node:fs";
11
+ import { isAbsolute, join, relative, win32 } from "node:path";
12
+ import { atomicWriteFileSync } from "./atomic-write.js";
13
+ import { parseAccountIdentity } from "./claude-auth-status.js";
14
+ /** Same shape as the Linux/WSL `credential_profile` (src/backend/credential-profile.ts), plus the Windows file-name hazards below. */
15
+ export const CREDENTIAL_PROFILE_NAME = /^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/;
16
+ /** Reported in the Runtime's capabilities so an AgEnD never asks an older Runtime for a profile it would ignore. */
17
+ export const RUNTIME_CREDENTIAL_CAPABILITY = "credential-profiles";
18
+ /** Only Claude Code for now (`CLAUDE_CONFIG_DIR`). A new CLI is one more entry; the directory shape stays the same. */
19
+ export const CREDENTIAL_PROFILE_CLIS = Object.freeze({ "claude-code": "CLAUDE_CONFIG_DIR" });
20
+ export const CREDENTIAL_PROFILES_DIRECTORY = "credential-profiles";
21
+ const STATUS_FILE = "status.json";
22
+ /** Windows treats these as devices whatever the extension, and silently drops trailing dots/spaces: both would alias another name. */
23
+ const WINDOWS_DEVICE = /^(?:con|prn|aux|nul|conin\$|conout\$|com[0-9¹²³]|lpt[0-9¹²³])(?:\..*)?$/i;
24
+ /**
25
+ * A refusal whose text is ours and safe to show anywhere: it names a profile and a command, never a path, an account or a secret.
26
+ * A pane host passes exactly this kind of message across its local link (anything else is flattened to a generic refusal).
27
+ */
28
+ export class CredentialProfileRefusal extends Error {
29
+ constructor(message) { super(message); this.name = "CredentialProfileRefusal"; }
30
+ }
31
+ export function isCredentialProfileCli(value) {
32
+ return typeof value === "string" && Object.hasOwn(CREDENTIAL_PROFILE_CLIS, value);
33
+ }
34
+ /** True only for a name that is safe as a Linux profile name AND as a Windows folder name. */
35
+ export function validCredentialProfileName(value) {
36
+ return typeof value === "string" && CREDENTIAL_PROFILE_NAME.test(value) && !value.endsWith(".") && !WINDOWS_DEVICE.test(value);
37
+ }
38
+ export function assertCredentialProfileName(value) {
39
+ if (validCredentialProfileName(value))
40
+ return value;
41
+ throw new Error("Credential profile names use 1-64 letters, digits, dots, hyphens or underscores, start with a letter or digit, and cannot end with a dot or be a Windows device name");
42
+ }
43
+ export function assertCredentialProfileCli(value) {
44
+ if (isCredentialProfileCli(value))
45
+ return value;
46
+ throw new Error("Credential profiles on a Windows Runtime support Claude Code only");
47
+ }
48
+ /** Why a profile cannot be used for a run, with the next step on that computer. Never says which account or what is stored. */
49
+ export function credentialLoginRequired(cli, name, loggedIn) {
50
+ return new Error(loggedIn === false
51
+ ? `Credential profile "${name}" is not signed in on this computer. Sign in there: agend-runtime login ${cli} ${name}`
52
+ : `This computer could not confirm that credential profile "${name}" is signed in, so nothing was started. Check it there: agend-runtime profile list`);
53
+ }
54
+ export function credentialProfilesRoot(runtimeHome) { return join(runtimeHome, CREDENTIAL_PROFILES_DIRECTORY); }
55
+ /**
56
+ * The directory a profile name stands for. Pure: it checks the name and joins; it never reads the disk. Whatever the name, the result is a
57
+ * direct child of `<root>\<cli>`; anything that would land elsewhere (even by a future change to the name rule) is refused here.
58
+ */
59
+ export function credentialProfileDirectory(root, cli, name) {
60
+ const base = join(root, assertCredentialProfileCli(cli)), directory = join(base, assertCredentialProfileName(name));
61
+ const inside = relative(base, directory);
62
+ if (!inside || inside.startsWith("..") || isAbsolute(inside) || win32.isAbsolute(inside) || inside.includes("/") || inside.includes("\\"))
63
+ throw new Error("A credential profile must stay inside this Runtime's profile folder");
64
+ return directory;
65
+ }
66
+ function realDirectory(path, what) {
67
+ let stat;
68
+ try {
69
+ stat = lstatSync(path);
70
+ }
71
+ catch {
72
+ throw new Error(`${what} does not exist`);
73
+ }
74
+ if (!stat.isDirectory() || stat.isSymbolicLink())
75
+ throw new Error(`${what} must be a real folder, not a link`);
76
+ }
77
+ const same = (a, b) => process.platform === "win32" ? a.toLowerCase() === b.toLowerCase() : a === b;
78
+ /** Valid-named folders under `<root>\<cli>`, exactly as the disk spells them (real folders only, no links). */
79
+ function profileFolders(root, cli) {
80
+ const base = join(root, cli);
81
+ try {
82
+ realDirectory(base, "The credential profile folder");
83
+ }
84
+ catch {
85
+ return [];
86
+ }
87
+ return readdirSync(base, { withFileTypes: true }).filter(entry => entry.isDirectory() && !entry.isSymbolicLink() && validCredentialProfileName(entry.name)).map(entry => entry.name);
88
+ }
89
+ /** Folders whose names differ only by letter case are the same folder on Windows: such a name is ambiguous, so it is neither listed nor usable. */
90
+ function ambiguousFolders(names) {
91
+ const groups = new Map();
92
+ for (const name of names) {
93
+ const key = name.toLowerCase();
94
+ groups.set(key, [...(groups.get(key) ?? []), name]);
95
+ }
96
+ return new Set([...groups.values()].filter(group => group.length > 1).flat());
97
+ }
98
+ /**
99
+ * The directory of a profile that already exists. Fail closed: an unknown name, a name that is only a case variant of another, an ambiguous
100
+ * one, a name that is not a folder, or a link is an error with its next step. There is deliberately no "use the default account instead".
101
+ */
102
+ export function requireCredentialProfile(root, cli, name) {
103
+ const checked = assertCredentialProfileName(name), kind = assertCredentialProfileCli(cli), directory = credentialProfileDirectory(root, kind, checked);
104
+ const missing = new Error(`Credential profile "${checked}" does not exist on this computer. Create and sign in to it here: agend-runtime login ${kind} ${checked}`);
105
+ const folders = profileFolders(root, kind);
106
+ if (!folders.includes(checked)) {
107
+ // Windows would silently open "Work" for "work": say which one exists instead of aliasing it.
108
+ const alias = folders.find(other => other.toLowerCase() === checked.toLowerCase());
109
+ throw alias ? new Error(`Credential profile "${checked}" does not exist on this computer; "${alias}" does, and names are different if only the letter case differs. Use "${alias}".`) : missing;
110
+ }
111
+ if (ambiguousFolders(folders).has(checked))
112
+ throw new Error(`Credential profile "${checked}" is ambiguous: another folder differs from it only by letter case. Remove one of them from this Runtime's credential-profiles folder.`);
113
+ realDirectory(directory, `Credential profile "${checked}"`);
114
+ // A junction or a link anywhere on the way would have lstat above report a link; this also proves the real location is the fixed root's child.
115
+ const real = realpathSync(directory), expected = join(realpathSync(join(root, kind)), checked);
116
+ if (!same(real, expected))
117
+ throw new Error(`Credential profile "${checked}" is not inside this Runtime's profile folder`);
118
+ return directory;
119
+ }
120
+ /** Creates (or confirms) a profile folder, private to this Windows user. Names that differ only by case are the same folder on Windows, so they are refused. */
121
+ export function ensureCredentialProfile(root, cli, name) {
122
+ const checked = assertCredentialProfileName(name), kind = assertCredentialProfileCli(cli), directory = credentialProfileDirectory(root, kind, checked);
123
+ for (const path of [root, join(root, kind)]) {
124
+ mkdirSync(path, { recursive: true, mode: 0o700 });
125
+ realDirectory(path, "The credential profile folder");
126
+ }
127
+ const clash = profileFolders(root, kind).find(other => other.toLowerCase() === checked.toLowerCase() && other !== checked);
128
+ if (clash)
129
+ throw new Error(`Credential profile "${checked}" would be the same folder as "${clash}" on Windows; use that name or choose another`);
130
+ mkdirSync(directory, { recursive: true, mode: 0o700 });
131
+ realDirectory(directory, `Credential profile "${checked}"`);
132
+ return directory;
133
+ }
134
+ /** Names of the profile folders that exist, from the disk (the truth). Not listed: anything that is not a real folder with a valid name, and any name that is ambiguous by letter case. */
135
+ export function listCredentialProfileNames(root, cli) {
136
+ const folders = profileFolders(root, assertCredentialProfileCli(cli)), ambiguous = ambiguousFolders(folders);
137
+ return folders.filter(name => !ambiguous.has(name)).sort((a, b) => a.localeCompare(b));
138
+ }
139
+ const dictionary = () => Object.create(null);
140
+ function readStatusFile(root) {
141
+ const file = { version: 1, checkedAt: dictionary() };
142
+ try {
143
+ const path = join(root, STATUS_FILE), stat = lstatSync(path);
144
+ if (!stat.isFile() || stat.isSymbolicLink() || stat.size > 64 * 1024)
145
+ return file;
146
+ const value = JSON.parse(readFileSync(path, "utf8"));
147
+ const checked = value && typeof value === "object" && value.version === 1 ? value.checkedAt : undefined;
148
+ if (!checked || typeof checked !== "object")
149
+ return file;
150
+ for (const cli of Object.keys(checked)) {
151
+ const rows = checked[cli];
152
+ if (!isCredentialProfileCli(cli) || !rows || typeof rows !== "object")
153
+ continue;
154
+ const copy = file.checkedAt[cli] = dictionary();
155
+ for (const name of Object.keys(rows)) {
156
+ const row = rows[name];
157
+ if (validCredentialProfileName(name) && row && typeof row === "object" && (typeof row.loggedIn === "boolean" || row.loggedIn === null) && typeof row.at === "number") {
158
+ // An identity that is not in its masked form (a hostile or hand-edited file) is dropped, never reported.
159
+ let identity;
160
+ try {
161
+ identity = row.identity === undefined ? undefined : parseAccountIdentity(row.identity);
162
+ }
163
+ catch {
164
+ identity = undefined;
165
+ }
166
+ copy[name] = { loggedIn: row.loggedIn, at: row.at, ...(identity && row.loggedIn === true ? { identity } : {}) };
167
+ }
168
+ }
169
+ }
170
+ }
171
+ catch { /* an unreadable cache is "unknown", never an error */ }
172
+ return file;
173
+ }
174
+ /** The last sign-in check this computer made for a profile (`login`, `profile list`, an explicit "Detect again"). Null when it has not been checked. */
175
+ export function cachedCredentialLogin(root, cli, name) {
176
+ const rows = readStatusFile(root).checkedAt[cli];
177
+ return rows && Object.hasOwn(rows, name) ? rows[name].loggedIn : null;
178
+ }
179
+ /** The last answer with its account, for a profile checked before; null when it never was. */
180
+ export function cachedCredentialStatus(root, cli, name) {
181
+ const rows = readStatusFile(root).checkedAt[cli];
182
+ if (!rows || !Object.hasOwn(rows, name))
183
+ return null;
184
+ const { loggedIn, identity } = rows[name];
185
+ return { loggedIn, ...(identity ? { identity } : {}) };
186
+ }
187
+ /** A sign-in answer with no account in it (the launch gate's yes/no, a test seam): it also forgets any account remembered before. */
188
+ export function rememberCredentialLogin(root, cli, name, loggedIn, now = Date.now()) {
189
+ rememberCredentialStatus(root, cli, name, { loggedIn }, now);
190
+ }
191
+ export function rememberCredentialStatus(root, cli, name, answer, now = Date.now()) {
192
+ assertCredentialProfileName(name);
193
+ const identity = answer.loggedIn === true && answer.identity ? parseAccountIdentity(answer.identity) : undefined;
194
+ const file = readStatusFile(root);
195
+ (file.checkedAt[cli] ??= dictionary())[name] = { loggedIn: answer.loggedIn, at: now, ...(identity ? { identity } : {}) };
196
+ const plain = {};
197
+ for (const kind of Object.keys(file.checkedAt))
198
+ plain[kind] = Object.fromEntries(Object.entries(file.checkedAt[kind]));
199
+ try {
200
+ mkdirSync(root, { recursive: true, mode: 0o700 });
201
+ atomicWriteFileSync(join(root, STATUS_FILE), JSON.stringify({ version: 1, checkedAt: plain }), { mode: 0o600 });
202
+ }
203
+ catch { /* a cache; the next check writes it again */ }
204
+ }
205
+ /** What this computer tells AgEnD: names and a signed-in yes/no (null = not checked yet). No path, e-mail, account or token. */
206
+ export function credentialProfileReport(root, defaultName) {
207
+ const kind = "claude-code";
208
+ const profiles = listCredentialProfileNames(root, kind).map(name => { const known = cachedCredentialStatus(root, kind, name); return { name, loggedIn: known?.loggedIn ?? null, ...(known?.identity ? { identity: known.identity } : {}) }; });
209
+ return { profiles, ...(defaultName && profiles.some(row => row.name === defaultName) ? { default: defaultName } : {}) };
210
+ }
211
+ /** Bounded, closed parse of what a Runtime reports: only names and a signed-in yes/no. Anything else (a path, an e-mail) is a protocol error. */
212
+ export function parseCredentialProfileReport(value) {
213
+ // The field that was wrong, never its value: a rejected report may carry an unmasked e-mail, and an error must not repeat it.
214
+ const fail = (field = "report") => { throw new Error(`Invalid credential profile report: ${field}`); };
215
+ if (!value || typeof value !== "object" || Array.isArray(value))
216
+ return fail();
217
+ const input = value;
218
+ if (Object.keys(input).some(key => key !== "profiles" && key !== "default") || !Array.isArray(input.profiles) || input.profiles.length > 64)
219
+ return fail();
220
+ const seen = new Set(), profiles = [];
221
+ for (const row of input.profiles) {
222
+ if (!row || typeof row !== "object" || Array.isArray(row))
223
+ return fail("profile");
224
+ const item = row;
225
+ if (Object.keys(item).some(key => key !== "name" && key !== "loggedIn" && key !== "identity"))
226
+ return fail("profile field");
227
+ if (!validCredentialProfileName(item.name) || ![true, false, null].includes(item.loggedIn) || seen.has(item.name.toLowerCase()))
228
+ return fail("name or loggedIn");
229
+ // The account is only a masked e-mail and a plan, and only for a signed-in profile; an unmasked e-mail is a protocol error.
230
+ if (item.identity !== undefined && item.loggedIn !== true)
231
+ return fail("identity");
232
+ let identity;
233
+ try {
234
+ identity = item.identity === undefined ? undefined : parseAccountIdentity(item.identity);
235
+ }
236
+ catch (error) {
237
+ return fail(`identity ${/^Invalid account identity: (identity|unknown field|maskedEmail|plan|apiKey)$/.exec(error.message)?.[1] ?? "invalid"}`);
238
+ }
239
+ seen.add(item.name.toLowerCase());
240
+ profiles.push({ name: item.name, loggedIn: item.loggedIn, ...(identity ? { identity } : {}) });
241
+ }
242
+ if (input.default !== undefined && (!validCredentialProfileName(input.default) || !profiles.some(row => row.name === input.default)))
243
+ return fail("default");
244
+ return { profiles, ...(input.default !== undefined ? { default: input.default } : {}) };
245
+ }
246
+ /**
247
+ * The environment of one CLI run on this computer, with the profile's directory in the CLI's own variable. Any ambient value of that
248
+ * variable (whatever its letter case) is removed first, so a profile can never be combined with, or lose to, another account.
249
+ */
250
+ export function withCredentialProfile(env, cli, directory) {
251
+ const variable = CREDENTIAL_PROFILE_CLIS[assertCredentialProfileCli(cli)], out = {};
252
+ for (const [key, value] of Object.entries(env))
253
+ if (key.toUpperCase() !== variable)
254
+ out[key] = value;
255
+ out[variable] = directory;
256
+ return out;
257
+ }
258
+ /**
259
+ * A cheap fingerprint of what `agend-runtime login` / `profile default` last wrote for this pairing (the sign-in cache and the default's file),
260
+ * so a running Runtime notices a sign-in made in another window and re-reports it without being asked.
261
+ */
262
+ export function credentialCacheStamp(root, defaultFile) {
263
+ const one = (path) => { try {
264
+ const stat = lstatSync(path);
265
+ return `${stat.mtimeMs}:${stat.size}`;
266
+ }
267
+ catch {
268
+ return "-";
269
+ } };
270
+ return `${one(join(root, STATUS_FILE))}|${defaultFile ? one(defaultFile) : "-"}`;
271
+ }
272
+ export function credentialProfileExists(root, cli, name) {
273
+ try {
274
+ return existsSync(requireCredentialProfile(root, cli, name));
275
+ }
276
+ catch {
277
+ return false;
278
+ }
279
+ }
280
+ //# sourceMappingURL=runtime-credential-profiles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-credential-profiles.js","sourceRoot":"","sources":["../src/runtime-credential-profiles.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import type { IncomingMessage, ServerResponse } from "node:http";
2
+ import { type RuntimeBundle } from "./runtime-bundle.js";
3
+ export declare const RUNTIME_INSTALL_SCRIPT_PATH = "/runtime/install.ps1";
4
+ export declare const RUNTIME_BUNDLE_PATH = "/runtime/v1/bundle/windows.zip";
5
+ export declare const RUNTIME_BUNDLE_METADATA_PATH = "/runtime/v1/bundle/windows.json";
6
+ /** Replaced in the template with values that were validated first; the script holds no other server-supplied text. */
7
+ export declare const RUNTIME_INSTALL_VERSION_TOKEN = "@@AGEND_RUNTIME_VERSION@@";
8
+ export declare const RUNTIME_INSTALL_SHA256_TOKEN = "@@AGEND_RUNTIME_SHA256@@";
9
+ export declare const RUNTIME_INSTALL_MAX_SCRIPT_BYTES: number;
10
+ /** Stamps the validated version and bundle hash into the template; an unvalidated value never reaches the script. */
11
+ export declare function renderRuntimeInstallScript(template: string, bundle: Pick<RuntimeBundle, "version" | "sha256">): string;
12
+ export interface RuntimeInstallOptions {
13
+ /** Tests substitute fixtures; production builds the real bundle from this installation's compiled modules. */
14
+ bundle?: () => RuntimeBundle;
15
+ template?: () => string;
16
+ now?: () => number;
17
+ }
18
+ /** What the dashboard shows an administrator so the copied command can pin the script. */
19
+ export interface RuntimeInstallerInfo {
20
+ version: string;
21
+ scriptSha256: string;
22
+ scriptBytes: number;
23
+ bundleSha256: string;
24
+ }
25
+ export declare class RuntimeInstallService {
26
+ private readonly options;
27
+ private readonly buckets;
28
+ private files;
29
+ constructor(options?: RuntimeInstallOptions);
30
+ /** Tokens a bucket holds right now. One nobody has used holds its whole burst, and holds no table row. */
31
+ private tokens;
32
+ private spend;
33
+ /**
34
+ * The address's own bucket is asked first. A request it refuses costs the total nothing, so one address that hammers a route is held by
35
+ * its own bucket and cannot drain what everyone else shares. Only a request that bucket admits is charged to the total, and only then are
36
+ * both spent. A bucket that has refilled to full is forgotten, and a row is only created by an admitted request, so the table stays small
37
+ * without a cap.
38
+ */
39
+ private admit;
40
+ /**
41
+ * Built on first use and kept: a server version has one generic bundle, so the hash the script pins stays the hash of the
42
+ * archive every later request receives, and one script, so the hash Settings shows is the hash of every script sent. A
43
+ * failure is not remembered; the next request tries again (under the rate limit).
44
+ */
45
+ private build;
46
+ /** For the local administrator's dashboard. Throws when the installer cannot be built on this host. */
47
+ installer(): RuntimeInstallerInfo;
48
+ /** True for an install/metadata route (404 while off); false leaves every other path to the normal gate. */
49
+ handle(req: IncomingMessage, res: ServerResponse, url: URL): boolean;
50
+ }
@@ -0,0 +1,186 @@
1
+ /**
2
+ * Unauthenticated, read-only delivery of the Windows Runtime installer:
3
+ * GET /runtime/install.ps1 the installer script, stamped with this server's runtime version and bundle SHA-256
4
+ * GET /runtime/v1/bundle/windows.zip the same createRuntimeBundle() archive Settings offers as a download
5
+ * GET /runtime/v1/bundle/windows.json the version, SHA-256 and size of that exact cached archive
6
+ * These files are static for a given server version: the bundle is built once and kept, and the script is that bundle's
7
+ * version and SHA-256 stamped into a fixed template. The script is built once as bytes and those exact bytes are what every
8
+ * request receives (no newline rewriting, no compression, no per-request text), so the SHA-256 that Settings shows for it is
9
+ * the hash of what is sent: the copied command downloads the script, checks that hash and only then runs it, so the check
10
+ * does not depend on the TLS trust decision. The script in turn pins the bundle's hash. Nothing in a response depends on
11
+ * the request (no Host header, query, cookie or caller), and nothing in it is a credential, pairing code, profile, user data
12
+ * or server address: the page's command hands the server address to the script.
13
+ * They are served only while runtimes.remote_runtime is on (otherwise they answer 404), never through a public gateway link
14
+ * (404 there too), only over loopback or TLS (the installer must not travel over plain LAN HTTP), rate limited per client
15
+ * address with a small burst, and never larger than the bundle's own cap.
16
+ * Pairing stays exactly as it was: nothing here creates, accepts or approves a pairing.
17
+ */
18
+ import { createHash } from "node:crypto";
19
+ import { readFileSync } from "node:fs";
20
+ import { dirname, join } from "node:path";
21
+ import { fileURLToPath } from "node:url";
22
+ import { createRuntimeBundle, RUNTIME_MAX_ARCHIVE_BYTES } from "./runtime-bundle.js";
23
+ import { remoteRuntimeEnabled } from "./runtime-switches.js";
24
+ import { gatewayRequestContext } from "./web-request-context.js";
25
+ export const RUNTIME_INSTALL_SCRIPT_PATH = "/runtime/install.ps1";
26
+ export const RUNTIME_BUNDLE_PATH = "/runtime/v1/bundle/windows.zip";
27
+ export const RUNTIME_BUNDLE_METADATA_PATH = "/runtime/v1/bundle/windows.json";
28
+ /** Replaced in the template with values that were validated first; the script holds no other server-supplied text. */
29
+ export const RUNTIME_INSTALL_VERSION_TOKEN = "@@AGEND_RUNTIME_VERSION@@";
30
+ export const RUNTIME_INSTALL_SHA256_TOKEN = "@@AGEND_RUNTIME_SHA256@@";
31
+ export const RUNTIME_INSTALL_MAX_SCRIPT_BYTES = 64 * 1024;
32
+ /**
33
+ * Token buckets: a person re-running an installer, not a crawler. Each client address may burst a few requests, then is held to the
34
+ * refill rate; everything together is bounded too, because a reverse proxy makes every client look like one address.
35
+ */
36
+ const LIMITS = {
37
+ script: { burst: 10, perMinute: 30 },
38
+ bundle: { burst: 4, perMinute: 12 },
39
+ total: { burst: 60, perMinute: 240 },
40
+ };
41
+ const VERSION = /^\d+\.\d+\.\d+(?:[-+][A-Za-z0-9.-]+)?$/, SHA256 = /^[a-f0-9]{64}$/;
42
+ function defaultTemplate() {
43
+ const file = join(dirname(fileURLToPath(import.meta.url)), "..", "templates", "runtime-install", "install.ps1");
44
+ const bytes = readFileSync(file);
45
+ if (bytes.length > RUNTIME_INSTALL_MAX_SCRIPT_BYTES)
46
+ throw new Error("Runtime installer script is too large");
47
+ return bytes.toString("utf8");
48
+ }
49
+ /** Stamps the validated version and bundle hash into the template; an unvalidated value never reaches the script. */
50
+ export function renderRuntimeInstallScript(template, bundle) {
51
+ if (!VERSION.test(bundle.version) || !SHA256.test(bundle.sha256))
52
+ throw new Error("Invalid runtime bundle identity");
53
+ if (!template.includes(RUNTIME_INSTALL_VERSION_TOKEN) || !template.includes(RUNTIME_INSTALL_SHA256_TOKEN))
54
+ throw new Error("Runtime installer template has no placeholders");
55
+ const script = template.replaceAll(RUNTIME_INSTALL_VERSION_TOKEN, bundle.version).replaceAll(RUNTIME_INSTALL_SHA256_TOKEN, bundle.sha256);
56
+ if (/@@AGEND_RUNTIME_/.test(script) || Buffer.byteLength(script) > RUNTIME_INSTALL_MAX_SCRIPT_BYTES)
57
+ throw new Error("Runtime installer script is invalid");
58
+ return script;
59
+ }
60
+ const loopback = (address) => address === "127.0.0.1" || address === "::1" || address === "::ffff:127.0.0.1";
61
+ function protectedTransport(req) {
62
+ return loopback(req.socket.remoteAddress) || req.socket.encrypted === true;
63
+ }
64
+ function answer(res, status, body, headers = {}) {
65
+ if (res.destroyed || res.writableEnded)
66
+ return;
67
+ res.writeHead(status, { "Content-Type": "application/json; charset=utf-8", "Cache-Control": "no-store", ...headers });
68
+ res.end(JSON.stringify(body));
69
+ }
70
+ const sha256 = (bytes) => createHash("sha256").update(bytes).digest("hex");
71
+ export class RuntimeInstallService {
72
+ options;
73
+ buckets = new Map();
74
+ files;
75
+ constructor(options = {}) {
76
+ this.options = options;
77
+ }
78
+ /** Tokens a bucket holds right now. One nobody has used holds its whole burst, and holds no table row. */
79
+ tokens(key, limit, now) {
80
+ const row = this.buckets.get(key);
81
+ return row ? Math.min(row.burst, row.tokens + Math.max(0, now - row.at) * row.perMs) : limit.burst;
82
+ }
83
+ spend(key, limit, now) {
84
+ const perMs = limit.perMinute / 60_000, row = this.buckets.get(key) ?? { tokens: limit.burst, at: now, burst: limit.burst, perMs };
85
+ row.tokens = Math.min(row.burst, row.tokens + Math.max(0, now - row.at) * row.perMs) - 1;
86
+ row.at = now;
87
+ this.buckets.set(key, row);
88
+ }
89
+ /**
90
+ * The address's own bucket is asked first. A request it refuses costs the total nothing, so one address that hammers a route is held by
91
+ * its own bucket and cannot drain what everyone else shares. Only a request that bucket admits is charged to the total, and only then are
92
+ * both spent. A bucket that has refilled to full is forgotten, and a row is only created by an admitted request, so the table stays small
93
+ * without a cap.
94
+ */
95
+ admit(peerKey, peerLimit) {
96
+ const now = (this.options.now ?? Date.now)();
97
+ for (const [id, row] of this.buckets)
98
+ if (row.tokens + (now - row.at) * row.perMs >= row.burst)
99
+ this.buckets.delete(id);
100
+ if (this.tokens(peerKey, peerLimit, now) < 1 || this.tokens("total", LIMITS.total, now) < 1)
101
+ return false;
102
+ this.spend("total", LIMITS.total, now);
103
+ this.spend(peerKey, peerLimit, now);
104
+ return true;
105
+ }
106
+ /**
107
+ * Built on first use and kept: a server version has one generic bundle, so the hash the script pins stays the hash of the
108
+ * archive every later request receives, and one script, so the hash Settings shows is the hash of every script sent. A
109
+ * failure is not remembered; the next request tries again (under the rate limit).
110
+ */
111
+ build() {
112
+ if (this.files)
113
+ return this.files;
114
+ const bundle = (this.options.bundle ?? createRuntimeBundle)();
115
+ if (!bundle.bytes.length || bundle.bytes.length > RUNTIME_MAX_ARCHIVE_BYTES)
116
+ throw new Error("Runtime bundle exceeded its archive size limit");
117
+ const script = Buffer.from(renderRuntimeInstallScript((this.options.template ?? defaultTemplate)(), bundle), "utf8");
118
+ const metadata = Buffer.from(JSON.stringify({ version: bundle.version, sha256: bundle.sha256, bytes: bundle.bytes.length }) + "\n");
119
+ return this.files = { bundle, metadata, script, scriptSha256: sha256(script), etag: `"${bundle.version}-${bundle.sha256}"` };
120
+ }
121
+ /** For the local administrator's dashboard. Throws when the installer cannot be built on this host. */
122
+ installer() {
123
+ const { bundle, script, scriptSha256 } = this.build();
124
+ return { version: bundle.version, scriptSha256, scriptBytes: script.length, bundleSha256: bundle.sha256 };
125
+ }
126
+ /** True for an install/metadata route (404 while off); false leaves every other path to the normal gate. */
127
+ handle(req, res, url) {
128
+ const isScript = url.pathname === RUNTIME_INSTALL_SCRIPT_PATH;
129
+ const isMetadata = url.pathname === RUNTIME_BUNDLE_METADATA_PATH;
130
+ if (!isScript && !isMetadata && url.pathname !== RUNTIME_BUNDLE_PATH)
131
+ return false;
132
+ // Off, or reached through a public gateway link: these routes do not exist there. 404 is the same answer as any
133
+ // unknown route, and it does not reveal whether remote runtimes are configured. No bundle is built for it.
134
+ if (!remoteRuntimeEnabled() || gatewayRequestContext(req)) {
135
+ answer(res, 404, { error: "Not found" });
136
+ return true;
137
+ }
138
+ const method = req.method ?? "GET";
139
+ if (method !== "GET" && method !== "HEAD") {
140
+ answer(res, 405, { error: "Runtime installer files are read-only" }, { Allow: "GET, HEAD" });
141
+ return true;
142
+ }
143
+ if (url.search) {
144
+ answer(res, 400, { error: "Runtime installer files do not accept options" });
145
+ return true;
146
+ }
147
+ if (!protectedTransport(req)) {
148
+ answer(res, 403, { error: "The Runtime installer is served only over HTTPS or localhost" });
149
+ return true;
150
+ }
151
+ // ZIP and metadata share an allowance, including conditional and HEAD requests.
152
+ const peer = req.socket.remoteAddress ?? "unknown", kind = isScript ? "script" : "bundle";
153
+ if (!this.admit(`${kind}:${peer}`, LIMITS[kind])) {
154
+ answer(res, 429, { error: "Too many Runtime installer requests. Wait a minute and try again." }, { "Retry-After": "30" });
155
+ return true;
156
+ }
157
+ try {
158
+ const { bundle, metadata, script, etag } = this.build();
159
+ const common = { "X-Content-Type-Options": "nosniff" };
160
+ if (isScript) {
161
+ // never cached anywhere: a stale script would not match the hash the page shows
162
+ res.writeHead(200, { ...common, "Cache-Control": "no-store", "Content-Type": "text/plain; charset=utf-8", "Content-Length": script.length });
163
+ res.end(method === "HEAD" ? undefined : script);
164
+ }
165
+ else if ((req.headers["if-none-match"] ?? "").split(",").some(tag => tag.trim() === etag)) {
166
+ // The archive is immutable for this server version, so a client may ask whether its copy is still current. The installer
167
+ // still verifies the SHA-256 pinned in the script, so a cached copy is never trusted on its own.
168
+ res.writeHead(304, { ...common, "Cache-Control": "no-cache", ETag: etag });
169
+ res.end();
170
+ }
171
+ else {
172
+ const bytes = isMetadata ? metadata : bundle.bytes;
173
+ res.writeHead(200, { ...common, "Cache-Control": "no-cache", ETag: etag,
174
+ "Content-Type": isMetadata ? "application/json; charset=utf-8" : "application/zip",
175
+ ...(isMetadata ? {} : { "Content-Disposition": `attachment; filename="${bundle.filename}"`, "X-Agend-SHA256": bundle.sha256 }),
176
+ "Content-Length": bytes.length });
177
+ res.end(method === "HEAD" ? undefined : bytes);
178
+ }
179
+ }
180
+ catch {
181
+ answer(res, 503, { error: "The Windows Runtime installer is unavailable on this host. Update or reinstall AgEnD and retry." });
182
+ }
183
+ return true;
184
+ }
185
+ }
186
+ //# sourceMappingURL=runtime-install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-install.js","sourceRoot":"","sources":["../src/runtime-install.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,6 @@ export declare const RUNTIME_PANE_ASSETS: readonly [{
12
12
  readonly version: "1.1.0";
13
13
  readonly files: readonly ["package.json", "LICENSE", "CONPTY-LICENSE", "CONPTY-NOTICE.md", "lib/index.js", "lib/windowsConoutConnection.js", "lib/eventEmitter2.js", "lib/types.js", "lib/windowsTerminal.js", "lib/utils.js", "lib/worker/conoutSocketWorker.js", "lib/conpty_console_list_agent.js", "lib/interfaces.js", "lib/windowsPtyAgent.js", "lib/shared/conout.js", "lib/terminal.js", "lib/unixTerminal.js", ...string[]];
14
14
  }];
15
- export declare const RUNTIME_PANE_MODULES: readonly ["general-role.js", "runtime-general-protocol.js", "runtime-general-workspace.js", "runtime-pane-output.js", "local-pane-stage.ps1", "runtime-pane-stdio.js", "runtime-pane-stdio-protocol.js", "runtime-pane-protocol.js", "runtime-pane-mcp-protocol.js", "runtime-pane-mcp-relay.js", "windows-pane-mcp.js", "runtime-pane-link.js", "runtime-pane-private.js", "runtime-pane-private.ps1", "runtime-pane-service.js", "runtime-pane-assets.js", "runtime-pane-host.js", "runtime-pane-screen.js", "runtime-pane-store.js", "runtime-pane-boot.js", "runtime-pane-native.js", "runtime-pane-config.js", "runtime-pane-transcript.js", "runtime-pane-codex-index.js", "runtime-pane-transcript-protocol.js", "transcript-records.js", "transcript-needles.js", "transcript-turns.js", "runtime-pane-process.js", "runtime-pane-worker.js", "runtime-pane-job-owner.js", "runtime-pane-job.ps1"];
15
+ export declare const RUNTIME_PANE_MODULES: readonly ["general-role.js", "runtime-general-protocol.js", "runtime-general-workspace.js", "runtime-pane-output.js", "local-pane-stage.ps1", "runtime-pane-stdio.js", "runtime-pane-stdio-protocol.js", "runtime-pane-protocol.js", "runtime-pane-mcp-protocol.js", "runtime-pane-mcp-relay.js", "windows-pane-mcp.js", "runtime-pane-link.js", "runtime-pane-private.js", "runtime-pane-private.ps1", "runtime-pane-service.js", "runtime-pane-assets.js", "runtime-pane-host.js", "runtime-pane-screen.js", "runtime-pane-store.js", "runtime-pane-boot.js", "runtime-pane-native.js", "runtime-pane-config.js", "runtime-pane-transcript.js", "runtime-pane-quota-history.js", "pane-quota-history.js", "runtime-pane-codex-index.js", "runtime-pane-transcript-protocol.js", "transcript-records.js", "transcript-needles.js", "transcript-turns.js", "runtime-pane-process.js", "runtime-pane-worker.js", "runtime-pane-job-owner.js", "runtime-pane-job.ps1"];
16
16
  /** node-pty@1.1.0 npm prebuilds (lockfile integrity), bundled ConPTY 1.23.251008001. */
17
17
  export declare const PANE_NATIVE_SHA256: Readonly<Record<string, string>>;
@@ -8,7 +8,7 @@ export const RUNTIME_PANE_ASSETS = [
8
8
  ...["win32-x64", "win32-arm64"].flatMap(platform => ["conpty.node", "conpty_console_list.node", "conpty/OpenConsole.exe", "conpty/conpty.dll"].map(file => `prebuilds/${platform}/${file}`)),
9
9
  ] },
10
10
  ];
11
- export const RUNTIME_PANE_MODULES = ["general-role.js", "runtime-general-protocol.js", "runtime-general-workspace.js", "runtime-pane-output.js", "local-pane-stage.ps1", "runtime-pane-stdio.js", "runtime-pane-stdio-protocol.js", "runtime-pane-protocol.js", "runtime-pane-mcp-protocol.js", "runtime-pane-mcp-relay.js", "windows-pane-mcp.js", "runtime-pane-link.js", "runtime-pane-private.js", "runtime-pane-private.ps1", "runtime-pane-service.js", "runtime-pane-assets.js", "runtime-pane-host.js", "runtime-pane-screen.js", "runtime-pane-store.js", "runtime-pane-boot.js", "runtime-pane-native.js", "runtime-pane-config.js", "runtime-pane-transcript.js", "runtime-pane-codex-index.js", "runtime-pane-transcript-protocol.js", "transcript-records.js", "transcript-needles.js", "transcript-turns.js", "runtime-pane-process.js", "runtime-pane-worker.js", "runtime-pane-job-owner.js", "runtime-pane-job.ps1"];
11
+ export const RUNTIME_PANE_MODULES = ["general-role.js", "runtime-general-protocol.js", "runtime-general-workspace.js", "runtime-pane-output.js", "local-pane-stage.ps1", "runtime-pane-stdio.js", "runtime-pane-stdio-protocol.js", "runtime-pane-protocol.js", "runtime-pane-mcp-protocol.js", "runtime-pane-mcp-relay.js", "windows-pane-mcp.js", "runtime-pane-link.js", "runtime-pane-private.js", "runtime-pane-private.ps1", "runtime-pane-service.js", "runtime-pane-assets.js", "runtime-pane-host.js", "runtime-pane-screen.js", "runtime-pane-store.js", "runtime-pane-boot.js", "runtime-pane-native.js", "runtime-pane-config.js", "runtime-pane-transcript.js", "runtime-pane-quota-history.js", "pane-quota-history.js", "runtime-pane-codex-index.js", "runtime-pane-transcript-protocol.js", "transcript-records.js", "transcript-needles.js", "transcript-turns.js", "runtime-pane-process.js", "runtime-pane-worker.js", "runtime-pane-job-owner.js", "runtime-pane-job.ps1"];
12
12
  /** node-pty@1.1.0 npm prebuilds (lockfile integrity), bundled ConPTY 1.23.251008001. */
13
13
  export const PANE_NATIVE_SHA256 = {
14
14
  "prebuilds/win32-x64/conpty.node": "ee8f4e6f4dad71939eecfda11de249400e34bfefe4c8b48af13f3b5476f4035b",
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-pane-assets.js","sourceRoot":"","sources":["../src/runtime-pane-assets.ts"],"names":[],"mappings":"AAAA,4GAA4G;AAC5G,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,cAAc,EAAE,SAAS,EAAE,gCAAgC,EAAE,iCAAiC,CAAC,EAAE;IACtJ,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,cAAc,EAAE,SAAS,EAAE,wBAAwB,EAAE,yBAAyB,CAAC,EAAE;IAC9I,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;YAC3C,cAAc,EAAE,SAAS,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,cAAc,EAAE,gCAAgC,EAAE,sBAAsB,EAAE,cAAc,EAAE,wBAAwB,EAAE,cAAc;YACnM,kCAAkC,EAAE,kCAAkC,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,qBAAqB;YACvL,GAAG,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,aAAa,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,mBAAmB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,QAAQ,IAAI,IAAI,EAAE,CAAC,CAAC;SAC7L,EAAE;CACK,CAAC;AACX,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,iBAAiB,EAAE,6BAA6B,EAAE,8BAA8B,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,gCAAgC,EAAE,0BAA0B,EAAE,8BAA8B,EAAE,2BAA2B,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,6BAA6B,EAAE,qCAAqC,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,2BAA2B,EAAE,sBAAsB,CAAU,CAAC;AAE/4B,wFAAwF;AACxF,MAAM,CAAC,MAAM,kBAAkB,GAAqC;IAClE,iCAAiC,EAAE,kEAAkE;IACrG,8CAA8C,EAAE,kEAAkE;IAClH,uCAAuC,EAAE,kEAAkE;IAC3G,4CAA4C,EAAE,kEAAkE;IAChH,mCAAmC,EAAE,kEAAkE;IACvG,gDAAgD,EAAE,kEAAkE;IACpH,yCAAyC,EAAE,kEAAkE;IAC7G,8CAA8C,EAAE,kEAAkE;CACnH,CAAC"}
1
+ {"version":3,"file":"runtime-pane-assets.js","sourceRoot":"","sources":["../src/runtime-pane-assets.ts"],"names":[],"mappings":"AAAA,4GAA4G;AAC5G,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,cAAc,EAAE,SAAS,EAAE,gCAAgC,EAAE,iCAAiC,CAAC,EAAE;IACtJ,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,cAAc,EAAE,SAAS,EAAE,wBAAwB,EAAE,yBAAyB,CAAC,EAAE;IAC9I,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;YAC3C,cAAc,EAAE,SAAS,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,cAAc,EAAE,gCAAgC,EAAE,sBAAsB,EAAE,cAAc,EAAE,wBAAwB,EAAE,cAAc;YACnM,kCAAkC,EAAE,kCAAkC,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,qBAAqB;YACvL,GAAG,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,aAAa,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,mBAAmB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,QAAQ,IAAI,IAAI,EAAE,CAAC,CAAC;SAC7L,EAAE;CACK,CAAC;AACX,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,iBAAiB,EAAE,6BAA6B,EAAE,8BAA8B,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,gCAAgC,EAAE,0BAA0B,EAAE,8BAA8B,EAAE,2BAA2B,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,+BAA+B,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,qCAAqC,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,2BAA2B,EAAE,sBAAsB,CAAU,CAAC;AAEz8B,wFAAwF;AACxF,MAAM,CAAC,MAAM,kBAAkB,GAAqC;IAClE,iCAAiC,EAAE,kEAAkE;IACrG,8CAA8C,EAAE,kEAAkE;IAClH,uCAAuC,EAAE,kEAAkE;IAC3G,4CAA4C,EAAE,kEAAkE;IAChH,mCAAmC,EAAE,kEAAkE;IACvG,gDAAgD,EAAE,kEAAkE;IACpH,yCAAyC,EAAE,kEAAkE;IAC7G,8CAA8C,EAAE,kEAAkE;CACnH,CAAC"}
@@ -1,2 +1,9 @@
1
1
  export declare function paneSystemBootId(ticks: string): string;
2
2
  export declare function readPaneSystemBootId(): Promise<string | undefined>;
3
+ /** Command line of a process, read-only; unknown (undefined) when it cannot be read, which is never evidence either way. */
4
+ export declare function readProcessCommandLine(pid: number): Promise<string | undefined>;
5
+ /**
6
+ * The profile lock's PID when a readable command line shows it is no Runtime (Windows reuses PIDs after a restart), else undefined.
7
+ * A Runtime that is really running, or one whose command line cannot be read, is never reported, so it keeps its lock.
8
+ */
9
+ export declare function reusedRuntimeLockPid(holder: number | undefined, readCommandLine?: (pid: number) => Promise<string | undefined>): Promise<number | undefined>;