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
@@ -8,8 +8,11 @@
8
8
  :where(
9
9
  [data-component="ai-chat-panel"],
10
10
  [data-component="chat-window"],
11
- [data-component="ai-trigger-button"]
12
- ) {
11
+ [data-component="ai-trigger-button"],
12
+ [data-component="assistant-shell"],
13
+ [data-component="assistant-bubble"],
14
+ [data-component="assistant-toggle"]
15
+ ):where(:not([data-unstyled], [data-unstyled] *)) {
13
16
  --cm-primary: #6366f1;
14
17
  --cm-primary-soft: #818cf8;
15
18
  --cm-primary-tint: rgba(99, 102, 241, 0.12);
@@ -27,7 +30,7 @@
27
30
  --cm-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
28
31
  }
29
32
 
30
- [data-component="ai-chat-panel"] {
33
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) {
31
34
  box-sizing: border-box;
32
35
  display: flex;
33
36
  flex-direction: column;
@@ -46,14 +49,14 @@
46
49
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04), 0 1px 2px rgba(0, 0, 0, 0.03);
47
50
  }
48
51
 
49
- [data-component="ai-chat-panel"] *,
50
- [data-component="ai-chat-panel"] *::before,
51
- [data-component="ai-chat-panel"] *::after {
52
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) *,
53
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) *::before,
54
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) *::after {
52
55
  box-sizing: border-box;
53
56
  }
54
57
 
55
58
  /* ---------- Error banner ---------- */
56
- [data-component="ai-chat-panel"] [data-component="error-banner"] {
59
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="error-banner"] {
57
60
  padding: 0.75rem 1rem;
58
61
  background: #fef2f2;
59
62
  color: #991b1b;
@@ -62,7 +65,7 @@
62
65
  }
63
66
 
64
67
  /* ---------- Empty state ---------- */
65
- [data-component="ai-chat-panel"] [data-component="empty-state"] {
68
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="empty-state"] {
66
69
  flex: 1;
67
70
  display: grid;
68
71
  place-items: center;
@@ -72,7 +75,7 @@
72
75
  }
73
76
 
74
77
  /* ---------- Message list ---------- */
75
- [data-component="ai-chat-panel"] [data-component="message-list"] {
78
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="message-list"] {
76
79
  flex: 1;
77
80
  min-height: 0;
78
81
  overflow-y: auto;
@@ -82,7 +85,7 @@
82
85
  gap: 0.75rem;
83
86
  scroll-behavior: smooth;
84
87
  }
85
- [data-component="ai-chat-panel"] [data-component="message-list"] > [data-action="load-more"] {
88
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="message-list"] > [data-action="load-more"] {
86
89
  align-self: center;
87
90
  padding: 0.375rem 0.75rem;
88
91
  font: inherit;
@@ -95,23 +98,23 @@
95
98
  }
96
99
 
97
100
  /* ---------- Message bubble ---------- */
98
- [data-component="ai-chat-panel"] [data-component="message-bubble"] {
101
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="message-bubble"] {
99
102
  max-width: 85%;
100
103
  padding: 0.625rem 0.875rem;
101
104
  border-radius: var(--cm-radius);
102
105
  word-wrap: break-word;
103
106
  overflow-wrap: anywhere;
104
107
  }
105
- [data-component="ai-chat-panel"] [data-component="message-bubble"][data-role="user"] {
108
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="message-bubble"][data-role="user"] {
106
109
  align-self: flex-end;
107
110
  background: var(--cm-bubble-user);
108
111
  color: var(--cm-text);
109
112
  }
110
- [data-component="ai-chat-panel"] [data-component="message-bubble"][data-role="assistant"] {
113
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="message-bubble"][data-role="assistant"] {
111
114
  align-self: flex-start;
112
115
  background: var(--cm-bubble-assistant);
113
116
  }
114
- [data-component="ai-chat-panel"] [data-component="message-bubble"][data-role="system"] {
117
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="message-bubble"][data-role="system"] {
115
118
  align-self: center;
116
119
  background: var(--cm-bg-muted);
117
120
  color: var(--cm-text-muted);
@@ -120,13 +123,13 @@
120
123
  }
121
124
 
122
125
  /* ---------- Markdown content ---------- */
123
- [data-component="ai-chat-panel"] [data-component="markdown"] p {
126
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="markdown"] p {
124
127
  margin: 0 0 0.5rem 0;
125
128
  }
126
- [data-component="ai-chat-panel"] [data-component="markdown"] p:last-child {
129
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="markdown"] p:last-child {
127
130
  margin: 0;
128
131
  }
129
- [data-component="ai-chat-panel"] [data-component="markdown"] pre {
132
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="markdown"] pre {
130
133
  background: rgba(0, 0, 0, 0.05);
131
134
  padding: 0.625rem 0.75rem;
132
135
  border-radius: var(--cm-radius-sm);
@@ -134,26 +137,26 @@
134
137
  font-size: 12px;
135
138
  margin: 0.5rem 0;
136
139
  }
137
- [data-component="ai-chat-panel"] [data-component="markdown"] code {
140
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="markdown"] code {
138
141
  background: rgba(0, 0, 0, 0.06);
139
142
  padding: 0.125rem 0.25rem;
140
143
  border-radius: 3px;
141
144
  font-size: 0.9em;
142
145
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
143
146
  }
144
- [data-component="ai-chat-panel"] [data-component="markdown"] pre code {
147
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="markdown"] pre code {
145
148
  background: transparent;
146
149
  padding: 0;
147
150
  }
148
- [data-component="ai-chat-panel"] [data-component="markdown"] ul,
149
- [data-component="ai-chat-panel"] [data-component="markdown"] ol {
151
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="markdown"] ul,
152
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="markdown"] ol {
150
153
  margin: 0.25rem 0 0.5rem 1.25rem;
151
154
  padding: 0;
152
155
  }
153
156
 
154
157
  /* ---------- Chat input / mention input ---------- */
155
- [data-component="ai-chat-panel"] [data-component="chat-input"],
156
- [data-component="ai-chat-panel"] [data-component="mention-input"] {
158
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="chat-input"],
159
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="mention-input"] {
157
160
  flex-shrink: 0;
158
161
  display: flex;
159
162
  gap: 0.5rem;
@@ -162,8 +165,8 @@
162
165
  border-top: 1px solid var(--cm-border);
163
166
  background: var(--cm-bg);
164
167
  }
165
- [data-component="ai-chat-panel"] [data-component="chat-input"] textarea,
166
- [data-component="ai-chat-panel"] [data-component="mention-input"] textarea {
168
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="chat-input"] textarea,
169
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="mention-input"] textarea {
167
170
  flex: 1;
168
171
  min-height: 40px;
169
172
  max-height: 160px;
@@ -177,18 +180,18 @@
177
180
  outline: none;
178
181
  transition: border-color 0.15s, box-shadow 0.15s;
179
182
  }
180
- [data-component="ai-chat-panel"] [data-component="chat-input"] textarea:focus,
181
- [data-component="ai-chat-panel"] [data-component="mention-input"] textarea:focus {
183
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="chat-input"] textarea:focus,
184
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="mention-input"] textarea:focus {
182
185
  border-color: var(--cm-primary);
183
186
  box-shadow: 0 0 0 3px var(--cm-primary-ring);
184
187
  }
185
- [data-component="ai-chat-panel"] [data-component="chat-input"] textarea::placeholder,
186
- [data-component="ai-chat-panel"] [data-component="mention-input"] textarea::placeholder {
188
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="chat-input"] textarea::placeholder,
189
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="mention-input"] textarea::placeholder {
187
190
  color: var(--cm-text-muted);
188
191
  }
189
192
 
190
193
  /* ---------- Send / stop buttons ---------- */
191
- [data-component="ai-chat-panel"] [data-action="send"] {
194
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-action="send"] {
192
195
  padding: 0.5rem 1rem;
193
196
  background: var(--cm-primary);
194
197
  color: #fff;
@@ -199,17 +202,17 @@
199
202
  cursor: pointer;
200
203
  transition: opacity 0.15s, transform 0.05s;
201
204
  }
202
- [data-component="ai-chat-panel"] [data-action="send"]:hover:not(:disabled) {
205
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-action="send"]:hover:not(:disabled) {
203
206
  opacity: 0.92;
204
207
  }
205
- [data-component="ai-chat-panel"] [data-action="send"]:active:not(:disabled) {
208
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-action="send"]:active:not(:disabled) {
206
209
  transform: translateY(1px);
207
210
  }
208
- [data-component="ai-chat-panel"] [data-action="send"]:disabled {
211
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-action="send"]:disabled {
209
212
  opacity: 0.5;
210
213
  cursor: not-allowed;
211
214
  }
212
- [data-component="ai-chat-panel"] [data-action="stop"] {
215
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-action="stop"] {
213
216
  padding: 0.5rem 0.875rem;
214
217
  background: transparent;
215
218
  color: var(--cm-text);
@@ -220,13 +223,13 @@
220
223
  }
221
224
 
222
225
  /* ---------- Suggestion bar ---------- */
223
- [data-component="ai-chat-panel"] [data-component="suggestion-bar"] {
226
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="suggestion-bar"] {
224
227
  display: flex;
225
228
  flex-wrap: wrap;
226
229
  gap: 0.5rem;
227
230
  padding: 0.5rem 1rem 0.25rem 1rem;
228
231
  }
229
- [data-component="ai-chat-panel"] [data-component="suggestion-chip"] {
232
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="suggestion-chip"] {
230
233
  padding: 0.375rem 0.75rem;
231
234
  background: var(--cm-bg-muted);
232
235
  border: 1px solid var(--cm-border);
@@ -237,29 +240,29 @@
237
240
  cursor: pointer;
238
241
  transition: background 0.15s, border-color 0.15s;
239
242
  }
240
- [data-component="ai-chat-panel"] [data-component="suggestion-chip"]:hover {
243
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="suggestion-chip"]:hover {
241
244
  background: var(--cm-bubble-user);
242
245
  border-color: var(--cm-primary);
243
246
  }
244
247
 
245
248
  /* ---------- Typing indicator ---------- */
246
- [data-component="ai-chat-panel"] [data-component="typing-indicator"] {
249
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="typing-indicator"] {
247
250
  display: flex;
248
251
  gap: 4px;
249
252
  padding: 0.5rem 1rem;
250
253
  align-items: center;
251
254
  }
252
- [data-component="ai-chat-panel"] [data-component="typing-indicator"] [data-element="dot"] {
255
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="typing-indicator"] [data-element="dot"] {
253
256
  width: 6px;
254
257
  height: 6px;
255
258
  background: var(--cm-text-muted);
256
259
  border-radius: 50%;
257
260
  animation: cm-chat-typing 1.4s infinite ease-in-out both;
258
261
  }
259
- [data-component="ai-chat-panel"] [data-component="typing-indicator"] [data-element="dot"]:nth-child(2) {
262
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="typing-indicator"] [data-element="dot"]:nth-child(2) {
260
263
  animation-delay: 0.16s;
261
264
  }
262
- [data-component="ai-chat-panel"] [data-component="typing-indicator"] [data-element="dot"]:nth-child(3) {
265
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="typing-indicator"] [data-element="dot"]:nth-child(3) {
263
266
  animation-delay: 0.32s;
264
267
  }
265
268
  @keyframes cm-chat-typing {
@@ -268,7 +271,7 @@
268
271
  }
269
272
 
270
273
  /* ---------- Truncation banner ---------- */
271
- [data-component="ai-chat-panel"] [data-component="truncation-banner"] {
274
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="truncation-banner"] {
272
275
  padding: 0.75rem 1rem;
273
276
  background: #fef9c3;
274
277
  color: #713f12;
@@ -279,11 +282,11 @@
279
282
  gap: 1rem;
280
283
  font-size: 13px;
281
284
  }
282
- [data-component="ai-chat-panel"] [data-component="truncation-banner"] [data-element="actions"] {
285
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="truncation-banner"] [data-element="actions"] {
283
286
  display: flex;
284
287
  gap: 0.5rem;
285
288
  }
286
- [data-component="ai-chat-panel"] [data-component="truncation-banner"] button {
289
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="truncation-banner"] button {
287
290
  padding: 0.3125rem 0.625rem;
288
291
  background: #fff;
289
292
  border: 1px solid #d4a574;
@@ -294,8 +297,8 @@
294
297
  }
295
298
 
296
299
  /* ---------- Approval cards ---------- */
297
- [data-component="ai-chat-panel"] [data-component="approval-card"],
298
- [data-component="ai-chat-panel"] [data-component="bulk-approval-card"] {
300
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="approval-card"],
301
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="bulk-approval-card"] {
299
302
  margin: 0 1rem 0.75rem 1rem;
300
303
  padding: 0.875rem 1rem;
301
304
  background: #fffbeb;
@@ -303,14 +306,14 @@
303
306
  border-radius: var(--cm-radius);
304
307
  font-size: 13px;
305
308
  }
306
- [data-component="ai-chat-panel"] [data-component="approval-card"] [data-element="header"],
307
- [data-component="ai-chat-panel"] [data-component="bulk-approval-card"] [data-element="header"] {
309
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="approval-card"] [data-element="header"],
310
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="bulk-approval-card"] [data-element="header"] {
308
311
  font-weight: 500;
309
312
  color: #713f12;
310
313
  margin-bottom: 0.5rem;
311
314
  }
312
- [data-component="ai-chat-panel"] [data-component="approval-card"] [data-element="details"],
313
- [data-component="ai-chat-panel"] [data-component="bulk-approval-card"] [data-element="details"] {
315
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="approval-card"] [data-element="details"],
316
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="bulk-approval-card"] [data-element="details"] {
314
317
  background: rgba(255, 255, 255, 0.6);
315
318
  border: 1px solid rgba(252, 211, 77, 0.6);
316
319
  border-radius: var(--cm-radius-sm);
@@ -319,12 +322,30 @@
319
322
  font-size: 12px;
320
323
  color: #78350f;
321
324
  }
322
- [data-component="ai-chat-panel"] [data-component="approval-card"] [data-element="actions"],
323
- [data-component="ai-chat-panel"] [data-component="bulk-approval-card"] [data-element="actions"] {
325
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="detail-line"] {
324
326
  display: flex;
325
327
  gap: 0.5rem;
328
+ line-height: 1.5;
329
+ }
330
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="detail-label"] {
331
+ flex: 0 0 auto;
332
+ min-width: 5.5rem;
333
+ opacity: 0.75;
334
+ }
335
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="detail-label"]::after {
336
+ content: ":";
326
337
  }
327
- [data-component="ai-chat-panel"] [data-action="approve"] {
338
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="detail-value"] {
339
+ min-width: 0;
340
+ font-weight: 500;
341
+ overflow-wrap: anywhere;
342
+ }
343
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="approval-card"] [data-element="actions"],
344
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="bulk-approval-card"] [data-element="actions"] {
345
+ display: flex;
346
+ gap: 0.5rem;
347
+ }
348
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-action="approve"] {
328
349
  padding: 0.375rem 0.875rem;
329
350
  background: #16a34a;
330
351
  color: #fff;
@@ -335,10 +356,10 @@
335
356
  font-weight: 500;
336
357
  cursor: pointer;
337
358
  }
338
- [data-component="ai-chat-panel"] [data-action="approve"]:hover:not(:disabled) {
359
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-action="approve"]:hover:not(:disabled) {
339
360
  background: #15803d;
340
361
  }
341
- [data-component="ai-chat-panel"] [data-action="reject"] {
362
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-action="reject"] {
342
363
  padding: 0.375rem 0.875rem;
343
364
  background: #fff;
344
365
  color: #dc2626;
@@ -350,7 +371,7 @@
350
371
  }
351
372
 
352
373
  /* ---------- Mention chip ---------- */
353
- [data-component="ai-chat-panel"] [data-component="mention-chip"] {
374
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="mention-chip"] {
354
375
  display: inline-flex;
355
376
  align-items: center;
356
377
  padding: 0.125rem 0.5rem;
@@ -362,7 +383,7 @@
362
383
  }
363
384
 
364
385
  /* ---------- Pipeline timeline ---------- */
365
- [data-component="ai-chat-panel"] [data-component="pipeline-timeline"] {
386
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="pipeline-timeline"] {
366
387
  padding: 0.5rem 1rem;
367
388
  border-bottom: 1px solid var(--cm-border);
368
389
  background: var(--cm-bg-muted);
@@ -370,8 +391,82 @@
370
391
  color: var(--cm-text-muted);
371
392
  }
372
393
 
394
+ /* ---------- Activity log and plan ---------- */
395
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="activity-log"],
396
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="plan-checklist"] {
397
+ margin: 0 0 0.375rem;
398
+ font-size: 12px;
399
+ color: var(--cm-text-muted);
400
+ }
401
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="activity-log"] [data-element="activity-summary"] {
402
+ display: inline-flex;
403
+ align-items: center;
404
+ gap: 0.375rem;
405
+ cursor: pointer;
406
+ list-style: none;
407
+ user-select: none;
408
+ }
409
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="activity-log"] [data-element="activity-summary"]::-webkit-details-marker {
410
+ display: none;
411
+ }
412
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="activity-log"][data-state="running"] [data-element="activity-summary"] {
413
+ color: var(--cm-text);
414
+ }
415
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="activity-log"] [data-element="activity-steps"],
416
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="plan-checklist"] [data-element="plan-items"] {
417
+ list-style: none;
418
+ margin: 0.25rem 0 0;
419
+ padding: 0 0 0 0.375rem;
420
+ display: flex;
421
+ flex-direction: column;
422
+ gap: 0.125rem;
423
+ }
424
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="activity-log"] [data-element="activity-steps"] {
425
+ border-left: 1px solid var(--cm-border);
426
+ margin-left: 0.375rem;
427
+ }
428
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="activity-log"] [data-element="activity-step"],
429
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="plan-checklist"] [data-element="plan-item"] {
430
+ display: flex;
431
+ align-items: baseline;
432
+ gap: 0.375rem;
433
+ }
434
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="activity-log"] [data-element="icon"],
435
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="plan-checklist"] [data-element="icon"] {
436
+ flex-shrink: 0;
437
+ align-self: center;
438
+ }
439
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="activity-log"] [data-element="activity-step"][data-status="done"] [data-element="icon"],
440
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="plan-checklist"] [data-element="plan-item"][data-status="completed"] [data-element="icon"] {
441
+ color: var(--cm-primary);
442
+ }
443
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="activity-log"] [data-element="activity-step"][data-status="error"] [data-element="icon"],
444
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="activity-log"][data-state="error"] [data-element="activity-summary"] [data-element="icon"] {
445
+ color: #dc2626;
446
+ }
447
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="activity-log"] [data-element="detail"] {
448
+ opacity: 0.8;
449
+ overflow-wrap: anywhere;
450
+ }
451
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="activity-log"] [data-element="detail"]::before {
452
+ content: "· ";
453
+ }
454
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="activity-log"] [data-element="activity-notice"] {
455
+ margin: 0.25rem 0 0;
456
+ }
457
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="plan-checklist"] [data-element="title"] {
458
+ font-weight: 600;
459
+ color: var(--cm-text);
460
+ }
461
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="plan-checklist"] [data-element="plan-item"][data-status="in_progress"] {
462
+ color: var(--cm-text);
463
+ }
464
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="plan-checklist"] [data-element="plan-item"][data-status="pending"] {
465
+ opacity: 0.55;
466
+ }
467
+
373
468
  /* ---------- Tool result ---------- */
374
- [data-component="ai-chat-panel"] [data-component="tool-result"] {
469
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="tool-result"] {
375
470
  margin: 0.375rem 0;
376
471
  padding: 0.5rem 0.75rem;
377
472
  background: rgba(0, 0, 0, 0.03);
@@ -381,13 +476,356 @@
381
476
  color: var(--cm-text-muted);
382
477
  }
383
478
 
479
+ /* ---------- Provider composer, '/' and '@' list ---------- */
480
+ /* The wrapper above is flex, but the editor, mic and Send sit inside a bare
481
+ <form> (classNames.input is empty by default). Without this rule the form
482
+ shrink-wraps its contents and the editor and its list collapse to ~111px. */
483
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="mention-input"][data-mode="providers"] > form {
484
+ display: flex;
485
+ flex: 1;
486
+ min-width: 0;
487
+ gap: 0.5rem;
488
+ align-items: flex-end;
489
+ flex-wrap: wrap;
490
+ }
491
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="rich-mention-input"] {
492
+ position: relative;
493
+ flex: 1;
494
+ min-width: 0;
495
+ }
496
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="rich-mention-input"] [data-element="editor"] {
497
+ box-sizing: border-box;
498
+ min-height: 40px;
499
+ max-height: 160px;
500
+ overflow-y: auto;
501
+ overflow-wrap: anywhere;
502
+ padding: 0.5rem 0.75rem;
503
+ background: var(--cm-bg-muted);
504
+ border: 1px solid var(--cm-border);
505
+ border-radius: var(--cm-radius-sm);
506
+ color: var(--cm-text);
507
+ outline: none;
508
+ }
509
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="rich-mention-input"] [data-element="editor"]:focus {
510
+ border-color: var(--cm-primary);
511
+ box-shadow: 0 0 0 3px var(--cm-primary-ring);
512
+ }
513
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="rich-mention-input"] [data-element="placeholder"] {
514
+ position: absolute;
515
+ top: 0.5rem;
516
+ left: 0.75rem;
517
+ color: var(--cm-text-muted);
518
+ pointer-events: none;
519
+ }
520
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="rich-mention-input"] [data-component="mention-dropdown"] {
521
+ position: absolute;
522
+ left: 0;
523
+ right: 0;
524
+ bottom: calc(100% + 0.25rem);
525
+ z-index: 20;
526
+ display: flex;
527
+ flex-direction: column;
528
+ max-height: min(40vh, 16rem);
529
+ overflow-y: auto;
530
+ background: var(--cm-bg);
531
+ border: 1px solid var(--cm-border);
532
+ border-radius: var(--cm-radius-sm);
533
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
534
+ }
535
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="mention-dropdown-item"] {
536
+ display: flex;
537
+ flex-direction: column;
538
+ align-items: flex-start;
539
+ gap: 0.125rem;
540
+ width: 100%;
541
+ padding: 0.5rem 0.75rem;
542
+ background: transparent;
543
+ border: none;
544
+ color: var(--cm-text);
545
+ font: inherit;
546
+ text-align: left;
547
+ cursor: pointer;
548
+ }
549
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="mention-dropdown-item"][data-selected="true"] {
550
+ background: var(--cm-primary-tint);
551
+ }
552
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="mention-dropdown-item"] [data-element="description"] {
553
+ font-size: 12px;
554
+ color: var(--cm-text-muted);
555
+ }
556
+
557
+ /* ---------- Chat interactions: entity actions and command arguments ---------- */
558
+ /* The item keeps `width: 100%` from its own rule, so it gets a small flex basis here: with the full
559
+ row as basis the shrink is shared by basis and squeezes the chips below their own width. The row
560
+ wraps instead, which keeps the chips on one line beside the result and drops them below it only
561
+ when the result cannot keep 8rem. */
562
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="mention-dropdown"] [data-element="result-row"] {
563
+ display: flex;
564
+ flex-wrap: wrap;
565
+ align-items: center;
566
+ gap: 0.25rem;
567
+ padding-right: 0.5rem;
568
+ }
569
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="result-row"] > [data-component="mention-dropdown-item"] {
570
+ flex: 1 1 8rem;
571
+ min-width: 0;
572
+ }
573
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="entity-actions"] {
574
+ display: flex;
575
+ flex: 0 0 auto;
576
+ flex-wrap: wrap;
577
+ justify-content: flex-end;
578
+ gap: 0.25rem;
579
+ }
580
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="mention-action"] {
581
+ padding: 0.125rem 0.5rem;
582
+ background: var(--cm-bg-muted);
583
+ border: 1px solid var(--cm-border);
584
+ border-radius: 999px;
585
+ color: var(--cm-text);
586
+ font: inherit;
587
+ font-size: 12px;
588
+ white-space: nowrap;
589
+ cursor: pointer;
590
+ }
591
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="mention-action"][data-selected="true"] {
592
+ background: var(--cm-primary-tint);
593
+ border-color: var(--cm-primary);
594
+ }
595
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="command-arguments"] {
596
+ box-sizing: border-box;
597
+ display: flex;
598
+ flex-wrap: wrap;
599
+ align-items: flex-end;
600
+ gap: 0.5rem;
601
+ max-width: 100%;
602
+ margin: 0 0 0.5rem;
603
+ padding: 0.75rem;
604
+ background: var(--cm-bg);
605
+ border: 1px solid var(--cm-border);
606
+ border-radius: var(--cm-radius-sm);
607
+ }
608
+ /* The composer wrapper is one flex row and its `> form` rule (flex: 1) outranks the rule above,
609
+ which would park the argument form beside the editor. The wrapper wraps and the form takes
610
+ the full first row; the wrapper's gap supplies the space below it. */
611
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="mention-input"][data-mode="providers"] {
612
+ flex-wrap: wrap;
613
+ }
614
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="mention-input"][data-mode="providers"] > form[data-component="command-arguments"] {
615
+ flex: 1 1 100%;
616
+ margin: 0;
617
+ }
618
+ [data-component="command-arguments"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="title"] {
619
+ flex: 1 1 100%;
620
+ margin: 0;
621
+ font-weight: 500;
622
+ overflow-wrap: anywhere;
623
+ }
624
+ [data-component="command-arguments"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="error"] {
625
+ flex: 1 1 100%;
626
+ margin: 0;
627
+ color: var(--cm-danger);
628
+ font-size: 12px;
629
+ }
630
+ [data-component="command-arguments"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="field"] {
631
+ position: relative;
632
+ display: flex;
633
+ flex: 1 1 10rem;
634
+ flex-direction: column;
635
+ gap: 0.25rem;
636
+ min-width: 0;
637
+ color: var(--cm-text-muted);
638
+ font-size: 12px;
639
+ }
640
+ [data-component="command-arguments"]:where(:not([data-unstyled], [data-unstyled] *)) input,
641
+ [data-component="command-arguments"]:where(:not([data-unstyled], [data-unstyled] *)) select {
642
+ box-sizing: border-box;
643
+ width: 100%;
644
+ padding: 0.375rem 0.5rem;
645
+ background: var(--cm-bg-muted);
646
+ border: 1px solid var(--cm-border);
647
+ border-radius: var(--cm-radius-sm);
648
+ color: var(--cm-text);
649
+ font: inherit;
650
+ font-size: 14px;
651
+ }
652
+ [data-component="command-arguments"]:where(:not([data-unstyled], [data-unstyled] *)) input:focus,
653
+ [data-component="command-arguments"]:where(:not([data-unstyled], [data-unstyled] *)) select:focus {
654
+ outline: none;
655
+ border-color: var(--cm-primary);
656
+ box-shadow: 0 0 0 3px var(--cm-primary-ring);
657
+ }
658
+ [data-component="command-arguments"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="options"] {
659
+ position: absolute;
660
+ left: 0;
661
+ right: 0;
662
+ bottom: calc(100% + 0.25rem);
663
+ z-index: 20;
664
+ max-height: 12rem;
665
+ margin: 0;
666
+ padding: 0;
667
+ overflow-y: auto;
668
+ list-style: none;
669
+ background: var(--cm-bg);
670
+ border: 1px solid var(--cm-border);
671
+ border-radius: var(--cm-radius-sm);
672
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
673
+ }
674
+ [data-component="command-arguments"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="options"] [role="option"] {
675
+ padding: 0.375rem 0.5rem;
676
+ color: var(--cm-text);
677
+ cursor: pointer;
678
+ }
679
+ [data-component="command-arguments"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="options"] [role="option"][data-selected="true"] {
680
+ background: var(--cm-primary-tint);
681
+ }
682
+ /* The dropdown rule for descriptions is scoped to the mention items; without this one the span runs
683
+ on after the label (`Alice Examplealice@example.com`). */
684
+ [data-component="command-arguments"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="options"] [data-element="description"] {
685
+ display: block;
686
+ font-size: 12px;
687
+ color: var(--cm-text-muted);
688
+ }
689
+ [data-component="command-arguments"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="actions"] {
690
+ display: flex;
691
+ gap: 0.375rem;
692
+ }
693
+ [data-component="command-arguments"]:where(:not([data-unstyled], [data-unstyled] *)) [data-action="run"],
694
+ [data-component="command-arguments"]:where(:not([data-unstyled], [data-unstyled] *)) [data-action="cancel"] {
695
+ padding: 0.375rem 0.75rem;
696
+ border-radius: var(--cm-radius-sm);
697
+ font: inherit;
698
+ font-size: 14px;
699
+ cursor: pointer;
700
+ }
701
+ [data-component="command-arguments"]:where(:not([data-unstyled], [data-unstyled] *)) [data-action="run"] {
702
+ background: var(--cm-primary);
703
+ border: 1px solid var(--cm-primary);
704
+ color: #ffffff;
705
+ }
706
+ [data-component="command-arguments"]:where(:not([data-unstyled], [data-unstyled] *)) [data-action="cancel"] {
707
+ background: transparent;
708
+ border: 1px solid var(--cm-border);
709
+ color: var(--cm-text);
710
+ }
711
+
712
+ /* ---------- Structured clarification ---------- */
713
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="clarification-card"] {
714
+ box-sizing: border-box;
715
+ display: flex;
716
+ flex-direction: column;
717
+ gap: 0.5rem;
718
+ max-width: 100%;
719
+ margin: 0.375rem 0;
720
+ padding: 0.75rem;
721
+ background: var(--cm-bg);
722
+ border: 1px solid var(--cm-border);
723
+ border-radius: var(--cm-radius-sm);
724
+ }
725
+ [data-component="clarification-card"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="question"] {
726
+ margin: 0;
727
+ font-weight: 500;
728
+ overflow-wrap: anywhere;
729
+ }
730
+ [data-component="clarification-card"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="options"] {
731
+ display: flex;
732
+ flex-wrap: wrap;
733
+ gap: 0.375rem;
734
+ }
735
+ [data-component="clarification-card"]:where(:not([data-unstyled], [data-unstyled] *)) [data-action="answer-option"] {
736
+ display: inline-flex;
737
+ flex-direction: column;
738
+ align-items: flex-start;
739
+ max-width: 100%;
740
+ padding: 0.375rem 0.75rem;
741
+ background: var(--cm-bg-muted);
742
+ border: 1px solid var(--cm-border);
743
+ border-radius: 9999px;
744
+ color: var(--cm-text);
745
+ font: inherit;
746
+ font-size: 13px;
747
+ text-align: left;
748
+ overflow-wrap: anywhere;
749
+ cursor: pointer;
750
+ }
751
+ [data-component="clarification-card"]:where(:not([data-unstyled], [data-unstyled] *)) [data-action="answer-option"]:disabled {
752
+ opacity: 0.6;
753
+ cursor: default;
754
+ }
755
+ [data-component="clarification-card"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="description"] {
756
+ font-size: 11px;
757
+ color: var(--cm-text-muted);
758
+ }
759
+ [data-component="clarification-card"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="free-text"] {
760
+ display: flex;
761
+ gap: 0.375rem;
762
+ }
763
+ [data-component="clarification-card"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="free-text"] input {
764
+ flex: 1;
765
+ min-width: 0;
766
+ padding: 0.375rem 0.625rem;
767
+ background: var(--cm-bg-muted);
768
+ border: 1px solid var(--cm-border);
769
+ border-radius: var(--cm-radius-sm);
770
+ color: var(--cm-text);
771
+ font: inherit;
772
+ }
773
+ [data-component="clarification-card"]:where(:not([data-unstyled], [data-unstyled] *)) [data-action="answer-free-text"] {
774
+ padding: 0.375rem 0.75rem;
775
+ background: var(--cm-primary);
776
+ border: none;
777
+ border-radius: var(--cm-radius-sm);
778
+ color: #fff;
779
+ font: inherit;
780
+ cursor: pointer;
781
+ }
782
+ [data-component="clarification-card"]:where(:not([data-unstyled], [data-unstyled] *)) [data-action="answer-free-text"]:disabled {
783
+ opacity: 0.5;
784
+ cursor: not-allowed;
785
+ }
786
+
787
+ /* ---------- Voice: mic, push-to-talk, retry, recording bar ---------- */
788
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="voice-input-addon"],
789
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-action="retry-recording"] {
790
+ flex-shrink: 0;
791
+ min-width: 40px;
792
+ min-height: 40px;
793
+ padding: 0 0.625rem;
794
+ background: var(--cm-bg-muted);
795
+ border: 1px solid var(--cm-border);
796
+ border-radius: var(--cm-radius-sm);
797
+ color: var(--cm-text);
798
+ font: inherit;
799
+ cursor: pointer;
800
+ touch-action: none;
801
+ user-select: none;
802
+ -webkit-user-select: none;
803
+ -webkit-touch-callout: none;
804
+ }
805
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="voice-input-addon"][data-state="recording"] {
806
+ border-color: var(--cm-danger);
807
+ color: var(--cm-danger);
808
+ }
809
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="recording-bar"] {
810
+ min-width: 0;
811
+ }
812
+ /* The inline bar is `width: 100%` (inline style). Next to the editor, mic and
813
+ Send it would get ~100px at 375px wide, too little for the live words. A
814
+ non-auto flex-basis beats that width, so the bar takes a row of its own
815
+ below them (form wraps; `order` moves it behind Send, which stays beside
816
+ the editor). The row exists only while the bar is mounted. */
817
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="mention-input"][data-mode="providers"] > form > [data-component="recording-bar"] {
818
+ flex: 1 1 100%;
819
+ order: 1;
820
+ }
821
+
384
822
  /* ===========================================================================
385
823
  Drop-in defaults for the floating trigger button and chat window.
386
824
  These exist so <LangGraphAiChat /> / <VercelAiChat /> "just work" with
387
825
  zero consumer styling. Override by passing className/buttonClassName.
388
826
  =========================================================================== */
389
827
 
390
- [data-component="ai-trigger-button"] [data-element="button-pill"] {
828
+ [data-component="ai-trigger-button"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="button-pill"] {
391
829
  background: linear-gradient(135deg, var(--cm-primary) 0%, var(--cm-primary-soft) 100%);
392
830
  color: #ffffff;
393
831
  box-shadow:
@@ -398,7 +836,7 @@
398
836
  font-family: var(--cm-font);
399
837
  }
400
838
 
401
- [data-component="ai-trigger-button"] [data-element="button-pill"]:hover {
839
+ [data-component="ai-trigger-button"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="button-pill"]:hover {
402
840
  transform: translateY(-1px);
403
841
  box-shadow:
404
842
  0 14px 30px -5px var(--cm-primary-tint),
@@ -406,22 +844,23 @@
406
844
  0 0 0 1px rgba(255, 255, 255, 0.16) inset;
407
845
  }
408
846
 
409
- [data-component="ai-trigger-button"][data-dragging="true"] [data-element="button-pill"] {
847
+ [data-component="ai-trigger-button"][data-dragging="true"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="button-pill"] {
410
848
  transform: scale(1.04);
411
849
  }
412
850
 
413
- [data-component="ai-trigger-button"] [data-element="mic-trigger"] {
851
+ [data-component="ai-trigger-button"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="mic-trigger"] {
414
852
  background: rgba(255, 255, 255, 0.22) !important;
415
853
  color: #ffffff;
416
854
  transition: background 150ms ease;
417
855
  }
418
856
 
419
- [data-component="ai-trigger-button"] [data-element="mic-trigger"]:hover {
857
+ [data-component="ai-trigger-button"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="mic-trigger"]:hover {
420
858
  background: rgba(255, 255, 255, 0.34) !important;
421
859
  }
422
860
 
423
861
  /* ---------- Chat window shell ---------- */
424
- [data-component="chat-window"] {
862
+ [data-component="chat-window"]:where(:not([data-unstyled], [data-unstyled] *)) {
863
+ box-sizing: border-box;
425
864
  background: var(--cm-bg);
426
865
  color: var(--cm-text);
427
866
  border: 1px solid var(--cm-border);
@@ -437,16 +876,67 @@
437
876
  font-size: 14px;
438
877
  }
439
878
 
879
+ [data-component="chat-window"][data-mode="sidebar"]:where(:not([data-unstyled], [data-unstyled] *)) {
880
+ border-radius: 0;
881
+ box-shadow: none;
882
+ }
883
+ [data-component="chat-window"][data-mode="sidebar"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="chat-window-header"] {
884
+ cursor: default;
885
+ }
886
+ [data-component="chat-window-sidebar-resize"]:where(:not([data-unstyled], [data-unstyled] *)) {
887
+ position: absolute;
888
+ inset: 0 auto 0 0;
889
+ width: 8px;
890
+ z-index: 11;
891
+ cursor: ew-resize;
892
+ touch-action: none;
893
+ }
894
+ [data-component="chat-window-sidebar-resize"]:hover:where(:not([data-unstyled], [data-unstyled] *)),
895
+ [data-component="chat-window-sidebar-resize"]:focus-visible:where(:not([data-unstyled], [data-unstyled] *)) {
896
+ background: var(--cm-primary-tint);
897
+ outline: 2px solid var(--cm-primary);
898
+ outline-offset: -2px;
899
+ }
900
+ [data-component="chat-window-rail"]:where(:not([data-unstyled], [data-unstyled] *)) {
901
+ display: flex;
902
+ flex-direction: column;
903
+ align-items: center;
904
+ gap: 12px;
905
+ padding: 8px 0;
906
+ height: 100%;
907
+ }
908
+ [data-component="chat-window-rail"]:where(:not([data-unstyled], [data-unstyled] *)) span {
909
+ writing-mode: vertical-rl;
910
+ flex: 1;
911
+ overflow: hidden;
912
+ text-overflow: ellipsis;
913
+ white-space: nowrap;
914
+ }
915
+ [data-component="chat-window-rail"]:where(:not([data-unstyled], [data-unstyled] *)) button {
916
+ appearance: none;
917
+ border: 0;
918
+ border-radius: var(--cm-radius-sm);
919
+ width: 32px;
920
+ min-height: 32px;
921
+ background: transparent;
922
+ color: inherit;
923
+ cursor: pointer;
924
+ font-size: 20px;
925
+ }
926
+ [data-component="chat-window-rail"]:where(:not([data-unstyled], [data-unstyled] *)) button:hover {
927
+ background: var(--cm-primary-tint);
928
+ }
929
+
440
930
  /* ---------- Glassmorphism theme effect ----------
441
931
  Applied when the resolved theme sets `effect: 'glass'` (e.g. the
442
932
  `liquid-glass` preset). Adds a real backdrop blur so translucent
443
933
  backgrounds read as frosted glass instead of a flat wash. */
444
- [data-component="chat-window"][data-theme-effect="glass"],
445
- [data-component="ai-chat-panel"][data-theme-effect="glass"] {
934
+ [data-component="chat-window"][data-theme-effect="glass"]:where(:not([data-unstyled], [data-unstyled] *)),
935
+ [data-component="ai-chat-panel"][data-theme-effect="glass"]:where(:not([data-unstyled], [data-unstyled] *)) {
446
936
  backdrop-filter: blur(24px) saturate(180%);
447
937
  -webkit-backdrop-filter: blur(24px) saturate(180%);
448
938
  }
449
- [data-component="ai-trigger-button"][data-theme-effect="glass"] [data-element="button-pill"] {
939
+ [data-component="ai-trigger-button"][data-theme-effect="glass"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="button-pill"] {
450
940
  backdrop-filter: blur(16px) saturate(180%);
451
941
  -webkit-backdrop-filter: blur(16px) saturate(180%);
452
942
  }
@@ -457,7 +947,7 @@
457
947
  edge-resize handles/drag headers don't map to touch gestures.
458
948
  Pin to the viewport, kill the radius, and disable edge handles. */
459
949
  @media (max-width: 640px) {
460
- [data-component="chat-window"] {
950
+ [data-component="chat-window"]:where(:not([data-unstyled], [data-unstyled] *)) {
461
951
  position: fixed !important;
462
952
  left: 0 !important;
463
953
  top: 0 !important;
@@ -472,32 +962,37 @@
472
962
  max-width: none !important;
473
963
  max-height: none !important;
474
964
  }
475
- [data-component="chat-window-resize-handle"] {
965
+ [data-component="chat-window"][data-collapsed="true"]:where(:not([data-unstyled], [data-unstyled] *)) {
966
+ left: auto !important;
967
+ width: 44px !important;
968
+ }
969
+ [data-component="chat-window-resize-handle"]:where(:not([data-unstyled], [data-unstyled] *)),
970
+ [data-component="chat-window-sidebar-resize"]:where(:not([data-unstyled], [data-unstyled] *)) {
476
971
  display: none !important;
477
972
  }
478
- [data-component="chat-window-header"] {
973
+ [data-component="chat-window-header"]:where(:not([data-unstyled], [data-unstyled] *)) {
479
974
  cursor: default !important;
480
975
  padding-top: max(0.75rem, env(safe-area-inset-top));
481
976
  padding-left: max(1rem, env(safe-area-inset-left));
482
977
  padding-right: max(1rem, env(safe-area-inset-right));
483
978
  }
484
- [data-component="chat-window-body"] {
979
+ [data-component="chat-window-body"]:where(:not([data-unstyled], [data-unstyled] *)) {
485
980
  padding-bottom: env(safe-area-inset-bottom);
486
981
  }
487
982
  /* Hide the pill while the chat is open — on mobile we own the
488
983
  whole viewport, so the pill would overlap the input bar. */
489
- [data-component="ai-trigger-button"] {
984
+ [data-component="ai-trigger-button"]:where(:not([data-unstyled], [data-unstyled] *)) {
490
985
  z-index: 9998;
491
986
  }
492
987
  }
493
988
 
494
- [data-component="chat-window"] *,
495
- [data-component="chat-window"] *::before,
496
- [data-component="chat-window"] *::after {
989
+ [data-component="chat-window"]:where(:not([data-unstyled], [data-unstyled] *)) *,
990
+ [data-component="chat-window"]:where(:not([data-unstyled], [data-unstyled] *)) *::before,
991
+ [data-component="chat-window"]:where(:not([data-unstyled], [data-unstyled] *)) *::after {
497
992
  box-sizing: border-box;
498
993
  }
499
994
 
500
- [data-component="chat-window-header"] {
995
+ [data-component="chat-window-header"]:where(:not([data-unstyled], [data-unstyled] *)) {
501
996
  display: flex;
502
997
  align-items: center;
503
998
  justify-content: space-between;
@@ -509,11 +1004,11 @@
509
1004
  flex-shrink: 0;
510
1005
  }
511
1006
 
512
- [data-component="chat-window-header"]:active {
1007
+ [data-component="chat-window-header"]:active:where(:not([data-unstyled], [data-unstyled] *)) {
513
1008
  cursor: grabbing;
514
1009
  }
515
1010
 
516
- [data-component="chat-window-header"] [data-element="title"] {
1011
+ [data-component="chat-window-header"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="title"] {
517
1012
  font-size: 14px;
518
1013
  font-weight: 600;
519
1014
  color: var(--cm-text);
@@ -522,14 +1017,14 @@
522
1017
  text-overflow: ellipsis;
523
1018
  }
524
1019
 
525
- [data-component="chat-window-header"] [data-element="title-wrap"] {
1020
+ [data-component="chat-window-header"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="title-wrap"] {
526
1021
  flex: 1 1 auto;
527
1022
  min-width: 0;
528
1023
  display: flex;
529
1024
  align-items: center;
530
1025
  }
531
1026
 
532
- [data-component="chat-window-header"] [data-element="actions"] {
1027
+ [data-component="chat-window-header"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="actions"] {
533
1028
  display: inline-flex;
534
1029
  align-items: center;
535
1030
  gap: 0.25rem;
@@ -537,8 +1032,9 @@
537
1032
  margin-left: 0.5rem;
538
1033
  }
539
1034
 
540
- [data-component="chat-window-header"] [data-action="close"],
541
- [data-component="chat-window-header"] [data-action="clear"] {
1035
+ [data-component="chat-window-header"]:where(:not([data-unstyled], [data-unstyled] *)) [data-action="close"],
1036
+ [data-component="chat-window-header"]:where(:not([data-unstyled], [data-unstyled] *)) [data-action="layout"],
1037
+ [data-component="chat-window-header"]:where(:not([data-unstyled], [data-unstyled] *)) [data-action="clear"] {
542
1038
  appearance: none;
543
1039
  border: none;
544
1040
  background: transparent;
@@ -554,20 +1050,21 @@
554
1050
  transition: background 120ms ease, color 120ms ease;
555
1051
  }
556
1052
 
557
- [data-component="chat-window-header"] [data-action="close"]:hover,
558
- [data-component="chat-window-header"] [data-action="clear"]:hover:not(:disabled) {
1053
+ [data-component="chat-window-header"]:where(:not([data-unstyled], [data-unstyled] *)) [data-action="close"]:hover,
1054
+ [data-component="chat-window-header"]:where(:not([data-unstyled], [data-unstyled] *)) [data-action="layout"]:hover,
1055
+ [data-component="chat-window-header"]:where(:not([data-unstyled], [data-unstyled] *)) [data-action="clear"]:hover:not(:disabled) {
559
1056
  background: var(--cm-primary-tint);
560
1057
  color: var(--cm-text);
561
1058
  }
562
1059
 
563
- [data-component="chat-window-header"] [data-action="clear"]:disabled {
1060
+ [data-component="chat-window-header"]:where(:not([data-unstyled], [data-unstyled] *)) [data-action="clear"]:disabled {
564
1061
  opacity: 0.35;
565
1062
  cursor: not-allowed;
566
1063
  }
567
1064
 
568
1065
  /* ---------- Session switcher ---------- */
569
1066
 
570
- [data-component="session-switcher"] {
1067
+ [data-component="session-switcher"]:where(:not([data-unstyled], [data-unstyled] *)) {
571
1068
  position: relative;
572
1069
  display: inline-flex;
573
1070
  flex: 0 0 auto;
@@ -576,12 +1073,12 @@
576
1073
  pointer-events: none;
577
1074
  }
578
1075
 
579
- [data-component="session-switcher"] [data-element="trigger"],
580
- [data-component="session-switcher"] [data-element="popover"] {
1076
+ [data-component="session-switcher"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="trigger"],
1077
+ [data-component="session-switcher"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="popover"] {
581
1078
  pointer-events: auto;
582
1079
  }
583
1080
 
584
- [data-component="session-switcher"] [data-element="trigger"] {
1081
+ [data-component="session-switcher"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="trigger"] {
585
1082
  appearance: none;
586
1083
  border: 1px solid transparent;
587
1084
  background: transparent;
@@ -598,23 +1095,23 @@
598
1095
  transition: background 120ms ease, border-color 120ms ease;
599
1096
  }
600
1097
 
601
- [data-component="session-switcher"] [data-element="trigger"]:hover {
1098
+ [data-component="session-switcher"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="trigger"]:hover {
602
1099
  background: var(--cm-primary-tint);
603
1100
  }
604
1101
 
605
- [data-component="session-switcher"][data-open] [data-element="trigger"] {
1102
+ [data-component="session-switcher"][data-open]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="trigger"] {
606
1103
  background: var(--cm-primary-tint);
607
1104
  border-color: var(--cm-primary);
608
1105
  }
609
1106
 
610
- [data-component="session-switcher"] [data-element="trigger-title"] {
1107
+ [data-component="session-switcher"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="trigger-title"] {
611
1108
  white-space: nowrap;
612
1109
  overflow: hidden;
613
1110
  text-overflow: ellipsis;
614
1111
  max-width: 14rem;
615
1112
  }
616
1113
 
617
- [data-component="session-switcher"] [data-element="popover"] {
1114
+ [data-component="session-switcher"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="popover"] {
618
1115
  position: absolute;
619
1116
  top: calc(100% + 0.375rem);
620
1117
  left: 0;
@@ -632,7 +1129,7 @@
632
1129
  font-weight: 400;
633
1130
  }
634
1131
 
635
- [data-component="session-switcher"] [data-element="new-session"] {
1132
+ [data-component="session-switcher"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="new-session"] {
636
1133
  appearance: none;
637
1134
  border: none;
638
1135
  background: transparent;
@@ -649,11 +1146,11 @@
649
1146
  border-bottom: 1px solid var(--cm-border);
650
1147
  }
651
1148
 
652
- [data-component="session-switcher"] [data-element="new-session"]:hover {
1149
+ [data-component="session-switcher"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="new-session"]:hover {
653
1150
  background: var(--cm-primary-tint);
654
1151
  }
655
1152
 
656
- [data-component="session-switcher"] [data-element="new-session"] [data-element="plus"] {
1153
+ [data-component="session-switcher"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="new-session"] [data-element="plus"] {
657
1154
  display: inline-flex;
658
1155
  width: 1.25rem;
659
1156
  height: 1.25rem;
@@ -666,20 +1163,20 @@
666
1163
  line-height: 1;
667
1164
  }
668
1165
 
669
- [data-component="session-switcher"] [data-element="session-list"] {
1166
+ [data-component="session-switcher"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="session-list"] {
670
1167
  flex: 1 1 auto;
671
1168
  overflow-y: auto;
672
1169
  padding: 0.25rem 0;
673
1170
  }
674
1171
 
675
- [data-component="session-switcher"] [data-element="empty"] {
1172
+ [data-component="session-switcher"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="empty"] {
676
1173
  padding: 1rem 0.875rem;
677
1174
  color: var(--cm-text-muted);
678
1175
  font-size: 13px;
679
1176
  text-align: center;
680
1177
  }
681
1178
 
682
- [data-component="session-switcher"] [data-element="session-row"] {
1179
+ [data-component="session-switcher"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="session-row"] {
683
1180
  display: flex;
684
1181
  align-items: center;
685
1182
  gap: 0.5rem;
@@ -688,20 +1185,20 @@
688
1185
  transition: background 120ms ease;
689
1186
  }
690
1187
 
691
- [data-component="session-switcher"] [data-element="session-row"]:hover {
1188
+ [data-component="session-switcher"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="session-row"]:hover {
692
1189
  background: var(--cm-primary-tint);
693
1190
  }
694
1191
 
695
- [data-component="session-switcher"] [data-element="session-row"][data-active] {
1192
+ [data-component="session-switcher"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="session-row"][data-active] {
696
1193
  background: var(--cm-primary-tint);
697
1194
  }
698
1195
 
699
- [data-component="session-switcher"] [data-element="row-main"] {
1196
+ [data-component="session-switcher"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="row-main"] {
700
1197
  flex: 1 1 auto;
701
1198
  min-width: 0;
702
1199
  }
703
1200
 
704
- [data-component="session-switcher"] [data-element="row-title"] {
1201
+ [data-component="session-switcher"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="row-title"] {
705
1202
  font-size: 13px;
706
1203
  font-weight: 600;
707
1204
  color: var(--cm-text);
@@ -710,14 +1207,14 @@
710
1207
  text-overflow: ellipsis;
711
1208
  }
712
1209
 
713
- [data-component="session-switcher"] [data-element="row-subtitle"] {
1210
+ [data-component="session-switcher"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="row-subtitle"] {
714
1211
  font-size: 11px;
715
1212
  color: var(--cm-text-muted);
716
1213
  margin-top: 0.125rem;
717
1214
  }
718
1215
 
719
- [data-component="session-switcher"] [data-element="row-delete"],
720
- [data-component="session-switcher"] [data-element="row-edit"] {
1216
+ [data-component="session-switcher"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="row-delete"],
1217
+ [data-component="session-switcher"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="row-edit"] {
721
1218
  appearance: none;
722
1219
  border: none;
723
1220
  background: transparent;
@@ -734,27 +1231,27 @@
734
1231
  flex-shrink: 0;
735
1232
  }
736
1233
 
737
- [data-component="session-switcher"] [data-element="session-row"]:hover [data-element="row-delete"],
738
- [data-component="session-switcher"] [data-element="session-row"]:hover [data-element="row-edit"] {
1234
+ [data-component="session-switcher"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="session-row"]:hover [data-element="row-delete"],
1235
+ [data-component="session-switcher"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="session-row"]:hover [data-element="row-edit"] {
739
1236
  opacity: 1;
740
1237
  }
741
1238
 
742
- [data-component="session-switcher"] [data-element="row-edit"]:hover {
1239
+ [data-component="session-switcher"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="row-edit"]:hover {
743
1240
  background: var(--cm-primary-tint);
744
1241
  color: var(--cm-text);
745
1242
  }
746
1243
 
747
- [data-component="session-switcher"] [data-element="row-delete"]:hover {
1244
+ [data-component="session-switcher"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="row-delete"]:hover {
748
1245
  background: rgba(220, 38, 38, 0.1);
749
1246
  color: var(--cm-danger);
750
1247
  }
751
1248
 
752
- [data-component="session-switcher"] [data-element="session-row"][data-editing] {
1249
+ [data-component="session-switcher"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="session-row"][data-editing] {
753
1250
  background: var(--cm-primary-tint);
754
1251
  cursor: text;
755
1252
  }
756
1253
 
757
- [data-component="session-switcher"] [data-element="row-title-input"] {
1254
+ [data-component="session-switcher"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="row-title-input"] {
758
1255
  width: 100%;
759
1256
  appearance: none;
760
1257
  background: transparent;
@@ -769,13 +1266,13 @@
769
1266
  caret-color: var(--cm-primary);
770
1267
  }
771
1268
 
772
- [data-component="session-switcher"] [data-element="row-title-input"]::placeholder {
1269
+ [data-component="session-switcher"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="row-title-input"]::placeholder {
773
1270
  color: var(--cm-text-muted);
774
1271
  }
775
1272
 
776
1273
  /* ---------- Confirm dialog ---------- */
777
1274
 
778
- [data-component="confirm-dialog-backdrop"] {
1275
+ [data-component="confirm-dialog-backdrop"]:where(:not([data-unstyled], [data-unstyled] *)) {
779
1276
  position: fixed;
780
1277
  inset: 0;
781
1278
  z-index: 10010;
@@ -790,7 +1287,7 @@
790
1287
  animation: cm-confirm-fade 140ms ease-out;
791
1288
  }
792
1289
 
793
- [data-component="confirm-dialog"] {
1290
+ [data-component="confirm-dialog"]:where(:not([data-unstyled], [data-unstyled] *)) {
794
1291
  background: var(--cm-bg);
795
1292
  color: var(--cm-text);
796
1293
  border: 1px solid var(--cm-border);
@@ -807,28 +1304,28 @@
807
1304
  animation: cm-confirm-pop 160ms cubic-bezier(0.2, 0.9, 0.3, 1.1);
808
1305
  }
809
1306
 
810
- [data-component="confirm-dialog"] [data-element="title"] {
1307
+ [data-component="confirm-dialog"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="title"] {
811
1308
  font-size: 15px;
812
1309
  font-weight: 600;
813
1310
  color: var(--cm-text);
814
1311
  line-height: 1.4;
815
1312
  }
816
1313
 
817
- [data-component="confirm-dialog"] [data-element="message"] {
1314
+ [data-component="confirm-dialog"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="message"] {
818
1315
  font-size: 13px;
819
1316
  color: var(--cm-text-muted);
820
1317
  line-height: 1.5;
821
1318
  margin-bottom: 0.25rem;
822
1319
  }
823
1320
 
824
- [data-component="confirm-dialog"] [data-element="actions"] {
1321
+ [data-component="confirm-dialog"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="actions"] {
825
1322
  display: flex;
826
1323
  justify-content: flex-end;
827
1324
  gap: 0.5rem;
828
1325
  margin-top: 0.75rem;
829
1326
  }
830
1327
 
831
- [data-component="confirm-dialog"] [data-element="actions"] button {
1328
+ [data-component="confirm-dialog"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="actions"] button {
832
1329
  appearance: none;
833
1330
  border: 1px solid var(--cm-border);
834
1331
  background: transparent;
@@ -842,28 +1339,28 @@
842
1339
  font-family: inherit;
843
1340
  }
844
1341
 
845
- [data-component="confirm-dialog"] [data-element="cancel"]:hover {
1342
+ [data-component="confirm-dialog"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="cancel"]:hover {
846
1343
  background: var(--cm-primary-tint);
847
1344
  border-color: var(--cm-primary);
848
1345
  }
849
1346
 
850
- [data-component="confirm-dialog"] [data-element="confirm"] {
1347
+ [data-component="confirm-dialog"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="confirm"] {
851
1348
  background: var(--cm-primary);
852
1349
  border-color: var(--cm-primary);
853
1350
  color: #ffffff;
854
1351
  }
855
1352
 
856
- [data-component="confirm-dialog"] [data-element="confirm"]:hover:not(:disabled) {
1353
+ [data-component="confirm-dialog"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="confirm"]:hover:not(:disabled) {
857
1354
  filter: brightness(1.1);
858
1355
  transform: translateY(-1px);
859
1356
  }
860
1357
 
861
- [data-component="confirm-dialog"] [data-element="confirm"][data-destructive] {
1358
+ [data-component="confirm-dialog"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="confirm"][data-destructive] {
862
1359
  background: var(--cm-danger);
863
1360
  border-color: var(--cm-danger);
864
1361
  }
865
1362
 
866
- [data-component="confirm-dialog"] [data-element="confirm"]:disabled {
1363
+ [data-component="confirm-dialog"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="confirm"]:disabled {
867
1364
  opacity: 0.5;
868
1365
  cursor: not-allowed;
869
1366
  }
@@ -878,7 +1375,7 @@
878
1375
  to { opacity: 1; transform: scale(1) translateY(0); }
879
1376
  }
880
1377
 
881
- [data-component="chat-window-body"] {
1378
+ [data-component="chat-window-body"]:where(:not([data-unstyled], [data-unstyled] *)) {
882
1379
  flex: 1 1 auto;
883
1380
  min-height: 0;
884
1381
  display: flex;
@@ -888,10 +1385,145 @@
888
1385
 
889
1386
  /* When ai-chat-panel is a direct child of chat-window-body, drop its own
890
1387
  border/radius/shadow so the window shell owns the framing. */
891
- [data-component="chat-window-body"] > [data-component="ai-chat-panel"] {
1388
+ [data-component="chat-window-body"]:where(:not([data-unstyled], [data-unstyled] *)) > [data-component="ai-chat-panel"] {
892
1389
  border: none;
893
1390
  border-radius: 0;
894
1391
  box-shadow: none;
895
1392
  min-height: 0;
896
1393
  height: 100%;
897
1394
  }
1395
+
1396
+ /* ---------- Approval reminder ---------- */
1397
+ [data-component="ai-chat-panel"]:where(:not([data-unstyled], [data-unstyled] *)) [data-component="approval-reminder"] {
1398
+ margin: 0 1rem 0.5rem;
1399
+ padding: 0.5rem 0.75rem;
1400
+ border-radius: var(--cm-radius-sm);
1401
+ background: var(--cm-primary-tint);
1402
+ color: var(--cm-text);
1403
+ font-size: 0.8125rem;
1404
+ }
1405
+
1406
+ /* ---------------------------------------------------------------------------
1407
+ AssistantShell — docked sidebar or detached window. The handle geometry
1408
+ is inline, so it also works unstyled; these rules are only the look.
1409
+ --------------------------------------------------------------------------- */
1410
+ [data-component="assistant-shell"][data-floating-gesture]:where(:not([data-unstyled], [data-unstyled] *)) { transition: none; will-change: transform, width, height; }
1411
+ @media (pointer: coarse) {
1412
+ [data-component="assistant-shell-window-handle"]:where(:not([data-unstyled], [data-unstyled] *)):is([data-resize-edge="n"], [data-resize-edge="s"]) { height: 16px !important; }
1413
+ [data-component="assistant-shell-window-handle"]:where(:not([data-unstyled], [data-unstyled] *)):is([data-resize-edge="e"], [data-resize-edge="w"]) { width: 16px !important; }
1414
+ [data-component="assistant-shell-window-handle"]:where(:not([data-unstyled], [data-unstyled] *)):is([data-resize-edge="ne"], [data-resize-edge="nw"], [data-resize-edge="se"], [data-resize-edge="sw"]) { width: 28px !important; height: 28px !important; }
1415
+ }
1416
+
1417
+ [data-component="assistant-shell"]:where(:not([data-unstyled], [data-unstyled] *)) {
1418
+ box-sizing: border-box;
1419
+ z-index: 60;
1420
+ background: var(--cm-bg);
1421
+ color: var(--cm-text);
1422
+ font-family: var(--cm-font);
1423
+ border-left: 1px solid var(--cm-border);
1424
+ }
1425
+ [data-component="assistant-shell"][data-mode="floating"]:where(:not([data-unstyled], [data-unstyled] *)) {
1426
+ border: 1px solid var(--cm-border);
1427
+ border-radius: var(--cm-radius);
1428
+ box-shadow: 0 12px 32px -12px rgba(17, 24, 39, 0.25);
1429
+ overflow: hidden;
1430
+ }
1431
+ [data-component="assistant-shell"][data-floating-gesture="move"]:where(:not([data-unstyled], [data-unstyled] *)) {
1432
+ box-shadow: 0 16px 40px -12px rgba(17, 24, 39, 0.35);
1433
+ }
1434
+ [data-component="assistant-shell"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="header"] {
1435
+ display: flex;
1436
+ align-items: center;
1437
+ gap: 0.5rem;
1438
+ height: 2.75rem;
1439
+ flex-shrink: 0;
1440
+ padding: 0 0.75rem;
1441
+ border-bottom: 1px solid var(--cm-border);
1442
+ }
1443
+ [data-component="assistant-shell"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="header"] > [data-element="icon"] {
1444
+ display: inline-flex;
1445
+ color: var(--cm-primary);
1446
+ }
1447
+ [data-component="assistant-shell"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="title"] {
1448
+ flex: 1 1 0%;
1449
+ min-width: 0;
1450
+ overflow: hidden;
1451
+ text-overflow: ellipsis;
1452
+ white-space: nowrap;
1453
+ font-size: 0.875rem;
1454
+ font-weight: 600;
1455
+ }
1456
+ [data-component="assistant-shell"]:where(:not([data-unstyled], [data-unstyled] *)) :is(header[data-element="header"], [data-element="rail"]) > [data-action] {
1457
+ display: inline-flex;
1458
+ align-items: center;
1459
+ justify-content: center;
1460
+ flex-shrink: 0;
1461
+ width: 1.75rem;
1462
+ height: 1.75rem;
1463
+ padding: 0;
1464
+ border: 0;
1465
+ border-radius: var(--cm-radius-sm);
1466
+ background: transparent;
1467
+ color: var(--cm-text-muted);
1468
+ cursor: pointer;
1469
+ }
1470
+ [data-component="assistant-shell"]:where(:not([data-unstyled], [data-unstyled] *)) :is(header[data-element="header"], [data-element="rail"]) > [data-action]:hover {
1471
+ background: var(--cm-primary-tint);
1472
+ color: var(--cm-text);
1473
+ }
1474
+ [data-component="assistant-shell"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="rail"] {
1475
+ display: flex;
1476
+ flex-direction: column;
1477
+ align-items: center;
1478
+ height: 100%;
1479
+ padding: 0.5rem 0;
1480
+ }
1481
+ [data-component="assistant-shell"]:where(:not([data-unstyled], [data-unstyled] *)) [data-element="rail"] > [data-action="expand"] {
1482
+ flex: 1 1 0%;
1483
+ width: 100%;
1484
+ height: auto;
1485
+ flex-direction: column;
1486
+ justify-content: flex-start;
1487
+ gap: 1rem;
1488
+ padding-top: 0.25rem;
1489
+ font-size: 0.75rem;
1490
+ font-weight: 500;
1491
+ }
1492
+ [data-component="assistant-shell-resize"]:where(:not([data-unstyled], [data-unstyled] *)):is(:hover, :focus-visible, [data-dragging]) {
1493
+ background: linear-gradient(to right, transparent 3px, var(--cm-primary) 3px, var(--cm-primary) 5px, transparent 5px);
1494
+ outline: none;
1495
+ }
1496
+ [data-component="assistant-bubble"]:where(:not([data-unstyled], [data-unstyled] *)) {
1497
+ position: fixed;
1498
+ right: 1rem;
1499
+ bottom: 1rem;
1500
+ z-index: 40;
1501
+ display: inline-flex;
1502
+ align-items: center;
1503
+ justify-content: center;
1504
+ width: 2.75rem;
1505
+ height: 2.75rem;
1506
+ border: 0;
1507
+ border-radius: 9999px;
1508
+ background: var(--cm-primary);
1509
+ color: #fff;
1510
+ box-shadow: 0 8px 20px -8px rgba(17, 24, 39, 0.4);
1511
+ cursor: pointer;
1512
+ }
1513
+ [data-component="assistant-toggle"]:where(:not([data-unstyled], [data-unstyled] *)) {
1514
+ display: inline-flex;
1515
+ align-items: center;
1516
+ gap: 0.5rem;
1517
+ height: 2.25rem;
1518
+ padding: 0 0.75rem;
1519
+ border: 0;
1520
+ border-radius: var(--cm-radius-sm);
1521
+ background: transparent;
1522
+ color: var(--cm-text);
1523
+ font: inherit;
1524
+ font-size: 0.875rem;
1525
+ cursor: pointer;
1526
+ }
1527
+ [data-component="assistant-toggle"]:where(:not([data-unstyled], [data-unstyled] *)):is(:hover, [aria-pressed="true"]) {
1528
+ background: var(--cm-primary-tint);
1529
+ }