@agenticmail/enterprise 0.3.2 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1106) hide show
  1. package/.github/CODEOWNERS +23 -0
  2. package/.github/workflows/publish-community-skills.yml +121 -0
  3. package/.github/workflows/validate-community-skills.yml +172 -0
  4. package/ARCHITECTURE.md +184 -167
  5. package/CLAUDE.md +40 -0
  6. package/CONTRIBUTING.md +254 -0
  7. package/DEPLOYMENT.md +1031 -0
  8. package/README.md +355 -174
  9. package/community-skills/_template/README.md +31 -0
  10. package/community-skills/_template/agenticmail-skill.json +48 -0
  11. package/community-skills/activecampaign/README.md +21 -0
  12. package/community-skills/activecampaign/agenticmail-skill.json +56 -0
  13. package/community-skills/adobe-sign/README.md +21 -0
  14. package/community-skills/adobe-sign/agenticmail-skill.json +72 -0
  15. package/community-skills/adp/README.md +21 -0
  16. package/community-skills/adp/agenticmail-skill.json +65 -0
  17. package/community-skills/airtable-bases/README.md +29 -0
  18. package/community-skills/airtable-bases/agenticmail-skill.json +69 -0
  19. package/community-skills/apollo-io/README.md +21 -0
  20. package/community-skills/apollo-io/agenticmail-skill.json +50 -0
  21. package/community-skills/asana-tasks/README.md +30 -0
  22. package/community-skills/asana-tasks/agenticmail-skill.json +70 -0
  23. package/community-skills/auth0/README.md +21 -0
  24. package/community-skills/auth0/agenticmail-skill.json +56 -0
  25. package/community-skills/aws-services/README.md +38 -0
  26. package/community-skills/aws-services/agenticmail-skill.json +70 -0
  27. package/community-skills/azure-devops/README.md +21 -0
  28. package/community-skills/azure-devops/agenticmail-skill.json +57 -0
  29. package/community-skills/bamboohr/README.md +21 -0
  30. package/community-skills/bamboohr/agenticmail-skill.json +56 -0
  31. package/community-skills/basecamp/README.md +21 -0
  32. package/community-skills/basecamp/agenticmail-skill.json +56 -0
  33. package/community-skills/bigcommerce/README.md +21 -0
  34. package/community-skills/bigcommerce/agenticmail-skill.json +55 -0
  35. package/community-skills/bitbucket-repos/README.md +29 -0
  36. package/community-skills/bitbucket-repos/agenticmail-skill.json +70 -0
  37. package/community-skills/box/README.md +21 -0
  38. package/community-skills/box/agenticmail-skill.json +48 -0
  39. package/community-skills/brex/README.md +21 -0
  40. package/community-skills/brex/agenticmail-skill.json +48 -0
  41. package/community-skills/buffer/README.md +21 -0
  42. package/community-skills/buffer/agenticmail-skill.json +50 -0
  43. package/community-skills/calendly/README.md +20 -0
  44. package/community-skills/calendly/agenticmail-skill.json +43 -0
  45. package/community-skills/canva-design/README.md +33 -0
  46. package/community-skills/canva-design/agenticmail-skill.json +60 -0
  47. package/community-skills/chargebee/README.md +21 -0
  48. package/community-skills/chargebee/agenticmail-skill.json +55 -0
  49. package/community-skills/circleci-pipelines/README.md +28 -0
  50. package/community-skills/circleci-pipelines/agenticmail-skill.json +66 -0
  51. package/community-skills/clickup/README.md +21 -0
  52. package/community-skills/clickup/agenticmail-skill.json +48 -0
  53. package/community-skills/close-crm/README.md +21 -0
  54. package/community-skills/close-crm/agenticmail-skill.json +49 -0
  55. package/community-skills/cloudflare-cdn/README.md +37 -0
  56. package/community-skills/cloudflare-cdn/agenticmail-skill.json +67 -0
  57. package/community-skills/confluence-wiki/README.md +31 -0
  58. package/community-skills/confluence-wiki/agenticmail-skill.json +74 -0
  59. package/community-skills/contentful/README.md +21 -0
  60. package/community-skills/contentful/agenticmail-skill.json +62 -0
  61. package/community-skills/copper-crm/README.md +21 -0
  62. package/community-skills/copper-crm/agenticmail-skill.json +56 -0
  63. package/community-skills/crisp/README.md +21 -0
  64. package/community-skills/crisp/agenticmail-skill.json +56 -0
  65. package/community-skills/crowdstrike/README.md +21 -0
  66. package/community-skills/crowdstrike/agenticmail-skill.json +69 -0
  67. package/community-skills/datadog-monitoring/README.md +37 -0
  68. package/community-skills/datadog-monitoring/agenticmail-skill.json +73 -0
  69. package/community-skills/digitalocean/README.md +21 -0
  70. package/community-skills/digitalocean/agenticmail-skill.json +48 -0
  71. package/community-skills/discord/README.md +45 -0
  72. package/community-skills/discord/agenticmail-skill.json +65 -0
  73. package/community-skills/docker-containers/README.md +38 -0
  74. package/community-skills/docker-containers/agenticmail-skill.json +70 -0
  75. package/community-skills/docusign-esign/README.md +35 -0
  76. package/community-skills/docusign-esign/agenticmail-skill.json +66 -0
  77. package/community-skills/drift/README.md +21 -0
  78. package/community-skills/drift/agenticmail-skill.json +50 -0
  79. package/community-skills/dropbox-storage/README.md +36 -0
  80. package/community-skills/dropbox-storage/agenticmail-skill.json +67 -0
  81. package/community-skills/figma-design/README.md +36 -0
  82. package/community-skills/figma-design/agenticmail-skill.json +66 -0
  83. package/community-skills/firebase/README.md +21 -0
  84. package/community-skills/firebase/agenticmail-skill.json +56 -0
  85. package/community-skills/flyio/README.md +21 -0
  86. package/community-skills/flyio/agenticmail-skill.json +56 -0
  87. package/community-skills/freshbooks/README.md +21 -0
  88. package/community-skills/freshbooks/agenticmail-skill.json +55 -0
  89. package/community-skills/freshdesk/README.md +21 -0
  90. package/community-skills/freshdesk/agenticmail-skill.json +57 -0
  91. package/community-skills/freshsales/README.md +21 -0
  92. package/community-skills/freshsales/agenticmail-skill.json +55 -0
  93. package/community-skills/freshservice/README.md +21 -0
  94. package/community-skills/freshservice/agenticmail-skill.json +56 -0
  95. package/community-skills/front/README.md +21 -0
  96. package/community-skills/front/agenticmail-skill.json +48 -0
  97. package/community-skills/github/README.md +49 -0
  98. package/community-skills/github/agenticmail-skill.json +73 -0
  99. package/community-skills/github-actions/README.md +29 -0
  100. package/community-skills/github-actions/agenticmail-skill.json +72 -0
  101. package/community-skills/gitlab-ci/README.md +51 -0
  102. package/community-skills/gitlab-ci/agenticmail-skill.json +66 -0
  103. package/community-skills/gong/README.md +21 -0
  104. package/community-skills/gong/agenticmail-skill.json +50 -0
  105. package/community-skills/google-ads/README.md +36 -0
  106. package/community-skills/google-ads/agenticmail-skill.json +58 -0
  107. package/community-skills/google-analytics/README.md +28 -0
  108. package/community-skills/google-analytics/agenticmail-skill.json +69 -0
  109. package/community-skills/google-cloud/README.md +33 -0
  110. package/community-skills/google-cloud/agenticmail-skill.json +59 -0
  111. package/community-skills/google-drive/README.md +36 -0
  112. package/community-skills/google-drive/agenticmail-skill.json +65 -0
  113. package/community-skills/gotomeeting/README.md +20 -0
  114. package/community-skills/gotomeeting/agenticmail-skill.json +45 -0
  115. package/community-skills/grafana/README.md +21 -0
  116. package/community-skills/grafana/agenticmail-skill.json +56 -0
  117. package/community-skills/greenhouse/README.md +21 -0
  118. package/community-skills/greenhouse/agenticmail-skill.json +49 -0
  119. package/community-skills/gusto/README.md +21 -0
  120. package/community-skills/gusto/agenticmail-skill.json +49 -0
  121. package/community-skills/hashicorp-vault/README.md +21 -0
  122. package/community-skills/hashicorp-vault/agenticmail-skill.json +58 -0
  123. package/community-skills/heroku/README.md +21 -0
  124. package/community-skills/heroku/agenticmail-skill.json +48 -0
  125. package/community-skills/hibob/README.md +21 -0
  126. package/community-skills/hibob/agenticmail-skill.json +48 -0
  127. package/community-skills/hootsuite/README.md +21 -0
  128. package/community-skills/hootsuite/agenticmail-skill.json +48 -0
  129. package/community-skills/hubspot-crm/README.md +36 -0
  130. package/community-skills/hubspot-crm/agenticmail-skill.json +70 -0
  131. package/community-skills/huggingface/README.md +21 -0
  132. package/community-skills/huggingface/agenticmail-skill.json +48 -0
  133. package/community-skills/index.json +1320 -0
  134. package/community-skills/intercom-support/README.md +36 -0
  135. package/community-skills/intercom-support/agenticmail-skill.json +64 -0
  136. package/community-skills/jira/README.md +53 -0
  137. package/community-skills/jira/agenticmail-skill.json +72 -0
  138. package/community-skills/klaviyo/README.md +21 -0
  139. package/community-skills/klaviyo/agenticmail-skill.json +48 -0
  140. package/community-skills/kubernetes-cluster/README.md +36 -0
  141. package/community-skills/kubernetes-cluster/agenticmail-skill.json +72 -0
  142. package/community-skills/lattice/README.md +21 -0
  143. package/community-skills/lattice/agenticmail-skill.json +49 -0
  144. package/community-skills/launchdarkly/README.md +21 -0
  145. package/community-skills/launchdarkly/agenticmail-skill.json +48 -0
  146. package/community-skills/lever/README.md +21 -0
  147. package/community-skills/lever/agenticmail-skill.json +49 -0
  148. package/community-skills/linear/README.md +29 -0
  149. package/community-skills/linear/agenticmail-skill.json +81 -0
  150. package/community-skills/linkedin/README.md +21 -0
  151. package/community-skills/linkedin/agenticmail-skill.json +48 -0
  152. package/community-skills/livechat/README.md +20 -0
  153. package/community-skills/livechat/agenticmail-skill.json +43 -0
  154. package/community-skills/loom-video/README.md +20 -0
  155. package/community-skills/loom-video/agenticmail-skill.json +44 -0
  156. package/community-skills/mailchimp-campaigns/README.md +37 -0
  157. package/community-skills/mailchimp-campaigns/agenticmail-skill.json +69 -0
  158. package/community-skills/mailgun/README.md +21 -0
  159. package/community-skills/mailgun/agenticmail-skill.json +71 -0
  160. package/community-skills/microsoft-teams/README.md +51 -0
  161. package/community-skills/microsoft-teams/agenticmail-skill.json +66 -0
  162. package/community-skills/miro-boards/README.md +20 -0
  163. package/community-skills/miro-boards/agenticmail-skill.json +44 -0
  164. package/community-skills/mixpanel-analytics/README.md +34 -0
  165. package/community-skills/mixpanel-analytics/agenticmail-skill.json +64 -0
  166. package/community-skills/monday-boards/README.md +28 -0
  167. package/community-skills/monday-boards/agenticmail-skill.json +68 -0
  168. package/community-skills/mongodb-atlas/README.md +21 -0
  169. package/community-skills/mongodb-atlas/agenticmail-skill.json +58 -0
  170. package/community-skills/neon/README.md +21 -0
  171. package/community-skills/neon/agenticmail-skill.json +50 -0
  172. package/community-skills/netlify/README.md +21 -0
  173. package/community-skills/netlify/agenticmail-skill.json +48 -0
  174. package/community-skills/netsuite/README.md +21 -0
  175. package/community-skills/netsuite/agenticmail-skill.json +57 -0
  176. package/community-skills/newrelic/README.md +21 -0
  177. package/community-skills/newrelic/agenticmail-skill.json +58 -0
  178. package/community-skills/notion/README.md +49 -0
  179. package/community-skills/notion/agenticmail-skill.json +72 -0
  180. package/community-skills/okta/README.md +21 -0
  181. package/community-skills/okta/agenticmail-skill.json +57 -0
  182. package/community-skills/openai/README.md +21 -0
  183. package/community-skills/openai/agenticmail-skill.json +48 -0
  184. package/community-skills/opsgenie/README.md +21 -0
  185. package/community-skills/opsgenie/agenticmail-skill.json +48 -0
  186. package/community-skills/outreach/README.md +21 -0
  187. package/community-skills/outreach/agenticmail-skill.json +50 -0
  188. package/community-skills/paddle/README.md +21 -0
  189. package/community-skills/paddle/agenticmail-skill.json +55 -0
  190. package/community-skills/pagerduty/README.md +21 -0
  191. package/community-skills/pagerduty/agenticmail-skill.json +48 -0
  192. package/community-skills/pandadoc/README.md +21 -0
  193. package/community-skills/pandadoc/agenticmail-skill.json +48 -0
  194. package/community-skills/paypal/README.md +21 -0
  195. package/community-skills/paypal/agenticmail-skill.json +55 -0
  196. package/community-skills/personio/README.md +21 -0
  197. package/community-skills/personio/agenticmail-skill.json +48 -0
  198. package/community-skills/pinecone/README.md +21 -0
  199. package/community-skills/pinecone/agenticmail-skill.json +48 -0
  200. package/community-skills/pipedrive-deals/README.md +33 -0
  201. package/community-skills/pipedrive-deals/agenticmail-skill.json +60 -0
  202. package/community-skills/plaid/README.md +21 -0
  203. package/community-skills/plaid/agenticmail-skill.json +65 -0
  204. package/community-skills/postmark/README.md +21 -0
  205. package/community-skills/postmark/agenticmail-skill.json +48 -0
  206. package/community-skills/power-automate/README.md +21 -0
  207. package/community-skills/power-automate/agenticmail-skill.json +59 -0
  208. package/community-skills/quickbooks-accounting/README.md +38 -0
  209. package/community-skills/quickbooks-accounting/agenticmail-skill.json +70 -0
  210. package/community-skills/recurly/README.md +21 -0
  211. package/community-skills/recurly/agenticmail-skill.json +48 -0
  212. package/community-skills/reddit/README.md +21 -0
  213. package/community-skills/reddit/agenticmail-skill.json +48 -0
  214. package/community-skills/render/README.md +21 -0
  215. package/community-skills/render/agenticmail-skill.json +48 -0
  216. package/community-skills/ringcentral/README.md +20 -0
  217. package/community-skills/ringcentral/agenticmail-skill.json +43 -0
  218. package/community-skills/rippling/README.md +21 -0
  219. package/community-skills/rippling/agenticmail-skill.json +48 -0
  220. package/community-skills/salesforce/README.md +53 -0
  221. package/community-skills/salesforce/agenticmail-skill.json +73 -0
  222. package/community-skills/salesloft/README.md +21 -0
  223. package/community-skills/salesloft/agenticmail-skill.json +48 -0
  224. package/community-skills/sanity/README.md +21 -0
  225. package/community-skills/sanity/agenticmail-skill.json +62 -0
  226. package/community-skills/sap/README.md +21 -0
  227. package/community-skills/sap/agenticmail-skill.json +63 -0
  228. package/community-skills/segment-cdp/README.md +37 -0
  229. package/community-skills/segment-cdp/agenticmail-skill.json +66 -0
  230. package/community-skills/sendgrid-email/README.md +51 -0
  231. package/community-skills/sendgrid-email/agenticmail-skill.json +71 -0
  232. package/community-skills/sentry/README.md +21 -0
  233. package/community-skills/sentry/agenticmail-skill.json +58 -0
  234. package/community-skills/servicenow/README.md +21 -0
  235. package/community-skills/servicenow/agenticmail-skill.json +56 -0
  236. package/community-skills/shopify/README.md +21 -0
  237. package/community-skills/shopify/agenticmail-skill.json +56 -0
  238. package/community-skills/shortcut/README.md +21 -0
  239. package/community-skills/shortcut/agenticmail-skill.json +48 -0
  240. package/community-skills/slack/README.md +45 -0
  241. package/community-skills/slack/agenticmail-skill.json +73 -0
  242. package/community-skills/smartsheet/README.md +21 -0
  243. package/community-skills/smartsheet/agenticmail-skill.json +48 -0
  244. package/community-skills/snowflake-warehouse/README.md +37 -0
  245. package/community-skills/snowflake-warehouse/agenticmail-skill.json +71 -0
  246. package/community-skills/snyk/README.md +21 -0
  247. package/community-skills/snyk/agenticmail-skill.json +48 -0
  248. package/community-skills/splunk/README.md +21 -0
  249. package/community-skills/splunk/agenticmail-skill.json +56 -0
  250. package/community-skills/square/README.md +21 -0
  251. package/community-skills/square/agenticmail-skill.json +55 -0
  252. package/community-skills/statuspage/README.md +21 -0
  253. package/community-skills/statuspage/agenticmail-skill.json +56 -0
  254. package/community-skills/stripe/README.md +45 -0
  255. package/community-skills/stripe/agenticmail-skill.json +66 -0
  256. package/community-skills/supabase/README.md +21 -0
  257. package/community-skills/supabase/agenticmail-skill.json +56 -0
  258. package/community-skills/teamwork/README.md +21 -0
  259. package/community-skills/teamwork/agenticmail-skill.json +56 -0
  260. package/community-skills/telegram-bot/README.md +20 -0
  261. package/community-skills/telegram-bot/agenticmail-skill.json +52 -0
  262. package/community-skills/terraform-iac/README.md +34 -0
  263. package/community-skills/terraform-iac/agenticmail-skill.json +66 -0
  264. package/community-skills/todoist-tasks/README.md +29 -0
  265. package/community-skills/todoist-tasks/agenticmail-skill.json +72 -0
  266. package/community-skills/trello-cards/README.md +30 -0
  267. package/community-skills/trello-cards/agenticmail-skill.json +72 -0
  268. package/community-skills/twilio-sms/README.md +47 -0
  269. package/community-skills/twilio-sms/agenticmail-skill.json +63 -0
  270. package/community-skills/twitter/README.md +21 -0
  271. package/community-skills/twitter/agenticmail-skill.json +48 -0
  272. package/community-skills/vercel-deployments/README.md +29 -0
  273. package/community-skills/vercel-deployments/agenticmail-skill.json +70 -0
  274. package/community-skills/weaviate/README.md +21 -0
  275. package/community-skills/weaviate/agenticmail-skill.json +56 -0
  276. package/community-skills/webex/README.md +20 -0
  277. package/community-skills/webex/agenticmail-skill.json +43 -0
  278. package/community-skills/webflow/README.md +21 -0
  279. package/community-skills/webflow/agenticmail-skill.json +48 -0
  280. package/community-skills/whatsapp-business/README.md +20 -0
  281. package/community-skills/whatsapp-business/agenticmail-skill.json +52 -0
  282. package/community-skills/whereby/README.md +20 -0
  283. package/community-skills/whereby/agenticmail-skill.json +43 -0
  284. package/community-skills/woocommerce/README.md +21 -0
  285. package/community-skills/woocommerce/agenticmail-skill.json +55 -0
  286. package/community-skills/wordpress/README.md +21 -0
  287. package/community-skills/wordpress/agenticmail-skill.json +56 -0
  288. package/community-skills/workday/README.md +21 -0
  289. package/community-skills/workday/agenticmail-skill.json +56 -0
  290. package/community-skills/wrike/README.md +21 -0
  291. package/community-skills/wrike/agenticmail-skill.json +48 -0
  292. package/community-skills/xero/README.md +21 -0
  293. package/community-skills/xero/agenticmail-skill.json +56 -0
  294. package/community-skills/youtube/README.md +21 -0
  295. package/community-skills/youtube/agenticmail-skill.json +52 -0
  296. package/community-skills/zendesk-tickets/README.md +37 -0
  297. package/community-skills/zendesk-tickets/agenticmail-skill.json +65 -0
  298. package/community-skills/zoho-crm/README.md +21 -0
  299. package/community-skills/zoho-crm/agenticmail-skill.json +74 -0
  300. package/community-skills/zoom-meetings/README.md +51 -0
  301. package/community-skills/zoom-meetings/agenticmail-skill.json +66 -0
  302. package/community-skills/zuora/README.md +21 -0
  303. package/community-skills/zuora/agenticmail-skill.json +55 -0
  304. package/dashboards/README.md +81 -70
  305. package/dashboards/django/app.py +117 -0
  306. package/dashboards/django/static/styles.css +284 -0
  307. package/dashboards/django/templates/agent_detail.html +501 -0
  308. package/dashboards/django/templates/agents.html +217 -0
  309. package/dashboards/django/templates/api_keys.html +41 -0
  310. package/dashboards/django/templates/audit.html +26 -0
  311. package/dashboards/django/templates/compliance.html +33 -0
  312. package/dashboards/django/templates/components/modal.html +6 -0
  313. package/dashboards/django/templates/components/pagination.html +9 -0
  314. package/dashboards/django/templates/components/stats.html +8 -0
  315. package/dashboards/django/templates/dashboard.html +24 -0
  316. package/dashboards/django/templates/dlp.html +70 -0
  317. package/dashboards/django/templates/guardrails.html +78 -0
  318. package/dashboards/django/templates/journal.html +39 -0
  319. package/dashboards/django/templates/layout.html +52 -0
  320. package/dashboards/django/templates/login.html +30 -0
  321. package/dashboards/django/templates/messages.html +38 -0
  322. package/dashboards/django/templates/settings.html +472 -0
  323. package/dashboards/django/templates/skills.html +66 -0
  324. package/dashboards/django/templates/users.html +34 -0
  325. package/dashboards/django/templates/vault.html +46 -0
  326. package/dashboards/django/utils/__init__.py +0 -0
  327. package/dashboards/django/utils/api.py +20 -0
  328. package/dashboards/django/utils/helpers.py +39 -0
  329. package/dashboards/django/views/__init__.py +38 -0
  330. package/dashboards/django/views/agents.py +343 -0
  331. package/dashboards/django/views/api_keys.py +47 -0
  332. package/dashboards/django/views/audit.py +35 -0
  333. package/dashboards/django/views/auth.py +34 -0
  334. package/dashboards/django/views/compliance.py +37 -0
  335. package/dashboards/django/views/dashboard.py +27 -0
  336. package/dashboards/django/views/dlp.py +53 -0
  337. package/dashboards/django/views/guardrails.py +61 -0
  338. package/dashboards/django/views/journal.py +41 -0
  339. package/dashboards/django/views/messages.py +65 -0
  340. package/dashboards/django/views/settings_view.py +335 -0
  341. package/dashboards/django/views/skills.py +50 -0
  342. package/dashboards/django/views/users.py +42 -0
  343. package/dashboards/django/views/vault.py +50 -0
  344. package/dashboards/dotnet/AgenticMailDashboard.csproj +10 -0
  345. package/dashboards/dotnet/Program.cs +53 -233
  346. package/dashboards/dotnet/Routes/AgentRoutes.cs +771 -0
  347. package/dashboards/dotnet/Routes/ApiKeyRoutes.cs +185 -0
  348. package/dashboards/dotnet/Routes/AuditRoutes.cs +86 -0
  349. package/dashboards/dotnet/Routes/AuthRoutes.cs +50 -0
  350. package/dashboards/dotnet/Routes/ComplianceRoutes.cs +143 -0
  351. package/dashboards/dotnet/Routes/DashboardRoutes.cs +81 -0
  352. package/dashboards/dotnet/Routes/DlpRoutes.cs +230 -0
  353. package/dashboards/dotnet/Routes/GuardrailRoutes.cs +285 -0
  354. package/dashboards/dotnet/Routes/JournalRoutes.cs +118 -0
  355. package/dashboards/dotnet/Routes/MessageRoutes.cs +167 -0
  356. package/dashboards/dotnet/Routes/SettingRoutes.cs +907 -0
  357. package/dashboards/dotnet/Routes/SkillRoutes.cs +198 -0
  358. package/dashboards/dotnet/Routes/UserRoutes.cs +111 -0
  359. package/dashboards/dotnet/Routes/VaultRoutes.cs +162 -0
  360. package/dashboards/dotnet/Services/ApiClient.cs +103 -0
  361. package/dashboards/dotnet/Services/HtmlBuilder.cs +249 -0
  362. package/dashboards/dotnet/wwwroot/styles.css +284 -0
  363. package/dashboards/express/app.js +37 -126
  364. package/dashboards/express/middleware/auth.js +10 -0
  365. package/dashboards/express/package-lock.json +922 -0
  366. package/dashboards/express/package.json +17 -0
  367. package/dashboards/express/public/styles.css +284 -0
  368. package/dashboards/express/routes/agents.js +771 -0
  369. package/dashboards/express/routes/apiKeys.js +107 -0
  370. package/dashboards/express/routes/audit.js +75 -0
  371. package/dashboards/express/routes/auth.js +38 -0
  372. package/dashboards/express/routes/compliance.js +93 -0
  373. package/dashboards/express/routes/dashboard.js +65 -0
  374. package/dashboards/express/routes/dlp.js +165 -0
  375. package/dashboards/express/routes/guardrails.js +195 -0
  376. package/dashboards/express/routes/journal.js +95 -0
  377. package/dashboards/express/routes/messages.js +97 -0
  378. package/dashboards/express/routes/settings.js +830 -0
  379. package/dashboards/express/routes/skills.js +141 -0
  380. package/dashboards/express/routes/users.js +69 -0
  381. package/dashboards/express/routes/vault.js +141 -0
  382. package/dashboards/express/utils/api.js +44 -0
  383. package/dashboards/express/utils/helpers.js +46 -0
  384. package/dashboards/express/views/components/modal.js +255 -0
  385. package/dashboards/express/views/components/stats.js +22 -0
  386. package/dashboards/express/views/components/table.js +31 -0
  387. package/dashboards/express/views/layout.js +73 -0
  388. package/dashboards/express/views/login.js +45 -0
  389. package/dashboards/go/go.mod +3 -0
  390. package/dashboards/go/handlers/agents.go +790 -0
  391. package/dashboards/go/handlers/apikeys.go +38 -0
  392. package/dashboards/go/handlers/audit.go +52 -0
  393. package/dashboards/go/handlers/auth.go +39 -0
  394. package/dashboards/go/handlers/compliance.go +58 -0
  395. package/dashboards/go/handlers/dashboard.go +43 -0
  396. package/dashboards/go/handlers/dlp.go +78 -0
  397. package/dashboards/go/handlers/guardrails.go +89 -0
  398. package/dashboards/go/handlers/journal.go +60 -0
  399. package/dashboards/go/handlers/messages.go +59 -0
  400. package/dashboards/go/handlers/settings.go +951 -0
  401. package/dashboards/go/handlers/skills.go +129 -0
  402. package/dashboards/go/handlers/users.go +54 -0
  403. package/dashboards/go/handlers/vault.go +85 -0
  404. package/dashboards/go/main.go +35 -485
  405. package/dashboards/go/middleware/auth.go +17 -0
  406. package/dashboards/go/services/api.go +38 -0
  407. package/dashboards/go/services/session.go +52 -0
  408. package/dashboards/go/static/styles.css +284 -0
  409. package/dashboards/go/templates/components.go +45 -0
  410. package/dashboards/go/templates/helpers.go +35 -0
  411. package/dashboards/go/templates/layout.go +59 -0
  412. package/dashboards/html/index.html +203 -450
  413. package/dashboards/html/package.json +11 -0
  414. package/dashboards/html/public/styles.css +149 -0
  415. package/dashboards/html/src/api.js +36 -0
  416. package/dashboards/html/src/components/badge.js +13 -0
  417. package/dashboards/html/src/components/layout.js +11 -0
  418. package/dashboards/html/src/components/modal.js +9 -0
  419. package/dashboards/html/src/components/pagination.js +12 -0
  420. package/dashboards/html/src/components/stat-card.js +14 -0
  421. package/dashboards/html/src/components/table.js +6 -0
  422. package/dashboards/html/src/main.js +83 -0
  423. package/dashboards/html/src/pages/agents.js +831 -0
  424. package/dashboards/html/src/pages/api-keys.js +80 -0
  425. package/dashboards/html/src/pages/audit.js +50 -0
  426. package/dashboards/html/src/pages/compliance.js +69 -0
  427. package/dashboards/html/src/pages/dashboard.js +25 -0
  428. package/dashboards/html/src/pages/dlp.js +112 -0
  429. package/dashboards/html/src/pages/guardrails.js +127 -0
  430. package/dashboards/html/src/pages/journal.js +54 -0
  431. package/dashboards/html/src/pages/login.js +84 -0
  432. package/dashboards/html/src/pages/messages.js +90 -0
  433. package/dashboards/html/src/pages/settings.js +656 -0
  434. package/dashboards/html/src/pages/skills.js +114 -0
  435. package/dashboards/html/src/pages/users.js +62 -0
  436. package/dashboards/html/src/pages/vault.js +105 -0
  437. package/dashboards/html/src/router.js +40 -0
  438. package/dashboards/html/src/utils/escape.js +7 -0
  439. package/dashboards/html/src/utils/time.js +16 -0
  440. package/dashboards/html/src/utils/toast.js +10 -0
  441. package/dashboards/java/AgenticMailDashboard.java +123 -346
  442. package/dashboards/java/handlers/AgentsHandler.java +807 -0
  443. package/dashboards/java/handlers/ApiKeysHandler.java +201 -0
  444. package/dashboards/java/handlers/AuditHandler.java +95 -0
  445. package/dashboards/java/handlers/AuthHandler.java +71 -0
  446. package/dashboards/java/handlers/ComplianceHandler.java +192 -0
  447. package/dashboards/java/handlers/DashboardHandler.java +98 -0
  448. package/dashboards/java/handlers/DlpHandler.java +230 -0
  449. package/dashboards/java/handlers/GuardrailsHandler.java +272 -0
  450. package/dashboards/java/handlers/JournalHandler.java +130 -0
  451. package/dashboards/java/handlers/MessagesHandler.java +168 -0
  452. package/dashboards/java/handlers/SettingsHandler.java +1017 -0
  453. package/dashboards/java/handlers/SkillsHandler.java +198 -0
  454. package/dashboards/java/handlers/UsersHandler.java +118 -0
  455. package/dashboards/java/handlers/VaultHandler.java +168 -0
  456. package/dashboards/java/services/ApiClient.java +233 -0
  457. package/dashboards/java/services/SessionManager.java +138 -0
  458. package/dashboards/java/static/styles.css +288 -0
  459. package/dashboards/java/templates/Components.java +142 -0
  460. package/dashboards/java/templates/Helpers.java +106 -0
  461. package/dashboards/java/templates/Layout.java +98 -0
  462. package/dashboards/laravel/controllers/AgentController.php +250 -0
  463. package/dashboards/laravel/controllers/ApiKeyController.php +73 -0
  464. package/dashboards/laravel/controllers/AuditController.php +31 -0
  465. package/dashboards/laravel/controllers/AuthController.php +44 -0
  466. package/dashboards/laravel/controllers/ComplianceController.php +55 -0
  467. package/dashboards/laravel/controllers/DashboardController.php +28 -0
  468. package/dashboards/laravel/controllers/DlpController.php +88 -0
  469. package/dashboards/laravel/controllers/GuardrailController.php +110 -0
  470. package/dashboards/laravel/controllers/JournalController.php +44 -0
  471. package/dashboards/laravel/controllers/MessageController.php +47 -0
  472. package/dashboards/laravel/controllers/SettingController.php +258 -0
  473. package/dashboards/laravel/controllers/SkillController.php +74 -0
  474. package/dashboards/laravel/controllers/UserController.php +47 -0
  475. package/dashboards/laravel/controllers/VaultController.php +94 -0
  476. package/dashboards/laravel/index.php +319 -0
  477. package/dashboards/laravel/lib/Api.php +73 -0
  478. package/dashboards/laravel/lib/Helpers.php +123 -0
  479. package/dashboards/laravel/public/styles.css +291 -0
  480. package/dashboards/laravel/views/agent-detail.php +534 -0
  481. package/dashboards/laravel/views/agents.php +204 -0
  482. package/dashboards/laravel/views/api-keys.php +55 -0
  483. package/dashboards/laravel/views/audit.php +30 -0
  484. package/dashboards/laravel/views/compliance.php +48 -0
  485. package/dashboards/laravel/views/components/modal.php +59 -0
  486. package/dashboards/laravel/views/components/stats.php +21 -0
  487. package/dashboards/laravel/views/components/table.php +35 -0
  488. package/dashboards/laravel/views/dashboard.php +31 -0
  489. package/dashboards/laravel/views/dlp.php +87 -0
  490. package/dashboards/laravel/views/guardrails.php +95 -0
  491. package/dashboards/laravel/views/journal.php +50 -0
  492. package/dashboards/laravel/views/layout.php +82 -0
  493. package/dashboards/laravel/views/login.php +45 -0
  494. package/dashboards/laravel/views/messages.php +60 -0
  495. package/dashboards/laravel/views/settings.php +622 -0
  496. package/dashboards/laravel/views/skills.php +74 -0
  497. package/dashboards/laravel/views/users.php +42 -0
  498. package/dashboards/laravel/views/vault.php +80 -0
  499. package/dashboards/php/components/layout.php +80 -0
  500. package/dashboards/php/components/modal.php +22 -0
  501. package/dashboards/php/components/stats.php +20 -0
  502. package/dashboards/php/components/table.php +33 -0
  503. package/dashboards/php/index.php +663 -381
  504. package/dashboards/php/lib/api.php +37 -0
  505. package/dashboards/php/lib/auth.php +47 -0
  506. package/dashboards/php/lib/helpers.php +69 -0
  507. package/dashboards/php/pages/agent-detail.php +552 -0
  508. package/dashboards/php/pages/agents.php +185 -0
  509. package/dashboards/php/pages/api-keys.php +34 -0
  510. package/dashboards/php/pages/audit.php +31 -0
  511. package/dashboards/php/pages/compliance.php +38 -0
  512. package/dashboards/php/pages/dashboard.php +29 -0
  513. package/dashboards/php/pages/dlp.php +65 -0
  514. package/dashboards/php/pages/guardrails.php +70 -0
  515. package/dashboards/php/pages/journal.php +53 -0
  516. package/dashboards/php/pages/login.php +34 -0
  517. package/dashboards/php/pages/messages.php +53 -0
  518. package/dashboards/php/pages/settings.php +687 -0
  519. package/dashboards/php/pages/skills.php +70 -0
  520. package/dashboards/php/pages/users.php +37 -0
  521. package/dashboards/php/pages/vault.php +70 -0
  522. package/dashboards/php/public/styles.css +81 -0
  523. package/dashboards/python/app.py +61 -259
  524. package/dashboards/python/routes/__init__.py +0 -0
  525. package/dashboards/python/routes/agents.py +296 -0
  526. package/dashboards/python/routes/api_keys.py +49 -0
  527. package/dashboards/python/routes/audit.py +33 -0
  528. package/dashboards/python/routes/auth.py +30 -0
  529. package/dashboards/python/routes/compliance.py +50 -0
  530. package/dashboards/python/routes/dashboard.py +32 -0
  531. package/dashboards/python/routes/dlp.py +64 -0
  532. package/dashboards/python/routes/guardrails.py +79 -0
  533. package/dashboards/python/routes/journal.py +40 -0
  534. package/dashboards/python/routes/messages.py +46 -0
  535. package/dashboards/python/routes/settings.py +260 -0
  536. package/dashboards/python/routes/skills.py +59 -0
  537. package/dashboards/python/routes/users.py +43 -0
  538. package/dashboards/python/routes/vault.py +59 -0
  539. package/dashboards/python/static/styles.css +288 -0
  540. package/dashboards/python/templates/agent_detail.html +552 -0
  541. package/dashboards/python/templates/agents.html +246 -0
  542. package/dashboards/python/templates/api_keys.html +64 -0
  543. package/dashboards/python/templates/audit.html +50 -0
  544. package/dashboards/python/templates/compliance.html +74 -0
  545. package/dashboards/python/templates/components/modal.html +43 -0
  546. package/dashboards/python/templates/components/stats.html +26 -0
  547. package/dashboards/python/templates/components/table.html +43 -0
  548. package/dashboards/python/templates/dashboard.html +34 -0
  549. package/dashboards/python/templates/dlp.html +159 -0
  550. package/dashboards/python/templates/guardrails.html +131 -0
  551. package/dashboards/python/templates/journal.html +66 -0
  552. package/dashboards/python/templates/layout.html +86 -0
  553. package/dashboards/python/templates/login.html +36 -0
  554. package/dashboards/python/templates/messages.html +90 -0
  555. package/dashboards/python/templates/settings.html +624 -0
  556. package/dashboards/python/templates/skills.html +89 -0
  557. package/dashboards/python/templates/users.html +70 -0
  558. package/dashboards/python/templates/vault.html +73 -0
  559. package/dashboards/python/utils/__init__.py +0 -0
  560. package/dashboards/python/utils/api.py +35 -0
  561. package/dashboards/python/utils/helpers.py +90 -0
  562. package/dashboards/rails/app.rb +56 -0
  563. package/dashboards/rails/helpers/api.rb +39 -0
  564. package/dashboards/rails/helpers/auth.rb +11 -0
  565. package/dashboards/rails/helpers/view.rb +95 -0
  566. package/dashboards/rails/public/styles.css +299 -0
  567. package/dashboards/rails/routes/agents.rb +173 -0
  568. package/dashboards/rails/routes/api_keys.rb +30 -0
  569. package/dashboards/rails/routes/audit.rb +15 -0
  570. package/dashboards/rails/routes/auth.rb +29 -0
  571. package/dashboards/rails/routes/compliance.rb +25 -0
  572. package/dashboards/rails/routes/dashboard.rb +13 -0
  573. package/dashboards/rails/routes/dlp.rb +40 -0
  574. package/dashboards/rails/routes/guardrails.rb +51 -0
  575. package/dashboards/rails/routes/journal.rb +24 -0
  576. package/dashboards/rails/routes/messages.rb +22 -0
  577. package/dashboards/rails/routes/settings.rb +196 -0
  578. package/dashboards/rails/routes/skills.rb +38 -0
  579. package/dashboards/rails/routes/users.rb +18 -0
  580. package/dashboards/rails/routes/vault.rb +37 -0
  581. package/dashboards/rails/views/agent_detail.erb +550 -0
  582. package/dashboards/rails/views/agents.erb +214 -0
  583. package/dashboards/rails/views/api_keys.erb +52 -0
  584. package/dashboards/rails/views/audit.erb +38 -0
  585. package/dashboards/rails/views/compliance.erb +69 -0
  586. package/dashboards/rails/views/dashboard.erb +46 -0
  587. package/dashboards/rails/views/dlp.erb +104 -0
  588. package/dashboards/rails/views/guardrails.erb +107 -0
  589. package/dashboards/rails/views/journal.erb +65 -0
  590. package/dashboards/rails/views/layout.erb +53 -0
  591. package/dashboards/rails/views/login.erb +47 -0
  592. package/dashboards/rails/views/messages.erb +62 -0
  593. package/dashboards/rails/views/settings.erb +578 -0
  594. package/dashboards/rails/views/skills.erb +66 -0
  595. package/dashboards/rails/views/users.erb +53 -0
  596. package/dashboards/rails/views/vault.erb +66 -0
  597. package/dashboards/ruby/app.rb +53 -182
  598. package/dashboards/ruby/helpers/api.rb +63 -0
  599. package/dashboards/ruby/helpers/auth.rb +20 -0
  600. package/dashboards/ruby/helpers/view.rb +91 -0
  601. package/dashboards/ruby/public/styles.css +294 -0
  602. package/dashboards/ruby/routes/agents.rb +197 -0
  603. package/dashboards/ruby/routes/api_keys.rb +43 -0
  604. package/dashboards/ruby/routes/audit.rb +15 -0
  605. package/dashboards/ruby/routes/auth.rb +29 -0
  606. package/dashboards/ruby/routes/compliance.rb +28 -0
  607. package/dashboards/ruby/routes/dashboard.rb +13 -0
  608. package/dashboards/ruby/routes/dlp.rb +55 -0
  609. package/dashboards/ruby/routes/guardrails.rb +77 -0
  610. package/dashboards/ruby/routes/journal.rb +24 -0
  611. package/dashboards/ruby/routes/messages.rb +27 -0
  612. package/dashboards/ruby/routes/settings.rb +214 -0
  613. package/dashboards/ruby/routes/skills.rb +50 -0
  614. package/dashboards/ruby/routes/users.rb +26 -0
  615. package/dashboards/ruby/routes/vault.rb +49 -0
  616. package/dashboards/ruby/views/agent_detail.erb +550 -0
  617. package/dashboards/ruby/views/agents.erb +214 -0
  618. package/dashboards/ruby/views/api_keys.erb +59 -0
  619. package/dashboards/ruby/views/audit.erb +38 -0
  620. package/dashboards/ruby/views/compliance.erb +45 -0
  621. package/dashboards/ruby/views/dashboard.erb +46 -0
  622. package/dashboards/ruby/views/dlp.erb +88 -0
  623. package/dashboards/ruby/views/guardrails.erb +103 -0
  624. package/dashboards/ruby/views/journal.erb +53 -0
  625. package/dashboards/ruby/views/layout.erb +52 -0
  626. package/dashboards/ruby/views/login.erb +31 -0
  627. package/dashboards/ruby/views/messages.erb +51 -0
  628. package/dashboards/ruby/views/settings.erb +579 -0
  629. package/dashboards/ruby/views/skills.erb +66 -0
  630. package/dashboards/ruby/views/users.erb +53 -0
  631. package/dashboards/ruby/views/vault.erb +66 -0
  632. package/dashboards/shared/styles.css +322 -0
  633. package/dist/{chunk-TVF23PUW.js → chunk-7FVRYOP4.js} +22 -7
  634. package/dist/chunk-DRXMYYKN.js +79 -0
  635. package/dist/chunk-E23VJ3QX.js +9427 -0
  636. package/dist/chunk-EOBN6RCA.js +12652 -0
  637. package/dist/chunk-FLRYMSKY.js +23 -0
  638. package/dist/chunk-HAUHDCUB.js +764 -0
  639. package/dist/chunk-HSF6OJ5Z.js +154 -0
  640. package/dist/{chunk-PNKVD2UK.js → chunk-KFQGP6VL.js} +7 -0
  641. package/dist/chunk-LKAFZ343.js +591 -0
  642. package/dist/{chunk-GXIEEA2T.js → chunk-NTVN3JHS.js} +10 -10
  643. package/dist/chunk-RO537U6H.js +70 -0
  644. package/dist/chunk-SGBTJHEF.js +2287 -0
  645. package/dist/chunk-SMUXH6FM.js +1943 -0
  646. package/dist/chunk-TY7NVD4U.js +275 -0
  647. package/dist/chunk-X6UVWFHW.js +3455 -0
  648. package/dist/{chunk-7RGCCHIT.js → chunk-XMDE2NGH.js} +2 -1
  649. package/dist/chunk-ZNR5DDTA.js +239 -0
  650. package/dist/cidr-LISVZSM2.js +17 -0
  651. package/dist/cli-build-skill-XOYECCLE.js +235 -0
  652. package/dist/cli-recover-SSGGSKZJ.js +97 -0
  653. package/dist/cli-submit-skill-RSBLF5XN.js +162 -0
  654. package/dist/cli-validate-WJBUOEGW.js +148 -0
  655. package/dist/cli-verify-V3GPFMWU.js +98 -0
  656. package/dist/cli.js +50 -376
  657. package/dist/config-store-CRMKWBON.js +58 -0
  658. package/dist/dashboard/app.js +246 -0
  659. package/dist/dashboard/assets/logo.png +0 -0
  660. package/dist/dashboard/components/error-boundary.js +21 -0
  661. package/dist/dashboard/components/help-button.js +34 -0
  662. package/dist/dashboard/components/icons.js +53 -0
  663. package/dist/dashboard/components/modal.js +124 -0
  664. package/dist/dashboard/components/persona-fields.js +271 -0
  665. package/dist/dashboard/components/settings-help.js +191 -0
  666. package/dist/dashboard/components/tag-input.js +96 -0
  667. package/dist/dashboard/components/utils.js +148 -0
  668. package/dist/dashboard/index.html +407 -874
  669. package/dist/dashboard/pages/activity.js +62 -0
  670. package/dist/dashboard/pages/agent-detail.js +3577 -0
  671. package/dist/dashboard/pages/agents.js +1072 -0
  672. package/dist/dashboard/pages/approvals.js +81 -0
  673. package/dist/dashboard/pages/audit.js +133 -0
  674. package/dist/dashboard/pages/community-skills.js +665 -0
  675. package/dist/dashboard/pages/compliance.js +81 -0
  676. package/dist/dashboard/pages/dashboard.js +150 -0
  677. package/dist/dashboard/pages/dlp.js +107 -0
  678. package/dist/dashboard/pages/domain-status.js +123 -0
  679. package/dist/dashboard/pages/guardrails.js +995 -0
  680. package/dist/dashboard/pages/journal.js +51 -0
  681. package/dist/dashboard/pages/knowledge-contributions.js +763 -0
  682. package/dist/dashboard/pages/knowledge.js +46 -0
  683. package/dist/dashboard/pages/login.js +491 -0
  684. package/dist/dashboard/pages/messages.js +274 -0
  685. package/dist/dashboard/pages/settings.js +1554 -0
  686. package/dist/dashboard/pages/skill-connections.js +452 -0
  687. package/dist/dashboard/pages/skills.js +433 -0
  688. package/dist/dashboard/pages/users.js +49 -0
  689. package/dist/dashboard/pages/vault.js +538 -0
  690. package/dist/dashboard/pages/workforce.js +569 -0
  691. package/dist/dashboard/vendor/react-dom.production.min.js +267 -0
  692. package/dist/dashboard/vendor/react.production.min.js +31 -0
  693. package/dist/db-adapter-5PWMLY67.js +7 -0
  694. package/dist/domain-lock-URIFILHB.js +7 -0
  695. package/dist/{dynamodb-CCGL2E77.js → dynamodb-CD3LREWD.js} +4 -4
  696. package/dist/{factory-HINWFYZ3.js → factory-FVJH5RRY.js} +2 -2
  697. package/dist/firewall-AHIRE6UB.js +10 -0
  698. package/dist/index.js +133 -448
  699. package/dist/{managed-RZITNPXG.js → managed-QVTONZ7E.js} +4 -2
  700. package/dist/{mongodb-ODTXIVPV.js → mongodb-73MGW7LD.js} +4 -4
  701. package/dist/{mysql-RM3S2FV5.js → mysql-A2RYNBQG.js} +59 -6
  702. package/dist/{postgres-LN7A6MGQ.js → postgres-OE23X46P.js} +63 -6
  703. package/dist/registry/cli.js +411 -0
  704. package/dist/routes-NJK5OI5N.js +5673 -0
  705. package/dist/runtime-SMA6JUMP.js +46 -0
  706. package/dist/server-ZT5NWHT4.js +11 -0
  707. package/dist/setup-RCYNX5NA.js +20 -0
  708. package/dist/skills-QNR3CCHA.js +14 -0
  709. package/dist/soul-templates.json +1525 -0
  710. package/dist/{sqlite-VLKVAJA4.js → sqlite-SFVNZPHX.js} +56 -8
  711. package/dist/{turso-LDWODSDI.js → turso-L6WQAY7U.js} +59 -6
  712. package/live-test.mjs +1 -1
  713. package/package.json +11 -10
  714. package/schemas/agenticmail-skill.v1.schema.json +180 -0
  715. package/serve.mjs +12 -2
  716. package/src/admin/routes.ts +536 -5
  717. package/src/agent-tools/common.ts +232 -0
  718. package/src/agent-tools/index.ts +246 -0
  719. package/src/agent-tools/merge.ts +62 -0
  720. package/src/agent-tools/middleware.ts +436 -0
  721. package/src/agent-tools/security.ts +352 -0
  722. package/src/agent-tools/tools/bash.ts +154 -0
  723. package/src/agent-tools/tools/browser.ts +236 -0
  724. package/src/agent-tools/tools/edit.ts +100 -0
  725. package/src/agent-tools/tools/enterprise-calendar.ts +561 -0
  726. package/src/agent-tools/tools/enterprise-code-sandbox.ts +395 -0
  727. package/src/agent-tools/tools/enterprise-database.ts +377 -0
  728. package/src/agent-tools/tools/enterprise-diff.ts +580 -0
  729. package/src/agent-tools/tools/enterprise-documents.ts +896 -0
  730. package/src/agent-tools/tools/enterprise-finance.ts +484 -0
  731. package/src/agent-tools/tools/enterprise-http.ts +477 -0
  732. package/src/agent-tools/tools/enterprise-knowledge-search.ts +369 -0
  733. package/src/agent-tools/tools/enterprise-logs.ts +479 -0
  734. package/src/agent-tools/tools/enterprise-notifications.ts +532 -0
  735. package/src/agent-tools/tools/enterprise-security-scan.ts +528 -0
  736. package/src/agent-tools/tools/enterprise-spreadsheet.ts +825 -0
  737. package/src/agent-tools/tools/enterprise-translation.ts +530 -0
  738. package/src/agent-tools/tools/enterprise-vision.ts +348 -0
  739. package/src/agent-tools/tools/enterprise-web-research.ts +422 -0
  740. package/src/agent-tools/tools/enterprise-workflow.ts +308 -0
  741. package/src/agent-tools/tools/glob.ts +129 -0
  742. package/src/agent-tools/tools/grep.ts +178 -0
  743. package/src/agent-tools/tools/memory.ts +194 -0
  744. package/src/agent-tools/tools/read.ts +160 -0
  745. package/src/agent-tools/tools/web-fetch-utils.ts +202 -0
  746. package/src/agent-tools/tools/web-fetch.ts +456 -0
  747. package/src/agent-tools/tools/web-search.ts +480 -0
  748. package/src/agent-tools/tools/web-shared.ts +232 -0
  749. package/src/agent-tools/tools/write.ts +68 -0
  750. package/src/agent-tools/types.ts +193 -0
  751. package/src/auth/routes.ts +916 -51
  752. package/src/cli.ts +74 -14
  753. package/src/dashboard/app.js +246 -0
  754. package/src/dashboard/assets/logo.png +0 -0
  755. package/src/dashboard/components/error-boundary.js +21 -0
  756. package/src/dashboard/components/help-button.js +34 -0
  757. package/src/dashboard/components/icons.js +53 -0
  758. package/src/dashboard/components/modal.js +124 -0
  759. package/src/dashboard/components/persona-fields.js +271 -0
  760. package/src/dashboard/components/settings-help.js +191 -0
  761. package/src/dashboard/components/tag-input.js +96 -0
  762. package/src/dashboard/components/utils.js +148 -0
  763. package/src/dashboard/index.html +407 -874
  764. package/src/dashboard/pages/activity.js +62 -0
  765. package/src/dashboard/pages/agent-detail.js +3577 -0
  766. package/src/dashboard/pages/agents.js +1072 -0
  767. package/src/dashboard/pages/approvals.js +81 -0
  768. package/src/dashboard/pages/audit.js +133 -0
  769. package/src/dashboard/pages/community-skills.js +665 -0
  770. package/src/dashboard/pages/compliance.js +81 -0
  771. package/src/dashboard/pages/dashboard.js +150 -0
  772. package/src/dashboard/pages/dlp.js +107 -0
  773. package/src/dashboard/pages/domain-status.js +123 -0
  774. package/src/dashboard/pages/guardrails.js +995 -0
  775. package/src/dashboard/pages/journal.js +51 -0
  776. package/src/dashboard/pages/knowledge-contributions.js +763 -0
  777. package/src/dashboard/pages/knowledge.js +46 -0
  778. package/src/dashboard/pages/login.js +491 -0
  779. package/src/dashboard/pages/messages.js +274 -0
  780. package/src/dashboard/pages/settings.js +1554 -0
  781. package/src/dashboard/pages/skill-connections.js +452 -0
  782. package/src/dashboard/pages/skills.js +433 -0
  783. package/src/dashboard/pages/users.js +49 -0
  784. package/src/dashboard/pages/vault.js +538 -0
  785. package/src/dashboard/pages/workforce.js +569 -0
  786. package/src/dashboard/vendor/react-dom.production.min.js +267 -0
  787. package/src/dashboard/vendor/react.production.min.js +31 -0
  788. package/src/db/adapter.ts +134 -1
  789. package/src/db/dynamodb.ts +2 -2
  790. package/src/db/mongodb.ts +2 -2
  791. package/src/db/mysql.ts +55 -1
  792. package/src/db/postgres.ts +59 -1
  793. package/src/db/proxy.ts +39 -0
  794. package/src/db/sql-schema.ts +2 -1
  795. package/src/db/sqlite.ts +51 -3
  796. package/src/db/turso.ts +55 -1
  797. package/src/deploy/fly.ts +2 -2
  798. package/src/deploy/managed.ts +32 -11
  799. package/src/domain-lock/cli-recover.ts +124 -0
  800. package/src/domain-lock/cli-verify.ts +122 -0
  801. package/src/domain-lock/index.ts +220 -0
  802. package/src/engine/activity-routes.ts +116 -0
  803. package/src/engine/activity.ts +62 -2
  804. package/src/engine/agent-config.ts +190 -24
  805. package/src/engine/agent-memory.ts +1062 -0
  806. package/src/engine/agent-routes.ts +379 -0
  807. package/src/engine/approvals.ts +309 -2
  808. package/src/engine/catalog-routes.ts +155 -0
  809. package/src/engine/cli-build-skill.ts +285 -0
  810. package/src/engine/cli-submit-skill.ts +200 -0
  811. package/src/engine/cli-validate.ts +188 -0
  812. package/src/engine/communication-routes.ts +139 -0
  813. package/src/engine/communication.ts +759 -0
  814. package/src/engine/community-registry.ts +1509 -0
  815. package/src/engine/community-routes.ts +233 -0
  816. package/src/engine/compliance-routes.ts +93 -0
  817. package/src/engine/compliance.ts +325 -0
  818. package/src/engine/db-adapter.ts +349 -1
  819. package/src/engine/db-schema.ts +971 -23
  820. package/src/engine/deploy-schema-routes.ts +176 -0
  821. package/src/engine/deployer.ts +6 -6
  822. package/src/engine/dlp-routes.ts +59 -0
  823. package/src/engine/dlp.ts +231 -0
  824. package/src/engine/guardrail-routes.ts +125 -0
  825. package/src/engine/guardrails.ts +403 -0
  826. package/src/engine/index.ts +131 -10
  827. package/src/engine/journal-routes.ts +56 -0
  828. package/src/engine/journal.ts +249 -0
  829. package/src/engine/knowledge-contribution-routes.ts +385 -0
  830. package/src/engine/knowledge-contribution.ts +1319 -0
  831. package/src/engine/knowledge-routes.ts +68 -0
  832. package/src/engine/knowledge.ts +73 -1
  833. package/src/engine/lifecycle.ts +487 -31
  834. package/src/engine/memory-routes.ts +142 -0
  835. package/src/engine/oauth-connect-routes.ts +366 -0
  836. package/src/engine/oauth-connect.ts +304 -0
  837. package/src/engine/onboarding-routes.ts +140 -0
  838. package/src/engine/onboarding.ts +574 -0
  839. package/src/engine/org-approval-routes.ts +146 -0
  840. package/src/engine/org-policies.ts +497 -0
  841. package/src/engine/policy-import-routes.ts +125 -0
  842. package/src/engine/policy-import.ts +1186 -0
  843. package/src/engine/policy-routes.ts +163 -0
  844. package/src/engine/routes.ts +239 -482
  845. package/src/engine/skill-updater-routes.ts +132 -0
  846. package/src/engine/skill-updater.ts +480 -0
  847. package/src/engine/skill-validator.ts +331 -0
  848. package/src/engine/skills/enterprise-calendar.ts +142 -0
  849. package/src/engine/skills/enterprise-code-sandbox.ts +112 -0
  850. package/src/engine/skills/enterprise-database.ts +122 -0
  851. package/src/engine/skills/enterprise-diff.ts +94 -0
  852. package/src/engine/skills/enterprise-documents.ts +161 -0
  853. package/src/engine/skills/enterprise-finance.ts +109 -0
  854. package/src/engine/skills/enterprise-http.ts +98 -0
  855. package/src/engine/skills/enterprise-knowledge-search.ts +106 -0
  856. package/src/engine/skills/enterprise-logs.ts +115 -0
  857. package/src/engine/skills/enterprise-notifications.ts +119 -0
  858. package/src/engine/skills/enterprise-security-scan.ts +124 -0
  859. package/src/engine/skills/enterprise-spreadsheet.ts +170 -0
  860. package/src/engine/skills/enterprise-translation.ts +111 -0
  861. package/src/engine/skills/enterprise-vision.ts +107 -0
  862. package/src/engine/skills/enterprise-web-research.ts +114 -0
  863. package/src/engine/skills/enterprise-workflow.ts +109 -0
  864. package/src/engine/skills/gws-admin.ts +17 -0
  865. package/src/engine/skills/gws-calendar.ts +19 -0
  866. package/src/engine/skills/gws-chat.ts +16 -0
  867. package/src/engine/skills/gws-docs.ts +17 -0
  868. package/src/engine/skills/gws-drive.ts +20 -0
  869. package/src/engine/skills/gws-forms.ts +16 -0
  870. package/src/engine/skills/gws-gmail.ts +20 -0
  871. package/src/engine/skills/gws-groups.ts +16 -0
  872. package/src/engine/skills/gws-keep.ts +16 -0
  873. package/src/engine/skills/gws-meet.ts +16 -0
  874. package/src/engine/skills/gws-sheets.ts +18 -0
  875. package/src/engine/skills/gws-sites.ts +15 -0
  876. package/src/engine/skills/gws-slides.ts +16 -0
  877. package/src/engine/skills/gws-vault.ts +16 -0
  878. package/src/engine/skills/index.ts +121 -0
  879. package/src/engine/skills/m365-admin.ts +17 -0
  880. package/src/engine/skills/m365-bookings.ts +16 -0
  881. package/src/engine/skills/m365-copilot.ts +16 -0
  882. package/src/engine/skills/m365-excel.ts +59 -0
  883. package/src/engine/skills/m365-forms.ts +16 -0
  884. package/src/engine/skills/m365-onedrive.ts +59 -0
  885. package/src/engine/skills/m365-onenote.ts +16 -0
  886. package/src/engine/skills/m365-outlook.ts +26 -0
  887. package/src/engine/skills/m365-planner.ts +17 -0
  888. package/src/engine/skills/m365-power-automate.ts +17 -0
  889. package/src/engine/skills/m365-power-bi.ts +18 -0
  890. package/src/engine/skills/m365-powerpoint.ts +32 -0
  891. package/src/engine/skills/m365-sharepoint.ts +19 -0
  892. package/src/engine/skills/m365-teams.ts +20 -0
  893. package/src/engine/skills/m365-todo.ts +16 -0
  894. package/src/engine/skills/m365-whiteboard.ts +15 -0
  895. package/src/engine/skills/m365-word.ts +41 -0
  896. package/src/engine/skills.ts +353 -17
  897. package/src/engine/soul-library.ts +142 -0
  898. package/src/engine/soul-templates.json +1525 -0
  899. package/src/engine/storage-manager.ts +252 -0
  900. package/src/engine/storage-routes.ts +113 -0
  901. package/src/engine/storage.ts +528 -0
  902. package/src/engine/tenant.ts +69 -5
  903. package/src/engine/tool-catalog.ts +177 -13
  904. package/src/engine/vault-routes.ts +130 -0
  905. package/src/engine/vault.ts +544 -0
  906. package/src/engine/workforce-routes.ts +282 -0
  907. package/src/engine/workforce.ts +957 -0
  908. package/src/index.ts +9 -1
  909. package/src/lib/cidr.ts +122 -0
  910. package/src/lib/config-store.ts +86 -0
  911. package/src/mcp/adapters/activecampaign.adapter.ts +391 -0
  912. package/src/mcp/adapters/adobe-sign.adapter.ts +469 -0
  913. package/src/mcp/adapters/adp.adapter.ts +358 -0
  914. package/src/mcp/adapters/airtable.adapter.ts +273 -0
  915. package/src/mcp/adapters/apollo.adapter.ts +420 -0
  916. package/src/mcp/adapters/asana.adapter.ts +315 -0
  917. package/src/mcp/adapters/auth0.adapter.ts +386 -0
  918. package/src/mcp/adapters/aws.adapter.ts +345 -0
  919. package/src/mcp/adapters/azure-devops.adapter.ts +389 -0
  920. package/src/mcp/adapters/bamboohr.adapter.ts +376 -0
  921. package/src/mcp/adapters/basecamp.adapter.ts +366 -0
  922. package/src/mcp/adapters/bigcommerce.adapter.ts +429 -0
  923. package/src/mcp/adapters/bitbucket.adapter.ts +260 -0
  924. package/src/mcp/adapters/box.adapter.ts +350 -0
  925. package/src/mcp/adapters/brex.adapter.ts +367 -0
  926. package/src/mcp/adapters/buffer.adapter.ts +303 -0
  927. package/src/mcp/adapters/calendly.adapter.ts +262 -0
  928. package/src/mcp/adapters/canva.adapter.ts +256 -0
  929. package/src/mcp/adapters/chargebee.adapter.ts +448 -0
  930. package/src/mcp/adapters/circleci.adapter.ts +216 -0
  931. package/src/mcp/adapters/clickup.adapter.ts +335 -0
  932. package/src/mcp/adapters/close.adapter.ts +390 -0
  933. package/src/mcp/adapters/cloudflare.adapter.ts +377 -0
  934. package/src/mcp/adapters/confluence.adapter.ts +301 -0
  935. package/src/mcp/adapters/contentful.adapter.ts +355 -0
  936. package/src/mcp/adapters/copper.adapter.ts +468 -0
  937. package/src/mcp/adapters/crisp.adapter.ts +415 -0
  938. package/src/mcp/adapters/crowdstrike.adapter.ts +413 -0
  939. package/src/mcp/adapters/datadog.adapter.ts +373 -0
  940. package/src/mcp/adapters/digitalocean.adapter.ts +336 -0
  941. package/src/mcp/adapters/discord.adapter.ts +248 -0
  942. package/src/mcp/adapters/docker.adapter.ts +238 -0
  943. package/src/mcp/adapters/docusign.adapter.ts +431 -0
  944. package/src/mcp/adapters/drift.adapter.ts +386 -0
  945. package/src/mcp/adapters/dropbox.adapter.ts +315 -0
  946. package/src/mcp/adapters/figma.adapter.ts +302 -0
  947. package/src/mcp/adapters/firebase.adapter.ts +446 -0
  948. package/src/mcp/adapters/flyio.adapter.ts +302 -0
  949. package/src/mcp/adapters/freshbooks.adapter.ts +474 -0
  950. package/src/mcp/adapters/freshdesk.adapter.ts +441 -0
  951. package/src/mcp/adapters/freshsales.adapter.ts +457 -0
  952. package/src/mcp/adapters/freshservice.adapter.ts +481 -0
  953. package/src/mcp/adapters/front.adapter.ts +357 -0
  954. package/src/mcp/adapters/github-actions.adapter.ts +329 -0
  955. package/src/mcp/adapters/github.adapter.ts +387 -0
  956. package/src/mcp/adapters/gitlab.adapter.ts +368 -0
  957. package/src/mcp/adapters/gong.adapter.ts +386 -0
  958. package/src/mcp/adapters/google-ads.adapter.ts +363 -0
  959. package/src/mcp/adapters/google-analytics.adapter.ts +316 -0
  960. package/src/mcp/adapters/google-cloud.adapter.ts +312 -0
  961. package/src/mcp/adapters/google-drive.adapter.ts +387 -0
  962. package/src/mcp/adapters/gotomeeting.adapter.ts +255 -0
  963. package/src/mcp/adapters/grafana.adapter.ts +361 -0
  964. package/src/mcp/adapters/greenhouse.adapter.ts +354 -0
  965. package/src/mcp/adapters/gusto.adapter.ts +329 -0
  966. package/src/mcp/adapters/hashicorp-vault.adapter.ts +355 -0
  967. package/src/mcp/adapters/heroku.adapter.ts +291 -0
  968. package/src/mcp/adapters/hibob.adapter.ts +334 -0
  969. package/src/mcp/adapters/hootsuite.adapter.ts +322 -0
  970. package/src/mcp/adapters/hubspot.adapter.ts +400 -0
  971. package/src/mcp/adapters/huggingface.adapter.ts +349 -0
  972. package/src/mcp/adapters/index.ts +530 -0
  973. package/src/mcp/adapters/intercom.adapter.ts +269 -0
  974. package/src/mcp/adapters/jira.adapter.ts +482 -0
  975. package/src/mcp/adapters/klaviyo.adapter.ts +353 -0
  976. package/src/mcp/adapters/kubernetes.adapter.ts +431 -0
  977. package/src/mcp/adapters/lattice.adapter.ts +339 -0
  978. package/src/mcp/adapters/launchdarkly.adapter.ts +368 -0
  979. package/src/mcp/adapters/lever.adapter.ts +347 -0
  980. package/src/mcp/adapters/linear.adapter.ts +300 -0
  981. package/src/mcp/adapters/linkedin.adapter.ts +331 -0
  982. package/src/mcp/adapters/livechat.adapter.ts +259 -0
  983. package/src/mcp/adapters/loom.adapter.ts +230 -0
  984. package/src/mcp/adapters/mailchimp.adapter.ts +394 -0
  985. package/src/mcp/adapters/mailgun.adapter.ts +425 -0
  986. package/src/mcp/adapters/microsoft-teams.adapter.ts +251 -0
  987. package/src/mcp/adapters/miro.adapter.ts +274 -0
  988. package/src/mcp/adapters/mixpanel.adapter.ts +324 -0
  989. package/src/mcp/adapters/monday.adapter.ts +308 -0
  990. package/src/mcp/adapters/mongodb-atlas.adapter.ts +345 -0
  991. package/src/mcp/adapters/neon.adapter.ts +312 -0
  992. package/src/mcp/adapters/netlify.adapter.ts +324 -0
  993. package/src/mcp/adapters/netsuite.adapter.ts +411 -0
  994. package/src/mcp/adapters/newrelic.adapter.ts +339 -0
  995. package/src/mcp/adapters/notion.adapter.ts +338 -0
  996. package/src/mcp/adapters/okta.adapter.ts +394 -0
  997. package/src/mcp/adapters/openai.adapter.ts +315 -0
  998. package/src/mcp/adapters/opsgenie.adapter.ts +375 -0
  999. package/src/mcp/adapters/outreach.adapter.ts +372 -0
  1000. package/src/mcp/adapters/paddle.adapter.ts +467 -0
  1001. package/src/mcp/adapters/pagerduty.adapter.ts +412 -0
  1002. package/src/mcp/adapters/pandadoc.adapter.ts +389 -0
  1003. package/src/mcp/adapters/paypal.adapter.ts +465 -0
  1004. package/src/mcp/adapters/personio.adapter.ts +401 -0
  1005. package/src/mcp/adapters/pinecone.adapter.ts +340 -0
  1006. package/src/mcp/adapters/pipedrive.adapter.ts +324 -0
  1007. package/src/mcp/adapters/plaid.adapter.ts +444 -0
  1008. package/src/mcp/adapters/postmark.adapter.ts +387 -0
  1009. package/src/mcp/adapters/power-automate.adapter.ts +388 -0
  1010. package/src/mcp/adapters/quickbooks.adapter.ts +431 -0
  1011. package/src/mcp/adapters/recurly.adapter.ts +433 -0
  1012. package/src/mcp/adapters/reddit.adapter.ts +371 -0
  1013. package/src/mcp/adapters/render.adapter.ts +332 -0
  1014. package/src/mcp/adapters/ringcentral.adapter.ts +281 -0
  1015. package/src/mcp/adapters/rippling.adapter.ts +287 -0
  1016. package/src/mcp/adapters/salesforce.adapter.ts +321 -0
  1017. package/src/mcp/adapters/salesloft.adapter.ts +413 -0
  1018. package/src/mcp/adapters/sanity.adapter.ts +363 -0
  1019. package/src/mcp/adapters/sap.adapter.ts +483 -0
  1020. package/src/mcp/adapters/segment.adapter.ts +260 -0
  1021. package/src/mcp/adapters/sendgrid.adapter.ts +265 -0
  1022. package/src/mcp/adapters/sentry.adapter.ts +331 -0
  1023. package/src/mcp/adapters/servicenow.adapter.ts +468 -0
  1024. package/src/mcp/adapters/shopify.adapter.ts +451 -0
  1025. package/src/mcp/adapters/shortcut.adapter.ts +290 -0
  1026. package/src/mcp/adapters/slack.adapter.ts +380 -0
  1027. package/src/mcp/adapters/smartsheet.adapter.ts +326 -0
  1028. package/src/mcp/adapters/snowflake.adapter.ts +347 -0
  1029. package/src/mcp/adapters/snyk.adapter.ts +394 -0
  1030. package/src/mcp/adapters/splunk.adapter.ts +403 -0
  1031. package/src/mcp/adapters/square.adapter.ts +467 -0
  1032. package/src/mcp/adapters/statuspage.adapter.ts +401 -0
  1033. package/src/mcp/adapters/stripe.adapter.ts +380 -0
  1034. package/src/mcp/adapters/supabase.adapter.ts +334 -0
  1035. package/src/mcp/adapters/teamwork.adapter.ts +404 -0
  1036. package/src/mcp/adapters/telegram.adapter.ts +299 -0
  1037. package/src/mcp/adapters/terraform.adapter.ts +300 -0
  1038. package/src/mcp/adapters/todoist.adapter.ts +239 -0
  1039. package/src/mcp/adapters/trello.adapter.ts +316 -0
  1040. package/src/mcp/adapters/twilio.adapter.ts +233 -0
  1041. package/src/mcp/adapters/twitter.adapter.ts +348 -0
  1042. package/src/mcp/adapters/vercel.adapter.ts +219 -0
  1043. package/src/mcp/adapters/weaviate.adapter.ts +371 -0
  1044. package/src/mcp/adapters/webex.adapter.ts +237 -0
  1045. package/src/mcp/adapters/webflow.adapter.ts +287 -0
  1046. package/src/mcp/adapters/whatsapp.adapter.ts +273 -0
  1047. package/src/mcp/adapters/whereby.adapter.ts +240 -0
  1048. package/src/mcp/adapters/woocommerce.adapter.ts +454 -0
  1049. package/src/mcp/adapters/wordpress.adapter.ts +455 -0
  1050. package/src/mcp/adapters/workday.adapter.ts +354 -0
  1051. package/src/mcp/adapters/wrike.adapter.ts +349 -0
  1052. package/src/mcp/adapters/xero.adapter.ts +472 -0
  1053. package/src/mcp/adapters/youtube.adapter.ts +401 -0
  1054. package/src/mcp/adapters/zendesk.adapter.ts +399 -0
  1055. package/src/mcp/adapters/zoho-crm.adapter.ts +410 -0
  1056. package/src/mcp/adapters/zoom.adapter.ts +241 -0
  1057. package/src/mcp/adapters/zuora.adapter.ts +476 -0
  1058. package/src/mcp/framework/api-executor.ts +192 -0
  1059. package/src/mcp/framework/aws-sigv4.ts +216 -0
  1060. package/src/mcp/framework/credential-resolver.ts +128 -0
  1061. package/src/mcp/framework/skill-mcp-framework.ts +226 -0
  1062. package/src/mcp/framework/types.ts +130 -0
  1063. package/src/mcp/index.ts +124 -0
  1064. package/src/middleware/egress-filter.ts +81 -0
  1065. package/src/middleware/firewall.ts +121 -0
  1066. package/src/middleware/index.ts +33 -0
  1067. package/src/registry/cli.ts +63 -0
  1068. package/src/registry/server.ts +504 -0
  1069. package/src/runtime/agent-loop.ts +504 -0
  1070. package/src/runtime/email-channel.ts +120 -0
  1071. package/src/runtime/followup.ts +211 -0
  1072. package/src/runtime/gateway.ts +260 -0
  1073. package/src/runtime/hooks.ts +472 -0
  1074. package/src/runtime/index.ts +679 -0
  1075. package/src/runtime/llm-client.ts +1019 -0
  1076. package/src/runtime/providers.ts +231 -0
  1077. package/src/runtime/session-manager.ts +340 -0
  1078. package/src/runtime/subagent.ts +154 -0
  1079. package/src/runtime/tool-executor.ts +202 -0
  1080. package/src/runtime/types.ts +215 -0
  1081. package/src/server.ts +157 -45
  1082. package/src/setup/company.ts +127 -8
  1083. package/src/setup/database.ts +2 -1
  1084. package/src/setup/domain.ts +33 -4
  1085. package/src/setup/index.ts +19 -7
  1086. package/src/setup/provision.ts +128 -8
  1087. package/src/setup/registration.ts +227 -0
  1088. package/src/types/hono-env.ts +14 -0
  1089. package/src/types/optional-deps.d.ts +10 -0
  1090. package/start-live.mjs +12 -3
  1091. package/test-integration.mjs +628 -257
  1092. package/dist/chunk-77IDQJL3.js +0 -7
  1093. package/dist/chunk-BE7MXVLA.js +0 -757
  1094. package/dist/chunk-BS2WCSHO.js +0 -48
  1095. package/dist/chunk-FL3VQBGL.js +0 -757
  1096. package/dist/chunk-IQWA44WT.js +0 -970
  1097. package/dist/chunk-N2JVTNNJ.js +0 -2553
  1098. package/dist/chunk-YFDSE4BW.js +0 -1355
  1099. package/dist/db-adapter-DEWEFNIV.js +0 -7
  1100. package/dist/factory-V37IG5AT.js +0 -9
  1101. package/dist/routes-2JEPIIKC.js +0 -441
  1102. package/dist/server-32YYCI3A.js +0 -8
  1103. package/dist/server-H3C6WUOS.js +0 -8
  1104. package/dist/sqlite-3K5YOZ4K.js +0 -439
  1105. package/src/engine/agenticmail-bridge.ts +0 -296
  1106. package/src/engine/openclaw-hook.ts +0 -371
@@ -44,17 +44,33 @@ export interface ConfigField {
44
44
  }
45
45
 
46
46
  export type SkillCategory =
47
- | 'communication' // Email, SMS, messaging
48
- | 'development' // GitHub, coding, git
49
- | 'productivity' // Calendar, notes, reminders, tasks
50
- | 'research' // Web search, web fetch, summarize
51
- | 'media' // Image gen, TTS, video, audio
52
- | 'automation' // Browser, shell, scripting
53
- | 'smart-home' // Hue, Sonos, cameras, Eight Sleep
54
- | 'data' // Files, databases, storage
55
- | 'security' // 1Password, healthcheck
56
- | 'social' // Twitter/X, social media
57
- | 'platform'; // Core OpenClaw/AgenticMail internals
47
+ | 'communication' // Email, SMS, messaging
48
+ | 'development' // GitHub, coding, git
49
+ | 'productivity' // Calendar, notes, reminders, tasks
50
+ | 'research' // Web search, web fetch, summarize
51
+ | 'media' // Image gen, TTS, video, audio
52
+ | 'automation' // Browser, shell, scripting
53
+ | 'smart-home' // Hue, Sonos, cameras, Eight Sleep
54
+ | 'data' // Files, databases, storage
55
+ | 'security' // 1Password, healthcheck, IAM
56
+ | 'social' // Twitter/X, LinkedIn, social media
57
+ | 'platform' // Core AgenticMail platform internals
58
+ | 'collaboration' // Slack, Teams, Zoom, chat
59
+ | 'crm' // Salesforce, HubSpot, Dynamics
60
+ | 'project-management' // Jira, Asana, Monday, Linear
61
+ | 'cloud-infrastructure' // AWS, Azure, GCP
62
+ | 'devops' // Docker, K8s, Terraform, CI/CD
63
+ | 'finance' // Stripe, QuickBooks, Xero
64
+ | 'analytics' // Tableau, Power BI, Mixpanel
65
+ | 'design' // Figma, Canva, Adobe
66
+ | 'ecommerce' // Shopify, WooCommerce
67
+ | 'marketing' // Mailchimp, SendGrid, ads
68
+ | 'hr' // BambooHR, Workday, Gusto
69
+ | 'legal' // DocuSign, compliance
70
+ | 'customer-support' // Zendesk, Intercom, Freshdesk
71
+ | 'storage' // Dropbox, Box, OneDrive
72
+ | 'database' // MongoDB, Redis, Snowflake
73
+ | 'monitoring'; // Datadog, PagerDuty, Sentry
58
74
 
59
75
  export type ToolCategory =
60
76
  | 'read' // Read-only, no side effects
@@ -78,6 +94,9 @@ export type SideEffect =
78
94
  | 'accesses-secrets'
79
95
  | 'financial';
80
96
 
97
+ // ─── Individual Skill File Imports ──────────────────────
98
+ import { M365_SKILL_DEFS, GWS_SKILL_DEFS, ENTERPRISE_SKILL_DEFS } from './skills/index.js';
99
+
81
100
  // ─── Agent Permission Profile ───────────────────────────
82
101
 
83
102
  export interface AgentPermissionProfile {
@@ -133,6 +152,104 @@ export interface AgentPermissionProfile {
133
152
  updatedAt: string;
134
153
  }
135
154
 
155
+ // ─── Skill Suites ──────────────────────────────────────
156
+ // Suites are meta-groupings: selecting "Microsoft 365" auto-adds all M365 skills.
157
+
158
+ export interface SkillSuite {
159
+ id: string;
160
+ name: string;
161
+ description: string;
162
+ icon: string;
163
+ skills: string[]; // Skill IDs included in this suite
164
+ }
165
+
166
+ export const SKILL_SUITES: SkillSuite[] = [
167
+ {
168
+ id: 'microsoft-365',
169
+ name: 'Microsoft 365',
170
+ description: 'Complete Microsoft 365 suite — Outlook, Teams, SharePoint, OneDrive, Word, Excel, PowerPoint, OneNote, Planner, Power BI, Power Automate, Forms, To Do, Bookings, Whiteboard, Admin Center, Copilot.',
171
+ icon: '🏢',
172
+ skills: [
173
+ 'm365-outlook', 'm365-teams', 'm365-sharepoint', 'm365-onedrive',
174
+ 'm365-word', 'm365-excel', 'm365-powerpoint', 'm365-onenote',
175
+ 'm365-planner', 'm365-power-bi', 'm365-power-automate', 'm365-forms',
176
+ 'm365-todo', 'm365-bookings', 'm365-whiteboard', 'm365-admin', 'm365-copilot',
177
+ ],
178
+ },
179
+ {
180
+ id: 'google-workspace',
181
+ name: 'Google Workspace',
182
+ description: 'Complete Google Workspace suite — Gmail, Calendar, Drive, Docs, Sheets, Slides, Meet, Chat, Forms, Sites, Keep, Admin Console, Vault, Groups.',
183
+ icon: '🔵',
184
+ skills: [
185
+ 'gws-gmail', 'gws-calendar', 'gws-drive', 'gws-docs', 'gws-sheets',
186
+ 'gws-slides', 'gws-meet', 'gws-chat', 'gws-forms', 'gws-sites',
187
+ 'gws-keep', 'gws-admin', 'gws-vault', 'gws-groups',
188
+ ],
189
+ },
190
+ {
191
+ id: 'atlassian',
192
+ name: 'Atlassian Suite',
193
+ description: 'Jira, Confluence, Bitbucket, Trello, Statuspage, and Opsgenie.',
194
+ icon: '🔷',
195
+ skills: ['jira', 'confluence', 'bitbucket', 'trello', 'statuspage', 'opsgenie'],
196
+ },
197
+ {
198
+ id: 'aws',
199
+ name: 'Amazon Web Services',
200
+ description: 'AWS cloud infrastructure — S3, EC2, Lambda, RDS, CloudWatch, IAM, SES, SNS, SQS, DynamoDB, CloudFormation.',
201
+ icon: '☁️',
202
+ skills: ['aws-s3', 'aws-ec2', 'aws-lambda', 'aws-rds', 'aws-cloudwatch', 'aws-iam', 'aws-ses', 'aws-sns', 'aws-sqs', 'aws-dynamodb', 'aws-cloudformation'],
203
+ },
204
+ {
205
+ id: 'azure',
206
+ name: 'Microsoft Azure',
207
+ description: 'Azure cloud infrastructure — VMs, App Service, Functions, Storage, SQL, CosmosDB, DevOps, Active Directory.',
208
+ icon: '⛅',
209
+ skills: ['azure-vms', 'azure-app-service', 'azure-functions', 'azure-storage', 'azure-sql', 'azure-cosmosdb', 'azure-devops', 'azure-ad'],
210
+ },
211
+ {
212
+ id: 'gcp',
213
+ name: 'Google Cloud Platform',
214
+ description: 'GCP cloud infrastructure — Compute Engine, Cloud Functions, Cloud Storage, BigQuery, Cloud Run, Pub/Sub, Firestore.',
215
+ icon: '🌤️',
216
+ skills: ['gcp-compute', 'gcp-functions', 'gcp-storage', 'gcp-bigquery', 'gcp-run', 'gcp-pubsub', 'gcp-firestore'],
217
+ },
218
+ {
219
+ id: 'salesforce-suite',
220
+ name: 'Salesforce Suite',
221
+ description: 'Salesforce CRM, Service Cloud, Marketing Cloud, and Commerce Cloud.',
222
+ icon: '☁',
223
+ skills: ['salesforce', 'salesforce-service', 'salesforce-marketing', 'salesforce-commerce'],
224
+ },
225
+ {
226
+ id: 'hubspot-suite',
227
+ name: 'HubSpot Suite',
228
+ description: 'HubSpot CRM, Marketing Hub, Sales Hub, Service Hub, and CMS.',
229
+ icon: '🟠',
230
+ skills: ['hubspot-crm', 'hubspot-marketing', 'hubspot-sales', 'hubspot-service'],
231
+ },
232
+ {
233
+ id: 'adobe-creative',
234
+ name: 'Adobe Creative Cloud',
235
+ description: 'Adobe Photoshop, Illustrator, Premiere Pro, After Effects, InDesign, and XD.',
236
+ icon: '🎨',
237
+ skills: ['adobe-photoshop', 'adobe-illustrator', 'adobe-premiere', 'adobe-after-effects', 'adobe-indesign', 'adobe-xd'],
238
+ },
239
+ {
240
+ id: 'enterprise-utility',
241
+ name: 'Enterprise Utility Tools',
242
+ description: 'Built-in enterprise productivity tools — database queries, spreadsheets, documents, calendar, knowledge search, web research, translation, logs, workflow, notifications, finance, HTTP, security scanning, code sandbox, diff, and vision.',
243
+ icon: '🏗️',
244
+ skills: [
245
+ 'enterprise-database', 'enterprise-spreadsheet', 'enterprise-documents', 'enterprise-calendar',
246
+ 'enterprise-knowledge-search', 'enterprise-web-research', 'enterprise-translation', 'enterprise-logs',
247
+ 'enterprise-workflow', 'enterprise-notifications', 'enterprise-finance', 'enterprise-http',
248
+ 'enterprise-security-scan', 'enterprise-code-sandbox', 'enterprise-diff', 'enterprise-vision',
249
+ ],
250
+ },
251
+ ];
252
+
136
253
  // ─── Preset Permission Profiles ─────────────────────────
137
254
 
138
255
  export const PRESET_PROFILES: Omit<AgentPermissionProfile, 'id' | 'createdAt' | 'updatedAt'>[] = [
@@ -150,7 +267,7 @@ export const PRESET_PROFILES: Omit<AgentPermissionProfile, 'id' | 'createdAt' |
150
267
  {
151
268
  name: 'Customer Support Agent',
152
269
  description: 'Can read/send emails, search knowledge base, and manage tickets. Cannot run code or access files.',
153
- skills: { mode: 'allowlist', list: ['communication', 'research', 'agenticmail'] },
270
+ skills: { mode: 'allowlist', list: ['communication', 'research', 'agenticmail', 'm365-outlook', 'm365-teams', 'gws-gmail', 'gws-calendar', 'zendesk', 'intercom'] },
154
271
  tools: { blocked: ['exec', 'browser', 'write', 'edit'], allowed: ['agenticmail_send', 'agenticmail_reply', 'agenticmail_inbox', 'agenticmail_read', 'agenticmail_search', 'web_search', 'web_fetch'] },
155
272
  maxRiskLevel: 'medium',
156
273
  blockedSideEffects: ['runs-code', 'modifies-files', 'deletes-data', 'controls-device', 'financial', 'posts-social'],
@@ -161,7 +278,7 @@ export const PRESET_PROFILES: Omit<AgentPermissionProfile, 'id' | 'createdAt' |
161
278
  {
162
279
  name: 'Developer Assistant',
163
280
  description: 'Full development capabilities: code, git, GitHub, shell. Cannot send external messages or access smart home.',
164
- skills: { mode: 'allowlist', list: ['development', 'github', 'coding-agent', 'research', 'data'] },
281
+ skills: { mode: 'allowlist', list: ['development', 'github', 'coding-agent', 'research', 'data', 'docker', 'github-actions', 'jira', 'linear', 'slack'] },
165
282
  tools: { blocked: ['agenticmail_send', 'message', 'tts', 'nodes'], allowed: ['exec', 'read', 'write', 'edit', 'web_search', 'web_fetch', 'browser'] },
166
283
  maxRiskLevel: 'high',
167
284
  blockedSideEffects: ['sends-email', 'sends-message', 'sends-sms', 'posts-social', 'controls-device', 'financial'],
@@ -252,9 +369,212 @@ export const BUILTIN_SKILLS: Omit<SkillDefinition, 'tools'>[] = [
252
369
  { id: 'twitter', name: 'Twitter/X', description: 'Post tweets, read timeline, manage social presence.', category: 'social', risk: 'high', icon: '🐦', source: 'builtin' },
253
370
 
254
371
  // Platform
255
- { id: 'gateway', name: 'OpenClaw Gateway', description: 'Restart, configure, and update the OpenClaw gateway.', category: 'platform', risk: 'critical', icon: '⚙️', source: 'builtin' },
372
+ { id: 'gateway', name: 'Agent Runtime Gateway', description: 'Restart, configure, and update the agent runtime gateway.', category: 'platform', risk: 'critical', icon: '⚙️', source: 'builtin' },
256
373
  { id: 'sessions', name: 'Session Management', description: 'Spawn sub-agents, list sessions, send messages between sessions.', category: 'platform', risk: 'medium', icon: '🔄', source: 'builtin' },
257
374
  { id: 'nodes', name: 'Node Control', description: 'Discover and control paired devices (camera, screen, location).', category: 'platform', risk: 'high', icon: '📡', source: 'builtin' },
375
+
376
+ // ─── Microsoft 365 (from individual skill files) ────────
377
+ ...M365_SKILL_DEFS,
378
+
379
+ // ─── Google Workspace (from individual skill files) ─────
380
+ ...GWS_SKILL_DEFS,
381
+
382
+ // ─── Collaboration ──────────────────────────────────────
383
+ { id: 'slack', name: 'Slack', description: 'Messaging, channels, threads, apps, workflows, and Slack Connect.', category: 'collaboration', risk: 'medium', icon: '💬', source: 'builtin' },
384
+ { id: 'zoom', name: 'Zoom', description: 'Video meetings, webinars, recordings, scheduling, and Zoom Phone.', category: 'collaboration', risk: 'medium', icon: '📹', source: 'builtin' },
385
+ { id: 'discord', name: 'Discord', description: 'Messaging, voice channels, bots, and server management.', category: 'collaboration', risk: 'medium', icon: '🎮', source: 'builtin' },
386
+ { id: 'webex', name: 'Webex', description: 'Cisco Webex meetings, messaging, calling, and device management.', category: 'collaboration', risk: 'medium', icon: '📞', source: 'builtin' },
387
+ { id: 'mattermost', name: 'Mattermost', description: 'Open-source team messaging, channels, and integrations.', category: 'collaboration', risk: 'medium', icon: '💭', source: 'builtin' },
388
+
389
+ // ─── CRM ────────────────────────────────────────────────
390
+ { id: 'salesforce', name: 'Salesforce CRM', description: 'Leads, contacts, opportunities, accounts, cases, and custom objects.', category: 'crm', risk: 'medium', icon: '☁️', source: 'builtin' },
391
+ { id: 'salesforce-service', name: 'Salesforce Service Cloud', description: 'Case management, knowledge base, service console, and omni-channel routing.', category: 'customer-support', risk: 'medium', icon: '🎧', source: 'builtin' },
392
+ { id: 'salesforce-marketing', name: 'Salesforce Marketing Cloud', description: 'Email campaigns, journeys, audiences, and marketing automation.', category: 'marketing', risk: 'medium', icon: '📣', source: 'builtin' },
393
+ { id: 'salesforce-commerce', name: 'Salesforce Commerce Cloud', description: 'Online storefronts, product catalogs, orders, and customer data.', category: 'ecommerce', risk: 'medium', icon: '🛒', source: 'builtin' },
394
+ { id: 'hubspot-crm', name: 'HubSpot CRM', description: 'Contacts, deals, companies, tickets, and pipeline management.', category: 'crm', risk: 'medium', icon: '🟠', source: 'builtin' },
395
+ { id: 'hubspot-marketing', name: 'HubSpot Marketing', description: 'Email marketing, landing pages, forms, workflows, and analytics.', category: 'marketing', risk: 'medium', icon: '📧', source: 'builtin' },
396
+ { id: 'hubspot-sales', name: 'HubSpot Sales', description: 'Sales pipeline, sequences, meetings, quotes, and call tracking.', category: 'crm', risk: 'medium', icon: '💰', source: 'builtin' },
397
+ { id: 'hubspot-service', name: 'HubSpot Service', description: 'Help desk, tickets, knowledge base, customer feedback, and live chat.', category: 'customer-support', risk: 'medium', icon: '🎯', source: 'builtin' },
398
+ { id: 'pipedrive', name: 'Pipedrive', description: 'Sales CRM — deals, contacts, activities, and pipeline visualization.', category: 'crm', risk: 'medium', icon: '🔗', source: 'builtin' },
399
+ { id: 'zoho-crm', name: 'Zoho CRM', description: 'Leads, contacts, deals, workflows, and custom modules.', category: 'crm', risk: 'medium', icon: '🟡', source: 'builtin' },
400
+
401
+ // ─── Project Management ─────────────────────────────────
402
+ { id: 'jira', name: 'Jira', description: 'Issues, sprints, boards, backlogs, epics, and agile project management.', category: 'project-management', risk: 'medium', icon: '🔷', source: 'builtin' },
403
+ { id: 'confluence', name: 'Confluence', description: 'Wiki pages, spaces, templates, comments, and knowledge management.', category: 'project-management', risk: 'medium', icon: '📖', source: 'builtin' },
404
+ { id: 'asana', name: 'Asana', description: 'Tasks, projects, timelines, portfolios, and workload management.', category: 'project-management', risk: 'medium', icon: '🔴', source: 'builtin' },
405
+ { id: 'monday', name: 'Monday.com', description: 'Boards, items, automations, dashboards, and work management.', category: 'project-management', risk: 'medium', icon: '🟣', source: 'builtin' },
406
+ { id: 'notion', name: 'Notion', description: 'Pages, databases, wikis, templates, and all-in-one workspace.', category: 'project-management', risk: 'medium', icon: '📓', source: 'builtin' },
407
+ { id: 'linear', name: 'Linear', description: 'Issue tracking, cycles, projects, roadmaps, and triage.', category: 'project-management', risk: 'medium', icon: '🟪', source: 'builtin' },
408
+ { id: 'trello', name: 'Trello', description: 'Boards, cards, lists, checklists, and power-ups.', category: 'project-management', risk: 'low', icon: '📌', source: 'builtin' },
409
+ { id: 'clickup', name: 'ClickUp', description: 'Tasks, docs, whiteboards, goals, and time tracking.', category: 'project-management', risk: 'medium', icon: '⬆️', source: 'builtin' },
410
+ { id: 'basecamp', name: 'Basecamp', description: 'Projects, message boards, to-dos, schedules, and campfires.', category: 'project-management', risk: 'low', icon: '🏕️', source: 'builtin' },
411
+ { id: 'airtable', name: 'Airtable', description: 'Spreadsheet-database hybrid with views, automations, and apps.', category: 'project-management', risk: 'medium', icon: '🗃️', source: 'builtin' },
412
+
413
+ // ─── Customer Support ───────────────────────────────────
414
+ { id: 'zendesk', name: 'Zendesk', description: 'Tickets, help center, chat, talk, and customer analytics.', category: 'customer-support', risk: 'medium', icon: '🎧', source: 'builtin' },
415
+ { id: 'intercom', name: 'Intercom', description: 'Live chat, inbox, help center, bots, and product tours.', category: 'customer-support', risk: 'medium', icon: '💬', source: 'builtin' },
416
+ { id: 'freshdesk', name: 'Freshdesk', description: 'Tickets, automations, SLA management, and customer portal.', category: 'customer-support', risk: 'medium', icon: '🟢', source: 'builtin' },
417
+ { id: 'servicenow', name: 'ServiceNow', description: 'IT service management, incidents, changes, assets, and workflows.', category: 'customer-support', risk: 'high', icon: '🔧', source: 'builtin' },
418
+ { id: 'front', name: 'Front', description: 'Shared inbox, assignments, SLAs, tags, and team collaboration.', category: 'customer-support', risk: 'medium', icon: '📮', source: 'builtin' },
419
+
420
+ // ─── Cloud Infrastructure — AWS ─────────────────────────
421
+ { id: 'aws-s3', name: 'AWS S3', description: 'Object storage — buckets, objects, permissions, lifecycle policies.', category: 'cloud-infrastructure', risk: 'medium', icon: '🪣', source: 'builtin' },
422
+ { id: 'aws-ec2', name: 'AWS EC2', description: 'Virtual machines — instances, AMIs, security groups, EBS volumes.', category: 'cloud-infrastructure', risk: 'high', icon: '🖥️', source: 'builtin' },
423
+ { id: 'aws-lambda', name: 'AWS Lambda', description: 'Serverless functions — deployment, invocation, layers, event triggers.', category: 'cloud-infrastructure', risk: 'high', icon: 'λ', source: 'builtin' },
424
+ { id: 'aws-rds', name: 'AWS RDS', description: 'Managed databases — instances, snapshots, parameter groups, and read replicas.', category: 'database', risk: 'high', icon: '🗄️', source: 'builtin' },
425
+ { id: 'aws-cloudwatch', name: 'AWS CloudWatch', description: 'Monitoring, logs, alarms, dashboards, and metrics.', category: 'monitoring', risk: 'low', icon: '👁️', source: 'builtin' },
426
+ { id: 'aws-iam', name: 'AWS IAM', description: 'Identity and access management — users, roles, policies, and MFA.', category: 'security', risk: 'critical', icon: '🔑', source: 'builtin' },
427
+ { id: 'aws-ses', name: 'AWS SES', description: 'Simple Email Service — send, receive, templates, and domain verification.', category: 'communication', risk: 'medium', icon: '📧', source: 'builtin' },
428
+ { id: 'aws-sns', name: 'AWS SNS', description: 'Simple Notification Service — topics, subscriptions, push notifications.', category: 'communication', risk: 'medium', icon: '🔔', source: 'builtin' },
429
+ { id: 'aws-sqs', name: 'AWS SQS', description: 'Simple Queue Service — queues, messages, dead letter queues.', category: 'cloud-infrastructure', risk: 'medium', icon: '📨', source: 'builtin' },
430
+ { id: 'aws-dynamodb', name: 'AWS DynamoDB', description: 'NoSQL database — tables, items, indexes, and streams.', category: 'database', risk: 'medium', icon: '⚡', source: 'builtin' },
431
+ { id: 'aws-cloudformation', name: 'AWS CloudFormation', description: 'Infrastructure as code — stacks, templates, change sets.', category: 'devops', risk: 'high', icon: '🏗️', source: 'builtin' },
432
+
433
+ // ─── Cloud Infrastructure — Azure ───────────────────────
434
+ { id: 'azure-vms', name: 'Azure VMs', description: 'Virtual machines, scale sets, images, and managed disks.', category: 'cloud-infrastructure', risk: 'high', icon: '🖥️', source: 'builtin' },
435
+ { id: 'azure-app-service', name: 'Azure App Service', description: 'Web apps, APIs, mobile backends, and deployment slots.', category: 'cloud-infrastructure', risk: 'medium', icon: '🌐', source: 'builtin' },
436
+ { id: 'azure-functions', name: 'Azure Functions', description: 'Serverless compute — triggers, bindings, and durable functions.', category: 'cloud-infrastructure', risk: 'high', icon: 'ƒ', source: 'builtin' },
437
+ { id: 'azure-storage', name: 'Azure Storage', description: 'Blobs, files, queues, tables, and data lake storage.', category: 'storage', risk: 'medium', icon: '💾', source: 'builtin' },
438
+ { id: 'azure-sql', name: 'Azure SQL', description: 'Managed SQL databases, elastic pools, and server management.', category: 'database', risk: 'high', icon: '🗄️', source: 'builtin' },
439
+ { id: 'azure-cosmosdb', name: 'Azure Cosmos DB', description: 'Globally distributed NoSQL database with multiple APIs.', category: 'database', risk: 'medium', icon: '🌍', source: 'builtin' },
440
+ { id: 'azure-devops', name: 'Azure DevOps', description: 'Boards, repos, pipelines, test plans, and artifacts.', category: 'devops', risk: 'medium', icon: '🔷', source: 'builtin' },
441
+ { id: 'azure-ad', name: 'Azure Active Directory', description: 'Identity management, SSO, conditional access, and app registrations.', category: 'security', risk: 'critical', icon: '🔐', source: 'builtin' },
442
+
443
+ // ─── Cloud Infrastructure — GCP ─────────────────────────
444
+ { id: 'gcp-compute', name: 'GCP Compute Engine', description: 'Virtual machines, instance groups, and persistent disks.', category: 'cloud-infrastructure', risk: 'high', icon: '🖥️', source: 'builtin' },
445
+ { id: 'gcp-functions', name: 'GCP Cloud Functions', description: 'Serverless functions with event triggers.', category: 'cloud-infrastructure', risk: 'high', icon: 'ƒ', source: 'builtin' },
446
+ { id: 'gcp-storage', name: 'GCP Cloud Storage', description: 'Object storage buckets, objects, and lifecycle management.', category: 'storage', risk: 'medium', icon: '🪣', source: 'builtin' },
447
+ { id: 'gcp-bigquery', name: 'BigQuery', description: 'Data warehouse — SQL queries, datasets, tables, and ML models.', category: 'analytics', risk: 'medium', icon: '📊', source: 'builtin' },
448
+ { id: 'gcp-run', name: 'GCP Cloud Run', description: 'Serverless containers — deploy, manage, and auto-scale.', category: 'cloud-infrastructure', risk: 'high', icon: '🏃', source: 'builtin' },
449
+ { id: 'gcp-pubsub', name: 'GCP Pub/Sub', description: 'Messaging and event streaming — topics and subscriptions.', category: 'cloud-infrastructure', risk: 'medium', icon: '📨', source: 'builtin' },
450
+ { id: 'gcp-firestore', name: 'Firestore', description: 'NoSQL document database with real-time sync.', category: 'database', risk: 'medium', icon: '🔥', source: 'builtin' },
451
+
452
+ // ─── DevOps & CI/CD ─────────────────────────────────────
453
+ { id: 'docker', name: 'Docker', description: 'Container management — images, containers, compose, and registries.', category: 'devops', risk: 'high', icon: '🐳', source: 'builtin' },
454
+ { id: 'kubernetes', name: 'Kubernetes', description: 'Container orchestration — pods, deployments, services, and helm charts.', category: 'devops', risk: 'high', icon: '☸️', source: 'builtin' },
455
+ { id: 'terraform', name: 'Terraform', description: 'Infrastructure as code — plan, apply, state management, and modules.', category: 'devops', risk: 'high', icon: '🏗️', source: 'builtin' },
456
+ { id: 'ansible', name: 'Ansible', description: 'Configuration management — playbooks, roles, and inventories.', category: 'devops', risk: 'high', icon: '📜', source: 'builtin' },
457
+ { id: 'github-actions', name: 'GitHub Actions', description: 'CI/CD workflows, actions marketplace, and secrets management.', category: 'devops', risk: 'medium', icon: '⚙️', source: 'builtin' },
458
+ { id: 'gitlab-ci', name: 'GitLab CI/CD', description: 'Pipelines, runners, artifacts, environments, and deployments.', category: 'devops', risk: 'medium', icon: '🦊', source: 'builtin' },
459
+ { id: 'jenkins', name: 'Jenkins', description: 'Build automation — jobs, pipelines, plugins, and agents.', category: 'devops', risk: 'medium', icon: '🏗️', source: 'builtin' },
460
+ { id: 'circleci', name: 'CircleCI', description: 'CI/CD pipelines, orbs, caching, and test splitting.', category: 'devops', risk: 'medium', icon: '⭕', source: 'builtin' },
461
+ { id: 'bitbucket', name: 'Bitbucket', description: 'Git repositories, pull requests, code review, and pipelines.', category: 'development', risk: 'medium', icon: '🔵', source: 'builtin' },
462
+ { id: 'gitlab', name: 'GitLab', description: 'Repositories, merge requests, issues, and DevSecOps platform.', category: 'development', risk: 'medium', icon: '🦊', source: 'builtin' },
463
+ { id: 'vercel', name: 'Vercel', description: 'Frontend deployment, serverless functions, edge config, and analytics.', category: 'devops', risk: 'medium', icon: '▲', source: 'builtin' },
464
+ { id: 'netlify', name: 'Netlify', description: 'Web deployment, forms, identity, functions, and edge handlers.', category: 'devops', risk: 'medium', icon: '🌐', source: 'builtin' },
465
+
466
+ // ─── Finance & Payments ─────────────────────────────────
467
+ { id: 'stripe', name: 'Stripe', description: 'Payments, subscriptions, invoices, customers, and financial reports.', category: 'finance', risk: 'high', icon: '💳', source: 'builtin' },
468
+ { id: 'quickbooks', name: 'QuickBooks', description: 'Accounting — invoices, expenses, reports, payroll, and bank reconciliation.', category: 'finance', risk: 'high', icon: '📒', source: 'builtin' },
469
+ { id: 'xero', name: 'Xero', description: 'Cloud accounting — invoicing, bank feeds, reporting, and payroll.', category: 'finance', risk: 'high', icon: '📗', source: 'builtin' },
470
+ { id: 'freshbooks', name: 'FreshBooks', description: 'Invoicing, time tracking, expenses, and financial reports.', category: 'finance', risk: 'medium', icon: '📘', source: 'builtin' },
471
+ { id: 'paypal', name: 'PayPal', description: 'Payments, invoices, subscriptions, and disputes.', category: 'finance', risk: 'high', icon: '💰', source: 'builtin' },
472
+ { id: 'wise', name: 'Wise', description: 'International transfers, multi-currency accounts, and batch payments.', category: 'finance', risk: 'high', icon: '🌍', source: 'builtin' },
473
+ { id: 'plaid', name: 'Plaid', description: 'Bank connections, account data, transactions, and identity verification.', category: 'finance', risk: 'critical', icon: '🏦', source: 'builtin' },
474
+
475
+ // ─── Analytics & BI ─────────────────────────────────────
476
+ { id: 'tableau', name: 'Tableau', description: 'Data visualization, dashboards, workbooks, and data sources.', category: 'analytics', risk: 'medium', icon: '📊', source: 'builtin' },
477
+ { id: 'looker', name: 'Looker', description: 'Business intelligence — explores, dashboards, LookML, and scheduling.', category: 'analytics', risk: 'medium', icon: '🔍', source: 'builtin' },
478
+ { id: 'mixpanel', name: 'Mixpanel', description: 'Product analytics — events, funnels, retention, and user profiles.', category: 'analytics', risk: 'low', icon: '📈', source: 'builtin' },
479
+ { id: 'amplitude', name: 'Amplitude', description: 'Product analytics — behavioral data, cohorts, experiments, and segments.', category: 'analytics', risk: 'low', icon: '📉', source: 'builtin' },
480
+ { id: 'segment', name: 'Segment', description: 'Customer data platform — sources, destinations, protocols, and personas.', category: 'analytics', risk: 'medium', icon: '🟢', source: 'builtin' },
481
+ { id: 'google-analytics', name: 'Google Analytics', description: 'Web analytics — pageviews, events, conversions, audiences, and reports.', category: 'analytics', risk: 'low', icon: '📊', source: 'builtin' },
482
+ { id: 'hotjar', name: 'Hotjar', description: 'Heatmaps, session recordings, surveys, and user feedback.', category: 'analytics', risk: 'low', icon: '🔥', source: 'builtin' },
483
+
484
+ // ─── Design ─────────────────────────────────────────────
485
+ { id: 'figma', name: 'Figma', description: 'UI/UX design — files, components, prototypes, and design tokens.', category: 'design', risk: 'low', icon: '🎨', source: 'builtin' },
486
+ { id: 'canva', name: 'Canva', description: 'Graphic design — templates, brand kit, team designs, and media library.', category: 'design', risk: 'low', icon: '🖼️', source: 'builtin' },
487
+ { id: 'miro', name: 'Miro', description: 'Online whiteboard — boards, frames, sticky notes, and templates.', category: 'design', risk: 'low', icon: '🟡', source: 'builtin' },
488
+ { id: 'adobe-photoshop', name: 'Adobe Photoshop', description: 'Image editing, compositing, and batch processing.', category: 'design', risk: 'low', icon: '🎨', source: 'builtin' },
489
+ { id: 'adobe-illustrator', name: 'Adobe Illustrator', description: 'Vector graphics, logos, icons, and illustrations.', category: 'design', risk: 'low', icon: '✒️', source: 'builtin' },
490
+ { id: 'adobe-premiere', name: 'Adobe Premiere Pro', description: 'Video editing, color grading, audio mixing, and export.', category: 'media', risk: 'low', icon: '🎬', source: 'builtin' },
491
+ { id: 'adobe-after-effects', name: 'Adobe After Effects', description: 'Motion graphics, visual effects, and compositing.', category: 'media', risk: 'low', icon: '✨', source: 'builtin' },
492
+ { id: 'adobe-indesign', name: 'Adobe InDesign', description: 'Page layout, publishing, and document design.', category: 'design', risk: 'low', icon: '📄', source: 'builtin' },
493
+ { id: 'adobe-xd', name: 'Adobe XD', description: 'UI/UX design, prototyping, and design systems.', category: 'design', risk: 'low', icon: '🎯', source: 'builtin' },
494
+
495
+ // ─── Marketing ──────────────────────────────────────────
496
+ { id: 'mailchimp', name: 'Mailchimp', description: 'Email campaigns, audiences, automations, templates, and analytics.', category: 'marketing', risk: 'medium', icon: '🐵', source: 'builtin' },
497
+ { id: 'sendgrid', name: 'SendGrid', description: 'Transactional and marketing email — templates, stats, and deliverability.', category: 'marketing', risk: 'medium', icon: '📧', source: 'builtin' },
498
+ { id: 'google-ads', name: 'Google Ads', description: 'Search, display, video, and shopping campaigns. Bidding and reporting.', category: 'marketing', risk: 'high', icon: '📢', source: 'builtin' },
499
+ { id: 'meta-ads', name: 'Meta Ads', description: 'Facebook and Instagram advertising — campaigns, audiences, and creatives.', category: 'marketing', risk: 'high', icon: '📱', source: 'builtin' },
500
+ { id: 'linkedin-marketing', name: 'LinkedIn Marketing', description: 'Sponsored content, InMail campaigns, and lead gen forms.', category: 'marketing', risk: 'high', icon: '🔗', source: 'builtin' },
501
+ { id: 'activecampaign', name: 'ActiveCampaign', description: 'Email automation, CRM, site messaging, and machine learning.', category: 'marketing', risk: 'medium', icon: '📬', source: 'builtin' },
502
+ { id: 'buffer', name: 'Buffer', description: 'Social media scheduling, analytics, and team collaboration.', category: 'social', risk: 'medium', icon: '📋', source: 'builtin' },
503
+ { id: 'hootsuite', name: 'Hootsuite', description: 'Social media management — scheduling, monitoring, and reporting.', category: 'social', risk: 'medium', icon: '🦉', source: 'builtin' },
504
+
505
+ // ─── E-Commerce ─────────────────────────────────────────
506
+ { id: 'shopify', name: 'Shopify', description: 'Online store — products, orders, customers, inventory, and shipping.', category: 'ecommerce', risk: 'medium', icon: '🛍️', source: 'builtin' },
507
+ { id: 'woocommerce', name: 'WooCommerce', description: 'WordPress ecommerce — products, orders, coupons, and shipping.', category: 'ecommerce', risk: 'medium', icon: '🛒', source: 'builtin' },
508
+ { id: 'bigcommerce', name: 'BigCommerce', description: 'Enterprise ecommerce — catalog, orders, customers, and channels.', category: 'ecommerce', risk: 'medium', icon: '🏬', source: 'builtin' },
509
+ { id: 'magento', name: 'Magento', description: 'Adobe Commerce — products, categories, orders, and customer segments.', category: 'ecommerce', risk: 'medium', icon: '🧲', source: 'builtin' },
510
+
511
+ // ─── HR & People ────────────────────────────────────────
512
+ { id: 'bamboohr', name: 'BambooHR', description: 'Employee records, time-off, onboarding, performance, and reporting.', category: 'hr', risk: 'high', icon: '🎋', source: 'builtin' },
513
+ { id: 'workday', name: 'Workday', description: 'HCM, payroll, time tracking, benefits, and talent management.', category: 'hr', risk: 'high', icon: '🏢', source: 'builtin' },
514
+ { id: 'gusto', name: 'Gusto', description: 'Payroll, benefits, HR, and compliance for small businesses.', category: 'hr', risk: 'high', icon: '💚', source: 'builtin' },
515
+ { id: 'rippling', name: 'Rippling', description: 'Unified HR, IT, and Finance — payroll, devices, apps, and benefits.', category: 'hr', risk: 'high', icon: '🌊', source: 'builtin' },
516
+ { id: 'lever', name: 'Lever', description: 'Recruiting — job postings, candidates, interviews, and offer letters.', category: 'hr', risk: 'medium', icon: '🔧', source: 'builtin' },
517
+ { id: 'greenhouse', name: 'Greenhouse', description: 'Talent acquisition — requisitions, scorecards, scheduling, and reports.', category: 'hr', risk: 'medium', icon: '🌱', source: 'builtin' },
518
+
519
+ // ─── Legal & Compliance ─────────────────────────────────
520
+ { id: 'docusign', name: 'DocuSign', description: 'Electronic signatures, envelopes, templates, and agreement workflows.', category: 'legal', risk: 'high', icon: '✍️', source: 'builtin' },
521
+ { id: 'pandadoc', name: 'PandaDoc', description: 'Document automation — proposals, quotes, contracts, and e-signatures.', category: 'legal', risk: 'medium', icon: '🐼', source: 'builtin' },
522
+ { id: 'clio', name: 'Clio', description: 'Legal practice management — matters, time entries, billing, and documents.', category: 'legal', risk: 'high', icon: '⚖️', source: 'builtin' },
523
+
524
+ // ─── Storage & File Sharing ─────────────────────────────
525
+ { id: 'dropbox', name: 'Dropbox', description: 'Cloud storage, file sharing, Paper docs, and team spaces.', category: 'storage', risk: 'medium', icon: '📦', source: 'builtin' },
526
+ { id: 'box', name: 'Box', description: 'Enterprise content management — files, folders, metadata, and workflows.', category: 'storage', risk: 'medium', icon: '📁', source: 'builtin' },
527
+
528
+ // ─── Database ───────────────────────────────────────────
529
+ { id: 'mongodb-atlas', name: 'MongoDB Atlas', description: 'Cloud MongoDB — clusters, collections, indexes, and aggregations.', category: 'database', risk: 'high', icon: '🍃', source: 'builtin' },
530
+ { id: 'redis-cloud', name: 'Redis Cloud', description: 'Managed Redis — databases, keys, streams, and pub/sub.', category: 'database', risk: 'medium', icon: '🔴', source: 'builtin' },
531
+ { id: 'elasticsearch', name: 'Elasticsearch', description: 'Search and analytics — indexes, queries, aggregations, and mappings.', category: 'database', risk: 'medium', icon: '🔎', source: 'builtin' },
532
+ { id: 'snowflake', name: 'Snowflake', description: 'Cloud data warehouse — SQL queries, warehouses, stages, and shares.', category: 'database', risk: 'high', icon: '❄️', source: 'builtin' },
533
+ { id: 'supabase', name: 'Supabase', description: 'Open-source Firebase — Postgres, auth, storage, realtime, and edge functions.', category: 'database', risk: 'medium', icon: '⚡', source: 'builtin' },
534
+ { id: 'planetscale', name: 'PlanetScale', description: 'Serverless MySQL — branches, deploy requests, and schema management.', category: 'database', risk: 'medium', icon: '🌐', source: 'builtin' },
535
+
536
+ // ─── Monitoring & Observability ─────────────────────────
537
+ { id: 'datadog', name: 'Datadog', description: 'APM, logs, metrics, dashboards, monitors, and synthetics.', category: 'monitoring', risk: 'medium', icon: '🐶', source: 'builtin' },
538
+ { id: 'pagerduty', name: 'PagerDuty', description: 'Incident management — alerts, escalations, schedules, and on-call.', category: 'monitoring', risk: 'medium', icon: '🚨', source: 'builtin' },
539
+ { id: 'sentry', name: 'Sentry', description: 'Error tracking — issues, releases, performance, and session replay.', category: 'monitoring', risk: 'low', icon: '🪲', source: 'builtin' },
540
+ { id: 'newrelic', name: 'New Relic', description: 'Full-stack observability — APM, infrastructure, logs, and dashboards.', category: 'monitoring', risk: 'medium', icon: '🔭', source: 'builtin' },
541
+ { id: 'grafana', name: 'Grafana', description: 'Dashboards, alerting, and data source visualization.', category: 'monitoring', risk: 'low', icon: '📊', source: 'builtin' },
542
+ { id: 'statuspage', name: 'Statuspage', description: 'Public and private status pages, incidents, and maintenance windows.', category: 'monitoring', risk: 'medium', icon: '🟢', source: 'builtin' },
543
+ { id: 'opsgenie', name: 'Opsgenie', description: 'Alert management, on-call schedules, escalations, and incident response.', category: 'monitoring', risk: 'medium', icon: '🔔', source: 'builtin' },
544
+
545
+ // ─── Security & Identity ────────────────────────────────
546
+ { id: 'okta', name: 'Okta', description: 'Identity management — SSO, MFA, user lifecycle, and API access management.', category: 'security', risk: 'critical', icon: '🔐', source: 'builtin' },
547
+ { id: 'auth0', name: 'Auth0', description: 'Authentication — login flows, social connections, roles, and organizations.', category: 'security', risk: 'high', icon: '🔓', source: 'builtin' },
548
+ { id: 'vault-hashicorp', name: 'HashiCorp Vault', description: 'Secrets management — KV store, dynamic credentials, encryption, and PKI.', category: 'security', risk: 'critical', icon: '🗝️', source: 'builtin' },
549
+ { id: 'crowdstrike', name: 'CrowdStrike', description: 'Endpoint security — detections, incidents, IoCs, and threat intelligence.', category: 'security', risk: 'high', icon: '🦅', source: 'builtin' },
550
+ { id: 'snyk', name: 'Snyk', description: 'Developer security — vulnerability scanning, license compliance, and SBOM.', category: 'security', risk: 'medium', icon: '🔍', source: 'builtin' },
551
+
552
+ // ─── Social Media (expanded) ────────────────────────────
553
+ { id: 'linkedin', name: 'LinkedIn', description: 'Professional networking — posts, connections, company pages, and messaging.', category: 'social', risk: 'high', icon: '🔗', source: 'builtin' },
554
+ { id: 'instagram', name: 'Instagram', description: 'Photo/video sharing — posts, stories, reels, and insights.', category: 'social', risk: 'high', icon: '📸', source: 'builtin' },
555
+ { id: 'facebook', name: 'Facebook Pages', description: 'Page management — posts, comments, insights, and messenger.', category: 'social', risk: 'high', icon: '📘', source: 'builtin' },
556
+ { id: 'youtube', name: 'YouTube', description: 'Video platform — uploads, playlists, analytics, comments, and live streams.', category: 'social', risk: 'high', icon: '▶️', source: 'builtin' },
557
+ { id: 'tiktok', name: 'TikTok Business', description: 'Short-form video — uploads, analytics, and business tools.', category: 'social', risk: 'high', icon: '🎵', source: 'builtin' },
558
+ { id: 'reddit', name: 'Reddit', description: 'Posts, comments, subreddits, and moderation.', category: 'social', risk: 'medium', icon: '🔴', source: 'builtin' },
559
+
560
+ // ─── Communication (expanded) ───────────────────────────
561
+ { id: 'twilio', name: 'Twilio', description: 'Programmable voice, SMS, video, and messaging APIs.', category: 'communication', risk: 'high', icon: '📞', source: 'builtin' },
562
+ { id: 'vonage', name: 'Vonage', description: 'Communication APIs — SMS, voice, video, and verification.', category: 'communication', risk: 'high', icon: '📱', source: 'builtin' },
563
+ { id: 'ringcentral', name: 'RingCentral', description: 'Cloud phone system — calls, messages, video, and fax.', category: 'communication', risk: 'medium', icon: '📞', source: 'builtin' },
564
+
565
+ // ─── Automation (expanded) ──────────────────────────────
566
+ { id: 'zapier', name: 'Zapier', description: 'No-code automation — zaps, triggers, actions, and multi-step workflows.', category: 'automation', risk: 'medium', icon: '⚡', source: 'builtin' },
567
+ { id: 'make', name: 'Make (Integromat)', description: 'Visual automation — scenarios, modules, and data routing.', category: 'automation', risk: 'medium', icon: '🔀', source: 'builtin' },
568
+ { id: 'n8n', name: 'n8n', description: 'Open-source workflow automation — nodes, triggers, and custom functions.', category: 'automation', risk: 'medium', icon: '🔄', source: 'builtin' },
569
+
570
+ // ─── Infrastructure ─────────────────────────────────────
571
+ { id: 'cloudflare', name: 'Cloudflare', description: 'CDN, DNS, Workers, Pages, security, and zero trust.', category: 'cloud-infrastructure', risk: 'high', icon: '🔶', source: 'builtin' },
572
+ { id: 'digitalocean', name: 'DigitalOcean', description: 'Cloud infrastructure — droplets, databases, spaces, and app platform.', category: 'cloud-infrastructure', risk: 'high', icon: '🌊', source: 'builtin' },
573
+ { id: 'heroku', name: 'Heroku', description: 'Cloud platform — apps, dynos, add-ons, and pipelines.', category: 'cloud-infrastructure', risk: 'medium', icon: '🟣', source: 'builtin' },
574
+ { id: 'fly-io', name: 'Fly.io', description: 'Edge deployment — machines, volumes, secrets, and global routing.', category: 'cloud-infrastructure', risk: 'medium', icon: '🪁', source: 'builtin' },
575
+
576
+ // ─── Enterprise Utility Skills (from individual skill files) ─
577
+ ...ENTERPRISE_SKILL_DEFS,
258
578
  ];
259
579
 
260
580
  // ─── Permission Engine ──────────────────────────────────
@@ -262,6 +582,7 @@ export const BUILTIN_SKILLS: Omit<SkillDefinition, 'tools'>[] = [
262
582
  export class PermissionEngine {
263
583
  private skills: Map<string, SkillDefinition> = new Map();
264
584
  private profiles: Map<string, AgentPermissionProfile> = new Map();
585
+ private engineDb?: import('./db-adapter.js').EngineDatabase;
265
586
 
266
587
  constructor(skills?: SkillDefinition[]) {
267
588
  if (skills) {
@@ -269,12 +590,24 @@ export class PermissionEngine {
269
590
  }
270
591
  }
271
592
 
593
+ /**
594
+ * Set the database adapter and load existing profiles from DB
595
+ */
596
+ async setDb(db: import('./db-adapter.js').EngineDatabase): Promise<void> {
597
+ this.engineDb = db;
598
+ }
599
+
272
600
  registerSkill(skill: SkillDefinition) {
273
601
  this.skills.set(skill.id, skill);
274
602
  }
275
603
 
276
- setProfile(agentId: string, profile: AgentPermissionProfile) {
604
+ setProfile(agentId: string, profile: AgentPermissionProfile, orgId?: string) {
277
605
  this.profiles.set(agentId, profile);
606
+ if (this.engineDb && orgId) {
607
+ this.engineDb.upsertPermissionProfile(orgId, profile).catch((err) => {
608
+ console.error(`[permissions] Failed to persist profile for agent ${agentId}:`, err);
609
+ });
610
+ }
278
611
  }
279
612
 
280
613
  getProfile(agentId: string): AgentPermissionProfile | undefined {
@@ -390,7 +723,7 @@ export class PermissionEngine {
390
723
  const tool = skill.tools.find(t => t.id === toolId);
391
724
  if (tool) return tool;
392
725
  }
393
- // Fall back to global tool index (real OpenClaw + AgenticMail tools)
726
+ // Fall back to global tool index (all registered AgenticMail tools)
394
727
  try {
395
728
  const { TOOL_INDEX } = require('./tool-catalog.js');
396
729
  return TOOL_INDEX.get(toolId);
@@ -421,7 +754,7 @@ export class PermissionEngine {
421
754
  }
422
755
 
423
756
  /**
424
- * Generate the OpenClaw tool policy config for an agent based on their profile
757
+ * Generate the tool policy config for an agent based on their profile
425
758
  */
426
759
  generateToolPolicy(agentId: string): {
427
760
  allowedTools: string[];
@@ -465,6 +798,9 @@ export class PermissionEngine {
465
798
  }
466
799
  }
467
800
 
801
+ // ─── Community Skill Registry ──────────────────────────
802
+ // Moved to community-registry.ts — full DB-backed marketplace implementation
803
+
468
804
  export interface PermissionResult {
469
805
  allowed: boolean;
470
806
  reason: string;
@@ -0,0 +1,142 @@
1
+ // soul-library.ts — Pre-built SOUL.md/identity templates for enterprise AI agent roles
2
+ // Templates are stored in soul-templates.json and loaded at runtime.
3
+
4
+ import { readFileSync } from 'fs';
5
+ import { join, dirname } from 'path';
6
+ import { fileURLToPath } from 'url';
7
+
8
+ export type SoulCategory =
9
+ | 'support'
10
+ | 'sales'
11
+ | 'engineering'
12
+ | 'operations'
13
+ | 'hr'
14
+ | 'finance'
15
+ | 'marketing'
16
+ | 'legal'
17
+ | 'research'
18
+ | 'creative'
19
+ | 'executive'
20
+ | 'data'
21
+ | 'security'
22
+ | 'education';
23
+
24
+ export interface SoulTemplate {
25
+ id: string;
26
+ name: string;
27
+ category: SoulCategory;
28
+ description: string;
29
+ personality: string;
30
+ identity: {
31
+ role: string;
32
+ tone: 'formal' | 'casual' | 'professional' | 'friendly';
33
+ language: string;
34
+ };
35
+ suggestedSkills: string[];
36
+ suggestedPreset: string;
37
+ tags: string[];
38
+ }
39
+
40
+ // ---------------------------------------------------------------------------
41
+ // Load templates from JSON at runtime (lazy, cached)
42
+ // ---------------------------------------------------------------------------
43
+
44
+ let _loaded = false;
45
+ let _categories: Record<SoulCategory, { name: string; description: string; icon: string }> = {} as any;
46
+ let _templates: SoulTemplate[] = [];
47
+
48
+ function ensureLoaded(): void {
49
+ if (_loaded) return;
50
+ try {
51
+ const dir = dirname(fileURLToPath(import.meta.url));
52
+ const raw = readFileSync(join(dir, 'soul-templates.json'), 'utf-8');
53
+ const data = JSON.parse(raw);
54
+ _categories = data.categories || {};
55
+ _templates = data.templates || [];
56
+ } catch {
57
+ // Fallback: try relative to dist (npm package layout)
58
+ try {
59
+ const raw = readFileSync(join(process.cwd(), 'node_modules', '@agenticmail', 'enterprise', 'dist', 'soul-templates.json'), 'utf-8');
60
+ const data = JSON.parse(raw);
61
+ _categories = data.categories || {};
62
+ _templates = data.templates || [];
63
+ } catch {
64
+ _categories = {} as any;
65
+ _templates = [];
66
+ }
67
+ }
68
+ _loaded = true;
69
+ }
70
+
71
+ export function SOUL_CATEGORIES_GETTER(): Record<SoulCategory, { name: string; description: string; icon: string }> {
72
+ ensureLoaded();
73
+ return _categories;
74
+ }
75
+
76
+ // Re-export as a getter-backed constant for backwards compatibility
77
+ export const SOUL_CATEGORIES = new Proxy({} as Record<SoulCategory, { name: string; description: string; icon: string }>, {
78
+ get(_target, prop, receiver) {
79
+ ensureLoaded();
80
+ return Reflect.get(_categories, prop, receiver);
81
+ },
82
+ ownKeys() {
83
+ ensureLoaded();
84
+ return Reflect.ownKeys(_categories);
85
+ },
86
+ getOwnPropertyDescriptor(_target, prop) {
87
+ ensureLoaded();
88
+ const desc = Object.getOwnPropertyDescriptor(_categories, prop);
89
+ if (desc) desc.configurable = true;
90
+ return desc;
91
+ },
92
+ has(_target, prop) {
93
+ ensureLoaded();
94
+ return prop in _categories;
95
+ },
96
+ });
97
+
98
+ // ---------------------------------------------------------------------------
99
+ // Query helpers
100
+ // ---------------------------------------------------------------------------
101
+
102
+ /** Returns all soul templates. */
103
+ export function getSoulTemplates(): SoulTemplate[] {
104
+ ensureLoaded();
105
+ return _templates;
106
+ }
107
+
108
+ /** Returns templates grouped by category. */
109
+ export function getSoulTemplatesByCategory(): Record<SoulCategory, SoulTemplate[]> {
110
+ ensureLoaded();
111
+ const grouped = {} as Record<SoulCategory, SoulTemplate[]>;
112
+ for (const cat of Object.keys(_categories) as SoulCategory[]) {
113
+ grouped[cat] = [];
114
+ }
115
+ for (const tpl of _templates) {
116
+ if (grouped[tpl.category]) {
117
+ grouped[tpl.category].push(tpl);
118
+ }
119
+ }
120
+ return grouped;
121
+ }
122
+
123
+ /** Returns a single template by ID, or undefined if not found. */
124
+ export function getSoulTemplate(id: string): SoulTemplate | undefined {
125
+ ensureLoaded();
126
+ return _templates.find((t) => t.id === id);
127
+ }
128
+
129
+ /** Searches templates by name, description, and tags. Case-insensitive. */
130
+ export function searchSoulTemplates(query: string): SoulTemplate[] {
131
+ ensureLoaded();
132
+ const q = query.toLowerCase().trim();
133
+ if (!q) return _templates;
134
+ return _templates.filter((t) => {
135
+ return (
136
+ t.name.toLowerCase().includes(q) ||
137
+ t.description.toLowerCase().includes(q) ||
138
+ t.tags.some((tag) => tag.toLowerCase().includes(q)) ||
139
+ t.category.toLowerCase().includes(q)
140
+ );
141
+ });
142
+ }