@agenticmail/enterprise 0.5.327 → 0.5.328

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 (866) hide show
  1. package/dist/dashboard/app.js +1 -1
  2. package/logs/cloudflared-error.log +6 -0
  3. package/logs/enterprise-out.log +1 -0
  4. package/package.json +1 -1
  5. package/src/admin/page-registry.ts +0 -290
  6. package/src/admin/routes.ts +0 -2968
  7. package/src/agent-tools/common.ts +0 -260
  8. package/src/agent-tools/index.ts +0 -542
  9. package/src/agent-tools/merge.ts +0 -62
  10. package/src/agent-tools/middleware.ts +0 -436
  11. package/src/agent-tools/schema/typebox.ts +0 -25
  12. package/src/agent-tools/security.ts +0 -352
  13. package/src/agent-tools/tool-resolver.ts +0 -1018
  14. package/src/agent-tools/tools/agenticmail.ts +0 -1017
  15. package/src/agent-tools/tools/bash.ts +0 -179
  16. package/src/agent-tools/tools/browser-tool.schema.ts +0 -112
  17. package/src/agent-tools/tools/browser-tool.ts +0 -388
  18. package/src/agent-tools/tools/browser.ts +0 -764
  19. package/src/agent-tools/tools/edit.ts +0 -100
  20. package/src/agent-tools/tools/enterprise-code-sandbox.ts +0 -395
  21. package/src/agent-tools/tools/enterprise-database.ts +0 -377
  22. package/src/agent-tools/tools/enterprise-diff.ts +0 -580
  23. package/src/agent-tools/tools/enterprise-documents.ts +0 -896
  24. package/src/agent-tools/tools/enterprise-http.ts +0 -485
  25. package/src/agent-tools/tools/enterprise-security-scan.ts +0 -528
  26. package/src/agent-tools/tools/enterprise-spreadsheet.ts +0 -825
  27. package/src/agent-tools/tools/glob.ts +0 -129
  28. package/src/agent-tools/tools/google/calendar.ts +0 -230
  29. package/src/agent-tools/tools/google/chat.ts +0 -725
  30. package/src/agent-tools/tools/google/contacts.ts +0 -209
  31. package/src/agent-tools/tools/google/docs.ts +0 -162
  32. package/src/agent-tools/tools/google/drive.ts +0 -392
  33. package/src/agent-tools/tools/google/forms.ts +0 -367
  34. package/src/agent-tools/tools/google/gmail.ts +0 -897
  35. package/src/agent-tools/tools/google/index.ts +0 -86
  36. package/src/agent-tools/tools/google/maps.ts +0 -543
  37. package/src/agent-tools/tools/google/meeting-voice.ts +0 -885
  38. package/src/agent-tools/tools/google/meetings.ts +0 -1094
  39. package/src/agent-tools/tools/google/sheets.ts +0 -215
  40. package/src/agent-tools/tools/google/slides.ts +0 -559
  41. package/src/agent-tools/tools/google/tasks.ts +0 -200
  42. package/src/agent-tools/tools/grep.ts +0 -178
  43. package/src/agent-tools/tools/integrations/_factory.ts +0 -102
  44. package/src/agent-tools/tools/integrations/activecampaign.ts +0 -14
  45. package/src/agent-tools/tools/integrations/adobe-sign.ts +0 -14
  46. package/src/agent-tools/tools/integrations/adp.ts +0 -14
  47. package/src/agent-tools/tools/integrations/airtable.ts +0 -14
  48. package/src/agent-tools/tools/integrations/apollo.ts +0 -14
  49. package/src/agent-tools/tools/integrations/asana.ts +0 -14
  50. package/src/agent-tools/tools/integrations/auth0.ts +0 -14
  51. package/src/agent-tools/tools/integrations/aws.ts +0 -14
  52. package/src/agent-tools/tools/integrations/azure-devops.ts +0 -14
  53. package/src/agent-tools/tools/integrations/bamboohr.ts +0 -14
  54. package/src/agent-tools/tools/integrations/basecamp.ts +0 -14
  55. package/src/agent-tools/tools/integrations/bigcommerce.ts +0 -14
  56. package/src/agent-tools/tools/integrations/bitbucket.ts +0 -14
  57. package/src/agent-tools/tools/integrations/box.ts +0 -14
  58. package/src/agent-tools/tools/integrations/brex.ts +0 -14
  59. package/src/agent-tools/tools/integrations/buffer.ts +0 -14
  60. package/src/agent-tools/tools/integrations/calendly.ts +0 -14
  61. package/src/agent-tools/tools/integrations/canva.ts +0 -14
  62. package/src/agent-tools/tools/integrations/chargebee.ts +0 -14
  63. package/src/agent-tools/tools/integrations/circleci.ts +0 -14
  64. package/src/agent-tools/tools/integrations/clickup.ts +0 -14
  65. package/src/agent-tools/tools/integrations/close.ts +0 -14
  66. package/src/agent-tools/tools/integrations/cloudflare.ts +0 -14
  67. package/src/agent-tools/tools/integrations/confluence.ts +0 -14
  68. package/src/agent-tools/tools/integrations/contentful.ts +0 -14
  69. package/src/agent-tools/tools/integrations/copper.ts +0 -14
  70. package/src/agent-tools/tools/integrations/crisp.ts +0 -14
  71. package/src/agent-tools/tools/integrations/crowdstrike.ts +0 -14
  72. package/src/agent-tools/tools/integrations/datadog.ts +0 -14
  73. package/src/agent-tools/tools/integrations/digitalocean.ts +0 -14
  74. package/src/agent-tools/tools/integrations/discord.ts +0 -14
  75. package/src/agent-tools/tools/integrations/docker.ts +0 -14
  76. package/src/agent-tools/tools/integrations/docusign.ts +0 -14
  77. package/src/agent-tools/tools/integrations/drift.ts +0 -14
  78. package/src/agent-tools/tools/integrations/dropbox.ts +0 -14
  79. package/src/agent-tools/tools/integrations/figma.ts +0 -14
  80. package/src/agent-tools/tools/integrations/firebase.ts +0 -14
  81. package/src/agent-tools/tools/integrations/flyio.ts +0 -14
  82. package/src/agent-tools/tools/integrations/freshbooks.ts +0 -14
  83. package/src/agent-tools/tools/integrations/freshdesk.ts +0 -14
  84. package/src/agent-tools/tools/integrations/freshsales.ts +0 -14
  85. package/src/agent-tools/tools/integrations/freshservice.ts +0 -14
  86. package/src/agent-tools/tools/integrations/front.ts +0 -14
  87. package/src/agent-tools/tools/integrations/github-actions.ts +0 -14
  88. package/src/agent-tools/tools/integrations/github.ts +0 -14
  89. package/src/agent-tools/tools/integrations/gitlab.ts +0 -14
  90. package/src/agent-tools/tools/integrations/gong.ts +0 -14
  91. package/src/agent-tools/tools/integrations/google-ads.ts +0 -14
  92. package/src/agent-tools/tools/integrations/google-analytics.ts +0 -14
  93. package/src/agent-tools/tools/integrations/google-cloud.ts +0 -14
  94. package/src/agent-tools/tools/integrations/gotomeeting.ts +0 -14
  95. package/src/agent-tools/tools/integrations/grafana.ts +0 -14
  96. package/src/agent-tools/tools/integrations/greenhouse.ts +0 -14
  97. package/src/agent-tools/tools/integrations/gusto.ts +0 -14
  98. package/src/agent-tools/tools/integrations/hashicorp-vault.ts +0 -14
  99. package/src/agent-tools/tools/integrations/heroku.ts +0 -14
  100. package/src/agent-tools/tools/integrations/hibob.ts +0 -14
  101. package/src/agent-tools/tools/integrations/hootsuite.ts +0 -14
  102. package/src/agent-tools/tools/integrations/hubspot.ts +0 -14
  103. package/src/agent-tools/tools/integrations/huggingface.ts +0 -14
  104. package/src/agent-tools/tools/integrations/index.ts +0 -474
  105. package/src/agent-tools/tools/integrations/intercom.ts +0 -14
  106. package/src/agent-tools/tools/integrations/jira.ts +0 -14
  107. package/src/agent-tools/tools/integrations/klaviyo.ts +0 -14
  108. package/src/agent-tools/tools/integrations/kubernetes.ts +0 -14
  109. package/src/agent-tools/tools/integrations/lattice.ts +0 -14
  110. package/src/agent-tools/tools/integrations/launchdarkly.ts +0 -14
  111. package/src/agent-tools/tools/integrations/lever.ts +0 -14
  112. package/src/agent-tools/tools/integrations/linear.ts +0 -14
  113. package/src/agent-tools/tools/integrations/linkedin.ts +0 -14
  114. package/src/agent-tools/tools/integrations/livechat.ts +0 -14
  115. package/src/agent-tools/tools/integrations/loom.ts +0 -14
  116. package/src/agent-tools/tools/integrations/mailchimp.ts +0 -14
  117. package/src/agent-tools/tools/integrations/mailgun.ts +0 -14
  118. package/src/agent-tools/tools/integrations/miro.ts +0 -14
  119. package/src/agent-tools/tools/integrations/mixpanel.ts +0 -14
  120. package/src/agent-tools/tools/integrations/monday.ts +0 -14
  121. package/src/agent-tools/tools/integrations/mongodb-atlas.ts +0 -14
  122. package/src/agent-tools/tools/integrations/neon.ts +0 -14
  123. package/src/agent-tools/tools/integrations/netlify.ts +0 -14
  124. package/src/agent-tools/tools/integrations/netsuite.ts +0 -14
  125. package/src/agent-tools/tools/integrations/newrelic.ts +0 -14
  126. package/src/agent-tools/tools/integrations/notion.ts +0 -14
  127. package/src/agent-tools/tools/integrations/okta.ts +0 -14
  128. package/src/agent-tools/tools/integrations/openai.ts +0 -14
  129. package/src/agent-tools/tools/integrations/opsgenie.ts +0 -14
  130. package/src/agent-tools/tools/integrations/outreach.ts +0 -14
  131. package/src/agent-tools/tools/integrations/paddle.ts +0 -14
  132. package/src/agent-tools/tools/integrations/pagerduty.ts +0 -14
  133. package/src/agent-tools/tools/integrations/pandadoc.ts +0 -14
  134. package/src/agent-tools/tools/integrations/paypal.ts +0 -14
  135. package/src/agent-tools/tools/integrations/personio.ts +0 -14
  136. package/src/agent-tools/tools/integrations/pinecone.ts +0 -14
  137. package/src/agent-tools/tools/integrations/pipedrive.ts +0 -14
  138. package/src/agent-tools/tools/integrations/plaid.ts +0 -14
  139. package/src/agent-tools/tools/integrations/postmark.ts +0 -14
  140. package/src/agent-tools/tools/integrations/power-automate.ts +0 -14
  141. package/src/agent-tools/tools/integrations/quickbooks.ts +0 -14
  142. package/src/agent-tools/tools/integrations/recurly.ts +0 -14
  143. package/src/agent-tools/tools/integrations/reddit.ts +0 -14
  144. package/src/agent-tools/tools/integrations/render.ts +0 -14
  145. package/src/agent-tools/tools/integrations/ringcentral.ts +0 -14
  146. package/src/agent-tools/tools/integrations/rippling.ts +0 -14
  147. package/src/agent-tools/tools/integrations/salesforce.ts +0 -14
  148. package/src/agent-tools/tools/integrations/salesloft.ts +0 -14
  149. package/src/agent-tools/tools/integrations/sanity.ts +0 -14
  150. package/src/agent-tools/tools/integrations/sap.ts +0 -14
  151. package/src/agent-tools/tools/integrations/segment.ts +0 -14
  152. package/src/agent-tools/tools/integrations/sendgrid.ts +0 -14
  153. package/src/agent-tools/tools/integrations/sentry.ts +0 -14
  154. package/src/agent-tools/tools/integrations/servicenow.ts +0 -14
  155. package/src/agent-tools/tools/integrations/shopify.ts +0 -14
  156. package/src/agent-tools/tools/integrations/shortcut.ts +0 -14
  157. package/src/agent-tools/tools/integrations/slack.ts +0 -14
  158. package/src/agent-tools/tools/integrations/smartsheet.ts +0 -14
  159. package/src/agent-tools/tools/integrations/snowflake.ts +0 -14
  160. package/src/agent-tools/tools/integrations/snyk.ts +0 -14
  161. package/src/agent-tools/tools/integrations/splunk.ts +0 -14
  162. package/src/agent-tools/tools/integrations/square.ts +0 -14
  163. package/src/agent-tools/tools/integrations/statuspage.ts +0 -14
  164. package/src/agent-tools/tools/integrations/stripe.ts +0 -14
  165. package/src/agent-tools/tools/integrations/supabase.ts +0 -14
  166. package/src/agent-tools/tools/integrations/teamwork.ts +0 -14
  167. package/src/agent-tools/tools/integrations/telegram.ts +0 -14
  168. package/src/agent-tools/tools/integrations/terraform.ts +0 -14
  169. package/src/agent-tools/tools/integrations/todoist.ts +0 -14
  170. package/src/agent-tools/tools/integrations/trello.ts +0 -14
  171. package/src/agent-tools/tools/integrations/twilio.ts +0 -14
  172. package/src/agent-tools/tools/integrations/twitter.ts +0 -14
  173. package/src/agent-tools/tools/integrations/vercel.ts +0 -14
  174. package/src/agent-tools/tools/integrations/weaviate.ts +0 -14
  175. package/src/agent-tools/tools/integrations/webex.ts +0 -14
  176. package/src/agent-tools/tools/integrations/webflow.ts +0 -14
  177. package/src/agent-tools/tools/integrations/whatsapp.ts +0 -14
  178. package/src/agent-tools/tools/integrations/whereby.ts +0 -14
  179. package/src/agent-tools/tools/integrations/woocommerce.ts +0 -14
  180. package/src/agent-tools/tools/integrations/wordpress.ts +0 -14
  181. package/src/agent-tools/tools/integrations/workday.ts +0 -14
  182. package/src/agent-tools/tools/integrations/wrike.ts +0 -14
  183. package/src/agent-tools/tools/integrations/xero.ts +0 -14
  184. package/src/agent-tools/tools/integrations/youtube.ts +0 -14
  185. package/src/agent-tools/tools/integrations/zendesk.ts +0 -14
  186. package/src/agent-tools/tools/integrations/zoho-crm.ts +0 -14
  187. package/src/agent-tools/tools/integrations/zoom.ts +0 -14
  188. package/src/agent-tools/tools/integrations/zuora.ts +0 -14
  189. package/src/agent-tools/tools/knowledge-search.ts +0 -318
  190. package/src/agent-tools/tools/local/coding.ts +0 -626
  191. package/src/agent-tools/tools/local/dependency-manager.ts +0 -647
  192. package/src/agent-tools/tools/local/file-edit.ts +0 -31
  193. package/src/agent-tools/tools/local/file-list.ts +0 -39
  194. package/src/agent-tools/tools/local/file-ops.ts +0 -48
  195. package/src/agent-tools/tools/local/file-read.ts +0 -39
  196. package/src/agent-tools/tools/local/file-search.ts +0 -46
  197. package/src/agent-tools/tools/local/file-write.ts +0 -28
  198. package/src/agent-tools/tools/local/filesystem.ts +0 -5
  199. package/src/agent-tools/tools/local/index.ts +0 -55
  200. package/src/agent-tools/tools/local/resolve-path.ts +0 -18
  201. package/src/agent-tools/tools/local/shell.ts +0 -277
  202. package/src/agent-tools/tools/local/system-info.ts +0 -29
  203. package/src/agent-tools/tools/management.ts +0 -425
  204. package/src/agent-tools/tools/mcp-bridge.ts +0 -142
  205. package/src/agent-tools/tools/mcp-server-tools.ts +0 -91
  206. package/src/agent-tools/tools/meeting-lifecycle.ts +0 -438
  207. package/src/agent-tools/tools/memory.ts +0 -509
  208. package/src/agent-tools/tools/messaging/index.ts +0 -6
  209. package/src/agent-tools/tools/messaging/telegram.ts +0 -167
  210. package/src/agent-tools/tools/messaging/whatsapp.ts +0 -651
  211. package/src/agent-tools/tools/microsoft/contacts.ts +0 -176
  212. package/src/agent-tools/tools/microsoft/excel-vba.ts +0 -331
  213. package/src/agent-tools/tools/microsoft/excel.ts +0 -261
  214. package/src/agent-tools/tools/microsoft/graph-api.ts +0 -161
  215. package/src/agent-tools/tools/microsoft/index.ts +0 -95
  216. package/src/agent-tools/tools/microsoft/onedrive.ts +0 -429
  217. package/src/agent-tools/tools/microsoft/onenote.ts +0 -186
  218. package/src/agent-tools/tools/microsoft/outlook-calendar.ts +0 -286
  219. package/src/agent-tools/tools/microsoft/outlook-mail.ts +0 -723
  220. package/src/agent-tools/tools/microsoft/planner.ts +0 -200
  221. package/src/agent-tools/tools/microsoft/powerbi.ts +0 -266
  222. package/src/agent-tools/tools/microsoft/powerpoint.ts +0 -186
  223. package/src/agent-tools/tools/microsoft/sharepoint.ts +0 -328
  224. package/src/agent-tools/tools/microsoft/teams.ts +0 -463
  225. package/src/agent-tools/tools/microsoft/todo.ts +0 -181
  226. package/src/agent-tools/tools/oauth-token-provider.ts +0 -101
  227. package/src/agent-tools/tools/read.ts +0 -160
  228. package/src/agent-tools/tools/visual-memory/capture.ts +0 -217
  229. package/src/agent-tools/tools/visual-memory/diff.ts +0 -283
  230. package/src/agent-tools/tools/visual-memory/index.ts +0 -698
  231. package/src/agent-tools/tools/visual-memory/phash.ts +0 -120
  232. package/src/agent-tools/tools/visual-memory/similarity.ts +0 -354
  233. package/src/agent-tools/tools/visual-memory/storage.ts +0 -534
  234. package/src/agent-tools/tools/visual-memory/types.ts +0 -100
  235. package/src/agent-tools/tools/web-fetch-utils.ts +0 -202
  236. package/src/agent-tools/tools/web-fetch.ts +0 -464
  237. package/src/agent-tools/tools/web-search.ts +0 -480
  238. package/src/agent-tools/tools/web-shared.ts +0 -232
  239. package/src/agent-tools/tools/write.ts +0 -68
  240. package/src/agent-tools/types.ts +0 -214
  241. package/src/agenticmail/index.ts +0 -34
  242. package/src/agenticmail/manager.ts +0 -253
  243. package/src/agenticmail/providers/google.ts +0 -391
  244. package/src/agenticmail/providers/imap.ts +0 -454
  245. package/src/agenticmail/providers/index.ts +0 -28
  246. package/src/agenticmail/providers/microsoft.ts +0 -260
  247. package/src/agenticmail/types.ts +0 -173
  248. package/src/auth/routes.ts +0 -1589
  249. package/src/browser/bridge-auth-registry.ts +0 -34
  250. package/src/browser/bridge-server.ts +0 -93
  251. package/src/browser/cdp.helpers.ts +0 -180
  252. package/src/browser/cdp.ts +0 -466
  253. package/src/browser/chrome.executables.ts +0 -625
  254. package/src/browser/chrome.profile-decoration.ts +0 -198
  255. package/src/browser/chrome.ts +0 -349
  256. package/src/browser/client-actions-core.ts +0 -259
  257. package/src/browser/client-actions-observe.ts +0 -184
  258. package/src/browser/client-actions-state.ts +0 -284
  259. package/src/browser/client-actions-types.ts +0 -16
  260. package/src/browser/client-actions-url.ts +0 -11
  261. package/src/browser/client-actions.ts +0 -4
  262. package/src/browser/client-fetch.ts +0 -253
  263. package/src/browser/client.ts +0 -337
  264. package/src/browser/config.ts +0 -301
  265. package/src/browser/constants.ts +0 -8
  266. package/src/browser/control-auth.ts +0 -94
  267. package/src/browser/control-service.ts +0 -81
  268. package/src/browser/csrf.ts +0 -87
  269. package/src/browser/enterprise-compat.ts +0 -562
  270. package/src/browser/extension-relay.ts +0 -834
  271. package/src/browser/http-auth.ts +0 -63
  272. package/src/browser/navigation-guard.ts +0 -50
  273. package/src/browser/paths.ts +0 -49
  274. package/src/browser/playwright.d.ts +0 -12
  275. package/src/browser/profiles-service.ts +0 -187
  276. package/src/browser/profiles.ts +0 -114
  277. package/src/browser/proxy-files.ts +0 -41
  278. package/src/browser/pw-ai-module.ts +0 -52
  279. package/src/browser/pw-ai-state.ts +0 -9
  280. package/src/browser/pw-ai.ts +0 -65
  281. package/src/browser/pw-role-snapshot.ts +0 -434
  282. package/src/browser/pw-session.ts +0 -810
  283. package/src/browser/pw-tools-core.activity.ts +0 -68
  284. package/src/browser/pw-tools-core.downloads.ts +0 -281
  285. package/src/browser/pw-tools-core.interactions.ts +0 -646
  286. package/src/browser/pw-tools-core.responses.ts +0 -124
  287. package/src/browser/pw-tools-core.shared.ts +0 -70
  288. package/src/browser/pw-tools-core.snapshot.ts +0 -213
  289. package/src/browser/pw-tools-core.state.ts +0 -209
  290. package/src/browser/pw-tools-core.storage.ts +0 -128
  291. package/src/browser/pw-tools-core.trace.ts +0 -37
  292. package/src/browser/pw-tools-core.ts +0 -8
  293. package/src/browser/resolved-config-refresh.ts +0 -59
  294. package/src/browser/routes/agent.act.shared.ts +0 -52
  295. package/src/browser/routes/agent.act.ts +0 -575
  296. package/src/browser/routes/agent.debug.ts +0 -149
  297. package/src/browser/routes/agent.shared.ts +0 -143
  298. package/src/browser/routes/agent.snapshot.ts +0 -333
  299. package/src/browser/routes/agent.storage.ts +0 -451
  300. package/src/browser/routes/agent.ts +0 -13
  301. package/src/browser/routes/basic.ts +0 -202
  302. package/src/browser/routes/dispatcher.ts +0 -126
  303. package/src/browser/routes/index.ts +0 -11
  304. package/src/browser/routes/path-output.ts +0 -1
  305. package/src/browser/routes/tabs.ts +0 -217
  306. package/src/browser/routes/types.ts +0 -26
  307. package/src/browser/routes/utils.ts +0 -73
  308. package/src/browser/screenshot.ts +0 -54
  309. package/src/browser/server-context.ts +0 -688
  310. package/src/browser/server-context.types.ts +0 -65
  311. package/src/browser/server-lifecycle.ts +0 -48
  312. package/src/browser/server-middleware.ts +0 -37
  313. package/src/browser/server.ts +0 -110
  314. package/src/browser/target-id.ts +0 -30
  315. package/src/browser/trash.ts +0 -21
  316. package/src/cli-agent.ts +0 -2452
  317. package/src/cli-reset-password.ts +0 -138
  318. package/src/cli-serve.ts +0 -314
  319. package/src/cli.ts +0 -103
  320. package/src/dashboard/HELP-TOOLTIPS-GUIDE.md +0 -45
  321. package/src/dashboard/app.js +0 -579
  322. package/src/dashboard/assets/brand-logos.js +0 -350
  323. package/src/dashboard/assets/icons/emoji-icons.js +0 -893
  324. package/src/dashboard/assets/logo.png +0 -0
  325. package/src/dashboard/assets/provider-logos.js +0 -139
  326. package/src/dashboard/components/error-boundary.js +0 -21
  327. package/src/dashboard/components/help-button.js +0 -65
  328. package/src/dashboard/components/icons.js +0 -64
  329. package/src/dashboard/components/knowledge-link.js +0 -79
  330. package/src/dashboard/components/modal.js +0 -125
  331. package/src/dashboard/components/org-switcher.js +0 -156
  332. package/src/dashboard/components/persona-fields.js +0 -460
  333. package/src/dashboard/components/settings-help.js +0 -193
  334. package/src/dashboard/components/tag-input.js +0 -96
  335. package/src/dashboard/components/timezones.js +0 -352
  336. package/src/dashboard/components/transport-encryption.js +0 -288
  337. package/src/dashboard/components/utils.js +0 -205
  338. package/src/dashboard/data/countries.js +0 -255
  339. package/src/dashboard/docs/activity.html +0 -253
  340. package/src/dashboard/docs/agent-activity.html +0 -199
  341. package/src/dashboard/docs/agent-autonomy.html +0 -161
  342. package/src/dashboard/docs/agent-budget.html +0 -190
  343. package/src/dashboard/docs/agent-channels.html +0 -189
  344. package/src/dashboard/docs/agent-communication.html +0 -171
  345. package/src/dashboard/docs/agent-configuration.html +0 -194
  346. package/src/dashboard/docs/agent-deployment.html +0 -323
  347. package/src/dashboard/docs/agent-email.html +0 -184
  348. package/src/dashboard/docs/agent-guardrails.html +0 -206
  349. package/src/dashboard/docs/agent-manager.html +0 -226
  350. package/src/dashboard/docs/agent-memory.html +0 -215
  351. package/src/dashboard/docs/agent-overview.html +0 -226
  352. package/src/dashboard/docs/agent-permissions.html +0 -305
  353. package/src/dashboard/docs/agent-personal.html +0 -155
  354. package/src/dashboard/docs/agent-security.html +0 -188
  355. package/src/dashboard/docs/agent-skills.html +0 -224
  356. package/src/dashboard/docs/agent-tool-security.html +0 -205
  357. package/src/dashboard/docs/agent-tools.html +0 -238
  358. package/src/dashboard/docs/agent-whatsapp.html +0 -210
  359. package/src/dashboard/docs/agent-workforce.html +0 -199
  360. package/src/dashboard/docs/agents.html +0 -258
  361. package/src/dashboard/docs/approvals.html +0 -200
  362. package/src/dashboard/docs/audit.html +0 -206
  363. package/src/dashboard/docs/browser-providers.html +0 -313
  364. package/src/dashboard/docs/cluster.html +0 -285
  365. package/src/dashboard/docs/community-skills.html +0 -253
  366. package/src/dashboard/docs/compliance.html +0 -221
  367. package/src/dashboard/docs/dashboard.html +0 -84
  368. package/src/dashboard/docs/database-access.html +0 -322
  369. package/src/dashboard/docs/dlp.html +0 -268
  370. package/src/dashboard/docs/docs-style.css +0 -26
  371. package/src/dashboard/docs/domain-status.html +0 -294
  372. package/src/dashboard/docs/guardrails.html +0 -265
  373. package/src/dashboard/docs/journal.html +0 -197
  374. package/src/dashboard/docs/knowledge-contributions.html +0 -286
  375. package/src/dashboard/docs/knowledge.html +0 -268
  376. package/src/dashboard/docs/memory-transfer.html +0 -311
  377. package/src/dashboard/docs/messages.html +0 -217
  378. package/src/dashboard/docs/multi-tenant.html +0 -311
  379. package/src/dashboard/docs/org-chart.html +0 -239
  380. package/src/dashboard/docs/organizations.html +0 -182
  381. package/src/dashboard/docs/roles.html +0 -195
  382. package/src/dashboard/docs/settings-network.html +0 -321
  383. package/src/dashboard/docs/settings-security.html +0 -347
  384. package/src/dashboard/docs/settings-tool-security.html +0 -176
  385. package/src/dashboard/docs/settings.html +0 -280
  386. package/src/dashboard/docs/skill-connections.html +0 -270
  387. package/src/dashboard/docs/skills.html +0 -206
  388. package/src/dashboard/docs/task-pipeline.html +0 -261
  389. package/src/dashboard/docs/transport-encryption.html +0 -359
  390. package/src/dashboard/docs/users.html +0 -225
  391. package/src/dashboard/docs/vault.html +0 -260
  392. package/src/dashboard/docs/workforce.html +0 -245
  393. package/src/dashboard/index.html +0 -444
  394. package/src/dashboard/pages/activity.js +0 -379
  395. package/src/dashboard/pages/agent-detail/activity.js +0 -277
  396. package/src/dashboard/pages/agent-detail/autonomy.js +0 -244
  397. package/src/dashboard/pages/agent-detail/budget.js +0 -269
  398. package/src/dashboard/pages/agent-detail/channels.js +0 -494
  399. package/src/dashboard/pages/agent-detail/communication.js +0 -296
  400. package/src/dashboard/pages/agent-detail/configuration.js +0 -882
  401. package/src/dashboard/pages/agent-detail/deployment.js +0 -958
  402. package/src/dashboard/pages/agent-detail/email.js +0 -674
  403. package/src/dashboard/pages/agent-detail/guardrails.js +0 -521
  404. package/src/dashboard/pages/agent-detail/index.js +0 -261
  405. package/src/dashboard/pages/agent-detail/manager.js +0 -357
  406. package/src/dashboard/pages/agent-detail/meeting-browser.js +0 -933
  407. package/src/dashboard/pages/agent-detail/memory.js +0 -368
  408. package/src/dashboard/pages/agent-detail/overview.js +0 -844
  409. package/src/dashboard/pages/agent-detail/permissions.js +0 -1163
  410. package/src/dashboard/pages/agent-detail/personal-details.js +0 -404
  411. package/src/dashboard/pages/agent-detail/security.js +0 -409
  412. package/src/dashboard/pages/agent-detail/shared.js +0 -85
  413. package/src/dashboard/pages/agent-detail/skills-section.js +0 -183
  414. package/src/dashboard/pages/agent-detail/tool-security.js +0 -380
  415. package/src/dashboard/pages/agent-detail/tools.js +0 -322
  416. package/src/dashboard/pages/agent-detail/whatsapp.js +0 -824
  417. package/src/dashboard/pages/agent-detail/workforce.js +0 -683
  418. package/src/dashboard/pages/agents.js +0 -1242
  419. package/src/dashboard/pages/approvals.js +0 -100
  420. package/src/dashboard/pages/audit.js +0 -198
  421. package/src/dashboard/pages/cluster.js +0 -512
  422. package/src/dashboard/pages/community-skills.js +0 -1219
  423. package/src/dashboard/pages/compliance.js +0 -475
  424. package/src/dashboard/pages/dashboard.js +0 -180
  425. package/src/dashboard/pages/database-access.js +0 -812
  426. package/src/dashboard/pages/dlp.js +0 -293
  427. package/src/dashboard/pages/domain-status.js +0 -951
  428. package/src/dashboard/pages/guardrails.js +0 -1035
  429. package/src/dashboard/pages/journal.js +0 -172
  430. package/src/dashboard/pages/knowledge-contributions.js +0 -1682
  431. package/src/dashboard/pages/knowledge-import.js +0 -455
  432. package/src/dashboard/pages/knowledge.js +0 -582
  433. package/src/dashboard/pages/login.js +0 -1056
  434. package/src/dashboard/pages/memory-transfer.js +0 -631
  435. package/src/dashboard/pages/messages.js +0 -303
  436. package/src/dashboard/pages/org-chart.js +0 -349
  437. package/src/dashboard/pages/organizations.js +0 -1081
  438. package/src/dashboard/pages/roles.js +0 -780
  439. package/src/dashboard/pages/settings.js +0 -3790
  440. package/src/dashboard/pages/skill-connections.js +0 -982
  441. package/src/dashboard/pages/skills.js +0 -879
  442. package/src/dashboard/pages/task-pipeline.js +0 -684
  443. package/src/dashboard/pages/users.js +0 -867
  444. package/src/dashboard/pages/vault.js +0 -791
  445. package/src/dashboard/pages/workforce.js +0 -851
  446. package/src/dashboard/vendor/react-dom.development.js +0 -29924
  447. package/src/dashboard/vendor/react-dom.production.min.js +0 -267
  448. package/src/dashboard/vendor/react.development.js +0 -3343
  449. package/src/dashboard/vendor/react.production.min.js +0 -31
  450. package/src/database-access/agent-tools.ts +0 -193
  451. package/src/database-access/connection-manager.ts +0 -1341
  452. package/src/database-access/index.ts +0 -21
  453. package/src/database-access/query-sanitizer.ts +0 -220
  454. package/src/database-access/routes.ts +0 -226
  455. package/src/database-access/types.ts +0 -226
  456. package/src/db/adapter.ts +0 -510
  457. package/src/db/dynamodb.ts +0 -454
  458. package/src/db/factory.ts +0 -129
  459. package/src/db/mongodb.ts +0 -360
  460. package/src/db/mysql.ts +0 -531
  461. package/src/db/postgres.ts +0 -863
  462. package/src/db/proxy.ts +0 -39
  463. package/src/db/resolve-driver.ts +0 -29
  464. package/src/db/sql-schema.ts +0 -124
  465. package/src/db/sqlite.ts +0 -493
  466. package/src/db/turso.ts +0 -470
  467. package/src/deploy/fly.ts +0 -368
  468. package/src/deploy/managed.ts +0 -235
  469. package/src/domain-lock/cli-recover.ts +0 -591
  470. package/src/domain-lock/cli-verify.ts +0 -190
  471. package/src/domain-lock/index.ts +0 -220
  472. package/src/engine/activity-routes.ts +0 -154
  473. package/src/engine/activity.ts +0 -568
  474. package/src/engine/agent-autonomy.ts +0 -974
  475. package/src/engine/agent-config.ts +0 -646
  476. package/src/engine/agent-heartbeat.ts +0 -720
  477. package/src/engine/agent-hierarchy.ts +0 -1064
  478. package/src/engine/agent-memory.ts +0 -806
  479. package/src/engine/agent-notify.ts +0 -50
  480. package/src/engine/agent-routes.ts +0 -2583
  481. package/src/engine/agent-status.ts +0 -311
  482. package/src/engine/ambient-memory.ts +0 -401
  483. package/src/engine/approvals.ts +0 -615
  484. package/src/engine/assets/thinking-hum.mp3 +0 -0
  485. package/src/engine/catalog-routes.ts +0 -232
  486. package/src/engine/chat-poller.ts +0 -913
  487. package/src/engine/chat-webhook-routes.ts +0 -304
  488. package/src/engine/cli-build-skill.ts +0 -285
  489. package/src/engine/cli-submit-skill.ts +0 -200
  490. package/src/engine/cli-validate.ts +0 -188
  491. package/src/engine/cluster.ts +0 -278
  492. package/src/engine/communication-routes.ts +0 -139
  493. package/src/engine/communication.ts +0 -765
  494. package/src/engine/community-registry.ts +0 -1529
  495. package/src/engine/community-routes.ts +0 -260
  496. package/src/engine/compliance-routes.ts +0 -133
  497. package/src/engine/compliance.ts +0 -1679
  498. package/src/engine/config-bus.ts +0 -103
  499. package/src/engine/db-adapter.ts +0 -1156
  500. package/src/engine/db-schema.ts +0 -1945
  501. package/src/engine/deploy-schema-routes.ts +0 -176
  502. package/src/engine/deployer.ts +0 -957
  503. package/src/engine/dlp-routes.ts +0 -101
  504. package/src/engine/dlp.ts +0 -410
  505. package/src/engine/email-poller.ts +0 -855
  506. package/src/engine/emoji.ts +0 -106
  507. package/src/engine/guardrail-routes.ts +0 -125
  508. package/src/engine/guardrails.ts +0 -465
  509. package/src/engine/index.ts +0 -255
  510. package/src/engine/journal-routes.ts +0 -56
  511. package/src/engine/journal.ts +0 -249
  512. package/src/engine/knowledge-contribution-routes.ts +0 -633
  513. package/src/engine/knowledge-contribution.ts +0 -1386
  514. package/src/engine/knowledge-import/chunker.ts +0 -241
  515. package/src/engine/knowledge-import/import-manager.ts +0 -416
  516. package/src/engine/knowledge-import/index.ts +0 -27
  517. package/src/engine/knowledge-import/processors/clean.ts +0 -149
  518. package/src/engine/knowledge-import/processors/extract-gdrive.ts +0 -102
  519. package/src/engine/knowledge-import/processors/extract-github.ts +0 -74
  520. package/src/engine/knowledge-import/processors/extract-sharepoint.ts +0 -69
  521. package/src/engine/knowledge-import/processors/extract-web.ts +0 -275
  522. package/src/engine/knowledge-import/processors/index.ts +0 -18
  523. package/src/engine/knowledge-import/processors/pipeline.ts +0 -171
  524. package/src/engine/knowledge-import/processors/types.ts +0 -78
  525. package/src/engine/knowledge-import/processors/validate.ts +0 -150
  526. package/src/engine/knowledge-import/provider-file-upload.ts +0 -95
  527. package/src/engine/knowledge-import/provider-github.ts +0 -144
  528. package/src/engine/knowledge-import/provider-google-sites.ts +0 -323
  529. package/src/engine/knowledge-import/provider-sharepoint.ts +0 -276
  530. package/src/engine/knowledge-import/provider-url.ts +0 -218
  531. package/src/engine/knowledge-import/routes.ts +0 -94
  532. package/src/engine/knowledge-import/types.ts +0 -92
  533. package/src/engine/knowledge-routes.ts +0 -231
  534. package/src/engine/knowledge.ts +0 -587
  535. package/src/engine/lifecycle.ts +0 -1420
  536. package/src/engine/mcp-process-manager.ts +0 -573
  537. package/src/engine/meeting-monitor.ts +0 -483
  538. package/src/engine/meeting-voice-intelligence.ts +0 -340
  539. package/src/engine/memory-routes.ts +0 -142
  540. package/src/engine/memory-transfer-routes.ts +0 -339
  541. package/src/engine/messaging-history.ts +0 -177
  542. package/src/engine/messaging-poller.ts +0 -786
  543. package/src/engine/model-fallback.ts +0 -141
  544. package/src/engine/oauth-connect-routes.ts +0 -603
  545. package/src/engine/oauth-connect.ts +0 -304
  546. package/src/engine/onboarding-routes.ts +0 -148
  547. package/src/engine/onboarding.ts +0 -574
  548. package/src/engine/org-approval-routes.ts +0 -146
  549. package/src/engine/org-integration-routes.ts +0 -399
  550. package/src/engine/org-integrations.ts +0 -608
  551. package/src/engine/org-policies.ts +0 -502
  552. package/src/engine/policy-import-routes.ts +0 -125
  553. package/src/engine/policy-import.ts +0 -1186
  554. package/src/engine/policy-routes.ts +0 -163
  555. package/src/engine/routes.ts +0 -1236
  556. package/src/engine/screen-unlock.ts +0 -136
  557. package/src/engine/session-router.ts +0 -212
  558. package/src/engine/skill-updater-routes.ts +0 -132
  559. package/src/engine/skill-updater.ts +0 -480
  560. package/src/engine/skill-validator.ts +0 -331
  561. package/src/engine/skills/agent-management.ts +0 -119
  562. package/src/engine/skills/agent-memory.ts +0 -19
  563. package/src/engine/skills/agenticmail.ts +0 -116
  564. package/src/engine/skills/core-tools.ts +0 -25
  565. package/src/engine/skills/database-access.ts +0 -78
  566. package/src/engine/skills/enterprise-code-sandbox.ts +0 -113
  567. package/src/engine/skills/enterprise-database.ts +0 -123
  568. package/src/engine/skills/enterprise-diff.ts +0 -95
  569. package/src/engine/skills/enterprise-documents.ts +0 -162
  570. package/src/engine/skills/enterprise-http.ts +0 -99
  571. package/src/engine/skills/enterprise-security-scan.ts +0 -125
  572. package/src/engine/skills/enterprise-spreadsheet.ts +0 -171
  573. package/src/engine/skills/gws-admin.ts +0 -18
  574. package/src/engine/skills/gws-calendar.ts +0 -21
  575. package/src/engine/skills/gws-chat.ts +0 -29
  576. package/src/engine/skills/gws-contacts.ts +0 -20
  577. package/src/engine/skills/gws-docs.ts +0 -18
  578. package/src/engine/skills/gws-drive.ts +0 -23
  579. package/src/engine/skills/gws-forms.ts +0 -23
  580. package/src/engine/skills/gws-gmail.ts +0 -30
  581. package/src/engine/skills/gws-groups.ts +0 -17
  582. package/src/engine/skills/gws-keep.ts +0 -17
  583. package/src/engine/skills/gws-maps.ts +0 -25
  584. package/src/engine/skills/gws-meet.ts +0 -23
  585. package/src/engine/skills/gws-sheets.ts +0 -22
  586. package/src/engine/skills/gws-sites.ts +0 -16
  587. package/src/engine/skills/gws-slides.ts +0 -27
  588. package/src/engine/skills/gws-tasks.ts +0 -22
  589. package/src/engine/skills/gws-vault.ts +0 -17
  590. package/src/engine/skills/index.ts +0 -159
  591. package/src/engine/skills/knowledge-search.ts +0 -18
  592. package/src/engine/skills/local-system.ts +0 -61
  593. package/src/engine/skills/m365-admin.ts +0 -18
  594. package/src/engine/skills/m365-bookings.ts +0 -17
  595. package/src/engine/skills/m365-copilot.ts +0 -17
  596. package/src/engine/skills/m365-excel.ts +0 -60
  597. package/src/engine/skills/m365-forms.ts +0 -17
  598. package/src/engine/skills/m365-onedrive.ts +0 -60
  599. package/src/engine/skills/m365-onenote.ts +0 -17
  600. package/src/engine/skills/m365-outlook.ts +0 -27
  601. package/src/engine/skills/m365-planner.ts +0 -18
  602. package/src/engine/skills/m365-power-automate.ts +0 -18
  603. package/src/engine/skills/m365-power-bi.ts +0 -19
  604. package/src/engine/skills/m365-powerpoint.ts +0 -33
  605. package/src/engine/skills/m365-sharepoint.ts +0 -20
  606. package/src/engine/skills/m365-teams.ts +0 -21
  607. package/src/engine/skills/m365-todo.ts +0 -17
  608. package/src/engine/skills/m365-whiteboard.ts +0 -16
  609. package/src/engine/skills/m365-word.ts +0 -42
  610. package/src/engine/skills/mcp-bridge.ts +0 -45
  611. package/src/engine/skills/meeting-lifecycle.ts +0 -20
  612. package/src/engine/skills/messaging.ts +0 -46
  613. package/src/engine/skills/visual-memory.ts +0 -25
  614. package/src/engine/skills.ts +0 -688
  615. package/src/engine/soul-library.ts +0 -142
  616. package/src/engine/soul-templates.json +0 -1525
  617. package/src/engine/storage-manager.ts +0 -252
  618. package/src/engine/storage-routes.ts +0 -113
  619. package/src/engine/storage.ts +0 -528
  620. package/src/engine/task-poller.ts +0 -394
  621. package/src/engine/task-queue-after-spawn.ts +0 -66
  622. package/src/engine/task-queue-before-spawn.ts +0 -113
  623. package/src/engine/task-queue-routes.ts +0 -161
  624. package/src/engine/task-queue.ts +0 -664
  625. package/src/engine/tenant.ts +0 -409
  626. package/src/engine/tool-catalog.ts +0 -354
  627. package/src/engine/vault-routes.ts +0 -134
  628. package/src/engine/vault.ts +0 -601
  629. package/src/engine/workforce-routes.ts +0 -331
  630. package/src/engine/workforce.ts +0 -1161
  631. package/src/index.ts +0 -77
  632. package/src/lib/cidr.ts +0 -122
  633. package/src/lib/config-store.ts +0 -86
  634. package/src/lib/resilience.ts +0 -326
  635. package/src/lib/text-search.ts +0 -358
  636. package/src/mcp/adapters/activecampaign.adapter.ts +0 -391
  637. package/src/mcp/adapters/adobe-sign.adapter.ts +0 -469
  638. package/src/mcp/adapters/adp.adapter.ts +0 -358
  639. package/src/mcp/adapters/airtable.adapter.ts +0 -273
  640. package/src/mcp/adapters/apollo.adapter.ts +0 -420
  641. package/src/mcp/adapters/asana.adapter.ts +0 -315
  642. package/src/mcp/adapters/auth0.adapter.ts +0 -386
  643. package/src/mcp/adapters/aws.adapter.ts +0 -345
  644. package/src/mcp/adapters/azure-devops.adapter.ts +0 -389
  645. package/src/mcp/adapters/bamboohr.adapter.ts +0 -376
  646. package/src/mcp/adapters/basecamp.adapter.ts +0 -366
  647. package/src/mcp/adapters/bigcommerce.adapter.ts +0 -429
  648. package/src/mcp/adapters/bitbucket.adapter.ts +0 -260
  649. package/src/mcp/adapters/box.adapter.ts +0 -350
  650. package/src/mcp/adapters/brex.adapter.ts +0 -367
  651. package/src/mcp/adapters/buffer.adapter.ts +0 -303
  652. package/src/mcp/adapters/calendly.adapter.ts +0 -262
  653. package/src/mcp/adapters/canva.adapter.ts +0 -256
  654. package/src/mcp/adapters/chargebee.adapter.ts +0 -448
  655. package/src/mcp/adapters/circleci.adapter.ts +0 -216
  656. package/src/mcp/adapters/clickup.adapter.ts +0 -335
  657. package/src/mcp/adapters/close.adapter.ts +0 -390
  658. package/src/mcp/adapters/cloudflare.adapter.ts +0 -378
  659. package/src/mcp/adapters/confluence.adapter.ts +0 -301
  660. package/src/mcp/adapters/contentful.adapter.ts +0 -355
  661. package/src/mcp/adapters/copper.adapter.ts +0 -468
  662. package/src/mcp/adapters/crisp.adapter.ts +0 -415
  663. package/src/mcp/adapters/crowdstrike.adapter.ts +0 -413
  664. package/src/mcp/adapters/datadog.adapter.ts +0 -373
  665. package/src/mcp/adapters/digitalocean.adapter.ts +0 -336
  666. package/src/mcp/adapters/discord.adapter.ts +0 -248
  667. package/src/mcp/adapters/docker.adapter.ts +0 -238
  668. package/src/mcp/adapters/docusign.adapter.ts +0 -431
  669. package/src/mcp/adapters/drift.adapter.ts +0 -386
  670. package/src/mcp/adapters/dropbox.adapter.ts +0 -315
  671. package/src/mcp/adapters/figma.adapter.ts +0 -302
  672. package/src/mcp/adapters/firebase.adapter.ts +0 -446
  673. package/src/mcp/adapters/flyio.adapter.ts +0 -302
  674. package/src/mcp/adapters/freshbooks.adapter.ts +0 -474
  675. package/src/mcp/adapters/freshdesk.adapter.ts +0 -441
  676. package/src/mcp/adapters/freshsales.adapter.ts +0 -457
  677. package/src/mcp/adapters/freshservice.adapter.ts +0 -481
  678. package/src/mcp/adapters/front.adapter.ts +0 -357
  679. package/src/mcp/adapters/github-actions.adapter.ts +0 -329
  680. package/src/mcp/adapters/github.adapter.ts +0 -387
  681. package/src/mcp/adapters/gitlab.adapter.ts +0 -368
  682. package/src/mcp/adapters/gong.adapter.ts +0 -386
  683. package/src/mcp/adapters/google-ads.adapter.ts +0 -363
  684. package/src/mcp/adapters/google-analytics.adapter.ts +0 -316
  685. package/src/mcp/adapters/google-cloud.adapter.ts +0 -312
  686. package/src/mcp/adapters/gotomeeting.adapter.ts +0 -255
  687. package/src/mcp/adapters/grafana.adapter.ts +0 -361
  688. package/src/mcp/adapters/greenhouse.adapter.ts +0 -354
  689. package/src/mcp/adapters/gusto.adapter.ts +0 -329
  690. package/src/mcp/adapters/hashicorp-vault.adapter.ts +0 -355
  691. package/src/mcp/adapters/heroku.adapter.ts +0 -291
  692. package/src/mcp/adapters/hibob.adapter.ts +0 -334
  693. package/src/mcp/adapters/hootsuite.adapter.ts +0 -322
  694. package/src/mcp/adapters/hubspot.adapter.ts +0 -400
  695. package/src/mcp/adapters/huggingface.adapter.ts +0 -349
  696. package/src/mcp/adapters/index.ts +0 -524
  697. package/src/mcp/adapters/intercom.adapter.ts +0 -269
  698. package/src/mcp/adapters/jira.adapter.ts +0 -482
  699. package/src/mcp/adapters/klaviyo.adapter.ts +0 -353
  700. package/src/mcp/adapters/kubernetes.adapter.ts +0 -431
  701. package/src/mcp/adapters/lattice.adapter.ts +0 -339
  702. package/src/mcp/adapters/launchdarkly.adapter.ts +0 -368
  703. package/src/mcp/adapters/lever.adapter.ts +0 -347
  704. package/src/mcp/adapters/linear.adapter.ts +0 -300
  705. package/src/mcp/adapters/linkedin.adapter.ts +0 -331
  706. package/src/mcp/adapters/livechat.adapter.ts +0 -259
  707. package/src/mcp/adapters/loom.adapter.ts +0 -230
  708. package/src/mcp/adapters/mailchimp.adapter.ts +0 -394
  709. package/src/mcp/adapters/mailgun.adapter.ts +0 -425
  710. package/src/mcp/adapters/miro.adapter.ts +0 -274
  711. package/src/mcp/adapters/mixpanel.adapter.ts +0 -324
  712. package/src/mcp/adapters/monday.adapter.ts +0 -308
  713. package/src/mcp/adapters/mongodb-atlas.adapter.ts +0 -345
  714. package/src/mcp/adapters/neon.adapter.ts +0 -312
  715. package/src/mcp/adapters/netlify.adapter.ts +0 -324
  716. package/src/mcp/adapters/netsuite.adapter.ts +0 -411
  717. package/src/mcp/adapters/newrelic.adapter.ts +0 -339
  718. package/src/mcp/adapters/notion.adapter.ts +0 -338
  719. package/src/mcp/adapters/okta.adapter.ts +0 -394
  720. package/src/mcp/adapters/openai.adapter.ts +0 -315
  721. package/src/mcp/adapters/opsgenie.adapter.ts +0 -375
  722. package/src/mcp/adapters/outreach.adapter.ts +0 -372
  723. package/src/mcp/adapters/paddle.adapter.ts +0 -467
  724. package/src/mcp/adapters/pagerduty.adapter.ts +0 -412
  725. package/src/mcp/adapters/pandadoc.adapter.ts +0 -389
  726. package/src/mcp/adapters/paypal.adapter.ts +0 -465
  727. package/src/mcp/adapters/personio.adapter.ts +0 -401
  728. package/src/mcp/adapters/pinecone.adapter.ts +0 -340
  729. package/src/mcp/adapters/pipedrive.adapter.ts +0 -324
  730. package/src/mcp/adapters/plaid.adapter.ts +0 -444
  731. package/src/mcp/adapters/postmark.adapter.ts +0 -387
  732. package/src/mcp/adapters/power-automate.adapter.ts +0 -388
  733. package/src/mcp/adapters/quickbooks.adapter.ts +0 -431
  734. package/src/mcp/adapters/recurly.adapter.ts +0 -433
  735. package/src/mcp/adapters/reddit.adapter.ts +0 -371
  736. package/src/mcp/adapters/render.adapter.ts +0 -332
  737. package/src/mcp/adapters/ringcentral.adapter.ts +0 -281
  738. package/src/mcp/adapters/rippling.adapter.ts +0 -287
  739. package/src/mcp/adapters/salesforce.adapter.ts +0 -321
  740. package/src/mcp/adapters/salesloft.adapter.ts +0 -413
  741. package/src/mcp/adapters/sanity.adapter.ts +0 -363
  742. package/src/mcp/adapters/sap.adapter.ts +0 -483
  743. package/src/mcp/adapters/segment.adapter.ts +0 -260
  744. package/src/mcp/adapters/sendgrid.adapter.ts +0 -265
  745. package/src/mcp/adapters/sentry.adapter.ts +0 -331
  746. package/src/mcp/adapters/servicenow.adapter.ts +0 -468
  747. package/src/mcp/adapters/shopify.adapter.ts +0 -451
  748. package/src/mcp/adapters/shortcut.adapter.ts +0 -290
  749. package/src/mcp/adapters/slack.adapter.ts +0 -380
  750. package/src/mcp/adapters/smartsheet.adapter.ts +0 -326
  751. package/src/mcp/adapters/snowflake.adapter.ts +0 -347
  752. package/src/mcp/adapters/snyk.adapter.ts +0 -394
  753. package/src/mcp/adapters/splunk.adapter.ts +0 -403
  754. package/src/mcp/adapters/square.adapter.ts +0 -467
  755. package/src/mcp/adapters/statuspage.adapter.ts +0 -401
  756. package/src/mcp/adapters/stripe.adapter.ts +0 -380
  757. package/src/mcp/adapters/supabase.adapter.ts +0 -334
  758. package/src/mcp/adapters/teamwork.adapter.ts +0 -404
  759. package/src/mcp/adapters/telegram.adapter.ts +0 -299
  760. package/src/mcp/adapters/terraform.adapter.ts +0 -300
  761. package/src/mcp/adapters/todoist.adapter.ts +0 -239
  762. package/src/mcp/adapters/trello.adapter.ts +0 -316
  763. package/src/mcp/adapters/twilio.adapter.ts +0 -233
  764. package/src/mcp/adapters/twitter.adapter.ts +0 -348
  765. package/src/mcp/adapters/vercel.adapter.ts +0 -219
  766. package/src/mcp/adapters/weaviate.adapter.ts +0 -371
  767. package/src/mcp/adapters/webex.adapter.ts +0 -237
  768. package/src/mcp/adapters/webflow.adapter.ts +0 -287
  769. package/src/mcp/adapters/whatsapp.adapter.ts +0 -273
  770. package/src/mcp/adapters/whereby.adapter.ts +0 -240
  771. package/src/mcp/adapters/woocommerce.adapter.ts +0 -454
  772. package/src/mcp/adapters/wordpress.adapter.ts +0 -455
  773. package/src/mcp/adapters/workday.adapter.ts +0 -354
  774. package/src/mcp/adapters/wrike.adapter.ts +0 -349
  775. package/src/mcp/adapters/xero.adapter.ts +0 -472
  776. package/src/mcp/adapters/youtube.adapter.ts +0 -401
  777. package/src/mcp/adapters/zendesk.adapter.ts +0 -399
  778. package/src/mcp/adapters/zoho-crm.adapter.ts +0 -410
  779. package/src/mcp/adapters/zoom.adapter.ts +0 -241
  780. package/src/mcp/adapters/zuora.adapter.ts +0 -476
  781. package/src/mcp/framework/api-executor.ts +0 -192
  782. package/src/mcp/framework/aws-sigv4.ts +0 -216
  783. package/src/mcp/framework/credential-resolver.ts +0 -128
  784. package/src/mcp/framework/oauth-token-manager.ts +0 -22
  785. package/src/mcp/framework/skill-mcp-framework.ts +0 -226
  786. package/src/mcp/framework/types.ts +0 -130
  787. package/src/mcp/index.ts +0 -124
  788. package/src/mcp/integration-catalog.ts +0 -178
  789. package/src/middleware/dns-rebinding.ts +0 -44
  790. package/src/middleware/egress-filter.ts +0 -104
  791. package/src/middleware/firewall.ts +0 -192
  792. package/src/middleware/geo-ip.ts +0 -156
  793. package/src/middleware/index.ts +0 -390
  794. package/src/middleware/network-config.ts +0 -90
  795. package/src/middleware/proxy-config.ts +0 -71
  796. package/src/middleware/request-limits.ts +0 -59
  797. package/src/middleware/transport-encryption.ts +0 -398
  798. package/src/registry/cli.ts +0 -63
  799. package/src/registry/server.ts +0 -504
  800. package/src/runtime/agent-loop.ts +0 -779
  801. package/src/runtime/compaction.ts +0 -638
  802. package/src/runtime/email-channel.ts +0 -120
  803. package/src/runtime/environment.ts +0 -300
  804. package/src/runtime/followup.ts +0 -211
  805. package/src/runtime/gateway.ts +0 -260
  806. package/src/runtime/hooks.ts +0 -564
  807. package/src/runtime/index.ts +0 -1110
  808. package/src/runtime/llm-client.ts +0 -1056
  809. package/src/runtime/model-router.ts +0 -97
  810. package/src/runtime/providers.ts +0 -228
  811. package/src/runtime/session-manager.ts +0 -345
  812. package/src/runtime/subagent.ts +0 -153
  813. package/src/runtime/tool-executor.ts +0 -208
  814. package/src/runtime/types.ts +0 -255
  815. package/src/security/brute-force.ts +0 -423
  816. package/src/security/config.ts +0 -159
  817. package/src/security/csp.ts +0 -407
  818. package/src/security/external-content.ts +0 -299
  819. package/src/security/index.ts +0 -557
  820. package/src/security/input-sanitizer.ts +0 -452
  821. package/src/security/output-filter.ts +0 -575
  822. package/src/security/port-scanner.ts +0 -342
  823. package/src/security/prompt-guard.ts +0 -387
  824. package/src/security/sql-guard.ts +0 -338
  825. package/src/security/threat-logger.ts +0 -484
  826. package/src/server.ts +0 -828
  827. package/src/setup/company.ts +0 -183
  828. package/src/setup/database.ts +0 -153
  829. package/src/setup/deployment.ts +0 -561
  830. package/src/setup/domain.ts +0 -112
  831. package/src/setup/index.ts +0 -171
  832. package/src/setup/provision.ts +0 -532
  833. package/src/setup/registration.ts +0 -302
  834. package/src/system-prompts/catchup.ts +0 -48
  835. package/src/system-prompts/google/calendar.ts +0 -37
  836. package/src/system-prompts/google/chat.ts +0 -92
  837. package/src/system-prompts/google/contacts.ts +0 -25
  838. package/src/system-prompts/google/docs.ts +0 -29
  839. package/src/system-prompts/google/drive.ts +0 -34
  840. package/src/system-prompts/google/forms.ts +0 -25
  841. package/src/system-prompts/google/gmail.ts +0 -50
  842. package/src/system-prompts/google/index.ts +0 -23
  843. package/src/system-prompts/google/maps.ts +0 -20
  844. package/src/system-prompts/google/meet.ts +0 -130
  845. package/src/system-prompts/google/sheets.ts +0 -32
  846. package/src/system-prompts/google/slides.ts +0 -26
  847. package/src/system-prompts/google/tasks.ts +0 -27
  848. package/src/system-prompts/index.ts +0 -88
  849. package/src/system-prompts/microsoft/contacts.ts +0 -34
  850. package/src/system-prompts/microsoft/excel.ts +0 -52
  851. package/src/system-prompts/microsoft/index.ts +0 -31
  852. package/src/system-prompts/microsoft/onedrive.ts +0 -41
  853. package/src/system-prompts/microsoft/onenote.ts +0 -36
  854. package/src/system-prompts/microsoft/outlook-calendar.ts +0 -37
  855. package/src/system-prompts/microsoft/outlook-mail.ts +0 -46
  856. package/src/system-prompts/microsoft/planner.ts +0 -37
  857. package/src/system-prompts/microsoft/powerbi.ts +0 -38
  858. package/src/system-prompts/microsoft/powerpoint.ts +0 -35
  859. package/src/system-prompts/microsoft/sharepoint.ts +0 -44
  860. package/src/system-prompts/microsoft/teams.ts +0 -49
  861. package/src/system-prompts/microsoft/todo.ts +0 -37
  862. package/src/system-prompts/shared-blocks.ts +0 -87
  863. package/src/system-prompts/task.ts +0 -21
  864. package/src/system-prompts/triage.ts +0 -34
  865. package/src/types/hono-env.ts +0 -18
  866. package/src/types/optional-deps.d.ts +0 -10
@@ -1,1945 +0,0 @@
1
- /**
2
- * Engine Database Schema
3
- *
4
- * SQL DDL for all engine tables. Used by SQLite, Postgres, MySQL, Turso.
5
- * MongoDB/DynamoDB use their own collection/table designs.
6
- */
7
-
8
- export const ENGINE_TABLES = `
9
- -- Managed agents (the deployed AI employees)
10
- CREATE TABLE IF NOT EXISTS managed_agents (
11
- id TEXT PRIMARY KEY,
12
- org_id TEXT NOT NULL,
13
- name TEXT NOT NULL,
14
- display_name TEXT NOT NULL,
15
- state TEXT NOT NULL DEFAULT 'draft',
16
- config JSON NOT NULL,
17
- health JSON NOT NULL DEFAULT '{}',
18
- usage JSON NOT NULL DEFAULT '{}',
19
- permission_profile_id TEXT,
20
- version INTEGER NOT NULL DEFAULT 1,
21
- last_deployed_at TEXT,
22
- last_health_check_at TEXT,
23
- created_at TEXT NOT NULL DEFAULT (datetime('now')),
24
- updated_at TEXT NOT NULL DEFAULT (datetime('now'))
25
- );
26
- CREATE INDEX IF NOT EXISTS idx_managed_agents_org ON managed_agents(org_id);
27
- CREATE INDEX IF NOT EXISTS idx_managed_agents_state ON managed_agents(state);
28
-
29
- -- State transition history
30
- CREATE TABLE IF NOT EXISTS agent_state_history (
31
- id TEXT PRIMARY KEY,
32
- agent_id TEXT NOT NULL,
33
- from_state TEXT NOT NULL,
34
- to_state TEXT NOT NULL,
35
- reason TEXT NOT NULL,
36
- triggered_by TEXT NOT NULL,
37
- error TEXT,
38
- created_at TEXT NOT NULL DEFAULT (datetime('now')),
39
- FOREIGN KEY (agent_id) REFERENCES managed_agents(id) ON DELETE CASCADE
40
- );
41
- CREATE INDEX IF NOT EXISTS idx_state_history_agent ON agent_state_history(agent_id);
42
- CREATE INDEX IF NOT EXISTS idx_state_history_time ON agent_state_history(created_at);
43
-
44
- -- Permission profiles
45
- CREATE TABLE IF NOT EXISTS permission_profiles (
46
- id TEXT PRIMARY KEY,
47
- org_id TEXT NOT NULL,
48
- name TEXT NOT NULL,
49
- description TEXT,
50
- config JSON NOT NULL,
51
- is_preset INTEGER NOT NULL DEFAULT 0,
52
- created_at TEXT NOT NULL DEFAULT (datetime('now')),
53
- updated_at TEXT NOT NULL DEFAULT (datetime('now'))
54
- );
55
- CREATE INDEX IF NOT EXISTS idx_permission_profiles_org ON permission_profiles(org_id);
56
-
57
- -- Organizations (tenants)
58
- CREATE TABLE IF NOT EXISTS organizations (
59
- id TEXT PRIMARY KEY,
60
- name TEXT NOT NULL,
61
- slug TEXT NOT NULL UNIQUE,
62
- plan TEXT NOT NULL DEFAULT 'free',
63
- limits JSON NOT NULL DEFAULT '{}',
64
- usage JSON NOT NULL DEFAULT '{}',
65
- settings JSON NOT NULL DEFAULT '{}',
66
- sso_config JSON,
67
- allowed_domains JSON NOT NULL DEFAULT '[]',
68
- billing JSON,
69
- created_at TEXT NOT NULL DEFAULT (datetime('now')),
70
- updated_at TEXT NOT NULL DEFAULT (datetime('now'))
71
- );
72
- CREATE UNIQUE INDEX IF NOT EXISTS idx_organizations_slug ON organizations(slug);
73
-
74
- -- Knowledge bases
75
- CREATE TABLE IF NOT EXISTS knowledge_bases (
76
- id TEXT PRIMARY KEY,
77
- org_id TEXT NOT NULL,
78
- name TEXT NOT NULL,
79
- description TEXT,
80
- agent_ids JSON NOT NULL DEFAULT '[]',
81
- client_org_id TEXT,
82
- config JSON NOT NULL DEFAULT '{}',
83
- stats JSON NOT NULL DEFAULT '{}',
84
- created_at TEXT NOT NULL DEFAULT (datetime('now')),
85
- updated_at TEXT NOT NULL DEFAULT (datetime('now'))
86
- );
87
- CREATE INDEX IF NOT EXISTS idx_knowledge_bases_org ON knowledge_bases(org_id);
88
- CREATE INDEX IF NOT EXISTS idx_knowledge_bases_client_org ON knowledge_bases(client_org_id);
89
-
90
- -- Knowledge base documents
91
- CREATE TABLE IF NOT EXISTS kb_documents (
92
- id TEXT PRIMARY KEY,
93
- knowledge_base_id TEXT NOT NULL,
94
- name TEXT NOT NULL,
95
- source_type TEXT NOT NULL,
96
- source_url TEXT,
97
- mime_type TEXT NOT NULL DEFAULT 'text/plain',
98
- size INTEGER NOT NULL DEFAULT 0,
99
- metadata JSON NOT NULL DEFAULT '{}',
100
- status TEXT NOT NULL DEFAULT 'processing',
101
- error TEXT,
102
- created_at TEXT NOT NULL DEFAULT (datetime('now')),
103
- updated_at TEXT NOT NULL DEFAULT (datetime('now')),
104
- FOREIGN KEY (knowledge_base_id) REFERENCES knowledge_bases(id) ON DELETE CASCADE
105
- );
106
- CREATE INDEX IF NOT EXISTS idx_kb_documents_kb ON kb_documents(knowledge_base_id);
107
-
108
- -- Knowledge base chunks (for RAG)
109
- CREATE TABLE IF NOT EXISTS kb_chunks (
110
- id TEXT PRIMARY KEY,
111
- document_id TEXT NOT NULL,
112
- content TEXT NOT NULL,
113
- token_count INTEGER NOT NULL DEFAULT 0,
114
- position INTEGER NOT NULL DEFAULT 0,
115
- embedding BLOB,
116
- metadata JSON NOT NULL DEFAULT '{}',
117
- FOREIGN KEY (document_id) REFERENCES kb_documents(id) ON DELETE CASCADE
118
- );
119
- CREATE INDEX IF NOT EXISTS idx_kb_chunks_doc ON kb_chunks(document_id);
120
-
121
- -- Tool call records (activity tracking)
122
- CREATE TABLE IF NOT EXISTS tool_calls (
123
- id TEXT PRIMARY KEY,
124
- agent_id TEXT NOT NULL,
125
- org_id TEXT NOT NULL,
126
- session_id TEXT,
127
- tool_id TEXT NOT NULL,
128
- tool_name TEXT NOT NULL,
129
- parameters JSON,
130
- result JSON,
131
- timing JSON NOT NULL,
132
- cost JSON,
133
- permission JSON NOT NULL,
134
- created_at TEXT NOT NULL DEFAULT (datetime('now'))
135
- );
136
- CREATE INDEX IF NOT EXISTS idx_tool_calls_agent ON tool_calls(agent_id);
137
- CREATE INDEX IF NOT EXISTS idx_tool_calls_org ON tool_calls(org_id);
138
- CREATE INDEX IF NOT EXISTS idx_tool_calls_time ON tool_calls(created_at);
139
- CREATE INDEX IF NOT EXISTS idx_tool_calls_tool ON tool_calls(tool_id);
140
-
141
- -- Activity events (real-time stream)
142
- CREATE TABLE IF NOT EXISTS activity_events (
143
- id TEXT PRIMARY KEY,
144
- agent_id TEXT NOT NULL,
145
- org_id TEXT NOT NULL,
146
- session_id TEXT,
147
- type TEXT NOT NULL,
148
- data JSON NOT NULL DEFAULT '{}',
149
- created_at TEXT NOT NULL DEFAULT (datetime('now'))
150
- );
151
- CREATE INDEX IF NOT EXISTS idx_activity_agent ON activity_events(agent_id);
152
- CREATE INDEX IF NOT EXISTS idx_activity_org ON activity_events(org_id);
153
- CREATE INDEX IF NOT EXISTS idx_activity_type ON activity_events(type);
154
- CREATE INDEX IF NOT EXISTS idx_activity_time ON activity_events(created_at);
155
-
156
- -- Conversation entries
157
- CREATE TABLE IF NOT EXISTS conversations (
158
- id TEXT PRIMARY KEY,
159
- agent_id TEXT NOT NULL,
160
- session_id TEXT NOT NULL,
161
- role TEXT NOT NULL,
162
- content TEXT NOT NULL,
163
- channel TEXT,
164
- token_count INTEGER NOT NULL DEFAULT 0,
165
- tool_calls JSON,
166
- created_at TEXT NOT NULL DEFAULT (datetime('now'))
167
- );
168
- CREATE INDEX IF NOT EXISTS idx_conversations_agent ON conversations(agent_id);
169
- CREATE INDEX IF NOT EXISTS idx_conversations_session ON conversations(session_id);
170
-
171
- -- Approval requests
172
- CREATE TABLE IF NOT EXISTS approval_requests (
173
- id TEXT PRIMARY KEY,
174
- agent_id TEXT NOT NULL,
175
- agent_name TEXT NOT NULL,
176
- org_id TEXT NOT NULL,
177
- tool_id TEXT NOT NULL,
178
- tool_name TEXT NOT NULL,
179
- reason TEXT NOT NULL,
180
- risk_level TEXT NOT NULL,
181
- side_effects JSON NOT NULL DEFAULT '[]',
182
- parameters JSON,
183
- context TEXT,
184
- status TEXT NOT NULL DEFAULT 'pending',
185
- decision JSON,
186
- expires_at TEXT NOT NULL,
187
- created_at TEXT NOT NULL DEFAULT (datetime('now'))
188
- );
189
- CREATE INDEX IF NOT EXISTS idx_approvals_org ON approval_requests(org_id);
190
- CREATE INDEX IF NOT EXISTS idx_approvals_status ON approval_requests(status);
191
- CREATE INDEX IF NOT EXISTS idx_approvals_agent ON approval_requests(agent_id);
192
-
193
- -- Approval policies
194
- CREATE TABLE IF NOT EXISTS approval_policies (
195
- id TEXT PRIMARY KEY,
196
- org_id TEXT NOT NULL,
197
- name TEXT NOT NULL,
198
- description TEXT,
199
- triggers JSON NOT NULL,
200
- approvers JSON NOT NULL,
201
- timeout JSON NOT NULL,
202
- notify JSON NOT NULL DEFAULT '{}',
203
- enabled INTEGER NOT NULL DEFAULT 1,
204
- created_at TEXT NOT NULL DEFAULT (datetime('now')),
205
- updated_at TEXT NOT NULL DEFAULT (datetime('now'))
206
- );
207
- CREATE INDEX IF NOT EXISTS idx_approval_policies_org ON approval_policies(org_id);
208
-
209
- -- Engine settings (key-value store for pollers, ambient memory, etc.)
210
- CREATE TABLE IF NOT EXISTS engine_settings (
211
- key TEXT PRIMARY KEY,
212
- value TEXT,
213
- updated_at TEXT DEFAULT (datetime('now'))
214
- );
215
- `;
216
-
217
- /**
218
- * Postgres-compatible version (uses JSONB instead of JSON, SERIAL, etc.)
219
- */
220
- export const ENGINE_TABLES_POSTGRES = ENGINE_TABLES
221
- .replace(/\bBLOB\b/g, 'BYTEA')
222
- .replace(/JSON/g, 'JSONB')
223
- .replace(/INTEGER NOT NULL DEFAULT 0/g, 'INTEGER NOT NULL DEFAULT 0')
224
- .replace(/datetime\('now'\)/g, "NOW()")
225
- .replace(/INTEGER NOT NULL DEFAULT 1/g, 'BOOLEAN NOT NULL DEFAULT TRUE')
226
- .replace(/is_preset INTEGER NOT NULL DEFAULT 0/g, 'is_preset BOOLEAN NOT NULL DEFAULT FALSE');
227
-
228
- // ─── Versioned Migration System ────────────────────────
229
-
230
- /**
231
- * Migration tracking table — created first, tracks which migrations have run.
232
- */
233
- export const MIGRATIONS_TABLE = `
234
- CREATE TABLE IF NOT EXISTS engine_migrations (
235
- version INTEGER PRIMARY KEY,
236
- name TEXT NOT NULL,
237
- applied_at TEXT NOT NULL DEFAULT (datetime('now'))
238
- );
239
- `;
240
-
241
- export const MIGRATIONS_TABLE_POSTGRES = MIGRATIONS_TABLE
242
- .replace(/datetime\('now'\)/g, "NOW()");
243
-
244
- /**
245
- * Each migration has a version number, name, and per-dialect SQL.
246
- * The engine runs migrations in order, skipping already-applied ones.
247
- *
248
- * For MongoDB/DynamoDB: provide the `nosql` callback instead of SQL.
249
- */
250
- export interface Migration {
251
- version: number;
252
- name: string;
253
- /** SQL statements (SQLite/Turso compatible) */
254
- sql?: string;
255
- /** SQLite-specific SQL (if different from sql) */
256
- sqlite?: string;
257
- /** Postgres-specific SQL (if different from sql) */
258
- postgres?: string;
259
- /** MySQL-specific SQL (if different from sql) */
260
- mysql?: string;
261
- /** NoSQL migration callback (MongoDB, DynamoDB) — receives the raw driver handle */
262
- nosql?: (db: any, dialect: string) => Promise<void>;
263
- }
264
-
265
- /**
266
- * Core migrations — the initial schema is migration 1.
267
- * Add new migrations here as the schema evolves.
268
- */
269
- export const MIGRATIONS: Migration[] = [
270
- {
271
- version: 1,
272
- name: 'initial_schema',
273
- sql: ENGINE_TABLES,
274
- postgres: ENGINE_TABLES_POSTGRES,
275
- },
276
- {
277
- version: 2,
278
- name: 'sso_and_deploy_credentials',
279
- sql: `
280
- -- SSO integrations (SAML, OIDC configs per org)
281
- CREATE TABLE IF NOT EXISTS sso_integrations (
282
- id TEXT PRIMARY KEY,
283
- org_id TEXT NOT NULL,
284
- provider_type TEXT NOT NULL,
285
- name TEXT NOT NULL,
286
- enabled INTEGER NOT NULL DEFAULT 1,
287
- config JSON NOT NULL DEFAULT '{}',
288
- metadata_url TEXT,
289
- created_at TEXT NOT NULL DEFAULT (datetime('now')),
290
- updated_at TEXT NOT NULL DEFAULT (datetime('now'))
291
- );
292
- CREATE INDEX IF NOT EXISTS idx_sso_org ON sso_integrations(org_id);
293
- CREATE INDEX IF NOT EXISTS idx_sso_type ON sso_integrations(provider_type);
294
-
295
- -- Deploy credentials (encrypted tokens for Docker/SSH/Fly/Railway)
296
- CREATE TABLE IF NOT EXISTS deploy_credentials (
297
- id TEXT PRIMARY KEY,
298
- org_id TEXT NOT NULL,
299
- name TEXT NOT NULL,
300
- target_type TEXT NOT NULL,
301
- config JSON NOT NULL DEFAULT '{}',
302
- created_by TEXT NOT NULL,
303
- created_at TEXT NOT NULL DEFAULT (datetime('now')),
304
- updated_at TEXT NOT NULL DEFAULT (datetime('now'))
305
- );
306
- CREATE INDEX IF NOT EXISTS idx_deploy_creds_org ON deploy_credentials(org_id);
307
- CREATE INDEX IF NOT EXISTS idx_deploy_creds_type ON deploy_credentials(target_type);
308
-
309
- -- OIDC state tracking (prevents replay attacks)
310
- CREATE TABLE IF NOT EXISTS oidc_states (
311
- state TEXT PRIMARY KEY,
312
- provider_id TEXT NOT NULL,
313
- redirect_uri TEXT,
314
- nonce TEXT,
315
- code_verifier TEXT,
316
- created_at TEXT NOT NULL DEFAULT (datetime('now')),
317
- expires_at TEXT NOT NULL
318
- );
319
- `,
320
- postgres: `
321
- CREATE TABLE IF NOT EXISTS sso_integrations (
322
- id TEXT PRIMARY KEY,
323
- org_id TEXT NOT NULL,
324
- provider_type TEXT NOT NULL,
325
- name TEXT NOT NULL,
326
- enabled BOOLEAN NOT NULL DEFAULT TRUE,
327
- config JSONB NOT NULL DEFAULT '{}',
328
- metadata_url TEXT,
329
- created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
330
- updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
331
- );
332
- CREATE INDEX IF NOT EXISTS idx_sso_org ON sso_integrations(org_id);
333
- CREATE INDEX IF NOT EXISTS idx_sso_type ON sso_integrations(provider_type);
334
-
335
- CREATE TABLE IF NOT EXISTS deploy_credentials (
336
- id TEXT PRIMARY KEY,
337
- org_id TEXT NOT NULL,
338
- name TEXT NOT NULL,
339
- target_type TEXT NOT NULL,
340
- config JSONB NOT NULL DEFAULT '{}',
341
- created_by TEXT NOT NULL,
342
- created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
343
- updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
344
- );
345
- CREATE INDEX IF NOT EXISTS idx_deploy_creds_org ON deploy_credentials(org_id);
346
- CREATE INDEX IF NOT EXISTS idx_deploy_creds_type ON deploy_credentials(target_type);
347
-
348
- CREATE TABLE IF NOT EXISTS oidc_states (
349
- state TEXT PRIMARY KEY,
350
- provider_id TEXT NOT NULL,
351
- redirect_uri TEXT,
352
- nonce TEXT,
353
- code_verifier TEXT,
354
- created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
355
- expires_at TIMESTAMPTZ NOT NULL
356
- );
357
- `,
358
- },
359
- {
360
- version: 3,
361
- name: 'autonomous_employee_trust',
362
- sql: `
363
- -- Per-agent budget config (extends managed_agents)
364
- ALTER TABLE managed_agents ADD COLUMN budget_config JSON DEFAULT '{}';
365
-
366
- -- Budget alerts log
367
- CREATE TABLE IF NOT EXISTS budget_alerts (
368
- id TEXT PRIMARY KEY,
369
- org_id TEXT NOT NULL,
370
- agent_id TEXT NOT NULL,
371
- alert_type TEXT NOT NULL,
372
- budget_type TEXT NOT NULL,
373
- current_value REAL NOT NULL,
374
- limit_value REAL NOT NULL,
375
- acknowledged INTEGER NOT NULL DEFAULT 0,
376
- created_at TEXT NOT NULL DEFAULT (datetime('now'))
377
- );
378
- CREATE INDEX IF NOT EXISTS idx_budget_alerts_org ON budget_alerts(org_id);
379
- CREATE INDEX IF NOT EXISTS idx_budget_alerts_agent ON budget_alerts(agent_id);
380
-
381
- -- Escalation chains (multi-level approval workflows)
382
- CREATE TABLE IF NOT EXISTS escalation_chains (
383
- id TEXT PRIMARY KEY,
384
- org_id TEXT NOT NULL,
385
- name TEXT NOT NULL,
386
- description TEXT,
387
- levels JSON NOT NULL,
388
- fallback_action TEXT NOT NULL DEFAULT 'deny',
389
- enabled INTEGER NOT NULL DEFAULT 1,
390
- created_at TEXT NOT NULL DEFAULT (datetime('now')),
391
- updated_at TEXT NOT NULL DEFAULT (datetime('now'))
392
- );
393
- CREATE INDEX IF NOT EXISTS idx_escalation_org ON escalation_chains(org_id);
394
-
395
- -- Escalation tracking on approval requests
396
- ALTER TABLE approval_requests ADD COLUMN escalation_chain_id TEXT;
397
- ALTER TABLE approval_requests ADD COLUMN escalation_level INTEGER DEFAULT 0;
398
- ALTER TABLE approval_requests ADD COLUMN escalation_history JSON DEFAULT '[]';
399
-
400
- -- DLP rules
401
- CREATE TABLE IF NOT EXISTS dlp_rules (
402
- id TEXT PRIMARY KEY,
403
- org_id TEXT NOT NULL,
404
- name TEXT NOT NULL,
405
- description TEXT,
406
- pattern_type TEXT NOT NULL,
407
- pattern TEXT NOT NULL,
408
- action TEXT NOT NULL DEFAULT 'block',
409
- applies_to TEXT NOT NULL DEFAULT 'both',
410
- severity TEXT NOT NULL DEFAULT 'high',
411
- enabled INTEGER NOT NULL DEFAULT 1,
412
- created_at TEXT NOT NULL DEFAULT (datetime('now')),
413
- updated_at TEXT NOT NULL DEFAULT (datetime('now'))
414
- );
415
- CREATE INDEX IF NOT EXISTS idx_dlp_rules_org ON dlp_rules(org_id);
416
-
417
- -- DLP violations log
418
- CREATE TABLE IF NOT EXISTS dlp_violations (
419
- id TEXT PRIMARY KEY,
420
- org_id TEXT NOT NULL,
421
- agent_id TEXT NOT NULL,
422
- rule_id TEXT NOT NULL,
423
- tool_id TEXT NOT NULL,
424
- action_taken TEXT NOT NULL,
425
- match_context TEXT,
426
- direction TEXT NOT NULL,
427
- created_at TEXT NOT NULL DEFAULT (datetime('now'))
428
- );
429
- CREATE INDEX IF NOT EXISTS idx_dlp_violations_org ON dlp_violations(org_id);
430
- CREATE INDEX IF NOT EXISTS idx_dlp_violations_agent ON dlp_violations(agent_id);
431
-
432
- -- Agent-to-agent messages
433
- CREATE TABLE IF NOT EXISTS agent_messages (
434
- id TEXT PRIMARY KEY,
435
- org_id TEXT NOT NULL,
436
- from_agent_id TEXT NOT NULL,
437
- to_agent_id TEXT NOT NULL,
438
- type TEXT NOT NULL DEFAULT 'message',
439
- subject TEXT,
440
- content TEXT NOT NULL,
441
- metadata JSON NOT NULL DEFAULT '{}',
442
- status TEXT NOT NULL DEFAULT 'pending',
443
- parent_id TEXT,
444
- priority TEXT NOT NULL DEFAULT 'normal',
445
- created_at TEXT NOT NULL DEFAULT (datetime('now')),
446
- updated_at TEXT NOT NULL DEFAULT (datetime('now'))
447
- );
448
- CREATE INDEX IF NOT EXISTS idx_agent_messages_org ON agent_messages(org_id);
449
- CREATE INDEX IF NOT EXISTS idx_agent_messages_to ON agent_messages(to_agent_id);
450
- CREATE INDEX IF NOT EXISTS idx_agent_messages_from ON agent_messages(from_agent_id);
451
- CREATE INDEX IF NOT EXISTS idx_agent_messages_status ON agent_messages(status);
452
-
453
- -- Interventions (pause/resume/kill records)
454
- CREATE TABLE IF NOT EXISTS interventions (
455
- id TEXT PRIMARY KEY,
456
- org_id TEXT NOT NULL,
457
- agent_id TEXT NOT NULL,
458
- type TEXT NOT NULL,
459
- reason TEXT NOT NULL,
460
- triggered_by TEXT NOT NULL,
461
- metadata JSON NOT NULL DEFAULT '{}',
462
- created_at TEXT NOT NULL DEFAULT (datetime('now'))
463
- );
464
- CREATE INDEX IF NOT EXISTS idx_interventions_org ON interventions(org_id);
465
- CREATE INDEX IF NOT EXISTS idx_interventions_agent ON interventions(agent_id);
466
-
467
- -- Anomaly detection rules
468
- CREATE TABLE IF NOT EXISTS anomaly_rules (
469
- id TEXT PRIMARY KEY,
470
- org_id TEXT NOT NULL,
471
- name TEXT NOT NULL,
472
- description TEXT,
473
- rule_type TEXT NOT NULL,
474
- config JSON NOT NULL,
475
- action TEXT NOT NULL DEFAULT 'alert',
476
- enabled INTEGER NOT NULL DEFAULT 1,
477
- created_at TEXT NOT NULL DEFAULT (datetime('now')),
478
- updated_at TEXT NOT NULL DEFAULT (datetime('now'))
479
- );
480
- CREATE INDEX IF NOT EXISTS idx_anomaly_rules_org ON anomaly_rules(org_id);
481
-
482
- -- Action journal (for rollback)
483
- CREATE TABLE IF NOT EXISTS action_journal (
484
- id TEXT PRIMARY KEY,
485
- org_id TEXT NOT NULL,
486
- agent_id TEXT NOT NULL,
487
- session_id TEXT,
488
- tool_id TEXT NOT NULL,
489
- tool_name TEXT NOT NULL,
490
- action_type TEXT NOT NULL,
491
- forward_data JSON NOT NULL,
492
- reverse_data JSON,
493
- reversible INTEGER NOT NULL DEFAULT 0,
494
- reversed INTEGER NOT NULL DEFAULT 0,
495
- reversed_at TEXT,
496
- reversed_by TEXT,
497
- created_at TEXT NOT NULL DEFAULT (datetime('now'))
498
- );
499
- CREATE INDEX IF NOT EXISTS idx_action_journal_org ON action_journal(org_id);
500
- CREATE INDEX IF NOT EXISTS idx_action_journal_agent ON action_journal(agent_id);
501
- CREATE INDEX IF NOT EXISTS idx_action_journal_reversible ON action_journal(reversible);
502
-
503
- -- Compliance reports
504
- CREATE TABLE IF NOT EXISTS compliance_reports (
505
- id TEXT PRIMARY KEY,
506
- org_id TEXT NOT NULL,
507
- type TEXT NOT NULL,
508
- title TEXT NOT NULL,
509
- parameters JSON NOT NULL DEFAULT '{}',
510
- status TEXT NOT NULL DEFAULT 'generating',
511
- data JSON,
512
- format TEXT NOT NULL DEFAULT 'json',
513
- generated_by TEXT NOT NULL,
514
- error TEXT,
515
- created_at TEXT NOT NULL DEFAULT (datetime('now'))
516
- );
517
- CREATE INDEX IF NOT EXISTS idx_compliance_reports_org ON compliance_reports(org_id);
518
- CREATE INDEX IF NOT EXISTS idx_compliance_reports_type ON compliance_reports(type);
519
- `,
520
- },
521
- {
522
- version: 4,
523
- name: 'communication_topology',
524
- sql: `
525
- -- Add direction and channel columns to agent_messages for traffic classification
526
- ALTER TABLE agent_messages ADD COLUMN direction TEXT DEFAULT 'internal';
527
- ALTER TABLE agent_messages ADD COLUMN channel TEXT DEFAULT 'direct';
528
- CREATE INDEX IF NOT EXISTS idx_agent_messages_direction ON agent_messages(direction);
529
- CREATE INDEX IF NOT EXISTS idx_agent_messages_channel ON agent_messages(channel);
530
- `,
531
- },
532
- {
533
- version: 5,
534
- name: 'communication_task_fields_and_compliance',
535
- sql: `
536
- -- Add task lifecycle columns to agent_messages
537
- ALTER TABLE agent_messages ADD COLUMN deadline TEXT;
538
- ALTER TABLE agent_messages ADD COLUMN claimed_at TEXT;
539
- ALTER TABLE agent_messages ADD COLUMN completed_at TEXT;
540
-
541
- -- Add completed_at to compliance reports
542
- ALTER TABLE compliance_reports ADD COLUMN completed_at TEXT;
543
- `,
544
- },
545
- {
546
- version: 6,
547
- name: 'community_skill_registry',
548
- sql: `
549
- -- Community skill index (global marketplace catalog)
550
- CREATE TABLE IF NOT EXISTS community_skill_index (
551
- id TEXT PRIMARY KEY,
552
- name TEXT NOT NULL,
553
- description TEXT NOT NULL,
554
- version TEXT NOT NULL DEFAULT '1.0.0',
555
- author TEXT NOT NULL,
556
- repository TEXT NOT NULL,
557
- license TEXT NOT NULL DEFAULT 'MIT',
558
- category TEXT,
559
- risk TEXT DEFAULT 'medium',
560
- icon TEXT,
561
- tags JSON NOT NULL DEFAULT '[]',
562
- tools JSON NOT NULL DEFAULT '[]',
563
- config_schema JSON NOT NULL DEFAULT '{}',
564
- min_engine_version TEXT,
565
- homepage TEXT,
566
- downloads INTEGER NOT NULL DEFAULT 0,
567
- rating REAL NOT NULL DEFAULT 0,
568
- rating_count INTEGER NOT NULL DEFAULT 0,
569
- verified INTEGER NOT NULL DEFAULT 0,
570
- featured INTEGER NOT NULL DEFAULT 0,
571
- created_at TEXT NOT NULL DEFAULT (datetime('now')),
572
- updated_at TEXT NOT NULL DEFAULT (datetime('now'))
573
- );
574
- CREATE INDEX IF NOT EXISTS idx_csi_category ON community_skill_index(category);
575
- CREATE INDEX IF NOT EXISTS idx_csi_author ON community_skill_index(author);
576
- CREATE INDEX IF NOT EXISTS idx_csi_featured ON community_skill_index(featured);
577
- CREATE INDEX IF NOT EXISTS idx_csi_verified ON community_skill_index(verified);
578
- CREATE INDEX IF NOT EXISTS idx_csi_downloads ON community_skill_index(downloads);
579
-
580
- -- Per-org installed community skills
581
- CREATE TABLE IF NOT EXISTS community_skill_installed (
582
- id TEXT PRIMARY KEY,
583
- org_id TEXT NOT NULL,
584
- skill_id TEXT NOT NULL,
585
- version TEXT NOT NULL,
586
- enabled INTEGER NOT NULL DEFAULT 1,
587
- config JSON NOT NULL DEFAULT '{}',
588
- installed_by TEXT NOT NULL,
589
- installed_at TEXT NOT NULL DEFAULT (datetime('now')),
590
- updated_at TEXT NOT NULL DEFAULT (datetime('now'))
591
- );
592
- CREATE INDEX IF NOT EXISTS idx_csinst_org ON community_skill_installed(org_id);
593
- CREATE INDEX IF NOT EXISTS idx_csinst_skill ON community_skill_installed(skill_id);
594
- CREATE UNIQUE INDEX IF NOT EXISTS idx_csinst_org_skill ON community_skill_installed(org_id, skill_id);
595
-
596
- -- Reviews and ratings for community skills (global, not org-scoped)
597
- CREATE TABLE IF NOT EXISTS community_skill_reviews (
598
- id TEXT PRIMARY KEY,
599
- skill_id TEXT NOT NULL,
600
- org_id TEXT NOT NULL DEFAULT 'global',
601
- user_id TEXT NOT NULL,
602
- user_name TEXT,
603
- rating INTEGER NOT NULL CHECK (rating >= 1 AND rating <= 5),
604
- review_text TEXT,
605
- created_at TEXT NOT NULL DEFAULT (datetime('now'))
606
- );
607
- CREATE INDEX IF NOT EXISTS idx_csrev_skill ON community_skill_reviews(skill_id);
608
- `,
609
- },
610
- {
611
- version: 7,
612
- name: 'domain_registration',
613
- sql: `
614
- ALTER TABLE company_settings ADD COLUMN deployment_key_hash TEXT;
615
- ALTER TABLE company_settings ADD COLUMN domain_registration_id TEXT;
616
- ALTER TABLE company_settings ADD COLUMN domain_dns_challenge TEXT;
617
- ALTER TABLE company_settings ADD COLUMN domain_verified_at TEXT;
618
- ALTER TABLE company_settings ADD COLUMN domain_registered_at TEXT;
619
- ALTER TABLE company_settings ADD COLUMN domain_status TEXT DEFAULT 'unregistered';
620
- `,
621
- postgres: `
622
- ALTER TABLE company_settings ADD COLUMN IF NOT EXISTS deployment_key_hash TEXT;
623
- ALTER TABLE company_settings ADD COLUMN IF NOT EXISTS domain_registration_id TEXT;
624
- ALTER TABLE company_settings ADD COLUMN IF NOT EXISTS domain_dns_challenge TEXT;
625
- ALTER TABLE company_settings ADD COLUMN IF NOT EXISTS domain_verified_at TIMESTAMPTZ;
626
- ALTER TABLE company_settings ADD COLUMN IF NOT EXISTS domain_registered_at TIMESTAMPTZ;
627
- ALTER TABLE company_settings ADD COLUMN IF NOT EXISTS domain_status TEXT DEFAULT 'unregistered';
628
- `,
629
- mysql: `
630
- ALTER TABLE company_settings ADD COLUMN deployment_key_hash TEXT;
631
- ALTER TABLE company_settings ADD COLUMN domain_registration_id VARCHAR(255);
632
- ALTER TABLE company_settings ADD COLUMN domain_dns_challenge TEXT;
633
- ALTER TABLE company_settings ADD COLUMN domain_verified_at DATETIME;
634
- ALTER TABLE company_settings ADD COLUMN domain_registered_at DATETIME;
635
- ALTER TABLE company_settings ADD COLUMN domain_status VARCHAR(20) DEFAULT 'unregistered';
636
- `,
637
- nosql: async () => {
638
- // MongoDB and DynamoDB are schema-less; new fields added dynamically via updateSettings()
639
- },
640
- },
641
- {
642
- version: 8,
643
- name: 'workforce_management',
644
- sql: `
645
- -- Work schedules (per-agent shift configuration)
646
- CREATE TABLE IF NOT EXISTS work_schedules (
647
- id TEXT PRIMARY KEY,
648
- agent_id TEXT NOT NULL UNIQUE,
649
- org_id TEXT NOT NULL,
650
- timezone TEXT NOT NULL DEFAULT 'UTC',
651
- schedule_type TEXT NOT NULL DEFAULT 'standard',
652
- config JSON NOT NULL DEFAULT '{}',
653
- enforce_clock_in INTEGER NOT NULL DEFAULT 1,
654
- enforce_clock_out INTEGER NOT NULL DEFAULT 1,
655
- auto_wake_enabled INTEGER NOT NULL DEFAULT 1,
656
- off_hours_action TEXT NOT NULL DEFAULT 'pause',
657
- grace_period_minutes INTEGER NOT NULL DEFAULT 5,
658
- enabled INTEGER NOT NULL DEFAULT 1,
659
- created_at TEXT NOT NULL DEFAULT (datetime('now')),
660
- updated_at TEXT NOT NULL DEFAULT (datetime('now'))
661
- );
662
- CREATE INDEX IF NOT EXISTS idx_work_schedules_agent ON work_schedules(agent_id);
663
- CREATE INDEX IF NOT EXISTS idx_work_schedules_org ON work_schedules(org_id);
664
-
665
- -- Clock records (audit trail for clock-in/out events)
666
- CREATE TABLE IF NOT EXISTS clock_records (
667
- id TEXT PRIMARY KEY,
668
- agent_id TEXT NOT NULL,
669
- org_id TEXT NOT NULL,
670
- type TEXT NOT NULL,
671
- triggered_by TEXT NOT NULL,
672
- scheduled_at TEXT,
673
- actual_at TEXT NOT NULL,
674
- reason TEXT,
675
- metadata JSON NOT NULL DEFAULT '{}',
676
- created_at TEXT NOT NULL DEFAULT (datetime('now'))
677
- );
678
- CREATE INDEX IF NOT EXISTS idx_clock_records_agent ON clock_records(agent_id);
679
- CREATE INDEX IF NOT EXISTS idx_clock_records_org ON clock_records(org_id);
680
- CREATE INDEX IF NOT EXISTS idx_clock_records_type ON clock_records(type);
681
- CREATE INDEX IF NOT EXISTS idx_clock_records_time ON clock_records(created_at);
682
-
683
- -- Task queue (work continuity between sessions)
684
- CREATE TABLE IF NOT EXISTS task_queue (
685
- id TEXT PRIMARY KEY,
686
- agent_id TEXT NOT NULL,
687
- org_id TEXT NOT NULL,
688
- type TEXT NOT NULL DEFAULT 'continue',
689
- title TEXT NOT NULL,
690
- description TEXT,
691
- context JSON NOT NULL DEFAULT '{}',
692
- priority TEXT NOT NULL DEFAULT 'normal',
693
- status TEXT NOT NULL DEFAULT 'queued',
694
- source TEXT NOT NULL DEFAULT 'system',
695
- scheduled_for TEXT,
696
- started_at TEXT,
697
- completed_at TEXT,
698
- created_at TEXT NOT NULL DEFAULT (datetime('now')),
699
- updated_at TEXT NOT NULL DEFAULT (datetime('now'))
700
- );
701
- CREATE INDEX IF NOT EXISTS idx_task_queue_agent ON task_queue(agent_id);
702
- CREATE INDEX IF NOT EXISTS idx_task_queue_org ON task_queue(org_id);
703
- CREATE INDEX IF NOT EXISTS idx_task_queue_status ON task_queue(status);
704
- `,
705
- postgres: `
706
- CREATE TABLE IF NOT EXISTS work_schedules (
707
- id TEXT PRIMARY KEY,
708
- agent_id TEXT NOT NULL UNIQUE,
709
- org_id TEXT NOT NULL,
710
- timezone TEXT NOT NULL DEFAULT 'UTC',
711
- schedule_type TEXT NOT NULL DEFAULT 'standard',
712
- config JSONB NOT NULL DEFAULT '{}',
713
- enforce_clock_in BOOLEAN NOT NULL DEFAULT TRUE,
714
- enforce_clock_out BOOLEAN NOT NULL DEFAULT TRUE,
715
- auto_wake_enabled BOOLEAN NOT NULL DEFAULT TRUE,
716
- off_hours_action TEXT NOT NULL DEFAULT 'pause',
717
- grace_period_minutes INTEGER NOT NULL DEFAULT 5,
718
- enabled BOOLEAN NOT NULL DEFAULT TRUE,
719
- created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
720
- updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
721
- );
722
- CREATE INDEX IF NOT EXISTS idx_work_schedules_agent ON work_schedules(agent_id);
723
- CREATE INDEX IF NOT EXISTS idx_work_schedules_org ON work_schedules(org_id);
724
-
725
- CREATE TABLE IF NOT EXISTS clock_records (
726
- id TEXT PRIMARY KEY,
727
- agent_id TEXT NOT NULL,
728
- org_id TEXT NOT NULL,
729
- type TEXT NOT NULL,
730
- triggered_by TEXT NOT NULL,
731
- scheduled_at TIMESTAMPTZ,
732
- actual_at TIMESTAMPTZ NOT NULL,
733
- reason TEXT,
734
- metadata JSONB NOT NULL DEFAULT '{}',
735
- created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
736
- );
737
- CREATE INDEX IF NOT EXISTS idx_clock_records_agent ON clock_records(agent_id);
738
- CREATE INDEX IF NOT EXISTS idx_clock_records_org ON clock_records(org_id);
739
- CREATE INDEX IF NOT EXISTS idx_clock_records_type ON clock_records(type);
740
- CREATE INDEX IF NOT EXISTS idx_clock_records_time ON clock_records(created_at);
741
-
742
- CREATE TABLE IF NOT EXISTS task_queue (
743
- id TEXT PRIMARY KEY,
744
- agent_id TEXT NOT NULL,
745
- org_id TEXT NOT NULL,
746
- type TEXT NOT NULL DEFAULT 'continue',
747
- title TEXT NOT NULL,
748
- description TEXT,
749
- context JSONB NOT NULL DEFAULT '{}',
750
- priority TEXT NOT NULL DEFAULT 'normal',
751
- status TEXT NOT NULL DEFAULT 'queued',
752
- source TEXT NOT NULL DEFAULT 'system',
753
- scheduled_for TIMESTAMPTZ,
754
- started_at TIMESTAMPTZ,
755
- completed_at TIMESTAMPTZ,
756
- created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
757
- updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
758
- );
759
- CREATE INDEX IF NOT EXISTS idx_task_queue_agent ON task_queue(agent_id);
760
- CREATE INDEX IF NOT EXISTS idx_task_queue_org ON task_queue(org_id);
761
- CREATE INDEX IF NOT EXISTS idx_task_queue_status ON task_queue(status);
762
- `,
763
- },
764
- {
765
- version: 9,
766
- name: 'guardrails_policies_memory_onboarding',
767
- sql: `
768
- -- Organization policies (the "employee handbook" for AI agents)
769
- CREATE TABLE IF NOT EXISTS org_policies (
770
- id TEXT PRIMARY KEY,
771
- org_id TEXT NOT NULL,
772
- name TEXT NOT NULL,
773
- category TEXT NOT NULL,
774
- description TEXT,
775
- content TEXT NOT NULL,
776
- priority INTEGER NOT NULL DEFAULT 0,
777
- version INTEGER NOT NULL DEFAULT 1,
778
- enforcement TEXT NOT NULL DEFAULT 'mandatory',
779
- applies_to JSON NOT NULL DEFAULT '["*"]',
780
- tags JSON NOT NULL DEFAULT '[]',
781
- enabled INTEGER NOT NULL DEFAULT 1,
782
- created_by TEXT NOT NULL DEFAULT 'system',
783
- created_at TEXT NOT NULL DEFAULT (datetime('now')),
784
- updated_at TEXT NOT NULL DEFAULT (datetime('now'))
785
- );
786
- CREATE INDEX IF NOT EXISTS idx_org_policies_org ON org_policies(org_id);
787
- CREATE INDEX IF NOT EXISTS idx_org_policies_category ON org_policies(category);
788
-
789
- -- Agent memory entries (persistent learning and growth)
790
- CREATE TABLE IF NOT EXISTS agent_memory (
791
- id TEXT PRIMARY KEY,
792
- agent_id TEXT NOT NULL,
793
- org_id TEXT NOT NULL,
794
- category TEXT NOT NULL,
795
- title TEXT NOT NULL,
796
- content TEXT NOT NULL,
797
- source TEXT NOT NULL DEFAULT 'interaction',
798
- importance TEXT NOT NULL DEFAULT 'normal',
799
- confidence REAL NOT NULL DEFAULT 1.0,
800
- access_count INTEGER NOT NULL DEFAULT 0,
801
- last_accessed_at TEXT,
802
- expires_at TEXT,
803
- tags JSON NOT NULL DEFAULT '[]',
804
- metadata JSON NOT NULL DEFAULT '{}',
805
- created_at TEXT NOT NULL DEFAULT (datetime('now')),
806
- updated_at TEXT NOT NULL DEFAULT (datetime('now'))
807
- );
808
- CREATE INDEX IF NOT EXISTS idx_agent_memory_agent ON agent_memory(agent_id);
809
- CREATE INDEX IF NOT EXISTS idx_agent_memory_org ON agent_memory(org_id);
810
- CREATE INDEX IF NOT EXISTS idx_agent_memory_category ON agent_memory(category);
811
-
812
- -- Onboarding records (tracking policy acknowledgment per agent)
813
- CREATE TABLE IF NOT EXISTS onboarding_records (
814
- id TEXT PRIMARY KEY,
815
- agent_id TEXT NOT NULL,
816
- org_id TEXT NOT NULL,
817
- policy_id TEXT NOT NULL,
818
- status TEXT NOT NULL DEFAULT 'pending',
819
- acknowledged_at TEXT,
820
- memory_entry_id TEXT,
821
- verification_hash TEXT,
822
- metadata JSON NOT NULL DEFAULT '{}',
823
- created_at TEXT NOT NULL DEFAULT (datetime('now')),
824
- updated_at TEXT NOT NULL DEFAULT (datetime('now'))
825
- );
826
- CREATE INDEX IF NOT EXISTS idx_onboarding_agent ON onboarding_records(agent_id);
827
- CREATE INDEX IF NOT EXISTS idx_onboarding_policy ON onboarding_records(policy_id);
828
- CREATE UNIQUE INDEX IF NOT EXISTS idx_onboarding_agent_policy ON onboarding_records(agent_id, policy_id);
829
-
830
- -- Extended guardrail rules (superset of anomaly_rules with more categories)
831
- CREATE TABLE IF NOT EXISTS guardrail_rules (
832
- id TEXT PRIMARY KEY,
833
- org_id TEXT NOT NULL,
834
- name TEXT NOT NULL,
835
- description TEXT,
836
- category TEXT NOT NULL,
837
- rule_type TEXT NOT NULL,
838
- conditions JSON NOT NULL DEFAULT '{}',
839
- action TEXT NOT NULL DEFAULT 'alert',
840
- severity TEXT NOT NULL DEFAULT 'medium',
841
- cooldown_minutes INTEGER NOT NULL DEFAULT 0,
842
- last_triggered_at TEXT,
843
- trigger_count INTEGER NOT NULL DEFAULT 0,
844
- enabled INTEGER NOT NULL DEFAULT 1,
845
- created_by TEXT NOT NULL DEFAULT 'system',
846
- created_at TEXT NOT NULL DEFAULT (datetime('now')),
847
- updated_at TEXT NOT NULL DEFAULT (datetime('now'))
848
- );
849
- CREATE INDEX IF NOT EXISTS idx_guardrail_rules_org ON guardrail_rules(org_id);
850
- CREATE INDEX IF NOT EXISTS idx_guardrail_rules_category ON guardrail_rules(category);
851
- `,
852
- postgres: `
853
- CREATE TABLE IF NOT EXISTS org_policies (
854
- id TEXT PRIMARY KEY,
855
- org_id TEXT NOT NULL,
856
- name TEXT NOT NULL,
857
- category TEXT NOT NULL,
858
- description TEXT,
859
- content TEXT NOT NULL,
860
- priority INTEGER NOT NULL DEFAULT 0,
861
- version INTEGER NOT NULL DEFAULT 1,
862
- enforcement TEXT NOT NULL DEFAULT 'mandatory',
863
- applies_to JSONB NOT NULL DEFAULT '["*"]',
864
- tags JSONB NOT NULL DEFAULT '[]',
865
- enabled BOOLEAN NOT NULL DEFAULT TRUE,
866
- created_by TEXT NOT NULL DEFAULT 'system',
867
- created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
868
- updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
869
- );
870
- CREATE INDEX IF NOT EXISTS idx_org_policies_org ON org_policies(org_id);
871
- CREATE INDEX IF NOT EXISTS idx_org_policies_category ON org_policies(category);
872
-
873
- CREATE TABLE IF NOT EXISTS agent_memory (
874
- id TEXT PRIMARY KEY,
875
- agent_id TEXT NOT NULL,
876
- org_id TEXT NOT NULL,
877
- category TEXT NOT NULL,
878
- title TEXT NOT NULL,
879
- content TEXT NOT NULL,
880
- source TEXT NOT NULL DEFAULT 'interaction',
881
- importance TEXT NOT NULL DEFAULT 'normal',
882
- confidence REAL NOT NULL DEFAULT 1.0,
883
- access_count INTEGER NOT NULL DEFAULT 0,
884
- last_accessed_at TIMESTAMPTZ,
885
- expires_at TIMESTAMPTZ,
886
- tags JSONB NOT NULL DEFAULT '[]',
887
- metadata JSONB NOT NULL DEFAULT '{}',
888
- created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
889
- updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
890
- );
891
- CREATE INDEX IF NOT EXISTS idx_agent_memory_agent ON agent_memory(agent_id);
892
- CREATE INDEX IF NOT EXISTS idx_agent_memory_org ON agent_memory(org_id);
893
- CREATE INDEX IF NOT EXISTS idx_agent_memory_category ON agent_memory(category);
894
-
895
- CREATE TABLE IF NOT EXISTS onboarding_records (
896
- id TEXT PRIMARY KEY,
897
- agent_id TEXT NOT NULL,
898
- org_id TEXT NOT NULL,
899
- policy_id TEXT NOT NULL,
900
- status TEXT NOT NULL DEFAULT 'pending',
901
- acknowledged_at TIMESTAMPTZ,
902
- memory_entry_id TEXT,
903
- verification_hash TEXT,
904
- metadata JSONB NOT NULL DEFAULT '{}',
905
- created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
906
- updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
907
- );
908
- CREATE INDEX IF NOT EXISTS idx_onboarding_agent ON onboarding_records(agent_id);
909
- CREATE INDEX IF NOT EXISTS idx_onboarding_policy ON onboarding_records(policy_id);
910
- CREATE UNIQUE INDEX IF NOT EXISTS idx_onboarding_agent_policy ON onboarding_records(agent_id, policy_id);
911
-
912
- CREATE TABLE IF NOT EXISTS guardrail_rules (
913
- id TEXT PRIMARY KEY,
914
- org_id TEXT NOT NULL,
915
- name TEXT NOT NULL,
916
- description TEXT,
917
- category TEXT NOT NULL,
918
- rule_type TEXT NOT NULL,
919
- conditions JSONB NOT NULL DEFAULT '{}',
920
- action TEXT NOT NULL DEFAULT 'alert',
921
- severity TEXT NOT NULL DEFAULT 'medium',
922
- cooldown_minutes INTEGER NOT NULL DEFAULT 0,
923
- last_triggered_at TIMESTAMPTZ,
924
- trigger_count INTEGER NOT NULL DEFAULT 0,
925
- enabled BOOLEAN NOT NULL DEFAULT TRUE,
926
- created_by TEXT NOT NULL DEFAULT 'system',
927
- created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
928
- updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
929
- );
930
- CREATE INDEX IF NOT EXISTS idx_guardrail_rules_org ON guardrail_rules(org_id);
931
- CREATE INDEX IF NOT EXISTS idx_guardrail_rules_category ON guardrail_rules(category);
932
- `,
933
- },
934
- {
935
- version: 10,
936
- name: 'vault_storage_policy_import',
937
- sql: `
938
- -- Vault entries (encrypted secrets at rest)
939
- CREATE TABLE IF NOT EXISTS vault_entries (
940
- id TEXT PRIMARY KEY,
941
- org_id TEXT NOT NULL,
942
- name TEXT NOT NULL,
943
- category TEXT NOT NULL DEFAULT 'custom',
944
- encrypted_value TEXT NOT NULL,
945
- metadata JSON NOT NULL DEFAULT '{}',
946
- created_by TEXT NOT NULL DEFAULT 'system',
947
- created_at TEXT NOT NULL DEFAULT (datetime('now')),
948
- updated_at TEXT NOT NULL DEFAULT (datetime('now')),
949
- rotated_at TEXT,
950
- expires_at TEXT
951
- );
952
- CREATE INDEX IF NOT EXISTS idx_vault_org ON vault_entries(org_id);
953
- CREATE INDEX IF NOT EXISTS idx_vault_category ON vault_entries(category);
954
- CREATE UNIQUE INDEX IF NOT EXISTS idx_vault_org_name ON vault_entries(org_id, name);
955
-
956
- -- Vault audit log (tracks every secret access for compliance)
957
- CREATE TABLE IF NOT EXISTS vault_audit_log (
958
- id TEXT PRIMARY KEY,
959
- org_id TEXT NOT NULL,
960
- vault_entry_id TEXT,
961
- action TEXT NOT NULL,
962
- actor TEXT NOT NULL,
963
- ip TEXT,
964
- metadata JSON NOT NULL DEFAULT '{}',
965
- created_at TEXT NOT NULL DEFAULT (datetime('now'))
966
- );
967
- CREATE INDEX IF NOT EXISTS idx_vault_audit_org ON vault_audit_log(org_id);
968
- CREATE INDEX IF NOT EXISTS idx_vault_audit_entry ON vault_audit_log(vault_entry_id);
969
-
970
- -- Org storage configurations
971
- CREATE TABLE IF NOT EXISTS org_storage_config (
972
- id TEXT PRIMARY KEY,
973
- org_id TEXT NOT NULL,
974
- storage_type TEXT NOT NULL DEFAULT 'local',
975
- config JSON NOT NULL DEFAULT '{}',
976
- vault_credential_id TEXT,
977
- enabled INTEGER NOT NULL DEFAULT 1,
978
- created_by TEXT NOT NULL DEFAULT 'system',
979
- created_at TEXT NOT NULL DEFAULT (datetime('now')),
980
- updated_at TEXT NOT NULL DEFAULT (datetime('now'))
981
- );
982
- CREATE UNIQUE INDEX IF NOT EXISTS idx_org_storage_org ON org_storage_config(org_id);
983
-
984
- -- Storage objects metadata
985
- CREATE TABLE IF NOT EXISTS storage_objects (
986
- id TEXT PRIMARY KEY,
987
- org_id TEXT NOT NULL,
988
- storage_key TEXT NOT NULL,
989
- original_name TEXT NOT NULL,
990
- content_type TEXT NOT NULL DEFAULT 'application/octet-stream',
991
- size INTEGER NOT NULL DEFAULT 0,
992
- related_type TEXT,
993
- related_id TEXT,
994
- metadata JSON NOT NULL DEFAULT '{}',
995
- created_by TEXT NOT NULL DEFAULT 'system',
996
- created_at TEXT NOT NULL DEFAULT (datetime('now'))
997
- );
998
- CREATE INDEX IF NOT EXISTS idx_storage_objects_org ON storage_objects(org_id);
999
- CREATE INDEX IF NOT EXISTS idx_storage_objects_related ON storage_objects(related_type, related_id);
1000
-
1001
- -- Policy import job tracking
1002
- CREATE TABLE IF NOT EXISTS policy_import_jobs (
1003
- id TEXT PRIMARY KEY,
1004
- org_id TEXT NOT NULL,
1005
- format TEXT NOT NULL,
1006
- status TEXT NOT NULL DEFAULT 'pending',
1007
- progress JSON NOT NULL DEFAULT '{}',
1008
- errors JSON NOT NULL DEFAULT '[]',
1009
- policy_ids JSON NOT NULL DEFAULT '[]',
1010
- created_by TEXT NOT NULL DEFAULT 'system',
1011
- created_at TEXT NOT NULL DEFAULT (datetime('now')),
1012
- completed_at TEXT
1013
- );
1014
- CREATE INDEX IF NOT EXISTS idx_import_jobs_org ON policy_import_jobs(org_id);
1015
- `,
1016
- postgres: `
1017
- CREATE TABLE IF NOT EXISTS vault_entries (
1018
- id TEXT PRIMARY KEY,
1019
- org_id TEXT NOT NULL,
1020
- name TEXT NOT NULL,
1021
- category TEXT NOT NULL DEFAULT 'custom',
1022
- encrypted_value TEXT NOT NULL,
1023
- metadata JSONB NOT NULL DEFAULT '{}',
1024
- created_by TEXT NOT NULL DEFAULT 'system',
1025
- created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
1026
- updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
1027
- rotated_at TIMESTAMPTZ,
1028
- expires_at TIMESTAMPTZ
1029
- );
1030
- CREATE INDEX IF NOT EXISTS idx_vault_org ON vault_entries(org_id);
1031
- CREATE INDEX IF NOT EXISTS idx_vault_category ON vault_entries(category);
1032
- CREATE UNIQUE INDEX IF NOT EXISTS idx_vault_org_name ON vault_entries(org_id, name);
1033
-
1034
- CREATE TABLE IF NOT EXISTS vault_audit_log (
1035
- id TEXT PRIMARY KEY,
1036
- org_id TEXT NOT NULL,
1037
- vault_entry_id TEXT,
1038
- action TEXT NOT NULL,
1039
- actor TEXT NOT NULL,
1040
- ip TEXT,
1041
- metadata JSONB NOT NULL DEFAULT '{}',
1042
- created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
1043
- );
1044
- CREATE INDEX IF NOT EXISTS idx_vault_audit_org ON vault_audit_log(org_id);
1045
- CREATE INDEX IF NOT EXISTS idx_vault_audit_entry ON vault_audit_log(vault_entry_id);
1046
-
1047
- CREATE TABLE IF NOT EXISTS org_storage_config (
1048
- id TEXT PRIMARY KEY,
1049
- org_id TEXT NOT NULL,
1050
- storage_type TEXT NOT NULL DEFAULT 'local',
1051
- config JSONB NOT NULL DEFAULT '{}',
1052
- vault_credential_id TEXT,
1053
- enabled BOOLEAN NOT NULL DEFAULT TRUE,
1054
- created_by TEXT NOT NULL DEFAULT 'system',
1055
- created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
1056
- updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
1057
- );
1058
- CREATE UNIQUE INDEX IF NOT EXISTS idx_org_storage_org ON org_storage_config(org_id);
1059
-
1060
- CREATE TABLE IF NOT EXISTS storage_objects (
1061
- id TEXT PRIMARY KEY,
1062
- org_id TEXT NOT NULL,
1063
- storage_key TEXT NOT NULL,
1064
- original_name TEXT NOT NULL,
1065
- content_type TEXT NOT NULL DEFAULT 'application/octet-stream',
1066
- size INTEGER NOT NULL DEFAULT 0,
1067
- related_type TEXT,
1068
- related_id TEXT,
1069
- metadata JSONB NOT NULL DEFAULT '{}',
1070
- created_by TEXT NOT NULL DEFAULT 'system',
1071
- created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
1072
- );
1073
- CREATE INDEX IF NOT EXISTS idx_storage_objects_org ON storage_objects(org_id);
1074
- CREATE INDEX IF NOT EXISTS idx_storage_objects_related ON storage_objects(related_type, related_id);
1075
-
1076
- CREATE TABLE IF NOT EXISTS policy_import_jobs (
1077
- id TEXT PRIMARY KEY,
1078
- org_id TEXT NOT NULL,
1079
- format TEXT NOT NULL,
1080
- status TEXT NOT NULL DEFAULT 'pending',
1081
- progress JSONB NOT NULL DEFAULT '{}',
1082
- errors JSONB NOT NULL DEFAULT '[]',
1083
- policy_ids JSONB NOT NULL DEFAULT '[]',
1084
- created_by TEXT NOT NULL DEFAULT 'system',
1085
- created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
1086
- completed_at TIMESTAMPTZ
1087
- );
1088
- CREATE INDEX IF NOT EXISTS idx_import_jobs_org ON policy_import_jobs(org_id);
1089
- `,
1090
- },
1091
- {
1092
- version: 11,
1093
- name: 'reviews_global_add_user_name',
1094
- sql: `ALTER TABLE community_skill_reviews ADD COLUMN user_name TEXT;`,
1095
- postgres: `ALTER TABLE community_skill_reviews ADD COLUMN IF NOT EXISTS user_name TEXT;`,
1096
- },
1097
- {
1098
- version: 12,
1099
- name: 'tool_security_config',
1100
- sql: `ALTER TABLE company_settings ADD COLUMN tool_security_config TEXT DEFAULT '{}';`,
1101
- postgres: `ALTER TABLE company_settings ADD COLUMN IF NOT EXISTS tool_security_config TEXT DEFAULT '{}';`,
1102
- mysql: `ALTER TABLE company_settings ADD COLUMN tool_security_config TEXT DEFAULT '{}';`,
1103
- nosql: async () => {
1104
- // MongoDB and DynamoDB are schema-less; new fields added dynamically via updateSettings()
1105
- },
1106
- },
1107
- {
1108
- version: 13,
1109
- name: 'firewall_config',
1110
- sql: `ALTER TABLE company_settings ADD COLUMN firewall_config TEXT DEFAULT '{}';`,
1111
- postgres: `ALTER TABLE company_settings ADD COLUMN IF NOT EXISTS firewall_config TEXT DEFAULT '{}';`,
1112
- mysql: `ALTER TABLE company_settings ADD COLUMN firewall_config TEXT DEFAULT '{}';`,
1113
- nosql: async () => {},
1114
- },
1115
- {
1116
- version: 14,
1117
- name: 'agent_runtime_sessions',
1118
- sql: `
1119
- -- Agent runtime sessions (standalone agent execution)
1120
- CREATE TABLE IF NOT EXISTS agent_sessions (
1121
- id TEXT PRIMARY KEY,
1122
- agent_id TEXT NOT NULL,
1123
- org_id TEXT NOT NULL DEFAULT 'default',
1124
- status TEXT NOT NULL DEFAULT 'active',
1125
- token_count INTEGER DEFAULT 0,
1126
- turn_count INTEGER DEFAULT 0,
1127
- parent_session_id TEXT,
1128
- created_at INTEGER NOT NULL,
1129
- updated_at INTEGER NOT NULL
1130
- );
1131
- CREATE INDEX IF NOT EXISTS idx_agent_sessions_agent ON agent_sessions(agent_id);
1132
- CREATE INDEX IF NOT EXISTS idx_agent_sessions_status ON agent_sessions(status);
1133
- CREATE INDEX IF NOT EXISTS idx_agent_sessions_parent ON agent_sessions(parent_session_id);
1134
-
1135
- -- Agent session messages (conversation history per session)
1136
- CREATE TABLE IF NOT EXISTS agent_session_messages (
1137
- id TEXT PRIMARY KEY,
1138
- session_id TEXT NOT NULL,
1139
- role TEXT NOT NULL,
1140
- content TEXT NOT NULL,
1141
- tool_calls TEXT,
1142
- tool_results TEXT,
1143
- created_at INTEGER NOT NULL,
1144
- FOREIGN KEY (session_id) REFERENCES agent_sessions(id) ON DELETE CASCADE
1145
- );
1146
- CREATE INDEX IF NOT EXISTS idx_session_messages_session ON agent_session_messages(session_id);
1147
- CREATE INDEX IF NOT EXISTS idx_session_messages_time ON agent_session_messages(created_at);
1148
- `,
1149
- postgres: `
1150
- CREATE TABLE IF NOT EXISTS agent_sessions (
1151
- id TEXT PRIMARY KEY,
1152
- agent_id TEXT NOT NULL,
1153
- org_id TEXT NOT NULL DEFAULT 'default',
1154
- status TEXT NOT NULL DEFAULT 'active',
1155
- token_count INTEGER DEFAULT 0,
1156
- turn_count INTEGER DEFAULT 0,
1157
- parent_session_id TEXT,
1158
- created_at BIGINT NOT NULL,
1159
- updated_at BIGINT NOT NULL
1160
- );
1161
- CREATE INDEX IF NOT EXISTS idx_agent_sessions_agent ON agent_sessions(agent_id);
1162
- CREATE INDEX IF NOT EXISTS idx_agent_sessions_status ON agent_sessions(status);
1163
- CREATE INDEX IF NOT EXISTS idx_agent_sessions_parent ON agent_sessions(parent_session_id);
1164
-
1165
- CREATE TABLE IF NOT EXISTS agent_session_messages (
1166
- id TEXT PRIMARY KEY,
1167
- session_id TEXT NOT NULL,
1168
- role TEXT NOT NULL,
1169
- content TEXT NOT NULL,
1170
- tool_calls TEXT,
1171
- tool_results TEXT,
1172
- created_at BIGINT NOT NULL,
1173
- FOREIGN KEY (session_id) REFERENCES agent_sessions(id) ON DELETE CASCADE
1174
- );
1175
- CREATE INDEX IF NOT EXISTS idx_session_messages_session ON agent_session_messages(session_id);
1176
- CREATE INDEX IF NOT EXISTS idx_session_messages_time ON agent_session_messages(created_at);
1177
- `,
1178
- },
1179
- {
1180
- version: 15,
1181
- name: 'long_running_sessions',
1182
- sql: `
1183
- -- Add heartbeat tracking to agent sessions
1184
- ALTER TABLE agent_sessions ADD COLUMN last_heartbeat_at INTEGER;
1185
- ALTER TABLE agent_sessions ADD COLUMN cost_usd REAL DEFAULT 0;
1186
- CREATE INDEX IF NOT EXISTS idx_agent_sessions_heartbeat ON agent_sessions(last_heartbeat_at);
1187
-
1188
- -- Persistent follow-ups (survive restarts)
1189
- CREATE TABLE IF NOT EXISTS agent_followups (
1190
- id TEXT PRIMARY KEY,
1191
- agent_id TEXT NOT NULL,
1192
- session_id TEXT,
1193
- message TEXT NOT NULL,
1194
- execute_at INTEGER NOT NULL,
1195
- status TEXT NOT NULL DEFAULT 'pending',
1196
- created_at INTEGER NOT NULL
1197
- );
1198
- CREATE INDEX IF NOT EXISTS idx_agent_followups_status ON agent_followups(status);
1199
- CREATE INDEX IF NOT EXISTS idx_agent_followups_execute ON agent_followups(execute_at);
1200
- CREATE INDEX IF NOT EXISTS idx_agent_followups_agent ON agent_followups(agent_id);
1201
- `,
1202
- postgres: `
1203
- ALTER TABLE agent_sessions ADD COLUMN IF NOT EXISTS last_heartbeat_at BIGINT;
1204
- ALTER TABLE agent_sessions ADD COLUMN IF NOT EXISTS cost_usd DOUBLE PRECISION DEFAULT 0;
1205
- CREATE INDEX IF NOT EXISTS idx_agent_sessions_heartbeat ON agent_sessions(last_heartbeat_at);
1206
-
1207
- CREATE TABLE IF NOT EXISTS agent_followups (
1208
- id TEXT PRIMARY KEY,
1209
- agent_id TEXT NOT NULL,
1210
- session_id TEXT,
1211
- message TEXT NOT NULL,
1212
- execute_at BIGINT NOT NULL,
1213
- status TEXT NOT NULL DEFAULT 'pending',
1214
- created_at BIGINT NOT NULL
1215
- );
1216
- CREATE INDEX IF NOT EXISTS idx_agent_followups_status ON agent_followups(status);
1217
- CREATE INDEX IF NOT EXISTS idx_agent_followups_execute ON agent_followups(execute_at);
1218
- CREATE INDEX IF NOT EXISTS idx_agent_followups_agent ON agent_followups(agent_id);
1219
- `,
1220
- mysql: `
1221
- ALTER TABLE agent_sessions ADD COLUMN last_heartbeat_at BIGINT;
1222
- ALTER TABLE agent_sessions ADD COLUMN cost_usd DOUBLE DEFAULT 0;
1223
- CREATE INDEX idx_agent_sessions_heartbeat ON agent_sessions(last_heartbeat_at);
1224
-
1225
- CREATE TABLE IF NOT EXISTS agent_followups (
1226
- id VARCHAR(255) PRIMARY KEY,
1227
- agent_id VARCHAR(255) NOT NULL,
1228
- session_id VARCHAR(255),
1229
- message TEXT NOT NULL,
1230
- execute_at BIGINT NOT NULL,
1231
- status VARCHAR(50) NOT NULL DEFAULT 'pending',
1232
- created_at BIGINT NOT NULL
1233
- );
1234
- CREATE INDEX idx_agent_followups_status ON agent_followups(status);
1235
- CREATE INDEX idx_agent_followups_execute ON agent_followups(execute_at);
1236
- CREATE INDEX idx_agent_followups_agent ON agent_followups(agent_id);
1237
- `,
1238
- },
1239
- {
1240
- version: 16,
1241
- name: 'model_pricing_config',
1242
- sql: `ALTER TABLE company_settings ADD COLUMN model_pricing_config TEXT DEFAULT '{}';`,
1243
- postgres: `ALTER TABLE company_settings ADD COLUMN IF NOT EXISTS model_pricing_config TEXT DEFAULT '{}';`,
1244
- mysql: `ALTER TABLE company_settings ADD COLUMN model_pricing_config TEXT DEFAULT '{}';`,
1245
- nosql: async () => {},
1246
- },
1247
- {
1248
- version: 17,
1249
- name: 'fix_version_column_type',
1250
- sql: `SELECT 1;`, // SQLite already uses INTEGER, no fix needed
1251
- postgres: `SELECT 1`,
1252
- mysql: `SELECT 1;`,
1253
- nosql: async () => {},
1254
- },
1255
- {
1256
- version: 18,
1257
- name: 'knowledge_contribution_bases',
1258
- sql: `
1259
- CREATE TABLE IF NOT EXISTS knowledge_contribution_bases (
1260
- id TEXT PRIMARY KEY,
1261
- org_id TEXT NOT NULL,
1262
- name TEXT NOT NULL,
1263
- description TEXT,
1264
- role TEXT NOT NULL DEFAULT 'general',
1265
- data JSON NOT NULL DEFAULT '{}',
1266
- created_at TEXT NOT NULL DEFAULT (datetime('now')),
1267
- updated_at TEXT NOT NULL DEFAULT (datetime('now'))
1268
- );
1269
- CREATE INDEX IF NOT EXISTS idx_kc_bases_org ON knowledge_contribution_bases(org_id);
1270
-
1271
- CREATE TABLE IF NOT EXISTS knowledge_contribution_entries (
1272
- id TEXT PRIMARY KEY,
1273
- base_id TEXT NOT NULL,
1274
- org_id TEXT NOT NULL,
1275
- source_agent_id TEXT NOT NULL,
1276
- category TEXT,
1277
- data JSON NOT NULL DEFAULT '{}',
1278
- created_at TEXT NOT NULL DEFAULT (datetime('now')),
1279
- FOREIGN KEY (base_id) REFERENCES knowledge_contribution_bases(id) ON DELETE CASCADE
1280
- );
1281
- CREATE INDEX IF NOT EXISTS idx_kc_entries_base ON knowledge_contribution_entries(base_id);
1282
- `,
1283
- postgres: `
1284
- CREATE TABLE IF NOT EXISTS knowledge_contribution_bases (
1285
- id TEXT PRIMARY KEY,
1286
- org_id TEXT NOT NULL,
1287
- name TEXT NOT NULL,
1288
- description TEXT,
1289
- role TEXT NOT NULL DEFAULT 'general',
1290
- data JSONB NOT NULL DEFAULT '{}',
1291
- created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
1292
- updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
1293
- );
1294
- CREATE INDEX IF NOT EXISTS idx_kc_bases_org ON knowledge_contribution_bases(org_id);
1295
-
1296
- CREATE TABLE IF NOT EXISTS knowledge_contribution_entries (
1297
- id TEXT PRIMARY KEY,
1298
- base_id TEXT NOT NULL,
1299
- org_id TEXT NOT NULL,
1300
- source_agent_id TEXT NOT NULL,
1301
- category TEXT,
1302
- data JSONB NOT NULL DEFAULT '{}',
1303
- created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
1304
- FOREIGN KEY (base_id) REFERENCES knowledge_contribution_bases(id) ON DELETE CASCADE
1305
- );
1306
- CREATE INDEX IF NOT EXISTS idx_kc_entries_base ON knowledge_contribution_entries(base_id);
1307
- `,
1308
- mysql: `SELECT 1;`,
1309
- nosql: async () => {},
1310
- },
1311
- {
1312
- version: 19,
1313
- name: 'knowledge_import_jobs',
1314
- sql: `
1315
- CREATE TABLE IF NOT EXISTS knowledge_import_jobs (
1316
- id TEXT PRIMARY KEY,
1317
- org_id TEXT NOT NULL,
1318
- base_id TEXT NOT NULL,
1319
- source_type TEXT NOT NULL,
1320
- status TEXT NOT NULL DEFAULT 'pending',
1321
- data TEXT NOT NULL DEFAULT '{}',
1322
- created_at TEXT NOT NULL DEFAULT (datetime('now')),
1323
- completed_at TEXT
1324
- );
1325
- CREATE INDEX IF NOT EXISTS idx_ki_jobs_org ON knowledge_import_jobs(org_id);
1326
- `,
1327
- postgres: `
1328
- CREATE TABLE IF NOT EXISTS knowledge_import_jobs (
1329
- id TEXT PRIMARY KEY,
1330
- org_id TEXT NOT NULL,
1331
- base_id TEXT NOT NULL,
1332
- source_type TEXT NOT NULL,
1333
- status TEXT NOT NULL DEFAULT 'pending',
1334
- data JSONB NOT NULL DEFAULT '{}',
1335
- created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
1336
- completed_at TIMESTAMPTZ
1337
- );
1338
- CREATE INDEX IF NOT EXISTS idx_ki_jobs_org ON knowledge_import_jobs(org_id);
1339
- `,
1340
- mysql: `SELECT 1;`,
1341
- nosql: async () => {},
1342
- },
1343
- {
1344
- version: 20,
1345
- name: 'knowledge_search_log',
1346
- sql: `
1347
- CREATE TABLE IF NOT EXISTS knowledge_search_log (
1348
- id TEXT PRIMARY KEY,
1349
- agent_id TEXT NOT NULL,
1350
- search_type TEXT NOT NULL,
1351
- query TEXT NOT NULL,
1352
- results_count INTEGER DEFAULT 0,
1353
- top_score REAL DEFAULT 0,
1354
- kb_ids TEXT,
1355
- duration_ms INTEGER DEFAULT 0,
1356
- was_helpful BOOLEAN DEFAULT FALSE,
1357
- timestamp TEXT NOT NULL
1358
- );
1359
- CREATE INDEX IF NOT EXISTS idx_ksl_agent ON knowledge_search_log(agent_id);
1360
- CREATE INDEX IF NOT EXISTS idx_ksl_ts ON knowledge_search_log(timestamp);
1361
- `,
1362
- postgres: `
1363
- CREATE TABLE IF NOT EXISTS knowledge_search_log (
1364
- id TEXT PRIMARY KEY,
1365
- agent_id TEXT NOT NULL,
1366
- search_type TEXT NOT NULL,
1367
- query TEXT NOT NULL,
1368
- results_count INTEGER DEFAULT 0,
1369
- top_score REAL DEFAULT 0,
1370
- kb_ids JSONB,
1371
- duration_ms INTEGER DEFAULT 0,
1372
- was_helpful BOOLEAN DEFAULT FALSE,
1373
- timestamp TIMESTAMPTZ NOT NULL DEFAULT NOW()
1374
- );
1375
- CREATE INDEX IF NOT EXISTS idx_ksl_agent ON knowledge_search_log(agent_id);
1376
- CREATE INDEX IF NOT EXISTS idx_ksl_ts ON knowledge_search_log(timestamp);
1377
- `,
1378
- mysql: `SELECT 1;`,
1379
- nosql: async () => {},
1380
- },
1381
- {
1382
- version: 21,
1383
- name: 'signature_template',
1384
- sql: `ALTER TABLE company_settings ADD COLUMN signature_template TEXT;`,
1385
- postgres: `ALTER TABLE company_settings ADD COLUMN IF NOT EXISTS signature_template TEXT;`,
1386
- mysql: `ALTER TABLE company_settings ADD COLUMN signature_template TEXT;`,
1387
- nosql: async () => {},
1388
- },
1389
- {
1390
- version: 22,
1391
- name: 'seed_community_skills',
1392
- // Marker migration — actual seeding is done by seedCommunitySkills() in db-adapter.ts
1393
- // which runs after all migrations complete. Uses INSERT ... ON CONFLICT DO NOTHING.
1394
- sql: `SELECT 1;`,
1395
- postgres: `SELECT 1;`,
1396
- mysql: `SELECT 1;`,
1397
- nosql: async () => {},
1398
- },
1399
- {
1400
- version: 23,
1401
- name: 'add_use_root_domain',
1402
- sql: `ALTER TABLE company_settings ADD COLUMN use_root_domain INTEGER DEFAULT 0;`,
1403
- postgres: `ALTER TABLE company_settings ADD COLUMN IF NOT EXISTS use_root_domain BOOLEAN DEFAULT FALSE;`,
1404
- mysql: `ALTER TABLE company_settings ADD COLUMN use_root_domain TINYINT DEFAULT 0;`,
1405
- nosql: async () => {},
1406
- },
1407
- {
1408
- version: 24,
1409
- name: 'comprehensive_security_system',
1410
- sql: `
1411
- -- Add security config columns
1412
- ALTER TABLE company_settings ADD COLUMN security_config TEXT DEFAULT '{}';
1413
- ALTER TABLE managed_agents ADD COLUMN security_overrides TEXT DEFAULT '{}';
1414
-
1415
- -- Security events log
1416
- CREATE TABLE IF NOT EXISTS security_events (
1417
- id TEXT PRIMARY KEY,
1418
- event_type TEXT NOT NULL,
1419
- severity TEXT NOT NULL,
1420
- agent_id TEXT,
1421
- details JSON NOT NULL DEFAULT '{}',
1422
- source_ip TEXT,
1423
- created_at TEXT NOT NULL DEFAULT (datetime('now'))
1424
- );
1425
- CREATE INDEX IF NOT EXISTS idx_security_events_type ON security_events(event_type);
1426
- CREATE INDEX IF NOT EXISTS idx_security_events_time ON security_events(created_at);
1427
- CREATE INDEX IF NOT EXISTS idx_security_events_agent ON security_events(agent_id);
1428
- CREATE INDEX IF NOT EXISTS idx_security_events_severity ON security_events(severity);
1429
- `,
1430
- postgres: `
1431
- ALTER TABLE company_settings ADD COLUMN IF NOT EXISTS security_config TEXT DEFAULT '{}';
1432
- ALTER TABLE managed_agents ADD COLUMN IF NOT EXISTS security_overrides TEXT DEFAULT '{}';
1433
-
1434
- CREATE TABLE IF NOT EXISTS security_events (
1435
- id TEXT PRIMARY KEY,
1436
- event_type TEXT NOT NULL,
1437
- severity TEXT NOT NULL,
1438
- agent_id TEXT,
1439
- details JSONB NOT NULL DEFAULT '{}',
1440
- source_ip TEXT,
1441
- created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
1442
- );
1443
- CREATE INDEX IF NOT EXISTS idx_security_events_type ON security_events(event_type);
1444
- CREATE INDEX IF NOT EXISTS idx_security_events_time ON security_events(created_at);
1445
- CREATE INDEX IF NOT EXISTS idx_security_events_agent ON security_events(agent_id);
1446
- CREATE INDEX IF NOT EXISTS idx_security_events_severity ON security_events(severity);
1447
- `,
1448
- mysql: `
1449
- ALTER TABLE company_settings ADD COLUMN security_config TEXT DEFAULT '{}';
1450
- ALTER TABLE managed_agents ADD COLUMN security_overrides TEXT DEFAULT '{}';
1451
-
1452
- CREATE TABLE IF NOT EXISTS security_events (
1453
- id VARCHAR(255) PRIMARY KEY,
1454
- event_type VARCHAR(100) NOT NULL,
1455
- severity VARCHAR(50) NOT NULL,
1456
- agent_id VARCHAR(255),
1457
- details JSON NOT NULL DEFAULT '{}',
1458
- source_ip VARCHAR(45),
1459
- created_at DATETIME NOT NULL DEFAULT NOW()
1460
- );
1461
- CREATE INDEX idx_security_events_type ON security_events(event_type);
1462
- CREATE INDEX idx_security_events_time ON security_events(created_at);
1463
- CREATE INDEX idx_security_events_agent ON security_events(agent_id);
1464
- CREATE INDEX idx_security_events_severity ON security_events(severity);
1465
- `,
1466
- nosql: async () => {},
1467
- },
1468
- {
1469
- version: 25,
1470
- name: 'messaging_history',
1471
- sql: `
1472
- CREATE TABLE IF NOT EXISTS messaging_history (
1473
- id INTEGER PRIMARY KEY AUTOINCREMENT,
1474
- agent_id TEXT NOT NULL,
1475
- platform TEXT NOT NULL,
1476
- contact_id TEXT NOT NULL,
1477
- direction TEXT NOT NULL,
1478
- sender_name TEXT,
1479
- message_text TEXT NOT NULL,
1480
- message_id TEXT,
1481
- is_group INTEGER NOT NULL DEFAULT 0,
1482
- group_name TEXT,
1483
- metadata TEXT DEFAULT '{}',
1484
- created_at TEXT NOT NULL DEFAULT (datetime('now'))
1485
- );
1486
- CREATE INDEX IF NOT EXISTS idx_mh_agent_contact ON messaging_history(agent_id, platform, contact_id, created_at);
1487
- CREATE INDEX IF NOT EXISTS idx_mh_agent_time ON messaging_history(agent_id, created_at);
1488
- `,
1489
- postgres: `
1490
- CREATE TABLE IF NOT EXISTS messaging_history (
1491
- id BIGSERIAL PRIMARY KEY,
1492
- agent_id TEXT NOT NULL,
1493
- platform TEXT NOT NULL,
1494
- contact_id TEXT NOT NULL,
1495
- direction TEXT NOT NULL CHECK (direction IN ('inbound', 'outbound')),
1496
- sender_name TEXT,
1497
- message_text TEXT NOT NULL,
1498
- message_id TEXT,
1499
- is_group BOOLEAN NOT NULL DEFAULT FALSE,
1500
- group_name TEXT,
1501
- metadata JSONB DEFAULT '{}',
1502
- created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
1503
- );
1504
- CREATE INDEX IF NOT EXISTS idx_mh_agent_contact ON messaging_history(agent_id, platform, contact_id, created_at DESC);
1505
- CREATE INDEX IF NOT EXISTS idx_mh_agent_time ON messaging_history(agent_id, created_at DESC);
1506
- `,
1507
- mysql: `
1508
- CREATE TABLE IF NOT EXISTS messaging_history (
1509
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
1510
- agent_id VARCHAR(255) NOT NULL,
1511
- platform VARCHAR(50) NOT NULL,
1512
- contact_id VARCHAR(255) NOT NULL,
1513
- direction VARCHAR(20) NOT NULL,
1514
- sender_name VARCHAR(255),
1515
- message_text TEXT NOT NULL,
1516
- message_id VARCHAR(255),
1517
- is_group BOOLEAN NOT NULL DEFAULT FALSE,
1518
- group_name VARCHAR(255),
1519
- metadata JSON DEFAULT '{}',
1520
- created_at DATETIME NOT NULL DEFAULT NOW(),
1521
- INDEX idx_mh_agent_contact (agent_id, platform, contact_id, created_at),
1522
- INDEX idx_mh_agent_time (agent_id, created_at)
1523
- );
1524
- `,
1525
- nosql: async () => {},
1526
- },
1527
- // v26: WhatsApp pairing requests table
1528
- {
1529
- version: 26,
1530
- name: 'add_whatsapp_pairing_requests',
1531
- sqlite: `
1532
- CREATE TABLE IF NOT EXISTS whatsapp_pairing_requests (
1533
- id INTEGER PRIMARY KEY AUTOINCREMENT,
1534
- agent_id TEXT NOT NULL,
1535
- phone TEXT NOT NULL,
1536
- name TEXT,
1537
- code TEXT NOT NULL,
1538
- status TEXT NOT NULL DEFAULT 'pending',
1539
- created_at TEXT NOT NULL DEFAULT (datetime('now'))
1540
- );
1541
- CREATE INDEX IF NOT EXISTS idx_wpr_agent ON whatsapp_pairing_requests(agent_id, status);
1542
- `,
1543
- postgres: `
1544
- CREATE TABLE IF NOT EXISTS whatsapp_pairing_requests (
1545
- id SERIAL PRIMARY KEY,
1546
- agent_id VARCHAR(255) NOT NULL,
1547
- phone VARCHAR(50) NOT NULL,
1548
- name VARCHAR(255),
1549
- code VARCHAR(20) NOT NULL,
1550
- status VARCHAR(20) NOT NULL DEFAULT 'pending',
1551
- created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
1552
- );
1553
- CREATE INDEX IF NOT EXISTS idx_wpr_agent ON whatsapp_pairing_requests(agent_id, status);
1554
- `,
1555
- mysql: `
1556
- CREATE TABLE IF NOT EXISTS whatsapp_pairing_requests (
1557
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
1558
- agent_id VARCHAR(255) NOT NULL,
1559
- phone VARCHAR(50) NOT NULL,
1560
- name VARCHAR(255),
1561
- code VARCHAR(20) NOT NULL,
1562
- status VARCHAR(20) NOT NULL DEFAULT 'pending',
1563
- created_at DATETIME NOT NULL DEFAULT NOW(),
1564
- INDEX idx_wpr_agent (agent_id, status)
1565
- );
1566
- `,
1567
- nosql: async () => {},
1568
- },
1569
-
1570
- // ─── Migration 27: Agent hierarchy (delegation, escalation) ───
1571
- {
1572
- version: 27,
1573
- name: 'add_agent_hierarchy_tables',
1574
- sqlite: `
1575
- CREATE TABLE IF NOT EXISTS agent_delegated_tasks (
1576
- id TEXT PRIMARY KEY,
1577
- from_agent_id TEXT NOT NULL,
1578
- to_agent_id TEXT NOT NULL,
1579
- title TEXT NOT NULL,
1580
- description TEXT,
1581
- priority TEXT DEFAULT 'medium',
1582
- status TEXT DEFAULT 'pending',
1583
- due_date TEXT,
1584
- result TEXT,
1585
- blocker_reason TEXT,
1586
- feedback TEXT,
1587
- created_at TEXT NOT NULL,
1588
- updated_at TEXT NOT NULL,
1589
- completed_at TEXT
1590
- );
1591
- CREATE INDEX IF NOT EXISTS idx_delegated_tasks_to ON agent_delegated_tasks(to_agent_id, status);
1592
- CREATE INDEX IF NOT EXISTS idx_delegated_tasks_from ON agent_delegated_tasks(from_agent_id, status);
1593
-
1594
- CREATE TABLE IF NOT EXISTS agent_escalations (
1595
- id TEXT PRIMARY KEY,
1596
- from_agent_id TEXT NOT NULL,
1597
- to_agent_id TEXT,
1598
- subject TEXT NOT NULL,
1599
- context TEXT,
1600
- status TEXT DEFAULT 'pending',
1601
- resolution TEXT,
1602
- created_at TEXT NOT NULL,
1603
- resolved_at TEXT,
1604
- updated_at TEXT
1605
- );
1606
- CREATE INDEX IF NOT EXISTS idx_escalations_to ON agent_escalations(to_agent_id, status);
1607
- `,
1608
- postgres: `
1609
- CREATE TABLE IF NOT EXISTS agent_delegated_tasks (
1610
- id VARCHAR(100) PRIMARY KEY,
1611
- from_agent_id VARCHAR(255) NOT NULL,
1612
- to_agent_id VARCHAR(255) NOT NULL,
1613
- title TEXT NOT NULL,
1614
- description TEXT,
1615
- priority VARCHAR(20) DEFAULT 'medium',
1616
- status VARCHAR(20) DEFAULT 'pending',
1617
- due_date TIMESTAMPTZ,
1618
- result TEXT,
1619
- blocker_reason TEXT,
1620
- feedback TEXT,
1621
- created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
1622
- updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
1623
- completed_at TIMESTAMPTZ
1624
- );
1625
- CREATE INDEX IF NOT EXISTS idx_delegated_tasks_to ON agent_delegated_tasks(to_agent_id, status);
1626
- CREATE INDEX IF NOT EXISTS idx_delegated_tasks_from ON agent_delegated_tasks(from_agent_id, status);
1627
-
1628
- CREATE TABLE IF NOT EXISTS agent_escalations (
1629
- id VARCHAR(100) PRIMARY KEY,
1630
- from_agent_id VARCHAR(255) NOT NULL,
1631
- to_agent_id VARCHAR(255),
1632
- subject TEXT NOT NULL,
1633
- context TEXT,
1634
- status VARCHAR(20) DEFAULT 'pending',
1635
- resolution TEXT,
1636
- created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
1637
- resolved_at TIMESTAMPTZ,
1638
- updated_at TIMESTAMPTZ
1639
- );
1640
- CREATE INDEX IF NOT EXISTS idx_escalations_to ON agent_escalations(to_agent_id, status);
1641
- `,
1642
- mysql: `
1643
- CREATE TABLE IF NOT EXISTS agent_delegated_tasks (
1644
- id VARCHAR(100) PRIMARY KEY,
1645
- from_agent_id VARCHAR(255) NOT NULL,
1646
- to_agent_id VARCHAR(255) NOT NULL,
1647
- title TEXT NOT NULL,
1648
- description TEXT,
1649
- priority VARCHAR(20) DEFAULT 'medium',
1650
- status VARCHAR(20) DEFAULT 'pending',
1651
- due_date DATETIME,
1652
- result TEXT,
1653
- blocker_reason TEXT,
1654
- feedback TEXT,
1655
- created_at DATETIME NOT NULL DEFAULT NOW(),
1656
- updated_at DATETIME NOT NULL DEFAULT NOW(),
1657
- completed_at DATETIME,
1658
- INDEX idx_delegated_tasks_to (to_agent_id, status),
1659
- INDEX idx_delegated_tasks_from (from_agent_id, status)
1660
- );
1661
- CREATE TABLE IF NOT EXISTS agent_escalations (
1662
- id VARCHAR(100) PRIMARY KEY,
1663
- from_agent_id VARCHAR(255) NOT NULL,
1664
- to_agent_id VARCHAR(255),
1665
- subject TEXT NOT NULL,
1666
- context TEXT,
1667
- status VARCHAR(20) DEFAULT 'pending',
1668
- resolution TEXT,
1669
- created_at DATETIME NOT NULL DEFAULT NOW(),
1670
- resolved_at DATETIME,
1671
- updated_at DATETIME,
1672
- INDEX idx_escalations_to (to_agent_id, status)
1673
- );
1674
- `,
1675
- nosql: async () => {},
1676
- },
1677
- // ─── Migration 28: Hierarchy v2 columns (SLA, check-in, reassignment) ───
1678
- {
1679
- version: 28,
1680
- name: 'hierarchy_v2_columns',
1681
- sqlite: `
1682
- ALTER TABLE agent_delegated_tasks ADD COLUMN sla_hours REAL;
1683
- ALTER TABLE agent_delegated_tasks ADD COLUMN check_in_interval_min INTEGER;
1684
- ALTER TABLE agent_delegated_tasks ADD COLUMN check_in_count INTEGER DEFAULT 0;
1685
- ALTER TABLE agent_delegated_tasks ADD COLUMN last_check_in_at TEXT;
1686
- ALTER TABLE agent_delegated_tasks ADD COLUMN required_tools TEXT;
1687
- ALTER TABLE agent_delegated_tasks ADD COLUMN original_agent_id TEXT;
1688
- ALTER TABLE agent_delegated_tasks ADD COLUMN reassign_reason TEXT;
1689
- `,
1690
- postgres: `
1691
- ALTER TABLE agent_delegated_tasks ADD COLUMN IF NOT EXISTS sla_hours REAL;
1692
- ALTER TABLE agent_delegated_tasks ADD COLUMN IF NOT EXISTS check_in_interval_min INTEGER;
1693
- ALTER TABLE agent_delegated_tasks ADD COLUMN IF NOT EXISTS check_in_count INTEGER DEFAULT 0;
1694
- ALTER TABLE agent_delegated_tasks ADD COLUMN IF NOT EXISTS last_check_in_at TIMESTAMPTZ;
1695
- ALTER TABLE agent_delegated_tasks ADD COLUMN IF NOT EXISTS required_tools JSONB;
1696
- ALTER TABLE agent_delegated_tasks ADD COLUMN IF NOT EXISTS original_agent_id VARCHAR(255);
1697
- ALTER TABLE agent_delegated_tasks ADD COLUMN IF NOT EXISTS reassign_reason TEXT;
1698
- CREATE INDEX IF NOT EXISTS idx_dt_due ON agent_delegated_tasks(due_date) WHERE status IN ('pending','accepted','in_progress');
1699
- `,
1700
- mysql: `
1701
- ALTER TABLE agent_delegated_tasks ADD COLUMN sla_hours FLOAT;
1702
- ALTER TABLE agent_delegated_tasks ADD COLUMN check_in_interval_min INT;
1703
- ALTER TABLE agent_delegated_tasks ADD COLUMN check_in_count INT DEFAULT 0;
1704
- ALTER TABLE agent_delegated_tasks ADD COLUMN last_check_in_at DATETIME;
1705
- ALTER TABLE agent_delegated_tasks ADD COLUMN required_tools JSON;
1706
- ALTER TABLE agent_delegated_tasks ADD COLUMN original_agent_id VARCHAR(255);
1707
- ALTER TABLE agent_delegated_tasks ADD COLUMN reassign_reason TEXT;
1708
- `,
1709
- nosql: async () => {},
1710
- },
1711
- {
1712
- version: 29,
1713
- name: 'managed_agents_client_org',
1714
- sqlite: `
1715
- ALTER TABLE managed_agents ADD COLUMN client_org_id TEXT;
1716
- CREATE INDEX IF NOT EXISTS idx_managed_agents_client_org ON managed_agents(client_org_id);
1717
- `,
1718
- postgres: `
1719
- ALTER TABLE managed_agents ADD COLUMN IF NOT EXISTS client_org_id VARCHAR(255);
1720
- CREATE INDEX IF NOT EXISTS idx_managed_agents_client_org ON managed_agents(client_org_id);
1721
- `,
1722
- mysql: `
1723
- ALTER TABLE managed_agents ADD COLUMN client_org_id VARCHAR(255);
1724
- CREATE INDEX idx_managed_agents_client_org ON managed_agents(client_org_id);
1725
- `,
1726
- nosql: async () => {},
1727
- },
1728
- {
1729
- version: 30,
1730
- name: 'knowledge_bases_client_org',
1731
- sqlite: `
1732
- ALTER TABLE knowledge_bases ADD COLUMN client_org_id TEXT;
1733
- CREATE INDEX IF NOT EXISTS idx_knowledge_bases_client_org ON knowledge_bases(client_org_id);
1734
- `,
1735
- postgres: `
1736
- ALTER TABLE knowledge_bases ADD COLUMN IF NOT EXISTS client_org_id VARCHAR(255);
1737
- CREATE INDEX IF NOT EXISTS idx_knowledge_bases_client_org ON knowledge_bases(client_org_id);
1738
- `,
1739
- mysql: `
1740
- ALTER TABLE knowledge_bases ADD COLUMN client_org_id VARCHAR(255);
1741
- CREATE INDEX idx_knowledge_bases_client_org ON knowledge_bases(client_org_id);
1742
- `,
1743
- nosql: async () => {},
1744
- },
1745
- {
1746
- version: 31,
1747
- name: 'organization_integrations',
1748
- sqlite: `
1749
- CREATE TABLE IF NOT EXISTS organization_integrations (
1750
- id TEXT PRIMARY KEY,
1751
- org_id TEXT NOT NULL,
1752
- provider TEXT NOT NULL,
1753
- provider_type TEXT NOT NULL DEFAULT 'oauth2',
1754
- display_name TEXT,
1755
- config TEXT NOT NULL DEFAULT '{}',
1756
- credentials TEXT NOT NULL DEFAULT '{}',
1757
- scopes TEXT,
1758
- domain TEXT,
1759
- status TEXT NOT NULL DEFAULT 'active',
1760
- is_default BOOLEAN NOT NULL DEFAULT 0,
1761
- metadata TEXT NOT NULL DEFAULT '{}',
1762
- created_at TEXT NOT NULL DEFAULT (datetime('now')),
1763
- updated_at TEXT NOT NULL DEFAULT (datetime('now')),
1764
- created_by TEXT,
1765
- UNIQUE(org_id, provider, domain)
1766
- );
1767
- CREATE INDEX IF NOT EXISTS idx_org_integrations_org ON organization_integrations(org_id);
1768
- CREATE INDEX IF NOT EXISTS idx_org_integrations_provider ON organization_integrations(provider);
1769
- CREATE INDEX IF NOT EXISTS idx_org_integrations_status ON organization_integrations(status);
1770
- `,
1771
- postgres: `
1772
- CREATE TABLE IF NOT EXISTS organization_integrations (
1773
- id TEXT PRIMARY KEY,
1774
- org_id TEXT NOT NULL,
1775
- provider TEXT NOT NULL,
1776
- provider_type TEXT NOT NULL DEFAULT 'oauth2',
1777
- display_name TEXT,
1778
- config JSONB NOT NULL DEFAULT '{}',
1779
- credentials JSONB NOT NULL DEFAULT '{}',
1780
- scopes TEXT,
1781
- domain TEXT,
1782
- status TEXT NOT NULL DEFAULT 'active',
1783
- is_default BOOLEAN NOT NULL DEFAULT false,
1784
- metadata JSONB NOT NULL DEFAULT '{}',
1785
- created_at TIMESTAMP NOT NULL DEFAULT NOW(),
1786
- updated_at TIMESTAMP NOT NULL DEFAULT NOW(),
1787
- created_by TEXT,
1788
- UNIQUE(org_id, provider, domain)
1789
- );
1790
- CREATE INDEX IF NOT EXISTS idx_org_integrations_org ON organization_integrations(org_id);
1791
- CREATE INDEX IF NOT EXISTS idx_org_integrations_provider ON organization_integrations(provider);
1792
- CREATE INDEX IF NOT EXISTS idx_org_integrations_status ON organization_integrations(status);
1793
- `,
1794
- mysql: `
1795
- CREATE TABLE IF NOT EXISTS organization_integrations (
1796
- id VARCHAR(255) PRIMARY KEY,
1797
- org_id VARCHAR(255) NOT NULL,
1798
- provider VARCHAR(100) NOT NULL,
1799
- provider_type VARCHAR(50) NOT NULL DEFAULT 'oauth2',
1800
- display_name VARCHAR(255),
1801
- config JSON NOT NULL,
1802
- credentials JSON NOT NULL,
1803
- scopes TEXT,
1804
- domain VARCHAR(255),
1805
- status VARCHAR(50) NOT NULL DEFAULT 'active',
1806
- is_default BOOLEAN NOT NULL DEFAULT false,
1807
- metadata JSON NOT NULL,
1808
- created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
1809
- updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
1810
- created_by VARCHAR(255),
1811
- UNIQUE KEY uq_org_provider_domain (org_id, provider, domain)
1812
- );
1813
- CREATE INDEX idx_org_integrations_org ON organization_integrations(org_id);
1814
- CREATE INDEX idx_org_integrations_provider ON organization_integrations(provider);
1815
- `,
1816
- nosql: async () => {},
1817
- },
1818
- {
1819
- version: 32,
1820
- name: 'custom_roles',
1821
- sqlite: `
1822
- CREATE TABLE IF NOT EXISTS custom_roles (
1823
- id TEXT PRIMARY KEY,
1824
- name TEXT NOT NULL,
1825
- slug TEXT NOT NULL,
1826
- category TEXT NOT NULL DEFAULT 'operations',
1827
- description TEXT,
1828
- personality TEXT,
1829
- identity TEXT NOT NULL DEFAULT '{}',
1830
- suggested_skills TEXT NOT NULL DEFAULT '[]',
1831
- suggested_preset TEXT,
1832
- tags TEXT NOT NULL DEFAULT '[]',
1833
- org_id TEXT,
1834
- is_active INTEGER NOT NULL DEFAULT 1,
1835
- metadata TEXT NOT NULL DEFAULT '{}',
1836
- created_by TEXT,
1837
- created_at TEXT NOT NULL DEFAULT (datetime('now')),
1838
- updated_at TEXT NOT NULL DEFAULT (datetime('now')),
1839
- UNIQUE(slug, org_id)
1840
- );
1841
- CREATE INDEX IF NOT EXISTS idx_custom_roles_org ON custom_roles(org_id);
1842
- CREATE INDEX IF NOT EXISTS idx_custom_roles_slug ON custom_roles(slug);
1843
- CREATE INDEX IF NOT EXISTS idx_custom_roles_active ON custom_roles(is_active);
1844
- `,
1845
- postgres: `
1846
- CREATE TABLE IF NOT EXISTS custom_roles (
1847
- id TEXT PRIMARY KEY,
1848
- name TEXT NOT NULL,
1849
- slug TEXT NOT NULL,
1850
- category TEXT NOT NULL DEFAULT 'operations',
1851
- description TEXT,
1852
- personality TEXT,
1853
- identity JSONB NOT NULL DEFAULT '{}',
1854
- suggested_skills JSONB NOT NULL DEFAULT '[]',
1855
- suggested_preset TEXT,
1856
- tags JSONB NOT NULL DEFAULT '[]',
1857
- org_id TEXT,
1858
- is_active BOOLEAN NOT NULL DEFAULT true,
1859
- metadata JSONB NOT NULL DEFAULT '{}',
1860
- created_by TEXT,
1861
- created_at TIMESTAMP NOT NULL DEFAULT NOW(),
1862
- updated_at TIMESTAMP NOT NULL DEFAULT NOW(),
1863
- UNIQUE(slug, org_id)
1864
- );
1865
- CREATE INDEX IF NOT EXISTS idx_custom_roles_org ON custom_roles(org_id);
1866
- CREATE INDEX IF NOT EXISTS idx_custom_roles_slug ON custom_roles(slug);
1867
- CREATE INDEX IF NOT EXISTS idx_custom_roles_active ON custom_roles(is_active);
1868
- `,
1869
- mysql: `
1870
- CREATE TABLE IF NOT EXISTS custom_roles (
1871
- id VARCHAR(255) PRIMARY KEY,
1872
- name VARCHAR(255) NOT NULL,
1873
- slug VARCHAR(255) NOT NULL,
1874
- category VARCHAR(50) NOT NULL DEFAULT 'operations',
1875
- description TEXT,
1876
- personality LONGTEXT,
1877
- identity JSON NOT NULL,
1878
- suggested_skills JSON NOT NULL,
1879
- suggested_preset VARCHAR(255),
1880
- tags JSON NOT NULL,
1881
- org_id VARCHAR(255),
1882
- is_active TINYINT(1) NOT NULL DEFAULT 1,
1883
- metadata JSON NOT NULL,
1884
- created_by VARCHAR(255),
1885
- created_at TIMESTAMP DEFAULT NOW(),
1886
- updated_at TIMESTAMP DEFAULT NOW(),
1887
- UNIQUE KEY uq_role_slug_org (slug, org_id)
1888
- );
1889
- CREATE INDEX idx_custom_roles_org ON custom_roles(org_id);
1890
- CREATE INDEX idx_custom_roles_slug ON custom_roles(slug);
1891
- `,
1892
- nosql: async () => {},
1893
- },
1894
- ];
1895
-
1896
- // ─── Dynamic Table Definitions ─────────────────────────
1897
-
1898
- /**
1899
- * Schema for a dynamically-registered table.
1900
- * Plugins, skills, or the engine itself can register new tables at runtime.
1901
- */
1902
- export interface DynamicTableDef {
1903
- /** Table name (must be unique, will be prefixed with `ext_` to avoid collisions) */
1904
- name: string;
1905
- /** SQL CREATE TABLE statement (SQLite/Turso syntax) */
1906
- sql: string;
1907
- /** Postgres-specific DDL (optional, falls back to sql with auto-conversion) */
1908
- postgres?: string;
1909
- /** MySQL-specific DDL (optional) */
1910
- mysql?: string;
1911
- /** MongoDB collection setup callback */
1912
- mongoSetup?: (db: any) => Promise<void>;
1913
- /** DynamoDB table setup callback */
1914
- dynamoSetup?: (client: any) => Promise<void>;
1915
- /** Indexes to create (SQL only) */
1916
- indexes?: string[];
1917
- }
1918
-
1919
- /**
1920
- * Convert SQLite-style DDL to Postgres-compatible DDL (best-effort).
1921
- */
1922
- export function sqliteToPostgres(sql: string): string {
1923
- return sql
1924
- .replace(/\bBLOB\b/g, 'BYTEA')
1925
- .replace(/JSON/g, 'JSONB')
1926
- .replace(/datetime\('now'\)/g, "NOW()")
1927
- // Only convert INTEGER→BOOLEAN for known boolean column names (enabled, revoked, enforce_*, auto_*, is_*, active)
1928
- // NOT for version, count, or other numeric columns that happen to default to 1
1929
- .replace(/((?:enabled|revoked|enforce_\w+|auto_\w+|is_\w+|active)\s+)INTEGER NOT NULL DEFAULT 1(?!\d)/g, '$1BOOLEAN NOT NULL DEFAULT TRUE')
1930
- .replace(/((?:enabled|revoked|enforce_\w+|auto_\w+|is_\w+|active)\s+)INTEGER NOT NULL DEFAULT 0(?!\d)/g, '$1BOOLEAN NOT NULL DEFAULT FALSE');
1931
- }
1932
-
1933
- /**
1934
- * Convert SQLite-style DDL to MySQL-compatible DDL (best-effort).
1935
- */
1936
- export function sqliteToMySQL(sql: string): string {
1937
- return sql
1938
- .replace(/TEXT PRIMARY KEY/g, 'VARCHAR(255) PRIMARY KEY')
1939
- .replace(/TEXT NOT NULL UNIQUE/g, 'VARCHAR(255) NOT NULL UNIQUE')
1940
- .replace(/TEXT NOT NULL DEFAULT/g, 'VARCHAR(255) NOT NULL DEFAULT')
1941
- .replace(/BLOB/g, 'LONGBLOB')
1942
- .replace(/datetime\('now'\)/g, "NOW()")
1943
- .replace(/INTEGER NOT NULL DEFAULT 1/g, 'TINYINT(1) NOT NULL DEFAULT 1')
1944
- .replace(/ON CONFLICT\(.*?\) DO UPDATE SET/g, 'ON DUPLICATE KEY UPDATE');
1945
- }