expxagents 0.24.2 → 0.25.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (693) hide show
  1. package/dist/cli/src/commands/info.d.ts +1 -2
  2. package/dist/cli/src/commands/login.d.ts +1 -2
  3. package/dist/cli/src/commands/logout.d.ts +1 -2
  4. package/dist/cli/src/commands/outdated.d.ts +1 -2
  5. package/dist/cli/src/commands/publish.d.ts +1 -2
  6. package/dist/cli/src/commands/registry-install.d.ts +1 -2
  7. package/dist/cli/src/commands/search.d.ts +1 -2
  8. package/dist/cli/src/commands/update.d.ts +1 -2
  9. package/dist/cli/src/commands/whoami.d.ts +1 -2
  10. package/package.json +1 -1
  11. package/assets/agents/_catalog.yaml +0 -35
  12. package/assets/agents/accounting/accountant.agent.md +0 -41
  13. package/assets/agents/accounting/audit-analyst.agent.md +0 -41
  14. package/assets/agents/accounting/financial-reporting.agent.md +0 -41
  15. package/assets/agents/accounting/fiscal-analyst.agent.md +0 -41
  16. package/assets/agents/accounting/payroll-specialist.agent.md +0 -41
  17. package/assets/agents/accounting/tax-compliance.agent.md +0 -41
  18. package/assets/agents/administrative/document-controller.agent.md +0 -41
  19. package/assets/agents/administrative/office-manager.agent.md +0 -41
  20. package/assets/agents/administrative/process-documentation-officer.agent.md +0 -41
  21. package/assets/agents/administrative/procurement-specialist.agent.md +0 -41
  22. package/assets/agents/board/board-report-writer.agent.md +0 -41
  23. package/assets/agents/board/business-intelligence.agent.md +0 -41
  24. package/assets/agents/board/governance-officer.agent.md +0 -41
  25. package/assets/agents/board/okr-manager.agent.md +0 -41
  26. package/assets/agents/board/risk-analyst.agent.md +0 -41
  27. package/assets/agents/board/strategic-advisor.agent.md +0 -41
  28. package/assets/agents/commercial/account-executive.agent.md +0 -41
  29. package/assets/agents/commercial/crm-manager.agent.md +0 -41
  30. package/assets/agents/commercial/pricing-strategist.agent.md +0 -41
  31. package/assets/agents/commercial/proposal-writer.agent.md +0 -41
  32. package/assets/agents/commercial/sdr.agent.md +0 -41
  33. package/assets/agents/compliance/compliance-officer.agent.md +0 -41
  34. package/assets/agents/compliance/data-privacy-specialist.agent.md +0 -41
  35. package/assets/agents/compliance/internal-auditor.agent.md +0 -41
  36. package/assets/agents/compliance/regulatory-monitor.agent.md +0 -41
  37. package/assets/agents/customer-success/churn-prevention.agent.md +0 -41
  38. package/assets/agents/customer-success/csm.agent.md +0 -41
  39. package/assets/agents/customer-success/expansion-manager.agent.md +0 -41
  40. package/assets/agents/customer-success/nps-analyst.agent.md +0 -41
  41. package/assets/agents/customer-success/renewal-manager.agent.md +0 -41
  42. package/assets/agents/development/android-developer.agent.md +0 -41
  43. package/assets/agents/development/backend-developer.agent.md +0 -42
  44. package/assets/agents/development/business-analyst.agent.md +0 -41
  45. package/assets/agents/development/code-reviewer.agent.md +0 -41
  46. package/assets/agents/development/cross-platform-mobile.agent.md +0 -41
  47. package/assets/agents/development/dba.agent.md +0 -41
  48. package/assets/agents/development/desktop-developer.agent.md +0 -41
  49. package/assets/agents/development/devops-engineer.agent.md +0 -41
  50. package/assets/agents/development/frontend-developer.agent.md +0 -103
  51. package/assets/agents/development/ios-developer.agent.md +0 -41
  52. package/assets/agents/development/product-manager.agent.md +0 -41
  53. package/assets/agents/development/qa-engineer.agent.md +0 -41
  54. package/assets/agents/development/scrum-master.agent.md +0 -41
  55. package/assets/agents/development/security-analyst.agent.md +0 -41
  56. package/assets/agents/development/tech-lead.agent.md +0 -42
  57. package/assets/agents/development/tech-writer.agent.md +0 -41
  58. package/assets/agents/development/ux-design-expert.agent.md +0 -108
  59. package/assets/agents/development/ux-designer.agent.md +0 -41
  60. package/assets/agents/finance/accounts-manager.agent.md +0 -41
  61. package/assets/agents/finance/billing-analyst.agent.md +0 -41
  62. package/assets/agents/finance/budget-planner.agent.md +0 -41
  63. package/assets/agents/finance/financial-controller.agent.md +0 -41
  64. package/assets/agents/hr/benefits-manager.agent.md +0 -41
  65. package/assets/agents/hr/hr-onboarding.agent.md +0 -41
  66. package/assets/agents/hr/interview-coordinator.agent.md +0 -41
  67. package/assets/agents/hr/people-culture.agent.md +0 -41
  68. package/assets/agents/hr/performance-analyst.agent.md +0 -41
  69. package/assets/agents/hr/recruiter.agent.md +0 -41
  70. package/assets/agents/implantation/deployment-manager.agent.md +0 -41
  71. package/assets/agents/implantation/environment-specialist.agent.md +0 -41
  72. package/assets/agents/implantation/go-live-coordinator.agent.md +0 -41
  73. package/assets/agents/implantation/integration-specialist.agent.md +0 -41
  74. package/assets/agents/implantation/migration-specialist.agent.md +0 -41
  75. package/assets/agents/legal/contract-manager.agent.md +0 -41
  76. package/assets/agents/legal/ip-specialist.agent.md +0 -41
  77. package/assets/agents/legal/labor-attorney.agent.md +0 -41
  78. package/assets/agents/legal/legal-counsel.agent.md +0 -41
  79. package/assets/agents/marketing/brand-guardian.agent.md +0 -40
  80. package/assets/agents/marketing/content-creator.agent.md +0 -41
  81. package/assets/agents/marketing/email-marketing.agent.md +0 -41
  82. package/assets/agents/marketing/landing-page-builder.agent.md +0 -138
  83. package/assets/agents/marketing/marketing-analyst.agent.md +0 -41
  84. package/assets/agents/marketing/paid-ads-manager.agent.md +0 -41
  85. package/assets/agents/marketing/seo-specialist.agent.md +0 -41
  86. package/assets/agents/marketing/social-media-manager.agent.md +0 -41
  87. package/assets/agents/rnd/benchmark-analyst.agent.md +0 -41
  88. package/assets/agents/rnd/innovation-scout.agent.md +0 -41
  89. package/assets/agents/rnd/market-researcher.agent.md +0 -41
  90. package/assets/agents/rnd/product-analyst.agent.md +0 -41
  91. package/assets/agents/rnd/prototype-builder.agent.md +0 -41
  92. package/assets/agents/support/knowledge-base-manager.agent.md +0 -41
  93. package/assets/agents/support/l1-support.agent.md +0 -41
  94. package/assets/agents/support/l2-support.agent.md +0 -41
  95. package/assets/agents/support/l3-support.agent.md +0 -41
  96. package/assets/agents/support/sla-monitor.agent.md +0 -41
  97. package/assets/agents/training/assessment-creator.agent.md +0 -41
  98. package/assets/agents/training/onboarding-coach.agent.md +0 -41
  99. package/assets/agents/training/training-designer.agent.md +0 -41
  100. package/assets/agents/training/workshop-facilitator.agent.md +0 -41
  101. package/assets/core/best-practices/_catalog.yaml +0 -91
  102. package/assets/core/best-practices/api-documentation.md +0 -137
  103. package/assets/core/best-practices/blog-post.md +0 -86
  104. package/assets/core/best-practices/blog-seo.md +0 -91
  105. package/assets/core/best-practices/code-review.md +0 -97
  106. package/assets/core/best-practices/copywriting.md +0 -75
  107. package/assets/core/best-practices/data-analysis.md +0 -93
  108. package/assets/core/best-practices/deploy-checklist.md +0 -99
  109. package/assets/core/best-practices/email-newsletter.md +0 -84
  110. package/assets/core/best-practices/email-sales.md +0 -91
  111. package/assets/core/best-practices/fullstack-page-generation.md +0 -936
  112. package/assets/core/best-practices/image-design.md +0 -78
  113. package/assets/core/best-practices/instagram-feed.md +0 -70
  114. package/assets/core/best-practices/instagram-reels.md +0 -75
  115. package/assets/core/best-practices/instagram-stories.md +0 -68
  116. package/assets/core/best-practices/landing-page-react.md +0 -2263
  117. package/assets/core/best-practices/landing-page.md +0 -279
  118. package/assets/core/best-practices/linkedin-article.md +0 -83
  119. package/assets/core/best-practices/linkedin-post.md +0 -84
  120. package/assets/core/best-practices/researching.md +0 -89
  121. package/assets/core/best-practices/review.md +0 -95
  122. package/assets/core/best-practices/sprint-planning.md +0 -91
  123. package/assets/core/best-practices/strategist.md +0 -95
  124. package/assets/core/best-practices/technical-writing.md +0 -104
  125. package/assets/core/best-practices/twitter-post.md +0 -75
  126. package/assets/core/best-practices/twitter-thread.md +0 -92
  127. package/assets/core/best-practices/whatsapp-broadcast.md +0 -95
  128. package/assets/core/best-practices/youtube-script.md +0 -80
  129. package/assets/core/best-practices/youtube-shorts.md +0 -76
  130. package/assets/core/prompts/insight-hunter.prompt.md +0 -62
  131. package/assets/core/runner.pipeline.md +0 -200
  132. package/assets/core/skills.engine.md +0 -65
  133. package/assets/core/solution-architect.agent.md +0 -329
  134. package/assets/mcps/_catalog.yaml +0 -17
  135. package/assets/mcps/figma.mcp.yaml +0 -35
  136. package/assets/mcps/github.mcp.yaml +0 -44
  137. package/assets/mcps/linear.mcp.yaml +0 -37
  138. package/assets/mcps/notion.mcp.yaml +0 -37
  139. package/assets/mcps/pencil.mcp.yaml +0 -32
  140. package/assets/mcps/postgresql.mcp.yaml +0 -39
  141. package/assets/mcps/sentry.mcp.yaml +0 -41
  142. package/assets/mcps/slack.mcp.yaml +0 -37
  143. package/assets/mcps/vercel.mcp.yaml +0 -39
  144. package/assets/templates/_expxagents/_memory/company.md +0 -25
  145. package/assets/templates/_expxagents/_memory/preferences.md +0 -6
  146. package/assets/templates/squads/_memory/memories.md +0 -16
  147. package/dist/cli/src/__tests__/cli.test.d.ts +0 -1
  148. package/dist/cli/src/__tests__/cli.test.js +0 -23
  149. package/dist/cli/src/commands/__tests__/outdated.test.d.ts +0 -1
  150. package/dist/cli/src/commands/__tests__/outdated.test.js +0 -76
  151. package/dist/cli/src/mcp/__tests__/catalog.test.d.ts +0 -1
  152. package/dist/cli/src/mcp/__tests__/catalog.test.js +0 -101
  153. package/dist/cli/src/mcp/__tests__/detect.test.d.ts +0 -1
  154. package/dist/cli/src/mcp/__tests__/detect.test.js +0 -84
  155. package/dist/cli/src/mcp/__tests__/setup.test.d.ts +0 -1
  156. package/dist/cli/src/mcp/__tests__/setup.test.js +0 -75
  157. package/dist/cli/src/mcp/__tests__/validate.test.d.ts +0 -1
  158. package/dist/cli/src/mcp/__tests__/validate.test.js +0 -42
  159. package/dist/cli/src/pencil/__tests__/detect.test.d.ts +0 -1
  160. package/dist/cli/src/pencil/__tests__/detect.test.js +0 -71
  161. package/dist/cli/src/pencil/__tests__/property-mapper.test.d.ts +0 -1
  162. package/dist/cli/src/pencil/__tests__/property-mapper.test.js +0 -120
  163. package/dist/cli/src/pencil/__tests__/template-sync.test.d.ts +0 -1
  164. package/dist/cli/src/pencil/__tests__/template-sync.test.js +0 -95
  165. package/dist/cli/src/runners/__tests__/provider-registry.test.d.ts +0 -1
  166. package/dist/cli/src/runners/__tests__/provider-registry.test.js +0 -31
  167. package/dist/cli/src/runners/__tests__/provider-runner.test.d.ts +0 -1
  168. package/dist/cli/src/runners/__tests__/provider-runner.test.js +0 -86
  169. package/dist/cli/src/utils/__tests__/command-prefix.test.d.ts +0 -1
  170. package/dist/cli/src/utils/__tests__/command-prefix.test.js +0 -35
  171. package/dist/cli/src/utils/__tests__/global-install.test.d.ts +0 -1
  172. package/dist/cli/src/utils/__tests__/global-install.test.js +0 -25
  173. package/dist/dashboard/assets/BufferResource-RMf3hLtL.js +0 -185
  174. package/dist/dashboard/assets/CanvasRenderer-By9CeUeH.js +0 -1
  175. package/dist/dashboard/assets/JarvisView-DCkJVL5f.js +0 -1
  176. package/dist/dashboard/assets/RenderTargetSystem-Du3lfljq.js +0 -172
  177. package/dist/dashboard/assets/ThreeBackground-m9EgwJVc.js +0 -1
  178. package/dist/dashboard/assets/WebGLRenderer-BfDYJhYQ.js +0 -156
  179. package/dist/dashboard/assets/WebGPURenderer-CYzaDyV_.js +0 -41
  180. package/dist/dashboard/assets/browserAll-CFQKTPw8.js +0 -14
  181. package/dist/dashboard/assets/index-DPwnElYV.js +0 -1195
  182. package/dist/dashboard/assets/index-DtbIzZ5n.css +0 -1
  183. package/dist/dashboard/assets/three-BZk_I9Ly.js +0 -4057
  184. package/dist/dashboard/assets/webworkerAll-Cti2tnMb.js +0 -83
  185. package/dist/dashboard/index.html +0 -13
  186. package/dist/data/opensquad.db +0 -0
  187. package/dist/data/opensquad.db-shm +0 -0
  188. package/dist/data/opensquad.db-wal +0 -0
  189. package/dist/server/api/__tests__/cost-routes.test.d.ts +0 -2
  190. package/dist/server/api/__tests__/cost-routes.test.d.ts.map +0 -1
  191. package/dist/server/api/__tests__/cost-routes.test.js +0 -54
  192. package/dist/server/api/__tests__/cost-routes.test.js.map +0 -1
  193. package/dist/server/api/__tests__/files-routes.test.d.ts +0 -2
  194. package/dist/server/api/__tests__/files-routes.test.d.ts.map +0 -1
  195. package/dist/server/api/__tests__/files-routes.test.js +0 -85
  196. package/dist/server/api/__tests__/files-routes.test.js.map +0 -1
  197. package/dist/server/api/__tests__/graph-routes.test.d.ts +0 -2
  198. package/dist/server/api/__tests__/graph-routes.test.d.ts.map +0 -1
  199. package/dist/server/api/__tests__/graph-routes.test.js +0 -105
  200. package/dist/server/api/__tests__/graph-routes.test.js.map +0 -1
  201. package/dist/server/api/__tests__/health-routes.test.d.ts +0 -2
  202. package/dist/server/api/__tests__/health-routes.test.d.ts.map +0 -1
  203. package/dist/server/api/__tests__/health-routes.test.js +0 -22
  204. package/dist/server/api/__tests__/health-routes.test.js.map +0 -1
  205. package/dist/server/api/__tests__/integration-routes.test.d.ts +0 -2
  206. package/dist/server/api/__tests__/integration-routes.test.d.ts.map +0 -1
  207. package/dist/server/api/__tests__/integration-routes.test.js +0 -243
  208. package/dist/server/api/__tests__/integration-routes.test.js.map +0 -1
  209. package/dist/server/api/__tests__/kanban-routes.test.d.ts +0 -2
  210. package/dist/server/api/__tests__/kanban-routes.test.d.ts.map +0 -1
  211. package/dist/server/api/__tests__/kanban-routes.test.js +0 -316
  212. package/dist/server/api/__tests__/kanban-routes.test.js.map +0 -1
  213. package/dist/server/api/__tests__/log-routes.test.d.ts +0 -2
  214. package/dist/server/api/__tests__/log-routes.test.d.ts.map +0 -1
  215. package/dist/server/api/__tests__/log-routes.test.js +0 -35
  216. package/dist/server/api/__tests__/log-routes.test.js.map +0 -1
  217. package/dist/server/api/__tests__/orgchart-routes.test.d.ts +0 -2
  218. package/dist/server/api/__tests__/orgchart-routes.test.d.ts.map +0 -1
  219. package/dist/server/api/__tests__/orgchart-routes.test.js +0 -161
  220. package/dist/server/api/__tests__/orgchart-routes.test.js.map +0 -1
  221. package/dist/server/api/__tests__/settings-routes.test.d.ts +0 -2
  222. package/dist/server/api/__tests__/settings-routes.test.d.ts.map +0 -1
  223. package/dist/server/api/__tests__/settings-routes.test.js +0 -177
  224. package/dist/server/api/__tests__/settings-routes.test.js.map +0 -1
  225. package/dist/server/api/__tests__/system-routes.test.d.ts +0 -2
  226. package/dist/server/api/__tests__/system-routes.test.d.ts.map +0 -1
  227. package/dist/server/api/__tests__/system-routes.test.js +0 -79
  228. package/dist/server/api/__tests__/system-routes.test.js.map +0 -1
  229. package/dist/server/api/__tests__/team-routes.test.d.ts +0 -2
  230. package/dist/server/api/__tests__/team-routes.test.d.ts.map +0 -1
  231. package/dist/server/api/__tests__/team-routes.test.js +0 -116
  232. package/dist/server/api/__tests__/team-routes.test.js.map +0 -1
  233. package/dist/server/api/__tests__/webhook-routes.test.d.ts +0 -2
  234. package/dist/server/api/__tests__/webhook-routes.test.d.ts.map +0 -1
  235. package/dist/server/api/__tests__/webhook-routes.test.js +0 -111
  236. package/dist/server/api/__tests__/webhook-routes.test.js.map +0 -1
  237. package/dist/server/api/activity-routes.d.ts +0 -8
  238. package/dist/server/api/activity-routes.d.ts.map +0 -1
  239. package/dist/server/api/activity-routes.js +0 -34
  240. package/dist/server/api/activity-routes.js.map +0 -1
  241. package/dist/server/api/chat-api-routes.d.ts +0 -4
  242. package/dist/server/api/chat-api-routes.d.ts.map +0 -1
  243. package/dist/server/api/chat-api-routes.js +0 -28
  244. package/dist/server/api/chat-api-routes.js.map +0 -1
  245. package/dist/server/api/cost-routes.d.ts +0 -8
  246. package/dist/server/api/cost-routes.d.ts.map +0 -1
  247. package/dist/server/api/cost-routes.js +0 -39
  248. package/dist/server/api/cost-routes.js.map +0 -1
  249. package/dist/server/api/dashboard-routes.d.ts +0 -10
  250. package/dist/server/api/dashboard-routes.d.ts.map +0 -1
  251. package/dist/server/api/dashboard-routes.js +0 -128
  252. package/dist/server/api/dashboard-routes.js.map +0 -1
  253. package/dist/server/api/files-routes.d.ts +0 -5
  254. package/dist/server/api/files-routes.d.ts.map +0 -1
  255. package/dist/server/api/files-routes.js +0 -218
  256. package/dist/server/api/files-routes.js.map +0 -1
  257. package/dist/server/api/graph-routes.d.ts +0 -24
  258. package/dist/server/api/graph-routes.d.ts.map +0 -1
  259. package/dist/server/api/graph-routes.js +0 -208
  260. package/dist/server/api/graph-routes.js.map +0 -1
  261. package/dist/server/api/health-routes.d.ts +0 -9
  262. package/dist/server/api/health-routes.d.ts.map +0 -1
  263. package/dist/server/api/health-routes.js +0 -46
  264. package/dist/server/api/health-routes.js.map +0 -1
  265. package/dist/server/api/integration-routes.d.ts +0 -23
  266. package/dist/server/api/integration-routes.d.ts.map +0 -1
  267. package/dist/server/api/integration-routes.js +0 -326
  268. package/dist/server/api/integration-routes.js.map +0 -1
  269. package/dist/server/api/kanban-routes.d.ts +0 -8
  270. package/dist/server/api/kanban-routes.d.ts.map +0 -1
  271. package/dist/server/api/kanban-routes.js +0 -128
  272. package/dist/server/api/kanban-routes.js.map +0 -1
  273. package/dist/server/api/knowledge-routes.d.ts +0 -8
  274. package/dist/server/api/knowledge-routes.d.ts.map +0 -1
  275. package/dist/server/api/knowledge-routes.js +0 -82
  276. package/dist/server/api/knowledge-routes.js.map +0 -1
  277. package/dist/server/api/log-routes.d.ts +0 -8
  278. package/dist/server/api/log-routes.d.ts.map +0 -1
  279. package/dist/server/api/log-routes.js +0 -31
  280. package/dist/server/api/log-routes.js.map +0 -1
  281. package/dist/server/api/orgchart-routes.d.ts +0 -7
  282. package/dist/server/api/orgchart-routes.d.ts.map +0 -1
  283. package/dist/server/api/orgchart-routes.js +0 -154
  284. package/dist/server/api/orgchart-routes.js.map +0 -1
  285. package/dist/server/api/registry-routes.d.ts +0 -7
  286. package/dist/server/api/registry-routes.d.ts.map +0 -1
  287. package/dist/server/api/registry-routes.js +0 -51
  288. package/dist/server/api/registry-routes.js.map +0 -1
  289. package/dist/server/api/settings-routes.d.ts +0 -11
  290. package/dist/server/api/settings-routes.d.ts.map +0 -1
  291. package/dist/server/api/settings-routes.js +0 -167
  292. package/dist/server/api/settings-routes.js.map +0 -1
  293. package/dist/server/api/squads-routes.d.ts +0 -7
  294. package/dist/server/api/squads-routes.d.ts.map +0 -1
  295. package/dist/server/api/squads-routes.js +0 -165
  296. package/dist/server/api/squads-routes.js.map +0 -1
  297. package/dist/server/api/system-routes.d.ts +0 -9
  298. package/dist/server/api/system-routes.d.ts.map +0 -1
  299. package/dist/server/api/system-routes.js +0 -241
  300. package/dist/server/api/system-routes.js.map +0 -1
  301. package/dist/server/api/team-routes.d.ts +0 -8
  302. package/dist/server/api/team-routes.d.ts.map +0 -1
  303. package/dist/server/api/team-routes.js +0 -55
  304. package/dist/server/api/team-routes.js.map +0 -1
  305. package/dist/server/api/users-routes.d.ts +0 -8
  306. package/dist/server/api/users-routes.d.ts.map +0 -1
  307. package/dist/server/api/users-routes.js +0 -65
  308. package/dist/server/api/users-routes.js.map +0 -1
  309. package/dist/server/api/webhook-routes.d.ts +0 -9
  310. package/dist/server/api/webhook-routes.d.ts.map +0 -1
  311. package/dist/server/api/webhook-routes.js +0 -82
  312. package/dist/server/api/webhook-routes.js.map +0 -1
  313. package/dist/server/app.d.ts +0 -9
  314. package/dist/server/app.d.ts.map +0 -1
  315. package/dist/server/app.js +0 -263
  316. package/dist/server/app.js.map +0 -1
  317. package/dist/server/auth/auth-middleware.d.ts +0 -13
  318. package/dist/server/auth/auth-middleware.d.ts.map +0 -1
  319. package/dist/server/auth/auth-middleware.js +0 -25
  320. package/dist/server/auth/auth-middleware.js.map +0 -1
  321. package/dist/server/auth/auth-routes.d.ts +0 -9
  322. package/dist/server/auth/auth-routes.d.ts.map +0 -1
  323. package/dist/server/auth/auth-routes.js +0 -149
  324. package/dist/server/auth/auth-routes.js.map +0 -1
  325. package/dist/server/auth/jwt.d.ts +0 -14
  326. package/dist/server/auth/jwt.d.ts.map +0 -1
  327. package/dist/server/auth/jwt.js +0 -16
  328. package/dist/server/auth/jwt.js.map +0 -1
  329. package/dist/server/auth/password.d.ts +0 -3
  330. package/dist/server/auth/password.d.ts.map +0 -1
  331. package/dist/server/auth/password.js +0 -9
  332. package/dist/server/auth/password.js.map +0 -1
  333. package/dist/server/bridge/__tests__/chat-handler.test.d.ts +0 -2
  334. package/dist/server/bridge/__tests__/chat-handler.test.d.ts.map +0 -1
  335. package/dist/server/bridge/__tests__/chat-handler.test.js +0 -143
  336. package/dist/server/bridge/__tests__/chat-handler.test.js.map +0 -1
  337. package/dist/server/bridge/__tests__/chat-integration.test.d.ts +0 -2
  338. package/dist/server/bridge/__tests__/chat-integration.test.d.ts.map +0 -1
  339. package/dist/server/bridge/__tests__/chat-integration.test.js +0 -129
  340. package/dist/server/bridge/__tests__/chat-integration.test.js.map +0 -1
  341. package/dist/server/bridge/__tests__/claude-bridge.test.d.ts +0 -2
  342. package/dist/server/bridge/__tests__/claude-bridge.test.d.ts.map +0 -1
  343. package/dist/server/bridge/__tests__/claude-bridge.test.js +0 -300
  344. package/dist/server/bridge/__tests__/claude-bridge.test.js.map +0 -1
  345. package/dist/server/bridge/__tests__/conversation.test.d.ts +0 -2
  346. package/dist/server/bridge/__tests__/conversation.test.d.ts.map +0 -1
  347. package/dist/server/bridge/__tests__/conversation.test.js +0 -168
  348. package/dist/server/bridge/__tests__/conversation.test.js.map +0 -1
  349. package/dist/server/bridge/__tests__/registry.test.d.ts +0 -2
  350. package/dist/server/bridge/__tests__/registry.test.d.ts.map +0 -1
  351. package/dist/server/bridge/__tests__/registry.test.js +0 -45
  352. package/dist/server/bridge/__tests__/registry.test.js.map +0 -1
  353. package/dist/server/bridge/__tests__/stream-parser.test.d.ts +0 -2
  354. package/dist/server/bridge/__tests__/stream-parser.test.d.ts.map +0 -1
  355. package/dist/server/bridge/__tests__/stream-parser.test.js +0 -66
  356. package/dist/server/bridge/__tests__/stream-parser.test.js.map +0 -1
  357. package/dist/server/bridge/chat-handler.d.ts +0 -32
  358. package/dist/server/bridge/chat-handler.d.ts.map +0 -1
  359. package/dist/server/bridge/chat-handler.js +0 -356
  360. package/dist/server/bridge/chat-handler.js.map +0 -1
  361. package/dist/server/bridge/claude-bridge.d.ts +0 -21
  362. package/dist/server/bridge/claude-bridge.d.ts.map +0 -1
  363. package/dist/server/bridge/claude-bridge.js +0 -273
  364. package/dist/server/bridge/claude-bridge.js.map +0 -1
  365. package/dist/server/bridge/conversation.d.ts +0 -45
  366. package/dist/server/bridge/conversation.d.ts.map +0 -1
  367. package/dist/server/bridge/conversation.js +0 -78
  368. package/dist/server/bridge/conversation.js.map +0 -1
  369. package/dist/server/bridge/engine-manager.d.ts +0 -13
  370. package/dist/server/bridge/engine-manager.d.ts.map +0 -1
  371. package/dist/server/bridge/engine-manager.js +0 -54
  372. package/dist/server/bridge/engine-manager.js.map +0 -1
  373. package/dist/server/bridge/engine.d.ts +0 -37
  374. package/dist/server/bridge/engine.d.ts.map +0 -1
  375. package/dist/server/bridge/engine.js +0 -2
  376. package/dist/server/bridge/engine.js.map +0 -1
  377. package/dist/server/bridge/factory.d.ts +0 -4
  378. package/dist/server/bridge/factory.d.ts.map +0 -1
  379. package/dist/server/bridge/factory.js +0 -18
  380. package/dist/server/bridge/factory.js.map +0 -1
  381. package/dist/server/bridge/opencode-bridge.d.ts +0 -27
  382. package/dist/server/bridge/opencode-bridge.d.ts.map +0 -1
  383. package/dist/server/bridge/opencode-bridge.js +0 -163
  384. package/dist/server/bridge/opencode-bridge.js.map +0 -1
  385. package/dist/server/bridge/registry.d.ts +0 -19
  386. package/dist/server/bridge/registry.d.ts.map +0 -1
  387. package/dist/server/bridge/registry.js +0 -29
  388. package/dist/server/bridge/registry.js.map +0 -1
  389. package/dist/server/bridge/session-journal.d.ts +0 -25
  390. package/dist/server/bridge/session-journal.d.ts.map +0 -1
  391. package/dist/server/bridge/session-journal.js +0 -69
  392. package/dist/server/bridge/session-journal.js.map +0 -1
  393. package/dist/server/bridge/stream-parser.d.ts +0 -14
  394. package/dist/server/bridge/stream-parser.d.ts.map +0 -1
  395. package/dist/server/bridge/stream-parser.js +0 -26
  396. package/dist/server/bridge/stream-parser.js.map +0 -1
  397. package/dist/server/config/engine-config.d.ts +0 -4
  398. package/dist/server/config/engine-config.d.ts.map +0 -1
  399. package/dist/server/config/engine-config.js +0 -24
  400. package/dist/server/config/engine-config.js.map +0 -1
  401. package/dist/server/config.d.ts +0 -17
  402. package/dist/server/config.d.ts.map +0 -1
  403. package/dist/server/config.js +0 -39
  404. package/dist/server/config.js.map +0 -1
  405. package/dist/server/db/__tests__/chat-tables.test.d.ts +0 -2
  406. package/dist/server/db/__tests__/chat-tables.test.d.ts.map +0 -1
  407. package/dist/server/db/__tests__/chat-tables.test.js +0 -82
  408. package/dist/server/db/__tests__/chat-tables.test.js.map +0 -1
  409. package/dist/server/db/__tests__/email-schema.test.d.ts +0 -2
  410. package/dist/server/db/__tests__/email-schema.test.d.ts.map +0 -1
  411. package/dist/server/db/__tests__/email-schema.test.js +0 -53
  412. package/dist/server/db/__tests__/email-schema.test.js.map +0 -1
  413. package/dist/server/db/__tests__/scheduler-schema.test.d.ts +0 -2
  414. package/dist/server/db/__tests__/scheduler-schema.test.d.ts.map +0 -1
  415. package/dist/server/db/__tests__/scheduler-schema.test.js +0 -52
  416. package/dist/server/db/__tests__/scheduler-schema.test.js.map +0 -1
  417. package/dist/server/db/connection.d.ts +0 -4
  418. package/dist/server/db/connection.d.ts.map +0 -1
  419. package/dist/server/db/connection.js +0 -40
  420. package/dist/server/db/connection.js.map +0 -1
  421. package/dist/server/db/migrations.d.ts +0 -4
  422. package/dist/server/db/migrations.d.ts.map +0 -1
  423. package/dist/server/db/migrations.js +0 -47
  424. package/dist/server/db/migrations.js.map +0 -1
  425. package/dist/server/db/schema.d.ts +0 -2
  426. package/dist/server/db/schema.d.ts.map +0 -1
  427. package/dist/server/db/schema.js +0 -276
  428. package/dist/server/db/schema.js.map +0 -1
  429. package/dist/server/email/__tests__/campaign-routes.test.d.ts +0 -2
  430. package/dist/server/email/__tests__/campaign-routes.test.d.ts.map +0 -1
  431. package/dist/server/email/__tests__/campaign-routes.test.js +0 -216
  432. package/dist/server/email/__tests__/campaign-routes.test.js.map +0 -1
  433. package/dist/server/email/__tests__/campaign-service.test.d.ts +0 -2
  434. package/dist/server/email/__tests__/campaign-service.test.d.ts.map +0 -1
  435. package/dist/server/email/__tests__/campaign-service.test.js +0 -79
  436. package/dist/server/email/__tests__/campaign-service.test.js.map +0 -1
  437. package/dist/server/email/__tests__/email-queue-worker.test.d.ts +0 -2
  438. package/dist/server/email/__tests__/email-queue-worker.test.d.ts.map +0 -1
  439. package/dist/server/email/__tests__/email-queue-worker.test.js +0 -93
  440. package/dist/server/email/__tests__/email-queue-worker.test.js.map +0 -1
  441. package/dist/server/email/__tests__/email-utils.test.d.ts +0 -2
  442. package/dist/server/email/__tests__/email-utils.test.d.ts.map +0 -1
  443. package/dist/server/email/__tests__/email-utils.test.js +0 -36
  444. package/dist/server/email/__tests__/email-utils.test.js.map +0 -1
  445. package/dist/server/email/__tests__/lead-routes.test.d.ts +0 -2
  446. package/dist/server/email/__tests__/lead-routes.test.d.ts.map +0 -1
  447. package/dist/server/email/__tests__/lead-routes.test.js +0 -180
  448. package/dist/server/email/__tests__/lead-routes.test.js.map +0 -1
  449. package/dist/server/email/__tests__/lead-service.test.d.ts +0 -2
  450. package/dist/server/email/__tests__/lead-service.test.d.ts.map +0 -1
  451. package/dist/server/email/__tests__/lead-service.test.js +0 -113
  452. package/dist/server/email/__tests__/lead-service.test.js.map +0 -1
  453. package/dist/server/email/__tests__/ses-client.test.d.ts +0 -2
  454. package/dist/server/email/__tests__/ses-client.test.d.ts.map +0 -1
  455. package/dist/server/email/__tests__/ses-client.test.js +0 -48
  456. package/dist/server/email/__tests__/ses-client.test.js.map +0 -1
  457. package/dist/server/email/__tests__/sns-webhook.test.d.ts +0 -2
  458. package/dist/server/email/__tests__/sns-webhook.test.d.ts.map +0 -1
  459. package/dist/server/email/__tests__/sns-webhook.test.js +0 -40
  460. package/dist/server/email/__tests__/sns-webhook.test.js.map +0 -1
  461. package/dist/server/email/campaign-routes.d.ts +0 -8
  462. package/dist/server/email/campaign-routes.d.ts.map +0 -1
  463. package/dist/server/email/campaign-routes.js +0 -65
  464. package/dist/server/email/campaign-routes.js.map +0 -1
  465. package/dist/server/email/campaign-service.d.ts +0 -55
  466. package/dist/server/email/campaign-service.d.ts.map +0 -1
  467. package/dist/server/email/campaign-service.js +0 -89
  468. package/dist/server/email/campaign-service.js.map +0 -1
  469. package/dist/server/email/email-queue-worker.d.ts +0 -27
  470. package/dist/server/email/email-queue-worker.d.ts.map +0 -1
  471. package/dist/server/email/email-queue-worker.js +0 -119
  472. package/dist/server/email/email-queue-worker.js.map +0 -1
  473. package/dist/server/email/email-utils.d.ts +0 -5
  474. package/dist/server/email/email-utils.d.ts.map +0 -1
  475. package/dist/server/email/email-utils.js +0 -24
  476. package/dist/server/email/email-utils.js.map +0 -1
  477. package/dist/server/email/lead-routes.d.ts +0 -8
  478. package/dist/server/email/lead-routes.d.ts.map +0 -1
  479. package/dist/server/email/lead-routes.js +0 -56
  480. package/dist/server/email/lead-routes.js.map +0 -1
  481. package/dist/server/email/lead-service.d.ts +0 -66
  482. package/dist/server/email/lead-service.d.ts.map +0 -1
  483. package/dist/server/email/lead-service.js +0 -138
  484. package/dist/server/email/lead-service.js.map +0 -1
  485. package/dist/server/email/ses-client.d.ts +0 -27
  486. package/dist/server/email/ses-client.d.ts.map +0 -1
  487. package/dist/server/email/ses-client.js +0 -44
  488. package/dist/server/email/ses-client.js.map +0 -1
  489. package/dist/server/email/sns-webhook.d.ts +0 -10
  490. package/dist/server/email/sns-webhook.d.ts.map +0 -1
  491. package/dist/server/email/sns-webhook.js +0 -73
  492. package/dist/server/email/sns-webhook.js.map +0 -1
  493. package/dist/server/index.d.ts +0 -2
  494. package/dist/server/index.d.ts.map +0 -1
  495. package/dist/server/index.js +0 -36
  496. package/dist/server/index.js.map +0 -1
  497. package/dist/server/mcp/expxagents-mcp.d.ts +0 -2
  498. package/dist/server/mcp/expxagents-mcp.d.ts.map +0 -1
  499. package/dist/server/mcp/expxagents-mcp.js +0 -230
  500. package/dist/server/mcp/expxagents-mcp.js.map +0 -1
  501. package/dist/server/routes/__tests__/conversations.test.d.ts +0 -2
  502. package/dist/server/routes/__tests__/conversations.test.d.ts.map +0 -1
  503. package/dist/server/routes/__tests__/conversations.test.js +0 -111
  504. package/dist/server/routes/__tests__/conversations.test.js.map +0 -1
  505. package/dist/server/routes/conversations.d.ts +0 -8
  506. package/dist/server/routes/conversations.d.ts.map +0 -1
  507. package/dist/server/routes/conversations.js +0 -36
  508. package/dist/server/routes/conversations.js.map +0 -1
  509. package/dist/server/scheduler/__tests__/job-runner.test.d.ts +0 -2
  510. package/dist/server/scheduler/__tests__/job-runner.test.d.ts.map +0 -1
  511. package/dist/server/scheduler/__tests__/job-runner.test.js +0 -488
  512. package/dist/server/scheduler/__tests__/job-runner.test.js.map +0 -1
  513. package/dist/server/scheduler/__tests__/scheduler-routes.test.d.ts +0 -2
  514. package/dist/server/scheduler/__tests__/scheduler-routes.test.d.ts.map +0 -1
  515. package/dist/server/scheduler/__tests__/scheduler-routes.test.js +0 -167
  516. package/dist/server/scheduler/__tests__/scheduler-routes.test.js.map +0 -1
  517. package/dist/server/scheduler/__tests__/scheduler-service.test.d.ts +0 -2
  518. package/dist/server/scheduler/__tests__/scheduler-service.test.d.ts.map +0 -1
  519. package/dist/server/scheduler/__tests__/scheduler-service.test.js +0 -207
  520. package/dist/server/scheduler/__tests__/scheduler-service.test.js.map +0 -1
  521. package/dist/server/scheduler/job-runner.d.ts +0 -73
  522. package/dist/server/scheduler/job-runner.d.ts.map +0 -1
  523. package/dist/server/scheduler/job-runner.js +0 -407
  524. package/dist/server/scheduler/job-runner.js.map +0 -1
  525. package/dist/server/scheduler/scheduler-routes.d.ts +0 -10
  526. package/dist/server/scheduler/scheduler-routes.d.ts.map +0 -1
  527. package/dist/server/scheduler/scheduler-routes.js +0 -105
  528. package/dist/server/scheduler/scheduler-routes.js.map +0 -1
  529. package/dist/server/scheduler/scheduler-service.d.ts +0 -55
  530. package/dist/server/scheduler/scheduler-service.d.ts.map +0 -1
  531. package/dist/server/scheduler/scheduler-service.js +0 -271
  532. package/dist/server/scheduler/scheduler-service.js.map +0 -1
  533. package/dist/server/services/__tests__/cost-service.test.d.ts +0 -2
  534. package/dist/server/services/__tests__/cost-service.test.d.ts.map +0 -1
  535. package/dist/server/services/__tests__/cost-service.test.js +0 -72
  536. package/dist/server/services/__tests__/cost-service.test.js.map +0 -1
  537. package/dist/server/services/__tests__/execution-log-service.test.d.ts +0 -2
  538. package/dist/server/services/__tests__/execution-log-service.test.d.ts.map +0 -1
  539. package/dist/server/services/__tests__/execution-log-service.test.js +0 -40
  540. package/dist/server/services/__tests__/execution-log-service.test.js.map +0 -1
  541. package/dist/server/services/__tests__/integration-registry.test.d.ts +0 -2
  542. package/dist/server/services/__tests__/integration-registry.test.d.ts.map +0 -1
  543. package/dist/server/services/__tests__/integration-registry.test.js +0 -28
  544. package/dist/server/services/__tests__/integration-registry.test.js.map +0 -1
  545. package/dist/server/services/__tests__/log-service.test.d.ts +0 -2
  546. package/dist/server/services/__tests__/log-service.test.d.ts.map +0 -1
  547. package/dist/server/services/__tests__/log-service.test.js +0 -49
  548. package/dist/server/services/__tests__/log-service.test.js.map +0 -1
  549. package/dist/server/services/__tests__/pipeline-task-service.test.d.ts +0 -2
  550. package/dist/server/services/__tests__/pipeline-task-service.test.d.ts.map +0 -1
  551. package/dist/server/services/__tests__/pipeline-task-service.test.js +0 -268
  552. package/dist/server/services/__tests__/pipeline-task-service.test.js.map +0 -1
  553. package/dist/server/services/__tests__/state-service.test.d.ts +0 -2
  554. package/dist/server/services/__tests__/state-service.test.d.ts.map +0 -1
  555. package/dist/server/services/__tests__/state-service.test.js +0 -136
  556. package/dist/server/services/__tests__/state-service.test.js.map +0 -1
  557. package/dist/server/services/activity-service.d.ts +0 -35
  558. package/dist/server/services/activity-service.d.ts.map +0 -1
  559. package/dist/server/services/activity-service.js +0 -92
  560. package/dist/server/services/activity-service.js.map +0 -1
  561. package/dist/server/services/cost-service.d.ts +0 -55
  562. package/dist/server/services/cost-service.d.ts.map +0 -1
  563. package/dist/server/services/cost-service.js +0 -59
  564. package/dist/server/services/cost-service.js.map +0 -1
  565. package/dist/server/services/execution-log-service.d.ts +0 -20
  566. package/dist/server/services/execution-log-service.d.ts.map +0 -1
  567. package/dist/server/services/execution-log-service.js +0 -17
  568. package/dist/server/services/execution-log-service.js.map +0 -1
  569. package/dist/server/services/integration-registry.d.ts +0 -9
  570. package/dist/server/services/integration-registry.d.ts.map +0 -1
  571. package/dist/server/services/integration-registry.js +0 -14
  572. package/dist/server/services/integration-registry.js.map +0 -1
  573. package/dist/server/services/log-service.d.ts +0 -28
  574. package/dist/server/services/log-service.d.ts.map +0 -1
  575. package/dist/server/services/log-service.js +0 -34
  576. package/dist/server/services/log-service.js.map +0 -1
  577. package/dist/server/services/pipeline-task-service.d.ts +0 -79
  578. package/dist/server/services/pipeline-task-service.d.ts.map +0 -1
  579. package/dist/server/services/pipeline-task-service.js +0 -122
  580. package/dist/server/services/pipeline-task-service.js.map +0 -1
  581. package/dist/server/services/squad-registry.d.ts +0 -35
  582. package/dist/server/services/squad-registry.d.ts.map +0 -1
  583. package/dist/server/services/squad-registry.js +0 -141
  584. package/dist/server/services/squad-registry.js.map +0 -1
  585. package/dist/server/services/state-service.d.ts +0 -22
  586. package/dist/server/services/state-service.d.ts.map +0 -1
  587. package/dist/server/services/state-service.js +0 -114
  588. package/dist/server/services/state-service.js.map +0 -1
  589. package/dist/server/types/a2ui.d.ts +0 -27
  590. package/dist/server/types/a2ui.d.ts.map +0 -1
  591. package/dist/server/types/a2ui.js +0 -2
  592. package/dist/server/types/a2ui.js.map +0 -1
  593. package/dist/server/utils/find-free-port.d.ts +0 -2
  594. package/dist/server/utils/find-free-port.d.ts.map +0 -1
  595. package/dist/server/utils/find-free-port.js +0 -17
  596. package/dist/server/utils/find-free-port.js.map +0 -1
  597. package/dist/server/watcher/__tests__/file-watcher.test.d.ts +0 -2
  598. package/dist/server/watcher/__tests__/file-watcher.test.d.ts.map +0 -1
  599. package/dist/server/watcher/__tests__/file-watcher.test.js +0 -81
  600. package/dist/server/watcher/__tests__/file-watcher.test.js.map +0 -1
  601. package/dist/server/watcher/file-watcher.d.ts +0 -19
  602. package/dist/server/watcher/file-watcher.d.ts.map +0 -1
  603. package/dist/server/watcher/file-watcher.js +0 -105
  604. package/dist/server/watcher/file-watcher.js.map +0 -1
  605. package/dist/server/watcher/state-parser.d.ts +0 -77
  606. package/dist/server/watcher/state-parser.d.ts.map +0 -1
  607. package/dist/server/watcher/state-parser.js +0 -78
  608. package/dist/server/watcher/state-parser.js.map +0 -1
  609. package/dist/server/ws/ws-auth.d.ts +0 -4
  610. package/dist/server/ws/ws-auth.d.ts.map +0 -1
  611. package/dist/server/ws/ws-auth.js +0 -42
  612. package/dist/server/ws/ws-auth.js.map +0 -1
  613. package/dist/server/ws/ws-handler.d.ts +0 -12
  614. package/dist/server/ws/ws-handler.d.ts.map +0 -1
  615. package/dist/server/ws/ws-handler.js +0 -171
  616. package/dist/server/ws/ws-handler.js.map +0 -1
  617. package/dist/server/ws/ws-rooms.d.ts +0 -12
  618. package/dist/server/ws/ws-rooms.d.ts.map +0 -1
  619. package/dist/server/ws/ws-rooms.js +0 -52
  620. package/dist/server/ws/ws-rooms.js.map +0 -1
  621. package/node_modules/expxagents-knowledge/dist/config.d.ts +0 -4
  622. package/node_modules/expxagents-knowledge/dist/config.d.ts.map +0 -1
  623. package/node_modules/expxagents-knowledge/dist/config.js +0 -37
  624. package/node_modules/expxagents-knowledge/dist/config.js.map +0 -1
  625. package/node_modules/expxagents-knowledge/dist/db/connection.d.ts +0 -6
  626. package/node_modules/expxagents-knowledge/dist/db/connection.d.ts.map +0 -1
  627. package/node_modules/expxagents-knowledge/dist/db/connection.js +0 -69
  628. package/node_modules/expxagents-knowledge/dist/db/connection.js.map +0 -1
  629. package/node_modules/expxagents-knowledge/dist/db/migrations.d.ts +0 -3
  630. package/node_modules/expxagents-knowledge/dist/db/migrations.d.ts.map +0 -1
  631. package/node_modules/expxagents-knowledge/dist/db/migrations.js +0 -46
  632. package/node_modules/expxagents-knowledge/dist/db/migrations.js.map +0 -1
  633. package/node_modules/expxagents-knowledge/dist/db/schema.d.ts +0 -3
  634. package/node_modules/expxagents-knowledge/dist/db/schema.d.ts.map +0 -1
  635. package/node_modules/expxagents-knowledge/dist/db/schema.js +0 -79
  636. package/node_modules/expxagents-knowledge/dist/db/schema.js.map +0 -1
  637. package/node_modules/expxagents-knowledge/dist/index.d.ts +0 -16
  638. package/node_modules/expxagents-knowledge/dist/index.d.ts.map +0 -1
  639. package/node_modules/expxagents-knowledge/dist/index.js +0 -16
  640. package/node_modules/expxagents-knowledge/dist/index.js.map +0 -1
  641. package/node_modules/expxagents-knowledge/dist/ingest/chunker.d.ts +0 -10
  642. package/node_modules/expxagents-knowledge/dist/ingest/chunker.d.ts.map +0 -1
  643. package/node_modules/expxagents-knowledge/dist/ingest/chunker.js +0 -221
  644. package/node_modules/expxagents-knowledge/dist/ingest/chunker.js.map +0 -1
  645. package/node_modules/expxagents-knowledge/dist/ingest/document-loader.d.ts +0 -4
  646. package/node_modules/expxagents-knowledge/dist/ingest/document-loader.d.ts.map +0 -1
  647. package/node_modules/expxagents-knowledge/dist/ingest/document-loader.js +0 -56
  648. package/node_modules/expxagents-knowledge/dist/ingest/document-loader.js.map +0 -1
  649. package/node_modules/expxagents-knowledge/dist/ingest/embedder.d.ts +0 -4
  650. package/node_modules/expxagents-knowledge/dist/ingest/embedder.d.ts.map +0 -1
  651. package/node_modules/expxagents-knowledge/dist/ingest/embedder.js +0 -25
  652. package/node_modules/expxagents-knowledge/dist/ingest/embedder.js.map +0 -1
  653. package/node_modules/expxagents-knowledge/dist/ingest/entity-extractor.d.ts +0 -21
  654. package/node_modules/expxagents-knowledge/dist/ingest/entity-extractor.d.ts.map +0 -1
  655. package/node_modules/expxagents-knowledge/dist/ingest/entity-extractor.js +0 -54
  656. package/node_modules/expxagents-knowledge/dist/ingest/entity-extractor.js.map +0 -1
  657. package/node_modules/expxagents-knowledge/dist/ingest/extraction-queue.d.ts +0 -16
  658. package/node_modules/expxagents-knowledge/dist/ingest/extraction-queue.d.ts.map +0 -1
  659. package/node_modules/expxagents-knowledge/dist/ingest/extraction-queue.js +0 -49
  660. package/node_modules/expxagents-knowledge/dist/ingest/extraction-queue.js.map +0 -1
  661. package/node_modules/expxagents-knowledge/dist/ingest/pdf-extractor.d.ts +0 -9
  662. package/node_modules/expxagents-knowledge/dist/ingest/pdf-extractor.d.ts.map +0 -1
  663. package/node_modules/expxagents-knowledge/dist/ingest/pdf-extractor.js +0 -116
  664. package/node_modules/expxagents-knowledge/dist/ingest/pdf-extractor.js.map +0 -1
  665. package/node_modules/expxagents-knowledge/dist/ingest/pipeline.d.ts +0 -27
  666. package/node_modules/expxagents-knowledge/dist/ingest/pipeline.d.ts.map +0 -1
  667. package/node_modules/expxagents-knowledge/dist/ingest/pipeline.js +0 -92
  668. package/node_modules/expxagents-knowledge/dist/ingest/pipeline.js.map +0 -1
  669. package/node_modules/expxagents-knowledge/dist/query/graph-traversal.d.ts +0 -41
  670. package/node_modules/expxagents-knowledge/dist/query/graph-traversal.d.ts.map +0 -1
  671. package/node_modules/expxagents-knowledge/dist/query/graph-traversal.js +0 -62
  672. package/node_modules/expxagents-knowledge/dist/query/graph-traversal.js.map +0 -1
  673. package/node_modules/expxagents-knowledge/dist/query/knowledge-query.d.ts +0 -31
  674. package/node_modules/expxagents-knowledge/dist/query/knowledge-query.d.ts.map +0 -1
  675. package/node_modules/expxagents-knowledge/dist/query/knowledge-query.js +0 -106
  676. package/node_modules/expxagents-knowledge/dist/query/knowledge-query.js.map +0 -1
  677. package/node_modules/expxagents-knowledge/dist/query/vector-search.d.ts +0 -26
  678. package/node_modules/expxagents-knowledge/dist/query/vector-search.d.ts.map +0 -1
  679. package/node_modules/expxagents-knowledge/dist/query/vector-search.js +0 -57
  680. package/node_modules/expxagents-knowledge/dist/query/vector-search.js.map +0 -1
  681. package/node_modules/expxagents-knowledge/dist/sources/agent-output.d.ts +0 -10
  682. package/node_modules/expxagents-knowledge/dist/sources/agent-output.d.ts.map +0 -1
  683. package/node_modules/expxagents-knowledge/dist/sources/agent-output.js +0 -29
  684. package/node_modules/expxagents-knowledge/dist/sources/agent-output.js.map +0 -1
  685. package/node_modules/expxagents-knowledge/dist/sources/watcher.d.ts +0 -6
  686. package/node_modules/expxagents-knowledge/dist/sources/watcher.d.ts.map +0 -1
  687. package/node_modules/expxagents-knowledge/dist/sources/watcher.js +0 -42
  688. package/node_modules/expxagents-knowledge/dist/sources/watcher.js.map +0 -1
  689. package/node_modules/expxagents-knowledge/dist/types.d.ts +0 -138
  690. package/node_modules/expxagents-knowledge/dist/types.d.ts.map +0 -1
  691. package/node_modules/expxagents-knowledge/dist/types.js +0 -2
  692. package/node_modules/expxagents-knowledge/dist/types.js.map +0 -1
  693. package/node_modules/expxagents-knowledge/package.json +0 -7
@@ -1,165 +0,0 @@
1
- import fs from 'node:fs';
2
- import path from 'node:path';
3
- import { parse as parseYaml } from 'yaml';
4
- function findSquadDir(squadsDir, code) {
5
- if (!fs.existsSync(squadsDir))
6
- return null;
7
- const matches = [];
8
- function walk(dir, depth) {
9
- if (depth > 4)
10
- return;
11
- const yamlPath = path.join(dir, 'squad.yaml');
12
- if (fs.existsSync(yamlPath)) {
13
- try {
14
- const raw = fs.readFileSync(yamlPath, 'utf-8');
15
- const parsed = parseYaml(raw);
16
- if (parsed?.squad?.code === code)
17
- matches.push(dir);
18
- }
19
- catch { /* skip */ }
20
- return;
21
- }
22
- let entries;
23
- try {
24
- entries = fs.readdirSync(dir, { withFileTypes: true });
25
- }
26
- catch {
27
- return;
28
- }
29
- for (const entry of entries) {
30
- if (!entry.isDirectory())
31
- continue;
32
- if (entry.name.startsWith('.') || entry.name.startsWith('_'))
33
- continue;
34
- walk(path.join(dir, entry.name), depth + 1);
35
- }
36
- }
37
- walk(squadsDir, 0);
38
- return matches[0] ?? null;
39
- }
40
- function discoverSquads(squadsDir) {
41
- if (!fs.existsSync(squadsDir))
42
- return [];
43
- const squads = [];
44
- function walk(dir, depth) {
45
- if (depth > 4)
46
- return;
47
- let entries;
48
- try {
49
- entries = fs.readdirSync(dir, { withFileTypes: true });
50
- }
51
- catch {
52
- return;
53
- }
54
- for (const entry of entries) {
55
- if (!entry.isDirectory())
56
- continue;
57
- if (entry.name.startsWith('.') || entry.name.startsWith('_'))
58
- continue;
59
- const fullPath = path.join(dir, entry.name);
60
- const yamlPath = path.join(fullPath, 'squad.yaml');
61
- if (fs.existsSync(yamlPath)) {
62
- // Squad directory — parse and push, don't recurse further
63
- try {
64
- const raw = fs.readFileSync(yamlPath, 'utf-8');
65
- const parsed = parseYaml(raw);
66
- const s = parsed?.squad;
67
- if (s) {
68
- const rawSteps = s.pipeline?.steps;
69
- const steps = Array.isArray(rawSteps)
70
- ? rawSteps.map((st) => ({
71
- id: st.id || '',
72
- agent: st.agent || '',
73
- label: st.label || '',
74
- ...(st.deliverFrom ? { deliverFrom: st.deliverFrom } : {}),
75
- }))
76
- : [];
77
- squads.push({
78
- code: typeof s.code === 'string' ? s.code : entry.name,
79
- ...(typeof s.setor === 'string' ? { setor: s.setor } : {}),
80
- ...(typeof s.grupo === 'string' ? { grupo: s.grupo } : {}),
81
- ...(typeof s.sessao === 'string' ? { sessao: s.sessao } : {}),
82
- ...(typeof s.group === 'string' ? { group: s.group } : {}),
83
- name: typeof s.name === 'string' ? s.name : entry.name,
84
- description: typeof s.description === 'string' ? s.description : '',
85
- icon: typeof s.icon === 'string' ? s.icon : '📋',
86
- agents: Array.isArray(s.agents)
87
- ? s.agents.map((a) => ({
88
- id: a.id || a,
89
- name: a.name || a.id || a,
90
- icon: a.icon || 'robot',
91
- ...(a.avatar ? { avatar: a.avatar } : {}),
92
- }))
93
- : [],
94
- pipeline: { steps },
95
- });
96
- }
97
- }
98
- catch {
99
- squads.push({
100
- code: entry.name,
101
- name: entry.name,
102
- description: '',
103
- icon: '📋',
104
- agents: [],
105
- pipeline: { steps: [] },
106
- });
107
- }
108
- // Do NOT recurse into squad dirs
109
- }
110
- else {
111
- // Not a squad dir — recurse to find nested squads
112
- walk(fullPath, depth + 1);
113
- }
114
- }
115
- }
116
- walk(squadsDir, 0);
117
- return squads;
118
- }
119
- export async function squadsRoutes(app, opts) {
120
- const { squadsDir } = opts;
121
- // GET /api/squads
122
- app.get('/api/squads', { preHandler: [app.requireAuth] }, async () => {
123
- return { squads: discoverSquads(squadsDir) };
124
- });
125
- // GET /api/squads/:name
126
- app.get('/api/squads/:name', { preHandler: [app.requireAuth] }, async (request, reply) => {
127
- const { name } = request.params;
128
- const squadDir = findSquadDir(squadsDir, name);
129
- if (!squadDir) {
130
- return reply.code(404).send({ error: 'Squad not found' });
131
- }
132
- const squads = discoverSquads(squadsDir);
133
- const squad = squads.find((s) => s.code === name);
134
- let state = null;
135
- const statePath = path.join(squadDir, 'state.json');
136
- if (fs.existsSync(statePath)) {
137
- try {
138
- state = JSON.parse(fs.readFileSync(statePath, 'utf-8'));
139
- }
140
- catch {
141
- // Skip invalid JSON
142
- }
143
- }
144
- return { squad: squad || { code: name, name, description: '', icon: '📋', agents: [], pipeline: { steps: [] } }, state };
145
- });
146
- // GET /api/squads/:name/state
147
- app.get('/api/squads/:name/state', { preHandler: [app.requireAuth] }, async (request, reply) => {
148
- const { name } = request.params;
149
- const squadDir = findSquadDir(squadsDir, name);
150
- if (!squadDir) {
151
- return reply.code(404).send({ error: 'Squad not found' });
152
- }
153
- const statePath = path.join(squadDir, 'state.json');
154
- if (!fs.existsSync(statePath)) {
155
- return reply.code(404).send({ error: 'State not found' });
156
- }
157
- try {
158
- return JSON.parse(fs.readFileSync(statePath, 'utf-8'));
159
- }
160
- catch {
161
- return reply.code(500).send({ error: 'Invalid state file' });
162
- }
163
- });
164
- }
165
- //# sourceMappingURL=squads-routes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"squads-routes.js","sourceRoot":"","sources":["../../src/api/squads-routes.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import type { FastifyInstance, FastifyPluginOptions } from 'fastify';
2
- import type { EngineManager } from '../bridge/engine-manager.js';
3
- interface SystemRoutesOptions extends FastifyPluginOptions {
4
- packageVersion: string;
5
- engineManager?: EngineManager;
6
- }
7
- export declare function systemRoutes(app: FastifyInstance, opts: SystemRoutesOptions): Promise<void>;
8
- export {};
9
- //# sourceMappingURL=system-routes.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"system-routes.d.ts","sourceRoot":"","sources":["../../src/api/system-routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAOrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAMjE,UAAU,mBAAoB,SAAQ,oBAAoB;IACxD,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAuDD,wBAAsB,YAAY,CAChC,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,IAAI,CAAC,CA6Nf"}
@@ -1,241 +0,0 @@
1
- import { execFile, spawn } from 'node:child_process';
2
- import { promisify } from 'node:util';
3
- import fs from 'node:fs';
4
- import path from 'node:path';
5
- import { fileURLToPath } from 'node:url';
6
- import { getEngine } from '../config/engine-config.js';
7
- const execFileAsync = promisify(execFile);
8
- const __dirname = path.dirname(fileURLToPath(import.meta.url));
9
- /** Resolve the current installed version from package.json */
10
- function resolveCurrentVersion(envVersion) {
11
- // 1. Env var set by CLI (production)
12
- if (envVersion && envVersion !== '0.0.0')
13
- return envVersion;
14
- // 2. Walk up from this file to find expxagents package.json
15
- // Production: server/dist/api/system-routes.js → ../../package.json (name=expxagents)
16
- // Dev: server/src/api/system-routes.ts → ../../../cli/package.json
17
- let dir = __dirname;
18
- while (dir !== path.dirname(dir)) {
19
- const pkgPath = path.join(dir, 'package.json');
20
- if (fs.existsSync(pkgPath)) {
21
- try {
22
- const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));
23
- if (pkg.name === 'expxagents')
24
- return pkg.version ?? '0.0.0';
25
- }
26
- catch { /* continue */ }
27
- }
28
- dir = path.dirname(dir);
29
- }
30
- // 3. Dev fallback: try ../cli/package.json from project root
31
- try {
32
- const devCliPkg = path.join(__dirname, '..', '..', '..', 'cli', 'package.json');
33
- if (fs.existsSync(devCliPkg)) {
34
- const pkg = JSON.parse(fs.readFileSync(devCliPkg, 'utf-8'));
35
- if (pkg.name === 'expxagents')
36
- return pkg.version ?? '0.0.0';
37
- }
38
- }
39
- catch { /* ignore */ }
40
- return envVersion || '0.0.0';
41
- }
42
- async function fetchLatestVersion() {
43
- try {
44
- const { stdout } = await execFileAsync('npm', ['view', 'expxagents', 'version'], {
45
- timeout: 10_000,
46
- });
47
- return stdout.trim() || null;
48
- }
49
- catch {
50
- return null;
51
- }
52
- }
53
- function compareVersions(current, latest) {
54
- const c = current.split('.').map(Number);
55
- const l = latest.split('.').map(Number);
56
- for (let i = 0; i < 3; i++) {
57
- if ((l[i] ?? 0) > (c[i] ?? 0))
58
- return true;
59
- if ((l[i] ?? 0) < (c[i] ?? 0))
60
- return false;
61
- }
62
- return false;
63
- }
64
- export async function systemRoutes(app, opts) {
65
- const packageVersion = resolveCurrentVersion(opts.packageVersion);
66
- // GET /api/system/info — server discovery (no auth needed)
67
- app.get('/api/system/info', async (_request, reply) => {
68
- const address = app.server.address();
69
- const port = typeof address === 'string' ? address : address?.port ?? 3001;
70
- const proto = process.env.NODE_ENV === 'production' ? 'https' : 'http';
71
- const host = app.server._events?.request?._socket?.remoteAddress
72
- ?? _request.headers.host?.split(':')[0]
73
- ?? '127.0.0.1';
74
- return reply.send({
75
- port,
76
- url: `${proto}://${host}:${port}`,
77
- wsUrl: `${proto === 'https' ? 'wss' : 'ws'}://${host}:${port}`,
78
- version: packageVersion,
79
- engine: getEngine(),
80
- });
81
- });
82
- // PATCH /api/system/engine — hot-swap engine (no restart needed)
83
- app.patch('/api/system/engine', {
84
- preHandler: [app.requireAuth],
85
- }, async (request, reply) => {
86
- const { engine } = request.body ?? {};
87
- if (!engine || !['claude-code', 'opencode', 'auto'].includes(engine)) {
88
- return reply.code(400).send({ error: 'Invalid engine. Use: claude-code, opencode, or auto' });
89
- }
90
- const currentEngine = opts.engineManager?.engineType ?? getEngine();
91
- if (currentEngine === engine) {
92
- return reply.send({ ok: true, engine, message: 'Engine already set', restarted: false, hotSwap: false });
93
- }
94
- // Kill active sessions from old engine
95
- const activeSquads = opts.engineManager?.getActiveSquads() ?? [];
96
- console.log(`[system] Switching engine from "${currentEngine}" to "${engine}"...`);
97
- if (activeSquads.length > 0) {
98
- console.log(`[system] Aborting ${activeSquads.length} active session(s): ${activeSquads.join(', ')}`);
99
- }
100
- // Hot-swap the engine
101
- opts.engineManager?.switchEngine(engine);
102
- return reply.send({
103
- ok: true,
104
- engine,
105
- message: `Engine switched to ${engine}`,
106
- restarted: false,
107
- hotSwap: true,
108
- abortedSessions: activeSquads.length,
109
- });
110
- });
111
- // GET /api/system/models — list available models
112
- app.get('/api/system/models', async (_request, reply) => {
113
- const engine = opts.engineManager?.engineType ?? getEngine();
114
- if (engine === 'claude-code') {
115
- return reply.send({
116
- engine: 'claude-code',
117
- models: [
118
- { id: 'claude-opus-4-6', name: 'Claude Opus 4', provider: 'anthropic' },
119
- { id: 'claude-sonnet-4-6', name: 'Claude Sonnet 4', provider: 'anthropic' },
120
- { id: 'claude-haiku-4-5', name: 'Claude Haiku 4', provider: 'anthropic' },
121
- ],
122
- default: 'claude-sonnet-4-6',
123
- });
124
- }
125
- const opencodeUrl = process.env.OPENCODE_BASE_URL ?? 'http://127.0.0.1:4096';
126
- try {
127
- const res = await fetch(`${opencodeUrl}/provider`, {
128
- headers: { 'Content-Type': 'application/json' },
129
- });
130
- if (!res.ok) {
131
- return reply.code(502).send({ error: 'Failed to fetch models from OpenCode' });
132
- }
133
- const data = await res.json();
134
- const models = [];
135
- for (const provider of data.all) {
136
- for (const model of Object.values(provider.models)) {
137
- if (model.capabilities?.toolcall) {
138
- models.push({
139
- id: model.id,
140
- name: model.name,
141
- provider: provider.name,
142
- hasTools: true,
143
- cost: model.cost ?? { input: 0, output: 0 },
144
- });
145
- }
146
- }
147
- }
148
- const defaultModel = data.default?.default ?? Object.keys(data.all[0]?.models ?? {})[0] ?? '';
149
- return reply.send({
150
- engine: 'opencode',
151
- models,
152
- default: defaultModel,
153
- });
154
- }
155
- catch (err) {
156
- return reply.code(502).send({ error: `OpenCode unavailable: ${err instanceof Error ? err.message : String(err)}` });
157
- }
158
- });
159
- // GET /api/system/version — check current vs latest
160
- app.get('/api/system/version', {
161
- preHandler: [app.requireAuth],
162
- }, async (_request, reply) => {
163
- const latest = await fetchLatestVersion();
164
- const updateAvailable = latest ? compareVersions(packageVersion, latest) : false;
165
- return reply.send({
166
- current: packageVersion,
167
- latest: latest ?? packageVersion,
168
- updateAvailable,
169
- });
170
- });
171
- // POST /api/system/update — update and restart
172
- app.post('/api/system/update', {
173
- preHandler: [app.requireAuth],
174
- }, async (_request, reply) => {
175
- const latest = await fetchLatestVersion();
176
- if (!latest || !compareVersions(packageVersion, latest)) {
177
- return reply.send({ ok: false, message: 'Already up to date' });
178
- }
179
- reply.send({ ok: true, message: `Updating to ${latest}...` });
180
- // Run update and restart in background after response is sent
181
- setTimeout(async () => {
182
- try {
183
- const port = process.env.PORT ?? '3001';
184
- const cwd = process.cwd();
185
- const runtimeDir = path.join(cwd, '.expxagents');
186
- fs.mkdirSync(runtimeDir, { recursive: true });
187
- const logFile = path.join(runtimeDir, 'update.log');
188
- const scriptFile = path.join(runtimeDir, 'restart.sh');
189
- // Find npx absolute path so detached process can find it
190
- const { stdout: npxPath } = await execFileAsync('which', ['npx']);
191
- const npx = npxPath.trim();
192
- console.log(`[system] Preparing update to expxagents@${latest}...`);
193
- // Preserve DATA_DIR so the new process uses the same database
194
- const dataDir = process.env.DATA_DIR ?? '';
195
- // Write a self-contained restart script
196
- const script = [
197
- '#!/bin/sh',
198
- `LOG="${logFile}"`,
199
- '# Clear old version so the new CLI detects its own version',
200
- 'unset EXPXAGENTS_VERSION',
201
- `export DATA_DIR="${dataDir}"`,
202
- `echo "[$(date)] Starting update to expxagents@${latest}" > "$LOG"`,
203
- 'sleep 3',
204
- `echo "[$(date)] Running npx expxagents@${latest} server" >> "$LOG"`,
205
- `exec ${npx} --yes expxagents@${latest} server >> "$LOG" 2>&1`,
206
- ].join('\n');
207
- fs.writeFileSync(scriptFile, script, { mode: 0o755 });
208
- // Remove old version env var so it doesn't leak to new process
209
- const { EXPXAGENTS_VERSION: _, ...restEnv } = process.env;
210
- const cleanEnv = { ...restEnv, PORT: port };
211
- const child = spawn(scriptFile, [], {
212
- cwd,
213
- detached: true,
214
- stdio: 'ignore',
215
- env: cleanEnv,
216
- });
217
- child.unref();
218
- console.log(`[system] Restart script created at ${scriptFile}`);
219
- console.log(`[system] Log at ${logFile}`);
220
- console.log(`[system] Exiting current server...`);
221
- // Use exit code 120 to signal "update restart" — CLI won't auto-restart on non-zero codes
222
- process.exit(120);
223
- }
224
- catch (err) {
225
- console.error('[system] Update failed:', err);
226
- }
227
- }, 500);
228
- });
229
- // POST /api/system/restart — restart server (same version)
230
- app.post('/api/system/restart', {
231
- preHandler: [app.requireAuth],
232
- }, async (_request, reply) => {
233
- reply.send({ ok: true, message: 'Restarting server...' });
234
- setTimeout(() => {
235
- console.log('[system] Restart requested via dashboard');
236
- // Exit code 0 triggers CLI restart loop (same version)
237
- process.exit(0);
238
- }, 500);
239
- });
240
- }
241
- //# sourceMappingURL=system-routes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"system-routes.js","sourceRoot":"","sources":["../../src/api/system-routes.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import type { FastifyInstance, FastifyPluginOptions } from 'fastify';
2
- import type Database from 'better-sqlite3';
3
- interface TeamRoutesOptions extends FastifyPluginOptions {
4
- db: Database.Database;
5
- }
6
- export declare function teamRoutes(app: FastifyInstance, opts: TeamRoutesOptions): Promise<void>;
7
- export {};
8
- //# sourceMappingURL=team-routes.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"team-routes.d.ts","sourceRoot":"","sources":["../../src/api/team-routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AACrE,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAG3C,UAAU,iBAAkB,SAAQ,oBAAoB;IACtD,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;CACvB;AAgBD,wBAAsB,UAAU,CAC9B,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,IAAI,CAAC,CA6Ef"}
@@ -1,55 +0,0 @@
1
- import { randomBytes } from 'crypto';
2
- function generateId() {
3
- return `tm-${Date.now()}-${randomBytes(4).toString('hex')}`;
4
- }
5
- export async function teamRoutes(app, opts) {
6
- const { db } = opts;
7
- // GET /api/team — list all team members
8
- app.get('/api/team', {
9
- preHandler: [app.requireAuth],
10
- }, async (_request, reply) => {
11
- const rows = db.prepare('SELECT * FROM team_members ORDER BY name ASC').all();
12
- return reply.send({ members: rows });
13
- });
14
- // POST /api/team — create a team member
15
- app.post('/api/team', {
16
- preHandler: [app.requireAuth],
17
- }, async (request, reply) => {
18
- const { name, role, email, phone } = request.body;
19
- if (!name?.trim() || !role?.trim()) {
20
- return reply.status(400).send({ error: 'Name and role are required' });
21
- }
22
- const id = generateId();
23
- const now = new Date().toISOString();
24
- db.prepare('INSERT INTO team_members (id, name, role, email, phone, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?)').run(id, name.trim(), role.trim(), email?.trim() || null, phone?.trim() || null, now, now);
25
- const member = db.prepare('SELECT * FROM team_members WHERE id = ?').get(id);
26
- return reply.status(201).send({ member });
27
- });
28
- // PATCH /api/team/:id — update a team member
29
- app.patch('/api/team/:id', {
30
- preHandler: [app.requireAuth],
31
- }, async (request, reply) => {
32
- const { id } = request.params;
33
- const existing = db.prepare('SELECT * FROM team_members WHERE id = ?').get(id);
34
- if (!existing) {
35
- return reply.status(404).send({ error: 'Team member not found' });
36
- }
37
- const { name, role, email, phone } = request.body;
38
- const now = new Date().toISOString();
39
- db.prepare('UPDATE team_members SET name = ?, role = ?, email = ?, phone = ?, updated_at = ? WHERE id = ?').run(name?.trim() || existing.name, role?.trim() || existing.role, email !== undefined ? (email?.trim() || null) : existing.email, phone !== undefined ? (phone?.trim() || null) : existing.phone, now, id);
40
- const member = db.prepare('SELECT * FROM team_members WHERE id = ?').get(id);
41
- return reply.send({ member });
42
- });
43
- // DELETE /api/team/:id — delete a team member
44
- app.delete('/api/team/:id', {
45
- preHandler: [app.requireAuth],
46
- }, async (request, reply) => {
47
- const { id } = request.params;
48
- const result = db.prepare('DELETE FROM team_members WHERE id = ?').run(id);
49
- if (result.changes === 0) {
50
- return reply.status(404).send({ error: 'Team member not found' });
51
- }
52
- return reply.send({ ok: true });
53
- });
54
- }
55
- //# sourceMappingURL=team-routes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"team-routes.js","sourceRoot":"","sources":["../../src/api/team-routes.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import type { FastifyInstance, FastifyPluginOptions } from 'fastify';
2
- import type Database from 'better-sqlite3';
3
- interface UsersRoutesOptions extends FastifyPluginOptions {
4
- db: Database.Database;
5
- }
6
- export declare function usersRoutes(app: FastifyInstance, opts: UsersRoutesOptions): Promise<void>;
7
- export {};
8
- //# sourceMappingURL=users-routes.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"users-routes.d.ts","sourceRoot":"","sources":["../../src/api/users-routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AACrE,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAG3C,UAAU,kBAAmB,SAAQ,oBAAoB;IACvD,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;CACvB;AAWD,wBAAsB,WAAW,CAC/B,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC,IAAI,CAAC,CAgHf"}
@@ -1,65 +0,0 @@
1
- import bcrypt from 'bcrypt';
2
- export async function usersRoutes(app, opts) {
3
- const { db } = opts;
4
- // GET /api/users (admin only)
5
- app.get('/api/users', { preHandler: [app.requireAuth, app.requireRole('admin')] }, async () => {
6
- const users = db
7
- .prepare('SELECT id, username, email, role, created_at, last_login FROM users')
8
- .all();
9
- return { users };
10
- });
11
- // PATCH /api/users/:id (admin only)
12
- app.patch('/api/users/:id', { preHandler: [app.requireAuth, app.requireRole('admin')] }, async (request, reply) => {
13
- const { id } = request.params;
14
- const { role } = request.body;
15
- const validRoles = ['admin', 'operator', 'viewer'];
16
- if (!role || !validRoles.includes(role)) {
17
- return reply.code(400).send({ error: 'Invalid role. Must be admin, operator, or viewer.' });
18
- }
19
- const user = db.prepare('SELECT id FROM users WHERE id = ?').get(id);
20
- if (!user) {
21
- return reply.code(404).send({ error: 'User not found' });
22
- }
23
- db.prepare('UPDATE users SET role = ? WHERE id = ?').run(role, id);
24
- const updated = db
25
- .prepare('SELECT id, username, email, role, created_at, last_login FROM users WHERE id = ?')
26
- .get(id);
27
- return { user: updated };
28
- });
29
- // PATCH /api/users/:id/password (admin only)
30
- app.patch('/api/users/:id/password', { preHandler: [app.requireAuth, app.requireRole('admin')] }, async (request, reply) => {
31
- const { id } = request.params;
32
- const { password } = request.body;
33
- if (!password || password.length < 6) {
34
- return reply.code(400).send({ error: 'Password must be at least 6 characters' });
35
- }
36
- const user = db.prepare('SELECT id, username FROM users WHERE id = ?').get(id);
37
- if (!user) {
38
- return reply.code(404).send({ error: 'User not found' });
39
- }
40
- const hash = await bcrypt.hash(password, 12);
41
- db.prepare('UPDATE users SET password_hash = ? WHERE id = ?').run(hash, id);
42
- // Invalidate all sessions for this user
43
- db.prepare('DELETE FROM sessions WHERE user_id = ?').run(id);
44
- // Audit log
45
- db.prepare('INSERT INTO audit_log (user_id, action, details, created_at) VALUES (?, ?, ?, ?)').run(request.user.userId, 'change_password', JSON.stringify({ targetUserId: id, targetUsername: user.username }), new Date().toISOString());
46
- return { ok: true };
47
- });
48
- // DELETE /api/users/:id (admin only)
49
- app.delete('/api/users/:id', { preHandler: [app.requireAuth, app.requireRole('admin')] }, async (request, reply) => {
50
- const { id } = request.params;
51
- if (id === request.user.userId) {
52
- return reply.code(400).send({ error: 'Cannot delete yourself' });
53
- }
54
- const user = db.prepare('SELECT id FROM users WHERE id = ?').get(id);
55
- if (!user) {
56
- return reply.code(404).send({ error: 'User not found' });
57
- }
58
- db.prepare('DELETE FROM sessions WHERE user_id = ?').run(id);
59
- db.prepare('DELETE FROM users WHERE id = ?').run(id);
60
- // Audit log
61
- db.prepare('INSERT INTO audit_log (user_id, action, details, created_at) VALUES (?, ?, ?, ?)').run(request.user.userId, 'delete_user', JSON.stringify({ deletedUserId: id }), new Date().toISOString());
62
- return { ok: true };
63
- });
64
- }
65
- //# sourceMappingURL=users-routes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"users-routes.js","sourceRoot":"","sources":["../../src/api/users-routes.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import type { FastifyInstance, FastifyPluginOptions } from 'fastify';
2
- import type { JobRunner } from '../scheduler/job-runner.js';
3
- interface WebhookRoutesOptions extends FastifyPluginOptions {
4
- jobRunner: JobRunner;
5
- squadsDir: string;
6
- }
7
- export declare function webhookRoutes(app: FastifyInstance, opts: WebhookRoutesOptions): Promise<void>;
8
- export {};
9
- //# sourceMappingURL=webhook-routes.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"webhook-routes.d.ts","sourceRoot":"","sources":["../../src/api/webhook-routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAKrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAG5D,UAAU,oBAAqB,SAAQ,oBAAoB;IACzD,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AA2CD,wBAAsB,aAAa,CACjC,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAAC,IAAI,CAAC,CA8Cf"}