@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.
- package/.github/CODEOWNERS +23 -0
- package/.github/workflows/publish-community-skills.yml +121 -0
- package/.github/workflows/validate-community-skills.yml +172 -0
- package/ARCHITECTURE.md +184 -167
- package/CLAUDE.md +40 -0
- package/CONTRIBUTING.md +254 -0
- package/DEPLOYMENT.md +1031 -0
- package/README.md +355 -174
- package/community-skills/_template/README.md +31 -0
- package/community-skills/_template/agenticmail-skill.json +48 -0
- package/community-skills/activecampaign/README.md +21 -0
- package/community-skills/activecampaign/agenticmail-skill.json +56 -0
- package/community-skills/adobe-sign/README.md +21 -0
- package/community-skills/adobe-sign/agenticmail-skill.json +72 -0
- package/community-skills/adp/README.md +21 -0
- package/community-skills/adp/agenticmail-skill.json +65 -0
- package/community-skills/airtable-bases/README.md +29 -0
- package/community-skills/airtable-bases/agenticmail-skill.json +69 -0
- package/community-skills/apollo-io/README.md +21 -0
- package/community-skills/apollo-io/agenticmail-skill.json +50 -0
- package/community-skills/asana-tasks/README.md +30 -0
- package/community-skills/asana-tasks/agenticmail-skill.json +70 -0
- package/community-skills/auth0/README.md +21 -0
- package/community-skills/auth0/agenticmail-skill.json +56 -0
- package/community-skills/aws-services/README.md +38 -0
- package/community-skills/aws-services/agenticmail-skill.json +70 -0
- package/community-skills/azure-devops/README.md +21 -0
- package/community-skills/azure-devops/agenticmail-skill.json +57 -0
- package/community-skills/bamboohr/README.md +21 -0
- package/community-skills/bamboohr/agenticmail-skill.json +56 -0
- package/community-skills/basecamp/README.md +21 -0
- package/community-skills/basecamp/agenticmail-skill.json +56 -0
- package/community-skills/bigcommerce/README.md +21 -0
- package/community-skills/bigcommerce/agenticmail-skill.json +55 -0
- package/community-skills/bitbucket-repos/README.md +29 -0
- package/community-skills/bitbucket-repos/agenticmail-skill.json +70 -0
- package/community-skills/box/README.md +21 -0
- package/community-skills/box/agenticmail-skill.json +48 -0
- package/community-skills/brex/README.md +21 -0
- package/community-skills/brex/agenticmail-skill.json +48 -0
- package/community-skills/buffer/README.md +21 -0
- package/community-skills/buffer/agenticmail-skill.json +50 -0
- package/community-skills/calendly/README.md +20 -0
- package/community-skills/calendly/agenticmail-skill.json +43 -0
- package/community-skills/canva-design/README.md +33 -0
- package/community-skills/canva-design/agenticmail-skill.json +60 -0
- package/community-skills/chargebee/README.md +21 -0
- package/community-skills/chargebee/agenticmail-skill.json +55 -0
- package/community-skills/circleci-pipelines/README.md +28 -0
- package/community-skills/circleci-pipelines/agenticmail-skill.json +66 -0
- package/community-skills/clickup/README.md +21 -0
- package/community-skills/clickup/agenticmail-skill.json +48 -0
- package/community-skills/close-crm/README.md +21 -0
- package/community-skills/close-crm/agenticmail-skill.json +49 -0
- package/community-skills/cloudflare-cdn/README.md +37 -0
- package/community-skills/cloudflare-cdn/agenticmail-skill.json +67 -0
- package/community-skills/confluence-wiki/README.md +31 -0
- package/community-skills/confluence-wiki/agenticmail-skill.json +74 -0
- package/community-skills/contentful/README.md +21 -0
- package/community-skills/contentful/agenticmail-skill.json +62 -0
- package/community-skills/copper-crm/README.md +21 -0
- package/community-skills/copper-crm/agenticmail-skill.json +56 -0
- package/community-skills/crisp/README.md +21 -0
- package/community-skills/crisp/agenticmail-skill.json +56 -0
- package/community-skills/crowdstrike/README.md +21 -0
- package/community-skills/crowdstrike/agenticmail-skill.json +69 -0
- package/community-skills/datadog-monitoring/README.md +37 -0
- package/community-skills/datadog-monitoring/agenticmail-skill.json +73 -0
- package/community-skills/digitalocean/README.md +21 -0
- package/community-skills/digitalocean/agenticmail-skill.json +48 -0
- package/community-skills/discord/README.md +45 -0
- package/community-skills/discord/agenticmail-skill.json +65 -0
- package/community-skills/docker-containers/README.md +38 -0
- package/community-skills/docker-containers/agenticmail-skill.json +70 -0
- package/community-skills/docusign-esign/README.md +35 -0
- package/community-skills/docusign-esign/agenticmail-skill.json +66 -0
- package/community-skills/drift/README.md +21 -0
- package/community-skills/drift/agenticmail-skill.json +50 -0
- package/community-skills/dropbox-storage/README.md +36 -0
- package/community-skills/dropbox-storage/agenticmail-skill.json +67 -0
- package/community-skills/figma-design/README.md +36 -0
- package/community-skills/figma-design/agenticmail-skill.json +66 -0
- package/community-skills/firebase/README.md +21 -0
- package/community-skills/firebase/agenticmail-skill.json +56 -0
- package/community-skills/flyio/README.md +21 -0
- package/community-skills/flyio/agenticmail-skill.json +56 -0
- package/community-skills/freshbooks/README.md +21 -0
- package/community-skills/freshbooks/agenticmail-skill.json +55 -0
- package/community-skills/freshdesk/README.md +21 -0
- package/community-skills/freshdesk/agenticmail-skill.json +57 -0
- package/community-skills/freshsales/README.md +21 -0
- package/community-skills/freshsales/agenticmail-skill.json +55 -0
- package/community-skills/freshservice/README.md +21 -0
- package/community-skills/freshservice/agenticmail-skill.json +56 -0
- package/community-skills/front/README.md +21 -0
- package/community-skills/front/agenticmail-skill.json +48 -0
- package/community-skills/github/README.md +49 -0
- package/community-skills/github/agenticmail-skill.json +73 -0
- package/community-skills/github-actions/README.md +29 -0
- package/community-skills/github-actions/agenticmail-skill.json +72 -0
- package/community-skills/gitlab-ci/README.md +51 -0
- package/community-skills/gitlab-ci/agenticmail-skill.json +66 -0
- package/community-skills/gong/README.md +21 -0
- package/community-skills/gong/agenticmail-skill.json +50 -0
- package/community-skills/google-ads/README.md +36 -0
- package/community-skills/google-ads/agenticmail-skill.json +58 -0
- package/community-skills/google-analytics/README.md +28 -0
- package/community-skills/google-analytics/agenticmail-skill.json +69 -0
- package/community-skills/google-cloud/README.md +33 -0
- package/community-skills/google-cloud/agenticmail-skill.json +59 -0
- package/community-skills/google-drive/README.md +36 -0
- package/community-skills/google-drive/agenticmail-skill.json +65 -0
- package/community-skills/gotomeeting/README.md +20 -0
- package/community-skills/gotomeeting/agenticmail-skill.json +45 -0
- package/community-skills/grafana/README.md +21 -0
- package/community-skills/grafana/agenticmail-skill.json +56 -0
- package/community-skills/greenhouse/README.md +21 -0
- package/community-skills/greenhouse/agenticmail-skill.json +49 -0
- package/community-skills/gusto/README.md +21 -0
- package/community-skills/gusto/agenticmail-skill.json +49 -0
- package/community-skills/hashicorp-vault/README.md +21 -0
- package/community-skills/hashicorp-vault/agenticmail-skill.json +58 -0
- package/community-skills/heroku/README.md +21 -0
- package/community-skills/heroku/agenticmail-skill.json +48 -0
- package/community-skills/hibob/README.md +21 -0
- package/community-skills/hibob/agenticmail-skill.json +48 -0
- package/community-skills/hootsuite/README.md +21 -0
- package/community-skills/hootsuite/agenticmail-skill.json +48 -0
- package/community-skills/hubspot-crm/README.md +36 -0
- package/community-skills/hubspot-crm/agenticmail-skill.json +70 -0
- package/community-skills/huggingface/README.md +21 -0
- package/community-skills/huggingface/agenticmail-skill.json +48 -0
- package/community-skills/index.json +1320 -0
- package/community-skills/intercom-support/README.md +36 -0
- package/community-skills/intercom-support/agenticmail-skill.json +64 -0
- package/community-skills/jira/README.md +53 -0
- package/community-skills/jira/agenticmail-skill.json +72 -0
- package/community-skills/klaviyo/README.md +21 -0
- package/community-skills/klaviyo/agenticmail-skill.json +48 -0
- package/community-skills/kubernetes-cluster/README.md +36 -0
- package/community-skills/kubernetes-cluster/agenticmail-skill.json +72 -0
- package/community-skills/lattice/README.md +21 -0
- package/community-skills/lattice/agenticmail-skill.json +49 -0
- package/community-skills/launchdarkly/README.md +21 -0
- package/community-skills/launchdarkly/agenticmail-skill.json +48 -0
- package/community-skills/lever/README.md +21 -0
- package/community-skills/lever/agenticmail-skill.json +49 -0
- package/community-skills/linear/README.md +29 -0
- package/community-skills/linear/agenticmail-skill.json +81 -0
- package/community-skills/linkedin/README.md +21 -0
- package/community-skills/linkedin/agenticmail-skill.json +48 -0
- package/community-skills/livechat/README.md +20 -0
- package/community-skills/livechat/agenticmail-skill.json +43 -0
- package/community-skills/loom-video/README.md +20 -0
- package/community-skills/loom-video/agenticmail-skill.json +44 -0
- package/community-skills/mailchimp-campaigns/README.md +37 -0
- package/community-skills/mailchimp-campaigns/agenticmail-skill.json +69 -0
- package/community-skills/mailgun/README.md +21 -0
- package/community-skills/mailgun/agenticmail-skill.json +71 -0
- package/community-skills/microsoft-teams/README.md +51 -0
- package/community-skills/microsoft-teams/agenticmail-skill.json +66 -0
- package/community-skills/miro-boards/README.md +20 -0
- package/community-skills/miro-boards/agenticmail-skill.json +44 -0
- package/community-skills/mixpanel-analytics/README.md +34 -0
- package/community-skills/mixpanel-analytics/agenticmail-skill.json +64 -0
- package/community-skills/monday-boards/README.md +28 -0
- package/community-skills/monday-boards/agenticmail-skill.json +68 -0
- package/community-skills/mongodb-atlas/README.md +21 -0
- package/community-skills/mongodb-atlas/agenticmail-skill.json +58 -0
- package/community-skills/neon/README.md +21 -0
- package/community-skills/neon/agenticmail-skill.json +50 -0
- package/community-skills/netlify/README.md +21 -0
- package/community-skills/netlify/agenticmail-skill.json +48 -0
- package/community-skills/netsuite/README.md +21 -0
- package/community-skills/netsuite/agenticmail-skill.json +57 -0
- package/community-skills/newrelic/README.md +21 -0
- package/community-skills/newrelic/agenticmail-skill.json +58 -0
- package/community-skills/notion/README.md +49 -0
- package/community-skills/notion/agenticmail-skill.json +72 -0
- package/community-skills/okta/README.md +21 -0
- package/community-skills/okta/agenticmail-skill.json +57 -0
- package/community-skills/openai/README.md +21 -0
- package/community-skills/openai/agenticmail-skill.json +48 -0
- package/community-skills/opsgenie/README.md +21 -0
- package/community-skills/opsgenie/agenticmail-skill.json +48 -0
- package/community-skills/outreach/README.md +21 -0
- package/community-skills/outreach/agenticmail-skill.json +50 -0
- package/community-skills/paddle/README.md +21 -0
- package/community-skills/paddle/agenticmail-skill.json +55 -0
- package/community-skills/pagerduty/README.md +21 -0
- package/community-skills/pagerduty/agenticmail-skill.json +48 -0
- package/community-skills/pandadoc/README.md +21 -0
- package/community-skills/pandadoc/agenticmail-skill.json +48 -0
- package/community-skills/paypal/README.md +21 -0
- package/community-skills/paypal/agenticmail-skill.json +55 -0
- package/community-skills/personio/README.md +21 -0
- package/community-skills/personio/agenticmail-skill.json +48 -0
- package/community-skills/pinecone/README.md +21 -0
- package/community-skills/pinecone/agenticmail-skill.json +48 -0
- package/community-skills/pipedrive-deals/README.md +33 -0
- package/community-skills/pipedrive-deals/agenticmail-skill.json +60 -0
- package/community-skills/plaid/README.md +21 -0
- package/community-skills/plaid/agenticmail-skill.json +65 -0
- package/community-skills/postmark/README.md +21 -0
- package/community-skills/postmark/agenticmail-skill.json +48 -0
- package/community-skills/power-automate/README.md +21 -0
- package/community-skills/power-automate/agenticmail-skill.json +59 -0
- package/community-skills/quickbooks-accounting/README.md +38 -0
- package/community-skills/quickbooks-accounting/agenticmail-skill.json +70 -0
- package/community-skills/recurly/README.md +21 -0
- package/community-skills/recurly/agenticmail-skill.json +48 -0
- package/community-skills/reddit/README.md +21 -0
- package/community-skills/reddit/agenticmail-skill.json +48 -0
- package/community-skills/render/README.md +21 -0
- package/community-skills/render/agenticmail-skill.json +48 -0
- package/community-skills/ringcentral/README.md +20 -0
- package/community-skills/ringcentral/agenticmail-skill.json +43 -0
- package/community-skills/rippling/README.md +21 -0
- package/community-skills/rippling/agenticmail-skill.json +48 -0
- package/community-skills/salesforce/README.md +53 -0
- package/community-skills/salesforce/agenticmail-skill.json +73 -0
- package/community-skills/salesloft/README.md +21 -0
- package/community-skills/salesloft/agenticmail-skill.json +48 -0
- package/community-skills/sanity/README.md +21 -0
- package/community-skills/sanity/agenticmail-skill.json +62 -0
- package/community-skills/sap/README.md +21 -0
- package/community-skills/sap/agenticmail-skill.json +63 -0
- package/community-skills/segment-cdp/README.md +37 -0
- package/community-skills/segment-cdp/agenticmail-skill.json +66 -0
- package/community-skills/sendgrid-email/README.md +51 -0
- package/community-skills/sendgrid-email/agenticmail-skill.json +71 -0
- package/community-skills/sentry/README.md +21 -0
- package/community-skills/sentry/agenticmail-skill.json +58 -0
- package/community-skills/servicenow/README.md +21 -0
- package/community-skills/servicenow/agenticmail-skill.json +56 -0
- package/community-skills/shopify/README.md +21 -0
- package/community-skills/shopify/agenticmail-skill.json +56 -0
- package/community-skills/shortcut/README.md +21 -0
- package/community-skills/shortcut/agenticmail-skill.json +48 -0
- package/community-skills/slack/README.md +45 -0
- package/community-skills/slack/agenticmail-skill.json +73 -0
- package/community-skills/smartsheet/README.md +21 -0
- package/community-skills/smartsheet/agenticmail-skill.json +48 -0
- package/community-skills/snowflake-warehouse/README.md +37 -0
- package/community-skills/snowflake-warehouse/agenticmail-skill.json +71 -0
- package/community-skills/snyk/README.md +21 -0
- package/community-skills/snyk/agenticmail-skill.json +48 -0
- package/community-skills/splunk/README.md +21 -0
- package/community-skills/splunk/agenticmail-skill.json +56 -0
- package/community-skills/square/README.md +21 -0
- package/community-skills/square/agenticmail-skill.json +55 -0
- package/community-skills/statuspage/README.md +21 -0
- package/community-skills/statuspage/agenticmail-skill.json +56 -0
- package/community-skills/stripe/README.md +45 -0
- package/community-skills/stripe/agenticmail-skill.json +66 -0
- package/community-skills/supabase/README.md +21 -0
- package/community-skills/supabase/agenticmail-skill.json +56 -0
- package/community-skills/teamwork/README.md +21 -0
- package/community-skills/teamwork/agenticmail-skill.json +56 -0
- package/community-skills/telegram-bot/README.md +20 -0
- package/community-skills/telegram-bot/agenticmail-skill.json +52 -0
- package/community-skills/terraform-iac/README.md +34 -0
- package/community-skills/terraform-iac/agenticmail-skill.json +66 -0
- package/community-skills/todoist-tasks/README.md +29 -0
- package/community-skills/todoist-tasks/agenticmail-skill.json +72 -0
- package/community-skills/trello-cards/README.md +30 -0
- package/community-skills/trello-cards/agenticmail-skill.json +72 -0
- package/community-skills/twilio-sms/README.md +47 -0
- package/community-skills/twilio-sms/agenticmail-skill.json +63 -0
- package/community-skills/twitter/README.md +21 -0
- package/community-skills/twitter/agenticmail-skill.json +48 -0
- package/community-skills/vercel-deployments/README.md +29 -0
- package/community-skills/vercel-deployments/agenticmail-skill.json +70 -0
- package/community-skills/weaviate/README.md +21 -0
- package/community-skills/weaviate/agenticmail-skill.json +56 -0
- package/community-skills/webex/README.md +20 -0
- package/community-skills/webex/agenticmail-skill.json +43 -0
- package/community-skills/webflow/README.md +21 -0
- package/community-skills/webflow/agenticmail-skill.json +48 -0
- package/community-skills/whatsapp-business/README.md +20 -0
- package/community-skills/whatsapp-business/agenticmail-skill.json +52 -0
- package/community-skills/whereby/README.md +20 -0
- package/community-skills/whereby/agenticmail-skill.json +43 -0
- package/community-skills/woocommerce/README.md +21 -0
- package/community-skills/woocommerce/agenticmail-skill.json +55 -0
- package/community-skills/wordpress/README.md +21 -0
- package/community-skills/wordpress/agenticmail-skill.json +56 -0
- package/community-skills/workday/README.md +21 -0
- package/community-skills/workday/agenticmail-skill.json +56 -0
- package/community-skills/wrike/README.md +21 -0
- package/community-skills/wrike/agenticmail-skill.json +48 -0
- package/community-skills/xero/README.md +21 -0
- package/community-skills/xero/agenticmail-skill.json +56 -0
- package/community-skills/youtube/README.md +21 -0
- package/community-skills/youtube/agenticmail-skill.json +52 -0
- package/community-skills/zendesk-tickets/README.md +37 -0
- package/community-skills/zendesk-tickets/agenticmail-skill.json +65 -0
- package/community-skills/zoho-crm/README.md +21 -0
- package/community-skills/zoho-crm/agenticmail-skill.json +74 -0
- package/community-skills/zoom-meetings/README.md +51 -0
- package/community-skills/zoom-meetings/agenticmail-skill.json +66 -0
- package/community-skills/zuora/README.md +21 -0
- package/community-skills/zuora/agenticmail-skill.json +55 -0
- package/dashboards/README.md +81 -70
- package/dashboards/django/app.py +117 -0
- package/dashboards/django/static/styles.css +284 -0
- package/dashboards/django/templates/agent_detail.html +501 -0
- package/dashboards/django/templates/agents.html +217 -0
- package/dashboards/django/templates/api_keys.html +41 -0
- package/dashboards/django/templates/audit.html +26 -0
- package/dashboards/django/templates/compliance.html +33 -0
- package/dashboards/django/templates/components/modal.html +6 -0
- package/dashboards/django/templates/components/pagination.html +9 -0
- package/dashboards/django/templates/components/stats.html +8 -0
- package/dashboards/django/templates/dashboard.html +24 -0
- package/dashboards/django/templates/dlp.html +70 -0
- package/dashboards/django/templates/guardrails.html +78 -0
- package/dashboards/django/templates/journal.html +39 -0
- package/dashboards/django/templates/layout.html +52 -0
- package/dashboards/django/templates/login.html +30 -0
- package/dashboards/django/templates/messages.html +38 -0
- package/dashboards/django/templates/settings.html +472 -0
- package/dashboards/django/templates/skills.html +66 -0
- package/dashboards/django/templates/users.html +34 -0
- package/dashboards/django/templates/vault.html +46 -0
- package/dashboards/django/utils/__init__.py +0 -0
- package/dashboards/django/utils/api.py +20 -0
- package/dashboards/django/utils/helpers.py +39 -0
- package/dashboards/django/views/__init__.py +38 -0
- package/dashboards/django/views/agents.py +343 -0
- package/dashboards/django/views/api_keys.py +47 -0
- package/dashboards/django/views/audit.py +35 -0
- package/dashboards/django/views/auth.py +34 -0
- package/dashboards/django/views/compliance.py +37 -0
- package/dashboards/django/views/dashboard.py +27 -0
- package/dashboards/django/views/dlp.py +53 -0
- package/dashboards/django/views/guardrails.py +61 -0
- package/dashboards/django/views/journal.py +41 -0
- package/dashboards/django/views/messages.py +65 -0
- package/dashboards/django/views/settings_view.py +335 -0
- package/dashboards/django/views/skills.py +50 -0
- package/dashboards/django/views/users.py +42 -0
- package/dashboards/django/views/vault.py +50 -0
- package/dashboards/dotnet/AgenticMailDashboard.csproj +10 -0
- package/dashboards/dotnet/Program.cs +53 -233
- package/dashboards/dotnet/Routes/AgentRoutes.cs +771 -0
- package/dashboards/dotnet/Routes/ApiKeyRoutes.cs +185 -0
- package/dashboards/dotnet/Routes/AuditRoutes.cs +86 -0
- package/dashboards/dotnet/Routes/AuthRoutes.cs +50 -0
- package/dashboards/dotnet/Routes/ComplianceRoutes.cs +143 -0
- package/dashboards/dotnet/Routes/DashboardRoutes.cs +81 -0
- package/dashboards/dotnet/Routes/DlpRoutes.cs +230 -0
- package/dashboards/dotnet/Routes/GuardrailRoutes.cs +285 -0
- package/dashboards/dotnet/Routes/JournalRoutes.cs +118 -0
- package/dashboards/dotnet/Routes/MessageRoutes.cs +167 -0
- package/dashboards/dotnet/Routes/SettingRoutes.cs +907 -0
- package/dashboards/dotnet/Routes/SkillRoutes.cs +198 -0
- package/dashboards/dotnet/Routes/UserRoutes.cs +111 -0
- package/dashboards/dotnet/Routes/VaultRoutes.cs +162 -0
- package/dashboards/dotnet/Services/ApiClient.cs +103 -0
- package/dashboards/dotnet/Services/HtmlBuilder.cs +249 -0
- package/dashboards/dotnet/wwwroot/styles.css +284 -0
- package/dashboards/express/app.js +37 -126
- package/dashboards/express/middleware/auth.js +10 -0
- package/dashboards/express/package-lock.json +922 -0
- package/dashboards/express/package.json +17 -0
- package/dashboards/express/public/styles.css +284 -0
- package/dashboards/express/routes/agents.js +771 -0
- package/dashboards/express/routes/apiKeys.js +107 -0
- package/dashboards/express/routes/audit.js +75 -0
- package/dashboards/express/routes/auth.js +38 -0
- package/dashboards/express/routes/compliance.js +93 -0
- package/dashboards/express/routes/dashboard.js +65 -0
- package/dashboards/express/routes/dlp.js +165 -0
- package/dashboards/express/routes/guardrails.js +195 -0
- package/dashboards/express/routes/journal.js +95 -0
- package/dashboards/express/routes/messages.js +97 -0
- package/dashboards/express/routes/settings.js +830 -0
- package/dashboards/express/routes/skills.js +141 -0
- package/dashboards/express/routes/users.js +69 -0
- package/dashboards/express/routes/vault.js +141 -0
- package/dashboards/express/utils/api.js +44 -0
- package/dashboards/express/utils/helpers.js +46 -0
- package/dashboards/express/views/components/modal.js +255 -0
- package/dashboards/express/views/components/stats.js +22 -0
- package/dashboards/express/views/components/table.js +31 -0
- package/dashboards/express/views/layout.js +73 -0
- package/dashboards/express/views/login.js +45 -0
- package/dashboards/go/go.mod +3 -0
- package/dashboards/go/handlers/agents.go +790 -0
- package/dashboards/go/handlers/apikeys.go +38 -0
- package/dashboards/go/handlers/audit.go +52 -0
- package/dashboards/go/handlers/auth.go +39 -0
- package/dashboards/go/handlers/compliance.go +58 -0
- package/dashboards/go/handlers/dashboard.go +43 -0
- package/dashboards/go/handlers/dlp.go +78 -0
- package/dashboards/go/handlers/guardrails.go +89 -0
- package/dashboards/go/handlers/journal.go +60 -0
- package/dashboards/go/handlers/messages.go +59 -0
- package/dashboards/go/handlers/settings.go +951 -0
- package/dashboards/go/handlers/skills.go +129 -0
- package/dashboards/go/handlers/users.go +54 -0
- package/dashboards/go/handlers/vault.go +85 -0
- package/dashboards/go/main.go +35 -485
- package/dashboards/go/middleware/auth.go +17 -0
- package/dashboards/go/services/api.go +38 -0
- package/dashboards/go/services/session.go +52 -0
- package/dashboards/go/static/styles.css +284 -0
- package/dashboards/go/templates/components.go +45 -0
- package/dashboards/go/templates/helpers.go +35 -0
- package/dashboards/go/templates/layout.go +59 -0
- package/dashboards/html/index.html +203 -450
- package/dashboards/html/package.json +11 -0
- package/dashboards/html/public/styles.css +149 -0
- package/dashboards/html/src/api.js +36 -0
- package/dashboards/html/src/components/badge.js +13 -0
- package/dashboards/html/src/components/layout.js +11 -0
- package/dashboards/html/src/components/modal.js +9 -0
- package/dashboards/html/src/components/pagination.js +12 -0
- package/dashboards/html/src/components/stat-card.js +14 -0
- package/dashboards/html/src/components/table.js +6 -0
- package/dashboards/html/src/main.js +83 -0
- package/dashboards/html/src/pages/agents.js +831 -0
- package/dashboards/html/src/pages/api-keys.js +80 -0
- package/dashboards/html/src/pages/audit.js +50 -0
- package/dashboards/html/src/pages/compliance.js +69 -0
- package/dashboards/html/src/pages/dashboard.js +25 -0
- package/dashboards/html/src/pages/dlp.js +112 -0
- package/dashboards/html/src/pages/guardrails.js +127 -0
- package/dashboards/html/src/pages/journal.js +54 -0
- package/dashboards/html/src/pages/login.js +84 -0
- package/dashboards/html/src/pages/messages.js +90 -0
- package/dashboards/html/src/pages/settings.js +656 -0
- package/dashboards/html/src/pages/skills.js +114 -0
- package/dashboards/html/src/pages/users.js +62 -0
- package/dashboards/html/src/pages/vault.js +105 -0
- package/dashboards/html/src/router.js +40 -0
- package/dashboards/html/src/utils/escape.js +7 -0
- package/dashboards/html/src/utils/time.js +16 -0
- package/dashboards/html/src/utils/toast.js +10 -0
- package/dashboards/java/AgenticMailDashboard.java +123 -346
- package/dashboards/java/handlers/AgentsHandler.java +807 -0
- package/dashboards/java/handlers/ApiKeysHandler.java +201 -0
- package/dashboards/java/handlers/AuditHandler.java +95 -0
- package/dashboards/java/handlers/AuthHandler.java +71 -0
- package/dashboards/java/handlers/ComplianceHandler.java +192 -0
- package/dashboards/java/handlers/DashboardHandler.java +98 -0
- package/dashboards/java/handlers/DlpHandler.java +230 -0
- package/dashboards/java/handlers/GuardrailsHandler.java +272 -0
- package/dashboards/java/handlers/JournalHandler.java +130 -0
- package/dashboards/java/handlers/MessagesHandler.java +168 -0
- package/dashboards/java/handlers/SettingsHandler.java +1017 -0
- package/dashboards/java/handlers/SkillsHandler.java +198 -0
- package/dashboards/java/handlers/UsersHandler.java +118 -0
- package/dashboards/java/handlers/VaultHandler.java +168 -0
- package/dashboards/java/services/ApiClient.java +233 -0
- package/dashboards/java/services/SessionManager.java +138 -0
- package/dashboards/java/static/styles.css +288 -0
- package/dashboards/java/templates/Components.java +142 -0
- package/dashboards/java/templates/Helpers.java +106 -0
- package/dashboards/java/templates/Layout.java +98 -0
- package/dashboards/laravel/controllers/AgentController.php +250 -0
- package/dashboards/laravel/controllers/ApiKeyController.php +73 -0
- package/dashboards/laravel/controllers/AuditController.php +31 -0
- package/dashboards/laravel/controllers/AuthController.php +44 -0
- package/dashboards/laravel/controllers/ComplianceController.php +55 -0
- package/dashboards/laravel/controllers/DashboardController.php +28 -0
- package/dashboards/laravel/controllers/DlpController.php +88 -0
- package/dashboards/laravel/controllers/GuardrailController.php +110 -0
- package/dashboards/laravel/controllers/JournalController.php +44 -0
- package/dashboards/laravel/controllers/MessageController.php +47 -0
- package/dashboards/laravel/controllers/SettingController.php +258 -0
- package/dashboards/laravel/controllers/SkillController.php +74 -0
- package/dashboards/laravel/controllers/UserController.php +47 -0
- package/dashboards/laravel/controllers/VaultController.php +94 -0
- package/dashboards/laravel/index.php +319 -0
- package/dashboards/laravel/lib/Api.php +73 -0
- package/dashboards/laravel/lib/Helpers.php +123 -0
- package/dashboards/laravel/public/styles.css +291 -0
- package/dashboards/laravel/views/agent-detail.php +534 -0
- package/dashboards/laravel/views/agents.php +204 -0
- package/dashboards/laravel/views/api-keys.php +55 -0
- package/dashboards/laravel/views/audit.php +30 -0
- package/dashboards/laravel/views/compliance.php +48 -0
- package/dashboards/laravel/views/components/modal.php +59 -0
- package/dashboards/laravel/views/components/stats.php +21 -0
- package/dashboards/laravel/views/components/table.php +35 -0
- package/dashboards/laravel/views/dashboard.php +31 -0
- package/dashboards/laravel/views/dlp.php +87 -0
- package/dashboards/laravel/views/guardrails.php +95 -0
- package/dashboards/laravel/views/journal.php +50 -0
- package/dashboards/laravel/views/layout.php +82 -0
- package/dashboards/laravel/views/login.php +45 -0
- package/dashboards/laravel/views/messages.php +60 -0
- package/dashboards/laravel/views/settings.php +622 -0
- package/dashboards/laravel/views/skills.php +74 -0
- package/dashboards/laravel/views/users.php +42 -0
- package/dashboards/laravel/views/vault.php +80 -0
- package/dashboards/php/components/layout.php +80 -0
- package/dashboards/php/components/modal.php +22 -0
- package/dashboards/php/components/stats.php +20 -0
- package/dashboards/php/components/table.php +33 -0
- package/dashboards/php/index.php +663 -381
- package/dashboards/php/lib/api.php +37 -0
- package/dashboards/php/lib/auth.php +47 -0
- package/dashboards/php/lib/helpers.php +69 -0
- package/dashboards/php/pages/agent-detail.php +552 -0
- package/dashboards/php/pages/agents.php +185 -0
- package/dashboards/php/pages/api-keys.php +34 -0
- package/dashboards/php/pages/audit.php +31 -0
- package/dashboards/php/pages/compliance.php +38 -0
- package/dashboards/php/pages/dashboard.php +29 -0
- package/dashboards/php/pages/dlp.php +65 -0
- package/dashboards/php/pages/guardrails.php +70 -0
- package/dashboards/php/pages/journal.php +53 -0
- package/dashboards/php/pages/login.php +34 -0
- package/dashboards/php/pages/messages.php +53 -0
- package/dashboards/php/pages/settings.php +687 -0
- package/dashboards/php/pages/skills.php +70 -0
- package/dashboards/php/pages/users.php +37 -0
- package/dashboards/php/pages/vault.php +70 -0
- package/dashboards/php/public/styles.css +81 -0
- package/dashboards/python/app.py +61 -259
- package/dashboards/python/routes/__init__.py +0 -0
- package/dashboards/python/routes/agents.py +296 -0
- package/dashboards/python/routes/api_keys.py +49 -0
- package/dashboards/python/routes/audit.py +33 -0
- package/dashboards/python/routes/auth.py +30 -0
- package/dashboards/python/routes/compliance.py +50 -0
- package/dashboards/python/routes/dashboard.py +32 -0
- package/dashboards/python/routes/dlp.py +64 -0
- package/dashboards/python/routes/guardrails.py +79 -0
- package/dashboards/python/routes/journal.py +40 -0
- package/dashboards/python/routes/messages.py +46 -0
- package/dashboards/python/routes/settings.py +260 -0
- package/dashboards/python/routes/skills.py +59 -0
- package/dashboards/python/routes/users.py +43 -0
- package/dashboards/python/routes/vault.py +59 -0
- package/dashboards/python/static/styles.css +288 -0
- package/dashboards/python/templates/agent_detail.html +552 -0
- package/dashboards/python/templates/agents.html +246 -0
- package/dashboards/python/templates/api_keys.html +64 -0
- package/dashboards/python/templates/audit.html +50 -0
- package/dashboards/python/templates/compliance.html +74 -0
- package/dashboards/python/templates/components/modal.html +43 -0
- package/dashboards/python/templates/components/stats.html +26 -0
- package/dashboards/python/templates/components/table.html +43 -0
- package/dashboards/python/templates/dashboard.html +34 -0
- package/dashboards/python/templates/dlp.html +159 -0
- package/dashboards/python/templates/guardrails.html +131 -0
- package/dashboards/python/templates/journal.html +66 -0
- package/dashboards/python/templates/layout.html +86 -0
- package/dashboards/python/templates/login.html +36 -0
- package/dashboards/python/templates/messages.html +90 -0
- package/dashboards/python/templates/settings.html +624 -0
- package/dashboards/python/templates/skills.html +89 -0
- package/dashboards/python/templates/users.html +70 -0
- package/dashboards/python/templates/vault.html +73 -0
- package/dashboards/python/utils/__init__.py +0 -0
- package/dashboards/python/utils/api.py +35 -0
- package/dashboards/python/utils/helpers.py +90 -0
- package/dashboards/rails/app.rb +56 -0
- package/dashboards/rails/helpers/api.rb +39 -0
- package/dashboards/rails/helpers/auth.rb +11 -0
- package/dashboards/rails/helpers/view.rb +95 -0
- package/dashboards/rails/public/styles.css +299 -0
- package/dashboards/rails/routes/agents.rb +173 -0
- package/dashboards/rails/routes/api_keys.rb +30 -0
- package/dashboards/rails/routes/audit.rb +15 -0
- package/dashboards/rails/routes/auth.rb +29 -0
- package/dashboards/rails/routes/compliance.rb +25 -0
- package/dashboards/rails/routes/dashboard.rb +13 -0
- package/dashboards/rails/routes/dlp.rb +40 -0
- package/dashboards/rails/routes/guardrails.rb +51 -0
- package/dashboards/rails/routes/journal.rb +24 -0
- package/dashboards/rails/routes/messages.rb +22 -0
- package/dashboards/rails/routes/settings.rb +196 -0
- package/dashboards/rails/routes/skills.rb +38 -0
- package/dashboards/rails/routes/users.rb +18 -0
- package/dashboards/rails/routes/vault.rb +37 -0
- package/dashboards/rails/views/agent_detail.erb +550 -0
- package/dashboards/rails/views/agents.erb +214 -0
- package/dashboards/rails/views/api_keys.erb +52 -0
- package/dashboards/rails/views/audit.erb +38 -0
- package/dashboards/rails/views/compliance.erb +69 -0
- package/dashboards/rails/views/dashboard.erb +46 -0
- package/dashboards/rails/views/dlp.erb +104 -0
- package/dashboards/rails/views/guardrails.erb +107 -0
- package/dashboards/rails/views/journal.erb +65 -0
- package/dashboards/rails/views/layout.erb +53 -0
- package/dashboards/rails/views/login.erb +47 -0
- package/dashboards/rails/views/messages.erb +62 -0
- package/dashboards/rails/views/settings.erb +578 -0
- package/dashboards/rails/views/skills.erb +66 -0
- package/dashboards/rails/views/users.erb +53 -0
- package/dashboards/rails/views/vault.erb +66 -0
- package/dashboards/ruby/app.rb +53 -182
- package/dashboards/ruby/helpers/api.rb +63 -0
- package/dashboards/ruby/helpers/auth.rb +20 -0
- package/dashboards/ruby/helpers/view.rb +91 -0
- package/dashboards/ruby/public/styles.css +294 -0
- package/dashboards/ruby/routes/agents.rb +197 -0
- package/dashboards/ruby/routes/api_keys.rb +43 -0
- package/dashboards/ruby/routes/audit.rb +15 -0
- package/dashboards/ruby/routes/auth.rb +29 -0
- package/dashboards/ruby/routes/compliance.rb +28 -0
- package/dashboards/ruby/routes/dashboard.rb +13 -0
- package/dashboards/ruby/routes/dlp.rb +55 -0
- package/dashboards/ruby/routes/guardrails.rb +77 -0
- package/dashboards/ruby/routes/journal.rb +24 -0
- package/dashboards/ruby/routes/messages.rb +27 -0
- package/dashboards/ruby/routes/settings.rb +214 -0
- package/dashboards/ruby/routes/skills.rb +50 -0
- package/dashboards/ruby/routes/users.rb +26 -0
- package/dashboards/ruby/routes/vault.rb +49 -0
- package/dashboards/ruby/views/agent_detail.erb +550 -0
- package/dashboards/ruby/views/agents.erb +214 -0
- package/dashboards/ruby/views/api_keys.erb +59 -0
- package/dashboards/ruby/views/audit.erb +38 -0
- package/dashboards/ruby/views/compliance.erb +45 -0
- package/dashboards/ruby/views/dashboard.erb +46 -0
- package/dashboards/ruby/views/dlp.erb +88 -0
- package/dashboards/ruby/views/guardrails.erb +103 -0
- package/dashboards/ruby/views/journal.erb +53 -0
- package/dashboards/ruby/views/layout.erb +52 -0
- package/dashboards/ruby/views/login.erb +31 -0
- package/dashboards/ruby/views/messages.erb +51 -0
- package/dashboards/ruby/views/settings.erb +579 -0
- package/dashboards/ruby/views/skills.erb +66 -0
- package/dashboards/ruby/views/users.erb +53 -0
- package/dashboards/ruby/views/vault.erb +66 -0
- package/dashboards/shared/styles.css +322 -0
- package/dist/{chunk-TVF23PUW.js → chunk-7FVRYOP4.js} +22 -7
- package/dist/chunk-DRXMYYKN.js +79 -0
- package/dist/chunk-E23VJ3QX.js +9427 -0
- package/dist/chunk-EOBN6RCA.js +12652 -0
- package/dist/chunk-FLRYMSKY.js +23 -0
- package/dist/chunk-HAUHDCUB.js +764 -0
- package/dist/chunk-HSF6OJ5Z.js +154 -0
- package/dist/{chunk-PNKVD2UK.js → chunk-KFQGP6VL.js} +7 -0
- package/dist/chunk-LKAFZ343.js +591 -0
- package/dist/{chunk-GXIEEA2T.js → chunk-NTVN3JHS.js} +10 -10
- package/dist/chunk-RO537U6H.js +70 -0
- package/dist/chunk-SGBTJHEF.js +2287 -0
- package/dist/chunk-SMUXH6FM.js +1943 -0
- package/dist/chunk-TY7NVD4U.js +275 -0
- package/dist/chunk-X6UVWFHW.js +3455 -0
- package/dist/{chunk-7RGCCHIT.js → chunk-XMDE2NGH.js} +2 -1
- package/dist/chunk-ZNR5DDTA.js +239 -0
- package/dist/cidr-LISVZSM2.js +17 -0
- package/dist/cli-build-skill-XOYECCLE.js +235 -0
- package/dist/cli-recover-SSGGSKZJ.js +97 -0
- package/dist/cli-submit-skill-RSBLF5XN.js +162 -0
- package/dist/cli-validate-WJBUOEGW.js +148 -0
- package/dist/cli-verify-V3GPFMWU.js +98 -0
- package/dist/cli.js +50 -376
- package/dist/config-store-CRMKWBON.js +58 -0
- package/dist/dashboard/app.js +246 -0
- package/dist/dashboard/assets/logo.png +0 -0
- package/dist/dashboard/components/error-boundary.js +21 -0
- package/dist/dashboard/components/help-button.js +34 -0
- package/dist/dashboard/components/icons.js +53 -0
- package/dist/dashboard/components/modal.js +124 -0
- package/dist/dashboard/components/persona-fields.js +271 -0
- package/dist/dashboard/components/settings-help.js +191 -0
- package/dist/dashboard/components/tag-input.js +96 -0
- package/dist/dashboard/components/utils.js +148 -0
- package/dist/dashboard/index.html +407 -874
- package/dist/dashboard/pages/activity.js +62 -0
- package/dist/dashboard/pages/agent-detail.js +3577 -0
- package/dist/dashboard/pages/agents.js +1072 -0
- package/dist/dashboard/pages/approvals.js +81 -0
- package/dist/dashboard/pages/audit.js +133 -0
- package/dist/dashboard/pages/community-skills.js +665 -0
- package/dist/dashboard/pages/compliance.js +81 -0
- package/dist/dashboard/pages/dashboard.js +150 -0
- package/dist/dashboard/pages/dlp.js +107 -0
- package/dist/dashboard/pages/domain-status.js +123 -0
- package/dist/dashboard/pages/guardrails.js +995 -0
- package/dist/dashboard/pages/journal.js +51 -0
- package/dist/dashboard/pages/knowledge-contributions.js +763 -0
- package/dist/dashboard/pages/knowledge.js +46 -0
- package/dist/dashboard/pages/login.js +491 -0
- package/dist/dashboard/pages/messages.js +274 -0
- package/dist/dashboard/pages/settings.js +1554 -0
- package/dist/dashboard/pages/skill-connections.js +452 -0
- package/dist/dashboard/pages/skills.js +433 -0
- package/dist/dashboard/pages/users.js +49 -0
- package/dist/dashboard/pages/vault.js +538 -0
- package/dist/dashboard/pages/workforce.js +569 -0
- package/dist/dashboard/vendor/react-dom.production.min.js +267 -0
- package/dist/dashboard/vendor/react.production.min.js +31 -0
- package/dist/db-adapter-5PWMLY67.js +7 -0
- package/dist/domain-lock-URIFILHB.js +7 -0
- package/dist/{dynamodb-CCGL2E77.js → dynamodb-CD3LREWD.js} +4 -4
- package/dist/{factory-HINWFYZ3.js → factory-FVJH5RRY.js} +2 -2
- package/dist/firewall-AHIRE6UB.js +10 -0
- package/dist/index.js +133 -448
- package/dist/{managed-RZITNPXG.js → managed-QVTONZ7E.js} +4 -2
- package/dist/{mongodb-ODTXIVPV.js → mongodb-73MGW7LD.js} +4 -4
- package/dist/{mysql-RM3S2FV5.js → mysql-A2RYNBQG.js} +59 -6
- package/dist/{postgres-LN7A6MGQ.js → postgres-OE23X46P.js} +63 -6
- package/dist/registry/cli.js +411 -0
- package/dist/routes-NJK5OI5N.js +5673 -0
- package/dist/runtime-SMA6JUMP.js +46 -0
- package/dist/server-ZT5NWHT4.js +11 -0
- package/dist/setup-RCYNX5NA.js +20 -0
- package/dist/skills-QNR3CCHA.js +14 -0
- package/dist/soul-templates.json +1525 -0
- package/dist/{sqlite-VLKVAJA4.js → sqlite-SFVNZPHX.js} +56 -8
- package/dist/{turso-LDWODSDI.js → turso-L6WQAY7U.js} +59 -6
- package/live-test.mjs +1 -1
- package/package.json +11 -10
- package/schemas/agenticmail-skill.v1.schema.json +180 -0
- package/serve.mjs +12 -2
- package/src/admin/routes.ts +536 -5
- package/src/agent-tools/common.ts +232 -0
- package/src/agent-tools/index.ts +246 -0
- package/src/agent-tools/merge.ts +62 -0
- package/src/agent-tools/middleware.ts +436 -0
- package/src/agent-tools/security.ts +352 -0
- package/src/agent-tools/tools/bash.ts +154 -0
- package/src/agent-tools/tools/browser.ts +236 -0
- package/src/agent-tools/tools/edit.ts +100 -0
- package/src/agent-tools/tools/enterprise-calendar.ts +561 -0
- package/src/agent-tools/tools/enterprise-code-sandbox.ts +395 -0
- package/src/agent-tools/tools/enterprise-database.ts +377 -0
- package/src/agent-tools/tools/enterprise-diff.ts +580 -0
- package/src/agent-tools/tools/enterprise-documents.ts +896 -0
- package/src/agent-tools/tools/enterprise-finance.ts +484 -0
- package/src/agent-tools/tools/enterprise-http.ts +477 -0
- package/src/agent-tools/tools/enterprise-knowledge-search.ts +369 -0
- package/src/agent-tools/tools/enterprise-logs.ts +479 -0
- package/src/agent-tools/tools/enterprise-notifications.ts +532 -0
- package/src/agent-tools/tools/enterprise-security-scan.ts +528 -0
- package/src/agent-tools/tools/enterprise-spreadsheet.ts +825 -0
- package/src/agent-tools/tools/enterprise-translation.ts +530 -0
- package/src/agent-tools/tools/enterprise-vision.ts +348 -0
- package/src/agent-tools/tools/enterprise-web-research.ts +422 -0
- package/src/agent-tools/tools/enterprise-workflow.ts +308 -0
- package/src/agent-tools/tools/glob.ts +129 -0
- package/src/agent-tools/tools/grep.ts +178 -0
- package/src/agent-tools/tools/memory.ts +194 -0
- package/src/agent-tools/tools/read.ts +160 -0
- package/src/agent-tools/tools/web-fetch-utils.ts +202 -0
- package/src/agent-tools/tools/web-fetch.ts +456 -0
- package/src/agent-tools/tools/web-search.ts +480 -0
- package/src/agent-tools/tools/web-shared.ts +232 -0
- package/src/agent-tools/tools/write.ts +68 -0
- package/src/agent-tools/types.ts +193 -0
- package/src/auth/routes.ts +916 -51
- package/src/cli.ts +74 -14
- package/src/dashboard/app.js +246 -0
- package/src/dashboard/assets/logo.png +0 -0
- package/src/dashboard/components/error-boundary.js +21 -0
- package/src/dashboard/components/help-button.js +34 -0
- package/src/dashboard/components/icons.js +53 -0
- package/src/dashboard/components/modal.js +124 -0
- package/src/dashboard/components/persona-fields.js +271 -0
- package/src/dashboard/components/settings-help.js +191 -0
- package/src/dashboard/components/tag-input.js +96 -0
- package/src/dashboard/components/utils.js +148 -0
- package/src/dashboard/index.html +407 -874
- package/src/dashboard/pages/activity.js +62 -0
- package/src/dashboard/pages/agent-detail.js +3577 -0
- package/src/dashboard/pages/agents.js +1072 -0
- package/src/dashboard/pages/approvals.js +81 -0
- package/src/dashboard/pages/audit.js +133 -0
- package/src/dashboard/pages/community-skills.js +665 -0
- package/src/dashboard/pages/compliance.js +81 -0
- package/src/dashboard/pages/dashboard.js +150 -0
- package/src/dashboard/pages/dlp.js +107 -0
- package/src/dashboard/pages/domain-status.js +123 -0
- package/src/dashboard/pages/guardrails.js +995 -0
- package/src/dashboard/pages/journal.js +51 -0
- package/src/dashboard/pages/knowledge-contributions.js +763 -0
- package/src/dashboard/pages/knowledge.js +46 -0
- package/src/dashboard/pages/login.js +491 -0
- package/src/dashboard/pages/messages.js +274 -0
- package/src/dashboard/pages/settings.js +1554 -0
- package/src/dashboard/pages/skill-connections.js +452 -0
- package/src/dashboard/pages/skills.js +433 -0
- package/src/dashboard/pages/users.js +49 -0
- package/src/dashboard/pages/vault.js +538 -0
- package/src/dashboard/pages/workforce.js +569 -0
- package/src/dashboard/vendor/react-dom.production.min.js +267 -0
- package/src/dashboard/vendor/react.production.min.js +31 -0
- package/src/db/adapter.ts +134 -1
- package/src/db/dynamodb.ts +2 -2
- package/src/db/mongodb.ts +2 -2
- package/src/db/mysql.ts +55 -1
- package/src/db/postgres.ts +59 -1
- package/src/db/proxy.ts +39 -0
- package/src/db/sql-schema.ts +2 -1
- package/src/db/sqlite.ts +51 -3
- package/src/db/turso.ts +55 -1
- package/src/deploy/fly.ts +2 -2
- package/src/deploy/managed.ts +32 -11
- package/src/domain-lock/cli-recover.ts +124 -0
- package/src/domain-lock/cli-verify.ts +122 -0
- package/src/domain-lock/index.ts +220 -0
- package/src/engine/activity-routes.ts +116 -0
- package/src/engine/activity.ts +62 -2
- package/src/engine/agent-config.ts +190 -24
- package/src/engine/agent-memory.ts +1062 -0
- package/src/engine/agent-routes.ts +379 -0
- package/src/engine/approvals.ts +309 -2
- package/src/engine/catalog-routes.ts +155 -0
- package/src/engine/cli-build-skill.ts +285 -0
- package/src/engine/cli-submit-skill.ts +200 -0
- package/src/engine/cli-validate.ts +188 -0
- package/src/engine/communication-routes.ts +139 -0
- package/src/engine/communication.ts +759 -0
- package/src/engine/community-registry.ts +1509 -0
- package/src/engine/community-routes.ts +233 -0
- package/src/engine/compliance-routes.ts +93 -0
- package/src/engine/compliance.ts +325 -0
- package/src/engine/db-adapter.ts +349 -1
- package/src/engine/db-schema.ts +971 -23
- package/src/engine/deploy-schema-routes.ts +176 -0
- package/src/engine/deployer.ts +6 -6
- package/src/engine/dlp-routes.ts +59 -0
- package/src/engine/dlp.ts +231 -0
- package/src/engine/guardrail-routes.ts +125 -0
- package/src/engine/guardrails.ts +403 -0
- package/src/engine/index.ts +131 -10
- package/src/engine/journal-routes.ts +56 -0
- package/src/engine/journal.ts +249 -0
- package/src/engine/knowledge-contribution-routes.ts +385 -0
- package/src/engine/knowledge-contribution.ts +1319 -0
- package/src/engine/knowledge-routes.ts +68 -0
- package/src/engine/knowledge.ts +73 -1
- package/src/engine/lifecycle.ts +487 -31
- package/src/engine/memory-routes.ts +142 -0
- package/src/engine/oauth-connect-routes.ts +366 -0
- package/src/engine/oauth-connect.ts +304 -0
- package/src/engine/onboarding-routes.ts +140 -0
- package/src/engine/onboarding.ts +574 -0
- package/src/engine/org-approval-routes.ts +146 -0
- package/src/engine/org-policies.ts +497 -0
- package/src/engine/policy-import-routes.ts +125 -0
- package/src/engine/policy-import.ts +1186 -0
- package/src/engine/policy-routes.ts +163 -0
- package/src/engine/routes.ts +239 -482
- package/src/engine/skill-updater-routes.ts +132 -0
- package/src/engine/skill-updater.ts +480 -0
- package/src/engine/skill-validator.ts +331 -0
- package/src/engine/skills/enterprise-calendar.ts +142 -0
- package/src/engine/skills/enterprise-code-sandbox.ts +112 -0
- package/src/engine/skills/enterprise-database.ts +122 -0
- package/src/engine/skills/enterprise-diff.ts +94 -0
- package/src/engine/skills/enterprise-documents.ts +161 -0
- package/src/engine/skills/enterprise-finance.ts +109 -0
- package/src/engine/skills/enterprise-http.ts +98 -0
- package/src/engine/skills/enterprise-knowledge-search.ts +106 -0
- package/src/engine/skills/enterprise-logs.ts +115 -0
- package/src/engine/skills/enterprise-notifications.ts +119 -0
- package/src/engine/skills/enterprise-security-scan.ts +124 -0
- package/src/engine/skills/enterprise-spreadsheet.ts +170 -0
- package/src/engine/skills/enterprise-translation.ts +111 -0
- package/src/engine/skills/enterprise-vision.ts +107 -0
- package/src/engine/skills/enterprise-web-research.ts +114 -0
- package/src/engine/skills/enterprise-workflow.ts +109 -0
- package/src/engine/skills/gws-admin.ts +17 -0
- package/src/engine/skills/gws-calendar.ts +19 -0
- package/src/engine/skills/gws-chat.ts +16 -0
- package/src/engine/skills/gws-docs.ts +17 -0
- package/src/engine/skills/gws-drive.ts +20 -0
- package/src/engine/skills/gws-forms.ts +16 -0
- package/src/engine/skills/gws-gmail.ts +20 -0
- package/src/engine/skills/gws-groups.ts +16 -0
- package/src/engine/skills/gws-keep.ts +16 -0
- package/src/engine/skills/gws-meet.ts +16 -0
- package/src/engine/skills/gws-sheets.ts +18 -0
- package/src/engine/skills/gws-sites.ts +15 -0
- package/src/engine/skills/gws-slides.ts +16 -0
- package/src/engine/skills/gws-vault.ts +16 -0
- package/src/engine/skills/index.ts +121 -0
- package/src/engine/skills/m365-admin.ts +17 -0
- package/src/engine/skills/m365-bookings.ts +16 -0
- package/src/engine/skills/m365-copilot.ts +16 -0
- package/src/engine/skills/m365-excel.ts +59 -0
- package/src/engine/skills/m365-forms.ts +16 -0
- package/src/engine/skills/m365-onedrive.ts +59 -0
- package/src/engine/skills/m365-onenote.ts +16 -0
- package/src/engine/skills/m365-outlook.ts +26 -0
- package/src/engine/skills/m365-planner.ts +17 -0
- package/src/engine/skills/m365-power-automate.ts +17 -0
- package/src/engine/skills/m365-power-bi.ts +18 -0
- package/src/engine/skills/m365-powerpoint.ts +32 -0
- package/src/engine/skills/m365-sharepoint.ts +19 -0
- package/src/engine/skills/m365-teams.ts +20 -0
- package/src/engine/skills/m365-todo.ts +16 -0
- package/src/engine/skills/m365-whiteboard.ts +15 -0
- package/src/engine/skills/m365-word.ts +41 -0
- package/src/engine/skills.ts +353 -17
- package/src/engine/soul-library.ts +142 -0
- package/src/engine/soul-templates.json +1525 -0
- package/src/engine/storage-manager.ts +252 -0
- package/src/engine/storage-routes.ts +113 -0
- package/src/engine/storage.ts +528 -0
- package/src/engine/tenant.ts +69 -5
- package/src/engine/tool-catalog.ts +177 -13
- package/src/engine/vault-routes.ts +130 -0
- package/src/engine/vault.ts +544 -0
- package/src/engine/workforce-routes.ts +282 -0
- package/src/engine/workforce.ts +957 -0
- package/src/index.ts +9 -1
- package/src/lib/cidr.ts +122 -0
- package/src/lib/config-store.ts +86 -0
- package/src/mcp/adapters/activecampaign.adapter.ts +391 -0
- package/src/mcp/adapters/adobe-sign.adapter.ts +469 -0
- package/src/mcp/adapters/adp.adapter.ts +358 -0
- package/src/mcp/adapters/airtable.adapter.ts +273 -0
- package/src/mcp/adapters/apollo.adapter.ts +420 -0
- package/src/mcp/adapters/asana.adapter.ts +315 -0
- package/src/mcp/adapters/auth0.adapter.ts +386 -0
- package/src/mcp/adapters/aws.adapter.ts +345 -0
- package/src/mcp/adapters/azure-devops.adapter.ts +389 -0
- package/src/mcp/adapters/bamboohr.adapter.ts +376 -0
- package/src/mcp/adapters/basecamp.adapter.ts +366 -0
- package/src/mcp/adapters/bigcommerce.adapter.ts +429 -0
- package/src/mcp/adapters/bitbucket.adapter.ts +260 -0
- package/src/mcp/adapters/box.adapter.ts +350 -0
- package/src/mcp/adapters/brex.adapter.ts +367 -0
- package/src/mcp/adapters/buffer.adapter.ts +303 -0
- package/src/mcp/adapters/calendly.adapter.ts +262 -0
- package/src/mcp/adapters/canva.adapter.ts +256 -0
- package/src/mcp/adapters/chargebee.adapter.ts +448 -0
- package/src/mcp/adapters/circleci.adapter.ts +216 -0
- package/src/mcp/adapters/clickup.adapter.ts +335 -0
- package/src/mcp/adapters/close.adapter.ts +390 -0
- package/src/mcp/adapters/cloudflare.adapter.ts +377 -0
- package/src/mcp/adapters/confluence.adapter.ts +301 -0
- package/src/mcp/adapters/contentful.adapter.ts +355 -0
- package/src/mcp/adapters/copper.adapter.ts +468 -0
- package/src/mcp/adapters/crisp.adapter.ts +415 -0
- package/src/mcp/adapters/crowdstrike.adapter.ts +413 -0
- package/src/mcp/adapters/datadog.adapter.ts +373 -0
- package/src/mcp/adapters/digitalocean.adapter.ts +336 -0
- package/src/mcp/adapters/discord.adapter.ts +248 -0
- package/src/mcp/adapters/docker.adapter.ts +238 -0
- package/src/mcp/adapters/docusign.adapter.ts +431 -0
- package/src/mcp/adapters/drift.adapter.ts +386 -0
- package/src/mcp/adapters/dropbox.adapter.ts +315 -0
- package/src/mcp/adapters/figma.adapter.ts +302 -0
- package/src/mcp/adapters/firebase.adapter.ts +446 -0
- package/src/mcp/adapters/flyio.adapter.ts +302 -0
- package/src/mcp/adapters/freshbooks.adapter.ts +474 -0
- package/src/mcp/adapters/freshdesk.adapter.ts +441 -0
- package/src/mcp/adapters/freshsales.adapter.ts +457 -0
- package/src/mcp/adapters/freshservice.adapter.ts +481 -0
- package/src/mcp/adapters/front.adapter.ts +357 -0
- package/src/mcp/adapters/github-actions.adapter.ts +329 -0
- package/src/mcp/adapters/github.adapter.ts +387 -0
- package/src/mcp/adapters/gitlab.adapter.ts +368 -0
- package/src/mcp/adapters/gong.adapter.ts +386 -0
- package/src/mcp/adapters/google-ads.adapter.ts +363 -0
- package/src/mcp/adapters/google-analytics.adapter.ts +316 -0
- package/src/mcp/adapters/google-cloud.adapter.ts +312 -0
- package/src/mcp/adapters/google-drive.adapter.ts +387 -0
- package/src/mcp/adapters/gotomeeting.adapter.ts +255 -0
- package/src/mcp/adapters/grafana.adapter.ts +361 -0
- package/src/mcp/adapters/greenhouse.adapter.ts +354 -0
- package/src/mcp/adapters/gusto.adapter.ts +329 -0
- package/src/mcp/adapters/hashicorp-vault.adapter.ts +355 -0
- package/src/mcp/adapters/heroku.adapter.ts +291 -0
- package/src/mcp/adapters/hibob.adapter.ts +334 -0
- package/src/mcp/adapters/hootsuite.adapter.ts +322 -0
- package/src/mcp/adapters/hubspot.adapter.ts +400 -0
- package/src/mcp/adapters/huggingface.adapter.ts +349 -0
- package/src/mcp/adapters/index.ts +530 -0
- package/src/mcp/adapters/intercom.adapter.ts +269 -0
- package/src/mcp/adapters/jira.adapter.ts +482 -0
- package/src/mcp/adapters/klaviyo.adapter.ts +353 -0
- package/src/mcp/adapters/kubernetes.adapter.ts +431 -0
- package/src/mcp/adapters/lattice.adapter.ts +339 -0
- package/src/mcp/adapters/launchdarkly.adapter.ts +368 -0
- package/src/mcp/adapters/lever.adapter.ts +347 -0
- package/src/mcp/adapters/linear.adapter.ts +300 -0
- package/src/mcp/adapters/linkedin.adapter.ts +331 -0
- package/src/mcp/adapters/livechat.adapter.ts +259 -0
- package/src/mcp/adapters/loom.adapter.ts +230 -0
- package/src/mcp/adapters/mailchimp.adapter.ts +394 -0
- package/src/mcp/adapters/mailgun.adapter.ts +425 -0
- package/src/mcp/adapters/microsoft-teams.adapter.ts +251 -0
- package/src/mcp/adapters/miro.adapter.ts +274 -0
- package/src/mcp/adapters/mixpanel.adapter.ts +324 -0
- package/src/mcp/adapters/monday.adapter.ts +308 -0
- package/src/mcp/adapters/mongodb-atlas.adapter.ts +345 -0
- package/src/mcp/adapters/neon.adapter.ts +312 -0
- package/src/mcp/adapters/netlify.adapter.ts +324 -0
- package/src/mcp/adapters/netsuite.adapter.ts +411 -0
- package/src/mcp/adapters/newrelic.adapter.ts +339 -0
- package/src/mcp/adapters/notion.adapter.ts +338 -0
- package/src/mcp/adapters/okta.adapter.ts +394 -0
- package/src/mcp/adapters/openai.adapter.ts +315 -0
- package/src/mcp/adapters/opsgenie.adapter.ts +375 -0
- package/src/mcp/adapters/outreach.adapter.ts +372 -0
- package/src/mcp/adapters/paddle.adapter.ts +467 -0
- package/src/mcp/adapters/pagerduty.adapter.ts +412 -0
- package/src/mcp/adapters/pandadoc.adapter.ts +389 -0
- package/src/mcp/adapters/paypal.adapter.ts +465 -0
- package/src/mcp/adapters/personio.adapter.ts +401 -0
- package/src/mcp/adapters/pinecone.adapter.ts +340 -0
- package/src/mcp/adapters/pipedrive.adapter.ts +324 -0
- package/src/mcp/adapters/plaid.adapter.ts +444 -0
- package/src/mcp/adapters/postmark.adapter.ts +387 -0
- package/src/mcp/adapters/power-automate.adapter.ts +388 -0
- package/src/mcp/adapters/quickbooks.adapter.ts +431 -0
- package/src/mcp/adapters/recurly.adapter.ts +433 -0
- package/src/mcp/adapters/reddit.adapter.ts +371 -0
- package/src/mcp/adapters/render.adapter.ts +332 -0
- package/src/mcp/adapters/ringcentral.adapter.ts +281 -0
- package/src/mcp/adapters/rippling.adapter.ts +287 -0
- package/src/mcp/adapters/salesforce.adapter.ts +321 -0
- package/src/mcp/adapters/salesloft.adapter.ts +413 -0
- package/src/mcp/adapters/sanity.adapter.ts +363 -0
- package/src/mcp/adapters/sap.adapter.ts +483 -0
- package/src/mcp/adapters/segment.adapter.ts +260 -0
- package/src/mcp/adapters/sendgrid.adapter.ts +265 -0
- package/src/mcp/adapters/sentry.adapter.ts +331 -0
- package/src/mcp/adapters/servicenow.adapter.ts +468 -0
- package/src/mcp/adapters/shopify.adapter.ts +451 -0
- package/src/mcp/adapters/shortcut.adapter.ts +290 -0
- package/src/mcp/adapters/slack.adapter.ts +380 -0
- package/src/mcp/adapters/smartsheet.adapter.ts +326 -0
- package/src/mcp/adapters/snowflake.adapter.ts +347 -0
- package/src/mcp/adapters/snyk.adapter.ts +394 -0
- package/src/mcp/adapters/splunk.adapter.ts +403 -0
- package/src/mcp/adapters/square.adapter.ts +467 -0
- package/src/mcp/adapters/statuspage.adapter.ts +401 -0
- package/src/mcp/adapters/stripe.adapter.ts +380 -0
- package/src/mcp/adapters/supabase.adapter.ts +334 -0
- package/src/mcp/adapters/teamwork.adapter.ts +404 -0
- package/src/mcp/adapters/telegram.adapter.ts +299 -0
- package/src/mcp/adapters/terraform.adapter.ts +300 -0
- package/src/mcp/adapters/todoist.adapter.ts +239 -0
- package/src/mcp/adapters/trello.adapter.ts +316 -0
- package/src/mcp/adapters/twilio.adapter.ts +233 -0
- package/src/mcp/adapters/twitter.adapter.ts +348 -0
- package/src/mcp/adapters/vercel.adapter.ts +219 -0
- package/src/mcp/adapters/weaviate.adapter.ts +371 -0
- package/src/mcp/adapters/webex.adapter.ts +237 -0
- package/src/mcp/adapters/webflow.adapter.ts +287 -0
- package/src/mcp/adapters/whatsapp.adapter.ts +273 -0
- package/src/mcp/adapters/whereby.adapter.ts +240 -0
- package/src/mcp/adapters/woocommerce.adapter.ts +454 -0
- package/src/mcp/adapters/wordpress.adapter.ts +455 -0
- package/src/mcp/adapters/workday.adapter.ts +354 -0
- package/src/mcp/adapters/wrike.adapter.ts +349 -0
- package/src/mcp/adapters/xero.adapter.ts +472 -0
- package/src/mcp/adapters/youtube.adapter.ts +401 -0
- package/src/mcp/adapters/zendesk.adapter.ts +399 -0
- package/src/mcp/adapters/zoho-crm.adapter.ts +410 -0
- package/src/mcp/adapters/zoom.adapter.ts +241 -0
- package/src/mcp/adapters/zuora.adapter.ts +476 -0
- package/src/mcp/framework/api-executor.ts +192 -0
- package/src/mcp/framework/aws-sigv4.ts +216 -0
- package/src/mcp/framework/credential-resolver.ts +128 -0
- package/src/mcp/framework/skill-mcp-framework.ts +226 -0
- package/src/mcp/framework/types.ts +130 -0
- package/src/mcp/index.ts +124 -0
- package/src/middleware/egress-filter.ts +81 -0
- package/src/middleware/firewall.ts +121 -0
- package/src/middleware/index.ts +33 -0
- package/src/registry/cli.ts +63 -0
- package/src/registry/server.ts +504 -0
- package/src/runtime/agent-loop.ts +504 -0
- package/src/runtime/email-channel.ts +120 -0
- package/src/runtime/followup.ts +211 -0
- package/src/runtime/gateway.ts +260 -0
- package/src/runtime/hooks.ts +472 -0
- package/src/runtime/index.ts +679 -0
- package/src/runtime/llm-client.ts +1019 -0
- package/src/runtime/providers.ts +231 -0
- package/src/runtime/session-manager.ts +340 -0
- package/src/runtime/subagent.ts +154 -0
- package/src/runtime/tool-executor.ts +202 -0
- package/src/runtime/types.ts +215 -0
- package/src/server.ts +157 -45
- package/src/setup/company.ts +127 -8
- package/src/setup/database.ts +2 -1
- package/src/setup/domain.ts +33 -4
- package/src/setup/index.ts +19 -7
- package/src/setup/provision.ts +128 -8
- package/src/setup/registration.ts +227 -0
- package/src/types/hono-env.ts +14 -0
- package/src/types/optional-deps.d.ts +10 -0
- package/start-live.mjs +12 -3
- package/test-integration.mjs +628 -257
- package/dist/chunk-77IDQJL3.js +0 -7
- package/dist/chunk-BE7MXVLA.js +0 -757
- package/dist/chunk-BS2WCSHO.js +0 -48
- package/dist/chunk-FL3VQBGL.js +0 -757
- package/dist/chunk-IQWA44WT.js +0 -970
- package/dist/chunk-N2JVTNNJ.js +0 -2553
- package/dist/chunk-YFDSE4BW.js +0 -1355
- package/dist/db-adapter-DEWEFNIV.js +0 -7
- package/dist/factory-V37IG5AT.js +0 -9
- package/dist/routes-2JEPIIKC.js +0 -441
- package/dist/server-32YYCI3A.js +0 -8
- package/dist/server-H3C6WUOS.js +0 -8
- package/dist/sqlite-3K5YOZ4K.js +0 -439
- package/src/engine/agenticmail-bridge.ts +0 -296
- package/src/engine/openclaw-hook.ts +0 -371
package/README.md
CHANGED
|
@@ -27,7 +27,7 @@ AgenticMail Enterprise turns AI agents into managed employees. You define what a
|
|
|
27
27
|
- [Multi-Tenant Isolation](#7-multi-tenant-isolation)
|
|
28
28
|
- [Activity Tracking](#8-activity-tracking)
|
|
29
29
|
- [Tool Catalog](#9-tool-catalog)
|
|
30
|
-
- [
|
|
30
|
+
- [Runtime Hooks](#10-runtime-hooks)
|
|
31
31
|
- [AgenticMail Bridge](#11-agenticmail-bridge)
|
|
32
32
|
- [REST API](#rest-api)
|
|
33
33
|
- [Authentication](#authentication)
|
|
@@ -154,14 +154,14 @@ Choose from 10 supported backends. Each asks for its specific connection details
|
|
|
154
154
|
- **Turso / LibSQL** — database URL + auth token
|
|
155
155
|
|
|
156
156
|
### Step 3: Deployment Target
|
|
157
|
-
- **AgenticMail Cloud** — managed hosting, instant URL (`company.agenticmail.
|
|
157
|
+
- **AgenticMail Cloud** — managed hosting, instant URL (`company.agenticmail.io`)
|
|
158
158
|
- **Fly.io** — generates `fly.toml`, you deploy to your Fly account
|
|
159
159
|
- **Railway** — generates Railway config
|
|
160
160
|
- **Docker** — generates `docker-compose.yml` for self-hosting
|
|
161
161
|
- **Local** — starts the server immediately on localhost (dev/testing)
|
|
162
162
|
|
|
163
163
|
### Step 4: Custom Domain (optional)
|
|
164
|
-
Add a custom domain (e.g., `agents.
|
|
164
|
+
Add a custom domain (e.g., `agents.agenticmail.io`) with CNAME setup instructions.
|
|
165
165
|
|
|
166
166
|
---
|
|
167
167
|
|
|
@@ -263,7 +263,7 @@ The Engine is the brain of Enterprise — 11 subsystems that handle everything f
|
|
|
263
263
|
| Custom | Custom Tools (user-defined) |
|
|
264
264
|
|
|
265
265
|
Each skill defines:
|
|
266
|
-
- **Tools** — which tool IDs are included (mapped to
|
|
266
|
+
- **Tools** — which tool IDs are included (mapped to registered AgenticMail tool IDs)
|
|
267
267
|
- **Config fields** — what settings the skill needs (API keys, hostnames, etc.)
|
|
268
268
|
- **Risk level** — low, medium, high, critical
|
|
269
269
|
- **Side effects** — what the skill can affect (network, filesystem, email, etc.)
|
|
@@ -300,7 +300,7 @@ Generates all the files an agent needs to run:
|
|
|
300
300
|
- **AGENTS.md** — workspace conventions
|
|
301
301
|
- **USER.md** — who the agent serves
|
|
302
302
|
- **TOOLS.md** — environment-specific tool notes
|
|
303
|
-
- **Gateway config** —
|
|
303
|
+
- **Gateway config** — agent runtime gateway config with plugins, channels, tool policies
|
|
304
304
|
- **Deploy scripts** — Dockerfile, docker-compose, startup scripts
|
|
305
305
|
|
|
306
306
|
```typescript
|
|
@@ -343,173 +343,263 @@ const result = await deployer.deploy({
|
|
|
343
343
|
|
|
344
344
|
### 4. Approval Workflows
|
|
345
345
|
|
|
346
|
-
Human-in-the-loop for sensitive operations
|
|
346
|
+
Human-in-the-loop for sensitive operations. **All data persisted to database.**
|
|
347
347
|
|
|
348
348
|
- Define **policies** — which actions need approval and from whom
|
|
349
349
|
- Agents **request** approval when they hit a policy boundary
|
|
350
350
|
- Admins **approve or reject** from the dashboard or via API
|
|
351
351
|
- Supports **auto-approve** rules (e.g., "auto-approve emails to internal domains")
|
|
352
352
|
- **Escalation** — unreviewed requests escalate after a configurable timeout
|
|
353
|
+
- **Persistence** — pending requests and policies survive server restarts
|
|
353
354
|
|
|
354
355
|
```typescript
|
|
355
|
-
const approvals = new ApprovalEngine(
|
|
356
|
+
const approvals = new ApprovalEngine();
|
|
357
|
+
await approvals.setDb(engineDb); // Wire to database, loads pending requests
|
|
356
358
|
|
|
357
359
|
// Create a policy
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
}
|
|
360
|
+
approvals.addPolicy({
|
|
361
|
+
id: crypto.randomUUID(),
|
|
362
|
+
name: 'External Email Review',
|
|
363
|
+
triggers: { sideEffects: ['email'] },
|
|
364
|
+
approvers: { userIds: [], roles: ['admin'], requireMultiple: 1 },
|
|
365
|
+
timeout: { minutes: 60, defaultAction: 'deny' },
|
|
366
|
+
notify: { channels: ['webhook'] },
|
|
367
|
+
enabled: true,
|
|
368
|
+
}, 'org-id');
|
|
363
369
|
|
|
364
370
|
// Agent requests approval
|
|
365
|
-
const request = await approvals.
|
|
371
|
+
const request = await approvals.requestApproval({
|
|
366
372
|
agentId: 'agent-123',
|
|
367
|
-
|
|
368
|
-
|
|
373
|
+
agentName: 'Support Bot',
|
|
374
|
+
toolId: 'agenticmail_send',
|
|
375
|
+
toolName: 'Send Email',
|
|
376
|
+
riskLevel: 'medium',
|
|
377
|
+
sideEffects: ['email'],
|
|
378
|
+
orgId: 'org-id',
|
|
369
379
|
});
|
|
370
|
-
// → { id: 'req-456', status: 'pending' }
|
|
380
|
+
// → { id: 'req-456', status: 'pending' } — persisted to DB
|
|
371
381
|
|
|
372
382
|
// Admin approves
|
|
373
|
-
|
|
383
|
+
approvals.decide('req-456', { action: 'approve', by: 'admin-1' });
|
|
384
|
+
// → Updates both in-memory and DB
|
|
374
385
|
```
|
|
375
386
|
|
|
376
387
|
### 5. Agent Lifecycle
|
|
377
388
|
|
|
378
|
-
State machine for agent lifecycle management
|
|
389
|
+
State machine for agent lifecycle management. **All state persisted to database.**
|
|
379
390
|
|
|
380
391
|
```
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
392
|
+
draft → configuring → ready → provisioning → deploying → starting → running
|
|
393
|
+
↕
|
|
394
|
+
degraded
|
|
395
|
+
↓
|
|
396
|
+
stopped ← error ← destroying
|
|
384
397
|
```
|
|
385
398
|
|
|
386
|
-
- **
|
|
387
|
-
- **
|
|
388
|
-
- **
|
|
389
|
-
- **
|
|
399
|
+
- **12 states** — draft, configuring, ready, provisioning, deploying, starting, running, degraded, stopped, error, updating, destroying
|
|
400
|
+
- **Health checks** — 30-second polling loop, response time tracking, error rate monitoring
|
|
401
|
+
- **Auto-recovery** — restarts after 5 consecutive health failures
|
|
402
|
+
- **Budget enforcement** — auto-stops when monthly token or cost budget exceeded
|
|
403
|
+
- **State transitions** — every transition persisted to `agent_state_history` table
|
|
404
|
+
- **Persistence** — all agent data written through to `managed_agents` table, loaded from DB on startup
|
|
390
405
|
|
|
391
406
|
```typescript
|
|
392
|
-
const lifecycle = new AgentLifecycleManager(
|
|
407
|
+
const lifecycle = new AgentLifecycleManager({ permissions: permissionEngine });
|
|
408
|
+
await lifecycle.setDb(engineDb); // Wire to database, loads all agents
|
|
393
409
|
|
|
394
|
-
//
|
|
395
|
-
const agent = await lifecycle.
|
|
396
|
-
// →
|
|
410
|
+
// Create an agent
|
|
411
|
+
const agent = await lifecycle.createAgent('org-id', agentConfig, 'admin-1');
|
|
412
|
+
// → Persisted to managed_agents table
|
|
397
413
|
|
|
398
|
-
//
|
|
399
|
-
await lifecycle.
|
|
414
|
+
// Deploy
|
|
415
|
+
await lifecycle.deploy(agent.id, 'admin-1');
|
|
416
|
+
// → Provisions infrastructure, starts container, begins health check loop
|
|
417
|
+
|
|
418
|
+
// Get agent status
|
|
419
|
+
const status = lifecycle.getAgent(agent.id);
|
|
420
|
+
// → { state: 'running', health: { status: 'healthy', uptime: 86400 }, usage: { tokensToday: 150000, costToday: 1.25 } }
|
|
400
421
|
|
|
401
|
-
//
|
|
402
|
-
await lifecycle.
|
|
422
|
+
// Stop
|
|
423
|
+
await lifecycle.stop(agent.id, 'admin-1', 'Maintenance window');
|
|
403
424
|
```
|
|
404
425
|
|
|
405
426
|
### 6. Knowledge Base
|
|
406
427
|
|
|
407
|
-
Document ingestion and retrieval for agent knowledge
|
|
428
|
+
Document ingestion and retrieval for agent knowledge. **All data persisted to database.**
|
|
408
429
|
|
|
409
|
-
- **Upload documents** — PDF, Markdown, plain text, HTML
|
|
410
|
-
- **Chunking** — automatic splitting
|
|
411
|
-
- **
|
|
430
|
+
- **Upload documents** — PDF, Markdown, plain text, HTML, CSV
|
|
431
|
+
- **Chunking** — automatic splitting with configurable chunk size and overlap
|
|
432
|
+
- **Embeddings** — OpenAI text-embedding-3-small (optional, falls back to keyword matching)
|
|
433
|
+
- **Semantic search** — cosine similarity on embeddings, keyword fallback
|
|
434
|
+
- **RAG context** — generates context string for agent prompts with token budget
|
|
412
435
|
- **Per-agent or shared** — knowledge bases can be private or shared across agents
|
|
436
|
+
- **Persistence** — KBs, documents, and chunks persisted to 3 tables. Embeddings stored as binary blobs.
|
|
413
437
|
|
|
414
438
|
```typescript
|
|
415
|
-
const kb = new KnowledgeBaseEngine(
|
|
439
|
+
const kb = new KnowledgeBaseEngine();
|
|
440
|
+
await kb.setDb(engineDb); // Wire to database, loads all KBs + embeddings
|
|
416
441
|
|
|
417
442
|
// Create a knowledge base
|
|
418
|
-
const base =
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
443
|
+
const base = kb.createKnowledgeBase('org-id', {
|
|
444
|
+
name: 'Company Policies',
|
|
445
|
+
agentIds: ['agent-1', 'agent-2'],
|
|
446
|
+
config: { embeddingProvider: 'openai', chunkSize: 512 },
|
|
447
|
+
});
|
|
448
|
+
// → Persisted to knowledge_bases table
|
|
449
|
+
|
|
450
|
+
// Ingest a document
|
|
451
|
+
const doc = await kb.ingestDocument(base.id, {
|
|
452
|
+
name: 'PTO Policy',
|
|
453
|
+
content: '...',
|
|
454
|
+
sourceType: 'text',
|
|
455
|
+
mimeType: 'text/markdown',
|
|
456
|
+
});
|
|
457
|
+
// → Chunked, embedded, persisted to kb_documents + kb_chunks tables
|
|
422
458
|
|
|
423
459
|
// Search
|
|
424
|
-
const results = await kb.search(
|
|
425
|
-
// → [{ chunk: '...',
|
|
460
|
+
const results = await kb.search('agent-1', 'how many vacation days');
|
|
461
|
+
// → [{ chunk: { content: '...' }, document: { name: 'PTO Policy' }, score: 0.92 }]
|
|
462
|
+
|
|
463
|
+
// Get RAG context for an agent prompt
|
|
464
|
+
const context = await kb.getContext('agent-1', 'vacation policy', 2000);
|
|
465
|
+
// → "## Relevant Knowledge Base Context\n\n### From: PTO Policy\n..."
|
|
426
466
|
```
|
|
427
467
|
|
|
428
468
|
### 7. Multi-Tenant Isolation
|
|
429
469
|
|
|
430
|
-
Organizations, plans, and resource limits
|
|
470
|
+
Organizations, plans, and resource limits. **All data persisted to database.**
|
|
471
|
+
|
|
472
|
+
For SaaS deployments, companies sharing infrastructure get strict data separation. For self-hosted / open-source, single-tenant mode uses a default org with no limits.
|
|
431
473
|
|
|
432
474
|
**Plan Tiers:**
|
|
433
475
|
|
|
434
476
|
| Feature | Free | Team | Enterprise | Self-Hosted |
|
|
435
477
|
|---------|------|------|-----------|-------------|
|
|
436
478
|
| Agents | 3 | 25 | Unlimited | Unlimited |
|
|
437
|
-
| Users |
|
|
438
|
-
| Knowledge Bases | 1 | 10 |
|
|
439
|
-
|
|
|
440
|
-
|
|
|
441
|
-
|
|
|
442
|
-
|
|
|
443
|
-
|
|
|
479
|
+
| Users | 5 | 50 | Unlimited | Unlimited |
|
|
480
|
+
| Knowledge Bases | 1 | 10 | 999 | 999 |
|
|
481
|
+
| Storage | 100 MB | 5 GB | 100 GB | Unlimited |
|
|
482
|
+
| Token Budget (monthly) | 1M | 10M | Unlimited | Unlimited |
|
|
483
|
+
| API Calls/min | 30 | 120 | 600 | 999 |
|
|
484
|
+
| SSO | - | Yes | Yes | Yes |
|
|
485
|
+
| Audit Retention | 30 days | 90 days | 365 days | 365 days |
|
|
486
|
+
| Custom Domain | - | - | Yes | Yes |
|
|
487
|
+
| White-Label | - | - | Yes | Yes |
|
|
488
|
+
| Deploy Targets | Docker, Local | Docker, VPS, Fly, Railway, Local | All | All |
|
|
489
|
+
| Custom Skills | - | Yes | Yes | Yes |
|
|
490
|
+
| Data Residency | - | - | Yes | Yes |
|
|
444
491
|
|
|
445
492
|
```typescript
|
|
446
|
-
const tenants = new TenantManager(
|
|
493
|
+
const tenants = new TenantManager();
|
|
494
|
+
await tenants.setDb(engineDb); // Wire to database, loads all orgs
|
|
447
495
|
|
|
448
496
|
// Create an organization
|
|
449
|
-
const org =
|
|
497
|
+
const org = tenants.createOrg({
|
|
498
|
+
name: 'AgenticMail Inc',
|
|
499
|
+
slug: 'agenticmail',
|
|
500
|
+
plan: 'team',
|
|
501
|
+
adminEmail: 'admin@agenticmail.io',
|
|
502
|
+
});
|
|
503
|
+
// → Persisted to organizations table
|
|
504
|
+
|
|
505
|
+
// Check limits before creating an agent
|
|
506
|
+
const check = tenants.checkLimit(org.id, 'maxAgents');
|
|
507
|
+
// → { allowed: true, limit: 25, current: 5, remaining: 20 }
|
|
508
|
+
|
|
509
|
+
// Check feature gates
|
|
510
|
+
tenants.hasFeature(org.id, 'sso'); // → true (team plan)
|
|
511
|
+
tenants.hasFeature(org.id, 'white-label'); // → false (enterprise only)
|
|
512
|
+
tenants.canDeployTo(org.id, 'aws'); // → false (team plan)
|
|
450
513
|
|
|
451
|
-
//
|
|
452
|
-
|
|
453
|
-
// →
|
|
514
|
+
// Record usage
|
|
515
|
+
tenants.recordUsage(org.id, { tokensThisMonth: 50000, costThisMonth: 0.42 });
|
|
516
|
+
// → Persisted to database
|
|
454
517
|
|
|
455
|
-
//
|
|
456
|
-
|
|
457
|
-
// →
|
|
518
|
+
// Upgrade plan
|
|
519
|
+
tenants.changePlan(org.id, 'enterprise');
|
|
520
|
+
// → Limits updated, persisted
|
|
521
|
+
|
|
522
|
+
// Single-tenant mode (self-hosted)
|
|
523
|
+
tenants.createDefaultOrg(); // Creates 'default' org with self-hosted plan
|
|
524
|
+
tenants.isSingleTenant(); // → true
|
|
458
525
|
```
|
|
459
526
|
|
|
460
527
|
### 8. Activity Tracking
|
|
461
528
|
|
|
462
|
-
Real-time monitoring of everything agents do
|
|
529
|
+
Real-time monitoring of everything agents do. **All data persisted to database (fire-and-forget).**
|
|
463
530
|
|
|
464
|
-
- **
|
|
465
|
-
- **
|
|
466
|
-
- **
|
|
467
|
-
- **
|
|
531
|
+
- **Events** — lifecycle state changes, errors, custom events per agent/org
|
|
532
|
+
- **Tool calls** — tool ID, arguments, result, duration, success/failure. Start/end tracked separately.
|
|
533
|
+
- **Conversations** — session-based message recording with role, token count, cost
|
|
534
|
+
- **Timeline** — chronological per-agent daily view of all activity
|
|
535
|
+
- **SSE streaming** — real-time event stream with heartbeats, filterable by org/agent
|
|
536
|
+
- **Aggregations** — event/tool call/conversation counts, cost summaries
|
|
537
|
+
- **In-memory buffer** — recent events kept in memory for fast dashboard queries; all writes fire-and-forget to DB
|
|
468
538
|
|
|
469
539
|
```typescript
|
|
470
|
-
const activity = new ActivityTracker(
|
|
540
|
+
const activity = new ActivityTracker();
|
|
541
|
+
activity.setDb(engineDb); // Wire to database (no loadFromDb — high-volume, uses buffer)
|
|
471
542
|
|
|
472
|
-
// Record
|
|
473
|
-
|
|
543
|
+
// Record an event (fire-and-forget to DB)
|
|
544
|
+
activity.record({
|
|
474
545
|
agentId: 'agent-123',
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
metadata: { to: 'user@example.com' },
|
|
546
|
+
orgId: 'org-456',
|
|
547
|
+
type: 'tool_call',
|
|
548
|
+
data: { tool: 'agenticmail_send', to: 'user@example.com' },
|
|
479
549
|
});
|
|
480
550
|
|
|
481
|
-
//
|
|
482
|
-
const
|
|
483
|
-
|
|
551
|
+
// Track a tool call with start/end
|
|
552
|
+
const callId = activity.startToolCall({
|
|
553
|
+
agentId: 'agent-123', orgId: 'org-456',
|
|
554
|
+
toolId: 'agenticmail_send', toolName: 'Send Email',
|
|
555
|
+
args: { to: 'user@example.com', subject: 'Hello' },
|
|
556
|
+
});
|
|
557
|
+
// ... tool executes ...
|
|
558
|
+
activity.endToolCall(callId, { success: true, result: 'Sent', durationMs: 450 });
|
|
559
|
+
|
|
560
|
+
// Record a conversation message
|
|
561
|
+
activity.recordMessage({
|
|
562
|
+
agentId: 'agent-123', orgId: 'org-456', sessionId: 'sess-789',
|
|
563
|
+
role: 'assistant', content: 'I sent the email.',
|
|
564
|
+
tokenCount: 150, costUsd: 0.001,
|
|
565
|
+
});
|
|
484
566
|
|
|
485
|
-
// Get
|
|
486
|
-
const
|
|
487
|
-
|
|
567
|
+
// Get agent timeline for a specific day
|
|
568
|
+
const timeline = activity.getTimeline('agent-123', '2026-02-18');
|
|
569
|
+
|
|
570
|
+
// Get aggregate stats
|
|
571
|
+
const stats = activity.getStats('org-456');
|
|
572
|
+
// → { events: 1542, toolCalls: 380, conversations: 45 }
|
|
573
|
+
|
|
574
|
+
// Subscribe to real-time events (used by SSE endpoint)
|
|
575
|
+
const unsubscribe = activity.subscribe((event) => {
|
|
576
|
+
console.log('New event:', event.type, event.agentId);
|
|
577
|
+
});
|
|
488
578
|
```
|
|
489
579
|
|
|
490
580
|
### 9. Tool Catalog
|
|
491
581
|
|
|
492
|
-
Maps
|
|
582
|
+
Maps AgenticMail tool IDs to skills:
|
|
493
583
|
|
|
494
|
-
- **
|
|
584
|
+
- **129 total tools** cataloged (24 core platform + 63 AgenticMail MCP + 42 shell commands)
|
|
495
585
|
- Each tool mapped to one or more skills
|
|
496
586
|
- Used by the Permission Engine to resolve skill → tool access
|
|
497
587
|
|
|
498
588
|
```typescript
|
|
499
|
-
import { ALL_TOOLS, getToolsBySkill,
|
|
589
|
+
import { ALL_TOOLS, getToolsBySkill, generateToolPolicy } from '@agenticmail/enterprise';
|
|
500
590
|
|
|
501
591
|
// Get all tools for a skill
|
|
502
592
|
const emailTools = getToolsBySkill('email-management');
|
|
503
593
|
// → ['agenticmail_send', 'agenticmail_inbox', 'agenticmail_reply', ...]
|
|
504
594
|
|
|
505
|
-
// Generate
|
|
506
|
-
const policy =
|
|
595
|
+
// Generate tool policy
|
|
596
|
+
const policy = generateToolPolicy(['email-management', 'web-search']);
|
|
507
597
|
// → { allow: ['agenticmail_send', ...], deny: [...] }
|
|
508
598
|
```
|
|
509
599
|
|
|
510
|
-
### 10.
|
|
600
|
+
### 10. Runtime Hooks
|
|
511
601
|
|
|
512
|
-
|
|
602
|
+
Lifecycle hooks for intercepting agent tool calls at runtime. See `src/runtime/hooks.ts`.
|
|
513
603
|
|
|
514
604
|
- **Permission enforcement** — checks every tool call against the agent's permission profile
|
|
515
605
|
- **Activity logging** — records tool calls to the activity tracker
|
|
@@ -525,7 +615,6 @@ const hook = createEnterpriseHook({
|
|
|
525
615
|
agentId: 'agent-123',
|
|
526
616
|
});
|
|
527
617
|
|
|
528
|
-
// In OpenClaw plugin:
|
|
529
618
|
// hook.beforeToolCall(toolName, args) → { allowed, requiresApproval, reason }
|
|
530
619
|
// hook.afterToolCall(toolName, result, duration) → void (logs activity)
|
|
531
620
|
```
|
|
@@ -561,7 +650,7 @@ Two methods:
|
|
|
561
650
|
**JWT Token** (for dashboard users):
|
|
562
651
|
```
|
|
563
652
|
POST /auth/login
|
|
564
|
-
{ "email": "admin@
|
|
653
|
+
{ "email": "admin@agenticmail.io", "password": "..." }
|
|
565
654
|
→ { "token": "eyJ...", "user": { ... } }
|
|
566
655
|
|
|
567
656
|
# Then:
|
|
@@ -575,53 +664,147 @@ X-API-Key: ek_abc123...
|
|
|
575
664
|
|
|
576
665
|
API keys have scoped permissions and are created through the admin API.
|
|
577
666
|
|
|
667
|
+
### Auth Endpoints
|
|
668
|
+
|
|
669
|
+
| Method | Path | Description |
|
|
670
|
+
|--------|------|-------------|
|
|
671
|
+
| POST | `/auth/login` | Email/password login (sets httpOnly cookies + returns JWT) |
|
|
672
|
+
| POST | `/auth/refresh` | Refresh session using refresh token/cookie |
|
|
673
|
+
| GET | `/auth/me` | Get current authenticated user |
|
|
674
|
+
| POST | `/auth/logout` | Clear session cookies |
|
|
675
|
+
| POST | `/auth/saml/callback` | SAML 2.0 assertion callback (stub — 501) |
|
|
676
|
+
| GET | `/auth/saml/metadata` | SAML SP metadata (stub — 501) |
|
|
677
|
+
| GET | `/auth/oidc/authorize` | OIDC authorization redirect (stub — 501) |
|
|
678
|
+
| GET | `/auth/oidc/callback` | OIDC callback (stub — 501) |
|
|
679
|
+
|
|
578
680
|
### Admin Endpoints
|
|
579
681
|
|
|
580
682
|
| Method | Path | Description |
|
|
581
683
|
|--------|------|-------------|
|
|
582
|
-
| GET | `/api/stats` | Dashboard statistics |
|
|
583
|
-
| GET | `/api/agents` | List agents |
|
|
584
|
-
| POST | `/api/agents` | Create agent |
|
|
684
|
+
| GET | `/api/stats` | Dashboard statistics (agents, users, keys count) |
|
|
685
|
+
| GET | `/api/agents` | List agents (supports `status`, `limit`, `offset`) |
|
|
686
|
+
| POST | `/api/agents` | Create agent (validates name, email, role) |
|
|
585
687
|
| GET | `/api/agents/:id` | Get agent details |
|
|
586
|
-
|
|
|
587
|
-
|
|
|
588
|
-
|
|
|
589
|
-
|
|
|
590
|
-
| GET | `/api/
|
|
591
|
-
| POST | `/api/
|
|
592
|
-
|
|
|
593
|
-
|
|
|
594
|
-
|
|
|
688
|
+
| PATCH | `/api/agents/:id` | Update agent (name, email, role, status) |
|
|
689
|
+
| POST | `/api/agents/:id/archive` | Archive agent |
|
|
690
|
+
| POST | `/api/agents/:id/restore` | Restore archived agent |
|
|
691
|
+
| DELETE | `/api/agents/:id` | Permanently delete agent (admin only) |
|
|
692
|
+
| GET | `/api/users` | List users (admin only) |
|
|
693
|
+
| POST | `/api/users` | Create user (admin only, validates email/role) |
|
|
694
|
+
| PATCH | `/api/users/:id` | Update user (admin only) |
|
|
695
|
+
| DELETE | `/api/users/:id` | Delete user (owner only, cannot delete self) |
|
|
696
|
+
| GET | `/api/audit` | Query audit log (supports actor, action, resource, date range, pagination) |
|
|
697
|
+
| GET | `/api/api-keys` | List API keys (admin only, hashes redacted) |
|
|
698
|
+
| POST | `/api/api-keys` | Create API key (admin only, returns plaintext once) |
|
|
699
|
+
| DELETE | `/api/api-keys/:id` | Revoke API key (admin only) |
|
|
700
|
+
| GET | `/api/rules` | List email rules (optional `agentId` filter) |
|
|
701
|
+
| POST | `/api/rules` | Create email rule |
|
|
702
|
+
| PATCH | `/api/rules/:id` | Update email rule |
|
|
703
|
+
| DELETE | `/api/rules/:id` | Delete email rule |
|
|
704
|
+
| GET | `/api/settings` | Get company settings (sensitive fields redacted) |
|
|
705
|
+
| PATCH | `/api/settings` | Update company settings (admin only) |
|
|
706
|
+
| GET | `/api/retention` | Get data retention policy (admin only) |
|
|
707
|
+
| PUT | `/api/retention` | Set data retention policy (owner only) |
|
|
595
708
|
|
|
596
709
|
### Engine Endpoints
|
|
597
710
|
|
|
711
|
+
**Skills & Permissions:**
|
|
712
|
+
|
|
598
713
|
| Method | Path | Description |
|
|
599
714
|
|--------|------|-------------|
|
|
600
|
-
| GET | `/api/engine/skills` | List all 38 skills |
|
|
715
|
+
| GET | `/api/engine/skills` | List all 38 skills with categories |
|
|
716
|
+
| GET | `/api/engine/skills/by-category` | Skills grouped by category |
|
|
601
717
|
| GET | `/api/engine/skills/:id` | Get skill details + tools |
|
|
602
718
|
| GET | `/api/engine/profiles/presets` | List 5 permission presets |
|
|
603
719
|
| GET | `/api/engine/profiles/:agentId` | Get agent's permission profile |
|
|
604
720
|
| PUT | `/api/engine/profiles/:agentId` | Update agent's permission profile |
|
|
605
721
|
| POST | `/api/engine/profiles/:agentId/apply-preset` | Apply a preset to agent |
|
|
606
|
-
| POST | `/api/engine/permissions/check` | Check tool
|
|
722
|
+
| POST | `/api/engine/permissions/check` | Check if agent can use a tool |
|
|
607
723
|
| GET | `/api/engine/permissions/:agentId/tools` | List tools available to agent |
|
|
608
|
-
| GET | `/api/engine/permissions/:agentId/policy` | Generate
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
|
613
|
-
|
|
614
|
-
| POST | `/api/engine/
|
|
615
|
-
| GET | `/api/engine/
|
|
616
|
-
|
|
|
617
|
-
|
|
|
618
|
-
| POST | `/api/engine/agents/:id/
|
|
619
|
-
|
|
|
724
|
+
| GET | `/api/engine/permissions/:agentId/policy` | Generate tool policy |
|
|
725
|
+
|
|
726
|
+
**Agent Lifecycle:**
|
|
727
|
+
|
|
728
|
+
| Method | Path | Description |
|
|
729
|
+
|--------|------|-------------|
|
|
730
|
+
| POST | `/api/engine/agents` | Create engine agent (orgId, config, createdBy) |
|
|
731
|
+
| GET | `/api/engine/agents` | List engine agents (requires `orgId` query) |
|
|
732
|
+
| GET | `/api/engine/agents/:id` | Get engine agent with state, health, usage |
|
|
733
|
+
| PATCH | `/api/engine/agents/:id/config` | Update agent config |
|
|
734
|
+
| POST | `/api/engine/agents/:id/deploy` | Deploy agent to target infrastructure |
|
|
735
|
+
| POST | `/api/engine/agents/:id/stop` | Stop a running agent |
|
|
736
|
+
| POST | `/api/engine/agents/:id/restart` | Restart agent |
|
|
737
|
+
| POST | `/api/engine/agents/:id/hot-update` | Hot-update config without restart |
|
|
738
|
+
| DELETE | `/api/engine/agents/:id` | Destroy agent and clean up resources |
|
|
739
|
+
| GET | `/api/engine/agents/:id/usage` | Agent resource usage, health, state |
|
|
740
|
+
| GET | `/api/engine/usage/:orgId` | Aggregate org usage across all agents |
|
|
741
|
+
|
|
742
|
+
**Config Generation:**
|
|
743
|
+
|
|
744
|
+
| Method | Path | Description |
|
|
745
|
+
|--------|------|-------------|
|
|
746
|
+
| POST | `/api/engine/config/workspace` | Generate workspace files (SOUL.md, TOOLS.md, etc.) |
|
|
747
|
+
| POST | `/api/engine/config/gateway` | Generate gateway config |
|
|
748
|
+
| POST | `/api/engine/config/docker-compose` | Generate docker-compose.yml |
|
|
749
|
+
| POST | `/api/engine/config/systemd` | Generate systemd service unit |
|
|
750
|
+
| POST | `/api/engine/config/deploy-script` | Generate VPS deploy script |
|
|
751
|
+
|
|
752
|
+
**Knowledge Base:**
|
|
753
|
+
|
|
754
|
+
| Method | Path | Description |
|
|
755
|
+
|--------|------|-------------|
|
|
620
756
|
| POST | `/api/engine/knowledge-bases` | Create knowledge base |
|
|
621
|
-
|
|
|
622
|
-
| GET | `/api/engine/knowledge-bases/:id
|
|
623
|
-
|
|
|
624
|
-
|
|
|
757
|
+
| GET | `/api/engine/knowledge-bases` | List KBs (filter by `orgId` or `agentId`) |
|
|
758
|
+
| GET | `/api/engine/knowledge-bases/:id` | Get KB details with documents |
|
|
759
|
+
| POST | `/api/engine/knowledge-bases/:id/documents` | Ingest document (chunked + embedded) |
|
|
760
|
+
| DELETE | `/api/engine/knowledge-bases/:kbId/documents/:docId` | Delete document |
|
|
761
|
+
| POST | `/api/engine/knowledge-bases/search` | Semantic search across KBs |
|
|
762
|
+
| POST | `/api/engine/knowledge-bases/context` | Get RAG context for agent prompt |
|
|
763
|
+
| DELETE | `/api/engine/knowledge-bases/:id` | Delete knowledge base |
|
|
764
|
+
|
|
765
|
+
**Organizations (Tenants):**
|
|
766
|
+
|
|
767
|
+
| Method | Path | Description |
|
|
768
|
+
|--------|------|-------------|
|
|
769
|
+
| POST | `/api/engine/orgs` | Create organization |
|
|
770
|
+
| GET | `/api/engine/orgs` | List all organizations |
|
|
771
|
+
| GET | `/api/engine/orgs/:id` | Get organization details |
|
|
772
|
+
| GET | `/api/engine/orgs/slug/:slug` | Get organization by slug |
|
|
773
|
+
| POST | `/api/engine/orgs/:id/check-limit` | Check plan resource limits |
|
|
774
|
+
| POST | `/api/engine/orgs/:id/check-feature` | Check feature gate |
|
|
775
|
+
| POST | `/api/engine/orgs/:id/change-plan` | Change organization plan |
|
|
776
|
+
|
|
777
|
+
**Approvals:**
|
|
778
|
+
|
|
779
|
+
| Method | Path | Description |
|
|
780
|
+
|--------|------|-------------|
|
|
781
|
+
| GET | `/api/engine/approvals/pending` | List pending approvals (optional `agentId` filter) |
|
|
782
|
+
| GET | `/api/engine/approvals/history` | Approval history (supports `agentId`, `limit`, `offset`) |
|
|
783
|
+
| GET | `/api/engine/approvals/:id` | Get approval request details |
|
|
784
|
+
| POST | `/api/engine/approvals/:id/decide` | Approve or reject a request |
|
|
785
|
+
| GET | `/api/engine/approvals/policies` | List approval policies |
|
|
786
|
+
| POST | `/api/engine/approvals/policies` | Create approval policy |
|
|
787
|
+
| DELETE | `/api/engine/approvals/policies/:id` | Delete approval policy |
|
|
788
|
+
|
|
789
|
+
**Activity & Monitoring:**
|
|
790
|
+
|
|
791
|
+
| Method | Path | Description |
|
|
792
|
+
|--------|------|-------------|
|
|
793
|
+
| GET | `/api/engine/activity/events` | Activity events (filter by `agentId`, `orgId`, `since`, `limit`) |
|
|
794
|
+
| GET | `/api/engine/activity/tool-calls` | Tool call records (filter by `agentId`, `orgId`, `toolId`) |
|
|
795
|
+
| GET | `/api/engine/activity/conversation/:sessionId` | Conversation entries for a session |
|
|
796
|
+
| GET | `/api/engine/activity/timeline/:agentId/:date` | Daily timeline for an agent |
|
|
797
|
+
| GET | `/api/engine/activity/stats` | Aggregate activity stats (optional `orgId`) |
|
|
798
|
+
| GET | `/api/engine/activity/stream` | SSE real-time event stream (filter by `orgId`, `agentId`) |
|
|
799
|
+
|
|
800
|
+
**Dashboard Stats & Schema:**
|
|
801
|
+
|
|
802
|
+
| Method | Path | Description |
|
|
803
|
+
|--------|------|-------------|
|
|
804
|
+
| GET | `/api/engine/stats/:orgId` | Org dashboard stats (agents, usage, real-time) |
|
|
805
|
+
| POST | `/api/engine/schema/tables` | Create dynamic `ext_*` table |
|
|
806
|
+
| GET | `/api/engine/schema/tables` | List dynamic tables |
|
|
807
|
+
| POST | `/api/engine/schema/query` | Query dynamic tables (SELECT any, mutations ext_* only) |
|
|
625
808
|
|
|
626
809
|
---
|
|
627
810
|
|
|
@@ -665,17 +848,17 @@ Errors:
|
|
|
665
848
|
|
|
666
849
|
### AgenticMail Cloud
|
|
667
850
|
|
|
668
|
-
Managed hosting on Fly.io infrastructure. Instant URL at `company.agenticmail.
|
|
851
|
+
Managed hosting on Fly.io infrastructure. Instant URL at `company.agenticmail.io`.
|
|
669
852
|
|
|
670
853
|
```bash
|
|
671
854
|
npx @agenticmail/enterprise
|
|
672
855
|
# → Select "AgenticMail Cloud"
|
|
673
|
-
# → Dashboard live at https://
|
|
856
|
+
# → Dashboard live at https://agenticmail-inc.agenticmail.io
|
|
674
857
|
```
|
|
675
858
|
|
|
676
859
|
Optional custom domain via CNAME:
|
|
677
860
|
```
|
|
678
|
-
agents.
|
|
861
|
+
agents.agenticmail.io → agenticmail-inc.agenticmail.io
|
|
679
862
|
```
|
|
680
863
|
|
|
681
864
|
### Fly.io
|
|
@@ -734,7 +917,7 @@ const server = createServer({
|
|
|
734
917
|
jwtSecret: 'your-secret-here',
|
|
735
918
|
|
|
736
919
|
// Optional
|
|
737
|
-
corsOrigins: ['https://app.
|
|
920
|
+
corsOrigins: ['https://app.agenticmail.io'],
|
|
738
921
|
rateLimit: 120, // requests per minute per IP
|
|
739
922
|
trustedProxies: ['10.0.0.0/8'],
|
|
740
923
|
logging: true,
|
|
@@ -818,12 +1001,12 @@ import {
|
|
|
818
1001
|
// Tool catalog
|
|
819
1002
|
ALL_TOOLS,
|
|
820
1003
|
getToolsBySkill,
|
|
821
|
-
|
|
822
|
-
|
|
1004
|
+
generateToolPolicy,
|
|
1005
|
+
|
|
823
1006
|
// Engine persistence
|
|
824
1007
|
EngineDatabase,
|
|
825
|
-
|
|
826
|
-
//
|
|
1008
|
+
|
|
1009
|
+
// Runtime hooks & bridge
|
|
827
1010
|
createEnterpriseHook,
|
|
828
1011
|
createAgenticMailBridge,
|
|
829
1012
|
|
|
@@ -859,67 +1042,65 @@ import {
|
|
|
859
1042
|
## Project Structure
|
|
860
1043
|
|
|
861
1044
|
```
|
|
862
|
-
|
|
863
|
-
├── cli.ts
|
|
864
|
-
├── server.ts
|
|
865
|
-
├── index.ts
|
|
866
|
-
│
|
|
867
|
-
├── setup/ # Setup wizard modules
|
|
868
|
-
│ ├── index.ts # Wizard orchestrator
|
|
869
|
-
│ ├── company.ts # Step 1: Company info prompts
|
|
870
|
-
│ ├── database.ts # Step 2: Database selection + config
|
|
871
|
-
│ ├── deployment.ts # Step 3: Deployment target
|
|
872
|
-
│ ├── domain.ts # Step 4: Custom domain
|
|
873
|
-
│ └── provision.ts # Provisioning logic (DB, admin, deploy)
|
|
1045
|
+
enterprise/src/
|
|
1046
|
+
├── cli.ts # CLI entry point (npx @agenticmail/enterprise)
|
|
1047
|
+
├── server.ts # Hono server: middleware, auth, route mounting
|
|
1048
|
+
├── index.ts # Public API exports
|
|
874
1049
|
│
|
|
875
1050
|
├── auth/
|
|
876
|
-
│ └── routes.ts
|
|
1051
|
+
│ └── routes.ts # JWT login, cookies, refresh, SAML/OIDC stubs
|
|
877
1052
|
│
|
|
878
1053
|
├── admin/
|
|
879
|
-
│ └── routes.ts
|
|
1054
|
+
│ └── routes.ts # Users, Agents, API Keys, Audit, Settings, Rules CRUD
|
|
880
1055
|
│
|
|
881
1056
|
├── middleware/
|
|
882
|
-
│ └── index.ts
|
|
1057
|
+
│ └── index.ts # Rate limiter, security headers, audit logger, RBAC, error handler
|
|
883
1058
|
│
|
|
884
|
-
├──
|
|
885
|
-
│
|
|
886
|
-
│ ├── factory.ts # createAdapter() + getSupportedDatabases()
|
|
887
|
-
│ ├── sql-schema.ts # Shared SQL DDL
|
|
888
|
-
│ ├── sqlite.ts
|
|
889
|
-
│ ├── postgres.ts
|
|
890
|
-
│ ├── mysql.ts
|
|
891
|
-
│ ├── mongodb.ts
|
|
892
|
-
│ ├── dynamodb.ts
|
|
893
|
-
│ └── turso.ts
|
|
1059
|
+
├── lib/
|
|
1060
|
+
│ └── resilience.ts # CircuitBreaker, HealthMonitor, withRetry, RateLimiter
|
|
894
1061
|
│
|
|
895
|
-
├──
|
|
896
|
-
│ ├──
|
|
897
|
-
│ ├──
|
|
898
|
-
│ ├──
|
|
899
|
-
│ ├──
|
|
900
|
-
│ ├──
|
|
901
|
-
│ ├──
|
|
902
|
-
│ ├──
|
|
903
|
-
│ ├──
|
|
904
|
-
│
|
|
905
|
-
│ ├── tool-catalog.ts # Tool ID catalog
|
|
906
|
-
│ ├── openclaw-hook.ts # OpenClaw integration
|
|
907
|
-
│ ├── agenticmail-bridge.ts # AgenticMail integration
|
|
908
|
-
│ ├── db-adapter.ts # Engine DB persistence
|
|
909
|
-
│ ├── db-schema.ts # Engine DDL + migrations
|
|
910
|
-
│ └── routes.ts # Engine REST API
|
|
1062
|
+
├── db/ # Admin database adapters (6 backends)
|
|
1063
|
+
│ ├── adapter.ts # Abstract DatabaseAdapter interface
|
|
1064
|
+
│ ├── factory.ts # createAdapter() factory
|
|
1065
|
+
│ ├── sql-schema.ts # Shared SQL DDL + migrations
|
|
1066
|
+
│ ├── sqlite.ts # SQLite (better-sqlite3)
|
|
1067
|
+
│ ├── postgres.ts # PostgreSQL (pg)
|
|
1068
|
+
│ ├── mysql.ts # MySQL (mysql2)
|
|
1069
|
+
│ ├── mongodb.ts # MongoDB
|
|
1070
|
+
│ ├── dynamodb.ts # DynamoDB (@aws-sdk)
|
|
1071
|
+
│ └── turso.ts # Turso/LibSQL (@libsql/client)
|
|
911
1072
|
│
|
|
912
|
-
├──
|
|
913
|
-
│ ├──
|
|
914
|
-
│
|
|
1073
|
+
├── engine/ # Agent management platform (11 subsystems)
|
|
1074
|
+
│ ├── index.ts # Public re-exports
|
|
1075
|
+
│ ├── routes.ts # All engine REST endpoints (50+)
|
|
1076
|
+
│ ├── skills.ts # 38 skills, 5 presets, PermissionEngine (DB-persisted)
|
|
1077
|
+
│ ├── agent-config.ts # AgentConfigGenerator: workspace, gateway, docker-compose, systemd
|
|
1078
|
+
│ ├── deployer.ts # DeploymentEngine: Docker, VPS/SSH, Fly.io, Railway
|
|
1079
|
+
│ ├── lifecycle.ts # AgentLifecycleManager: state machine, health checks (DB-persisted)
|
|
1080
|
+
│ ├── approvals.ts # ApprovalEngine: policies, requests, decisions (DB-persisted)
|
|
1081
|
+
│ ├── knowledge.ts # KnowledgeBaseEngine: docs, chunking, embeddings, RAG (DB-persisted)
|
|
1082
|
+
│ ├── tenant.ts # TenantManager: orgs, plans, limits, usage (DB-persisted)
|
|
1083
|
+
│ ├── activity.ts # ActivityTracker: events, tool calls, conversations, SSE (DB-persisted)
|
|
1084
|
+
│ ├── tool-catalog.ts # 167 tool IDs mapped to skills
|
|
1085
|
+
│ ├── runtime/ # Runtime hooks (permission enforcement, activity logging)
|
|
1086
|
+
│ ├── agenticmail-bridge.ts # Bridge to AgenticMail API
|
|
1087
|
+
│ ├── db-adapter.ts # EngineDatabase wrapper (all CRUD implemented)
|
|
1088
|
+
│ └── db-schema.ts # Engine DDL: 15 tables, versioned migrations, dialect converters
|
|
915
1089
|
│
|
|
916
|
-
├──
|
|
917
|
-
│
|
|
1090
|
+
├── deploy/ # Cloud deployment
|
|
1091
|
+
│ ├── fly.ts # Fly.io Machines API
|
|
1092
|
+
│ └── managed.ts # Managed cloud provisioning
|
|
918
1093
|
│
|
|
919
|
-
├──
|
|
920
|
-
│
|
|
1094
|
+
├── setup/ # CLI setup wizard
|
|
1095
|
+
│ ├── index.ts # Wizard orchestrator
|
|
1096
|
+
│ ├── company.ts # Company info prompts
|
|
1097
|
+
│ ├── database.ts # Database selection
|
|
1098
|
+
│ ├── deployment.ts # Deployment target
|
|
1099
|
+
│ ├── domain.ts # Custom domain
|
|
1100
|
+
│ └── provision.ts # Provisioning logic
|
|
921
1101
|
│
|
|
922
|
-
└──
|
|
1102
|
+
└── dashboard/
|
|
1103
|
+
└── index.html # Admin UI (single HTML, React 18 from CDN)
|
|
923
1104
|
```
|
|
924
1105
|
|
|
925
1106
|
---
|