glirastes 0.4.0 → 0.5.1

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 (1387) hide show
  1. package/CHANGELOG.md +377 -1
  2. package/README.md +283 -847
  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/approval-card.js +20 -1
  135. package/dist/cjs/react/components/chat-input.js +6 -4
  136. package/dist/cjs/react/components/chat-window-visibility.d.ts +3 -0
  137. package/dist/cjs/react/components/chat-window-visibility.js +7 -0
  138. package/dist/cjs/react/components/chat-window.d.ts +1 -1
  139. package/dist/cjs/react/components/chat-window.js +124 -57
  140. package/dist/cjs/react/components/clarification-card.d.ts +10 -0
  141. package/dist/cjs/react/components/clarification-card.js +35 -0
  142. package/dist/cjs/react/components/command-arguments-form.d.ts +10 -0
  143. package/dist/cjs/react/components/command-arguments-form.js +153 -0
  144. package/dist/cjs/react/components/confirm-dialog.js +1 -1
  145. package/dist/cjs/react/components/floating-chat-ui.d.ts +3 -3
  146. package/dist/cjs/react/components/floating-chat-ui.js +30 -4
  147. package/dist/cjs/react/components/mention-input.d.ts +5 -4
  148. package/dist/cjs/react/components/mention-input.js +64 -7
  149. package/dist/cjs/react/components/message-bubble.js +90 -14
  150. package/dist/cjs/react/components/plan-checklist.d.ts +14 -0
  151. package/dist/cjs/react/components/plan-checklist.js +20 -0
  152. package/dist/cjs/react/components/recording-bar.js +44 -58
  153. package/dist/cjs/react/components/rich-mention-input.js +197 -45
  154. package/dist/cjs/react/components/session-switcher.d.ts +3 -1
  155. package/dist/cjs/react/components/session-switcher.js +26 -11
  156. package/dist/cjs/react/components/status-icon.d.ts +8 -0
  157. package/dist/cjs/react/components/status-icon.js +11 -0
  158. package/dist/cjs/react/components/stream-waveform.d.ts +4 -0
  159. package/dist/cjs/react/components/stream-waveform.js +49 -0
  160. package/dist/cjs/react/components/voice-input-addon.d.ts +16 -1
  161. package/dist/cjs/react/components/voice-input-addon.js +255 -18
  162. package/dist/cjs/react/components/voice-input-button.js +1 -1
  163. package/dist/cjs/react/hooks/use-chat-shortcuts.d.ts +33 -0
  164. package/dist/cjs/react/hooks/use-chat-shortcuts.js +139 -0
  165. package/dist/cjs/react/hooks/use-deepgram-transcription.d.ts +4 -0
  166. package/dist/cjs/react/hooks/use-deepgram-transcription.js +31 -321
  167. package/dist/cjs/react/hooks/use-drag-resize-panel.d.ts +1 -0
  168. package/dist/cjs/react/hooks/use-drag-resize-panel.js +246 -121
  169. package/dist/cjs/react/hooks/use-floating-panel.d.ts +57 -0
  170. package/dist/cjs/react/hooks/use-floating-panel.js +217 -0
  171. package/dist/cjs/react/hooks/use-keyboard-shortcut.js +2 -1
  172. package/dist/cjs/react/hooks/use-push-to-talk-hotkey.d.ts +24 -0
  173. package/dist/cjs/react/hooks/use-push-to-talk-hotkey.js +116 -0
  174. package/dist/cjs/react/hooks/use-sidebar-resize.d.ts +19 -0
  175. package/dist/cjs/react/hooks/use-sidebar-resize.js +109 -0
  176. package/dist/cjs/react/index.d.ts +30 -1
  177. package/dist/cjs/react/index.js +91 -1
  178. package/dist/cjs/react/interactions/definitions.d.ts +67 -0
  179. package/dist/cjs/react/interactions/definitions.js +83 -0
  180. package/dist/cjs/react/interactions/registry.d.ts +74 -0
  181. package/dist/cjs/react/interactions/registry.js +250 -0
  182. package/dist/cjs/react/interactions/use-chat-interactions-data.d.ts +15 -0
  183. package/dist/cjs/react/interactions/use-chat-interactions-data.js +43 -0
  184. package/dist/cjs/react/locale-de.d.ts +3 -0
  185. package/dist/cjs/react/locale-de.js +69 -0
  186. package/dist/cjs/react/provider/ai-chat-provider.d.ts +1 -1
  187. package/dist/cjs/react/provider/ai-chat-provider.js +410 -106
  188. package/dist/cjs/react/provider/chat-context.d.ts +52 -1
  189. package/dist/cjs/react/stt/controller.d.ts +60 -0
  190. package/dist/cjs/react/stt/controller.js +268 -0
  191. package/dist/cjs/react/stt/deepgram.d.ts +30 -0
  192. package/dist/cjs/react/stt/deepgram.js +204 -0
  193. package/dist/cjs/react/stt/recorded.d.ts +29 -0
  194. package/dist/cjs/react/stt/recorded.js +115 -0
  195. package/dist/cjs/react/stt/segments.d.ts +18 -0
  196. package/dist/cjs/react/stt/segments.js +32 -0
  197. package/dist/cjs/react/stt/use-stt.d.ts +17 -0
  198. package/dist/cjs/react/stt/use-stt.js +41 -0
  199. package/dist/cjs/react/stt/waveform.d.ts +5 -0
  200. package/dist/cjs/react/stt/waveform.js +31 -0
  201. package/dist/cjs/react/styles.css +1555 -0
  202. package/dist/cjs/react/tool-renderers/registry.d.ts +31 -0
  203. package/dist/cjs/react/tool-renderers/registry.js +50 -0
  204. package/dist/cjs/react/tool-renderers/renderer-boundary.d.ts +18 -0
  205. package/dist/cjs/react/tool-renderers/renderer-boundary.js +15 -0
  206. package/dist/cjs/react/transports/vercel/vercel-ai-chat.d.ts +1 -1
  207. package/dist/cjs/react/transports/vercel/vercel-ai-chat.js +2 -2
  208. package/dist/cjs/react/transports/vercel.d.ts +6 -0
  209. package/dist/cjs/react/transports/vercel.js +12 -6
  210. package/dist/cjs/react/types.d.ts +269 -6
  211. package/dist/cjs/react/ui.d.ts +18 -17
  212. package/dist/cjs/react/ui.js +50 -45
  213. package/dist/cjs/react/unstyled.d.ts +7 -0
  214. package/dist/cjs/react/unstyled.js +10 -0
  215. package/dist/cjs/react/utils/activity.d.ts +16 -0
  216. package/dist/cjs/react/utils/activity.js +80 -0
  217. package/dist/cjs/react/utils/clarification.d.ts +31 -0
  218. package/dist/cjs/react/utils/clarification.js +104 -0
  219. package/dist/cjs/react/utils/create-approval-description.d.ts +6 -0
  220. package/dist/cjs/react/utils/create-approval-description.js +42 -7
  221. package/dist/cjs/react/utils/create-tool-result-handler.d.ts +1 -1
  222. package/dist/cjs/react/utils/create-tool-result-handler.js +1 -1
  223. package/dist/cjs/react/utils/entity-names.d.ts +6 -0
  224. package/dist/cjs/react/utils/entity-names.js +57 -0
  225. package/dist/cjs/react/utils/followup-suggestions.d.ts +11 -0
  226. package/dist/cjs/react/utils/followup-suggestions.js +39 -0
  227. package/dist/cjs/react/utils/local-session-store.d.ts +30 -0
  228. package/dist/cjs/react/utils/local-session-store.js +165 -0
  229. package/dist/cjs/react/utils/mention-markup.d.ts +44 -1
  230. package/dist/cjs/react/utils/mention-markup.js +144 -10
  231. package/dist/cjs/react/utils/tool-presentation.d.ts +23 -0
  232. package/dist/cjs/react/utils/tool-presentation.js +46 -0
  233. package/dist/cjs/react/utils/tool-result-config.d.ts +10 -0
  234. package/dist/cjs/react/utils/tool-result-config.js +14 -0
  235. package/dist/cjs/runtime/ai-sdk/engine.d.ts +66 -0
  236. package/dist/cjs/runtime/ai-sdk/engine.js +192 -0
  237. package/dist/cjs/runtime/ai-sdk/index.d.ts +1 -0
  238. package/dist/cjs/runtime/ai-sdk/index.js +5 -0
  239. package/dist/cjs/runtime/authorization.d.ts +16 -0
  240. package/dist/cjs/runtime/authorization.js +35 -0
  241. package/dist/cjs/runtime/budget.d.ts +39 -0
  242. package/dist/cjs/runtime/budget.js +100 -0
  243. package/dist/cjs/runtime/contract-bindings.d.ts +52 -0
  244. package/dist/cjs/runtime/contract-bindings.js +95 -0
  245. package/dist/cjs/runtime/engine.d.ts +52 -0
  246. package/dist/cjs/runtime/engine.js +2 -0
  247. package/dist/cjs/runtime/fingerprint.d.ts +6 -0
  248. package/dist/cjs/runtime/fingerprint.js +31 -0
  249. package/dist/cjs/runtime/glirastes.d.ts +113 -0
  250. package/dist/cjs/runtime/glirastes.js +289 -0
  251. package/dist/cjs/runtime/index.d.ts +24 -0
  252. package/dist/cjs/runtime/index.js +74 -0
  253. package/dist/cjs/runtime/json-schema.d.ts +13 -0
  254. package/dist/cjs/runtime/json-schema.js +46 -0
  255. package/dist/cjs/runtime/local-limits.d.ts +6 -0
  256. package/dist/cjs/runtime/local-limits.js +26 -0
  257. package/dist/cjs/runtime/local-runtime-source.d.ts +76 -0
  258. package/dist/cjs/runtime/local-runtime-source.js +0 -0
  259. package/dist/cjs/runtime/local-signer.d.ts +17 -0
  260. package/dist/cjs/runtime/local-signer.js +34 -0
  261. package/dist/cjs/runtime/local-tool-bindings.d.ts +57 -0
  262. package/dist/cjs/runtime/local-tool-bindings.js +197 -0
  263. package/dist/cjs/runtime/managed-turn.d.ts +29 -0
  264. package/dist/cjs/runtime/managed-turn.js +99 -0
  265. package/dist/cjs/runtime/metrics/cost.d.ts +64 -0
  266. package/dist/cjs/runtime/metrics/cost.js +98 -0
  267. package/dist/cjs/runtime/metrics/sink.d.ts +56 -0
  268. package/dist/cjs/runtime/metrics/sink.js +217 -0
  269. package/dist/cjs/runtime/metrics/turn-recorder.d.ts +62 -0
  270. package/dist/cjs/runtime/metrics/turn-recorder.js +172 -0
  271. package/dist/cjs/runtime/offline-execution-lease.d.ts +27 -0
  272. package/dist/cjs/runtime/offline-execution-lease.js +49 -0
  273. package/dist/cjs/runtime/policy-overlay.d.ts +86 -0
  274. package/dist/cjs/runtime/policy-overlay.js +122 -0
  275. package/dist/cjs/runtime/postgres-store.d.ts +111 -0
  276. package/dist/cjs/runtime/postgres-store.js +368 -0
  277. package/dist/cjs/runtime/prompt-bundle-store.d.ts +58 -0
  278. package/dist/cjs/runtime/prompt-bundle-store.js +123 -0
  279. package/dist/cjs/runtime/runtime-mode.d.ts +23 -0
  280. package/dist/cjs/runtime/runtime-mode.js +46 -0
  281. package/dist/cjs/runtime/sdk-version.d.ts +2 -0
  282. package/dist/cjs/runtime/sdk-version.js +5 -0
  283. package/dist/cjs/runtime/tool-discovery.d.ts +51 -0
  284. package/dist/cjs/runtime/tool-discovery.js +141 -0
  285. package/dist/cjs/runtime/tool-search.d.ts +31 -0
  286. package/dist/cjs/runtime/tool-search.js +149 -0
  287. package/dist/cjs/runtime/turn-snapshot.d.ts +44 -0
  288. package/dist/cjs/runtime/turn-snapshot.js +112 -0
  289. package/dist/cjs/server/adapters/nextjs/approval-binding.d.ts +334 -0
  290. package/dist/cjs/server/adapters/nextjs/approval-binding.js +724 -0
  291. package/dist/cjs/server/adapters/nextjs/chat-interactions-handler.d.ts +26 -0
  292. package/dist/cjs/server/adapters/nextjs/chat-interactions-handler.js +67 -0
  293. package/dist/cjs/server/adapters/nextjs/clarification-resume.d.ts +21 -0
  294. package/dist/cjs/server/adapters/nextjs/clarification-resume.js +112 -0
  295. package/dist/cjs/server/adapters/nextjs/context-helpers.d.ts +49 -8
  296. package/dist/cjs/server/adapters/nextjs/context-helpers.js +76 -21
  297. package/dist/cjs/server/adapters/nextjs/create-ai-chat-handler.d.ts +59 -1
  298. package/dist/cjs/server/adapters/nextjs/create-ai-chat-handler.js +648 -94
  299. package/dist/cjs/server/adapters/nextjs/direct-command.d.ts +75 -0
  300. package/dist/cjs/server/adapters/nextjs/direct-command.js +322 -0
  301. package/dist/cjs/server/adapters/nextjs/index.d.ts +10 -2
  302. package/dist/cjs/server/adapters/nextjs/index.js +24 -1
  303. package/dist/cjs/server/adapters/nextjs/prepare-model-messages.d.ts +2 -1
  304. package/dist/cjs/server/adapters/nextjs/prepare-model-messages.js +6 -14
  305. package/dist/cjs/server/adapters/nextjs/recording-transcription-handler.d.ts +31 -0
  306. package/dist/cjs/server/adapters/nextjs/recording-transcription-handler.js +58 -0
  307. package/dist/cjs/server/adapters/nextjs/request-guards.d.ts +41 -0
  308. package/dist/cjs/server/adapters/nextjs/request-guards.js +112 -0
  309. package/dist/cjs/server/adapters/nextjs/sanitize-model-messages.js +12 -6
  310. package/dist/cjs/server/adapters/nextjs/scope-pipeline-tools.d.ts +17 -0
  311. package/dist/cjs/server/adapters/nextjs/scope-pipeline-tools.js +28 -0
  312. package/dist/cjs/server/adapters/nextjs/tool-discovery.d.ts +39 -0
  313. package/dist/cjs/server/adapters/nextjs/tool-discovery.js +50 -0
  314. package/dist/cjs/server/adapters/nextjs/tool-presentation.d.ts +26 -0
  315. package/dist/cjs/server/adapters/nextjs/tool-presentation.js +21 -0
  316. package/dist/cjs/server/adapters/nextjs/types.d.ts +229 -13
  317. package/dist/cjs/server/adapters/nextjs/with-ai-tool.d.ts +2 -2
  318. package/dist/cjs/server/core/adaptive-fast-path.d.ts +3 -0
  319. package/dist/cjs/server/core/adaptive-fast-path.js +188 -0
  320. package/dist/cjs/server/core/clarification-tool.d.ts +29 -0
  321. package/dist/cjs/server/core/clarification-tool.js +64 -0
  322. package/dist/cjs/server/core/generated-ui-tool.d.ts +31 -0
  323. package/dist/cjs/server/core/generated-ui-tool.js +89 -0
  324. package/dist/cjs/server/core/index.d.ts +49 -8
  325. package/dist/cjs/server/core/index.js +208 -17
  326. package/dist/cjs/server/core/local-guardrails.d.ts +6 -0
  327. package/dist/cjs/server/core/local-guardrails.js +70 -0
  328. package/dist/cjs/server/core/module-router.d.ts +3 -1
  329. package/dist/cjs/server/core/module-router.js +22 -2
  330. package/dist/cjs/server/core/plan-tool.d.ts +23 -0
  331. package/dist/cjs/server/core/plan-tool.js +35 -0
  332. package/dist/cjs/server/core/zod-compact.d.ts +2 -2
  333. package/dist/cjs/server/core/zod-compact.js +56 -7
  334. package/dist/cjs/server/index.d.ts +2 -4
  335. package/dist/cjs/server/index.js +4 -5
  336. package/dist/cjs/server/lancer/client.js +2 -1
  337. package/dist/cjs/server/local-pipeline.d.ts +14 -0
  338. package/dist/cjs/server/local-pipeline.js +154 -0
  339. package/dist/cjs/server/pii-shield/index.d.ts +1 -0
  340. package/dist/cjs/server/pii-shield/index.js +3 -1
  341. package/dist/cjs/server/pii-shield/regex-detector.d.ts +13 -0
  342. package/dist/cjs/server/pii-shield/regex-detector.js +111 -0
  343. package/dist/cjs/server/testing/guardrails.js +2 -66
  344. package/dist/cjs/server/testing/helpers.js +1 -62
  345. package/dist/cjs/server/testing/index.d.ts +1 -0
  346. package/dist/cjs/server/testing/index.js +3 -1
  347. package/dist/cjs/server/testing/registry-parity.d.ts +18 -0
  348. package/dist/cjs/server/testing/registry-parity.js +40 -0
  349. package/dist/cjs/server/testing/smoke.d.ts +2 -1
  350. package/dist/cjs/server/testing/smoke.js +7 -3
  351. package/dist/cjs/server/testing/types.d.ts +1 -1
  352. package/dist/cjs/server/testing/zod-introspect.d.ts +1 -1
  353. package/dist/cjs/server/testing/zod-introspect.js +178 -5
  354. package/dist/cjs/stt/index.d.ts +5 -0
  355. package/dist/cjs/stt/index.js +16 -0
  356. package/dist/cjs/sync/app-setup-client.d.ts +46 -0
  357. package/dist/cjs/sync/app-setup-client.js +140 -0
  358. package/dist/cjs/sync/capability-report.d.ts +41 -0
  359. package/dist/cjs/sync/capability-report.js +52 -0
  360. package/dist/cjs/sync/connection-lookup.d.ts +19 -0
  361. package/dist/cjs/sync/connection-lookup.js +58 -0
  362. package/dist/cjs/sync/control-plane-client.d.ts +69 -0
  363. package/dist/cjs/sync/control-plane-client.js +186 -0
  364. package/dist/cjs/sync/deployment-selector.d.ts +9 -0
  365. package/dist/cjs/sync/deployment-selector.js +29 -0
  366. package/dist/cjs/sync/fetch-sse-push.d.ts +6 -0
  367. package/dist/cjs/sync/fetch-sse-push.js +45 -0
  368. package/dist/cjs/sync/index.d.ts +26 -0
  369. package/dist/cjs/sync/index.js +43 -0
  370. package/dist/cjs/sync/jwks-provider.d.ts +14 -0
  371. package/dist/cjs/sync/jwks-provider.js +56 -0
  372. package/dist/cjs/sync/local-deployment-validator.d.ts +30 -0
  373. package/dist/cjs/sync/local-deployment-validator.js +62 -0
  374. package/dist/cjs/sync/managed-sync.d.ts +40 -0
  375. package/dist/cjs/sync/managed-sync.js +96 -0
  376. package/dist/cjs/sync/materialize-deployment.d.ts +7 -0
  377. package/dist/cjs/sync/materialize-deployment.js +65 -0
  378. package/dist/cjs/sync/runtime-connect-client.d.ts +23 -0
  379. package/dist/cjs/sync/runtime-connect-client.js +185 -0
  380. package/dist/cjs/sync/runtime-setup-client.d.ts +62 -0
  381. package/dist/cjs/sync/runtime-setup-client.js +157 -0
  382. package/dist/cjs/sync/signature-verifier.d.ts +39 -0
  383. package/dist/cjs/sync/signature-verifier.js +102 -0
  384. package/dist/cjs/sync/state-store.d.ts +24 -0
  385. package/dist/cjs/sync/state-store.js +51 -0
  386. package/dist/cjs/sync/sync-manager.d.ts +27 -0
  387. package/dist/cjs/sync/sync-manager.js +173 -0
  388. package/dist/cjs/types.d.ts +68 -16
  389. package/dist/cjs/types.js +30 -2
  390. package/dist/cli/bin.js +34 -23
  391. package/dist/cli/bin.js.map +1 -1
  392. package/dist/cli/commands/agent-setup.d.ts +27 -0
  393. package/dist/cli/commands/agent-setup.js +149 -0
  394. package/dist/cli/commands/agent-setup.js.map +1 -0
  395. package/dist/cli/commands/apply-setup-plan.d.ts +21 -0
  396. package/dist/cli/commands/apply-setup-plan.js +100 -0
  397. package/dist/cli/commands/apply-setup-plan.js.map +1 -0
  398. package/dist/cli/commands/atomic-artifact-write.d.ts +19 -0
  399. package/dist/cli/commands/atomic-artifact-write.js +106 -0
  400. package/dist/cli/commands/atomic-artifact-write.js.map +1 -0
  401. package/dist/cli/commands/ci-workflow.d.ts +48 -0
  402. package/dist/cli/commands/ci-workflow.js +209 -0
  403. package/dist/cli/commands/ci-workflow.js.map +1 -0
  404. package/dist/cli/commands/connect.d.ts +47 -0
  405. package/dist/cli/commands/connect.js +216 -0
  406. package/dist/cli/commands/connect.js.map +1 -0
  407. package/dist/cli/commands/connection-descriptor.d.ts +4 -0
  408. package/dist/cli/commands/connection-descriptor.js +47 -0
  409. package/dist/cli/commands/connection-descriptor.js.map +1 -0
  410. package/dist/cli/commands/connection-environment.d.ts +25 -0
  411. package/dist/cli/commands/connection-environment.js +151 -0
  412. package/dist/cli/commands/connection-environment.js.map +1 -0
  413. package/dist/cli/commands/current-setup-manifests.d.ts +7 -0
  414. package/dist/cli/commands/current-setup-manifests.js +16 -0
  415. package/dist/cli/commands/current-setup-manifests.js.map +1 -0
  416. package/dist/cli/commands/doctor-presentation.d.ts +5 -0
  417. package/dist/cli/commands/doctor-presentation.js +86 -0
  418. package/dist/cli/commands/doctor-presentation.js.map +1 -0
  419. package/dist/cli/commands/doctor.d.ts +27 -0
  420. package/dist/cli/commands/doctor.js +220 -0
  421. package/dist/cli/commands/doctor.js.map +1 -0
  422. package/dist/cli/commands/init-scaffold.d.ts +25 -0
  423. package/dist/cli/commands/init-scaffold.js +214 -0
  424. package/dist/cli/commands/init-scaffold.js.map +1 -0
  425. package/dist/cli/commands/install-skills.d.ts +26 -4
  426. package/dist/cli/commands/install-skills.js +165 -80
  427. package/dist/cli/commands/install-skills.js.map +1 -1
  428. package/dist/cli/commands/installed-skills-manifest.d.ts +87 -0
  429. package/dist/cli/commands/installed-skills-manifest.js +124 -0
  430. package/dist/cli/commands/installed-skills-manifest.js.map +1 -0
  431. package/dist/cli/commands/installer-parts.d.ts +31 -0
  432. package/dist/cli/commands/installer-parts.js +94 -0
  433. package/dist/cli/commands/installer-parts.js.map +1 -0
  434. package/dist/cli/commands/project-inspection.d.ts +35 -0
  435. package/dist/cli/commands/project-inspection.js +199 -0
  436. package/dist/cli/commands/project-inspection.js.map +1 -0
  437. package/dist/cli/commands/setup-plan.d.ts +65 -0
  438. package/dist/cli/commands/setup-plan.js +234 -0
  439. package/dist/cli/commands/setup-plan.js.map +1 -0
  440. package/dist/cli/commands/setup-profile.d.ts +28 -0
  441. package/dist/cli/commands/setup-profile.js +152 -0
  442. package/dist/cli/commands/setup-profile.js.map +1 -0
  443. package/dist/cli/commands/setup-wizard.d.ts +66 -0
  444. package/dist/cli/commands/setup-wizard.js +241 -0
  445. package/dist/cli/commands/setup-wizard.js.map +1 -0
  446. package/dist/cli/commands/sync.d.ts +58 -0
  447. package/dist/cli/commands/sync.js +233 -0
  448. package/dist/cli/commands/sync.js.map +1 -0
  449. package/dist/cli/commands/tools/args.d.ts +14 -0
  450. package/dist/cli/commands/tools/args.js +33 -0
  451. package/dist/cli/commands/tools/args.js.map +1 -0
  452. package/dist/cli/commands/tools/check.d.ts +7 -0
  453. package/dist/cli/commands/tools/check.js +35 -0
  454. package/dist/cli/commands/tools/check.js.map +1 -0
  455. package/dist/cli/commands/tools/describe.d.ts +12 -0
  456. package/dist/cli/commands/tools/describe.js +43 -0
  457. package/dist/cli/commands/tools/describe.js.map +1 -0
  458. package/dist/cli/commands/tools/enrich.d.ts +50 -0
  459. package/dist/cli/commands/tools/enrich.js +597 -0
  460. package/dist/cli/commands/tools/enrich.js.map +1 -0
  461. package/dist/cli/commands/tools/eval.d.ts +13 -0
  462. package/dist/cli/commands/tools/eval.js +49 -0
  463. package/dist/cli/commands/tools/eval.js.map +1 -0
  464. package/dist/cli/commands/tools/format.d.ts +42 -0
  465. package/dist/cli/commands/tools/format.js +155 -0
  466. package/dist/cli/commands/tools/format.js.map +1 -0
  467. package/dist/cli/commands/tools/index.d.ts +26 -0
  468. package/dist/cli/commands/tools/index.js +107 -0
  469. package/dist/cli/commands/tools/index.js.map +1 -0
  470. package/dist/cli/commands/tools/policy.d.ts +11 -0
  471. package/dist/cli/commands/tools/policy.js +355 -0
  472. package/dist/cli/commands/tools/policy.js.map +1 -0
  473. package/dist/cli/commands/tools/refresh.d.ts +6 -0
  474. package/dist/cli/commands/tools/refresh.js +87 -0
  475. package/dist/cli/commands/tools/refresh.js.map +1 -0
  476. package/dist/cli/commands/tools/resolve.d.ts +10 -0
  477. package/dist/cli/commands/tools/resolve.js +19 -0
  478. package/dist/cli/commands/tools/resolve.js.map +1 -0
  479. package/dist/cli/commands/tools/status.d.ts +11 -0
  480. package/dist/cli/commands/tools/status.js +76 -0
  481. package/dist/cli/commands/tools/status.js.map +1 -0
  482. package/dist/cli/commands/tools/verify.d.ts +13 -0
  483. package/dist/cli/commands/tools/verify.js +168 -0
  484. package/dist/cli/commands/tools/verify.js.map +1 -0
  485. package/dist/cli/commands/tools/watch.d.ts +27 -0
  486. package/dist/cli/commands/tools/watch.js +148 -0
  487. package/dist/cli/commands/tools/watch.js.map +1 -0
  488. package/dist/cli/commands/validate-build.d.ts +88 -0
  489. package/dist/cli/commands/validate-build.js +213 -0
  490. package/dist/cli/commands/validate-build.js.map +1 -0
  491. package/dist/cli/commands/workspace-sources.d.ts +27 -0
  492. package/dist/cli/commands/workspace-sources.js +159 -0
  493. package/dist/cli/commands/workspace-sources.js.map +1 -0
  494. package/dist/cli/environment-loading.d.ts +6 -0
  495. package/dist/cli/environment-loading.js +18 -0
  496. package/dist/cli/environment-loading.js.map +1 -0
  497. package/dist/cli/index.d.ts +14 -1
  498. package/dist/cli/index.js +558 -574
  499. package/dist/cli/index.js.map +1 -1
  500. package/dist/codegen/execution-inventory.d.ts +63 -0
  501. package/dist/codegen/execution-inventory.js +306 -0
  502. package/dist/codegen/execution-inventory.js.map +1 -0
  503. package/dist/codegen/index.d.ts +4 -13
  504. package/dist/codegen/index.js +4 -12
  505. package/dist/codegen/index.js.map +1 -1
  506. package/dist/codegen/inventory-generation.d.ts +104 -0
  507. package/dist/codegen/inventory-generation.js +119 -0
  508. package/dist/codegen/inventory-generation.js.map +1 -0
  509. package/dist/codegen/next-source-generation.d.ts +17 -0
  510. package/dist/codegen/next-source-generation.js +49 -0
  511. package/dist/codegen/next-source-generation.js.map +1 -0
  512. package/dist/codegen/openapi-document.d.ts +53 -0
  513. package/dist/codegen/openapi-document.js +120 -0
  514. package/dist/codegen/openapi-document.js.map +1 -0
  515. package/dist/codegen/route-exports.d.ts +13 -0
  516. package/dist/codegen/route-exports.js +117 -0
  517. package/dist/codegen/route-exports.js.map +1 -0
  518. package/dist/codegen/route-fingerprint.d.ts +2 -0
  519. package/dist/codegen/route-fingerprint.js +9 -0
  520. package/dist/codegen/route-fingerprint.js.map +1 -0
  521. package/dist/codegen/route-scanner.d.ts +57 -0
  522. package/dist/codegen/route-scanner.js +233 -0
  523. package/dist/codegen/route-scanner.js.map +1 -0
  524. package/dist/codegen/tools/agentic.d.ts +31 -0
  525. package/dist/codegen/tools/agentic.js +110 -0
  526. package/dist/codegen/tools/agentic.js.map +1 -0
  527. package/dist/codegen/tools/artifact.d.ts +139 -0
  528. package/dist/codegen/tools/artifact.js +199 -0
  529. package/dist/codegen/tools/artifact.js.map +1 -0
  530. package/dist/codegen/tools/canonical.d.ts +12 -0
  531. package/dist/codegen/tools/canonical.js +41 -0
  532. package/dist/codegen/tools/canonical.js.map +1 -0
  533. package/dist/codegen/tools/chat-interactions.d.ts +27 -0
  534. package/dist/codegen/tools/chat-interactions.js +377 -0
  535. package/dist/codegen/tools/chat-interactions.js.map +1 -0
  536. package/dist/codegen/tools/config.d.ts +116 -0
  537. package/dist/codegen/tools/config.js +172 -0
  538. package/dist/codegen/tools/config.js.map +1 -0
  539. package/dist/codegen/tools/contract-tiers.d.ts +64 -0
  540. package/dist/codegen/tools/contract-tiers.js +518 -0
  541. package/dist/codegen/tools/contract-tiers.js.map +1 -0
  542. package/dist/codegen/tools/emit-module.d.ts +13 -0
  543. package/dist/codegen/tools/emit-module.js +182 -0
  544. package/dist/codegen/tools/emit-module.js.map +1 -0
  545. package/dist/codegen/tools/evidence.d.ts +13 -0
  546. package/dist/codegen/tools/evidence.js +138 -0
  547. package/dist/codegen/tools/evidence.js.map +1 -0
  548. package/dist/codegen/tools/exclusions.d.ts +30 -0
  549. package/dist/codegen/tools/exclusions.js +95 -0
  550. package/dist/codegen/tools/exclusions.js.map +1 -0
  551. package/dist/codegen/tools/files.d.ts +195 -0
  552. package/dist/codegen/tools/files.js +119 -0
  553. package/dist/codegen/tools/files.js.map +1 -0
  554. package/dist/codegen/tools/findings.d.ts +7 -0
  555. package/dist/codegen/tools/findings.js +106 -0
  556. package/dist/codegen/tools/findings.js.map +1 -0
  557. package/dist/codegen/tools/handler-analysis.d.ts +49 -0
  558. package/dist/codegen/tools/handler-analysis.js +375 -0
  559. package/dist/codegen/tools/handler-analysis.js.map +1 -0
  560. package/dist/codegen/tools/handler-locator.d.ts +21 -0
  561. package/dist/codegen/tools/handler-locator.js +152 -0
  562. package/dist/codegen/tools/handler-locator.js.map +1 -0
  563. package/dist/codegen/tools/identity.d.ts +18 -0
  564. package/dist/codegen/tools/identity.js +100 -0
  565. package/dist/codegen/tools/identity.js.map +1 -0
  566. package/dist/codegen/tools/input-roles.d.ts +32 -0
  567. package/dist/codegen/tools/input-roles.js +283 -0
  568. package/dist/codegen/tools/input-roles.js.map +1 -0
  569. package/dist/codegen/tools/inputs.d.ts +33 -0
  570. package/dist/codegen/tools/inputs.js +101 -0
  571. package/dist/codegen/tools/inputs.js.map +1 -0
  572. package/dist/codegen/tools/interface-digest.d.ts +14 -0
  573. package/dist/codegen/tools/interface-digest.js +24 -0
  574. package/dist/codegen/tools/interface-digest.js.map +1 -0
  575. package/dist/codegen/tools/mcp-names.d.ts +23 -0
  576. package/dist/codegen/tools/mcp-names.js +59 -0
  577. package/dist/codegen/tools/mcp-names.js.map +1 -0
  578. package/dist/codegen/tools/mode.d.ts +7 -0
  579. package/dist/codegen/tools/mode.js +27 -0
  580. package/dist/codegen/tools/mode.js.map +1 -0
  581. package/dist/codegen/tools/output-inference.d.ts +6 -0
  582. package/dist/codegen/tools/output-inference.js +99 -0
  583. package/dist/codegen/tools/output-inference.js.map +1 -0
  584. package/dist/codegen/tools/pipeline.d.ts +85 -0
  585. package/dist/codegen/tools/pipeline.js +733 -0
  586. package/dist/codegen/tools/pipeline.js.map +1 -0
  587. package/dist/codegen/tools/probe-child.mjs +155 -0
  588. package/dist/codegen/tools/probe-loader.mjs +105 -0
  589. package/dist/codegen/tools/program.d.ts +16 -0
  590. package/dist/codegen/tools/program.js +80 -0
  591. package/dist/codegen/tools/program.js.map +1 -0
  592. package/dist/codegen/tools/prose.d.ts +42 -0
  593. package/dist/codegen/tools/prose.js +211 -0
  594. package/dist/codegen/tools/prose.js.map +1 -0
  595. package/dist/codegen/tools/resolutions.d.ts +117 -0
  596. package/dist/codegen/tools/resolutions.js +195 -0
  597. package/dist/codegen/tools/resolutions.js.map +1 -0
  598. package/dist/codegen/tools/routing-eval.d.ts +50 -0
  599. package/dist/codegen/tools/routing-eval.js +81 -0
  600. package/dist/codegen/tools/routing-eval.js.map +1 -0
  601. package/dist/codegen/tools/schema-probe.d.ts +62 -0
  602. package/dist/codegen/tools/schema-probe.js +209 -0
  603. package/dist/codegen/tools/schema-probe.js.map +1 -0
  604. package/dist/codegen/tools/semantics.d.ts +134 -0
  605. package/dist/codegen/tools/semantics.js +206 -0
  606. package/dist/codegen/tools/semantics.js.map +1 -0
  607. package/dist/codegen/tools/sources/app-files.d.ts +35 -0
  608. package/dist/codegen/tools/sources/app-files.js +109 -0
  609. package/dist/codegen/tools/sources/app-files.js.map +1 -0
  610. package/dist/codegen/tools/sources/fastapi-routes.py +177 -0
  611. package/dist/codegen/tools/sources/nest-decorators.d.ts +27 -0
  612. package/dist/codegen/tools/sources/nest-decorators.js +65 -0
  613. package/dist/codegen/tools/sources/nest-decorators.js.map +1 -0
  614. package/dist/codegen/tools/sources/nest-endpoints.d.ts +10 -0
  615. package/dist/codegen/tools/sources/nest-endpoints.js +522 -0
  616. package/dist/codegen/tools/sources/nest-endpoints.js.map +1 -0
  617. package/dist/codegen/tools/sources/next-endpoints.d.ts +5 -0
  618. package/dist/codegen/tools/sources/next-endpoints.js +389 -0
  619. package/dist/codegen/tools/sources/next-endpoints.js.map +1 -0
  620. package/dist/codegen/tools/sources/next-pages.d.ts +18 -0
  621. package/dist/codegen/tools/sources/next-pages.js +88 -0
  622. package/dist/codegen/tools/sources/next-pages.js.map +1 -0
  623. package/dist/codegen/tools/sources/openapi-endpoints.d.ts +17 -0
  624. package/dist/codegen/tools/sources/openapi-endpoints.js +395 -0
  625. package/dist/codegen/tools/sources/openapi-endpoints.js.map +1 -0
  626. package/dist/codegen/tools/sources/page-tree.d.ts +49 -0
  627. package/dist/codegen/tools/sources/page-tree.js +152 -0
  628. package/dist/codegen/tools/sources/page-tree.js.map +1 -0
  629. package/dist/codegen/tools/sources/react-actions.d.ts +12 -0
  630. package/dist/codegen/tools/sources/react-actions.js +341 -0
  631. package/dist/codegen/tools/sources/react-actions.js.map +1 -0
  632. package/dist/codegen/tools/sources/route-config.d.ts +49 -0
  633. package/dist/codegen/tools/sources/route-config.js +427 -0
  634. package/dist/codegen/tools/sources/route-config.js.map +1 -0
  635. package/dist/codegen/tools/sources/ui-controls.d.ts +41 -0
  636. package/dist/codegen/tools/sources/ui-controls.js +360 -0
  637. package/dist/codegen/tools/sources/ui-controls.js.map +1 -0
  638. package/dist/codegen/tools/sources/ui-tools.d.ts +79 -0
  639. package/dist/codegen/tools/sources/ui-tools.js +207 -0
  640. package/dist/codegen/tools/sources/ui-tools.js.map +1 -0
  641. package/dist/codegen/tools/sources/url-filters.d.ts +41 -0
  642. package/dist/codegen/tools/sources/url-filters.js +813 -0
  643. package/dist/codegen/tools/sources/url-filters.js.map +1 -0
  644. package/dist/codegen/tools/sources/vue-sfc.d.ts +22 -0
  645. package/dist/codegen/tools/sources/vue-sfc.js +65 -0
  646. package/dist/codegen/tools/sources/vue-sfc.js.map +1 -0
  647. package/dist/codegen/tools/state.d.ts +37 -0
  648. package/dist/codegen/tools/state.js +249 -0
  649. package/dist/codegen/tools/state.js.map +1 -0
  650. package/dist/codegen/tools/types.d.ts +137 -0
  651. package/dist/codegen/tools/types.js +2 -0
  652. package/dist/codegen/tools/types.js.map +1 -0
  653. package/dist/codegen/tools/worklist.d.ts +157 -0
  654. package/dist/codegen/tools/worklist.js +406 -0
  655. package/dist/codegen/tools/worklist.js.map +1 -0
  656. package/dist/contracts/app-setup.d.ts +346 -0
  657. package/dist/contracts/app-setup.js +205 -0
  658. package/dist/contracts/app-setup.js.map +1 -0
  659. package/dist/contracts/chat-command.d.ts +65 -0
  660. package/dist/contracts/chat-command.js +121 -0
  661. package/dist/contracts/chat-command.js.map +1 -0
  662. package/dist/contracts/chat-interactions.d.ts +126 -0
  663. package/dist/contracts/chat-interactions.js +431 -0
  664. package/dist/contracts/chat-interactions.js.map +1 -0
  665. package/dist/contracts/clarification.d.ts +53 -0
  666. package/dist/contracts/clarification.js +86 -0
  667. package/dist/contracts/clarification.js.map +1 -0
  668. package/dist/contracts/content-boundary.d.ts +3 -0
  669. package/dist/contracts/content-boundary.js +91 -0
  670. package/dist/contracts/content-boundary.js.map +1 -0
  671. package/dist/contracts/events.d.ts +273 -0
  672. package/dist/contracts/events.js +227 -0
  673. package/dist/contracts/events.js.map +1 -0
  674. package/dist/contracts/index.d.ts +18 -0
  675. package/dist/contracts/index.js +10 -0
  676. package/dist/contracts/index.js.map +1 -0
  677. package/dist/contracts/plan.d.ts +20 -0
  678. package/dist/contracts/plan.js +35 -0
  679. package/dist/contracts/plan.js.map +1 -0
  680. package/dist/contracts/platform-connection.d.ts +44 -0
  681. package/dist/contracts/platform-connection.js +64 -0
  682. package/dist/contracts/platform-connection.js.map +1 -0
  683. package/dist/contracts/platform-prompt-revision.d.ts +27 -0
  684. package/dist/contracts/platform-prompt-revision.js +44 -0
  685. package/dist/contracts/platform-prompt-revision.js.map +1 -0
  686. package/dist/contracts/prompt-bundle.d.ts +46 -0
  687. package/dist/contracts/prompt-bundle.js +70 -0
  688. package/dist/contracts/prompt-bundle.js.map +1 -0
  689. package/dist/contracts/revisions.d.ts +716 -0
  690. package/dist/contracts/revisions.js +298 -0
  691. package/dist/contracts/revisions.js.map +1 -0
  692. package/dist/contracts/runtime.d.ts +55 -0
  693. package/dist/contracts/runtime.js +65 -0
  694. package/dist/contracts/runtime.js.map +1 -0
  695. package/dist/contracts/semantic-change.d.ts +27 -0
  696. package/dist/contracts/semantic-change.js +101 -0
  697. package/dist/contracts/semantic-change.js.map +1 -0
  698. package/dist/contracts/tool-exclude-pattern.d.ts +12 -0
  699. package/dist/contracts/tool-exclude-pattern.js +27 -0
  700. package/dist/contracts/tool-exclude-pattern.js.map +1 -0
  701. package/dist/contracts/tool-policy-entry.d.ts +107 -0
  702. package/dist/contracts/tool-policy-entry.js +40 -0
  703. package/dist/contracts/tool-policy-entry.js.map +1 -0
  704. package/dist/contracts/tool-policy.d.ts +198 -0
  705. package/dist/contracts/tool-policy.js +485 -0
  706. package/dist/contracts/tool-policy.js.map +1 -0
  707. package/dist/contracts/url.d.ts +2 -0
  708. package/dist/contracts/url.js +8 -0
  709. package/dist/contracts/url.js.map +1 -0
  710. package/dist/diagnostics/foundation-diagnostic.d.ts +34 -0
  711. package/dist/diagnostics/foundation-diagnostic.js +47 -0
  712. package/dist/diagnostics/foundation-diagnostic.js.map +1 -0
  713. package/dist/diagnostics/index.d.ts +2 -0
  714. package/dist/diagnostics/index.js +2 -0
  715. package/dist/diagnostics/index.js.map +1 -0
  716. package/dist/embed/chat-styles.generated.d.ts +1 -0
  717. package/dist/embed/chat-styles.generated.js +4 -0
  718. package/dist/embed/chat-styles.generated.js.map +1 -0
  719. package/dist/embed/glirastes-chat-element.d.ts +67 -0
  720. package/dist/embed/glirastes-chat-element.js +278 -0
  721. package/dist/embed/glirastes-chat-element.js.map +1 -0
  722. package/dist/embed/index.d.ts +4 -0
  723. package/dist/embed/index.js +11 -0
  724. package/dist/embed/index.js.map +1 -0
  725. package/dist/embed/theme.d.ts +10 -0
  726. package/dist/embed/theme.js +41 -0
  727. package/dist/embed/theme.js.map +1 -0
  728. package/dist/index.d.ts +1 -0
  729. package/dist/index.js +1 -0
  730. package/dist/index.js.map +1 -1
  731. package/dist/react/assistant/assistant-layout.d.ts +55 -0
  732. package/dist/react/assistant/assistant-layout.js +99 -0
  733. package/dist/react/assistant/assistant-layout.js.map +1 -0
  734. package/dist/react/assistant/assistant-shell.d.ts +132 -0
  735. package/dist/react/assistant/assistant-shell.js +262 -0
  736. package/dist/react/assistant/assistant-shell.js.map +1 -0
  737. package/dist/react/assistant/assistant-shortcut-list.d.ts +24 -0
  738. package/dist/react/assistant/assistant-shortcut-list.js +32 -0
  739. package/dist/react/assistant/assistant-shortcut-list.js.map +1 -0
  740. package/dist/react/assistant/assistant-workspace.d.ts +31 -0
  741. package/dist/react/assistant/assistant-workspace.js +31 -0
  742. package/dist/react/assistant/assistant-workspace.js.map +1 -0
  743. package/dist/react/completions/completion-search.d.ts +21 -0
  744. package/dist/react/completions/completion-search.js +109 -0
  745. package/dist/react/completions/completion-search.js.map +1 -0
  746. package/dist/react/completions/ui-tool-command-provider.d.ts +15 -0
  747. package/dist/react/completions/ui-tool-command-provider.js +82 -0
  748. package/dist/react/completions/ui-tool-command-provider.js.map +1 -0
  749. package/dist/react/components/activity-log.d.ts +17 -0
  750. package/dist/react/components/activity-log.js +68 -0
  751. package/dist/react/components/activity-log.js.map +1 -0
  752. package/dist/react/components/ai-chat-panel.js +13 -6
  753. package/dist/react/components/ai-chat-panel.js.map +1 -1
  754. package/dist/react/components/ai-trigger-button.d.ts +1 -1
  755. package/dist/react/components/ai-trigger-button.js +13 -68
  756. package/dist/react/components/ai-trigger-button.js.map +1 -1
  757. package/dist/react/components/approval-card.js +20 -1
  758. package/dist/react/components/approval-card.js.map +1 -1
  759. package/dist/react/components/chat-input.js +7 -5
  760. package/dist/react/components/chat-input.js.map +1 -1
  761. package/dist/react/components/chat-window-visibility.d.ts +3 -0
  762. package/dist/react/components/chat-window-visibility.js +5 -0
  763. package/dist/react/components/chat-window-visibility.js.map +1 -0
  764. package/dist/react/components/chat-window.d.ts +1 -1
  765. package/dist/react/components/chat-window.js +124 -57
  766. package/dist/react/components/chat-window.js.map +1 -1
  767. package/dist/react/components/clarification-card.d.ts +10 -0
  768. package/dist/react/components/clarification-card.js +33 -0
  769. package/dist/react/components/clarification-card.js.map +1 -0
  770. package/dist/react/components/command-arguments-form.d.ts +10 -0
  771. package/dist/react/components/command-arguments-form.js +151 -0
  772. package/dist/react/components/command-arguments-form.js.map +1 -0
  773. package/dist/react/components/confirm-dialog.js +1 -1
  774. package/dist/react/components/confirm-dialog.js.map +1 -1
  775. package/dist/react/components/floating-chat-ui.d.ts +3 -3
  776. package/dist/react/components/floating-chat-ui.js +31 -5
  777. package/dist/react/components/floating-chat-ui.js.map +1 -1
  778. package/dist/react/components/mention-input.d.ts +5 -4
  779. package/dist/react/components/mention-input.js +65 -8
  780. package/dist/react/components/mention-input.js.map +1 -1
  781. package/dist/react/components/message-bubble.js +90 -14
  782. package/dist/react/components/message-bubble.js.map +1 -1
  783. package/dist/react/components/plan-checklist.d.ts +14 -0
  784. package/dist/react/components/plan-checklist.js +18 -0
  785. package/dist/react/components/plan-checklist.js.map +1 -0
  786. package/dist/react/components/recording-bar.js +45 -59
  787. package/dist/react/components/recording-bar.js.map +1 -1
  788. package/dist/react/components/rich-mention-input.js +199 -47
  789. package/dist/react/components/rich-mention-input.js.map +1 -1
  790. package/dist/react/components/session-switcher.d.ts +3 -1
  791. package/dist/react/components/session-switcher.js +27 -12
  792. package/dist/react/components/session-switcher.js.map +1 -1
  793. package/dist/react/components/status-icon.d.ts +8 -0
  794. package/dist/react/components/status-icon.js +9 -0
  795. package/dist/react/components/status-icon.js.map +1 -0
  796. package/dist/react/components/stream-waveform.d.ts +4 -0
  797. package/dist/react/components/stream-waveform.js +47 -0
  798. package/dist/react/components/stream-waveform.js.map +1 -0
  799. package/dist/react/components/voice-input-addon.d.ts +16 -1
  800. package/dist/react/components/voice-input-addon.js +256 -19
  801. package/dist/react/components/voice-input-addon.js.map +1 -1
  802. package/dist/react/components/voice-input-button.js +1 -1
  803. package/dist/react/components/voice-input-button.js.map +1 -1
  804. package/dist/react/hooks/use-chat-shortcuts.d.ts +33 -0
  805. package/dist/react/hooks/use-chat-shortcuts.js +133 -0
  806. package/dist/react/hooks/use-chat-shortcuts.js.map +1 -0
  807. package/dist/react/hooks/use-deepgram-transcription.d.ts +4 -0
  808. package/dist/react/hooks/use-deepgram-transcription.js +32 -322
  809. package/dist/react/hooks/use-deepgram-transcription.js.map +1 -1
  810. package/dist/react/hooks/use-drag-resize-panel.d.ts +1 -0
  811. package/dist/react/hooks/use-drag-resize-panel.js +246 -121
  812. package/dist/react/hooks/use-drag-resize-panel.js.map +1 -1
  813. package/dist/react/hooks/use-floating-panel.d.ts +57 -0
  814. package/dist/react/hooks/use-floating-panel.js +215 -0
  815. package/dist/react/hooks/use-floating-panel.js.map +1 -0
  816. package/dist/react/hooks/use-keyboard-shortcut.js +2 -1
  817. package/dist/react/hooks/use-keyboard-shortcut.js.map +1 -1
  818. package/dist/react/hooks/use-push-to-talk-hotkey.d.ts +24 -0
  819. package/dist/react/hooks/use-push-to-talk-hotkey.js +112 -0
  820. package/dist/react/hooks/use-push-to-talk-hotkey.js.map +1 -0
  821. package/dist/react/hooks/use-sidebar-resize.d.ts +19 -0
  822. package/dist/react/hooks/use-sidebar-resize.js +107 -0
  823. package/dist/react/hooks/use-sidebar-resize.js.map +1 -0
  824. package/dist/react/index.d.ts +30 -1
  825. package/dist/react/index.js +31 -0
  826. package/dist/react/index.js.map +1 -1
  827. package/dist/react/interactions/definitions.d.ts +67 -0
  828. package/dist/react/interactions/definitions.js +78 -0
  829. package/dist/react/interactions/definitions.js.map +1 -0
  830. package/dist/react/interactions/registry.d.ts +74 -0
  831. package/dist/react/interactions/registry.js +248 -0
  832. package/dist/react/interactions/registry.js.map +1 -0
  833. package/dist/react/interactions/use-chat-interactions-data.d.ts +15 -0
  834. package/dist/react/interactions/use-chat-interactions-data.js +41 -0
  835. package/dist/react/interactions/use-chat-interactions-data.js.map +1 -0
  836. package/dist/react/locale-de.d.ts +3 -0
  837. package/dist/react/locale-de.js +67 -0
  838. package/dist/react/locale-de.js.map +1 -0
  839. package/dist/react/provider/ai-chat-provider.d.ts +1 -1
  840. package/dist/react/provider/ai-chat-provider.js +411 -107
  841. package/dist/react/provider/ai-chat-provider.js.map +1 -1
  842. package/dist/react/provider/chat-context.d.ts +52 -1
  843. package/dist/react/provider/chat-context.js.map +1 -1
  844. package/dist/react/stt/controller.d.ts +60 -0
  845. package/dist/react/stt/controller.js +265 -0
  846. package/dist/react/stt/controller.js.map +1 -0
  847. package/dist/react/stt/deepgram.d.ts +30 -0
  848. package/dist/react/stt/deepgram.js +199 -0
  849. package/dist/react/stt/deepgram.js.map +1 -0
  850. package/dist/react/stt/recorded.d.ts +29 -0
  851. package/dist/react/stt/recorded.js +111 -0
  852. package/dist/react/stt/recorded.js.map +1 -0
  853. package/dist/react/stt/segments.d.ts +18 -0
  854. package/dist/react/stt/segments.js +29 -0
  855. package/dist/react/stt/segments.js.map +1 -0
  856. package/dist/react/stt/use-stt.d.ts +17 -0
  857. package/dist/react/stt/use-stt.js +39 -0
  858. package/dist/react/stt/use-stt.js.map +1 -0
  859. package/dist/react/stt/waveform.d.ts +5 -0
  860. package/dist/react/stt/waveform.js +29 -0
  861. package/dist/react/stt/waveform.js.map +1 -0
  862. package/dist/react/styles.css +784 -126
  863. package/dist/react/tool-renderers/registry.d.ts +31 -0
  864. package/dist/react/tool-renderers/registry.js +47 -0
  865. package/dist/react/tool-renderers/registry.js.map +1 -0
  866. package/dist/react/tool-renderers/renderer-boundary.d.ts +18 -0
  867. package/dist/react/tool-renderers/renderer-boundary.js +12 -0
  868. package/dist/react/tool-renderers/renderer-boundary.js.map +1 -0
  869. package/dist/react/transports/vercel/vercel-ai-chat.d.ts +1 -1
  870. package/dist/react/transports/vercel/vercel-ai-chat.js +2 -2
  871. package/dist/react/transports/vercel/vercel-ai-chat.js.map +1 -1
  872. package/dist/react/transports/vercel.d.ts +6 -0
  873. package/dist/react/transports/vercel.js +11 -6
  874. package/dist/react/transports/vercel.js.map +1 -1
  875. package/dist/react/types.d.ts +269 -6
  876. package/dist/react/ui.d.ts +18 -17
  877. package/dist/react/ui.js +46 -43
  878. package/dist/react/ui.js.map +1 -1
  879. package/dist/react/unstyled.d.ts +7 -0
  880. package/dist/react/unstyled.js +8 -0
  881. package/dist/react/unstyled.js.map +1 -0
  882. package/dist/react/utils/activity.d.ts +16 -0
  883. package/dist/react/utils/activity.js +77 -0
  884. package/dist/react/utils/activity.js.map +1 -0
  885. package/dist/react/utils/clarification.d.ts +31 -0
  886. package/dist/react/utils/clarification.js +99 -0
  887. package/dist/react/utils/clarification.js.map +1 -0
  888. package/dist/react/utils/create-approval-description.d.ts +6 -0
  889. package/dist/react/utils/create-approval-description.js +42 -7
  890. package/dist/react/utils/create-approval-description.js.map +1 -1
  891. package/dist/react/utils/create-tool-result-handler.d.ts +1 -1
  892. package/dist/react/utils/create-tool-result-handler.js +1 -1
  893. package/dist/react/utils/create-tool-result-handler.js.map +1 -1
  894. package/dist/react/utils/entity-names.d.ts +6 -0
  895. package/dist/react/utils/entity-names.js +55 -0
  896. package/dist/react/utils/entity-names.js.map +1 -0
  897. package/dist/react/utils/followup-suggestions.d.ts +11 -0
  898. package/dist/react/utils/followup-suggestions.js +37 -0
  899. package/dist/react/utils/followup-suggestions.js.map +1 -0
  900. package/dist/react/utils/local-session-store.d.ts +30 -0
  901. package/dist/react/utils/local-session-store.js +163 -0
  902. package/dist/react/utils/local-session-store.js.map +1 -0
  903. package/dist/react/utils/mention-markup.d.ts +44 -1
  904. package/dist/react/utils/mention-markup.js +140 -10
  905. package/dist/react/utils/mention-markup.js.map +1 -1
  906. package/dist/react/utils/tool-presentation.d.ts +23 -0
  907. package/dist/react/utils/tool-presentation.js +41 -0
  908. package/dist/react/utils/tool-presentation.js.map +1 -0
  909. package/dist/react/utils/tool-result-config.d.ts +10 -0
  910. package/dist/react/utils/tool-result-config.js +12 -0
  911. package/dist/react/utils/tool-result-config.js.map +1 -0
  912. package/dist/runtime/ai-sdk/engine.d.ts +66 -0
  913. package/dist/runtime/ai-sdk/engine.js +188 -0
  914. package/dist/runtime/ai-sdk/engine.js.map +1 -0
  915. package/dist/runtime/ai-sdk/index.d.ts +1 -0
  916. package/dist/runtime/ai-sdk/index.js +2 -0
  917. package/dist/runtime/ai-sdk/index.js.map +1 -0
  918. package/dist/runtime/authorization.d.ts +16 -0
  919. package/dist/runtime/authorization.js +33 -0
  920. package/dist/runtime/authorization.js.map +1 -0
  921. package/dist/runtime/budget.d.ts +39 -0
  922. package/dist/runtime/budget.js +97 -0
  923. package/dist/runtime/budget.js.map +1 -0
  924. package/dist/runtime/contract-bindings.d.ts +52 -0
  925. package/dist/runtime/contract-bindings.js +92 -0
  926. package/dist/runtime/contract-bindings.js.map +1 -0
  927. package/dist/runtime/engine.d.ts +52 -0
  928. package/dist/runtime/engine.js +2 -0
  929. package/dist/runtime/engine.js.map +1 -0
  930. package/dist/runtime/fingerprint.d.ts +6 -0
  931. package/dist/runtime/fingerprint.js +29 -0
  932. package/dist/runtime/fingerprint.js.map +1 -0
  933. package/dist/runtime/glirastes.d.ts +113 -0
  934. package/dist/runtime/glirastes.js +287 -0
  935. package/dist/runtime/glirastes.js.map +1 -0
  936. package/dist/runtime/index.d.ts +24 -0
  937. package/dist/runtime/index.js +24 -0
  938. package/dist/runtime/index.js.map +1 -0
  939. package/dist/runtime/json-schema.d.ts +13 -0
  940. package/dist/runtime/json-schema.js +41 -0
  941. package/dist/runtime/json-schema.js.map +1 -0
  942. package/dist/runtime/local-limits.d.ts +6 -0
  943. package/dist/runtime/local-limits.js +23 -0
  944. package/dist/runtime/local-limits.js.map +1 -0
  945. package/dist/runtime/local-runtime-source.d.ts +76 -0
  946. package/dist/runtime/local-runtime-source.js +0 -0
  947. package/dist/runtime/local-runtime-source.js.map +1 -0
  948. package/dist/runtime/local-signer.d.ts +17 -0
  949. package/dist/runtime/local-signer.js +32 -0
  950. package/dist/runtime/local-signer.js.map +1 -0
  951. package/dist/runtime/local-tool-bindings.d.ts +57 -0
  952. package/dist/runtime/local-tool-bindings.js +190 -0
  953. package/dist/runtime/local-tool-bindings.js.map +1 -0
  954. package/dist/runtime/managed-turn.d.ts +29 -0
  955. package/dist/runtime/managed-turn.js +97 -0
  956. package/dist/runtime/managed-turn.js.map +1 -0
  957. package/dist/runtime/metrics/cost.d.ts +64 -0
  958. package/dist/runtime/metrics/cost.js +92 -0
  959. package/dist/runtime/metrics/cost.js.map +1 -0
  960. package/dist/runtime/metrics/sink.d.ts +56 -0
  961. package/dist/runtime/metrics/sink.js +214 -0
  962. package/dist/runtime/metrics/sink.js.map +1 -0
  963. package/dist/runtime/metrics/turn-recorder.d.ts +62 -0
  964. package/dist/runtime/metrics/turn-recorder.js +170 -0
  965. package/dist/runtime/metrics/turn-recorder.js.map +1 -0
  966. package/dist/runtime/offline-execution-lease.d.ts +27 -0
  967. package/dist/runtime/offline-execution-lease.js +46 -0
  968. package/dist/runtime/offline-execution-lease.js.map +1 -0
  969. package/dist/runtime/policy-overlay.d.ts +86 -0
  970. package/dist/runtime/policy-overlay.js +117 -0
  971. package/dist/runtime/policy-overlay.js.map +1 -0
  972. package/dist/runtime/postgres-store.d.ts +111 -0
  973. package/dist/runtime/postgres-store.js +363 -0
  974. package/dist/runtime/postgres-store.js.map +1 -0
  975. package/dist/runtime/prompt-bundle-store.d.ts +58 -0
  976. package/dist/runtime/prompt-bundle-store.js +120 -0
  977. package/dist/runtime/prompt-bundle-store.js.map +1 -0
  978. package/dist/runtime/runtime-mode.d.ts +23 -0
  979. package/dist/runtime/runtime-mode.js +42 -0
  980. package/dist/runtime/runtime-mode.js.map +1 -0
  981. package/dist/runtime/sdk-version.d.ts +2 -0
  982. package/dist/runtime/sdk-version.js +3 -0
  983. package/dist/runtime/sdk-version.js.map +1 -0
  984. package/dist/runtime/tool-discovery.d.ts +51 -0
  985. package/dist/runtime/tool-discovery.js +138 -0
  986. package/dist/runtime/tool-discovery.js.map +1 -0
  987. package/dist/runtime/tool-search.d.ts +31 -0
  988. package/dist/runtime/tool-search.js +145 -0
  989. package/dist/runtime/tool-search.js.map +1 -0
  990. package/dist/runtime/turn-snapshot.d.ts +44 -0
  991. package/dist/runtime/turn-snapshot.js +108 -0
  992. package/dist/runtime/turn-snapshot.js.map +1 -0
  993. package/dist/server/adapters/nextjs/approval-binding.d.ts +334 -0
  994. package/dist/server/adapters/nextjs/approval-binding.js +707 -0
  995. package/dist/server/adapters/nextjs/approval-binding.js.map +1 -0
  996. package/dist/server/adapters/nextjs/chat-interactions-handler.d.ts +26 -0
  997. package/dist/server/adapters/nextjs/chat-interactions-handler.js +65 -0
  998. package/dist/server/adapters/nextjs/chat-interactions-handler.js.map +1 -0
  999. package/dist/server/adapters/nextjs/clarification-resume.d.ts +21 -0
  1000. package/dist/server/adapters/nextjs/clarification-resume.js +109 -0
  1001. package/dist/server/adapters/nextjs/clarification-resume.js.map +1 -0
  1002. package/dist/server/adapters/nextjs/context-helpers.d.ts +49 -8
  1003. package/dist/server/adapters/nextjs/context-helpers.js +75 -21
  1004. package/dist/server/adapters/nextjs/context-helpers.js.map +1 -1
  1005. package/dist/server/adapters/nextjs/create-ai-chat-handler.d.ts +59 -1
  1006. package/dist/server/adapters/nextjs/create-ai-chat-handler.js +647 -95
  1007. package/dist/server/adapters/nextjs/create-ai-chat-handler.js.map +1 -1
  1008. package/dist/server/adapters/nextjs/direct-command.d.ts +75 -0
  1009. package/dist/server/adapters/nextjs/direct-command.js +316 -0
  1010. package/dist/server/adapters/nextjs/direct-command.js.map +1 -0
  1011. package/dist/server/adapters/nextjs/index.d.ts +10 -2
  1012. package/dist/server/adapters/nextjs/index.js +7 -0
  1013. package/dist/server/adapters/nextjs/index.js.map +1 -1
  1014. package/dist/server/adapters/nextjs/prepare-model-messages.d.ts +2 -1
  1015. package/dist/server/adapters/nextjs/prepare-model-messages.js +7 -15
  1016. package/dist/server/adapters/nextjs/prepare-model-messages.js.map +1 -1
  1017. package/dist/server/adapters/nextjs/recording-transcription-handler.d.ts +31 -0
  1018. package/dist/server/adapters/nextjs/recording-transcription-handler.js +55 -0
  1019. package/dist/server/adapters/nextjs/recording-transcription-handler.js.map +1 -0
  1020. package/dist/server/adapters/nextjs/request-guards.d.ts +41 -0
  1021. package/dist/server/adapters/nextjs/request-guards.js +108 -0
  1022. package/dist/server/adapters/nextjs/request-guards.js.map +1 -0
  1023. package/dist/server/adapters/nextjs/sanitize-model-messages.js +12 -6
  1024. package/dist/server/adapters/nextjs/sanitize-model-messages.js.map +1 -1
  1025. package/dist/server/adapters/nextjs/scope-pipeline-tools.d.ts +17 -0
  1026. package/dist/server/adapters/nextjs/scope-pipeline-tools.js +26 -0
  1027. package/dist/server/adapters/nextjs/scope-pipeline-tools.js.map +1 -0
  1028. package/dist/server/adapters/nextjs/tool-discovery.d.ts +39 -0
  1029. package/dist/server/adapters/nextjs/tool-discovery.js +47 -0
  1030. package/dist/server/adapters/nextjs/tool-discovery.js.map +1 -0
  1031. package/dist/server/adapters/nextjs/tool-presentation.d.ts +26 -0
  1032. package/dist/server/adapters/nextjs/tool-presentation.js +19 -0
  1033. package/dist/server/adapters/nextjs/tool-presentation.js.map +1 -0
  1034. package/dist/server/adapters/nextjs/types.d.ts +229 -13
  1035. package/dist/server/adapters/nextjs/with-ai-tool.d.ts +2 -2
  1036. package/dist/server/core/adaptive-fast-path.d.ts +3 -0
  1037. package/dist/server/core/adaptive-fast-path.js +185 -0
  1038. package/dist/server/core/adaptive-fast-path.js.map +1 -0
  1039. package/dist/server/core/clarification-tool.d.ts +29 -0
  1040. package/dist/server/core/clarification-tool.js +61 -0
  1041. package/dist/server/core/clarification-tool.js.map +1 -0
  1042. package/dist/server/core/generated-ui-tool.d.ts +31 -0
  1043. package/dist/server/core/generated-ui-tool.js +87 -0
  1044. package/dist/server/core/generated-ui-tool.js.map +1 -0
  1045. package/dist/server/core/index.d.ts +49 -8
  1046. package/dist/server/core/index.js +198 -16
  1047. package/dist/server/core/index.js.map +1 -1
  1048. package/dist/server/core/local-guardrails.d.ts +6 -0
  1049. package/dist/server/core/local-guardrails.js +68 -0
  1050. package/dist/server/core/local-guardrails.js.map +1 -0
  1051. package/dist/server/core/module-router.d.ts +3 -1
  1052. package/dist/server/core/module-router.js +22 -2
  1053. package/dist/server/core/module-router.js.map +1 -1
  1054. package/dist/server/core/plan-tool.d.ts +23 -0
  1055. package/dist/server/core/plan-tool.js +32 -0
  1056. package/dist/server/core/plan-tool.js.map +1 -0
  1057. package/dist/server/core/zod-compact.d.ts +2 -2
  1058. package/dist/server/core/zod-compact.js +56 -7
  1059. package/dist/server/core/zod-compact.js.map +1 -1
  1060. package/dist/server/index.d.ts +2 -4
  1061. package/dist/server/index.js +2 -4
  1062. package/dist/server/index.js.map +1 -1
  1063. package/dist/server/lancer/client.js +2 -1
  1064. package/dist/server/lancer/client.js.map +1 -1
  1065. package/dist/server/local-pipeline.d.ts +14 -0
  1066. package/dist/server/local-pipeline.js +152 -0
  1067. package/dist/server/local-pipeline.js.map +1 -0
  1068. package/dist/server/pii-shield/index.d.ts +1 -0
  1069. package/dist/server/pii-shield/index.js +1 -0
  1070. package/dist/server/pii-shield/index.js.map +1 -1
  1071. package/dist/server/pii-shield/regex-detector.d.ts +13 -0
  1072. package/dist/server/pii-shield/regex-detector.js +109 -0
  1073. package/dist/server/pii-shield/regex-detector.js.map +1 -0
  1074. package/dist/server/testing/guardrails.js +1 -65
  1075. package/dist/server/testing/guardrails.js.map +1 -1
  1076. package/dist/server/testing/helpers.js +1 -62
  1077. package/dist/server/testing/helpers.js.map +1 -1
  1078. package/dist/server/testing/index.d.ts +1 -0
  1079. package/dist/server/testing/index.js +1 -0
  1080. package/dist/server/testing/index.js.map +1 -1
  1081. package/dist/server/testing/registry-parity.d.ts +18 -0
  1082. package/dist/server/testing/registry-parity.js +38 -0
  1083. package/dist/server/testing/registry-parity.js.map +1 -0
  1084. package/dist/server/testing/smoke.d.ts +2 -1
  1085. package/dist/server/testing/smoke.js +5 -3
  1086. package/dist/server/testing/smoke.js.map +1 -1
  1087. package/dist/server/testing/types.d.ts +1 -1
  1088. package/dist/server/testing/zod-introspect.d.ts +1 -1
  1089. package/dist/server/testing/zod-introspect.js +178 -5
  1090. package/dist/server/testing/zod-introspect.js.map +1 -1
  1091. package/dist/stt/index.d.ts +5 -0
  1092. package/dist/stt/index.js +6 -0
  1093. package/dist/stt/index.js.map +1 -0
  1094. package/dist/sync/app-setup-client.d.ts +46 -0
  1095. package/dist/sync/app-setup-client.js +137 -0
  1096. package/dist/sync/app-setup-client.js.map +1 -0
  1097. package/dist/sync/capability-report.d.ts +41 -0
  1098. package/dist/sync/capability-report.js +48 -0
  1099. package/dist/sync/capability-report.js.map +1 -0
  1100. package/dist/sync/connection-lookup.d.ts +19 -0
  1101. package/dist/sync/connection-lookup.js +56 -0
  1102. package/dist/sync/connection-lookup.js.map +1 -0
  1103. package/dist/sync/control-plane-client.d.ts +69 -0
  1104. package/dist/sync/control-plane-client.js +182 -0
  1105. package/dist/sync/control-plane-client.js.map +1 -0
  1106. package/dist/sync/deployment-selector.d.ts +9 -0
  1107. package/dist/sync/deployment-selector.js +26 -0
  1108. package/dist/sync/deployment-selector.js.map +1 -0
  1109. package/dist/sync/fetch-sse-push.d.ts +6 -0
  1110. package/dist/sync/fetch-sse-push.js +42 -0
  1111. package/dist/sync/fetch-sse-push.js.map +1 -0
  1112. package/dist/sync/index.d.ts +26 -0
  1113. package/dist/sync/index.js +17 -0
  1114. package/dist/sync/index.js.map +1 -0
  1115. package/dist/sync/jwks-provider.d.ts +14 -0
  1116. package/dist/sync/jwks-provider.js +53 -0
  1117. package/dist/sync/jwks-provider.js.map +1 -0
  1118. package/dist/sync/local-deployment-validator.d.ts +30 -0
  1119. package/dist/sync/local-deployment-validator.js +60 -0
  1120. package/dist/sync/local-deployment-validator.js.map +1 -0
  1121. package/dist/sync/managed-sync.d.ts +40 -0
  1122. package/dist/sync/managed-sync.js +94 -0
  1123. package/dist/sync/managed-sync.js.map +1 -0
  1124. package/dist/sync/materialize-deployment.d.ts +7 -0
  1125. package/dist/sync/materialize-deployment.js +63 -0
  1126. package/dist/sync/materialize-deployment.js.map +1 -0
  1127. package/dist/sync/runtime-connect-client.d.ts +23 -0
  1128. package/dist/sync/runtime-connect-client.js +182 -0
  1129. package/dist/sync/runtime-connect-client.js.map +1 -0
  1130. package/dist/sync/runtime-setup-client.d.ts +62 -0
  1131. package/dist/sync/runtime-setup-client.js +153 -0
  1132. package/dist/sync/runtime-setup-client.js.map +1 -0
  1133. package/dist/sync/signature-verifier.d.ts +39 -0
  1134. package/dist/sync/signature-verifier.js +97 -0
  1135. package/dist/sync/signature-verifier.js.map +1 -0
  1136. package/dist/sync/state-store.d.ts +24 -0
  1137. package/dist/sync/state-store.js +47 -0
  1138. package/dist/sync/state-store.js.map +1 -0
  1139. package/dist/sync/sync-manager.d.ts +27 -0
  1140. package/dist/sync/sync-manager.js +170 -0
  1141. package/dist/sync/sync-manager.js.map +1 -0
  1142. package/dist/types.d.ts +68 -16
  1143. package/dist/types.js +30 -2
  1144. package/dist/types.js.map +1 -1
  1145. package/embed/package.json +5 -0
  1146. package/package.json +187 -46
  1147. package/runtime/ai-sdk/package.json +5 -0
  1148. package/runtime/package.json +5 -0
  1149. package/skills/README.md +26 -92
  1150. package/skills/building-glirastes-chat-ui/SKILL.md +358 -343
  1151. package/skills/describing-glirastes-tools/SKILL.md +180 -0
  1152. package/skills/integrating-glirastes-nextjs/SKILL.md +142 -302
  1153. package/skills/integrating-glirastes-web/SKILL.md +165 -0
  1154. package/skills/maintaining-glirastes-tools/SKILL.md +133 -461
  1155. package/skills/migrating-to-glirastes/SKILL.md +112 -0
  1156. package/skills/setting-up-glirastes/SKILL.md +194 -0
  1157. package/skills/setting-up-glirastes/agents/openai.yaml +4 -0
  1158. package/skills/setting-up-glirastes/references/artifact-contract.md +40 -0
  1159. package/skills/setting-up-glirastes/scripts/validate-artifact.ts +23 -0
  1160. package/skills/setting-up-glirastes/templates/interview.md +19 -0
  1161. package/stt/package.json +5 -0
  1162. package/dist/cjs/codegen/asset-sync.d.ts +0 -20
  1163. package/dist/cjs/codegen/asset-sync.js +0 -28
  1164. package/dist/cjs/codegen/coverage.d.ts +0 -66
  1165. package/dist/cjs/codegen/coverage.js +0 -408
  1166. package/dist/cjs/codegen/endpoint-scanner.d.ts +0 -16
  1167. package/dist/cjs/codegen/endpoint-scanner.js +0 -197
  1168. package/dist/cjs/codegen/mcp-generator.d.ts +0 -50
  1169. package/dist/cjs/codegen/mcp-generator.js +0 -803
  1170. package/dist/cjs/codegen/module-generator.d.ts +0 -11
  1171. package/dist/cjs/codegen/module-generator.js +0 -353
  1172. package/dist/cjs/codegen/nestjs-scanner.d.ts +0 -43
  1173. package/dist/cjs/codegen/nestjs-scanner.js +0 -241
  1174. package/dist/cjs/codegen/output-recommender.d.ts +0 -23
  1175. package/dist/cjs/codegen/output-recommender.js +0 -33
  1176. package/dist/cjs/codegen/scaffolder.d.ts +0 -36
  1177. package/dist/cjs/codegen/scaffolder.js +0 -262
  1178. package/dist/cjs/codegen/skill-generator.d.ts +0 -49
  1179. package/dist/cjs/codegen/skill-generator.js +0 -967
  1180. package/dist/cjs/codegen/ui-scanner.d.ts +0 -24
  1181. package/dist/cjs/codegen/ui-scanner.js +0 -202
  1182. package/dist/cjs/codegen/validator.d.ts +0 -35
  1183. package/dist/cjs/codegen/validator.js +0 -292
  1184. package/dist/cjs/openapi/index.d.ts +0 -78
  1185. package/dist/cjs/openapi/index.js +0 -347
  1186. package/dist/cjs/react/components/wavesurfer-loader.d.ts +0 -5
  1187. package/dist/cjs/react/components/wavesurfer-loader.js +0 -36
  1188. package/dist/cjs/react/transports/langgraph/index.d.ts +0 -2
  1189. package/dist/cjs/react/transports/langgraph/index.js +0 -8
  1190. package/dist/cjs/react/transports/langgraph/langgraph-ai-chat.d.ts +0 -62
  1191. package/dist/cjs/react/transports/langgraph/langgraph-ai-chat.js +0 -94
  1192. package/dist/cjs/react/transports/langgraph.d.ts +0 -71
  1193. package/dist/cjs/react/transports/langgraph.js +0 -369
  1194. package/dist/cjs/server/adapters/nestjs/chat/ai-chat-auth.guard.d.ts +0 -10
  1195. package/dist/cjs/server/adapters/nestjs/chat/ai-chat-auth.guard.js +0 -42
  1196. package/dist/cjs/server/adapters/nestjs/chat/ai-chat-module-options.interface.d.ts +0 -32
  1197. package/dist/cjs/server/adapters/nestjs/chat/ai-chat-module-options.interface.js +0 -4
  1198. package/dist/cjs/server/adapters/nestjs/chat/ai-chat.controller.d.ts +0 -11
  1199. package/dist/cjs/server/adapters/nestjs/chat/ai-chat.controller.js +0 -80
  1200. package/dist/cjs/server/adapters/nestjs/chat/ai-chat.module.d.ts +0 -9
  1201. package/dist/cjs/server/adapters/nestjs/chat/ai-chat.module.js +0 -119
  1202. package/dist/cjs/server/adapters/nestjs/chat/ai-chat.service.d.ts +0 -13
  1203. package/dist/cjs/server/adapters/nestjs/chat/ai-chat.service.js +0 -131
  1204. package/dist/cjs/server/adapters/nestjs/chat/dto/ai-chat-request.dto.d.ts +0 -7
  1205. package/dist/cjs/server/adapters/nestjs/chat/dto/ai-chat-request.dto.js +0 -52
  1206. package/dist/cjs/server/adapters/nestjs/chat/dto/chat-message-part.dto.d.ts +0 -19
  1207. package/dist/cjs/server/adapters/nestjs/chat/dto/chat-message-part.dto.js +0 -108
  1208. package/dist/cjs/server/adapters/nestjs/chat/dto/chat-message.dto.d.ts +0 -8
  1209. package/dist/cjs/server/adapters/nestjs/chat/dto/chat-message.dto.js +0 -59
  1210. package/dist/cjs/server/adapters/nestjs/chat/dto/index.d.ts +0 -3
  1211. package/dist/cjs/server/adapters/nestjs/chat/dto/index.js +0 -9
  1212. package/dist/cjs/server/adapters/nestjs/chat/index.d.ts +0 -3
  1213. package/dist/cjs/server/adapters/nestjs/chat/index.js +0 -9
  1214. package/dist/cjs/server/adapters/nestjs/chat/speech-stream.gateway.d.ts +0 -4
  1215. package/dist/cjs/server/adapters/nestjs/chat/speech-stream.gateway.js +0 -73
  1216. package/dist/cjs/server/adapters/nestjs/chat/ws-loader.d.ts +0 -5
  1217. package/dist/cjs/server/adapters/nestjs/chat/ws-loader.js +0 -72
  1218. package/dist/cjs/server/adapters/nestjs/decorators/ai-module.decorator.d.ts +0 -6
  1219. package/dist/cjs/server/adapters/nestjs/decorators/ai-module.decorator.js +0 -13
  1220. package/dist/cjs/server/adapters/nestjs/decorators/ai-param.decorator.d.ts +0 -5
  1221. package/dist/cjs/server/adapters/nestjs/decorators/ai-param.decorator.js +0 -15
  1222. package/dist/cjs/server/adapters/nestjs/decorators/ai-tool.decorator.d.ts +0 -6
  1223. package/dist/cjs/server/adapters/nestjs/decorators/ai-tool.decorator.js +0 -22
  1224. package/dist/cjs/server/adapters/nestjs/decorators/constants.d.ts +0 -4
  1225. package/dist/cjs/server/adapters/nestjs/decorators/constants.js +0 -7
  1226. package/dist/cjs/server/adapters/nestjs/index.d.ts +0 -14
  1227. package/dist/cjs/server/adapters/nestjs/index.js +0 -42
  1228. package/dist/cjs/server/adapters/nestjs/metadata.d.ts +0 -39
  1229. package/dist/cjs/server/adapters/nestjs/metadata.js +0 -36
  1230. package/dist/cjs/server/adapters/nestjs/module/ai-tools-explorer.service.d.ts +0 -36
  1231. package/dist/cjs/server/adapters/nestjs/module/ai-tools-explorer.service.js +0 -159
  1232. package/dist/cjs/server/adapters/nestjs/module/ai-tools.module.d.ts +0 -37
  1233. package/dist/cjs/server/adapters/nestjs/module/ai-tools.module.js +0 -44
  1234. package/dist/cjs/server/adapters/nestjs/module/ai-tools.service.d.ts +0 -28
  1235. package/dist/cjs/server/adapters/nestjs/module/ai-tools.service.js +0 -41
  1236. package/dist/cjs/server/adapters/nestjs/scanner/nestjs-scanner.d.ts +0 -16
  1237. package/dist/cjs/server/adapters/nestjs/scanner/nestjs-scanner.js +0 -117
  1238. package/dist/cjs/server/adapters/nestjs/scanner/schema-builder.d.ts +0 -26
  1239. package/dist/cjs/server/adapters/nestjs/scanner/schema-builder.js +0 -259
  1240. package/dist/cjs/server/adapters/nestjs/swagger.d.ts +0 -7
  1241. package/dist/cjs/server/adapters/nestjs/swagger.js +0 -39
  1242. package/dist/cli/commands/check-upgrade.d.ts +0 -15
  1243. package/dist/cli/commands/check-upgrade.js +0 -138
  1244. package/dist/cli/commands/check-upgrade.js.map +0 -1
  1245. package/dist/cli/commands/test.d.ts +0 -8
  1246. package/dist/cli/commands/test.js +0 -76
  1247. package/dist/cli/commands/test.js.map +0 -1
  1248. package/dist/cli/utils/changelog-parser.d.ts +0 -13
  1249. package/dist/cli/utils/changelog-parser.js +0 -89
  1250. package/dist/cli/utils/changelog-parser.js.map +0 -1
  1251. package/dist/cli/utils/commit-parser.d.ts +0 -8
  1252. package/dist/cli/utils/commit-parser.js +0 -23
  1253. package/dist/cli/utils/commit-parser.js.map +0 -1
  1254. package/dist/cli/utils/gap-detector.d.ts +0 -14
  1255. package/dist/cli/utils/gap-detector.js +0 -65
  1256. package/dist/cli/utils/gap-detector.js.map +0 -1
  1257. package/dist/cli/utils/get-cli-version.d.ts +0 -2
  1258. package/dist/cli/utils/get-cli-version.js +0 -10
  1259. package/dist/cli/utils/get-cli-version.js.map +0 -1
  1260. package/dist/codegen/asset-sync.d.ts +0 -20
  1261. package/dist/codegen/asset-sync.js +0 -26
  1262. package/dist/codegen/asset-sync.js.map +0 -1
  1263. package/dist/codegen/coverage.d.ts +0 -66
  1264. package/dist/codegen/coverage.js +0 -372
  1265. package/dist/codegen/coverage.js.map +0 -1
  1266. package/dist/codegen/endpoint-scanner.d.ts +0 -16
  1267. package/dist/codegen/endpoint-scanner.js +0 -161
  1268. package/dist/codegen/endpoint-scanner.js.map +0 -1
  1269. package/dist/codegen/mcp-generator.d.ts +0 -50
  1270. package/dist/codegen/mcp-generator.js +0 -801
  1271. package/dist/codegen/mcp-generator.js.map +0 -1
  1272. package/dist/codegen/module-generator.d.ts +0 -11
  1273. package/dist/codegen/module-generator.js +0 -351
  1274. package/dist/codegen/module-generator.js.map +0 -1
  1275. package/dist/codegen/nestjs-scanner.d.ts +0 -43
  1276. package/dist/codegen/nestjs-scanner.js +0 -239
  1277. package/dist/codegen/nestjs-scanner.js.map +0 -1
  1278. package/dist/codegen/output-recommender.d.ts +0 -23
  1279. package/dist/codegen/output-recommender.js +0 -31
  1280. package/dist/codegen/output-recommender.js.map +0 -1
  1281. package/dist/codegen/scaffolder.d.ts +0 -36
  1282. package/dist/codegen/scaffolder.js +0 -259
  1283. package/dist/codegen/scaffolder.js.map +0 -1
  1284. package/dist/codegen/skill-generator.d.ts +0 -49
  1285. package/dist/codegen/skill-generator.js +0 -965
  1286. package/dist/codegen/skill-generator.js.map +0 -1
  1287. package/dist/codegen/ui-scanner.d.ts +0 -24
  1288. package/dist/codegen/ui-scanner.js +0 -197
  1289. package/dist/codegen/ui-scanner.js.map +0 -1
  1290. package/dist/codegen/validator.d.ts +0 -35
  1291. package/dist/codegen/validator.js +0 -256
  1292. package/dist/codegen/validator.js.map +0 -1
  1293. package/dist/openapi/demo-generate.d.ts +0 -1
  1294. package/dist/openapi/demo-generate.js +0 -15
  1295. package/dist/openapi/demo-generate.js.map +0 -1
  1296. package/dist/openapi/index.d.ts +0 -78
  1297. package/dist/openapi/index.js +0 -341
  1298. package/dist/openapi/index.js.map +0 -1
  1299. package/dist/react/components/wavesurfer-loader.d.ts +0 -5
  1300. package/dist/react/components/wavesurfer-loader.js +0 -34
  1301. package/dist/react/components/wavesurfer-loader.js.map +0 -1
  1302. package/dist/react/transports/langgraph/index.d.ts +0 -2
  1303. package/dist/react/transports/langgraph/index.js +0 -3
  1304. package/dist/react/transports/langgraph/index.js.map +0 -1
  1305. package/dist/react/transports/langgraph/langgraph-ai-chat.d.ts +0 -62
  1306. package/dist/react/transports/langgraph/langgraph-ai-chat.js +0 -92
  1307. package/dist/react/transports/langgraph/langgraph-ai-chat.js.map +0 -1
  1308. package/dist/react/transports/langgraph.d.ts +0 -71
  1309. package/dist/react/transports/langgraph.js +0 -366
  1310. package/dist/react/transports/langgraph.js.map +0 -1
  1311. package/dist/server/adapters/nestjs/chat/ai-chat-auth.guard.d.ts +0 -10
  1312. package/dist/server/adapters/nestjs/chat/ai-chat-auth.guard.js +0 -40
  1313. package/dist/server/adapters/nestjs/chat/ai-chat-auth.guard.js.map +0 -1
  1314. package/dist/server/adapters/nestjs/chat/ai-chat-module-options.interface.d.ts +0 -32
  1315. package/dist/server/adapters/nestjs/chat/ai-chat-module-options.interface.js +0 -2
  1316. package/dist/server/adapters/nestjs/chat/ai-chat-module-options.interface.js.map +0 -1
  1317. package/dist/server/adapters/nestjs/chat/ai-chat.controller.d.ts +0 -11
  1318. package/dist/server/adapters/nestjs/chat/ai-chat.controller.js +0 -78
  1319. package/dist/server/adapters/nestjs/chat/ai-chat.controller.js.map +0 -1
  1320. package/dist/server/adapters/nestjs/chat/ai-chat.module.d.ts +0 -9
  1321. package/dist/server/adapters/nestjs/chat/ai-chat.module.js +0 -117
  1322. package/dist/server/adapters/nestjs/chat/ai-chat.module.js.map +0 -1
  1323. package/dist/server/adapters/nestjs/chat/ai-chat.service.d.ts +0 -13
  1324. package/dist/server/adapters/nestjs/chat/ai-chat.service.js +0 -129
  1325. package/dist/server/adapters/nestjs/chat/ai-chat.service.js.map +0 -1
  1326. package/dist/server/adapters/nestjs/chat/dto/ai-chat-request.dto.d.ts +0 -7
  1327. package/dist/server/adapters/nestjs/chat/dto/ai-chat-request.dto.js +0 -49
  1328. package/dist/server/adapters/nestjs/chat/dto/ai-chat-request.dto.js.map +0 -1
  1329. package/dist/server/adapters/nestjs/chat/dto/chat-message-part.dto.d.ts +0 -19
  1330. package/dist/server/adapters/nestjs/chat/dto/chat-message-part.dto.js +0 -105
  1331. package/dist/server/adapters/nestjs/chat/dto/chat-message-part.dto.js.map +0 -1
  1332. package/dist/server/adapters/nestjs/chat/dto/chat-message.dto.d.ts +0 -8
  1333. package/dist/server/adapters/nestjs/chat/dto/chat-message.dto.js +0 -56
  1334. package/dist/server/adapters/nestjs/chat/dto/chat-message.dto.js.map +0 -1
  1335. package/dist/server/adapters/nestjs/chat/dto/index.d.ts +0 -3
  1336. package/dist/server/adapters/nestjs/chat/dto/index.js +0 -4
  1337. package/dist/server/adapters/nestjs/chat/dto/index.js.map +0 -1
  1338. package/dist/server/adapters/nestjs/chat/index.d.ts +0 -3
  1339. package/dist/server/adapters/nestjs/chat/index.js +0 -3
  1340. package/dist/server/adapters/nestjs/chat/index.js.map +0 -1
  1341. package/dist/server/adapters/nestjs/chat/speech-stream.gateway.d.ts +0 -4
  1342. package/dist/server/adapters/nestjs/chat/speech-stream.gateway.js +0 -71
  1343. package/dist/server/adapters/nestjs/chat/speech-stream.gateway.js.map +0 -1
  1344. package/dist/server/adapters/nestjs/chat/ws-loader.d.ts +0 -5
  1345. package/dist/server/adapters/nestjs/chat/ws-loader.js +0 -37
  1346. package/dist/server/adapters/nestjs/chat/ws-loader.js.map +0 -1
  1347. package/dist/server/adapters/nestjs/decorators/ai-module.decorator.d.ts +0 -6
  1348. package/dist/server/adapters/nestjs/decorators/ai-module.decorator.js +0 -11
  1349. package/dist/server/adapters/nestjs/decorators/ai-module.decorator.js.map +0 -1
  1350. package/dist/server/adapters/nestjs/decorators/ai-param.decorator.d.ts +0 -5
  1351. package/dist/server/adapters/nestjs/decorators/ai-param.decorator.js +0 -13
  1352. package/dist/server/adapters/nestjs/decorators/ai-param.decorator.js.map +0 -1
  1353. package/dist/server/adapters/nestjs/decorators/ai-tool.decorator.d.ts +0 -6
  1354. package/dist/server/adapters/nestjs/decorators/ai-tool.decorator.js +0 -20
  1355. package/dist/server/adapters/nestjs/decorators/ai-tool.decorator.js.map +0 -1
  1356. package/dist/server/adapters/nestjs/decorators/constants.d.ts +0 -4
  1357. package/dist/server/adapters/nestjs/decorators/constants.js +0 -5
  1358. package/dist/server/adapters/nestjs/decorators/constants.js.map +0 -1
  1359. package/dist/server/adapters/nestjs/index.d.ts +0 -14
  1360. package/dist/server/adapters/nestjs/index.js +0 -20
  1361. package/dist/server/adapters/nestjs/index.js.map +0 -1
  1362. package/dist/server/adapters/nestjs/metadata.d.ts +0 -39
  1363. package/dist/server/adapters/nestjs/metadata.js +0 -30
  1364. package/dist/server/adapters/nestjs/metadata.js.map +0 -1
  1365. package/dist/server/adapters/nestjs/module/ai-tools-explorer.service.d.ts +0 -36
  1366. package/dist/server/adapters/nestjs/module/ai-tools-explorer.service.js +0 -156
  1367. package/dist/server/adapters/nestjs/module/ai-tools-explorer.service.js.map +0 -1
  1368. package/dist/server/adapters/nestjs/module/ai-tools.module.d.ts +0 -37
  1369. package/dist/server/adapters/nestjs/module/ai-tools.module.js +0 -42
  1370. package/dist/server/adapters/nestjs/module/ai-tools.module.js.map +0 -1
  1371. package/dist/server/adapters/nestjs/module/ai-tools.service.d.ts +0 -28
  1372. package/dist/server/adapters/nestjs/module/ai-tools.service.js +0 -38
  1373. package/dist/server/adapters/nestjs/module/ai-tools.service.js.map +0 -1
  1374. package/dist/server/adapters/nestjs/scanner/nestjs-scanner.d.ts +0 -16
  1375. package/dist/server/adapters/nestjs/scanner/nestjs-scanner.js +0 -115
  1376. package/dist/server/adapters/nestjs/scanner/nestjs-scanner.js.map +0 -1
  1377. package/dist/server/adapters/nestjs/scanner/schema-builder.d.ts +0 -26
  1378. package/dist/server/adapters/nestjs/scanner/schema-builder.js +0 -255
  1379. package/dist/server/adapters/nestjs/scanner/schema-builder.js.map +0 -1
  1380. package/dist/server/adapters/nestjs/swagger.d.ts +0 -7
  1381. package/dist/server/adapters/nestjs/swagger.js +0 -37
  1382. package/dist/server/adapters/nestjs/swagger.js.map +0 -1
  1383. package/openapi/package.json +0 -5
  1384. package/react/langgraph/package.json +0 -5
  1385. package/server/nestjs/package.json +0 -5
  1386. package/skills/integrating-glirastes-nestjs/SKILL.md +0 -346
  1387. package/skills/integrating-glirastes-nextjs-with-nestjs-backend/SKILL.md +0 -359
package/dist/cli/index.js CHANGED
@@ -1,4 +1,24 @@
1
- import { generateEndpointRegistry, generateUiRegistry, generateActionIdRegistry, generateModuleRegistry, validateAiTools, formatValidationReport, checkAiCoverage, formatCoverageReport, scaffoldAiTool, formatScaffoldResult, generateAgentSkills, generateMcpServer, recommendOutputFormat, syncAssetToGlirastes, } from '../codegen/index.js';
1
+ import { readFileSync, mkdirSync, writeFileSync, existsSync } from 'node:fs';
2
+ import { dirname, join, resolve } from 'node:path';
3
+ import { createInterface } from 'node:readline/promises';
4
+ import { AppSetupArtifactSchema } from '../contracts/app-setup.js';
5
+ import { discoverFoundationExecutions, FoundationExecutionInventorySchema, } from '../codegen/execution-inventory.js';
6
+ import { writeNextAppRouteScan } from '../codegen/route-scanner.js';
7
+ import { buildManifests, validateWorkspace, } from './commands/validate-build.js';
8
+ import { AppSetupClient } from '../sync/app-setup-client.js';
9
+ import { installSkills, } from './commands/install-skills.js';
10
+ import { parseLocalExecutionInventory, RuntimeSetupClient, } from '../sync/runtime-setup-client.js';
11
+ import { defaultWizardDependencies, isWizardInvocation, runSetupWizard, WizardStopped, } from './commands/setup-wizard.js';
12
+ import { FoundationDiagnosticError } from '../diagnostics/index.js';
13
+ import { assertSetupPlanConfirmation, createSetupPlan, } from './commands/setup-plan.js';
14
+ import { applySetupPlan } from './commands/apply-setup-plan.js';
15
+ import { createDoctorReport, formatDoctorReport, } from './commands/doctor.js';
16
+ import { runConnect, } from './commands/connect.js';
17
+ import { runSync } from './commands/sync.js';
18
+ import { inspectSetupProject, formatSetupProjectInspection } from './commands/project-inspection.js';
19
+ import { runAgentSetup } from './commands/agent-setup.js';
20
+ import { writeCiWorkflow } from './commands/ci-workflow.js';
21
+ import { runToolsCommand } from './commands/tools/index.js';
2
22
  function getFlagValue(args, flag) {
3
23
  const index = args.indexOf(flag);
4
24
  return index >= 0 ? args[index + 1] : undefined;
@@ -6,629 +26,593 @@ function getFlagValue(args, flag) {
6
26
  function hasFlag(args, flag) {
7
27
  return args.includes(flag);
8
28
  }
29
+ /** The command overview printed by `glirastes --help`. */
30
+ export const CLI_USAGE = 'Usage: glirastes init [--agent codex|claude] [--root] [--dry-run] [--json]\n'
31
+ + ' start integration with your existing coding agent\n'
32
+ + ' glirastes init --ci github [--enrich-on <branch,...>] [--enrich-on-main] [--ci-environment <name>] [--force] [--root] [--json]\n'
33
+ + ' write the GitHub workflow: model-free tool check, Pro managed tool job\n'
34
+ + ' glirastes setup [--dry-run] [--managed] [--json]\n'
35
+ + ' detect, validate and atomically install local artifacts\n'
36
+ + ' glirastes connect [--base-url <url>] [--json]\n'
37
+ + ' pair an existing local setup with the Platform (--base-url or GLIRASTES_CONTROL_PLANE_URL only for self-hosted)\n'
38
+ + ' glirastes sync [--json]\n'
39
+ + ' upload the current local setup without reassessment\n'
40
+ + ' glirastes setup guided [options]\n'
41
+ + ' run the legacy interactive setup interview\n'
42
+ + ' glirastes setup inspect [--root] [--json]\n'
43
+ + ' inspect local manifests before app integration\n'
44
+ + ' glirastes setup <scan|sync|status> [options]\n'
45
+ + ' the same steps, one at a time\n'
46
+ + ' glirastes scan [--output] [--sync] [--execution-inventory]\n'
47
+ + ' glirastes install [--host a,b] [--symlink] [--force] '
48
+ + '[--dry-run]\n'
49
+ + ' glirastes validate [--root] [--app-id]\n'
50
+ + ' glirastes doctor [--root] [--managed] [--json] [--verbose]\n'
51
+ + ' glirastes build [--root] [--app-id] [--output]\n'
52
+ + ' glirastes tools <refresh|check|status|resolve|describe|eval|policy|verify|enrich> [options]\n'
53
+ + ' derive chat tools from the code, check them, show them and print agent work lists\n';
54
+ const HELP_FLAGS = new Set(['--help', '-h', 'help']);
55
+ /** The usage entries of one command, cut out of the overview (an entry is its line plus indented notes). */
56
+ function commandUsage(command) {
57
+ const entries = [];
58
+ for (const line of CLI_USAGE.trimEnd().split('\n')) {
59
+ if (/^(Usage:|\s{7})\s*glirastes /.test(line))
60
+ entries.push([line]);
61
+ else
62
+ entries.at(-1)?.push(line);
63
+ }
64
+ const mine = entries.filter((entry) => new RegExp(`glirastes ${command}( |$)`).test(entry[0]));
65
+ return mine.flat().map((line) => line.replace(/^Usage: /, '')).join('\n');
66
+ }
67
+ const VERSION_FLAGS = new Set(['--version', '-v']);
68
+ /** Version of the installed glirastes package (src/cli and dist/cli both sit two levels below it). */
69
+ function packageVersion() {
70
+ const manifest = JSON.parse(readFileSync(new URL('../../package.json', import.meta.url), 'utf8'));
71
+ return manifest.version;
72
+ }
9
73
  function parseCommand(args) {
10
74
  const [command, ...rest] = args;
11
- const validCommands = [
12
- 'generate',
13
- 'validate',
14
- 'generate-tools',
15
- 'generate-endpoint-tools',
16
- 'generate-ui-tools',
17
- 'generate-modules',
18
- 'generate-skills',
19
- 'generate-mcp-server',
20
- 'generate-auto',
21
- 'install-skills',
22
- 'validate-tools',
23
- 'coverage',
24
- 'scaffold',
25
- 'test',
26
- 'check-upgrade',
27
- 'sync',
28
- ];
29
- if (!command || !validCommands.includes(command)) {
30
- throw new Error(`Usage: glirastes <command> [options]\n\nCommands:\n` +
31
- ` generate Generate endpoint tools from OpenAPI spec\n` +
32
- ` validate Validate OpenAPI spec\n` +
33
- ` generate-tools Generate all registries (endpoint + UI + modules)\n` +
34
- ` generate-endpoint-tools Generate endpoint tool registry\n` +
35
- ` generate-ui-tools Generate UI tool registry + action IDs\n` +
36
- ` generate-modules Generate module registry\n` +
37
- ` generate-skills Generate agent skill files (Claude Code / Codex) [--sync] [--remote]\n` +
38
- ` generate-mcp-server Generate MCP server project from tool definitions [--sync] [--remote]\n` +
39
- ` generate-auto Auto-detect best output format and generate\n` +
40
- ` install-skills Install bundled agent skills (default: ./.claude/skills) [-g/--global ~/.claude/skills] [--target <dir>] [--stack nextjs|nestjs|nextjs+nestjs|all] [--symlink] [--force] [--dry-run]\n` +
41
- ` validate-tools Validate AI tool configuration\n` +
42
- ` coverage Check AI tool coverage\n` +
43
- ` scaffold Scaffold ai-tool.ts from route.ts\n` +
44
- ` test Scaffold AI behavior test file\n` +
45
- ` check-upgrade Analyze upgrade gaps from release notes (--from-version)\n` +
46
- ` sync Sync tool schemas to Glirastes platform\n`);
47
- }
48
- return { command: command, rest };
49
- }
50
- export async function runCli(args) {
51
- const { command, rest } = parseCommand(args);
52
- // OpenAPI commands — lazy-load openapi-gen to avoid requiring it at startup
53
- if (command === 'validate') {
54
- const { validateOpenApiFile } = await import('../openapi/index.js');
55
- const inputPath = getFlagValue(rest, '--input');
56
- if (!inputPath)
57
- throw new Error('--input is required.');
58
- const validation = await validateOpenApiFile({ inputPath });
59
- for (const warning of validation.warnings)
60
- console.warn(warning);
61
- if (validation.errors.length > 0) {
62
- throw new Error(`OpenAPI validation failed:\n${validation.errors.join('\n')}`);
63
- }
64
- console.log(`OpenAPI valid. Enabled AI tools: ${validation.enabledTools}. Warnings: ${validation.warnings.length}.`);
65
- return;
75
+ if (command === undefined || HELP_FLAGS.has(command))
76
+ return { command: 'help', rest };
77
+ if (VERSION_FLAGS.has(command))
78
+ return { command: 'version', rest };
79
+ if (command !== 'init'
80
+ && command !== 'scan'
81
+ && command !== 'setup'
82
+ && command !== 'connect'
83
+ && command !== 'sync'
84
+ && command !== 'doctor'
85
+ && command !== 'install'
86
+ && command !== 'validate'
87
+ && command !== 'build'
88
+ && command !== 'tools') {
89
+ throw new FoundationDiagnosticError({
90
+ code: 'E-SETUP-030',
91
+ operation: 'cli',
92
+ message: `Unknown command '${command}'.`,
93
+ remediation: 'Run glirastes --help to list the commands.',
94
+ });
66
95
  }
67
- if (command === 'generate') {
68
- const { generateFromOpenApiFile } = await import('../openapi/index.js');
69
- const inputPath = getFlagValue(rest, '--input');
70
- const outputPath = getFlagValue(rest, '--output');
71
- if (!inputPath)
72
- throw new Error('--input is required.');
73
- if (!outputPath)
74
- throw new Error('--output is required for generate.');
75
- const validation = await generateFromOpenApiFile({ inputPath, outputPath });
76
- for (const warning of validation.warnings)
77
- console.warn(warning);
78
- console.log(`Generated endpoint tools at ${outputPath}`);
79
- console.log(`Enabled AI tools: ${validation.enabledTools}. Warnings: ${validation.warnings.length}.`);
80
- return;
96
+ return { command, rest };
97
+ }
98
+ async function terminalAsk(question) {
99
+ if (!process.stdin.isTTY || !process.stdout.isTTY) {
100
+ throw new Error('Interactive input is unavailable. Pass --with-setup-skills or '
101
+ + '--without-setup-skills and --host when required.');
81
102
  }
82
- // Project-based commands — need rootDir
83
- const rootDir = getFlagValue(rest, '--root') ?? process.cwd();
84
- const quiet = hasFlag(rest, '--quiet');
85
- const ci = hasFlag(rest, '--ci');
86
- // Read glirastes config from package.json (supports monorepo scan/output config)
87
- const { readFileSync, existsSync } = await import('node:fs');
88
- const { join } = await import('node:path');
89
- const pkgJsonPath = join(rootDir, 'package.json');
90
- let glirastesConfig = {};
103
+ const prompt = createInterface({
104
+ input: process.stdin,
105
+ output: process.stdout,
106
+ });
91
107
  try {
92
- const pkg = JSON.parse(readFileSync(pkgJsonPath, 'utf-8'));
93
- glirastesConfig = (pkg.glirastes ?? {});
108
+ return await prompt.question(question);
94
109
  }
95
- catch {
96
- // No package.json or no glirastes field — use defaults
110
+ finally {
111
+ prompt.close();
97
112
  }
98
- // Derive nestjsDirs from scan config: dirs that contain NestJS controllers
99
- const nestjsDirs = (glirastesConfig.scan ?? [])
100
- .map(d => join(rootDir, d))
101
- .filter(d => existsSync(d));
102
- const options = {
103
- rootDir,
104
- quiet,
105
- outputDir: glirastesConfig.output,
106
- apiDir: glirastesConfig.apiDir,
107
- componentsDir: glirastesConfig.componentsDir,
108
- nestjsDirs: nestjsDirs.length > 0 ? nestjsDirs : undefined,
109
- nestjsApiPrefix: glirastesConfig.nestjsApiPrefix,
110
- };
111
- if (command === 'generate-tools') {
112
- const metaPath = getFlagValue(rest, '--meta');
113
- const generateOpts = options;
114
- await generateEndpointRegistry(generateOpts);
115
- await generateUiRegistry(generateOpts);
116
- await generateActionIdRegistry(generateOpts);
117
- // Only generate modules if there are tools with module metadata
118
- try {
119
- await generateModuleRegistry(generateOpts, metaPath);
120
- }
121
- catch {
122
- if (!quiet)
123
- console.log('\u2139 Module generation skipped (no module metadata found)');
113
+ }
114
+ function parseHost(value) {
115
+ if (value === undefined)
116
+ return undefined;
117
+ if (value === 'codex' || value === 'claude' || value === 'gemini') {
118
+ return value;
119
+ }
120
+ throw new Error('Choose a host: codex, claude, or gemini.');
121
+ }
122
+ /** `--host claude,codex` — several agent hosts share one install. */
123
+ function parseHosts(value) {
124
+ if (value === undefined)
125
+ return undefined;
126
+ const hosts = value
127
+ .split(',')
128
+ .map((entry) => entry.trim())
129
+ .filter(Boolean)
130
+ .map((entry) => {
131
+ const parsed = parseHost(entry);
132
+ if (!parsed)
133
+ throw new Error('Choose a host: codex, claude, or gemini.');
134
+ return parsed;
135
+ });
136
+ return hosts.length > 0 ? [...new Set(hosts)] : undefined;
137
+ }
138
+ async function runInstall(rest, dependencies) {
139
+ if (hasFlag(rest, '--with-setup-skills')
140
+ && hasFlag(rest, '--without-setup-skills')) {
141
+ throw new Error('Choose either --with-setup-skills or --without-setup-skills.');
142
+ }
143
+ const ask = dependencies.ask ?? terminalAsk;
144
+ let includeSetupSkills = hasFlag(rest, '--with-setup-skills');
145
+ if (!includeSetupSkills
146
+ && !hasFlag(rest, '--without-setup-skills')) {
147
+ const consent = (await ask('Install the optional local Glirastes setup skills? [y/N] ')).trim().toLowerCase();
148
+ if (!['y', 'yes', 'n', 'no', ''].includes(consent)) {
149
+ throw new Error('Answer yes or no for setup skills.');
124
150
  }
125
- // Run coverage and validation
126
- const report = await checkAiCoverage(generateOpts);
127
- console.log(formatCoverageReport(report, { quiet }));
128
- const validation = await validateAiTools(generateOpts);
129
- if (validation.issues.length > 0) {
130
- console.log(formatValidationReport(validation, { quiet }));
151
+ includeSetupSkills = consent === 'y' || consent === 'yes';
152
+ }
153
+ let hosts = parseHosts(getFlagValue(rest, '--host'));
154
+ if (includeSetupSkills && !hosts) {
155
+ hosts = parseHosts((await ask('Choose the setup hosts (codex, claude, gemini; comma-separated): ')).trim().toLowerCase());
156
+ }
157
+ await installSkills({
158
+ rootDir: getFlagValue(rest, '--root') ?? process.cwd(),
159
+ target: getFlagValue(rest, '--target'),
160
+ global: hasFlag(rest, '--global'),
161
+ symlink: hasFlag(rest, '--symlink'),
162
+ force: hasFlag(rest, '--force'),
163
+ dryRun: hasFlag(rest, '--dry-run'),
164
+ includeSetupSkills,
165
+ hosts,
166
+ });
167
+ }
168
+ function setupConnection(rest) {
169
+ const baseUrl = getFlagValue(rest, '--base-url')
170
+ ?? process.env.GLIRASTES_CONTROL_PLANE_URL;
171
+ const appId = getFlagValue(rest, '--app-id')
172
+ ?? process.env.GLIRASTES_APP_ID;
173
+ // One key, one variable: GLIRASTES_API_KEY.
174
+ const setupApiKey = process.env.GLIRASTES_API_KEY;
175
+ if (!baseUrl) {
176
+ throw new FoundationDiagnosticError({
177
+ code: 'E-SETUP-001',
178
+ operation: 'setup.connection',
179
+ message: 'GLIRASTES_CONTROL_PLANE_URL is not configured for setup.',
180
+ remediation: 'configure-control-plane-url',
181
+ });
182
+ }
183
+ if (!appId) {
184
+ throw new FoundationDiagnosticError({
185
+ code: 'E-SCOPE-001',
186
+ operation: 'setup.connection',
187
+ message: 'GLIRASTES_APP_ID is not configured for setup.',
188
+ remediation: 'configure-app-id',
189
+ });
190
+ }
191
+ if (!setupApiKey) {
192
+ throw new FoundationDiagnosticError({
193
+ code: 'E-SETUP-002',
194
+ operation: 'setup.connection',
195
+ message: 'GLIRASTES_API_KEY is not configured for setup.',
196
+ remediation: 'configure-app-api-key',
197
+ });
198
+ }
199
+ return { baseUrl, appId, setupApiKey };
200
+ }
201
+ /**
202
+ * Explicit `glirastes setup guided` legacy interview. It delegates to the same
203
+ * steps the subcommands expose and adds no second implementation of them.
204
+ */
205
+ async function runSetupWizardCommand(rest) {
206
+ const rootDir = resolve(getFlagValue(rest, '--root') ?? process.cwd());
207
+ try {
208
+ const artifactPath = artifactPathFrom(rest);
209
+ if (existsSync(join(rootDir, artifactPath))) {
210
+ const plan = await createSetupPlan({
211
+ rootDir,
212
+ artifactPath,
213
+ previousArtifactPath: getFlagValue(rest, '--previous-artifact'),
214
+ });
215
+ assertSetupPlanConfirmation(plan, {
216
+ confirmLoosening: hasFlag(rest, '--confirm-loosening'),
217
+ planDigest: getFlagValue(rest, '--plan-digest'),
218
+ });
131
219
  }
132
- if (ci && !validation.passed) {
133
- process.exit(1);
220
+ await runSetupWizard({
221
+ rootDir,
222
+ io: {
223
+ isInteractive: Boolean(process.stdin.isTTY && process.stdout.isTTY),
224
+ log: (message) => { console.log(message); },
225
+ ask: terminalAsk,
226
+ },
227
+ hosts: parseHosts(getFlagValue(rest, '--host')),
228
+ assessmentMode: parseAssessmentMode(getFlagValue(rest, '--assessment')),
229
+ deps: {
230
+ ...defaultWizardDependencies(),
231
+ discover: async (root) => {
232
+ await runSetup(['scan', '--root', root, '--quiet']);
233
+ const discovery = JSON.parse(readFileSync(join(root, '.glirastes/setup-discovery.json'), 'utf8'));
234
+ return { executionCount: discovery.executions?.length ?? 0 };
235
+ },
236
+ assessmentArtifactExists: async (root) => existsSync(join(root, artifactPathFrom(rest))),
237
+ validate: async (root) => {
238
+ const appId = getFlagValue(rest, '--app-id');
239
+ if (!appId) {
240
+ throw new Error('--app-id is required to validate the workspace.');
241
+ }
242
+ await validateWorkspace({ rootDir: root, appId });
243
+ },
244
+ sync: async (root) => {
245
+ const run = await syncExplicitSetupArtifact(root, [
246
+ ...rest,
247
+ '--artifact', artifactPathFrom(rest),
248
+ ]);
249
+ return { runId: run.runId };
250
+ },
251
+ },
252
+ });
253
+ }
254
+ catch (error) {
255
+ if (error instanceof WizardStopped) {
256
+ process.exitCode = 1;
257
+ return;
134
258
  }
135
- return;
259
+ throw error;
136
260
  }
137
- if (command === 'generate-endpoint-tools') {
138
- await generateEndpointRegistry(options);
139
- return;
261
+ }
262
+ /** Preserve the guided interview's explicit assessed-artifact upload path. */
263
+ async function syncExplicitSetupArtifact(rootDir, options) {
264
+ const artifactPath = getFlagValue(options, '--artifact');
265
+ if (!artifactPath) {
266
+ throw new Error('--artifact is required for setup sync.');
140
267
  }
141
- if (command === 'generate-ui-tools') {
142
- await generateUiRegistry(options);
143
- await generateActionIdRegistry(options);
144
- return;
268
+ const artifact = AppSetupArtifactSchema.parse(JSON.parse(readFileSync(resolve(rootDir, artifactPath), 'utf8')));
269
+ const connection = setupConnection(options);
270
+ if (artifact.appId !== connection.appId) {
271
+ throw new Error('App setup artifact targets a different app');
272
+ }
273
+ const client = new AppSetupClient(connection);
274
+ await client.createRun({
275
+ runId: artifact.runId,
276
+ assessmentMode: artifact.assessmentMode,
277
+ discoveryDigest: artifact.discoveryDigest,
278
+ });
279
+ return client.uploadArtifact(artifact);
280
+ }
281
+ function artifactPathFrom(rest) {
282
+ return getFlagValue(rest, '--artifact')
283
+ ?? '.glirastes/app-setup-artifact.json';
284
+ }
285
+ function parseAssessmentMode(value) {
286
+ if (value === undefined)
287
+ return undefined;
288
+ if (value !== 'interview'
289
+ && value !== 'autonomous'
290
+ && value !== 'manual') {
291
+ throw new Error(`Unknown --assessment value: '${value}'. `
292
+ + 'Use interview, autonomous, or manual.');
145
293
  }
146
- if (command === 'generate-modules') {
147
- const metaPath = getFlagValue(rest, '--meta');
148
- await generateModuleRegistry(options, metaPath);
294
+ return value;
295
+ }
296
+ async function runSetup(rest, dependencies = {}) {
297
+ if (rest[0] === 'inspect') {
298
+ const inspection = await inspectSetupProject(getFlagValue(rest, '--root') ?? process.cwd());
299
+ console.log(hasFlag(rest, '--json')
300
+ ? JSON.stringify(inspection)
301
+ : formatSetupProjectInspection(inspection));
149
302
  return;
150
303
  }
151
- if (command === 'generate-skills') {
152
- const appName = getFlagValue(rest, '--app-name');
153
- const baseUrl = getFlagValue(rest, '--base-url');
154
- const authType = getFlagValue(rest, '--auth') ?? 'bearer';
155
- const tokenEnvVar = getFlagValue(rest, '--token-env') ?? 'API_TOKEN';
156
- const format = getFlagValue(rest, '--format'); // markdown, json, or both (default)
157
- const outputDir = getFlagValue(rest, '--output-dir');
158
- if (!appName)
159
- throw new Error('--app-name is required for generate-skills.');
160
- if (!baseUrl)
161
- throw new Error('--base-url is required for generate-skills.');
162
- const authStrategy = buildAuthStrategy(authType, tokenEnvVar, rest);
163
- const formats = format === 'markdown' ? ['markdown'] :
164
- format === 'json' ? ['json'] :
165
- ['markdown', 'json'];
166
- const skillConfig = { appName, baseUrl, auth: authStrategy };
167
- const result = await generateAgentSkills({
168
- ...options,
169
- skillConfig,
170
- formats,
171
- skillOutputDir: outputDir,
304
+ if (hasFlag(rest, '--dry-run')) {
305
+ const rootDir = resolve(getFlagValue(rest, '--root') ?? process.cwd());
306
+ const plan = await createSetupPlan({
307
+ rootDir,
308
+ artifactPath: getFlagValue(rest, '--artifact'),
309
+ previousArtifactPath: getFlagValue(rest, '--previous-artifact'),
310
+ inventoryPath: getFlagValue(rest, '--execution-inventory'),
311
+ promptBundlePath: getFlagValue(rest, '--prompt-bundle'),
312
+ managed: hasFlag(rest, '--managed'),
172
313
  });
173
- const remote = hasFlag(rest, '--remote');
174
- const shouldSync = rest.includes('--sync') || remote;
175
- if (shouldSync) {
176
- const apiKey = getFlagValue(rest, '--glirastes-key') ?? process.env.GLIRASTES_API_KEY;
177
- const glirasterUrl = getFlagValue(rest, '--glirastes-url') ?? process.env.GLIRASTES_URL ?? 'https://api.glirastes.chainmatics.io';
178
- if (!apiKey) {
179
- console.warn('⚠ --sync/--remote requires GLIRASTES_API_KEY or --glirastes-key');
180
- }
181
- else {
182
- const syncResult = await syncAssetToGlirastes({
183
- apiKey,
184
- glirasterUrl,
185
- name: appName,
186
- type: 'skill',
187
- version: '1.0.0',
188
- toolCount: result.toolCount,
189
- config: { appName, baseUrl, auth: authStrategy },
190
- toolManifest: { tools: result.tools },
191
- });
192
- console.log(`✓ Synced to Glirastes: skill "${appName}" (${syncResult.action})`);
193
- if (remote) {
194
- const generateRes = await fetch(`${glirasterUrl}/v1/registry/assets/${syncResult.assetId}/generate`, {
195
- method: 'POST',
196
- headers: { 'x-api-key': apiKey, 'Content-Type': 'application/json' },
197
- });
198
- if (!generateRes.ok) {
199
- console.warn(`⚠ Remote generation failed (${generateRes.status})`);
200
- }
201
- else {
202
- const genResult = await generateRes.json();
203
- console.log(`✓ Remote generation complete: v${genResult.version}, ${genResult.files.length} files`);
204
- }
205
- }
206
- }
314
+ if (hasFlag(rest, '--json')) {
315
+ console.log(JSON.stringify(plan));
207
316
  }
208
- if (remote) {
209
- console.log(`✓ Remote generation triggered for skill "${appName}"`);
210
- return;
317
+ else {
318
+ console.log(`Setup plan ${plan.planDigest}: ${plan.operations.length} operations, `
319
+ + `${plan.counts.tools} tools, confirmation `
320
+ + `${plan.requiresConfirmation ? 'required' : 'not required'}.`);
211
321
  }
212
322
  return;
213
323
  }
214
- if (command === 'generate-mcp-server') {
215
- const { writeFile, mkdir } = await import('node:fs/promises');
216
- const { join, dirname } = await import('node:path');
217
- const appName = getFlagValue(rest, '--app-name');
218
- const baseUrl = getFlagValue(rest, '--base-url');
219
- const authType = getFlagValue(rest, '--auth') ?? 'bearer';
220
- const tokenEnvVar = getFlagValue(rest, '--token-env') ?? 'API_TOKEN';
221
- const outputDir = getFlagValue(rest, '--output-dir') ?? 'mcp-server';
222
- if (!appName)
223
- throw new Error('--app-name is required for generate-mcp-server.');
224
- if (!baseUrl)
225
- throw new Error('--base-url is required for generate-mcp-server.');
226
- const authStrategy = buildAuthStrategy(authType, tokenEnvVar, rest);
227
- const result = await generateMcpServer({
228
- ...options,
229
- skillConfig: { appName, baseUrl, auth: authStrategy },
230
- mcpOutputDir: outputDir,
324
+ if (isWizardInvocation(rest)) {
325
+ await runSetupWizardCommand(rest.slice(1));
326
+ return;
327
+ }
328
+ if (rest[0] === undefined || rest[0]?.startsWith('--')) {
329
+ const rootDir = resolve(getFlagValue(rest, '--root') ?? process.cwd());
330
+ const plan = await createSetupPlan({
331
+ rootDir,
332
+ artifactPath: getFlagValue(rest, '--artifact'),
333
+ previousArtifactPath: getFlagValue(rest, '--previous-artifact'),
334
+ inventoryPath: getFlagValue(rest, '--execution-inventory'),
335
+ promptBundlePath: getFlagValue(rest, '--prompt-bundle'),
336
+ managed: hasFlag(rest, '--managed'),
337
+ });
338
+ assertSetupPlanConfirmation(plan, {
339
+ confirmLoosening: hasFlag(rest, '--confirm-loosening'),
340
+ planDigest: getFlagValue(rest, '--plan-digest'),
341
+ });
342
+ const applied = await applySetupPlan({
343
+ rootDir,
344
+ plan,
345
+ artifactPath: getFlagValue(rest, '--artifact'),
346
+ previousArtifactPath: getFlagValue(rest, '--previous-artifact'),
347
+ inventoryPath: getFlagValue(rest, '--execution-inventory'),
348
+ promptBundlePath: getFlagValue(rest, '--prompt-bundle'),
231
349
  });
232
- const remote = hasFlag(rest, '--remote');
233
- // Write generated files to disk (skip when --remote)
234
- if (!remote) {
235
- for (const file of result.files) {
236
- const fullPath = join(rootDir, file.path);
237
- await mkdir(dirname(fullPath), { recursive: true });
238
- await writeFile(fullPath, file.content, 'utf-8');
239
- if (!quiet)
240
- console.log(` wrote ${file.path}`);
241
- }
242
- if (!quiet) {
243
- console.log(`\nMCP server generated: ${result.toolCount} tools across ${result.modulesUsed.length} modules`);
244
- }
350
+ if (applied.mode === 'managed') {
351
+ await runSync({ rootDir, quiet: true }, dependencies.sync);
245
352
  }
246
- const shouldSync = rest.includes('--sync') || remote;
247
- if (shouldSync) {
248
- const apiKey = getFlagValue(rest, '--glirastes-key') ?? process.env.GLIRASTES_API_KEY;
249
- const glirasterUrl = getFlagValue(rest, '--glirastes-url') ?? process.env.GLIRASTES_URL ?? 'https://api.glirastes.chainmatics.io';
250
- if (!apiKey) {
251
- console.warn('⚠ --sync/--remote requires GLIRASTES_API_KEY or --glirastes-key');
252
- }
253
- else {
254
- const syncResult = await syncAssetToGlirastes({
255
- apiKey,
256
- glirasterUrl,
257
- name: appName,
258
- type: 'mcp-server',
259
- version: '1.0.0',
260
- toolCount: result.toolCount,
261
- config: { appName, baseUrl, auth: authStrategy },
262
- toolManifest: { tools: result.tools, modules: result.modulesUsed },
263
- });
264
- console.log(`✓ Synced to Glirastes: mcp-server "${appName}" (${syncResult.action})`);
265
- if (remote) {
266
- const generateRes = await fetch(`${glirasterUrl}/v1/registry/assets/${syncResult.assetId}/generate`, {
267
- method: 'POST',
268
- headers: { 'x-api-key': apiKey, 'Content-Type': 'application/json' },
269
- });
270
- if (!generateRes.ok) {
271
- console.warn(`⚠ Remote generation failed (${generateRes.status})`);
272
- }
273
- else {
274
- const genResult = await generateRes.json();
275
- console.log(`✓ Remote generation complete: v${genResult.version}, ${genResult.files.length} files`);
276
- }
277
- }
278
- }
353
+ if (hasFlag(rest, '--json')) {
354
+ console.log(JSON.stringify({ schemaVersion: 1, ...applied }));
279
355
  }
280
- if (remote) {
281
- console.log(`✓ Remote generation triggered for mcp-server "${appName}"`);
356
+ else {
357
+ console.log('Glirastes setup');
358
+ console.log(` ${applied.toolCount} tools validated`);
359
+ console.log(` ${applied.mode === 'standalone' ? 'Standalone' : 'Managed'} artifacts installed`);
360
+ console.log(' Security policy unchanged');
361
+ console.log('');
362
+ console.log('Restart the application, then run: glirastes doctor');
282
363
  }
283
364
  return;
284
365
  }
285
- if (command === 'generate-auto') {
286
- const { writeFile, mkdir } = await import('node:fs/promises');
287
- const { join, dirname } = await import('node:path');
288
- const appName = getFlagValue(rest, '--app-name');
289
- const baseUrl = getFlagValue(rest, '--base-url');
290
- const authType = getFlagValue(rest, '--auth') ?? 'bearer';
291
- const tokenEnvVar = getFlagValue(rest, '--token-env') ?? 'API_TOKEN';
292
- const skillOutputDir = getFlagValue(rest, '--skill-output-dir');
293
- const mcpOutputDir = getFlagValue(rest, '--mcp-output-dir') ?? 'mcp-server';
294
- if (!appName)
295
- throw new Error('--app-name is required for generate-auto.');
296
- if (!baseUrl)
297
- throw new Error('--base-url is required for generate-auto.');
298
- const authStrategy = buildAuthStrategy(authType, tokenEnvVar, rest);
299
- const hasStreaming = hasFlag(rest, '--streaming');
300
- const hasWebSocket = hasFlag(rest, '--websocket');
301
- const multiAgentAccess = hasFlag(rest, '--multi-agent');
302
- const toolCountStr = getFlagValue(rest, '--tool-count');
303
- const toolCount = toolCountStr ? parseInt(toolCountStr, 10) : undefined;
304
- const recommendation = recommendOutputFormat({
305
- auth: authStrategy,
306
- hasStreaming,
307
- hasWebSocket,
308
- multiAgentAccess,
309
- toolCount,
366
+ const [subcommand, ...options] = rest;
367
+ const rootDir = getFlagValue(options, '--root') ?? process.cwd();
368
+ const quiet = hasFlag(options, '--quiet');
369
+ if (subcommand === 'scan') {
370
+ const inventoryPath = resolve(rootDir, getFlagValue(options, '--execution-inventory')
371
+ ?? '.glirastes/local-execution-inventory.v2.json');
372
+ const inventory = FoundationExecutionInventorySchema.parse(JSON.parse(readFileSync(inventoryPath, 'utf8')));
373
+ const discovery = await discoverFoundationExecutions({
374
+ rootDir,
375
+ inventory,
310
376
  });
377
+ const outputPath = resolve(rootDir, getFlagValue(options, '--output')
378
+ ?? '.glirastes/setup-discovery.json');
379
+ mkdirSync(dirname(outputPath), { recursive: true });
380
+ writeFileSync(outputPath, `${JSON.stringify(discovery, null, 2)}\n`, 'utf8');
311
381
  if (!quiet) {
312
- console.log(`Auto-detected format: ${recommendation.format}`);
313
- console.log(` Reason: ${recommendation.reason}`);
314
- console.log('');
315
- }
316
- const skillConfig = { appName, baseUrl, auth: authStrategy };
317
- if (recommendation.format === 'skill' || recommendation.format === 'both') {
318
- await generateAgentSkills({
319
- ...options,
320
- skillConfig,
321
- formats: ['markdown', 'json'],
322
- skillOutputDir,
323
- });
324
- }
325
- if (recommendation.format === 'mcp' || recommendation.format === 'both') {
326
- const result = await generateMcpServer({
327
- ...options,
328
- skillConfig,
329
- mcpOutputDir,
330
- });
331
- // Write generated MCP files to disk
332
- for (const file of result.files) {
333
- const fullPath = join(rootDir, file.path);
334
- await mkdir(dirname(fullPath), { recursive: true });
335
- await writeFile(fullPath, file.content, 'utf-8');
336
- if (!quiet)
337
- console.log(` wrote ${file.path}`);
338
- }
382
+ console.log(`Discovered ${discovery.executions.length} local executions to `
383
+ + outputPath);
339
384
  }
340
385
  return;
341
386
  }
342
- if (command === 'validate-tools') {
343
- const showFix = hasFlag(rest, '--fix');
344
- const validation = await validateAiTools(options);
345
- console.log(formatValidationReport(validation, { quiet, showFix }));
346
- if (ci && !validation.passed) {
347
- process.exit(1);
348
- }
387
+ if (subcommand === 'sync') {
388
+ await runSync({
389
+ rootDir,
390
+ json: hasFlag(options, '--json'),
391
+ quiet,
392
+ }, dependencies.sync);
349
393
  return;
350
394
  }
351
- if (command === 'coverage') {
352
- const report = await checkAiCoverage(options);
353
- console.log(formatCoverageReport(report, { quiet }));
354
- if (ci) {
355
- const hasIssues = report.routeCoveragePercent < 100 ||
356
- report.componentCoveragePercent < 100 ||
357
- report.missingHandlers.length > 0;
358
- if (hasIssues)
359
- process.exit(1);
395
+ const connection = setupConnection(options);
396
+ const client = new AppSetupClient(connection);
397
+ if (subcommand === 'status') {
398
+ const runId = getFlagValue(options, '--run-id');
399
+ if (!runId) {
400
+ throw new Error('--run-id is required for setup status.');
401
+ }
402
+ const run = await client.getRun(runId);
403
+ if (!quiet) {
404
+ console.log(`Setup run ${run.runId}: ${run.status}`);
360
405
  }
361
406
  return;
362
407
  }
363
- if (command === 'scaffold') {
364
- const routeFile = getFlagValue(rest, '--route');
365
- if (!routeFile)
366
- throw new Error('--route is required for scaffold.');
367
- const force = hasFlag(rest, '--force');
368
- const dryRun = hasFlag(rest, '--dry-run');
369
- const result = await scaffoldAiTool({
370
- routeFile,
371
- rootDir,
372
- force,
373
- dryRun,
408
+ const run = await syncExplicitSetupArtifact(rootDir, options);
409
+ if (!quiet) {
410
+ console.log(`Synced setup run ${run.runId}: ${run.status}`);
411
+ }
412
+ }
413
+ async function runLegacyScan(rest) {
414
+ const rootDir = getFlagValue(rest, '--root') ?? process.cwd();
415
+ const quiet = hasFlag(rest, '--quiet');
416
+ let config = {};
417
+ try {
418
+ const packageJson = JSON.parse(readFileSync(resolve(rootDir, 'package.json'), 'utf8'));
419
+ config = packageJson.glirastes ?? {};
420
+ }
421
+ catch {
422
+ // The scanner defaults cover projects without package metadata.
423
+ }
424
+ const artifact = await writeNextAppRouteScan({
425
+ rootDir,
426
+ apiDir: config.apiDir,
427
+ outputPath: getFlagValue(rest, '--output'),
428
+ });
429
+ if (!quiet) {
430
+ console.log(`Scanned ${artifact.result.candidates.length} route operations to `
431
+ + artifact.outputPath);
432
+ }
433
+ if (!hasFlag(rest, '--sync'))
434
+ return;
435
+ if (artifact.result.findings?.length) {
436
+ throw new FoundationDiagnosticError({
437
+ code: 'E-INVENTORY-001',
438
+ operation: 'scan.sync',
439
+ message: 'Route scan is incomplete. Review findings in the local scan artifact before syncing.',
440
+ remediation: 'resolve-route-scan-findings',
374
441
  });
375
- console.log(formatScaffoldResult(result, { dryRun, rootDir }));
442
+ }
443
+ const baseUrl = getFlagValue(rest, '--base-url')
444
+ ?? process.env.GLIRASTES_CONTROL_PLANE_URL;
445
+ const appId = getFlagValue(rest, '--app-id')
446
+ ?? process.env.GLIRASTES_APP_ID;
447
+ const environmentId = getFlagValue(rest, '--environment-id')
448
+ ?? process.env.GLIRASTES_ENVIRONMENT_ID;
449
+ const apiKey = process.env.GLIRASTES_SETUP_API_KEY;
450
+ if (!baseUrl) {
451
+ throw new Error('--base-url or GLIRASTES_CONTROL_PLANE_URL is required for scan --sync.');
452
+ }
453
+ if (!appId) {
454
+ throw new Error('--app-id or GLIRASTES_APP_ID is required for scan --sync.');
455
+ }
456
+ if (!environmentId) {
457
+ throw new Error('--environment-id or GLIRASTES_ENVIRONMENT_ID is required for scan --sync.');
458
+ }
459
+ if (!apiKey) {
460
+ throw new Error('GLIRASTES_SETUP_API_KEY is required for scan --sync.');
461
+ }
462
+ const scan = JSON.parse(readFileSync(artifact.outputPath, 'utf8'));
463
+ const executionInventoryPath = getFlagValue(rest, '--execution-inventory');
464
+ if (executionInventoryPath) {
465
+ scan.executions = parseLocalExecutionInventory(JSON.parse(readFileSync(resolve(rootDir, executionInventoryPath), 'utf8'))).executions;
466
+ }
467
+ const imported = await new RuntimeSetupClient({
468
+ baseUrl,
469
+ apiKey,
470
+ appId,
471
+ environmentId,
472
+ }).importRouteScan(scan);
473
+ const bindingsOutput = resolve(rootDir, getFlagValue(rest, '--bindings-output')
474
+ ?? '.glirastes/platform-tool-bindings.json');
475
+ mkdirSync(dirname(bindingsOutput), { recursive: true });
476
+ writeFileSync(bindingsOutput, `${JSON.stringify({
477
+ schemaVersion: 1,
478
+ targetAppId: appId,
479
+ environmentId,
480
+ bindings: [...imported.bindings].sort((left, right) => (left.stableKey.localeCompare(right.stableKey))),
481
+ }, null, 2)}\n`, 'utf8');
482
+ if (!quiet) {
483
+ console.log(`Imported ${imported.createdDrafts} review drafts; `
484
+ + `${imported.unchanged} unchanged; `
485
+ + `${imported.tombstoneCandidates.length} tombstone candidates.`);
486
+ console.log(`Wrote authoritative tool bindings to ${bindingsOutput}.`);
487
+ }
488
+ }
489
+ async function runValidate(rest) {
490
+ const rootDir = getFlagValue(rest, '--root') ?? process.cwd();
491
+ const appId = getFlagValue(rest, '--app-id') ?? process.env.GLIRASTES_APP_ID;
492
+ if (!appId) {
493
+ throw new FoundationDiagnosticError({
494
+ code: 'E-SCOPE-001',
495
+ operation: 'validate.scope',
496
+ message: 'GLIRASTES_APP_ID is not configured for validation.',
497
+ remediation: 'configure-app-id',
498
+ });
499
+ }
500
+ const workspace = await validateWorkspace({
501
+ rootDir,
502
+ appId,
503
+ inventoryPath: getFlagValue(rest, '--execution-inventory'),
504
+ promptBundlePath: getFlagValue(rest, '--prompt-bundle'),
505
+ });
506
+ if (!hasFlag(rest, '--quiet')) {
507
+ console.log(`Validated ${workspace.executions.length} executions and the local `
508
+ + 'prompt bundle without network access.');
509
+ }
510
+ }
511
+ async function runBuild(rest) {
512
+ const rootDir = getFlagValue(rest, '--root') ?? process.cwd();
513
+ const appId = getFlagValue(rest, '--app-id') ?? process.env.GLIRASTES_APP_ID;
514
+ if (!appId) {
515
+ throw new Error('--app-id or GLIRASTES_APP_ID is required for build.');
516
+ }
517
+ const built = await buildManifests({
518
+ rootDir,
519
+ appId,
520
+ outputDir: getFlagValue(rest, '--output'),
521
+ inventoryPath: getFlagValue(rest, '--execution-inventory'),
522
+ promptBundlePath: getFlagValue(rest, '--prompt-bundle'),
523
+ });
524
+ if (!hasFlag(rest, '--quiet')) {
525
+ console.log(`Runtime manifest ${built.runtimeDigest}`);
526
+ console.log(`Prompt manifest ${built.promptDigest}`);
527
+ }
528
+ }
529
+ export async function runCli(args, dependencies = {}) {
530
+ const { command, rest } = parseCommand(args);
531
+ if (command === 'help') {
532
+ console.log(CLI_USAGE.trimEnd());
376
533
  return;
377
534
  }
378
- if (command === 'test') {
379
- const { scaffoldTestFile } = await import('./commands/test.js');
380
- const outputPath = getFlagValue(rest, '--output');
381
- const force = hasFlag(rest, '--force');
382
- const dryRun = hasFlag(rest, '--dry-run');
383
- await scaffoldTestFile({ rootDir, outputPath, force, dryRun });
535
+ if (command === 'version') {
536
+ console.log(packageVersion());
384
537
  return;
385
538
  }
386
- if (command === 'check-upgrade') {
387
- const { checkUpgrade } = await import('./commands/check-upgrade.js');
388
- const fromVersion = getFlagValue(rest, '--from-version');
389
- await checkUpgrade({ rootDir, fromVersion });
539
+ if (rest.some((arg) => arg === '--help' || arg === '-h')) {
540
+ // Every command answers --help/-h before it parses or writes anything.
541
+ console.log(commandUsage(command));
390
542
  return;
391
543
  }
392
- if (command === 'install-skills') {
393
- const { installSkills } = await import('./commands/install-skills.js');
394
- const target = getFlagValue(rest, '--target');
395
- const stackRaw = getFlagValue(rest, '--stack') ?? 'all';
396
- const validStacks = ['nextjs', 'nestjs', 'nextjs+nestjs', 'all'];
397
- if (!validStacks.includes(stackRaw)) {
398
- throw new Error(`Invalid --stack value '${stackRaw}'. Use one of: ${validStacks.join(' | ')}.`);
544
+ if (command === 'init') {
545
+ const ci = getFlagValue(rest, '--ci');
546
+ if (ci !== undefined) {
547
+ // CI setup is its own step: the workflow lands once the app is set up.
548
+ const written = await writeCiWorkflow({
549
+ root: resolve(getFlagValue(rest, '--root') ?? process.cwd()),
550
+ provider: ci,
551
+ enrichOnMain: hasFlag(rest, '--enrich-on-main'),
552
+ enrichOn: (getFlagValue(rest, '--enrich-on') ?? '').split(',').map((branch) => branch.trim()).filter(Boolean),
553
+ ...(getFlagValue(rest, '--ci-environment') !== undefined ? { environment: getFlagValue(rest, '--ci-environment') } : {}),
554
+ force: hasFlag(rest, '--force'),
555
+ });
556
+ console.log(hasFlag(rest, '--json') ? JSON.stringify(written) : `${written.path}: ${written.status}`);
557
+ return;
399
558
  }
400
- const globalMode = hasFlag(rest, '--global') || hasFlag(rest, '-g');
401
- const symlinkMode = hasFlag(rest, '--symlink');
402
- const force = hasFlag(rest, '--force');
403
- const dryRun = hasFlag(rest, '--dry-run');
404
- await installSkills({
405
- target,
406
- global: globalMode,
407
- stack: stackRaw,
408
- symlink: symlinkMode,
409
- force,
410
- dryRun,
411
- rootDir,
412
- });
559
+ await runAgentSetup({
560
+ rootDir: getFlagValue(rest, '--root') ?? process.cwd(),
561
+ agent: getFlagValue(rest, '--agent'), dryRun: hasFlag(rest, '--dry-run'),
562
+ json: hasFlag(rest, '--json'), managed: hasFlag(rest, '--managed'),
563
+ }, { ask: terminalAsk, ...dependencies.init });
564
+ return;
565
+ }
566
+ if (command === 'tools') {
567
+ const exitCode = await runToolsCommand(rest, dependencies.tools);
568
+ if (exitCode !== 0)
569
+ process.exitCode = exitCode;
570
+ return;
571
+ }
572
+ if (command === 'connect') {
573
+ await runConnect({
574
+ rootDir: resolve(getFlagValue(rest, '--root') ?? process.cwd()),
575
+ baseUrl: getFlagValue(rest, '--base-url'),
576
+ json: hasFlag(rest, '--json'),
577
+ }, dependencies.connect);
413
578
  return;
414
579
  }
415
- // Sync tool schemas to Glirastes platform
416
580
  if (command === 'sync') {
417
- const apiKey = getFlagValue(rest, '--api-key') ?? process.env.GLIRASTES_API_KEY ?? process.env.CHAINMATICS_API_KEY;
418
- const baseUrl = getFlagValue(rest, '--url') ?? process.env.GLIRASTES_URL ?? 'https://api.glirastes.chainmatics.io';
419
- if (!apiKey) {
420
- throw new Error('API key required. Use --api-key or set GLIRASTES_API_KEY env var.');
421
- }
422
- const { scanEndpointTools, scanUiTools } = await import('../codegen/index.js');
423
- const { readFile } = await import('fs/promises');
424
- // Collect all tools (endpoint + UI)
425
- const tools = [];
426
- // --- Endpoint tools ---
427
- const scanResult = await scanEndpointTools(options);
428
- for (const file of scanResult.files) {
429
- const content = await readFile(file.absolutePath, 'utf-8');
430
- // Match defineEndpointTool({ id: '...' }) or defineAiEndpointTool({ id: '...' })
431
- const idMatches = content.matchAll(/define(?:Ai)?EndpointTool\(\s*\{[^}]*?id:\s*['"]([^'"]+)['"]/gs);
432
- for (const match of idMatches) {
433
- const toolId = match[1];
434
- // Try to extract description
435
- const descMatch = content.match(new RegExp(`id:\\s*['"]${toolId}['"][^}]*?description:\\s*['"]([^'"]+)['"]`, 's'));
436
- // Try to extract allowedRoles array
437
- const allowedRoles = extractAllowedRoles(content);
438
- // Try to extract module
439
- const moduleMatch = content.match(/module:\s*['"]([^'"]+)['"]/);
440
- tools.push({
441
- toolId,
442
- version: '1.0.0',
443
- type: 'endpoint',
444
- schema: {},
445
- moduleId: moduleMatch?.[1] ?? undefined,
446
- metadata: {
447
- description: descMatch?.[1] ?? '',
448
- sourceFile: file.relativePath,
449
- allowedRoles,
450
- },
451
- });
452
- }
453
- // Also match single tool: defineEndpointTool({ ... }) with withAiTool pattern
454
- if (tools.length === 0 && file.exportType === 'single') {
455
- const singleId = content.match(/id:\s*['"]([^'"]+)['"]/);
456
- if (singleId) {
457
- const allowedRoles = extractAllowedRoles(content);
458
- const moduleMatch = content.match(/module:\s*['"]([^'"]+)['"]/);
459
- tools.push({
460
- toolId: singleId[1],
461
- version: '1.0.0',
462
- type: 'endpoint',
463
- schema: {},
464
- moduleId: moduleMatch?.[1] ?? undefined,
465
- metadata: {
466
- sourceFile: file.relativePath,
467
- allowedRoles,
468
- },
469
- });
470
- }
471
- }
472
- }
473
- // --- UI tools ---
474
- const uiScanResult = await scanUiTools(options);
475
- for (const file of uiScanResult.files) {
476
- const content = await readFile(file.absolutePath, 'utf-8');
477
- // Extract each toolName from defineUiTool / defineAiUiTool blocks
478
- const toolNameMatches = content.matchAll(/toolName\s*:\s*['"]([^'"]+)['"]/g);
479
- for (const match of toolNameMatches) {
480
- const toolName = match[1];
481
- const descMatch = content.match(/description\s*:\s*`([^`]+)`/s) ??
482
- content.match(/description\s*:\s*['"]([^'"]+)['"]/);
483
- const allowedRoles = extractAllowedRoles(content);
484
- const moduleMatch = content.match(/module:\s*['"]([^'"]+)['"]/);
485
- tools.push({
486
- toolId: toolName,
487
- version: '1.0.0',
488
- type: 'ui',
489
- schema: {},
490
- moduleId: moduleMatch?.[1] ?? undefined,
491
- metadata: {
492
- description: descMatch?.[1]?.trim().slice(0, 200) ?? '',
493
- sourceFile: file.relativePath,
494
- allowedRoles,
495
- },
496
- });
497
- }
498
- }
499
- // --- NestJS @AiTool decorated controllers ---
500
- if (options.nestjsDirs && options.nestjsDirs.length > 0) {
501
- const { scanNestControllers } = await import('../codegen/index.js');
502
- const nestResult = await scanNestControllers(options.nestjsDirs, options.nestjsApiPrefix ?? '/api');
503
- for (const tool of nestResult.tools) {
504
- tools.push({
505
- toolId: tool.name,
506
- version: '1.0.0',
507
- type: 'endpoint',
508
- schema: {},
509
- moduleId: tool.module ?? undefined,
510
- metadata: {
511
- description: tool.description?.slice(0, 200) ?? '',
512
- sourceFile: tool.controllerFile,
513
- allowedRoles: tool.allowedRoles ?? [],
514
- ...(tool.needsApproval ? { needsApproval: true } : {}),
515
- },
516
- });
517
- }
518
- }
519
- if (tools.length === 0) {
520
- console.log('No tools found. Run "glirastes generate-tools" first.');
521
- return;
522
- }
523
- const endpointCount = tools.filter(t => t.type === 'endpoint').length;
524
- const uiCount = tools.filter(t => t.type === 'ui').length;
525
- // POST to Glirastes Registry
526
- console.log(`Syncing ${tools.length} tools (${endpointCount} endpoint, ${uiCount} UI) to ${baseUrl}...`);
527
- const response = await fetch(`${baseUrl}/v1/registry/sync`, {
528
- method: 'POST',
529
- headers: {
530
- 'Content-Type': 'application/json',
531
- Authorization: `Bearer ${apiKey}`,
532
- },
533
- body: JSON.stringify({ tools }),
581
+ await runSync({
582
+ rootDir: resolve(getFlagValue(rest, '--root') ?? process.cwd()),
583
+ json: hasFlag(rest, '--json'),
584
+ quiet: hasFlag(rest, '--quiet'),
585
+ }, dependencies.sync);
586
+ return;
587
+ }
588
+ if (command === 'doctor') {
589
+ const report = await createDoctorReport({
590
+ rootDir: resolve(getFlagValue(rest, '--root') ?? process.cwd()),
591
+ managed: hasFlag(rest, '--managed'),
534
592
  });
535
- if (!response.ok) {
536
- const body = await response.text();
537
- throw new Error(`Sync failed (${response.status}): ${body}`);
538
- }
539
- const result = await response.json();
540
- console.log(`Synced ${tools.length} tools to Glirastes:`);
541
- if (result.added.length > 0)
542
- console.log(` Added: ${result.added.join(', ')}`);
543
- if (result.updated.length > 0)
544
- console.log(` Updated: ${result.updated.join(', ')}`);
545
- if (result.unchanged.length > 0)
546
- console.log(` Unchanged: ${result.unchanged.length} tools`);
547
- // Sync module prompts as baseline overrides (optional --meta flag)
548
- const metaPath = getFlagValue(rest, '--meta');
549
- if (metaPath) {
550
- const { readFile } = await import('fs/promises');
551
- const { resolve } = await import('path');
552
- const metaFile = resolve(rootDir, metaPath);
553
- try {
554
- const metaContent = await readFile(metaFile, 'utf-8');
555
- // Extract systemPrompt per module from metadata file
556
- const modulePrompts = [];
557
- // Match patterns like: moduleId: { ... systemPrompt: `...` }
558
- const moduleBlocks = metaContent.matchAll(/(\w+)\s*:\s*\{[^}]*systemPrompt\s*:\s*`([^`]+)`/gs);
559
- for (const match of moduleBlocks) {
560
- modulePrompts.push({
561
- moduleId: match[1],
562
- systemPrompt: match[2].trim(),
563
- });
564
- }
565
- if (modulePrompts.length > 0) {
566
- console.log(`\nSyncing ${modulePrompts.length} module prompt baselines...`);
567
- for (const mp of modulePrompts) {
568
- const promptRes = await fetch(`${baseUrl}/v1/primus/modules/${encodeURIComponent(mp.moduleId)}/prompt`, {
569
- method: 'PUT',
570
- headers: {
571
- 'Content-Type': 'application/json',
572
- Authorization: `Bearer ${apiKey}`,
573
- },
574
- body: JSON.stringify({
575
- mode: 'replace',
576
- systemPrompt: mp.systemPrompt,
577
- }),
578
- });
579
- if (promptRes.ok) {
580
- console.log(` Synced prompt for module: ${mp.moduleId}`);
581
- }
582
- else {
583
- console.warn(` Failed to sync prompt for module: ${mp.moduleId} (${promptRes.status})`);
584
- }
585
- }
586
- }
587
- }
588
- catch {
589
- // Meta file not found or unreadable — skip prompt sync silently
590
- }
591
- }
593
+ console.log(hasFlag(rest, '--json')
594
+ ? JSON.stringify(report)
595
+ : formatDoctorReport(report, { verbose: hasFlag(rest, '--verbose') }));
596
+ if (report.status === 'fail')
597
+ process.exitCode = 1;
592
598
  return;
593
599
  }
594
- }
595
- /**
596
- * Extract allowedRoles array from tool source file content.
597
- * Matches patterns like: allowedRoles: ['admin', 'manager']
598
- */
599
- function extractAllowedRoles(content) {
600
- const match = content.match(/allowedRoles:\s*\[([^\]]*)\]/);
601
- if (!match)
602
- return [];
603
- const inner = match[1];
604
- const roles = [];
605
- const roleMatches = inner.matchAll(/['"]([^'"]+)['"]/g);
606
- for (const m of roleMatches) {
607
- roles.push(m[1]);
608
- }
609
- return roles;
610
- }
611
- function buildAuthStrategy(authType, tokenEnvVar, args) {
612
- switch (authType) {
613
- case 'api-key':
614
- return {
615
- type: 'api-key',
616
- headerName: getFlagValue(args, '--header-name') ?? 'X-API-Key',
617
- keyEnvVar: tokenEnvVar,
618
- };
619
- case 'oauth2':
620
- return {
621
- type: 'oauth2',
622
- tokenUrl: getFlagValue(args, '--token-url') ?? '',
623
- clientIdEnvVar: getFlagValue(args, '--client-id-env') ?? 'OAUTH_CLIENT_ID',
624
- clientSecretEnvVar: getFlagValue(args, '--client-secret-env') ?? 'OAUTH_CLIENT_SECRET',
625
- scopes: getFlagValue(args, '--scopes')?.split(','),
626
- };
627
- case 'cookie':
628
- return { type: 'cookie' };
629
- case 'bearer':
630
- default:
631
- return { type: 'bearer', tokenEnvVar };
600
+ if (command === 'validate') {
601
+ await runValidate(rest);
602
+ return;
603
+ }
604
+ if (command === 'build') {
605
+ await runBuild(rest);
606
+ return;
607
+ }
608
+ if (command === 'install') {
609
+ await runInstall(rest, dependencies);
610
+ return;
611
+ }
612
+ if (command === 'setup') {
613
+ await runSetup(rest, dependencies);
614
+ return;
632
615
  }
616
+ await runLegacyScan(rest);
633
617
  }
634
618
  //# sourceMappingURL=index.js.map