@nomix-ai/nomix-harness 0.2.4 → 0.2.6

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 (1740) hide show
  1. package/README.md +2 -9
  2. package/dist/assets/web/assets/index-BnapMmQ_.css +1 -0
  3. package/dist/assets/web/assets/index-Dx7Ws_OC.js +96 -0
  4. package/dist/assets/web/assets/langs/{php-D-uCvoST.js → php-DDkx9sim.js} +2 -2
  5. package/dist/{kernel/web-frontend/dist/assets/langs/ruby-DEItuUFs.js → assets/web/assets/langs/ruby-DCxyoPen.js} +2 -2
  6. package/dist/assets/web/assets/{vendor-Cjbwl5VI.js → vendor-D22_Mp1f.js} +2 -2
  7. package/dist/assets/web/favicon.svg +8 -0
  8. package/dist/assets/web/index.html +5 -5
  9. package/dist/bundles/base/cordis.patch.yml +31 -6
  10. package/dist/bundles/web-app/cordis.patch.yml +27 -6
  11. package/dist/cli/bin.js +4 -5
  12. package/dist/cli/builtin-registry.js +44 -4
  13. package/dist/cli/{dump-config-d3ECray2.js → dump-config-BEj2GlJo.js} +1 -1
  14. package/dist/cli/{plugin-Bw9wgrmj.js → plugin-D_gLgCYL.js} +1 -1
  15. package/dist/cli/profile-boot-BSrYtiQI.js +2 -0
  16. package/dist/cli/{profile-boot-DFHdh9Xq.js → profile-boot-CByqUxLM.js} +0 -2
  17. package/dist/cli/profile-boot.d.ts +2 -2
  18. package/dist/cli/runtime.js +0 -2
  19. package/dist/config/agent-presets/code/agent.cordis.yml +4 -3
  20. package/dist/config/agent-presets/cordis/agent.cordis.yml +4 -3
  21. package/dist/config/agent-presets/cordis/skills/editing-cordis-compositions/SKILL.md +13 -2
  22. package/dist/config/agent-presets/minimal/agent.cordis.yml +27 -1
  23. package/dist/config/agent-presets/standard/agent.cordis.yml +4 -3
  24. package/dist/kernel/acp/lib/index.js +1 -1
  25. package/dist/kernel/acp/lib/types/content.d.ts +1 -1
  26. package/dist/kernel/acp/lib/types/index.d.ts +2 -2
  27. package/dist/kernel/acp/lib/types/index.js +1 -1
  28. package/dist/kernel/acp/lib/types/invariant.d.ts +1 -1
  29. package/dist/kernel/acp/package.json +1 -1
  30. package/dist/kernel/agent/lib/index.js +1 -1
  31. package/dist/kernel/agent/lib/types/dispatch.d.ts +1 -1
  32. package/dist/kernel/agent/lib/types/index.d.ts +1 -1
  33. package/dist/kernel/agent/lib/types/index.js +1 -1
  34. package/dist/kernel/agent/lib/types/invariant.d.ts +1 -1
  35. package/dist/kernel/agent/lib/types/model-selection.d.ts +1 -1
  36. package/dist/kernel/agent/lib/types/runtime-types.d.ts +1 -1
  37. package/dist/kernel/agent/package.json +1 -1
  38. package/dist/kernel/agent-default-model/lib/index.js +2 -2
  39. package/dist/kernel/agent-default-model/lib/types/index.d.ts +2 -2
  40. package/dist/kernel/agent-default-model/lib/types/index.js +2 -2
  41. package/dist/kernel/agent-default-model/lib/types/invariant.d.ts +1 -1
  42. package/dist/kernel/agent-default-model/package.json +1 -1
  43. package/dist/kernel/agent-instructions/lib/index.js +1 -1
  44. package/dist/kernel/agent-instructions/lib/types/config.d.ts +1 -1
  45. package/dist/kernel/agent-instructions/lib/types/config.js +1 -1
  46. package/dist/kernel/agent-instructions/lib/types/index.d.ts +1 -1
  47. package/dist/kernel/agent-instructions/lib/types/invariant.d.ts +1 -1
  48. package/dist/kernel/agent-instructions/package.json +1 -1
  49. package/dist/kernel/agent-loop/lib/index.js +35 -12
  50. package/dist/kernel/agent-loop/lib/types/agent.d.ts +1 -1
  51. package/dist/kernel/agent-loop/lib/types/agent.js +26 -6
  52. package/dist/kernel/agent-loop/lib/types/index.d.ts +2 -2
  53. package/dist/kernel/agent-loop/lib/types/index.js +2 -2
  54. package/dist/kernel/agent-loop/lib/types/invariant.d.ts +1 -1
  55. package/dist/kernel/agent-loop/lib/types/runtime-context.d.ts +1 -1
  56. package/dist/kernel/agent-loop/lib/types/tool-calls.d.ts +1 -1
  57. package/dist/kernel/agent-loop/package.json +1 -1
  58. package/dist/kernel/agent-presets/lib/index.js +3 -3
  59. package/dist/kernel/agent-presets/lib/invariant.js +3 -3
  60. package/dist/kernel/agent-presets/lib/types/discovery.js +1 -1
  61. package/dist/kernel/agent-presets/lib/types/index.d.ts +2 -2
  62. package/dist/kernel/agent-presets/lib/types/index.js +2 -2
  63. package/dist/kernel/agent-presets/lib/types/invariant.d.ts +1 -1
  64. package/dist/kernel/agent-presets/lib/types/mount.d.ts +2 -2
  65. package/dist/kernel/agent-presets/lib/types/mount.js +2 -2
  66. package/dist/kernel/agent-presets/package.json +1 -1
  67. package/dist/kernel/agent-tool-presentation/lib/index.js +1 -1
  68. package/dist/kernel/agent-tool-presentation/lib/types/index.d.ts +2 -2
  69. package/dist/kernel/agent-tool-presentation/lib/types/index.js +1 -1
  70. package/dist/kernel/agent-tool-presentation/lib/types/invariant.d.ts +1 -1
  71. package/dist/kernel/agent-tool-presentation/package.json +1 -1
  72. package/dist/kernel/anonymous-user-id/lib/types/invariant.d.ts +1 -1
  73. package/dist/kernel/anonymous-user-id/package.json +1 -1
  74. package/dist/kernel/api-gateway/lib/client.js +84 -55
  75. package/dist/kernel/api-gateway/lib/index.js +1 -1
  76. package/dist/kernel/api-gateway/lib/types/client/index.d.ts +1 -1
  77. package/dist/kernel/api-gateway/lib/types/client/index.js +94 -62
  78. package/dist/kernel/api-gateway/lib/types/index.d.ts +1 -1
  79. package/dist/kernel/api-gateway/lib/types/index.js +1 -1
  80. package/dist/kernel/api-gateway/lib/types/invariant.d.ts +1 -1
  81. package/dist/kernel/api-gateway/package.json +1 -1
  82. package/dist/kernel/api-remotes/lib/client.js +166 -27
  83. package/dist/kernel/api-remotes/lib/index.js +1 -1
  84. package/dist/kernel/api-remotes/lib/types/agent-lookup.d.ts +1 -1
  85. package/dist/kernel/api-remotes/lib/types/client/index.d.ts +5 -1
  86. package/dist/kernel/api-remotes/lib/types/client/index.js +4 -1
  87. package/dist/kernel/api-remotes/lib/types/invariant.d.ts +1 -1
  88. package/dist/kernel/api-remotes/lib/types/remote-events.d.ts +1 -1
  89. package/dist/kernel/api-remotes/lib/types/remote-events.js +1 -1
  90. package/dist/kernel/api-remotes/package.json +11 -7
  91. package/dist/kernel/app-boot/lib/index.js +23 -45
  92. package/dist/kernel/app-boot/lib/types/index.d.ts +3 -4
  93. package/dist/kernel/app-boot/lib/types/index.js +6 -7
  94. package/dist/kernel/app-boot/lib/types/invariant.d.ts +1 -1
  95. package/dist/kernel/app-boot/lib/types/profile.d.ts +17 -14
  96. package/dist/kernel/app-boot/lib/types/profile.js +17 -27
  97. package/dist/kernel/app-boot/package.json +1 -1
  98. package/dist/kernel/atomic-write/lib/index.js +36 -16
  99. package/dist/kernel/atomic-write/lib/types/index.d.ts +21 -5
  100. package/dist/kernel/atomic-write/lib/types/index.js +40 -16
  101. package/dist/kernel/atomic-write/lib/types/invariant.d.ts +1 -1
  102. package/dist/kernel/atomic-write/package.json +1 -1
  103. package/dist/kernel/attachment/lib/index.js +63 -4
  104. package/dist/kernel/attachment/lib/types/admission.d.ts +15 -0
  105. package/dist/kernel/attachment/lib/types/admission.js +33 -0
  106. package/dist/kernel/attachment/lib/types/brand.d.ts +8 -0
  107. package/dist/kernel/attachment/lib/types/brand.js +8 -0
  108. package/dist/kernel/attachment/lib/types/error.d.ts +2 -2
  109. package/dist/kernel/attachment/lib/types/error.js +1 -0
  110. package/dist/kernel/attachment/lib/types/index.d.ts +24 -6
  111. package/dist/kernel/attachment/lib/types/index.js +25 -3
  112. package/dist/kernel/attachment/lib/types/invariant.d.ts +1 -1
  113. package/dist/kernel/attachment/lib/types/types.d.ts +47 -2
  114. package/dist/kernel/attachment/package.json +3 -2
  115. package/dist/kernel/attachment-local/lib/index.js +641 -49
  116. package/dist/kernel/attachment-local/lib/types/compression-limiter.d.ts +18 -0
  117. package/dist/kernel/attachment-local/lib/types/compression-limiter.js +43 -0
  118. package/dist/kernel/attachment-local/lib/types/encoding.d.ts +23 -0
  119. package/dist/kernel/attachment-local/lib/types/encoding.js +33 -0
  120. package/dist/kernel/attachment-local/lib/types/image.d.ts +31 -2
  121. package/dist/kernel/attachment-local/lib/types/image.js +43 -4
  122. package/dist/kernel/attachment-local/lib/types/index.d.ts +47 -12
  123. package/dist/kernel/attachment-local/lib/types/index.js +141 -11
  124. package/dist/kernel/attachment-local/lib/types/invariant.d.ts +1 -1
  125. package/dist/kernel/attachment-local/lib/types/normalization.d.ts +44 -0
  126. package/dist/kernel/attachment-local/lib/types/normalization.js +148 -0
  127. package/dist/kernel/attachment-local/lib/types/request-image.d.ts +35 -0
  128. package/dist/kernel/attachment-local/lib/types/request-image.js +208 -0
  129. package/dist/kernel/attachment-local/lib/types/store.d.ts +36 -9
  130. package/dist/kernel/attachment-local/lib/types/store.js +60 -24
  131. package/dist/kernel/attachment-local/package.json +1 -1
  132. package/dist/kernel/authorization/lib/index.js +248 -0
  133. package/dist/kernel/authorization/lib/invariant.js +36 -0
  134. package/dist/kernel/authorization/lib/types/index.d.ts +223 -0
  135. package/dist/kernel/authorization/lib/types/index.js +299 -0
  136. package/dist/kernel/authorization/lib/types/invariant.d.ts +16 -0
  137. package/dist/kernel/authorization/lib/types/invariant.js +38 -0
  138. package/dist/kernel/authorization/lib/types/types.d.ts +83 -0
  139. package/dist/kernel/authorization/lib/types/types.js +8 -0
  140. package/dist/kernel/{client-web-react → authorization}/package.json +19 -16
  141. package/dist/kernel/base/cordis.patch.yml +31 -6
  142. package/dist/kernel/base/lib/types/invariant.d.ts +1 -1
  143. package/dist/kernel/base/package.json +3 -1
  144. package/dist/kernel/bash-local/lib/index.js +1 -1
  145. package/dist/kernel/bash-local/lib/types/index.d.ts +2 -2
  146. package/dist/kernel/bash-local/lib/types/index.js +1 -1
  147. package/dist/kernel/bash-local/lib/types/invariant.d.ts +1 -1
  148. package/dist/kernel/bash-local/package.json +1 -1
  149. package/dist/kernel/bash-sandbox/lib/types/index.d.ts +1 -1
  150. package/dist/kernel/bash-sandbox/lib/types/invariant.d.ts +1 -1
  151. package/dist/kernel/bash-sandbox/package.json +1 -1
  152. package/dist/kernel/brand/lib/types/invariant.d.ts +1 -1
  153. package/dist/kernel/brand/package.json +1 -1
  154. package/dist/kernel/client-connection/lib/client.js +148 -28
  155. package/dist/kernel/client-connection/lib/index.js +6 -6
  156. package/dist/kernel/client-connection/lib/types/client/fixture.js +112 -20
  157. package/dist/kernel/client-connection/lib/types/client/index.d.ts +22 -2
  158. package/dist/kernel/client-connection/lib/types/client/index.js +3 -2
  159. package/dist/kernel/client-connection/lib/types/client/rpc.d.ts +4 -1
  160. package/dist/kernel/client-connection/lib/types/client/rpc.js +4 -2
  161. package/dist/kernel/client-connection/lib/types/http-bridge.d.ts +2 -2
  162. package/dist/kernel/client-connection/lib/types/http-bridge.js +3 -3
  163. package/dist/kernel/client-connection/lib/types/index.d.ts +3 -3
  164. package/dist/kernel/client-connection/lib/types/index.js +1 -1
  165. package/dist/kernel/client-connection/lib/types/invariant.d.ts +1 -1
  166. package/dist/kernel/client-connection/lib/types/rpc-host.d.ts +1 -1
  167. package/dist/kernel/client-connection/lib/types/rpc-host.js +1 -1
  168. package/dist/kernel/client-connection/package.json +15 -9
  169. package/dist/kernel/client-hmr/lib/index.js +1 -1
  170. package/dist/kernel/client-hmr/lib/types/client/index.d.ts +1 -1
  171. package/dist/kernel/client-hmr/lib/types/index.d.ts +2 -2
  172. package/dist/kernel/client-hmr/lib/types/index.js +1 -1
  173. package/dist/kernel/client-hmr/lib/types/invariant.d.ts +1 -1
  174. package/dist/kernel/client-hmr/package.json +1 -1
  175. package/dist/kernel/client-locale/lib/client.js +49 -10
  176. package/dist/kernel/client-locale/lib/index.js +1 -1
  177. package/dist/kernel/client-locale/lib/types/client/index.d.ts +20 -4
  178. package/dist/kernel/client-locale/lib/types/client/index.js +48 -7
  179. package/dist/kernel/client-locale/lib/types/index.d.ts +1 -1
  180. package/dist/kernel/client-locale/lib/types/invariant.d.ts +1 -1
  181. package/dist/kernel/client-locale/lib/types/locale-settings.d.ts +1 -1
  182. package/dist/kernel/client-locale/lib/types/locale-settings.js +1 -1
  183. package/dist/kernel/client-locale/package.json +6 -6
  184. package/dist/kernel/client-modules/lib/client.js +188 -123
  185. package/dist/kernel/client-modules/lib/index.js +178 -32
  186. package/dist/kernel/client-modules/lib/types/client/index.d.ts +20 -9
  187. package/dist/kernel/client-modules/lib/types/client/index.js +25 -8
  188. package/dist/kernel/client-modules/lib/types/client/manifest.d.ts +90 -41
  189. package/dist/kernel/client-modules/lib/types/client/manifest.js +45 -12
  190. package/dist/kernel/client-modules/lib/types/client/system.d.ts +15 -17
  191. package/dist/kernel/client-modules/lib/types/client/system.js +85 -56
  192. package/dist/kernel/client-modules/lib/types/index.d.ts +30 -14
  193. package/dist/kernel/client-modules/lib/types/index.js +129 -35
  194. package/dist/kernel/client-modules/lib/types/invariant.d.ts +1 -1
  195. package/dist/kernel/client-modules/package.json +4 -2
  196. package/dist/kernel/client-runtime/lib/client.js +43 -8
  197. package/dist/kernel/client-runtime/lib/types/client/agents/scope.d.ts +1 -1
  198. package/dist/kernel/client-runtime/lib/types/client/agents/scope.js +1 -1
  199. package/dist/kernel/client-runtime/lib/types/client/contract/session.d.ts +1 -1
  200. package/dist/kernel/client-runtime/lib/types/client/contract/sessions.d.ts +1 -1
  201. package/dist/kernel/client-runtime/lib/types/client/contract/store.d.ts +1 -1
  202. package/dist/kernel/client-runtime/lib/types/client/contract/store.js +2 -2
  203. package/dist/kernel/client-runtime/lib/types/client/conversation/definition-registry.d.ts +1 -1
  204. package/dist/kernel/client-runtime/lib/types/client/conversation/definition-registry.js +1 -1
  205. package/dist/kernel/client-runtime/lib/types/client/conversation/event-registry.d.ts +1 -1
  206. package/dist/kernel/client-runtime/lib/types/client/conversation/view-registry.d.ts +1 -1
  207. package/dist/kernel/client-runtime/lib/types/client/index.d.ts +3 -3
  208. package/dist/kernel/client-runtime/lib/types/client/index.js +3 -3
  209. package/dist/kernel/client-runtime/lib/types/client/sessions/context-provenance.d.ts +8 -0
  210. package/dist/kernel/client-runtime/lib/types/client/sessions/context-provenance.js +13 -0
  211. package/dist/kernel/client-runtime/lib/types/client/sessions/conversation.d.ts +11 -7
  212. package/dist/kernel/client-runtime/lib/types/client/sessions/projection-store.d.ts +1 -1
  213. package/dist/kernel/client-runtime/lib/types/client/sessions/remotes.d.ts +1 -1
  214. package/dist/kernel/client-runtime/lib/types/client/sessions/service.d.ts +1 -1
  215. package/dist/kernel/client-runtime/lib/types/client/sessions/session.d.ts +2 -2
  216. package/dist/kernel/client-runtime/lib/types/client/sessions/session.js +4 -4
  217. package/dist/kernel/client-runtime/lib/types/client/slots.d.ts +3 -3
  218. package/dist/kernel/client-runtime/lib/types/client/slots.js +2 -2
  219. package/dist/kernel/client-runtime/lib/types/client/workspaces/path.d.ts +9 -0
  220. package/dist/kernel/client-runtime/lib/types/client/workspaces/path.js +27 -1
  221. package/dist/kernel/client-runtime/lib/types/client/workspaces/service.d.ts +1 -1
  222. package/dist/kernel/client-runtime/lib/types/invariant.d.ts +1 -1
  223. package/dist/kernel/client-runtime/package.json +25 -14
  224. package/dist/kernel/client-ui-agent-preset/lib/client.js +58 -58
  225. package/dist/kernel/client-ui-agent-preset/lib/types/client/index.js +2 -2
  226. package/dist/kernel/client-ui-agent-preset/lib/types/client/settings-store.d.ts +7 -1
  227. package/dist/kernel/client-ui-agent-preset/lib/types/client/settings-store.js +21 -20
  228. package/dist/kernel/client-ui-agent-preset/lib/types/invariant.d.ts +1 -1
  229. package/dist/kernel/client-ui-agent-preset/package.json +2 -7
  230. package/dist/kernel/client-ui-attachment/lib/client.js +782 -0
  231. package/dist/kernel/client-ui-attachment/lib/index.js +5 -505
  232. package/dist/kernel/client-ui-attachment/lib/invariant.js +2 -3
  233. package/dist/kernel/client-ui-attachment/lib/types/client/ComposerAttachments.d.ts +4 -0
  234. package/dist/kernel/client-ui-attachment/lib/types/client/ComposerAttachments.js +85 -0
  235. package/dist/kernel/client-ui-attachment/lib/types/client/MessageImages.d.ts +4 -0
  236. package/dist/kernel/client-ui-attachment/lib/types/client/MessageImages.js +8 -0
  237. package/dist/kernel/client-ui-attachment/lib/types/client/index.d.ts +7 -0
  238. package/dist/kernel/client-ui-attachment/lib/types/client/index.js +16 -0
  239. package/dist/kernel/client-ui-attachment/lib/types/client/labels.d.ts +35 -0
  240. package/dist/kernel/client-ui-attachment/lib/types/client/labels.js +52 -0
  241. package/dist/kernel/client-ui-attachment/lib/types/index.d.ts +3 -15
  242. package/dist/kernel/client-ui-attachment/lib/types/index.js +3 -11
  243. package/dist/kernel/client-ui-attachment/lib/types/invariant.d.ts +1 -1
  244. package/dist/kernel/client-ui-attachment/lib/types/invariant.js +2 -3
  245. package/dist/kernel/client-ui-attachment/package.json +32 -9
  246. package/dist/kernel/client-ui-brand-official/lib/client.js +50 -0
  247. package/dist/kernel/client-ui-brand-official/lib/index.js +9 -0
  248. package/dist/kernel/{client-web-react → client-ui-brand-official}/lib/invariant.js +6 -8
  249. package/dist/kernel/client-ui-brand-official/lib/types/client/Brand.d.ts +16 -0
  250. package/dist/kernel/client-ui-brand-official/lib/types/client/Brand.js +18 -0
  251. package/dist/kernel/client-ui-brand-official/lib/types/client/index.d.ts +10 -0
  252. package/dist/kernel/client-ui-brand-official/lib/types/client/index.js +17 -0
  253. package/dist/kernel/client-ui-brand-official/lib/types/index.d.ts +7 -0
  254. package/dist/kernel/client-ui-brand-official/lib/types/index.js +7 -0
  255. package/dist/kernel/client-ui-brand-official/lib/types/invariant.d.ts +16 -0
  256. package/dist/kernel/{client-web-react → client-ui-brand-official}/lib/types/invariant.js +6 -8
  257. package/dist/kernel/client-ui-brand-official/package.json +72 -0
  258. package/dist/kernel/client-ui-commands/lib/client.js +46 -17
  259. package/dist/kernel/client-ui-commands/lib/types/client/locales.d.ts +2 -0
  260. package/dist/kernel/client-ui-commands/lib/types/client/locales.js +2 -0
  261. package/dist/kernel/client-ui-commands/lib/types/client/service.d.ts +13 -3
  262. package/dist/kernel/client-ui-commands/lib/types/client/service.js +40 -8
  263. package/dist/kernel/client-ui-commands/lib/types/invariant.d.ts +1 -1
  264. package/dist/kernel/client-ui-commands/package.json +2 -5
  265. package/dist/kernel/client-ui-conversation/lib/client.js +952 -534
  266. package/dist/kernel/client-ui-conversation/lib/index.js +1 -1
  267. package/dist/kernel/client-ui-conversation/lib/types/client/apply.d.ts +1 -1
  268. package/dist/kernel/client-ui-conversation/lib/types/client/apply.js +6 -4
  269. package/dist/kernel/client-ui-conversation/lib/types/client/chat/AssistantMarkdown.d.ts +4 -5
  270. package/dist/kernel/client-ui-conversation/lib/types/client/chat/AssistantMarkdown.js +6 -6
  271. package/dist/kernel/client-ui-conversation/lib/types/client/chat/AssistantNodeView.d.ts +1 -1
  272. package/dist/kernel/client-ui-conversation/lib/types/client/chat/AssistantNodeView.js +2 -2
  273. package/dist/kernel/client-ui-conversation/lib/types/client/chat/ChatNodeSeat.d.ts +1 -1
  274. package/dist/kernel/client-ui-conversation/lib/types/client/chat/ChatNodeSeat.js +5 -3
  275. package/dist/kernel/client-ui-conversation/lib/types/client/chat/ChatView.js +53 -10
  276. package/dist/kernel/client-ui-conversation/lib/types/client/chat/ContextInjectionRow.js +4 -1
  277. package/dist/kernel/client-ui-conversation/lib/types/client/chat/MessageItem.d.ts +4 -5
  278. package/dist/kernel/client-ui-conversation/lib/types/client/chat/MessageItem.js +46 -16
  279. package/dist/kernel/client-ui-conversation/lib/types/client/chat/StatsLine.d.ts +5 -3
  280. package/dist/kernel/client-ui-conversation/lib/types/client/chat/StatsLine.js +54 -5
  281. package/dist/kernel/client-ui-conversation/lib/types/client/chat/register-node-renderers.d.ts +1 -1
  282. package/dist/kernel/client-ui-conversation/lib/types/client/contract/slots.d.ts +90 -8
  283. package/dist/kernel/client-ui-conversation/lib/types/client/conversation-nodes/assistant.d.ts +1 -1
  284. package/dist/kernel/client-ui-conversation/lib/types/client/conversation-nodes/assistant.js +1 -0
  285. package/dist/kernel/client-ui-conversation/lib/types/client/conversation-nodes/chat-snapshot-builder.d.ts +2 -1
  286. package/dist/kernel/client-ui-conversation/lib/types/client/conversation-nodes/chat-snapshot-builder.js +95 -6
  287. package/dist/kernel/client-ui-conversation/lib/types/client/conversation-nodes/command.d.ts +1 -1
  288. package/dist/kernel/client-ui-conversation/lib/types/client/conversation-nodes/compaction.d.ts +1 -1
  289. package/dist/kernel/client-ui-conversation/lib/types/client/conversation-nodes/fallback.d.ts +1 -1
  290. package/dist/kernel/client-ui-conversation/lib/types/client/conversation-nodes/inbox.d.ts +1 -1
  291. package/dist/kernel/client-ui-conversation/lib/types/client/conversation-nodes/message.d.ts +12 -4
  292. package/dist/kernel/client-ui-conversation/lib/types/client/conversation-nodes/register.d.ts +1 -1
  293. package/dist/kernel/client-ui-conversation/lib/types/client/conversation-nodes/retry.d.ts +1 -1
  294. package/dist/kernel/client-ui-conversation/lib/types/client/conversation-nodes/tool.d.ts +1 -1
  295. package/dist/kernel/client-ui-conversation/lib/types/client/conversation-nodes/turn-error.d.ts +7 -4
  296. package/dist/kernel/client-ui-conversation/lib/types/client/conversation-nodes/turn-error.js +10 -26
  297. package/dist/kernel/client-ui-conversation/lib/types/client/conversation-nodes/turn-max-tokens.d.ts +1 -1
  298. package/dist/kernel/client-ui-conversation/lib/types/client/conversation-nodes/turn-tail.d.ts +1 -1
  299. package/dist/kernel/client-ui-conversation/lib/types/client/image-labels.d.ts +1 -33
  300. package/dist/kernel/client-ui-conversation/lib/types/client/image-labels.js +5 -54
  301. package/dist/kernel/client-ui-conversation/lib/types/client/index.d.ts +1 -1
  302. package/dist/kernel/client-ui-conversation/lib/types/client/input/contract.d.ts +17 -14
  303. package/dist/kernel/client-ui-conversation/lib/types/client/input/decorations.d.ts +13 -5
  304. package/dist/kernel/client-ui-conversation/lib/types/client/input/decorations.js +26 -10
  305. package/dist/kernel/client-ui-conversation/lib/types/client/input/facade.d.ts +34 -14
  306. package/dist/kernel/client-ui-conversation/lib/types/client/input/facade.js +116 -34
  307. package/dist/kernel/client-ui-conversation/lib/types/client/input/hub.d.ts +1 -1
  308. package/dist/kernel/client-ui-conversation/lib/types/client/input/hub.js +21 -19
  309. package/dist/kernel/client-ui-conversation/lib/types/client/input/machine.d.ts +35 -14
  310. package/dist/kernel/client-ui-conversation/lib/types/client/input/machine.js +71 -34
  311. package/dist/kernel/client-ui-conversation/lib/types/client/locales.d.ts +16 -0
  312. package/dist/kernel/client-ui-conversation/lib/types/client/locales.js +16 -0
  313. package/dist/kernel/client-ui-conversation/lib/types/client/queue/QueueDock.d.ts +1 -1
  314. package/dist/kernel/client-ui-conversation/lib/types/client/reference/ReferenceIcon.d.ts +16 -0
  315. package/dist/kernel/client-ui-conversation/lib/types/client/reference/ReferenceIcon.js +16 -0
  316. package/dist/kernel/client-ui-conversation/lib/types/client/service.d.ts +16 -3
  317. package/dist/kernel/client-ui-conversation/lib/types/client/service.js +27 -7
  318. package/dist/kernel/client-ui-conversation/lib/types/client/skeleton/ConversationRoot.js +1 -1
  319. package/dist/kernel/client-ui-conversation/lib/types/client/skeleton/ConversationSession.js +18 -3
  320. package/dist/kernel/client-ui-conversation/lib/types/client/skeleton/EmptyHero.d.ts +3 -1
  321. package/dist/kernel/client-ui-conversation/lib/types/client/skeleton/EmptyHero.js +4 -2
  322. package/dist/kernel/client-ui-conversation/lib/types/client/skeleton/InputBar.js +141 -126
  323. package/dist/kernel/client-ui-conversation/lib/types/client/skeleton/TodoPanel.d.ts +1 -1
  324. package/dist/kernel/client-ui-conversation/lib/types/index.d.ts +1 -1
  325. package/dist/kernel/client-ui-conversation/lib/types/invariant.d.ts +1 -1
  326. package/dist/kernel/client-ui-conversation/lib/types/submission-settings.d.ts +1 -1
  327. package/dist/kernel/client-ui-conversation/lib/types/submission-settings.js +1 -1
  328. package/dist/kernel/client-ui-conversation/package.json +9 -8
  329. package/dist/kernel/client-ui-cordis/lib/client.js +47 -47
  330. package/dist/kernel/client-ui-cordis/lib/types/invariant.d.ts +1 -1
  331. package/dist/kernel/client-ui-cordis/package.json +2 -5
  332. package/dist/kernel/client-ui-deliverables/lib/client.js +5 -5
  333. package/dist/kernel/client-ui-deliverables/lib/types/index.d.ts +1 -1
  334. package/dist/kernel/client-ui-deliverables/lib/types/invariant.d.ts +1 -1
  335. package/dist/kernel/client-ui-deliverables/package.json +4 -6
  336. package/dist/kernel/client-ui-directory-picker-browse/lib/client.js +29 -29
  337. package/dist/kernel/client-ui-directory-picker-browse/lib/types/invariant.d.ts +1 -1
  338. package/dist/kernel/client-ui-directory-picker-browse/package.json +2 -5
  339. package/dist/kernel/client-ui-directory-picker-native/lib/types/invariant.d.ts +1 -1
  340. package/dist/kernel/client-ui-directory-picker-native/package.json +2 -5
  341. package/dist/kernel/client-ui-goal/lib/client.js +9 -9
  342. package/dist/kernel/client-ui-goal/lib/types/invariant.d.ts +1 -1
  343. package/dist/kernel/client-ui-goal/package.json +6 -5
  344. package/dist/kernel/client-ui-input-trigger/lib/client.js +83 -27
  345. package/dist/kernel/client-ui-input-trigger/lib/types/client/MenuView.js +13 -9
  346. package/dist/kernel/client-ui-input-trigger/lib/types/client/controller.d.ts +5 -3
  347. package/dist/kernel/client-ui-input-trigger/lib/types/client/controller.js +19 -7
  348. package/dist/kernel/client-ui-input-trigger/lib/types/client/index.d.ts +1 -1
  349. package/dist/kernel/client-ui-input-trigger/lib/types/client/service.d.ts +2 -2
  350. package/dist/kernel/client-ui-input-trigger/lib/types/client/service.js +1 -1
  351. package/dist/kernel/client-ui-input-trigger/lib/types/core/contract.d.ts +7 -2
  352. package/dist/kernel/client-ui-input-trigger/lib/types/core/detect.d.ts +4 -4
  353. package/dist/kernel/client-ui-input-trigger/lib/types/core/detect.js +24 -6
  354. package/dist/kernel/client-ui-input-trigger/lib/types/core/menu.d.ts +15 -2
  355. package/dist/kernel/client-ui-input-trigger/lib/types/core/menu.js +13 -4
  356. package/dist/kernel/client-ui-input-trigger/lib/types/invariant.d.ts +1 -1
  357. package/dist/kernel/client-ui-input-trigger/lib/types/types.d.ts +52 -8
  358. package/dist/kernel/client-ui-input-trigger/package.json +4 -5
  359. package/dist/kernel/client-ui-jobs/lib/client.js +8 -8
  360. package/dist/kernel/client-ui-jobs/lib/types/invariant.d.ts +1 -1
  361. package/dist/kernel/client-ui-jobs/package.json +3 -7
  362. package/dist/kernel/client-ui-layout/lib/client.js +2 -2
  363. package/dist/kernel/client-ui-layout/lib/types/invariant.d.ts +1 -1
  364. package/dist/kernel/client-ui-layout/package.json +2 -4
  365. package/dist/kernel/client-ui-message-feedback/lib/client.js +174 -58
  366. package/dist/kernel/client-ui-message-feedback/lib/types/client/MessageFeedbackActions.d.ts +9 -3
  367. package/dist/kernel/client-ui-message-feedback/lib/types/client/MessageFeedbackActions.js +164 -25
  368. package/dist/kernel/client-ui-message-feedback/lib/types/client/locales.d.ts +2 -0
  369. package/dist/kernel/client-ui-message-feedback/lib/types/client/locales.js +2 -0
  370. package/dist/kernel/client-ui-message-feedback/lib/types/invariant.d.ts +1 -1
  371. package/dist/kernel/client-ui-message-feedback/package.json +3 -5
  372. package/dist/kernel/client-ui-model-selection/lib/client.js +19 -19
  373. package/dist/kernel/client-ui-model-selection/lib/types/client/service.d.ts +2 -2
  374. package/dist/kernel/client-ui-model-selection/lib/types/client/service.js +1 -1
  375. package/dist/kernel/client-ui-model-selection/lib/types/invariant.d.ts +1 -1
  376. package/dist/kernel/client-ui-model-selection/package.json +7 -9
  377. package/dist/kernel/client-ui-permission-presets/lib/client.js +98 -84
  378. package/dist/kernel/client-ui-permission-presets/lib/types/client/index.js +6 -19
  379. package/dist/kernel/client-ui-permission-presets/lib/types/client/settings-store.d.ts +27 -18
  380. package/dist/kernel/client-ui-permission-presets/lib/types/client/settings-store.js +95 -68
  381. package/dist/kernel/client-ui-permission-presets/lib/types/invariant.d.ts +1 -1
  382. package/dist/kernel/client-ui-permission-presets/package.json +2 -8
  383. package/dist/kernel/client-ui-plan/lib/client.js +3 -3
  384. package/dist/kernel/client-ui-plan/lib/types/client/index.js +1 -1
  385. package/dist/kernel/client-ui-plan/lib/types/invariant.d.ts +1 -1
  386. package/dist/kernel/client-ui-plan/package.json +2 -6
  387. package/dist/kernel/client-ui-primitives/lib/Button.module.css +79 -0
  388. package/dist/kernel/client-ui-primitives/lib/ConnectionBanner.module.css +13 -0
  389. package/dist/kernel/client-ui-primitives/lib/DiffBlock.module.css +107 -0
  390. package/dist/kernel/client-ui-primitives/lib/DisclosureRow.module.css +69 -0
  391. package/dist/kernel/client-ui-primitives/lib/HoverCard.module.css +54 -0
  392. package/dist/kernel/client-ui-primitives/lib/Input.module.css +38 -0
  393. package/dist/kernel/client-ui-primitives/lib/JsonTree.module.css +222 -0
  394. package/dist/kernel/client-ui-primitives/lib/Menu.module.css +242 -0
  395. package/dist/kernel/client-ui-primitives/lib/Modal.module.css +103 -0
  396. package/dist/kernel/client-ui-primitives/lib/OnboardingSurface.module.css +29 -0
  397. package/dist/kernel/client-ui-primitives/lib/Pill.module.css +27 -0
  398. package/dist/kernel/client-ui-primitives/lib/ReadBlock.module.css +117 -0
  399. package/dist/kernel/client-ui-primitives/lib/RiskConfirmation.module.css +73 -0
  400. package/dist/kernel/client-ui-primitives/lib/SearchBlock.module.css +120 -0
  401. package/dist/kernel/client-ui-primitives/lib/StateDot.module.css +65 -0
  402. package/dist/kernel/client-ui-primitives/lib/TerminalBlock.module.css +211 -0
  403. package/dist/kernel/client-ui-primitives/lib/Toast.module.css +70 -0
  404. package/dist/kernel/client-ui-primitives/lib/Tooltip.module.css +49 -0
  405. package/dist/kernel/client-ui-primitives/lib/WebBlock.module.css +130 -0
  406. package/dist/kernel/client-ui-primitives/lib/index.js +291 -261
  407. package/dist/kernel/client-ui-primitives/lib/invariant.js +2 -0
  408. package/dist/kernel/client-ui-primitives/lib/markdown/CodeBlock.module.css +96 -0
  409. package/dist/kernel/client-ui-primitives/lib/markdown/JsonBlock.module.css +32 -0
  410. package/dist/kernel/client-ui-primitives/lib/markdown/MarkdownText.module.css +304 -0
  411. package/dist/kernel/client-ui-primitives/lib/markdown/MessageText.module.css +9 -0
  412. package/dist/kernel/client-ui-primitives/lib/types/BrandWordmark.d.ts +7 -1
  413. package/dist/kernel/client-ui-primitives/lib/types/BrandWordmark.js +4 -2
  414. package/dist/kernel/client-ui-primitives/lib/types/index.d.ts +4 -1
  415. package/dist/kernel/client-ui-primitives/lib/types/index.js +2 -1
  416. package/dist/kernel/client-ui-primitives/lib/types/invariant.d.ts +1 -1
  417. package/dist/kernel/client-ui-primitives/lib/types/markdown/render.d.ts +2 -0
  418. package/dist/kernel/client-ui-primitives/lib/types/markdown/render.js +10 -2
  419. package/dist/kernel/client-ui-primitives/lib/types/useAnchoredPosition.d.ts +32 -0
  420. package/dist/kernel/client-ui-primitives/lib/types/useAnchoredPosition.js +69 -0
  421. package/dist/kernel/client-ui-primitives/package.json +2 -1
  422. package/dist/kernel/client-ui-reference/lib/client.js +149 -0
  423. package/dist/kernel/client-ui-reference/lib/index.js +11 -0
  424. package/dist/kernel/{client-schema-form → client-ui-reference}/lib/invariant.js +7 -8
  425. package/dist/kernel/client-ui-reference/lib/types/client/index.d.ts +9 -0
  426. package/dist/kernel/client-ui-reference/lib/types/client/index.js +106 -0
  427. package/dist/kernel/client-ui-reference/lib/types/client/locales.d.ts +30 -0
  428. package/dist/kernel/client-ui-reference/lib/types/client/locales.js +22 -0
  429. package/dist/kernel/client-ui-reference/lib/types/index.d.ts +9 -0
  430. package/dist/kernel/client-ui-reference/lib/types/index.js +9 -0
  431. package/dist/kernel/{client-schema-form → client-ui-reference}/lib/types/invariant.d.ts +4 -4
  432. package/dist/kernel/{client-schema-form → client-ui-reference}/lib/types/invariant.js +7 -8
  433. package/dist/kernel/client-ui-reference/package.json +77 -0
  434. package/dist/kernel/client-ui-renderer/lib/client.js +989 -0
  435. package/dist/kernel/client-ui-renderer/lib/index.js +6 -0
  436. package/dist/kernel/client-ui-renderer/lib/invariant.js +23 -0
  437. package/dist/kernel/{client-web/lib/types → client-ui-renderer/lib/types/client}/DocumentTitle.d.ts +4 -4
  438. package/dist/kernel/client-ui-renderer/lib/types/client/DocumentTitle.js +17 -0
  439. package/dist/kernel/client-ui-renderer/lib/types/client/app.d.ts +18 -0
  440. package/dist/kernel/{client-web/lib/types → client-ui-renderer/lib/types/client}/app.js +5 -5
  441. package/dist/kernel/{client-web-react/lib/types → client-ui-renderer/lib/types/client}/bind.d.ts +1 -1
  442. package/dist/kernel/client-ui-renderer/lib/types/client/index.d.ts +29 -0
  443. package/dist/kernel/client-ui-renderer/lib/types/client/index.js +51 -0
  444. package/dist/kernel/{client-web-react/lib/types → client-ui-renderer/lib/types/client}/scoped-slots.d.ts +1 -1
  445. package/dist/kernel/{client-web-react/lib/types → client-ui-renderer/lib/types/client}/scoped-slots.js +1 -1
  446. package/dist/kernel/{client-web-react/lib/types → client-ui-renderer/lib/types/client}/session-provider.d.ts +1 -1
  447. package/dist/kernel/client-ui-renderer/lib/types/index.d.ts +4 -0
  448. package/dist/kernel/client-ui-renderer/lib/types/index.js +4 -0
  449. package/dist/kernel/{client-web-react → client-ui-renderer}/lib/types/invariant.d.ts +4 -4
  450. package/dist/kernel/client-ui-renderer/lib/types/invariant.js +22 -0
  451. package/dist/kernel/client-ui-renderer/package.json +71 -0
  452. package/dist/kernel/client-ui-settings/lib/client.js +1177 -67
  453. package/dist/kernel/client-ui-settings/lib/types/client/index.d.ts +20 -12
  454. package/dist/kernel/client-ui-settings/lib/types/client/index.js +25 -6
  455. package/dist/kernel/client-ui-settings/lib/types/client/schema.d.ts +72 -0
  456. package/dist/kernel/client-ui-settings/lib/types/client/schema.js +152 -0
  457. package/dist/kernel/client-ui-settings/lib/types/client/settings-mirror.d.ts +118 -0
  458. package/dist/kernel/client-ui-settings/lib/types/client/settings-mirror.js +160 -0
  459. package/dist/kernel/client-ui-settings/lib/types/client/settings-scope.d.ts +53 -26
  460. package/dist/kernel/client-ui-settings/lib/types/client/settings-scope.js +89 -72
  461. package/dist/kernel/client-ui-settings/lib/types/invariant.d.ts +1 -1
  462. package/dist/kernel/client-ui-settings/package.json +7 -7
  463. package/dist/kernel/client-ui-settings-general/lib/client.js +58 -62
  464. package/dist/kernel/client-ui-settings-general/lib/index.js +1 -1
  465. package/dist/kernel/client-ui-settings-general/lib/types/client/SettingsDocumentAction.d.ts +7 -6
  466. package/dist/kernel/client-ui-settings-general/lib/types/client/index.js +10 -11
  467. package/dist/kernel/client-ui-settings-general/lib/types/client/settings-document-store.d.ts +13 -11
  468. package/dist/kernel/client-ui-settings-general/lib/types/client/settings-document-store.js +37 -40
  469. package/dist/kernel/client-ui-settings-general/lib/types/index.d.ts +1 -1
  470. package/dist/kernel/client-ui-settings-general/lib/types/index.js +1 -1
  471. package/dist/kernel/client-ui-settings-general/lib/types/invariant.d.ts +1 -1
  472. package/dist/kernel/client-ui-settings-general/package.json +4 -8
  473. package/dist/kernel/client-ui-settings-models/lib/client.js +279 -209
  474. package/dist/kernel/client-ui-settings-models/lib/types/client/DeepSeekOnboardingDialog.d.ts +3 -0
  475. package/dist/kernel/client-ui-settings-models/lib/types/client/DeepSeekOnboardingDialog.js +2 -2
  476. package/dist/kernel/client-ui-settings-models/lib/types/client/ModelListEditor.js +11 -1
  477. package/dist/kernel/client-ui-settings-models/lib/types/client/ModelsSection.d.ts +10 -5
  478. package/dist/kernel/client-ui-settings-models/lib/types/client/ModelsSection.js +9 -6
  479. package/dist/kernel/client-ui-settings-models/lib/types/client/ProviderEditor.d.ts +3 -0
  480. package/dist/kernel/client-ui-settings-models/lib/types/client/ProviderEditor.js +30 -29
  481. package/dist/kernel/client-ui-settings-models/lib/types/client/index.js +27 -22
  482. package/dist/kernel/client-ui-settings-models/lib/types/client/locales.d.ts +2 -0
  483. package/dist/kernel/client-ui-settings-models/lib/types/client/locales.js +4 -0
  484. package/dist/kernel/client-ui-settings-models/lib/types/client/schema-operations.d.ts +10 -0
  485. package/dist/kernel/client-ui-settings-models/lib/types/client/schema-operations.js +17 -0
  486. package/dist/kernel/client-ui-settings-models/lib/types/client/store.d.ts +15 -7
  487. package/dist/kernel/client-ui-settings-models/lib/types/client/store.js +30 -21
  488. package/dist/kernel/client-ui-settings-models/lib/types/client/welcome-store.d.ts +35 -18
  489. package/dist/kernel/client-ui-settings-models/lib/types/client/welcome-store.js +89 -82
  490. package/dist/kernel/client-ui-settings-models/lib/types/invariant.d.ts +1 -1
  491. package/dist/kernel/client-ui-settings-models/package.json +3 -8
  492. package/dist/kernel/client-ui-settings-plugin-inventory/lib/client.js +11 -11
  493. package/dist/kernel/client-ui-settings-plugin-inventory/lib/types/invariant.d.ts +1 -1
  494. package/dist/kernel/client-ui-settings-plugin-inventory/package.json +2 -5
  495. package/dist/kernel/client-ui-settings-plugins/lib/client.js +42 -65
  496. package/dist/kernel/client-ui-settings-plugins/lib/types/client/index.js +5 -8
  497. package/dist/kernel/client-ui-settings-plugins/lib/types/client/tab-store.d.ts +8 -17
  498. package/dist/kernel/client-ui-settings-plugins/lib/types/client/tab-store.js +22 -44
  499. package/dist/kernel/client-ui-settings-plugins/lib/types/invariant.d.ts +1 -1
  500. package/dist/kernel/client-ui-settings-plugins/package.json +2 -7
  501. package/dist/kernel/client-ui-sidebar/lib/client.js +50 -20
  502. package/dist/kernel/client-ui-sidebar/lib/types/client/SidebarRoot.js +7 -3
  503. package/dist/kernel/client-ui-sidebar/lib/types/client/contract/slots.d.ts +30 -1
  504. package/dist/kernel/client-ui-sidebar/lib/types/client/index.d.ts +1 -1
  505. package/dist/kernel/client-ui-sidebar/lib/types/client/index.js +2 -0
  506. package/dist/kernel/client-ui-sidebar/lib/types/invariant.d.ts +1 -1
  507. package/dist/kernel/client-ui-sidebar/package.json +2 -4
  508. package/dist/kernel/client-ui-skill/lib/client.js +12 -12
  509. package/dist/kernel/client-ui-skill/lib/types/invariant.d.ts +1 -1
  510. package/dist/kernel/client-ui-skill/package.json +2 -5
  511. package/dist/kernel/client-ui-slots/lib/index.js +2 -0
  512. package/dist/kernel/client-ui-slots/lib/invariant.js +2 -0
  513. package/dist/kernel/client-ui-slots/lib/types/invariant.d.ts +1 -1
  514. package/dist/kernel/client-ui-slots/lib/types/renderer.d.ts +1 -1
  515. package/dist/kernel/client-ui-slots/lib/types/store.d.ts +1 -1
  516. package/dist/kernel/client-ui-slots/package.json +1 -1
  517. package/dist/kernel/client-ui-subagent/lib/client.js +289 -157
  518. package/dist/kernel/client-ui-subagent/lib/types/client/SubagentHeaderLineage.d.ts +18 -0
  519. package/dist/kernel/client-ui-subagent/lib/types/client/{SubagentCatalogAction.js → SubagentHeaderLineage.js} +153 -25
  520. package/dist/kernel/client-ui-subagent/lib/types/client/index.d.ts +4 -16
  521. package/dist/kernel/client-ui-subagent/lib/types/client/index.js +7 -45
  522. package/dist/kernel/client-ui-subagent/lib/types/client/locales.d.ts +1 -0
  523. package/dist/kernel/client-ui-subagent/lib/types/client/locales.js +2 -0
  524. package/dist/kernel/client-ui-subagent/lib/types/invariant.d.ts +1 -1
  525. package/dist/kernel/client-ui-subagent/package.json +6 -8
  526. package/dist/kernel/client-ui-theme/lib/client.js +47 -4
  527. package/dist/kernel/client-ui-theme/lib/index.js +23 -24
  528. package/dist/kernel/client-ui-theme/lib/types/boot-theme.d.ts +9 -10
  529. package/dist/kernel/client-ui-theme/lib/types/boot-theme.js +12 -19
  530. package/dist/kernel/client-ui-theme/lib/types/client/index.d.ts +2 -2
  531. package/dist/kernel/client-ui-theme/lib/types/client/index.js +3 -1
  532. package/dist/kernel/client-ui-theme/lib/types/client/styles.d.ts +7 -0
  533. package/dist/kernel/client-ui-theme/lib/types/client/styles.js +32 -0
  534. package/dist/kernel/client-ui-theme/lib/types/index.d.ts +5 -4
  535. package/dist/kernel/client-ui-theme/lib/types/index.js +7 -6
  536. package/dist/kernel/client-ui-theme/lib/types/invariant.d.ts +1 -1
  537. package/dist/kernel/client-ui-theme/lib/types/theme-settings.d.ts +1 -1
  538. package/dist/kernel/client-ui-theme/lib/types/theme-settings.js +1 -1
  539. package/dist/kernel/client-ui-theme/package.json +4 -6
  540. package/dist/kernel/client-ui-tool/lib/client.js +100 -60
  541. package/dist/kernel/client-ui-tool/lib/types/client/apply.d.ts +1 -2
  542. package/dist/kernel/client-ui-tool/lib/types/client/apply.js +6 -2
  543. package/dist/kernel/client-ui-tool/lib/types/client/contract/slots.d.ts +13 -3
  544. package/dist/kernel/client-ui-tool/lib/types/client/index.d.ts +1 -1
  545. package/dist/kernel/client-ui-tool/lib/types/client/tool/ToolCallTree.d.ts +1 -1
  546. package/dist/kernel/client-ui-tool/lib/types/client/tool/ToolCallTree.js +8 -6
  547. package/dist/kernel/client-ui-tool/lib/types/client/tool/ToolDetails.d.ts +2 -9
  548. package/dist/kernel/client-ui-tool/lib/types/client/tool/ToolDetails.js +4 -3
  549. package/dist/kernel/client-ui-tool/lib/types/client/tool/models/read-card-model.d.ts +4 -18
  550. package/dist/kernel/client-ui-tool/lib/types/client/tool/models/read-card-model.js +21 -4
  551. package/dist/kernel/client-ui-tool/lib/types/client/tool/models/tool-call-model.d.ts +2 -9
  552. package/dist/kernel/client-ui-tool/lib/types/client/tool/models/tool-call-model.js +22 -2
  553. package/dist/kernel/client-ui-tool/lib/types/client/tool/toolviews/GenericToolCard.d.ts +1 -1
  554. package/dist/kernel/client-ui-tool/lib/types/client/tool/toolviews/GenericToolCard.js +3 -3
  555. package/dist/kernel/client-ui-tool/lib/types/client/tool/toolviews/ask-question-row.d.ts +1 -1
  556. package/dist/kernel/client-ui-tool/lib/types/client/tool/toolviews/bash-sample.d.ts +1 -1
  557. package/dist/kernel/client-ui-tool/lib/types/client/tool/toolviews/file-mutation-row.d.ts +2 -2
  558. package/dist/kernel/client-ui-tool/lib/types/client/tool/toolviews/file-mutation-row.js +2 -2
  559. package/dist/kernel/client-ui-tool/lib/types/client/tool/toolviews/read-row.d.ts +2 -2
  560. package/dist/kernel/client-ui-tool/lib/types/client/tool/toolviews/read-row.js +3 -3
  561. package/dist/kernel/client-ui-tool/lib/types/client/tool/toolviews/search-row.d.ts +1 -1
  562. package/dist/kernel/client-ui-tool/lib/types/client/tool/toolviews/todo-row.d.ts +1 -1
  563. package/dist/kernel/client-ui-tool/lib/types/client/tool/toolviews/web-row.d.ts +1 -1
  564. package/dist/kernel/client-ui-tool/lib/types/invariant.d.ts +1 -1
  565. package/dist/kernel/client-ui-tool/package.json +4 -6
  566. package/dist/kernel/client-ui-trajectory/lib/client.js +144 -143
  567. package/dist/kernel/client-ui-trajectory/lib/types/client/index.d.ts +1 -1
  568. package/dist/kernel/client-ui-trajectory/lib/types/client/trajectory-assistant-definition.d.ts +1 -1
  569. package/dist/kernel/client-ui-trajectory/lib/types/client/trajectory-assistant-definition.js +2 -1
  570. package/dist/kernel/client-ui-trajectory/lib/types/client/trajectory-compaction-definition.d.ts +1 -1
  571. package/dist/kernel/client-ui-trajectory/lib/types/client/trajectory-message-definitions.d.ts +1 -1
  572. package/dist/kernel/client-ui-trajectory/lib/types/client/trajectory-request-header-definition.d.ts +1 -1
  573. package/dist/kernel/client-ui-trajectory/lib/types/client/trajectory-snapshot-builder.d.ts +1 -1
  574. package/dist/kernel/client-ui-trajectory/lib/types/client/trajectory-tool-definition.d.ts +1 -1
  575. package/dist/kernel/client-ui-trajectory/lib/types/invariant.d.ts +1 -1
  576. package/dist/kernel/client-ui-trajectory/package.json +2 -4
  577. package/dist/kernel/client-ui-user-questions/lib/client.js +72 -35
  578. package/dist/kernel/client-ui-user-questions/lib/types/client/QuestionComposer.js +24 -6
  579. package/dist/kernel/client-ui-user-questions/lib/types/invariant.d.ts +1 -1
  580. package/dist/kernel/client-ui-user-questions/package.json +12 -10
  581. package/dist/kernel/client-ui-workflow-run/lib/client.js +259 -84
  582. package/dist/kernel/client-ui-workflow-run/lib/types/client/WorkflowRunPanel.js +162 -23
  583. package/dist/kernel/client-ui-workflow-run/lib/types/invariant.d.ts +1 -1
  584. package/dist/kernel/client-ui-workflow-run/package.json +3 -7
  585. package/dist/kernel/client-ui-workspace/lib/client.js +95 -59
  586. package/dist/kernel/client-ui-workspace/lib/types/client/WorkspaceBrowser.d.ts +1 -1
  587. package/dist/kernel/client-ui-workspace/lib/types/client/WorkspaceBrowser.js +38 -6
  588. package/dist/kernel/client-ui-workspace/lib/types/client/contract/slots.d.ts +9 -7
  589. package/dist/kernel/client-ui-workspace/lib/types/client/index.js +4 -2
  590. package/dist/kernel/client-ui-workspace/lib/types/client/rows/Rows.d.ts +4 -1
  591. package/dist/kernel/client-ui-workspace/lib/types/client/rows/Rows.js +5 -3
  592. package/dist/kernel/client-ui-workspace/lib/types/invariant.d.ts +1 -1
  593. package/dist/kernel/client-ui-workspace/package.json +6 -4
  594. package/dist/kernel/client-web/lib/base.css +41 -0
  595. package/dist/kernel/client-web/lib/boot-page.module.css +104 -0
  596. package/dist/kernel/client-web/lib/index.js +157 -311
  597. package/dist/kernel/client-web/lib/invariant.js +2 -0
  598. package/dist/kernel/client-web/lib/types/boot-page.d.ts +46 -0
  599. package/dist/kernel/client-web/lib/types/boot-page.js +93 -0
  600. package/dist/kernel/client-web/lib/types/boot.d.ts +20 -33
  601. package/dist/kernel/client-web/lib/types/boot.js +78 -151
  602. package/dist/kernel/client-web/lib/types/index.d.ts +5 -11
  603. package/dist/kernel/client-web/lib/types/index.js +4 -10
  604. package/dist/kernel/client-web/lib/types/invariant.d.ts +1 -1
  605. package/dist/kernel/client-web/lib/types/loader-status.d.ts +4 -52
  606. package/dist/kernel/client-web/lib/types/loader-status.js +0 -35
  607. package/dist/kernel/client-web/lib/types/platform.d.ts +3 -1
  608. package/dist/kernel/client-web/lib/types/platform.js +4 -3
  609. package/dist/kernel/client-web/lib/types/seed.js +1 -7
  610. package/dist/kernel/client-web/package.json +8 -15
  611. package/dist/kernel/cmdline/lib/types/index.d.ts +1 -1
  612. package/dist/kernel/cmdline/lib/types/invariant.d.ts +1 -1
  613. package/dist/kernel/cmdline/package.json +1 -1
  614. package/dist/kernel/code-runtime/lib/index.js +1 -1
  615. package/dist/kernel/code-runtime/lib/types/index.d.ts +1 -1
  616. package/dist/kernel/code-runtime/lib/types/index.js +1 -1
  617. package/dist/kernel/code-runtime/lib/types/invariant.d.ts +1 -1
  618. package/dist/kernel/code-runtime/package.json +1 -1
  619. package/dist/kernel/code-runtime-python/lib/index.js +413 -0
  620. package/dist/kernel/code-runtime-python/lib/invariant.js +24 -0
  621. package/dist/kernel/code-runtime-python/lib/types/index.d.ts +12 -0
  622. package/dist/kernel/code-runtime-python/lib/types/index.js +11 -0
  623. package/dist/kernel/code-runtime-python/lib/types/invariant.d.ts +16 -0
  624. package/dist/kernel/code-runtime-python/lib/types/invariant.js +23 -0
  625. package/dist/kernel/code-runtime-python/lib/types/protocol.d.ts +329 -0
  626. package/dist/kernel/code-runtime-python/lib/types/protocol.js +496 -0
  627. package/dist/kernel/{client-schema-form → code-runtime-python}/package.json +11 -14
  628. package/dist/kernel/code-runtime-python/py/protocol.py +138 -0
  629. package/dist/kernel/code-runtime-worker-thread/lib/index.js +1 -1
  630. package/dist/kernel/code-runtime-worker-thread/lib/types/index.d.ts +2 -2
  631. package/dist/kernel/code-runtime-worker-thread/lib/types/index.js +1 -1
  632. package/dist/kernel/code-runtime-worker-thread/lib/types/invariant.d.ts +1 -1
  633. package/dist/kernel/code-runtime-worker-thread/package.json +1 -1
  634. package/dist/kernel/command-compact/lib/types/index.d.ts +1 -1
  635. package/dist/kernel/command-compact/lib/types/invariant.d.ts +1 -1
  636. package/dist/kernel/command-compact/package.json +1 -1
  637. package/dist/kernel/command-feedback/lib/types/index.d.ts +1 -1
  638. package/dist/kernel/command-feedback/lib/types/invariant.d.ts +1 -1
  639. package/dist/kernel/command-feedback/package.json +1 -1
  640. package/dist/kernel/command-goal/lib/index.js +40 -6
  641. package/dist/kernel/command-goal/lib/types/index.d.ts +1 -1
  642. package/dist/kernel/command-goal/lib/types/index.js +35 -6
  643. package/dist/kernel/command-goal/lib/types/invariant.d.ts +1 -1
  644. package/dist/kernel/command-goal/package.json +2 -1
  645. package/dist/kernel/commands/lib/index.js +78 -21
  646. package/dist/kernel/commands/lib/typert.host.js +53 -9
  647. package/dist/kernel/commands/lib/typert.remote-client.d.ts +4 -3
  648. package/dist/kernel/commands/lib/typert.remote-client.js +18 -2
  649. package/dist/kernel/commands/lib/types/index.d.ts +21 -2
  650. package/dist/kernel/commands/lib/types/index.js +77 -20
  651. package/dist/kernel/commands/lib/types/invariant.d.ts +1 -1
  652. package/dist/kernel/commands/lib/types/types.d.ts +8 -0
  653. package/dist/kernel/commands/package.json +5 -1
  654. package/dist/kernel/compaction/lib/index.js +1 -1
  655. package/dist/kernel/compaction/lib/types/index.d.ts +1 -1
  656. package/dist/kernel/compaction/lib/types/index.js +1 -1
  657. package/dist/kernel/compaction/lib/types/invariant.d.ts +1 -1
  658. package/dist/kernel/compaction/package.json +1 -1
  659. package/dist/kernel/compaction-basic/lib/index.js +1 -1
  660. package/dist/kernel/compaction-basic/lib/types/index.d.ts +2 -2
  661. package/dist/kernel/compaction-basic/lib/types/index.js +1 -1
  662. package/dist/kernel/compaction-basic/lib/types/invariant.d.ts +1 -1
  663. package/dist/kernel/compaction-basic/lib/types/summarizer.d.ts +1 -1
  664. package/dist/kernel/compaction-basic/package.json +1 -1
  665. package/dist/kernel/compaction-tool-result-pruner/lib/index.js +2 -2
  666. package/dist/kernel/compaction-tool-result-pruner/lib/types/index.d.ts +2 -2
  667. package/dist/kernel/compaction-tool-result-pruner/lib/types/index.js +2 -2
  668. package/dist/kernel/compaction-tool-result-pruner/lib/types/invariant.d.ts +1 -1
  669. package/dist/kernel/compaction-tool-result-pruner/package.json +1 -1
  670. package/dist/kernel/cordis/bin.js +16 -0
  671. package/dist/kernel/cordis/lib/index.js +1828 -0
  672. package/dist/kernel/cordis/lib/types/context.d.ts +101 -0
  673. package/dist/kernel/cordis/lib/types/context.js +99 -0
  674. package/dist/kernel/cordis/lib/types/events.d.ts +240 -0
  675. package/dist/kernel/cordis/lib/types/events.js +199 -0
  676. package/dist/kernel/cordis/lib/types/fiber.d.ts +202 -0
  677. package/dist/kernel/cordis/lib/types/fiber.js +660 -0
  678. package/dist/kernel/cordis/lib/types/index.d.ts +15 -0
  679. package/dist/kernel/cordis/lib/types/index.js +15 -0
  680. package/dist/kernel/cordis/lib/types/logger.d.ts +105 -0
  681. package/dist/kernel/cordis/lib/types/logger.js +185 -0
  682. package/dist/kernel/cordis/lib/types/reflect.d.ts +186 -0
  683. package/dist/kernel/cordis/lib/types/reflect.js +310 -0
  684. package/dist/kernel/cordis/lib/types/registry.d.ts +201 -0
  685. package/dist/kernel/cordis/lib/types/registry.js +218 -0
  686. package/dist/kernel/cordis/lib/types/service.d.ts +55 -0
  687. package/dist/kernel/cordis/lib/types/service.js +113 -0
  688. package/dist/kernel/cordis/lib/types/utils.d.ts +62 -0
  689. package/dist/kernel/cordis/lib/types/utils.js +271 -0
  690. package/dist/kernel/cordis/package.json +51 -0
  691. package/dist/kernel/cordis-client-runner/lib/client.js +171 -37
  692. package/dist/kernel/cordis-client-runner/lib/types/client/api-catalog.js +3 -3
  693. package/dist/kernel/cordis-client-runner/lib/types/client/guard.d.ts +1 -1
  694. package/dist/kernel/cordis-client-runner/lib/types/client/guard.js +1 -1
  695. package/dist/kernel/cordis-client-runner/lib/types/client/index.d.ts +1 -1
  696. package/dist/kernel/cordis-client-runner/lib/types/client/inspect-registry.d.ts +1 -1
  697. package/dist/kernel/cordis-client-runner/lib/types/client/providers.d.ts +1 -1
  698. package/dist/kernel/cordis-client-runner/lib/types/client/runtime.d.ts +2 -2
  699. package/dist/kernel/cordis-client-runner/lib/types/client/slot-catalog.js +208 -30
  700. package/dist/kernel/cordis-client-runner/lib/types/client/timer.d.ts +2 -2
  701. package/dist/kernel/cordis-client-runner/lib/types/client/timer.js +1 -1
  702. package/dist/kernel/cordis-client-runner/lib/types/invariant.d.ts +1 -1
  703. package/dist/kernel/cordis-client-runner/package.json +2 -5
  704. package/dist/kernel/cordis-host-runner/lib/index.js +30 -7
  705. package/dist/kernel/cordis-host-runner/lib/typert.host.js +54 -6
  706. package/dist/kernel/cordis-host-runner/lib/types/guard.d.ts +2 -2
  707. package/dist/kernel/cordis-host-runner/lib/types/guard.js +1 -1
  708. package/dist/kernel/cordis-host-runner/lib/types/index.d.ts +3 -3
  709. package/dist/kernel/cordis-host-runner/lib/types/index.js +1 -1
  710. package/dist/kernel/cordis-host-runner/lib/types/inspect-registry.d.ts +2 -2
  711. package/dist/kernel/cordis-host-runner/lib/types/inspect-registry.js +1 -1
  712. package/dist/kernel/cordis-host-runner/lib/types/invariant.d.ts +1 -1
  713. package/dist/kernel/cordis-host-runner/lib/types/lifecycle.d.ts +1 -1
  714. package/dist/kernel/cordis-host-runner/lib/types/registry.d.ts +1 -1
  715. package/dist/kernel/cordis-host-runner/lib/types/sandbox.d.ts +9 -3
  716. package/dist/kernel/cordis-host-runner/lib/types/sandbox.js +34 -6
  717. package/dist/kernel/cordis-host-runner/package.json +1 -1
  718. package/dist/kernel/cordis-plugin-group/lib/index.js +5 -0
  719. package/dist/kernel/cordis-plugin-group/lib/types/index.d.ts +3 -0
  720. package/dist/kernel/cordis-plugin-group/lib/types/index.js +3 -0
  721. package/dist/kernel/cordis-plugin-group/package.json +36 -0
  722. package/dist/kernel/cordis-plugin-hmr/lib/index.js +452 -0
  723. package/dist/kernel/cordis-plugin-hmr/lib/types/error.d.ts +4 -0
  724. package/dist/kernel/cordis-plugin-hmr/lib/types/error.js +33 -0
  725. package/dist/kernel/cordis-plugin-hmr/lib/types/index.d.ts +87 -0
  726. package/dist/kernel/cordis-plugin-hmr/lib/types/index.js +525 -0
  727. package/dist/kernel/cordis-plugin-hmr/package.json +59 -0
  728. package/dist/kernel/cordis-plugin-include/lib/index.js +284 -0
  729. package/dist/kernel/cordis-plugin-include/lib/types/index.d.ts +99 -0
  730. package/dist/kernel/cordis-plugin-include/lib/types/index.js +331 -0
  731. package/dist/kernel/cordis-plugin-include/package.json +40 -0
  732. package/dist/kernel/cordis-plugin-loader/lib/index.js +744 -0
  733. package/dist/kernel/cordis-plugin-loader/lib/types/config/entry.d.ts +56 -0
  734. package/dist/kernel/cordis-plugin-loader/lib/types/config/entry.js +283 -0
  735. package/dist/kernel/cordis-plugin-loader/lib/types/config/group.d.ts +27 -0
  736. package/dist/kernel/cordis-plugin-loader/lib/types/config/group.js +139 -0
  737. package/dist/kernel/cordis-plugin-loader/lib/types/config/isolate.d.ts +35 -0
  738. package/dist/kernel/cordis-plugin-loader/lib/types/config/isolate.js +151 -0
  739. package/dist/kernel/cordis-plugin-loader/lib/types/config/tree.d.ts +38 -0
  740. package/dist/kernel/cordis-plugin-loader/lib/types/config/tree.js +169 -0
  741. package/dist/kernel/cordis-plugin-loader/lib/types/config/utils.d.ts +11 -0
  742. package/dist/kernel/cordis-plugin-loader/lib/types/config/utils.js +28 -0
  743. package/dist/kernel/cordis-plugin-loader/lib/types/index.d.ts +73 -0
  744. package/dist/kernel/cordis-plugin-loader/lib/types/index.js +154 -0
  745. package/dist/kernel/cordis-plugin-loader/lib/types/internal.d.ts +97 -0
  746. package/dist/kernel/cordis-plugin-loader/lib/types/internal.js +36 -0
  747. package/dist/kernel/cordis-plugin-loader/package.json +44 -0
  748. package/dist/kernel/cordis-plugin-logger-console/lib/browser.js +80 -0
  749. package/dist/kernel/cordis-plugin-logger-console/lib/index.js +95 -0
  750. package/dist/kernel/cordis-plugin-logger-console/lib/types/browser.d.ts +10 -0
  751. package/dist/kernel/cordis-plugin-logger-console/lib/types/browser.js +14 -0
  752. package/dist/kernel/cordis-plugin-logger-console/lib/types/index.d.ts +15 -0
  753. package/dist/kernel/cordis-plugin-logger-console/lib/types/index.js +23 -0
  754. package/dist/kernel/cordis-plugin-logger-console/lib/types/shared.d.ts +45 -0
  755. package/dist/kernel/cordis-plugin-logger-console/lib/types/shared.js +73 -0
  756. package/dist/kernel/cordis-plugin-logger-console/package.json +42 -0
  757. package/dist/kernel/cordis-plugin-timer/lib/index.js +152 -0
  758. package/dist/kernel/cordis-plugin-timer/lib/types/index.d.ts +30 -0
  759. package/dist/kernel/cordis-plugin-timer/lib/types/index.js +134 -0
  760. package/dist/kernel/cordis-plugin-timer/package.json +38 -0
  761. package/dist/kernel/cosmokit/lib/index.js +325 -0
  762. package/dist/kernel/cosmokit/lib/types/array.d.ts +15 -0
  763. package/dist/kernel/cosmokit/lib/types/array.js +37 -0
  764. package/dist/kernel/cosmokit/lib/types/index.d.ts +11 -0
  765. package/dist/kernel/cosmokit/lib/types/index.js +11 -0
  766. package/dist/kernel/cosmokit/lib/types/misc.d.ts +41 -0
  767. package/dist/kernel/cosmokit/lib/types/misc.js +50 -0
  768. package/dist/kernel/cosmokit/lib/types/string.d.ts +89 -0
  769. package/dist/kernel/cosmokit/lib/types/string.js +79 -0
  770. package/dist/kernel/cosmokit/lib/types/time.d.ts +19 -0
  771. package/dist/kernel/cosmokit/lib/types/time.js +101 -0
  772. package/dist/kernel/cosmokit/lib/types/types.d.ts +34 -0
  773. package/dist/kernel/cosmokit/lib/types/types.js +141 -0
  774. package/dist/kernel/cosmokit/package.json +32 -0
  775. package/dist/kernel/credentials/lib/index.js +105 -14
  776. package/dist/kernel/credentials/lib/invariant.js +3 -3
  777. package/dist/kernel/credentials/lib/types/index.d.ts +137 -8
  778. package/dist/kernel/credentials/lib/types/index.js +115 -16
  779. package/dist/kernel/credentials/lib/types/invariant.d.ts +1 -1
  780. package/dist/kernel/credentials/lib/types/invariant.js +3 -3
  781. package/dist/kernel/credentials/lib/types/types.d.ts +58 -5
  782. package/dist/kernel/credentials/lib/types/types.js +4 -4
  783. package/dist/kernel/credentials/package.json +1 -1
  784. package/dist/kernel/credentials-local/lib/index.js +389 -31
  785. package/dist/kernel/credentials-local/lib/invariant.js +1 -1
  786. package/dist/kernel/credentials-local/lib/types/index.d.ts +59 -14
  787. package/dist/kernel/credentials-local/lib/types/index.js +447 -32
  788. package/dist/kernel/credentials-local/lib/types/invariant.d.ts +1 -1
  789. package/dist/kernel/credentials-local/lib/types/invariant.js +1 -1
  790. package/dist/kernel/credentials-local/package.json +1 -1
  791. package/dist/kernel/e2b/lib/index.js +2 -2
  792. package/dist/kernel/e2b/lib/types/index.d.ts +2 -2
  793. package/dist/kernel/e2b/lib/types/index.js +2 -2
  794. package/dist/kernel/e2b/lib/types/invariant.d.ts +1 -1
  795. package/dist/kernel/e2b/package.json +1 -1
  796. package/dist/kernel/experimental-agent-team/lib/index.js +1728 -0
  797. package/dist/kernel/experimental-agent-team/lib/invariant.js +354 -0
  798. package/dist/kernel/experimental-agent-team/lib/types/activity.d.ts +23 -0
  799. package/dist/kernel/experimental-agent-team/lib/types/activity.js +85 -0
  800. package/dist/kernel/experimental-agent-team/lib/types/error.d.ts +13 -0
  801. package/dist/kernel/experimental-agent-team/lib/types/error.js +23 -0
  802. package/dist/kernel/experimental-agent-team/lib/types/fold.d.ts +44 -0
  803. package/dist/kernel/experimental-agent-team/lib/types/fold.js +243 -0
  804. package/dist/kernel/experimental-agent-team/lib/types/index.d.ts +115 -0
  805. package/dist/kernel/experimental-agent-team/lib/types/index.js +205 -0
  806. package/dist/kernel/experimental-agent-team/lib/types/invariant.d.ts +9 -0
  807. package/dist/kernel/experimental-agent-team/lib/types/invariant.js +29 -0
  808. package/dist/kernel/experimental-agent-team/lib/types/journal.d.ts +39 -0
  809. package/dist/kernel/experimental-agent-team/lib/types/journal.js +59 -0
  810. package/dist/kernel/experimental-agent-team/lib/types/lifecycle.d.ts +33 -0
  811. package/dist/kernel/experimental-agent-team/lib/types/lifecycle.js +85 -0
  812. package/dist/kernel/experimental-agent-team/lib/types/mailbox.d.ts +79 -0
  813. package/dist/kernel/experimental-agent-team/lib/types/mailbox.js +303 -0
  814. package/dist/kernel/experimental-agent-team/lib/types/roster.d.ts +113 -0
  815. package/dist/kernel/experimental-agent-team/lib/types/roster.js +445 -0
  816. package/dist/kernel/experimental-agent-team/lib/types/session-message.d.ts +11 -0
  817. package/dist/kernel/experimental-agent-team/lib/types/session-message.js +23 -0
  818. package/dist/kernel/experimental-agent-team/lib/types/task-board.d.ts +62 -0
  819. package/dist/kernel/experimental-agent-team/lib/types/task-board.js +275 -0
  820. package/dist/kernel/experimental-agent-team/lib/types/task-graph.d.ts +21 -0
  821. package/dist/kernel/experimental-agent-team/lib/types/task-graph.js +62 -0
  822. package/dist/kernel/experimental-agent-team/lib/types/types.d.ts +192 -0
  823. package/dist/kernel/experimental-agent-team/lib/types/types.js +26 -0
  824. package/dist/kernel/experimental-agent-team/lib/types/validation.d.ts +16 -0
  825. package/dist/kernel/experimental-agent-team/lib/types/validation.js +33 -0
  826. package/dist/kernel/experimental-agent-team/package.json +62 -0
  827. package/dist/kernel/experimental-tool-agent-team/lib/index.js +555 -0
  828. package/dist/kernel/experimental-tool-agent-team/lib/invariant.js +13 -0
  829. package/dist/kernel/experimental-tool-agent-team/lib/types/index.d.ts +19 -0
  830. package/dist/kernel/experimental-tool-agent-team/lib/types/index.js +379 -0
  831. package/dist/kernel/experimental-tool-agent-team/lib/types/invariant.d.ts +9 -0
  832. package/dist/kernel/experimental-tool-agent-team/lib/types/invariant.js +11 -0
  833. package/dist/kernel/experimental-tool-agent-team/package.json +61 -0
  834. package/dist/kernel/file-reference/lib/index.js +138 -0
  835. package/dist/kernel/file-reference/lib/invariant.js +23 -0
  836. package/dist/kernel/file-reference/lib/typert.host.d.ts +3 -0
  837. package/dist/kernel/file-reference/lib/typert.host.js +436 -0
  838. package/dist/kernel/file-reference/lib/typert.remote-client.d.ts +26 -0
  839. package/dist/kernel/file-reference/lib/typert.remote-client.js +59 -0
  840. package/dist/kernel/file-reference/lib/types/grammar.d.ts +33 -0
  841. package/dist/kernel/file-reference/lib/types/grammar.js +43 -0
  842. package/dist/kernel/file-reference/lib/types/index.d.ts +42 -0
  843. package/dist/kernel/file-reference/lib/types/index.js +75 -0
  844. package/dist/kernel/file-reference/lib/types/invariant.d.ts +16 -0
  845. package/dist/kernel/file-reference/lib/types/invariant.js +22 -0
  846. package/dist/kernel/file-reference/lib/types/types.d.ts +13 -0
  847. package/dist/kernel/file-reference/lib/types/types.js +7 -0
  848. package/dist/kernel/file-reference/package.json +70 -0
  849. package/dist/kernel/file-reference-local/lib/index.js +327 -0
  850. package/dist/kernel/file-reference-local/lib/invariant.js +23 -0
  851. package/dist/kernel/file-reference-local/lib/types/index.d.ts +35 -0
  852. package/dist/kernel/file-reference-local/lib/types/index.js +105 -0
  853. package/dist/kernel/file-reference-local/lib/types/invariant.d.ts +16 -0
  854. package/dist/kernel/file-reference-local/lib/types/invariant.js +22 -0
  855. package/dist/kernel/file-reference-local/lib/types/search.d.ts +52 -0
  856. package/dist/kernel/file-reference-local/lib/types/search.js +258 -0
  857. package/dist/kernel/file-reference-local/package.json +58 -0
  858. package/dist/kernel/fs/lib/index.js +1 -1
  859. package/dist/kernel/fs/lib/types/index.d.ts +1 -1
  860. package/dist/kernel/fs/lib/types/index.js +1 -1
  861. package/dist/kernel/fs/lib/types/invariant.d.ts +1 -1
  862. package/dist/kernel/fs/package.json +1 -1
  863. package/dist/kernel/fs-e2b/lib/types/invariant.d.ts +1 -1
  864. package/dist/kernel/fs-e2b/package.json +1 -1
  865. package/dist/kernel/fs-local/lib/index.js +1 -1
  866. package/dist/kernel/fs-local/lib/types/index.d.ts +2 -2
  867. package/dist/kernel/fs-local/lib/types/index.js +1 -1
  868. package/dist/kernel/fs-local/lib/types/invariant.d.ts +1 -1
  869. package/dist/kernel/fs-local/package.json +1 -1
  870. package/dist/kernel/fs-observation-policy/lib/types/index.d.ts +1 -1
  871. package/dist/kernel/fs-observation-policy/lib/types/invariant.d.ts +1 -1
  872. package/dist/kernel/fs-observation-policy/package.json +1 -1
  873. package/dist/kernel/fs-sandbox/lib/types/index.d.ts +1 -1
  874. package/dist/kernel/fs-sandbox/lib/types/invariant.d.ts +1 -1
  875. package/dist/kernel/fs-sandbox/package.json +1 -1
  876. package/dist/kernel/goal/lib/index.js +6 -3
  877. package/dist/kernel/goal/lib/typert.host.js +27 -3
  878. package/dist/kernel/goal/lib/types/index.d.ts +2 -2
  879. package/dist/kernel/goal/lib/types/index.js +3 -3
  880. package/dist/kernel/goal/lib/types/invariant.d.ts +1 -1
  881. package/dist/kernel/goal/lib/types/types.d.ts +3 -0
  882. package/dist/kernel/goal/package.json +1 -1
  883. package/dist/kernel/goal-round-driver/lib/types/index.d.ts +1 -1
  884. package/dist/kernel/goal-round-driver/lib/types/invariant.d.ts +1 -1
  885. package/dist/kernel/goal-round-driver/package.json +1 -1
  886. package/dist/kernel/headless/lib/index.js +1 -1
  887. package/dist/kernel/headless/lib/types/index.d.ts +2 -2
  888. package/dist/kernel/headless/lib/types/index.js +1 -1
  889. package/dist/kernel/headless/lib/types/invariant.d.ts +1 -1
  890. package/dist/kernel/headless/lib/types/startup.d.ts +1 -1
  891. package/dist/kernel/headless/package.json +1 -1
  892. package/dist/kernel/home-paths/lib/types/invariant.d.ts +1 -1
  893. package/dist/kernel/home-paths/package.json +1 -1
  894. package/dist/kernel/hook-protocol/lib/types/invariant.d.ts +1 -1
  895. package/dist/kernel/hook-protocol/package.json +1 -1
  896. package/dist/kernel/hooks-claude-code/lib/index.js +1 -1
  897. package/dist/kernel/hooks-claude-code/lib/types/index.d.ts +2 -2
  898. package/dist/kernel/hooks-claude-code/lib/types/index.js +1 -1
  899. package/dist/kernel/hooks-claude-code/lib/types/invariant.d.ts +1 -1
  900. package/dist/kernel/hooks-claude-code/package.json +1 -1
  901. package/dist/kernel/hooks-codex/lib/index.js +1 -1
  902. package/dist/kernel/hooks-codex/lib/types/index.d.ts +2 -2
  903. package/dist/kernel/hooks-codex/lib/types/index.js +1 -1
  904. package/dist/kernel/hooks-codex/lib/types/invariant.d.ts +1 -1
  905. package/dist/kernel/hooks-codex/package.json +1 -1
  906. package/dist/kernel/host-apiproxy/lib/index.js +27 -59
  907. package/dist/kernel/host-apiproxy/lib/types/api/host.d.ts +2 -0
  908. package/dist/kernel/host-apiproxy/lib/types/api/host.schema.d.ts +1 -0
  909. package/dist/kernel/host-apiproxy/lib/types/api/host.schema.js +1 -0
  910. package/dist/kernel/host-apiproxy/lib/types/api/sessions.d.ts +4 -0
  911. package/dist/kernel/host-apiproxy/lib/types/api/sessions.schema.js +1 -0
  912. package/dist/kernel/host-apiproxy/lib/types/api-proxy.d.ts +1 -1
  913. package/dist/kernel/host-apiproxy/lib/types/api-proxy.js +15 -53
  914. package/dist/kernel/host-apiproxy/lib/types/index.d.ts +2 -2
  915. package/dist/kernel/host-apiproxy/lib/types/index.js +2 -2
  916. package/dist/kernel/host-apiproxy/lib/types/invariant.d.ts +1 -1
  917. package/dist/kernel/host-apiproxy/lib/types/session-export.d.ts +1 -1
  918. package/dist/kernel/host-apiproxy/package.json +1 -1
  919. package/dist/kernel/host-directory-picker/lib/index.js +1 -1
  920. package/dist/kernel/host-directory-picker/lib/types/index.d.ts +1 -1
  921. package/dist/kernel/host-directory-picker/lib/types/index.js +1 -1
  922. package/dist/kernel/host-directory-picker/lib/types/invariant.d.ts +1 -1
  923. package/dist/kernel/host-directory-picker/package.json +1 -1
  924. package/dist/kernel/host-directory-picker-auto/lib/types/index.d.ts +1 -1
  925. package/dist/kernel/host-directory-picker-auto/lib/types/invariant.d.ts +1 -1
  926. package/dist/kernel/host-directory-picker-auto/package.json +1 -1
  927. package/dist/kernel/host-directory-picker-browse/lib/index.js +1 -1
  928. package/dist/kernel/host-directory-picker-browse/lib/types/index.d.ts +2 -2
  929. package/dist/kernel/host-directory-picker-browse/lib/types/index.js +1 -1
  930. package/dist/kernel/host-directory-picker-browse/lib/types/invariant.d.ts +1 -1
  931. package/dist/kernel/host-directory-picker-browse/package.json +1 -1
  932. package/dist/kernel/host-directory-picker-native/lib/types/invariant.d.ts +1 -1
  933. package/dist/kernel/host-directory-picker-native/package.json +1 -1
  934. package/dist/kernel/host-frontend-static/lib/index.js +35 -27
  935. package/dist/kernel/host-frontend-static/lib/types/index.d.ts +12 -12
  936. package/dist/kernel/host-frontend-static/lib/types/index.js +39 -28
  937. package/dist/kernel/host-frontend-static/lib/types/invariant.d.ts +1 -1
  938. package/dist/kernel/host-frontend-static/package.json +2 -2
  939. package/dist/kernel/host-plugin-inventory/lib/types/index.d.ts +1 -1
  940. package/dist/kernel/host-plugin-inventory/lib/types/invariant.d.ts +1 -1
  941. package/dist/kernel/host-plugin-inventory/package.json +1 -1
  942. package/dist/kernel/host-webserver/lib/index.js +104 -8
  943. package/dist/kernel/host-webserver/lib/types/index.d.ts +35 -7
  944. package/dist/kernel/host-webserver/lib/types/index.js +30 -7
  945. package/dist/kernel/host-webserver/lib/types/injections.d.ts +56 -0
  946. package/dist/kernel/host-webserver/lib/types/injections.js +82 -0
  947. package/dist/kernel/host-webserver/lib/types/invariant.d.ts +1 -1
  948. package/dist/kernel/host-webserver/package.json +1 -1
  949. package/dist/kernel/invariants/lib/index.js +2 -2
  950. package/dist/kernel/invariants/lib/types/index.d.ts +3 -3
  951. package/dist/kernel/invariants/lib/types/index.js +2 -2
  952. package/dist/kernel/invariants/lib/types/invariant.d.ts +1 -1
  953. package/dist/kernel/invariants/package.json +1 -1
  954. package/dist/kernel/jobs/lib/index.js +1 -1
  955. package/dist/kernel/jobs/lib/types/index.d.ts +1 -1
  956. package/dist/kernel/jobs/lib/types/index.js +1 -1
  957. package/dist/kernel/jobs/lib/types/invariant.d.ts +1 -1
  958. package/dist/kernel/jobs/package.json +1 -1
  959. package/dist/kernel/jobs-local/lib/index.js +1 -1
  960. package/dist/kernel/jobs-local/lib/types/index.d.ts +2 -2
  961. package/dist/kernel/jobs-local/lib/types/index.js +1 -1
  962. package/dist/kernel/jobs-local/lib/types/invariant.d.ts +1 -1
  963. package/dist/kernel/jobs-local/package.json +1 -1
  964. package/dist/kernel/launch-environment/lib/types/index.d.ts +1 -1
  965. package/dist/kernel/launch-environment/lib/types/invariant.d.ts +1 -1
  966. package/dist/kernel/launch-environment/package.json +1 -1
  967. package/dist/kernel/llm/lib/index.js +249 -27
  968. package/dist/kernel/llm/lib/types/assembler.d.ts +10 -1
  969. package/dist/kernel/llm/lib/types/assembler.js +20 -1
  970. package/dist/kernel/llm/lib/types/content.d.ts +59 -0
  971. package/dist/kernel/llm/lib/types/content.js +149 -0
  972. package/dist/kernel/llm/lib/types/index.d.ts +25 -2
  973. package/dist/kernel/llm/lib/types/index.js +62 -9
  974. package/dist/kernel/llm/lib/types/invariant.d.ts +1 -1
  975. package/dist/kernel/llm/lib/types/retry-policy.d.ts +2 -2
  976. package/dist/kernel/llm/lib/types/retry-policy.js +7 -3
  977. package/dist/kernel/llm/package.json +1 -1
  978. package/dist/kernel/llm-deepseek/lib/index.js +1101 -71
  979. package/dist/kernel/llm-deepseek/lib/types/adapter.d.ts +69 -1
  980. package/dist/kernel/llm-deepseek/lib/types/adapter.js +296 -60
  981. package/dist/kernel/llm-deepseek/lib/types/file-id.d.ts +19 -0
  982. package/dist/kernel/llm-deepseek/lib/types/file-id.js +18 -0
  983. package/dist/kernel/llm-deepseek/lib/types/file-store.d.ts +83 -0
  984. package/dist/kernel/llm-deepseek/lib/types/file-store.js +261 -0
  985. package/dist/kernel/llm-deepseek/lib/types/files-api.d.ts +103 -0
  986. package/dist/kernel/llm-deepseek/lib/types/files-api.js +206 -0
  987. package/dist/kernel/llm-deepseek/lib/types/index.d.ts +33 -5
  988. package/dist/kernel/llm-deepseek/lib/types/index.js +140 -4
  989. package/dist/kernel/llm-deepseek/lib/types/invariant.d.ts +1 -1
  990. package/dist/kernel/llm-deepseek/lib/types/serialize.d.ts +55 -6
  991. package/dist/kernel/llm-deepseek/lib/types/serialize.js +179 -23
  992. package/dist/kernel/llm-deepseek/lib/types/types.d.ts +28 -5
  993. package/dist/kernel/llm-deepseek/lib/types/upload-index.d.ts +68 -0
  994. package/dist/kernel/llm-deepseek/lib/types/upload-index.js +171 -0
  995. package/dist/kernel/llm-deepseek/package.json +9 -1
  996. package/dist/kernel/llm-pi-ai/lib/index.js +1758 -1171
  997. package/dist/kernel/llm-pi-ai/lib/types/adapter.d.ts +30 -5
  998. package/dist/kernel/llm-pi-ai/lib/types/adapter.js +43 -23
  999. package/dist/kernel/llm-pi-ai/lib/types/auth.d.ts +60 -0
  1000. package/dist/kernel/llm-pi-ai/lib/types/auth.js +196 -0
  1001. package/dist/kernel/llm-pi-ai/lib/types/catalog.d.ts +176 -38
  1002. package/dist/kernel/llm-pi-ai/lib/types/catalog.js +245 -50
  1003. package/dist/kernel/llm-pi-ai/lib/types/config.d.ts +38 -6
  1004. package/dist/kernel/llm-pi-ai/lib/types/config.js +68 -3
  1005. package/dist/kernel/llm-pi-ai/lib/types/context.d.ts +8 -3
  1006. package/dist/kernel/llm-pi-ai/lib/types/context.js +60 -16
  1007. package/dist/kernel/llm-pi-ai/lib/types/index.d.ts +2 -1
  1008. package/dist/kernel/llm-pi-ai/lib/types/index.js +21 -19
  1009. package/dist/kernel/llm-pi-ai/lib/types/invariant.d.ts +1 -1
  1010. package/dist/kernel/llm-pi-ai/lib/types/login.d.ts +21 -0
  1011. package/dist/kernel/llm-pi-ai/lib/types/login.js +154 -0
  1012. package/dist/kernel/llm-pi-ai/lib/types/stream.js +4 -0
  1013. package/dist/kernel/llm-pi-ai/package.json +3 -1
  1014. package/dist/kernel/llm-retry/lib/index.js +1 -1
  1015. package/dist/kernel/llm-retry/lib/types/index.d.ts +2 -2
  1016. package/dist/kernel/llm-retry/lib/types/index.js +1 -1
  1017. package/dist/kernel/llm-retry/lib/types/invariant.d.ts +1 -1
  1018. package/dist/kernel/llm-retry/package.json +1 -1
  1019. package/dist/kernel/lsp/lib/index.js +1 -1
  1020. package/dist/kernel/lsp/lib/types/index.d.ts +1 -1
  1021. package/dist/kernel/lsp/lib/types/index.js +1 -1
  1022. package/dist/kernel/lsp/lib/types/invariant.d.ts +1 -1
  1023. package/dist/kernel/lsp/package.json +1 -1
  1024. package/dist/kernel/lsp-stdio/lib/index.js +1 -1
  1025. package/dist/kernel/lsp-stdio/lib/types/index.d.ts +2 -2
  1026. package/dist/kernel/lsp-stdio/lib/types/index.js +1 -1
  1027. package/dist/kernel/lsp-stdio/lib/types/invariant.d.ts +1 -1
  1028. package/dist/kernel/lsp-stdio/package.json +1 -1
  1029. package/dist/kernel/manifest.json +21 -3
  1030. package/dist/kernel/mcp-client/lib/index.js +1 -1
  1031. package/dist/kernel/mcp-client/lib/types/connection.d.ts +1 -1
  1032. package/dist/kernel/mcp-client/lib/types/index.d.ts +2 -2
  1033. package/dist/kernel/mcp-client/lib/types/index.js +1 -1
  1034. package/dist/kernel/mcp-client/lib/types/invariant.d.ts +1 -1
  1035. package/dist/kernel/mcp-client/lib/types/tools.d.ts +1 -1
  1036. package/dist/kernel/mcp-client/package.json +1 -1
  1037. package/dist/kernel/message-feedback/lib/index.js +2 -2
  1038. package/dist/kernel/message-feedback/lib/types/index.d.ts +2 -2
  1039. package/dist/kernel/message-feedback/lib/types/index.js +2 -2
  1040. package/dist/kernel/message-feedback/lib/types/invariant.d.ts +1 -1
  1041. package/dist/kernel/message-feedback/package.json +1 -1
  1042. package/dist/kernel/native-command/lib/types/invariant.d.ts +1 -1
  1043. package/dist/kernel/native-command/package.json +1 -1
  1044. package/dist/kernel/node-addon-landlock-run/lib/index.d.ts +71 -0
  1045. package/dist/kernel/node-addon-landlock-run/lib/index.js +101 -0
  1046. package/dist/kernel/node-addon-landlock-run/package.json +41 -0
  1047. package/dist/kernel/output-retention/lib/types/invariant.d.ts +1 -1
  1048. package/dist/kernel/output-retention/package.json +1 -1
  1049. package/dist/kernel/permission-presets/lib/index.js +16 -4
  1050. package/dist/kernel/permission-presets/lib/types/index.d.ts +7 -2
  1051. package/dist/kernel/permission-presets/lib/types/index.js +13 -4
  1052. package/dist/kernel/permission-presets/lib/types/invariant.d.ts +1 -1
  1053. package/dist/kernel/permission-presets/package.json +1 -1
  1054. package/dist/kernel/persona/lib/index.js +1 -1
  1055. package/dist/kernel/persona/lib/types/index.d.ts +2 -2
  1056. package/dist/kernel/persona/lib/types/index.js +1 -1
  1057. package/dist/kernel/persona/lib/types/invariant.d.ts +1 -1
  1058. package/dist/kernel/persona/package.json +1 -1
  1059. package/dist/kernel/plan-mode/lib/index.js +50 -16
  1060. package/dist/kernel/plan-mode/lib/types/index.d.ts +23 -1
  1061. package/dist/kernel/plan-mode/lib/types/index.js +46 -20
  1062. package/dist/kernel/plan-mode/lib/types/invariant.d.ts +1 -1
  1063. package/dist/kernel/plan-mode/lib/types/types.d.ts +5 -4
  1064. package/dist/kernel/plan-mode/package.json +1 -1
  1065. package/dist/kernel/pwsh-local/lib/index.js +1 -1
  1066. package/dist/kernel/pwsh-local/lib/types/index.d.ts +2 -2
  1067. package/dist/kernel/pwsh-local/lib/types/index.js +1 -1
  1068. package/dist/kernel/pwsh-local/lib/types/invariant.d.ts +1 -1
  1069. package/dist/kernel/pwsh-local/package.json +1 -1
  1070. package/dist/kernel/pwsh-sandbox/lib/types/index.d.ts +1 -1
  1071. package/dist/kernel/pwsh-sandbox/lib/types/invariant.d.ts +1 -1
  1072. package/dist/kernel/pwsh-sandbox/package.json +1 -1
  1073. package/dist/kernel/repeat-tool-reminder/lib/index.js +3 -3
  1074. package/dist/kernel/repeat-tool-reminder/lib/types/index.d.ts +2 -2
  1075. package/dist/kernel/repeat-tool-reminder/lib/types/index.js +1 -1
  1076. package/dist/kernel/repeat-tool-reminder/lib/types/invariant.d.ts +1 -1
  1077. package/dist/kernel/repeat-tool-reminder/package.json +1 -1
  1078. package/dist/kernel/sandbox/lib/index.js +1 -1
  1079. package/dist/kernel/sandbox/lib/types/index.d.ts +1 -1
  1080. package/dist/kernel/sandbox/lib/types/index.js +1 -1
  1081. package/dist/kernel/sandbox/lib/types/invariant.d.ts +1 -1
  1082. package/dist/kernel/sandbox/package.json +1 -1
  1083. package/dist/kernel/sandbox-local/lib/index.js +10 -15
  1084. package/dist/kernel/sandbox-local/lib/types/index.d.ts +3 -5
  1085. package/dist/kernel/sandbox-local/lib/types/index.js +6 -9
  1086. package/dist/kernel/sandbox-local/lib/types/invariant.d.ts +1 -1
  1087. package/dist/kernel/sandbox-local/lib/types/profiles.js +2 -2
  1088. package/dist/kernel/sandbox-local/package.json +1 -1
  1089. package/dist/kernel/sandbox-policy/lib/index.js +2 -2
  1090. package/dist/kernel/sandbox-policy/lib/types/index.d.ts +2 -2
  1091. package/dist/kernel/sandbox-policy/lib/types/index.js +2 -2
  1092. package/dist/kernel/sandbox-policy/lib/types/invariant.d.ts +1 -1
  1093. package/dist/kernel/sandbox-policy/package.json +1 -1
  1094. package/dist/kernel/sandbox-windows-acl/lib/types/invariant.d.ts +1 -1
  1095. package/dist/kernel/sandbox-windows-acl/package.json +1 -1
  1096. package/dist/kernel/schedule/lib/types/index.d.ts +1 -1
  1097. package/dist/kernel/schedule/lib/types/invariant.d.ts +1 -1
  1098. package/dist/kernel/schedule/lib/types/persistence.d.ts +1 -1
  1099. package/dist/kernel/schedule/lib/types/runtime.d.ts +1 -1
  1100. package/dist/kernel/schedule/lib/types/tools.d.ts +1 -1
  1101. package/dist/kernel/schedule/package.json +1 -1
  1102. package/dist/kernel/schemastery/lib/index.cjs +596 -0
  1103. package/dist/kernel/schemastery/lib/index.mjs +596 -0
  1104. package/dist/kernel/schemastery/lib/types/index.d.ts +200 -0
  1105. package/dist/kernel/schemastery/lib/types/index.js +714 -0
  1106. package/dist/kernel/schemastery/package.json +39 -0
  1107. package/dist/kernel/scope/lib/index.js +1 -1
  1108. package/dist/kernel/scope/lib/types/index.d.ts +1 -1
  1109. package/dist/kernel/scope/lib/types/index.js +1 -1
  1110. package/dist/kernel/scope/lib/types/invariant.d.ts +1 -1
  1111. package/dist/kernel/scope/lib/types/store.d.ts +1 -1
  1112. package/dist/kernel/scope/package.json +1 -1
  1113. package/dist/kernel/sdk-client/lib/index.js +2 -2
  1114. package/dist/kernel/sdk-client/lib/types/api.js +2 -2
  1115. package/dist/kernel/sdk-client/lib/types/invariant.d.ts +1 -1
  1116. package/dist/kernel/sdk-client/lib/types/types.d.ts +4 -4
  1117. package/dist/kernel/sdk-client/package.json +1 -1
  1118. package/dist/kernel/sdk-jsonrpc-server/lib/index.js +13 -6
  1119. package/dist/kernel/sdk-jsonrpc-server/lib/types/index.d.ts +2 -2
  1120. package/dist/kernel/sdk-jsonrpc-server/lib/types/index.js +8 -1
  1121. package/dist/kernel/sdk-jsonrpc-server/lib/types/invariant.d.ts +1 -1
  1122. package/dist/kernel/sdk-jsonrpc-server/lib/types/server.d.ts +3 -2
  1123. package/dist/kernel/sdk-jsonrpc-server/lib/types/server.js +15 -6
  1124. package/dist/kernel/sdk-jsonrpc-server/package.json +2 -1
  1125. package/dist/kernel/sdk-protocol/lib/types/invariant.d.ts +1 -1
  1126. package/dist/kernel/sdk-protocol/package.json +1 -1
  1127. package/dist/kernel/session/lib/index.js +5 -1
  1128. package/dist/kernel/session/lib/types/index.d.ts +1 -1
  1129. package/dist/kernel/session/lib/types/index.js +1 -1
  1130. package/dist/kernel/session/lib/types/invariant.d.ts +1 -1
  1131. package/dist/kernel/session/lib/types/known-event-types.js +4 -0
  1132. package/dist/kernel/session/lib/types/types.d.ts +6 -1
  1133. package/dist/kernel/session/package.json +1 -1
  1134. package/dist/kernel/session-checkpoint-policy/lib/types/index.d.ts +1 -1
  1135. package/dist/kernel/session-checkpoint-policy/lib/types/invariant.d.ts +1 -1
  1136. package/dist/kernel/session-checkpoint-policy/package.json +1 -1
  1137. package/dist/kernel/session-log-export/lib/types/index.d.ts +1 -1
  1138. package/dist/kernel/session-log-export/lib/types/invariant.d.ts +1 -1
  1139. package/dist/kernel/session-log-export/package.json +2 -5
  1140. package/dist/kernel/session-persistence/lib/index.js +2 -2
  1141. package/dist/kernel/session-persistence/lib/types/coordinator.d.ts +1 -1
  1142. package/dist/kernel/session-persistence/lib/types/coordinator.js +2 -1
  1143. package/dist/kernel/session-persistence/lib/types/index.d.ts +1 -1
  1144. package/dist/kernel/session-persistence/lib/types/index.js +1 -1
  1145. package/dist/kernel/session-persistence/lib/types/invariant.d.ts +1 -1
  1146. package/dist/kernel/session-persistence/package.json +1 -1
  1147. package/dist/kernel/session-persistence-jsonl/lib/index.js +1 -1
  1148. package/dist/kernel/session-persistence-jsonl/lib/types/index.d.ts +2 -2
  1149. package/dist/kernel/session-persistence-jsonl/lib/types/index.js +1 -1
  1150. package/dist/kernel/session-persistence-jsonl/lib/types/invariant.d.ts +1 -1
  1151. package/dist/kernel/session-persistence-jsonl/package.json +1 -1
  1152. package/dist/kernel/session-persistence-sqlite/lib/index.js +1106 -376
  1153. package/dist/kernel/session-persistence-sqlite/lib/invariant.js +2 -2
  1154. package/dist/kernel/session-persistence-sqlite/lib/types/codec.d.ts +72 -0
  1155. package/dist/kernel/session-persistence-sqlite/lib/types/codec.js +304 -0
  1156. package/dist/kernel/session-persistence-sqlite/lib/types/compression.d.ts +46 -0
  1157. package/dist/kernel/session-persistence-sqlite/lib/types/compression.js +234 -0
  1158. package/dist/kernel/session-persistence-sqlite/lib/types/index.d.ts +23 -81
  1159. package/dist/kernel/session-persistence-sqlite/lib/types/index.js +28 -279
  1160. package/dist/kernel/session-persistence-sqlite/lib/types/invariant.d.ts +1 -1
  1161. package/dist/kernel/session-persistence-sqlite/lib/types/invariant.js +2 -2
  1162. package/dist/kernel/session-persistence-sqlite/lib/types/schema.d.ts +63 -85
  1163. package/dist/kernel/session-persistence-sqlite/lib/types/schema.js +293 -159
  1164. package/dist/kernel/session-persistence-sqlite/lib/types/sql.d.ts +15 -0
  1165. package/dist/kernel/session-persistence-sqlite/lib/types/sql.js +57 -0
  1166. package/dist/kernel/session-persistence-sqlite/lib/types/store.d.ts +66 -0
  1167. package/dist/kernel/session-persistence-sqlite/lib/types/store.js +394 -0
  1168. package/dist/kernel/session-persistence-sqlite/package.json +9 -3
  1169. package/dist/kernel/session-persistence-sqlite/resources/sql/begin-immediate.sql +1 -0
  1170. package/dist/kernel/session-persistence-sqlite/resources/sql/begin.sql +1 -0
  1171. package/dist/kernel/session-persistence-sqlite/resources/sql/commit.sql +1 -0
  1172. package/dist/kernel/session-persistence-sqlite/resources/sql/delete-events-from.sql +2 -0
  1173. package/dist/kernel/session-persistence-sqlite/resources/sql/foreign-keys-on.sql +1 -0
  1174. package/dist/kernel/session-persistence-sqlite/resources/sql/insert-event.sql +3 -0
  1175. package/dist/kernel/session-persistence-sqlite/resources/sql/insert-persistence-state.sql +2 -0
  1176. package/dist/kernel/session-persistence-sqlite/resources/sql/journal-mode-delete.sql +1 -0
  1177. package/dist/kernel/session-persistence-sqlite/resources/sql/journal-mode-persist.sql +1 -0
  1178. package/dist/kernel/session-persistence-sqlite/resources/sql/journal-mode-truncate.sql +1 -0
  1179. package/dist/kernel/session-persistence-sqlite/resources/sql/journal-mode-wal.sql +1 -0
  1180. package/dist/kernel/session-persistence-sqlite/resources/sql/mmap-off.sql +1 -0
  1181. package/dist/kernel/session-persistence-sqlite/resources/sql/rollback.sql +1 -0
  1182. package/dist/kernel/session-persistence-sqlite/resources/sql/schema.sql +30 -0
  1183. package/dist/kernel/session-persistence-sqlite/resources/sql/select-application-id.sql +1 -0
  1184. package/dist/kernel/session-persistence-sqlite/resources/sql/select-events-from.sql +4 -0
  1185. package/dist/kernel/session-persistence-sqlite/resources/sql/select-events.sql +4 -0
  1186. package/dist/kernel/session-persistence-sqlite/resources/sql/select-mmap-size.sql +1 -0
  1187. package/dist/kernel/session-persistence-sqlite/resources/sql/select-packed-predecessors.sql +6 -0
  1188. package/dist/kernel/session-persistence-sqlite/resources/sql/select-schema-objects.sql +4 -0
  1189. package/dist/kernel/session-persistence-sqlite/resources/sql/select-session.sql +4 -0
  1190. package/dist/kernel/session-persistence-sqlite/resources/sql/select-sessions.sql +3 -0
  1191. package/dist/kernel/session-persistence-sqlite/resources/sql/select-store-id.sql +3 -0
  1192. package/dist/kernel/session-persistence-sqlite/resources/sql/select-synchronous.sql +1 -0
  1193. package/dist/kernel/session-persistence-sqlite/resources/sql/select-tail-events.sql +5 -0
  1194. package/dist/kernel/session-persistence-sqlite/resources/sql/select-trusted-schema.sql +1 -0
  1195. package/dist/kernel/session-persistence-sqlite/resources/sql/select-user-object-count.sql +3 -0
  1196. package/dist/kernel/session-persistence-sqlite/resources/sql/select-user-version.sql +1 -0
  1197. package/dist/kernel/session-persistence-sqlite/resources/sql/set-application-id.sql +1 -0
  1198. package/dist/kernel/session-persistence-sqlite/resources/sql/set-user-version-17.sql +1 -0
  1199. package/dist/kernel/session-persistence-sqlite/resources/sql/synchronous-full.sql +1 -0
  1200. package/dist/kernel/session-persistence-sqlite/resources/sql/trusted-schema-off.sql +1 -0
  1201. package/dist/kernel/session-persistence-sqlite/resources/sql/update-session-revision.sql +3 -0
  1202. package/dist/kernel/session-persistence-sqlite/resources/sql/upsert-session.sql +13 -0
  1203. package/dist/kernel/session-projection/lib/index.js +56 -31
  1204. package/dist/kernel/session-projection/lib/types/index.d.ts +58 -35
  1205. package/dist/kernel/session-projection/lib/types/index.js +62 -37
  1206. package/dist/kernel/session-projection/lib/types/invariant.d.ts +1 -1
  1207. package/dist/kernel/session-projection/lib/types/types.d.ts +11 -4
  1208. package/dist/kernel/session-projection/package.json +1 -1
  1209. package/dist/kernel/session-projection-cache/lib/index.js +3 -3
  1210. package/dist/kernel/session-projection-cache/lib/types/index.d.ts +3 -3
  1211. package/dist/kernel/session-projection-cache/lib/types/index.js +6 -7
  1212. package/dist/kernel/session-projection-cache/lib/types/invariant.d.ts +1 -1
  1213. package/dist/kernel/session-projection-cache/package.json +1 -1
  1214. package/dist/kernel/session-query/lib/index.js +1 -1
  1215. package/dist/kernel/session-query/lib/types/corpus.d.ts +1 -1
  1216. package/dist/kernel/session-query/lib/types/index.d.ts +1 -1
  1217. package/dist/kernel/session-query/lib/types/index.js +1 -1
  1218. package/dist/kernel/session-query/lib/types/invariant.d.ts +1 -1
  1219. package/dist/kernel/session-query/package.json +1 -1
  1220. package/dist/kernel/session-query-sqlite/lib/index.js +2 -2
  1221. package/dist/kernel/session-query-sqlite/lib/types/index.d.ts +2 -2
  1222. package/dist/kernel/session-query-sqlite/lib/types/index.js +2 -2
  1223. package/dist/kernel/session-query-sqlite/lib/types/invariant.d.ts +1 -1
  1224. package/dist/kernel/session-query-sqlite/package.json +1 -1
  1225. package/dist/kernel/session-reference/lib/index.js +233 -111
  1226. package/dist/kernel/session-reference/lib/typert.host.d.ts +3 -0
  1227. package/dist/kernel/session-reference/lib/typert.host.js +458 -0
  1228. package/dist/kernel/session-reference/lib/typert.remote-client.d.ts +26 -0
  1229. package/dist/kernel/session-reference/lib/typert.remote-client.js +62 -0
  1230. package/dist/kernel/session-reference/lib/types/index.d.ts +26 -6
  1231. package/dist/kernel/session-reference/lib/types/index.js +231 -127
  1232. package/dist/kernel/session-reference/lib/types/invariant.d.ts +1 -1
  1233. package/dist/kernel/session-reference/lib/types/types.d.ts +14 -3
  1234. package/dist/kernel/session-reference/lib/types/types.js +6 -1
  1235. package/dist/kernel/session-reference/package.json +23 -3
  1236. package/dist/kernel/session-stats/lib/index.js +31 -12
  1237. package/dist/kernel/session-stats/lib/types/index.d.ts +1 -1
  1238. package/dist/kernel/session-stats/lib/types/invariant.d.ts +1 -1
  1239. package/dist/kernel/session-stats/lib/types/projection.d.ts +64 -2
  1240. package/dist/kernel/session-stats/lib/types/projection.js +31 -12
  1241. package/dist/kernel/session-stats/package.json +1 -1
  1242. package/dist/kernel/session-telemetry/lib/index.js +1 -1
  1243. package/dist/kernel/session-telemetry/lib/types/coordinator.d.ts +1 -1
  1244. package/dist/kernel/session-telemetry/lib/types/index.d.ts +1 -1
  1245. package/dist/kernel/session-telemetry/lib/types/index.js +1 -1
  1246. package/dist/kernel/session-telemetry/lib/types/invariant.d.ts +1 -1
  1247. package/dist/kernel/session-telemetry/package.json +1 -1
  1248. package/dist/kernel/session-telemetry-otel/lib/index.js +1 -1
  1249. package/dist/kernel/session-telemetry-otel/lib/types/index.d.ts +2 -2
  1250. package/dist/kernel/session-telemetry-otel/lib/types/index.js +1 -1
  1251. package/dist/kernel/session-telemetry-otel/lib/types/invariant.d.ts +1 -1
  1252. package/dist/kernel/session-telemetry-otel/package.json +1 -1
  1253. package/dist/kernel/session-title/lib/index.js +8 -4
  1254. package/dist/kernel/session-title/lib/types/index.d.ts +2 -2
  1255. package/dist/kernel/session-title/lib/types/index.js +5 -4
  1256. package/dist/kernel/session-title/lib/types/invariant.d.ts +1 -1
  1257. package/dist/kernel/session-title/lib/types/types.d.ts +3 -0
  1258. package/dist/kernel/session-title/package.json +1 -1
  1259. package/dist/kernel/session-title-all-prompts-llm/lib/index.js +1 -1
  1260. package/dist/kernel/session-title-all-prompts-llm/lib/types/index.d.ts +2 -2
  1261. package/dist/kernel/session-title-all-prompts-llm/lib/types/index.js +1 -1
  1262. package/dist/kernel/session-title-all-prompts-llm/lib/types/invariant.d.ts +1 -1
  1263. package/dist/kernel/session-title-all-prompts-llm/package.json +1 -1
  1264. package/dist/kernel/session-title-first-prompt-llm/lib/index.js +1 -1
  1265. package/dist/kernel/session-title-first-prompt-llm/lib/types/index.d.ts +2 -2
  1266. package/dist/kernel/session-title-first-prompt-llm/lib/types/index.js +1 -1
  1267. package/dist/kernel/session-title-first-prompt-llm/lib/types/invariant.d.ts +1 -1
  1268. package/dist/kernel/session-title-first-prompt-llm/package.json +1 -1
  1269. package/dist/kernel/session-title-llm/lib/index.js +1 -1
  1270. package/dist/kernel/session-title-llm/lib/types/index.d.ts +2 -2
  1271. package/dist/kernel/session-title-llm/lib/types/index.js +1 -1
  1272. package/dist/kernel/session-title-llm/lib/types/invariant.d.ts +1 -1
  1273. package/dist/kernel/session-title-llm/package.json +1 -1
  1274. package/dist/kernel/settings/lib/index.js +1 -1
  1275. package/dist/kernel/settings/lib/invariant.js +1 -1
  1276. package/dist/kernel/settings/lib/types/index.d.ts +2 -2
  1277. package/dist/kernel/settings/lib/types/index.js +1 -1
  1278. package/dist/kernel/settings/lib/types/invariant.d.ts +1 -1
  1279. package/dist/kernel/settings/lib/types/redact.d.ts +1 -1
  1280. package/dist/kernel/settings/package.json +1 -1
  1281. package/dist/kernel/settings-file/lib/index.js +2 -2
  1282. package/dist/kernel/settings-file/lib/types/index.d.ts +2 -2
  1283. package/dist/kernel/settings-file/lib/types/index.js +2 -2
  1284. package/dist/kernel/settings-file/lib/types/invariant.d.ts +1 -1
  1285. package/dist/kernel/settings-file/package.json +1 -1
  1286. package/dist/kernel/shell/lib/index.js +1 -1
  1287. package/dist/kernel/shell/lib/types/index.d.ts +1 -1
  1288. package/dist/kernel/shell/lib/types/index.js +1 -1
  1289. package/dist/kernel/shell/lib/types/invariant.d.ts +1 -1
  1290. package/dist/kernel/shell/package.json +1 -1
  1291. package/dist/kernel/shell-env/lib/index.js +2 -2
  1292. package/dist/kernel/shell-env/lib/types/index.d.ts +2 -2
  1293. package/dist/kernel/shell-env/lib/types/index.js +2 -2
  1294. package/dist/kernel/shell-env/lib/types/invariant.d.ts +1 -1
  1295. package/dist/kernel/shell-env/package.json +1 -1
  1296. package/dist/kernel/skill/lib/index.js +2 -2
  1297. package/dist/kernel/skill/lib/types/index.d.ts +2 -2
  1298. package/dist/kernel/skill/lib/types/index.js +2 -2
  1299. package/dist/kernel/skill/lib/types/invariant.d.ts +1 -1
  1300. package/dist/kernel/skill/package.json +1 -1
  1301. package/dist/kernel/skill-badge/assets/nomix-badge.md +6 -6
  1302. package/dist/kernel/skill-badge/assets/nomix-badge.png +0 -0
  1303. package/dist/kernel/skill-badge/lib/index.js +1 -1
  1304. package/dist/kernel/skill-badge/lib/types/index.d.ts +1 -1
  1305. package/dist/kernel/skill-badge/lib/types/index.js +1 -1
  1306. package/dist/kernel/skill-badge/lib/types/invariant.d.ts +1 -1
  1307. package/dist/kernel/skill-badge/package.json +1 -1
  1308. package/dist/kernel/skill-filesystem/lib/index.js +1 -1
  1309. package/dist/kernel/skill-filesystem/lib/types/index.d.ts +2 -2
  1310. package/dist/kernel/skill-filesystem/lib/types/index.js +1 -1
  1311. package/dist/kernel/skill-filesystem/lib/types/invariant.d.ts +1 -1
  1312. package/dist/kernel/skill-filesystem/package.json +1 -1
  1313. package/dist/kernel/spill/lib/index.js +1 -1
  1314. package/dist/kernel/spill/lib/types/index.d.ts +1 -1
  1315. package/dist/kernel/spill/lib/types/index.js +1 -1
  1316. package/dist/kernel/spill/lib/types/invariant.d.ts +1 -1
  1317. package/dist/kernel/spill/package.json +1 -1
  1318. package/dist/kernel/spill-local/lib/index.js +1 -1
  1319. package/dist/kernel/spill-local/lib/types/index.d.ts +2 -2
  1320. package/dist/kernel/spill-local/lib/types/index.js +1 -1
  1321. package/dist/kernel/spill-local/lib/types/invariant.d.ts +1 -1
  1322. package/dist/kernel/spill-local/package.json +1 -1
  1323. package/dist/kernel/spill-policy/lib/index.js +1 -1
  1324. package/dist/kernel/spill-policy/lib/types/index.d.ts +2 -2
  1325. package/dist/kernel/spill-policy/lib/types/index.js +1 -1
  1326. package/dist/kernel/spill-policy/lib/types/invariant.d.ts +1 -1
  1327. package/dist/kernel/spill-policy/package.json +1 -1
  1328. package/dist/kernel/storage/lib/index.js +1 -1
  1329. package/dist/kernel/storage/lib/types/index.d.ts +1 -1
  1330. package/dist/kernel/storage/lib/types/index.js +1 -1
  1331. package/dist/kernel/storage/lib/types/invariant.d.ts +1 -1
  1332. package/dist/kernel/storage/package.json +1 -1
  1333. package/dist/kernel/storage-domain/lib/index.js +1 -1
  1334. package/dist/kernel/storage-domain/lib/types/domain.d.ts +1 -1
  1335. package/dist/kernel/storage-domain/lib/types/index.d.ts +2 -2
  1336. package/dist/kernel/storage-domain/lib/types/index.js +1 -1
  1337. package/dist/kernel/storage-domain/lib/types/invariant.d.ts +1 -1
  1338. package/dist/kernel/storage-domain/package.json +1 -1
  1339. package/dist/kernel/storage-json/lib/index.js +1 -1
  1340. package/dist/kernel/storage-json/lib/types/index.d.ts +2 -2
  1341. package/dist/kernel/storage-json/lib/types/index.js +1 -1
  1342. package/dist/kernel/storage-json/lib/types/invariant.d.ts +1 -1
  1343. package/dist/kernel/storage-json/package.json +1 -1
  1344. package/dist/kernel/storage-sqlite/lib/index.js +1 -1
  1345. package/dist/kernel/storage-sqlite/lib/types/index.d.ts +2 -2
  1346. package/dist/kernel/storage-sqlite/lib/types/index.js +1 -1
  1347. package/dist/kernel/storage-sqlite/lib/types/invariant.d.ts +1 -1
  1348. package/dist/kernel/storage-sqlite/package.json +1 -1
  1349. package/dist/kernel/subagent/lib/index.js +124 -21
  1350. package/dist/kernel/subagent/lib/types/activation-setup-registry.d.ts +1 -1
  1351. package/dist/kernel/subagent/lib/types/child-agent.d.ts +1 -1
  1352. package/dist/kernel/subagent/lib/types/continuation.d.ts +22 -3
  1353. package/dist/kernel/subagent/lib/types/continuation.js +58 -7
  1354. package/dist/kernel/subagent/lib/types/index.d.ts +12 -1
  1355. package/dist/kernel/subagent/lib/types/index.js +17 -1
  1356. package/dist/kernel/subagent/lib/types/invariant.d.ts +1 -1
  1357. package/dist/kernel/subagent/lib/types/lifecycle.d.ts +1 -1
  1358. package/dist/kernel/subagent/lib/types/list-children.d.ts +1 -1
  1359. package/dist/kernel/subagent/lib/types/out-of-process.d.ts +2 -0
  1360. package/dist/kernel/subagent/lib/types/out-of-process.js +31 -1
  1361. package/dist/kernel/subagent/lib/types/projection.d.ts +55 -8
  1362. package/dist/kernel/subagent/lib/types/projection.js +30 -15
  1363. package/dist/kernel/subagent/lib/types/run-settlement.js +10 -3
  1364. package/dist/kernel/subagent/lib/types/types.d.ts +7 -0
  1365. package/dist/kernel/subagent/package.json +1 -1
  1366. package/dist/kernel/subagent-acp/lib/index.js +1 -1
  1367. package/dist/kernel/subagent-acp/lib/types/index.d.ts +2 -2
  1368. package/dist/kernel/subagent-acp/lib/types/index.js +1 -1
  1369. package/dist/kernel/subagent-acp/lib/types/invariant.d.ts +1 -1
  1370. package/dist/kernel/subagent-acp/package.json +1 -1
  1371. package/dist/kernel/subagent-claude-code/cordis.patch.yml +6 -0
  1372. package/dist/kernel/subagent-claude-code/lib/index.js +268 -74
  1373. package/dist/kernel/subagent-claude-code/lib/types/index.d.ts +18 -8
  1374. package/dist/kernel/subagent-claude-code/lib/types/index.js +36 -15
  1375. package/dist/kernel/subagent-claude-code/lib/types/invariant.d.ts +1 -1
  1376. package/dist/kernel/subagent-claude-code/lib/types/process.d.ts +5 -7
  1377. package/dist/kernel/subagent-claude-code/lib/types/process.js +12 -24
  1378. package/dist/kernel/subagent-claude-code/lib/types/run.d.ts +24 -7
  1379. package/dist/kernel/subagent-claude-code/lib/types/run.js +266 -40
  1380. package/dist/kernel/subagent-claude-code/package.json +10 -2
  1381. package/dist/kernel/subagent-codex/cordis.patch.yml +5 -0
  1382. package/dist/kernel/subagent-codex/lib/index.js +483 -92
  1383. package/dist/kernel/subagent-codex/lib/types/index.d.ts +13 -8
  1384. package/dist/kernel/subagent-codex/lib/types/index.js +34 -13
  1385. package/dist/kernel/subagent-codex/lib/types/invariant.d.ts +1 -1
  1386. package/dist/kernel/subagent-codex/lib/types/run.d.ts +17 -8
  1387. package/dist/kernel/subagent-codex/lib/types/run.js +235 -42
  1388. package/dist/kernel/subagent-codex/lib/types/wire.d.ts +49 -1
  1389. package/dist/kernel/subagent-codex/lib/types/wire.js +280 -33
  1390. package/dist/kernel/subagent-codex/package.json +10 -5
  1391. package/dist/kernel/subagent-fork-in-process/lib/index.js +1 -1
  1392. package/dist/kernel/subagent-fork-in-process/lib/types/index.d.ts +2 -2
  1393. package/dist/kernel/subagent-fork-in-process/lib/types/index.js +1 -1
  1394. package/dist/kernel/subagent-fork-in-process/lib/types/invariant.d.ts +1 -1
  1395. package/dist/kernel/subagent-fork-in-process/package.json +1 -1
  1396. package/dist/kernel/subagent-in-process-driver/lib/types/invariant.d.ts +1 -1
  1397. package/dist/kernel/subagent-in-process-driver/lib/types/structured.d.ts +1 -1
  1398. package/dist/kernel/subagent-in-process-driver/package.json +1 -1
  1399. package/dist/kernel/subagent-nomix-sdk/lib/index.js +1 -1
  1400. package/dist/kernel/subagent-nomix-sdk/lib/types/index.d.ts +2 -2
  1401. package/dist/kernel/subagent-nomix-sdk/lib/types/index.js +1 -1
  1402. package/dist/kernel/subagent-nomix-sdk/lib/types/invariant.d.ts +1 -1
  1403. package/dist/kernel/subagent-nomix-sdk/package.json +1 -1
  1404. package/dist/kernel/subagent-spawn-in-process/lib/index.js +1 -1
  1405. package/dist/kernel/subagent-spawn-in-process/lib/types/index.d.ts +2 -2
  1406. package/dist/kernel/subagent-spawn-in-process/lib/types/index.js +1 -1
  1407. package/dist/kernel/subagent-spawn-in-process/lib/types/invariant.d.ts +1 -1
  1408. package/dist/kernel/subagent-spawn-in-process/package.json +1 -1
  1409. package/dist/kernel/subprocess/lib/index.js +1 -1
  1410. package/dist/kernel/subprocess/lib/types/index.d.ts +1 -1
  1411. package/dist/kernel/subprocess/lib/types/index.js +1 -1
  1412. package/dist/kernel/subprocess/lib/types/invariant.d.ts +1 -1
  1413. package/dist/kernel/subprocess/package.json +1 -1
  1414. package/dist/kernel/subprocess-e2b/lib/index.js +1 -1
  1415. package/dist/kernel/subprocess-e2b/lib/types/index.d.ts +2 -2
  1416. package/dist/kernel/subprocess-e2b/lib/types/index.js +1 -1
  1417. package/dist/kernel/subprocess-e2b/lib/types/invariant.d.ts +1 -1
  1418. package/dist/kernel/subprocess-e2b/package.json +1 -1
  1419. package/dist/kernel/subprocess-local/lib/index.js +303 -1
  1420. package/dist/kernel/subprocess-local/lib/types/index.d.ts +1 -1
  1421. package/dist/kernel/subprocess-local/lib/types/invariant.d.ts +1 -1
  1422. package/dist/kernel/subprocess-local/lib/types/process-inspector.js +3 -0
  1423. package/dist/kernel/subprocess-local/lib/types/terminal.d.ts +6 -1
  1424. package/dist/kernel/subprocess-local/lib/types/terminal.js +78 -1
  1425. package/dist/kernel/subprocess-local/lib/types/windows-inspector.d.ts +80 -0
  1426. package/dist/kernel/subprocess-local/lib/types/windows-inspector.js +259 -0
  1427. package/dist/kernel/subprocess-local/package.json +2 -1
  1428. package/dist/kernel/system-prompt/lib/index.js +2 -2
  1429. package/dist/kernel/system-prompt/lib/types/index.d.ts +2 -2
  1430. package/dist/kernel/system-prompt/lib/types/index.js +2 -2
  1431. package/dist/kernel/system-prompt/lib/types/invariant.d.ts +1 -1
  1432. package/dist/kernel/system-prompt/package.json +1 -1
  1433. package/dist/kernel/terminal/lib/index.js +1 -1
  1434. package/dist/kernel/terminal/lib/types/index.d.ts +1 -1
  1435. package/dist/kernel/terminal/lib/types/index.js +1 -1
  1436. package/dist/kernel/terminal/lib/types/invariant.d.ts +1 -1
  1437. package/dist/kernel/terminal/package.json +1 -1
  1438. package/dist/kernel/terminal-bash/lib/index.js +86 -21
  1439. package/dist/kernel/terminal-bash/lib/types/config.d.ts +30 -6
  1440. package/dist/kernel/terminal-bash/lib/types/config.js +34 -4
  1441. package/dist/kernel/terminal-bash/lib/types/index.d.ts +8 -1
  1442. package/dist/kernel/terminal-bash/lib/types/index.js +65 -13
  1443. package/dist/kernel/terminal-bash/lib/types/invariant.d.ts +1 -1
  1444. package/dist/kernel/terminal-bash/package.json +2 -1
  1445. package/dist/kernel/time-context/lib/index.js +3 -3
  1446. package/dist/kernel/time-context/lib/invariant.js +3 -3
  1447. package/dist/kernel/time-context/lib/types/index.d.ts +2 -2
  1448. package/dist/kernel/time-context/lib/types/index.js +1 -1
  1449. package/dist/kernel/time-context/lib/types/invariant.d.ts +1 -1
  1450. package/dist/kernel/time-context/package.json +1 -1
  1451. package/dist/kernel/timeout/lib/types/invariant.d.ts +1 -1
  1452. package/dist/kernel/timeout/package.json +1 -1
  1453. package/dist/kernel/tmux-context/lib/index.js +3 -3
  1454. package/dist/kernel/tmux-context/lib/types/index.d.ts +2 -2
  1455. package/dist/kernel/tmux-context/lib/types/index.js +1 -1
  1456. package/dist/kernel/tmux-context/lib/types/invariant.d.ts +1 -1
  1457. package/dist/kernel/tmux-context/package.json +1 -1
  1458. package/dist/kernel/token-meter/lib/index.js +79 -23
  1459. package/dist/kernel/token-meter/lib/types/breakdown-projection.d.ts +76 -9
  1460. package/dist/kernel/token-meter/lib/types/breakdown-projection.js +22 -6
  1461. package/dist/kernel/token-meter/lib/types/index.d.ts +2 -2
  1462. package/dist/kernel/token-meter/lib/types/index.js +2 -2
  1463. package/dist/kernel/token-meter/lib/types/invariant.d.ts +1 -1
  1464. package/dist/kernel/token-meter/lib/types/usage-projection.d.ts +186 -25
  1465. package/dist/kernel/token-meter/lib/types/usage-projection.js +44 -15
  1466. package/dist/kernel/token-meter/package.json +1 -1
  1467. package/dist/kernel/tool-ask-user/lib/types/index.d.ts +1 -1
  1468. package/dist/kernel/tool-ask-user/lib/types/invariant.d.ts +1 -1
  1469. package/dist/kernel/tool-ask-user/package.json +1 -1
  1470. package/dist/kernel/tool-bash/lib/index.js +1 -1
  1471. package/dist/kernel/tool-bash/lib/types/index.d.ts +2 -2
  1472. package/dist/kernel/tool-bash/lib/types/index.js +1 -1
  1473. package/dist/kernel/tool-bash/lib/types/invariant.d.ts +1 -1
  1474. package/dist/kernel/tool-bash/package.json +1 -1
  1475. package/dist/kernel/tool-bash-persistent/lib/index.js +16 -6
  1476. package/dist/kernel/tool-bash-persistent/lib/types/index.d.ts +2 -2
  1477. package/dist/kernel/tool-bash-persistent/lib/types/index.js +24 -7
  1478. package/dist/kernel/tool-bash-persistent/lib/types/invariant.d.ts +1 -1
  1479. package/dist/kernel/tool-bash-persistent/package.json +1 -1
  1480. package/dist/kernel/tool-call-timeout-policy/lib/types/index.d.ts +1 -1
  1481. package/dist/kernel/tool-call-timeout-policy/lib/types/invariant.d.ts +1 -1
  1482. package/dist/kernel/tool-call-timeout-policy/package.json +1 -1
  1483. package/dist/kernel/tool-cordis/lib/index.js +655 -83
  1484. package/dist/kernel/tool-cordis/lib/types/api-catalog.js +439 -41
  1485. package/dist/kernel/tool-cordis/lib/types/fiber-state.d.ts +1 -1
  1486. package/dist/kernel/tool-cordis/lib/types/index.d.ts +1 -1
  1487. package/dist/kernel/tool-cordis/lib/types/inspect.d.ts +1 -1
  1488. package/dist/kernel/tool-cordis/lib/types/invariant.d.ts +1 -1
  1489. package/dist/kernel/tool-cordis/lib/types/providers.d.ts +1 -1
  1490. package/dist/kernel/tool-cordis/package.json +1 -1
  1491. package/dist/kernel/tool-fs/lib/index.js +81 -53
  1492. package/dist/kernel/tool-fs/lib/types/edit.d.ts +1 -1
  1493. package/dist/kernel/tool-fs/lib/types/index.d.ts +2 -2
  1494. package/dist/kernel/tool-fs/lib/types/index.js +1 -1
  1495. package/dist/kernel/tool-fs/lib/types/invariant.d.ts +1 -1
  1496. package/dist/kernel/tool-fs/lib/types/read-image.d.ts +17 -13
  1497. package/dist/kernel/tool-fs/lib/types/read-image.js +73 -29
  1498. package/dist/kernel/tool-fs/lib/types/read-target.d.ts +1 -1
  1499. package/dist/kernel/tool-fs/lib/types/read.d.ts +1 -1
  1500. package/dist/kernel/tool-fs/lib/types/sandbox.d.ts +1 -1
  1501. package/dist/kernel/tool-fs/lib/types/write.d.ts +1 -1
  1502. package/dist/kernel/tool-fs/package.json +1 -1
  1503. package/dist/kernel/tool-fs-search/lib/index.js +12 -8
  1504. package/dist/kernel/tool-fs-search/lib/types/direct-call.d.ts +1 -1
  1505. package/dist/kernel/tool-fs-search/lib/types/glob.d.ts +1 -1
  1506. package/dist/kernel/tool-fs-search/lib/types/grep.d.ts +1 -1
  1507. package/dist/kernel/tool-fs-search/lib/types/index.d.ts +2 -2
  1508. package/dist/kernel/tool-fs-search/lib/types/index.js +1 -1
  1509. package/dist/kernel/tool-fs-search/lib/types/invariant.d.ts +1 -1
  1510. package/dist/kernel/tool-fs-search/lib/types/search-core.d.ts +6 -7
  1511. package/dist/kernel/tool-fs-search/lib/types/search-core.js +12 -7
  1512. package/dist/kernel/tool-fs-search/package.json +1 -1
  1513. package/dist/kernel/tool-goal/lib/index.js +1 -1
  1514. package/dist/kernel/tool-goal/lib/types/authority.d.ts +1 -1
  1515. package/dist/kernel/tool-goal/lib/types/index.d.ts +2 -2
  1516. package/dist/kernel/tool-goal/lib/types/index.js +1 -1
  1517. package/dist/kernel/tool-goal/lib/types/invariant.d.ts +1 -1
  1518. package/dist/kernel/tool-goal/package.json +1 -1
  1519. package/dist/kernel/tool-jobs/lib/index.js +1 -1
  1520. package/dist/kernel/tool-jobs/lib/types/index.d.ts +2 -2
  1521. package/dist/kernel/tool-jobs/lib/types/index.js +1 -1
  1522. package/dist/kernel/tool-jobs/lib/types/invariant.d.ts +1 -1
  1523. package/dist/kernel/tool-jobs/package.json +1 -1
  1524. package/dist/kernel/tool-lsp/lib/index.js +1 -1
  1525. package/dist/kernel/tool-lsp/lib/types/index.d.ts +2 -2
  1526. package/dist/kernel/tool-lsp/lib/types/index.js +1 -1
  1527. package/dist/kernel/tool-lsp/lib/types/invariant.d.ts +1 -1
  1528. package/dist/kernel/tool-lsp/package.json +1 -1
  1529. package/dist/kernel/tool-pwsh/lib/index.js +1 -1
  1530. package/dist/kernel/tool-pwsh/lib/types/index.d.ts +2 -2
  1531. package/dist/kernel/tool-pwsh/lib/types/index.js +1 -1
  1532. package/dist/kernel/tool-pwsh/lib/types/invariant.d.ts +1 -1
  1533. package/dist/kernel/tool-pwsh/package.json +1 -1
  1534. package/dist/kernel/tool-pwsh-persistent/lib/index.js +407 -0
  1535. package/dist/kernel/tool-pwsh-persistent/lib/invariant.js +24 -0
  1536. package/dist/kernel/tool-pwsh-persistent/lib/types/index.d.ts +24 -0
  1537. package/dist/kernel/tool-pwsh-persistent/lib/types/index.js +465 -0
  1538. package/dist/kernel/tool-pwsh-persistent/lib/types/invariant.d.ts +16 -0
  1539. package/dist/kernel/tool-pwsh-persistent/lib/types/invariant.js +23 -0
  1540. package/dist/kernel/tool-pwsh-persistent/package.json +62 -0
  1541. package/dist/kernel/tool-ralph/lib/index.js +1 -1
  1542. package/dist/kernel/tool-ralph/lib/types/index.d.ts +2 -2
  1543. package/dist/kernel/tool-ralph/lib/types/index.js +1 -1
  1544. package/dist/kernel/tool-ralph/lib/types/invariant.d.ts +1 -1
  1545. package/dist/kernel/tool-ralph/package.json +1 -1
  1546. package/dist/kernel/tool-session-query/lib/index.js +1 -1
  1547. package/dist/kernel/tool-session-query/lib/types/index.d.ts +2 -2
  1548. package/dist/kernel/tool-session-query/lib/types/index.js +1 -1
  1549. package/dist/kernel/tool-session-query/lib/types/invariant.d.ts +1 -1
  1550. package/dist/kernel/tool-session-query/lib/types/operations.d.ts +1 -1
  1551. package/dist/kernel/tool-session-query/lib/types/service-boundary.d.ts +1 -1
  1552. package/dist/kernel/tool-session-query/lib/types/workspace-access.d.ts +1 -1
  1553. package/dist/kernel/tool-session-query/package.json +1 -1
  1554. package/dist/kernel/tool-skill/lib/index.js +1 -1
  1555. package/dist/kernel/tool-skill/lib/types/index.d.ts +2 -2
  1556. package/dist/kernel/tool-skill/lib/types/index.js +1 -1
  1557. package/dist/kernel/tool-skill/lib/types/invariant.d.ts +1 -1
  1558. package/dist/kernel/tool-skill/package.json +1 -1
  1559. package/dist/kernel/tool-str-replace-editor/lib/index.js +1 -1
  1560. package/dist/kernel/tool-str-replace-editor/lib/types/index.d.ts +2 -2
  1561. package/dist/kernel/tool-str-replace-editor/lib/types/index.js +1 -1
  1562. package/dist/kernel/tool-str-replace-editor/lib/types/invariant.d.ts +1 -1
  1563. package/dist/kernel/tool-str-replace-editor/package.json +1 -1
  1564. package/dist/kernel/tool-subagent/lib/index.js +11 -9
  1565. package/dist/kernel/tool-subagent/lib/types/index.d.ts +2 -2
  1566. package/dist/kernel/tool-subagent/lib/types/index.js +16 -9
  1567. package/dist/kernel/tool-subagent/lib/types/invariant.d.ts +1 -1
  1568. package/dist/kernel/tool-subagent/package.json +1 -1
  1569. package/dist/kernel/tool-subagent-control/lib/types/index.d.ts +1 -1
  1570. package/dist/kernel/tool-subagent-control/lib/types/invariant.d.ts +1 -1
  1571. package/dist/kernel/tool-subagent-control/lib/types/list-agents.d.ts +1 -1
  1572. package/dist/kernel/tool-subagent-control/package.json +1 -1
  1573. package/dist/kernel/tool-subagent-report/lib/index.js +2 -2
  1574. package/dist/kernel/tool-subagent-report/lib/types/index.d.ts +5 -5
  1575. package/dist/kernel/tool-subagent-report/lib/types/index.js +2 -2
  1576. package/dist/kernel/tool-subagent-report/lib/types/invariant.d.ts +1 -1
  1577. package/dist/kernel/tool-subagent-report/package.json +1 -1
  1578. package/dist/kernel/tool-terminal/lib/index.js +1 -1
  1579. package/dist/kernel/tool-terminal/lib/types/index.d.ts +2 -2
  1580. package/dist/kernel/tool-terminal/lib/types/index.js +1 -1
  1581. package/dist/kernel/tool-terminal/lib/types/invariant.d.ts +1 -1
  1582. package/dist/kernel/tool-terminal/package.json +1 -1
  1583. package/dist/kernel/tool-todo/lib/index.js +6 -3
  1584. package/dist/kernel/tool-todo/lib/types/index.d.ts +2 -2
  1585. package/dist/kernel/tool-todo/lib/types/index.js +3 -3
  1586. package/dist/kernel/tool-todo/lib/types/invariant.d.ts +1 -1
  1587. package/dist/kernel/tool-todo/lib/types/types.d.ts +3 -0
  1588. package/dist/kernel/tool-todo/package.json +1 -1
  1589. package/dist/kernel/tool-web/lib/index.js +102 -27
  1590. package/dist/kernel/tool-web/lib/types/fetch.d.ts +1 -1
  1591. package/dist/kernel/tool-web/lib/types/index.d.ts +6 -4
  1592. package/dist/kernel/tool-web/lib/types/index.js +6 -4
  1593. package/dist/kernel/tool-web/lib/types/invariant.d.ts +1 -1
  1594. package/dist/kernel/tool-web/lib/types/search.d.ts +24 -21
  1595. package/dist/kernel/tool-web/lib/types/search.js +109 -20
  1596. package/dist/kernel/tool-web/package.json +1 -1
  1597. package/dist/kernel/tool-workflow/lib/index.js +1 -1
  1598. package/dist/kernel/tool-workflow/lib/types/index.d.ts +2 -2
  1599. package/dist/kernel/tool-workflow/lib/types/index.js +1 -1
  1600. package/dist/kernel/tool-workflow/lib/types/invariant.d.ts +1 -1
  1601. package/dist/kernel/tool-workflow/package.json +1 -1
  1602. package/dist/kernel/tools/lib/index.js +2 -2
  1603. package/dist/kernel/tools/lib/types/index.d.ts +2 -2
  1604. package/dist/kernel/tools/lib/types/index.js +2 -2
  1605. package/dist/kernel/tools/lib/types/invariant.d.ts +1 -1
  1606. package/dist/kernel/tools/package.json +1 -1
  1607. package/dist/kernel/typert-generator/lib/index.js +8 -3
  1608. package/dist/kernel/typert-generator/lib/types/cordis-catalog.js +8 -3
  1609. package/dist/kernel/typert-generator/lib/types/invariant.d.ts +1 -1
  1610. package/dist/kernel/typert-generator/package.json +1 -1
  1611. package/dist/kernel/typert-loader/lib/index.js +1 -1
  1612. package/dist/kernel/typert-loader/lib/types/index.d.ts +2 -2
  1613. package/dist/kernel/typert-loader/lib/types/index.js +1 -1
  1614. package/dist/kernel/typert-loader/lib/types/invariant.d.ts +1 -1
  1615. package/dist/kernel/typert-loader/package.json +1 -1
  1616. package/dist/kernel/typert-protocol/lib/index.js +1 -1
  1617. package/dist/kernel/typert-protocol/lib/types/index.d.ts +1 -1
  1618. package/dist/kernel/typert-protocol/lib/types/index.js +1 -1
  1619. package/dist/kernel/typert-protocol/lib/types/invariant.d.ts +1 -1
  1620. package/dist/kernel/typert-protocol/lib/types/types.d.ts +1 -1
  1621. package/dist/kernel/typert-protocol/package.json +1 -1
  1622. package/dist/kernel/typert-registry/lib/index.js +1 -1
  1623. package/dist/kernel/typert-registry/lib/types/client/index.d.ts +1 -1
  1624. package/dist/kernel/typert-registry/lib/types/invariant.d.ts +1 -1
  1625. package/dist/kernel/typert-registry/lib/types/service.d.ts +1 -1
  1626. package/dist/kernel/typert-registry/lib/types/service.js +1 -1
  1627. package/dist/kernel/typert-registry/package.json +1 -1
  1628. package/dist/kernel/user-approval/lib/index.js +2 -2
  1629. package/dist/kernel/user-approval/lib/invariant.js +2 -2
  1630. package/dist/kernel/user-approval/lib/types/index.d.ts +2 -2
  1631. package/dist/kernel/user-approval/lib/types/index.js +2 -2
  1632. package/dist/kernel/user-approval/lib/types/invariant.d.ts +1 -1
  1633. package/dist/kernel/user-approval/package.json +1 -1
  1634. package/dist/kernel/user-questions/lib/index.js +1 -1
  1635. package/dist/kernel/user-questions/lib/types/index.d.ts +1 -1
  1636. package/dist/kernel/user-questions/lib/types/index.js +1 -1
  1637. package/dist/kernel/user-questions/lib/types/invariant.d.ts +1 -1
  1638. package/dist/kernel/user-questions/package.json +1 -1
  1639. package/dist/kernel/web/lib/index.js +2 -2
  1640. package/dist/kernel/web/lib/types/index.d.ts +2 -2
  1641. package/dist/kernel/web/lib/types/index.js +2 -2
  1642. package/dist/kernel/web/lib/types/invariant.d.ts +1 -1
  1643. package/dist/kernel/web/lib/types/types.d.ts +4 -3
  1644. package/dist/kernel/web/package.json +1 -1
  1645. package/dist/kernel/web-app/cordis.patch.yml +27 -6
  1646. package/dist/kernel/web-app/lib/index.js +112 -16
  1647. package/dist/kernel/web-app/lib/startup.js +4 -2
  1648. package/dist/kernel/web-app/lib/types/index.d.ts +10 -6
  1649. package/dist/kernel/web-app/lib/types/index.js +117 -24
  1650. package/dist/kernel/web-app/lib/types/invariant.d.ts +1 -1
  1651. package/dist/kernel/web-app/lib/types/startup.d.ts +4 -2
  1652. package/dist/kernel/web-app/lib/types/startup.js +4 -1
  1653. package/dist/kernel/web-app/package.json +12 -2
  1654. package/dist/kernel/web-fetch-http/lib/index.js +2 -2
  1655. package/dist/kernel/web-fetch-http/lib/types/index.d.ts +3 -3
  1656. package/dist/kernel/web-fetch-http/lib/types/index.js +2 -2
  1657. package/dist/kernel/web-fetch-http/lib/types/invariant.d.ts +1 -1
  1658. package/dist/kernel/web-fetch-http/package.json +1 -1
  1659. package/dist/kernel/web-frontend/dist/assets/index-BnapMmQ_.css +1 -0
  1660. package/dist/kernel/web-frontend/dist/assets/index-Dx7Ws_OC.js +96 -0
  1661. package/dist/kernel/web-frontend/dist/assets/langs/{php-D-uCvoST.js → php-DDkx9sim.js} +2 -2
  1662. package/dist/{assets/web/assets/langs/ruby-DEItuUFs.js → kernel/web-frontend/dist/assets/langs/ruby-DCxyoPen.js} +2 -2
  1663. package/dist/kernel/web-frontend/dist/assets/{vendor-Cjbwl5VI.js → vendor-D22_Mp1f.js} +2 -2
  1664. package/dist/kernel/web-frontend/dist/favicon.svg +8 -0
  1665. package/dist/kernel/web-frontend/dist/index.html +5 -5
  1666. package/dist/kernel/web-frontend/package.json +5 -8
  1667. package/dist/kernel/web-search-deepseek/lib/index.js +2 -2
  1668. package/dist/kernel/web-search-deepseek/lib/types/index.d.ts +2 -2
  1669. package/dist/kernel/web-search-deepseek/lib/types/index.js +1 -1
  1670. package/dist/kernel/web-search-deepseek/lib/types/invariant.d.ts +1 -1
  1671. package/dist/kernel/web-search-deepseek/lib/types/provider.js +1 -1
  1672. package/dist/kernel/web-search-deepseek/package.json +1 -1
  1673. package/dist/kernel/web-search-exa/lib/index.js +2 -2
  1674. package/dist/kernel/web-search-exa/lib/types/index.d.ts +2 -2
  1675. package/dist/kernel/web-search-exa/lib/types/index.js +1 -1
  1676. package/dist/kernel/web-search-exa/lib/types/invariant.d.ts +1 -1
  1677. package/dist/kernel/web-search-exa/lib/types/provider.js +1 -1
  1678. package/dist/kernel/web-search-exa/package.json +1 -1
  1679. package/dist/kernel/web-search-perplexity/lib/index.js +2 -2
  1680. package/dist/kernel/web-search-perplexity/lib/types/index.d.ts +2 -2
  1681. package/dist/kernel/web-search-perplexity/lib/types/index.js +1 -1
  1682. package/dist/kernel/web-search-perplexity/lib/types/invariant.d.ts +1 -1
  1683. package/dist/kernel/web-search-perplexity/lib/types/provider.js +1 -1
  1684. package/dist/kernel/web-search-perplexity/package.json +1 -1
  1685. package/dist/kernel/workflow/lib/index.js +1 -1
  1686. package/dist/kernel/workflow/lib/types/index.d.ts +1 -1
  1687. package/dist/kernel/workflow/lib/types/index.js +1 -1
  1688. package/dist/kernel/workflow/lib/types/invariant.d.ts +1 -1
  1689. package/dist/kernel/workflow/package.json +1 -1
  1690. package/dist/kernel/workflow-worker-thread/lib/index.js +1 -1
  1691. package/dist/kernel/workflow-worker-thread/lib/types/host.d.ts +1 -1
  1692. package/dist/kernel/workflow-worker-thread/lib/types/index.d.ts +2 -2
  1693. package/dist/kernel/workflow-worker-thread/lib/types/index.js +1 -1
  1694. package/dist/kernel/workflow-worker-thread/lib/types/invariant.d.ts +1 -1
  1695. package/dist/kernel/workflow-worker-thread/package.json +1 -1
  1696. package/dist/kernel/workspace/lib/index.js +1 -1
  1697. package/dist/kernel/workspace/lib/invariant.js +1 -1
  1698. package/dist/kernel/workspace/lib/types/index.d.ts +1 -1
  1699. package/dist/kernel/workspace/lib/types/index.js +1 -1
  1700. package/dist/kernel/workspace/lib/types/invariant.d.ts +1 -1
  1701. package/dist/kernel/workspace/package.json +1 -1
  1702. package/dist/licenses/landlock-run.LICENSE +28 -0
  1703. package/dist/native/landlock-run/linux-arm64/landlock-run +0 -0
  1704. package/dist/native/landlock-run/linux-x64/landlock-run +0 -0
  1705. package/dist/plugins/manifest.json +50 -10
  1706. package/dist/runtime/index.js +0 -2
  1707. package/package.json +14 -17
  1708. package/dist/assets/web/assets/index-B_fSXASy.css +0 -1
  1709. package/dist/assets/web/assets/index-B_sZ-Gsu.js +0 -112
  1710. package/dist/cli/builtin-registry.d.ts +0 -5
  1711. package/dist/cli/profile-boot-CeU09iFc.js +0 -2
  1712. package/dist/kernel/app-boot/lib/types/legacy-branding.d.ts +0 -6
  1713. package/dist/kernel/app-boot/lib/types/legacy-branding.js +0 -18
  1714. package/dist/kernel/client-schema-form/lib/index.js +0 -137
  1715. package/dist/kernel/client-schema-form/lib/types/index.d.ts +0 -10
  1716. package/dist/kernel/client-schema-form/lib/types/index.js +0 -9
  1717. package/dist/kernel/client-schema-form/lib/types/model.d.ts +0 -66
  1718. package/dist/kernel/client-schema-form/lib/types/model.js +0 -153
  1719. package/dist/kernel/client-ui-subagent/lib/types/client/SubagentCatalogAction.d.ts +0 -18
  1720. package/dist/kernel/client-ui-theme/lib/styles/base.css +0 -15
  1721. package/dist/kernel/client-ui-theme/lib/styles/design-platform.css +0 -338
  1722. package/dist/kernel/client-ui-theme/lib/styles/gradient-shadow-text.css +0 -232
  1723. package/dist/kernel/client-ui-theme/lib/styles/scrollbar.css +0 -90
  1724. package/dist/kernel/client-ui-theme/lib/styles/shiki.css +0 -31
  1725. package/dist/kernel/client-web/lib/types/AppRoot.d.ts +0 -16
  1726. package/dist/kernel/client-web/lib/types/AppRoot.js +0 -27
  1727. package/dist/kernel/client-web/lib/types/DocumentTitle.js +0 -16
  1728. package/dist/kernel/client-web/lib/types/app-shell.d.ts +0 -28
  1729. package/dist/kernel/client-web/lib/types/app-shell.js +0 -27
  1730. package/dist/kernel/client-web/lib/types/app.d.ts +0 -21
  1731. package/dist/kernel/client-web-react/lib/index.js +0 -810
  1732. package/dist/kernel/client-web-react/lib/types/index.d.ts +0 -16
  1733. package/dist/kernel/client-web-react/lib/types/index.js +0 -6
  1734. package/dist/kernel/client-web-react/lib/types/use-invoke.d.ts +0 -9
  1735. package/dist/kernel/client-web-react/lib/types/use-invoke.js +0 -52
  1736. package/dist/kernel/skill-badge/assets/nomix-badge.svg +0 -8
  1737. package/dist/kernel/web-frontend/dist/assets/index-B_fSXASy.css +0 -1
  1738. package/dist/kernel/web-frontend/dist/assets/index-B_sZ-Gsu.js +0 -112
  1739. /package/dist/kernel/{client-web-react/lib/types → client-ui-renderer/lib/types/client}/bind.js +0 -0
  1740. /package/dist/kernel/{client-web-react/lib/types → client-ui-renderer/lib/types/client}/session-provider.js +0 -0
@@ -10,7 +10,6 @@ window.__ModuleLoader__.load({
10
10
  let react_jsx_runtime = require("react/jsx-runtime");
11
11
  let react = require("react");
12
12
  let _nomix_ai_nomix_client_ui_primitives = require("@nomix-ai/nomix-client-ui-primitives");
13
- let _nomix_ai_nomix_client_ui_attachment = require("@nomix-ai/nomix-client-ui-attachment");
14
13
  //#region lib/types/client/stores.js
15
14
  /**
16
15
  * Per-session chat store shared by conversation and details registrations.
@@ -126,17 +125,19 @@ window.__ModuleLoader__.load({
126
125
  * @param text - serialized prompt text.
127
126
  * @param imageIds - ordered draft-local attachment ids.
128
127
  * @param mode - queue or steer delivery selected by composer policy.
128
+ * @param signal - optional cancellation for the complete Host admission.
129
+ * @returns the Host admission outcome; local attachment preparation failures reject.
129
130
  */
130
- async sendSession(session, text, imageIds, mode) {
131
+ async sendSession(session, text, imageIds, mode, signal) {
131
132
  const attachments = this.draftImages(imageIds);
132
133
  if (attachments.length !== imageIds.length) throw new Error("conversation.sendSession: one or more draft images are no longer available");
133
134
  const content = [...await this.serializeImages(attachments.map((attachment) => attachment.file)), ...text === "" ? [] : [{
134
135
  type: "text",
135
136
  text
136
137
  }]];
137
- const result = await session.prompt(content, mode);
138
- if (!result.ok) throw new Error(`conversation.send failed: ${result.error.code}: ${result.error.message}`);
138
+ if (!(await session.prompt(content, mode, signal)).ok) return { kind: "error" };
139
139
  this.releaseDraftImages(attachments);
140
+ return { kind: "success" };
140
141
  }
141
142
  /**
142
143
  * Create runtime-only draft images and their object URLs.
@@ -166,6 +167,18 @@ window.__ModuleLoader__.load({
166
167
  return attachments;
167
168
  }
168
169
  /**
170
+ * Serialize ordered draft images to command-submit wire payloads without
171
+ * sending or releasing them (the composer releases only after the command
172
+ * settles successfully).
173
+ * @param imageIds - ordered draft-local attachment ids.
174
+ * @returns base64 payloads in id order.
175
+ */
176
+ async serializeDraftImages(imageIds) {
177
+ const attachments = this.draftImages(imageIds);
178
+ if (attachments.length !== imageIds.length) throw new Error("conversation.serializeDraftImages: one or more draft images are no longer available");
179
+ return Promise.all(attachments.map((attachment) => this.encodeImage(attachment.file)));
180
+ }
181
+ /**
169
182
  * Release one browser-owned draft image and preview URL.
170
183
  * @param id - draft attachment id.
171
184
  */
@@ -271,10 +284,16 @@ window.__ModuleLoader__.load({
271
284
  serializeImages(images) {
272
285
  return Promise.all(images.map(async (file) => ({
273
286
  type: "image",
287
+ ...await this.encodeImage(file)
288
+ })));
289
+ }
290
+ /** Canonical base64 wire form of one browser image file. */
291
+ async encodeImage(file) {
292
+ return {
274
293
  mediaType: imageMediaType(file.type),
275
294
  data: bytesToBase64(new Uint8Array(await file.arrayBuffer())),
276
295
  ...file.name === "" ? {} : { name: file.name }
277
- })));
296
+ };
278
297
  }
279
298
  };
280
299
  function imageMediaType(value) {
@@ -348,6 +367,18 @@ window.__ModuleLoader__.load({
348
367
  subscribe: (fn) => session.subscribe(fn)
349
368
  };
350
369
  }
370
+ //#endregion
371
+ //#region lib/types/client/input/machine.js
372
+ const REFERENCE_PLACEHOLDER_RE = /[\uE100-\uE11D\uFFFC]/gu;
373
+ /**
374
+ * Build the inline draft text whose leading marker is decorated as the
375
+ * reference icon in the backdrop.
376
+ * @param reference - reference insertion with its cached display projection.
377
+ * @returns display text with one marker glyph followed by the complete label.
378
+ */
379
+ function referenceDraftText(reference) {
380
+ return `@${reference.label}`;
381
+ }
351
382
  /** The machine never writes the queue; the wiring layer overlays the queue store's projection. */
352
383
  const EMPTY_QUEUE$1 = [];
353
384
  /** Undo ring depth (bounded self-managed transaction log). */
@@ -391,6 +422,24 @@ window.__ModuleLoader__.load({
391
422
  };
392
423
  }
393
424
  /**
425
+ * Expand the draft's reference ranges into their occurrences' clipboard text
426
+ * for persistence and clipboard projection. Table order is offset order, so
427
+ * one linear walk pairs ranges with entries.
428
+ * @param state - published input state.
429
+ * @returns the plain-text projection of the draft.
430
+ */
431
+ function projectClipboard(state) {
432
+ const { draft, occurrences } = state;
433
+ if (occurrences.length === 0) return draft;
434
+ let out = "";
435
+ let cursor = 0;
436
+ for (const o of occurrences) {
437
+ out += draft.slice(cursor, o.offset) + o.clipboardText;
438
+ cursor = o.offset + o.length;
439
+ }
440
+ return out + draft.slice(cursor);
441
+ }
442
+ /**
394
443
  * Pure input machine, one instance per session (per-session isolation is by
395
444
  * construction). The machine constructs one AbortController per SubmitAttempt
396
445
  * at enter time and aborts it itself on release; the shell never aborts, it
@@ -429,7 +478,8 @@ window.__ModuleLoader__.load({
429
478
  phase: this.phase,
430
479
  ...c ? { claim: {
431
480
  token: c.token,
432
- ...c.hint !== void 0 ? { hint: c.hint } : {}
481
+ ...c.hint !== void 0 ? { hint: c.hint } : {},
482
+ ...c.images === true ? { images: true } : {}
433
483
  } } : {},
434
484
  occurrences: this.occurrences,
435
485
  ...this.paste !== void 0 ? { paste: this.paste } : {},
@@ -481,14 +531,14 @@ window.__ModuleLoader__.load({
481
531
  }
482
532
  /**
483
533
  * Reconcile the occurrence table with one edit (old-draft coordinates):
484
- * entries past the range shift by the length delta; entries whose
485
- * placeholder sits inside the replaced range go away whole (a
486
- * deletion/replacement intersecting a placeholder acts on the whole chip).
534
+ * entries past the range shift by the length delta; an edit that intersects
535
+ * a reference range removes its structured occurrence and leaves the edited
536
+ * characters as ordinary draft text.
487
537
  */
488
538
  reconcile(range) {
489
539
  const delta = range.insertedLength - (range.end - range.start);
490
540
  const kept = [];
491
- for (const o of this.occurrences) if (o.offset < range.start) kept.push(o);
541
+ for (const o of this.occurrences) if (o.offset + o.length <= range.start) kept.push(o);
492
542
  else if (o.offset >= range.end) kept.push(delta === 0 ? o : {
493
543
  ...o,
494
544
  offset: o.offset + delta
@@ -503,14 +553,16 @@ window.__ModuleLoader__.load({
503
553
  }
504
554
  }
505
555
  /** Mint one occurrence at a draft offset. */
506
- mint(reference, offset) {
556
+ mint(reference, offset, length) {
507
557
  this.occurrenceSeq += 1;
508
558
  return {
509
559
  occurrenceId: this.occurrenceSeq,
510
560
  source: reference.source,
511
561
  ref: reference.ref,
512
562
  offset,
563
+ length,
513
564
  label: reference.label,
565
+ ...reference.appearance === void 0 ? {} : { appearance: reference.appearance },
514
566
  clipboardText: reference.clipboardText
515
567
  };
516
568
  }
@@ -567,22 +619,24 @@ window.__ModuleLoader__.load({
567
619
  return [];
568
620
  }
569
621
  /**
570
- * Shared chip-insertion transaction: replace [span) with one placeholder
622
+ * Shared reference-insertion transaction: replace [span) with one inline
571
623
  * occurrence (insert-ref and paste-upgrade both land here). A separating
572
- * space follows the chip unless one is already next.
573
- * @returns the inserted length (placeholder plus optional gap).
624
+ * space follows the reference unless one is already next.
625
+ * @returns the inserted length (display text plus optional gap).
574
626
  */
575
627
  replaceSpanWithChip(reference, span) {
576
628
  this.pushTxn();
577
629
  this.typingRun = void 0;
578
630
  const tail = this.draft.slice(span.end);
579
- const inserted = "" + (tail.length === 0 || tail[0] !== " " ? " " : "");
631
+ const gap = tail.length === 0 || tail[0] !== " " ? " " : "";
632
+ const displayText = referenceDraftText(reference);
633
+ const inserted = displayText + gap;
580
634
  this.reconcile({
581
635
  start: span.start,
582
636
  end: span.end,
583
637
  insertedLength: inserted.length
584
638
  });
585
- this.withMinted([this.mint(reference, span.start)]);
639
+ this.withMinted([this.mint(reference, span.start, displayText.length)]);
586
640
  this.adopt(this.draft.slice(0, span.start) + inserted + tail);
587
641
  this.watchClaim();
588
642
  return inserted.length;
@@ -671,7 +725,7 @@ window.__ModuleLoader__.load({
671
725
  return [];
672
726
  }
673
727
  /**
674
- * Paste as one transaction: the text (U+FFFC-sanitized) replaces the
728
+ * Paste as one transaction: the text (reference-placeholder-sanitized) replaces the
675
729
  * selection; hot-snapshot sync matches componentize inside the SAME
676
730
  * transaction (one undo returns to pre-paste); a match attempt opens for
677
731
  * the async remainder while the phase still accepts reference mutations.
@@ -679,7 +733,7 @@ window.__ModuleLoader__.load({
679
733
  onPasteBegin(rawText, selection, components = [], generation = 0) {
680
734
  const { start, end } = selection;
681
735
  if (start < 0 || start > end || end > this.draft.length) return [];
682
- const text = rawText.split("").join("");
736
+ const text = rawText.replace(REFERENCE_PLACEHOLDER_RE, "");
683
737
  this.pushTxn(selection);
684
738
  this.typingRun = void 0;
685
739
  const sorted = [...components].sort((a, b) => a.start - b.start);
@@ -688,8 +742,9 @@ window.__ModuleLoader__.load({
688
742
  let cursor = 0;
689
743
  for (const c of sorted) {
690
744
  inserted += text.slice(cursor, c.start);
691
- minted.push(this.mint(c.reference, start + inserted.length));
692
- inserted += "";
745
+ const displayText = referenceDraftText(c.reference);
746
+ minted.push(this.mint(c.reference, start + inserted.length, displayText.length));
747
+ inserted += displayText;
693
748
  cursor = c.end;
694
749
  }
695
750
  inserted += text.slice(cursor);
@@ -775,8 +830,11 @@ window.__ModuleLoader__.load({
775
830
  draft: this.draft
776
831
  }];
777
832
  }
833
+ const attempt = this.beginAttempt(mode);
834
+ this.phase = "submitting";
778
835
  return [{
779
836
  type: "default-sink",
837
+ attempt,
780
838
  draft: this.draft,
781
839
  mode
782
840
  }];
@@ -794,13 +852,18 @@ window.__ModuleLoader__.load({
794
852
  args: argsAfter(attempt.draftSnapshot, outcome.claim.token)
795
853
  }];
796
854
  }
855
+ if (outcome === void 0) {
856
+ this.phase = "submitting";
857
+ return [{
858
+ type: "default-sink",
859
+ attempt,
860
+ draft: attempt.draftSnapshot,
861
+ mode: attempt.mode
862
+ }];
863
+ }
797
864
  this.inflight = void 0;
798
865
  this.phase = "plain";
799
- return outcome === void 0 ? [{
800
- type: "default-sink",
801
- draft: attempt.draftSnapshot,
802
- mode: attempt.mode
803
- }] : [];
866
+ return [];
804
867
  }
805
868
  onAdjudicationFailed(attempt, message) {
806
869
  if (this.phase !== "adjudicating" || this.inflight?.attempt.seq !== attempt.seq) return [];
@@ -820,7 +883,8 @@ window.__ModuleLoader__.load({
820
883
  this.phase = "plain";
821
884
  this.claim = void 0;
822
885
  this.occurrences = [];
823
- this.adopt("");
886
+ const snapshot = flight.attempt.draftSnapshot;
887
+ this.adopt(this.draft !== snapshot && this.draft.startsWith(snapshot) ? this.draft.slice(snapshot.length) : "");
824
888
  this.log = [];
825
889
  this.redoStack = [];
826
890
  this.typingRun = void 0;
@@ -831,10 +895,10 @@ window.__ModuleLoader__.load({
831
895
  text: ev.outcome.text
832
896
  }] : [];
833
897
  }
834
- const text = ev.message ?? ev.outcome?.text ?? "command failed";
898
+ const text = ev.message ?? ev.outcome?.text;
835
899
  if (this.draft === flight.attempt.draftSnapshot && this.claim !== void 0 && this.draft.startsWith(this.claim.token)) {
836
900
  this.phase = "claimed";
837
- return [{
901
+ return text === void 0 ? [] : [{
838
902
  type: "notice",
839
903
  level: "error",
840
904
  text
@@ -842,15 +906,15 @@ window.__ModuleLoader__.load({
842
906
  }
843
907
  this.phase = "plain";
844
908
  this.claim = void 0;
845
- return [{
909
+ return text === void 0 ? [] : [{
846
910
  type: "notice",
847
911
  level: "error",
848
912
  text
849
913
  }];
850
914
  }
851
- /** Ordinary send accepted: clear as a commit (no undo unit; sent content
852
- * must not be resurrectable — same discipline as submit-settled success). */
915
+ /** Cut undo state after an accepted image-only send. */
853
916
  onSendCommitted() {
917
+ if (this.phase !== "plain") return [];
854
918
  this.claim = void 0;
855
919
  this.occurrences = [];
856
920
  this.adopt("");
@@ -893,7 +957,7 @@ window.__ModuleLoader__.load({
893
957
  deps;
894
958
  /** Published machine state + queue overlay (the InputZone currency source). */
895
959
  state;
896
- /** Latest surfaced notice (null after clear); the wiring renders it beside the error strip. */
960
+ /** Latest surfaced notice (null after clear); the bar renders errors as banners and information inline. */
897
961
  notices = (0, _nomix_ai_nomix_client_runtime_client.createSnapshotStore)(null);
898
962
  /** The public provide-channel action face (one stable identity per session). */
899
963
  actions = {
@@ -913,10 +977,12 @@ window.__ModuleLoader__.load({
913
977
  };
914
978
  core = new InputMachine({ now: () => Date.now() });
915
979
  noticeSeq = 0;
916
- lastDraft = "";
980
+ lastMirroredDraft = "";
917
981
  imageIds = [];
982
+ /** One image-only send at a time: Enter during the Host round-trip is a no-op. */
983
+ imageSendInFlight = false;
918
984
  disposed = false;
919
- /** Draft persistence mirror (chat store write; receives the clipboard projection, never raw placeholders). */
985
+ /** Draft persistence mirror (chat store write; receives the clipboard projection, never display-only ranges). */
920
986
  mirrorFn;
921
987
  constructor(deps) {
922
988
  this.deps = deps;
@@ -946,8 +1012,13 @@ window.__ModuleLoader__.load({
946
1012
  this.publish();
947
1013
  return true;
948
1014
  }
949
- /** Remove one image id from this draft. */
1015
+ /**
1016
+ * Remove one image id from this draft. Busy admission phases refuse, like
1017
+ * {@link addImages}: a removal landing while a command submit serializes
1018
+ * would otherwise vanish from the rail yet still ride the in-flight send.
1019
+ */
950
1020
  removeImage(id) {
1021
+ if (this.snapshot.phase === "adjudicating" || this.snapshot.phase === "submitting") return;
951
1022
  const next = this.imageIds.filter((candidate) => candidate !== id);
952
1023
  if (next.length === this.imageIds.length) return;
953
1024
  this.imageIds = next;
@@ -965,15 +1036,6 @@ window.__ModuleLoader__.load({
965
1036
  this.publish();
966
1037
  }
967
1038
  /**
968
- * Restore a failed attempt before any images added after its admission.
969
- * @param ids - failed attempt image ids.
970
- */
971
- restoreImages(ids) {
972
- const current = new Set(this.imageIds);
973
- this.imageIds = [...ids.filter((id) => !current.has(id)), ...this.imageIds];
974
- this.publish();
975
- }
976
- /**
977
1039
  * Clear the draft as a successful-send commit: no undo unit is recorded and
978
1040
  * the undo history is cut, so Ctrl/Cmd-Z cannot resurrect sent content
979
1041
  * (the command path gets the same discipline from submit-settled success).
@@ -1021,7 +1083,24 @@ window.__ModuleLoader__.load({
1021
1083
  */
1022
1084
  submit(mode = "queue") {
1023
1085
  if (this.snapshot.draft.trim() === "" && this.imageIds.length > 0) {
1024
- if (this.snapshot.phase === "plain") this.deps.defaultSink("", [...this.imageIds], mode);
1086
+ if (this.snapshot.phase === "plain" && !this.imageSendInFlight) {
1087
+ const imageIds = [...this.imageIds];
1088
+ this.imageSendInFlight = true;
1089
+ this.deps.defaultSink("", imageIds, mode, new AbortController().signal).then((outcome) => {
1090
+ this.imageSendInFlight = false;
1091
+ if (this.disposed) return;
1092
+ if (outcome.kind === "success") this.commitSend(imageIds);
1093
+ else if (outcome.text !== void 0) this.notify("error", outcome.text);
1094
+ }, (error) => {
1095
+ this.imageSendInFlight = false;
1096
+ if (!this.disposed) this.notify("error", error instanceof Error ? error.message : String(error));
1097
+ });
1098
+ }
1099
+ return;
1100
+ }
1101
+ const before = this.snapshot;
1102
+ if (before.phase === "claimed" && this.imageIds.length > 0 && before.claim?.images !== true) {
1103
+ this.notify("error", this.deps.commandImages.unsupportedNotice(before.claim?.token ?? before.draft));
1025
1104
  return;
1026
1105
  }
1027
1106
  this.run(this.core.dispatch({
@@ -1149,13 +1228,19 @@ window.__ModuleLoader__.load({
1149
1228
  * a scan-derived decoration, never state.
1150
1229
  * @param text - the plain reference text to splice in (e.g. `/name `).
1151
1230
  * @param span - pick-time span snapshot (draftRev CAS).
1231
+ * @param keepCompleting - re-track at the caret after the splice so an open
1232
+ * token (a directory pick's trailing slash) reopens the menu.
1152
1233
  * @returns whether the text was applied.
1153
1234
  */
1154
- insertText(text, span) {
1235
+ insertText(text, span, keepCompleting = false) {
1155
1236
  const snapshot = this.core.state;
1156
1237
  if (span.draftRev !== snapshot.draftRev) return false;
1157
1238
  const draft = snapshot.draft;
1158
1239
  this.setDraft(draft.slice(0, span.start) + text + draft.slice(span.end));
1240
+ if (keepCompleting) {
1241
+ const next = this.snapshot;
1242
+ this.deps.inputTriggers?.()?.track(next.draft, span.start + text.length, { tier: guardOf(next.phase) }, next.draftRev);
1243
+ }
1159
1244
  return true;
1160
1245
  }
1161
1246
  /**
@@ -1215,23 +1300,23 @@ window.__ModuleLoader__.load({
1215
1300
  this.beginSubmit(fx.attempt, fx.claim, fx.args);
1216
1301
  return;
1217
1302
  case "default-sink":
1218
- this.sinkSerialized(fx.draft, fx.mode);
1303
+ this.sinkSerialized(fx.attempt, fx.draft, fx.mode);
1219
1304
  return;
1220
1305
  default: return;
1221
1306
  }
1222
1307
  }
1223
1308
  /**
1224
1309
  * Prompt serialization before the sink: expand each
1225
- * placeholder to its owner's model form via the session controller's
1310
+ * inline reference range to its owner's model form via the session controller's
1226
1311
  * codec routing. Owner missing / serialize failure / disposal blocks the
1227
1312
  * send — notice + draft and chips retained, never a silent downgrade to
1228
1313
  * the clipboard text. Chip-free drafts skip the async detour.
1229
1314
  */
1230
- sinkSerialized(draft, mode) {
1315
+ sinkSerialized(attempt, draft, mode) {
1231
1316
  const imageIds = [...this.imageIds];
1232
1317
  const occurrences = this.core.state.occurrences;
1233
1318
  if (occurrences.length === 0) {
1234
- this.deps.defaultSink(draft.trim(), imageIds, mode);
1319
+ this.settleSubmit(attempt, this.deps.defaultSink(draft.trim(), imageIds, mode, attempt.signal), imageIds);
1235
1320
  return;
1236
1321
  }
1237
1322
  const inputTriggers = this.deps.inputTriggers?.();
@@ -1240,6 +1325,7 @@ window.__ModuleLoader__.load({
1240
1325
  if (inputTriggers === void 0) throw new Error(`no serializer for reference source "${o.source}"`);
1241
1326
  return {
1242
1327
  offset: o.offset,
1328
+ length: o.length,
1243
1329
  text: await inputTriggers.serializeReference(o.source, o.ref, controller.signal)
1244
1330
  };
1245
1331
  })).then((parts) => {
@@ -1248,15 +1334,44 @@ window.__ModuleLoader__.load({
1248
1334
  let cursor = 0;
1249
1335
  for (const part of parts) {
1250
1336
  out += draft.slice(cursor, part.offset) + part.text;
1251
- cursor = part.offset + 1;
1337
+ cursor = part.offset + part.length;
1252
1338
  }
1253
1339
  out += draft.slice(cursor);
1254
- this.deps.defaultSink(out.trim(), imageIds, mode);
1340
+ this.settleSubmit(attempt, this.deps.defaultSink(out.trim(), imageIds, mode, attempt.signal), imageIds);
1255
1341
  }, (error) => {
1256
1342
  controller.abort();
1257
- if (this.disposed) return;
1343
+ if (this.dead(attempt)) return;
1258
1344
  const message = error instanceof Error ? error.message : String(error);
1259
- this.notify("error", message);
1345
+ this.run(this.core.dispatch({
1346
+ type: "submit-settled",
1347
+ attempt,
1348
+ ok: false,
1349
+ message
1350
+ }));
1351
+ });
1352
+ }
1353
+ /** Settle one admission attempt; successful sends consume only their captured images. */
1354
+ settleSubmit(attempt, pending, imageIds = []) {
1355
+ pending.then((outcome) => {
1356
+ if (this.dead(attempt)) return;
1357
+ if (outcome.kind === "success" && imageIds.length > 0) {
1358
+ const submitted = new Set(imageIds);
1359
+ this.imageIds = this.imageIds.filter((id) => !submitted.has(id));
1360
+ }
1361
+ this.run(this.core.dispatch({
1362
+ type: "submit-settled",
1363
+ attempt,
1364
+ ok: outcome.kind === "success",
1365
+ outcome
1366
+ }));
1367
+ }, (error) => {
1368
+ if (this.dead(attempt)) return;
1369
+ this.run(this.core.dispatch({
1370
+ type: "submit-settled",
1371
+ attempt,
1372
+ ok: false,
1373
+ message: error instanceof Error ? error.message : String(error)
1374
+ }));
1260
1375
  });
1261
1376
  }
1262
1377
  /** Enter adjudication: poll the session controller; failure = notice + draft retained (never a silent downgrade). */
@@ -1270,7 +1385,7 @@ window.__ModuleLoader__.load({
1270
1385
  }));
1271
1386
  return;
1272
1387
  }
1273
- inputTriggers.adjudicate(draft.trim(), attempt.signal).then((outcome) => {
1388
+ inputTriggers.adjudicate(draft.trim(), attempt.signal, { images: this.imageIds.length }).then((outcome) => {
1274
1389
  if (this.dead(attempt)) return;
1275
1390
  this.run(this.core.dispatch({
1276
1391
  type: "adjudicated",
@@ -1287,15 +1402,32 @@ window.__ModuleLoader__.load({
1287
1402
  }));
1288
1403
  });
1289
1404
  }
1290
- /** The submit transaction: claim.submit against the session scope; ok maps from the outcome kind. */
1405
+ /**
1406
+ * The submit transaction: claim.submit against the session scope; ok maps
1407
+ * from the outcome kind. An accepting claim receives the serialized draft
1408
+ * images, which are cleared and released only on a success outcome; a
1409
+ * failure (serialize, transport, or handler error) keeps draft and images
1410
+ * for correction.
1411
+ */
1291
1412
  beginSubmit(attempt, claim, args) {
1292
- Promise.resolve().then(() => claim.submit(args, this.deps.actx)).then((outcome) => {
1293
- if (this.dead(attempt)) return;
1413
+ const imageIds = claim.images === true ? [...this.imageIds] : [];
1414
+ Promise.resolve().then(async () => {
1415
+ const images = imageIds.length > 0 ? await this.deps.commandImages.serialize(imageIds) : [];
1416
+ if (this.dead(attempt)) return void 0;
1417
+ return claim.submit(args, this.deps.actx, images);
1418
+ }).then((outcome) => {
1419
+ if (outcome === void 0 || this.dead(attempt)) return;
1420
+ if (outcome.kind === "success" && imageIds.length > 0) {
1421
+ const submitted = new Set(imageIds);
1422
+ this.imageIds = this.imageIds.filter((id) => !submitted.has(id));
1423
+ this.deps.commandImages.release(imageIds);
1424
+ }
1294
1425
  this.run(this.core.dispatch({
1295
1426
  type: "submit-settled",
1296
1427
  attempt,
1297
1428
  ok: outcome.kind === "success",
1298
- outcome
1429
+ outcome,
1430
+ ...outcome.kind === "error" && outcome.text === void 0 ? { message: "command failed" } : {}
1299
1431
  }));
1300
1432
  }, (error) => {
1301
1433
  if (this.dead(attempt)) return;
@@ -1322,9 +1454,10 @@ window.__ModuleLoader__.load({
1322
1454
  publish() {
1323
1455
  const next = this.compose();
1324
1456
  this.state.set(next);
1325
- if (next.draft !== this.lastDraft) {
1326
- this.lastDraft = next.draft;
1327
- this.mirrorFn?.(next.draft);
1457
+ const mirroredDraft = projectClipboard(next);
1458
+ if (mirroredDraft !== this.lastMirroredDraft) {
1459
+ this.lastMirroredDraft = mirroredDraft;
1460
+ this.mirrorFn?.(mirroredDraft);
1328
1461
  }
1329
1462
  }
1330
1463
  };
@@ -1370,11 +1503,17 @@ window.__ModuleLoader__.load({
1370
1503
  inputTriggers: () => this.controller(actx),
1371
1504
  popup: () => this.popup(actx),
1372
1505
  queue: queueReadFaceOf(session),
1373
- defaultSink: (text, imageIds, mode) => {
1374
- this.sink(session, text, imageIds, mode);
1375
- },
1506
+ defaultSink: (text, imageIds, mode, signal) => this.sink(session, text, imageIds, mode, signal),
1376
1507
  steerQueue: () => {
1377
1508
  this.steerQueue(session, shell);
1509
+ },
1510
+ commandImages: {
1511
+ serialize: (ids) => this.conversation().serializeDraftImages(ids),
1512
+ release: (ids) => {
1513
+ const conversation = this.rootCtx.get("conversation");
1514
+ for (const imageId of ids) conversation?.releaseDraftImage(imageId);
1515
+ },
1516
+ unsupportedNotice: (token) => this.t("command.imagesUnsupported", { command: token.trim().replace(/^\//u, "") })
1378
1517
  }
1379
1518
  });
1380
1519
  this.shells.set(id, shell);
@@ -1383,7 +1522,7 @@ window.__ModuleLoader__.load({
1383
1522
  actx.on("slash/input-begin-command", (req) => shell.beginCommand(req.claim, req.span) ? true : void 0),
1384
1523
  actx.on("slash/input-insert-reference", (req) => shell.insertReference(req.reference, req.span) ? true : void 0),
1385
1524
  actx.on("slash/input-consume-token", (req) => shell.consumeToken(req.guard) ? true : void 0),
1386
- actx.on("slash/input-insert-text", (req) => shell.insertText(req.text, req.span) ? true : void 0)
1525
+ actx.on("slash/input-insert-text", (req) => shell.insertText(req.text, req.span, req.continue === true) ? true : void 0)
1387
1526
  ];
1388
1527
  return () => {
1389
1528
  for (const off of offs) off();
@@ -1433,21 +1572,11 @@ window.__ModuleLoader__.load({
1433
1572
  * Default sink: optimistic clear + prompt. The session is always a real
1434
1573
  * host entity (materialized when its workspace was picked), so there is
1435
1574
  * exactly one path; a failed first prompt is an ordinary prompt failure
1436
- * (error strip via promptError, draft restored only while untouched).
1575
+ * (banner via promptError, draft restored only while untouched).
1437
1576
  */
1438
- sink(session, text, imageIds, mode) {
1439
- if (text === "" && imageIds.length === 0) return;
1440
- const shell = this.shells.get(session.sessionId);
1441
- shell?.commitSend(imageIds);
1442
- this.conversation().sendSession(session, text, imageIds, mode).catch(() => {
1443
- if (this.shells.get(session.sessionId) === shell) {
1444
- shell?.restoreImages(imageIds);
1445
- if (shell?.snapshot.draft === "") shell.setDraft(text);
1446
- return;
1447
- }
1448
- const conversation = this.rootCtx.get("conversation");
1449
- for (const id of imageIds) conversation?.releaseDraftImage(id);
1450
- });
1577
+ sink(session, text, imageIds, mode, signal) {
1578
+ if (text === "" && imageIds.length === 0) return Promise.resolve({ kind: "success" });
1579
+ return this.conversation().sendSession(session, text, imageIds, mode, signal);
1451
1580
  }
1452
1581
  /**
1453
1582
  * Steer every still-pending queued message into the running turn, in FIFO
@@ -2376,6 +2505,7 @@ window.__ModuleLoader__.load({
2376
2505
  //#region lib/types/client/input/decorations.js
2377
2506
  /** Token matcher: a trigger char at line start or after whitespace, then a word-ish name (never crosses \n). */
2378
2507
  const TEXT_REF_RE = /(^|\s)([/@])([\w-]+)/g;
2508
+ const FOLDER_REF_RE = /(^|\s)(@(?:"[^"\n]*\/|[^\s"]+\/))/g;
2379
2509
  /**
2380
2510
  * Scan the draft for plain-text reference tokens against the hot lexicons.
2381
2511
  * Word-boundary discipline: the trigger must sit at the draft
@@ -2386,23 +2516,38 @@ window.__ModuleLoader__.load({
2386
2516
  * @returns matched ranges in draft order.
2387
2517
  */
2388
2518
  function scanTextRefs(draft, lexicon) {
2389
- if (lexicon.size === 0 || draft === "") return [];
2519
+ if (draft === "") return [];
2390
2520
  const out = [];
2391
- TEXT_REF_RE.lastIndex = 0;
2392
- let m;
2393
- while ((m = TEXT_REF_RE.exec(draft)) !== null) {
2394
- const trigger = m[2];
2395
- const name = m[3] ?? "";
2396
- if (lexicon.get(trigger)?.includes(name)) {
2397
- const start = m.index + (m[1]?.length ?? 0);
2398
- out.push({
2399
- start,
2400
- end: start + 1 + name.length,
2401
- trigger
2402
- });
2521
+ if (lexicon.size > 0) {
2522
+ TEXT_REF_RE.lastIndex = 0;
2523
+ let m;
2524
+ while ((m = TEXT_REF_RE.exec(draft)) !== null) {
2525
+ const trigger = m[2];
2526
+ const name = m[3] ?? "";
2527
+ if (lexicon.get(trigger)?.includes(name)) {
2528
+ const start = m.index + (m[1]?.length ?? 0);
2529
+ out.push({
2530
+ start,
2531
+ end: start + 1 + name.length,
2532
+ trigger
2533
+ });
2534
+ }
2403
2535
  }
2404
2536
  }
2405
- return out;
2537
+ FOLDER_REF_RE.lastIndex = 0;
2538
+ let folder;
2539
+ while ((folder = FOLDER_REF_RE.exec(draft)) !== null) {
2540
+ const token = folder[2] ?? "";
2541
+ const start = folder.index + (folder[1]?.length ?? 0);
2542
+ const end = start + token.length;
2543
+ if (!out.some((range) => range.start < end && range.end > start)) out.push({
2544
+ start,
2545
+ end,
2546
+ trigger: "@",
2547
+ appearance: "folder"
2548
+ });
2549
+ }
2550
+ return out.sort((left, right) => left.start - right.start);
2406
2551
  }
2407
2552
  /** The empty lexicon (default: zero text-ref decorations, old call sites unchanged). */
2408
2553
  const EMPTY_LEXICON$1 = /* @__PURE__ */ new Map();
@@ -2422,7 +2567,10 @@ window.__ModuleLoader__.load({
2422
2567
  const chips = occurrences.map((o) => ({
2423
2568
  occurrenceId: o.occurrenceId,
2424
2569
  offset: o.offset,
2570
+ length: o.length,
2571
+ text: draft.slice(o.offset, o.offset + o.length),
2425
2572
  label: o.label,
2573
+ ...o.appearance === void 0 ? {} : { appearance: o.appearance },
2426
2574
  invalid: o.invalid === true
2427
2575
  }));
2428
2576
  const hint = claimActive && claim.hint !== void 0 && draft.slice(claim.token.length).trim() === "" ? claim.hint : null;
@@ -2435,9 +2583,7 @@ window.__ModuleLoader__.load({
2435
2583
  }
2436
2584
  //#endregion
2437
2585
  //#region lib/types/client/image-labels.js
2438
- /** Bridges the `conversation` locale namespace to the zero-cordis attachment
2439
- * atoms' label props (`@nomix-ai/nomix-client-ui-attachment` reads no
2440
- * application state; owners resolve every string). */
2586
+ /** Attachment error and limit copy owned by the conversation input flow. */
2441
2587
  /**
2442
2588
  * Byte count as user-facing megabytes (`10MB`, `2.5MB`).
2443
2589
  * @param bytes - the byte count.
@@ -2462,6 +2608,9 @@ window.__ModuleLoader__.load({
2462
2608
  case "MODEL_DOES_NOT_SUPPORT_IMAGES": return t("image.modelUnsupported");
2463
2609
  case "SUBAGENT_IMAGE_UNSUPPORTED": return t("image.subagentUnsupported");
2464
2610
  case "IMAGE_TOO_MANY_PIXELS": return t("image.tooManyPixels");
2611
+ case "IMAGE_DIMENSION_TOO_LARGE":
2612
+ if (limits !== void 0) return t("image.dimensionTooLarge", { size: limits.maxImageDimension });
2613
+ break;
2465
2614
  case "INVALID_IMAGE":
2466
2615
  case "IMAGE_TYPE_MISMATCH": return t("image.unsupportedType");
2467
2616
  case "TOO_MANY_IMAGES":
@@ -2477,61 +2626,36 @@ window.__ModuleLoader__.load({
2477
2626
  }
2478
2627
  return t("image.sendFailed", { reason });
2479
2628
  }
2629
+ //#endregion
2630
+ //#region lib/types/client/reference/ReferenceIcon.js
2480
2631
  /**
2481
- * Resolve the original-image lightbox strings.
2482
- * @param t - the conversation-namespace translate.
2483
- * @returns the lightbox dialog and close-control labels.
2484
- */
2485
- function lightboxLabels(t) {
2486
- return {
2487
- dialog: t("image.preview"),
2488
- close: t("image.closePreview")
2489
- };
2490
- }
2491
- /**
2492
- * Resolve the chat-history image strings.
2493
- * @param t - the conversation-namespace translate.
2494
- * @returns the message-image labels including the forwarded lightbox strings.
2495
- */
2496
- function messageImageLabels(t) {
2497
- return {
2498
- image: t("image.label"),
2499
- open: t("image.openOriginal"),
2500
- openNamed: (label) => t("image.openOriginalLabel", { label }),
2501
- loading: t("image.loading"),
2502
- loadFailed: t("image.loadFailed"),
2503
- lightbox: lightboxLabels(t)
2504
- };
2505
- }
2506
- /**
2507
- * Resolve the full-page drop overlay strings.
2508
- * @param t - the conversation-namespace translate.
2509
- * @param accepting - whether drops are currently accepted.
2510
- * @param limits - per-message limits for the desc line, when known.
2511
- * @returns the overlay title, with the limits desc while accepting.
2512
- */
2513
- function dropOverlayLabels(t, accepting, limits) {
2514
- if (!accepting) return { title: t("image.dropBlocked") };
2515
- return {
2516
- title: t("image.dropTitle"),
2517
- desc: limits === void 0 ? void 0 : t("image.dropDesc", {
2518
- count: limits.count,
2519
- size: limits.size
2520
- })
2521
- };
2522
- }
2523
- /**
2524
- * Resolve the composer draft-image rail strings.
2525
- * @param t - the conversation-namespace translate.
2526
- * @returns the rail group, open-tooltip, and paging-arrow labels.
2632
+ * Render the icon that identifies one inline reference domain.
2633
+ * @param props - Reference kind, optional size, and optional CSS class.
2634
+ * @returns The corresponding current-color SVG glyph.
2527
2635
  */
2528
- function attachmentRailLabels(t) {
2529
- return {
2530
- group: t("image.pending"),
2531
- open: t("image.openOriginal"),
2532
- scrollLeft: t("image.scrollLeft"),
2533
- scrollRight: t("image.scrollRight")
2534
- };
2636
+ function ReferenceIcon({ kind, size = 16, className }) {
2637
+ switch (kind) {
2638
+ case "session": return (0, react_jsx_runtime.jsx)("svg", {
2639
+ width: size,
2640
+ height: size,
2641
+ className,
2642
+ viewBox: "0 0 16 16",
2643
+ fill: "none",
2644
+ "aria-hidden": true,
2645
+ children: (0, react_jsx_runtime.jsx)("path", {
2646
+ d: "M8 0.597656C3.91296 0.597656 0.599716 3.91103 0.599609 7.99805C0.599609 9.13171 0.854567 10.2079 1.31152 11.1699L1.59277 11.7607L2.77441 11.1992L2.49414 10.6084L2.36035 10.3076C2.06865 9.59612 1.90723 8.81645 1.90723 7.99805C1.90733 4.63362 4.63554 1.90625 8 1.90625C11.3644 1.90635 14.0917 4.63368 14.0918 7.99805C14.0918 11.3625 11.3644 14.0907 8 14.0908C7.311 14.0908 6.80642 14.0414 6.35938 13.918C5.919 13.7963 5.50105 13.5929 5.00098 13.2441C4.26805 12.7329 3.21756 12.5526 2.35156 13.0996L2.33789 13.1084L2.32422 13.1182L1.74805 13.5234L2.18164 14.8184L3.05957 14.2002C3.37505 14.0068 3.84248 14.0319 4.25195 14.3174C4.84447 14.7307 5.39718 15.009 6.01172 15.1787C6.61963 15.3465 7.25579 15.3984 8 15.3984C12.087 15.3983 15.4004 12.0851 15.4004 7.99805C15.4003 3.9111 12.087 0.59776 8 0.597656ZM4.56836 8.50977V9.80371H8.12402V8.50977H4.56836ZM4.56836 7.30078H11.4619V6.00684H4.56836V7.30078Z",
2647
+ fill: "currentColor"
2648
+ })
2649
+ });
2650
+ case "file": return (0, react_jsx_runtime.jsx)(_nomix_ai_nomix_client_ui_primitives.IconBrowseOutline16, {
2651
+ size,
2652
+ className
2653
+ });
2654
+ case "folder": return (0, react_jsx_runtime.jsx)(_nomix_ai_nomix_client_ui_primitives.IconFolderClose16, {
2655
+ size,
2656
+ className
2657
+ });
2658
+ }
2535
2659
  }
2536
2660
  //#endregion
2537
2661
  //#region lib/types/client/chat/message-chrome.js
@@ -2691,8 +2815,8 @@ window.__ModuleLoader__.load({
2691
2815
  document.head.appendChild(tag);
2692
2816
  }
2693
2817
  var StatsLine_module_css_default = {
2694
- "sep": "_4f0wNW_sep",
2695
- "root": "_4f0wNW_root"
2818
+ "root": "_4f0wNW_root",
2819
+ "sep": "_4f0wNW_sep"
2696
2820
  };
2697
2821
  //#endregion
2698
2822
  //#region lib/types/client/chat/StatsLine.js
@@ -2769,14 +2893,52 @@ window.__ModuleLoader__.load({
2769
2893
  const whole = Math.round(s);
2770
2894
  return `${Math.floor(whole / 60)}m${whole % 60}s`;
2771
2895
  }
2896
+ /** Round a cache-read ratio to an integer percentage, with positive ties rounded up. */
2897
+ function roundedIntegerPercent(cacheReadTokens, denominator) {
2898
+ const denominatorQuotient = Math.floor(denominator / 200);
2899
+ const denominatorRemainder = denominator % 200;
2900
+ let lower = 0;
2901
+ let upper = 100;
2902
+ while (lower < upper) {
2903
+ const candidate = Math.floor((lower + upper + 1) / 2);
2904
+ const factor = candidate * 2 - 1;
2905
+ if (cacheReadTokens >= factor * denominatorQuotient + Math.ceil(factor * denominatorRemainder / 200)) lower = candidate;
2906
+ else upper = candidate - 1;
2907
+ }
2908
+ return lower;
2909
+ }
2772
2910
  /**
2773
- * Cache-hit share of prompt-side input over the whole durable log.
2911
+ * Display-ready cache-hit share of prompt-side input over the whole durable log.
2774
2912
  * @param usage - the session's token-usage projection value.
2775
- * @returns rounded integer percent, or null when no input was billed.
2913
+ * @returns integer text when integer rounding stays below 100, otherwise the
2914
+ * minimum decimal precision that still rounds below 100; a full hit returns
2915
+ * 100, and no billed input returns null.
2776
2916
  */
2777
2917
  function cacheHitPercent(usage) {
2778
2918
  const denominator = billedInputTokens(usage);
2779
- return denominator === 0 ? null : Math.round(usage.cacheReadTokens / denominator * 100);
2919
+ if (denominator === 0) return null;
2920
+ const missedInputTokens = usage.uncachedInputTokens + usage.cacheWriteTokens;
2921
+ if (missedInputTokens === 0) return "100";
2922
+ const integerPercent = roundedIntegerPercent(usage.cacheReadTokens, denominator);
2923
+ if (integerPercent < 100) return String(integerPercent);
2924
+ let decimalPlaces = 1;
2925
+ let scaledDoubleGap = missedInputTokens * 200;
2926
+ const denominatorTens = Math.floor(denominator / 10);
2927
+ while (scaledDoubleGap <= denominatorTens) {
2928
+ scaledDoubleGap *= 10;
2929
+ decimalPlaces += 1;
2930
+ }
2931
+ const denominatorOnes = denominator % 10;
2932
+ let roundedLoss = 5;
2933
+ for (let loss = 1; loss < 5; loss += 1) {
2934
+ const factor = loss * 2 + 1;
2935
+ const threshold = factor * denominatorTens + Math.floor(factor * denominatorOnes / 10);
2936
+ if (scaledDoubleGap <= threshold) {
2937
+ roundedLoss = loss;
2938
+ break;
2939
+ }
2940
+ }
2941
+ return `99.${"9".repeat(decimalPlaces - 1)}${10 - roundedLoss}`;
2780
2942
  }
2781
2943
  /**
2782
2944
  * Sum the three disjoint prompt-side billing buckets.
@@ -2881,23 +3043,23 @@ window.__ModuleLoader__.load({
2881
3043
  document.head.appendChild(tag);
2882
3044
  }
2883
3045
  var ContextMeter_module_css_default = {
2884
- "track": "jexDtG_track",
2885
- "header": "jexDtG_header",
2886
- "percent": "jexDtG_percent",
2887
- "trigger": "jexDtG_trigger",
2888
3046
  "bar": "jexDtG_bar",
2889
- "swatch": "jexDtG_swatch",
2890
- "panel": "jexDtG_panel",
2891
- "segment": "jexDtG_segment",
2892
- "rows": "jexDtG_rows",
2893
- "headline": "jexDtG_headline",
2894
- "colorTools": "jexDtG_colorTools",
3047
+ "colorMessages": "jexDtG_colorMessages",
2895
3048
  "colorSystem": "jexDtG_colorSystem",
2896
- "fill": "jexDtG_fill",
3049
+ "colorTools": "jexDtG_colorTools",
2897
3050
  "figures": "jexDtG_figures",
2898
- "colorMessages": "jexDtG_colorMessages",
3051
+ "fill": "jexDtG_fill",
3052
+ "header": "jexDtG_header",
3053
+ "headline": "jexDtG_headline",
3054
+ "panel": "jexDtG_panel",
3055
+ "percent": "jexDtG_percent",
2899
3056
  "root": "jexDtG_root",
2900
- "row": "jexDtG_row"
3057
+ "row": "jexDtG_row",
3058
+ "rows": "jexDtG_rows",
3059
+ "segment": "jexDtG_segment",
3060
+ "swatch": "jexDtG_swatch",
3061
+ "track": "jexDtG_track",
3062
+ "trigger": "jexDtG_trigger"
2901
3063
  };
2902
3064
  //#endregion
2903
3065
  //#region lib/types/client/skeleton/ContextMeter.js
@@ -3069,11 +3231,11 @@ window.__ModuleLoader__.load({
3069
3231
  document.head.appendChild(tag);
3070
3232
  }
3071
3233
  var PermissionSelect_module_css_default = {
3234
+ "chevron": "DEwL5W_chevron",
3235
+ "chevronOpen": "DEwL5W_chevronOpen",
3072
3236
  "trigger": "DEwL5W_trigger",
3073
3237
  "triggerIcon": "DEwL5W_triggerIcon",
3074
- "triggerLabel": "DEwL5W_triggerLabel",
3075
- "chevron": "DEwL5W_chevron",
3076
- "chevronOpen": "DEwL5W_chevronOpen"
3238
+ "triggerLabel": "DEwL5W_triggerLabel"
3077
3239
  };
3078
3240
  //#endregion
3079
3241
  //#region lib/types/client/skeleton/PermissionSelect.js
@@ -3298,7 +3460,7 @@ window.__ModuleLoader__.load({
3298
3460
  }
3299
3461
  //#endregion
3300
3462
  //#region \0nomix-css:/home/runner/work/nomix-harness/nomix-harness/packages/client/ui-conversation/src/client/skeleton/InputBar.module.css.mjs
3301
- const css$17 = "@font-face{font-family:NomixChipCell;src:url(data:font/ttf;base64,AAEAAAAKAIAAAwAgT1MvMkT8SmIAAAEoAAAAYGNtYXAADQBPAAABkAAAADRnbHlmAAAAAAAAAcwAAAABaGVhZCwtPGoAAACsAAAANmhoZWEDIg7bAAAA5AAAACRobXR4EZQAAAAAAYgAAAAIbG9jYQAAAAAAAAHEAAAABm1heHAAAwACAAABCAAAACBuYW1lvljk2gAAAdAAAABscG9zdNNweNQAAAI8AAAALQABAAAAAQAAdia1tV8PPPUAAwPoAAAAAOaLfcUAAAAA5ot9xQAAAAAAAAAAAAAAAwACAAAAAAAAAAEAAAMg/zgAAA+gAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAEAAAACAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwjKAZAABQAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAPz8/PwAA//z//AMg/zgAAAMgAMgAAAAAAAAAAAAAAAAAAAAgAAAB9AAAD6AAAAAAAAIAAAADAAAAFAADAAEAAAAUAAQAIAAAAAQABAABAAD//P//AAD//P//AAUAAQAAAAAAAAAAAAAAAAAAAAAAAAAEADYAAQAAAAAAAQALAAAAAQAAAAAAAgAHAAsAAwABBAkAAQAWABIAAwABBAkAAgAOAChEc2hDaGlwQ2VsbFJlZ3VsYXIARABzAGgAQwBoAGkAcABDAGUAbABsAFIAZQBnAHUAbABhAHIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAABAgZvYmpyZXAAAAA=)format(\"truetype\")}.LiGuRq_root{padding:0 var(--nomix-composer-side-clearance) 8px;flex-direction:column;align-items:center;display:flex}.LiGuRq_hero{padding:0 var(--nomix-composer-side-clearance)}.LiGuRq_notice{width:100%;max-width:var(--nomix-composer-card-max-width);background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary);border-radius:8px;margin-bottom:6px;padding:4px 8px;font-size:12px;line-height:18px}.LiGuRq_noticeError{background:var(--dsw-alias-interactive-bg-hover-danger);color:var(--dsw-alias-state-error-primary)}.LiGuRq_card{box-sizing:border-box;width:100%;max-width:var(--nomix-composer-card-max-width);border:1px solid var(--dsw-alias-border-l2-darkmode-thin);background:var(--dsw-specific-input-major);box-shadow:var(--dsw-shadow-lv2);--nomix-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--nomix-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);border-radius:22px;flex-direction:column;gap:12px;padding-top:10px;font-size:16px;line-height:24px;display:flex;position:relative}.LiGuRq_cardWorkspaceTrigger{cursor:pointer;border-color:#0000}.LiGuRq_cardWorkspaceTrigger:after{content:\"\";background:var(--dsw-alias-border-l4);pointer-events:none;border-radius:22px;transition:background-color .1s;position:absolute;inset:-1px;-webkit-mask:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='100%25' height='100%25' fill='none' rx='22' ry='22' stroke='black' stroke-width='2' stroke-dasharray='4 4'/%3E%3C/svg%3E\");mask:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='100%25' height='100%25' fill='none' rx='22' ry='22' stroke='black' stroke-width='2' stroke-dasharray='4 4'/%3E%3C/svg%3E\")}.LiGuRq_cardWorkspaceTrigger :disabled{pointer-events:none}.LiGuRq_cardWorkspaceTrigger:hover:after{background:var(--dsw-alias-state-business-primary)}.LiGuRq_accessory{align-items:center;gap:8px;padding:10px 12px 0;display:flex}.LiGuRq_attachments{min-width:0;padding:4px 12px 0}.LiGuRq_overlayAnchor{height:0;position:absolute;inset:0 0 auto}.LiGuRq_scroll{max-height:var(--nomix-composer-text-max-height);overflow-y:auto}.LiGuRq_grow{position:relative}.LiGuRq_backdrop{color:var(--dsw-alias-label-primary);pointer-events:none;position:absolute;inset:0;overflow:hidden}.LiGuRq_hlToken{color:var(--dsw-alias-state-warn-label);background-color:#0000}.LiGuRq_hlSegment{color:#0000;background-color:#0000;border-radius:4px}.LiGuRq_hint{color:var(--dsw-alias-label-caption)}.LiGuRq_pending{background:var(--dsw-alias-state-business-primary);border-radius:50%;width:8px;height:8px;animation:1s ease-in-out infinite alternate LiGuRq_input-pending}@keyframes LiGuRq_input-pending{0%{opacity:.35}to{opacity:1}}.LiGuRq_input{resize:none;color:#0000;width:100%;height:100%;caret-color:var(--dsw-alias-state-business-primary);background:0 0;border:none;outline:none;position:absolute;inset:0;overflow:hidden}.LiGuRq_input,.LiGuRq_mirror,.LiGuRq_backdrop{box-sizing:border-box;font-family:\"NomixChipCell\", var(--dsw-font-family);font-size:inherit;line-height:inherit;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;padding:4px 12px 0 16px}.LiGuRq_input::placeholder{color:var(--dsw-alias-label-caption);user-select:none}.LiGuRq_input:disabled{color:var(--dsw-alias-label-tertiary);cursor:not-allowed}.LiGuRq_input[aria-haspopup=menu]{cursor:pointer}.LiGuRq_mirror{visibility:hidden;pointer-events:none}.LiGuRq_hero .LiGuRq_mirror{min-height:52px}.LiGuRq_row{justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:2px 8px 6px;display:flex;container-type:inline-size}.LiGuRq_tools,.LiGuRq_modes,.LiGuRq_trailing{align-items:center;min-width:0;display:flex}.LiGuRq_tools{gap:16px}.LiGuRq_modes{gap:12px}.LiGuRq_trailing{flex:none;gap:12px}.LiGuRq_add{background:var(--dsw-specific-selector);width:28px;height:28px;color:var(--dsw-alias-label-primary);cursor:pointer;border:none;border-radius:999px;flex:none;place-items:center;display:grid}.LiGuRq_add:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover-solid)}.LiGuRq_add:disabled{opacity:.5;cursor:default}.LiGuRq_select{max-width:220px;height:28px;color:var(--dsw-alias-label-secondary);white-space:nowrap;cursor:pointer;appearance:none;background-color:#0000;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M3 4.5L6 7.5L9 4.5' stroke='%2381858C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\");background-position:right 4px center;background-repeat:no-repeat;background-size:12px 12px;border:none;border-radius:8px;outline:none;padding:0 20px 0 8px;font-size:13px;font-weight:500;line-height:20px}.LiGuRq_select:hover:not(:disabled){background-color:var(--dsw-alias-interactive-bg-hover)}.LiGuRq_select:disabled{opacity:.5;cursor:default}.LiGuRq_primary{background:var(--dsw-alias-button-info-fill);color:#fff;cursor:pointer;border:none;border-radius:999px;flex:none;place-items:center;width:34px;height:34px;transition:background-color .1s;display:grid;transform:translateY(-2px)}.LiGuRq_primary:hover:not(:disabled){background:var(--dsw-alias-button-info-hover)}.LiGuRq_primary:disabled{opacity:.4;cursor:default}.LiGuRq_retry{color:inherit;cursor:pointer;background:0 0;border:1px solid;border-radius:4px;margin-left:8px;padding:1px 8px;font-size:12px}.LiGuRq_textRef{color:var(--dsw-alias-state-business-primary);-webkit-box-decoration-break:clone;box-decoration-break:clone;background-color:#0000}.LiGuRq_textRef:after{display:none}.LiGuRq_chip{background:#6187d838;border-radius:6px;position:relative}.LiGuRq_chip:before{content:\"\";color:#0000}.LiGuRq_chipLabel{width:calc(138.889% - 10px);color:var(--dsw-alias-label-primary);white-space:nowrap;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)scale(.72)}.LiGuRq_chipInvalid{opacity:.7;background:#d8616133;text-decoration:line-through}";
3463
+ const css$17 = ".LiGuRq_root{padding:0 var(--nomix-composer-side-clearance) 8px;flex-direction:column;align-items:center;display:flex}.LiGuRq_hero{padding:0 var(--nomix-composer-side-clearance)}.LiGuRq_notice{width:100%;max-width:var(--nomix-composer-card-max-width);background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary);border-radius:8px;margin-bottom:6px;padding:4px 8px;font-size:12px;line-height:18px}.LiGuRq_card{box-sizing:border-box;width:100%;max-width:var(--nomix-composer-card-max-width);border:1px solid var(--dsw-alias-border-l2-darkmode-thin);background:var(--dsw-specific-input-major);box-shadow:var(--dsw-shadow-lv2);--nomix-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--nomix-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);border-radius:22px;flex-direction:column;gap:12px;padding-top:10px;font-size:16px;line-height:24px;display:flex;position:relative}.LiGuRq_cardWorkspaceTrigger{cursor:pointer;border-color:#0000}.LiGuRq_cardWorkspaceTrigger:after{content:\"\";background:var(--dsw-alias-border-l4);pointer-events:none;border-radius:22px;transition:background-color .1s;position:absolute;inset:-1px;-webkit-mask:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='100%25' height='100%25' fill='none' rx='22' ry='22' stroke='black' stroke-width='2' stroke-dasharray='4 4'/%3E%3C/svg%3E\");mask:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='100%25' height='100%25' fill='none' rx='22' ry='22' stroke='black' stroke-width='2' stroke-dasharray='4 4'/%3E%3C/svg%3E\")}.LiGuRq_cardWorkspaceTrigger :disabled{pointer-events:none}.LiGuRq_cardWorkspaceTrigger:hover:after{background:var(--dsw-alias-state-business-primary)}.LiGuRq_accessory{align-items:center;gap:8px;padding:10px 12px 0;display:flex}.LiGuRq_overlayAnchor{height:0;position:absolute;inset:0 0 auto}.LiGuRq_scroll{max-height:var(--nomix-composer-text-max-height);overflow-y:auto}.LiGuRq_grow{position:relative}.LiGuRq_backdrop{color:var(--dsw-alias-label-primary);pointer-events:none;position:absolute;inset:0;overflow:hidden}.LiGuRq_backdropDisabled,.LiGuRq_backdropDisabled :is(.LiGuRq_hlToken,.LiGuRq_hint,.LiGuRq_textRef,.LiGuRq_chip,.LiGuRq_chipInvalid){color:var(--dsw-alias-label-tertiary)}.LiGuRq_hlToken{color:var(--dsw-alias-state-warn-label);background-color:#0000}.LiGuRq_hlSegment{color:#0000;background-color:#0000;border-radius:4px}.LiGuRq_hint{color:var(--dsw-alias-label-caption)}.LiGuRq_pending{background:var(--dsw-alias-state-business-primary);border-radius:50%;width:8px;height:8px;animation:1s ease-in-out infinite alternate LiGuRq_input-pending}@keyframes LiGuRq_input-pending{0%{opacity:.35}to{opacity:1}}.LiGuRq_input{resize:none;color:#0000;-webkit-text-fill-color:transparent;width:100%;height:100%;caret-color:var(--dsw-alias-state-business-primary);background:0 0;border:none;outline:none;position:absolute;inset:0;overflow:hidden}.LiGuRq_input,.LiGuRq_mirror,.LiGuRq_backdrop{box-sizing:border-box;font-family:var(--dsw-font-family);font-size:inherit;line-height:inherit;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;padding:4px 12px 0 16px}.LiGuRq_input::placeholder{color:var(--dsw-alias-label-caption);-webkit-text-fill-color:var(--dsw-alias-label-caption);user-select:none}.LiGuRq_input:disabled{color:#0000;-webkit-text-fill-color:transparent;cursor:not-allowed}.LiGuRq_input[aria-haspopup=menu]{cursor:pointer}.LiGuRq_mirror{visibility:hidden;pointer-events:none}.LiGuRq_hero .LiGuRq_mirror{min-height:52px}.LiGuRq_row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:2px 8px 6px;display:flex;container-type:inline-size}.LiGuRq_tools,.LiGuRq_modes,.LiGuRq_trailing{align-items:center;min-width:0;display:flex}.LiGuRq_tools{gap:16px}.LiGuRq_modes{gap:12px}.LiGuRq_trailing{flex:none;gap:12px;margin-left:auto}.LiGuRq_add{background:var(--dsw-specific-selector);width:28px;height:28px;color:var(--dsw-alias-label-primary);cursor:pointer;border:none;border-radius:999px;flex:none;place-items:center;display:grid}.LiGuRq_add:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover-solid)}.LiGuRq_add:disabled{opacity:.5;cursor:default}.LiGuRq_select{max-width:220px;height:28px;color:var(--dsw-alias-label-secondary);white-space:nowrap;cursor:pointer;appearance:none;background-color:#0000;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M3 4.5L6 7.5L9 4.5' stroke='%2381858C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\");background-position:right 4px center;background-repeat:no-repeat;background-size:12px 12px;border:none;border-radius:8px;outline:none;padding:0 20px 0 8px;font-size:13px;font-weight:500;line-height:20px}.LiGuRq_select:hover:not(:disabled){background-color:var(--dsw-alias-interactive-bg-hover)}.LiGuRq_select:disabled{opacity:.5;cursor:default}.LiGuRq_primary{background:var(--dsw-alias-button-info-fill);color:#fff;cursor:pointer;border:none;border-radius:999px;flex:none;place-items:center;width:34px;height:34px;transition:background-color .1s;display:grid;transform:translateY(-2px)}.LiGuRq_primary:hover:not(:disabled){background:var(--dsw-alias-button-info-hover)}.LiGuRq_primary:disabled{opacity:.4;cursor:default}.LiGuRq_retry{color:inherit;cursor:pointer;background:0 0;border:1px solid;border-radius:4px;margin-left:8px;padding:1px 8px;font-size:12px}.LiGuRq_textRef{color:var(--dsw-alias-state-business-primary);-webkit-box-decoration-break:clone;box-decoration-break:clone;background-color:#0000}.LiGuRq_textRef:after{display:none}.LiGuRq_textRefTrigger{position:relative}.LiGuRq_textRefTriggerGlyph{color:#0000}.LiGuRq_textRefIcon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.LiGuRq_chip{color:var(--dsw-alias-state-business-primary);-webkit-box-decoration-break:clone;box-decoration-break:clone;background:0 0;position:relative}.LiGuRq_chipTrigger{position:relative}.LiGuRq_chipTriggerGlyph{color:#0000}.LiGuRq_chipIcon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.LiGuRq_chipInvalid{opacity:.7;color:var(--dsw-alias-state-error-primary);text-decoration:line-through}";
3302
3464
  const tagId$17 = "@nomix-ai/nomix-client-ui-conversation/InputBar.module.css";
3303
3465
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$17) + "]") === null) {
3304
3466
  const tag = document.createElement("style");
@@ -3308,37 +3470,41 @@ window.__ModuleLoader__.load({
3308
3470
  document.head.appendChild(tag);
3309
3471
  }
3310
3472
  var InputBar_module_css_default = {
3311
- "trailing": "LiGuRq_trailing",
3312
- "retry": "LiGuRq_retry",
3313
3473
  "accessory": "LiGuRq_accessory",
3314
- "hint": "LiGuRq_hint",
3315
- "backdrop": "LiGuRq_backdrop",
3316
- "pending": "LiGuRq_pending",
3317
- "mirror": "LiGuRq_mirror",
3318
- "notice": "LiGuRq_notice",
3319
- "tools": "LiGuRq_tools",
3320
- "select": "LiGuRq_select",
3321
- "chipLabel": "LiGuRq_chipLabel",
3322
- "input-pending": "LiGuRq_input-pending",
3323
- "grow": "LiGuRq_grow",
3324
- "textRef": "LiGuRq_textRef",
3325
- "chipInvalid": "LiGuRq_chipInvalid",
3326
- "cardWorkspaceTrigger": "LiGuRq_cardWorkspaceTrigger",
3327
- "input": "LiGuRq_input",
3328
3474
  "add": "LiGuRq_add",
3329
- "row": "LiGuRq_row",
3475
+ "backdrop": "LiGuRq_backdrop",
3476
+ "backdropDisabled": "LiGuRq_backdropDisabled",
3330
3477
  "card": "LiGuRq_card",
3331
- "attachments": "LiGuRq_attachments",
3478
+ "cardWorkspaceTrigger": "LiGuRq_cardWorkspaceTrigger",
3479
+ "chip": "LiGuRq_chip",
3480
+ "chipIcon": "LiGuRq_chipIcon",
3481
+ "chipInvalid": "LiGuRq_chipInvalid",
3482
+ "chipTrigger": "LiGuRq_chipTrigger",
3483
+ "chipTriggerGlyph": "LiGuRq_chipTriggerGlyph",
3484
+ "grow": "LiGuRq_grow",
3332
3485
  "hero": "LiGuRq_hero",
3333
- "noticeError": "LiGuRq_noticeError",
3486
+ "hint": "LiGuRq_hint",
3487
+ "hlSegment": "LiGuRq_hlSegment",
3488
+ "hlToken": "LiGuRq_hlToken",
3489
+ "input": "LiGuRq_input",
3490
+ "input-pending": "LiGuRq_input-pending",
3491
+ "mirror": "LiGuRq_mirror",
3334
3492
  "modes": "LiGuRq_modes",
3493
+ "notice": "LiGuRq_notice",
3335
3494
  "overlayAnchor": "LiGuRq_overlayAnchor",
3495
+ "pending": "LiGuRq_pending",
3336
3496
  "primary": "LiGuRq_primary",
3337
- "chip": "LiGuRq_chip",
3338
- "hlToken": "LiGuRq_hlToken",
3339
- "hlSegment": "LiGuRq_hlSegment",
3497
+ "retry": "LiGuRq_retry",
3498
+ "root": "LiGuRq_root",
3499
+ "row": "LiGuRq_row",
3340
3500
  "scroll": "LiGuRq_scroll",
3341
- "root": "LiGuRq_root"
3501
+ "select": "LiGuRq_select",
3502
+ "textRef": "LiGuRq_textRef",
3503
+ "textRefIcon": "LiGuRq_textRefIcon",
3504
+ "textRefTrigger": "LiGuRq_textRefTrigger",
3505
+ "textRefTriggerGlyph": "LiGuRq_textRefTriggerGlyph",
3506
+ "tools": "LiGuRq_tools",
3507
+ "trailing": "LiGuRq_trailing"
3342
3508
  };
3343
3509
  //#endregion
3344
3510
  //#region lib/types/client/skeleton/InputBar.js
@@ -3356,6 +3522,41 @@ window.__ModuleLoader__.load({
3356
3522
  textRefs: [],
3357
3523
  hint: null
3358
3524
  };
3525
+ /**
3526
+ * Resolve one edit's range from the record taken before it applied.
3527
+ * A selection the edit replaces is the range outright. A caret delete replaces
3528
+ * nothing and reports the bare caret, so the removed span is whatever the draft
3529
+ * lost, on the side `inputType` names — measured, because one caret gesture can
3530
+ * remove a multi-unit grapheme, a word, or a line.
3531
+ * @param pending - record taken at `beforeinput`, null when none was seen.
3532
+ * @param prevLength - length of the draft the edit applied to.
3533
+ * @param nextLength - length of the resulting draft.
3534
+ * @returns the exact range, or undefined when the record cannot describe this
3535
+ * edit and the machine's diff scan has to recover it.
3536
+ */
3537
+ function editRangeOf(pending, prevLength, nextLength) {
3538
+ if (pending === null || pending.draftLength !== prevLength) return void 0;
3539
+ const { start, end, inputType } = pending;
3540
+ if (start > end || end > prevLength) return void 0;
3541
+ const insertedLength = nextLength - prevLength + (end - start);
3542
+ if (insertedLength >= 0) return {
3543
+ start,
3544
+ end,
3545
+ insertedLength
3546
+ };
3547
+ if (start !== end) return void 0;
3548
+ const removed = prevLength - nextLength;
3549
+ if (inputType.endsWith("Backward")) return removed <= start ? {
3550
+ start: start - removed,
3551
+ end: start,
3552
+ insertedLength: 0
3553
+ } : void 0;
3554
+ if (inputType.endsWith("Forward")) return start + removed <= prevLength ? {
3555
+ start,
3556
+ end: start + removed,
3557
+ insertedLength: 0
3558
+ } : void 0;
3559
+ }
3359
3560
  function InputBar({ useSession, useInput, inputActions, keyboard, addImages, removeImage, draftImages, resolveSubmitMode, toggleCommandMenu, stop, command, t, renderSlot, useNotices, useLexicon, useMenuLauncher, useProjection, sessionId, variant, disabled: inert = false, blocked, workspacePickerOpen = false, onRequestWorkspace, placeholder, accessory, overlay, leftItems, rightItems, footer }) {
3360
3561
  const input = useInput((s) => s);
3361
3562
  const notice = useNotices((s) => s);
@@ -3371,8 +3572,6 @@ window.__ModuleLoader__.load({
3371
3572
  const draft = input?.draft ?? "";
3372
3573
  const attachments = (0, react.useMemo)(() => input === void 0 || draftImages === void 0 ? [] : draftImages(input.imageIds), [draftImages, input?.imageIds]);
3373
3574
  const empty = draft.trim() === "" && attachments.length === 0;
3374
- const [preview, setPreview] = (0, react.useState)(null);
3375
- const [dragActive, setDragActive] = (0, react.useState)(false);
3376
3575
  const [toast, setToast] = (0, react.useState)(null);
3377
3576
  const toastSeq = (0, react.useRef)(0);
3378
3577
  const showToast = (0, react.useCallback)((text) => {
@@ -3395,9 +3594,11 @@ window.__ModuleLoader__.load({
3395
3594
  t,
3396
3595
  imageLimits
3397
3596
  ]);
3597
+ (0, react.useEffect)(() => {
3598
+ if (notice?.level === "error") showToast(notice.text);
3599
+ }, [notice, showToast]);
3398
3600
  const inputRef = (0, react.useRef)(null);
3399
3601
  const cardRef = (0, react.useRef)(null);
3400
- const dragDepthRef = (0, react.useRef)(0);
3401
3602
  const scrollRef = (0, react.useRef)(null);
3402
3603
  const mirrorRef = (0, react.useRef)(null);
3403
3604
  const safari = (0, react.useMemo)(() => isSafariBrowser(navigator), []);
@@ -3434,9 +3635,6 @@ window.__ModuleLoader__.load({
3434
3635
  safariNativeShrinkRef.current = false;
3435
3636
  if (safari && nativeShrink) repairSafariTextareaLayout(inputRef.current);
3436
3637
  }, [draft, safari]);
3437
- (0, react.useEffect)(() => {
3438
- if (preview !== null && !attachments.some((attachment) => attachment.id === preview.id)) setPreview(null);
3439
- }, [attachments, preview]);
3440
3638
  const revealCaret = (caret) => {
3441
3639
  const scrollEl = scrollRef.current;
3442
3640
  const mirrorEl = mirrorRef.current;
@@ -3492,6 +3690,32 @@ window.__ModuleLoader__.load({
3492
3690
  el.removeEventListener("wheel", onWheel);
3493
3691
  };
3494
3692
  }, []);
3693
+ const selectionOf = (el) => ({
3694
+ start: el.selectionStart ?? 0,
3695
+ end: el.selectionEnd ?? el.selectionStart ?? 0
3696
+ });
3697
+ const pendingEditRef = (0, react.useRef)(null);
3698
+ (0, react.useEffect)(() => {
3699
+ const el = inputRef.current;
3700
+ if (el === null) return;
3701
+ const onBeforeInput = (e) => {
3702
+ if (!e.inputType.startsWith("insert") && !e.inputType.startsWith("delete")) {
3703
+ pendingEditRef.current = null;
3704
+ return;
3705
+ }
3706
+ const { start, end } = selectionOf(el);
3707
+ pendingEditRef.current = {
3708
+ start,
3709
+ end,
3710
+ draftLength: el.value.length,
3711
+ inputType: e.inputType
3712
+ };
3713
+ };
3714
+ el.addEventListener("beforeinput", onBeforeInput);
3715
+ return () => {
3716
+ el.removeEventListener("beforeinput", onBeforeInput);
3717
+ };
3718
+ }, []);
3495
3719
  const onKeyDown = (e) => {
3496
3720
  if (workspaceTrigger) {
3497
3721
  if (e.key === "Enter" || e.key === " ") {
@@ -3500,9 +3724,28 @@ window.__ModuleLoader__.load({
3500
3724
  }
3501
3725
  return;
3502
3726
  }
3503
- if (keyboard === void 0 || inputActions === void 0) return;
3727
+ if (input === void 0 || keyboard === void 0 || inputActions === void 0) return;
3504
3728
  if (e.key === "Enter" && e.shiftKey) return;
3505
3729
  const composing = composingRef.current || e.nativeEvent.isComposing || e.nativeEvent.keyCode === 229;
3730
+ if (!composing && !machineBusy && !locked && (e.key === "Backspace" || e.key === "Delete")) {
3731
+ const selection = selectionOf(e.currentTarget);
3732
+ if (selection.start === selection.end) {
3733
+ const occurrence = input.occurrences.find((o) => e.key === "Backspace" ? o.offset + o.length === selection.start : o.offset === selection.start);
3734
+ if (occurrence !== void 0) {
3735
+ e.preventDefault();
3736
+ const start = occurrence.offset;
3737
+ const end = occurrence.offset + occurrence.length;
3738
+ keyboard.setDraft(draft.slice(0, start) + draft.slice(end), {
3739
+ start,
3740
+ end,
3741
+ insertedLength: 0
3742
+ });
3743
+ restoreCaret(e.currentTarget, start);
3744
+ keyboard.track(keyboard.snapshot.draft, start);
3745
+ return;
3746
+ }
3747
+ }
3748
+ }
3506
3749
  if (e.key === "ArrowUp" || e.key === "ArrowDown") {
3507
3750
  if (keyboard.arbitrate(e.key === "ArrowUp" ? "up" : "down", composing) === "consumed") e.preventDefault();
3508
3751
  return;
@@ -3544,38 +3787,37 @@ window.__ModuleLoader__.load({
3544
3787
  if (keyboard === void 0 || locked) return;
3545
3788
  if (machineBusy) return;
3546
3789
  const next = e.target.value;
3790
+ const pending = pendingEditRef.current;
3791
+ pendingEditRef.current = null;
3547
3792
  safariNativeShrinkRef.current = safari && next.length < draft.length;
3548
- keyboard.setDraft(next);
3793
+ keyboard.setDraft(next, editRangeOf(pending, draft.length, next.length));
3549
3794
  keyboard.track(next, e.target.selectionStart ?? next.length);
3550
3795
  };
3551
- const selectionOf = (el) => ({
3552
- start: el.selectionStart ?? 0,
3553
- end: el.selectionEnd ?? el.selectionStart ?? 0
3554
- });
3555
3796
  const onCopyOrCut = (e, cut) => {
3556
3797
  if (input === void 0 || keyboard === void 0) return;
3557
3798
  const el = e.currentTarget;
3558
3799
  const { start, end } = selectionOf(el);
3559
3800
  if (start === end) return;
3560
- draft.slice(start, end);
3561
- const touched = input.occurrences.filter((o) => o.offset >= start && o.offset < end);
3801
+ const touched = input.occurrences.filter((o) => o.offset < end && o.offset + o.length > start);
3562
3802
  if (touched.length === 0 && !cut) return;
3563
3803
  e.preventDefault();
3804
+ const copyStart = touched.reduce((value, o) => Math.min(value, o.offset), start);
3805
+ const copyEnd = touched.reduce((value, o) => Math.max(value, o.offset + o.length), end);
3564
3806
  let text = "";
3565
- let cursor = start;
3807
+ let cursor = copyStart;
3566
3808
  for (const o of touched) {
3567
3809
  text += draft.slice(cursor, o.offset) + o.clipboardText;
3568
- cursor = o.offset + 1;
3810
+ cursor = o.offset + o.length;
3569
3811
  }
3570
- text += draft.slice(cursor, end);
3812
+ text += draft.slice(cursor, copyEnd);
3571
3813
  e.clipboardData.setData("text/plain", text);
3572
3814
  if (cut && !machineBusy && !locked) {
3573
- keyboard.setDraft(draft.slice(0, start) + draft.slice(end), {
3574
- start,
3575
- end,
3815
+ keyboard.setDraft(draft.slice(0, copyStart) + draft.slice(copyEnd), {
3816
+ start: copyStart,
3817
+ end: copyEnd,
3576
3818
  insertedLength: 0
3577
3819
  });
3578
- restoreCaret(el, start);
3820
+ restoreCaret(el, copyStart);
3579
3821
  }
3580
3822
  };
3581
3823
  const onPaste = (e) => {
@@ -3616,60 +3858,6 @@ window.__ModuleLoader__.load({
3616
3858
  t
3617
3859
  ]);
3618
3860
  const canAcceptDrop = !locked && !machineBusy && addImages !== void 0;
3619
- (0, react.useEffect)(() => {
3620
- const hasFiles = (event) => event.dataTransfer?.types.includes("Files") ?? false;
3621
- const reset = () => {
3622
- dragDepthRef.current = 0;
3623
- setDragActive(false);
3624
- };
3625
- const onDragEnter = (event) => {
3626
- if (!hasFiles(event)) return;
3627
- event.preventDefault();
3628
- dragDepthRef.current += 1;
3629
- setDragActive(true);
3630
- };
3631
- const onDragOver = (event) => {
3632
- if (!hasFiles(event) || event.dataTransfer === null) return;
3633
- event.preventDefault();
3634
- event.dataTransfer.dropEffect = canAcceptDrop ? "copy" : "none";
3635
- };
3636
- const onDragLeave = (event) => {
3637
- if (!hasFiles(event)) return;
3638
- dragDepthRef.current = Math.max(0, dragDepthRef.current - 1);
3639
- if (dragDepthRef.current === 0) setDragActive(false);
3640
- const leavingViewport = event.clientX <= 0 || event.clientY <= 0 || event.clientX >= window.innerWidth || event.clientY >= window.innerHeight;
3641
- if ((event.target === document.documentElement || event.target === document.body) && leavingViewport) reset();
3642
- };
3643
- const onDrop = (event) => {
3644
- if (!hasFiles(event)) return;
3645
- event.preventDefault();
3646
- reset();
3647
- if (!canAcceptDrop) return;
3648
- intakeImages([...event.dataTransfer?.files ?? []]);
3649
- };
3650
- document.addEventListener("dragenter", onDragEnter);
3651
- document.addEventListener("dragover", onDragOver);
3652
- document.addEventListener("dragleave", onDragLeave);
3653
- document.addEventListener("drop", onDrop);
3654
- window.addEventListener("dragend", reset);
3655
- return () => {
3656
- document.removeEventListener("dragenter", onDragEnter);
3657
- document.removeEventListener("dragover", onDragOver);
3658
- document.removeEventListener("dragleave", onDragLeave);
3659
- document.removeEventListener("drop", onDrop);
3660
- window.removeEventListener("dragend", reset);
3661
- };
3662
- }, [canAcceptDrop, intakeImages]);
3663
- const closePreview = (0, react.useCallback)(() => {
3664
- setPreview(null);
3665
- }, []);
3666
- const railItems = (0, react.useMemo)(() => attachments.map((attachment) => ({
3667
- id: attachment.id,
3668
- previewUrl: attachment.previewUrl,
3669
- alt: attachment.file.name || t("image.pending"),
3670
- removeLabel: t("image.remove", { name: attachment.file.name }),
3671
- attachment
3672
- })), [attachments, t]);
3673
3861
  const onSelect = (e) => {
3674
3862
  if (keyboard !== void 0 && keyboard.snapshot.paste !== void 0) keyboard.invalidatePaste();
3675
3863
  };
@@ -3719,34 +3907,54 @@ window.__ModuleLoader__.load({
3719
3907
  at: chip.offset,
3720
3908
  kind: "chip",
3721
3909
  chip
3722
- })), ...deco.textRefs.map((ref) => ({
3910
+ })), ...deco.textRefs.map((ref, ordinal) => ({
3723
3911
  at: ref.start,
3724
3912
  kind: "text-ref",
3725
- ref
3913
+ ref,
3914
+ ordinal
3726
3915
  }))].sort((a, b) => a.at - b.at);
3727
3916
  for (const b of boundaries) {
3728
3917
  if (b.at < cursor) continue;
3729
3918
  pushPlain(b.at);
3730
3919
  if (b.kind === "chip") {
3731
3920
  const chip = b.chip;
3732
- backdrop.push((0, react_jsx_runtime.jsx)("span", {
3921
+ backdrop.push((0, react_jsx_runtime.jsxs)("span", {
3733
3922
  className: clsx(InputBar_module_css_default.chip, chip.invalid && InputBar_module_css_default.chipInvalid),
3734
3923
  "data-decoration": "chip",
3924
+ "data-reference-appearance": chip.appearance,
3735
3925
  "data-occurrence": chip.occurrenceId,
3736
3926
  "data-invalid": chip.invalid || void 0,
3737
3927
  title: chip.label,
3738
- children: (0, react_jsx_runtime.jsx)("span", {
3739
- className: InputBar_module_css_default.chipLabel,
3740
- children: chip.label
3741
- })
3928
+ children: [chip.appearance === void 0 ? chip.text[0] : (0, react_jsx_runtime.jsxs)("span", {
3929
+ className: InputBar_module_css_default.chipTrigger,
3930
+ children: [(0, react_jsx_runtime.jsx)("span", {
3931
+ className: InputBar_module_css_default.chipTriggerGlyph,
3932
+ children: chip.text[0]
3933
+ }), (0, react_jsx_runtime.jsx)(ReferenceIcon, {
3934
+ kind: chip.appearance,
3935
+ size: 16,
3936
+ className: InputBar_module_css_default.chipIcon
3937
+ })]
3938
+ }), (0, react_jsx_runtime.jsx)("span", { children: chip.text.slice(1) })]
3742
3939
  }, `chip-${chip.occurrenceId}`));
3743
- cursor = chip.offset + 1;
3940
+ cursor = chip.offset + chip.length;
3744
3941
  } else {
3942
+ const text = draft.slice(b.ref.start, b.ref.end);
3745
3943
  backdrop.push((0, react_jsx_runtime.jsx)("mark", {
3746
3944
  className: InputBar_module_css_default.textRef,
3747
3945
  "data-decoration": "text-ref",
3748
- children: draft.slice(b.ref.start, b.ref.end)
3749
- }, `ref-${b.ref.start}`));
3946
+ children: b.ref.appearance === "folder" ? (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsxs)("span", {
3947
+ className: InputBar_module_css_default.textRefTrigger,
3948
+ children: [(0, react_jsx_runtime.jsx)("span", {
3949
+ className: InputBar_module_css_default.textRefTriggerGlyph,
3950
+ children: text[0]
3951
+ }), (0, react_jsx_runtime.jsx)(ReferenceIcon, {
3952
+ kind: "folder",
3953
+ size: 16,
3954
+ className: InputBar_module_css_default.textRefIcon
3955
+ })]
3956
+ }), text.slice(1)] }) : text
3957
+ }, `ref-${b.ordinal}`));
3750
3958
  cursor = b.ref.end;
3751
3959
  }
3752
3960
  }
@@ -3766,21 +3974,14 @@ window.__ModuleLoader__.load({
3766
3974
  return (0, react_jsx_runtime.jsxs)("div", {
3767
3975
  className: clsx(InputBar_module_css_default.root, variant === "hero" && InputBar_module_css_default.hero),
3768
3976
  children: [
3769
- dragActive && (0, react_jsx_runtime.jsx)(_nomix_ai_nomix_client_ui_attachment.DropOverlay, {
3770
- disabled: !canAcceptDrop,
3771
- labels: dropOverlayLabels(t, canAcceptDrop, imageLimits === void 0 ? void 0 : {
3772
- count: imageLimits.maxImagesPerMessage,
3773
- size: imageSizeText(imageLimits.maxImageBytes)
3774
- })
3775
- }),
3776
3977
  toast !== null && (0, react_jsx_runtime.jsx)(_nomix_ai_nomix_client_ui_primitives.Toast, {
3777
3978
  text: toast.text,
3778
3979
  icon: (0, react_jsx_runtime.jsx)(_nomix_ai_nomix_client_ui_primitives.IconWarningOutline16, {}),
3779
3980
  anchor: cardRef.current,
3780
3981
  onDone: dismissToast
3781
3982
  }, toast.seq),
3782
- notice !== null && (0, react_jsx_runtime.jsx)("div", {
3783
- className: clsx(InputBar_module_css_default.notice, notice.level === "error" && InputBar_module_css_default.noticeError),
3983
+ notice?.level === "info" && (0, react_jsx_runtime.jsx)("div", {
3984
+ className: InputBar_module_css_default.notice,
3784
3985
  role: "status",
3785
3986
  children: notice.text
3786
3987
  }),
@@ -3801,18 +4002,17 @@ window.__ModuleLoader__.load({
3801
4002
  className: InputBar_module_css_default.accessory,
3802
4003
  children: accessory
3803
4004
  }),
3804
- railItems.length > 0 && (0, react_jsx_runtime.jsx)("div", {
3805
- className: InputBar_module_css_default.attachments,
3806
- children: (0, react_jsx_runtime.jsx)(_nomix_ai_nomix_client_ui_attachment.AttachmentRail, {
3807
- items: railItems,
3808
- labels: attachmentRailLabels(t),
3809
- onOpen: (item) => {
3810
- setPreview(item.attachment);
3811
- },
3812
- onRemove: (item) => {
3813
- removeImage?.(item.attachment.id);
3814
- }
3815
- })
4005
+ renderSlot("conversation.input.attachments", {
4006
+ attachments,
4007
+ canAcceptDrop,
4008
+ onAddImages: intakeImages,
4009
+ onRemoveImage: (id) => {
4010
+ removeImage?.(id);
4011
+ },
4012
+ dropLimits: imageLimits === void 0 ? void 0 : {
4013
+ count: imageLimits.maxImagesPerMessage,
4014
+ size: imageSizeText(imageLimits.maxImageBytes)
4015
+ }
3816
4016
  }),
3817
4017
  (0, react_jsx_runtime.jsx)("div", {
3818
4018
  ref: scrollRef,
@@ -3823,8 +4023,9 @@ window.__ModuleLoader__.load({
3823
4023
  children: [
3824
4024
  (0, react_jsx_runtime.jsx)("div", {
3825
4025
  "aria-hidden": true,
3826
- className: InputBar_module_css_default.backdrop,
4026
+ className: clsx(InputBar_module_css_default.backdrop, textareaDisabled && InputBar_module_css_default.backdropDisabled),
3827
4027
  "data-input-backdrop": true,
4028
+ "data-disabled": textareaDisabled || void 0,
3828
4029
  children: backdrop
3829
4030
  }),
3830
4031
  (0, react_jsx_runtime.jsx)("textarea", {
@@ -3966,12 +4167,6 @@ window.__ModuleLoader__.load({
3966
4167
  })
3967
4168
  ]
3968
4169
  }),
3969
- preview !== null && (0, react_jsx_runtime.jsx)(_nomix_ai_nomix_client_ui_attachment.ImageLightbox, {
3970
- src: preview.previewUrl,
3971
- alt: preview.file.name || t("image.original"),
3972
- labels: lightboxLabels(t),
3973
- onClose: closePreview
3974
- }),
3975
4170
  footer
3976
4171
  ]
3977
4172
  });
@@ -3988,12 +4183,12 @@ window.__ModuleLoader__.load({
3988
4183
  document.head.appendChild(tag);
3989
4184
  }
3990
4185
  var EnterBehaviorRow_module_css_default = {
3991
- "row": "IJntMa_row",
3992
4186
  "chevron": "IJntMa_chevron",
3993
- "rowText": "IJntMa_rowText",
3994
4187
  "desc": "IJntMa_desc",
3995
- "title": "IJntMa_title",
3996
- "selector": "IJntMa_selector"
4188
+ "row": "IJntMa_row",
4189
+ "rowText": "IJntMa_rowText",
4190
+ "selector": "IJntMa_selector",
4191
+ "title": "IJntMa_title"
3997
4192
  };
3998
4193
  //#endregion
3999
4194
  //#region lib/types/client/settings/EnterBehaviorRow.js
@@ -4056,7 +4251,7 @@ window.__ModuleLoader__.load({
4056
4251
  }
4057
4252
  //#endregion
4058
4253
  //#region \0nomix-css:/home/runner/work/nomix-harness/nomix-harness/packages/client/ui-conversation/src/client/chat/MessageItem.module.css.mjs
4059
- const css$15 = ".g7eWLW_userRow{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.g7eWLW_userStack{flex-direction:column;align-items:flex-end;gap:8px;min-width:0;max-width:min(525px,82%);display:flex}.g7eWLW_bubble{background:var(--dsw-specific-bubble);max-width:100%;color:var(--dsw-alias-label-primary);border-radius:22px;padding:10px 16px;font-size:16px;line-height:24px}.g7eWLW_contextRow,.g7eWLW_compactionRow{padding:2px 0}.g7eWLW_compactionButton{width:100%;min-width:0;height:24px;color:inherit;font:inherit;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;padding:0;display:flex}.g7eWLW_compactionButton:not(:disabled){cursor:pointer}.g7eWLW_compactionButton:not(:disabled):hover{background:var(--dsw-alias-interactive-bg-hover)}.g7eWLW_compactionLeading{width:16px;height:16px;color:var(--dsw-alias-label-secondary);flex:none;place-items:center;margin-right:6px;display:inline-grid}.g7eWLW_compactionContextIcon,.g7eWLW_compactionDisclosureIcon{grid-area:1/1;justify-content:center;align-items:center;display:inline-flex}.g7eWLW_compactionDisclosureIcon,.g7eWLW_compactionButton:not(:disabled):hover .g7eWLW_compactionContextIcon,.g7eWLW_compactionButton:not(:disabled):focus-visible .g7eWLW_compactionContextIcon{opacity:0}.g7eWLW_compactionButton:not(:disabled):hover .g7eWLW_compactionDisclosureIcon,.g7eWLW_compactionButton:not(:disabled):focus-visible .g7eWLW_compactionDisclosureIcon{opacity:1}.g7eWLW_compactionTitle{color:var(--dsw-alias-label-primary-dimmed);flex:none;font-size:14px;line-height:24px}.g7eWLW_compactionSep{background:var(--dsw-alias-label-caption);border-radius:1px;flex:none;width:2px;height:2px;margin:0 8px}.g7eWLW_compactionSummary{min-width:0;color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;flex:auto;font-size:14px;line-height:24px;overflow:hidden}.g7eWLW_compactionBody{color:var(--dsw-alias-label-tertiary);padding:4px 0 4px 22px;font-size:14px;line-height:24px}.g7eWLW_retryRow{color:var(--dsw-alias-label-tertiary);font-size:13px;line-height:20px}.g7eWLW_retrySummary{width:fit-content;color:inherit;cursor:pointer;user-select:none;border-radius:3px;align-items:center;gap:7px;padding:2px 0;list-style:none;display:inline-flex}.g7eWLW_retrySummary::-webkit-details-marker{display:none}.g7eWLW_retrySummary:after{content:\"\";opacity:.8;border-bottom:1.5px solid;border-right:1.5px solid;width:6px;height:6px;transition:transform .12s;transform:rotate(-45deg)}.g7eWLW_retrySummary:hover{color:var(--dsw-alias-label-secondary)}.g7eWLW_retrySummary:focus-visible{outline:1.5px solid var(--dsw-alias-button-info-fill);outline-offset:2px}.g7eWLW_retryText{color:inherit}.g7eWLW_retryRow[data-active] .g7eWLW_retryText{background:linear-gradient(90deg, var(--dsw-alias-label-tertiary) 0%, var(--dsw-alias-label-tertiary) 40%, var(--dsw-alias-label-secondary) 50%, var(--dsw-alias-label-tertiary) 60%, var(--dsw-alias-label-tertiary) 100%);color:#0000;background-position:100%;background-size:200% 100%;background-clip:text;animation:1.6s ease-in-out infinite g7eWLW_retry-shimmer}.g7eWLW_retryRow[open] .g7eWLW_retrySummary:after{transform:rotate(45deg)}.g7eWLW_retryDetails{overflow-wrap:anywhere;gap:2px;margin-top:3px;padding-left:14px;font-size:12px;line-height:18px;display:grid}.g7eWLW_retryDetailLabel{color:var(--dsw-alias-label-secondary)}.g7eWLW_turnErrorRow{grid-template-columns:10px minmax(0,1fr) auto;align-items:start;gap:8px;padding:2px 0;font-size:13px;line-height:20px;display:grid}.g7eWLW_turnErrorDot{margin-top:5px}.g7eWLW_turnErrorCopy{overflow-wrap:anywhere;min-width:0}.g7eWLW_turnErrorTitle{color:var(--dsw-alias-state-error-primary);margin-right:6px;font-weight:600}.g7eWLW_turnErrorMessage{color:var(--dsw-alias-label-secondary)}.g7eWLW_turnErrorCode{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-markdown-code-block-small)}.g7eWLW_maxTokensTitle{color:var(--dsw-alias-state-warn-primary);margin-right:6px;font-weight:600}@keyframes g7eWLW_retry-shimmer{0%{background-position:100%}to{background-position:0}}@media (prefers-reduced-motion:reduce){.g7eWLW_retryRow[data-active] .g7eWLW_retryText{color:inherit;background:0 0;animation:none}}.g7eWLW_refChip{color:var(--dsw-alias-label-primary);white-space:nowrap;vertical-align:baseline;background:#6187d838;border-radius:6px;margin:0 2px;padding:0 8px;font-size:.85em;line-height:1.6;display:inline-block}";
4254
+ const css$15 = ".g7eWLW_userRow{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.g7eWLW_userStack{flex-direction:column;align-items:flex-end;gap:8px;min-width:0;max-width:min(525px,82%);display:flex}.g7eWLW_bubble{background:var(--dsw-specific-bubble);max-width:100%;color:var(--dsw-alias-label-primary);border-radius:22px;padding:10px 16px;font-size:16px;line-height:24px}.g7eWLW_referenceSummary{color:var(--dsw-alias-label-tertiary);font-size:12px;line-height:18px}.g7eWLW_contextRow,.g7eWLW_compactionRow{padding:2px 0}.g7eWLW_compactionButton{width:100%;min-width:0;height:24px;color:inherit;font:inherit;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;padding:0;display:flex}.g7eWLW_compactionButton:not(:disabled){cursor:pointer}.g7eWLW_compactionButton:not(:disabled):hover{background:var(--dsw-alias-interactive-bg-hover)}.g7eWLW_compactionLeading{width:16px;height:16px;color:var(--dsw-alias-label-secondary);flex:none;place-items:center;margin-right:6px;display:inline-grid}.g7eWLW_compactionContextIcon,.g7eWLW_compactionDisclosureIcon{grid-area:1/1;justify-content:center;align-items:center;display:inline-flex}.g7eWLW_compactionDisclosureIcon,.g7eWLW_compactionButton:not(:disabled):hover .g7eWLW_compactionContextIcon,.g7eWLW_compactionButton:not(:disabled):focus-visible .g7eWLW_compactionContextIcon{opacity:0}.g7eWLW_compactionButton:not(:disabled):hover .g7eWLW_compactionDisclosureIcon,.g7eWLW_compactionButton:not(:disabled):focus-visible .g7eWLW_compactionDisclosureIcon{opacity:1}.g7eWLW_compactionTitle{color:var(--dsw-alias-label-primary-dimmed);flex:none;font-size:14px;line-height:24px}.g7eWLW_compactionSep{background:var(--dsw-alias-label-caption);border-radius:1px;flex:none;width:2px;height:2px;margin:0 8px}.g7eWLW_compactionSummary{min-width:0;color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;flex:auto;font-size:14px;line-height:24px;overflow:hidden}.g7eWLW_compactionBody{color:var(--dsw-alias-label-tertiary);padding:4px 0 4px 22px;font-size:14px;line-height:24px}.g7eWLW_retryRow{color:var(--dsw-alias-label-tertiary);font-size:13px;line-height:20px}.g7eWLW_retrySummary{width:fit-content;color:inherit;cursor:pointer;user-select:none;border-radius:3px;align-items:center;gap:7px;padding:2px 0;list-style:none;display:inline-flex}.g7eWLW_retrySummary::-webkit-details-marker{display:none}.g7eWLW_retrySummary:after{content:\"\";opacity:.8;border-bottom:1.5px solid;border-right:1.5px solid;width:6px;height:6px;transition:transform .12s;transform:rotate(-45deg)}.g7eWLW_retrySummary:hover{color:var(--dsw-alias-label-secondary)}.g7eWLW_retrySummary:focus-visible{outline:1.5px solid var(--dsw-alias-button-info-fill);outline-offset:2px}.g7eWLW_retryText{color:inherit}.g7eWLW_retryRow[data-active] .g7eWLW_retryText{background:linear-gradient(90deg, var(--dsw-alias-label-tertiary) 0%, var(--dsw-alias-label-tertiary) 40%, var(--dsw-alias-label-secondary) 50%, var(--dsw-alias-label-tertiary) 60%, var(--dsw-alias-label-tertiary) 100%);color:#0000;background-position:100%;background-size:200% 100%;background-clip:text;animation:1.6s ease-in-out infinite g7eWLW_retry-shimmer}.g7eWLW_retryRow[open] .g7eWLW_retrySummary:after{transform:rotate(45deg)}.g7eWLW_retryDetails{overflow-wrap:anywhere;gap:2px;margin-top:3px;padding-left:14px;font-size:12px;line-height:18px;display:grid}.g7eWLW_retryDetailLabel{color:var(--dsw-alias-label-secondary)}.g7eWLW_turnErrorRow{grid-template-columns:10px minmax(0,1fr) auto;align-items:start;gap:8px;padding:2px 0;font-size:13px;line-height:20px;display:grid}.g7eWLW_turnErrorDot{margin-top:5px}.g7eWLW_turnErrorCopy{overflow-wrap:anywhere;min-width:0}.g7eWLW_turnErrorTitle{color:var(--dsw-alias-state-error-primary);margin-right:6px;font-weight:600}.g7eWLW_turnErrorMessage{color:var(--dsw-alias-label-secondary)}.g7eWLW_turnErrorCode{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-markdown-code-block-small)}.g7eWLW_maxTokensTitle{color:var(--dsw-alias-state-warn-primary);margin-right:6px;font-weight:600}@keyframes g7eWLW_retry-shimmer{0%{background-position:100%}to{background-position:0}}@media (prefers-reduced-motion:reduce){.g7eWLW_retryRow[data-active] .g7eWLW_retryText{color:inherit;background:0 0;animation:none}}.g7eWLW_refChip{color:var(--dsw-alias-state-business-primary);white-space:nowrap;vertical-align:baseline;align-items:center;gap:4px;margin:0 2px;font-weight:500;display:inline-flex}.g7eWLW_refIcon{flex:none}";
4060
4255
  const tagId$15 = "@nomix-ai/nomix-client-ui-conversation/MessageItem.module.css";
4061
4256
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$15) + "]") === null) {
4062
4257
  const tag = document.createElement("style");
@@ -4066,33 +4261,35 @@ window.__ModuleLoader__.load({
4066
4261
  document.head.appendChild(tag);
4067
4262
  }
4068
4263
  var MessageItem_module_css_default = {
4264
+ "bubble": "g7eWLW_bubble",
4069
4265
  "compactionBody": "g7eWLW_compactionBody",
4070
- "turnErrorMessage": "g7eWLW_turnErrorMessage",
4071
- "contextRow": "g7eWLW_contextRow",
4072
- "compactionSummary": "g7eWLW_compactionSummary",
4073
- "userStack": "g7eWLW_userStack",
4266
+ "compactionButton": "g7eWLW_compactionButton",
4267
+ "compactionContextIcon": "g7eWLW_compactionContextIcon",
4268
+ "compactionDisclosureIcon": "g7eWLW_compactionDisclosureIcon",
4074
4269
  "compactionLeading": "g7eWLW_compactionLeading",
4075
- "bubble": "g7eWLW_bubble",
4270
+ "compactionRow": "g7eWLW_compactionRow",
4271
+ "compactionSep": "g7eWLW_compactionSep",
4272
+ "compactionSummary": "g7eWLW_compactionSummary",
4076
4273
  "compactionTitle": "g7eWLW_compactionTitle",
4274
+ "contextRow": "g7eWLW_contextRow",
4275
+ "maxTokensTitle": "g7eWLW_maxTokensTitle",
4276
+ "refChip": "g7eWLW_refChip",
4277
+ "refIcon": "g7eWLW_refIcon",
4278
+ "referenceSummary": "g7eWLW_referenceSummary",
4077
4279
  "retry-shimmer": "g7eWLW_retry-shimmer",
4078
- "compactionSep": "g7eWLW_compactionSep",
4079
- "retrySummary": "g7eWLW_retrySummary",
4280
+ "retryDetailLabel": "g7eWLW_retryDetailLabel",
4080
4281
  "retryDetails": "g7eWLW_retryDetails",
4081
- "turnErrorDot": "g7eWLW_turnErrorDot",
4082
- "turnErrorTitle": "g7eWLW_turnErrorTitle",
4083
- "refChip": "g7eWLW_refChip",
4084
4282
  "retryRow": "g7eWLW_retryRow",
4085
- "maxTokensTitle": "g7eWLW_maxTokensTitle",
4086
- "compactionContextIcon": "g7eWLW_compactionContextIcon",
4283
+ "retrySummary": "g7eWLW_retrySummary",
4284
+ "retryText": "g7eWLW_retryText",
4285
+ "turnErrorCode": "g7eWLW_turnErrorCode",
4286
+ "turnErrorCopy": "g7eWLW_turnErrorCopy",
4287
+ "turnErrorDot": "g7eWLW_turnErrorDot",
4288
+ "turnErrorMessage": "g7eWLW_turnErrorMessage",
4087
4289
  "turnErrorRow": "g7eWLW_turnErrorRow",
4088
- "compactionDisclosureIcon": "g7eWLW_compactionDisclosureIcon",
4290
+ "turnErrorTitle": "g7eWLW_turnErrorTitle",
4089
4291
  "userRow": "g7eWLW_userRow",
4090
- "compactionButton": "g7eWLW_compactionButton",
4091
- "turnErrorCopy": "g7eWLW_turnErrorCopy",
4092
- "compactionRow": "g7eWLW_compactionRow",
4093
- "retryDetailLabel": "g7eWLW_retryDetailLabel",
4094
- "retryText": "g7eWLW_retryText",
4095
- "turnErrorCode": "g7eWLW_turnErrorCode"
4292
+ "userStack": "g7eWLW_userStack"
4096
4293
  };
4097
4294
  //#endregion
4098
4295
  //#region lib/types/client/chat/CompactionItem.js
@@ -4164,29 +4361,29 @@ window.__ModuleLoader__.load({
4164
4361
  document.head.appendChild(tag);
4165
4362
  }
4166
4363
  var ContextBody_module_css_default = {
4167
- "field": "M0vZua_field",
4168
- "filePath": "M0vZua_filePath",
4169
- "sectionText": "M0vZua_sectionText",
4170
- "sections": "M0vZua_sections",
4171
- "recallCounts": "M0vZua_recallCounts",
4172
- "text": "M0vZua_text",
4173
- "fieldKey": "M0vZua_fieldKey",
4174
4364
  "catalogNotice": "M0vZua_catalogNotice",
4175
4365
  "entries": "M0vZua_entries",
4176
- "files": "M0vZua_files",
4177
- "sectionName": "M0vZua_sectionName",
4178
- "recallLabel": "M0vZua_recallLabel",
4179
4366
  "entry": "M0vZua_entry",
4180
- "file": "M0vZua_file",
4181
- "relaySender": "M0vZua_relaySender",
4182
- "fields": "M0vZua_fields",
4367
+ "entryDescription": "M0vZua_entryDescription",
4183
4368
  "entryName": "M0vZua_entryName",
4184
- "recalls": "M0vZua_recalls",
4369
+ "field": "M0vZua_field",
4370
+ "fieldKey": "M0vZua_fieldKey",
4185
4371
  "fieldValue": "M0vZua_fieldValue",
4186
- "section": "M0vZua_section",
4187
- "recall": "M0vZua_recall",
4372
+ "fields": "M0vZua_fields",
4373
+ "file": "M0vZua_file",
4188
4374
  "fileAction": "M0vZua_fileAction",
4189
- "entryDescription": "M0vZua_entryDescription"
4375
+ "filePath": "M0vZua_filePath",
4376
+ "files": "M0vZua_files",
4377
+ "recall": "M0vZua_recall",
4378
+ "recallCounts": "M0vZua_recallCounts",
4379
+ "recallLabel": "M0vZua_recallLabel",
4380
+ "recalls": "M0vZua_recalls",
4381
+ "relaySender": "M0vZua_relaySender",
4382
+ "section": "M0vZua_section",
4383
+ "sectionName": "M0vZua_sectionName",
4384
+ "sectionText": "M0vZua_sectionText",
4385
+ "sections": "M0vZua_sections",
4386
+ "text": "M0vZua_text"
4190
4387
  };
4191
4388
  //#endregion
4192
4389
  //#region lib/types/client/chat/ContextBody.js
@@ -4721,12 +4918,12 @@ window.__ModuleLoader__.load({
4721
4918
  document.head.appendChild(tag);
4722
4919
  }
4723
4920
  var ContextInjectionRow_module_css_default = {
4921
+ "body": "_6Aj7nG_body",
4922
+ "chevron": "_6Aj7nG_chevron",
4724
4923
  "root": "_6Aj7nG_root",
4725
- "source": "_6Aj7nG_source",
4726
- "summary": "_6Aj7nG_summary",
4727
4924
  "sep": "_6Aj7nG_sep",
4728
- "chevron": "_6Aj7nG_chevron",
4729
- "body": "_6Aj7nG_body"
4925
+ "source": "_6Aj7nG_source",
4926
+ "summary": "_6Aj7nG_summary"
4730
4927
  };
4731
4928
  //#endregion
4732
4929
  //#region lib/types/client/chat/ContextInjectionRow.js
@@ -4750,7 +4947,10 @@ window.__ModuleLoader__.load({
4750
4947
  });
4751
4948
  return (0, react_jsx_runtime.jsx)(_nomix_ai_nomix_client_ui_primitives.DisclosureRow, {
4752
4949
  className: ContextInjectionRow_module_css_default.root,
4753
- icon: (0, react_jsx_runtime.jsx)(_nomix_ai_nomix_client_ui_primitives.IconBrowseOutline16, { size: 14 }),
4950
+ icon: provenance.role === "recall" ? (0, react_jsx_runtime.jsx)("span", {
4951
+ "data-context-recall-icon": true,
4952
+ children: (0, react_jsx_runtime.jsx)(ReferenceIcon, { kind: "session" })
4953
+ }) : (0, react_jsx_runtime.jsx)(_nomix_ai_nomix_client_ui_primitives.IconBrowseOutline16, { size: 14 }),
4754
4954
  chevronClassName: ContextInjectionRow_module_css_default.chevron,
4755
4955
  title: t(provenance.role === "recall" ? "message.contextRecall" : "message.contextInjection"),
4756
4956
  collapsedContent: provenance.label === null ? void 0 : (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
@@ -4821,12 +5021,12 @@ window.__ModuleLoader__.load({
4821
5021
  document.head.appendChild(tag);
4822
5022
  }
4823
5023
  var MessageIconActions_module_css_default = {
4824
- "timeStart": "-pWzZa_timeStart",
4825
- "actions": "-pWzZa_actions",
4826
5024
  "action": "-pWzZa_action",
5025
+ "actions": "-pWzZa_actions",
5026
+ "runTimeDot": "-pWzZa_runTimeDot",
4827
5027
  "timeEnd": "-pWzZa_timeEnd",
4828
- "visuallyHidden": "-pWzZa_visuallyHidden",
4829
- "runTimeDot": "-pWzZa_runTimeDot"
5028
+ "timeStart": "-pWzZa_timeStart",
5029
+ "visuallyHidden": "-pWzZa_visuallyHidden"
4830
5030
  };
4831
5031
  //#endregion
4832
5032
  //#region lib/types/client/chat/MessageIconActions.js
@@ -5074,28 +5274,62 @@ window.__ModuleLoader__.load({
5074
5274
  * scan as the composer, minus the lexicon: sent tokens were validated at
5075
5275
  * compose time, so shape alone decorates).
5076
5276
  */
5077
- function projectUserText(text) {
5078
- const re = /(^|\s)([/@][\w-]+)(?=\s|$)/g;
5079
- const parts = [];
5080
- let cursor = 0;
5277
+ function projectUserText(text, sessionLabels) {
5278
+ const ranges = [];
5279
+ for (const rawLabel of [...new Set(sessionLabels)].sort((a, b) => b.length - a.length)) {
5280
+ const label = `@${rawLabel}`;
5281
+ let start = text.indexOf(label);
5282
+ while (start >= 0) {
5283
+ ranges.push({
5284
+ start,
5285
+ end: start + label.length,
5286
+ label,
5287
+ kind: "session"
5288
+ });
5289
+ start = text.indexOf(label, start + label.length);
5290
+ }
5291
+ }
5292
+ const re = /(^|\s)(\/[\w-]+|@"[^"\n]+"|@[^\s]+)/gu;
5081
5293
  let m;
5082
5294
  while ((m = re.exec(text)) !== null) {
5083
5295
  const tokenStart = m.index + (m[1]?.length ?? 0);
5084
- const label = m[2] ?? "";
5296
+ const rawLabel = m[2] ?? "";
5297
+ const label = rawLabel.startsWith("@\"") ? rawLabel : rawLabel.replace(/[.,;:!?,。;:!?]+$/gu, "");
5298
+ if (label.length <= 1) continue;
5299
+ ranges.push({
5300
+ start: tokenStart,
5301
+ end: tokenStart + label.length,
5302
+ label,
5303
+ kind: "plain"
5304
+ });
5305
+ }
5306
+ ranges.sort((a, b) => a.start - b.start || (a.kind === b.kind ? b.end - a.end : a.kind === "session" ? -1 : 1));
5307
+ const parts = [];
5308
+ let cursor = 0;
5309
+ for (const range of ranges) {
5310
+ if (range.start < cursor) continue;
5311
+ const { start: tokenStart, end, label, kind } = range;
5085
5312
  if (tokenStart > cursor) parts.push((0, react_jsx_runtime.jsx)(_nomix_ai_nomix_client_ui_primitives.MessageText, { text: text.slice(cursor, tokenStart) }, cursor));
5086
- parts.push((0, react_jsx_runtime.jsx)("span", {
5313
+ const referenceKind = kind === "session" ? "session" : label.startsWith("@") ? label.endsWith("/") ? "folder" : "file" : void 0;
5314
+ const displayLabel = referenceKind === void 0 ? label : referenceKind === "session" ? label.slice(1) : label.slice(1).replace(/^"|"$/gu, "").split(/[\\/]/u).filter(Boolean).at(-1) ?? label.slice(1);
5315
+ parts.push((0, react_jsx_runtime.jsxs)("span", {
5087
5316
  className: MessageItem_module_css_default.refChip,
5088
- "data-ref-chip": label.startsWith("@") ? "subagent" : "skill",
5089
- children: label
5317
+ "data-ref-chip": referenceKind ?? "skill",
5318
+ title: label,
5319
+ children: [referenceKind !== void 0 && (0, react_jsx_runtime.jsx)(ReferenceIcon, {
5320
+ kind: referenceKind,
5321
+ size: 16,
5322
+ className: MessageItem_module_css_default.refIcon
5323
+ }), displayLabel]
5090
5324
  }, tokenStart));
5091
- cursor = tokenStart + label.length;
5325
+ cursor = end;
5092
5326
  }
5093
5327
  if (parts.length === 0) return (0, react_jsx_runtime.jsx)(_nomix_ai_nomix_client_ui_primitives.MessageText, { text });
5094
5328
  if (cursor < text.length) parts.push((0, react_jsx_runtime.jsx)(_nomix_ai_nomix_client_ui_primitives.MessageText, { text: text.slice(cursor) }, cursor));
5095
5329
  return (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, { children: parts });
5096
5330
  }
5097
5331
  /** Right-aligned bubble shared by user and steering rows. */
5098
- function UserStyleBubble({ content, imageLoader, actions, pending = false, t }) {
5332
+ function UserStyleBubble({ content, renderMessageImages, actions, pending = false, referenceLabels = [], t }) {
5099
5333
  const { text, images, rest } = contentParts(content);
5100
5334
  const truncated = (total) => t("json.truncated", { total });
5101
5335
  const showBubble = text !== "" || rest.length > 0;
@@ -5105,19 +5339,24 @@ window.__ModuleLoader__.load({
5105
5339
  "data-time-hover-root": true,
5106
5340
  children: [(0, react_jsx_runtime.jsxs)("div", {
5107
5341
  className: MessageItem_module_css_default.userStack,
5108
- children: [(0, react_jsx_runtime.jsx)(_nomix_ai_nomix_client_ui_attachment.ImageGallery, {
5109
- images,
5110
- load: imageLoader,
5111
- align: "end",
5112
- labels: messageImageLabels(t)
5113
- }), showBubble && (0, react_jsx_runtime.jsxs)("div", {
5114
- className: MessageItem_module_css_default.bubble,
5115
- children: [projectUserText(text), rest.map((block, i) => (0, react_jsx_runtime.jsx)(_nomix_ai_nomix_client_ui_primitives.JsonBlock, {
5116
- label: t("message.extraBlock"),
5117
- payload: block,
5118
- truncatedLabel: truncated
5119
- }, i))]
5120
- })]
5342
+ children: [
5343
+ renderMessageImages({
5344
+ images,
5345
+ align: "end"
5346
+ }),
5347
+ showBubble && (0, react_jsx_runtime.jsxs)("div", {
5348
+ className: MessageItem_module_css_default.bubble,
5349
+ children: [projectUserText(text, referenceLabels), rest.map((block, i) => (0, react_jsx_runtime.jsx)(_nomix_ai_nomix_client_ui_primitives.JsonBlock, {
5350
+ label: t("message.extraBlock"),
5351
+ payload: block,
5352
+ truncatedLabel: truncated
5353
+ }, i))]
5354
+ }),
5355
+ referenceLabels.length > 0 && (0, react_jsx_runtime.jsx)("div", {
5356
+ className: MessageItem_module_css_default.referenceSummary,
5357
+ children: t("message.referenceSummary", { labels: referenceLabels.join(t("message.referenceSeparator")) })
5358
+ })
5359
+ ]
5121
5360
  }), actions?.(text)]
5122
5361
  });
5123
5362
  }
@@ -5127,10 +5366,10 @@ window.__ModuleLoader__.load({
5127
5366
  * @param props - Pending message content and conversation translator.
5128
5367
  * @returns the pending steering bubble.
5129
5368
  */
5130
- function PendingSteeringBubble({ content, loadImage, t }) {
5369
+ function PendingSteeringBubble({ content, renderMessageImages, t }) {
5131
5370
  return (0, react_jsx_runtime.jsx)(UserStyleBubble, {
5132
5371
  content,
5133
- imageLoader: loadImage ?? (() => Promise.reject(new Error(t("image.serviceUnavailable")))),
5372
+ renderMessageImages,
5134
5373
  pending: true,
5135
5374
  t,
5136
5375
  actions: (text) => (0, react_jsx_runtime.jsx)(MessageIconActions, {
@@ -5142,11 +5381,12 @@ window.__ModuleLoader__.load({
5142
5381
  });
5143
5382
  }
5144
5383
  /** User and admitted-steering keyed Chat renderer. */
5145
- const UserMessageNodeView = (0, react.memo)(function UserMessageNodeView({ node, loadImage, t }) {
5384
+ const UserMessageNodeView = (0, react.memo)(function UserMessageNodeView({ node, renderMessageImages, t }) {
5146
5385
  const data = node.data;
5147
5386
  return (0, react_jsx_runtime.jsx)(UserStyleBubble, {
5148
5387
  content: data.content,
5149
- imageLoader: loadImage,
5388
+ renderMessageImages,
5389
+ ...data.referenceLabels === void 0 ? {} : { referenceLabels: data.referenceLabels },
5150
5390
  t,
5151
5391
  actions: (text) => (0, react_jsx_runtime.jsx)(MessageIconActions, {
5152
5392
  text,
@@ -5209,7 +5449,7 @@ window.__ModuleLoader__.load({
5209
5449
  });
5210
5450
  //#endregion
5211
5451
  //#region \0nomix-css:/home/runner/work/nomix-harness/nomix-harness/packages/client/ui-conversation/src/client/chat/ChatView.module.css.mjs
5212
- const css$11 = "._51QFdG_root{flex-direction:column;flex:auto;min-height:0;display:flex;position:relative}._51QFdG_scroll{min-height:0;padding:16px calc(var(--nomix-composer-side-clearance) + 16px);flex:auto;overflow-y:auto}[data-conversation-scroll] ._51QFdG_root{flex:none;height:auto;min-height:auto}[data-conversation-scroll] ._51QFdG_scroll{flex:none;min-height:auto;overflow:visible}._51QFdG_column{max-width:var(--nomix-chat-content-width);flex-direction:column;gap:16px;width:100%;margin:0 auto;display:flex}._51QFdG_flowItem{min-width:0}._51QFdG_flowItem:empty{display:none}._51QFdG_callRow{border-radius:6px}._51QFdG_turnStatus{height:26px;font:var(--dsw-font-s-strong-14);white-space:nowrap;background:linear-gradient(90deg, var(--dsw-static-deepseek-500) 0%, var(--dsw-static-deepseek-500) 40%, var(--dsw-static-deepseek-200) 50%, var(--dsw-static-deepseek-500) 60%, var(--dsw-static-deepseek-500) 100%);color:#0000;-webkit-text-fill-color:transparent;background-position:100% 0;background-size:250% 100%;-webkit-background-clip:text;background-clip:text;flex:none;align-self:flex-start;align-items:center;animation:1.8s linear infinite _51QFdG_nomix-turn-status-shimmer;display:inline-flex}._51QFdG_turnStatusClock{font:var(--dsw-font-xs-13);font-variant-numeric:tabular-nums;color:var(--dsw-alias-label-caption);-webkit-text-fill-color:var(--dsw-alias-label-caption);margin-left:8px;font-weight:400}@keyframes _51QFdG_nomix-turn-status-shimmer{to{background-position:0 0}}@media (prefers-reduced-motion:reduce){._51QFdG_turnStatus{background-position:0 0;background-size:100% 100%;animation:none}}._51QFdG_hint{color:var(--dsw-alias-label-tertiary);font-size:12px;line-height:18px}._51QFdG_openError{color:var(--dsw-alias-state-error-primary);font-size:12px;line-height:18px}._51QFdG_older{justify-content:center;display:flex}._51QFdG_older button{color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-interactive-bg-hover-solid);cursor:pointer;border:none;border-radius:14px;padding:4px 12px;font-size:12px}._51QFdG_older button:disabled{cursor:default;opacity:.6}._51QFdG_toBottomSlot{z-index:8;height:0;padding-right:max(0px, calc((100% - var(--nomix-chat-content-width)) / 2));pointer-events:none;justify-content:flex-end;display:flex;position:sticky;bottom:16px}[data-conversation-scroll] ._51QFdG_toBottomSlot{bottom:calc(var(--nomix-composer-height,152px) + 16px)}._51QFdG_toBottom{border:1px solid var(--dsw-alias-border-l2);width:34px;height:34px;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-button-floating-fill);box-shadow:var(--dsw-shadow-lv2);cursor:pointer;pointer-events:auto;border-radius:100px;justify-content:center;align-items:center;margin-top:-34px;padding:0;display:flex}._51QFdG_toBottom:hover{background:var(--dsw-alias-button-floating-hover)}";
5452
+ const css$11 = "._51QFdG_root{flex-direction:column;flex:auto;min-height:0;display:flex;position:relative}._51QFdG_scroll{min-height:0;padding:16px calc(var(--nomix-composer-side-clearance) + 16px);flex:auto;overflow-y:auto;container-type:inline-size}[data-conversation-scroll] ._51QFdG_root{flex:none;height:auto;min-height:auto}[data-conversation-scroll] ._51QFdG_scroll{flex:none;min-height:auto;overflow:visible}._51QFdG_column{max-width:var(--nomix-chat-content-width);flex-direction:column;gap:16px;width:100%;margin:0 auto;display:flex}._51QFdG_flowItem{min-width:0}._51QFdG_flowItem:empty{display:none}._51QFdG_callRow{border-radius:6px}._51QFdG_turnStatus{height:26px;font:var(--dsw-font-s-strong-14);white-space:nowrap;background:linear-gradient(90deg, var(--dsw-static-deepseek-500) 0%, var(--dsw-static-deepseek-500) 40%, var(--dsw-static-deepseek-200) 50%, var(--dsw-static-deepseek-500) 60%, var(--dsw-static-deepseek-500) 100%);color:#0000;-webkit-text-fill-color:transparent;background-position:100% 0;background-size:250% 100%;-webkit-background-clip:text;background-clip:text;flex:none;align-self:flex-start;align-items:center;animation:1.8s linear infinite _51QFdG_nomix-turn-status-shimmer;display:inline-flex}._51QFdG_turnStatusClock{font:var(--dsw-font-xs-13);font-variant-numeric:tabular-nums;color:var(--dsw-alias-label-caption);-webkit-text-fill-color:var(--dsw-alias-label-caption);margin-left:8px;font-weight:400}@keyframes _51QFdG_nomix-turn-status-shimmer{to{background-position:0 0}}@media (prefers-reduced-motion:reduce){._51QFdG_turnStatus{background-position:0 0;background-size:100% 100%;animation:none}}._51QFdG_hint{color:var(--dsw-alias-label-tertiary);font-size:12px;line-height:18px}._51QFdG_openError{color:var(--dsw-alias-state-error-primary);font-size:12px;line-height:18px}._51QFdG_older{justify-content:center;display:flex}._51QFdG_older button{color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-interactive-bg-hover-solid);cursor:pointer;border:none;border-radius:14px;padding:4px 12px;font-size:12px}._51QFdG_older button:disabled{cursor:default;opacity:.6}._51QFdG_toBottomSlot{z-index:8;height:0;padding-right:max(0px, calc((100% - var(--nomix-chat-content-width)) / 2));pointer-events:none;justify-content:flex-end;display:flex;position:sticky;bottom:16px}[data-conversation-scroll] ._51QFdG_toBottomSlot{bottom:calc(var(--nomix-composer-height,152px) + 16px)}._51QFdG_toBottom{border:1px solid var(--dsw-alias-border-l2);width:34px;height:34px;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-button-floating-fill);box-shadow:var(--dsw-shadow-lv2);cursor:pointer;pointer-events:auto;border-radius:100px;justify-content:center;align-items:center;margin-top:-34px;padding:0;display:flex}._51QFdG_toBottom:hover{background:var(--dsw-alias-button-floating-hover)}._51QFdG_modalAction{min-width:72px}";
5213
5453
  const tagId$11 = "@nomix-ai/nomix-client-ui-conversation/ChatView.module.css";
5214
5454
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$11) + "]") === null) {
5215
5455
  const tag = document.createElement("style");
@@ -5219,24 +5459,25 @@ window.__ModuleLoader__.load({
5219
5459
  document.head.appendChild(tag);
5220
5460
  }
5221
5461
  var ChatView_module_css_default = {
5222
- "toBottomSlot": "_51QFdG_toBottomSlot",
5223
- "column": "_51QFdG_column",
5224
5462
  "callRow": "_51QFdG_callRow",
5225
- "scroll": "_51QFdG_scroll",
5226
- "nomix-turn-status-shimmer": "_51QFdG_nomix-turn-status-shimmer",
5463
+ "column": "_51QFdG_column",
5464
+ "flowItem": "_51QFdG_flowItem",
5227
5465
  "hint": "_51QFdG_hint",
5466
+ "modalAction": "_51QFdG_modalAction",
5467
+ "nomix-turn-status-shimmer": "_51QFdG_nomix-turn-status-shimmer",
5228
5468
  "older": "_51QFdG_older",
5229
- "turnStatusClock": "_51QFdG_turnStatusClock",
5230
- "toBottom": "_51QFdG_toBottom",
5469
+ "openError": "_51QFdG_openError",
5231
5470
  "root": "_51QFdG_root",
5471
+ "scroll": "_51QFdG_scroll",
5472
+ "toBottom": "_51QFdG_toBottom",
5473
+ "toBottomSlot": "_51QFdG_toBottomSlot",
5232
5474
  "turnStatus": "_51QFdG_turnStatus",
5233
- "flowItem": "_51QFdG_flowItem",
5234
- "openError": "_51QFdG_openError"
5475
+ "turnStatusClock": "_51QFdG_turnStatusClock"
5235
5476
  };
5236
5477
  //#endregion
5237
5478
  //#region lib/types/client/chat/ChatNodeSeat.js
5238
5479
  /** Subscribe and dispatch one stable Context key without observing sibling Nodes. */
5239
- const ChatNodeSeat = (0, react.memo)(function ChatNodeSeat({ nodeKey, selectedCallId, cwd, openFile, inspectCall, forkAt, loadImage, fileMentions, useSession, renderSlot, t }) {
5480
+ const ChatNodeSeat = (0, react.memo)(function ChatNodeSeat({ nodeKey, selectedCallId, cwd, openFile, inspectCall, forkAt, renderMessageImages, fileMentions, useSession, renderSlot, t }) {
5240
5481
  const node = useSession((snapshot) => snapshot.chat.nodes.get(nodeKey));
5241
5482
  const routedNode = node;
5242
5483
  const owner = (0, react.useMemo)(() => node === void 0 ? null : {
@@ -5245,7 +5486,7 @@ window.__ModuleLoader__.load({
5245
5486
  openFile,
5246
5487
  inspectCall,
5247
5488
  forkAt,
5248
- loadImage,
5489
+ renderMessageImages,
5249
5490
  fileMentions
5250
5491
  }, [
5251
5492
  node,
@@ -5254,7 +5495,7 @@ window.__ModuleLoader__.load({
5254
5495
  openFile,
5255
5496
  inspectCall,
5256
5497
  forkAt,
5257
- loadImage,
5498
+ renderMessageImages,
5258
5499
  fileMentions
5259
5500
  ]);
5260
5501
  if (routedNode === void 0 || owner === null) return null;
@@ -5332,6 +5573,15 @@ window.__ModuleLoader__.load({
5332
5573
  scrollTop: scrollport.scrollTop
5333
5574
  };
5334
5575
  }
5576
+ /** Host/OS refusal text for the file-open dialog; empty throws keep a locale fallback. */
5577
+ function openFailureMessage(error, fallback) {
5578
+ const message = error instanceof Error ? error.message : String(error);
5579
+ return message === "" ? fallback : message;
5580
+ }
5581
+ /** ProducedFiles opens the session workspace as `.`. */
5582
+ function isFolderOpenPath(path) {
5583
+ return path === ".";
5584
+ }
5335
5585
  function runningTurnStartTime(timeline) {
5336
5586
  let latest = null;
5337
5587
  for (const turn of timeline.turns.values()) if (turn.status === "open" && turn.start !== void 0) latest = turn.start.time;
@@ -5380,7 +5630,35 @@ window.__ModuleLoader__.load({
5380
5630
  const hasMore = useSession((s) => s.hasMore);
5381
5631
  const loadingOlder = useSession((s) => s.loadingOlder);
5382
5632
  const selectedCallId = useStore((s) => s.selection?.callId);
5633
+ const [fileOpenError, setFileOpenError] = (0, react.useState)(null);
5634
+ const [fileOpenBusy, setFileOpenBusy] = (0, react.useState)(false);
5635
+ const fileOpenRequest = (0, react.useRef)(0);
5636
+ const requestOpenFile = (0, react.useCallback)((path) => {
5637
+ const id = ++fileOpenRequest.current;
5638
+ setFileOpenBusy(true);
5639
+ openFile(path).then(() => {
5640
+ if (id !== fileOpenRequest.current) return;
5641
+ setFileOpenError(null);
5642
+ setFileOpenBusy(false);
5643
+ }, (error) => {
5644
+ if (id !== fileOpenRequest.current) return;
5645
+ setFileOpenError({
5646
+ path,
5647
+ message: openFailureMessage(error, t(isFolderOpenPath(path) ? "fileOpen.folderUnknown" : "fileOpen.unknown"))
5648
+ });
5649
+ setFileOpenBusy(false);
5650
+ });
5651
+ }, [openFile, t]);
5652
+ const closeFileOpenError = (0, react.useCallback)(() => {
5653
+ fileOpenRequest.current += 1;
5654
+ setFileOpenError(null);
5655
+ setFileOpenBusy(false);
5656
+ }, []);
5383
5657
  const pendingSteering = (0, react.useMemo)(() => inbox.filter((item) => item.placement === "steering"), [inbox]);
5658
+ const renderMessageImages = (0, react.useCallback)((owner) => renderSlot("conversation.message.images", {
5659
+ ...owner,
5660
+ loadImage
5661
+ }), [loadImage, renderSlot]);
5384
5662
  const runningTurnStart = (0, react.useMemo)(() => runningTurnStartTime(timeline), [timeline]);
5385
5663
  const listRef = (0, react.useRef)(null);
5386
5664
  const columnRef = (0, react.useRef)(null);
@@ -5540,9 +5818,9 @@ window.__ModuleLoader__.load({
5540
5818
  }
5541
5819
  loadOlder();
5542
5820
  };
5543
- return (0, react_jsx_runtime.jsx)("div", {
5821
+ return (0, react_jsx_runtime.jsxs)("div", {
5544
5822
  className: ChatView_module_css_default.root,
5545
- children: (0, react_jsx_runtime.jsxs)("div", {
5823
+ children: [(0, react_jsx_runtime.jsxs)("div", {
5546
5824
  ref: listRef,
5547
5825
  className: ChatView_module_css_default.scroll,
5548
5826
  children: [(0, react_jsx_runtime.jsxs)("div", {
@@ -5575,10 +5853,10 @@ window.__ModuleLoader__.load({
5575
5853
  useSession,
5576
5854
  selectedCallId,
5577
5855
  cwd,
5578
- openFile,
5856
+ openFile: requestOpenFile,
5579
5857
  inspectCall,
5580
5858
  forkAt,
5581
- loadImage,
5859
+ renderMessageImages,
5582
5860
  fileMentions,
5583
5861
  renderSlot,
5584
5862
  t
@@ -5589,7 +5867,7 @@ window.__ModuleLoader__.load({
5589
5867
  }),
5590
5868
  pendingSteering.map((item) => (0, react_jsx_runtime.jsx)(PendingSteeringBubble, {
5591
5869
  content: item.content,
5592
- loadImage,
5870
+ renderMessageImages,
5593
5871
  t
5594
5872
  }, item.id))
5595
5873
  ]
@@ -5607,7 +5885,38 @@ window.__ModuleLoader__.load({
5607
5885
  children: (0, react_jsx_runtime.jsx)(_nomix_ai_nomix_client_ui_primitives.IconChevronDownOutline14, {})
5608
5886
  })
5609
5887
  })]
5610
- })
5888
+ }), fileOpenError !== null && (0, react_jsx_runtime.jsx)(FileOpenErrorDialog, {
5889
+ path: fileOpenError.path,
5890
+ message: fileOpenError.message,
5891
+ busy: fileOpenBusy,
5892
+ onClose: closeFileOpenError,
5893
+ onRetry: () => {
5894
+ requestOpenFile(fileOpenError.path);
5895
+ },
5896
+ t
5897
+ })]
5898
+ });
5899
+ }
5900
+ /** In-page Host open-path refusal: the wire reason plus a retry of the same path. */
5901
+ function FileOpenErrorDialog({ path, message, busy, onClose, onRetry, t }) {
5902
+ return (0, react_jsx_runtime.jsx)(_nomix_ai_nomix_client_ui_primitives.Modal, {
5903
+ open: true,
5904
+ onClose,
5905
+ closeLabel: t("close"),
5906
+ title: t(isFolderOpenPath(path) ? "fileOpen.folderTitle" : "fileOpen.title"),
5907
+ description: message,
5908
+ footer: (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)(_nomix_ai_nomix_client_ui_primitives.Button, {
5909
+ variant: "outline",
5910
+ className: ChatView_module_css_default.modalAction,
5911
+ onClick: onClose,
5912
+ children: t("cancel")
5913
+ }), (0, react_jsx_runtime.jsx)(_nomix_ai_nomix_client_ui_primitives.Button, {
5914
+ variant: "primary",
5915
+ className: ChatView_module_css_default.modalAction,
5916
+ disabled: busy,
5917
+ onClick: onRetry,
5918
+ children: t("retry")
5919
+ })] })
5611
5920
  });
5612
5921
  }
5613
5922
  //#endregion
@@ -5708,15 +6017,15 @@ window.__ModuleLoader__.load({
5708
6017
  document.head.appendChild(tag);
5709
6018
  }
5710
6019
  var ApprovalPanel_module_css_default = {
6020
+ "actionRow": "DitUla_actionRow",
5711
6021
  "body": "DitUla_body",
5712
- "dot": "DitUla_dot",
5713
- "reject": "DitUla_reject",
5714
- "strip": "DitUla_strip",
6022
+ "card": "DitUla_card",
5715
6023
  "command": "DitUla_command",
5716
- "actionRow": "DitUla_actionRow",
6024
+ "dot": "DitUla_dot",
5717
6025
  "headline": "DitUla_headline",
6026
+ "reject": "DitUla_reject",
5718
6027
  "root": "DitUla_root",
5719
- "card": "DitUla_card"
6028
+ "strip": "DitUla_strip"
5720
6029
  };
5721
6030
  //#endregion
5722
6031
  //#region lib/types/client/skeleton/ApprovalPanel.js
@@ -5851,6 +6160,7 @@ window.__ModuleLoader__.load({
5851
6160
  "image.fileTooLarge": "单张图片不能超过 {size}",
5852
6161
  "image.totalTooLarge": "图片总大小超过 {size},请移除部分图片",
5853
6162
  "image.tooManyPixels": "图片分辨率过大,请压缩后重试",
6163
+ "image.dimensionTooLarge": "图片宽高不能超过 {size}px,请缩小后重试",
5854
6164
  "image.modelUnsupported": "当前模型不支持图片,请切换支持图片的模型",
5855
6165
  "image.subagentUnsupported": "子智能体会话暂不支持图片",
5856
6166
  "image.sendFailed": "图片发送失败({reason}),请重新添加图片后再试",
@@ -5896,9 +6206,15 @@ window.__ModuleLoader__.load({
5896
6206
  "chat.loadError": "历史加载失败:{message}({code})",
5897
6207
  "chat.loadOlder": "加载更早",
5898
6208
  "chat.toBottom": "回到底部",
6209
+ "fileOpen.title": "无法打开文件",
6210
+ "fileOpen.unknown": "无法打开此文件",
6211
+ "fileOpen.folderTitle": "无法打开文件夹",
6212
+ "fileOpen.folderUnknown": "无法打开此文件夹",
5899
6213
  "message.extraBlock": "附加内容块",
5900
6214
  "message.contextInjection": "上下文注入",
5901
6215
  "message.contextRecall": "跨会话召回",
6216
+ "message.referenceSummary": "引用会话 · {labels}",
6217
+ "message.referenceSeparator": "、",
5902
6218
  "message.context.instructions.loaded": "已载入",
5903
6219
  "message.context.instructions.added": "已新增",
5904
6220
  "message.context.instructions.updated": "已更新",
@@ -5938,6 +6254,7 @@ window.__ModuleLoader__.load({
5938
6254
  "command.failed": "命令失败",
5939
6255
  "command.done": "已完成",
5940
6256
  "command.title": "命令",
6257
+ "command.imagesUnsupported": "/{command} 不接受图片附件,请先移除图片",
5941
6258
  "approval.waiting": "等待审批",
5942
6259
  "approval.detail.aria": "审批详情",
5943
6260
  "approval.escalation": "工具 {toolName} 请求越权执行",
@@ -6016,6 +6333,7 @@ window.__ModuleLoader__.load({
6016
6333
  "image.fileTooLarge": "Each image must be smaller than {size}",
6017
6334
  "image.totalTooLarge": "Images exceed {size} in total; remove some and try again",
6018
6335
  "image.tooManyPixels": "Image resolution is too high; compress it and try again",
6336
+ "image.dimensionTooLarge": "Image sides must be at most {size}px; downscale it and try again",
6019
6337
  "image.modelUnsupported": "The current model does not support images; switch to a model that does",
6020
6338
  "image.subagentUnsupported": "Subagent sessions do not support images yet",
6021
6339
  "image.sendFailed": "Sending images failed ({reason}); re-add them and try again",
@@ -6061,9 +6379,15 @@ window.__ModuleLoader__.load({
6061
6379
  "chat.loadError": "Failed to load history: {message} ({code})",
6062
6380
  "chat.loadOlder": "Load earlier",
6063
6381
  "chat.toBottom": "Back to bottom",
6382
+ "fileOpen.title": "Couldn’t open file",
6383
+ "fileOpen.unknown": "Couldn’t open this file",
6384
+ "fileOpen.folderTitle": "Couldn’t open folder",
6385
+ "fileOpen.folderUnknown": "Couldn’t open this folder",
6064
6386
  "message.extraBlock": "Extra content block",
6065
6387
  "message.contextInjection": "Context injection",
6066
6388
  "message.contextRecall": "Session recall",
6389
+ "message.referenceSummary": "Referenced session · {labels}",
6390
+ "message.referenceSeparator": ", ",
6067
6391
  "message.context.instructions.loaded": "loaded",
6068
6392
  "message.context.instructions.added": "added",
6069
6393
  "message.context.instructions.updated": "updated",
@@ -6103,6 +6427,7 @@ window.__ModuleLoader__.load({
6103
6427
  "command.failed": "Command failed",
6104
6428
  "command.done": "Completed",
6105
6429
  "command.title": "Command",
6430
+ "command.imagesUnsupported": "/{command} does not accept image attachments; remove them first",
6106
6431
  "approval.waiting": "Waiting for approval",
6107
6432
  "approval.detail.aria": "Approval details",
6108
6433
  "approval.escalation": "Tool {toolName} requests privileged execution",
@@ -6157,19 +6482,19 @@ window.__ModuleLoader__.load({
6157
6482
  var TodoPanel_module_css_default = {
6158
6483
  "body": "XR6t8a_body",
6159
6484
  "chevron": "XR6t8a_chevron",
6160
- "glyphProgress": "XR6t8a_glyphProgress",
6161
- "todo-progress-spin": "XR6t8a_todo-progress-spin",
6162
- "progress": "XR6t8a_progress",
6163
- "lead": "XR6t8a_lead",
6164
- "glyphCompleted": "XR6t8a_glyphCompleted",
6165
- "item": "XR6t8a_item",
6166
6485
  "content": "XR6t8a_content",
6167
- "root": "XR6t8a_root",
6168
- "title": "XR6t8a_title",
6169
6486
  "glyph": "XR6t8a_glyph",
6487
+ "glyphCompleted": "XR6t8a_glyphCompleted",
6488
+ "glyphPending": "XR6t8a_glyphPending",
6489
+ "glyphProgress": "XR6t8a_glyphProgress",
6170
6490
  "header": "XR6t8a_header",
6491
+ "item": "XR6t8a_item",
6492
+ "lead": "XR6t8a_lead",
6171
6493
  "list": "XR6t8a_list",
6172
- "glyphPending": "XR6t8a_glyphPending"
6494
+ "progress": "XR6t8a_progress",
6495
+ "root": "XR6t8a_root",
6496
+ "title": "XR6t8a_title",
6497
+ "todo-progress-spin": "XR6t8a_todo-progress-spin"
6173
6498
  };
6174
6499
  //#endregion
6175
6500
  //#region lib/types/client/skeleton/TodoPanel.js
@@ -6362,18 +6687,18 @@ window.__ModuleLoader__.load({
6362
6687
  document.head.appendChild(tag);
6363
6688
  }
6364
6689
  var QueueDock_module_css_default = {
6365
- "panel": "i41fhG_panel",
6366
- "actions": "i41fhG_actions",
6367
6690
  "action": "i41fhG_action",
6368
- "header": "i41fhG_header",
6691
+ "actions": "i41fhG_actions",
6369
6692
  "chevron": "i41fhG_chevron",
6370
- "dock": "i41fhG_dock",
6371
6693
  "count": "i41fhG_count",
6694
+ "dock": "i41fhG_dock",
6372
6695
  "editor": "i41fhG_editor",
6696
+ "header": "i41fhG_header",
6373
6697
  "lead": "i41fhG_lead",
6374
6698
  "list": "i41fhG_list",
6375
- "row": "i41fhG_row",
6376
- "preview": "i41fhG_preview"
6699
+ "panel": "i41fhG_panel",
6700
+ "preview": "i41fhG_preview",
6701
+ "row": "i41fhG_row"
6377
6702
  };
6378
6703
  //#endregion
6379
6704
  //#region lib/types/client/queue/QueueDock.js
@@ -6621,7 +6946,7 @@ window.__ModuleLoader__.load({
6621
6946
  };
6622
6947
  //#endregion
6623
6948
  //#region \0nomix-css:/home/runner/work/nomix-harness/nomix-harness/packages/client/ui-conversation/src/client/skeleton/HeroShell.module.css.mjs
6624
- const css$7 = ".xoAT5G_root{justify-content:center;align-items:center;min-width:0;height:100%;padding:0 24px;display:flex}.xoAT5G_stack{width:100%;max-width:var(--nomix-composer-card-max-width);flex-direction:column;align-items:stretch;gap:12px;display:flex;overflow:visible}.xoAT5G_headline{color:var(--dsw-alias-label-primary);grid-template-columns:34px auto auto;justify-content:center;align-items:center;column-gap:10px;font-size:26px;font-weight:500;line-height:32px;display:grid}.xoAT5G_headlineText{grid-area:1/2}.xoAT5G_previewBadge{border:1px solid var(--dsw-alias-interactive-bg-hover);background:var(--dsw-alias-state-business-tertiary);color:var(--dsw-alias-label-primary-bluish);font-family:var(--ds-font-family-code);white-space:nowrap;border-radius:24px;grid-area:1/3;align-self:start;margin-top:2px;margin-left:-3px;padding:1px 7px 0;font-size:12px;font-weight:500;line-height:18px}.xoAT5G_logoHitbox{grid-area:1/1;justify-content:center;align-items:center;display:inline-flex}.xoAT5G_logo{transform-origin:50%;border-radius:4px}@keyframes xoAT5G_hero-logo-lift{0%,to{transform:translate(0)rotate(0)}35%{transform:translateY(-1px)scale(1.02)}70%{transform:translateY(0)scale(1)}}@media (hover:hover) and (prefers-reduced-motion:no-preference){.xoAT5G_logoHitbox:hover .xoAT5G_logo{animation:xoAT5G_hero-logo-lift var(--ds-transition-duration-slow) var(--ds-ease-in-out)}}.xoAT5G_body{flex-direction:column;gap:12px;min-width:0;display:flex;position:relative;overflow:visible}.xoAT5G_body>*{z-index:1;position:relative}.xoAT5G_body>.xoAT5G_workspaceRow{z-index:10;align-items:center;min-width:0;padding-left:8px;display:flex}.xoAT5G_workspace{max-width:min(100%,360px);min-height:28px;color:var(--dsw-alias-label-primary);cursor:pointer;background:0 0;border:none;border-radius:16px;align-items:center;gap:4px;padding:0 8px;font-size:13px;font-weight:500;line-height:20px;display:inline-flex}.xoAT5G_workspace:not(:disabled):hover,.xoAT5G_workspace[aria-expanded=true]{background:var(--dsw-alias-interactive-bg-hover)}.xoAT5G_workspace:disabled{cursor:default}.xoAT5G_folder{color:var(--dsw-alias-label-primary);flex:none}.xoAT5G_workspaceLabel{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.xoAT5G_chevron{color:var(--dsw-alias-label-caption);flex:none}.xoAT5G_modalInput{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);width:100%;height:44px;color:var(--dsw-alias-label-primary);background:0 0;border-radius:22px;outline:none;padding:7px 14px;font-size:14px;font-weight:400;line-height:22px}.xoAT5G_modalInput::placeholder{color:var(--dsw-alias-label-caption)}.xoAT5G_modalInput:disabled{color:var(--dsw-alias-label-dimmed)}.xoAT5G_modalAction{min-width:72px}.xoAT5G_modalError{color:var(--dsw-alias-state-error-primary);margin-top:8px;font-size:12px;line-height:18px}";
6949
+ const css$7 = ".xoAT5G_root{justify-content:center;align-items:center;min-width:0;height:100%;padding:0 24px;display:flex}.xoAT5G_stack{width:100%;max-width:var(--nomix-composer-card-max-width);flex-direction:column;align-items:stretch;gap:12px;display:flex;overflow:visible}.xoAT5G_headline{color:var(--dsw-alias-label-primary);grid-template-columns:34px auto auto;justify-content:center;align-items:center;column-gap:10px;font-size:26px;font-weight:500;line-height:32px;display:grid}.xoAT5G_headlineText{grid-area:1/2}.xoAT5G_previewBadge{border:1px solid var(--dsw-alias-interactive-bg-hover);background:var(--dsw-alias-state-business-tertiary);color:var(--dsw-alias-label-primary-bluish);font-family:var(--ds-font-family-code);white-space:nowrap;border-radius:24px;grid-area:1/3;align-self:start;margin-top:2px;margin-left:-3px;padding:1px 7px 0;font-size:12px;font-weight:500;line-height:18px}.xoAT5G_fishHitbox{grid-area:1/1;justify-content:center;align-items:center;display:inline-flex}.xoAT5G_fish{color:var(--dsw-alias-label-primary);transform-origin:50% 60%}@keyframes xoAT5G_hero-fish-swim{0%,to{transform:translate(0)rotate(0)}35%{transform:translate(-1px,-1px)rotate(-5deg)}70%{transform:translate(1px)rotate(3deg)}}@media (hover:hover) and (prefers-reduced-motion:no-preference){.xoAT5G_fishHitbox:hover .xoAT5G_fish{animation:xoAT5G_hero-fish-swim var(--ds-transition-duration-slow) var(--ds-ease-in-out)}}.xoAT5G_body{flex-direction:column;gap:12px;min-width:0;display:flex;position:relative;overflow:visible}.xoAT5G_body>*{z-index:1;position:relative}.xoAT5G_body>.xoAT5G_workspaceRow{z-index:10;align-items:center;min-width:0;padding-left:8px;display:flex}.xoAT5G_workspace{max-width:min(100%,360px);min-height:28px;color:var(--dsw-alias-label-primary);cursor:pointer;background:0 0;border:none;border-radius:16px;align-items:center;gap:4px;padding:0 8px;font-size:13px;font-weight:500;line-height:20px;display:inline-flex}.xoAT5G_workspace:not(:disabled):hover,.xoAT5G_workspace[aria-expanded=true]{background:var(--dsw-alias-interactive-bg-hover)}.xoAT5G_workspace:disabled{cursor:default}.xoAT5G_folder{color:var(--dsw-alias-label-primary);flex:none}.xoAT5G_workspaceLabel{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.xoAT5G_chevron{color:var(--dsw-alias-label-caption);flex:none}.xoAT5G_modalInput{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);width:100%;height:44px;color:var(--dsw-alias-label-primary);background:0 0;border-radius:22px;outline:none;padding:7px 14px;font-size:14px;font-weight:400;line-height:22px}.xoAT5G_modalInput::placeholder{color:var(--dsw-alias-label-caption)}.xoAT5G_modalInput:disabled{color:var(--dsw-alias-label-dimmed)}.xoAT5G_modalAction{min-width:72px}.xoAT5G_modalError{color:var(--dsw-alias-state-error-primary);margin-top:8px;font-size:12px;line-height:18px}";
6625
6950
  const tagId$7 = "@nomix-ai/nomix-client-ui-conversation/HeroShell.module.css";
6626
6951
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$7) + "]") === null) {
6627
6952
  const tag = document.createElement("style");
@@ -6631,23 +6956,23 @@ window.__ModuleLoader__.load({
6631
6956
  document.head.appendChild(tag);
6632
6957
  }
6633
6958
  var HeroShell_module_css_default = {
6634
- "workspaceRow": "xoAT5G_workspaceRow",
6635
6959
  "body": "xoAT5G_body",
6636
6960
  "chevron": "xoAT5G_chevron",
6637
- "workspaceLabel": "xoAT5G_workspaceLabel",
6638
- "modalInput": "xoAT5G_modalInput",
6639
- "modalError": "xoAT5G_modalError",
6640
- "modalAction": "xoAT5G_modalAction",
6961
+ "fish": "xoAT5G_fish",
6962
+ "fishHitbox": "xoAT5G_fishHitbox",
6641
6963
  "folder": "xoAT5G_folder",
6642
- "stack": "xoAT5G_stack",
6643
6964
  "headline": "xoAT5G_headline",
6644
- "hero-logo-lift": "xoAT5G_hero-logo-lift",
6645
6965
  "headlineText": "xoAT5G_headlineText",
6646
- "root": "xoAT5G_root",
6647
- "logo": "xoAT5G_logo",
6966
+ "hero-fish-swim": "xoAT5G_hero-fish-swim",
6967
+ "modalAction": "xoAT5G_modalAction",
6968
+ "modalError": "xoAT5G_modalError",
6969
+ "modalInput": "xoAT5G_modalInput",
6648
6970
  "previewBadge": "xoAT5G_previewBadge",
6971
+ "root": "xoAT5G_root",
6972
+ "stack": "xoAT5G_stack",
6649
6973
  "workspace": "xoAT5G_workspace",
6650
- "logoHitbox": "xoAT5G_logoHitbox"
6974
+ "workspaceLabel": "xoAT5G_workspaceLabel",
6975
+ "workspaceRow": "xoAT5G_workspaceRow"
6651
6976
  };
6652
6977
  //#endregion
6653
6978
  //#region lib/types/client/skeleton/EmptyHero.js
@@ -6757,7 +7082,7 @@ window.__ModuleLoader__.load({
6757
7082
  * @param props - see {@link HeroShellProps}.
6758
7083
  * @returns the centered hero element tree.
6759
7084
  */
6760
- function HeroShell({ t, children }) {
7085
+ function HeroShell({ t, renderSlot, children }) {
6761
7086
  return (0, react_jsx_runtime.jsxs)("div", {
6762
7087
  className: HeroShell_module_css_default.root,
6763
7088
  children: [(0, react_jsx_runtime.jsxs)("div", {
@@ -6766,11 +7091,14 @@ window.__ModuleLoader__.load({
6766
7091
  className: HeroShell_module_css_default.headline,
6767
7092
  children: [
6768
7093
  (0, react_jsx_runtime.jsx)("span", {
6769
- className: HeroShell_module_css_default.logoHitbox,
6770
- children: (0, react_jsx_runtime.jsx)(_nomix_ai_nomix_client_ui_primitives.NomixLogo, {
7094
+ className: HeroShell_module_css_default.fishHitbox,
7095
+ children: renderSlot("conversation.hero.brand.mark", {
6771
7096
  size: 34,
6772
- className: HeroShell_module_css_default.logo
6773
- })
7097
+ className: HeroShell_module_css_default.fish
7098
+ }, { fallback: (0, react_jsx_runtime.jsx)(_nomix_ai_nomix_client_ui_primitives.NomixLogo, {
7099
+ size: 34,
7100
+ className: HeroShell_module_css_default.fish
7101
+ }) })
6774
7102
  }),
6775
7103
  (0, react_jsx_runtime.jsx)("span", {
6776
7104
  className: HeroShell_module_css_default.headlineText,
@@ -6787,7 +7115,7 @@ window.__ModuleLoader__.load({
6787
7115
  }
6788
7116
  //#endregion
6789
7117
  //#region \0nomix-css:/home/runner/work/nomix-harness/nomix-harness/packages/client/ui-conversation/src/client/skeleton/ConversationRoot.module.css.mjs
6790
- const css$6 = ".rwy4Oa_root{background:var(--dsw-alias-bg-base);--nomix-chat-content-width:748px;--nomix-composer-card-max-width:calc(var(--nomix-chat-content-width) + 32px);--nomix-composer-side-clearance:16px;--nomix-composer-dock-inset:8px;flex-direction:column;min-width:0;height:100%;display:flex}.rwy4Oa_header{border-bottom:1px solid #0000;flex:none;padding:12px 28px 0 20px;position:relative}.rwy4Oa_header:after{content:\"\";z-index:0;background:var(--dsw-alias-border-l2);pointer-events:none;height:1px;position:absolute;bottom:1px;left:0;right:0}.rwy4Oa_headerHidden{display:none}.rwy4Oa_titleRow{align-items:center;gap:0;min-height:32px;display:flex}.rwy4Oa_titleCluster{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.rwy4Oa_crumbs{white-space:nowrap;align-items:center;gap:4px;min-width:0;display:flex;overflow:hidden}.rwy4Oa_crumbSeg{align-items:center;gap:4px;min-width:0;display:inline-flex}.rwy4Oa_crumbSep{color:var(--dsw-alias-label-caption);font-size:14px;line-height:20px}.rwy4Oa_crumb{max-width:220px;color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;cursor:pointer;background:0 0;border:none;border-radius:12px;padding:4px 8px;font-size:14px;line-height:20px;overflow:hidden}.rwy4Oa_crumb:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.rwy4Oa_crumbCurrent{color:var(--dsw-alias-label-primary);cursor:default;font-weight:500}.rwy4Oa_headerActions{flex:none;align-items:center;gap:8px;display:flex}.rwy4Oa_headerUtilities{flex:none;align-items:center;gap:8px;margin-left:20px;display:flex}.rwy4Oa_headerUtilities:empty{display:none}.rwy4Oa_tabs{z-index:1;gap:36px;margin-top:4px;padding-left:8px;display:flex;position:relative}.rwy4Oa_tab{color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;padding:0 0 11px;font-size:13px;font-weight:500;line-height:16px;position:relative}.rwy4Oa_tab:after{content:\"\";background:0 0;border-radius:2px;height:2px;position:absolute;bottom:1px;left:0;right:0}.rwy4Oa_tabActive{color:var(--dsw-alias-state-business-primary)}.rwy4Oa_tabActive:after{background:var(--dsw-alias-state-business-primary)}.rwy4Oa_viewArea{flex-direction:column;flex:1;min-height:0;display:flex}.rwy4Oa_composerStack{--nomix-composer-stack-gap:6px;gap:var(--nomix-composer-stack-gap);flex-direction:column;display:flex}.rwy4Oa_composerSeat{--nomix-composer-text-max-height:336px;flex-direction:column;flex:none;display:flex}.rwy4Oa_root[data-phase=active]{overflow:hidden}.rwy4Oa_root[data-phase=active] .rwy4Oa_header{flex:none}.rwy4Oa_scrollBody{scrollbar-gutter:stable;flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden auto}.rwy4Oa_root[data-phase=active] .rwy4Oa_viewArea{flex:1 0 auto;min-height:auto}.rwy4Oa_root[data-phase=active] .rwy4Oa_composerSeat{z-index:7;background:linear-gradient(180deg, color-mix(in srgb, var(--dsw-alias-bg-base) 0%, transparent) 0px, var(--dsw-alias-bg-base) 36px);position:sticky;bottom:0}.rwy4Oa_scrollBody:has([data-conversation-composer-overlay]){scrollbar-gutter:auto;position:relative;overflow:hidden auto}.rwy4Oa_scrollBody:has([data-conversation-composer-overlay])>[data-slot=conversation\\.session]>.rwy4Oa_viewArea{flex:1 1 0;min-height:0;overflow:hidden}.rwy4Oa_scrollBody:has([data-conversation-composer-overlay])>.rwy4Oa_composerSeat{right:var(--nomix-scrollbar-width);position:absolute;bottom:0;left:0}.rwy4Oa_composerHero{width:min(calc(var(--nomix-composer-card-max-width) + 2 * var(--nomix-composer-side-clearance)), 100%);z-index:1;align-self:center;gap:8px;padding-bottom:32px;position:relative}.rwy4Oa_heroGlow{z-index:-1;aspect-ratio:1051/468;pointer-events:none;width:135.438%;position:absolute;bottom:92px;left:50%;transform:translate(-50%,50%)}.rwy4Oa_heroWorkspaceRow{align-items:center;gap:2px;min-width:0;margin-top:4px;padding-left:20px;display:flex}.rwy4Oa_root[data-phase=hero] .rwy4Oa_scrollBody{justify-content:center;overflow-y:auto}.rwy4Oa_root[data-phase=settling] .rwy4Oa_composerSeat{visibility:hidden}";
7118
+ const css$6 = ".rwy4Oa_root{background:var(--dsw-alias-bg-base);--nomix-chat-content-width:748px;--nomix-composer-card-max-width:calc(var(--nomix-chat-content-width) + 32px);--nomix-composer-side-clearance:16px;--nomix-composer-dock-inset:8px;flex-direction:column;min-width:0;height:100%;display:flex}.rwy4Oa_header{border-bottom:1px solid #0000;flex:none;padding:12px 28px 0 20px;position:relative}.rwy4Oa_header:after{content:\"\";z-index:0;background:var(--dsw-alias-border-l2);pointer-events:none;height:1px;position:absolute;bottom:1px;left:0;right:0}.rwy4Oa_headerHidden{display:none}.rwy4Oa_titleRow{align-items:center;gap:0;min-height:32px;display:flex}.rwy4Oa_titleCluster{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.rwy4Oa_crumbs{white-space:nowrap;align-items:center;gap:4px;min-width:0;display:flex;overflow:hidden}.rwy4Oa_crumbSeg{align-items:center;gap:4px;min-width:0;display:inline-flex}.rwy4Oa_crumbSep{color:var(--dsw-alias-label-caption);font-size:14px;line-height:20px}.rwy4Oa_crumb{max-width:220px;color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;cursor:pointer;background:0 0;border:none;border-radius:12px;padding:4px 8px;font-size:14px;line-height:20px;overflow:hidden}.rwy4Oa_crumbSubagent{font-size:12px;line-height:18px}.rwy4Oa_crumb:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.rwy4Oa_crumbCurrent{color:var(--dsw-alias-label-primary);cursor:default;font-weight:500}.rwy4Oa_headerActions{flex:none;align-items:center;gap:8px;display:flex}.rwy4Oa_headerUtilities{flex:none;align-items:center;gap:8px;margin-left:20px;display:flex}.rwy4Oa_headerUtilities:empty{display:none}.rwy4Oa_tabs{z-index:1;gap:36px;margin-top:4px;padding-left:8px;display:flex;position:relative}.rwy4Oa_tab{color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;padding:0 0 11px;font-size:13px;font-weight:500;line-height:16px;position:relative}.rwy4Oa_tab:after{content:\"\";background:0 0;border-radius:2px;height:2px;position:absolute;bottom:1px;left:0;right:0}.rwy4Oa_tabActive{color:var(--dsw-alias-state-business-primary)}.rwy4Oa_tabActive:after{background:var(--dsw-alias-state-business-primary)}.rwy4Oa_viewArea{flex-direction:column;flex:1;min-height:0;display:flex}.rwy4Oa_composerStack{--nomix-composer-stack-gap:6px;gap:var(--nomix-composer-stack-gap);flex-direction:column;display:flex}.rwy4Oa_composerSeat{--nomix-composer-text-max-height:336px;flex-direction:column;flex:none;display:flex}.rwy4Oa_root[data-phase=active]{overflow:hidden}.rwy4Oa_root[data-phase=active] .rwy4Oa_header{flex:none}.rwy4Oa_scrollBody{scrollbar-gutter:stable;flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden auto}.rwy4Oa_root[data-phase=active] .rwy4Oa_viewArea{flex:1 0 auto;min-height:auto}.rwy4Oa_root[data-phase=active] .rwy4Oa_composerSeat{z-index:7;background:linear-gradient(180deg, color-mix(in srgb, var(--dsw-alias-bg-base) 0%, transparent) 0px, var(--dsw-alias-bg-base) 36px);position:sticky;bottom:0}.rwy4Oa_scrollBody:has([data-conversation-composer-overlay]){scrollbar-gutter:auto;position:relative;overflow:hidden auto}.rwy4Oa_scrollBody:has([data-conversation-composer-overlay])>[data-slot=conversation\\.session]>.rwy4Oa_viewArea{flex:1 1 0;min-height:0;overflow:hidden}.rwy4Oa_scrollBody:has([data-conversation-composer-overlay])>.rwy4Oa_composerSeat{right:var(--nomix-scrollbar-width);position:absolute;bottom:0;left:0}.rwy4Oa_composerHero{width:min(calc(var(--nomix-composer-card-max-width) + 2 * var(--nomix-composer-side-clearance)), 100%);z-index:1;align-self:center;gap:8px;padding-bottom:32px;position:relative}.rwy4Oa_heroGlow{z-index:-1;aspect-ratio:1051/468;pointer-events:none;width:135.438%;position:absolute;bottom:92px;left:50%;transform:translate(-50%,50%)}.rwy4Oa_heroWorkspaceRow{align-items:center;gap:2px;min-width:0;margin-top:4px;padding-left:20px;display:flex}.rwy4Oa_root[data-phase=hero] .rwy4Oa_scrollBody{justify-content:center;overflow-y:auto}.rwy4Oa_root[data-phase=settling] .rwy4Oa_composerSeat{visibility:hidden}";
6791
7119
  const tagId$6 = "@nomix-ai/nomix-client-ui-conversation/ConversationRoot.module.css";
6792
7120
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$6) + "]") === null) {
6793
7121
  const tag = document.createElement("style");
@@ -6797,28 +7125,29 @@ window.__ModuleLoader__.load({
6797
7125
  document.head.appendChild(tag);
6798
7126
  }
6799
7127
  var ConversationRoot_module_css_default = {
6800
- "titleCluster": "rwy4Oa_titleCluster",
6801
- "headerUtilities": "rwy4Oa_headerUtilities",
6802
- "crumbCurrent": "rwy4Oa_crumbCurrent",
6803
- "headerActions": "rwy4Oa_headerActions",
6804
- "tabs": "rwy4Oa_tabs",
6805
- "header": "rwy4Oa_header",
6806
- "crumbs": "rwy4Oa_crumbs",
6807
- "titleRow": "rwy4Oa_titleRow",
6808
- "crumbSep": "rwy4Oa_crumbSep",
6809
- "scrollBody": "rwy4Oa_scrollBody",
6810
- "tab": "rwy4Oa_tab",
6811
- "heroWorkspaceRow": "rwy4Oa_heroWorkspaceRow",
7128
+ "composerHero": "rwy4Oa_composerHero",
7129
+ "composerSeat": "rwy4Oa_composerSeat",
7130
+ "composerStack": "rwy4Oa_composerStack",
6812
7131
  "crumb": "rwy4Oa_crumb",
7132
+ "crumbCurrent": "rwy4Oa_crumbCurrent",
6813
7133
  "crumbSeg": "rwy4Oa_crumbSeg",
6814
- "composerHero": "rwy4Oa_composerHero",
6815
- "heroGlow": "rwy4Oa_heroGlow",
7134
+ "crumbSep": "rwy4Oa_crumbSep",
7135
+ "crumbSubagent": "rwy4Oa_crumbSubagent",
7136
+ "crumbs": "rwy4Oa_crumbs",
7137
+ "header": "rwy4Oa_header",
7138
+ "headerActions": "rwy4Oa_headerActions",
6816
7139
  "headerHidden": "rwy4Oa_headerHidden",
7140
+ "headerUtilities": "rwy4Oa_headerUtilities",
7141
+ "heroGlow": "rwy4Oa_heroGlow",
7142
+ "heroWorkspaceRow": "rwy4Oa_heroWorkspaceRow",
6817
7143
  "root": "rwy4Oa_root",
7144
+ "scrollBody": "rwy4Oa_scrollBody",
7145
+ "tab": "rwy4Oa_tab",
6818
7146
  "tabActive": "rwy4Oa_tabActive",
6819
- "viewArea": "rwy4Oa_viewArea",
6820
- "composerStack": "rwy4Oa_composerStack",
6821
- "composerSeat": "rwy4Oa_composerSeat"
7147
+ "tabs": "rwy4Oa_tabs",
7148
+ "titleCluster": "rwy4Oa_titleCluster",
7149
+ "titleRow": "rwy4Oa_titleRow",
7150
+ "viewArea": "rwy4Oa_viewArea"
6822
7151
  };
6823
7152
  //#endregion
6824
7153
  //#region lib/types/client/skeleton/ConversationRoot.js
@@ -6917,7 +7246,10 @@ window.__ModuleLoader__.load({
6917
7246
  className: clsx(ConversationRoot_module_css_default.composerStack, hero && ConversationRoot_module_css_default.composerHero),
6918
7247
  children: [
6919
7248
  hero && (0, react_jsx_runtime.jsx)(HeroGlow, { className: ConversationRoot_module_css_default.heroGlow }),
6920
- hero && (0, react_jsx_runtime.jsx)(HeroShell, { t }),
7249
+ hero && (0, react_jsx_runtime.jsx)(HeroShell, {
7250
+ t,
7251
+ renderSlot
7252
+ }),
6921
7253
  hero && heroWorkspaceRow,
6922
7254
  zone !== void 0 && renderSlot("conversation.input.dock", zone),
6923
7255
  inputBar
@@ -6967,7 +7299,8 @@ window.__ModuleLoader__.load({
6967
7299
  if (summary === void 0) break;
6968
7300
  chain.unshift({
6969
7301
  id: summary.id,
6970
- displayTitle: summary.displayTitle
7302
+ displayTitle: summary.displayTitle,
7303
+ subagent: summary.origin === "subagent"
6971
7304
  });
6972
7305
  if (summary.origin !== "subagent") break;
6973
7306
  cursor = summary.parentId;
@@ -7004,20 +7337,29 @@ window.__ModuleLoader__.load({
7004
7337
  "aria-label": t("session.hierarchy"),
7005
7338
  children: [ancestry.map((summary, index) => {
7006
7339
  const last = index === ancestry.length - 1;
7340
+ const title = (0, react_jsx_runtime.jsx)("button", {
7341
+ type: "button",
7342
+ className: clsx(ConversationRoot_module_css_default.crumb, summary.subagent && ConversationRoot_module_css_default.crumbSubagent, last && ConversationRoot_module_css_default.crumbCurrent),
7343
+ disabled: last,
7344
+ onClick: () => {
7345
+ open(summary.id);
7346
+ },
7347
+ children: summary.displayTitle
7348
+ });
7349
+ const lineage = last || summary.subagent;
7350
+ const lineageOwner = {
7351
+ lineageSessionId: summary.id,
7352
+ displayTitle: summary.displayTitle,
7353
+ ...last ? {} : { openTitle: () => {
7354
+ open(summary.id);
7355
+ } }
7356
+ };
7007
7357
  return (0, react_jsx_runtime.jsxs)("span", {
7008
7358
  className: ConversationRoot_module_css_default.crumbSeg,
7009
7359
  children: [index > 0 && (0, react_jsx_runtime.jsx)("span", {
7010
7360
  className: ConversationRoot_module_css_default.crumbSep,
7011
7361
  children: "/"
7012
- }), (0, react_jsx_runtime.jsx)("button", {
7013
- type: "button",
7014
- className: clsx(ConversationRoot_module_css_default.crumb, last && ConversationRoot_module_css_default.crumbCurrent),
7015
- disabled: last,
7016
- onClick: () => {
7017
- open(summary.id);
7018
- },
7019
- children: summary.displayTitle
7020
- })]
7362
+ }), lineage ? summary.subagent ? renderSlot("conversation.session.header.lineage", lineageOwner, { fallback: title }) : (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [title, renderSlot("conversation.session.header.lineage", lineageOwner, { fallback: null })] }) : title]
7021
7363
  }, summary.id);
7022
7364
  }), ancestry.length === 0 && (0, react_jsx_runtime.jsx)("span", {
7023
7365
  className: ConversationRoot_module_css_default.crumbCurrent,
@@ -7094,15 +7436,15 @@ window.__ModuleLoader__.load({
7094
7436
  document.head.appendChild(tag);
7095
7437
  }
7096
7438
  var DetailsPanel_module_css_default = {
7439
+ "body": "L4qOyG_body",
7440
+ "close": "L4qOyG_close",
7097
7441
  "code": "L4qOyG_code",
7442
+ "empty": "L4qOyG_empty",
7098
7443
  "header": "L4qOyG_header",
7099
- "section": "L4qOyG_section",
7100
- "close": "L4qOyG_close",
7101
7444
  "root": "L4qOyG_root",
7102
- "title": "L4qOyG_title",
7103
- "body": "L4qOyG_body",
7445
+ "section": "L4qOyG_section",
7104
7446
  "sectionLabel": "L4qOyG_sectionLabel",
7105
- "empty": "L4qOyG_empty"
7447
+ "title": "L4qOyG_title"
7106
7448
  };
7107
7449
  //#endregion
7108
7450
  //#region lib/types/client/skeleton/DetailsPanel.js
@@ -7376,7 +7718,8 @@ window.__ModuleLoader__.load({
7376
7718
  stepStartTime: context.start?.event.time ?? null,
7377
7719
  firstTokenTime: state.firstTokenTime ?? null,
7378
7720
  completedTime: event.time
7379
- }
7721
+ },
7722
+ ...event.data.interrupted === true ? { interrupted: true } : {}
7380
7723
  };
7381
7724
  }
7382
7725
  const location = context.start?.location ?? context.matches.at(-1)?.location;
@@ -7644,6 +7987,76 @@ window.__ModuleLoader__.load({
7644
7987
  function orderedVisible(nodes) {
7645
7988
  return nodes.filter((node) => node.visibility === "visible").sort((left, right) => left.anchorSeq - right.anchorSeq || left.key.localeCompare(right.key));
7646
7989
  }
7990
+ function referenceMessageSeq(node) {
7991
+ const candidate = node;
7992
+ return candidate.kind === "user" || candidate.kind === "steering" ? candidate.data.seq : void 0;
7993
+ }
7994
+ function followingRecall(node) {
7995
+ const candidate = node;
7996
+ if (candidate.kind !== "context") return void 0;
7997
+ return {
7998
+ messageSeq: candidate.data.seq - 1,
7999
+ labels: (0, _nomix_ai_nomix_client_runtime_client.sessionRecallLabels)(candidate.data.source)
8000
+ };
8001
+ }
8002
+ function withReferenceLabels(node, labels) {
8003
+ const candidate = node;
8004
+ if (candidate.kind !== "user" && candidate.kind !== "steering") return node;
8005
+ const current = candidate.data.referenceLabels ?? EMPTY_KEYS;
8006
+ const hasLabels = Object.hasOwn(candidate.data, "referenceLabels");
8007
+ if (sameReferences$1(current, labels) && hasLabels === labels.length > 0) return node;
8008
+ const data = { ...candidate.data };
8009
+ if (labels.length === 0) delete data.referenceLabels;
8010
+ else data.referenceLabels = labels;
8011
+ return {
8012
+ ...candidate,
8013
+ data
8014
+ };
8015
+ }
8016
+ /** Associates a direct message with the sourced recall event that immediately follows it. */
8017
+ var ReferenceLabelProjector = class {
8018
+ messagesBySeq = /* @__PURE__ */ new Map();
8019
+ labelsByMessageSeq = /* @__PURE__ */ new Map();
8020
+ replace(nodes) {
8021
+ this.messagesBySeq.clear();
8022
+ this.labelsByMessageSeq.clear();
8023
+ for (const node of nodes) {
8024
+ const messageSeq = referenceMessageSeq(node);
8025
+ if (messageSeq !== void 0) this.messagesBySeq.set(messageSeq, node.key);
8026
+ const recall = followingRecall(node);
8027
+ if (recall !== void 0 && recall.labels.length > 0) this.labelsByMessageSeq.set(recall.messageSeq, recall.labels);
8028
+ }
8029
+ return nodes.map((node) => {
8030
+ const messageSeq = referenceMessageSeq(node);
8031
+ return messageSeq === void 0 ? node : withReferenceLabels(node, this.labelsByMessageSeq.get(messageSeq) ?? EMPTY_KEYS);
8032
+ });
8033
+ }
8034
+ apply(upserts, store) {
8035
+ const byKey = new Map(upserts.map((node) => [node.key, node]));
8036
+ const affected = /* @__PURE__ */ new Set();
8037
+ for (const node of upserts) {
8038
+ const messageSeq = referenceMessageSeq(node);
8039
+ if (messageSeq !== void 0) {
8040
+ this.messagesBySeq.set(messageSeq, node.key);
8041
+ affected.add(messageSeq);
8042
+ }
8043
+ const recall = followingRecall(node);
8044
+ if (recall === void 0) continue;
8045
+ const current = this.labelsByMessageSeq.get(recall.messageSeq);
8046
+ if (recall.labels.length === 0) this.labelsByMessageSeq.delete(recall.messageSeq);
8047
+ else this.labelsByMessageSeq.set(recall.messageSeq, current !== void 0 && sameReferences$1(current, recall.labels) ? current : recall.labels);
8048
+ affected.add(recall.messageSeq);
8049
+ }
8050
+ for (const messageSeq of affected) {
8051
+ const key = this.messagesBySeq.get(messageSeq);
8052
+ if (key === void 0) continue;
8053
+ const node = byKey.get(key) ?? store.get(key);
8054
+ if (node === void 0) continue;
8055
+ byKey.set(key, withReferenceLabels(node, this.labelsByMessageSeq.get(messageSeq) ?? EMPTY_KEYS));
8056
+ }
8057
+ return [...byKey.values()];
8058
+ }
8059
+ };
7647
8060
  const EMPTY_CONTRIBUTION = {
7648
8061
  anchorSeq: 0,
7649
8062
  nodes: EMPTY_LIST,
@@ -7834,6 +8247,7 @@ window.__ModuleLoader__.load({
7834
8247
  store = new MutableChatNodeStore();
7835
8248
  locations = new MutableChatLocationIndex();
7836
8249
  legacy = new LegacySliceBuilder();
8250
+ referenceLabels = new ReferenceLabelProjector();
7837
8251
  order = EMPTY_KEYS;
7838
8252
  empty;
7839
8253
  constructor() {
@@ -7843,28 +8257,30 @@ window.__ModuleLoader__.load({
7843
8257
  });
7844
8258
  }
7845
8259
  replace(input) {
7846
- this.store.replace(input.nodes);
7847
- this.order = orderedVisible(input.nodes).map((node) => node.key);
8260
+ const nodes = this.referenceLabels.replace(input.nodes);
8261
+ this.store.replace(nodes);
8262
+ this.order = orderedVisible(nodes).map((node) => node.key);
7848
8263
  this.locations.rebuild(this.order, this.store);
7849
- return this.snapshot(input.timeline, this.legacy.replace(input.nodes, input.timeline));
8264
+ return this.snapshot(input.timeline, this.legacy.replace(nodes, input.timeline));
7850
8265
  }
7851
8266
  apply(input) {
8267
+ const upserts = this.referenceLabels.apply(input.upserts, this.store);
7852
8268
  let structural = false;
7853
8269
  const contentOnly = [];
7854
- for (const node of input.upserts) {
8270
+ for (const node of upserts) {
7855
8271
  const previous = this.store.get(node.key);
7856
8272
  const nodeStructural = previous === void 0 || previous.anchorSeq !== node.anchorSeq || previous.visibility !== node.visibility || locationIdentity(previous.location) !== locationIdentity(node.location);
7857
8273
  structural ||= nodeStructural;
7858
8274
  if (!nodeStructural) contentOnly.push(node);
7859
8275
  }
7860
- this.store.upsert(input.upserts);
8276
+ this.store.upsert(upserts);
7861
8277
  if (structural) {
7862
8278
  const next = orderedVisible(this.store.values()).map((node) => node.key);
7863
8279
  this.order = sameReferences$1(this.order, next) ? this.order : next;
7864
8280
  this.locations.rebuild(this.order, this.store);
7865
8281
  }
7866
8282
  this.locations.touch(contentOnly);
7867
- return this.snapshot(input.timeline, this.legacy.apply(input.upserts, input.timeline));
8283
+ return this.snapshot(input.timeline, this.legacy.apply(upserts, input.timeline));
7868
8284
  }
7869
8285
  snapshot(timeline, legacy = this.legacy.replace(EMPTY_LIST, timeline)) {
7870
8286
  return {
@@ -8581,9 +8997,6 @@ window.__ModuleLoader__.load({
8581
8997
  if (location?.kind !== "turn" && location?.kind !== "step") return 0;
8582
8998
  return location.turn.steps.at(-1)?.step ?? 0;
8583
8999
  }
8584
- function retryTurn(event) {
8585
- return event.type === "llm/retry" || event.type === "llm/retry-started" ? event.data.turn : void 0;
8586
- }
8587
9000
  function failureFrom(match) {
8588
9001
  if (match.event.type !== "turn/end" || match.event.data.reason.kind !== "error") return void 0;
8589
9002
  const failure = match.event.data.reason.error;
@@ -8599,14 +9012,16 @@ window.__ModuleLoader__.load({
8599
9012
  if (end?.event.type !== "turn/end") return void 0;
8600
9013
  const failure = failureFrom(end);
8601
9014
  if (failure === void 0) return void 0;
8602
- const turn = end.event.data.turn;
8603
9015
  return {
8604
- turn,
8605
- hidden: context.matches.some((match) => retryTurn(match.event) === turn),
9016
+ turn: end.event.data.turn,
8606
9017
  failure
8607
9018
  };
8608
9019
  }
8609
- /** Terminal turn failure Definition, suppressed when the turn owns a retry chain. */
9020
+ /**
9021
+ * Terminal turn failure Definition. Retries run inside the failing turn, so the
9022
+ * turn's `llm/retry` history never suppresses this terminal row; the model-retry
9023
+ * node renders that history separately.
9024
+ */
8610
9025
  const turnErrorDefinition = {
8611
9026
  kind: "turn-error",
8612
9027
  target: "chat",
@@ -8619,29 +9034,18 @@ window.__ModuleLoader__.load({
8619
9034
  id: String(event.data.turn),
8620
9035
  role: "update"
8621
9036
  };
8622
- const turn = retryTurn(event);
8623
- return turn === void 0 ? null : {
8624
- id: String(turn),
8625
- role: "update"
8626
- };
9037
+ return null;
8627
9038
  },
8628
9039
  start: (_context, match) => {
8629
9040
  if (match.event.type !== "turn/start") throw new Error("turn-error start requires turn/start");
8630
- return {
8631
- turn: match.event.data.turn,
8632
- hidden: false
8633
- };
9041
+ return { turn: match.event.data.turn };
8634
9042
  },
8635
9043
  update: (context, match) => {
8636
9044
  const failure = failureFrom(match);
8637
- if (failure !== void 0) return {
9045
+ return failure === void 0 ? context.state : {
8638
9046
  ...context.state,
8639
9047
  failure
8640
9048
  };
8641
- return retryTurn(match.event) === context.state.turn ? {
8642
- ...context.state,
8643
- hidden: true
8644
- } : context.state;
8645
9049
  },
8646
9050
  buildViewNode: (context) => {
8647
9051
  const state = context.state ?? fallbackState(context);
@@ -8656,9 +9060,7 @@ window.__ModuleLoader__.load({
8656
9060
  message: failure.message,
8657
9061
  ...failure.code === void 0 ? {} : { code: failure.code }
8658
9062
  };
8659
- if (!state.hidden) return chatNode(context, "turn-error", node.seq, node);
8660
- const current = context.current.get("chat");
8661
- return current === void 0 || current === null ? null : chatNode(context, "turn-error", node.seq, node, { visibility: "hidden" });
9063
+ return chatNode(context, "turn-error", node.seq, node);
8662
9064
  }
8663
9065
  };
8664
9066
  /**
@@ -8955,15 +9357,15 @@ window.__ModuleLoader__.load({
8955
9357
  document.head.appendChild(tag);
8956
9358
  }
8957
9359
  var ReasoningRow_module_css_default = {
8958
- "separator": "DQ_Ega_separator",
8959
9360
  "chevron": "DQ_Ega_chevron",
8960
- "title": "DQ_Ega_title",
8961
- "summary": "DQ_Ega_summary",
8962
- "thinkBody": "DQ_Ega_thinkBody",
8963
- "root": "DQ_Ega_root",
9361
+ "leading": "DQ_Ega_leading",
8964
9362
  "nomix-reasoning-row-sweep": "DQ_Ega_nomix-reasoning-row-sweep",
9363
+ "root": "DQ_Ega_root",
8965
9364
  "row": "DQ_Ega_row",
8966
- "leading": "DQ_Ega_leading"
9365
+ "separator": "DQ_Ega_separator",
9366
+ "summary": "DQ_Ega_summary",
9367
+ "thinkBody": "DQ_Ega_thinkBody",
9368
+ "title": "DQ_Ega_title"
8967
9369
  };
8968
9370
  //#endregion
8969
9371
  //#region lib/types/client/chat/ReasoningRow.js
@@ -9038,7 +9440,7 @@ window.__ModuleLoader__.load({
9038
9440
  }
9039
9441
  //#endregion
9040
9442
  //#region \0nomix-css:/home/runner/work/nomix-harness/nomix-harness/packages/client/ui-conversation/src/client/chat/AssistantMarkdown.module.css.mjs
9041
- const css$2 = ".h3DxwW_root{color:var(--dsw-alias-label-primary);flex-direction:column;font-size:16px;line-height:28px;display:flex}.h3DxwW_body{flex-direction:column;gap:16px;display:flex}.h3DxwW_stopped{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-tertiary);border-radius:6px;align-self:flex-start;padding:0 6px;font-size:11px;line-height:18px}.h3DxwW_actions{margin-top:16px;margin-left:-6px}";
9443
+ const css$2 = ".h3DxwW_root{color:var(--dsw-alias-label-primary);flex-direction:column;font-size:16px;line-height:28px;display:flex}.h3DxwW_body{flex-direction:column;gap:16px;display:flex}.h3DxwW_body .md-table-wide{--nomix-table-spare:max(0px, calc((100cqw - var(--nomix-chat-content-width)) / 2));--nomix-table-lead:calc(var(--nomix-table-spare) + min(var(--nomix-chat-content-width), 100cqw) - 100%);box-sizing:border-box;width:calc(100% + var(--nomix-table-lead) + var(--nomix-table-spare));max-width:none;margin-left:calc(-1 * var(--nomix-table-lead));padding-left:var(--nomix-table-lead)}.h3DxwW_stopped{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-tertiary);border-radius:6px;align-self:flex-start;padding:0 6px;font-size:11px;line-height:18px}.h3DxwW_actions{margin-top:16px;margin-left:-6px}";
9042
9444
  const tagId$2 = "@nomix-ai/nomix-client-ui-conversation/AssistantMarkdown.module.css";
9043
9445
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$2) + "]") === null) {
9044
9446
  const tag = document.createElement("style");
@@ -9048,16 +9450,15 @@ window.__ModuleLoader__.load({
9048
9450
  document.head.appendChild(tag);
9049
9451
  }
9050
9452
  var AssistantMarkdown_module_css_default = {
9051
- "stopped": "h3DxwW_stopped",
9052
- "body": "h3DxwW_body",
9053
9453
  "actions": "h3DxwW_actions",
9054
- "root": "h3DxwW_root"
9454
+ "body": "h3DxwW_body",
9455
+ "root": "h3DxwW_root",
9456
+ "stopped": "h3DxwW_stopped"
9055
9457
  };
9056
9458
  //#endregion
9057
9459
  //#region lib/types/client/chat/AssistantMarkdown.js
9058
9460
  /** Reasoning block as the Think variant summary row (figma 39:28304). */
9059
- const AssistantMarkdown = (0, react.memo)(function AssistantMarkdown({ blocks, streaming, interrupted, loadImage, mentions, t }) {
9060
- const imageLoader = loadImage ?? (() => Promise.reject(new Error(t("image.serviceUnavailable"))));
9461
+ const AssistantMarkdown = (0, react.memo)(function AssistantMarkdown({ blocks, streaming, interrupted, renderMessageImages, mentions, t }) {
9061
9462
  const codeLabels = (0, react.useMemo)(() => ({
9062
9463
  copyLabel: t("copy"),
9063
9464
  copiedLabel: t("copied")
@@ -9093,12 +9494,10 @@ window.__ModuleLoader__.load({
9093
9494
  group.push(next);
9094
9495
  i += 1;
9095
9496
  }
9096
- rendered.push((0, react_jsx_runtime.jsx)(_nomix_ai_nomix_client_ui_attachment.ImageGallery, {
9097
- images: group,
9098
- load: imageLoader,
9099
- align: "start",
9100
- labels: messageImageLabels(t)
9101
- }, start));
9497
+ rendered.push((0, react_jsx_runtime.jsx)(react.Fragment, { children: renderMessageImages({
9498
+ images: group.map(({ attachment }) => ({ attachment })),
9499
+ align: "start"
9500
+ }) }, start));
9102
9501
  break;
9103
9502
  }
9104
9503
  case "tool-call": break;
@@ -9124,7 +9523,7 @@ window.__ModuleLoader__.load({
9124
9523
  //#endregion
9125
9524
  //#region lib/types/client/chat/AssistantNodeView.js
9126
9525
  /** Streaming, settled, and interrupted Assistant states share one keyed renderer instance. */
9127
- const AssistantNodeView = (0, react.memo)(function AssistantNodeView({ node, useTurnData, openFile, loadImage, fileMentions, t }) {
9526
+ const AssistantNodeView = (0, react.memo)(function AssistantNodeView({ node, useTurnData, openFile, renderMessageImages, fileMentions, t }) {
9128
9527
  const data = node.data;
9129
9528
  const turn = node.location.kind === "turn" || node.location.kind === "step" ? node.location.turn : void 0;
9130
9529
  const tail = useTurnData("turn-tail");
@@ -9147,7 +9546,7 @@ window.__ModuleLoader__.load({
9147
9546
  blocks: data.blocks,
9148
9547
  streaming: data.status === "running",
9149
9548
  interrupted: data.status === "interrupted",
9150
- loadImage,
9549
+ renderMessageImages,
9151
9550
  mentions,
9152
9551
  t
9153
9552
  });
@@ -9164,15 +9563,15 @@ window.__ModuleLoader__.load({
9164
9563
  document.head.appendChild(tag);
9165
9564
  }
9166
9565
  var GenericCommandCard_module_css_default = {
9167
- "nomix-command-row-sweep": "mLFSJq_nomix-command-row-sweep",
9168
9566
  "body": "mLFSJq_body",
9169
9567
  "chevron": "mLFSJq_chevron",
9170
9568
  "leading": "mLFSJq_leading",
9569
+ "nomix-command-row-sweep": "mLFSJq_nomix-command-row-sweep",
9570
+ "root": "mLFSJq_root",
9171
9571
  "row": "mLFSJq_row",
9172
9572
  "separator": "mLFSJq_separator",
9173
- "title": "mLFSJq_title",
9174
- "root": "mLFSJq_root",
9175
- "summary": "mLFSJq_summary"
9573
+ "summary": "mLFSJq_summary",
9574
+ "title": "mLFSJq_title"
9176
9575
  };
9177
9576
  //#endregion
9178
9577
  //#region lib/types/client/chat/GenericCommandCard.js
@@ -9591,6 +9990,10 @@ window.__ModuleLoader__.load({
9591
9990
  kind: "list",
9592
9991
  scope: "session"
9593
9992
  },
9993
+ "conversation.hero.brand.mark": {
9994
+ kind: "single",
9995
+ scope: "root"
9996
+ },
9594
9997
  "conversation.hero.workspace": {
9595
9998
  kind: "single",
9596
9999
  scope: "root"
@@ -9643,6 +10046,10 @@ window.__ModuleLoader__.load({
9643
10046
  name: "conversation.session.header",
9644
10047
  locale: NS,
9645
10048
  children: {
10049
+ "conversation.session.header.lineage": {
10050
+ kind: "single",
10051
+ scope: "session"
10052
+ },
9646
10053
  "conversation.session.header.actions": {
9647
10054
  kind: "list",
9648
10055
  scope: "session"
@@ -9664,6 +10071,10 @@ window.__ModuleLoader__.load({
9664
10071
  name: "conversation.composer.bar",
9665
10072
  locale: NS,
9666
10073
  children: {
10074
+ "conversation.input.attachments": {
10075
+ kind: "single",
10076
+ scope: "session-maybe"
10077
+ },
9667
10078
  "conversation.input.plan": {
9668
10079
  kind: "single",
9669
10080
  scope: "session"
@@ -9716,6 +10127,7 @@ window.__ModuleLoader__.load({
9716
10127
  inputTriggers.toggleSource("command", {
9717
10128
  trigger: "/",
9718
10129
  query: "",
10130
+ quoted: false,
9719
10131
  position: snapshot.draft.slice(0, selection.start).trim() === "" ? "leading" : "inline",
9720
10132
  span: {
9721
10133
  ...selection,
@@ -9752,11 +10164,17 @@ window.__ModuleLoader__.load({
9752
10164
  order: 0,
9753
10165
  label: () => t("view.chat"),
9754
10166
  locale: NS,
9755
- children: { "conversation.chat.node": {
9756
- kind: "keyed",
9757
- scope: "session",
9758
- inject: CHAT_NODE_INJECT
9759
- } },
10167
+ children: {
10168
+ "conversation.chat.node": {
10169
+ kind: "keyed",
10170
+ scope: "session",
10171
+ inject: CHAT_NODE_INJECT
10172
+ },
10173
+ "conversation.message.images": {
10174
+ kind: "single",
10175
+ scope: "session"
10176
+ }
10177
+ },
9760
10178
  store: chatStore,
9761
10179
  inject: (sessionId, actions) => {
9762
10180
  const conversation = concreteConversation(ctx);
@@ -9769,7 +10187,7 @@ window.__ModuleLoader__.load({
9769
10187
  fileMentions: (owner) => ctx.get("chatFileMentions")?.forClosing(owner),
9770
10188
  openFile: (path) => {
9771
10189
  const cwd = sessions.list.getSnapshot().byId[sessionId]?.cwd;
9772
- workspaces.openPath((0, _nomix_ai_nomix_client_runtime_client.resolveWorkspacePath)(cwd, path)).catch(() => {});
10190
+ return workspaces.openPath((0, _nomix_ai_nomix_client_runtime_client.resolveWorkspacePath)(cwd, path));
9773
10191
  },
9774
10192
  loadOlder: () => {
9775
10193
  scoped.loadOlder();