glirastes 0.3.2 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1377) hide show
  1. package/CHANGELOG.md +386 -1
  2. package/README.md +304 -853
  3. package/adapter/nextjs/package.json +5 -0
  4. package/ai-sdk/package.json +5 -0
  5. package/browser/package.json +5 -0
  6. package/contracts/package.json +5 -0
  7. package/dist/agent/git.d.ts +65 -0
  8. package/dist/agent/git.js +122 -0
  9. package/dist/agent/git.js.map +1 -0
  10. package/dist/agent/openrouter.d.ts +56 -0
  11. package/dist/agent/openrouter.js +74 -0
  12. package/dist/agent/openrouter.js.map +1 -0
  13. package/dist/agent/platform-jobs.d.ts +102 -0
  14. package/dist/agent/platform-jobs.js +122 -0
  15. package/dist/agent/platform-jobs.js.map +1 -0
  16. package/dist/agent/runner.d.ts +150 -0
  17. package/dist/agent/runner.js +250 -0
  18. package/dist/agent/runner.js.map +1 -0
  19. package/dist/agent/workspace.d.ts +65 -0
  20. package/dist/agent/workspace.js +264 -0
  21. package/dist/agent/workspace.js.map +1 -0
  22. package/dist/browser/client-actions.d.ts +26 -0
  23. package/dist/browser/client-actions.js +42 -0
  24. package/dist/browser/client-actions.js.map +1 -0
  25. package/dist/browser/index.d.ts +4 -0
  26. package/dist/browser/index.js +5 -0
  27. package/dist/browser/index.js.map +1 -0
  28. package/dist/browser/navigation.d.ts +32 -0
  29. package/dist/browser/navigation.js +79 -0
  30. package/dist/browser/navigation.js.map +1 -0
  31. package/dist/browser/query-filters.d.ts +30 -0
  32. package/dist/browser/query-filters.js +85 -0
  33. package/dist/browser/query-filters.js.map +1 -0
  34. package/dist/browser/ui-action-bus.d.ts +26 -0
  35. package/dist/browser/ui-action-bus.js +66 -0
  36. package/dist/browser/ui-action-bus.js.map +1 -0
  37. package/dist/cjs/browser/client-actions.d.ts +26 -0
  38. package/dist/cjs/browser/client-actions.js +45 -0
  39. package/dist/cjs/browser/index.d.ts +4 -0
  40. package/dist/cjs/browser/index.js +16 -0
  41. package/dist/cjs/browser/navigation.d.ts +32 -0
  42. package/dist/cjs/browser/navigation.js +84 -0
  43. package/dist/cjs/browser/query-filters.d.ts +30 -0
  44. package/dist/cjs/browser/query-filters.js +87 -0
  45. package/dist/cjs/browser/ui-action-bus.d.ts +26 -0
  46. package/dist/cjs/browser/ui-action-bus.js +70 -0
  47. package/dist/cjs/codegen/execution-inventory.d.ts +63 -0
  48. package/dist/cjs/codegen/execution-inventory.js +312 -0
  49. package/dist/cjs/codegen/index.d.ts +4 -13
  50. package/dist/cjs/codegen/index.js +13 -31
  51. package/dist/cjs/codegen/inventory-generation.d.ts +104 -0
  52. package/dist/cjs/codegen/inventory-generation.js +122 -0
  53. package/dist/cjs/codegen/next-source-generation.d.ts +17 -0
  54. package/dist/cjs/codegen/next-source-generation.js +51 -0
  55. package/dist/cjs/codegen/openapi-document.d.ts +53 -0
  56. package/dist/cjs/codegen/openapi-document.js +127 -0
  57. package/dist/cjs/codegen/route-exports.d.ts +13 -0
  58. package/dist/cjs/codegen/route-exports.js +122 -0
  59. package/dist/cjs/codegen/route-fingerprint.d.ts +2 -0
  60. package/dist/cjs/codegen/route-fingerprint.js +11 -0
  61. package/dist/cjs/codegen/route-scanner.d.ts +57 -0
  62. package/dist/cjs/codegen/route-scanner.js +239 -0
  63. package/dist/cjs/codegen/tools/canonical.d.ts +12 -0
  64. package/dist/cjs/codegen/tools/canonical.js +49 -0
  65. package/dist/cjs/codegen/tools/sources/nest-decorators.d.ts +27 -0
  66. package/dist/cjs/codegen/tools/sources/nest-decorators.js +73 -0
  67. package/dist/cjs/contracts/app-setup.d.ts +346 -0
  68. package/dist/cjs/contracts/app-setup.js +208 -0
  69. package/dist/cjs/contracts/chat-command.d.ts +65 -0
  70. package/dist/cjs/contracts/chat-command.js +128 -0
  71. package/dist/cjs/contracts/chat-interactions.d.ts +126 -0
  72. package/dist/cjs/contracts/chat-interactions.js +439 -0
  73. package/dist/cjs/contracts/clarification.d.ts +53 -0
  74. package/dist/cjs/contracts/clarification.js +91 -0
  75. package/dist/cjs/contracts/content-boundary.d.ts +3 -0
  76. package/dist/cjs/contracts/content-boundary.js +95 -0
  77. package/dist/cjs/contracts/events.d.ts +273 -0
  78. package/dist/cjs/contracts/events.js +229 -0
  79. package/dist/cjs/contracts/index.d.ts +18 -0
  80. package/dist/cjs/contracts/index.js +83 -0
  81. package/dist/cjs/contracts/plan.d.ts +20 -0
  82. package/dist/cjs/contracts/plan.js +38 -0
  83. package/dist/cjs/contracts/platform-connection.d.ts +44 -0
  84. package/dist/cjs/contracts/platform-connection.js +66 -0
  85. package/dist/cjs/contracts/platform-prompt-revision.d.ts +27 -0
  86. package/dist/cjs/contracts/platform-prompt-revision.js +46 -0
  87. package/dist/cjs/contracts/prompt-bundle.d.ts +46 -0
  88. package/dist/cjs/contracts/prompt-bundle.js +74 -0
  89. package/dist/cjs/contracts/revisions.d.ts +716 -0
  90. package/dist/cjs/contracts/revisions.js +301 -0
  91. package/dist/cjs/contracts/runtime.d.ts +55 -0
  92. package/dist/cjs/contracts/runtime.js +67 -0
  93. package/dist/cjs/contracts/semantic-change.d.ts +27 -0
  94. package/dist/cjs/contracts/semantic-change.js +103 -0
  95. package/dist/cjs/contracts/tool-exclude-pattern.d.ts +12 -0
  96. package/dist/cjs/contracts/tool-exclude-pattern.js +29 -0
  97. package/dist/cjs/contracts/tool-policy-entry.d.ts +107 -0
  98. package/dist/cjs/contracts/tool-policy-entry.js +42 -0
  99. package/dist/cjs/contracts/tool-policy.d.ts +198 -0
  100. package/dist/cjs/contracts/tool-policy.js +500 -0
  101. package/dist/cjs/contracts/url.d.ts +2 -0
  102. package/dist/cjs/contracts/url.js +10 -0
  103. package/dist/cjs/diagnostics/foundation-diagnostic.d.ts +34 -0
  104. package/dist/cjs/diagnostics/foundation-diagnostic.js +52 -0
  105. package/dist/cjs/diagnostics/index.d.ts +2 -0
  106. package/dist/cjs/diagnostics/index.js +7 -0
  107. package/dist/cjs/embed/chat-styles.generated.d.ts +1 -0
  108. package/dist/cjs/embed/chat-styles.generated.js +6 -0
  109. package/dist/cjs/embed/glirastes-chat-element.d.ts +67 -0
  110. package/dist/cjs/embed/glirastes-chat-element.js +282 -0
  111. package/dist/cjs/embed/index.d.ts +4 -0
  112. package/dist/cjs/embed/index.js +20 -0
  113. package/dist/cjs/embed/theme.d.ts +10 -0
  114. package/dist/cjs/embed/theme.js +45 -0
  115. package/dist/cjs/index.d.ts +1 -0
  116. package/dist/cjs/index.js +1 -0
  117. package/dist/cjs/react/assistant/assistant-layout.d.ts +55 -0
  118. package/dist/cjs/react/assistant/assistant-layout.js +107 -0
  119. package/dist/cjs/react/assistant/assistant-shell.d.ts +132 -0
  120. package/dist/cjs/react/assistant/assistant-shell.js +267 -0
  121. package/dist/cjs/react/assistant/assistant-shortcut-list.d.ts +24 -0
  122. package/dist/cjs/react/assistant/assistant-shortcut-list.js +35 -0
  123. package/dist/cjs/react/assistant/assistant-workspace.d.ts +31 -0
  124. package/dist/cjs/react/assistant/assistant-workspace.js +33 -0
  125. package/dist/cjs/react/completions/completion-search.d.ts +21 -0
  126. package/dist/cjs/react/completions/completion-search.js +111 -0
  127. package/dist/cjs/react/completions/ui-tool-command-provider.d.ts +15 -0
  128. package/dist/cjs/react/completions/ui-tool-command-provider.js +84 -0
  129. package/dist/cjs/react/components/activity-log.d.ts +17 -0
  130. package/dist/cjs/react/components/activity-log.js +70 -0
  131. package/dist/cjs/react/components/ai-chat-panel.js +13 -6
  132. package/dist/cjs/react/components/ai-trigger-button.d.ts +1 -1
  133. package/dist/cjs/react/components/ai-trigger-button.js +11 -66
  134. package/dist/cjs/react/components/chat-input.js +6 -4
  135. package/dist/cjs/react/components/chat-window-visibility.d.ts +3 -0
  136. package/dist/cjs/react/components/chat-window-visibility.js +7 -0
  137. package/dist/cjs/react/components/chat-window.d.ts +1 -1
  138. package/dist/cjs/react/components/chat-window.js +124 -57
  139. package/dist/cjs/react/components/clarification-card.d.ts +10 -0
  140. package/dist/cjs/react/components/clarification-card.js +35 -0
  141. package/dist/cjs/react/components/command-arguments-form.d.ts +10 -0
  142. package/dist/cjs/react/components/command-arguments-form.js +153 -0
  143. package/dist/cjs/react/components/confirm-dialog.js +1 -1
  144. package/dist/cjs/react/components/floating-chat-ui.d.ts +3 -3
  145. package/dist/cjs/react/components/floating-chat-ui.js +30 -4
  146. package/dist/cjs/react/components/mention-input.d.ts +5 -4
  147. package/dist/cjs/react/components/mention-input.js +64 -7
  148. package/dist/cjs/react/components/message-bubble.js +90 -14
  149. package/dist/cjs/react/components/plan-checklist.d.ts +14 -0
  150. package/dist/cjs/react/components/plan-checklist.js +20 -0
  151. package/dist/cjs/react/components/recording-bar.js +44 -58
  152. package/dist/cjs/react/components/rich-mention-input.js +197 -45
  153. package/dist/cjs/react/components/session-switcher.d.ts +3 -1
  154. package/dist/cjs/react/components/session-switcher.js +26 -11
  155. package/dist/cjs/react/components/status-icon.d.ts +8 -0
  156. package/dist/cjs/react/components/status-icon.js +11 -0
  157. package/dist/cjs/react/components/stream-waveform.d.ts +4 -0
  158. package/dist/cjs/react/components/stream-waveform.js +49 -0
  159. package/dist/cjs/react/components/voice-input-addon.d.ts +16 -1
  160. package/dist/cjs/react/components/voice-input-addon.js +255 -18
  161. package/dist/cjs/react/components/voice-input-button.js +1 -1
  162. package/dist/cjs/react/hooks/use-chat-shortcuts.d.ts +33 -0
  163. package/dist/cjs/react/hooks/use-chat-shortcuts.js +139 -0
  164. package/dist/cjs/react/hooks/use-deepgram-transcription.d.ts +4 -0
  165. package/dist/cjs/react/hooks/use-deepgram-transcription.js +31 -321
  166. package/dist/cjs/react/hooks/use-drag-resize-panel.d.ts +1 -0
  167. package/dist/cjs/react/hooks/use-drag-resize-panel.js +246 -121
  168. package/dist/cjs/react/hooks/use-floating-panel.d.ts +57 -0
  169. package/dist/cjs/react/hooks/use-floating-panel.js +217 -0
  170. package/dist/cjs/react/hooks/use-keyboard-shortcut.js +2 -1
  171. package/dist/cjs/react/hooks/use-push-to-talk-hotkey.d.ts +24 -0
  172. package/dist/cjs/react/hooks/use-push-to-talk-hotkey.js +116 -0
  173. package/dist/cjs/react/hooks/use-sidebar-resize.d.ts +19 -0
  174. package/dist/cjs/react/hooks/use-sidebar-resize.js +109 -0
  175. package/dist/cjs/react/index.d.ts +30 -1
  176. package/dist/cjs/react/index.js +91 -1
  177. package/dist/cjs/react/interactions/definitions.d.ts +67 -0
  178. package/dist/cjs/react/interactions/definitions.js +83 -0
  179. package/dist/cjs/react/interactions/registry.d.ts +74 -0
  180. package/dist/cjs/react/interactions/registry.js +250 -0
  181. package/dist/cjs/react/interactions/use-chat-interactions-data.d.ts +15 -0
  182. package/dist/cjs/react/interactions/use-chat-interactions-data.js +43 -0
  183. package/dist/cjs/react/locale-de.d.ts +3 -0
  184. package/dist/cjs/react/locale-de.js +66 -0
  185. package/dist/cjs/react/provider/ai-chat-provider.d.ts +1 -1
  186. package/dist/cjs/react/provider/ai-chat-provider.js +407 -106
  187. package/dist/cjs/react/provider/chat-context.d.ts +52 -1
  188. package/dist/cjs/react/stt/controller.d.ts +60 -0
  189. package/dist/cjs/react/stt/controller.js +268 -0
  190. package/dist/cjs/react/stt/deepgram.d.ts +30 -0
  191. package/dist/cjs/react/stt/deepgram.js +204 -0
  192. package/dist/cjs/react/stt/recorded.d.ts +29 -0
  193. package/dist/cjs/react/stt/recorded.js +115 -0
  194. package/dist/cjs/react/stt/segments.d.ts +18 -0
  195. package/dist/cjs/react/stt/segments.js +32 -0
  196. package/dist/cjs/react/stt/use-stt.d.ts +17 -0
  197. package/dist/cjs/react/stt/use-stt.js +41 -0
  198. package/dist/cjs/react/stt/waveform.d.ts +5 -0
  199. package/dist/cjs/react/stt/waveform.js +31 -0
  200. package/dist/cjs/react/styles.css +1529 -0
  201. package/dist/cjs/react/tool-renderers/registry.d.ts +31 -0
  202. package/dist/cjs/react/tool-renderers/registry.js +50 -0
  203. package/dist/cjs/react/tool-renderers/renderer-boundary.d.ts +18 -0
  204. package/dist/cjs/react/tool-renderers/renderer-boundary.js +15 -0
  205. package/dist/cjs/react/transports/vercel/vercel-ai-chat.d.ts +1 -1
  206. package/dist/cjs/react/transports/vercel/vercel-ai-chat.js +2 -2
  207. package/dist/cjs/react/transports/vercel.d.ts +6 -0
  208. package/dist/cjs/react/transports/vercel.js +12 -6
  209. package/dist/cjs/react/types.d.ts +264 -6
  210. package/dist/cjs/react/ui.d.ts +18 -17
  211. package/dist/cjs/react/ui.js +50 -45
  212. package/dist/cjs/react/unstyled.d.ts +7 -0
  213. package/dist/cjs/react/unstyled.js +10 -0
  214. package/dist/cjs/react/utils/activity.d.ts +16 -0
  215. package/dist/cjs/react/utils/activity.js +80 -0
  216. package/dist/cjs/react/utils/clarification.d.ts +31 -0
  217. package/dist/cjs/react/utils/clarification.js +104 -0
  218. package/dist/cjs/react/utils/create-approval-description.d.ts +6 -0
  219. package/dist/cjs/react/utils/create-approval-description.js +32 -3
  220. package/dist/cjs/react/utils/create-tool-result-handler.d.ts +1 -1
  221. package/dist/cjs/react/utils/create-tool-result-handler.js +1 -1
  222. package/dist/cjs/react/utils/entity-names.d.ts +6 -0
  223. package/dist/cjs/react/utils/entity-names.js +57 -0
  224. package/dist/cjs/react/utils/followup-suggestions.d.ts +11 -0
  225. package/dist/cjs/react/utils/followup-suggestions.js +39 -0
  226. package/dist/cjs/react/utils/local-session-store.d.ts +30 -0
  227. package/dist/cjs/react/utils/local-session-store.js +165 -0
  228. package/dist/cjs/react/utils/mention-markup.d.ts +44 -1
  229. package/dist/cjs/react/utils/mention-markup.js +144 -10
  230. package/dist/cjs/react/utils/tool-presentation.d.ts +23 -0
  231. package/dist/cjs/react/utils/tool-presentation.js +46 -0
  232. package/dist/cjs/react/utils/tool-result-config.d.ts +10 -0
  233. package/dist/cjs/react/utils/tool-result-config.js +14 -0
  234. package/dist/cjs/runtime/ai-sdk/engine.d.ts +66 -0
  235. package/dist/cjs/runtime/ai-sdk/engine.js +192 -0
  236. package/dist/cjs/runtime/ai-sdk/index.d.ts +1 -0
  237. package/dist/cjs/runtime/ai-sdk/index.js +5 -0
  238. package/dist/cjs/runtime/authorization.d.ts +16 -0
  239. package/dist/cjs/runtime/authorization.js +35 -0
  240. package/dist/cjs/runtime/budget.d.ts +39 -0
  241. package/dist/cjs/runtime/budget.js +100 -0
  242. package/dist/cjs/runtime/contract-bindings.d.ts +52 -0
  243. package/dist/cjs/runtime/contract-bindings.js +95 -0
  244. package/dist/cjs/runtime/engine.d.ts +52 -0
  245. package/dist/cjs/runtime/engine.js +2 -0
  246. package/dist/cjs/runtime/fingerprint.d.ts +6 -0
  247. package/dist/cjs/runtime/fingerprint.js +31 -0
  248. package/dist/cjs/runtime/glirastes.d.ts +112 -0
  249. package/dist/cjs/runtime/glirastes.js +287 -0
  250. package/dist/cjs/runtime/index.d.ts +23 -0
  251. package/dist/cjs/runtime/index.js +71 -0
  252. package/dist/cjs/runtime/json-schema.d.ts +13 -0
  253. package/dist/cjs/runtime/json-schema.js +46 -0
  254. package/dist/cjs/runtime/local-runtime-source.d.ts +76 -0
  255. package/dist/cjs/runtime/local-runtime-source.js +0 -0
  256. package/dist/cjs/runtime/local-signer.d.ts +17 -0
  257. package/dist/cjs/runtime/local-signer.js +34 -0
  258. package/dist/cjs/runtime/local-tool-bindings.d.ts +57 -0
  259. package/dist/cjs/runtime/local-tool-bindings.js +197 -0
  260. package/dist/cjs/runtime/managed-turn.d.ts +29 -0
  261. package/dist/cjs/runtime/managed-turn.js +99 -0
  262. package/dist/cjs/runtime/metrics/cost.d.ts +64 -0
  263. package/dist/cjs/runtime/metrics/cost.js +98 -0
  264. package/dist/cjs/runtime/metrics/sink.d.ts +56 -0
  265. package/dist/cjs/runtime/metrics/sink.js +217 -0
  266. package/dist/cjs/runtime/metrics/turn-recorder.d.ts +62 -0
  267. package/dist/cjs/runtime/metrics/turn-recorder.js +172 -0
  268. package/dist/cjs/runtime/offline-execution-lease.d.ts +27 -0
  269. package/dist/cjs/runtime/offline-execution-lease.js +49 -0
  270. package/dist/cjs/runtime/policy-overlay.d.ts +86 -0
  271. package/dist/cjs/runtime/policy-overlay.js +122 -0
  272. package/dist/cjs/runtime/postgres-store.d.ts +111 -0
  273. package/dist/cjs/runtime/postgres-store.js +368 -0
  274. package/dist/cjs/runtime/prompt-bundle-store.d.ts +58 -0
  275. package/dist/cjs/runtime/prompt-bundle-store.js +123 -0
  276. package/dist/cjs/runtime/runtime-mode.d.ts +23 -0
  277. package/dist/cjs/runtime/runtime-mode.js +46 -0
  278. package/dist/cjs/runtime/tool-discovery.d.ts +51 -0
  279. package/dist/cjs/runtime/tool-discovery.js +141 -0
  280. package/dist/cjs/runtime/tool-search.d.ts +31 -0
  281. package/dist/cjs/runtime/tool-search.js +149 -0
  282. package/dist/cjs/runtime/turn-snapshot.d.ts +44 -0
  283. package/dist/cjs/runtime/turn-snapshot.js +112 -0
  284. package/dist/cjs/server/adapters/nextjs/approval-binding.d.ts +334 -0
  285. package/dist/cjs/server/adapters/nextjs/approval-binding.js +724 -0
  286. package/dist/cjs/server/adapters/nextjs/chat-interactions-handler.d.ts +26 -0
  287. package/dist/cjs/server/adapters/nextjs/chat-interactions-handler.js +67 -0
  288. package/dist/cjs/server/adapters/nextjs/clarification-resume.d.ts +21 -0
  289. package/dist/cjs/server/adapters/nextjs/clarification-resume.js +112 -0
  290. package/dist/cjs/server/adapters/nextjs/context-helpers.d.ts +49 -8
  291. package/dist/cjs/server/adapters/nextjs/context-helpers.js +76 -21
  292. package/dist/cjs/server/adapters/nextjs/create-ai-chat-handler.d.ts +59 -1
  293. package/dist/cjs/server/adapters/nextjs/create-ai-chat-handler.js +648 -94
  294. package/dist/cjs/server/adapters/nextjs/direct-command.d.ts +75 -0
  295. package/dist/cjs/server/adapters/nextjs/direct-command.js +322 -0
  296. package/dist/cjs/server/adapters/nextjs/index.d.ts +10 -2
  297. package/dist/cjs/server/adapters/nextjs/index.js +24 -1
  298. package/dist/cjs/server/adapters/nextjs/prepare-model-messages.d.ts +2 -1
  299. package/dist/cjs/server/adapters/nextjs/prepare-model-messages.js +6 -14
  300. package/dist/cjs/server/adapters/nextjs/recording-transcription-handler.d.ts +31 -0
  301. package/dist/cjs/server/adapters/nextjs/recording-transcription-handler.js +58 -0
  302. package/dist/cjs/server/adapters/nextjs/request-guards.d.ts +41 -0
  303. package/dist/cjs/server/adapters/nextjs/request-guards.js +112 -0
  304. package/dist/cjs/server/adapters/nextjs/sanitize-model-messages.js +12 -6
  305. package/dist/cjs/server/adapters/nextjs/scope-pipeline-tools.d.ts +17 -0
  306. package/dist/cjs/server/adapters/nextjs/scope-pipeline-tools.js +28 -0
  307. package/dist/cjs/server/adapters/nextjs/tool-discovery.d.ts +39 -0
  308. package/dist/cjs/server/adapters/nextjs/tool-discovery.js +50 -0
  309. package/dist/cjs/server/adapters/nextjs/tool-presentation.d.ts +26 -0
  310. package/dist/cjs/server/adapters/nextjs/tool-presentation.js +21 -0
  311. package/dist/cjs/server/adapters/nextjs/types.d.ts +229 -13
  312. package/dist/cjs/server/adapters/nextjs/with-ai-tool.d.ts +2 -2
  313. package/dist/cjs/server/core/adaptive-fast-path.d.ts +3 -0
  314. package/dist/cjs/server/core/adaptive-fast-path.js +188 -0
  315. package/dist/cjs/server/core/clarification-tool.d.ts +29 -0
  316. package/dist/cjs/server/core/clarification-tool.js +64 -0
  317. package/dist/cjs/server/core/generated-ui-tool.d.ts +31 -0
  318. package/dist/cjs/server/core/generated-ui-tool.js +89 -0
  319. package/dist/cjs/server/core/index.d.ts +49 -8
  320. package/dist/cjs/server/core/index.js +208 -17
  321. package/dist/cjs/server/core/local-guardrails.d.ts +6 -0
  322. package/dist/cjs/server/core/local-guardrails.js +70 -0
  323. package/dist/cjs/server/core/module-router.d.ts +3 -1
  324. package/dist/cjs/server/core/module-router.js +22 -2
  325. package/dist/cjs/server/core/plan-tool.d.ts +23 -0
  326. package/dist/cjs/server/core/plan-tool.js +35 -0
  327. package/dist/cjs/server/core/zod-compact.d.ts +3 -3
  328. package/dist/cjs/server/core/zod-compact.js +126 -54
  329. package/dist/cjs/server/index.d.ts +2 -4
  330. package/dist/cjs/server/index.js +4 -5
  331. package/dist/cjs/server/local-pipeline.d.ts +14 -0
  332. package/dist/cjs/server/local-pipeline.js +154 -0
  333. package/dist/cjs/server/pii-shield/index.d.ts +1 -0
  334. package/dist/cjs/server/pii-shield/index.js +3 -1
  335. package/dist/cjs/server/pii-shield/regex-detector.d.ts +13 -0
  336. package/dist/cjs/server/pii-shield/regex-detector.js +111 -0
  337. package/dist/cjs/server/testing/edge-cases.js +52 -101
  338. package/dist/cjs/server/testing/guardrails.js +2 -66
  339. package/dist/cjs/server/testing/helpers.js +1 -62
  340. package/dist/cjs/server/testing/index.d.ts +1 -0
  341. package/dist/cjs/server/testing/index.js +3 -1
  342. package/dist/cjs/server/testing/registry-parity.d.ts +18 -0
  343. package/dist/cjs/server/testing/registry-parity.js +40 -0
  344. package/dist/cjs/server/testing/schema-consistency.js +5 -26
  345. package/dist/cjs/server/testing/smoke.d.ts +2 -1
  346. package/dist/cjs/server/testing/smoke.js +7 -3
  347. package/dist/cjs/server/testing/types.d.ts +1 -1
  348. package/dist/cjs/server/testing/zod-introspect.d.ts +38 -0
  349. package/dist/cjs/server/testing/zod-introspect.js +297 -0
  350. package/dist/cjs/stt/index.d.ts +5 -0
  351. package/dist/cjs/stt/index.js +16 -0
  352. package/dist/cjs/sync/app-setup-client.d.ts +46 -0
  353. package/dist/cjs/sync/app-setup-client.js +140 -0
  354. package/dist/cjs/sync/capability-report.d.ts +41 -0
  355. package/dist/cjs/sync/capability-report.js +52 -0
  356. package/dist/cjs/sync/connection-lookup.d.ts +19 -0
  357. package/dist/cjs/sync/connection-lookup.js +58 -0
  358. package/dist/cjs/sync/control-plane-client.d.ts +69 -0
  359. package/dist/cjs/sync/control-plane-client.js +186 -0
  360. package/dist/cjs/sync/deployment-selector.d.ts +9 -0
  361. package/dist/cjs/sync/deployment-selector.js +29 -0
  362. package/dist/cjs/sync/fetch-sse-push.d.ts +6 -0
  363. package/dist/cjs/sync/fetch-sse-push.js +45 -0
  364. package/dist/cjs/sync/index.d.ts +26 -0
  365. package/dist/cjs/sync/index.js +43 -0
  366. package/dist/cjs/sync/jwks-provider.d.ts +14 -0
  367. package/dist/cjs/sync/jwks-provider.js +56 -0
  368. package/dist/cjs/sync/local-deployment-validator.d.ts +30 -0
  369. package/dist/cjs/sync/local-deployment-validator.js +62 -0
  370. package/dist/cjs/sync/managed-sync.d.ts +40 -0
  371. package/dist/cjs/sync/managed-sync.js +96 -0
  372. package/dist/cjs/sync/materialize-deployment.d.ts +7 -0
  373. package/dist/cjs/sync/materialize-deployment.js +65 -0
  374. package/dist/cjs/sync/runtime-connect-client.d.ts +23 -0
  375. package/dist/cjs/sync/runtime-connect-client.js +185 -0
  376. package/dist/cjs/sync/runtime-setup-client.d.ts +62 -0
  377. package/dist/cjs/sync/runtime-setup-client.js +157 -0
  378. package/dist/cjs/sync/signature-verifier.d.ts +39 -0
  379. package/dist/cjs/sync/signature-verifier.js +102 -0
  380. package/dist/cjs/sync/state-store.d.ts +24 -0
  381. package/dist/cjs/sync/state-store.js +51 -0
  382. package/dist/cjs/sync/sync-manager.d.ts +27 -0
  383. package/dist/cjs/sync/sync-manager.js +173 -0
  384. package/dist/cjs/types.d.ts +68 -16
  385. package/dist/cjs/types.js +31 -3
  386. package/dist/cli/bin.js +34 -23
  387. package/dist/cli/bin.js.map +1 -1
  388. package/dist/cli/commands/agent-setup.d.ts +27 -0
  389. package/dist/cli/commands/agent-setup.js +149 -0
  390. package/dist/cli/commands/agent-setup.js.map +1 -0
  391. package/dist/cli/commands/apply-setup-plan.d.ts +21 -0
  392. package/dist/cli/commands/apply-setup-plan.js +100 -0
  393. package/dist/cli/commands/apply-setup-plan.js.map +1 -0
  394. package/dist/cli/commands/atomic-artifact-write.d.ts +19 -0
  395. package/dist/cli/commands/atomic-artifact-write.js +106 -0
  396. package/dist/cli/commands/atomic-artifact-write.js.map +1 -0
  397. package/dist/cli/commands/ci-workflow.d.ts +48 -0
  398. package/dist/cli/commands/ci-workflow.js +209 -0
  399. package/dist/cli/commands/ci-workflow.js.map +1 -0
  400. package/dist/cli/commands/connect.d.ts +47 -0
  401. package/dist/cli/commands/connect.js +216 -0
  402. package/dist/cli/commands/connect.js.map +1 -0
  403. package/dist/cli/commands/connection-descriptor.d.ts +4 -0
  404. package/dist/cli/commands/connection-descriptor.js +47 -0
  405. package/dist/cli/commands/connection-descriptor.js.map +1 -0
  406. package/dist/cli/commands/connection-environment.d.ts +25 -0
  407. package/dist/cli/commands/connection-environment.js +151 -0
  408. package/dist/cli/commands/connection-environment.js.map +1 -0
  409. package/dist/cli/commands/current-setup-manifests.d.ts +7 -0
  410. package/dist/cli/commands/current-setup-manifests.js +16 -0
  411. package/dist/cli/commands/current-setup-manifests.js.map +1 -0
  412. package/dist/cli/commands/doctor-presentation.d.ts +5 -0
  413. package/dist/cli/commands/doctor-presentation.js +86 -0
  414. package/dist/cli/commands/doctor-presentation.js.map +1 -0
  415. package/dist/cli/commands/doctor.d.ts +27 -0
  416. package/dist/cli/commands/doctor.js +220 -0
  417. package/dist/cli/commands/doctor.js.map +1 -0
  418. package/dist/cli/commands/init-scaffold.d.ts +25 -0
  419. package/dist/cli/commands/init-scaffold.js +214 -0
  420. package/dist/cli/commands/init-scaffold.js.map +1 -0
  421. package/dist/cli/commands/install-skills.d.ts +26 -4
  422. package/dist/cli/commands/install-skills.js +165 -80
  423. package/dist/cli/commands/install-skills.js.map +1 -1
  424. package/dist/cli/commands/installed-skills-manifest.d.ts +87 -0
  425. package/dist/cli/commands/installed-skills-manifest.js +124 -0
  426. package/dist/cli/commands/installed-skills-manifest.js.map +1 -0
  427. package/dist/cli/commands/installer-parts.d.ts +31 -0
  428. package/dist/cli/commands/installer-parts.js +94 -0
  429. package/dist/cli/commands/installer-parts.js.map +1 -0
  430. package/dist/cli/commands/project-inspection.d.ts +35 -0
  431. package/dist/cli/commands/project-inspection.js +199 -0
  432. package/dist/cli/commands/project-inspection.js.map +1 -0
  433. package/dist/cli/commands/setup-plan.d.ts +65 -0
  434. package/dist/cli/commands/setup-plan.js +234 -0
  435. package/dist/cli/commands/setup-plan.js.map +1 -0
  436. package/dist/cli/commands/setup-profile.d.ts +28 -0
  437. package/dist/cli/commands/setup-profile.js +152 -0
  438. package/dist/cli/commands/setup-profile.js.map +1 -0
  439. package/dist/cli/commands/setup-wizard.d.ts +66 -0
  440. package/dist/cli/commands/setup-wizard.js +241 -0
  441. package/dist/cli/commands/setup-wizard.js.map +1 -0
  442. package/dist/cli/commands/sync.d.ts +58 -0
  443. package/dist/cli/commands/sync.js +233 -0
  444. package/dist/cli/commands/sync.js.map +1 -0
  445. package/dist/cli/commands/tools/args.d.ts +14 -0
  446. package/dist/cli/commands/tools/args.js +33 -0
  447. package/dist/cli/commands/tools/args.js.map +1 -0
  448. package/dist/cli/commands/tools/check.d.ts +7 -0
  449. package/dist/cli/commands/tools/check.js +35 -0
  450. package/dist/cli/commands/tools/check.js.map +1 -0
  451. package/dist/cli/commands/tools/describe.d.ts +12 -0
  452. package/dist/cli/commands/tools/describe.js +43 -0
  453. package/dist/cli/commands/tools/describe.js.map +1 -0
  454. package/dist/cli/commands/tools/enrich.d.ts +50 -0
  455. package/dist/cli/commands/tools/enrich.js +597 -0
  456. package/dist/cli/commands/tools/enrich.js.map +1 -0
  457. package/dist/cli/commands/tools/eval.d.ts +13 -0
  458. package/dist/cli/commands/tools/eval.js +49 -0
  459. package/dist/cli/commands/tools/eval.js.map +1 -0
  460. package/dist/cli/commands/tools/format.d.ts +42 -0
  461. package/dist/cli/commands/tools/format.js +155 -0
  462. package/dist/cli/commands/tools/format.js.map +1 -0
  463. package/dist/cli/commands/tools/index.d.ts +26 -0
  464. package/dist/cli/commands/tools/index.js +107 -0
  465. package/dist/cli/commands/tools/index.js.map +1 -0
  466. package/dist/cli/commands/tools/policy.d.ts +11 -0
  467. package/dist/cli/commands/tools/policy.js +355 -0
  468. package/dist/cli/commands/tools/policy.js.map +1 -0
  469. package/dist/cli/commands/tools/refresh.d.ts +6 -0
  470. package/dist/cli/commands/tools/refresh.js +87 -0
  471. package/dist/cli/commands/tools/refresh.js.map +1 -0
  472. package/dist/cli/commands/tools/resolve.d.ts +10 -0
  473. package/dist/cli/commands/tools/resolve.js +19 -0
  474. package/dist/cli/commands/tools/resolve.js.map +1 -0
  475. package/dist/cli/commands/tools/status.d.ts +11 -0
  476. package/dist/cli/commands/tools/status.js +76 -0
  477. package/dist/cli/commands/tools/status.js.map +1 -0
  478. package/dist/cli/commands/tools/verify.d.ts +13 -0
  479. package/dist/cli/commands/tools/verify.js +168 -0
  480. package/dist/cli/commands/tools/verify.js.map +1 -0
  481. package/dist/cli/commands/tools/watch.d.ts +27 -0
  482. package/dist/cli/commands/tools/watch.js +148 -0
  483. package/dist/cli/commands/tools/watch.js.map +1 -0
  484. package/dist/cli/commands/validate-build.d.ts +88 -0
  485. package/dist/cli/commands/validate-build.js +213 -0
  486. package/dist/cli/commands/validate-build.js.map +1 -0
  487. package/dist/cli/commands/workspace-sources.d.ts +27 -0
  488. package/dist/cli/commands/workspace-sources.js +159 -0
  489. package/dist/cli/commands/workspace-sources.js.map +1 -0
  490. package/dist/cli/environment-loading.d.ts +6 -0
  491. package/dist/cli/environment-loading.js +18 -0
  492. package/dist/cli/environment-loading.js.map +1 -0
  493. package/dist/cli/index.d.ts +14 -1
  494. package/dist/cli/index.js +558 -574
  495. package/dist/cli/index.js.map +1 -1
  496. package/dist/codegen/execution-inventory.d.ts +63 -0
  497. package/dist/codegen/execution-inventory.js +306 -0
  498. package/dist/codegen/execution-inventory.js.map +1 -0
  499. package/dist/codegen/index.d.ts +4 -13
  500. package/dist/codegen/index.js +4 -12
  501. package/dist/codegen/index.js.map +1 -1
  502. package/dist/codegen/inventory-generation.d.ts +104 -0
  503. package/dist/codegen/inventory-generation.js +119 -0
  504. package/dist/codegen/inventory-generation.js.map +1 -0
  505. package/dist/codegen/next-source-generation.d.ts +17 -0
  506. package/dist/codegen/next-source-generation.js +49 -0
  507. package/dist/codegen/next-source-generation.js.map +1 -0
  508. package/dist/codegen/openapi-document.d.ts +53 -0
  509. package/dist/codegen/openapi-document.js +120 -0
  510. package/dist/codegen/openapi-document.js.map +1 -0
  511. package/dist/codegen/route-exports.d.ts +13 -0
  512. package/dist/codegen/route-exports.js +117 -0
  513. package/dist/codegen/route-exports.js.map +1 -0
  514. package/dist/codegen/route-fingerprint.d.ts +2 -0
  515. package/dist/codegen/route-fingerprint.js +9 -0
  516. package/dist/codegen/route-fingerprint.js.map +1 -0
  517. package/dist/codegen/route-scanner.d.ts +57 -0
  518. package/dist/codegen/route-scanner.js +233 -0
  519. package/dist/codegen/route-scanner.js.map +1 -0
  520. package/dist/codegen/tools/agentic.d.ts +31 -0
  521. package/dist/codegen/tools/agentic.js +110 -0
  522. package/dist/codegen/tools/agentic.js.map +1 -0
  523. package/dist/codegen/tools/artifact.d.ts +139 -0
  524. package/dist/codegen/tools/artifact.js +199 -0
  525. package/dist/codegen/tools/artifact.js.map +1 -0
  526. package/dist/codegen/tools/canonical.d.ts +12 -0
  527. package/dist/codegen/tools/canonical.js +41 -0
  528. package/dist/codegen/tools/canonical.js.map +1 -0
  529. package/dist/codegen/tools/chat-interactions.d.ts +27 -0
  530. package/dist/codegen/tools/chat-interactions.js +377 -0
  531. package/dist/codegen/tools/chat-interactions.js.map +1 -0
  532. package/dist/codegen/tools/config.d.ts +116 -0
  533. package/dist/codegen/tools/config.js +172 -0
  534. package/dist/codegen/tools/config.js.map +1 -0
  535. package/dist/codegen/tools/contract-tiers.d.ts +64 -0
  536. package/dist/codegen/tools/contract-tiers.js +518 -0
  537. package/dist/codegen/tools/contract-tiers.js.map +1 -0
  538. package/dist/codegen/tools/emit-module.d.ts +13 -0
  539. package/dist/codegen/tools/emit-module.js +182 -0
  540. package/dist/codegen/tools/emit-module.js.map +1 -0
  541. package/dist/codegen/tools/evidence.d.ts +13 -0
  542. package/dist/codegen/tools/evidence.js +138 -0
  543. package/dist/codegen/tools/evidence.js.map +1 -0
  544. package/dist/codegen/tools/exclusions.d.ts +30 -0
  545. package/dist/codegen/tools/exclusions.js +95 -0
  546. package/dist/codegen/tools/exclusions.js.map +1 -0
  547. package/dist/codegen/tools/files.d.ts +195 -0
  548. package/dist/codegen/tools/files.js +119 -0
  549. package/dist/codegen/tools/files.js.map +1 -0
  550. package/dist/codegen/tools/findings.d.ts +7 -0
  551. package/dist/codegen/tools/findings.js +106 -0
  552. package/dist/codegen/tools/findings.js.map +1 -0
  553. package/dist/codegen/tools/handler-analysis.d.ts +49 -0
  554. package/dist/codegen/tools/handler-analysis.js +375 -0
  555. package/dist/codegen/tools/handler-analysis.js.map +1 -0
  556. package/dist/codegen/tools/handler-locator.d.ts +21 -0
  557. package/dist/codegen/tools/handler-locator.js +152 -0
  558. package/dist/codegen/tools/handler-locator.js.map +1 -0
  559. package/dist/codegen/tools/identity.d.ts +18 -0
  560. package/dist/codegen/tools/identity.js +100 -0
  561. package/dist/codegen/tools/identity.js.map +1 -0
  562. package/dist/codegen/tools/input-roles.d.ts +32 -0
  563. package/dist/codegen/tools/input-roles.js +283 -0
  564. package/dist/codegen/tools/input-roles.js.map +1 -0
  565. package/dist/codegen/tools/inputs.d.ts +33 -0
  566. package/dist/codegen/tools/inputs.js +101 -0
  567. package/dist/codegen/tools/inputs.js.map +1 -0
  568. package/dist/codegen/tools/interface-digest.d.ts +14 -0
  569. package/dist/codegen/tools/interface-digest.js +24 -0
  570. package/dist/codegen/tools/interface-digest.js.map +1 -0
  571. package/dist/codegen/tools/mcp-names.d.ts +23 -0
  572. package/dist/codegen/tools/mcp-names.js +59 -0
  573. package/dist/codegen/tools/mcp-names.js.map +1 -0
  574. package/dist/codegen/tools/mode.d.ts +7 -0
  575. package/dist/codegen/tools/mode.js +27 -0
  576. package/dist/codegen/tools/mode.js.map +1 -0
  577. package/dist/codegen/tools/output-inference.d.ts +6 -0
  578. package/dist/codegen/tools/output-inference.js +99 -0
  579. package/dist/codegen/tools/output-inference.js.map +1 -0
  580. package/dist/codegen/tools/pipeline.d.ts +85 -0
  581. package/dist/codegen/tools/pipeline.js +733 -0
  582. package/dist/codegen/tools/pipeline.js.map +1 -0
  583. package/dist/codegen/tools/probe-child.mjs +155 -0
  584. package/dist/codegen/tools/probe-loader.mjs +105 -0
  585. package/dist/codegen/tools/program.d.ts +16 -0
  586. package/dist/codegen/tools/program.js +80 -0
  587. package/dist/codegen/tools/program.js.map +1 -0
  588. package/dist/codegen/tools/prose.d.ts +42 -0
  589. package/dist/codegen/tools/prose.js +211 -0
  590. package/dist/codegen/tools/prose.js.map +1 -0
  591. package/dist/codegen/tools/resolutions.d.ts +117 -0
  592. package/dist/codegen/tools/resolutions.js +195 -0
  593. package/dist/codegen/tools/resolutions.js.map +1 -0
  594. package/dist/codegen/tools/routing-eval.d.ts +50 -0
  595. package/dist/codegen/tools/routing-eval.js +81 -0
  596. package/dist/codegen/tools/routing-eval.js.map +1 -0
  597. package/dist/codegen/tools/schema-probe.d.ts +62 -0
  598. package/dist/codegen/tools/schema-probe.js +209 -0
  599. package/dist/codegen/tools/schema-probe.js.map +1 -0
  600. package/dist/codegen/tools/semantics.d.ts +134 -0
  601. package/dist/codegen/tools/semantics.js +206 -0
  602. package/dist/codegen/tools/semantics.js.map +1 -0
  603. package/dist/codegen/tools/sources/app-files.d.ts +35 -0
  604. package/dist/codegen/tools/sources/app-files.js +109 -0
  605. package/dist/codegen/tools/sources/app-files.js.map +1 -0
  606. package/dist/codegen/tools/sources/fastapi-routes.py +177 -0
  607. package/dist/codegen/tools/sources/nest-decorators.d.ts +27 -0
  608. package/dist/codegen/tools/sources/nest-decorators.js +65 -0
  609. package/dist/codegen/tools/sources/nest-decorators.js.map +1 -0
  610. package/dist/codegen/tools/sources/nest-endpoints.d.ts +10 -0
  611. package/dist/codegen/tools/sources/nest-endpoints.js +522 -0
  612. package/dist/codegen/tools/sources/nest-endpoints.js.map +1 -0
  613. package/dist/codegen/tools/sources/next-endpoints.d.ts +5 -0
  614. package/dist/codegen/tools/sources/next-endpoints.js +389 -0
  615. package/dist/codegen/tools/sources/next-endpoints.js.map +1 -0
  616. package/dist/codegen/tools/sources/next-pages.d.ts +18 -0
  617. package/dist/codegen/tools/sources/next-pages.js +88 -0
  618. package/dist/codegen/tools/sources/next-pages.js.map +1 -0
  619. package/dist/codegen/tools/sources/openapi-endpoints.d.ts +17 -0
  620. package/dist/codegen/tools/sources/openapi-endpoints.js +395 -0
  621. package/dist/codegen/tools/sources/openapi-endpoints.js.map +1 -0
  622. package/dist/codegen/tools/sources/page-tree.d.ts +49 -0
  623. package/dist/codegen/tools/sources/page-tree.js +152 -0
  624. package/dist/codegen/tools/sources/page-tree.js.map +1 -0
  625. package/dist/codegen/tools/sources/react-actions.d.ts +12 -0
  626. package/dist/codegen/tools/sources/react-actions.js +341 -0
  627. package/dist/codegen/tools/sources/react-actions.js.map +1 -0
  628. package/dist/codegen/tools/sources/route-config.d.ts +49 -0
  629. package/dist/codegen/tools/sources/route-config.js +427 -0
  630. package/dist/codegen/tools/sources/route-config.js.map +1 -0
  631. package/dist/codegen/tools/sources/ui-controls.d.ts +41 -0
  632. package/dist/codegen/tools/sources/ui-controls.js +360 -0
  633. package/dist/codegen/tools/sources/ui-controls.js.map +1 -0
  634. package/dist/codegen/tools/sources/ui-tools.d.ts +79 -0
  635. package/dist/codegen/tools/sources/ui-tools.js +207 -0
  636. package/dist/codegen/tools/sources/ui-tools.js.map +1 -0
  637. package/dist/codegen/tools/sources/url-filters.d.ts +41 -0
  638. package/dist/codegen/tools/sources/url-filters.js +813 -0
  639. package/dist/codegen/tools/sources/url-filters.js.map +1 -0
  640. package/dist/codegen/tools/sources/vue-sfc.d.ts +22 -0
  641. package/dist/codegen/tools/sources/vue-sfc.js +65 -0
  642. package/dist/codegen/tools/sources/vue-sfc.js.map +1 -0
  643. package/dist/codegen/tools/state.d.ts +37 -0
  644. package/dist/codegen/tools/state.js +249 -0
  645. package/dist/codegen/tools/state.js.map +1 -0
  646. package/dist/codegen/tools/types.d.ts +137 -0
  647. package/dist/codegen/tools/types.js +2 -0
  648. package/dist/codegen/tools/types.js.map +1 -0
  649. package/dist/codegen/tools/worklist.d.ts +157 -0
  650. package/dist/codegen/tools/worklist.js +406 -0
  651. package/dist/codegen/tools/worklist.js.map +1 -0
  652. package/dist/contracts/app-setup.d.ts +346 -0
  653. package/dist/contracts/app-setup.js +205 -0
  654. package/dist/contracts/app-setup.js.map +1 -0
  655. package/dist/contracts/chat-command.d.ts +65 -0
  656. package/dist/contracts/chat-command.js +121 -0
  657. package/dist/contracts/chat-command.js.map +1 -0
  658. package/dist/contracts/chat-interactions.d.ts +126 -0
  659. package/dist/contracts/chat-interactions.js +431 -0
  660. package/dist/contracts/chat-interactions.js.map +1 -0
  661. package/dist/contracts/clarification.d.ts +53 -0
  662. package/dist/contracts/clarification.js +86 -0
  663. package/dist/contracts/clarification.js.map +1 -0
  664. package/dist/contracts/content-boundary.d.ts +3 -0
  665. package/dist/contracts/content-boundary.js +91 -0
  666. package/dist/contracts/content-boundary.js.map +1 -0
  667. package/dist/contracts/events.d.ts +273 -0
  668. package/dist/contracts/events.js +227 -0
  669. package/dist/contracts/events.js.map +1 -0
  670. package/dist/contracts/index.d.ts +18 -0
  671. package/dist/contracts/index.js +10 -0
  672. package/dist/contracts/index.js.map +1 -0
  673. package/dist/contracts/plan.d.ts +20 -0
  674. package/dist/contracts/plan.js +35 -0
  675. package/dist/contracts/plan.js.map +1 -0
  676. package/dist/contracts/platform-connection.d.ts +44 -0
  677. package/dist/contracts/platform-connection.js +64 -0
  678. package/dist/contracts/platform-connection.js.map +1 -0
  679. package/dist/contracts/platform-prompt-revision.d.ts +27 -0
  680. package/dist/contracts/platform-prompt-revision.js +44 -0
  681. package/dist/contracts/platform-prompt-revision.js.map +1 -0
  682. package/dist/contracts/prompt-bundle.d.ts +46 -0
  683. package/dist/contracts/prompt-bundle.js +70 -0
  684. package/dist/contracts/prompt-bundle.js.map +1 -0
  685. package/dist/contracts/revisions.d.ts +716 -0
  686. package/dist/contracts/revisions.js +298 -0
  687. package/dist/contracts/revisions.js.map +1 -0
  688. package/dist/contracts/runtime.d.ts +55 -0
  689. package/dist/contracts/runtime.js +65 -0
  690. package/dist/contracts/runtime.js.map +1 -0
  691. package/dist/contracts/semantic-change.d.ts +27 -0
  692. package/dist/contracts/semantic-change.js +101 -0
  693. package/dist/contracts/semantic-change.js.map +1 -0
  694. package/dist/contracts/tool-exclude-pattern.d.ts +12 -0
  695. package/dist/contracts/tool-exclude-pattern.js +27 -0
  696. package/dist/contracts/tool-exclude-pattern.js.map +1 -0
  697. package/dist/contracts/tool-policy-entry.d.ts +107 -0
  698. package/dist/contracts/tool-policy-entry.js +40 -0
  699. package/dist/contracts/tool-policy-entry.js.map +1 -0
  700. package/dist/contracts/tool-policy.d.ts +198 -0
  701. package/dist/contracts/tool-policy.js +485 -0
  702. package/dist/contracts/tool-policy.js.map +1 -0
  703. package/dist/contracts/url.d.ts +2 -0
  704. package/dist/contracts/url.js +8 -0
  705. package/dist/contracts/url.js.map +1 -0
  706. package/dist/diagnostics/foundation-diagnostic.d.ts +34 -0
  707. package/dist/diagnostics/foundation-diagnostic.js +47 -0
  708. package/dist/diagnostics/foundation-diagnostic.js.map +1 -0
  709. package/dist/diagnostics/index.d.ts +2 -0
  710. package/dist/diagnostics/index.js +2 -0
  711. package/dist/diagnostics/index.js.map +1 -0
  712. package/dist/embed/chat-styles.generated.d.ts +1 -0
  713. package/dist/embed/chat-styles.generated.js +4 -0
  714. package/dist/embed/chat-styles.generated.js.map +1 -0
  715. package/dist/embed/glirastes-chat-element.d.ts +67 -0
  716. package/dist/embed/glirastes-chat-element.js +278 -0
  717. package/dist/embed/glirastes-chat-element.js.map +1 -0
  718. package/dist/embed/index.d.ts +4 -0
  719. package/dist/embed/index.js +11 -0
  720. package/dist/embed/index.js.map +1 -0
  721. package/dist/embed/theme.d.ts +10 -0
  722. package/dist/embed/theme.js +41 -0
  723. package/dist/embed/theme.js.map +1 -0
  724. package/dist/index.d.ts +1 -0
  725. package/dist/index.js +1 -0
  726. package/dist/index.js.map +1 -1
  727. package/dist/react/assistant/assistant-layout.d.ts +55 -0
  728. package/dist/react/assistant/assistant-layout.js +99 -0
  729. package/dist/react/assistant/assistant-layout.js.map +1 -0
  730. package/dist/react/assistant/assistant-shell.d.ts +132 -0
  731. package/dist/react/assistant/assistant-shell.js +262 -0
  732. package/dist/react/assistant/assistant-shell.js.map +1 -0
  733. package/dist/react/assistant/assistant-shortcut-list.d.ts +24 -0
  734. package/dist/react/assistant/assistant-shortcut-list.js +32 -0
  735. package/dist/react/assistant/assistant-shortcut-list.js.map +1 -0
  736. package/dist/react/assistant/assistant-workspace.d.ts +31 -0
  737. package/dist/react/assistant/assistant-workspace.js +31 -0
  738. package/dist/react/assistant/assistant-workspace.js.map +1 -0
  739. package/dist/react/completions/completion-search.d.ts +21 -0
  740. package/dist/react/completions/completion-search.js +109 -0
  741. package/dist/react/completions/completion-search.js.map +1 -0
  742. package/dist/react/completions/ui-tool-command-provider.d.ts +15 -0
  743. package/dist/react/completions/ui-tool-command-provider.js +82 -0
  744. package/dist/react/completions/ui-tool-command-provider.js.map +1 -0
  745. package/dist/react/components/activity-log.d.ts +17 -0
  746. package/dist/react/components/activity-log.js +68 -0
  747. package/dist/react/components/activity-log.js.map +1 -0
  748. package/dist/react/components/ai-chat-panel.js +13 -6
  749. package/dist/react/components/ai-chat-panel.js.map +1 -1
  750. package/dist/react/components/ai-trigger-button.d.ts +1 -1
  751. package/dist/react/components/ai-trigger-button.js +13 -68
  752. package/dist/react/components/ai-trigger-button.js.map +1 -1
  753. package/dist/react/components/chat-input.js +7 -5
  754. package/dist/react/components/chat-input.js.map +1 -1
  755. package/dist/react/components/chat-window-visibility.d.ts +3 -0
  756. package/dist/react/components/chat-window-visibility.js +5 -0
  757. package/dist/react/components/chat-window-visibility.js.map +1 -0
  758. package/dist/react/components/chat-window.d.ts +1 -1
  759. package/dist/react/components/chat-window.js +124 -57
  760. package/dist/react/components/chat-window.js.map +1 -1
  761. package/dist/react/components/clarification-card.d.ts +10 -0
  762. package/dist/react/components/clarification-card.js +33 -0
  763. package/dist/react/components/clarification-card.js.map +1 -0
  764. package/dist/react/components/command-arguments-form.d.ts +10 -0
  765. package/dist/react/components/command-arguments-form.js +151 -0
  766. package/dist/react/components/command-arguments-form.js.map +1 -0
  767. package/dist/react/components/confirm-dialog.js +1 -1
  768. package/dist/react/components/confirm-dialog.js.map +1 -1
  769. package/dist/react/components/floating-chat-ui.d.ts +3 -3
  770. package/dist/react/components/floating-chat-ui.js +31 -5
  771. package/dist/react/components/floating-chat-ui.js.map +1 -1
  772. package/dist/react/components/mention-input.d.ts +5 -4
  773. package/dist/react/components/mention-input.js +65 -8
  774. package/dist/react/components/mention-input.js.map +1 -1
  775. package/dist/react/components/message-bubble.js +90 -14
  776. package/dist/react/components/message-bubble.js.map +1 -1
  777. package/dist/react/components/plan-checklist.d.ts +14 -0
  778. package/dist/react/components/plan-checklist.js +18 -0
  779. package/dist/react/components/plan-checklist.js.map +1 -0
  780. package/dist/react/components/recording-bar.js +45 -59
  781. package/dist/react/components/recording-bar.js.map +1 -1
  782. package/dist/react/components/rich-mention-input.js +199 -47
  783. package/dist/react/components/rich-mention-input.js.map +1 -1
  784. package/dist/react/components/session-switcher.d.ts +3 -1
  785. package/dist/react/components/session-switcher.js +27 -12
  786. package/dist/react/components/session-switcher.js.map +1 -1
  787. package/dist/react/components/status-icon.d.ts +8 -0
  788. package/dist/react/components/status-icon.js +9 -0
  789. package/dist/react/components/status-icon.js.map +1 -0
  790. package/dist/react/components/stream-waveform.d.ts +4 -0
  791. package/dist/react/components/stream-waveform.js +47 -0
  792. package/dist/react/components/stream-waveform.js.map +1 -0
  793. package/dist/react/components/voice-input-addon.d.ts +16 -1
  794. package/dist/react/components/voice-input-addon.js +256 -19
  795. package/dist/react/components/voice-input-addon.js.map +1 -1
  796. package/dist/react/components/voice-input-button.js +1 -1
  797. package/dist/react/components/voice-input-button.js.map +1 -1
  798. package/dist/react/hooks/use-chat-shortcuts.d.ts +33 -0
  799. package/dist/react/hooks/use-chat-shortcuts.js +133 -0
  800. package/dist/react/hooks/use-chat-shortcuts.js.map +1 -0
  801. package/dist/react/hooks/use-deepgram-transcription.d.ts +4 -0
  802. package/dist/react/hooks/use-deepgram-transcription.js +32 -322
  803. package/dist/react/hooks/use-deepgram-transcription.js.map +1 -1
  804. package/dist/react/hooks/use-drag-resize-panel.d.ts +1 -0
  805. package/dist/react/hooks/use-drag-resize-panel.js +246 -121
  806. package/dist/react/hooks/use-drag-resize-panel.js.map +1 -1
  807. package/dist/react/hooks/use-floating-panel.d.ts +57 -0
  808. package/dist/react/hooks/use-floating-panel.js +215 -0
  809. package/dist/react/hooks/use-floating-panel.js.map +1 -0
  810. package/dist/react/hooks/use-keyboard-shortcut.js +2 -1
  811. package/dist/react/hooks/use-keyboard-shortcut.js.map +1 -1
  812. package/dist/react/hooks/use-push-to-talk-hotkey.d.ts +24 -0
  813. package/dist/react/hooks/use-push-to-talk-hotkey.js +112 -0
  814. package/dist/react/hooks/use-push-to-talk-hotkey.js.map +1 -0
  815. package/dist/react/hooks/use-sidebar-resize.d.ts +19 -0
  816. package/dist/react/hooks/use-sidebar-resize.js +107 -0
  817. package/dist/react/hooks/use-sidebar-resize.js.map +1 -0
  818. package/dist/react/index.d.ts +30 -1
  819. package/dist/react/index.js +31 -0
  820. package/dist/react/index.js.map +1 -1
  821. package/dist/react/interactions/definitions.d.ts +67 -0
  822. package/dist/react/interactions/definitions.js +78 -0
  823. package/dist/react/interactions/definitions.js.map +1 -0
  824. package/dist/react/interactions/registry.d.ts +74 -0
  825. package/dist/react/interactions/registry.js +248 -0
  826. package/dist/react/interactions/registry.js.map +1 -0
  827. package/dist/react/interactions/use-chat-interactions-data.d.ts +15 -0
  828. package/dist/react/interactions/use-chat-interactions-data.js +41 -0
  829. package/dist/react/interactions/use-chat-interactions-data.js.map +1 -0
  830. package/dist/react/locale-de.d.ts +3 -0
  831. package/dist/react/locale-de.js +64 -0
  832. package/dist/react/locale-de.js.map +1 -0
  833. package/dist/react/provider/ai-chat-provider.d.ts +1 -1
  834. package/dist/react/provider/ai-chat-provider.js +408 -107
  835. package/dist/react/provider/ai-chat-provider.js.map +1 -1
  836. package/dist/react/provider/chat-context.d.ts +52 -1
  837. package/dist/react/provider/chat-context.js.map +1 -1
  838. package/dist/react/stt/controller.d.ts +60 -0
  839. package/dist/react/stt/controller.js +265 -0
  840. package/dist/react/stt/controller.js.map +1 -0
  841. package/dist/react/stt/deepgram.d.ts +30 -0
  842. package/dist/react/stt/deepgram.js +199 -0
  843. package/dist/react/stt/deepgram.js.map +1 -0
  844. package/dist/react/stt/recorded.d.ts +29 -0
  845. package/dist/react/stt/recorded.js +111 -0
  846. package/dist/react/stt/recorded.js.map +1 -0
  847. package/dist/react/stt/segments.d.ts +18 -0
  848. package/dist/react/stt/segments.js +29 -0
  849. package/dist/react/stt/segments.js.map +1 -0
  850. package/dist/react/stt/use-stt.d.ts +17 -0
  851. package/dist/react/stt/use-stt.js +39 -0
  852. package/dist/react/stt/use-stt.js.map +1 -0
  853. package/dist/react/stt/waveform.d.ts +5 -0
  854. package/dist/react/stt/waveform.js +29 -0
  855. package/dist/react/stt/waveform.js.map +1 -0
  856. package/dist/react/styles.css +758 -126
  857. package/dist/react/tool-renderers/registry.d.ts +31 -0
  858. package/dist/react/tool-renderers/registry.js +47 -0
  859. package/dist/react/tool-renderers/registry.js.map +1 -0
  860. package/dist/react/tool-renderers/renderer-boundary.d.ts +18 -0
  861. package/dist/react/tool-renderers/renderer-boundary.js +12 -0
  862. package/dist/react/tool-renderers/renderer-boundary.js.map +1 -0
  863. package/dist/react/transports/vercel/vercel-ai-chat.d.ts +1 -1
  864. package/dist/react/transports/vercel/vercel-ai-chat.js +2 -2
  865. package/dist/react/transports/vercel/vercel-ai-chat.js.map +1 -1
  866. package/dist/react/transports/vercel.d.ts +6 -0
  867. package/dist/react/transports/vercel.js +11 -6
  868. package/dist/react/transports/vercel.js.map +1 -1
  869. package/dist/react/types.d.ts +264 -6
  870. package/dist/react/ui.d.ts +18 -17
  871. package/dist/react/ui.js +46 -43
  872. package/dist/react/ui.js.map +1 -1
  873. package/dist/react/unstyled.d.ts +7 -0
  874. package/dist/react/unstyled.js +8 -0
  875. package/dist/react/unstyled.js.map +1 -0
  876. package/dist/react/utils/activity.d.ts +16 -0
  877. package/dist/react/utils/activity.js +77 -0
  878. package/dist/react/utils/activity.js.map +1 -0
  879. package/dist/react/utils/clarification.d.ts +31 -0
  880. package/dist/react/utils/clarification.js +99 -0
  881. package/dist/react/utils/clarification.js.map +1 -0
  882. package/dist/react/utils/create-approval-description.d.ts +6 -0
  883. package/dist/react/utils/create-approval-description.js +32 -3
  884. package/dist/react/utils/create-approval-description.js.map +1 -1
  885. package/dist/react/utils/create-tool-result-handler.d.ts +1 -1
  886. package/dist/react/utils/create-tool-result-handler.js +1 -1
  887. package/dist/react/utils/create-tool-result-handler.js.map +1 -1
  888. package/dist/react/utils/entity-names.d.ts +6 -0
  889. package/dist/react/utils/entity-names.js +55 -0
  890. package/dist/react/utils/entity-names.js.map +1 -0
  891. package/dist/react/utils/followup-suggestions.d.ts +11 -0
  892. package/dist/react/utils/followup-suggestions.js +37 -0
  893. package/dist/react/utils/followup-suggestions.js.map +1 -0
  894. package/dist/react/utils/local-session-store.d.ts +30 -0
  895. package/dist/react/utils/local-session-store.js +163 -0
  896. package/dist/react/utils/local-session-store.js.map +1 -0
  897. package/dist/react/utils/mention-markup.d.ts +44 -1
  898. package/dist/react/utils/mention-markup.js +140 -10
  899. package/dist/react/utils/mention-markup.js.map +1 -1
  900. package/dist/react/utils/tool-presentation.d.ts +23 -0
  901. package/dist/react/utils/tool-presentation.js +41 -0
  902. package/dist/react/utils/tool-presentation.js.map +1 -0
  903. package/dist/react/utils/tool-result-config.d.ts +10 -0
  904. package/dist/react/utils/tool-result-config.js +12 -0
  905. package/dist/react/utils/tool-result-config.js.map +1 -0
  906. package/dist/runtime/ai-sdk/engine.d.ts +66 -0
  907. package/dist/runtime/ai-sdk/engine.js +188 -0
  908. package/dist/runtime/ai-sdk/engine.js.map +1 -0
  909. package/dist/runtime/ai-sdk/index.d.ts +1 -0
  910. package/dist/runtime/ai-sdk/index.js +2 -0
  911. package/dist/runtime/ai-sdk/index.js.map +1 -0
  912. package/dist/runtime/authorization.d.ts +16 -0
  913. package/dist/runtime/authorization.js +33 -0
  914. package/dist/runtime/authorization.js.map +1 -0
  915. package/dist/runtime/budget.d.ts +39 -0
  916. package/dist/runtime/budget.js +97 -0
  917. package/dist/runtime/budget.js.map +1 -0
  918. package/dist/runtime/contract-bindings.d.ts +52 -0
  919. package/dist/runtime/contract-bindings.js +92 -0
  920. package/dist/runtime/contract-bindings.js.map +1 -0
  921. package/dist/runtime/engine.d.ts +52 -0
  922. package/dist/runtime/engine.js +2 -0
  923. package/dist/runtime/engine.js.map +1 -0
  924. package/dist/runtime/fingerprint.d.ts +6 -0
  925. package/dist/runtime/fingerprint.js +29 -0
  926. package/dist/runtime/fingerprint.js.map +1 -0
  927. package/dist/runtime/glirastes.d.ts +112 -0
  928. package/dist/runtime/glirastes.js +285 -0
  929. package/dist/runtime/glirastes.js.map +1 -0
  930. package/dist/runtime/index.d.ts +23 -0
  931. package/dist/runtime/index.js +23 -0
  932. package/dist/runtime/index.js.map +1 -0
  933. package/dist/runtime/json-schema.d.ts +13 -0
  934. package/dist/runtime/json-schema.js +41 -0
  935. package/dist/runtime/json-schema.js.map +1 -0
  936. package/dist/runtime/local-runtime-source.d.ts +76 -0
  937. package/dist/runtime/local-runtime-source.js +0 -0
  938. package/dist/runtime/local-runtime-source.js.map +1 -0
  939. package/dist/runtime/local-signer.d.ts +17 -0
  940. package/dist/runtime/local-signer.js +32 -0
  941. package/dist/runtime/local-signer.js.map +1 -0
  942. package/dist/runtime/local-tool-bindings.d.ts +57 -0
  943. package/dist/runtime/local-tool-bindings.js +190 -0
  944. package/dist/runtime/local-tool-bindings.js.map +1 -0
  945. package/dist/runtime/managed-turn.d.ts +29 -0
  946. package/dist/runtime/managed-turn.js +97 -0
  947. package/dist/runtime/managed-turn.js.map +1 -0
  948. package/dist/runtime/metrics/cost.d.ts +64 -0
  949. package/dist/runtime/metrics/cost.js +92 -0
  950. package/dist/runtime/metrics/cost.js.map +1 -0
  951. package/dist/runtime/metrics/sink.d.ts +56 -0
  952. package/dist/runtime/metrics/sink.js +214 -0
  953. package/dist/runtime/metrics/sink.js.map +1 -0
  954. package/dist/runtime/metrics/turn-recorder.d.ts +62 -0
  955. package/dist/runtime/metrics/turn-recorder.js +170 -0
  956. package/dist/runtime/metrics/turn-recorder.js.map +1 -0
  957. package/dist/runtime/offline-execution-lease.d.ts +27 -0
  958. package/dist/runtime/offline-execution-lease.js +46 -0
  959. package/dist/runtime/offline-execution-lease.js.map +1 -0
  960. package/dist/runtime/policy-overlay.d.ts +86 -0
  961. package/dist/runtime/policy-overlay.js +117 -0
  962. package/dist/runtime/policy-overlay.js.map +1 -0
  963. package/dist/runtime/postgres-store.d.ts +111 -0
  964. package/dist/runtime/postgres-store.js +363 -0
  965. package/dist/runtime/postgres-store.js.map +1 -0
  966. package/dist/runtime/prompt-bundle-store.d.ts +58 -0
  967. package/dist/runtime/prompt-bundle-store.js +120 -0
  968. package/dist/runtime/prompt-bundle-store.js.map +1 -0
  969. package/dist/runtime/runtime-mode.d.ts +23 -0
  970. package/dist/runtime/runtime-mode.js +42 -0
  971. package/dist/runtime/runtime-mode.js.map +1 -0
  972. package/dist/runtime/tool-discovery.d.ts +51 -0
  973. package/dist/runtime/tool-discovery.js +138 -0
  974. package/dist/runtime/tool-discovery.js.map +1 -0
  975. package/dist/runtime/tool-search.d.ts +31 -0
  976. package/dist/runtime/tool-search.js +145 -0
  977. package/dist/runtime/tool-search.js.map +1 -0
  978. package/dist/runtime/turn-snapshot.d.ts +44 -0
  979. package/dist/runtime/turn-snapshot.js +108 -0
  980. package/dist/runtime/turn-snapshot.js.map +1 -0
  981. package/dist/server/adapters/nextjs/approval-binding.d.ts +334 -0
  982. package/dist/server/adapters/nextjs/approval-binding.js +707 -0
  983. package/dist/server/adapters/nextjs/approval-binding.js.map +1 -0
  984. package/dist/server/adapters/nextjs/chat-interactions-handler.d.ts +26 -0
  985. package/dist/server/adapters/nextjs/chat-interactions-handler.js +65 -0
  986. package/dist/server/adapters/nextjs/chat-interactions-handler.js.map +1 -0
  987. package/dist/server/adapters/nextjs/clarification-resume.d.ts +21 -0
  988. package/dist/server/adapters/nextjs/clarification-resume.js +109 -0
  989. package/dist/server/adapters/nextjs/clarification-resume.js.map +1 -0
  990. package/dist/server/adapters/nextjs/context-helpers.d.ts +49 -8
  991. package/dist/server/adapters/nextjs/context-helpers.js +75 -21
  992. package/dist/server/adapters/nextjs/context-helpers.js.map +1 -1
  993. package/dist/server/adapters/nextjs/create-ai-chat-handler.d.ts +59 -1
  994. package/dist/server/adapters/nextjs/create-ai-chat-handler.js +647 -95
  995. package/dist/server/adapters/nextjs/create-ai-chat-handler.js.map +1 -1
  996. package/dist/server/adapters/nextjs/direct-command.d.ts +75 -0
  997. package/dist/server/adapters/nextjs/direct-command.js +316 -0
  998. package/dist/server/adapters/nextjs/direct-command.js.map +1 -0
  999. package/dist/server/adapters/nextjs/index.d.ts +10 -2
  1000. package/dist/server/adapters/nextjs/index.js +7 -0
  1001. package/dist/server/adapters/nextjs/index.js.map +1 -1
  1002. package/dist/server/adapters/nextjs/prepare-model-messages.d.ts +2 -1
  1003. package/dist/server/adapters/nextjs/prepare-model-messages.js +7 -15
  1004. package/dist/server/adapters/nextjs/prepare-model-messages.js.map +1 -1
  1005. package/dist/server/adapters/nextjs/recording-transcription-handler.d.ts +31 -0
  1006. package/dist/server/adapters/nextjs/recording-transcription-handler.js +55 -0
  1007. package/dist/server/adapters/nextjs/recording-transcription-handler.js.map +1 -0
  1008. package/dist/server/adapters/nextjs/request-guards.d.ts +41 -0
  1009. package/dist/server/adapters/nextjs/request-guards.js +108 -0
  1010. package/dist/server/adapters/nextjs/request-guards.js.map +1 -0
  1011. package/dist/server/adapters/nextjs/sanitize-model-messages.js +12 -6
  1012. package/dist/server/adapters/nextjs/sanitize-model-messages.js.map +1 -1
  1013. package/dist/server/adapters/nextjs/scope-pipeline-tools.d.ts +17 -0
  1014. package/dist/server/adapters/nextjs/scope-pipeline-tools.js +26 -0
  1015. package/dist/server/adapters/nextjs/scope-pipeline-tools.js.map +1 -0
  1016. package/dist/server/adapters/nextjs/tool-discovery.d.ts +39 -0
  1017. package/dist/server/adapters/nextjs/tool-discovery.js +47 -0
  1018. package/dist/server/adapters/nextjs/tool-discovery.js.map +1 -0
  1019. package/dist/server/adapters/nextjs/tool-presentation.d.ts +26 -0
  1020. package/dist/server/adapters/nextjs/tool-presentation.js +19 -0
  1021. package/dist/server/adapters/nextjs/tool-presentation.js.map +1 -0
  1022. package/dist/server/adapters/nextjs/types.d.ts +229 -13
  1023. package/dist/server/adapters/nextjs/with-ai-tool.d.ts +2 -2
  1024. package/dist/server/core/adaptive-fast-path.d.ts +3 -0
  1025. package/dist/server/core/adaptive-fast-path.js +185 -0
  1026. package/dist/server/core/adaptive-fast-path.js.map +1 -0
  1027. package/dist/server/core/clarification-tool.d.ts +29 -0
  1028. package/dist/server/core/clarification-tool.js +61 -0
  1029. package/dist/server/core/clarification-tool.js.map +1 -0
  1030. package/dist/server/core/generated-ui-tool.d.ts +31 -0
  1031. package/dist/server/core/generated-ui-tool.js +87 -0
  1032. package/dist/server/core/generated-ui-tool.js.map +1 -0
  1033. package/dist/server/core/index.d.ts +49 -8
  1034. package/dist/server/core/index.js +198 -16
  1035. package/dist/server/core/index.js.map +1 -1
  1036. package/dist/server/core/local-guardrails.d.ts +6 -0
  1037. package/dist/server/core/local-guardrails.js +68 -0
  1038. package/dist/server/core/local-guardrails.js.map +1 -0
  1039. package/dist/server/core/module-router.d.ts +3 -1
  1040. package/dist/server/core/module-router.js +22 -2
  1041. package/dist/server/core/module-router.js.map +1 -1
  1042. package/dist/server/core/plan-tool.d.ts +23 -0
  1043. package/dist/server/core/plan-tool.js +32 -0
  1044. package/dist/server/core/plan-tool.js.map +1 -0
  1045. package/dist/server/core/zod-compact.d.ts +3 -3
  1046. package/dist/server/core/zod-compact.js +126 -54
  1047. package/dist/server/core/zod-compact.js.map +1 -1
  1048. package/dist/server/index.d.ts +2 -4
  1049. package/dist/server/index.js +2 -4
  1050. package/dist/server/index.js.map +1 -1
  1051. package/dist/server/local-pipeline.d.ts +14 -0
  1052. package/dist/server/local-pipeline.js +152 -0
  1053. package/dist/server/local-pipeline.js.map +1 -0
  1054. package/dist/server/pii-shield/index.d.ts +1 -0
  1055. package/dist/server/pii-shield/index.js +1 -0
  1056. package/dist/server/pii-shield/index.js.map +1 -1
  1057. package/dist/server/pii-shield/regex-detector.d.ts +13 -0
  1058. package/dist/server/pii-shield/regex-detector.js +109 -0
  1059. package/dist/server/pii-shield/regex-detector.js.map +1 -0
  1060. package/dist/server/testing/edge-cases.js +46 -95
  1061. package/dist/server/testing/edge-cases.js.map +1 -1
  1062. package/dist/server/testing/guardrails.js +1 -65
  1063. package/dist/server/testing/guardrails.js.map +1 -1
  1064. package/dist/server/testing/helpers.js +1 -62
  1065. package/dist/server/testing/helpers.js.map +1 -1
  1066. package/dist/server/testing/index.d.ts +1 -0
  1067. package/dist/server/testing/index.js +1 -0
  1068. package/dist/server/testing/index.js.map +1 -1
  1069. package/dist/server/testing/registry-parity.d.ts +18 -0
  1070. package/dist/server/testing/registry-parity.js +38 -0
  1071. package/dist/server/testing/registry-parity.js.map +1 -0
  1072. package/dist/server/testing/schema-consistency.js +5 -26
  1073. package/dist/server/testing/schema-consistency.js.map +1 -1
  1074. package/dist/server/testing/smoke.d.ts +2 -1
  1075. package/dist/server/testing/smoke.js +5 -3
  1076. package/dist/server/testing/smoke.js.map +1 -1
  1077. package/dist/server/testing/types.d.ts +1 -1
  1078. package/dist/server/testing/zod-introspect.d.ts +38 -0
  1079. package/dist/server/testing/zod-introspect.js +286 -0
  1080. package/dist/server/testing/zod-introspect.js.map +1 -0
  1081. package/dist/stt/index.d.ts +5 -0
  1082. package/dist/stt/index.js +6 -0
  1083. package/dist/stt/index.js.map +1 -0
  1084. package/dist/sync/app-setup-client.d.ts +46 -0
  1085. package/dist/sync/app-setup-client.js +137 -0
  1086. package/dist/sync/app-setup-client.js.map +1 -0
  1087. package/dist/sync/capability-report.d.ts +41 -0
  1088. package/dist/sync/capability-report.js +48 -0
  1089. package/dist/sync/capability-report.js.map +1 -0
  1090. package/dist/sync/connection-lookup.d.ts +19 -0
  1091. package/dist/sync/connection-lookup.js +56 -0
  1092. package/dist/sync/connection-lookup.js.map +1 -0
  1093. package/dist/sync/control-plane-client.d.ts +69 -0
  1094. package/dist/sync/control-plane-client.js +182 -0
  1095. package/dist/sync/control-plane-client.js.map +1 -0
  1096. package/dist/sync/deployment-selector.d.ts +9 -0
  1097. package/dist/sync/deployment-selector.js +26 -0
  1098. package/dist/sync/deployment-selector.js.map +1 -0
  1099. package/dist/sync/fetch-sse-push.d.ts +6 -0
  1100. package/dist/sync/fetch-sse-push.js +42 -0
  1101. package/dist/sync/fetch-sse-push.js.map +1 -0
  1102. package/dist/sync/index.d.ts +26 -0
  1103. package/dist/sync/index.js +17 -0
  1104. package/dist/sync/index.js.map +1 -0
  1105. package/dist/sync/jwks-provider.d.ts +14 -0
  1106. package/dist/sync/jwks-provider.js +53 -0
  1107. package/dist/sync/jwks-provider.js.map +1 -0
  1108. package/dist/sync/local-deployment-validator.d.ts +30 -0
  1109. package/dist/sync/local-deployment-validator.js +60 -0
  1110. package/dist/sync/local-deployment-validator.js.map +1 -0
  1111. package/dist/sync/managed-sync.d.ts +40 -0
  1112. package/dist/sync/managed-sync.js +94 -0
  1113. package/dist/sync/managed-sync.js.map +1 -0
  1114. package/dist/sync/materialize-deployment.d.ts +7 -0
  1115. package/dist/sync/materialize-deployment.js +63 -0
  1116. package/dist/sync/materialize-deployment.js.map +1 -0
  1117. package/dist/sync/runtime-connect-client.d.ts +23 -0
  1118. package/dist/sync/runtime-connect-client.js +182 -0
  1119. package/dist/sync/runtime-connect-client.js.map +1 -0
  1120. package/dist/sync/runtime-setup-client.d.ts +62 -0
  1121. package/dist/sync/runtime-setup-client.js +153 -0
  1122. package/dist/sync/runtime-setup-client.js.map +1 -0
  1123. package/dist/sync/signature-verifier.d.ts +39 -0
  1124. package/dist/sync/signature-verifier.js +97 -0
  1125. package/dist/sync/signature-verifier.js.map +1 -0
  1126. package/dist/sync/state-store.d.ts +24 -0
  1127. package/dist/sync/state-store.js +47 -0
  1128. package/dist/sync/state-store.js.map +1 -0
  1129. package/dist/sync/sync-manager.d.ts +27 -0
  1130. package/dist/sync/sync-manager.js +170 -0
  1131. package/dist/sync/sync-manager.js.map +1 -0
  1132. package/dist/types.d.ts +68 -16
  1133. package/dist/types.js +31 -3
  1134. package/dist/types.js.map +1 -1
  1135. package/embed/package.json +5 -0
  1136. package/package.json +188 -47
  1137. package/runtime/ai-sdk/package.json +5 -0
  1138. package/runtime/package.json +5 -0
  1139. package/skills/README.md +26 -92
  1140. package/skills/building-glirastes-chat-ui/SKILL.md +358 -343
  1141. package/skills/describing-glirastes-tools/SKILL.md +180 -0
  1142. package/skills/integrating-glirastes-nextjs/SKILL.md +149 -302
  1143. package/skills/integrating-glirastes-web/SKILL.md +165 -0
  1144. package/skills/maintaining-glirastes-tools/SKILL.md +133 -461
  1145. package/skills/migrating-to-glirastes/SKILL.md +112 -0
  1146. package/skills/setting-up-glirastes/SKILL.md +158 -0
  1147. package/skills/setting-up-glirastes/agents/openai.yaml +4 -0
  1148. package/skills/setting-up-glirastes/references/artifact-contract.md +40 -0
  1149. package/skills/setting-up-glirastes/scripts/validate-artifact.ts +23 -0
  1150. package/skills/setting-up-glirastes/templates/interview.md +19 -0
  1151. package/stt/package.json +5 -0
  1152. package/dist/cjs/codegen/asset-sync.d.ts +0 -20
  1153. package/dist/cjs/codegen/asset-sync.js +0 -28
  1154. package/dist/cjs/codegen/coverage.d.ts +0 -66
  1155. package/dist/cjs/codegen/coverage.js +0 -408
  1156. package/dist/cjs/codegen/endpoint-scanner.d.ts +0 -16
  1157. package/dist/cjs/codegen/endpoint-scanner.js +0 -197
  1158. package/dist/cjs/codegen/mcp-generator.d.ts +0 -50
  1159. package/dist/cjs/codegen/mcp-generator.js +0 -803
  1160. package/dist/cjs/codegen/module-generator.d.ts +0 -11
  1161. package/dist/cjs/codegen/module-generator.js +0 -353
  1162. package/dist/cjs/codegen/nestjs-scanner.d.ts +0 -43
  1163. package/dist/cjs/codegen/nestjs-scanner.js +0 -241
  1164. package/dist/cjs/codegen/output-recommender.d.ts +0 -23
  1165. package/dist/cjs/codegen/output-recommender.js +0 -33
  1166. package/dist/cjs/codegen/scaffolder.d.ts +0 -36
  1167. package/dist/cjs/codegen/scaffolder.js +0 -262
  1168. package/dist/cjs/codegen/skill-generator.d.ts +0 -49
  1169. package/dist/cjs/codegen/skill-generator.js +0 -967
  1170. package/dist/cjs/codegen/ui-scanner.d.ts +0 -24
  1171. package/dist/cjs/codegen/ui-scanner.js +0 -202
  1172. package/dist/cjs/codegen/validator.d.ts +0 -35
  1173. package/dist/cjs/codegen/validator.js +0 -292
  1174. package/dist/cjs/openapi/index.d.ts +0 -78
  1175. package/dist/cjs/openapi/index.js +0 -347
  1176. package/dist/cjs/react/components/wavesurfer-loader.d.ts +0 -5
  1177. package/dist/cjs/react/components/wavesurfer-loader.js +0 -36
  1178. package/dist/cjs/react/transports/langgraph/index.d.ts +0 -2
  1179. package/dist/cjs/react/transports/langgraph/index.js +0 -8
  1180. package/dist/cjs/react/transports/langgraph/langgraph-ai-chat.d.ts +0 -62
  1181. package/dist/cjs/react/transports/langgraph/langgraph-ai-chat.js +0 -94
  1182. package/dist/cjs/react/transports/langgraph.d.ts +0 -71
  1183. package/dist/cjs/react/transports/langgraph.js +0 -369
  1184. package/dist/cjs/server/adapters/nestjs/chat/ai-chat-auth.guard.d.ts +0 -10
  1185. package/dist/cjs/server/adapters/nestjs/chat/ai-chat-auth.guard.js +0 -42
  1186. package/dist/cjs/server/adapters/nestjs/chat/ai-chat-module-options.interface.d.ts +0 -32
  1187. package/dist/cjs/server/adapters/nestjs/chat/ai-chat-module-options.interface.js +0 -4
  1188. package/dist/cjs/server/adapters/nestjs/chat/ai-chat.controller.d.ts +0 -11
  1189. package/dist/cjs/server/adapters/nestjs/chat/ai-chat.controller.js +0 -80
  1190. package/dist/cjs/server/adapters/nestjs/chat/ai-chat.module.d.ts +0 -9
  1191. package/dist/cjs/server/adapters/nestjs/chat/ai-chat.module.js +0 -119
  1192. package/dist/cjs/server/adapters/nestjs/chat/ai-chat.service.d.ts +0 -13
  1193. package/dist/cjs/server/adapters/nestjs/chat/ai-chat.service.js +0 -131
  1194. package/dist/cjs/server/adapters/nestjs/chat/dto/ai-chat-request.dto.d.ts +0 -7
  1195. package/dist/cjs/server/adapters/nestjs/chat/dto/ai-chat-request.dto.js +0 -52
  1196. package/dist/cjs/server/adapters/nestjs/chat/dto/chat-message-part.dto.d.ts +0 -19
  1197. package/dist/cjs/server/adapters/nestjs/chat/dto/chat-message-part.dto.js +0 -108
  1198. package/dist/cjs/server/adapters/nestjs/chat/dto/chat-message.dto.d.ts +0 -8
  1199. package/dist/cjs/server/adapters/nestjs/chat/dto/chat-message.dto.js +0 -59
  1200. package/dist/cjs/server/adapters/nestjs/chat/dto/index.d.ts +0 -3
  1201. package/dist/cjs/server/adapters/nestjs/chat/dto/index.js +0 -9
  1202. package/dist/cjs/server/adapters/nestjs/chat/index.d.ts +0 -3
  1203. package/dist/cjs/server/adapters/nestjs/chat/index.js +0 -9
  1204. package/dist/cjs/server/adapters/nestjs/chat/speech-stream.gateway.d.ts +0 -4
  1205. package/dist/cjs/server/adapters/nestjs/chat/speech-stream.gateway.js +0 -73
  1206. package/dist/cjs/server/adapters/nestjs/chat/ws-loader.d.ts +0 -5
  1207. package/dist/cjs/server/adapters/nestjs/chat/ws-loader.js +0 -72
  1208. package/dist/cjs/server/adapters/nestjs/decorators/ai-module.decorator.d.ts +0 -6
  1209. package/dist/cjs/server/adapters/nestjs/decorators/ai-module.decorator.js +0 -13
  1210. package/dist/cjs/server/adapters/nestjs/decorators/ai-param.decorator.d.ts +0 -5
  1211. package/dist/cjs/server/adapters/nestjs/decorators/ai-param.decorator.js +0 -15
  1212. package/dist/cjs/server/adapters/nestjs/decorators/ai-tool.decorator.d.ts +0 -6
  1213. package/dist/cjs/server/adapters/nestjs/decorators/ai-tool.decorator.js +0 -22
  1214. package/dist/cjs/server/adapters/nestjs/decorators/constants.d.ts +0 -4
  1215. package/dist/cjs/server/adapters/nestjs/decorators/constants.js +0 -7
  1216. package/dist/cjs/server/adapters/nestjs/index.d.ts +0 -14
  1217. package/dist/cjs/server/adapters/nestjs/index.js +0 -42
  1218. package/dist/cjs/server/adapters/nestjs/metadata.d.ts +0 -39
  1219. package/dist/cjs/server/adapters/nestjs/metadata.js +0 -36
  1220. package/dist/cjs/server/adapters/nestjs/module/ai-tools-explorer.service.d.ts +0 -36
  1221. package/dist/cjs/server/adapters/nestjs/module/ai-tools-explorer.service.js +0 -159
  1222. package/dist/cjs/server/adapters/nestjs/module/ai-tools.module.d.ts +0 -37
  1223. package/dist/cjs/server/adapters/nestjs/module/ai-tools.module.js +0 -44
  1224. package/dist/cjs/server/adapters/nestjs/module/ai-tools.service.d.ts +0 -28
  1225. package/dist/cjs/server/adapters/nestjs/module/ai-tools.service.js +0 -41
  1226. package/dist/cjs/server/adapters/nestjs/scanner/nestjs-scanner.d.ts +0 -16
  1227. package/dist/cjs/server/adapters/nestjs/scanner/nestjs-scanner.js +0 -117
  1228. package/dist/cjs/server/adapters/nestjs/scanner/schema-builder.d.ts +0 -26
  1229. package/dist/cjs/server/adapters/nestjs/scanner/schema-builder.js +0 -259
  1230. package/dist/cjs/server/adapters/nestjs/swagger.d.ts +0 -7
  1231. package/dist/cjs/server/adapters/nestjs/swagger.js +0 -39
  1232. package/dist/cli/commands/check-upgrade.d.ts +0 -15
  1233. package/dist/cli/commands/check-upgrade.js +0 -138
  1234. package/dist/cli/commands/check-upgrade.js.map +0 -1
  1235. package/dist/cli/commands/test.d.ts +0 -8
  1236. package/dist/cli/commands/test.js +0 -76
  1237. package/dist/cli/commands/test.js.map +0 -1
  1238. package/dist/cli/utils/changelog-parser.d.ts +0 -13
  1239. package/dist/cli/utils/changelog-parser.js +0 -89
  1240. package/dist/cli/utils/changelog-parser.js.map +0 -1
  1241. package/dist/cli/utils/commit-parser.d.ts +0 -8
  1242. package/dist/cli/utils/commit-parser.js +0 -23
  1243. package/dist/cli/utils/commit-parser.js.map +0 -1
  1244. package/dist/cli/utils/gap-detector.d.ts +0 -14
  1245. package/dist/cli/utils/gap-detector.js +0 -65
  1246. package/dist/cli/utils/gap-detector.js.map +0 -1
  1247. package/dist/cli/utils/get-cli-version.d.ts +0 -2
  1248. package/dist/cli/utils/get-cli-version.js +0 -10
  1249. package/dist/cli/utils/get-cli-version.js.map +0 -1
  1250. package/dist/codegen/asset-sync.d.ts +0 -20
  1251. package/dist/codegen/asset-sync.js +0 -26
  1252. package/dist/codegen/asset-sync.js.map +0 -1
  1253. package/dist/codegen/coverage.d.ts +0 -66
  1254. package/dist/codegen/coverage.js +0 -372
  1255. package/dist/codegen/coverage.js.map +0 -1
  1256. package/dist/codegen/endpoint-scanner.d.ts +0 -16
  1257. package/dist/codegen/endpoint-scanner.js +0 -161
  1258. package/dist/codegen/endpoint-scanner.js.map +0 -1
  1259. package/dist/codegen/mcp-generator.d.ts +0 -50
  1260. package/dist/codegen/mcp-generator.js +0 -801
  1261. package/dist/codegen/mcp-generator.js.map +0 -1
  1262. package/dist/codegen/module-generator.d.ts +0 -11
  1263. package/dist/codegen/module-generator.js +0 -351
  1264. package/dist/codegen/module-generator.js.map +0 -1
  1265. package/dist/codegen/nestjs-scanner.d.ts +0 -43
  1266. package/dist/codegen/nestjs-scanner.js +0 -239
  1267. package/dist/codegen/nestjs-scanner.js.map +0 -1
  1268. package/dist/codegen/output-recommender.d.ts +0 -23
  1269. package/dist/codegen/output-recommender.js +0 -31
  1270. package/dist/codegen/output-recommender.js.map +0 -1
  1271. package/dist/codegen/scaffolder.d.ts +0 -36
  1272. package/dist/codegen/scaffolder.js +0 -259
  1273. package/dist/codegen/scaffolder.js.map +0 -1
  1274. package/dist/codegen/skill-generator.d.ts +0 -49
  1275. package/dist/codegen/skill-generator.js +0 -965
  1276. package/dist/codegen/skill-generator.js.map +0 -1
  1277. package/dist/codegen/ui-scanner.d.ts +0 -24
  1278. package/dist/codegen/ui-scanner.js +0 -197
  1279. package/dist/codegen/ui-scanner.js.map +0 -1
  1280. package/dist/codegen/validator.d.ts +0 -35
  1281. package/dist/codegen/validator.js +0 -256
  1282. package/dist/codegen/validator.js.map +0 -1
  1283. package/dist/openapi/demo-generate.d.ts +0 -1
  1284. package/dist/openapi/demo-generate.js +0 -15
  1285. package/dist/openapi/demo-generate.js.map +0 -1
  1286. package/dist/openapi/index.d.ts +0 -78
  1287. package/dist/openapi/index.js +0 -341
  1288. package/dist/openapi/index.js.map +0 -1
  1289. package/dist/react/components/wavesurfer-loader.d.ts +0 -5
  1290. package/dist/react/components/wavesurfer-loader.js +0 -34
  1291. package/dist/react/components/wavesurfer-loader.js.map +0 -1
  1292. package/dist/react/transports/langgraph/index.d.ts +0 -2
  1293. package/dist/react/transports/langgraph/index.js +0 -3
  1294. package/dist/react/transports/langgraph/index.js.map +0 -1
  1295. package/dist/react/transports/langgraph/langgraph-ai-chat.d.ts +0 -62
  1296. package/dist/react/transports/langgraph/langgraph-ai-chat.js +0 -92
  1297. package/dist/react/transports/langgraph/langgraph-ai-chat.js.map +0 -1
  1298. package/dist/react/transports/langgraph.d.ts +0 -71
  1299. package/dist/react/transports/langgraph.js +0 -366
  1300. package/dist/react/transports/langgraph.js.map +0 -1
  1301. package/dist/server/adapters/nestjs/chat/ai-chat-auth.guard.d.ts +0 -10
  1302. package/dist/server/adapters/nestjs/chat/ai-chat-auth.guard.js +0 -40
  1303. package/dist/server/adapters/nestjs/chat/ai-chat-auth.guard.js.map +0 -1
  1304. package/dist/server/adapters/nestjs/chat/ai-chat-module-options.interface.d.ts +0 -32
  1305. package/dist/server/adapters/nestjs/chat/ai-chat-module-options.interface.js +0 -2
  1306. package/dist/server/adapters/nestjs/chat/ai-chat-module-options.interface.js.map +0 -1
  1307. package/dist/server/adapters/nestjs/chat/ai-chat.controller.d.ts +0 -11
  1308. package/dist/server/adapters/nestjs/chat/ai-chat.controller.js +0 -78
  1309. package/dist/server/adapters/nestjs/chat/ai-chat.controller.js.map +0 -1
  1310. package/dist/server/adapters/nestjs/chat/ai-chat.module.d.ts +0 -9
  1311. package/dist/server/adapters/nestjs/chat/ai-chat.module.js +0 -117
  1312. package/dist/server/adapters/nestjs/chat/ai-chat.module.js.map +0 -1
  1313. package/dist/server/adapters/nestjs/chat/ai-chat.service.d.ts +0 -13
  1314. package/dist/server/adapters/nestjs/chat/ai-chat.service.js +0 -129
  1315. package/dist/server/adapters/nestjs/chat/ai-chat.service.js.map +0 -1
  1316. package/dist/server/adapters/nestjs/chat/dto/ai-chat-request.dto.d.ts +0 -7
  1317. package/dist/server/adapters/nestjs/chat/dto/ai-chat-request.dto.js +0 -49
  1318. package/dist/server/adapters/nestjs/chat/dto/ai-chat-request.dto.js.map +0 -1
  1319. package/dist/server/adapters/nestjs/chat/dto/chat-message-part.dto.d.ts +0 -19
  1320. package/dist/server/adapters/nestjs/chat/dto/chat-message-part.dto.js +0 -105
  1321. package/dist/server/adapters/nestjs/chat/dto/chat-message-part.dto.js.map +0 -1
  1322. package/dist/server/adapters/nestjs/chat/dto/chat-message.dto.d.ts +0 -8
  1323. package/dist/server/adapters/nestjs/chat/dto/chat-message.dto.js +0 -56
  1324. package/dist/server/adapters/nestjs/chat/dto/chat-message.dto.js.map +0 -1
  1325. package/dist/server/adapters/nestjs/chat/dto/index.d.ts +0 -3
  1326. package/dist/server/adapters/nestjs/chat/dto/index.js +0 -4
  1327. package/dist/server/adapters/nestjs/chat/dto/index.js.map +0 -1
  1328. package/dist/server/adapters/nestjs/chat/index.d.ts +0 -3
  1329. package/dist/server/adapters/nestjs/chat/index.js +0 -3
  1330. package/dist/server/adapters/nestjs/chat/index.js.map +0 -1
  1331. package/dist/server/adapters/nestjs/chat/speech-stream.gateway.d.ts +0 -4
  1332. package/dist/server/adapters/nestjs/chat/speech-stream.gateway.js +0 -71
  1333. package/dist/server/adapters/nestjs/chat/speech-stream.gateway.js.map +0 -1
  1334. package/dist/server/adapters/nestjs/chat/ws-loader.d.ts +0 -5
  1335. package/dist/server/adapters/nestjs/chat/ws-loader.js +0 -37
  1336. package/dist/server/adapters/nestjs/chat/ws-loader.js.map +0 -1
  1337. package/dist/server/adapters/nestjs/decorators/ai-module.decorator.d.ts +0 -6
  1338. package/dist/server/adapters/nestjs/decorators/ai-module.decorator.js +0 -11
  1339. package/dist/server/adapters/nestjs/decorators/ai-module.decorator.js.map +0 -1
  1340. package/dist/server/adapters/nestjs/decorators/ai-param.decorator.d.ts +0 -5
  1341. package/dist/server/adapters/nestjs/decorators/ai-param.decorator.js +0 -13
  1342. package/dist/server/adapters/nestjs/decorators/ai-param.decorator.js.map +0 -1
  1343. package/dist/server/adapters/nestjs/decorators/ai-tool.decorator.d.ts +0 -6
  1344. package/dist/server/adapters/nestjs/decorators/ai-tool.decorator.js +0 -20
  1345. package/dist/server/adapters/nestjs/decorators/ai-tool.decorator.js.map +0 -1
  1346. package/dist/server/adapters/nestjs/decorators/constants.d.ts +0 -4
  1347. package/dist/server/adapters/nestjs/decorators/constants.js +0 -5
  1348. package/dist/server/adapters/nestjs/decorators/constants.js.map +0 -1
  1349. package/dist/server/adapters/nestjs/index.d.ts +0 -14
  1350. package/dist/server/adapters/nestjs/index.js +0 -20
  1351. package/dist/server/adapters/nestjs/index.js.map +0 -1
  1352. package/dist/server/adapters/nestjs/metadata.d.ts +0 -39
  1353. package/dist/server/adapters/nestjs/metadata.js +0 -30
  1354. package/dist/server/adapters/nestjs/metadata.js.map +0 -1
  1355. package/dist/server/adapters/nestjs/module/ai-tools-explorer.service.d.ts +0 -36
  1356. package/dist/server/adapters/nestjs/module/ai-tools-explorer.service.js +0 -156
  1357. package/dist/server/adapters/nestjs/module/ai-tools-explorer.service.js.map +0 -1
  1358. package/dist/server/adapters/nestjs/module/ai-tools.module.d.ts +0 -37
  1359. package/dist/server/adapters/nestjs/module/ai-tools.module.js +0 -42
  1360. package/dist/server/adapters/nestjs/module/ai-tools.module.js.map +0 -1
  1361. package/dist/server/adapters/nestjs/module/ai-tools.service.d.ts +0 -28
  1362. package/dist/server/adapters/nestjs/module/ai-tools.service.js +0 -38
  1363. package/dist/server/adapters/nestjs/module/ai-tools.service.js.map +0 -1
  1364. package/dist/server/adapters/nestjs/scanner/nestjs-scanner.d.ts +0 -16
  1365. package/dist/server/adapters/nestjs/scanner/nestjs-scanner.js +0 -115
  1366. package/dist/server/adapters/nestjs/scanner/nestjs-scanner.js.map +0 -1
  1367. package/dist/server/adapters/nestjs/scanner/schema-builder.d.ts +0 -26
  1368. package/dist/server/adapters/nestjs/scanner/schema-builder.js +0 -255
  1369. package/dist/server/adapters/nestjs/scanner/schema-builder.js.map +0 -1
  1370. package/dist/server/adapters/nestjs/swagger.d.ts +0 -7
  1371. package/dist/server/adapters/nestjs/swagger.js +0 -37
  1372. package/dist/server/adapters/nestjs/swagger.js.map +0 -1
  1373. package/openapi/package.json +0 -5
  1374. package/react/langgraph/package.json +0 -5
  1375. package/server/nestjs/package.json +0 -5
  1376. package/skills/integrating-glirastes-nestjs/SKILL.md +0 -346
  1377. package/skills/integrating-glirastes-nextjs-with-nestjs-backend/SKILL.md +0 -359
@@ -2,8 +2,21 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useState, useRef, useCallback, useMemo, useEffect, } from 'react';
3
3
  import { getThemeEffect, getThemeVars } from '../themes.js';
4
4
  import { ChatContext } from './chat-context.js';
5
- import { serializeMentionsForSend } from '../utils/mention-markup.js';
5
+ import { normalizeMentionSlug, serializeMentionsForSend } from '../utils/mention-markup.js';
6
6
  import { mergePipelineSteps } from '../utils/merge-pipeline-steps.js';
7
+ import { collectEntityNames } from '../utils/entity-names.js';
8
+ import { createApprovalDescriptionGenerator } from '../utils/create-approval-description.js';
9
+ import { languageLocale, parseToolPresentation, usePageLanguage } from '../utils/tool-presentation.js';
10
+ import { resolveToolResultConfig } from '../utils/tool-result-config.js';
11
+ import { extractTrailingFollowupSuggestions } from '../utils/followup-suggestions.js';
12
+ import { clarificationAnswerMessage, findOpenClarification } from '../utils/clarification.js';
13
+ import { createCompletionSearch } from '../completions/completion-search.js';
14
+ import { toChatEntityItem } from '../interactions/definitions.js';
15
+ import { createChatInteractionRegistry, } from '../interactions/registry.js';
16
+ import { createToolResultRendererRegistry } from '../tool-renderers/registry.js';
17
+ import { dispatchToolResultUiActions } from '../../browser/client-actions.js';
18
+ import { getDefaultUiActionBus } from '../../browser/ui-action-bus.js';
19
+ import { CLARIFICATION_MAX_ANSWER_LENGTH, parseClarificationAnswer, } from '../../contracts/clarification.js';
7
20
  export const DEFAULT_LOCALE = {
8
21
  placeholder: 'Type a message...',
9
22
  sendButton: 'Send',
@@ -20,6 +33,7 @@ export const DEFAULT_LOCALE = {
20
33
  dismissButton: 'Dismiss',
21
34
  cancelButton: 'Cancel',
22
35
  confirmButton: 'Confirm',
36
+ approvalPendingHint: 'Please approve or reject the open request first.',
23
37
  moreItemsLabel: 'more',
24
38
  allCountLabel: 'All {count}',
25
39
  pipelineTitle: 'Pipeline',
@@ -30,6 +44,12 @@ export const DEFAULT_LOCALE = {
30
44
  pipelineErrorLabel: 'Error',
31
45
  pipelineStepLabel: 'Step',
32
46
  pipelineApprovalPendingLabel: 'Approval pending',
47
+ activityWorkingLabel: 'Working',
48
+ activityWaitingLabel: 'Waiting for approval',
49
+ activityDoneLabel: '{count} steps done',
50
+ activityDoneOneLabel: '1 step done',
51
+ activityFailedLabel: '{count} failed',
52
+ planTitle: 'Plan',
33
53
  chatTitle: 'AI Assistant',
34
54
  closeChatAriaLabel: 'Close chat',
35
55
  clearChatAriaLabel: 'Clear conversation',
@@ -41,10 +61,23 @@ export const DEFAULT_LOCALE = {
41
61
  newChatLabel: 'New chat',
42
62
  noSessionsLabel: 'No conversations yet',
43
63
  sessionsLoadingLabel: 'Loading…',
64
+ untitledSessionLabel: 'Untitled',
44
65
  deleteSessionAriaLabel: 'Delete conversation',
45
66
  confirmDeleteSessionPrompt: 'Delete this conversation?',
67
+ sessionArchiveMessage: '"{title}" will be archived.',
46
68
  renameSessionAriaLabel: 'Rename conversation',
47
69
  renameSessionPlaceholder: 'Conversation title',
70
+ clarificationInputLabel: 'Your answer',
71
+ clarificationSubmitButton: 'Answer',
72
+ retryRecordingAriaLabel: 'Retry recording',
73
+ completionListLabel: 'Suggestions',
74
+ completionResultsLabel: '{count} suggestions',
75
+ commandArgumentsLabel: 'Details for {command}',
76
+ commandArgumentsSubmit: 'Run',
77
+ commandArgumentsInvalid: 'These values are too long.',
78
+ commandArgumentsIncomplete: 'Please complete: {fields}',
79
+ commandArgumentsAnyOption: 'Any',
80
+ commandArgumentsNoMatches: 'No matches',
48
81
  };
49
82
  // ============================================================================
50
83
  // Helpers
@@ -91,16 +124,6 @@ function getMentionTypesForTrigger(types, trigger) {
91
124
  }
92
125
  return types;
93
126
  }
94
- /** Default approval description — returns raw tool name and JSON args */
95
- function defaultApprovalDescription(toolName, approvalId, args) {
96
- return {
97
- id: approvalId,
98
- toolName,
99
- args: isRecord(args) ? args : {},
100
- messageId: '',
101
- description: toolName,
102
- };
103
- }
104
127
  /**
105
128
  * Remove orphaned tool calls (approval-requested without response)
106
129
  * from message history to prevent AI_MissingToolResultsError.
@@ -229,7 +252,8 @@ function normalizePipelineState(data) {
229
252
  }
230
253
  if (data.stepLimitSource !== 'explicit' &&
231
254
  data.stepLimitSource !== 'module' &&
232
- data.stepLimitSource !== 'safety') {
255
+ data.stepLimitSource !== 'safety' &&
256
+ data.stepLimitSource !== 'runtime-budget') {
233
257
  return null;
234
258
  }
235
259
  return {
@@ -273,28 +297,69 @@ function normalizePipelineState(data) {
273
297
  * }
274
298
  * ```
275
299
  */
276
- export function AiChatProvider({ transport, mentions, toolResults: userToolResults, voice: userVoice, session, classNames: userClassNames, components: userComponents, suggestions: userSuggestions, locale: userLocale, theme: userTheme, onToolResult, onBeforeSend, approvalDescription: userApprovalDescription, continueMessage = 'Please continue.', toolLabels: userToolLabels, pipelineMessageTranslator, stepSummaryFormatter, children, }) {
277
- // Merge caller-supplied locale overrides with English defaults.
278
- const locale = useMemo(() => ({ ...DEFAULT_LOCALE, ...(userLocale ?? {}) }), [userLocale]);
300
+ export function AiChatProvider({ transport, mentions, completionProviders, completionContext, onCompletionProviderError, chatInteractions, toolRenderers, toolResults: userToolResults, voice: userVoice, session, classNames: userClassNames, components: userComponents, suggestions: userSuggestions, locale: userLocale, theme: userTheme, themeScope = 'inline', unstyled = false, onToolResult, uiActionBus, onBeforeSend, approvalDescription: userApprovalDescription, continueMessage = 'Please continue.', toolLabels: userToolLabels, pipelineMessageTranslator, stepSummaryFormatter, children, }) {
301
+ // What the chat turn says about its tools (label per model name, app
302
+ // language) and the language of the page: the defaults of a chat that
303
+ // configures neither `locale`, `toolLabels` nor `approvalDescription`.
304
+ const [toolPresentation, setToolPresentation] = useState(null);
305
+ const pageLanguage = usePageLanguage();
306
+ const language = toolPresentation?.locale ?? pageLanguage;
307
+ // English defaults, then the built-in texts of the app's language, then the caller's overrides.
308
+ const locale = useMemo(() => ({ ...DEFAULT_LOCALE, ...languageLocale(language), ...(userLocale ?? {}) }), [userLocale, language]);
279
309
  // Resolve `theme` prop → CSS variables spread onto widget roots.
280
- const themeVars = useMemo(() => getThemeVars(userTheme), [userTheme]);
310
+ const themeVars = useMemo(() => (themeScope === 'inherit' || unstyled ? {} : getThemeVars(userTheme)), [userTheme, themeScope, unstyled]);
281
311
  const themeEffect = useMemo(() => getThemeEffect(userTheme), [userTheme]);
282
312
  const classNames = useMemo(() => userClassNames ?? {}, [userClassNames]);
283
313
  const components = useMemo(() => userComponents ?? {}, [userComponents]);
284
314
  const suggestionsConfig = useMemo(() => ({ enabled: true, count: 3, autoSuggest: true, ...userSuggestions }), [userSuggestions]);
285
- const toolResultConfig = useMemo(() => ({ mode: 'default', allowlist: [], ...userToolResults }), [userToolResults]);
315
+ const toolResultConfig = useMemo(() => resolveToolResultConfig(userToolResults, Boolean(toolRenderers && toolRenderers.length > 0)), [userToolResults, toolRenderers]);
316
+ const toolRendererRegistry = useMemo(() => (toolRenderers && toolRenderers.length > 0
317
+ ? createToolResultRendererRegistry(toolRenderers)
318
+ : undefined), [toolRenderers]);
286
319
  const voiceConfig = useMemo(() => ({
287
320
  enabled: false,
288
321
  language: 'de',
289
322
  recordingBar: { enabled: true, variant: 'inline', ...(userVoice?.recordingBar ?? {}) },
290
323
  ...userVoice,
291
324
  }), [userVoice]);
292
- const toolLabels = useMemo(() => userToolLabels ?? {}, [userToolLabels]);
293
- const approvalDescriptionFn = userApprovalDescription ?? defaultApprovalDescription;
325
+ // The labels of the turn's tools, each used for one call and for several; the caller's labels win.
326
+ const toolLabels = useMemo(() => ({
327
+ labels: {
328
+ ...Object.fromEntries(Object.entries(toolPresentation?.labels ?? {})
329
+ .map(([name, label]) => [name, { singular: label, plural: label }])),
330
+ ...(userToolLabels?.labels ?? {}),
331
+ },
332
+ }), [toolPresentation, userToolLabels]);
333
+ // Without the app's own description, an approval names the action by its
334
+ // label and lists what the call states, instead of the raw tool name alone.
335
+ const derivedApprovalDescription = useMemo(() => {
336
+ const actions = Object.fromEntries(Object.entries(toolLabels.labels ?? {})
337
+ .map(([name, label]) => [name, label.singular]));
338
+ const describe = createApprovalDescriptionGenerator({ toolLabels: actions, dateLocale: language ?? 'en-US' });
339
+ return (toolName, approvalId, args, context) => {
340
+ const pending = describe(toolName, approvalId, args, context);
341
+ return actions[toolName] ? pending : { ...pending, description: toolName };
342
+ };
343
+ }, [toolLabels, language]);
344
+ const approvalDescriptionFn = userApprovalDescription ?? derivedApprovalDescription;
294
345
  // Approvals state (Map for O(1) lookup)
295
346
  const [pendingApprovalsMap, setPendingApprovalsMap] = useState(new Map());
296
- const [processingApprovalId, setProcessingApprovalId] = useState(null);
347
+ // Set when the user sends while an approval waits; cleared once none waits.
348
+ const [approvalReminder, setApprovalReminder] = useState(false);
349
+ useEffect(() => {
350
+ if (pendingApprovalsMap.size === 0)
351
+ setApprovalReminder(false);
352
+ }, [pendingApprovalsMap]);
353
+ const [processingApprovalIds, setProcessingApprovalIds] = useState(new Set());
354
+ const [approvalError, setApprovalError] = useState(null);
297
355
  const [isInitialized, setIsInitialized] = useState(false);
356
+ // A completed load belongs to one session, not to the provider forever.
357
+ // Otherwise a render with a new id can persist the previous session's rows.
358
+ const [loadedSessionId, setLoadedSessionId] = useState(null);
359
+ const [sessionLoadFailure, setSessionLoadFailure] = useState(null);
360
+ const [sessionRestoreAttempt, setSessionRestoreAttempt] = useState(0);
361
+ const [isSessionMutating, setIsSessionMutating] = useState(false);
362
+ const sessionMutationRef = useRef(false);
298
363
  // ---------------------------------------------------------------------------
299
364
  // Multi-session state
300
365
  //
@@ -306,6 +371,9 @@ export function AiChatProvider({ transport, mentions, toolResults: userToolResul
306
371
  const [uncontrolledActiveId, setUncontrolledActiveId] = useState(() => session?.activeId ?? session?.defaultActiveId ?? 'default');
307
372
  const activeSessionId = session?.activeId ?? uncontrolledActiveId;
308
373
  const [sessions, setSessions] = useState([]);
374
+ const isBootstrapSentinel = activeSessionId === 'default'
375
+ && session?.list !== undefined && session.defaultActiveId === undefined
376
+ && session.activeId === undefined && !sessions.some((entry) => entry.id === 'default');
309
377
  const [isSessionsLoading, setIsSessionsLoading] = useState(false);
310
378
  const sessionsSupported = Boolean(session && session.list && session.create && session.remove);
311
379
  // Keep a ref so callbacks inside effects read the current session config
@@ -327,16 +395,40 @@ export function AiChatProvider({ transport, mentions, toolResults: userToolResul
327
395
  const [mentionResults, setMentionResults] = useState([]);
328
396
  const [activeMentions, setActiveMentions] = useState([]);
329
397
  const [isMentionSearching, setIsMentionSearching] = useState(false);
398
+ const onCompletionProviderErrorRef = useRef(onCompletionProviderError);
399
+ onCompletionProviderErrorRef.current = onCompletionProviderError;
400
+ // Declarative `@` entities and `/` commands join the app's own providers.
401
+ const interactionRegistry = useMemo(() => (chatInteractions
402
+ ? createChatInteractionRegistry({ ...chatInteractions, context: completionContext })
403
+ : undefined), [chatInteractions, completionContext]);
404
+ const allCompletionProviders = useMemo(() => [...(completionProviders ?? []), ...(interactionRegistry?.providers ?? [])], [completionProviders, interactionRegistry]);
405
+ const completionSearch = useMemo(() => (allCompletionProviders.length > 0
406
+ ? createCompletionSearch(allCompletionProviders, {
407
+ context: completionContext,
408
+ onProviderError: (providerId, error) => onCompletionProviderErrorRef.current?.(providerId, error),
409
+ })
410
+ : undefined), [allCompletionProviders, completionContext]);
411
+ const [pendingCommand, setPendingCommand] = useState(null);
412
+ const [composerMentions, setComposerMentions] = useState([]);
330
413
  // Refs for deduplication
331
414
  const processedToolCallsRef = useRef(new Set());
332
415
  const handledApprovalIdsRef = useRef(new Set());
333
416
  // Stable refs for callbacks to avoid re-creating transport
334
417
  const onToolResultRef = useRef(onToolResult);
335
418
  onToolResultRef.current = onToolResult;
419
+ const uiActionBusRef = useRef(uiActionBus);
420
+ uiActionBusRef.current = uiActionBus;
336
421
  const approvalDescriptionRef = useRef(approvalDescriptionFn);
337
422
  approvalDescriptionRef.current = approvalDescriptionFn;
338
423
  // Data part handler — processes pipeline and truncation events from any transport
339
424
  const handleDataPart = useCallback((dataPart) => {
425
+ if (dataPart.type === 'data-tool-presentation') {
426
+ const next = parseToolPresentation(dataPart.data);
427
+ // Every turn sends it again; keep the object while its content is the same.
428
+ if (next)
429
+ setToolPresentation((current) => (JSON.stringify(current) === JSON.stringify(next) ? current : next));
430
+ return;
431
+ }
340
432
  if (dataPart.type === 'data-truncation') {
341
433
  const data = dataPart.data;
342
434
  setTruncation({
@@ -370,8 +462,12 @@ export function AiChatProvider({ transport, mentions, toolResults: userToolResul
370
462
  useEffect(() => {
371
463
  return resolvedTransport.subscribeToData?.(handleDataPart);
372
464
  }, [resolvedTransport, handleDataPart]);
373
- const { messages: rawMessages, sendMessage, status, error, stop: transportStop, setMessages, addToolApprovalResponse, } = resolvedTransport;
465
+ const { messages: rawMessages, sendMessage, status, error: transportError, stop: transportStop, setMessages, addToolApprovalResponse, } = resolvedTransport;
374
466
  const isLoading = status === 'submitted' || status === 'streaming';
467
+ const streamActiveRef = useRef(isLoading);
468
+ streamActiveRef.current = isLoading;
469
+ const sessionNotReady = Boolean(session?.load && loadedSessionId !== activeSessionId);
470
+ const error = transportError ?? (sessionLoadFailure?.id === activeSessionId ? sessionLoadFailure.error : null);
375
471
  useEffect(() => {
376
472
  if (!error)
377
473
  return;
@@ -382,7 +478,7 @@ export function AiChatProvider({ transport, mentions, toolResults: userToolResul
382
478
  maxSteps: prev?.maxSteps ?? 1,
383
479
  stepLimitSource: prev?.stepLimitSource ?? 'safety',
384
480
  updatedAt: new Date().toISOString(),
385
- message: typeof error.message === 'string' ? error.message : 'Pipeline failed.',
481
+ message: 'Pipeline failed.',
386
482
  }));
387
483
  }, [error, pipelineSteps.length]);
388
484
  // Mark stored messages as already processed (prevents re-dispatching tool results)
@@ -411,11 +507,21 @@ export function AiChatProvider({ transport, mentions, toolResults: userToolResul
411
507
  }
412
508
  }
413
509
  }, []);
510
+ // An open approval belongs to the chat that asked for it. A host that owns
511
+ // the active id switches chats without switchSession(), so drop it here.
512
+ const approvalSessionRef = useRef(activeSessionId);
513
+ useEffect(() => {
514
+ if (approvalSessionRef.current === activeSessionId)
515
+ return;
516
+ approvalSessionRef.current = activeSessionId;
517
+ setPendingApprovalsMap(new Map());
518
+ }, [activeSessionId]);
414
519
  // Load messages from session whenever the active session changes.
415
520
  // Runs on mount and on every switchSession() call.
416
521
  useEffect(() => {
417
522
  const cfg = sessionRef.current;
418
523
  if (!cfg?.load) {
524
+ setLoadedSessionId(activeSessionId);
419
525
  if (!isInitialized)
420
526
  setIsInitialized(true);
421
527
  return;
@@ -424,15 +530,15 @@ export function AiChatProvider({ transport, mentions, toolResults: userToolResul
424
530
  // active — `'default'` is unlikely to be a valid session id in the
425
531
  // consumer's backend, and the auto-select effect (below) will switch
426
532
  // us to the first real session as soon as `list()` resolves.
427
- const isBootstrapSentinel = activeSessionId === 'default' &&
428
- cfg.list !== undefined &&
429
- cfg.activeId === undefined;
430
533
  if (isBootstrapSentinel) {
431
534
  if (!isInitialized)
432
535
  setIsInitialized(true);
433
536
  return;
434
537
  }
435
538
  let cancelled = false;
539
+ setLoadedSessionId(null);
540
+ setSessionLoadFailure(null);
541
+ setMessages([]);
436
542
  (async () => {
437
543
  try {
438
544
  const loaded = await Promise.resolve(cfg.load(activeSessionId));
@@ -440,6 +546,9 @@ export function AiChatProvider({ transport, mentions, toolResults: userToolResul
440
546
  return;
441
547
  processedToolCallsRef.current.clear();
442
548
  handledApprovalIdsRef.current.clear();
549
+ // The transport may still have held the previous chat's messages
550
+ // until now; an approval read from them is not this chat's.
551
+ setPendingApprovalsMap(new Map());
443
552
  // Coerce wire-shape rows (with `content: string`) into SDK
444
553
  // messages (with `parts: [...]`) so bridges don't have to.
445
554
  const coerced = loaded ? coerceLoadedMessages(loaded) : [];
@@ -451,11 +560,13 @@ export function AiChatProvider({ transport, mentions, toolResults: userToolResul
451
560
  else {
452
561
  setMessages([]);
453
562
  }
563
+ setLoadedSessionId(activeSessionId);
454
564
  }
455
- catch (err) {
565
+ catch {
456
566
  if (cancelled)
457
567
  return;
458
- console.warn(`[AiChatProvider] session.load("${activeSessionId}") failed:`, err);
568
+ console.warn('[AiChatProvider] session.load failed');
569
+ setSessionLoadFailure({ id: activeSessionId, error: new Error('Chat history could not be loaded. Reopen this chat to retry.') });
459
570
  setMessages([]);
460
571
  }
461
572
  finally {
@@ -468,18 +579,20 @@ export function AiChatProvider({ transport, mentions, toolResults: userToolResul
468
579
  };
469
580
  // rawMessages intentionally excluded — we only re-load on session switch.
470
581
  // eslint-disable-next-line react-hooks/exhaustive-deps
471
- }, [activeSessionId, setMessages, markStoredMessagesAsProcessed]);
582
+ }, [activeSessionId, setMessages, markStoredMessagesAsProcessed, sessionRestoreAttempt, isBootstrapSentinel]);
472
583
  // Save messages to session on change (scoped to the active session).
473
584
  useEffect(() => {
474
585
  if (!isInitialized)
475
586
  return;
587
+ if (loadedSessionId !== activeSessionId)
588
+ return;
476
589
  if (rawMessages.length === 0)
477
590
  return;
478
591
  const cfg = sessionRef.current;
479
592
  if (!cfg?.save)
480
593
  return;
481
594
  void Promise.resolve(cfg.save(activeSessionId, rawMessages));
482
- }, [rawMessages, isInitialized, activeSessionId]);
595
+ }, [rawMessages, isInitialized, activeSessionId, loadedSessionId]);
483
596
  // Process tool results and approvals from streaming messages
484
597
  useEffect(() => {
485
598
  if (rawMessages.length === 0)
@@ -499,7 +612,7 @@ export function AiChatProvider({ transport, mentions, toolResults: userToolResul
499
612
  toolPart.approval?.id &&
500
613
  !handledApprovalIdsRef.current.has(toolPart.approval.id)) {
501
614
  handledApprovalIdsRef.current.add(toolPart.approval.id);
502
- const pending = approvalDescriptionRef.current(toolName, toolPart.approval.id, toolPart.input);
615
+ const pending = approvalDescriptionRef.current(toolName, toolPart.approval.id, toolPart.input, { names: collectEntityNames(rawMessages) });
503
616
  setPendingApprovalsMap(prev => new Map(prev).set(toolPart.approval.id, pending));
504
617
  }
505
618
  // Tool result available — call onToolResult
@@ -508,12 +621,17 @@ export function AiChatProvider({ transport, mentions, toolResults: userToolResul
508
621
  if (!processedToolCallsRef.current.has(toolCallId)) {
509
622
  processedToolCallsRef.current.add(toolCallId);
510
623
  onToolResultRef.current?.(toolName, toolPart.output);
624
+ // Generated UI tools run in the browser through the app's bridge.
625
+ void dispatchToolResultUiActions(toolPart.output, uiActionBusRef.current ?? getDefaultUiActionBus()).catch(() => {
626
+ console.warn('[glirastes] A generated UI action failed');
627
+ });
511
628
  }
512
629
  }
513
630
  }
514
631
  }
515
632
  }, [rawMessages]);
516
- // Extract suggestions from suggest_followups tool
633
+ // Extract suggestions from suggest_followups tool, with a strict text
634
+ // fallback for models that append a trailing Markdown suggestion section.
517
635
  useEffect(() => {
518
636
  if (rawMessages.length === 0)
519
637
  return;
@@ -523,6 +641,7 @@ export function AiChatProvider({ transport, mentions, toolResults: userToolResul
523
641
  const message = rawMessages[messageIndex];
524
642
  if (message.role !== 'assistant')
525
643
  continue;
644
+ let structuredFollowups = null;
526
645
  for (const part of message.parts) {
527
646
  if (!('type' in part))
528
647
  continue;
@@ -538,7 +657,21 @@ export function AiChatProvider({ transport, mentions, toolResults: userToolResul
538
657
  continue;
539
658
  const followups = result.followups.filter((f) => typeof f === 'string' && f.trim().length > 0);
540
659
  if (followups.length > 0) {
541
- latestFollowups = followups.slice(0, count);
660
+ structuredFollowups = followups.slice(0, count);
661
+ }
662
+ }
663
+ if (structuredFollowups && structuredFollowups.length > 0) {
664
+ latestFollowups = structuredFollowups;
665
+ }
666
+ else {
667
+ for (const part of message.parts) {
668
+ if (!isRecord(part) || part.type !== 'text' || typeof part.text !== 'string') {
669
+ continue;
670
+ }
671
+ const extracted = extractTrailingFollowupSuggestions(part.text, count);
672
+ if (extracted.suggestions.length > 0) {
673
+ latestFollowups = extracted.suggestions;
674
+ }
542
675
  }
543
676
  }
544
677
  if (latestFollowups && latestFollowups.length > 0) {
@@ -601,21 +734,19 @@ export function AiChatProvider({ transport, mentions, toolResults: userToolResul
601
734
  };
602
735
  }, [mentionQuery, mentionTrigger, mentions]);
603
736
  // Actions
604
- const send = useCallback(async (message) => {
737
+ // The shared tail of every send: transport hygiene, then the transport.
738
+ const deliver = useCallback(async (processedMessage) => {
739
+ // An open approval is decided on its card. A typed "yes" must not count as
740
+ // approval, and rejecting it on send dropped requests the user wanted.
741
+ if (pendingApprovalsMap.size > 0) {
742
+ setApprovalReminder(true);
743
+ return;
744
+ }
605
745
  // Clear truncation and suggestion chips on new message
606
746
  setTruncation(null);
607
747
  setSuggestionChips([]);
608
748
  setPipelineSteps([]);
609
749
  setPipelineState(null);
610
- // Preprocess message
611
- let processedMessage = message;
612
- const mentionSerializeConfig = mentions?.serialize;
613
- if (mentionSerializeConfig?.enabled !== false) {
614
- processedMessage = serializeMentionsForSend(processedMessage, activeMentions, mentionSerializeConfig);
615
- }
616
- if (onBeforeSend) {
617
- processedMessage = onBeforeSend(processedMessage, activeMentions);
618
- }
619
750
  // Sanitize messages before sending to prevent AI_MissingToolResultsError
620
751
  const currentMessages = rawMessages;
621
752
  const sanitized = sanitizeMessages(currentMessages);
@@ -623,18 +754,6 @@ export function AiChatProvider({ transport, mentions, toolResults: userToolResul
623
754
  setMessages(sanitized);
624
755
  setPendingApprovalsMap(new Map());
625
756
  }
626
- // Auto-reject pending approvals when user sends new message
627
- if (pendingApprovalsMap.size > 0) {
628
- const approvalIds = Array.from(pendingApprovalsMap.keys());
629
- setPendingApprovalsMap(new Map());
630
- for (const approvalId of approvalIds) {
631
- await addToolApprovalResponse({
632
- id: approvalId,
633
- approved: false,
634
- reason: 'Auto-rejected: user sent a new message.',
635
- });
636
- }
637
- }
638
757
  await sendMessage({ text: processedMessage });
639
758
  setActiveMentions([]);
640
759
  setMentionQuery('');
@@ -645,12 +764,114 @@ export function AiChatProvider({ transport, mentions, toolResults: userToolResul
645
764
  rawMessages,
646
765
  setMessages,
647
766
  sendMessage,
648
- addToolApprovalResponse,
649
767
  pendingApprovalsMap,
768
+ ]);
769
+ const dispatchSend = useCallback(async (message, sendOptions) => {
770
+ const mentionsForSend = sendOptions?.mentions ?? activeMentions;
771
+ // A `/` command alone runs without the model; missing arguments open its form.
772
+ const plan = interactionRegistry?.planMessage(message, mentionsForSend);
773
+ if (plan?.status === 'needs-args') {
774
+ setPendingCommand(plan.request);
775
+ return;
776
+ }
777
+ if (plan?.status === 'send') {
778
+ setPendingCommand(null);
779
+ await deliver(plan.text);
780
+ return;
781
+ }
782
+ // Preprocess message
783
+ let processedMessage = plan?.status === 'prompt' ? plan.text : message;
784
+ const mentionSerializeConfig = mentions?.serialize;
785
+ if (mentionSerializeConfig?.enabled !== false) {
786
+ processedMessage = serializeMentionsForSend(processedMessage, mentionsForSend, mentionSerializeConfig);
787
+ }
788
+ if (onBeforeSend) {
789
+ processedMessage = onBeforeSend(processedMessage, mentionsForSend);
790
+ }
791
+ // Typing into the composer while a clarification is open answers it, so
792
+ // the server resumes the original request instead of starting over.
793
+ const openClarification = findOpenClarification(rawMessages);
794
+ if (openClarification?.request.allowFreeText
795
+ && processedMessage.trim().length > 0
796
+ && processedMessage.length <= CLARIFICATION_MAX_ANSWER_LENGTH
797
+ && !parseClarificationAnswer(processedMessage)) {
798
+ processedMessage = clarificationAnswerMessage({
799
+ toolCallId: openClarification.toolCallId,
800
+ answer: processedMessage,
801
+ });
802
+ }
803
+ await deliver(processedMessage);
804
+ }, [
805
+ rawMessages,
806
+ deliver,
807
+ interactionRegistry,
650
808
  mentions,
651
809
  onBeforeSend,
652
810
  activeMentions,
653
811
  ]);
812
+ // Decides synchronously whether the message is taken, so any composer can
813
+ // keep the typed text when it is not.
814
+ const send = useCallback((message, sendOptions) => {
815
+ if (sessionNotReady || sessionMutationRef.current)
816
+ return false;
817
+ if (pendingApprovalsMap.size > 0) {
818
+ setApprovalReminder(true);
819
+ return false;
820
+ }
821
+ void dispatchSend(message, sendOptions);
822
+ return true;
823
+ }, [sessionNotReady, pendingApprovalsMap, dispatchSend]);
824
+ const submitPendingCommand = useCallback((values, valueLabels) => {
825
+ if (!pendingCommand || !interactionRegistry || sessionNotReady || sessionMutationRef.current)
826
+ return false;
827
+ const plan = interactionRegistry.completeCommand(pendingCommand, values, valueLabels);
828
+ if (plan.status !== 'send') {
829
+ setPendingCommand(plan.status === 'needs-args' ? plan.request : null);
830
+ return plan.status !== 'needs-args';
831
+ }
832
+ setPendingCommand(null);
833
+ void deliver(plan.text);
834
+ return true;
835
+ }, [pendingCommand, interactionRegistry, sessionNotReady, deliver]);
836
+ const cancelPendingCommand = useCallback(() => setPendingCommand(null), []);
837
+ const runEntityAction = useCallback((entity, actionId) => {
838
+ if (sessionNotReady || sessionMutationRef.current)
839
+ return;
840
+ const plan = interactionRegistry?.planAction(entity, actionId);
841
+ if (!plan)
842
+ return;
843
+ if (plan.status === 'needs-args') {
844
+ setPendingCommand(plan.request);
845
+ return;
846
+ }
847
+ setPendingCommand(null);
848
+ void deliver(plan.text);
849
+ }, [interactionRegistry, sessionNotReady, deliver]);
850
+ const mentionEntity = useCallback(async (type, id) => {
851
+ const entity = interactionRegistry?.entity(type);
852
+ if (!entity?.resolve)
853
+ return false;
854
+ let item;
855
+ try {
856
+ item = toChatEntityItem(await entity.resolve(id));
857
+ }
858
+ catch {
859
+ return false;
860
+ }
861
+ if (!item)
862
+ return false;
863
+ const resolved = item;
864
+ setComposerMentions((previous) => [...previous, {
865
+ id: resolved.id,
866
+ type,
867
+ label: resolved.label,
868
+ displayName: resolved.label,
869
+ prefix: '@',
870
+ slug: normalizeMentionSlug(resolved.label),
871
+ }]);
872
+ return true;
873
+ }, [interactionRegistry]);
874
+ const consumeComposerMentions = useCallback(() => setComposerMentions([]), []);
654
875
  const stop = useCallback(() => {
655
876
  setPipelineState((prev) => ({
656
877
  status: 'aborted',
@@ -678,6 +899,7 @@ export function AiChatProvider({ transport, mentions, toolResults: userToolResul
678
899
  setMentionResults([]);
679
900
  setActiveMentions([]);
680
901
  setIsMentionSearching(false);
902
+ setPendingCommand(null);
681
903
  setSuggestionChips(suggestionsConfig.staticChips ?? []);
682
904
  }, [setMessages, activeSessionId, suggestionsConfig.staticChips]);
683
905
  // ---------------------------------------------------------------------------
@@ -700,17 +922,17 @@ export function AiChatProvider({ transport, mentions, toolResults: userToolResul
700
922
  setSessions(list);
701
923
  // Auto-select the first session if we're still on the bootstrap
702
924
  // sentinel and the consumer doesn't control `activeId` externally.
703
- if (list.length > 0 &&
925
+ if (!streamActiveRef.current &&
926
+ list.length > 0 &&
704
927
  cfg.activeId === undefined &&
705
- (uncontrolledActiveIdRef.current === 'default' ||
706
- !list.some((s) => s.id === uncontrolledActiveIdRef.current))) {
928
+ !list.some((s) => s.id === uncontrolledActiveIdRef.current)) {
707
929
  const next = list[0].id;
708
930
  setUncontrolledActiveId(next);
709
931
  cfg.onActiveIdChange?.(next);
710
932
  }
711
933
  }
712
- catch (err) {
713
- console.warn('[AiChatProvider] session.list failed:', err);
934
+ catch {
935
+ console.warn('[AiChatProvider] session.list failed');
714
936
  }
715
937
  finally {
716
938
  setIsSessionsLoading(false);
@@ -739,8 +961,13 @@ export function AiChatProvider({ transport, mentions, toolResults: userToolResul
739
961
  wasLoadingRef.current = isLoading;
740
962
  }, [isLoading, sessionsSupported, refreshSessions]);
741
963
  const switchSession = useCallback(async (id) => {
742
- if (id === activeSessionId)
964
+ if (streamActiveRef.current)
965
+ return;
966
+ if (id === activeSessionId) {
967
+ if (sessionLoadFailure?.id === id)
968
+ setSessionRestoreAttempt((attempt) => attempt + 1);
743
969
  return;
970
+ }
744
971
  // Reset transient UI state before loading new session
745
972
  setPendingApprovalsMap(new Map());
746
973
  setTruncation(null);
@@ -749,38 +976,58 @@ export function AiChatProvider({ transport, mentions, toolResults: userToolResul
749
976
  setSuggestionChips(suggestionsConfig.staticChips ?? []);
750
977
  setVisibleMessageCount(30);
751
978
  applyActiveId(id);
752
- }, [activeSessionId, applyActiveId, suggestionsConfig.staticChips]);
979
+ }, [activeSessionId, applyActiveId, suggestionsConfig.staticChips, isLoading, sessionLoadFailure]);
753
980
  const createSession = useCallback(async (opts) => {
981
+ if (streamActiveRef.current || sessionMutationRef.current)
982
+ return null;
754
983
  const cfg = sessionRef.current;
755
984
  if (!cfg?.create)
756
985
  return null;
757
- const created = await cfg.create(opts);
758
- await refreshSessions();
759
- await switchSession(created.id);
760
- return created;
761
- }, [refreshSessions, switchSession]);
986
+ sessionMutationRef.current = true;
987
+ setIsSessionMutating(true);
988
+ try {
989
+ const created = await cfg.create(opts);
990
+ await refreshSessions();
991
+ await switchSession(created.id);
992
+ return created;
993
+ }
994
+ finally {
995
+ sessionMutationRef.current = false;
996
+ setIsSessionMutating(false);
997
+ }
998
+ }, [refreshSessions, switchSession, isLoading]);
762
999
  const removeSession = useCallback(async (id) => {
1000
+ if (streamActiveRef.current || sessionMutationRef.current)
1001
+ return;
763
1002
  const cfg = sessionRef.current;
764
1003
  if (!cfg?.remove)
765
1004
  return;
766
- await cfg.remove(id);
767
- // Re-fetch first so the fallback target reflects reality
768
- const cfgList = cfg.list ? await cfg.list() : [];
769
- setSessions(cfgList);
770
- if (id === activeSessionId) {
771
- const next = cfgList.find((s) => s.id !== id);
772
- if (next) {
773
- await switchSession(next.id);
774
- }
775
- else if (cfg.create) {
776
- // No sessions left — spin up a fresh one
777
- const created = await cfg.create();
778
- const refreshed = cfg.list ? await cfg.list() : [created];
779
- setSessions(refreshed);
780
- await switchSession(created.id);
1005
+ sessionMutationRef.current = true;
1006
+ setIsSessionMutating(true);
1007
+ try {
1008
+ await cfg.remove(id);
1009
+ // Re-fetch first so the fallback target reflects reality
1010
+ const cfgList = cfg.list ? await cfg.list() : [];
1011
+ setSessions(cfgList);
1012
+ if (id === activeSessionId) {
1013
+ const next = cfgList.find((s) => s.id !== id);
1014
+ if (next) {
1015
+ await switchSession(next.id);
1016
+ }
1017
+ else if (cfg.create) {
1018
+ // No sessions left — spin up a fresh one
1019
+ const created = await cfg.create();
1020
+ const refreshed = cfg.list ? await cfg.list() : [created];
1021
+ setSessions(refreshed);
1022
+ await switchSession(created.id);
1023
+ }
781
1024
  }
782
1025
  }
783
- }, [activeSessionId, switchSession]);
1026
+ finally {
1027
+ sessionMutationRef.current = false;
1028
+ setIsSessionMutating(false);
1029
+ }
1030
+ }, [activeSessionId, switchSession, isLoading]);
784
1031
  const renameSession = useCallback(async (id, title) => {
785
1032
  const cfg = sessionRef.current;
786
1033
  if (!cfg?.rename)
@@ -800,28 +1047,52 @@ export function AiChatProvider({ transport, mentions, toolResults: userToolResul
800
1047
  }, []);
801
1048
  // Approval handlers
802
1049
  const approve = useCallback(async (id) => {
803
- setProcessingApprovalId(id);
804
- setPendingApprovalsMap(prev => {
805
- const next = new Map(prev);
806
- next.delete(id);
807
- return next;
808
- });
809
- await addToolApprovalResponse({ id, approved: true });
810
- setProcessingApprovalId(null);
1050
+ setApprovalError(null);
1051
+ setProcessingApprovalIds((prev) => new Set(prev).add(id));
1052
+ try {
1053
+ await addToolApprovalResponse({ id, approved: true });
1054
+ setPendingApprovalsMap((prev) => {
1055
+ const next = new Map(prev);
1056
+ next.delete(id);
1057
+ return next;
1058
+ });
1059
+ }
1060
+ catch {
1061
+ setApprovalError(new Error('Tool approval response failed.'));
1062
+ }
1063
+ finally {
1064
+ setProcessingApprovalIds((prev) => {
1065
+ const next = new Set(prev);
1066
+ next.delete(id);
1067
+ return next;
1068
+ });
1069
+ }
811
1070
  }, [addToolApprovalResponse]);
812
1071
  const reject = useCallback(async (id) => {
813
- setProcessingApprovalId(id);
814
- setPendingApprovalsMap(prev => {
815
- const next = new Map(prev);
816
- next.delete(id);
817
- return next;
818
- });
819
- await addToolApprovalResponse({
820
- id,
821
- approved: false,
822
- reason: 'Rejected by user.',
823
- });
824
- setProcessingApprovalId(null);
1072
+ setApprovalError(null);
1073
+ setProcessingApprovalIds((prev) => new Set(prev).add(id));
1074
+ try {
1075
+ await addToolApprovalResponse({
1076
+ id,
1077
+ approved: false,
1078
+ reason: 'Rejected by user.',
1079
+ });
1080
+ setPendingApprovalsMap((prev) => {
1081
+ const next = new Map(prev);
1082
+ next.delete(id);
1083
+ return next;
1084
+ });
1085
+ }
1086
+ catch {
1087
+ setApprovalError(new Error('Tool approval response failed.'));
1088
+ }
1089
+ finally {
1090
+ setProcessingApprovalIds((prev) => {
1091
+ const next = new Set(prev);
1092
+ next.delete(id);
1093
+ return next;
1094
+ });
1095
+ }
825
1096
  }, [addToolApprovalResponse]);
826
1097
  // Truncation
827
1098
  const continueTruncation = useCallback(async () => {
@@ -911,16 +1182,19 @@ export function AiChatProvider({ transport, mentions, toolResults: userToolResul
911
1182
  locale,
912
1183
  themeVars,
913
1184
  themeEffect,
1185
+ unstyled,
914
1186
  suggestions: suggestionsConfig,
915
1187
  toolLabels,
916
1188
  toolResults: toolResultConfig,
1189
+ toolRendererRegistry,
917
1190
  voice: voiceConfig,
918
1191
  mentionConfig: mentions,
919
1192
  pipelineMessageTranslator,
920
1193
  stepSummaryFormatter,
921
1194
  messages: visibleMessages,
922
- isLoading,
923
- error: error ?? null,
1195
+ isLoading: isLoading || isSessionMutating || sessionNotReady,
1196
+ isSessionChangeBlocked: isLoading || isSessionMutating,
1197
+ error: error ?? approvalError,
924
1198
  send,
925
1199
  stop,
926
1200
  clear,
@@ -929,9 +1203,10 @@ export function AiChatProvider({ transport, mentions, toolResults: userToolResul
929
1203
  pipelineSteps,
930
1204
  pipelineState,
931
1205
  pendingApprovals,
1206
+ approvalReminder,
932
1207
  approve,
933
1208
  reject,
934
- isProcessingApproval: processingApprovalId !== null,
1209
+ isProcessingApproval: processingApprovalIds.size > 0,
935
1210
  approvalDescription: approvalDescriptionRef.current,
936
1211
  truncation,
937
1212
  continueTruncation,
@@ -948,6 +1223,16 @@ export function AiChatProvider({ transport, mentions, toolResults: userToolResul
948
1223
  clearActiveMentions,
949
1224
  isMentionSearching,
950
1225
  hasMentions: !!mentions,
1226
+ completionSearch,
1227
+ hasCompletions: completionSearch !== undefined,
1228
+ interactions: interactionRegistry,
1229
+ pendingCommand,
1230
+ submitPendingCommand,
1231
+ cancelPendingCommand,
1232
+ runEntityAction,
1233
+ mentionEntity,
1234
+ composerMentions,
1235
+ consumeComposerMentions,
951
1236
  suggestionChips,
952
1237
  selectSuggestion,
953
1238
  refreshSuggestions,
@@ -967,16 +1252,22 @@ export function AiChatProvider({ transport, mentions, toolResults: userToolResul
967
1252
  locale,
968
1253
  themeVars,
969
1254
  themeEffect,
1255
+ unstyled,
970
1256
  suggestionsConfig,
971
1257
  toolLabels,
972
1258
  toolResultConfig,
1259
+ toolRendererRegistry,
973
1260
  voiceConfig,
974
1261
  mentions,
975
1262
  pipelineMessageTranslator,
976
1263
  stepSummaryFormatter,
977
1264
  visibleMessages,
978
1265
  isLoading,
1266
+ sessionNotReady,
1267
+ isSessionMutating,
1268
+ isBootstrapSentinel,
979
1269
  error,
1270
+ approvalError,
980
1271
  send,
981
1272
  stop,
982
1273
  clear,
@@ -985,9 +1276,10 @@ export function AiChatProvider({ transport, mentions, toolResults: userToolResul
985
1276
  pipelineSteps,
986
1277
  pipelineState,
987
1278
  pendingApprovals,
1279
+ approvalReminder,
988
1280
  approve,
989
1281
  reject,
990
- processingApprovalId,
1282
+ processingApprovalIds,
991
1283
  truncation,
992
1284
  continueTruncation,
993
1285
  dismissTruncation,
@@ -1002,6 +1294,15 @@ export function AiChatProvider({ transport, mentions, toolResults: userToolResul
1002
1294
  removeActiveMention,
1003
1295
  clearActiveMentions,
1004
1296
  isMentionSearching,
1297
+ completionSearch,
1298
+ interactionRegistry,
1299
+ pendingCommand,
1300
+ submitPendingCommand,
1301
+ cancelPendingCommand,
1302
+ runEntityAction,
1303
+ mentionEntity,
1304
+ composerMentions,
1305
+ consumeComposerMentions,
1005
1306
  suggestionChips,
1006
1307
  selectSuggestion,
1007
1308
  refreshSuggestions,