@hailer/mcp 1.2.1 → 1.3.10

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 (774) hide show
  1. package/.claude/agents/agent-hailer-helper.md +118 -0
  2. package/.claude/commands/debug-squad.md +13 -290
  3. package/.claude/commands/publish.md +2 -2
  4. package/.claude/commands/review-squad.md +17 -139
  5. package/.claude/skills/create-and-publish-app/SKILL.md +133 -143
  6. package/.claude/skills/hailer-app-builder/SKILL.md +29 -2
  7. package/.claude/skills/hailer-ui-guide/SKILL.md +265 -0
  8. package/.env.example +50 -1
  9. package/CLAUDE.md +141 -10
  10. package/dist/app-prep.d.ts +27 -0
  11. package/dist/app-prep.d.ts.map +1 -0
  12. package/dist/app-prep.js +94 -0
  13. package/dist/app-prep.js.map +1 -0
  14. package/dist/app.d.ts.map +1 -1
  15. package/dist/app.js +3 -0
  16. package/dist/app.js.map +1 -1
  17. package/dist/bot/bot-manager.d.ts +9 -6
  18. package/dist/bot/bot-manager.d.ts.map +1 -1
  19. package/dist/bot/bot-manager.js +142 -31
  20. package/dist/bot/bot-manager.js.map +1 -1
  21. package/dist/bot/bot.d.ts +61 -16
  22. package/dist/bot/bot.d.ts.map +1 -1
  23. package/dist/bot/bot.js +927 -151
  24. package/dist/bot/bot.js.map +1 -1
  25. package/dist/bot/operation-logger.d.ts.map +1 -1
  26. package/dist/bot/operation-logger.js +24 -12
  27. package/dist/bot/operation-logger.js.map +1 -1
  28. package/dist/bot/services/bot-permissions.d.ts +37 -5
  29. package/dist/bot/services/bot-permissions.d.ts.map +1 -1
  30. package/dist/bot/services/bot-permissions.js +159 -35
  31. package/dist/bot/services/bot-permissions.js.map +1 -1
  32. package/dist/bot/services/conversation-manager.d.ts +23 -23
  33. package/dist/bot/services/conversation-manager.d.ts.map +1 -1
  34. package/dist/bot/services/conversation-manager.js +52 -49
  35. package/dist/bot/services/conversation-manager.js.map +1 -1
  36. package/dist/bot/services/helper-prompt.d.ts +8 -0
  37. package/dist/bot/services/helper-prompt.d.ts.map +1 -0
  38. package/dist/bot/services/helper-prompt.js +177 -0
  39. package/dist/bot/services/helper-prompt.js.map +1 -0
  40. package/dist/bot/services/message-classifier.d.ts +16 -16
  41. package/dist/bot/services/message-classifier.d.ts.map +1 -1
  42. package/dist/bot/services/message-classifier.js +55 -49
  43. package/dist/bot/services/message-classifier.js.map +1 -1
  44. package/dist/bot/services/message-formatter.d.ts +47 -38
  45. package/dist/bot/services/message-formatter.d.ts.map +1 -1
  46. package/dist/bot/services/message-formatter.js +99 -80
  47. package/dist/bot/services/message-formatter.js.map +1 -1
  48. package/dist/bot/services/permission-guard.d.ts.map +1 -1
  49. package/dist/bot/services/permission-guard.js +20 -10
  50. package/dist/bot/services/permission-guard.js.map +1 -1
  51. package/dist/bot/services/signal-router.d.ts.map +1 -1
  52. package/dist/bot/services/signal-router.js +11 -6
  53. package/dist/bot/services/signal-router.js.map +1 -1
  54. package/dist/bot/services/system-prompt.d.ts +14 -0
  55. package/dist/bot/services/system-prompt.d.ts.map +1 -1
  56. package/dist/bot/services/system-prompt.js +181 -4
  57. package/dist/bot/services/system-prompt.js.map +1 -1
  58. package/dist/bot/services/token-billing.d.ts +23 -23
  59. package/dist/bot/services/token-billing.d.ts.map +1 -1
  60. package/dist/bot/services/token-billing.js +51 -36
  61. package/dist/bot/services/token-billing.js.map +1 -1
  62. package/dist/bot/services/types.d.ts +3 -1
  63. package/dist/bot/services/types.d.ts.map +1 -1
  64. package/dist/bot/services/typing-indicator.d.ts +8 -8
  65. package/dist/bot/services/typing-indicator.d.ts.map +1 -1
  66. package/dist/bot/services/typing-indicator.js +12 -10
  67. package/dist/bot/services/typing-indicator.js.map +1 -1
  68. package/dist/bot/services/workspace-refresh.d.ts +3 -3
  69. package/dist/bot/services/workspace-refresh.d.ts.map +1 -1
  70. package/dist/bot/services/workspace-refresh.js +23 -13
  71. package/dist/bot/services/workspace-refresh.js.map +1 -1
  72. package/dist/bot/tool-executor.d.ts +10 -6
  73. package/dist/bot/tool-executor.d.ts.map +1 -1
  74. package/dist/bot/tool-executor.js +12 -6
  75. package/dist/bot/tool-executor.js.map +1 -1
  76. package/dist/bot/workspace-overview.d.ts.map +1 -1
  77. package/dist/bot/workspace-overview.js +6 -3
  78. package/dist/bot/workspace-overview.js.map +1 -1
  79. package/dist/bot-config/activity-error.d.ts +47 -0
  80. package/dist/bot-config/activity-error.d.ts.map +1 -0
  81. package/dist/bot-config/activity-error.js +67 -0
  82. package/dist/bot-config/activity-error.js.map +1 -0
  83. package/dist/bot-config/context.d.ts +4 -4
  84. package/dist/bot-config/context.d.ts.map +1 -1
  85. package/dist/bot-config/context.js +18 -14
  86. package/dist/bot-config/context.js.map +1 -1
  87. package/dist/bot-config/events.d.ts +45 -0
  88. package/dist/bot-config/events.d.ts.map +1 -0
  89. package/dist/bot-config/events.js +51 -0
  90. package/dist/bot-config/events.js.map +1 -0
  91. package/dist/bot-config/index.d.ts +3 -0
  92. package/dist/bot-config/index.d.ts.map +1 -1
  93. package/dist/bot-config/index.js +8 -1
  94. package/dist/bot-config/index.js.map +1 -1
  95. package/dist/bot-config/loader.d.ts +3 -0
  96. package/dist/bot-config/loader.d.ts.map +1 -1
  97. package/dist/bot-config/loader.js +45 -20
  98. package/dist/bot-config/loader.js.map +1 -1
  99. package/dist/bot-config/persistence.js.map +1 -1
  100. package/dist/bot-config/reconciler.d.ts +11 -0
  101. package/dist/bot-config/reconciler.d.ts.map +1 -0
  102. package/dist/bot-config/reconciler.js +121 -0
  103. package/dist/bot-config/reconciler.js.map +1 -0
  104. package/dist/bot-config/state.d.ts.map +1 -1
  105. package/dist/bot-config/state.js.map +1 -1
  106. package/dist/bot-config/types.d.ts +32 -0
  107. package/dist/bot-config/types.d.ts.map +1 -1
  108. package/dist/bot-config/webhooks.d.ts.map +1 -1
  109. package/dist/bot-config/webhooks.js.map +1 -1
  110. package/dist/bot-config/workflow-installer.d.ts +37 -0
  111. package/dist/bot-config/workflow-installer.d.ts.map +1 -0
  112. package/dist/bot-config/workflow-installer.js +346 -0
  113. package/dist/bot-config/workflow-installer.js.map +1 -0
  114. package/dist/cli.d.ts +4 -1
  115. package/dist/cli.d.ts.map +1 -1
  116. package/dist/cli.js +92 -11
  117. package/dist/cli.js.map +1 -1
  118. package/dist/config.d.ts +23 -19
  119. package/dist/config.d.ts.map +1 -1
  120. package/dist/config.js +65 -27
  121. package/dist/config.js.map +1 -1
  122. package/dist/core.d.ts +6 -4
  123. package/dist/core.d.ts.map +1 -1
  124. package/dist/core.js +11 -16
  125. package/dist/core.js.map +1 -1
  126. package/dist/lib/logger.d.ts.map +1 -1
  127. package/dist/lib/logger.js +7 -4
  128. package/dist/lib/logger.js.map +1 -1
  129. package/dist/lib/request-logger.d.ts +19 -19
  130. package/dist/lib/request-logger.d.ts.map +1 -1
  131. package/dist/lib/request-logger.js +19 -19
  132. package/dist/lib/request-logger.js.map +1 -1
  133. package/dist/mcp/UserContextCache.d.ts +28 -22
  134. package/dist/mcp/UserContextCache.d.ts.map +1 -1
  135. package/dist/mcp/UserContextCache.js +23 -23
  136. package/dist/mcp/UserContextCache.js.map +1 -1
  137. package/dist/mcp/auth.js.map +1 -1
  138. package/dist/mcp/hailer-clients.d.ts +5 -4
  139. package/dist/mcp/hailer-clients.d.ts.map +1 -1
  140. package/dist/mcp/hailer-clients.js +83 -34
  141. package/dist/mcp/hailer-clients.js.map +1 -1
  142. package/dist/mcp/hailer-rpc.d.ts +40 -0
  143. package/dist/mcp/hailer-rpc.d.ts.map +1 -0
  144. package/dist/mcp/hailer-rpc.js +43 -0
  145. package/dist/mcp/hailer-rpc.js.map +1 -0
  146. package/dist/mcp/publish-auth-injector.d.ts +22 -0
  147. package/dist/mcp/publish-auth-injector.d.ts.map +1 -0
  148. package/dist/mcp/publish-auth-injector.js +100 -0
  149. package/dist/mcp/publish-auth-injector.js.map +1 -0
  150. package/dist/mcp/session-store.d.ts +16 -16
  151. package/dist/mcp/session-store.d.ts.map +1 -1
  152. package/dist/mcp/session-store.js +16 -16
  153. package/dist/mcp/session-store.js.map +1 -1
  154. package/dist/mcp/tool-profiles.d.ts +69 -0
  155. package/dist/mcp/tool-profiles.d.ts.map +1 -0
  156. package/dist/mcp/tool-profiles.js +184 -0
  157. package/dist/mcp/tool-profiles.js.map +1 -0
  158. package/dist/mcp/tool-registry.d.ts +16 -0
  159. package/dist/mcp/tool-registry.d.ts.map +1 -1
  160. package/dist/mcp/tool-registry.js +91 -39
  161. package/dist/mcp/tool-registry.js.map +1 -1
  162. package/dist/mcp/tools/activity.d.ts +2 -0
  163. package/dist/mcp/tools/activity.d.ts.map +1 -1
  164. package/dist/mcp/tools/activity.js +575 -218
  165. package/dist/mcp/tools/activity.js.map +1 -1
  166. package/dist/mcp/tools/aliases.d.ts +11 -0
  167. package/dist/mcp/tools/aliases.d.ts.map +1 -0
  168. package/dist/mcp/tools/aliases.js +182 -0
  169. package/dist/mcp/tools/aliases.js.map +1 -0
  170. package/dist/mcp/tools/app-core.d.ts +6 -8
  171. package/dist/mcp/tools/app-core.d.ts.map +1 -1
  172. package/dist/mcp/tools/app-core.js +355 -254
  173. package/dist/mcp/tools/app-core.js.map +1 -1
  174. package/dist/mcp/tools/app-marketplace.d.ts +12 -16
  175. package/dist/mcp/tools/app-marketplace.d.ts.map +1 -1
  176. package/dist/mcp/tools/app-marketplace.js +748 -856
  177. package/dist/mcp/tools/app-marketplace.js.map +1 -1
  178. package/dist/mcp/tools/app.d.ts +4 -7
  179. package/dist/mcp/tools/app.d.ts.map +1 -1
  180. package/dist/mcp/tools/app.js +4 -7
  181. package/dist/mcp/tools/app.js.map +1 -1
  182. package/dist/mcp/tools/bot-self.d.ts +21 -0
  183. package/dist/mcp/tools/bot-self.d.ts.map +1 -0
  184. package/dist/mcp/tools/bot-self.js +174 -0
  185. package/dist/mcp/tools/bot-self.js.map +1 -0
  186. package/dist/mcp/tools/calendar.d.ts +21 -0
  187. package/dist/mcp/tools/calendar.d.ts.map +1 -0
  188. package/dist/mcp/tools/calendar.js +741 -0
  189. package/dist/mcp/tools/calendar.js.map +1 -0
  190. package/dist/mcp/tools/company.d.ts.map +1 -1
  191. package/dist/mcp/tools/company.js +2 -1
  192. package/dist/mcp/tools/company.js.map +1 -1
  193. package/dist/mcp/tools/date.js.map +1 -1
  194. package/dist/mcp/tools/discussion.d.ts +29 -3
  195. package/dist/mcp/tools/discussion.d.ts.map +1 -1
  196. package/dist/mcp/tools/discussion.js +419 -534
  197. package/dist/mcp/tools/discussion.js.map +1 -1
  198. package/dist/mcp/tools/file.d.ts.map +1 -1
  199. package/dist/mcp/tools/file.js +18 -16
  200. package/dist/mcp/tools/file.js.map +1 -1
  201. package/dist/mcp/tools/index.js +4 -4
  202. package/dist/mcp/tools/index.js.map +1 -1
  203. package/dist/mcp/tools/insight.d.ts +24 -5
  204. package/dist/mcp/tools/insight.d.ts.map +1 -1
  205. package/dist/mcp/tools/insight.js +513 -480
  206. package/dist/mcp/tools/insight.js.map +1 -1
  207. package/dist/mcp/tools/user.d.ts.map +1 -1
  208. package/dist/mcp/tools/user.js +15 -13
  209. package/dist/mcp/tools/user.js.map +1 -1
  210. package/dist/mcp/tools/workflow-permissions.d.ts +2 -4
  211. package/dist/mcp/tools/workflow-permissions.d.ts.map +1 -1
  212. package/dist/mcp/tools/workflow-permissions.js +88 -97
  213. package/dist/mcp/tools/workflow-permissions.js.map +1 -1
  214. package/dist/mcp/tools/workflow.d.ts +9 -7
  215. package/dist/mcp/tools/workflow.d.ts.map +1 -1
  216. package/dist/mcp/tools/workflow.js +852 -860
  217. package/dist/mcp/tools/workflow.js.map +1 -1
  218. package/dist/mcp/utils/api-errors.d.ts.map +1 -1
  219. package/dist/mcp/utils/api-errors.js +2 -2
  220. package/dist/mcp/utils/api-errors.js.map +1 -1
  221. package/dist/mcp/utils/data-transformers.d.ts +0 -3
  222. package/dist/mcp/utils/data-transformers.d.ts.map +1 -1
  223. package/dist/mcp/utils/data-transformers.js +32 -5
  224. package/dist/mcp/utils/data-transformers.js.map +1 -1
  225. package/dist/mcp/utils/file-upload.d.ts.map +1 -1
  226. package/dist/mcp/utils/file-upload.js +1 -1
  227. package/dist/mcp/utils/file-upload.js.map +1 -1
  228. package/dist/mcp/utils/hailer-api-client.d.ts +81 -81
  229. package/dist/mcp/utils/hailer-api-client.d.ts.map +1 -1
  230. package/dist/mcp/utils/hailer-api-client.js +113 -103
  231. package/dist/mcp/utils/hailer-api-client.js.map +1 -1
  232. package/dist/mcp/utils/index.d.ts.map +1 -1
  233. package/dist/mcp/utils/index.js.map +1 -1
  234. package/dist/mcp/utils/logger.d.ts.map +1 -1
  235. package/dist/mcp/utils/logger.js.map +1 -1
  236. package/dist/mcp/utils/response-builder.d.ts.map +1 -1
  237. package/dist/mcp/utils/response-builder.js +8 -4
  238. package/dist/mcp/utils/response-builder.js.map +1 -1
  239. package/dist/mcp/utils/role-utils.d.ts.map +1 -1
  240. package/dist/mcp/utils/role-utils.js +6 -3
  241. package/dist/mcp/utils/role-utils.js.map +1 -1
  242. package/dist/mcp/utils/tool-helpers.d.ts.map +1 -1
  243. package/dist/mcp/utils/tool-helpers.js +2 -2
  244. package/dist/mcp/utils/tool-helpers.js.map +1 -1
  245. package/dist/mcp/utils/types.d.ts +2 -1
  246. package/dist/mcp/utils/types.d.ts.map +1 -1
  247. package/dist/mcp/utils/types.js.map +1 -1
  248. package/dist/mcp/webhook-handler.d.ts +43 -8
  249. package/dist/mcp/webhook-handler.d.ts.map +1 -1
  250. package/dist/mcp/webhook-handler.js +861 -116
  251. package/dist/mcp/webhook-handler.js.map +1 -1
  252. package/dist/mcp/workspace-admin-store.d.ts +49 -0
  253. package/dist/mcp/workspace-admin-store.d.ts.map +1 -0
  254. package/dist/mcp/workspace-admin-store.js +168 -0
  255. package/dist/mcp/workspace-admin-store.js.map +1 -0
  256. package/dist/mcp/workspace-cache.d.ts +2 -2
  257. package/dist/mcp/workspace-cache.d.ts.map +1 -1
  258. package/dist/mcp/workspace-cache.js +9 -5
  259. package/dist/mcp/workspace-cache.js.map +1 -1
  260. package/dist/mcp-server.d.ts +26 -11
  261. package/dist/mcp-server.d.ts.map +1 -1
  262. package/dist/mcp-server.js +367 -48
  263. package/dist/mcp-server.js.map +1 -1
  264. package/dist/plugins/vipunen/client.d.ts +41 -41
  265. package/dist/plugins/vipunen/client.d.ts.map +1 -1
  266. package/dist/plugins/vipunen/client.js +53 -48
  267. package/dist/plugins/vipunen/client.js.map +1 -1
  268. package/dist/plugins/vipunen/index.js.map +1 -1
  269. package/dist/plugins/vipunen/tools.d.ts.map +1 -1
  270. package/dist/plugins/vipunen/tools.js +6 -3
  271. package/dist/plugins/vipunen/tools.js.map +1 -1
  272. package/dist/public-chat/graduate.d.ts +29 -0
  273. package/dist/public-chat/graduate.d.ts.map +1 -0
  274. package/dist/public-chat/graduate.js +593 -0
  275. package/dist/public-chat/graduate.js.map +1 -0
  276. package/dist/public-chat/handler.d.ts +12 -0
  277. package/dist/public-chat/handler.d.ts.map +1 -0
  278. package/dist/public-chat/handler.js +183 -0
  279. package/dist/public-chat/handler.js.map +1 -0
  280. package/dist/public-chat/index.d.ts +16 -0
  281. package/dist/public-chat/index.d.ts.map +1 -0
  282. package/dist/public-chat/index.js +74 -0
  283. package/dist/public-chat/index.js.map +1 -0
  284. package/dist/public-chat/knowledge.d.ts +3 -0
  285. package/dist/public-chat/knowledge.d.ts.map +1 -0
  286. package/dist/public-chat/knowledge.js +1340 -0
  287. package/dist/public-chat/knowledge.js.map +1 -0
  288. package/dist/public-chat/rate-limit.d.ts +16 -0
  289. package/dist/public-chat/rate-limit.d.ts.map +1 -0
  290. package/dist/public-chat/rate-limit.js +51 -0
  291. package/dist/public-chat/rate-limit.js.map +1 -0
  292. package/dist/public-chat/session-store.d.ts +41 -0
  293. package/dist/public-chat/session-store.d.ts.map +1 -0
  294. package/dist/public-chat/session-store.js +95 -0
  295. package/dist/public-chat/session-store.js.map +1 -0
  296. package/dist/public-chat/studio-prewarm.d.ts +61 -0
  297. package/dist/public-chat/studio-prewarm.d.ts.map +1 -0
  298. package/dist/public-chat/studio-prewarm.js +162 -0
  299. package/dist/public-chat/studio-prewarm.js.map +1 -0
  300. package/dist/public-chat/system-prompt.d.ts +22 -0
  301. package/dist/public-chat/system-prompt.d.ts.map +1 -0
  302. package/dist/public-chat/system-prompt.js +435 -0
  303. package/dist/public-chat/system-prompt.js.map +1 -0
  304. package/package.json +13 -7
  305. package/scripts/build-public-chat-knowledge.py +101 -0
  306. package/scripts/smoke-public-chat-live.ts +148 -0
  307. package/scripts/smoke-public-chat.ts +110 -0
  308. package/.claude/CLAUDE.md +0 -126
  309. package/.claude/commands/app-squad.md +0 -131
  310. package/.claude/commands/audit-squad.md +0 -158
  311. package/.claude/commands/cleanup-squad.md +0 -98
  312. package/.claude/commands/config-squad.md +0 -106
  313. package/.claude/commands/crud-squad.md +0 -87
  314. package/.claude/commands/data-squad.md +0 -97
  315. package/.claude/commands/doc-squad.md +0 -65
  316. package/.claude/commands/help.md +0 -29
  317. package/.claude/commands/help:agents.md +0 -182
  318. package/.claude/commands/help:commands.md +0 -78
  319. package/.claude/commands/help:faq.md +0 -79
  320. package/.claude/commands/help:plugins.md +0 -50
  321. package/.claude/commands/help:skills.md +0 -87
  322. package/.claude/commands/help:tools.md +0 -75
  323. package/.claude/commands/hotfix-squad.md +0 -112
  324. package/.claude/commands/integration-squad.md +0 -82
  325. package/.claude/commands/janitor-squad.md +0 -167
  326. package/.claude/commands/onboard-squad.md +0 -130
  327. package/.claude/commands/swarm.md +0 -210
  328. package/.claude/commands/tool-builder.md +0 -39
  329. package/.claude/skills/publish-hailer-app/SKILL.md +0 -280
  330. package/dist/CLAUDE.md +0 -370
  331. package/dist/agents/bot-manager.d.ts +0 -48
  332. package/dist/agents/bot-manager.d.ts.map +0 -1
  333. package/dist/agents/bot-manager.js +0 -254
  334. package/dist/agents/bot-manager.js.map +0 -1
  335. package/dist/agents/bug-fixer/ai.d.ts +0 -80
  336. package/dist/agents/bug-fixer/ai.d.ts.map +0 -1
  337. package/dist/agents/bug-fixer/ai.js +0 -466
  338. package/dist/agents/bug-fixer/ai.js.map +0 -1
  339. package/dist/agents/bug-fixer/bot.d.ts +0 -92
  340. package/dist/agents/bug-fixer/bot.d.ts.map +0 -1
  341. package/dist/agents/bug-fixer/bot.js +0 -687
  342. package/dist/agents/bug-fixer/bot.js.map +0 -1
  343. package/dist/agents/bug-fixer/config.d.ts +0 -21
  344. package/dist/agents/bug-fixer/config.d.ts.map +0 -1
  345. package/dist/agents/bug-fixer/config.js +0 -218
  346. package/dist/agents/bug-fixer/config.js.map +0 -1
  347. package/dist/agents/bug-fixer/files.d.ts +0 -67
  348. package/dist/agents/bug-fixer/files.d.ts.map +0 -1
  349. package/dist/agents/bug-fixer/files.js +0 -386
  350. package/dist/agents/bug-fixer/files.js.map +0 -1
  351. package/dist/agents/bug-fixer/git.d.ts +0 -48
  352. package/dist/agents/bug-fixer/git.d.ts.map +0 -1
  353. package/dist/agents/bug-fixer/git.js +0 -298
  354. package/dist/agents/bug-fixer/git.js.map +0 -1
  355. package/dist/agents/bug-fixer/index.d.ts +0 -103
  356. package/dist/agents/bug-fixer/index.d.ts.map +0 -1
  357. package/dist/agents/bug-fixer/index.js +0 -262
  358. package/dist/agents/bug-fixer/index.js.map +0 -1
  359. package/dist/agents/bug-fixer/lsp.d.ts +0 -113
  360. package/dist/agents/bug-fixer/lsp.d.ts.map +0 -1
  361. package/dist/agents/bug-fixer/lsp.js +0 -485
  362. package/dist/agents/bug-fixer/lsp.js.map +0 -1
  363. package/dist/agents/bug-fixer/monitor.d.ts +0 -123
  364. package/dist/agents/bug-fixer/monitor.d.ts.map +0 -1
  365. package/dist/agents/bug-fixer/monitor.js +0 -629
  366. package/dist/agents/bug-fixer/monitor.js.map +0 -1
  367. package/dist/agents/bug-fixer/prompt.d.ts +0 -5
  368. package/dist/agents/bug-fixer/prompt.d.ts.map +0 -1
  369. package/dist/agents/bug-fixer/prompt.js +0 -94
  370. package/dist/agents/bug-fixer/prompt.js.map +0 -1
  371. package/dist/agents/bug-fixer/registries/pending-classification.d.ts +0 -28
  372. package/dist/agents/bug-fixer/registries/pending-classification.d.ts.map +0 -1
  373. package/dist/agents/bug-fixer/registries/pending-classification.js +0 -50
  374. package/dist/agents/bug-fixer/registries/pending-classification.js.map +0 -1
  375. package/dist/agents/bug-fixer/registries/pending-fix.d.ts +0 -33
  376. package/dist/agents/bug-fixer/registries/pending-fix.d.ts.map +0 -1
  377. package/dist/agents/bug-fixer/registries/pending-fix.js +0 -64
  378. package/dist/agents/bug-fixer/registries/pending-fix.js.map +0 -1
  379. package/dist/agents/bug-fixer/registries/pending.d.ts +0 -27
  380. package/dist/agents/bug-fixer/registries/pending.d.ts.map +0 -1
  381. package/dist/agents/bug-fixer/registries/pending.js +0 -49
  382. package/dist/agents/bug-fixer/registries/pending.js.map +0 -1
  383. package/dist/agents/bug-fixer/specialist-daemon.d.ts +0 -88
  384. package/dist/agents/bug-fixer/specialist-daemon.d.ts.map +0 -1
  385. package/dist/agents/bug-fixer/specialist-daemon.js +0 -431
  386. package/dist/agents/bug-fixer/specialist-daemon.js.map +0 -1
  387. package/dist/agents/bug-fixer/specialist.d.ts +0 -47
  388. package/dist/agents/bug-fixer/specialist.d.ts.map +0 -1
  389. package/dist/agents/bug-fixer/specialist.js +0 -327
  390. package/dist/agents/bug-fixer/specialist.js.map +0 -1
  391. package/dist/agents/bug-fixer/types.d.ts +0 -123
  392. package/dist/agents/bug-fixer/types.d.ts.map +0 -1
  393. package/dist/agents/bug-fixer/types.js +0 -9
  394. package/dist/agents/bug-fixer/types.js.map +0 -1
  395. package/dist/agents/factory.d.ts +0 -172
  396. package/dist/agents/factory.d.ts.map +0 -1
  397. package/dist/agents/factory.js +0 -706
  398. package/dist/agents/factory.js.map +0 -1
  399. package/dist/agents/hailer-expert/index.d.ts +0 -8
  400. package/dist/agents/hailer-expert/index.d.ts.map +0 -1
  401. package/dist/agents/hailer-expert/index.js +0 -14
  402. package/dist/agents/hailer-expert/index.js.map +0 -1
  403. package/dist/agents/hal/daemon.d.ts +0 -174
  404. package/dist/agents/hal/daemon.d.ts.map +0 -1
  405. package/dist/agents/hal/daemon.js +0 -1385
  406. package/dist/agents/hal/daemon.js.map +0 -1
  407. package/dist/agents/hal/definitions.d.ts +0 -42
  408. package/dist/agents/hal/definitions.d.ts.map +0 -1
  409. package/dist/agents/hal/definitions.js +0 -300
  410. package/dist/agents/hal/definitions.js.map +0 -1
  411. package/dist/agents/hal/index.d.ts +0 -3
  412. package/dist/agents/hal/index.d.ts.map +0 -1
  413. package/dist/agents/hal/index.js +0 -8
  414. package/dist/agents/hal/index.js.map +0 -1
  415. package/dist/agents/index.d.ts +0 -18
  416. package/dist/agents/index.d.ts.map +0 -1
  417. package/dist/agents/index.js +0 -48
  418. package/dist/agents/index.js.map +0 -1
  419. package/dist/agents/shared/base.d.ts +0 -253
  420. package/dist/agents/shared/base.d.ts.map +0 -1
  421. package/dist/agents/shared/base.js +0 -1122
  422. package/dist/agents/shared/base.js.map +0 -1
  423. package/dist/agents/shared/schemas/action-schema.d.ts +0 -62
  424. package/dist/agents/shared/schemas/action-schema.d.ts.map +0 -1
  425. package/dist/agents/shared/schemas/action-schema.js +0 -483
  426. package/dist/agents/shared/schemas/action-schema.js.map +0 -1
  427. package/dist/agents/shared/services/agent-registry.d.ts +0 -108
  428. package/dist/agents/shared/services/agent-registry.d.ts.map +0 -1
  429. package/dist/agents/shared/services/agent-registry.js +0 -469
  430. package/dist/agents/shared/services/agent-registry.js.map +0 -1
  431. package/dist/agents/shared/services/conversation-manager.d.ts +0 -57
  432. package/dist/agents/shared/services/conversation-manager.d.ts.map +0 -1
  433. package/dist/agents/shared/services/conversation-manager.js +0 -168
  434. package/dist/agents/shared/services/conversation-manager.js.map +0 -1
  435. package/dist/agents/shared/services/mcp-client.d.ts +0 -56
  436. package/dist/agents/shared/services/mcp-client.d.ts.map +0 -1
  437. package/dist/agents/shared/services/mcp-client.js +0 -124
  438. package/dist/agents/shared/services/mcp-client.js.map +0 -1
  439. package/dist/agents/shared/services/message-classifier.d.ts +0 -37
  440. package/dist/agents/shared/services/message-classifier.d.ts.map +0 -1
  441. package/dist/agents/shared/services/message-classifier.js +0 -203
  442. package/dist/agents/shared/services/message-classifier.js.map +0 -1
  443. package/dist/agents/shared/services/message-formatter.d.ts +0 -89
  444. package/dist/agents/shared/services/message-formatter.d.ts.map +0 -1
  445. package/dist/agents/shared/services/message-formatter.js +0 -390
  446. package/dist/agents/shared/services/message-formatter.js.map +0 -1
  447. package/dist/agents/shared/services/session-logger.d.ts +0 -162
  448. package/dist/agents/shared/services/session-logger.d.ts.map +0 -1
  449. package/dist/agents/shared/services/session-logger.js +0 -724
  450. package/dist/agents/shared/services/session-logger.js.map +0 -1
  451. package/dist/agents/shared/services/structured-output-executor.d.ts +0 -88
  452. package/dist/agents/shared/services/structured-output-executor.d.ts.map +0 -1
  453. package/dist/agents/shared/services/structured-output-executor.js +0 -296
  454. package/dist/agents/shared/services/structured-output-executor.js.map +0 -1
  455. package/dist/agents/shared/services/token-billing.d.ts +0 -72
  456. package/dist/agents/shared/services/token-billing.d.ts.map +0 -1
  457. package/dist/agents/shared/services/token-billing.js +0 -198
  458. package/dist/agents/shared/services/token-billing.js.map +0 -1
  459. package/dist/agents/shared/services/tool-executor.d.ts +0 -43
  460. package/dist/agents/shared/services/tool-executor.d.ts.map +0 -1
  461. package/dist/agents/shared/services/tool-executor.js +0 -175
  462. package/dist/agents/shared/services/tool-executor.js.map +0 -1
  463. package/dist/agents/shared/services/typing-indicator.d.ts +0 -24
  464. package/dist/agents/shared/services/typing-indicator.d.ts.map +0 -1
  465. package/dist/agents/shared/services/typing-indicator.js +0 -54
  466. package/dist/agents/shared/services/typing-indicator.js.map +0 -1
  467. package/dist/agents/shared/services/workspace-schema-cache.d.ts +0 -122
  468. package/dist/agents/shared/services/workspace-schema-cache.d.ts.map +0 -1
  469. package/dist/agents/shared/services/workspace-schema-cache.js +0 -507
  470. package/dist/agents/shared/services/workspace-schema-cache.js.map +0 -1
  471. package/dist/agents/shared/specialist.d.ts +0 -91
  472. package/dist/agents/shared/specialist.d.ts.map +0 -1
  473. package/dist/agents/shared/specialist.js +0 -399
  474. package/dist/agents/shared/specialist.js.map +0 -1
  475. package/dist/agents/shared/tool-schema-loader.d.ts +0 -65
  476. package/dist/agents/shared/tool-schema-loader.d.ts.map +0 -1
  477. package/dist/agents/shared/tool-schema-loader.js +0 -238
  478. package/dist/agents/shared/tool-schema-loader.js.map +0 -1
  479. package/dist/agents/shared/types.d.ts +0 -190
  480. package/dist/agents/shared/types.d.ts.map +0 -1
  481. package/dist/agents/shared/types.js +0 -13
  482. package/dist/agents/shared/types.js.map +0 -1
  483. package/dist/bot/bot-config.d.ts +0 -37
  484. package/dist/bot/bot-config.d.ts.map +0 -1
  485. package/dist/bot/bot-config.js +0 -219
  486. package/dist/bot/bot-config.js.map +0 -1
  487. package/dist/bot/services/__tests__/permission-guard.test.d.ts +0 -2
  488. package/dist/bot/services/__tests__/permission-guard.test.d.ts.map +0 -1
  489. package/dist/bot/services/__tests__/permission-guard.test.js +0 -357
  490. package/dist/bot/services/__tests__/permission-guard.test.js.map +0 -1
  491. package/dist/bot/services/session-logger.d.ts +0 -162
  492. package/dist/bot/services/session-logger.d.ts.map +0 -1
  493. package/dist/bot/services/session-logger.js +0 -724
  494. package/dist/bot/services/session-logger.js.map +0 -1
  495. package/dist/bot/services/workspace-schema-cache.d.ts +0 -122
  496. package/dist/bot/services/workspace-schema-cache.d.ts.map +0 -1
  497. package/dist/bot/services/workspace-schema-cache.js +0 -506
  498. package/dist/bot/services/workspace-schema-cache.js.map +0 -1
  499. package/dist/bot-config/tools.d.ts +0 -28
  500. package/dist/bot-config/tools.d.ts.map +0 -1
  501. package/dist/bot-config/tools.js +0 -279
  502. package/dist/bot-config/tools.js.map +0 -1
  503. package/dist/client/agents/base.d.ts +0 -207
  504. package/dist/client/agents/base.d.ts.map +0 -1
  505. package/dist/client/agents/base.js +0 -744
  506. package/dist/client/agents/base.js.map +0 -1
  507. package/dist/client/agents/definitions.d.ts +0 -53
  508. package/dist/client/agents/definitions.d.ts.map +0 -1
  509. package/dist/client/agents/definitions.js +0 -263
  510. package/dist/client/agents/definitions.js.map +0 -1
  511. package/dist/client/agents/orchestrator.d.ts +0 -141
  512. package/dist/client/agents/orchestrator.d.ts.map +0 -1
  513. package/dist/client/agents/orchestrator.js +0 -1062
  514. package/dist/client/agents/orchestrator.js.map +0 -1
  515. package/dist/client/agents/specialist.d.ts +0 -86
  516. package/dist/client/agents/specialist.d.ts.map +0 -1
  517. package/dist/client/agents/specialist.js +0 -340
  518. package/dist/client/agents/specialist.js.map +0 -1
  519. package/dist/client/bot-entrypoint.d.ts +0 -7
  520. package/dist/client/bot-entrypoint.d.ts.map +0 -1
  521. package/dist/client/bot-entrypoint.js +0 -103
  522. package/dist/client/bot-entrypoint.js.map +0 -1
  523. package/dist/client/bot-manager.d.ts +0 -44
  524. package/dist/client/bot-manager.d.ts.map +0 -1
  525. package/dist/client/bot-manager.js +0 -173
  526. package/dist/client/bot-manager.js.map +0 -1
  527. package/dist/client/bot-runner.d.ts +0 -35
  528. package/dist/client/bot-runner.d.ts.map +0 -1
  529. package/dist/client/bot-runner.js +0 -188
  530. package/dist/client/bot-runner.js.map +0 -1
  531. package/dist/client/chat-agent-daemon.d.ts +0 -464
  532. package/dist/client/chat-agent-daemon.d.ts.map +0 -1
  533. package/dist/client/chat-agent-daemon.js +0 -1774
  534. package/dist/client/chat-agent-daemon.js.map +0 -1
  535. package/dist/client/daemon-factory.d.ts +0 -106
  536. package/dist/client/daemon-factory.d.ts.map +0 -1
  537. package/dist/client/daemon-factory.js +0 -301
  538. package/dist/client/daemon-factory.js.map +0 -1
  539. package/dist/client/factory.d.ts +0 -111
  540. package/dist/client/factory.d.ts.map +0 -1
  541. package/dist/client/factory.js +0 -314
  542. package/dist/client/factory.js.map +0 -1
  543. package/dist/client/index.d.ts +0 -17
  544. package/dist/client/index.d.ts.map +0 -1
  545. package/dist/client/index.js +0 -38
  546. package/dist/client/index.js.map +0 -1
  547. package/dist/client/multi-bot-manager.d.ts +0 -42
  548. package/dist/client/multi-bot-manager.d.ts.map +0 -1
  549. package/dist/client/multi-bot-manager.js +0 -161
  550. package/dist/client/multi-bot-manager.js.map +0 -1
  551. package/dist/client/orchestrator-daemon.d.ts +0 -87
  552. package/dist/client/orchestrator-daemon.d.ts.map +0 -1
  553. package/dist/client/orchestrator-daemon.js +0 -444
  554. package/dist/client/orchestrator-daemon.js.map +0 -1
  555. package/dist/client/server.d.ts +0 -8
  556. package/dist/client/server.d.ts.map +0 -1
  557. package/dist/client/server.js +0 -251
  558. package/dist/client/server.js.map +0 -1
  559. package/dist/client/services/agent-registry.d.ts +0 -108
  560. package/dist/client/services/agent-registry.d.ts.map +0 -1
  561. package/dist/client/services/agent-registry.js +0 -630
  562. package/dist/client/services/agent-registry.js.map +0 -1
  563. package/dist/client/services/conversation-manager.d.ts +0 -50
  564. package/dist/client/services/conversation-manager.d.ts.map +0 -1
  565. package/dist/client/services/conversation-manager.js +0 -136
  566. package/dist/client/services/conversation-manager.js.map +0 -1
  567. package/dist/client/services/mcp-client.d.ts +0 -48
  568. package/dist/client/services/mcp-client.d.ts.map +0 -1
  569. package/dist/client/services/mcp-client.js +0 -105
  570. package/dist/client/services/mcp-client.js.map +0 -1
  571. package/dist/client/services/message-classifier.d.ts +0 -37
  572. package/dist/client/services/message-classifier.d.ts.map +0 -1
  573. package/dist/client/services/message-classifier.js +0 -187
  574. package/dist/client/services/message-classifier.js.map +0 -1
  575. package/dist/client/services/message-formatter.d.ts +0 -84
  576. package/dist/client/services/message-formatter.d.ts.map +0 -1
  577. package/dist/client/services/message-formatter.js +0 -353
  578. package/dist/client/services/message-formatter.js.map +0 -1
  579. package/dist/client/services/session-logger.d.ts +0 -106
  580. package/dist/client/services/session-logger.d.ts.map +0 -1
  581. package/dist/client/services/session-logger.js +0 -446
  582. package/dist/client/services/session-logger.js.map +0 -1
  583. package/dist/client/services/tool-executor.d.ts +0 -41
  584. package/dist/client/services/tool-executor.d.ts.map +0 -1
  585. package/dist/client/services/tool-executor.js +0 -169
  586. package/dist/client/services/tool-executor.js.map +0 -1
  587. package/dist/client/services/workspace-schema-cache.d.ts +0 -149
  588. package/dist/client/services/workspace-schema-cache.d.ts.map +0 -1
  589. package/dist/client/services/workspace-schema-cache.js +0 -732
  590. package/dist/client/services/workspace-schema-cache.js.map +0 -1
  591. package/dist/client/specialist-daemon.d.ts +0 -77
  592. package/dist/client/specialist-daemon.d.ts.map +0 -1
  593. package/dist/client/specialist-daemon.js +0 -197
  594. package/dist/client/specialist-daemon.js.map +0 -1
  595. package/dist/client/specialists.d.ts +0 -53
  596. package/dist/client/specialists.d.ts.map +0 -1
  597. package/dist/client/specialists.js +0 -178
  598. package/dist/client/specialists.js.map +0 -1
  599. package/dist/client/tool-schema-loader.d.ts +0 -62
  600. package/dist/client/tool-schema-loader.d.ts.map +0 -1
  601. package/dist/client/tool-schema-loader.js +0 -232
  602. package/dist/client/tool-schema-loader.js.map +0 -1
  603. package/dist/client/types.d.ts +0 -327
  604. package/dist/client/types.d.ts.map +0 -1
  605. package/dist/client/types.js +0 -121
  606. package/dist/client/types.js.map +0 -1
  607. package/dist/commands/seed-config.d.ts +0 -9
  608. package/dist/commands/seed-config.d.ts.map +0 -1
  609. package/dist/commands/seed-config.js +0 -377
  610. package/dist/commands/seed-config.js.map +0 -1
  611. package/dist/commands/setup.d.ts +0 -11
  612. package/dist/commands/setup.d.ts.map +0 -1
  613. package/dist/commands/setup.js +0 -320
  614. package/dist/commands/setup.js.map +0 -1
  615. package/dist/lib/discussion-lock.d.ts +0 -42
  616. package/dist/lib/discussion-lock.d.ts.map +0 -1
  617. package/dist/lib/discussion-lock.js +0 -110
  618. package/dist/lib/discussion-lock.js.map +0 -1
  619. package/dist/mcp/signal-handler.d.ts +0 -82
  620. package/dist/mcp/signal-handler.d.ts.map +0 -1
  621. package/dist/mcp/signal-handler.js +0 -406
  622. package/dist/mcp/signal-handler.js.map +0 -1
  623. package/dist/mcp/tools/__tests__/discussion-forward.test.d.ts +0 -2
  624. package/dist/mcp/tools/__tests__/discussion-forward.test.d.ts.map +0 -1
  625. package/dist/mcp/tools/__tests__/discussion-forward.test.js +0 -218
  626. package/dist/mcp/tools/__tests__/discussion-forward.test.js.map +0 -1
  627. package/dist/mcp/tools/app-member.d.ts +0 -14
  628. package/dist/mcp/tools/app-member.d.ts.map +0 -1
  629. package/dist/mcp/tools/app-member.js +0 -195
  630. package/dist/mcp/tools/app-member.js.map +0 -1
  631. package/dist/mcp/tools/app-scaffold.d.ts +0 -14
  632. package/dist/mcp/tools/app-scaffold.d.ts.map +0 -1
  633. package/dist/mcp/tools/app-scaffold.js +0 -581
  634. package/dist/mcp/tools/app-scaffold.js.map +0 -1
  635. package/dist/mcp/tools/bot-config/constants.d.ts +0 -23
  636. package/dist/mcp/tools/bot-config/constants.d.ts.map +0 -1
  637. package/dist/mcp/tools/bot-config/constants.js +0 -94
  638. package/dist/mcp/tools/bot-config/constants.js.map +0 -1
  639. package/dist/mcp/tools/bot-config/core.d.ts +0 -253
  640. package/dist/mcp/tools/bot-config/core.d.ts.map +0 -1
  641. package/dist/mcp/tools/bot-config/core.js +0 -2456
  642. package/dist/mcp/tools/bot-config/core.js.map +0 -1
  643. package/dist/mcp/tools/bot-config/index.d.ts +0 -10
  644. package/dist/mcp/tools/bot-config/index.d.ts.map +0 -1
  645. package/dist/mcp/tools/bot-config/index.js +0 -59
  646. package/dist/mcp/tools/bot-config/index.js.map +0 -1
  647. package/dist/mcp/tools/bot-config/tools.d.ts +0 -7
  648. package/dist/mcp/tools/bot-config/tools.d.ts.map +0 -1
  649. package/dist/mcp/tools/bot-config/tools.js +0 -15
  650. package/dist/mcp/tools/bot-config/tools.js.map +0 -1
  651. package/dist/mcp/tools/bot-config/types.d.ts +0 -50
  652. package/dist/mcp/tools/bot-config/types.d.ts.map +0 -1
  653. package/dist/mcp/tools/bot-config/types.js +0 -6
  654. package/dist/mcp/tools/bot-config/types.js.map +0 -1
  655. package/dist/mcp/tools/bug-fixer-tools.d.ts +0 -45
  656. package/dist/mcp/tools/bug-fixer-tools.d.ts.map +0 -1
  657. package/dist/mcp/tools/bug-fixer-tools.js +0 -1096
  658. package/dist/mcp/tools/bug-fixer-tools.js.map +0 -1
  659. package/dist/mcp/tools/document.d.ts +0 -11
  660. package/dist/mcp/tools/document.d.ts.map +0 -1
  661. package/dist/mcp/tools/document.js +0 -741
  662. package/dist/mcp/tools/document.js.map +0 -1
  663. package/dist/mcp/tools/investigate.d.ts +0 -9
  664. package/dist/mcp/tools/investigate.d.ts.map +0 -1
  665. package/dist/mcp/tools/investigate.js +0 -254
  666. package/dist/mcp/tools/investigate.js.map +0 -1
  667. package/dist/mcp/utils/pagination.d.ts +0 -40
  668. package/dist/mcp/utils/pagination.d.ts.map +0 -1
  669. package/dist/mcp/utils/pagination.js +0 -55
  670. package/dist/mcp/utils/pagination.js.map +0 -1
  671. package/dist/modules/bug-reports/bug-config.d.ts +0 -25
  672. package/dist/modules/bug-reports/bug-config.d.ts.map +0 -1
  673. package/dist/modules/bug-reports/bug-config.js +0 -187
  674. package/dist/modules/bug-reports/bug-config.js.map +0 -1
  675. package/dist/modules/bug-reports/bug-monitor.d.ts +0 -108
  676. package/dist/modules/bug-reports/bug-monitor.d.ts.map +0 -1
  677. package/dist/modules/bug-reports/bug-monitor.js +0 -510
  678. package/dist/modules/bug-reports/bug-monitor.js.map +0 -1
  679. package/dist/modules/bug-reports/giuseppe-agent.d.ts +0 -58
  680. package/dist/modules/bug-reports/giuseppe-agent.d.ts.map +0 -1
  681. package/dist/modules/bug-reports/giuseppe-agent.js +0 -467
  682. package/dist/modules/bug-reports/giuseppe-agent.js.map +0 -1
  683. package/dist/modules/bug-reports/giuseppe-ai.d.ts +0 -83
  684. package/dist/modules/bug-reports/giuseppe-ai.d.ts.map +0 -1
  685. package/dist/modules/bug-reports/giuseppe-ai.js +0 -466
  686. package/dist/modules/bug-reports/giuseppe-ai.js.map +0 -1
  687. package/dist/modules/bug-reports/giuseppe-bot.d.ts +0 -110
  688. package/dist/modules/bug-reports/giuseppe-bot.d.ts.map +0 -1
  689. package/dist/modules/bug-reports/giuseppe-bot.js +0 -804
  690. package/dist/modules/bug-reports/giuseppe-bot.js.map +0 -1
  691. package/dist/modules/bug-reports/giuseppe-daemon.d.ts +0 -80
  692. package/dist/modules/bug-reports/giuseppe-daemon.d.ts.map +0 -1
  693. package/dist/modules/bug-reports/giuseppe-daemon.js +0 -617
  694. package/dist/modules/bug-reports/giuseppe-daemon.js.map +0 -1
  695. package/dist/modules/bug-reports/giuseppe-files.d.ts +0 -64
  696. package/dist/modules/bug-reports/giuseppe-files.d.ts.map +0 -1
  697. package/dist/modules/bug-reports/giuseppe-files.js +0 -375
  698. package/dist/modules/bug-reports/giuseppe-files.js.map +0 -1
  699. package/dist/modules/bug-reports/giuseppe-git.d.ts +0 -48
  700. package/dist/modules/bug-reports/giuseppe-git.d.ts.map +0 -1
  701. package/dist/modules/bug-reports/giuseppe-git.js +0 -298
  702. package/dist/modules/bug-reports/giuseppe-git.js.map +0 -1
  703. package/dist/modules/bug-reports/giuseppe-lsp.d.ts +0 -113
  704. package/dist/modules/bug-reports/giuseppe-lsp.d.ts.map +0 -1
  705. package/dist/modules/bug-reports/giuseppe-lsp.js +0 -485
  706. package/dist/modules/bug-reports/giuseppe-lsp.js.map +0 -1
  707. package/dist/modules/bug-reports/giuseppe-prompt.d.ts +0 -5
  708. package/dist/modules/bug-reports/giuseppe-prompt.d.ts.map +0 -1
  709. package/dist/modules/bug-reports/giuseppe-prompt.js +0 -94
  710. package/dist/modules/bug-reports/giuseppe-prompt.js.map +0 -1
  711. package/dist/modules/bug-reports/index.d.ts +0 -77
  712. package/dist/modules/bug-reports/index.d.ts.map +0 -1
  713. package/dist/modules/bug-reports/index.js +0 -215
  714. package/dist/modules/bug-reports/index.js.map +0 -1
  715. package/dist/modules/bug-reports/pending-classification-registry.d.ts +0 -28
  716. package/dist/modules/bug-reports/pending-classification-registry.d.ts.map +0 -1
  717. package/dist/modules/bug-reports/pending-classification-registry.js +0 -50
  718. package/dist/modules/bug-reports/pending-classification-registry.js.map +0 -1
  719. package/dist/modules/bug-reports/pending-fix-registry.d.ts +0 -30
  720. package/dist/modules/bug-reports/pending-fix-registry.d.ts.map +0 -1
  721. package/dist/modules/bug-reports/pending-fix-registry.js +0 -42
  722. package/dist/modules/bug-reports/pending-fix-registry.js.map +0 -1
  723. package/dist/modules/bug-reports/pending-registry.d.ts +0 -27
  724. package/dist/modules/bug-reports/pending-registry.d.ts.map +0 -1
  725. package/dist/modules/bug-reports/pending-registry.js +0 -49
  726. package/dist/modules/bug-reports/pending-registry.js.map +0 -1
  727. package/dist/modules/bug-reports/types.d.ts +0 -123
  728. package/dist/modules/bug-reports/types.d.ts.map +0 -1
  729. package/dist/modules/bug-reports/types.js +0 -9
  730. package/dist/modules/bug-reports/types.js.map +0 -1
  731. package/dist/plugins/bug-fixer/index.d.ts +0 -2
  732. package/dist/plugins/bug-fixer/index.d.ts.map +0 -1
  733. package/dist/plugins/bug-fixer/index.js +0 -18
  734. package/dist/plugins/bug-fixer/index.js.map +0 -1
  735. package/dist/plugins/bug-fixer/tools.d.ts +0 -45
  736. package/dist/plugins/bug-fixer/tools.d.ts.map +0 -1
  737. package/dist/plugins/bug-fixer/tools.js +0 -1096
  738. package/dist/plugins/bug-fixer/tools.js.map +0 -1
  739. package/dist/plugins/vipunen/__tests__/tools.test.d.ts +0 -10
  740. package/dist/plugins/vipunen/__tests__/tools.test.d.ts.map +0 -1
  741. package/dist/plugins/vipunen/__tests__/tools.test.js +0 -646
  742. package/dist/plugins/vipunen/__tests__/tools.test.js.map +0 -1
  743. package/dist/routes/agents.d.ts +0 -44
  744. package/dist/routes/agents.d.ts.map +0 -1
  745. package/dist/routes/agents.js +0 -311
  746. package/dist/routes/agents.js.map +0 -1
  747. package/dist/services/agent-credential-store.d.ts +0 -73
  748. package/dist/services/agent-credential-store.d.ts.map +0 -1
  749. package/dist/services/agent-credential-store.js +0 -212
  750. package/dist/services/agent-credential-store.js.map +0 -1
  751. package/dist/stdio-server.d.ts +0 -14
  752. package/dist/stdio-server.d.ts.map +0 -1
  753. package/dist/stdio-server.js +0 -101
  754. package/dist/stdio-server.js.map +0 -1
  755. package/dist/workspace/context.d.ts +0 -148
  756. package/dist/workspace/context.d.ts.map +0 -1
  757. package/dist/workspace/context.js +0 -339
  758. package/dist/workspace/context.js.map +0 -1
  759. package/dist/workspace/credentials.d.ts +0 -55
  760. package/dist/workspace/credentials.d.ts.map +0 -1
  761. package/dist/workspace/credentials.js +0 -239
  762. package/dist/workspace/credentials.js.map +0 -1
  763. package/dist/workspace/index.d.ts +0 -21
  764. package/dist/workspace/index.d.ts.map +0 -1
  765. package/dist/workspace/index.js +0 -45
  766. package/dist/workspace/index.js.map +0 -1
  767. package/dist/workspace/loader.d.ts +0 -27
  768. package/dist/workspace/loader.d.ts.map +0 -1
  769. package/dist/workspace/loader.js +0 -222
  770. package/dist/workspace/loader.js.map +0 -1
  771. package/dist/workspace/schema.d.ts +0 -37
  772. package/dist/workspace/schema.d.ts.map +0 -1
  773. package/dist/workspace/schema.js +0 -192
  774. package/dist/workspace/schema.js.map +0 -1
@@ -1,646 +0,0 @@
1
- "use strict";
2
- /**
3
- * Vipunen Tools Tests
4
- *
5
- * Tests for Weaviate RAG knowledge base tools.
6
- * Uses a mock WeaviateClient to test tool logic without a real Weaviate instance.
7
- *
8
- * Run with: MCP_CLIENT_API_KEY=test npx tsx --test src/plugins/vipunen/__tests__/tools.test.ts
9
- */
10
- var __importDefault = (this && this.__importDefault) || function (mod) {
11
- return (mod && mod.__esModule) ? mod : { "default": mod };
12
- };
13
- Object.defineProperty(exports, "__esModule", { value: true });
14
- const node_test_1 = require("node:test");
15
- const node_assert_1 = __importDefault(require("node:assert"));
16
- const client_1 = require("../client");
17
- const tools_1 = require("../tools");
18
- // ============================================================================
19
- // Mock WeaviateClient
20
- // ============================================================================
21
- function createMockClient() {
22
- const responses = {};
23
- const calls = {};
24
- const trackCall = (method, ...args) => {
25
- if (!calls[method])
26
- calls[method] = [];
27
- calls[method].push(args);
28
- return responses[method] ?? null;
29
- };
30
- const mock = {
31
- _calls: calls,
32
- _setResponse: (method, response) => {
33
- responses[method] = response;
34
- },
35
- hybridSearch: async (...args) => trackCall('hybridSearch', ...args),
36
- nearTextSearch: async (...args) => trackCall('nearTextSearch', ...args),
37
- aggregateGroupBy: async (...args) => trackCall('aggregateGroupBy', ...args),
38
- insertObject: async (...args) => trackCall('insertObject', ...args),
39
- deleteByProperty: async (...args) => trackCall('deleteByProperty', ...args),
40
- deleteByMultipleProperties: async (...args) => trackCall('deleteByMultipleProperties', ...args),
41
- batchDelete: async (...args) => trackCall('batchDelete', ...args),
42
- getCollectionSchema: async (...args) => trackCall('getCollectionSchema', ...args),
43
- graphql: async (...args) => trackCall('graphql', ...args),
44
- filterQuery: async (...args) => trackCall('filterQuery', ...args),
45
- exportCollection: async (...args) => trackCall('exportCollection', ...args),
46
- batchInsert: async (...args) => trackCall('batchInsert', ...args),
47
- createCollection: async (...args) => trackCall('createCollection', ...args),
48
- deleteCollection: async (...args) => trackCall('deleteCollection', ...args),
49
- countCollection: async (...args) => trackCall('countCollection', ...args),
50
- };
51
- return mock;
52
- }
53
- function getToolByName(tools, name) {
54
- const tool = tools.find(t => t.name === name);
55
- if (!tool)
56
- throw new Error(`Tool ${name} not found. Available: ${tools.map(t => t.name).join(', ')}`);
57
- return tool;
58
- }
59
- function parseResult(response) {
60
- return JSON.parse(response.content[0].text);
61
- }
62
- // Context helpers
63
- const readonlyContext = { group: 'readonly' };
64
- const devContext = { group: 'dev' };
65
- const adminContext = { group: 'admin' };
66
- // ============================================================================
67
- // Tests
68
- // ============================================================================
69
- (0, node_test_1.describe)('Vipunen Tools', () => {
70
- let mockClient;
71
- let tools;
72
- (0, node_test_1.beforeEach)(() => {
73
- mockClient = createMockClient();
74
- });
75
- (0, node_test_1.describe)('Tool registration', () => {
76
- (0, node_test_1.it)('creates 13 tools', () => {
77
- tools = (0, tools_1.createVipunenTools)(mockClient);
78
- node_assert_1.default.strictEqual(tools.length, 13);
79
- const names = tools.map(t => t.name);
80
- node_assert_1.default.ok(names.includes('vipunen-query'));
81
- node_assert_1.default.ok(names.includes('vipunen-insert-one'));
82
- node_assert_1.default.ok(names.includes('vipunen-list-sources'));
83
- node_assert_1.default.ok(names.includes('vipunen-find-similar'));
84
- node_assert_1.default.ok(names.includes('vipunen-update-chunks'));
85
- node_assert_1.default.ok(names.includes('vipunen-delete-source'));
86
- node_assert_1.default.ok(names.includes('vipunen-count'));
87
- node_assert_1.default.ok(names.includes('vipunen-filter'));
88
- node_assert_1.default.ok(names.includes('vipunen-get-schema'));
89
- node_assert_1.default.ok(names.includes('vipunen-export'));
90
- node_assert_1.default.ok(names.includes('vipunen-batch-insert'));
91
- node_assert_1.default.ok(names.includes('vipunen-create-collection'));
92
- node_assert_1.default.ok(names.includes('vipunen-delete-collection'));
93
- });
94
- (0, node_test_1.it)('all tools have contextType none', () => {
95
- tools = (0, tools_1.createVipunenTools)(mockClient);
96
- for (const tool of tools) {
97
- node_assert_1.default.strictEqual(tool.contextType, 'none', `${tool.name} should have contextType 'none'`);
98
- }
99
- });
100
- });
101
- (0, node_test_1.describe)('vipunen-query', () => {
102
- (0, node_test_1.beforeEach)(() => {
103
- tools = (0, tools_1.createVipunenTools)(mockClient);
104
- });
105
- (0, node_test_1.it)('calls hybridSearch with correct args', async () => {
106
- mockClient._setResponse('hybridSearch', {
107
- objects: [
108
- { title: 'Test Doc', content: 'Hello', _score: 0.95, _id: 'abc' },
109
- ],
110
- });
111
- const tool = getToolByName(tools, 'vipunen-query');
112
- const result = await tool.execute({ collection: 'TestCol', query: 'test query', targetProperties: ['title', 'content'], limit: 3 }, readonlyContext);
113
- const data = parseResult(result);
114
- node_assert_1.default.strictEqual(data.count, 1);
115
- node_assert_1.default.strictEqual(data.objects[0].title, 'Test Doc');
116
- // Verify call args
117
- const callArgs = mockClient._calls.hybridSearch[0];
118
- node_assert_1.default.strictEqual(callArgs[0], 'TestCol');
119
- node_assert_1.default.strictEqual(callArgs[1], 'test query');
120
- node_assert_1.default.deepStrictEqual(callArgs[2], ['title', 'content']);
121
- node_assert_1.default.strictEqual(callArgs[3], 3);
122
- });
123
- (0, node_test_1.it)('passes limit through to client', async () => {
124
- mockClient._setResponse('hybridSearch', { objects: [] });
125
- const tool = getToolByName(tools, 'vipunen-query');
126
- await tool.execute({ collection: 'TestCol', query: 'test', targetProperties: ['title'], limit: 5 }, readonlyContext);
127
- const callArgs = mockClient._calls.hybridSearch[0];
128
- node_assert_1.default.strictEqual(callArgs[3], 5);
129
- });
130
- (0, node_test_1.it)('returns error on failure', async () => {
131
- mockClient.hybridSearch = async () => { throw new Error('Connection refused'); };
132
- const tool = getToolByName(tools, 'vipunen-query');
133
- const result = await tool.execute({ collection: 'TestCol', query: 'test', targetProperties: ['title'] }, readonlyContext);
134
- node_assert_1.default.strictEqual(result.isError, true);
135
- const data = parseResult(result);
136
- node_assert_1.default.ok(data.error.includes('Connection refused'));
137
- });
138
- (0, node_test_1.it)('returns error on WeaviateAuthError', async () => {
139
- mockClient.hybridSearch = async () => { throw new client_1.WeaviateAuthError(401); };
140
- const tool = getToolByName(tools, 'vipunen-query');
141
- const result = await tool.execute({ collection: 'TestCol', query: 'test', targetProperties: ['title'] }, readonlyContext);
142
- node_assert_1.default.strictEqual(result.isError, true);
143
- const data = parseResult(result);
144
- node_assert_1.default.ok(data.error.includes('authentication failed'));
145
- });
146
- (0, node_test_1.it)('passes where filter through to hybridSearch', async () => {
147
- mockClient._setResponse('hybridSearch', { objects: [] });
148
- const tool = getToolByName(tools, 'vipunen-query');
149
- const where = { path: ['scope'], operator: 'Equal', valueText: 'hailer-mcp' };
150
- await tool.execute({ collection: 'TestCol', query: 'test', targetProperties: ['title'], limit: 5, where }, readonlyContext);
151
- const callArgs = mockClient._calls.hybridSearch[0];
152
- node_assert_1.default.strictEqual(callArgs[4].operator, 'Equal');
153
- node_assert_1.default.deepStrictEqual(callArgs[4].path, ['scope']);
154
- node_assert_1.default.strictEqual(callArgs[4].valueText, 'hailer-mcp');
155
- });
156
- (0, node_test_1.it)('passes compound where filter with operands', async () => {
157
- mockClient._setResponse('hybridSearch', { objects: [] });
158
- const tool = getToolByName(tools, 'vipunen-query');
159
- const where = {
160
- operator: 'And',
161
- operands: [
162
- { path: ['scope'], operator: 'Equal', valueText: 'hailer-mcp' },
163
- { path: ['doc_type'], operator: 'Equal', valueText: 'reference' },
164
- ],
165
- };
166
- await tool.execute({ collection: 'TestCol', query: 'test', targetProperties: ['title'], limit: 5, where }, readonlyContext);
167
- const callArgs = mockClient._calls.hybridSearch[0];
168
- node_assert_1.default.strictEqual(callArgs[4].operator, 'And');
169
- node_assert_1.default.strictEqual(callArgs[4].operands.length, 2);
170
- });
171
- (0, node_test_1.it)('works without where filter (backward compat)', async () => {
172
- mockClient._setResponse('hybridSearch', { objects: [] });
173
- const tool = getToolByName(tools, 'vipunen-query');
174
- await tool.execute({ collection: 'TestCol', query: 'test', targetProperties: ['title'], limit: 5 }, readonlyContext);
175
- const callArgs = mockClient._calls.hybridSearch[0];
176
- node_assert_1.default.strictEqual(callArgs[4], undefined);
177
- });
178
- });
179
- (0, node_test_1.describe)('vipunen-insert-one', () => {
180
- (0, node_test_1.beforeEach)(() => {
181
- tools = (0, tools_1.createVipunenTools)(mockClient);
182
- });
183
- (0, node_test_1.it)('inserts object and returns uuid', async () => {
184
- mockClient._setResponse('insertObject', { uuid: 'uuid-123' });
185
- const tool = getToolByName(tools, 'vipunen-insert-one');
186
- const result = await tool.execute({ collection: 'TestCol', properties: { title: 'New Doc', content: 'Body text' } }, devContext);
187
- const data = parseResult(result);
188
- node_assert_1.default.strictEqual(data.uuid, 'uuid-123');
189
- const callArgs = mockClient._calls.insertObject[0];
190
- node_assert_1.default.strictEqual(callArgs[0], 'TestCol');
191
- node_assert_1.default.strictEqual(callArgs[1].title, 'New Doc');
192
- });
193
- });
194
- (0, node_test_1.describe)('vipunen-list-sources', () => {
195
- (0, node_test_1.beforeEach)(() => {
196
- tools = (0, tools_1.createVipunenTools)(mockClient);
197
- });
198
- (0, node_test_1.it)('returns aggregated source files', async () => {
199
- mockClient._setResponse('aggregateGroupBy', [
200
- { value: 'docs/api.md', count: 5 },
201
- { value: 'docs/guide.md', count: 3 },
202
- ]);
203
- const tool = getToolByName(tools, 'vipunen-list-sources');
204
- const result = await tool.execute({ collection: 'TestCol' }, readonlyContext);
205
- const data = parseResult(result);
206
- node_assert_1.default.strictEqual(data.totalSources, 2);
207
- node_assert_1.default.strictEqual(data.sources[0].source_file, 'docs/api.md');
208
- node_assert_1.default.strictEqual(data.sources[0].chunk_count, 5);
209
- });
210
- });
211
- (0, node_test_1.describe)('vipunen-find-similar', () => {
212
- (0, node_test_1.beforeEach)(() => {
213
- tools = (0, tools_1.createVipunenTools)(mockClient);
214
- });
215
- (0, node_test_1.it)('calls nearTextSearch', async () => {
216
- mockClient._setResponse('nearTextSearch', {
217
- objects: [
218
- { title: 'Similar Doc', _certainty: 0.92, _distance: 0.08, _id: 'xyz' },
219
- ],
220
- });
221
- const tool = getToolByName(tools, 'vipunen-find-similar');
222
- const result = await tool.execute({ collection: 'TestCol', query: 'find this', limit: 3 }, readonlyContext);
223
- const data = parseResult(result);
224
- node_assert_1.default.strictEqual(data.count, 1);
225
- node_assert_1.default.strictEqual(data.objects[0]._certainty, 0.92);
226
- const callArgs = mockClient._calls.nearTextSearch[0];
227
- node_assert_1.default.strictEqual(callArgs[0], 'TestCol');
228
- node_assert_1.default.strictEqual(callArgs[1], 'find this');
229
- node_assert_1.default.strictEqual(callArgs[2], 3);
230
- });
231
- });
232
- (0, node_test_1.describe)('vipunen-update-chunks', () => {
233
- (0, node_test_1.beforeEach)(() => {
234
- tools = (0, tools_1.createVipunenTools)(mockClient);
235
- });
236
- (0, node_test_1.it)('deletes then inserts each chunk', async () => {
237
- mockClient._setResponse('deleteByMultipleProperties', { matches: 1, successful: 1 });
238
- mockClient._setResponse('insertObject', { uuid: 'new-uuid' });
239
- const tool = getToolByName(tools, 'vipunen-update-chunks');
240
- const result = await tool.execute({
241
- collection: 'TestCol',
242
- scope: 'hailer-mcp',
243
- topic: 'overview',
244
- chunks: [
245
- { chunk_index: 0, properties: { title: 'Updated chunk', content: 'New content' } },
246
- { chunk_index: 1, properties: { title: 'Chunk 2', content: 'More content' } },
247
- ],
248
- }, devContext);
249
- const data = parseResult(result);
250
- node_assert_1.default.strictEqual(data.updated, 2);
251
- // Should have called deleteByMultipleProperties twice
252
- node_assert_1.default.strictEqual(mockClient._calls.deleteByMultipleProperties.length, 2);
253
- // Should have called insertObject twice
254
- node_assert_1.default.strictEqual(mockClient._calls.insertObject.length, 2);
255
- // Verify scope/topic/chunk_index are baked into inserted properties
256
- const insertedProps = mockClient._calls.insertObject[0][1];
257
- node_assert_1.default.strictEqual(insertedProps.scope, 'hailer-mcp');
258
- node_assert_1.default.strictEqual(insertedProps.topic, 'overview');
259
- node_assert_1.default.strictEqual(insertedProps.chunk_index, 0);
260
- node_assert_1.default.strictEqual(insertedProps.title, 'Updated chunk');
261
- // Verify chunk_index is passed as number (not string) to deleteByMultipleProperties
262
- const deleteConditions = mockClient._calls.deleteByMultipleProperties[0][1];
263
- const chunkCondition = deleteConditions.find((c) => c.property === 'chunk_index');
264
- node_assert_1.default.strictEqual(typeof chunkCondition.value, 'number');
265
- node_assert_1.default.strictEqual(chunkCondition.value, 0);
266
- });
267
- (0, node_test_1.it)('continues if delete fails (chunk does not exist yet)', async () => {
268
- mockClient.deleteByMultipleProperties = async () => { throw new Error('not found'); };
269
- mockClient._setResponse('insertObject', { uuid: 'new-uuid' });
270
- const tool = getToolByName(tools, 'vipunen-update-chunks');
271
- const result = await tool.execute({
272
- collection: 'TestCol',
273
- scope: 'test',
274
- topic: 'new-topic',
275
- chunks: [{ chunk_index: 0, properties: { title: 'First chunk', content: 'Content' } }],
276
- }, devContext);
277
- const data = parseResult(result);
278
- node_assert_1.default.strictEqual(data.updated, 1);
279
- });
280
- });
281
- (0, node_test_1.describe)('vipunen-delete-source', () => {
282
- (0, node_test_1.it)('deletes by source_file', async () => {
283
- tools = (0, tools_1.createVipunenTools)(mockClient);
284
- mockClient._setResponse('deleteByProperty', { matches: 5, successful: 5 });
285
- const tool = getToolByName(tools, 'vipunen-delete-source');
286
- const result = await tool.execute({ collection: 'TestCol', source_file: 'docs/old.md' }, devContext);
287
- const data = parseResult(result);
288
- node_assert_1.default.strictEqual(data.deleted, 5);
289
- node_assert_1.default.strictEqual(data.matched, 5);
290
- const callArgs = mockClient._calls.deleteByProperty[0];
291
- node_assert_1.default.strictEqual(callArgs[0], 'TestCol');
292
- node_assert_1.default.strictEqual(callArgs[1], 'source_file');
293
- node_assert_1.default.strictEqual(callArgs[2], 'docs/old.md');
294
- });
295
- });
296
- // --------------------------------------------------------------------------
297
- // New tools
298
- // --------------------------------------------------------------------------
299
- (0, node_test_1.describe)('vipunen-count', () => {
300
- (0, node_test_1.beforeEach)(() => {
301
- tools = (0, tools_1.createVipunenTools)(mockClient);
302
- });
303
- (0, node_test_1.it)('returns count from aggregate query', async () => {
304
- mockClient._setResponse('countCollection', 42);
305
- const tool = getToolByName(tools, 'vipunen-count');
306
- const result = await tool.execute({ collection: 'TestCol' }, readonlyContext);
307
- const data = parseResult(result);
308
- node_assert_1.default.strictEqual(data.collection, 'TestCol');
309
- node_assert_1.default.strictEqual(data.count, 42);
310
- });
311
- });
312
- (0, node_test_1.describe)('vipunen-filter', () => {
313
- (0, node_test_1.beforeEach)(() => {
314
- tools = (0, tools_1.createVipunenTools)(mockClient);
315
- });
316
- (0, node_test_1.it)('passes where filter to filterQuery', async () => {
317
- mockClient._setResponse('filterQuery', {
318
- objects: [{ title: 'Match', _id: 'abc' }],
319
- });
320
- const tool = getToolByName(tools, 'vipunen-filter');
321
- const where = { path: ['scope'], operator: 'Equal', valueText: 'hailer-mcp' };
322
- const result = await tool.execute({ collection: 'TestCol', where, limit: 10 }, readonlyContext);
323
- const data = parseResult(result);
324
- node_assert_1.default.strictEqual(data.count, 1);
325
- node_assert_1.default.strictEqual(data.objects[0].title, 'Match');
326
- const callArgs = mockClient._calls.filterQuery[0];
327
- node_assert_1.default.strictEqual(callArgs[0], 'TestCol');
328
- node_assert_1.default.deepStrictEqual(callArgs[1], where);
329
- });
330
- });
331
- (0, node_test_1.describe)('vipunen-get-schema (admin only)', () => {
332
- (0, node_test_1.beforeEach)(() => {
333
- tools = (0, tools_1.createVipunenTools)(mockClient);
334
- });
335
- (0, node_test_1.it)('returns schema for admin', async () => {
336
- mockClient._setResponse('getCollectionSchema', {
337
- class: 'TestCol',
338
- properties: [{ name: 'title', dataType: ['text'] }],
339
- });
340
- const tool = getToolByName(tools, 'vipunen-get-schema');
341
- const result = await tool.execute({ collection: 'TestCol' }, adminContext);
342
- const data = parseResult(result);
343
- node_assert_1.default.strictEqual(data.class, 'TestCol');
344
- node_assert_1.default.strictEqual(data.properties[0].name, 'title');
345
- });
346
- (0, node_test_1.it)('rejects readonly group', async () => {
347
- const tool = getToolByName(tools, 'vipunen-get-schema');
348
- const result = await tool.execute({ collection: 'TestCol' }, readonlyContext);
349
- node_assert_1.default.strictEqual(result.isError, true);
350
- const data = parseResult(result);
351
- node_assert_1.default.ok(data.error.includes('Admin access required'));
352
- });
353
- (0, node_test_1.it)('rejects dev group', async () => {
354
- const tool = getToolByName(tools, 'vipunen-get-schema');
355
- const result = await tool.execute({ collection: 'TestCol' }, devContext);
356
- node_assert_1.default.strictEqual(result.isError, true);
357
- const data = parseResult(result);
358
- node_assert_1.default.ok(data.error.includes('Admin access required'));
359
- });
360
- });
361
- (0, node_test_1.describe)('vipunen-export (admin only)', () => {
362
- (0, node_test_1.beforeEach)(() => {
363
- tools = (0, tools_1.createVipunenTools)(mockClient);
364
- });
365
- (0, node_test_1.it)('returns exported objects for admin', async () => {
366
- mockClient._setResponse('exportCollection', {
367
- objects: [{ title: 'Doc 1', _id: 'a' }, { title: 'Doc 2', _id: 'b' }],
368
- totalCount: 2,
369
- });
370
- const tool = getToolByName(tools, 'vipunen-export');
371
- const result = await tool.execute({ collection: 'TestCol', pageSize: 50 }, adminContext);
372
- const data = parseResult(result);
373
- node_assert_1.default.strictEqual(data.collection, 'TestCol');
374
- node_assert_1.default.strictEqual(data.count, 2);
375
- node_assert_1.default.strictEqual(data.objects.length, 2);
376
- });
377
- (0, node_test_1.it)('rejects readonly group', async () => {
378
- const tool = getToolByName(tools, 'vipunen-export');
379
- const result = await tool.execute({ collection: 'TestCol' }, readonlyContext);
380
- node_assert_1.default.strictEqual(result.isError, true);
381
- const data = parseResult(result);
382
- node_assert_1.default.ok(data.error.includes('Admin access required'));
383
- });
384
- });
385
- (0, node_test_1.describe)('vipunen-batch-insert (admin only)', () => {
386
- (0, node_test_1.beforeEach)(() => {
387
- tools = (0, tools_1.createVipunenTools)(mockClient);
388
- });
389
- (0, node_test_1.it)('batch inserts objects for admin', async () => {
390
- mockClient._setResponse('batchInsert', {
391
- inserted: 3,
392
- errors: 0,
393
- errorDetails: [],
394
- });
395
- const tool = getToolByName(tools, 'vipunen-batch-insert');
396
- const result = await tool.execute({
397
- collection: 'TestCol',
398
- objects: [
399
- { title: 'A', content: '1' },
400
- { title: 'B', content: '2' },
401
- { title: 'C', content: '3' },
402
- ],
403
- batchSize: 20,
404
- }, adminContext);
405
- const data = parseResult(result);
406
- node_assert_1.default.strictEqual(data.inserted, 3);
407
- node_assert_1.default.strictEqual(data.errors, 0);
408
- });
409
- (0, node_test_1.it)('rejects dev group', async () => {
410
- const tool = getToolByName(tools, 'vipunen-batch-insert');
411
- const result = await tool.execute({ collection: 'TestCol', objects: [{ title: 'A' }] }, devContext);
412
- node_assert_1.default.strictEqual(result.isError, true);
413
- const data = parseResult(result);
414
- node_assert_1.default.ok(data.error.includes('Admin access required'));
415
- });
416
- });
417
- (0, node_test_1.describe)('vipunen-create-collection (admin only)', () => {
418
- (0, node_test_1.beforeEach)(() => {
419
- tools = (0, tools_1.createVipunenTools)(mockClient);
420
- });
421
- (0, node_test_1.it)('creates collection for admin', async () => {
422
- mockClient._setResponse('createCollection', { created: true, objectCount: 0 });
423
- const tool = getToolByName(tools, 'vipunen-create-collection');
424
- const result = await tool.execute({ collection: 'NewCol', schema: 'doc' }, adminContext);
425
- const data = parseResult(result);
426
- node_assert_1.default.strictEqual(data.collection, 'NewCol');
427
- node_assert_1.default.strictEqual(data.created, true);
428
- node_assert_1.default.strictEqual(data.objectCount, 0);
429
- });
430
- (0, node_test_1.it)('returns existing for idempotent call', async () => {
431
- mockClient._setResponse('createCollection', { created: false, objectCount: 42 });
432
- const tool = getToolByName(tools, 'vipunen-create-collection');
433
- const result = await tool.execute({ collection: 'ExistingCol', schema: 'doc' }, adminContext);
434
- const data = parseResult(result);
435
- node_assert_1.default.strictEqual(data.created, false);
436
- node_assert_1.default.strictEqual(data.objectCount, 42);
437
- });
438
- (0, node_test_1.it)('rejects readonly group', async () => {
439
- const tool = getToolByName(tools, 'vipunen-create-collection');
440
- const result = await tool.execute({ collection: 'NewCol', schema: 'doc' }, readonlyContext);
441
- node_assert_1.default.strictEqual(result.isError, true);
442
- const data = parseResult(result);
443
- node_assert_1.default.ok(data.error.includes('Admin access required'));
444
- });
445
- });
446
- (0, node_test_1.describe)('vipunen-delete-collection (admin only)', () => {
447
- (0, node_test_1.beforeEach)(() => {
448
- tools = (0, tools_1.createVipunenTools)(mockClient);
449
- });
450
- (0, node_test_1.it)('deletes collection for admin', async () => {
451
- mockClient._setResponse('deleteCollection', { deleted: true });
452
- const tool = getToolByName(tools, 'vipunen-delete-collection');
453
- const result = await tool.execute({ collection: 'OldCol' }, adminContext);
454
- const data = parseResult(result);
455
- node_assert_1.default.strictEqual(data.collection, 'OldCol');
456
- node_assert_1.default.strictEqual(data.deleted, true);
457
- });
458
- (0, node_test_1.it)('rejects dev group', async () => {
459
- const tool = getToolByName(tools, 'vipunen-delete-collection');
460
- const result = await tool.execute({ collection: 'OldCol' }, devContext);
461
- node_assert_1.default.strictEqual(result.isError, true);
462
- const data = parseResult(result);
463
- node_assert_1.default.ok(data.error.includes('Admin access required'));
464
- });
465
- });
466
- // --------------------------------------------------------------------------
467
- // Permission model tests
468
- // --------------------------------------------------------------------------
469
- (0, node_test_1.describe)('Permission model', () => {
470
- (0, node_test_1.beforeEach)(() => {
471
- tools = (0, tools_1.createVipunenTools)(mockClient);
472
- });
473
- (0, node_test_1.it)('readonly can access read tools', async () => {
474
- mockClient._setResponse('hybridSearch', { objects: [] });
475
- mockClient._setResponse('nearTextSearch', { objects: [] });
476
- mockClient._setResponse('aggregateGroupBy', []);
477
- mockClient._setResponse('countCollection', 0);
478
- mockClient._setResponse('filterQuery', { objects: [] });
479
- const readTools = ['vipunen-query', 'vipunen-find-similar', 'vipunen-list-sources', 'vipunen-count', 'vipunen-filter'];
480
- for (const name of readTools) {
481
- const tool = getToolByName(tools, name);
482
- let args = { collection: 'TestCol' };
483
- if (name === 'vipunen-query')
484
- args = { ...args, query: 'test', targetProperties: ['title'], limit: 5 };
485
- if (name === 'vipunen-find-similar')
486
- args = { ...args, query: 'test', limit: 5 };
487
- if (name === 'vipunen-filter')
488
- args = { ...args, where: { path: ['scope'], operator: 'Equal', valueText: 'test' } };
489
- const result = await tool.execute(args, readonlyContext);
490
- node_assert_1.default.strictEqual(result.isError, undefined, `${name} should succeed for readonly`);
491
- }
492
- });
493
- (0, node_test_1.it)('readonly cannot access write tools', async () => {
494
- const writeTools = ['vipunen-insert-one', 'vipunen-update-chunks', 'vipunen-delete-source'];
495
- for (const name of writeTools) {
496
- const tool = getToolByName(tools, name);
497
- let args = { collection: 'TestCol' };
498
- if (name === 'vipunen-insert-one')
499
- args = { ...args, properties: { title: 'x' } };
500
- if (name === 'vipunen-update-chunks')
501
- args = { ...args, scope: 's', topic: 't', chunks: [] };
502
- if (name === 'vipunen-delete-source')
503
- args = { ...args, source_file: 'x' };
504
- const result = await tool.execute(args, readonlyContext);
505
- node_assert_1.default.strictEqual(result.isError, true, `${name} should fail for readonly`);
506
- }
507
- });
508
- (0, node_test_1.it)('dev cannot write to VipunenConfig', async () => {
509
- const tool = getToolByName(tools, 'vipunen-insert-one');
510
- const result = await tool.execute({ collection: 'VipunenConfig', properties: { title: 'x' } }, devContext);
511
- node_assert_1.default.strictEqual(result.isError, true);
512
- const data = parseResult(result);
513
- node_assert_1.default.ok(data.error.includes('VipunenConfig'));
514
- });
515
- (0, node_test_1.it)('dev cannot access admin tools', async () => {
516
- const adminTools = ['vipunen-get-schema', 'vipunen-export', 'vipunen-batch-insert', 'vipunen-create-collection', 'vipunen-delete-collection'];
517
- for (const name of adminTools) {
518
- const tool = getToolByName(tools, name);
519
- let args = { collection: 'TestCol' };
520
- if (name === 'vipunen-batch-insert')
521
- args = { ...args, objects: [] };
522
- if (name === 'vipunen-create-collection')
523
- args = { ...args, schema: 'doc' };
524
- const result = await tool.execute(args, devContext);
525
- node_assert_1.default.strictEqual(result.isError, true, `${name} should fail for dev`);
526
- }
527
- });
528
- });
529
- });
530
- (0, node_test_1.describe)('WeaviateClient', () => {
531
- (0, node_test_1.describe)('constructor', () => {
532
- (0, node_test_1.it)('strips trailing slash from host', () => {
533
- const client = new client_1.WeaviateClient({ host: 'http://localhost:8080/' });
534
- node_assert_1.default.strictEqual(client.host, 'http://localhost:8080');
535
- });
536
- (0, node_test_1.it)('sets auth header when apiKey provided', () => {
537
- const client = new client_1.WeaviateClient({ host: 'http://localhost:8080', apiKey: 'test-key' });
538
- node_assert_1.default.strictEqual(client.headers['Authorization'], 'Bearer test-key');
539
- });
540
- (0, node_test_1.it)('omits auth header when no apiKey', () => {
541
- const client = new client_1.WeaviateClient({ host: 'http://localhost:8080' });
542
- node_assert_1.default.strictEqual(client.headers['Authorization'], undefined);
543
- });
544
- });
545
- (0, node_test_1.describe)('escapeGraphQL', () => {
546
- (0, node_test_1.it)('escapes quotes and newlines', () => {
547
- const client = new client_1.WeaviateClient({ host: 'http://localhost:8080' });
548
- const escaped = client.escapeGraphQL('test "quoted"\nnewline');
549
- node_assert_1.default.strictEqual(escaped, 'test \\"quoted\\"\\nnewline');
550
- });
551
- });
552
- (0, node_test_1.describe)('input validation', () => {
553
- (0, node_test_1.it)('rejects invalid collection names', () => {
554
- const client = new client_1.WeaviateClient({ host: 'http://localhost:8080' });
555
- node_assert_1.default.throws(() => client.validateCollectionName('invalid-name'), /Invalid collection name/);
556
- node_assert_1.default.throws(() => client.validateCollectionName('lowercase'), /Invalid collection name/);
557
- node_assert_1.default.throws(() => client.validateCollectionName('Has Space'), /Invalid collection name/);
558
- // Valid names should not throw
559
- client.validateCollectionName('InternalDev');
560
- client.validateCollectionName('TestCol');
561
- });
562
- (0, node_test_1.it)('rejects invalid property names', () => {
563
- const client = new client_1.WeaviateClient({ host: 'http://localhost:8080' });
564
- node_assert_1.default.throws(() => client.validatePropertyNames(['valid', 'has space']), /Invalid property name/);
565
- node_assert_1.default.throws(() => client.validatePropertyNames(['123starts_with_number']), /Invalid property name/);
566
- // Valid names should not throw
567
- client.validatePropertyNames(['title', 'content', '_score', 'doc_type']);
568
- });
569
- });
570
- });
571
- (0, node_test_1.describe)('WeaviateAuthError', () => {
572
- (0, node_test_1.it)('has correct name and status', () => {
573
- const error = new client_1.WeaviateAuthError(401);
574
- node_assert_1.default.strictEqual(error.name, 'WeaviateAuthError');
575
- node_assert_1.default.strictEqual(error.status, 401);
576
- node_assert_1.default.ok(error.message.includes('401'));
577
- });
578
- });
579
- (0, node_test_1.describe)('WeaviateClient.serializeWhereFilter', () => {
580
- (0, node_test_1.it)('serializes a simple Equal filter', () => {
581
- const client = new client_1.WeaviateClient({ host: 'http://localhost:8080' });
582
- const result = client.serializeWhereFilter({
583
- path: ['scope'],
584
- operator: 'Equal',
585
- valueText: 'hailer-mcp',
586
- });
587
- node_assert_1.default.ok(result.includes('operator: Equal'));
588
- node_assert_1.default.ok(result.includes('path: ["scope"]'));
589
- node_assert_1.default.ok(result.includes('valueText: "hailer-mcp"'));
590
- });
591
- (0, node_test_1.it)('serializes compound And filter with operands', () => {
592
- const client = new client_1.WeaviateClient({ host: 'http://localhost:8080' });
593
- const result = client.serializeWhereFilter({
594
- operator: 'And',
595
- operands: [
596
- { path: ['scope'], operator: 'Equal', valueText: 'hailer-mcp' },
597
- { path: ['doc_type'], operator: 'Equal', valueText: 'reference' },
598
- ],
599
- });
600
- node_assert_1.default.ok(result.includes('operator: And'));
601
- node_assert_1.default.ok(result.includes('operands: ['));
602
- node_assert_1.default.ok(result.includes('valueText: "hailer-mcp"'));
603
- node_assert_1.default.ok(result.includes('valueText: "reference"'));
604
- });
605
- (0, node_test_1.it)('serializes valueInt and valueBoolean', () => {
606
- const client = new client_1.WeaviateClient({ host: 'http://localhost:8080' });
607
- const intResult = client.serializeWhereFilter({
608
- path: ['chunk_index'],
609
- operator: 'Equal',
610
- valueInt: 3,
611
- });
612
- node_assert_1.default.ok(intResult.includes('valueInt: 3'));
613
- const boolResult = client.serializeWhereFilter({
614
- path: ['verified'],
615
- operator: 'Equal',
616
- valueBoolean: true,
617
- });
618
- node_assert_1.default.ok(boolResult.includes('valueBoolean: true'));
619
- });
620
- (0, node_test_1.it)('rejects invalid operator', () => {
621
- const client = new client_1.WeaviateClient({ host: 'http://localhost:8080' });
622
- node_assert_1.default.throws(() => client.serializeWhereFilter({
623
- path: ['scope'],
624
- operator: 'DROP TABLE',
625
- valueText: 'evil',
626
- }), /Invalid where operator/);
627
- });
628
- (0, node_test_1.it)('rejects invalid path names', () => {
629
- const client = new client_1.WeaviateClient({ host: 'http://localhost:8080' });
630
- node_assert_1.default.throws(() => client.serializeWhereFilter({
631
- path: ['has space'],
632
- operator: 'Equal',
633
- valueText: 'test',
634
- }), /Invalid property name/);
635
- });
636
- (0, node_test_1.it)('escapes special characters in valueText', () => {
637
- const client = new client_1.WeaviateClient({ host: 'http://localhost:8080' });
638
- const result = client.serializeWhereFilter({
639
- path: ['title'],
640
- operator: 'Like',
641
- valueText: 'test "quoted" value',
642
- });
643
- node_assert_1.default.ok(result.includes('test \\"quoted\\" value'));
644
- });
645
- });
646
- //# sourceMappingURL=tools.test.js.map