glirastes 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (424) hide show
  1. package/CHANGELOG.md +468 -0
  2. package/README.md +651 -0
  3. package/dist/cli/bin.d.ts +2 -0
  4. package/dist/cli/bin.js +34 -0
  5. package/dist/cli/bin.js.map +1 -0
  6. package/dist/cli/commands/check-upgrade.d.ts +15 -0
  7. package/dist/cli/commands/check-upgrade.js +138 -0
  8. package/dist/cli/commands/check-upgrade.js.map +1 -0
  9. package/dist/cli/commands/test.d.ts +8 -0
  10. package/dist/cli/commands/test.js +76 -0
  11. package/dist/cli/commands/test.js.map +1 -0
  12. package/dist/cli/index.d.ts +1 -0
  13. package/dist/cli/index.js +609 -0
  14. package/dist/cli/index.js.map +1 -0
  15. package/dist/cli/utils/changelog-parser.d.ts +13 -0
  16. package/dist/cli/utils/changelog-parser.js +89 -0
  17. package/dist/cli/utils/changelog-parser.js.map +1 -0
  18. package/dist/cli/utils/commit-parser.d.ts +8 -0
  19. package/dist/cli/utils/commit-parser.js +23 -0
  20. package/dist/cli/utils/commit-parser.js.map +1 -0
  21. package/dist/cli/utils/gap-detector.d.ts +14 -0
  22. package/dist/cli/utils/gap-detector.js +65 -0
  23. package/dist/cli/utils/gap-detector.js.map +1 -0
  24. package/dist/cli/utils/get-cli-version.d.ts +2 -0
  25. package/dist/cli/utils/get-cli-version.js +10 -0
  26. package/dist/cli/utils/get-cli-version.js.map +1 -0
  27. package/dist/codegen/asset-sync.d.ts +20 -0
  28. package/dist/codegen/asset-sync.js +26 -0
  29. package/dist/codegen/asset-sync.js.map +1 -0
  30. package/dist/codegen/coverage.d.ts +66 -0
  31. package/dist/codegen/coverage.js +372 -0
  32. package/dist/codegen/coverage.js.map +1 -0
  33. package/dist/codegen/endpoint-scanner.d.ts +16 -0
  34. package/dist/codegen/endpoint-scanner.js +161 -0
  35. package/dist/codegen/endpoint-scanner.js.map +1 -0
  36. package/dist/codegen/format.d.ts +17 -0
  37. package/dist/codegen/format.js +28 -0
  38. package/dist/codegen/format.js.map +1 -0
  39. package/dist/codegen/fs-utils.d.ts +45 -0
  40. package/dist/codegen/fs-utils.js +155 -0
  41. package/dist/codegen/fs-utils.js.map +1 -0
  42. package/dist/codegen/index.d.ts +13 -0
  43. package/dist/codegen/index.js +13 -0
  44. package/dist/codegen/index.js.map +1 -0
  45. package/dist/codegen/mcp-generator.d.ts +50 -0
  46. package/dist/codegen/mcp-generator.js +801 -0
  47. package/dist/codegen/mcp-generator.js.map +1 -0
  48. package/dist/codegen/module-generator.d.ts +11 -0
  49. package/dist/codegen/module-generator.js +351 -0
  50. package/dist/codegen/module-generator.js.map +1 -0
  51. package/dist/codegen/nestjs-scanner.d.ts +43 -0
  52. package/dist/codegen/nestjs-scanner.js +239 -0
  53. package/dist/codegen/nestjs-scanner.js.map +1 -0
  54. package/dist/codegen/output-recommender.d.ts +23 -0
  55. package/dist/codegen/output-recommender.js +31 -0
  56. package/dist/codegen/output-recommender.js.map +1 -0
  57. package/dist/codegen/scaffolder.d.ts +36 -0
  58. package/dist/codegen/scaffolder.js +259 -0
  59. package/dist/codegen/scaffolder.js.map +1 -0
  60. package/dist/codegen/skill-generator.d.ts +49 -0
  61. package/dist/codegen/skill-generator.js +965 -0
  62. package/dist/codegen/skill-generator.js.map +1 -0
  63. package/dist/codegen/types.d.ts +52 -0
  64. package/dist/codegen/types.js +14 -0
  65. package/dist/codegen/types.js.map +1 -0
  66. package/dist/codegen/ui-scanner.d.ts +24 -0
  67. package/dist/codegen/ui-scanner.js +197 -0
  68. package/dist/codegen/ui-scanner.js.map +1 -0
  69. package/dist/codegen/validator.d.ts +35 -0
  70. package/dist/codegen/validator.js +256 -0
  71. package/dist/codegen/validator.js.map +1 -0
  72. package/dist/openapi/demo-generate.d.ts +1 -0
  73. package/dist/openapi/demo-generate.js +15 -0
  74. package/dist/openapi/demo-generate.js.map +1 -0
  75. package/dist/openapi/index.d.ts +78 -0
  76. package/dist/openapi/index.js +341 -0
  77. package/dist/openapi/index.js.map +1 -0
  78. package/dist/react/audio-worklet-processor.d.ts +9 -0
  79. package/dist/react/audio-worklet-processor.js +28 -0
  80. package/dist/react/audio-worklet-processor.js.map +1 -0
  81. package/dist/react/bridges/rest-session-bridge.d.ts +113 -0
  82. package/dist/react/bridges/rest-session-bridge.js +207 -0
  83. package/dist/react/bridges/rest-session-bridge.js.map +1 -0
  84. package/dist/react/components/ai-chat-panel.d.ts +12 -0
  85. package/dist/react/components/ai-chat-panel.js +65 -0
  86. package/dist/react/components/ai-chat-panel.js.map +1 -0
  87. package/dist/react/components/ai-trigger-button.d.ts +2 -0
  88. package/dist/react/components/ai-trigger-button.js +239 -0
  89. package/dist/react/components/ai-trigger-button.js.map +1 -0
  90. package/dist/react/components/approval-card.d.ts +9 -0
  91. package/dist/react/components/approval-card.js +22 -0
  92. package/dist/react/components/approval-card.js.map +1 -0
  93. package/dist/react/components/bulk-approval-card.d.ts +9 -0
  94. package/dist/react/components/bulk-approval-card.js +34 -0
  95. package/dist/react/components/bulk-approval-card.js.map +1 -0
  96. package/dist/react/components/chat-input.d.ts +10 -0
  97. package/dist/react/components/chat-input.js +58 -0
  98. package/dist/react/components/chat-input.js.map +1 -0
  99. package/dist/react/components/chat-window.d.ts +2 -0
  100. package/dist/react/components/chat-window.js +132 -0
  101. package/dist/react/components/chat-window.js.map +1 -0
  102. package/dist/react/components/confirm-dialog.d.ts +32 -0
  103. package/dist/react/components/confirm-dialog.js +46 -0
  104. package/dist/react/components/confirm-dialog.js.map +1 -0
  105. package/dist/react/components/floating-chat-ui.d.ts +84 -0
  106. package/dist/react/components/floating-chat-ui.js +161 -0
  107. package/dist/react/components/floating-chat-ui.js.map +1 -0
  108. package/dist/react/components/mention-chip.d.ts +16 -0
  109. package/dist/react/components/mention-chip.js +39 -0
  110. package/dist/react/components/mention-chip.js.map +1 -0
  111. package/dist/react/components/mention-input.d.ts +8 -0
  112. package/dist/react/components/mention-input.js +115 -0
  113. package/dist/react/components/mention-input.js.map +1 -0
  114. package/dist/react/components/message-bubble.d.ts +11 -0
  115. package/dist/react/components/message-bubble.js +123 -0
  116. package/dist/react/components/message-bubble.js.map +1 -0
  117. package/dist/react/components/message-list.d.ts +8 -0
  118. package/dist/react/components/message-list.js +50 -0
  119. package/dist/react/components/message-list.js.map +1 -0
  120. package/dist/react/components/pipeline-timeline.d.ts +7 -0
  121. package/dist/react/components/pipeline-timeline.js +70 -0
  122. package/dist/react/components/pipeline-timeline.js.map +1 -0
  123. package/dist/react/components/recording-bar.d.ts +2 -0
  124. package/dist/react/components/recording-bar.js +81 -0
  125. package/dist/react/components/recording-bar.js.map +1 -0
  126. package/dist/react/components/recording-controls.d.ts +18 -0
  127. package/dist/react/components/recording-controls.js +35 -0
  128. package/dist/react/components/recording-controls.js.map +1 -0
  129. package/dist/react/components/rich-mention-input.d.ts +2 -0
  130. package/dist/react/components/rich-mention-input.js +569 -0
  131. package/dist/react/components/rich-mention-input.js.map +1 -0
  132. package/dist/react/components/session-switcher.d.ts +14 -0
  133. package/dist/react/components/session-switcher.js +131 -0
  134. package/dist/react/components/session-switcher.js.map +1 -0
  135. package/dist/react/components/suggestion-bar.d.ts +9 -0
  136. package/dist/react/components/suggestion-bar.js +45 -0
  137. package/dist/react/components/suggestion-bar.js.map +1 -0
  138. package/dist/react/components/suggestion-chip.d.ts +9 -0
  139. package/dist/react/components/suggestion-chip.js +12 -0
  140. package/dist/react/components/suggestion-chip.js.map +1 -0
  141. package/dist/react/components/voice-input-addon.d.ts +13 -0
  142. package/dist/react/components/voice-input-addon.js +29 -0
  143. package/dist/react/components/voice-input-addon.js.map +1 -0
  144. package/dist/react/components/voice-input-button.d.ts +2 -0
  145. package/dist/react/components/voice-input-button.js +53 -0
  146. package/dist/react/components/voice-input-button.js.map +1 -0
  147. package/dist/react/hooks/use-ai-chat.d.ts +22 -0
  148. package/dist/react/hooks/use-ai-chat.js +49 -0
  149. package/dist/react/hooks/use-ai-chat.js.map +1 -0
  150. package/dist/react/hooks/use-approvals.d.ts +23 -0
  151. package/dist/react/hooks/use-approvals.js +61 -0
  152. package/dist/react/hooks/use-approvals.js.map +1 -0
  153. package/dist/react/hooks/use-deepgram-transcription.d.ts +2 -0
  154. package/dist/react/hooks/use-deepgram-transcription.js +327 -0
  155. package/dist/react/hooks/use-deepgram-transcription.js.map +1 -0
  156. package/dist/react/hooks/use-drag-resize-panel.d.ts +48 -0
  157. package/dist/react/hooks/use-drag-resize-panel.js +306 -0
  158. package/dist/react/hooks/use-drag-resize-panel.js.map +1 -0
  159. package/dist/react/hooks/use-draggable-position.d.ts +25 -0
  160. package/dist/react/hooks/use-draggable-position.js +132 -0
  161. package/dist/react/hooks/use-draggable-position.js.map +1 -0
  162. package/dist/react/hooks/use-keyboard-shortcut.d.ts +20 -0
  163. package/dist/react/hooks/use-keyboard-shortcut.js +91 -0
  164. package/dist/react/hooks/use-keyboard-shortcut.js.map +1 -0
  165. package/dist/react/hooks/use-mentions.d.ts +23 -0
  166. package/dist/react/hooks/use-mentions.js +40 -0
  167. package/dist/react/hooks/use-mentions.js.map +1 -0
  168. package/dist/react/hooks/use-suggestions.d.ts +22 -0
  169. package/dist/react/hooks/use-suggestions.js +37 -0
  170. package/dist/react/hooks/use-suggestions.js.map +1 -0
  171. package/dist/react/index.d.ts +43 -0
  172. package/dist/react/index.js +53 -0
  173. package/dist/react/index.js.map +1 -0
  174. package/dist/react/provider/ai-chat-provider.d.ts +45 -0
  175. package/dist/react/provider/ai-chat-provider.js +1021 -0
  176. package/dist/react/provider/ai-chat-provider.js.map +1 -0
  177. package/dist/react/provider/chat-context.d.ts +84 -0
  178. package/dist/react/provider/chat-context.js +10 -0
  179. package/dist/react/provider/chat-context.js.map +1 -0
  180. package/dist/react/styles.css +897 -0
  181. package/dist/react/template.d.ts +84 -0
  182. package/dist/react/template.js +83 -0
  183. package/dist/react/template.js.map +1 -0
  184. package/dist/react/themes.d.ts +24 -0
  185. package/dist/react/themes.js +269 -0
  186. package/dist/react/themes.js.map +1 -0
  187. package/dist/react/transports/langgraph/index.d.ts +2 -0
  188. package/dist/react/transports/langgraph/index.js +3 -0
  189. package/dist/react/transports/langgraph/index.js.map +1 -0
  190. package/dist/react/transports/langgraph/langgraph-ai-chat.d.ts +62 -0
  191. package/dist/react/transports/langgraph/langgraph-ai-chat.js +92 -0
  192. package/dist/react/transports/langgraph/langgraph-ai-chat.js.map +1 -0
  193. package/dist/react/transports/langgraph.d.ts +71 -0
  194. package/dist/react/transports/langgraph.js +366 -0
  195. package/dist/react/transports/langgraph.js.map +1 -0
  196. package/dist/react/transports/vercel/index.d.ts +2 -0
  197. package/dist/react/transports/vercel/index.js +3 -0
  198. package/dist/react/transports/vercel/index.js.map +1 -0
  199. package/dist/react/transports/vercel/vercel-ai-chat.d.ts +49 -0
  200. package/dist/react/transports/vercel/vercel-ai-chat.js +79 -0
  201. package/dist/react/transports/vercel/vercel-ai-chat.js.map +1 -0
  202. package/dist/react/transports/vercel.d.ts +30 -0
  203. package/dist/react/transports/vercel.js +67 -0
  204. package/dist/react/transports/vercel.js.map +1 -0
  205. package/dist/react/types.d.ts +750 -0
  206. package/dist/react/types.js +2 -0
  207. package/dist/react/types.js.map +1 -0
  208. package/dist/react/ui.d.ts +73 -0
  209. package/dist/react/ui.js +170 -0
  210. package/dist/react/ui.js.map +1 -0
  211. package/dist/react/utils/create-approval-description.d.ts +53 -0
  212. package/dist/react/utils/create-approval-description.js +120 -0
  213. package/dist/react/utils/create-approval-description.js.map +1 -0
  214. package/dist/react/utils/create-tool-result-handler.d.ts +90 -0
  215. package/dist/react/utils/create-tool-result-handler.js +166 -0
  216. package/dist/react/utils/create-tool-result-handler.js.map +1 -0
  217. package/dist/react/utils/mention-markup.d.ts +13 -0
  218. package/dist/react/utils/mention-markup.js +111 -0
  219. package/dist/react/utils/mention-markup.js.map +1 -0
  220. package/dist/react/utils/merge-pipeline-steps.d.ts +19 -0
  221. package/dist/react/utils/merge-pipeline-steps.js +79 -0
  222. package/dist/react/utils/merge-pipeline-steps.js.map +1 -0
  223. package/dist/react/utils/sanitize-stored-messages.d.ts +23 -0
  224. package/dist/react/utils/sanitize-stored-messages.js +50 -0
  225. package/dist/react/utils/sanitize-stored-messages.js.map +1 -0
  226. package/dist/server/adapters/nestjs/chat/ai-chat-auth.guard.d.ts +10 -0
  227. package/dist/server/adapters/nestjs/chat/ai-chat-auth.guard.js +40 -0
  228. package/dist/server/adapters/nestjs/chat/ai-chat-auth.guard.js.map +1 -0
  229. package/dist/server/adapters/nestjs/chat/ai-chat-module-options.interface.d.ts +32 -0
  230. package/dist/server/adapters/nestjs/chat/ai-chat-module-options.interface.js +2 -0
  231. package/dist/server/adapters/nestjs/chat/ai-chat-module-options.interface.js.map +1 -0
  232. package/dist/server/adapters/nestjs/chat/ai-chat.controller.d.ts +11 -0
  233. package/dist/server/adapters/nestjs/chat/ai-chat.controller.js +78 -0
  234. package/dist/server/adapters/nestjs/chat/ai-chat.controller.js.map +1 -0
  235. package/dist/server/adapters/nestjs/chat/ai-chat.module.d.ts +9 -0
  236. package/dist/server/adapters/nestjs/chat/ai-chat.module.js +116 -0
  237. package/dist/server/adapters/nestjs/chat/ai-chat.module.js.map +1 -0
  238. package/dist/server/adapters/nestjs/chat/ai-chat.service.d.ts +13 -0
  239. package/dist/server/adapters/nestjs/chat/ai-chat.service.js +129 -0
  240. package/dist/server/adapters/nestjs/chat/ai-chat.service.js.map +1 -0
  241. package/dist/server/adapters/nestjs/chat/dto/ai-chat-request.dto.d.ts +7 -0
  242. package/dist/server/adapters/nestjs/chat/dto/ai-chat-request.dto.js +49 -0
  243. package/dist/server/adapters/nestjs/chat/dto/ai-chat-request.dto.js.map +1 -0
  244. package/dist/server/adapters/nestjs/chat/dto/chat-message-part.dto.d.ts +19 -0
  245. package/dist/server/adapters/nestjs/chat/dto/chat-message-part.dto.js +105 -0
  246. package/dist/server/adapters/nestjs/chat/dto/chat-message-part.dto.js.map +1 -0
  247. package/dist/server/adapters/nestjs/chat/dto/chat-message.dto.d.ts +8 -0
  248. package/dist/server/adapters/nestjs/chat/dto/chat-message.dto.js +56 -0
  249. package/dist/server/adapters/nestjs/chat/dto/chat-message.dto.js.map +1 -0
  250. package/dist/server/adapters/nestjs/chat/dto/index.d.ts +3 -0
  251. package/dist/server/adapters/nestjs/chat/dto/index.js +4 -0
  252. package/dist/server/adapters/nestjs/chat/dto/index.js.map +1 -0
  253. package/dist/server/adapters/nestjs/chat/index.d.ts +3 -0
  254. package/dist/server/adapters/nestjs/chat/index.js +3 -0
  255. package/dist/server/adapters/nestjs/chat/index.js.map +1 -0
  256. package/dist/server/adapters/nestjs/chat/speech-stream.gateway.d.ts +4 -0
  257. package/dist/server/adapters/nestjs/chat/speech-stream.gateway.js +69 -0
  258. package/dist/server/adapters/nestjs/chat/speech-stream.gateway.js.map +1 -0
  259. package/dist/server/adapters/nestjs/decorators/ai-module.decorator.d.ts +6 -0
  260. package/dist/server/adapters/nestjs/decorators/ai-module.decorator.js +11 -0
  261. package/dist/server/adapters/nestjs/decorators/ai-module.decorator.js.map +1 -0
  262. package/dist/server/adapters/nestjs/decorators/ai-param.decorator.d.ts +5 -0
  263. package/dist/server/adapters/nestjs/decorators/ai-param.decorator.js +13 -0
  264. package/dist/server/adapters/nestjs/decorators/ai-param.decorator.js.map +1 -0
  265. package/dist/server/adapters/nestjs/decorators/ai-tool.decorator.d.ts +6 -0
  266. package/dist/server/adapters/nestjs/decorators/ai-tool.decorator.js +20 -0
  267. package/dist/server/adapters/nestjs/decorators/ai-tool.decorator.js.map +1 -0
  268. package/dist/server/adapters/nestjs/decorators/constants.d.ts +4 -0
  269. package/dist/server/adapters/nestjs/decorators/constants.js +5 -0
  270. package/dist/server/adapters/nestjs/decorators/constants.js.map +1 -0
  271. package/dist/server/adapters/nestjs/index.d.ts +14 -0
  272. package/dist/server/adapters/nestjs/index.js +20 -0
  273. package/dist/server/adapters/nestjs/index.js.map +1 -0
  274. package/dist/server/adapters/nestjs/metadata.d.ts +39 -0
  275. package/dist/server/adapters/nestjs/metadata.js +30 -0
  276. package/dist/server/adapters/nestjs/metadata.js.map +1 -0
  277. package/dist/server/adapters/nestjs/module/ai-tools-explorer.service.d.ts +36 -0
  278. package/dist/server/adapters/nestjs/module/ai-tools-explorer.service.js +156 -0
  279. package/dist/server/adapters/nestjs/module/ai-tools-explorer.service.js.map +1 -0
  280. package/dist/server/adapters/nestjs/module/ai-tools.module.d.ts +37 -0
  281. package/dist/server/adapters/nestjs/module/ai-tools.module.js +42 -0
  282. package/dist/server/adapters/nestjs/module/ai-tools.module.js.map +1 -0
  283. package/dist/server/adapters/nestjs/module/ai-tools.service.d.ts +28 -0
  284. package/dist/server/adapters/nestjs/module/ai-tools.service.js +38 -0
  285. package/dist/server/adapters/nestjs/module/ai-tools.service.js.map +1 -0
  286. package/dist/server/adapters/nestjs/scanner/nestjs-scanner.d.ts +16 -0
  287. package/dist/server/adapters/nestjs/scanner/nestjs-scanner.js +115 -0
  288. package/dist/server/adapters/nestjs/scanner/nestjs-scanner.js.map +1 -0
  289. package/dist/server/adapters/nestjs/scanner/schema-builder.d.ts +26 -0
  290. package/dist/server/adapters/nestjs/scanner/schema-builder.js +255 -0
  291. package/dist/server/adapters/nestjs/scanner/schema-builder.js.map +1 -0
  292. package/dist/server/adapters/nestjs/swagger.d.ts +7 -0
  293. package/dist/server/adapters/nestjs/swagger.js +37 -0
  294. package/dist/server/adapters/nestjs/swagger.js.map +1 -0
  295. package/dist/server/adapters/nextjs/context-helpers.d.ts +22 -0
  296. package/dist/server/adapters/nextjs/context-helpers.js +55 -0
  297. package/dist/server/adapters/nextjs/context-helpers.js.map +1 -0
  298. package/dist/server/adapters/nextjs/create-ai-chat-handler.d.ts +78 -0
  299. package/dist/server/adapters/nextjs/create-ai-chat-handler.js +950 -0
  300. package/dist/server/adapters/nextjs/create-ai-chat-handler.js.map +1 -0
  301. package/dist/server/adapters/nextjs/index.d.ts +8 -0
  302. package/dist/server/adapters/nextjs/index.js +9 -0
  303. package/dist/server/adapters/nextjs/index.js.map +1 -0
  304. package/dist/server/adapters/nextjs/prepare-model-messages.d.ts +58 -0
  305. package/dist/server/adapters/nextjs/prepare-model-messages.js +111 -0
  306. package/dist/server/adapters/nextjs/prepare-model-messages.js.map +1 -0
  307. package/dist/server/adapters/nextjs/sanitize-model-messages.d.ts +64 -0
  308. package/dist/server/adapters/nextjs/sanitize-model-messages.js +487 -0
  309. package/dist/server/adapters/nextjs/sanitize-model-messages.js.map +1 -0
  310. package/dist/server/adapters/nextjs/server-action-helper.d.ts +7 -0
  311. package/dist/server/adapters/nextjs/server-action-helper.js +38 -0
  312. package/dist/server/adapters/nextjs/server-action-helper.js.map +1 -0
  313. package/dist/server/adapters/nextjs/types.d.ts +246 -0
  314. package/dist/server/adapters/nextjs/types.js +2 -0
  315. package/dist/server/adapters/nextjs/types.js.map +1 -0
  316. package/dist/server/adapters/nextjs/with-ai-tool.d.ts +9 -0
  317. package/dist/server/adapters/nextjs/with-ai-tool.js +10 -0
  318. package/dist/server/adapters/nextjs/with-ai-tool.js.map +1 -0
  319. package/dist/server/core/followup-tool.d.ts +9 -0
  320. package/dist/server/core/followup-tool.js +80 -0
  321. package/dist/server/core/followup-tool.js.map +1 -0
  322. package/dist/server/core/index.d.ts +139 -0
  323. package/dist/server/core/index.js +787 -0
  324. package/dist/server/core/index.js.map +1 -0
  325. package/dist/server/core/intent-classifier.d.ts +94 -0
  326. package/dist/server/core/intent-classifier.js +314 -0
  327. package/dist/server/core/intent-classifier.js.map +1 -0
  328. package/dist/server/core/model-selector.d.ts +12 -0
  329. package/dist/server/core/model-selector.js +45 -0
  330. package/dist/server/core/model-selector.js.map +1 -0
  331. package/dist/server/core/module-router.d.ts +14 -0
  332. package/dist/server/core/module-router.js +107 -0
  333. package/dist/server/core/module-router.js.map +1 -0
  334. package/dist/server/core/zod-compact.d.ts +18 -0
  335. package/dist/server/core/zod-compact.js +127 -0
  336. package/dist/server/core/zod-compact.js.map +1 -0
  337. package/dist/server/index.d.ts +5 -0
  338. package/dist/server/index.js +8 -0
  339. package/dist/server/index.js.map +1 -0
  340. package/dist/server/lancer/cache.d.ts +9 -0
  341. package/dist/server/lancer/cache.js +30 -0
  342. package/dist/server/lancer/cache.js.map +1 -0
  343. package/dist/server/lancer/client.d.ts +2 -0
  344. package/dist/server/lancer/client.js +277 -0
  345. package/dist/server/lancer/client.js.map +1 -0
  346. package/dist/server/lancer/errors.d.ts +13 -0
  347. package/dist/server/lancer/errors.js +18 -0
  348. package/dist/server/lancer/errors.js.map +1 -0
  349. package/dist/server/lancer/index.d.ts +3 -0
  350. package/dist/server/lancer/index.js +3 -0
  351. package/dist/server/lancer/index.js.map +1 -0
  352. package/dist/server/lancer/telemetry-buffer.d.ts +15 -0
  353. package/dist/server/lancer/telemetry-buffer.js +61 -0
  354. package/dist/server/lancer/telemetry-buffer.js.map +1 -0
  355. package/dist/server/lancer/types.d.ts +201 -0
  356. package/dist/server/lancer/types.js +5 -0
  357. package/dist/server/lancer/types.js.map +1 -0
  358. package/dist/server/pii-shield/aegis-detector.d.ts +26 -0
  359. package/dist/server/pii-shield/aegis-detector.js +24 -0
  360. package/dist/server/pii-shield/aegis-detector.js.map +1 -0
  361. package/dist/server/pii-shield/create-pii-shield.d.ts +2 -0
  362. package/dist/server/pii-shield/create-pii-shield.js +189 -0
  363. package/dist/server/pii-shield/create-pii-shield.js.map +1 -0
  364. package/dist/server/pii-shield/deep-walk.d.ts +1 -0
  365. package/dist/server/pii-shield/deep-walk.js +17 -0
  366. package/dist/server/pii-shield/deep-walk.js.map +1 -0
  367. package/dist/server/pii-shield/fake-data.d.ts +5 -0
  368. package/dist/server/pii-shield/fake-data.js +168 -0
  369. package/dist/server/pii-shield/fake-data.js.map +1 -0
  370. package/dist/server/pii-shield/index.d.ts +4 -0
  371. package/dist/server/pii-shield/index.js +5 -0
  372. package/dist/server/pii-shield/index.js.map +1 -0
  373. package/dist/server/pii-shield/leakage.d.ts +1 -0
  374. package/dist/server/pii-shield/leakage.js +13 -0
  375. package/dist/server/pii-shield/leakage.js.map +1 -0
  376. package/dist/server/pii-shield/session-mapping.d.ts +12 -0
  377. package/dist/server/pii-shield/session-mapping.js +68 -0
  378. package/dist/server/pii-shield/session-mapping.js.map +1 -0
  379. package/dist/server/pipeline.d.ts +26 -0
  380. package/dist/server/pipeline.js +125 -0
  381. package/dist/server/pipeline.js.map +1 -0
  382. package/dist/server/testing/approvals.d.ts +11 -0
  383. package/dist/server/testing/approvals.js +39 -0
  384. package/dist/server/testing/approvals.js.map +1 -0
  385. package/dist/server/testing/combination.d.ts +3 -0
  386. package/dist/server/testing/combination.js +81 -0
  387. package/dist/server/testing/combination.js.map +1 -0
  388. package/dist/server/testing/create-test-suite.d.ts +29 -0
  389. package/dist/server/testing/create-test-suite.js +79 -0
  390. package/dist/server/testing/create-test-suite.js.map +1 -0
  391. package/dist/server/testing/edge-cases.d.ts +8 -0
  392. package/dist/server/testing/edge-cases.js +275 -0
  393. package/dist/server/testing/edge-cases.js.map +1 -0
  394. package/dist/server/testing/guardrails.d.ts +14 -0
  395. package/dist/server/testing/guardrails.js +150 -0
  396. package/dist/server/testing/guardrails.js.map +1 -0
  397. package/dist/server/testing/helpers.d.ts +14 -0
  398. package/dist/server/testing/helpers.js +114 -0
  399. package/dist/server/testing/helpers.js.map +1 -0
  400. package/dist/server/testing/index.d.ts +12 -0
  401. package/dist/server/testing/index.js +21 -0
  402. package/dist/server/testing/index.js.map +1 -0
  403. package/dist/server/testing/mock-executor.d.ts +8 -0
  404. package/dist/server/testing/mock-executor.js +38 -0
  405. package/dist/server/testing/mock-executor.js.map +1 -0
  406. package/dist/server/testing/regression.d.ts +7 -0
  407. package/dist/server/testing/regression.js +25 -0
  408. package/dist/server/testing/regression.js.map +1 -0
  409. package/dist/server/testing/routing.d.ts +12 -0
  410. package/dist/server/testing/routing.js +61 -0
  411. package/dist/server/testing/routing.js.map +1 -0
  412. package/dist/server/testing/schema-consistency.d.ts +6 -0
  413. package/dist/server/testing/schema-consistency.js +54 -0
  414. package/dist/server/testing/schema-consistency.js.map +1 -0
  415. package/dist/server/testing/smoke.d.ts +11 -0
  416. package/dist/server/testing/smoke.js +62 -0
  417. package/dist/server/testing/smoke.js.map +1 -0
  418. package/dist/server/testing/types.d.ts +156 -0
  419. package/dist/server/testing/types.js +2 -0
  420. package/dist/server/testing/types.js.map +1 -0
  421. package/dist/types.d.ts +696 -0
  422. package/dist/types.js +84 -0
  423. package/dist/types.js.map +1 -0
  424. package/package.json +187 -0
@@ -0,0 +1,107 @@
1
+ // ============================================================================
2
+ // Default Confidence Thresholds
3
+ // ============================================================================
4
+ const DEFAULT_THRESHOLDS = {
5
+ high: 0.85,
6
+ medium: 0.7,
7
+ };
8
+ // ============================================================================
9
+ // Helpers
10
+ // ============================================================================
11
+ function getExpansionStrategy(confidence, thresholds) {
12
+ if (confidence >= thresholds.high)
13
+ return 'single';
14
+ if (confidence >= thresholds.medium)
15
+ return 'expanded';
16
+ return 'all';
17
+ }
18
+ function getAllTools(modules) {
19
+ const all = new Set();
20
+ for (const mod of modules) {
21
+ for (const tool of mod.tools)
22
+ all.add(tool);
23
+ if (mod.sharedTools) {
24
+ for (const tool of mod.sharedTools)
25
+ all.add(tool);
26
+ }
27
+ }
28
+ return [...all];
29
+ }
30
+ function unique(tools) {
31
+ return [...new Set(tools)];
32
+ }
33
+ // ============================================================================
34
+ // Module Definition Helper
35
+ // ============================================================================
36
+ /**
37
+ * Define a module for intent-based tool routing.
38
+ */
39
+ export function defineModule(config) {
40
+ return config;
41
+ }
42
+ // ============================================================================
43
+ // Router Factory
44
+ // ============================================================================
45
+ /**
46
+ * Create an AI router that selects tools based on classified intent.
47
+ *
48
+ * The router uses confidence-based expansion:
49
+ * - High confidence (>= 0.85): Only primary module's own tools
50
+ * - Medium confidence (0.7-0.85): Primary module tools + shared tools from all modules
51
+ * - Low confidence (< 0.7): All tools (ambiguous fallback)
52
+ */
53
+ export function createAiRouter(config) {
54
+ const { modules, relatedModules = {}, confidenceThresholds = {}, } = config;
55
+ const thresholds = {
56
+ high: confidenceThresholds.high ?? DEFAULT_THRESHOLDS.high,
57
+ medium: confidenceThresholds.medium ?? DEFAULT_THRESHOLDS.medium,
58
+ };
59
+ const moduleMap = new Map(modules.map((m) => [m.id, m]));
60
+ const allToolNames = getAllTools(modules);
61
+ return {
62
+ route(intent, _allToolNames) {
63
+ // Ambiguous: use all tools
64
+ if (intent.intent === 'ambiguous') {
65
+ return {
66
+ tools: unique(allToolNames),
67
+ module: null,
68
+ strategy: 'all',
69
+ };
70
+ }
71
+ const primaryModule = moduleMap.get(intent.intent);
72
+ if (!primaryModule) {
73
+ return {
74
+ tools: unique(allToolNames),
75
+ module: null,
76
+ strategy: 'all',
77
+ };
78
+ }
79
+ const strategy = getExpansionStrategy(intent.confidence, thresholds);
80
+ switch (strategy) {
81
+ case 'single': {
82
+ return {
83
+ tools: unique([...primaryModule.tools]),
84
+ module: primaryModule,
85
+ strategy: 'single',
86
+ };
87
+ }
88
+ case 'expanded': {
89
+ const sharedFromAll = modules.flatMap((m) => m.sharedTools ?? []);
90
+ return {
91
+ tools: unique([...primaryModule.tools, ...sharedFromAll]),
92
+ module: primaryModule,
93
+ strategy: 'expanded',
94
+ };
95
+ }
96
+ case 'all':
97
+ default:
98
+ return {
99
+ tools: unique(allToolNames),
100
+ module: null,
101
+ strategy: 'all',
102
+ };
103
+ }
104
+ },
105
+ };
106
+ }
107
+ //# sourceMappingURL=module-router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-router.js","sourceRoot":"","sources":["../../../src/server/core/module-router.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Convert a Zod schema to a compact TypeScript-like description string.
4
+ *
5
+ * Used to auto-generate "Returns: ..." suffixes for AI tool descriptions,
6
+ * so the LLM knows the response shape without bloating the system prompt.
7
+ *
8
+ * @example
9
+ * zodToCompactDescription(z.object({
10
+ * tasks: z.array(z.object({ id: z.string(), title: z.string() })),
11
+ * total: z.number(),
12
+ * }))
13
+ * // → '{ tasks: Array<{ id: string, title: string }>, total: number }'
14
+ *
15
+ * @param schema - Any Zod schema
16
+ * @param maxDepth - Maximum nesting depth before collapsing to "..." (default: 3)
17
+ */
18
+ export declare function zodToCompactDescription(schema: z.ZodTypeAny, maxDepth?: number): string;
@@ -0,0 +1,127 @@
1
+ /**
2
+ * Convert a Zod schema to a compact TypeScript-like description string.
3
+ *
4
+ * Used to auto-generate "Returns: ..." suffixes for AI tool descriptions,
5
+ * so the LLM knows the response shape without bloating the system prompt.
6
+ *
7
+ * @example
8
+ * zodToCompactDescription(z.object({
9
+ * tasks: z.array(z.object({ id: z.string(), title: z.string() })),
10
+ * total: z.number(),
11
+ * }))
12
+ * // → '{ tasks: Array<{ id: string, title: string }>, total: number }'
13
+ *
14
+ * @param schema - Any Zod schema
15
+ * @param maxDepth - Maximum nesting depth before collapsing to "..." (default: 3)
16
+ */
17
+ export function zodToCompactDescription(schema, maxDepth = 3) {
18
+ return describeSchema(schema, 0, maxDepth);
19
+ }
20
+ function describeSchema(schema, depth, maxDepth) {
21
+ if (depth >= maxDepth)
22
+ return '...';
23
+ const def = schema._def;
24
+ const typeName = def?.typeName;
25
+ switch (typeName) {
26
+ case 'ZodString':
27
+ return 'string';
28
+ case 'ZodNumber':
29
+ return 'number';
30
+ case 'ZodBoolean':
31
+ return 'boolean';
32
+ case 'ZodDate':
33
+ return 'string'; // Dates serialize as strings in JSON
34
+ case 'ZodLiteral':
35
+ return JSON.stringify(def.value);
36
+ case 'ZodNull':
37
+ return 'null';
38
+ case 'ZodUndefined':
39
+ return 'undefined';
40
+ case 'ZodAny':
41
+ return 'any';
42
+ case 'ZodUnknown':
43
+ return 'unknown';
44
+ case 'ZodVoid':
45
+ return 'void';
46
+ case 'ZodEnum':
47
+ return def.values
48
+ .map((v) => `"${v}"`)
49
+ .join(' | ');
50
+ case 'ZodNativeEnum':
51
+ return Object.values(def.values)
52
+ .filter((v) => typeof v === 'string')
53
+ .map((v) => `"${v}"`)
54
+ .join(' | ');
55
+ case 'ZodArray':
56
+ return `Array<${describeSchema(def.type, depth + 1, maxDepth)}>`;
57
+ case 'ZodObject': {
58
+ const shape = def.shape();
59
+ const entries = Object.entries(shape);
60
+ if (entries.length === 0)
61
+ return '{}';
62
+ const fields = entries.map(([key, value]) => {
63
+ const optional = isOptional(value);
64
+ const desc = describeSchema(unwrap(value), depth + 1, maxDepth);
65
+ const nullable = isNullable(value);
66
+ const suffix = nullable ? ' | null' : '';
67
+ return `${key}${optional ? '?' : ''}: ${desc}${suffix}`;
68
+ });
69
+ return `{ ${fields.join(', ')} }`;
70
+ }
71
+ case 'ZodRecord':
72
+ return `Record<string, ${describeSchema(def.valueType, depth + 1, maxDepth)}>`;
73
+ case 'ZodUnion':
74
+ case 'ZodDiscriminatedUnion': {
75
+ const options = def.options;
76
+ return options
77
+ .map((o) => describeSchema(o, depth + 1, maxDepth))
78
+ .join(' | ');
79
+ }
80
+ case 'ZodTuple': {
81
+ const items = def.items;
82
+ return `[${items.map((i) => describeSchema(i, depth + 1, maxDepth)).join(', ')}]`;
83
+ }
84
+ case 'ZodNullable':
85
+ return `${describeSchema(def.innerType, depth, maxDepth)} | null`;
86
+ case 'ZodOptional':
87
+ case 'ZodDefault':
88
+ return describeSchema(def.innerType, depth, maxDepth);
89
+ case 'ZodEffects':
90
+ return describeSchema(def.schema, depth, maxDepth);
91
+ default:
92
+ return 'unknown';
93
+ }
94
+ }
95
+ /** Unwrap ZodOptional / ZodNullable / ZodDefault / ZodEffects to the inner schema. */
96
+ function unwrap(schema) {
97
+ const def = schema._def;
98
+ const typeName = def?.typeName;
99
+ if (typeName === 'ZodOptional' ||
100
+ typeName === 'ZodNullable' ||
101
+ typeName === 'ZodDefault') {
102
+ return unwrap(def.innerType);
103
+ }
104
+ if (typeName === 'ZodEffects') {
105
+ return unwrap(def.schema);
106
+ }
107
+ return schema;
108
+ }
109
+ function isOptional(schema) {
110
+ const def = schema._def;
111
+ const typeName = def?.typeName;
112
+ if (typeName === 'ZodOptional' || typeName === 'ZodDefault')
113
+ return true;
114
+ if (typeName === 'ZodNullable')
115
+ return isOptional(def.innerType);
116
+ return false;
117
+ }
118
+ function isNullable(schema) {
119
+ const def = schema._def;
120
+ const typeName = def?.typeName;
121
+ if (typeName === 'ZodNullable')
122
+ return true;
123
+ if (typeName === 'ZodOptional' || typeName === 'ZodDefault')
124
+ return isNullable(def.innerType);
125
+ return false;
126
+ }
127
+ //# sourceMappingURL=zod-compact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zod-compact.js","sourceRoot":"","sources":["../../../src/server/core/zod-compact.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export * from './core/index.js';
2
+ export * from './pipeline.js';
3
+ export { createPiiShield } from './pii-shield/index.js';
4
+ export { createAegisDetector } from './pii-shield/index.js';
5
+ export type { AegisLike } from './pii-shield/index.js';
@@ -0,0 +1,8 @@
1
+ // Server core (includes native telemetry forwarding via TelemetrySink interface)
2
+ export * from './core/index.js';
3
+ // AI pipeline (multi-stage: guardrails → classify → route → model select)
4
+ export * from './pipeline.js';
5
+ // PII shield
6
+ export { createPiiShield } from './pii-shield/index.js';
7
+ export { createAegisDetector } from './pii-shield/index.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,cAAc,iBAAiB,CAAC;AAEhC,0EAA0E;AAC1E,cAAc,eAAe,CAAC;AAE9B,aAAa;AACb,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,9 @@
1
+ export declare class Cache<T = unknown> {
2
+ private readonly ttl;
3
+ private store;
4
+ constructor(ttl: number);
5
+ set(key: string, value: T): void;
6
+ get(key: string): T | undefined;
7
+ delete(key: string): void;
8
+ clear(): void;
9
+ }
@@ -0,0 +1,30 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Simple in-memory Map cache with TTL
3
+ // ---------------------------------------------------------------------------
4
+ export class Cache {
5
+ ttl;
6
+ store = new Map();
7
+ constructor(ttl) {
8
+ this.ttl = ttl;
9
+ }
10
+ set(key, value) {
11
+ this.store.set(key, { value, expiresAt: Date.now() + this.ttl });
12
+ }
13
+ get(key) {
14
+ const entry = this.store.get(key);
15
+ if (!entry)
16
+ return undefined;
17
+ if (Date.now() > entry.expiresAt) {
18
+ this.store.delete(key);
19
+ return undefined;
20
+ }
21
+ return entry.value;
22
+ }
23
+ delete(key) {
24
+ this.store.delete(key);
25
+ }
26
+ clear() {
27
+ this.store.clear();
28
+ }
29
+ }
30
+ //# sourceMappingURL=cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/server/lancer/cache.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,sCAAsC;AACtC,8EAA8E;AAO9E,MAAM,OAAO,KAAK;IAGa;IAFrB,KAAK,GAAG,IAAI,GAAG,EAAyB,CAAC;IAEjD,YAA6B,GAAW;QAAX,QAAG,GAAH,GAAG,CAAQ;IAAG,CAAC;IAE5C,GAAG,CAAC,GAAW,EAAE,KAAQ;QACvB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,GAAG,CAAC,GAAW;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAC7B,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,GAAW;QAChB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ import type { Lancer, LancerConfig } from './types.js';
2
+ export declare function createLancer(config: LancerConfig): Lancer;
@@ -0,0 +1,277 @@
1
+ // ---------------------------------------------------------------------------
2
+ // createLancer — factory for the Lancer platform client
3
+ // ---------------------------------------------------------------------------
4
+ import { Cache } from './cache.js';
5
+ import { ServiceBlockedError } from './errors.js';
6
+ import { TelemetryBuffer } from './telemetry-buffer.js';
7
+ const DEFAULT_BASE_URL = 'https://api.glirastes.chainmatics.io';
8
+ const DEFAULT_CACHE_TTL = 60_000;
9
+ const DEFAULT_MAX_RETRIES = 3;
10
+ /** Built-in action per service when nothing is explicitly configured. */
11
+ const SERVICE_DEFAULT_ACTIONS = {
12
+ warden: 'fallback',
13
+ primus: 'fallback',
14
+ aegis: 'fallback',
15
+ proctor: 'silent', // telemetry-only service — failures are always silent
16
+ config: 'fallback',
17
+ approvals: 'fallback',
18
+ };
19
+ /**
20
+ * Call `fn`; on failure resolve the degradation action for `service` and act:
21
+ * - 'fallback': call onDegraded (if set) and return `fallback`.
22
+ * - 'silent': return `fallback` without calling onDegraded.
23
+ * - 'block': throw ServiceBlockedError (propagates to the caller).
24
+ *
25
+ * Resolution order: onServiceUnavailable callback > degradation defaults > built-in default.
26
+ */
27
+ async function callWithFallback(fn, fallback, service, cfg) {
28
+ try {
29
+ return await fn();
30
+ }
31
+ catch (err) {
32
+ const error = err instanceof Error ? err : new Error(String(err));
33
+ // 1. Start from static default
34
+ let action = cfg.defaults?.[service] ?? SERVICE_DEFAULT_ACTIONS[service];
35
+ // 2. Let the dynamic callback override (last word)
36
+ if (cfg.onServiceUnavailable) {
37
+ action = await cfg.onServiceUnavailable({ service, error });
38
+ }
39
+ if (action === 'block') {
40
+ throw new ServiceBlockedError(service, error);
41
+ }
42
+ if (action === 'fallback') {
43
+ cfg.onDegraded?.();
44
+ }
45
+ // 'silent': return fallback without notifying
46
+ return fallback;
47
+ }
48
+ }
49
+ export function createLancer(config) {
50
+ const baseUrl = (config.baseUrl ?? DEFAULT_BASE_URL).replace(/\/+$/, '');
51
+ const cacheTtl = config.cache?.ttl ?? DEFAULT_CACHE_TTL;
52
+ const maxRetries = config.retry?.maxRetries ?? DEFAULT_MAX_RETRIES;
53
+ const agentId = config.agentId;
54
+ const agentType = config.agentType;
55
+ const headers = {
56
+ 'Content-Type': 'application/json',
57
+ Authorization: `Bearer ${config.apiKey}`,
58
+ ...(agentId ? { 'X-Agent-Id': agentId } : {}),
59
+ ...(agentType ? { 'X-Agent-Type': agentType } : {}),
60
+ };
61
+ const cache = new Cache(cacheTtl);
62
+ const telemetryBuffer = new TelemetryBuffer(`${baseUrl}/v1/proctor/events`, headers, maxRetries);
63
+ // Track config ETags per cache-key for conditional requests
64
+ const etags = new Map();
65
+ // Shared degradation config — built once, reused by every callWithFallback call.
66
+ const degradationCfg = {
67
+ defaults: config.degradation,
68
+ onServiceUnavailable: config.onServiceUnavailable,
69
+ onDegraded: config.onDegraded,
70
+ };
71
+ // ------ API helpers ------------------------------------------------------
72
+ async function apiFetch(path, init) {
73
+ let lastError;
74
+ for (let attempt = 0; attempt <= maxRetries; attempt++) {
75
+ try {
76
+ const res = await fetch(`${baseUrl}${path}`, {
77
+ ...init,
78
+ headers: { ...headers, ...init?.headers },
79
+ });
80
+ if (!res.ok)
81
+ throw new Error(`HTTP ${res.status}`);
82
+ return (await res.json());
83
+ }
84
+ catch (err) {
85
+ lastError = err;
86
+ }
87
+ }
88
+ throw lastError;
89
+ }
90
+ // ------ Primus namespace (intent classification) -------------------------
91
+ const primus = {
92
+ async classify(message, modules, locale) {
93
+ const moduleIds = modules.map(m => m.moduleId);
94
+ return callWithFallback(() => apiFetch('/v1/primus/classify', {
95
+ method: 'POST',
96
+ body: JSON.stringify({ message, modules: moduleIds, ...(locale && { locale }) }),
97
+ }), { moduleId: '', confidence: 0, modelTier: 'standard' }, 'primus', degradationCfg);
98
+ },
99
+ };
100
+ // ------ Warden namespace (guardrail checks) ------------------------------
101
+ const warden = {
102
+ async check(input, policies) {
103
+ // Map Glirastes response (policy -> rule) so SDK interface matches
104
+ const result = await callWithFallback(async () => {
105
+ const raw = await apiFetch('/v1/warden/check', {
106
+ method: 'POST',
107
+ body: JSON.stringify({ input, policies }),
108
+ });
109
+ return {
110
+ passed: raw.passed,
111
+ violations: raw.violations.map(v => ({
112
+ rule: v.policy,
113
+ severity: v.severity,
114
+ message: v.message,
115
+ })),
116
+ };
117
+ }, { passed: true, violations: [] }, 'warden', degradationCfg);
118
+ return result;
119
+ },
120
+ };
121
+ // ------ Aegis namespace (PII detection) ----------------------------------
122
+ const aegis = {
123
+ async analyze(text, options) {
124
+ return callWithFallback(() => apiFetch('/v1/aegis/analyze', {
125
+ method: 'POST',
126
+ body: JSON.stringify({
127
+ text,
128
+ locales: options?.locales,
129
+ mode: options?.mode ?? 'pseudonymize',
130
+ sessionId: options?.sessionId,
131
+ }),
132
+ }), { entities: [], anonymized: text, mappingToken: null }, 'aegis', degradationCfg);
133
+ },
134
+ async rehydrate(text, mappingToken) {
135
+ const result = await callWithFallback(() => apiFetch('/v1/aegis/rehydrate', {
136
+ method: 'POST',
137
+ body: JSON.stringify({ text, mappingToken }),
138
+ }), { rehydrated: text }, 'aegis', degradationCfg);
139
+ return result.rehydrated;
140
+ },
141
+ async checkLeakage(text, mappingToken, locales) {
142
+ return callWithFallback(() => apiFetch('/v1/aegis/check-leakage', {
143
+ method: 'POST',
144
+ body: JSON.stringify({ text, mappingToken, locales }),
145
+ }), { leaked: false, entities: [], totalDetected: 0, filteredAsKnown: 0 }, 'aegis', degradationCfg);
146
+ },
147
+ };
148
+ // ------ Config namespace -------------------------------------------------
149
+ const configNs = {
150
+ async fetch(modules) {
151
+ const cacheKey = `config:fetch:${modules.sort().join(',')}`;
152
+ const cached = cache.get(cacheKey);
153
+ if (cached)
154
+ return cached;
155
+ const extraHeaders = {};
156
+ const etag = etags.get(cacheKey);
157
+ if (etag)
158
+ extraHeaders['If-None-Match'] = etag;
159
+ const result = await callWithFallback(async () => {
160
+ let lastError;
161
+ for (let attempt = 0; attempt <= maxRetries; attempt++) {
162
+ try {
163
+ const res = await fetch(`${baseUrl}/v1/config?modules=${modules.join(',')}`, {
164
+ method: 'GET',
165
+ headers: { ...headers, ...extraHeaders },
166
+ });
167
+ if (res.status === 304) {
168
+ const prev = cache.get(cacheKey);
169
+ return prev ?? { modules: {} };
170
+ }
171
+ if (!res.ok)
172
+ throw new Error(`HTTP ${res.status}`);
173
+ const body = (await res.json());
174
+ const newEtag = res.headers.get('etag');
175
+ if (newEtag)
176
+ etags.set(cacheKey, newEtag);
177
+ return body;
178
+ }
179
+ catch (err) {
180
+ lastError = err;
181
+ }
182
+ }
183
+ throw lastError;
184
+ }, { modules: {} }, 'config', degradationCfg);
185
+ cache.set(cacheKey, result);
186
+ return result;
187
+ },
188
+ async reportModels(models) {
189
+ try {
190
+ await apiFetch('/v1/config/models/defaults', {
191
+ method: 'POST',
192
+ body: JSON.stringify({ models }),
193
+ });
194
+ }
195
+ catch {
196
+ // Fire-and-forget: silently ignore errors
197
+ }
198
+ },
199
+ };
200
+ // ------ Telemetry namespace ----------------------------------------------
201
+ const telemetry = {
202
+ emit(event) {
203
+ const enrichedEvent = agentId
204
+ ? {
205
+ ...event,
206
+ actor: {
207
+ ...event.actor,
208
+ agentId,
209
+ ...(agentType ? { agentType } : {}),
210
+ },
211
+ }
212
+ : event;
213
+ telemetryBuffer.add(enrichedEvent);
214
+ },
215
+ async flush() {
216
+ // TelemetrySink contract: flush must never throw.
217
+ // Errors are already handled inside TelemetryBuffer (events re-queued).
218
+ try {
219
+ await telemetryBuffer.flush();
220
+ }
221
+ catch {
222
+ // Silently ignore — telemetry is fire-and-forget
223
+ }
224
+ },
225
+ };
226
+ // ------ Approvals namespace -----------------------------------------------
227
+ const approvals = {
228
+ async check(req) {
229
+ return callWithFallback(() => apiFetch('/v1/approvals/check', {
230
+ method: 'POST',
231
+ body: JSON.stringify(req),
232
+ }), { required: true, requestId: null, status: 'local-fallback' }, 'approvals', degradationCfg);
233
+ },
234
+ async decide(requestId, decision) {
235
+ return callWithFallback(() => apiFetch(`/v1/approvals/pending/${requestId}/decide`, {
236
+ method: 'POST',
237
+ body: JSON.stringify(decision),
238
+ }), { ok: false }, 'approvals', degradationCfg);
239
+ },
240
+ async resolve(req) {
241
+ return callWithFallback(() => apiFetch('/v1/approvals/resolve', {
242
+ method: 'POST',
243
+ body: JSON.stringify(req),
244
+ }), { resolved: false }, 'approvals', degradationCfg);
245
+ },
246
+ hashInput(args) {
247
+ // Deterministic JSON hash: recursively sort keys, stringify, then hash
248
+ const sortKeys = (_, v) => v && typeof v === 'object' && !Array.isArray(v)
249
+ ? Object.keys(v).sort().reduce((o, k) => {
250
+ o[k] = v[k];
251
+ return o;
252
+ }, {})
253
+ : v;
254
+ const sorted = JSON.stringify(args, sortKeys);
255
+ let hash = 0;
256
+ for (let i = 0; i < sorted.length; i++) {
257
+ const char = sorted.charCodeAt(i);
258
+ hash = ((hash << 5) - hash + char) | 0;
259
+ }
260
+ return hash.toString(36);
261
+ },
262
+ };
263
+ // ------ Public surface ---------------------------------------------------
264
+ return {
265
+ primus,
266
+ warden,
267
+ aegis,
268
+ config: configNs,
269
+ telemetry,
270
+ approvals,
271
+ destroy() {
272
+ telemetryBuffer.destroy();
273
+ cache.clear();
274
+ },
275
+ };
276
+ }
277
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/server/lancer/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { LancerServiceName } from './types.js';
2
+ /**
3
+ * Thrown by the Lancer client when a service is unreachable and the configured
4
+ * degradation action for that service is 'block'.
5
+ *
6
+ * Consumers (e.g. server-pro pipeline) should catch this error and treat the
7
+ * request as blocked rather than falling back silently.
8
+ */
9
+ export declare class ServiceBlockedError extends Error {
10
+ readonly service: LancerServiceName;
11
+ readonly cause: Error | undefined;
12
+ constructor(service: LancerServiceName, cause?: Error);
13
+ }