@qduc/term2 0.15.0 → 0.16.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 (587) hide show
  1. package/README.md +324 -316
  2. package/dist/agent.d.ts +3 -0
  3. package/dist/agent.d.ts.map +1 -1
  4. package/dist/agent.js +15 -63
  5. package/dist/agent.js.map +1 -1
  6. package/dist/app.d.ts +1 -1
  7. package/dist/app.d.ts.map +1 -1
  8. package/dist/app.js +129 -19
  9. package/dist/app.js.map +1 -1
  10. package/dist/cli.js +25 -16
  11. package/dist/cli.js.map +1 -1
  12. package/dist/commands/compact-command.d.ts.map +1 -1
  13. package/dist/commands/compact-command.js +4 -0
  14. package/dist/commands/compact-command.js.map +1 -1
  15. package/dist/commands/effort-command.js +1 -1
  16. package/dist/commands/effort-command.js.map +1 -1
  17. package/dist/commands/guarded-settings-command.d.ts.map +1 -1
  18. package/dist/commands/guarded-settings-command.js +4 -8
  19. package/dist/commands/guarded-settings-command.js.map +1 -1
  20. package/dist/commands/model-command.js +1 -1
  21. package/dist/commands/model-command.js.map +1 -1
  22. package/dist/commands/resume-command.d.ts +10 -0
  23. package/dist/commands/resume-command.d.ts.map +1 -0
  24. package/dist/commands/resume-command.js +40 -0
  25. package/dist/commands/resume-command.js.map +1 -0
  26. package/dist/components/ErrorBoundary.d.ts.map +1 -1
  27. package/dist/components/ErrorBoundary.js +5 -4
  28. package/dist/components/ErrorBoundary.js.map +1 -1
  29. package/dist/components/InputBox.d.ts +2 -0
  30. package/dist/components/InputBox.d.ts.map +1 -1
  31. package/dist/components/InputBox.js +56 -18
  32. package/dist/components/InputBox.js.map +1 -1
  33. package/dist/components/MarkdownRenderer.d.ts.map +1 -1
  34. package/dist/components/MarkdownRenderer.js +16 -15
  35. package/dist/components/MarkdownRenderer.js.map +1 -1
  36. package/dist/components/common/MenuContainer.d.ts +25 -2
  37. package/dist/components/common/MenuContainer.d.ts.map +1 -1
  38. package/dist/components/common/MenuContainer.js +35 -11
  39. package/dist/components/common/MenuContainer.js.map +1 -1
  40. package/dist/components/common/ScrollableTabBar.d.ts.map +1 -1
  41. package/dist/components/common/ScrollableTabBar.js +5 -4
  42. package/dist/components/common/ScrollableTabBar.js.map +1 -1
  43. package/dist/components/input/ApplicationInputSurface.d.ts +4 -5
  44. package/dist/components/input/ApplicationInputSurface.d.ts.map +1 -1
  45. package/dist/components/input/ApplicationInputSurface.js.map +1 -1
  46. package/dist/components/input/FirstRunSetupPrompt.d.ts.map +1 -1
  47. package/dist/components/input/FirstRunSetupPrompt.js +5 -4
  48. package/dist/components/input/FirstRunSetupPrompt.js.map +1 -1
  49. package/dist/components/input/MenuSurface.d.ts.map +1 -1
  50. package/dist/components/input/MenuSurface.js +10 -3
  51. package/dist/components/input/MenuSurface.js.map +1 -1
  52. package/dist/components/input/ModelMenuSession.d.ts.map +1 -1
  53. package/dist/components/input/ModelMenuSession.js +2 -1
  54. package/dist/components/input/ModelMenuSession.js.map +1 -1
  55. package/dist/components/input/PendingQueueList.d.ts +2 -0
  56. package/dist/components/input/PendingQueueList.d.ts.map +1 -1
  57. package/dist/components/input/PendingQueueList.js +17 -14
  58. package/dist/components/input/PendingQueueList.js.map +1 -1
  59. package/dist/components/input/SettingsValueMenuSession.d.ts.map +1 -1
  60. package/dist/components/input/SettingsValueMenuSession.js +2 -1
  61. package/dist/components/input/SettingsValueMenuSession.js.map +1 -1
  62. package/dist/components/layout/BackgroundTaskManager.d.ts.map +1 -1
  63. package/dist/components/layout/BackgroundTaskManager.js +12 -11
  64. package/dist/components/layout/BackgroundTaskManager.js.map +1 -1
  65. package/dist/components/layout/BackgroundTasksPanel.d.ts +2 -2
  66. package/dist/components/layout/BackgroundTasksPanel.d.ts.map +1 -1
  67. package/dist/components/layout/BackgroundTasksPanel.js +10 -9
  68. package/dist/components/layout/BackgroundTasksPanel.js.map +1 -1
  69. package/dist/components/layout/Banner.d.ts +0 -1
  70. package/dist/components/layout/Banner.d.ts.map +1 -1
  71. package/dist/components/layout/Banner.js +43 -73
  72. package/dist/components/layout/Banner.js.map +1 -1
  73. package/dist/components/layout/BottomArea.d.ts +6 -5
  74. package/dist/components/layout/BottomArea.d.ts.map +1 -1
  75. package/dist/components/layout/BottomArea.js +17 -9
  76. package/dist/components/layout/BottomArea.js.map +1 -1
  77. package/dist/components/layout/DiffView.js +5 -5
  78. package/dist/components/layout/DiffView.js.map +1 -1
  79. package/dist/components/layout/StatusBar.d.ts +4 -1
  80. package/dist/components/layout/StatusBar.d.ts.map +1 -1
  81. package/dist/components/layout/StatusBar.js +305 -95
  82. package/dist/components/layout/StatusBar.js.map +1 -1
  83. package/dist/components/layout/background-task-clock.d.ts +43 -0
  84. package/dist/components/layout/background-task-clock.d.ts.map +1 -0
  85. package/dist/components/layout/background-task-clock.js +46 -0
  86. package/dist/components/layout/background-task-clock.js.map +1 -0
  87. package/dist/components/menu/CopyMenu.d.ts.map +1 -1
  88. package/dist/components/menu/CopyMenu.js +4 -3
  89. package/dist/components/menu/CopyMenu.js.map +1 -1
  90. package/dist/components/menu/MentorPoolSelectionMenu.d.ts.map +1 -1
  91. package/dist/components/menu/MentorPoolSelectionMenu.js +28 -21
  92. package/dist/components/menu/MentorPoolSelectionMenu.js.map +1 -1
  93. package/dist/components/menu/ModelSelectionMenu.d.ts.map +1 -1
  94. package/dist/components/menu/ModelSelectionMenu.js +26 -13
  95. package/dist/components/menu/ModelSelectionMenu.js.map +1 -1
  96. package/dist/components/menu/PathSelectionMenu.d.ts.map +1 -1
  97. package/dist/components/menu/PathSelectionMenu.js +4 -3
  98. package/dist/components/menu/PathSelectionMenu.js.map +1 -1
  99. package/dist/components/menu/ProviderSelectionMenu.d.ts.map +1 -1
  100. package/dist/components/menu/ProviderSelectionMenu.js +46 -26
  101. package/dist/components/menu/ProviderSelectionMenu.js.map +1 -1
  102. package/dist/components/menu/RewindMenu.d.ts.map +1 -1
  103. package/dist/components/menu/RewindMenu.js +4 -3
  104. package/dist/components/menu/RewindMenu.js.map +1 -1
  105. package/dist/components/menu/SettingsSelectionMenu.d.ts.map +1 -1
  106. package/dist/components/menu/SettingsSelectionMenu.js +26 -26
  107. package/dist/components/menu/SettingsSelectionMenu.js.map +1 -1
  108. package/dist/components/menu/SettingsValueSelectionMenu.d.ts.map +1 -1
  109. package/dist/components/menu/SettingsValueSelectionMenu.js +22 -20
  110. package/dist/components/menu/SettingsValueSelectionMenu.js.map +1 -1
  111. package/dist/components/menu/SkillSelectionMenu.d.ts.map +1 -1
  112. package/dist/components/menu/SkillSelectionMenu.js +33 -23
  113. package/dist/components/menu/SkillSelectionMenu.js.map +1 -1
  114. package/dist/components/menu/SlashCommandMenu.d.ts.map +1 -1
  115. package/dist/components/menu/SlashCommandMenu.js +11 -6
  116. package/dist/components/menu/SlashCommandMenu.js.map +1 -1
  117. package/dist/components/message/ChatMessage.js +2 -2
  118. package/dist/components/message/ChatMessage.js.map +1 -1
  119. package/dist/components/message/CodeContextSearchRenderer.d.ts.map +1 -1
  120. package/dist/components/message/CodeContextSearchRenderer.js +8 -11
  121. package/dist/components/message/CodeContextSearchRenderer.js.map +1 -1
  122. package/dist/components/message/CommandGroupSummary.d.ts.map +1 -1
  123. package/dist/components/message/CommandGroupSummary.js +15 -7
  124. package/dist/components/message/CommandGroupSummary.js.map +1 -1
  125. package/dist/components/message/CommandMessage.d.ts.map +1 -1
  126. package/dist/components/message/CommandMessage.js +111 -91
  127. package/dist/components/message/CommandMessage.js.map +1 -1
  128. package/dist/components/message/GrepRenderer.d.ts.map +1 -1
  129. package/dist/components/message/GrepRenderer.js +5 -8
  130. package/dist/components/message/GrepRenderer.js.map +1 -1
  131. package/dist/components/message/MemoryRenderer.d.ts +1 -0
  132. package/dist/components/message/MemoryRenderer.d.ts.map +1 -1
  133. package/dist/components/message/MemoryRenderer.js +19 -17
  134. package/dist/components/message/MemoryRenderer.js.map +1 -1
  135. package/dist/components/message/MessageList.d.ts +1 -2
  136. package/dist/components/message/MessageList.d.ts.map +1 -1
  137. package/dist/components/message/MessageList.js +12 -11
  138. package/dist/components/message/MessageList.js.map +1 -1
  139. package/dist/components/message/ReadFileRenderer.d.ts.map +1 -1
  140. package/dist/components/message/ReadFileRenderer.js +5 -6
  141. package/dist/components/message/ReadFileRenderer.js.map +1 -1
  142. package/dist/components/message/SubagentActivityMessage.d.ts.map +1 -1
  143. package/dist/components/message/SubagentActivityMessage.js +17 -13
  144. package/dist/components/message/SubagentActivityMessage.js.map +1 -1
  145. package/dist/components/message/WebFetchRenderer.d.ts.map +1 -1
  146. package/dist/components/message/WebFetchRenderer.js +7 -11
  147. package/dist/components/message/WebFetchRenderer.js.map +1 -1
  148. package/dist/components/message/WebSearchRenderer.d.ts.map +1 -1
  149. package/dist/components/message/WebSearchRenderer.js +5 -10
  150. package/dist/components/message/WebSearchRenderer.js.map +1 -1
  151. package/dist/components/message/command-grouping.d.ts +29 -6
  152. package/dist/components/message/command-grouping.d.ts.map +1 -1
  153. package/dist/components/message/command-grouping.js +62 -20
  154. package/dist/components/message/command-grouping.js.map +1 -1
  155. package/dist/components/message/command-message-helpers.d.ts +5 -32
  156. package/dist/components/message/command-message-helpers.d.ts.map +1 -1
  157. package/dist/components/message/command-message-helpers.js +26 -8
  158. package/dist/components/message/command-message-helpers.js.map +1 -1
  159. package/dist/components/message/useCommandVisibility.d.ts.map +1 -1
  160. package/dist/components/message/useCommandVisibility.js +5 -4
  161. package/dist/components/message/useCommandVisibility.js.map +1 -1
  162. package/dist/components/prompt/ApprovalPrompt.d.ts.map +1 -1
  163. package/dist/components/prompt/ApprovalPrompt.js +190 -106
  164. package/dist/components/prompt/ApprovalPrompt.js.map +1 -1
  165. package/dist/components/prompt/HandoffConfirmationPrompt.d.ts.map +1 -1
  166. package/dist/components/prompt/HandoffConfirmationPrompt.js +3 -2
  167. package/dist/components/prompt/HandoffConfirmationPrompt.js.map +1 -1
  168. package/dist/components/prompt/InputSurgeConfirmationPrompt.d.ts.map +1 -1
  169. package/dist/components/prompt/InputSurgeConfirmationPrompt.js +5 -4
  170. package/dist/components/prompt/InputSurgeConfirmationPrompt.js.map +1 -1
  171. package/dist/components/prompt/LargeUncachedConfirmationPrompt.d.ts.map +1 -1
  172. package/dist/components/prompt/LargeUncachedConfirmationPrompt.js +4 -3
  173. package/dist/components/prompt/LargeUncachedConfirmationPrompt.js.map +1 -1
  174. package/dist/components/prompt/ModeSwitchConfirmationPrompt.d.ts.map +1 -1
  175. package/dist/components/prompt/ModeSwitchConfirmationPrompt.js +4 -3
  176. package/dist/components/prompt/ModeSwitchConfirmationPrompt.js.map +1 -1
  177. package/dist/components/prompt/QueuePausedPrompt.d.ts.map +1 -1
  178. package/dist/components/prompt/QueuePausedPrompt.js +6 -5
  179. package/dist/components/prompt/QueuePausedPrompt.js.map +1 -1
  180. package/dist/components/prompt/StandardModeConfirmationPrompt.d.ts.map +1 -1
  181. package/dist/components/prompt/StandardModeConfirmationPrompt.js +3 -2
  182. package/dist/components/prompt/StandardModeConfirmationPrompt.js.map +1 -1
  183. package/dist/components/theme.d.ts +58 -3
  184. package/dist/components/theme.d.ts.map +1 -1
  185. package/dist/components/theme.js +84 -17
  186. package/dist/components/theme.js.map +1 -1
  187. package/dist/contracts/application-stream.d.ts +14 -0
  188. package/dist/contracts/application-stream.d.ts.map +1 -1
  189. package/dist/gateway/assertion.d.ts +4 -1
  190. package/dist/gateway/assertion.d.ts.map +1 -1
  191. package/dist/gateway/assertion.js +24 -2
  192. package/dist/gateway/assertion.js.map +1 -1
  193. package/dist/gateway/contracts.d.ts +21 -4
  194. package/dist/gateway/contracts.d.ts.map +1 -1
  195. package/dist/gateway/contracts.js +11 -0
  196. package/dist/gateway/contracts.js.map +1 -1
  197. package/dist/gateway/dynamic-workspace-registry.d.ts +76 -0
  198. package/dist/gateway/dynamic-workspace-registry.d.ts.map +1 -0
  199. package/dist/gateway/dynamic-workspace-registry.js +403 -0
  200. package/dist/gateway/dynamic-workspace-registry.js.map +1 -0
  201. package/dist/gateway/gateway.d.ts +24 -1
  202. package/dist/gateway/gateway.d.ts.map +1 -1
  203. package/dist/gateway/gateway.js +704 -21
  204. package/dist/gateway/gateway.js.map +1 -1
  205. package/dist/gateway/launcher-seam.d.ts +18 -0
  206. package/dist/gateway/launcher-seam.d.ts.map +1 -0
  207. package/dist/gateway/launcher-seam.js +43 -0
  208. package/dist/gateway/launcher-seam.js.map +1 -0
  209. package/dist/gateway/pairing.d.ts +25 -0
  210. package/dist/gateway/pairing.d.ts.map +1 -0
  211. package/dist/gateway/pairing.js +107 -0
  212. package/dist/gateway/pairing.js.map +1 -0
  213. package/dist/gateway/persistence/coordinator.d.ts +2 -0
  214. package/dist/gateway/persistence/coordinator.d.ts.map +1 -1
  215. package/dist/gateway/persistence/coordinator.js +13 -0
  216. package/dist/gateway/persistence/coordinator.js.map +1 -1
  217. package/dist/gateway/runtime-factory.d.ts +15 -6
  218. package/dist/gateway/runtime-factory.d.ts.map +1 -1
  219. package/dist/gateway/runtime-factory.js +38 -9
  220. package/dist/gateway/runtime-factory.js.map +1 -1
  221. package/dist/gateway/safe-log.d.ts.map +1 -1
  222. package/dist/gateway/safe-log.js +19 -0
  223. package/dist/gateway/safe-log.js.map +1 -1
  224. package/dist/gateway/server-session.d.ts.map +1 -1
  225. package/dist/gateway/server-session.js +36 -4
  226. package/dist/gateway/server-session.js.map +1 -1
  227. package/dist/gateway/server.d.ts +26 -3
  228. package/dist/gateway/server.d.ts.map +1 -1
  229. package/dist/gateway/server.js +105 -17
  230. package/dist/gateway/server.js.map +1 -1
  231. package/dist/gateway/settings-rpc.d.ts +95 -0
  232. package/dist/gateway/settings-rpc.d.ts.map +1 -0
  233. package/dist/gateway/settings-rpc.js +227 -0
  234. package/dist/gateway/settings-rpc.js.map +1 -0
  235. package/dist/gateway/trusted-clients.d.ts +27 -0
  236. package/dist/gateway/trusted-clients.d.ts.map +1 -0
  237. package/dist/gateway/trusted-clients.js +157 -0
  238. package/dist/gateway/trusted-clients.js.map +1 -0
  239. package/dist/gateway/worker-boundary.d.ts +6 -5
  240. package/dist/gateway/worker-boundary.d.ts.map +1 -1
  241. package/dist/gateway/worker-boundary.js +20 -10
  242. package/dist/gateway/worker-boundary.js.map +1 -1
  243. package/dist/gateway/workspace-admission.d.ts +11 -0
  244. package/dist/gateway/workspace-admission.d.ts.map +1 -1
  245. package/dist/gateway/workspace-admission.js +89 -16
  246. package/dist/gateway/workspace-admission.js.map +1 -1
  247. package/dist/gateway/workspace-boundary-probe.d.ts +18 -0
  248. package/dist/gateway/workspace-boundary-probe.d.ts.map +1 -0
  249. package/dist/gateway/workspace-boundary-probe.js +37 -0
  250. package/dist/gateway/workspace-boundary-probe.js.map +1 -0
  251. package/dist/hooks/conversation-ui-reducer.d.ts +6 -0
  252. package/dist/hooks/conversation-ui-reducer.d.ts.map +1 -1
  253. package/dist/hooks/conversation-ui-reducer.js +9 -1
  254. package/dist/hooks/conversation-ui-reducer.js.map +1 -1
  255. package/dist/hooks/settings-completion-config.d.ts.map +1 -1
  256. package/dist/hooks/settings-completion-config.js +11 -3
  257. package/dist/hooks/settings-completion-config.js.map +1 -1
  258. package/dist/hooks/use-app-commands.d.ts +6 -1
  259. package/dist/hooks/use-app-commands.d.ts.map +1 -1
  260. package/dist/hooks/use-app-commands.js +22 -13
  261. package/dist/hooks/use-app-commands.js.map +1 -1
  262. package/dist/hooks/use-app-keyboard-shortcuts.d.ts +1 -3
  263. package/dist/hooks/use-app-keyboard-shortcuts.d.ts.map +1 -1
  264. package/dist/hooks/use-app-keyboard-shortcuts.js +11 -9
  265. package/dist/hooks/use-app-keyboard-shortcuts.js.map +1 -1
  266. package/dist/hooks/use-conversation.d.ts +8 -0
  267. package/dist/hooks/use-conversation.d.ts.map +1 -1
  268. package/dist/hooks/use-conversation.js +27 -18
  269. package/dist/hooks/use-conversation.js.map +1 -1
  270. package/dist/hooks/use-opencode-go-usage.d.ts +8 -0
  271. package/dist/hooks/use-opencode-go-usage.d.ts.map +1 -0
  272. package/dist/hooks/use-opencode-go-usage.js +45 -0
  273. package/dist/hooks/use-opencode-go-usage.js.map +1 -0
  274. package/dist/hooks/use-shell-mode.d.ts +3 -4
  275. package/dist/hooks/use-shell-mode.d.ts.map +1 -1
  276. package/dist/hooks/use-shell-mode.js +14 -12
  277. package/dist/hooks/use-shell-mode.js.map +1 -1
  278. package/dist/hooks/use-terminal-columns.d.ts +15 -0
  279. package/dist/hooks/use-terminal-columns.d.ts.map +1 -0
  280. package/dist/hooks/use-terminal-columns.js +45 -0
  281. package/dist/hooks/use-terminal-columns.js.map +1 -0
  282. package/dist/lib/agent-client.d.ts +2 -0
  283. package/dist/lib/agent-client.d.ts.map +1 -1
  284. package/dist/lib/agent-client.js +1 -0
  285. package/dist/lib/agent-client.js.map +1 -1
  286. package/dist/lib/agent-configuration.d.ts +3 -0
  287. package/dist/lib/agent-configuration.d.ts.map +1 -1
  288. package/dist/lib/agent-configuration.js +4 -0
  289. package/dist/lib/agent-configuration.js.map +1 -1
  290. package/dist/lib/agent-factory.d.ts +3 -0
  291. package/dist/lib/agent-factory.d.ts.map +1 -1
  292. package/dist/lib/agent-factory.js +9 -2
  293. package/dist/lib/agent-factory.js.map +1 -1
  294. package/dist/lib/harness-input-idle.d.ts.map +1 -1
  295. package/dist/lib/harness-input-idle.js +1 -1
  296. package/dist/lib/harness-input-idle.js.map +1 -1
  297. package/dist/non-interactive.d.ts.map +1 -1
  298. package/dist/non-interactive.js +9 -2
  299. package/dist/non-interactive.js.map +1 -1
  300. package/dist/prompts/approval-model.md +22 -0
  301. package/dist/prompts/gpt-5.6.md +3 -2
  302. package/dist/prompts/mentor-mode-stub.md +3 -0
  303. package/dist/prompts/orchestrator-mode-stub.md +3 -0
  304. package/dist/prompts/prefix-quality.test.ts +10 -0
  305. package/dist/prompts/prompt-constructor.d.ts +2 -0
  306. package/dist/prompts/prompt-constructor.d.ts.map +1 -1
  307. package/dist/prompts/prompt-constructor.js +23 -13
  308. package/dist/prompts/prompt-constructor.js.map +1 -1
  309. package/dist/prompts/prompt-constructor.test.ts +39 -5
  310. package/dist/prompts/prompt-constructor.ts +27 -15
  311. package/dist/prompts/prompt-profiles.d.ts +1 -3
  312. package/dist/prompts/prompt-profiles.d.ts.map +1 -1
  313. package/dist/prompts/prompt-profiles.js +2 -7
  314. package/dist/prompts/prompt-profiles.js.map +1 -1
  315. package/dist/prompts/prompt-profiles.ts +3 -16
  316. package/dist/prompts/session-browser.md +3 -0
  317. package/dist/prompts/subagent-delegation.d.ts +3 -2
  318. package/dist/prompts/subagent-delegation.d.ts.map +1 -1
  319. package/dist/prompts/subagent-delegation.js +9 -13
  320. package/dist/prompts/subagent-delegation.js.map +1 -1
  321. package/dist/prompts/subagent-delegation.ts +9 -13
  322. package/dist/providers/chained-wire-state.d.ts +7 -2
  323. package/dist/providers/chained-wire-state.d.ts.map +1 -1
  324. package/dist/providers/chained-wire-state.js +16 -7
  325. package/dist/providers/chained-wire-state.js.map +1 -1
  326. package/dist/providers/codex-auth.d.ts +2 -5
  327. package/dist/providers/codex-auth.d.ts.map +1 -1
  328. package/dist/providers/codex-auth.js +2 -0
  329. package/dist/providers/codex-auth.js.map +1 -1
  330. package/dist/providers/codex-responses-model.d.ts.map +1 -1
  331. package/dist/providers/codex-responses-model.js +22 -3
  332. package/dist/providers/codex-responses-model.js.map +1 -1
  333. package/dist/providers/grok-auth.d.ts +2 -5
  334. package/dist/providers/grok-auth.d.ts.map +1 -1
  335. package/dist/providers/grok-auth.js +2 -0
  336. package/dist/providers/grok-auth.js.map +1 -1
  337. package/dist/providers/oauth-account-store.d.ts +5 -0
  338. package/dist/providers/oauth-account-store.d.ts.map +1 -1
  339. package/dist/providers/oauth-account-store.js +56 -5
  340. package/dist/providers/oauth-account-store.js.map +1 -1
  341. package/dist/providers/oauth-pkce.d.ts +8 -0
  342. package/dist/providers/oauth-pkce.d.ts.map +1 -1
  343. package/dist/providers/oauth-pkce.js +91 -19
  344. package/dist/providers/oauth-pkce.js.map +1 -1
  345. package/dist/providers/openai-compatible.provider.d.ts.map +1 -1
  346. package/dist/providers/openai-compatible.provider.js +8 -1
  347. package/dist/providers/openai-compatible.provider.js.map +1 -1
  348. package/dist/providers/opencode-go-usage.d.ts +24 -0
  349. package/dist/providers/opencode-go-usage.d.ts.map +1 -0
  350. package/dist/providers/opencode-go-usage.js +37 -0
  351. package/dist/providers/opencode-go-usage.js.map +1 -0
  352. package/dist/providers/openrouter.provider.d.ts.map +1 -1
  353. package/dist/providers/openrouter.provider.js +8 -1
  354. package/dist/providers/openrouter.provider.js.map +1 -1
  355. package/dist/providers/responses-websocket-sessions.d.ts +1 -0
  356. package/dist/providers/responses-websocket-sessions.d.ts.map +1 -1
  357. package/dist/providers/responses-websocket-sessions.js +16 -2
  358. package/dist/providers/responses-websocket-sessions.js.map +1 -1
  359. package/dist/providers/retrying-model.d.ts.map +1 -1
  360. package/dist/providers/retrying-model.js +31 -3
  361. package/dist/providers/retrying-model.js.map +1 -1
  362. package/dist/services/agent-runtime/application-run-loop.d.ts +5 -1
  363. package/dist/services/agent-runtime/application-run-loop.d.ts.map +1 -1
  364. package/dist/services/agent-runtime/application-run-loop.js +229 -149
  365. package/dist/services/agent-runtime/application-run-loop.js.map +1 -1
  366. package/dist/services/agent-runtime/generation-guard.d.ts +39 -25
  367. package/dist/services/agent-runtime/generation-guard.d.ts.map +1 -1
  368. package/dist/services/agent-runtime/generation-guard.js +98 -100
  369. package/dist/services/agent-runtime/generation-guard.js.map +1 -1
  370. package/dist/services/agent-runtime/run-budget.d.ts +1 -1
  371. package/dist/services/agent-runtime/run-budget.d.ts.map +1 -1
  372. package/dist/services/agent-runtime/run-budget.js +4 -0
  373. package/dist/services/agent-runtime/run-budget.js.map +1 -1
  374. package/dist/services/agent-stream.d.ts.map +1 -1
  375. package/dist/services/agent-stream.js +1 -0
  376. package/dist/services/agent-stream.js.map +1 -1
  377. package/dist/services/conversation/conversation-adapter.d.ts +13 -2
  378. package/dist/services/conversation/conversation-adapter.d.ts.map +1 -1
  379. package/dist/services/conversation/conversation-adapter.js +35 -7
  380. package/dist/services/conversation/conversation-adapter.js.map +1 -1
  381. package/dist/services/conversation/conversation-admission-workflow.d.ts +3 -2
  382. package/dist/services/conversation/conversation-admission-workflow.d.ts.map +1 -1
  383. package/dist/services/conversation/conversation-admission-workflow.js +6 -1
  384. package/dist/services/conversation/conversation-admission-workflow.js.map +1 -1
  385. package/dist/services/conversation/conversation-events.d.ts +43 -2
  386. package/dist/services/conversation/conversation-events.d.ts.map +1 -1
  387. package/dist/services/conversation/conversation-orchestrator.d.ts +14 -1
  388. package/dist/services/conversation/conversation-orchestrator.d.ts.map +1 -1
  389. package/dist/services/conversation/conversation-orchestrator.js +142 -11
  390. package/dist/services/conversation/conversation-orchestrator.js.map +1 -1
  391. package/dist/services/conversation/conversation-orchestrator.types.d.ts +3 -1
  392. package/dist/services/conversation/conversation-orchestrator.types.d.ts.map +1 -1
  393. package/dist/services/conversation/conversation-persistence.d.ts +22 -1
  394. package/dist/services/conversation/conversation-persistence.d.ts.map +1 -1
  395. package/dist/services/conversation/conversation-persistence.js +61 -0
  396. package/dist/services/conversation/conversation-persistence.js.map +1 -1
  397. package/dist/services/conversation/conversation-service.d.ts.map +1 -1
  398. package/dist/services/conversation/conversation-service.js +45 -29
  399. package/dist/services/conversation/conversation-service.js.map +1 -1
  400. package/dist/services/conversation/session-audit.d.ts +70 -0
  401. package/dist/services/conversation/session-audit.d.ts.map +1 -0
  402. package/dist/services/conversation/session-audit.js +164 -0
  403. package/dist/services/conversation/session-audit.js.map +1 -0
  404. package/dist/services/conversation/session-browser.d.ts +46 -0
  405. package/dist/services/conversation/session-browser.d.ts.map +1 -0
  406. package/dist/services/conversation/session-browser.js +380 -0
  407. package/dist/services/conversation/session-browser.js.map +1 -0
  408. package/dist/services/input-surge-approval.d.ts +21 -0
  409. package/dist/services/input-surge-approval.d.ts.map +1 -0
  410. package/dist/services/input-surge-approval.js +42 -0
  411. package/dist/services/input-surge-approval.js.map +1 -0
  412. package/dist/services/large-uncached-input-guard.js +4 -4
  413. package/dist/services/large-uncached-input-guard.js.map +1 -1
  414. package/dist/services/logging/assistant-turn-journal.d.ts +15 -0
  415. package/dist/services/logging/assistant-turn-journal.d.ts.map +1 -1
  416. package/dist/services/logging/assistant-turn-journal.js +27 -0
  417. package/dist/services/logging/assistant-turn-journal.js.map +1 -1
  418. package/dist/services/memory/memory-capabilities.js +2 -2
  419. package/dist/services/memory/memory-search.d.ts +16 -0
  420. package/dist/services/memory/memory-search.d.ts.map +1 -0
  421. package/dist/services/memory/memory-search.js +55 -0
  422. package/dist/services/memory/memory-search.js.map +1 -0
  423. package/dist/services/memory/memory-store.d.ts +12 -0
  424. package/dist/services/memory/memory-store.d.ts.map +1 -1
  425. package/dist/services/memory/memory-store.js +14 -35
  426. package/dist/services/memory/memory-store.js.map +1 -1
  427. package/dist/services/mode-notices.d.ts +11 -0
  428. package/dist/services/mode-notices.d.ts.map +1 -1
  429. package/dist/services/mode-notices.js +37 -3
  430. package/dist/services/mode-notices.js.map +1 -1
  431. package/dist/services/queue/queue-controller.d.ts +13 -0
  432. package/dist/services/queue/queue-controller.d.ts.map +1 -1
  433. package/dist/services/queue/queue-controller.js +32 -1
  434. package/dist/services/queue/queue-controller.js.map +1 -1
  435. package/dist/services/retry/in-loop-model-retry.d.ts +12 -0
  436. package/dist/services/retry/in-loop-model-retry.d.ts.map +1 -0
  437. package/dist/services/retry/in-loop-model-retry.js +115 -0
  438. package/dist/services/retry/in-loop-model-retry.js.map +1 -0
  439. package/dist/services/retry/retry-classifier.d.ts.map +1 -1
  440. package/dist/services/retry/retry-classifier.js +18 -12
  441. package/dist/services/retry/retry-classifier.js.map +1 -1
  442. package/dist/services/retry/retry-error-classification.d.ts.map +1 -1
  443. package/dist/services/retry/retry-error-classification.js +10 -6
  444. package/dist/services/retry/retry-error-classification.js.map +1 -1
  445. package/dist/services/retry/upstream-retry-policy.d.ts.map +1 -1
  446. package/dist/services/retry/upstream-retry-policy.js +40 -7
  447. package/dist/services/retry/upstream-retry-policy.js.map +1 -1
  448. package/dist/services/runtime-setting-router.d.ts.map +1 -1
  449. package/dist/services/runtime-setting-router.js +7 -2
  450. package/dist/services/runtime-setting-router.js.map +1 -1
  451. package/dist/services/session/background-check-in-scheduler.d.ts +44 -0
  452. package/dist/services/session/background-check-in-scheduler.d.ts.map +1 -0
  453. package/dist/services/session/background-check-in-scheduler.js +88 -0
  454. package/dist/services/session/background-check-in-scheduler.js.map +1 -0
  455. package/dist/services/session/background-task-control.js +4 -1
  456. package/dist/services/session/background-task-control.js.map +1 -1
  457. package/dist/services/session/initial-input-preparer.d.ts +2 -1
  458. package/dist/services/session/initial-input-preparer.d.ts.map +1 -1
  459. package/dist/services/session/initial-input-preparer.js +3 -1
  460. package/dist/services/session/initial-input-preparer.js.map +1 -1
  461. package/dist/services/session/repetition-detector.d.ts +0 -4
  462. package/dist/services/session/repetition-detector.d.ts.map +1 -1
  463. package/dist/services/session/repetition-detector.js +0 -7
  464. package/dist/services/session/repetition-detector.js.map +1 -1
  465. package/dist/services/session/session-composition.d.ts +6 -2
  466. package/dist/services/session/session-composition.d.ts.map +1 -1
  467. package/dist/services/session/session-composition.js +99 -29
  468. package/dist/services/session/session-composition.js.map +1 -1
  469. package/dist/services/session/session-lifecycle.d.ts +8 -0
  470. package/dist/services/session/session-lifecycle.d.ts.map +1 -1
  471. package/dist/services/session/session-lifecycle.js +4 -0
  472. package/dist/services/session/session-lifecycle.js.map +1 -1
  473. package/dist/services/session/session-stream-processor.d.ts.map +1 -1
  474. package/dist/services/session/session-stream-processor.js +5 -15
  475. package/dist/services/session/session-stream-processor.js.map +1 -1
  476. package/dist/services/session/turn-attempt-factory.d.ts +2 -1
  477. package/dist/services/session/turn-attempt-factory.d.ts.map +1 -1
  478. package/dist/services/session/turn-attempt-factory.js +1 -0
  479. package/dist/services/session/turn-attempt-factory.js.map +1 -1
  480. package/dist/services/session/turn-attempt.d.ts +3 -0
  481. package/dist/services/session/turn-attempt.d.ts.map +1 -1
  482. package/dist/services/session/turn-attempt.js +5 -0
  483. package/dist/services/session/turn-attempt.js.map +1 -1
  484. package/dist/services/session/turn-coordinator.d.ts +1 -1
  485. package/dist/services/session/turn-coordinator.d.ts.map +1 -1
  486. package/dist/services/session/turn-workflow.d.ts.map +1 -1
  487. package/dist/services/session/turn-workflow.js +4 -1
  488. package/dist/services/session/turn-workflow.js.map +1 -1
  489. package/dist/services/settings/settings-schema.d.ts +27 -3
  490. package/dist/services/settings/settings-schema.d.ts.map +1 -1
  491. package/dist/services/settings/settings-schema.js +35 -11
  492. package/dist/services/settings/settings-schema.js.map +1 -1
  493. package/dist/services/settings/settings-service.d.ts +9 -0
  494. package/dist/services/settings/settings-service.d.ts.map +1 -1
  495. package/dist/services/settings/settings-service.js +40 -0
  496. package/dist/services/settings/settings-service.js.map +1 -1
  497. package/dist/services/settings/settings-sources.d.ts.map +1 -1
  498. package/dist/services/settings/settings-sources.js +5 -0
  499. package/dist/services/settings/settings-sources.js.map +1 -1
  500. package/dist/services/settings/test-helpers/settings-consumer-inventory.d.ts +2 -1
  501. package/dist/services/settings/test-helpers/settings-consumer-inventory.d.ts.map +1 -1
  502. package/dist/services/settings/test-helpers/settings-consumer-inventory.js +6 -0
  503. package/dist/services/settings/test-helpers/settings-consumer-inventory.js.map +1 -1
  504. package/dist/services/shell/shell-interaction-session.d.ts +4 -5
  505. package/dist/services/shell/shell-interaction-session.d.ts.map +1 -1
  506. package/dist/services/shell/shell-interaction-session.js +8 -20
  507. package/dist/services/shell/shell-interaction-session.js.map +1 -1
  508. package/dist/services/stream-event-processor.d.ts.map +1 -1
  509. package/dist/services/stream-event-processor.js +15 -0
  510. package/dist/services/stream-event-processor.js.map +1 -1
  511. package/dist/services/subagents/mentor-runner.d.ts.map +1 -1
  512. package/dist/services/subagents/mentor-runner.js +2 -0
  513. package/dist/services/subagents/mentor-runner.js.map +1 -1
  514. package/dist/services/subagents/nested-runner.d.ts.map +1 -1
  515. package/dist/services/subagents/nested-runner.js +34 -1
  516. package/dist/services/subagents/nested-runner.js.map +1 -1
  517. package/dist/services/subagents/subagent-async-registry.js +1 -1
  518. package/dist/services/subagents/subagent-async-registry.js.map +1 -1
  519. package/dist/services/subagents/subagent-notification-store.d.ts +28 -1
  520. package/dist/services/subagents/subagent-notification-store.d.ts.map +1 -1
  521. package/dist/services/subagents/subagent-notification-store.js +11 -0
  522. package/dist/services/subagents/subagent-notification-store.js.map +1 -1
  523. package/dist/services/subagents/tool-policy.d.ts.map +1 -1
  524. package/dist/services/subagents/tool-policy.js +10 -5
  525. package/dist/services/subagents/tool-policy.js.map +1 -1
  526. package/dist/services/subagents/utils.d.ts +2 -0
  527. package/dist/services/subagents/utils.d.ts.map +1 -1
  528. package/dist/services/subagents/utils.js +29 -0
  529. package/dist/services/subagents/utils.js.map +1 -1
  530. package/dist/services/tool-execution-ledger.d.ts.map +1 -1
  531. package/dist/services/tool-execution-ledger.js +5 -1
  532. package/dist/services/tool-execution-ledger.js.map +1 -1
  533. package/dist/tools/agent/ask-user.d.ts.map +1 -1
  534. package/dist/tools/agent/ask-user.js +2 -0
  535. package/dist/tools/agent/ask-user.js.map +1 -1
  536. package/dist/tools/agent/run-subagent.d.ts.map +1 -1
  537. package/dist/tools/agent/run-subagent.js +40 -24
  538. package/dist/tools/agent/run-subagent.js.map +1 -1
  539. package/dist/tools/memory/memory-tools.d.ts.map +1 -1
  540. package/dist/tools/memory/memory-tools.js +322 -59
  541. package/dist/tools/memory/memory-tools.js.map +1 -1
  542. package/dist/tools/session-browser/session-browser-tools.d.ts +4 -0
  543. package/dist/tools/session-browser/session-browser-tools.d.ts.map +1 -0
  544. package/dist/tools/session-browser/session-browser-tools.js +47 -0
  545. package/dist/tools/session-browser/session-browser-tools.js.map +1 -0
  546. package/dist/tools/system/shell.d.ts.map +1 -1
  547. package/dist/tools/system/shell.js +7 -0
  548. package/dist/tools/system/shell.js.map +1 -1
  549. package/dist/tools/types.d.ts +4 -0
  550. package/dist/tools/types.d.ts.map +1 -1
  551. package/dist/tools/types.js.map +1 -1
  552. package/dist/utils/busy-turn-guard.d.ts +17 -0
  553. package/dist/utils/busy-turn-guard.d.ts.map +1 -0
  554. package/dist/utils/busy-turn-guard.js +24 -0
  555. package/dist/utils/busy-turn-guard.js.map +1 -0
  556. package/dist/utils/conversation/conversation-event-handler.d.ts.map +1 -1
  557. package/dist/utils/conversation/conversation-event-handler.js +28 -7
  558. package/dist/utils/conversation/conversation-event-handler.js.map +1 -1
  559. package/dist/utils/output/bounded-json.d.ts +33 -0
  560. package/dist/utils/output/bounded-json.d.ts.map +1 -0
  561. package/dist/utils/output/bounded-json.js +59 -0
  562. package/dist/utils/output/bounded-json.js.map +1 -0
  563. package/dist/utils/output/output-trim.d.ts.map +1 -1
  564. package/dist/utils/output/output-trim.js +7 -7
  565. package/dist/utils/output/output-trim.js.map +1 -1
  566. package/dist/utils/output/text-snippet.d.ts +6 -0
  567. package/dist/utils/output/text-snippet.d.ts.map +1 -0
  568. package/dist/utils/output/text-snippet.js +106 -0
  569. package/dist/utils/output/text-snippet.js.map +1 -0
  570. package/dist/utils/resume-list.d.ts +3 -1
  571. package/dist/utils/resume-list.d.ts.map +1 -1
  572. package/dist/utils/resume-list.js +3 -2
  573. package/dist/utils/resume-list.js.map +1 -1
  574. package/dist/utils/settings-command.d.ts.map +1 -1
  575. package/dist/utils/settings-command.js +15 -0
  576. package/dist/utils/settings-command.js.map +1 -1
  577. package/dist/utils/shell/sandbox/sandbox-policy.d.ts +2 -0
  578. package/dist/utils/shell/sandbox/sandbox-policy.d.ts.map +1 -1
  579. package/dist/utils/shell/sandbox/sandbox-policy.js.map +1 -1
  580. package/dist/utils/shell/sandbox/shell-sandbox-runner.d.ts +1 -0
  581. package/dist/utils/shell/sandbox/shell-sandbox-runner.d.ts.map +1 -1
  582. package/dist/utils/shell/sandbox/shell-sandbox-runner.js +20 -1
  583. package/dist/utils/shell/sandbox/shell-sandbox-runner.js.map +1 -1
  584. package/dist/utils/value-suggestions.d.ts.map +1 -1
  585. package/dist/utils/value-suggestions.js +1 -0
  586. package/dist/utils/value-suggestions.js.map +1 -1
  587. package/package.json +4 -2
@@ -0,0 +1,157 @@
1
+ import crypto from 'node:crypto';
2
+ import fs from 'node:fs';
3
+ import path from 'node:path';
4
+ import { randomUUID } from 'node:crypto';
5
+ export class TrustedClientsError extends Error {
6
+ constructor(message = 'trusted client store is unavailable') {
7
+ super(message);
8
+ this.name = 'TrustedClientsError';
9
+ }
10
+ }
11
+ export class TrustedClientsStore {
12
+ #filePath;
13
+ #file;
14
+ constructor(filePath) {
15
+ if (!path.isAbsolute(filePath) || filePath.includes('\u0000'))
16
+ throw new TrustedClientsError();
17
+ this.#filePath = filePath;
18
+ this.#file = this.#load();
19
+ }
20
+ get filePath() {
21
+ return this.#filePath;
22
+ }
23
+ get size() {
24
+ return Object.keys(this.#file.clients).length;
25
+ }
26
+ entries() {
27
+ return Object.entries(this.#file.clients).map(([kid, client]) => ({
28
+ kid,
29
+ publicKeyPem: client.publicKeyPem,
30
+ fingerprint: client.fingerprint,
31
+ }));
32
+ }
33
+ add(publicKeyPem) {
34
+ const normalized = normalizePublicKey(publicKeyPem);
35
+ const client = {
36
+ publicKeyPem: normalized.publicKeyPem,
37
+ pairedAt: new Date().toISOString(),
38
+ fingerprint: normalized.fingerprint,
39
+ };
40
+ const next = {
41
+ version: 1,
42
+ clients: { ...this.#file.clients, [normalized.fingerprint]: client },
43
+ };
44
+ this.#write(next);
45
+ this.#file = next;
46
+ return { kid: normalized.fingerprint, ...normalized };
47
+ }
48
+ static normalizePublicKey(publicKeyPem) {
49
+ const normalized = normalizePublicKey(publicKeyPem);
50
+ return { kid: normalized.fingerprint, ...normalized };
51
+ }
52
+ #load() {
53
+ let parsed;
54
+ try {
55
+ parsed = JSON.parse(fs.readFileSync(this.#filePath, 'utf8'));
56
+ }
57
+ catch (error) {
58
+ if (error.code === 'ENOENT')
59
+ return { version: 1, clients: {} };
60
+ throw new TrustedClientsError();
61
+ }
62
+ if (!isTrustedClientsFile(parsed))
63
+ throw new TrustedClientsError();
64
+ return parsed;
65
+ }
66
+ #write(file) {
67
+ const directory = path.dirname(this.#filePath);
68
+ fs.mkdirSync(directory, { recursive: true, mode: 0o700 });
69
+ try {
70
+ fs.chmodSync(directory, 0o700);
71
+ }
72
+ catch {
73
+ throw new TrustedClientsError();
74
+ }
75
+ const tempPath = `${this.#filePath}.${process.pid}.${randomUUID()}.tmp`;
76
+ let fd;
77
+ let renamed = false;
78
+ try {
79
+ fd = fs.openSync(tempPath, 'w', 0o600);
80
+ fs.writeFileSync(fd, JSON.stringify(file, null, 2), { encoding: 'utf8' });
81
+ fs.fsyncSync(fd);
82
+ fs.closeSync(fd);
83
+ fd = undefined;
84
+ fs.renameSync(tempPath, this.#filePath);
85
+ renamed = true;
86
+ fs.chmodSync(this.#filePath, 0o600);
87
+ const directoryFd = fs.openSync(directory, 'r');
88
+ try {
89
+ fs.fsyncSync(directoryFd);
90
+ }
91
+ finally {
92
+ fs.closeSync(directoryFd);
93
+ }
94
+ }
95
+ catch {
96
+ throw new TrustedClientsError();
97
+ }
98
+ finally {
99
+ if (fd !== undefined) {
100
+ try {
101
+ fs.closeSync(fd);
102
+ }
103
+ catch {
104
+ // Preserve the original store failure.
105
+ }
106
+ }
107
+ if (!renamed) {
108
+ try {
109
+ fs.unlinkSync(tempPath);
110
+ }
111
+ catch {
112
+ // Best effort; no secret is exposed through the error surface.
113
+ }
114
+ }
115
+ }
116
+ }
117
+ }
118
+ function normalizePublicKey(publicKeyPem) {
119
+ if (typeof publicKeyPem !== 'string' || publicKeyPem.length === 0 || publicKeyPem.length > 16_384)
120
+ throw new TrustedClientsError('public key is invalid');
121
+ if (/PRIVATE KEY/i.test(publicKeyPem))
122
+ throw new TrustedClientsError('public key is invalid');
123
+ let key;
124
+ try {
125
+ key = crypto.createPublicKey(publicKeyPem);
126
+ }
127
+ catch {
128
+ throw new TrustedClientsError('public key is invalid');
129
+ }
130
+ if (key.asymmetricKeyType !== 'rsa')
131
+ throw new TrustedClientsError('public key is invalid');
132
+ const der = key.export({ type: 'spki', format: 'der' });
133
+ const normalized = key.export({ type: 'spki', format: 'pem' }).toString();
134
+ return {
135
+ publicKeyPem: normalized,
136
+ fingerprint: crypto.createHash('sha256').update(der).digest('hex'),
137
+ };
138
+ }
139
+ function isTrustedClientsFile(value) {
140
+ if (!value || typeof value !== 'object' || Array.isArray(value))
141
+ return false;
142
+ const candidate = value;
143
+ if (candidate.version !== 1 || !candidate.clients || typeof candidate.clients !== 'object')
144
+ return false;
145
+ return Object.entries(candidate.clients).every(([kid, client]) => {
146
+ if (!/^[a-f0-9]{64}$/.test(kid) || !client || typeof client !== 'object' || Array.isArray(client))
147
+ return false;
148
+ const record = client;
149
+ return (typeof record.publicKeyPem === 'string' &&
150
+ record.publicKeyPem.length > 0 &&
151
+ record.publicKeyPem.length <= 16_384 &&
152
+ typeof record.pairedAt === 'string' &&
153
+ typeof record.fingerprint === 'string' &&
154
+ record.fingerprint === kid);
155
+ });
156
+ }
157
+ //# sourceMappingURL=trusted-clients.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trusted-clients.js","sourceRoot":"","sources":["../../source/gateway/trusted-clients.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAmBzC,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,OAAO,GAAG,qCAAqC;QACzD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED,MAAM,OAAO,mBAAmB;IACrB,SAAS,CAAS;IAC3B,KAAK,CAAqB;IAE1B,YAAY,QAAgB;QAC1B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,mBAAmB,EAAE,CAAC;QAC/F,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IAChD,CAAC;IAED,OAAO;QACL,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;YAChE,GAAG;YACH,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,WAAW,EAAE,MAAM,CAAC,WAAW;SAChC,CAAC,CAAC,CAAC;IACN,CAAC;IAED,GAAG,CAAC,YAAoB;QACtB,MAAM,UAAU,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;QACpD,MAAM,MAAM,GAAkB;YAC5B,YAAY,EAAE,UAAU,CAAC,YAAY;YACrC,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAClC,WAAW,EAAE,UAAU,CAAC,WAAW;SACpC,CAAC;QACF,MAAM,IAAI,GAAuB;YAC/B,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE;SACrE,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,WAAW,EAAE,GAAG,UAAU,EAAE,CAAC;IACxD,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,YAAoB;QAC5C,MAAM,UAAU,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;QACpD,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,WAAW,EAAE,GAAG,UAAU,EAAE,CAAC;IACxD,CAAC;IAED,KAAK;QACH,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;QAC/D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YAC3F,MAAM,IAAI,mBAAmB,EAAE,CAAC;QAClC,CAAC;QACD,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC;YAAE,MAAM,IAAI,mBAAmB,EAAE,CAAC;QACnE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,IAAwB;QAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/C,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC;YACH,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,mBAAmB,EAAE,CAAC;QAClC,CAAC;QACD,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,IAAI,UAAU,EAAE,MAAM,CAAC;QACxE,IAAI,EAAsB,CAAC;QAC3B,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC;YACH,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YACvC,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1E,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACjB,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACjB,EAAE,GAAG,SAAS,CAAC;YACf,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YACxC,OAAO,GAAG,IAAI,CAAC;YACf,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YACpC,MAAM,WAAW,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YAChD,IAAI,CAAC;gBACH,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAC5B,CAAC;oBAAS,CAAC;gBACT,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,mBAAmB,EAAE,CAAC;QAClC,CAAC;gBAAS,CAAC;YACT,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;gBACrB,IAAI,CAAC;oBACH,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBACnB,CAAC;gBAAC,MAAM,CAAC;oBACP,uCAAuC;gBACzC,CAAC;YACH,CAAC;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,IAAI,CAAC;oBACH,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBAC1B,CAAC;gBAAC,MAAM,CAAC;oBACP,+DAA+D;gBACjE,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAED,SAAS,kBAAkB,CAAC,YAAoB;IAC9C,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,YAAY,CAAC,MAAM,GAAG,MAAM;QAC/F,MAAM,IAAI,mBAAmB,CAAC,uBAAuB,CAAC,CAAC;IACzD,IAAI,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC;QAAE,MAAM,IAAI,mBAAmB,CAAC,uBAAuB,CAAC,CAAC;IAC9F,IAAI,GAAqB,CAAC;IAC1B,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,mBAAmB,CAAC,uBAAuB,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,GAAG,CAAC,iBAAiB,KAAK,KAAK;QAAE,MAAM,IAAI,mBAAmB,CAAC,uBAAuB,CAAC,CAAC;IAC5F,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IACxD,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC1E,OAAO;QACL,YAAY,EAAE,UAAU;QACxB,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;KACnE,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc;IAC1C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9E,MAAM,SAAS,GAAG,KAAgC,CAAC;IACnD,IAAI,SAAS,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,OAAO,SAAS,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACzG,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,OAAkC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE;QAC1F,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,KAAK,CAAC;QAChH,MAAM,MAAM,GAAG,MAAiC,CAAC;QACjD,OAAO,CACL,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ;YACvC,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;YAC9B,MAAM,CAAC,YAAY,CAAC,MAAM,IAAI,MAAM;YACpC,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ;YACnC,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ;YACtC,MAAM,CAAC,WAAW,KAAK,GAAG,CAC3B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { ExecutionContext } from '../services/execution-context.js';
2
- import type { GatewaySessionComposition, ProviderBrokerCapability, SecretFreeWorkerSettings, SessionBinding } from './contracts.js';
2
+ import type { GatewaySessionComposition, ProviderBrokerCapability, SecretFreeWorkerSettings, SessionSettingsSnapshot, SessionBinding } from './contracts.js';
3
3
  export declare class WorkerBoundaryError extends Error {
4
4
  readonly code: 'provider_unavailable' | 'invalid_broker' | 'unsafe_environment' | 'sandbox_unavailable';
5
5
  constructor(code: WorkerBoundaryError['code']);
@@ -12,7 +12,7 @@ export declare function assertProviderBrokerReady(capability: ProviderBrokerCapa
12
12
  export declare function createSessionScopedProviderBroker(base: ProviderBrokerCapability, sessionId: string, options?: {
13
13
  maxRequestsPerTurn?: number;
14
14
  }): ProviderBrokerCapability;
15
- export declare function createSecretFreeWorkerSettings(capability: ProviderBrokerCapability, canonicalRoot: string): SecretFreeWorkerSettings;
15
+ export declare function createSecretFreeWorkerSettings(capability: ProviderBrokerCapability | undefined, canonicalRoot: string, snapshot?: SessionSettingsSnapshot): SecretFreeWorkerSettings;
16
16
  export declare function createSanitizedWorkerEnv(input: {
17
17
  sessionId: string;
18
18
  tmpDir: string;
@@ -22,8 +22,9 @@ export declare function createSanitizedWorkerEnv(input: {
22
22
  export declare function assertExplicitSanitizedEnv(env: Readonly<Record<string, string>>): void;
23
23
  export type GatewaySessionCompositionOptions = {
24
24
  binding: SessionBinding;
25
- providerBroker: ProviderBrokerCapability;
26
- providerProbe: WorkerBoundaryProbe;
25
+ providerBroker?: ProviderBrokerCapability;
26
+ providerProbe?: WorkerBoundaryProbe;
27
+ settingsSnapshot?: SessionSettingsSnapshot;
27
28
  tmpDir: string;
28
29
  env?: Readonly<Record<string, string>>;
29
30
  sandboxAvailable?: boolean;
@@ -32,7 +33,7 @@ export type GatewaySessionCompositionOptions = {
32
33
  executionContext: ExecutionContext;
33
34
  settings: SecretFreeWorkerSettings;
34
35
  env: Readonly<Record<string, string>>;
35
- providerBroker: ProviderBrokerCapability;
36
+ providerBroker?: ProviderBrokerCapability;
36
37
  }) => GatewaySessionComposition['runtime'];
37
38
  };
38
39
  /** Composes the session-owned capabilities without changing process cwd or env. */
@@ -1 +1 @@
1
- {"version":3,"file":"worker-boundary.d.ts","sourceRoot":"","sources":["../../source/gateway/worker-boundary.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,KAAK,EACV,yBAAyB,EACzB,wBAAwB,EACxB,wBAAwB,EACxB,cAAc,EACf,MAAM,gBAAgB,CAAC;AAKxB,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,IAAI,EAAE,sBAAsB,GAAG,gBAAgB,GAAG,oBAAoB,GAAG,qBAAqB,CAAC;IACxG,YAAY,IAAI,EAAE,mBAAmB,CAAC,MAAM,CAAC,EAI5C;CACF;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,wBAAwB,GAAG,SAAS,EAChD,KAAK,EAAE,mBAAmB,GAAG,SAAS,GACrC,wBAAwB,CAU1B;AAED,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,wBAAwB,EAC9B,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;IAAE,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAAO,GAC5C,wBAAwB,CA+C1B;AAED,wBAAgB,8BAA8B,CAC5C,UAAU,EAAE,wBAAwB,EACpC,aAAa,EAAE,MAAM,GACpB,wBAAwB,CAQ1B;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAqBnC;AAED,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,CActF;AAED,MAAM,MAAM,gCAAgC,GAAG;IAC7C,OAAO,EAAE,cAAc,CAAC;IACxB,cAAc,EAAE,wBAAwB,CAAC;IACzC,aAAa,EAAE,mBAAmB,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACvC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE;QACtB,gBAAgB,EAAE,gBAAgB,CAAC;QACnC,QAAQ,EAAE,wBAAwB,CAAC;QACnC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QACtC,cAAc,EAAE,wBAAwB,CAAC;KAC1C,KAAK,yBAAyB,CAAC,SAAS,CAAC,CAAC;CAC5C,CAAC;AAEF,mFAAmF;AACnF,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,gCAAgC,GAAG,yBAAyB,CA4B1G"}
1
+ {"version":3,"file":"worker-boundary.d.ts","sourceRoot":"","sources":["../../source/gateway/worker-boundary.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,KAAK,EACV,yBAAyB,EACzB,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,EACvB,cAAc,EACf,MAAM,gBAAgB,CAAC;AAKxB,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,IAAI,EAAE,sBAAsB,GAAG,gBAAgB,GAAG,oBAAoB,GAAG,qBAAqB,CAAC;IACxG,YAAY,IAAI,EAAE,mBAAmB,CAAC,MAAM,CAAC,EAI5C;CACF;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,wBAAwB,GAAG,SAAS,EAChD,KAAK,EAAE,mBAAmB,GAAG,SAAS,GACrC,wBAAwB,CAU1B;AAED,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,wBAAwB,EAC9B,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;IAAE,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAAO,GAC5C,wBAAwB,CA+C1B;AAED,wBAAgB,8BAA8B,CAC5C,UAAU,EAAE,wBAAwB,GAAG,SAAS,EAChD,aAAa,EAAE,MAAM,EACrB,QAAQ,CAAC,EAAE,uBAAuB,GACjC,wBAAwB,CAiB1B;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAqBnC;AAED,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,CActF;AAED,MAAM,MAAM,gCAAgC,GAAG;IAC7C,OAAO,EAAE,cAAc,CAAC;IACxB,cAAc,CAAC,EAAE,wBAAwB,CAAC;IAC1C,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,gBAAgB,CAAC,EAAE,uBAAuB,CAAC;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACvC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE;QACtB,gBAAgB,EAAE,gBAAgB,CAAC;QACnC,QAAQ,EAAE,wBAAwB,CAAC;QACnC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QACtC,cAAc,CAAC,EAAE,wBAAwB,CAAC;KAC3C,KAAK,yBAAyB,CAAC,SAAS,CAAC,CAAC;CAC5C,CAAC;AAEF,mFAAmF;AACnF,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,gCAAgC,GAAG,yBAAyB,CAoC1G"}
@@ -72,13 +72,23 @@ export function createSessionScopedProviderBroker(base, sessionId, options = {})
72
72
  };
73
73
  return scoped;
74
74
  }
75
- export function createSecretFreeWorkerSettings(capability, canonicalRoot) {
75
+ export function createSecretFreeWorkerSettings(capability, canonicalRoot, snapshot) {
76
+ if (!capability && !snapshot)
77
+ throw new WorkerBoundaryError('provider_unavailable');
76
78
  return Object.freeze({
77
- providerId: capability.providerId,
78
- modelId: capability.modelId,
79
- brokerCapabilityId: capability.capabilityId,
79
+ providerId: snapshot?.providerId ?? capability.providerId,
80
+ modelId: snapshot?.modelId ?? capability.modelId,
81
+ ...(capability ? { brokerCapabilityId: capability.capabilityId } : {}),
80
82
  executionRoot: canonicalRoot,
81
83
  envPolicyVersion: 1,
84
+ ...(snapshot
85
+ ? {
86
+ reasoningEffort: snapshot.reasoningEffort,
87
+ mode: snapshot.mode,
88
+ toolPolicy: snapshot.effectiveToolPolicy,
89
+ ...(snapshot.defaultsRevision === undefined ? {} : { defaultsRevision: snapshot.defaultsRevision }),
90
+ }
91
+ : {}),
82
92
  });
83
93
  }
84
94
  export function createSanitizedWorkerEnv(input) {
@@ -118,11 +128,10 @@ export function assertExplicitSanitizedEnv(env) {
118
128
  export function composeGatewaySession(options) {
119
129
  if (options.sandboxAvailable !== true)
120
130
  throw new WorkerBoundaryError('sandbox_unavailable');
121
- const baseProviderBroker = assertProviderBrokerReady(options.providerBroker, options.providerProbe);
122
- const providerBroker = createSessionScopedProviderBroker(baseProviderBroker, options.binding.sessionId, {
123
- maxRequestsPerTurn: options.maxProviderRequestsPerTurn,
124
- });
125
- const settings = createSecretFreeWorkerSettings(providerBroker, options.binding.canonicalRoot);
131
+ const providerBroker = options.providerBroker
132
+ ? createSessionScopedProviderBroker(assertProviderBrokerReady(options.providerBroker, options.providerProbe), options.binding.sessionId, { maxRequestsPerTurn: options.maxProviderRequestsPerTurn })
133
+ : undefined;
134
+ const settings = createSecretFreeWorkerSettings(providerBroker, options.binding.canonicalRoot, options.settingsSnapshot);
126
135
  const env = options.env ?? createSanitizedWorkerEnv({ sessionId: options.binding.sessionId, tmpDir: options.tmpDir });
127
136
  assertExplicitSanitizedEnv(env);
128
137
  const executionContext = ExecutionContext.pin(options.binding.canonicalRoot);
@@ -134,6 +143,7 @@ export function composeGatewaySession(options) {
134
143
  executionContext,
135
144
  settings,
136
145
  providerBroker,
146
+ ...(options.settingsSnapshot ? { sessionSettingsSnapshot: options.settingsSnapshot } : {}),
137
147
  env,
138
148
  spawnOptions: { cwd: options.binding.canonicalRoot, env, gatewayMode: true },
139
149
  runtime,
@@ -142,7 +152,7 @@ export function composeGatewaySession(options) {
142
152
  return;
143
153
  disposed = true;
144
154
  runtime?.dispose();
145
- providerBroker.revoke?.();
155
+ providerBroker?.revoke?.();
146
156
  },
147
157
  };
148
158
  }
@@ -1 +1 @@
1
- {"version":3,"file":"worker-boundary.js","sourceRoot":"","sources":["../../source/gateway/worker-boundary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker-boundary.js","sourceRoot":"","sources":["../../source/gateway/worker-boundary.ts"],"names":[],"mappings":"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"}
@@ -8,12 +8,17 @@ export declare function loadGatewayManifest(filename: string, expectedSha256?: s
8
8
  export type WorkspaceBoundaryEvidence = {
9
9
  mountedRoot: string;
10
10
  writable: boolean;
11
+ policy?: 'read_only_launcher';
11
12
  };
12
13
  export type WorkspaceBoundaryProbe = (canonicalRoot: string, access: WorkspaceGrant['access']) => WorkspaceBoundaryEvidence | false;
13
14
  export type WorkspaceAdmissionOptions = {
14
15
  allowSsh?: boolean;
15
16
  allowWrite?: boolean;
16
17
  boundaryProbe?: WorkspaceBoundaryProbe;
18
+ /** Dynamic (browser-selected) grants to restore after a restart. */
19
+ initialDynamicGrants?: readonly WorkspaceGrant[];
20
+ /** Durable sink invoked on every dynamic-grant mutation (register/remove). */
21
+ onDynamicGrantChange?: (grants: readonly WorkspaceGrant[]) => void;
17
22
  };
18
23
  export declare class WorkspaceAdmission {
19
24
  #private;
@@ -21,7 +26,12 @@ export declare class WorkspaceAdmission {
21
26
  get manifestVersion(): number;
22
27
  replaceManifest(manifest: GatewayManifest): void;
23
28
  listAliases(ownerUserId: string): WorkspaceAlias[];
29
+ /** Add a server-validated local root without weakening manifest admission. */
30
+ registerDynamicLocalGrant(grant: WorkspaceGrant): number;
31
+ removeDynamicLocalGrant(workspaceId: string): void;
24
32
  admit(claims: GatewayAssertionClaims, requestedManifestVersion?: number): SessionBinding;
33
+ /** Validate and construct a binding without reserving an active session. */
34
+ prepare(claims: GatewayAssertionClaims, requestedManifestVersion?: number): SessionBinding;
25
35
  /**
26
36
  * Reconstruct an immutable binding from the gateway-owned session index after
27
37
  * a daemon restart. The index supplies only opaque identity/version fields;
@@ -34,4 +44,5 @@ export declare class WorkspaceAdmission {
34
44
  remove(sessionId: string): void;
35
45
  static assertPath(binding: SessionBinding, requestedPath: string): string;
36
46
  }
47
+ export declare function validateDynamicGrant(value: unknown): value is WorkspaceGrant;
37
48
  //# sourceMappingURL=workspace-admission.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-admission.d.ts","sourceRoot":"","sources":["../../source/gateway/workspace-admission.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,sBAAsB,EACtB,eAAe,EACf,cAAc,EACd,cAAc,EACd,cAAc,EACf,MAAM,gBAAgB,CAAC;AAExB,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,IAAI,EACT,kBAAkB,GAClB,2BAA2B,GAC3B,qBAAqB,GACrB,0BAA0B,GAC1B,oBAAoB,GACpB,cAAc,GACd,4BAA4B,GAC5B,8BAA8B,GAC9B,uBAAuB,GACvB,mBAAmB,GACnB,wBAAwB,GACxB,4BAA4B,GAC5B,0BAA0B,GAC1B,mBAAmB,GACnB,+BAA+B,CAAC;IAEpC,YAAY,IAAI,EAAE,uBAAuB,CAAC,MAAM,CAAC,EAIhD;CACF;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,CAoBvE;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,eAAe,CAW9F;AAkED,MAAM,MAAM,yBAAyB,GAAG;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,CACnC,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,KAC7B,yBAAyB,GAAG,KAAK,CAAC;AAEvC,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,sBAAsB,CAAC;CACxC,CAAC;AAEF,qBAAa,kBAAkB;;IAO7B,YAAY,QAAQ,EAAE,eAAe,EAAE,OAAO,GAAE,yBAAyB,GAAG,OAAY,EAMvF;IAED,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED,eAAe,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAE/C;IAED,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,EAAE,CAIjD;IAED,KAAK,CAAC,MAAM,EAAE,sBAAsB,EAAE,wBAAwB,SAAyB,GAAG,cAAc,CAsCvG;IAED;;;;OAIG;IACH,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,cAAc,CAgCzG;IAED,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,cAAc,CAKjE;IAED,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,cAAc,CAIlG;IAED,QAAQ,IAAI,KAAK,CAEhB;IAED,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAE9B;IAED,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAexE;CACF"}
1
+ {"version":3,"file":"workspace-admission.d.ts","sourceRoot":"","sources":["../../source/gateway/workspace-admission.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,sBAAsB,EACtB,eAAe,EACf,cAAc,EACd,cAAc,EACd,cAAc,EACf,MAAM,gBAAgB,CAAC;AAExB,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,IAAI,EACT,kBAAkB,GAClB,2BAA2B,GAC3B,qBAAqB,GACrB,0BAA0B,GAC1B,oBAAoB,GACpB,cAAc,GACd,4BAA4B,GAC5B,8BAA8B,GAC9B,uBAAuB,GACvB,mBAAmB,GACnB,wBAAwB,GACxB,4BAA4B,GAC5B,0BAA0B,GAC1B,mBAAmB,GACnB,+BAA+B,CAAC;IAEpC,YAAY,IAAI,EAAE,uBAAuB,CAAC,MAAM,CAAC,EAIhD;CACF;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,CAoBvE;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,eAAe,CAW9F;AAkED,MAAM,MAAM,yBAAyB,GAAG;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,oBAAoB,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,CACnC,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,KAC7B,yBAAyB,GAAG,KAAK,CAAC;AAEvC,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC,oEAAoE;IACpE,oBAAoB,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IACjD,8EAA8E;IAC9E,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,KAAK,IAAI,CAAC;CACpE,CAAC;AAEF,qBAAa,kBAAkB;;IAa7B,YAAY,QAAQ,EAAE,eAAe,EAAE,OAAO,GAAE,yBAAyB,GAAG,OAAY,EAqBvF;IAED,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED,eAAe,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAI/C;IAED,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,EAAE,CAIjD;IAED,8EAA8E;IAC9E,yBAAyB,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAoBvD;IAED,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAKjD;IAMD,KAAK,CAAC,MAAM,EAAE,sBAAsB,EAAE,wBAAwB,SAAuB,GAAG,cAAc,CAOrG;IAED,4EAA4E;IAC5E,OAAO,CAAC,MAAM,EAAE,sBAAsB,EAAE,wBAAwB,SAAuB,GAAG,cAAc,CAkCvG;IAED;;;;OAIG;IACH,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,cAAc,CAiCzG;IAED,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,cAAc,CAKjE;IAED,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,cAAc,CAIlG;IAED,QAAQ,IAAI,KAAK,CAEhB;IAED,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAG9B;IASD,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAexE;CACF;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAe5E"}
@@ -107,45 +107,99 @@ function validateSshTargets(value) {
107
107
  });
108
108
  }
109
109
  export class WorkspaceAdmission {
110
+ /** Live (runtime-backed) session bindings; the one-per-workspace constraint applies here. */
110
111
  #sessions = new Map();
112
+ /** Restored bindings from the persisted index (read-only history, no runtime). */
113
+ #restored = new Map();
114
+ #dynamicGrants = new Map();
115
+ #dynamicRevision = 0;
111
116
  #manifest;
112
117
  #allowSsh;
113
118
  #allowWrite;
114
119
  #boundaryProbe;
120
+ #onDynamicGrantChange;
115
121
  constructor(manifest, options = {}) {
116
122
  const resolved = typeof options === 'boolean' ? { allowSsh: options } : options;
117
123
  this.#allowSsh = resolved.allowSsh === true;
118
124
  this.#allowWrite = resolved.allowWrite === true;
119
125
  this.#boundaryProbe = resolved.boundaryProbe;
126
+ this.#onDynamicGrantChange = resolved.onDynamicGrantChange;
120
127
  this.#manifest = validateGatewayManifest(manifest);
128
+ for (const grant of resolved.initialDynamicGrants ?? []) {
129
+ // Each dynamic grant represents one prior register(), which bumped the
130
+ // revision; restoring them reproduces the manifestVersion the sessions
131
+ // recorded as grantVersion.
132
+ if (!validateDynamicGrant(grant) ||
133
+ this.#dynamicGrants.has(grant.workspaceId) ||
134
+ this.#manifest.grants.some((candidate) => candidate.workspaceId === grant.workspaceId)) {
135
+ throw new WorkspaceAdmissionError('manifest_invalid');
136
+ }
137
+ this.#dynamicGrants.set(grant.workspaceId, Object.freeze({ ...grant }));
138
+ this.#dynamicRevision += 1;
139
+ }
121
140
  }
122
141
  get manifestVersion() {
123
- return this.#manifest.version;
142
+ return this.#manifest.version + this.#dynamicRevision;
124
143
  }
125
144
  replaceManifest(manifest) {
126
145
  this.#manifest = validateGatewayManifest(manifest);
146
+ this.#dynamicGrants.clear();
147
+ this.#dynamicRevision = 0;
127
148
  }
128
149
  listAliases(ownerUserId) {
129
- return this.#manifest.grants
150
+ return [...this.#manifest.grants, ...this.#dynamicGrants.values()]
130
151
  .filter((grant) => grant.enabled && grant.kind === 'local' && grant.ownerUserId === ownerUserId)
131
152
  .map(({ workspaceId, access, label }) => ({ workspaceId, access, label }));
132
153
  }
133
- admit(claims, requestedManifestVersion = this.#manifest.version) {
154
+ /** Add a server-validated local root without weakening manifest admission. */
155
+ registerDynamicLocalGrant(grant) {
156
+ if (grant.kind !== 'local' ||
157
+ !grant.localRoot ||
158
+ !path.isAbsolute(grant.localRoot) ||
159
+ !grant.ownerUserId ||
160
+ !isProvisionedLabel(grant.label) ||
161
+ !/^[A-Za-z0-9_-]{1,256}$/.test(grant.workspaceId) ||
162
+ (grant.access !== 'read' && grant.access !== 'read_write') ||
163
+ grant.enabled !== true ||
164
+ [...this.#manifest.grants, ...this.#dynamicGrants.values()].some((candidate) => candidate.workspaceId === grant.workspaceId)) {
165
+ throw new WorkspaceAdmissionError('manifest_invalid');
166
+ }
167
+ this.#dynamicGrants.set(grant.workspaceId, Object.freeze({ ...grant }));
168
+ this.#dynamicRevision += 1;
169
+ this.#persistDynamicGrants();
170
+ return this.manifestVersion;
171
+ }
172
+ removeDynamicLocalGrant(workspaceId) {
173
+ if (this.#dynamicGrants.delete(workspaceId)) {
174
+ this.#dynamicRevision -= 1;
175
+ this.#persistDynamicGrants();
176
+ }
177
+ }
178
+ #persistDynamicGrants() {
179
+ this.#onDynamicGrantChange?.([...this.#dynamicGrants.values()]);
180
+ }
181
+ admit(claims, requestedManifestVersion = this.manifestVersion) {
182
+ const binding = this.prepare(claims, requestedManifestVersion);
183
+ if ([...this.#sessions.values()].some((session) => session.workspaceId === binding.workspaceId)) {
184
+ throw new WorkspaceAdmissionError('workspace_session_exists');
185
+ }
186
+ this.#sessions.set(binding.sessionId, binding);
187
+ return binding;
188
+ }
189
+ /** Validate and construct a binding without reserving an active session. */
190
+ prepare(claims, requestedManifestVersion = this.manifestVersion) {
134
191
  if (claims.purpose !== 'session_create')
135
192
  throw new WorkspaceAdmissionError('workspace_not_found');
136
- if (requestedManifestVersion !== this.#manifest.version)
193
+ if (requestedManifestVersion !== this.manifestVersion)
137
194
  throw new WorkspaceAdmissionError('manifest_version_mismatch');
138
195
  const workspaceId = claims.workspaceId;
139
196
  if (!workspaceId)
140
197
  throw new WorkspaceAdmissionError('workspace_not_found');
141
- const grant = this.#manifest.grants.find((candidate) => candidate.workspaceId === workspaceId);
198
+ const grant = this.#grantFor(workspaceId);
142
199
  if (!grant)
143
200
  throw new WorkspaceAdmissionError('workspace_not_found');
144
201
  if (grant.ownerUserId !== claims.sub)
145
202
  throw new WorkspaceAdmissionError('workspace_owner_mismatch');
146
- if ([...this.#sessions.values()].some((session) => session.workspaceId === workspaceId)) {
147
- throw new WorkspaceAdmissionError('workspace_session_exists');
148
- }
149
203
  if (!grant.enabled)
150
204
  throw new WorkspaceAdmissionError('workspace_disabled');
151
205
  if (grant.kind === 'ssh') {
@@ -168,11 +222,10 @@ export class WorkspaceAdmission {
168
222
  sessionId: randomUUID(),
169
223
  ownerUserId: claims.sub,
170
224
  workspaceId: grant.workspaceId,
171
- grantVersion: this.#manifest.version,
225
+ grantVersion: this.manifestVersion,
172
226
  canonicalRoot,
173
227
  access: grant.access,
174
228
  };
175
- this.#sessions.set(binding.sessionId, binding);
176
229
  return Object.freeze(binding);
177
230
  }
178
231
  /**
@@ -181,7 +234,7 @@ export class WorkspaceAdmission {
181
234
  * the manifest and boundary probe remain the authority for the root.
182
235
  */
183
236
  restore(sessionId, ownerUserId, workspaceId, grantVersion) {
184
- const current = this.#sessions.get(sessionId);
237
+ const current = this.#sessions.get(sessionId) ?? this.#restored.get(sessionId);
185
238
  if (current) {
186
239
  if (current.ownerUserId !== ownerUserId || current.workspaceId !== workspaceId)
187
240
  throw new WorkspaceAdmissionError('session_owner_mismatch');
@@ -189,9 +242,9 @@ export class WorkspaceAdmission {
189
242
  throw new WorkspaceAdmissionError('manifest_version_mismatch');
190
243
  return current;
191
244
  }
192
- if (grantVersion !== this.#manifest.version)
245
+ if (grantVersion > this.manifestVersion || grantVersion < this.#manifest.version)
193
246
  throw new WorkspaceAdmissionError('manifest_version_mismatch');
194
- const grant = this.#manifest.grants.find((candidate) => candidate.workspaceId === workspaceId);
247
+ const grant = this.#grantFor(workspaceId);
195
248
  if (!grant)
196
249
  throw new WorkspaceAdmissionError('workspace_not_found');
197
250
  if (grant.ownerUserId !== ownerUserId)
@@ -212,15 +265,15 @@ export class WorkspaceAdmission {
212
265
  sessionId,
213
266
  ownerUserId,
214
267
  workspaceId: grant.workspaceId,
215
- grantVersion: this.#manifest.version,
268
+ grantVersion,
216
269
  canonicalRoot,
217
270
  access: grant.access,
218
271
  };
219
- this.#sessions.set(sessionId, binding);
272
+ this.#restored.set(sessionId, binding);
220
273
  return Object.freeze(binding);
221
274
  }
222
275
  getSession(sessionId, ownerUserId) {
223
- const session = this.#sessions.get(sessionId);
276
+ const session = this.#sessions.get(sessionId) ?? this.#restored.get(sessionId);
224
277
  if (!session)
225
278
  throw new WorkspaceAdmissionError('session_not_found');
226
279
  if (session.ownerUserId !== ownerUserId)
@@ -238,6 +291,11 @@ export class WorkspaceAdmission {
238
291
  }
239
292
  remove(sessionId) {
240
293
  this.#sessions.delete(sessionId);
294
+ this.#restored.delete(sessionId);
295
+ }
296
+ #grantFor(workspaceId) {
297
+ return (this.#dynamicGrants.get(workspaceId) ??
298
+ this.#manifest.grants.find((candidate) => candidate.workspaceId === workspaceId));
241
299
  }
242
300
  static assertPath(binding, requestedPath) {
243
301
  if (!requestedPath || requestedPath.includes('\u0000') || path.isAbsolute(requestedPath)) {
@@ -259,6 +317,21 @@ export class WorkspaceAdmission {
259
317
  return resolved;
260
318
  }
261
319
  }
320
+ export function validateDynamicGrant(value) {
321
+ if (!value || typeof value !== 'object' || Array.isArray(value))
322
+ return false;
323
+ const grant = value;
324
+ return (typeof grant.workspaceId === 'string' &&
325
+ /^[A-Za-z0-9_-]{1,256}$/.test(grant.workspaceId) &&
326
+ typeof grant.ownerUserId === 'string' &&
327
+ grant.ownerUserId.length > 0 &&
328
+ isProvisionedLabel(grant.label) &&
329
+ grant.kind === 'local' &&
330
+ typeof grant.localRoot === 'string' &&
331
+ path.isAbsolute(grant.localRoot) &&
332
+ (grant.access === 'read' || grant.access === 'read_write') &&
333
+ grant.enabled === true);
334
+ }
262
335
  function canonicalizeGrantRoot(grant) {
263
336
  if (!grant.localRoot)
264
337
  throw new WorkspaceAdmissionError('workspace_root_unavailable');
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-admission.js","sourceRoot":"","sources":["../../source/gateway/workspace-admission.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace-admission.js","sourceRoot":"","sources":["../../source/gateway/workspace-admission.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { WorkspaceBoundaryProbe } from './workspace-admission.js';
2
+ export type WorkspaceBoundaryProbeFs = {
3
+ realpathSync(path: string): string;
4
+ statSync(path: string): {
5
+ isDirectory(): boolean;
6
+ };
7
+ accessSync(path: string, mode: number): void;
8
+ };
9
+ /**
10
+ * Proves a local workspace using the canonical path and the OS user's access
11
+ * checks. The launcher policy is deliberately part of the probe: a writable
12
+ * filesystem is not a writable gateway grant when --allow-write is absent.
13
+ */
14
+ export declare function createRealWorkspaceBoundaryProbe(options: {
15
+ allowWrite: boolean;
16
+ fs?: WorkspaceBoundaryProbeFs;
17
+ }): WorkspaceBoundaryProbe;
18
+ //# sourceMappingURL=workspace-boundary-probe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-boundary-probe.d.ts","sourceRoot":"","sources":["../../source/gateway/workspace-boundary-probe.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAA6B,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElG,MAAM,MAAM,wBAAwB,GAAG;IACrC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,WAAW,IAAI,OAAO,CAAA;KAAE,CAAC;IACnD,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9C,CAAC;AAIF;;;;GAIG;AACH,wBAAgB,gCAAgC,CAAC,OAAO,EAAE;IACxD,UAAU,EAAE,OAAO,CAAC;IACpB,EAAE,CAAC,EAAE,wBAAwB,CAAC;CAC/B,GAAG,sBAAsB,CAiBzB"}