@hailer/mcp 1.1.14 → 1.1.16

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 (713) hide show
  1. package/.claude/CLAUDE.md +370 -0
  2. package/.claude/agents/agent-ada-skill-builder.md +94 -0
  3. package/.claude/agents/agent-alejandro-function-fields.md +342 -0
  4. package/.claude/agents/agent-bjorn-config-audit.md +103 -0
  5. package/.claude/agents/agent-builder-agent-creator.md +130 -0
  6. package/.claude/agents/agent-code-simplifier.md +53 -0
  7. package/.claude/agents/agent-dmitri-activity-crud.md +159 -0
  8. package/.claude/agents/agent-giuseppe-app-builder.md +208 -0
  9. package/.claude/agents/agent-gunther-mcp-tools.md +39 -0
  10. package/.claude/agents/agent-helga-workflow-config.md +204 -0
  11. package/.claude/agents/agent-igor-activity-mover-automation.md +125 -0
  12. package/.claude/agents/agent-ingrid-doc-templates.md +261 -0
  13. package/.claude/agents/agent-ivan-monolith.md +154 -0
  14. package/.claude/agents/agent-kenji-data-reader.md +86 -0
  15. package/.claude/agents/agent-lars-code-inspector.md +102 -0
  16. package/.claude/agents/agent-marco-mockup-builder.md +110 -0
  17. package/.claude/agents/agent-marcus-api-documenter.md +323 -0
  18. package/.claude/agents/agent-marketplace-publisher.md +280 -0
  19. package/.claude/agents/agent-marketplace-reviewer.md +309 -0
  20. package/.claude/agents/agent-permissions-handler.md +208 -0
  21. package/.claude/agents/agent-simple-writer.md +48 -0
  22. package/.claude/agents/agent-svetlana-code-review.md +171 -0
  23. package/.claude/agents/agent-tanya-test-runner.md +333 -0
  24. package/.claude/agents/agent-ui-designer.md +100 -0
  25. package/.claude/agents/agent-viktor-sql-insights.md +212 -0
  26. package/.claude/agents/agent-web-search.md +55 -0
  27. package/.claude/agents/agent-yevgeni-discussions.md +45 -0
  28. package/.claude/agents/agent-zara-zapier.md +159 -0
  29. package/.claude/agents/ragnar.md +68 -0
  30. package/.claude/commands/app-squad.md +135 -0
  31. package/.claude/commands/audit-squad.md +158 -0
  32. package/.claude/commands/autoplan.md +563 -0
  33. package/.claude/commands/cleanup-squad.md +98 -0
  34. package/.claude/commands/config-squad.md +106 -0
  35. package/.claude/commands/crud-squad.md +87 -0
  36. package/.claude/commands/data-squad.md +97 -0
  37. package/.claude/commands/debug-squad.md +303 -0
  38. package/.claude/commands/doc-squad.md +65 -0
  39. package/.claude/commands/handoff.md +137 -0
  40. package/.claude/commands/health.md +49 -0
  41. package/.claude/commands/help.md +29 -0
  42. package/.claude/commands/help:agents.md +151 -0
  43. package/.claude/commands/help:commands.md +78 -0
  44. package/.claude/commands/help:faq.md +79 -0
  45. package/.claude/commands/help:plugins.md +50 -0
  46. package/.claude/commands/help:skills.md +93 -0
  47. package/.claude/commands/help:tools.md +75 -0
  48. package/.claude/commands/hotfix-squad.md +112 -0
  49. package/.claude/commands/integration-squad.md +82 -0
  50. package/.claude/commands/janitor-squad.md +167 -0
  51. package/.claude/commands/learn-auto.md +120 -0
  52. package/.claude/commands/learn.md +120 -0
  53. package/.claude/commands/mcp-list.md +27 -0
  54. package/.claude/commands/onboard-squad.md +140 -0
  55. package/.claude/commands/plan-workspace.md +732 -0
  56. package/.claude/commands/prd.md +130 -0
  57. package/.claude/commands/project-status.md +82 -0
  58. package/.claude/commands/publish.md +138 -0
  59. package/.claude/commands/recap.md +69 -0
  60. package/.claude/commands/restore.md +64 -0
  61. package/.claude/commands/review-squad.md +152 -0
  62. package/.claude/commands/save.md +24 -0
  63. package/.claude/commands/stats.md +19 -0
  64. package/.claude/commands/swarm.md +210 -0
  65. package/.claude/commands/tool-builder.md +39 -0
  66. package/.claude/commands/ws-pull.md +44 -0
  67. package/.claude/skills/SDK-activity-patterns/SKILL.md +428 -0
  68. package/.claude/skills/SDK-document-templates/SKILL.md +1033 -0
  69. package/.claude/skills/SDK-function-fields/SKILL.md +542 -0
  70. package/.claude/skills/SDK-generate-skill/SKILL.md +92 -0
  71. package/.claude/skills/SDK-init-skill/SKILL.md +127 -0
  72. package/.claude/skills/SDK-insight-queries/SKILL.md +787 -0
  73. package/.claude/skills/SDK-ws-config-skill/SKILL.md +1139 -0
  74. package/.claude/skills/agent-structure/SKILL.md +98 -0
  75. package/.claude/skills/api-documentation-patterns/SKILL.md +474 -0
  76. package/.claude/skills/chrome-mcp-reference/SKILL.md +370 -0
  77. package/.claude/skills/delegation-routing/SKILL.md +202 -0
  78. package/.claude/skills/frontend-design/SKILL.md +254 -0
  79. package/.claude/skills/hailer-activity-mover/SKILL.md +213 -0
  80. package/.claude/skills/hailer-api-client/SKILL.md +518 -0
  81. package/.claude/skills/hailer-app-builder/SKILL.md +1440 -0
  82. package/.claude/skills/hailer-apps-pictures/SKILL.md +269 -0
  83. package/.claude/skills/hailer-design-system/SKILL.md +231 -0
  84. package/.claude/skills/hailer-monolith-automations/SKILL.md +686 -0
  85. package/.claude/skills/hailer-permissions-system/SKILL.md +121 -0
  86. package/.claude/skills/hailer-project-protocol/SKILL.md +488 -0
  87. package/.claude/skills/hailer-rest-api/SKILL.md +61 -0
  88. package/.claude/skills/hailer-rest-api/hailer-activities.md +184 -0
  89. package/.claude/skills/hailer-rest-api/hailer-admin.md +473 -0
  90. package/.claude/skills/hailer-rest-api/hailer-calendar.md +256 -0
  91. package/.claude/skills/hailer-rest-api/hailer-feed.md +249 -0
  92. package/.claude/skills/hailer-rest-api/hailer-insights.md +195 -0
  93. package/.claude/skills/hailer-rest-api/hailer-messaging.md +276 -0
  94. package/.claude/skills/hailer-rest-api/hailer-workflows.md +283 -0
  95. package/.claude/skills/insight-join-patterns/SKILL.md +174 -0
  96. package/.claude/skills/integration-patterns/SKILL.md +421 -0
  97. package/.claude/skills/json-only-output/SKILL.md +72 -0
  98. package/.claude/skills/lsp-setup/SKILL.md +160 -0
  99. package/.claude/skills/mcp-direct-tools/SKILL.md +153 -0
  100. package/.claude/skills/optional-parameters/SKILL.md +72 -0
  101. package/.claude/skills/publish-hailer-app/SKILL.md +221 -0
  102. package/.claude/skills/testing-patterns/SKILL.md +630 -0
  103. package/.claude/skills/tool-builder/SKILL.md +250 -0
  104. package/.claude/skills/tool-parameter-usage/SKILL.md +126 -0
  105. package/.claude/skills/tool-response-verification/SKILL.md +92 -0
  106. package/.claude/skills/zapier-hailer-patterns/SKILL.md +581 -0
  107. package/.opencode/agent/agent-ada-skill-builder.md +35 -0
  108. package/.opencode/agent/agent-alejandro-function-fields.md +39 -0
  109. package/.opencode/agent/agent-bjorn-config-audit.md +36 -0
  110. package/.opencode/agent/agent-builder-agent-creator.md +39 -0
  111. package/.opencode/agent/agent-code-simplifier.md +31 -0
  112. package/.opencode/agent/agent-dmitri-activity-crud.md +40 -0
  113. package/.opencode/agent/agent-giuseppe-app-builder.md +37 -0
  114. package/.opencode/agent/agent-gunther-mcp-tools.md +39 -0
  115. package/.opencode/agent/agent-helga-workflow-config.md +204 -0
  116. package/.opencode/agent/agent-igor-activity-mover-automation.md +46 -0
  117. package/.opencode/agent/agent-ingrid-doc-templates.md +39 -0
  118. package/.opencode/agent/agent-ivan-monolith.md +46 -0
  119. package/.opencode/agent/agent-kenji-data-reader.md +53 -0
  120. package/.opencode/agent/agent-lars-code-inspector.md +28 -0
  121. package/.opencode/agent/agent-marco-mockup-builder.md +42 -0
  122. package/.opencode/agent/agent-marcus-api-documenter.md +53 -0
  123. package/.opencode/agent/agent-marketplace-publisher.md +44 -0
  124. package/.opencode/agent/agent-marketplace-reviewer.md +42 -0
  125. package/.opencode/agent/agent-permissions-handler.md +50 -0
  126. package/.opencode/agent/agent-simple-writer.md +45 -0
  127. package/.opencode/agent/agent-svetlana-code-review.md +39 -0
  128. package/.opencode/agent/agent-tanya-test-runner.md +57 -0
  129. package/.opencode/agent/agent-ui-designer.md +56 -0
  130. package/.opencode/agent/agent-viktor-sql-insights.md +34 -0
  131. package/.opencode/agent/agent-web-search.md +42 -0
  132. package/.opencode/agent/agent-yevgeni-discussions.md +37 -0
  133. package/.opencode/agent/agent-zara-zapier.md +53 -0
  134. package/.opencode/commands/app-squad.md +135 -0
  135. package/.opencode/commands/audit-squad.md +158 -0
  136. package/.opencode/commands/autoplan.md +563 -0
  137. package/.opencode/commands/cleanup-squad.md +98 -0
  138. package/.opencode/commands/config-squad.md +106 -0
  139. package/.opencode/commands/crud-squad.md +87 -0
  140. package/.opencode/commands/data-squad.md +97 -0
  141. package/.opencode/commands/debug-squad.md +303 -0
  142. package/.opencode/commands/doc-squad.md +65 -0
  143. package/.opencode/commands/handoff.md +137 -0
  144. package/.opencode/commands/health.md +49 -0
  145. package/.opencode/commands/help-agents.md +151 -0
  146. package/.opencode/commands/help-commands.md +32 -0
  147. package/.opencode/commands/help-faq.md +29 -0
  148. package/.opencode/commands/help-plugins.md +28 -0
  149. package/.opencode/commands/help-skills.md +7 -0
  150. package/.opencode/commands/help-tools.md +40 -0
  151. package/.opencode/commands/help.md +28 -0
  152. package/.opencode/commands/hotfix-squad.md +112 -0
  153. package/.opencode/commands/integration-squad.md +82 -0
  154. package/.opencode/commands/janitor-squad.md +167 -0
  155. package/.opencode/commands/learn-auto.md +120 -0
  156. package/.opencode/commands/learn.md +120 -0
  157. package/.opencode/commands/mcp-list.md +27 -0
  158. package/.opencode/commands/onboard-squad.md +140 -0
  159. package/.opencode/commands/plan-workspace.md +732 -0
  160. package/.opencode/commands/prd.md +131 -0
  161. package/.opencode/commands/project-status.md +82 -0
  162. package/.opencode/commands/publish.md +138 -0
  163. package/.opencode/commands/recap.md +69 -0
  164. package/.opencode/commands/restore.md +64 -0
  165. package/.opencode/commands/review-squad.md +152 -0
  166. package/.opencode/commands/save.md +24 -0
  167. package/.opencode/commands/stats.md +19 -0
  168. package/.opencode/commands/swarm.md +210 -0
  169. package/.opencode/commands/tool-builder.md +39 -0
  170. package/.opencode/commands/ws-pull.md +44 -0
  171. package/.opencode/opencode.json +21 -0
  172. package/dist/agents/bot-manager.d.ts +48 -0
  173. package/dist/agents/bot-manager.d.ts.map +1 -0
  174. package/dist/agents/bot-manager.js +254 -0
  175. package/dist/agents/bot-manager.js.map +1 -0
  176. package/dist/agents/bug-fixer/ai.d.ts +80 -0
  177. package/dist/agents/bug-fixer/ai.d.ts.map +1 -0
  178. package/dist/agents/bug-fixer/ai.js +466 -0
  179. package/dist/agents/bug-fixer/ai.js.map +1 -0
  180. package/dist/agents/bug-fixer/bot.d.ts +92 -0
  181. package/dist/agents/bug-fixer/bot.d.ts.map +1 -0
  182. package/dist/agents/bug-fixer/bot.js +687 -0
  183. package/dist/agents/bug-fixer/bot.js.map +1 -0
  184. package/dist/agents/bug-fixer/config.d.ts +21 -0
  185. package/dist/agents/bug-fixer/config.d.ts.map +1 -0
  186. package/dist/agents/bug-fixer/config.js +218 -0
  187. package/dist/agents/bug-fixer/config.js.map +1 -0
  188. package/dist/agents/bug-fixer/files.d.ts +67 -0
  189. package/dist/agents/bug-fixer/files.d.ts.map +1 -0
  190. package/dist/agents/bug-fixer/files.js +386 -0
  191. package/dist/agents/bug-fixer/files.js.map +1 -0
  192. package/dist/agents/bug-fixer/git.d.ts +48 -0
  193. package/dist/agents/bug-fixer/git.d.ts.map +1 -0
  194. package/dist/agents/bug-fixer/git.js +298 -0
  195. package/dist/agents/bug-fixer/git.js.map +1 -0
  196. package/dist/agents/bug-fixer/index.d.ts +103 -0
  197. package/dist/agents/bug-fixer/index.d.ts.map +1 -0
  198. package/dist/agents/bug-fixer/index.js +262 -0
  199. package/dist/agents/bug-fixer/index.js.map +1 -0
  200. package/dist/agents/bug-fixer/lsp.d.ts +113 -0
  201. package/dist/agents/bug-fixer/lsp.d.ts.map +1 -0
  202. package/dist/agents/bug-fixer/lsp.js +485 -0
  203. package/dist/agents/bug-fixer/lsp.js.map +1 -0
  204. package/dist/agents/bug-fixer/monitor.d.ts +123 -0
  205. package/dist/agents/bug-fixer/monitor.d.ts.map +1 -0
  206. package/dist/agents/bug-fixer/monitor.js +629 -0
  207. package/dist/agents/bug-fixer/monitor.js.map +1 -0
  208. package/dist/agents/bug-fixer/prompt.d.ts +5 -0
  209. package/dist/agents/bug-fixer/prompt.d.ts.map +1 -0
  210. package/dist/agents/bug-fixer/prompt.js +94 -0
  211. package/dist/agents/bug-fixer/prompt.js.map +1 -0
  212. package/dist/agents/bug-fixer/registries/pending-classification.d.ts +28 -0
  213. package/dist/agents/bug-fixer/registries/pending-classification.d.ts.map +1 -0
  214. package/dist/agents/bug-fixer/registries/pending-classification.js +50 -0
  215. package/dist/agents/bug-fixer/registries/pending-classification.js.map +1 -0
  216. package/dist/agents/bug-fixer/registries/pending-fix.d.ts +33 -0
  217. package/dist/agents/bug-fixer/registries/pending-fix.d.ts.map +1 -0
  218. package/dist/agents/bug-fixer/registries/pending-fix.js +64 -0
  219. package/dist/agents/bug-fixer/registries/pending-fix.js.map +1 -0
  220. package/dist/agents/bug-fixer/registries/pending.d.ts +27 -0
  221. package/dist/agents/bug-fixer/registries/pending.d.ts.map +1 -0
  222. package/dist/agents/bug-fixer/registries/pending.js +49 -0
  223. package/dist/agents/bug-fixer/registries/pending.js.map +1 -0
  224. package/dist/agents/bug-fixer/specialist-daemon.d.ts +88 -0
  225. package/dist/agents/bug-fixer/specialist-daemon.d.ts.map +1 -0
  226. package/dist/agents/bug-fixer/specialist-daemon.js +431 -0
  227. package/dist/agents/bug-fixer/specialist-daemon.js.map +1 -0
  228. package/dist/agents/bug-fixer/specialist.d.ts +47 -0
  229. package/dist/agents/bug-fixer/specialist.d.ts.map +1 -0
  230. package/dist/agents/bug-fixer/specialist.js +327 -0
  231. package/dist/agents/bug-fixer/specialist.js.map +1 -0
  232. package/dist/agents/bug-fixer/types.d.ts +123 -0
  233. package/dist/agents/bug-fixer/types.d.ts.map +1 -0
  234. package/dist/agents/bug-fixer/types.js +9 -0
  235. package/dist/agents/bug-fixer/types.js.map +1 -0
  236. package/dist/agents/factory.d.ts +172 -0
  237. package/dist/agents/factory.d.ts.map +1 -0
  238. package/dist/agents/factory.js +706 -0
  239. package/dist/agents/factory.js.map +1 -0
  240. package/dist/agents/hailer-expert/index.d.ts +8 -0
  241. package/dist/agents/hailer-expert/index.d.ts.map +1 -0
  242. package/dist/agents/hailer-expert/index.js +14 -0
  243. package/dist/agents/hailer-expert/index.js.map +1 -0
  244. package/dist/agents/hal/daemon.d.ts +174 -0
  245. package/dist/agents/hal/daemon.d.ts.map +1 -0
  246. package/dist/agents/hal/daemon.js +1385 -0
  247. package/dist/agents/hal/daemon.js.map +1 -0
  248. package/dist/agents/hal/definitions.d.ts +42 -0
  249. package/dist/agents/hal/definitions.d.ts.map +1 -0
  250. package/dist/agents/hal/definitions.js +300 -0
  251. package/dist/agents/hal/definitions.js.map +1 -0
  252. package/dist/agents/hal/index.d.ts +3 -0
  253. package/dist/agents/hal/index.d.ts.map +1 -0
  254. package/dist/agents/hal/index.js +8 -0
  255. package/dist/agents/hal/index.js.map +1 -0
  256. package/dist/agents/index.d.ts +18 -0
  257. package/dist/agents/index.d.ts.map +1 -0
  258. package/dist/agents/index.js +48 -0
  259. package/dist/agents/index.js.map +1 -0
  260. package/dist/agents/shared/base.d.ts +253 -0
  261. package/dist/agents/shared/base.d.ts.map +1 -0
  262. package/dist/agents/shared/base.js +1122 -0
  263. package/dist/agents/shared/base.js.map +1 -0
  264. package/dist/agents/shared/schemas/action-schema.d.ts +62 -0
  265. package/dist/agents/shared/schemas/action-schema.d.ts.map +1 -0
  266. package/dist/agents/shared/schemas/action-schema.js +483 -0
  267. package/dist/agents/shared/schemas/action-schema.js.map +1 -0
  268. package/dist/agents/shared/services/agent-registry.d.ts +108 -0
  269. package/dist/agents/shared/services/agent-registry.d.ts.map +1 -0
  270. package/dist/agents/shared/services/agent-registry.js +469 -0
  271. package/dist/agents/shared/services/agent-registry.js.map +1 -0
  272. package/dist/agents/shared/services/conversation-manager.d.ts +57 -0
  273. package/dist/agents/shared/services/conversation-manager.d.ts.map +1 -0
  274. package/dist/agents/shared/services/conversation-manager.js +168 -0
  275. package/dist/agents/shared/services/conversation-manager.js.map +1 -0
  276. package/dist/agents/shared/services/mcp-client.d.ts +56 -0
  277. package/dist/agents/shared/services/mcp-client.d.ts.map +1 -0
  278. package/dist/agents/shared/services/mcp-client.js +124 -0
  279. package/dist/agents/shared/services/mcp-client.js.map +1 -0
  280. package/dist/agents/shared/services/message-classifier.d.ts +37 -0
  281. package/dist/agents/shared/services/message-classifier.d.ts.map +1 -0
  282. package/dist/agents/shared/services/message-classifier.js +203 -0
  283. package/dist/agents/shared/services/message-classifier.js.map +1 -0
  284. package/dist/agents/shared/services/message-formatter.d.ts +89 -0
  285. package/dist/agents/shared/services/message-formatter.d.ts.map +1 -0
  286. package/dist/agents/shared/services/message-formatter.js +390 -0
  287. package/dist/agents/shared/services/message-formatter.js.map +1 -0
  288. package/dist/agents/shared/services/session-logger.d.ts +162 -0
  289. package/dist/agents/shared/services/session-logger.d.ts.map +1 -0
  290. package/dist/agents/shared/services/session-logger.js +724 -0
  291. package/dist/agents/shared/services/session-logger.js.map +1 -0
  292. package/dist/agents/shared/services/structured-output-executor.d.ts +88 -0
  293. package/dist/agents/shared/services/structured-output-executor.d.ts.map +1 -0
  294. package/dist/agents/shared/services/structured-output-executor.js +296 -0
  295. package/dist/agents/shared/services/structured-output-executor.js.map +1 -0
  296. package/dist/agents/shared/services/token-billing.d.ts +72 -0
  297. package/dist/agents/shared/services/token-billing.d.ts.map +1 -0
  298. package/dist/agents/shared/services/token-billing.js +198 -0
  299. package/dist/agents/shared/services/token-billing.js.map +1 -0
  300. package/dist/agents/shared/services/tool-executor.d.ts +43 -0
  301. package/dist/agents/shared/services/tool-executor.d.ts.map +1 -0
  302. package/dist/agents/shared/services/tool-executor.js +175 -0
  303. package/dist/agents/shared/services/tool-executor.js.map +1 -0
  304. package/dist/agents/shared/services/typing-indicator.d.ts +24 -0
  305. package/dist/agents/shared/services/typing-indicator.d.ts.map +1 -0
  306. package/dist/agents/shared/services/typing-indicator.js +54 -0
  307. package/dist/agents/shared/services/typing-indicator.js.map +1 -0
  308. package/dist/agents/shared/services/workspace-schema-cache.d.ts +122 -0
  309. package/dist/agents/shared/services/workspace-schema-cache.d.ts.map +1 -0
  310. package/dist/agents/shared/services/workspace-schema-cache.js +507 -0
  311. package/dist/agents/shared/services/workspace-schema-cache.js.map +1 -0
  312. package/dist/agents/shared/specialist.d.ts +91 -0
  313. package/dist/agents/shared/specialist.d.ts.map +1 -0
  314. package/dist/agents/shared/specialist.js +399 -0
  315. package/dist/agents/shared/specialist.js.map +1 -0
  316. package/dist/agents/shared/tool-schema-loader.d.ts +65 -0
  317. package/dist/agents/shared/tool-schema-loader.d.ts.map +1 -0
  318. package/dist/agents/shared/tool-schema-loader.js +238 -0
  319. package/dist/agents/shared/tool-schema-loader.js.map +1 -0
  320. package/dist/agents/shared/types.d.ts +190 -0
  321. package/dist/agents/shared/types.d.ts.map +1 -0
  322. package/dist/agents/shared/types.js +13 -0
  323. package/dist/agents/shared/types.js.map +1 -0
  324. package/dist/app.d.ts.map +1 -0
  325. package/dist/app.js.map +1 -0
  326. package/dist/bot/bot-config.d.ts.map +1 -0
  327. package/dist/bot/bot-config.js.map +1 -0
  328. package/dist/bot/bot-manager.d.ts.map +1 -0
  329. package/dist/bot/bot-manager.js.map +1 -0
  330. package/dist/bot/bot.d.ts.map +1 -0
  331. package/dist/bot/bot.js.map +1 -0
  332. package/dist/bot/operation-logger.d.ts.map +1 -0
  333. package/dist/bot/operation-logger.js.map +1 -0
  334. package/dist/bot/services/__tests__/permission-guard.test.d.ts +2 -0
  335. package/dist/bot/services/__tests__/permission-guard.test.d.ts.map +1 -0
  336. package/dist/bot/services/__tests__/permission-guard.test.js +357 -0
  337. package/dist/bot/services/__tests__/permission-guard.test.js.map +1 -0
  338. package/dist/bot/services/conversation-manager.d.ts.map +1 -0
  339. package/dist/bot/services/conversation-manager.js.map +1 -0
  340. package/dist/bot/services/index.d.ts.map +1 -0
  341. package/dist/bot/services/index.js.map +1 -0
  342. package/dist/bot/services/message-classifier.d.ts.map +1 -0
  343. package/dist/bot/services/message-classifier.js.map +1 -0
  344. package/dist/bot/services/message-formatter.d.ts.map +1 -0
  345. package/dist/bot/services/message-formatter.js.map +1 -0
  346. package/dist/bot/services/permission-guard.d.ts.map +1 -0
  347. package/dist/bot/services/permission-guard.js.map +1 -0
  348. package/dist/bot/services/session-logger.d.ts.map +1 -0
  349. package/dist/bot/services/session-logger.js.map +1 -0
  350. package/dist/bot/services/token-billing.d.ts.map +1 -0
  351. package/dist/bot/services/token-billing.js.map +1 -0
  352. package/dist/bot/services/types.d.ts.map +1 -0
  353. package/dist/bot/services/types.js.map +1 -0
  354. package/dist/bot/services/typing-indicator.d.ts.map +1 -0
  355. package/dist/bot/services/typing-indicator.js.map +1 -0
  356. package/dist/bot/services/workspace-schema-cache.d.ts.map +1 -0
  357. package/dist/bot/services/workspace-schema-cache.js.map +1 -0
  358. package/dist/bot/tool-executor.d.ts.map +1 -0
  359. package/dist/bot/tool-executor.js.map +1 -0
  360. package/dist/bot/workspace-overview.d.ts.map +1 -0
  361. package/dist/bot/workspace-overview.js.map +1 -0
  362. package/dist/bot-config/constants.d.ts +42 -0
  363. package/dist/bot-config/constants.d.ts.map +1 -0
  364. package/dist/bot-config/constants.js +118 -0
  365. package/dist/bot-config/constants.js.map +1 -0
  366. package/dist/bot-config/context.d.ts +157 -0
  367. package/dist/bot-config/context.d.ts.map +1 -0
  368. package/dist/bot-config/context.js +475 -0
  369. package/dist/bot-config/context.js.map +1 -0
  370. package/dist/bot-config/index.d.ts +21 -0
  371. package/dist/bot-config/index.d.ts.map +1 -0
  372. package/dist/bot-config/index.js +104 -0
  373. package/dist/bot-config/index.js.map +1 -0
  374. package/dist/bot-config/loader.d.ts +28 -0
  375. package/dist/bot-config/loader.d.ts.map +1 -0
  376. package/dist/bot-config/loader.js +194 -0
  377. package/dist/bot-config/loader.js.map +1 -0
  378. package/dist/bot-config/persistence.d.ts +68 -0
  379. package/dist/bot-config/persistence.d.ts.map +1 -0
  380. package/dist/bot-config/persistence.js +261 -0
  381. package/dist/bot-config/persistence.js.map +1 -0
  382. package/dist/bot-config/state.d.ts +56 -0
  383. package/dist/bot-config/state.d.ts.map +1 -0
  384. package/dist/bot-config/state.js +197 -0
  385. package/dist/bot-config/state.js.map +1 -0
  386. package/dist/bot-config/tools.d.ts +28 -0
  387. package/dist/bot-config/tools.d.ts.map +1 -0
  388. package/dist/bot-config/tools.js +279 -0
  389. package/dist/bot-config/tools.js.map +1 -0
  390. package/dist/bot-config/types.d.ts +45 -0
  391. package/dist/bot-config/types.d.ts.map +1 -0
  392. package/dist/bot-config/types.js +9 -0
  393. package/dist/bot-config/types.js.map +1 -0
  394. package/dist/bot-config/webhooks.d.ts +27 -0
  395. package/dist/bot-config/webhooks.d.ts.map +1 -0
  396. package/dist/bot-config/webhooks.js +212 -0
  397. package/dist/bot-config/webhooks.js.map +1 -0
  398. package/dist/cli.d.ts.map +1 -0
  399. package/dist/cli.js.map +1 -0
  400. package/dist/client/agents/base.d.ts +207 -0
  401. package/dist/client/agents/base.d.ts.map +1 -0
  402. package/dist/client/agents/base.js +744 -0
  403. package/dist/client/agents/base.js.map +1 -0
  404. package/dist/client/agents/definitions.d.ts +53 -0
  405. package/dist/client/agents/definitions.d.ts.map +1 -0
  406. package/dist/client/agents/definitions.js +263 -0
  407. package/dist/client/agents/definitions.js.map +1 -0
  408. package/dist/client/agents/orchestrator.d.ts +141 -0
  409. package/dist/client/agents/orchestrator.d.ts.map +1 -0
  410. package/dist/client/agents/orchestrator.js +1062 -0
  411. package/dist/client/agents/orchestrator.js.map +1 -0
  412. package/dist/client/agents/specialist.d.ts +86 -0
  413. package/dist/client/agents/specialist.d.ts.map +1 -0
  414. package/dist/client/agents/specialist.js +340 -0
  415. package/dist/client/agents/specialist.js.map +1 -0
  416. package/dist/client/bot-entrypoint.d.ts +7 -0
  417. package/dist/client/bot-entrypoint.d.ts.map +1 -0
  418. package/dist/client/bot-entrypoint.js +103 -0
  419. package/dist/client/bot-entrypoint.js.map +1 -0
  420. package/dist/client/bot-manager.d.ts +44 -0
  421. package/dist/client/bot-manager.d.ts.map +1 -0
  422. package/dist/client/bot-manager.js +173 -0
  423. package/dist/client/bot-manager.js.map +1 -0
  424. package/dist/client/bot-runner.d.ts +35 -0
  425. package/dist/client/bot-runner.d.ts.map +1 -0
  426. package/dist/client/bot-runner.js +188 -0
  427. package/dist/client/bot-runner.js.map +1 -0
  428. package/dist/client/chat-agent-daemon.d.ts +464 -0
  429. package/dist/client/chat-agent-daemon.d.ts.map +1 -0
  430. package/dist/client/chat-agent-daemon.js +1774 -0
  431. package/dist/client/chat-agent-daemon.js.map +1 -0
  432. package/dist/client/daemon-factory.d.ts +106 -0
  433. package/dist/client/daemon-factory.d.ts.map +1 -0
  434. package/dist/client/daemon-factory.js +301 -0
  435. package/dist/client/daemon-factory.js.map +1 -0
  436. package/dist/client/factory.d.ts +111 -0
  437. package/dist/client/factory.d.ts.map +1 -0
  438. package/dist/client/factory.js +314 -0
  439. package/dist/client/factory.js.map +1 -0
  440. package/dist/client/index.d.ts +17 -0
  441. package/dist/client/index.d.ts.map +1 -0
  442. package/dist/client/index.js +38 -0
  443. package/dist/client/index.js.map +1 -0
  444. package/dist/client/multi-bot-manager.d.ts +42 -0
  445. package/dist/client/multi-bot-manager.d.ts.map +1 -0
  446. package/dist/client/multi-bot-manager.js +161 -0
  447. package/dist/client/multi-bot-manager.js.map +1 -0
  448. package/dist/client/orchestrator-daemon.d.ts +87 -0
  449. package/dist/client/orchestrator-daemon.d.ts.map +1 -0
  450. package/dist/client/orchestrator-daemon.js +444 -0
  451. package/dist/client/orchestrator-daemon.js.map +1 -0
  452. package/dist/client/server.d.ts +8 -0
  453. package/dist/client/server.d.ts.map +1 -0
  454. package/dist/client/server.js +251 -0
  455. package/dist/client/server.js.map +1 -0
  456. package/dist/client/services/agent-registry.d.ts +108 -0
  457. package/dist/client/services/agent-registry.d.ts.map +1 -0
  458. package/dist/client/services/agent-registry.js +630 -0
  459. package/dist/client/services/agent-registry.js.map +1 -0
  460. package/dist/client/services/conversation-manager.d.ts +50 -0
  461. package/dist/client/services/conversation-manager.d.ts.map +1 -0
  462. package/dist/client/services/conversation-manager.js +136 -0
  463. package/dist/client/services/conversation-manager.js.map +1 -0
  464. package/dist/client/services/mcp-client.d.ts +48 -0
  465. package/dist/client/services/mcp-client.d.ts.map +1 -0
  466. package/dist/client/services/mcp-client.js +105 -0
  467. package/dist/client/services/mcp-client.js.map +1 -0
  468. package/dist/client/services/message-classifier.d.ts +37 -0
  469. package/dist/client/services/message-classifier.d.ts.map +1 -0
  470. package/dist/client/services/message-classifier.js +187 -0
  471. package/dist/client/services/message-classifier.js.map +1 -0
  472. package/dist/client/services/message-formatter.d.ts +84 -0
  473. package/dist/client/services/message-formatter.d.ts.map +1 -0
  474. package/dist/client/services/message-formatter.js +353 -0
  475. package/dist/client/services/message-formatter.js.map +1 -0
  476. package/dist/client/services/session-logger.d.ts +106 -0
  477. package/dist/client/services/session-logger.d.ts.map +1 -0
  478. package/dist/client/services/session-logger.js +446 -0
  479. package/dist/client/services/session-logger.js.map +1 -0
  480. package/dist/client/services/tool-executor.d.ts +41 -0
  481. package/dist/client/services/tool-executor.d.ts.map +1 -0
  482. package/dist/client/services/tool-executor.js +169 -0
  483. package/dist/client/services/tool-executor.js.map +1 -0
  484. package/dist/client/services/workspace-schema-cache.d.ts +149 -0
  485. package/dist/client/services/workspace-schema-cache.d.ts.map +1 -0
  486. package/dist/client/services/workspace-schema-cache.js +732 -0
  487. package/dist/client/services/workspace-schema-cache.js.map +1 -0
  488. package/dist/client/specialist-daemon.d.ts +77 -0
  489. package/dist/client/specialist-daemon.d.ts.map +1 -0
  490. package/dist/client/specialist-daemon.js +197 -0
  491. package/dist/client/specialist-daemon.js.map +1 -0
  492. package/dist/client/specialists.d.ts +53 -0
  493. package/dist/client/specialists.d.ts.map +1 -0
  494. package/dist/client/specialists.js +178 -0
  495. package/dist/client/specialists.js.map +1 -0
  496. package/dist/client/tool-schema-loader.d.ts +62 -0
  497. package/dist/client/tool-schema-loader.d.ts.map +1 -0
  498. package/dist/client/tool-schema-loader.js +232 -0
  499. package/dist/client/tool-schema-loader.js.map +1 -0
  500. package/dist/client/types.d.ts +327 -0
  501. package/dist/client/types.d.ts.map +1 -0
  502. package/dist/client/types.js +121 -0
  503. package/dist/client/types.js.map +1 -0
  504. package/dist/commands/seed-config.d.ts +9 -0
  505. package/dist/commands/seed-config.d.ts.map +1 -0
  506. package/dist/commands/seed-config.js +392 -0
  507. package/dist/commands/seed-config.js.map +1 -0
  508. package/dist/commands/setup.d.ts +11 -0
  509. package/dist/commands/setup.d.ts.map +1 -0
  510. package/dist/commands/setup.js +320 -0
  511. package/dist/commands/setup.js.map +1 -0
  512. package/dist/config.d.ts.map +1 -0
  513. package/dist/config.js.map +1 -0
  514. package/dist/core.d.ts.map +1 -0
  515. package/dist/core.js.map +1 -0
  516. package/dist/lib/discussion-lock.d.ts.map +1 -0
  517. package/dist/lib/discussion-lock.js.map +1 -0
  518. package/dist/lib/logger.d.ts.map +1 -0
  519. package/dist/lib/logger.js.map +1 -0
  520. package/dist/lib/request-logger.d.ts.map +1 -0
  521. package/dist/lib/request-logger.js.map +1 -0
  522. package/dist/mcp/UserContextCache.d.ts.map +1 -0
  523. package/dist/mcp/UserContextCache.js.map +1 -0
  524. package/dist/mcp/auth.d.ts.map +1 -0
  525. package/dist/mcp/auth.js.map +1 -0
  526. package/dist/mcp/hailer-clients.d.ts.map +1 -0
  527. package/dist/mcp/hailer-clients.js.map +1 -0
  528. package/dist/mcp/session-store.d.ts.map +1 -0
  529. package/dist/mcp/session-store.js.map +1 -0
  530. package/dist/mcp/signal-handler.d.ts.map +1 -0
  531. package/dist/mcp/signal-handler.js.map +1 -0
  532. package/dist/mcp/tool-registry.d.ts.map +1 -0
  533. package/dist/mcp/tool-registry.js.map +1 -0
  534. package/dist/mcp/tools/__tests__/discussion-forward.test.d.ts +2 -0
  535. package/dist/mcp/tools/__tests__/discussion-forward.test.d.ts.map +1 -0
  536. package/dist/mcp/tools/__tests__/discussion-forward.test.js +218 -0
  537. package/dist/mcp/tools/__tests__/discussion-forward.test.js.map +1 -0
  538. package/dist/mcp/tools/activity.d.ts.map +1 -0
  539. package/dist/mcp/tools/activity.js.map +1 -0
  540. package/dist/mcp/tools/app-core.d.ts.map +1 -0
  541. package/dist/mcp/tools/app-core.js.map +1 -0
  542. package/dist/mcp/tools/app-marketplace.d.ts.map +1 -0
  543. package/dist/mcp/tools/app-marketplace.js.map +1 -0
  544. package/dist/mcp/tools/app-member.d.ts.map +1 -0
  545. package/dist/mcp/tools/app-member.js.map +1 -0
  546. package/dist/mcp/tools/app-scaffold.d.ts.map +1 -0
  547. package/dist/mcp/tools/app-scaffold.js.map +1 -0
  548. package/dist/mcp/tools/app.d.ts.map +1 -0
  549. package/dist/mcp/tools/app.js.map +1 -0
  550. package/dist/mcp/tools/bot-config/constants.d.ts.map +1 -0
  551. package/dist/mcp/tools/bot-config/constants.js.map +1 -0
  552. package/dist/mcp/tools/bot-config/core.d.ts.map +1 -0
  553. package/dist/mcp/tools/bot-config/core.js.map +1 -0
  554. package/dist/mcp/tools/bot-config/index.d.ts.map +1 -0
  555. package/dist/mcp/tools/bot-config/index.js.map +1 -0
  556. package/dist/mcp/tools/bot-config/tools.d.ts.map +1 -0
  557. package/dist/mcp/tools/bot-config/tools.js.map +1 -0
  558. package/dist/mcp/tools/bot-config/types.d.ts.map +1 -0
  559. package/dist/mcp/tools/bot-config/types.js.map +1 -0
  560. package/dist/mcp/tools/bug-fixer-tools.d.ts.map +1 -0
  561. package/dist/mcp/tools/bug-fixer-tools.js.map +1 -0
  562. package/dist/mcp/tools/company.d.ts.map +1 -0
  563. package/dist/mcp/tools/company.js.map +1 -0
  564. package/dist/mcp/tools/discussion.d.ts.map +1 -0
  565. package/dist/mcp/tools/discussion.js.map +1 -0
  566. package/dist/mcp/tools/document.d.ts.map +1 -0
  567. package/dist/mcp/tools/document.js.map +1 -0
  568. package/dist/mcp/tools/file.d.ts.map +1 -0
  569. package/dist/mcp/tools/file.js.map +1 -0
  570. package/dist/mcp/tools/insight.d.ts.map +1 -0
  571. package/dist/mcp/tools/insight.js.map +1 -0
  572. package/dist/mcp/tools/investigate.d.ts.map +1 -0
  573. package/dist/mcp/tools/investigate.js.map +1 -0
  574. package/dist/mcp/tools/user.d.ts.map +1 -0
  575. package/dist/mcp/tools/user.js.map +1 -0
  576. package/dist/mcp/tools/workflow-permissions.d.ts.map +1 -0
  577. package/dist/mcp/tools/workflow-permissions.js.map +1 -0
  578. package/dist/mcp/tools/workflow.d.ts.map +1 -0
  579. package/dist/mcp/tools/workflow.js.map +1 -0
  580. package/dist/mcp/utils/api-errors.d.ts.map +1 -0
  581. package/dist/mcp/utils/api-errors.js.map +1 -0
  582. package/dist/mcp/utils/data-transformers.d.ts.map +1 -0
  583. package/dist/mcp/utils/data-transformers.js.map +1 -0
  584. package/dist/mcp/utils/file-upload.d.ts.map +1 -0
  585. package/dist/mcp/utils/file-upload.js.map +1 -0
  586. package/dist/mcp/utils/hailer-api-client.d.ts.map +1 -0
  587. package/dist/mcp/utils/hailer-api-client.js.map +1 -0
  588. package/dist/mcp/utils/index.d.ts.map +1 -0
  589. package/dist/mcp/utils/index.js.map +1 -0
  590. package/dist/mcp/utils/logger.d.ts.map +1 -0
  591. package/dist/mcp/utils/logger.js.map +1 -0
  592. package/dist/mcp/utils/pagination.d.ts.map +1 -0
  593. package/dist/mcp/utils/pagination.js.map +1 -0
  594. package/dist/mcp/utils/response-builder.d.ts.map +1 -0
  595. package/dist/mcp/utils/response-builder.js.map +1 -0
  596. package/dist/mcp/utils/role-utils.d.ts.map +1 -0
  597. package/dist/mcp/utils/role-utils.js.map +1 -0
  598. package/dist/mcp/utils/tool-helpers.d.ts.map +1 -0
  599. package/dist/mcp/utils/tool-helpers.js.map +1 -0
  600. package/dist/mcp/utils/types.d.ts.map +1 -0
  601. package/dist/mcp/utils/types.js.map +1 -0
  602. package/dist/mcp/webhook-handler.d.ts.map +1 -0
  603. package/dist/mcp/webhook-handler.js.map +1 -0
  604. package/dist/mcp/workspace-cache.d.ts.map +1 -0
  605. package/dist/mcp/workspace-cache.js.map +1 -0
  606. package/dist/mcp-server.d.ts.map +1 -0
  607. package/dist/mcp-server.js.map +1 -0
  608. package/dist/modules/bug-reports/bug-config.d.ts +25 -0
  609. package/dist/modules/bug-reports/bug-config.d.ts.map +1 -0
  610. package/dist/modules/bug-reports/bug-config.js +187 -0
  611. package/dist/modules/bug-reports/bug-config.js.map +1 -0
  612. package/dist/modules/bug-reports/bug-monitor.d.ts +108 -0
  613. package/dist/modules/bug-reports/bug-monitor.d.ts.map +1 -0
  614. package/dist/modules/bug-reports/bug-monitor.js +510 -0
  615. package/dist/modules/bug-reports/bug-monitor.js.map +1 -0
  616. package/dist/modules/bug-reports/giuseppe-agent.d.ts +58 -0
  617. package/dist/modules/bug-reports/giuseppe-agent.d.ts.map +1 -0
  618. package/dist/modules/bug-reports/giuseppe-agent.js +467 -0
  619. package/dist/modules/bug-reports/giuseppe-agent.js.map +1 -0
  620. package/dist/modules/bug-reports/giuseppe-ai.d.ts +83 -0
  621. package/dist/modules/bug-reports/giuseppe-ai.d.ts.map +1 -0
  622. package/dist/modules/bug-reports/giuseppe-ai.js +466 -0
  623. package/dist/modules/bug-reports/giuseppe-ai.js.map +1 -0
  624. package/dist/modules/bug-reports/giuseppe-bot.d.ts +110 -0
  625. package/dist/modules/bug-reports/giuseppe-bot.d.ts.map +1 -0
  626. package/dist/modules/bug-reports/giuseppe-bot.js +804 -0
  627. package/dist/modules/bug-reports/giuseppe-bot.js.map +1 -0
  628. package/dist/modules/bug-reports/giuseppe-daemon.d.ts +80 -0
  629. package/dist/modules/bug-reports/giuseppe-daemon.d.ts.map +1 -0
  630. package/dist/modules/bug-reports/giuseppe-daemon.js +617 -0
  631. package/dist/modules/bug-reports/giuseppe-daemon.js.map +1 -0
  632. package/dist/modules/bug-reports/giuseppe-files.d.ts +64 -0
  633. package/dist/modules/bug-reports/giuseppe-files.d.ts.map +1 -0
  634. package/dist/modules/bug-reports/giuseppe-files.js +375 -0
  635. package/dist/modules/bug-reports/giuseppe-files.js.map +1 -0
  636. package/dist/modules/bug-reports/giuseppe-git.d.ts +48 -0
  637. package/dist/modules/bug-reports/giuseppe-git.d.ts.map +1 -0
  638. package/dist/modules/bug-reports/giuseppe-git.js +298 -0
  639. package/dist/modules/bug-reports/giuseppe-git.js.map +1 -0
  640. package/dist/modules/bug-reports/giuseppe-lsp.d.ts +113 -0
  641. package/dist/modules/bug-reports/giuseppe-lsp.d.ts.map +1 -0
  642. package/dist/modules/bug-reports/giuseppe-lsp.js +485 -0
  643. package/dist/modules/bug-reports/giuseppe-lsp.js.map +1 -0
  644. package/dist/modules/bug-reports/giuseppe-prompt.d.ts +5 -0
  645. package/dist/modules/bug-reports/giuseppe-prompt.d.ts.map +1 -0
  646. package/dist/modules/bug-reports/giuseppe-prompt.js +94 -0
  647. package/dist/modules/bug-reports/giuseppe-prompt.js.map +1 -0
  648. package/dist/modules/bug-reports/index.d.ts +77 -0
  649. package/dist/modules/bug-reports/index.d.ts.map +1 -0
  650. package/dist/modules/bug-reports/index.js +215 -0
  651. package/dist/modules/bug-reports/index.js.map +1 -0
  652. package/dist/modules/bug-reports/pending-classification-registry.d.ts +28 -0
  653. package/dist/modules/bug-reports/pending-classification-registry.d.ts.map +1 -0
  654. package/dist/modules/bug-reports/pending-classification-registry.js +50 -0
  655. package/dist/modules/bug-reports/pending-classification-registry.js.map +1 -0
  656. package/dist/modules/bug-reports/pending-fix-registry.d.ts +30 -0
  657. package/dist/modules/bug-reports/pending-fix-registry.d.ts.map +1 -0
  658. package/dist/modules/bug-reports/pending-fix-registry.js +42 -0
  659. package/dist/modules/bug-reports/pending-fix-registry.js.map +1 -0
  660. package/dist/modules/bug-reports/pending-registry.d.ts +27 -0
  661. package/dist/modules/bug-reports/pending-registry.d.ts.map +1 -0
  662. package/dist/modules/bug-reports/pending-registry.js +49 -0
  663. package/dist/modules/bug-reports/pending-registry.js.map +1 -0
  664. package/dist/modules/bug-reports/types.d.ts +123 -0
  665. package/dist/modules/bug-reports/types.d.ts.map +1 -0
  666. package/dist/modules/bug-reports/types.js +9 -0
  667. package/dist/modules/bug-reports/types.js.map +1 -0
  668. package/dist/plugins/bug-fixer/index.d.ts.map +1 -0
  669. package/dist/plugins/bug-fixer/index.js.map +1 -0
  670. package/dist/plugins/bug-fixer/tools.d.ts.map +1 -0
  671. package/dist/plugins/bug-fixer/tools.js.map +1 -0
  672. package/dist/plugins/vipunen/__tests__/tools.test.d.ts +10 -0
  673. package/dist/plugins/vipunen/__tests__/tools.test.d.ts.map +1 -0
  674. package/dist/plugins/vipunen/__tests__/tools.test.js +646 -0
  675. package/dist/plugins/vipunen/__tests__/tools.test.js.map +1 -0
  676. package/dist/plugins/vipunen/client.d.ts.map +1 -0
  677. package/dist/plugins/vipunen/client.js.map +1 -0
  678. package/dist/plugins/vipunen/index.d.ts.map +1 -0
  679. package/dist/plugins/vipunen/index.js.map +1 -0
  680. package/dist/plugins/vipunen/tools.d.ts.map +1 -0
  681. package/dist/plugins/vipunen/tools.js.map +1 -0
  682. package/dist/routes/agents.d.ts +44 -0
  683. package/dist/routes/agents.d.ts.map +1 -0
  684. package/dist/routes/agents.js +311 -0
  685. package/dist/routes/agents.js.map +1 -0
  686. package/dist/services/agent-credential-store.d.ts +73 -0
  687. package/dist/services/agent-credential-store.d.ts.map +1 -0
  688. package/dist/services/agent-credential-store.js +212 -0
  689. package/dist/services/agent-credential-store.js.map +1 -0
  690. package/dist/stdio-server.d.ts.map +1 -0
  691. package/dist/stdio-server.js.map +1 -0
  692. package/dist/workspace/context.d.ts +148 -0
  693. package/dist/workspace/context.d.ts.map +1 -0
  694. package/dist/workspace/context.js +339 -0
  695. package/dist/workspace/context.js.map +1 -0
  696. package/dist/workspace/credentials.d.ts +55 -0
  697. package/dist/workspace/credentials.d.ts.map +1 -0
  698. package/dist/workspace/credentials.js +239 -0
  699. package/dist/workspace/credentials.js.map +1 -0
  700. package/dist/workspace/index.d.ts +21 -0
  701. package/dist/workspace/index.d.ts.map +1 -0
  702. package/dist/workspace/index.js +45 -0
  703. package/dist/workspace/index.js.map +1 -0
  704. package/dist/workspace/loader.d.ts +27 -0
  705. package/dist/workspace/loader.d.ts.map +1 -0
  706. package/dist/workspace/loader.js +222 -0
  707. package/dist/workspace/loader.js.map +1 -0
  708. package/dist/workspace/schema.d.ts +37 -0
  709. package/dist/workspace/schema.d.ts.map +1 -0
  710. package/dist/workspace/schema.js +192 -0
  711. package/dist/workspace/schema.js.map +1 -0
  712. package/package.json +13 -1
  713. package/test-billing-server.js +0 -136
@@ -0,0 +1,339 @@
1
+ "use strict";
2
+ /**
3
+ * Workspace Context
4
+ *
5
+ * Workspace-scoped singleton container for complete tenant isolation.
6
+ * Each workspace gets ONE instance of WorkspaceContext that holds:
7
+ * - Schema (workflow/field IDs)
8
+ * - Credentials (bot email/password)
9
+ * - Bot state (enabled/disabled)
10
+ *
11
+ * CRITICAL: Data must NEVER mix between workspaces.
12
+ */
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.WorkspaceContext = void 0;
15
+ exports.getWorkspace = getWorkspace;
16
+ exports.getExistingWorkspace = getExistingWorkspace;
17
+ exports.listWorkspaces = listWorkspaces;
18
+ exports.hasWorkspace = hasWorkspace;
19
+ exports.removeWorkspace = removeWorkspace;
20
+ exports.clearAllWorkspaces = clearAllWorkspaces;
21
+ exports.getWorkspaceByWorkflowId = getWorkspaceByWorkflowId;
22
+ const logger_1 = require("../lib/logger");
23
+ const schema_1 = require("./schema");
24
+ const credentials_1 = require("./credentials");
25
+ const logger = (0, logger_1.createLogger)({ component: 'WorkspaceContext' });
26
+ /**
27
+ * Workspace-scoped singleton container
28
+ */
29
+ class WorkspaceContext {
30
+ workspaceId;
31
+ workspaceName;
32
+ schema = null;
33
+ credentials = new Map();
34
+ botState = new Map();
35
+ initialized = false;
36
+ // Callbacks for state changes
37
+ stateChangeCallbacks = [];
38
+ credentialChangeCallbacks = [];
39
+ constructor(workspaceId, workspaceName = '') {
40
+ this.workspaceId = workspaceId;
41
+ this.workspaceName = workspaceName;
42
+ logger.debug('WorkspaceContext created', { workspaceId, workspaceName });
43
+ }
44
+ // ============================================================================
45
+ // Initialization
46
+ // ============================================================================
47
+ /**
48
+ * Initialize the workspace context by discovering schema and loading credentials
49
+ */
50
+ async initialize(client) {
51
+ if (this.initialized) {
52
+ logger.debug('Workspace already initialized', { workspaceId: this.workspaceId });
53
+ return true;
54
+ }
55
+ logger.info('Initializing workspace context', { workspaceId: this.workspaceId });
56
+ try {
57
+ // Step 1: Discover schema (Agent Directory workflow IDs)
58
+ this.schema = await (0, schema_1.discoverSchema)(client, this.workspaceId);
59
+ if (!this.schema) {
60
+ logger.warn('Schema discovery failed - Agent Directory not found', {
61
+ workspaceId: this.workspaceId
62
+ });
63
+ this.initialized = true; // Mark as initialized even without schema
64
+ return false;
65
+ }
66
+ // Step 2: Load credentials from Agent Directory
67
+ const creds = await (0, credentials_1.loadCredentials)(client, this.schema, this.workspaceId);
68
+ for (const cred of creds) {
69
+ this.credentials.set(cred.userId, cred);
70
+ this.botState.set(cred.userId, {
71
+ enabled: cred.enabled,
72
+ userId: cred.userId,
73
+ botType: cred.botType
74
+ });
75
+ }
76
+ this.initialized = true;
77
+ logger.info('Workspace context initialized', {
78
+ workspaceId: this.workspaceId,
79
+ botCount: creds.length,
80
+ orchestrator: creds.find(c => c.botType === 'orchestrator')?.userId
81
+ });
82
+ return true;
83
+ }
84
+ catch (error) {
85
+ logger.error('Failed to initialize workspace context', {
86
+ workspaceId: this.workspaceId,
87
+ error: error instanceof Error ? error.message : String(error)
88
+ });
89
+ this.initialized = true; // Mark as initialized to prevent retry loops
90
+ return false;
91
+ }
92
+ }
93
+ /**
94
+ * Check if workspace is initialized
95
+ */
96
+ isInitialized() {
97
+ return this.initialized;
98
+ }
99
+ // ============================================================================
100
+ // Schema Access
101
+ // ============================================================================
102
+ /**
103
+ * Get the workspace schema (workflow/field IDs)
104
+ */
105
+ getSchema() {
106
+ return this.schema;
107
+ }
108
+ /**
109
+ * Set the workspace schema (used during hot-reload)
110
+ */
111
+ setSchema(schema) {
112
+ this.schema = schema;
113
+ logger.debug('Schema updated', { workspaceId: this.workspaceId });
114
+ }
115
+ /**
116
+ * Get Agent Directory workflow ID
117
+ */
118
+ getAgentDirectoryWorkflowId() {
119
+ return this.schema?.agentDirectoryWorkflowId ?? null;
120
+ }
121
+ /**
122
+ * Get phase IDs
123
+ */
124
+ getPhaseIds() {
125
+ return {
126
+ deployed: this.schema?.deployedPhaseId ?? null,
127
+ retired: this.schema?.retiredPhaseId ?? null
128
+ };
129
+ }
130
+ // ============================================================================
131
+ // Credentials Access
132
+ // ============================================================================
133
+ /**
134
+ * Get credentials for a specific bot
135
+ */
136
+ getCredentials(userId) {
137
+ return this.credentials.get(userId);
138
+ }
139
+ /**
140
+ * Get all credentials
141
+ */
142
+ getAllCredentials() {
143
+ return Array.from(this.credentials.values());
144
+ }
145
+ /**
146
+ * Update credentials for a bot
147
+ */
148
+ updateCredentials(userId, creds) {
149
+ const existing = this.credentials.get(userId) || {
150
+ userId,
151
+ email: '',
152
+ password: '',
153
+ displayName: undefined,
154
+ botType: null,
155
+ enabled: false,
156
+ workspaceId: this.workspaceId
157
+ };
158
+ this.credentials.set(userId, { ...existing, ...creds });
159
+ this.credentialChangeCallbacks.forEach(cb => cb(userId));
160
+ logger.debug('Credentials updated', { workspaceId: this.workspaceId, userId });
161
+ }
162
+ /**
163
+ * Get orchestrator credentials (first bot with orchestrator type)
164
+ */
165
+ getOrchestratorCredentials() {
166
+ return Array.from(this.credentials.values())
167
+ .find(c => c.botType === 'orchestrator' && c.enabled);
168
+ }
169
+ /**
170
+ * Get specialist credentials (non-orchestrator enabled bots)
171
+ */
172
+ getSpecialistCredentials() {
173
+ return Array.from(this.credentials.values())
174
+ .filter(c => c.botType !== 'orchestrator' && c.enabled);
175
+ }
176
+ // ============================================================================
177
+ // Bot State Access
178
+ // ============================================================================
179
+ /**
180
+ * Get bot state for a specific user
181
+ */
182
+ getBotState(userId) {
183
+ return this.botState.get(userId);
184
+ }
185
+ /**
186
+ * Get all bot states as a simple map (userId -> enabled)
187
+ */
188
+ getAllBotStates() {
189
+ const result = {};
190
+ for (const [userId, entry] of this.botState) {
191
+ result[userId] = entry.enabled;
192
+ }
193
+ return result;
194
+ }
195
+ /**
196
+ * Get enabled bots with their types
197
+ */
198
+ getEnabledBotsWithTypes() {
199
+ const result = new Map();
200
+ for (const [userId, entry] of this.botState) {
201
+ if (entry.enabled) {
202
+ result.set(userId, entry.botType);
203
+ }
204
+ }
205
+ return result;
206
+ }
207
+ /**
208
+ * Set bot enabled state
209
+ */
210
+ setBotEnabled(userId, enabled) {
211
+ const existing = this.botState.get(userId);
212
+ this.botState.set(userId, {
213
+ enabled,
214
+ userId,
215
+ botType: existing?.botType ?? null
216
+ });
217
+ // Update credentials too
218
+ const creds = this.credentials.get(userId);
219
+ if (creds) {
220
+ creds.enabled = enabled;
221
+ }
222
+ // Notify listeners
223
+ this.stateChangeCallbacks.forEach(cb => cb(userId, enabled));
224
+ logger.info('Bot state changed', { workspaceId: this.workspaceId, userId, enabled });
225
+ }
226
+ /**
227
+ * Set bot type for a user
228
+ */
229
+ setBotType(userId, botType) {
230
+ const existing = this.botState.get(userId);
231
+ this.botState.set(userId, {
232
+ enabled: existing?.enabled ?? false,
233
+ userId,
234
+ botType
235
+ });
236
+ // Update credentials too
237
+ const creds = this.credentials.get(userId);
238
+ if (creds) {
239
+ creds.botType = botType;
240
+ }
241
+ logger.debug('Bot type updated', { workspaceId: this.workspaceId, userId, botType });
242
+ }
243
+ // ============================================================================
244
+ // Callbacks
245
+ // ============================================================================
246
+ /**
247
+ * Register callback for bot state changes
248
+ */
249
+ onBotStateChange(callback) {
250
+ this.stateChangeCallbacks.push(callback);
251
+ }
252
+ /**
253
+ * Register callback for credential changes
254
+ */
255
+ onCredentialChange(callback) {
256
+ this.credentialChangeCallbacks.push(callback);
257
+ }
258
+ /**
259
+ * Clear all callbacks (for cleanup)
260
+ */
261
+ clearCallbacks() {
262
+ this.stateChangeCallbacks.length = 0;
263
+ this.credentialChangeCallbacks.length = 0;
264
+ }
265
+ }
266
+ exports.WorkspaceContext = WorkspaceContext;
267
+ // ============================================================================
268
+ // Global Registry (Workspace Isolation)
269
+ // ============================================================================
270
+ /**
271
+ * Global registry of workspace contexts
272
+ * Each workspace gets exactly ONE context instance
273
+ */
274
+ const workspaces = new Map();
275
+ /**
276
+ * Get or create WorkspaceContext for a workspace
277
+ */
278
+ function getWorkspace(workspaceId, workspaceName) {
279
+ let ctx = workspaces.get(workspaceId);
280
+ if (!ctx) {
281
+ ctx = new WorkspaceContext(workspaceId, workspaceName || '');
282
+ workspaces.set(workspaceId, ctx);
283
+ logger.info('Created new workspace context', { workspaceId });
284
+ }
285
+ return ctx;
286
+ }
287
+ /**
288
+ * Get existing WorkspaceContext (returns undefined if not created)
289
+ */
290
+ function getExistingWorkspace(workspaceId) {
291
+ return workspaces.get(workspaceId);
292
+ }
293
+ /**
294
+ * List all registered workspace IDs
295
+ */
296
+ function listWorkspaces() {
297
+ return Array.from(workspaces.keys());
298
+ }
299
+ /**
300
+ * Check if a workspace context exists
301
+ */
302
+ function hasWorkspace(workspaceId) {
303
+ return workspaces.has(workspaceId);
304
+ }
305
+ /**
306
+ * Remove a workspace context (for cleanup)
307
+ */
308
+ function removeWorkspace(workspaceId) {
309
+ const ctx = workspaces.get(workspaceId);
310
+ if (ctx) {
311
+ ctx.clearCallbacks();
312
+ workspaces.delete(workspaceId);
313
+ logger.info('Removed workspace context', { workspaceId });
314
+ return true;
315
+ }
316
+ return false;
317
+ }
318
+ /**
319
+ * Clear all workspace contexts (for testing/shutdown)
320
+ */
321
+ function clearAllWorkspaces() {
322
+ for (const ctx of workspaces.values()) {
323
+ ctx.clearCallbacks();
324
+ }
325
+ workspaces.clear();
326
+ logger.info('Cleared all workspace contexts');
327
+ }
328
+ /**
329
+ * Find workspace by Agent Directory workflow ID (reverse lookup)
330
+ */
331
+ function getWorkspaceByWorkflowId(workflowId) {
332
+ for (const ctx of workspaces.values()) {
333
+ if (ctx.getAgentDirectoryWorkflowId() === workflowId) {
334
+ return ctx;
335
+ }
336
+ }
337
+ return undefined;
338
+ }
339
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/workspace/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Credential Loading
3
+ *
4
+ * Loads bot credentials from Agent Directory activities.
5
+ * Consolidates multiple extraction functions into one clean implementation.
6
+ */
7
+ import { HailerApiClient } from '../mcp/utils';
8
+ import { WorkspaceSchema } from './schema';
9
+ /**
10
+ * Bot credentials structure
11
+ */
12
+ export interface BotCredentials {
13
+ userId: string;
14
+ email: string;
15
+ password: string;
16
+ displayName?: string;
17
+ botType: string | null;
18
+ enabled: boolean;
19
+ workspaceId: string;
20
+ }
21
+ /**
22
+ * Load all bot credentials from Agent Directory
23
+ *
24
+ * @param client - Hailer client
25
+ * @param schema - Workspace schema with field IDs
26
+ * @param workspaceId - Workspace ID
27
+ */
28
+ export declare function loadCredentials(client: HailerApiClient, schema: WorkspaceSchema, workspaceId: string): Promise<BotCredentials[]>;
29
+ /**
30
+ * Activity data structure (partial)
31
+ */
32
+ interface ActivityData {
33
+ _id: string;
34
+ name?: string;
35
+ fields?: Record<string, unknown>;
36
+ fieldsAndValues?: Array<{
37
+ fieldId?: string;
38
+ fieldName?: string;
39
+ value?: unknown;
40
+ }>;
41
+ }
42
+ /**
43
+ * Extract credentials from an activity (for hot-reload / webhook processing)
44
+ */
45
+ export declare function extractCredentialsFromActivityData(activity: ActivityData, schema: WorkspaceSchema, workspaceId: string, enabled: boolean): BotCredentials | null;
46
+ /**
47
+ * Extract just the user ID from an activity
48
+ */
49
+ export declare function extractUserIdFromActivity(activity: ActivityData, schema: WorkspaceSchema): string | null;
50
+ /**
51
+ * Extract just the bot type from an activity
52
+ */
53
+ export declare function extractBotTypeFromActivity(activity: ActivityData, schema: WorkspaceSchema): string | null;
54
+ export {};
55
+ //# sourceMappingURL=credentials.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../src/workspace/credentials.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAI3C;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,eAAe,EACvB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,cAAc,EAAE,CAAC,CA+D3B;AAiCD;;GAEG;AACH,UAAU,YAAY;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,eAAe,CAAC,EAAE,KAAK,CAAC;QACtB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC,CAAC;CACJ;AAoKD;;GAEG;AACH,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,eAAe,EACvB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,OAAO,GACf,cAAc,GAAG,IAAI,CAEvB;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,eAAe,GACtB,MAAM,GAAG,IAAI,CAEf;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,eAAe,GACtB,MAAM,GAAG,IAAI,CAEf"}
@@ -0,0 +1,239 @@
1
+ "use strict";
2
+ /**
3
+ * Credential Loading
4
+ *
5
+ * Loads bot credentials from Agent Directory activities.
6
+ * Consolidates multiple extraction functions into one clean implementation.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.loadCredentials = loadCredentials;
10
+ exports.extractCredentialsFromActivityData = extractCredentialsFromActivityData;
11
+ exports.extractUserIdFromActivity = extractUserIdFromActivity;
12
+ exports.extractBotTypeFromActivity = extractBotTypeFromActivity;
13
+ const logger_1 = require("../lib/logger");
14
+ const config_1 = require("../config");
15
+ const logger = (0, logger_1.createLogger)({ component: 'CredentialLoader' });
16
+ /**
17
+ * Load all bot credentials from Agent Directory
18
+ *
19
+ * @param client - Hailer client
20
+ * @param schema - Workspace schema with field IDs
21
+ * @param workspaceId - Workspace ID
22
+ */
23
+ async function loadCredentials(client, schema, workspaceId) {
24
+ const credentials = [];
25
+ if (!schema.deployedPhaseId) {
26
+ logger.warn('Cannot load credentials - no deployed phase ID', { workspaceId });
27
+ return credentials;
28
+ }
29
+ try {
30
+ // Load deployed agents (enabled = true)
31
+ const deployedActivities = await fetchActivitiesFromPhase(client, schema.agentDirectoryWorkflowId, schema.deployedPhaseId);
32
+ for (const activity of deployedActivities) {
33
+ const cred = extractCredentialsFromActivity(activity, schema, workspaceId, true);
34
+ if (cred) {
35
+ credentials.push(cred);
36
+ logger.debug('Loaded deployed bot credentials', {
37
+ userId: cred.userId,
38
+ email: (0, config_1.maskEmail)(cred.email),
39
+ botType: cred.botType
40
+ });
41
+ }
42
+ }
43
+ // Load retired agents (enabled = false)
44
+ if (schema.retiredPhaseId) {
45
+ const retiredActivities = await fetchActivitiesFromPhase(client, schema.agentDirectoryWorkflowId, schema.retiredPhaseId);
46
+ for (const activity of retiredActivities) {
47
+ const cred = extractCredentialsFromActivity(activity, schema, workspaceId, false);
48
+ if (cred) {
49
+ credentials.push(cred);
50
+ logger.debug('Loaded retired bot credentials', {
51
+ userId: cred.userId,
52
+ email: (0, config_1.maskEmail)(cred.email),
53
+ botType: cred.botType
54
+ });
55
+ }
56
+ }
57
+ }
58
+ logger.info('Credentials loaded from Agent Directory', {
59
+ workspaceId,
60
+ deployed: deployedActivities.length,
61
+ total: credentials.length
62
+ });
63
+ return credentials;
64
+ }
65
+ catch (error) {
66
+ logger.error('Failed to load credentials', {
67
+ workspaceId,
68
+ error: error instanceof Error ? error.message : String(error)
69
+ });
70
+ return credentials;
71
+ }
72
+ }
73
+ /**
74
+ * Fetch activities from a workflow phase
75
+ */
76
+ async function fetchActivitiesFromPhase(client, workflowId, phaseId) {
77
+ try {
78
+ const result = await client.fetchActivityList(workflowId, phaseId, 100, { returnFlat: true });
79
+ // Handle various response formats
80
+ if (Array.isArray(result))
81
+ return result;
82
+ if (result?.data)
83
+ return result.data;
84
+ if (result?.activities)
85
+ return result.activities;
86
+ return [];
87
+ }
88
+ catch (error) {
89
+ logger.warn('Failed to fetch activities', {
90
+ workflowId,
91
+ phaseId,
92
+ error: error instanceof Error ? error.message : String(error)
93
+ });
94
+ return [];
95
+ }
96
+ }
97
+ /**
98
+ * Extract credentials from a single activity
99
+ */
100
+ function extractCredentialsFromActivity(activity, schema, workspaceId, enabled) {
101
+ const userId = extractUserId(activity, schema);
102
+ if (!userId) {
103
+ logger.debug('Activity has no user ID', { activityId: activity._id });
104
+ return null;
105
+ }
106
+ const email = extractFieldValue(activity, schema.fields.email);
107
+ const password = extractFieldValue(activity, schema.fields.password);
108
+ const botType = extractFieldValue(activity, schema.fields.botType);
109
+ // Email and password are required for a valid credential
110
+ if (!email || !password) {
111
+ logger.debug('Activity missing email/password', {
112
+ activityId: activity._id,
113
+ userId,
114
+ hasEmail: !!email,
115
+ hasPassword: !!password
116
+ });
117
+ return null;
118
+ }
119
+ return {
120
+ userId,
121
+ email,
122
+ password,
123
+ displayName: activity.name,
124
+ botType: botType || null,
125
+ enabled,
126
+ workspaceId
127
+ };
128
+ }
129
+ /**
130
+ * Extract user ID from activity's hailerProfile field
131
+ */
132
+ function extractUserId(activity, schema) {
133
+ const fields = activity.fields || {};
134
+ const fieldsAndValues = activity.fieldsAndValues || [];
135
+ const hailerProfileFieldId = schema.fields.hailerProfile;
136
+ // Try fields object format - by field key first
137
+ if (fields.hailerProfile) {
138
+ const value = fields.hailerProfile;
139
+ return normalizeUserId(value);
140
+ }
141
+ // Try fields object format - by field ID
142
+ if (hailerProfileFieldId) {
143
+ const profileField = fields[hailerProfileFieldId];
144
+ if (profileField) {
145
+ return normalizeUserId(profileField);
146
+ }
147
+ }
148
+ // Try fieldsAndValues array format
149
+ if (hailerProfileFieldId) {
150
+ const fav = fieldsAndValues.find(f => f.fieldId === hailerProfileFieldId);
151
+ if (fav?.value) {
152
+ return normalizeUserId(fav.value);
153
+ }
154
+ }
155
+ // Fallback: look for users field type in any field
156
+ for (const fieldValue of Object.values(fields)) {
157
+ if (isTypedUsersField(fieldValue)) {
158
+ const userId = normalizeUserId(fieldValue.value);
159
+ if (userId && looksLikeUserId(userId)) {
160
+ return userId;
161
+ }
162
+ }
163
+ }
164
+ return null;
165
+ }
166
+ /**
167
+ * Extract a field value from activity
168
+ */
169
+ function extractFieldValue(activity, fieldId) {
170
+ if (!fieldId)
171
+ return undefined;
172
+ const fields = activity.fields || {};
173
+ const fieldsAndValues = activity.fieldsAndValues || [];
174
+ // Try fields object format - by field ID
175
+ const field = fields[fieldId];
176
+ if (field !== undefined) {
177
+ // Handle typed field format {type, value}
178
+ if (isTypedField(field)) {
179
+ return field.value;
180
+ }
181
+ return field;
182
+ }
183
+ // Try fieldsAndValues array format
184
+ const fav = fieldsAndValues.find(f => f.fieldId === fieldId);
185
+ if (fav?.value !== undefined) {
186
+ return fav.value;
187
+ }
188
+ return undefined;
189
+ }
190
+ /**
191
+ * Normalize user ID from various formats
192
+ */
193
+ function normalizeUserId(value) {
194
+ if (typeof value === 'string') {
195
+ return value;
196
+ }
197
+ if (Array.isArray(value) && value.length > 0) {
198
+ return typeof value[0] === 'string' ? value[0] : null;
199
+ }
200
+ if (isTypedField(value)) {
201
+ return normalizeUserId(value.value);
202
+ }
203
+ return null;
204
+ }
205
+ /**
206
+ * Check if a string looks like a MongoDB ObjectId
207
+ */
208
+ function looksLikeUserId(value) {
209
+ return /^[a-f0-9]{24}$/i.test(value);
210
+ }
211
+ function isTypedField(value) {
212
+ return (typeof value === 'object' &&
213
+ value !== null &&
214
+ !Array.isArray(value) &&
215
+ 'value' in value);
216
+ }
217
+ function isTypedUsersField(value) {
218
+ return (isTypedField(value) &&
219
+ value.type === 'users');
220
+ }
221
+ /**
222
+ * Extract credentials from an activity (for hot-reload / webhook processing)
223
+ */
224
+ function extractCredentialsFromActivityData(activity, schema, workspaceId, enabled) {
225
+ return extractCredentialsFromActivity(activity, schema, workspaceId, enabled);
226
+ }
227
+ /**
228
+ * Extract just the user ID from an activity
229
+ */
230
+ function extractUserIdFromActivity(activity, schema) {
231
+ return extractUserId(activity, schema);
232
+ }
233
+ /**
234
+ * Extract just the bot type from an activity
235
+ */
236
+ function extractBotTypeFromActivity(activity, schema) {
237
+ return extractFieldValue(activity, schema.fields.botType);
238
+ }
239
+ //# sourceMappingURL=credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/workspace/credentials.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Workspace Isolation Layer
3
+ *
4
+ * Provides complete tenant isolation for client bots.
5
+ * Each workspace gets its own:
6
+ * - Schema (workflow/field IDs)
7
+ * - Credentials (bot email/password)
8
+ * - Bot state (enabled/disabled)
9
+ *
10
+ * Usage:
11
+ * import { getWorkspace, WorkspaceContext } from './workspace';
12
+ *
13
+ * const ctx = getWorkspace(workspaceId);
14
+ * await ctx.initialize(client);
15
+ * const creds = ctx.getOrchestratorCredentials();
16
+ */
17
+ export { WorkspaceContext, BotStateEntry, BotStateMap, getWorkspace, getExistingWorkspace, listWorkspaces, hasWorkspace, removeWorkspace, clearAllWorkspaces, getWorkspaceByWorkflowId, } from './context';
18
+ export { WorkspaceSchema, discoverSchema, discoverFieldIds, } from './schema';
19
+ export { BotCredentials, loadCredentials, extractCredentialsFromActivityData, extractUserIdFromActivity, extractBotTypeFromActivity, } from './credentials';
20
+ export { loadWorkspacesFromConfig, getOrLoadWorkspace, saveWorkspaceToConfig, } from './loader';
21
+ //# sourceMappingURL=index.d.ts.map