@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/ARCHITECTURE.md
CHANGED
|
@@ -1,183 +1,200 @@
|
|
|
1
1
|
# AgenticMail Enterprise Architecture
|
|
2
2
|
|
|
3
3
|
## Vision
|
|
4
|
-
|
|
4
|
+
Deploy and manage AI agents as employees within organizations. Companies configure agent skills, permissions, and deployment targets from a web dashboard. Agents run in Docker containers, VPS servers, or cloud platforms (Fly.io, Railway) — fully provisioned, monitored, and governed.
|
|
5
5
|
|
|
6
6
|
## Core Principles
|
|
7
|
-
1. **
|
|
8
|
-
2. **Bring your own
|
|
9
|
-
3. **
|
|
10
|
-
4. **
|
|
11
|
-
5. **
|
|
7
|
+
1. **Bring your own database**: SQLite, Postgres, MySQL, MongoDB, DynamoDB, Turso — any SQL or NoSQL backend
|
|
8
|
+
2. **Bring your own cloud**: Docker, VPS (SSH), Fly.io, Railway, or local development
|
|
9
|
+
3. **Write-through persistence**: All engine state lives in memory for fast reads, with every mutation persisted to the database. On startup, state is hydrated from DB.
|
|
10
|
+
4. **Single-file dashboard**: React 18 admin UI served as a single HTML file — no build step, no node_modules on the frontend
|
|
11
|
+
5. **Hono API server**: Lightweight, fast HTTP framework with full middleware stack
|
|
12
12
|
|
|
13
|
-
##
|
|
13
|
+
## System Architecture
|
|
14
14
|
|
|
15
15
|
```
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
16
|
+
┌──────────────────────────────────────────────────────────────┐
|
|
17
|
+
│ Dashboard (Web UI) │
|
|
18
|
+
│ Single HTML · React 18 · CDN-loaded │
|
|
19
|
+
└─────────────────────────┬────────────────────────────────────┘
|
|
20
|
+
│ HTTP/SSE
|
|
21
|
+
┌─────────────────────────▼────────────────────────────────────┐
|
|
22
|
+
│ Hono API Server (server.ts) │
|
|
23
|
+
│ │
|
|
24
|
+
│ ┌──────────┐ ┌───────────┐ ┌────────────────────────────┐ │
|
|
25
|
+
│ │ Auth │ │ Admin │ │ Engine │ │
|
|
26
|
+
│ │ /auth/* │ │ /api/* │ │ /api/engine/* │ │
|
|
27
|
+
│ │ │ │ │ │ │ │
|
|
28
|
+
│ │ JWT │ │ Users │ │ Skills · PermissionEngine │ │
|
|
29
|
+
│ │ Login │ │ Agents │ │ AgentConfigGenerator │ │
|
|
30
|
+
│ │ Cookies │ │ Audit │ │ DeploymentEngine │ │
|
|
31
|
+
│ │ API Keys│ │ Keys │ │ ApprovalEngine (DB) │ │
|
|
32
|
+
│ │ SAML* │ │ Settings │ │ AgentLifecycleManager (DB) │ │
|
|
33
|
+
│ │ OIDC* │ │ Rules │ │ KnowledgeBaseEngine (DB) │ │
|
|
34
|
+
│ └──────────┘ └───────────┘ │ TenantManager (DB) │ │
|
|
35
|
+
│ │ ActivityTracker (DB) │ │
|
|
36
|
+
│ │ Runtime Hooks │ │
|
|
37
|
+
│ │ AgenticMail Bridge │ │
|
|
38
|
+
│ └────────────────────────────┘ │
|
|
39
|
+
│ │
|
|
40
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
41
|
+
│ │ Middleware Stack │ │
|
|
42
|
+
│ │ Request ID · CORS · Rate Limit · Security Headers │ │
|
|
43
|
+
│ │ Error Handler · Audit Logger · RBAC (requireRole) │ │
|
|
44
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
45
|
+
│ │
|
|
46
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
47
|
+
│ │ Resilience Layer │ │
|
|
48
|
+
│ │ CircuitBreaker · HealthMonitor · withRetry │ │
|
|
49
|
+
│ │ RateLimiter · KeyedRateLimiter │ │
|
|
50
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
51
|
+
└─────────────────────────┬────────────────────────────────────┘
|
|
52
|
+
│
|
|
53
|
+
┌───────────────┼───────────────┐
|
|
54
|
+
▼ ▼ ▼
|
|
55
|
+
┌─────────────┐ ┌──────────────┐ ┌──────────────┐
|
|
56
|
+
│ Admin DB │ │ Engine DB │ │ Deployer │
|
|
57
|
+
│ (adapter.ts)│ │ (db-adapter) │ │ │
|
|
58
|
+
│ │ │ │ │ Docker │
|
|
59
|
+
│ Users │ │ 15 tables: │ │ SSH/VPS │
|
|
60
|
+
│ Agents │ │ managed_agents│ │ Fly.io │
|
|
61
|
+
│ API Keys │ │ state_history │ │ Railway │
|
|
62
|
+
│ Audit Log │ │ permission_ │ │ │
|
|
63
|
+
│ Settings │ │ profiles │ │ execCommand │
|
|
64
|
+
│ Rules │ │ organizations│ │ execSSH │
|
|
65
|
+
│ │ │ knowledge_ │ │ │
|
|
66
|
+
│ 6 backends: │ │ bases │ └──────────────┘
|
|
67
|
+
│ SQLite │ │ kb_documents │
|
|
68
|
+
│ Postgres │ │ kb_chunks │
|
|
69
|
+
│ MySQL │ │ tool_calls │
|
|
70
|
+
│ MongoDB │ │ activity_ │
|
|
71
|
+
│ DynamoDB │ │ events │
|
|
72
|
+
│ Turso │ │ conversations│
|
|
73
|
+
│ │ │ approval_ │
|
|
74
|
+
└─────────────┘ │ requests │
|
|
75
|
+
│ approval_ │
|
|
76
|
+
│ policies │
|
|
77
|
+
└──────────────┘
|
|
78
|
+
|
|
79
|
+
* SAML/OIDC = stubs returning 501 (planned)
|
|
56
80
|
```
|
|
57
81
|
|
|
58
|
-
##
|
|
82
|
+
## Engine Persistence Model
|
|
59
83
|
|
|
84
|
+
All engine modules use a **write-through cache** pattern:
|
|
85
|
+
|
|
86
|
+
1. **In-memory Maps** for fast reads (sub-millisecond)
|
|
87
|
+
2. **Every write** also persists to the database via `EngineDatabase`
|
|
88
|
+
3. **On startup**, `loadFromDb()` hydrates all Maps from the database
|
|
89
|
+
4. **DB writes are fire-and-forget** for activity/events (non-blocking via `.catch(() => {})`)
|
|
90
|
+
5. **DB writes are awaited** for agents/orgs/knowledge bases (data integrity)
|
|
91
|
+
|
|
92
|
+
### Wiring Flow
|
|
60
93
|
```
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
│ │ ├── adapter.ts # Abstract DB interface
|
|
70
|
-
│ │ ├── postgres.ts # PostgreSQL adapter
|
|
71
|
-
│ │ ├── mysql.ts # MySQL adapter
|
|
72
|
-
│ │ ├── mongodb.ts # MongoDB adapter
|
|
73
|
-
│ │ ├── sqlite.ts # SQLite adapter (dev/small teams)
|
|
74
|
-
│ │ ├── turso.ts # Turso/LibSQL adapter
|
|
75
|
-
│ │ ├── dynamodb.ts # DynamoDB adapter
|
|
76
|
-
│ │ └── migrations/ # Schema migrations (per adapter)
|
|
77
|
-
│ ├── auth/
|
|
78
|
-
│ │ ├── saml.ts # SAML 2.0 SP
|
|
79
|
-
│ │ ├── oidc.ts # OAuth 2.0 / OpenID Connect
|
|
80
|
-
│ │ ├── scim.ts # SCIM provisioning
|
|
81
|
-
│ │ ├── api-keys.ts # API key management
|
|
82
|
-
│ │ └── sessions.ts # Session management
|
|
83
|
-
│ ├── admin/
|
|
84
|
-
│ │ ├── dashboard.ts # Admin API routes
|
|
85
|
-
│ │ ├── agents.ts # Agent CRUD
|
|
86
|
-
│ │ ├── audit.ts # Audit log viewer
|
|
87
|
-
│ │ ├── rules.ts # Email rules management
|
|
88
|
-
│ │ ├── compliance.ts # DLP, retention policies
|
|
89
|
-
│ │ └── billing.ts # Usage tracking, plans
|
|
90
|
-
│ ├── deploy/
|
|
91
|
-
│ │ ├── fly.ts # Fly.io deployment
|
|
92
|
-
│ │ ├── railway.ts # Railway deployment
|
|
93
|
-
│ │ ├── render.ts # Render deployment
|
|
94
|
-
│ │ ├── docker.ts # Docker/self-hosted
|
|
95
|
-
│ │ └── managed.ts # AgenticMail Cloud (our infra)
|
|
96
|
-
│ ├── ui/ # Admin dashboard (React/Next.js)
|
|
97
|
-
│ │ ├── app/
|
|
98
|
-
│ │ │ ├── layout.tsx
|
|
99
|
-
│ │ │ ├── page.tsx # Dashboard home
|
|
100
|
-
│ │ │ ├── agents/ # Agent management
|
|
101
|
-
│ │ │ ├── audit/ # Audit logs
|
|
102
|
-
│ │ │ ├── settings/ # Company settings
|
|
103
|
-
│ │ │ ├── auth/ # SSO config
|
|
104
|
-
│ │ │ └── compliance/ # DLP, retention
|
|
105
|
-
│ │ └── components/
|
|
106
|
-
│ └── server.ts # Express/Hono server (API + UI)
|
|
107
|
-
└── package.json
|
|
94
|
+
server.ts
|
|
95
|
+
└─ setEngineDb(engineDb) // Called on first /api/engine/* request
|
|
96
|
+
├─ lifecycle.setDb(db) // Loads managed_agents into memory
|
|
97
|
+
├─ approvals.setDb(db) // Loads pending approval_requests
|
|
98
|
+
├─ knowledgeBase.setDb(db) // Loads knowledge_bases + documents + chunks
|
|
99
|
+
├─ activity.setDb(db) // Stores reference for fire-and-forget writes
|
|
100
|
+
├─ tenants.setDb(db) // Loads organizations into memory
|
|
101
|
+
└─ permissionEngine.setDb(db) // Stores reference for profile persistence
|
|
108
102
|
```
|
|
109
103
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
// Agents
|
|
120
|
-
createAgent(agent: AgentInput): Promise<Agent>;
|
|
121
|
-
getAgent(id: string): Promise<Agent | null>;
|
|
122
|
-
listAgents(filters?: AgentFilters): Promise<Agent[]>;
|
|
123
|
-
updateAgent(id: string, updates: Partial<Agent>): Promise<Agent>;
|
|
124
|
-
deleteAgent(id: string): Promise<void>;
|
|
125
|
-
archiveAgent(id: string): Promise<DeletionReport>;
|
|
126
|
-
|
|
127
|
-
// Email
|
|
128
|
-
storeEmail(email: StoredEmail): Promise<void>;
|
|
129
|
-
getEmail(uid: number): Promise<StoredEmail | null>;
|
|
130
|
-
searchEmails(query: SearchQuery): Promise<StoredEmail[]>;
|
|
131
|
-
|
|
132
|
-
// Audit
|
|
133
|
-
logEvent(event: AuditEvent): Promise<void>;
|
|
134
|
-
queryAuditLog(filters: AuditFilters): Promise<AuditEvent[]>;
|
|
135
|
-
|
|
136
|
-
// Auth
|
|
137
|
-
createUser(user: UserInput): Promise<User>;
|
|
138
|
-
getUser(id: string): Promise<User | null>;
|
|
139
|
-
getUserByEmail(email: string): Promise<User | null>;
|
|
140
|
-
|
|
141
|
-
// API Keys
|
|
142
|
-
createApiKey(key: ApiKeyInput): Promise<ApiKey>;
|
|
143
|
-
validateApiKey(key: string): Promise<ApiKey | null>;
|
|
144
|
-
revokeApiKey(id: string): Promise<void>;
|
|
145
|
-
|
|
146
|
-
// Rules & Compliance
|
|
147
|
-
createRule(rule: RuleInput): Promise<Rule>;
|
|
148
|
-
getRules(): Promise<Rule[]>;
|
|
149
|
-
getRetentionPolicy(): Promise<RetentionPolicy>;
|
|
150
|
-
setRetentionPolicy(policy: RetentionPolicy): Promise<void>;
|
|
151
|
-
}
|
|
104
|
+
### Migration System
|
|
105
|
+
- 15 engine tables defined in `db-schema.ts`
|
|
106
|
+
- Versioned migrations with tracking table `engine_migrations`
|
|
107
|
+
- Auto-converts SQLite DDL to Postgres/MySQL dialect
|
|
108
|
+
- NoSQL support via optional `nosql()` migration callbacks for MongoDB/DynamoDB
|
|
109
|
+
|
|
110
|
+
## Agent Lifecycle State Machine
|
|
111
|
+
|
|
152
112
|
```
|
|
113
|
+
draft → configuring → ready → provisioning → deploying → starting → running
|
|
114
|
+
↕
|
|
115
|
+
degraded
|
|
116
|
+
↓
|
|
117
|
+
stopped ← error ← destroying
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
- **12 states**: draft, configuring, ready, provisioning, deploying, starting, running, degraded, stopped, error, updating, destroying
|
|
121
|
+
- **Health check loop**: 30-second interval when running/degraded
|
|
122
|
+
- **Auto-recovery**: Restarts after 5 consecutive health failures
|
|
123
|
+
- **Budget enforcement**: Auto-stop when monthly token/cost budget exceeded
|
|
124
|
+
- **State transitions persisted** to `agent_state_history` table
|
|
125
|
+
|
|
126
|
+
## File Structure
|
|
127
|
+
|
|
128
|
+
```
|
|
129
|
+
enterprise/src/
|
|
130
|
+
├── cli.ts # CLI entry point (npx @agenticmail/enterprise)
|
|
131
|
+
├── server.ts # Hono server: middleware, auth, route mounting
|
|
132
|
+
├── index.ts # Public API exports
|
|
133
|
+
│
|
|
134
|
+
├── auth/
|
|
135
|
+
│ └── routes.ts # JWT login, cookies, refresh, SAML/OIDC stubs
|
|
136
|
+
│
|
|
137
|
+
├── admin/
|
|
138
|
+
│ └── routes.ts # Users, Agents, API Keys, Audit, Settings, Rules CRUD
|
|
139
|
+
│
|
|
140
|
+
├── middleware/
|
|
141
|
+
│ └── index.ts # Rate limiter, security headers, audit logger, RBAC, error handler
|
|
142
|
+
│
|
|
143
|
+
├── lib/
|
|
144
|
+
│ └── resilience.ts # CircuitBreaker, HealthMonitor, withRetry, RateLimiter
|
|
145
|
+
│
|
|
146
|
+
├── db/ # Admin database adapters (6 backends)
|
|
147
|
+
│ ├── adapter.ts # Abstract DatabaseAdapter interface
|
|
148
|
+
│ ├── factory.ts # createAdapter() factory
|
|
149
|
+
│ ├── sql-schema.ts # Shared DDL + migrations
|
|
150
|
+
│ ├── sqlite.ts # SQLite (better-sqlite3)
|
|
151
|
+
│ ├── postgres.ts # PostgreSQL (pg)
|
|
152
|
+
│ ├── mysql.ts # MySQL (mysql2)
|
|
153
|
+
│ ├── mongodb.ts # MongoDB
|
|
154
|
+
│ ├── dynamodb.ts # DynamoDB (@aws-sdk)
|
|
155
|
+
│ └── turso.ts # Turso/LibSQL (@libsql/client)
|
|
156
|
+
│
|
|
157
|
+
├── engine/ # Agent management platform (11 subsystems)
|
|
158
|
+
│ ├── index.ts # Public re-exports
|
|
159
|
+
│ ├── routes.ts # All engine REST endpoints (50+)
|
|
160
|
+
│ ├── skills.ts # 38 skills, 5 presets, PermissionEngine (DB-persisted)
|
|
161
|
+
│ ├── agent-config.ts # AgentConfigGenerator: workspace files, gateway, docker-compose, systemd
|
|
162
|
+
│ ├── deployer.ts # DeploymentEngine: Docker, VPS/SSH, Fly.io, Railway
|
|
163
|
+
│ ├── lifecycle.ts # AgentLifecycleManager: state machine, health checks (DB-persisted)
|
|
164
|
+
│ ├── approvals.ts # ApprovalEngine: policies, requests, decisions (DB-persisted)
|
|
165
|
+
│ ├── knowledge.ts # KnowledgeBaseEngine: docs, chunking, embeddings, RAG (DB-persisted)
|
|
166
|
+
│ ├── tenant.ts # TenantManager: orgs, plans, limits, usage (DB-persisted)
|
|
167
|
+
│ ├── activity.ts # ActivityTracker: events, tool calls, conversations, SSE (DB-persisted)
|
|
168
|
+
│ ├── tool-catalog.ts # 167 tool IDs mapped to skills
|
|
169
|
+
│ ├── runtime/ # Runtime hooks and plugin integration
|
|
170
|
+
│ ├── agenticmail-bridge.ts # Bridge to AgenticMail API
|
|
171
|
+
│ ├── db-adapter.ts # EngineDatabase wrapper (682 lines, all CRUD implemented)
|
|
172
|
+
│ └── db-schema.ts # Engine DDL: 15 tables, versioned migrations, dialect converters
|
|
173
|
+
│
|
|
174
|
+
├── deploy/ # Cloud deployment
|
|
175
|
+
│ ├── fly.ts # Fly.io Machines API
|
|
176
|
+
│ └── managed.ts # Managed cloud provisioning
|
|
177
|
+
│
|
|
178
|
+
├── setup/ # CLI setup wizard
|
|
179
|
+
│ ├── index.ts # Wizard orchestrator
|
|
180
|
+
│ ├── company.ts # Company info prompts
|
|
181
|
+
│ ├── database.ts # Database selection
|
|
182
|
+
│ ├── deployment.ts # Deployment target
|
|
183
|
+
│ ├── domain.ts # Custom domain
|
|
184
|
+
│ └── provision.ts # Provisioning logic
|
|
185
|
+
│
|
|
186
|
+
└── dashboard/
|
|
187
|
+
└── index.html # Admin UI (single HTML, React 18 from CDN)
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
## Key Design Decisions
|
|
191
|
+
|
|
192
|
+
1. **Single HTML dashboard**: No build step. React 18 + ReactDOM loaded from CDN. All components defined inline. Served at `/dashboard`. This keeps the package small and eliminates frontend toolchain complexity.
|
|
193
|
+
|
|
194
|
+
2. **Lazy engine initialization**: Engine routes and EngineDatabase are initialized on first `/api/engine/*` request (not at server startup). This avoids blocking startup and allows the admin DB to be ready first.
|
|
195
|
+
|
|
196
|
+
3. **Two database layers**: Admin DB (DatabaseAdapter) handles users/agents/audit/settings. Engine DB (EngineDatabase) handles lifecycle/approvals/knowledge/activity/tenants. Both can use the same underlying database connection, but the Engine DB has its own tables and migration system.
|
|
197
|
+
|
|
198
|
+
4. **Write-through + fire-and-forget**: Critical data (agents, orgs, knowledge bases) uses `await db.upsert()`. High-volume data (activity events, tool calls) uses `db.insert().catch(() => {})` to avoid blocking the request path.
|
|
153
199
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
### AgenticMail Cloud (Managed)
|
|
157
|
-
- Fly.io multi-region (us-east, eu-west, ap-southeast)
|
|
158
|
-
- Customer gets `<company>.agenticmail.cloud` subdomain
|
|
159
|
-
- Wildcard TLS via Fly.io
|
|
160
|
-
- Shared Fly.io org, isolated apps per customer
|
|
161
|
-
- Customer can add custom domain (CNAME → our subdomain)
|
|
162
|
-
|
|
163
|
-
### Self-Hosted
|
|
164
|
-
- Single Docker image: `docker run -p 3000:3000 agenticmail/enterprise`
|
|
165
|
-
- Or via CLI: `npx agenticmail-enterprise start`
|
|
166
|
-
- Env vars for DB connection, SMTP, domain
|
|
167
|
-
|
|
168
|
-
## Admin Dashboard Pages
|
|
169
|
-
|
|
170
|
-
1. **Dashboard** — Overview: active agents, emails sent/received, health
|
|
171
|
-
2. **Agents** — Create, edit, archive, delete. Role assignment. Email config per agent.
|
|
172
|
-
3. **Audit Log** — Who did what, when. Filterable, exportable.
|
|
173
|
-
4. **Authentication** — SAML/OIDC setup, user management, API keys
|
|
174
|
-
5. **Compliance** — DLP rules, retention policies, outbound guards
|
|
175
|
-
6. **Email Rules** — Server-side rules (auto-tag, auto-move, auto-reply)
|
|
176
|
-
7. **Settings** — Company info, domain, SMTP config, billing
|
|
177
|
-
8. **Integrations** — Slack, Teams, Discord notifications
|
|
178
|
-
|
|
179
|
-
## Pricing Tiers (Future)
|
|
180
|
-
- **Free**: 3 agents, 1K emails/mo, community support
|
|
181
|
-
- **Team**: 25 agents, 50K emails/mo, SSO, audit logs — $49/mo
|
|
182
|
-
- **Enterprise**: Unlimited, SCIM, DLP, retention, SLA, dedicated support — $299/mo
|
|
183
|
-
- **Self-Hosted**: Unlimited, your infra — $99/mo license
|
|
200
|
+
5. **Module-level singletons with late binding**: Engine modules are instantiated at module load time (top of routes.ts) as singletons. Database is injected later via `setDb()` when `setEngineDb()` is called. This allows routes to be defined before the DB is ready.
|
package/CLAUDE.md
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# CLAUDE.md — Enterprise Repository Rules
|
|
2
|
+
|
|
3
|
+
## CRITICAL: This is a DEDICATED REPO
|
|
4
|
+
|
|
5
|
+
**Repo:** `github.com/agenticmail/enterprise`
|
|
6
|
+
**Origin:** `https://github.com/agenticmail/enterprise.git`
|
|
7
|
+
|
|
8
|
+
### DO NOT:
|
|
9
|
+
- Push code from the monorepo (`agentic-mail/packages/enterprise`) directly — sync first
|
|
10
|
+
- Force push to `main`
|
|
11
|
+
- Commit `node_modules/`, `dist/`, `.env`, `*.db`, `*.sqlite` files
|
|
12
|
+
- Change the git remote origin
|
|
13
|
+
- Merge code from other packages into this repo
|
|
14
|
+
|
|
15
|
+
### DO:
|
|
16
|
+
- Work in this directory for enterprise-specific changes
|
|
17
|
+
- Run `npm run build` before committing to verify compilation
|
|
18
|
+
- Run `node live-test.mjs` to verify 33+ E2E tests pass
|
|
19
|
+
- Update `README.md` when changing API endpoints or features
|
|
20
|
+
- Update `CHANGELOG.md` for every version bump
|
|
21
|
+
|
|
22
|
+
### Sync Process (monorepo → dedicated repo)
|
|
23
|
+
If changes were made in `agentic-mail/packages/enterprise/`:
|
|
24
|
+
```bash
|
|
25
|
+
rsync -av --delete \
|
|
26
|
+
--exclude='node_modules' --exclude='dist' --exclude='.git' --exclude='*.db' --exclude='*.sqlite' \
|
|
27
|
+
../agentic-mail/packages/enterprise/ .
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Key Files
|
|
31
|
+
- `src/dashboard/index.html` — Single-file React dashboard (entire UI)
|
|
32
|
+
- `src/server.ts` — Hono server entry point
|
|
33
|
+
- `src/auth/routes.ts` — Authentication (cookies + JWT)
|
|
34
|
+
- `src/admin/routes.ts` — Admin API endpoints
|
|
35
|
+
- `src/engine/routes.ts` — Engine API endpoints
|
|
36
|
+
- `live-test.mjs` — E2E test runner (33 tests)
|
|
37
|
+
- `test-integration.mjs` — Integration tests (94 tests)
|
|
38
|
+
|
|
39
|
+
### Current Version
|
|
40
|
+
Check `package.json` for current version. Published to npm as `@agenticmail/enterprise`.
|
package/CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
# Contributing Community Skills to AgenticMail Enterprise
|
|
2
|
+
|
|
3
|
+
AgenticMail Enterprise has an open skill marketplace powered by Git. Anyone can build a skill for any application and submit it as a pull request.
|
|
4
|
+
|
|
5
|
+
> **All skill submissions require manual review and approval from a maintainer.**
|
|
6
|
+
> Automated CI validates the manifest format, but a human reviews every skill
|
|
7
|
+
> for accuracy, safety, and quality before it can be merged. No skill goes live
|
|
8
|
+
> without maintainer sign-off.
|
|
9
|
+
|
|
10
|
+
## Quick Start
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
# 1. Create your skill directory
|
|
14
|
+
mkdir community-skills/my-skill
|
|
15
|
+
|
|
16
|
+
# 2. Create the manifest
|
|
17
|
+
cp community-skills/_template/agenticmail-skill.json community-skills/my-skill/
|
|
18
|
+
|
|
19
|
+
# 3. Edit the manifest with your skill details
|
|
20
|
+
# (see Specification below)
|
|
21
|
+
|
|
22
|
+
# 4. Validate
|
|
23
|
+
agenticmail-enterprise validate community-skills/my-skill/
|
|
24
|
+
|
|
25
|
+
# 5. Submit a PR
|
|
26
|
+
agenticmail-enterprise submit-skill community-skills/my-skill/
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Or use the AI-assisted builder:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
agenticmail-enterprise build-skill
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## agenticmail-skill.json Specification
|
|
36
|
+
|
|
37
|
+
Every community skill is defined by an `agenticmail-skill.json` manifest in its own directory under `community-skills/`.
|
|
38
|
+
|
|
39
|
+
### Required Fields
|
|
40
|
+
|
|
41
|
+
| Field | Type | Description |
|
|
42
|
+
|-------|------|-------------|
|
|
43
|
+
| `id` | string | Unique identifier. Lowercase alphanumeric, hyphens, underscores. 3-64 chars. |
|
|
44
|
+
| `name` | string | Human-readable name. Max 100 chars. |
|
|
45
|
+
| `description` | string | What the skill does. 20-500 chars. |
|
|
46
|
+
| `version` | string | Semantic version (e.g. `1.0.0`). |
|
|
47
|
+
| `author` | string | Your GitHub username. |
|
|
48
|
+
| `repository` | string | URL to the skill's source repository. |
|
|
49
|
+
| `license` | string | SPDX license identifier (e.g. `MIT`, `Apache-2.0`). |
|
|
50
|
+
| `category` | string | One of the valid categories (see below). |
|
|
51
|
+
| `risk` | string | `low`, `medium`, `high`, or `critical`. |
|
|
52
|
+
| `tools` | array | At least one tool definition (see below). |
|
|
53
|
+
|
|
54
|
+
### Optional Fields
|
|
55
|
+
|
|
56
|
+
| Field | Type | Description |
|
|
57
|
+
|-------|------|-------------|
|
|
58
|
+
| `icon` | string | Emoji or URL for display. |
|
|
59
|
+
| `tags` | string[] | Up to 20 lowercase tags for search. |
|
|
60
|
+
| `configSchema` | object | Configuration fields needed by the skill. |
|
|
61
|
+
| `minEngineVersion` | string | Minimum engine version required. |
|
|
62
|
+
| `homepage` | string | URL to documentation. |
|
|
63
|
+
|
|
64
|
+
### Tool Definition
|
|
65
|
+
|
|
66
|
+
Each tool in the `tools` array describes one action the skill provides:
|
|
67
|
+
|
|
68
|
+
| Field | Type | Required | Description |
|
|
69
|
+
|-------|------|----------|-------------|
|
|
70
|
+
| `id` | string | Yes | Unique tool ID. Lowercase with underscores. **Must not conflict with existing tools.** |
|
|
71
|
+
| `name` | string | Yes | Human-readable name. |
|
|
72
|
+
| `description` | string | Yes | What this tool does. |
|
|
73
|
+
| `category` | string | No | `read`, `write`, `execute`, `communicate`, or `destroy`. |
|
|
74
|
+
| `riskLevel` | string | No | `low`, `medium`, `high`, or `critical`. |
|
|
75
|
+
| `sideEffects` | string[] | No | What external effects this tool causes. |
|
|
76
|
+
| `parameters` | object | No | Input parameters the tool accepts. |
|
|
77
|
+
|
|
78
|
+
### Naming Convention for Tool IDs
|
|
79
|
+
|
|
80
|
+
Use a prefix based on your skill ID to avoid collisions:
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
skill ID: github-issues
|
|
84
|
+
tool IDs: github_create_issue, github_update_issue, github_list_issues
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Valid Categories (27)
|
|
88
|
+
|
|
89
|
+
| Category | Description |
|
|
90
|
+
|----------|-------------|
|
|
91
|
+
| `communication` | Email, SMS, messaging |
|
|
92
|
+
| `development` | GitHub, coding, git |
|
|
93
|
+
| `productivity` | Calendar, notes, reminders, tasks |
|
|
94
|
+
| `research` | Web search, web fetch, summarize |
|
|
95
|
+
| `media` | Image gen, TTS, video, audio |
|
|
96
|
+
| `automation` | Browser, shell, scripting |
|
|
97
|
+
| `smart-home` | IoT, Hue, Sonos, cameras |
|
|
98
|
+
| `data` | Files, databases, storage |
|
|
99
|
+
| `security` | Passwords, healthcheck, IAM |
|
|
100
|
+
| `social` | Twitter/X, LinkedIn |
|
|
101
|
+
| `platform` | Core AgenticMail platform internals |
|
|
102
|
+
| `collaboration` | Slack, Teams, Zoom, chat |
|
|
103
|
+
| `crm` | Salesforce, HubSpot, Dynamics |
|
|
104
|
+
| `project-management` | Jira, Asana, Monday, Linear |
|
|
105
|
+
| `cloud-infrastructure` | AWS, Azure, GCP |
|
|
106
|
+
| `devops` | Docker, K8s, Terraform, CI/CD |
|
|
107
|
+
| `finance` | Stripe, QuickBooks, Xero |
|
|
108
|
+
| `analytics` | Tableau, Power BI, Mixpanel |
|
|
109
|
+
| `design` | Figma, Canva, Adobe |
|
|
110
|
+
| `ecommerce` | Shopify, WooCommerce |
|
|
111
|
+
| `marketing` | Mailchimp, SendGrid, ads |
|
|
112
|
+
| `hr` | BambooHR, Workday, Gusto |
|
|
113
|
+
| `legal` | DocuSign, compliance |
|
|
114
|
+
| `customer-support` | Zendesk, Intercom, Freshdesk |
|
|
115
|
+
| `storage` | Dropbox, Box, OneDrive |
|
|
116
|
+
| `database` | MongoDB, Redis, Snowflake |
|
|
117
|
+
| `monitoring` | Datadog, PagerDuty, Sentry |
|
|
118
|
+
|
|
119
|
+
## Valid Tool Categories (5)
|
|
120
|
+
|
|
121
|
+
| Category | Description |
|
|
122
|
+
|----------|-------------|
|
|
123
|
+
| `read` | Read-only, no side effects |
|
|
124
|
+
| `write` | Creates or modifies data |
|
|
125
|
+
| `execute` | Runs code or commands |
|
|
126
|
+
| `communicate` | Sends messages externally |
|
|
127
|
+
| `destroy` | Deletes data |
|
|
128
|
+
|
|
129
|
+
## Risk Levels
|
|
130
|
+
|
|
131
|
+
| Level | When to use |
|
|
132
|
+
|-------|-------------|
|
|
133
|
+
| `low` | Read-only operations, no sensitive data |
|
|
134
|
+
| `medium` | Creates/modifies data, sends messages |
|
|
135
|
+
| `high` | Handles sensitive data, financial operations, destructive actions |
|
|
136
|
+
| `critical` | Full system access, admin operations, irreversible actions |
|
|
137
|
+
|
|
138
|
+
## Side Effects (11)
|
|
139
|
+
|
|
140
|
+
| Effect | Description |
|
|
141
|
+
|--------|-------------|
|
|
142
|
+
| `sends-email` | Sends an email |
|
|
143
|
+
| `sends-message` | Sends a chat/SMS message |
|
|
144
|
+
| `sends-sms` | Sends an SMS specifically |
|
|
145
|
+
| `posts-social` | Posts to social media |
|
|
146
|
+
| `runs-code` | Executes code or commands |
|
|
147
|
+
| `modifies-files` | Creates or modifies files |
|
|
148
|
+
| `deletes-data` | Deletes data permanently |
|
|
149
|
+
| `network-request` | Makes external HTTP requests |
|
|
150
|
+
| `controls-device` | Controls IoT/smart devices |
|
|
151
|
+
| `accesses-secrets` | Reads passwords, tokens, keys |
|
|
152
|
+
| `financial` | Processes payments or financial data |
|
|
153
|
+
|
|
154
|
+
## CLI Commands
|
|
155
|
+
|
|
156
|
+
### Validate a Skill
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
# Validate a single skill
|
|
160
|
+
agenticmail-enterprise validate community-skills/my-skill/
|
|
161
|
+
|
|
162
|
+
# Validate all community skills
|
|
163
|
+
agenticmail-enterprise validate --all
|
|
164
|
+
|
|
165
|
+
# Machine-readable output (for CI)
|
|
166
|
+
agenticmail-enterprise validate --all --json
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### Build a Skill (AI-Assisted)
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
agenticmail-enterprise build-skill
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
This interactive command:
|
|
176
|
+
1. Asks what application/service the skill should integrate with
|
|
177
|
+
2. Asks what operations it should support
|
|
178
|
+
3. Uses an AI agent (if agent runtime is running) to generate the manifest
|
|
179
|
+
4. Falls back to template-based generation otherwise
|
|
180
|
+
5. Validates the output
|
|
181
|
+
6. Offers to submit as a PR
|
|
182
|
+
|
|
183
|
+
### Submit a Skill
|
|
184
|
+
|
|
185
|
+
```bash
|
|
186
|
+
agenticmail-enterprise submit-skill community-skills/my-skill/
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
This automates the entire PR flow:
|
|
190
|
+
1. Validates the manifest
|
|
191
|
+
2. Forks the repo (if needed)
|
|
192
|
+
3. Creates a branch
|
|
193
|
+
4. Commits and pushes
|
|
194
|
+
5. Opens a pull request
|
|
195
|
+
|
|
196
|
+
**Requires:** [GitHub CLI](https://cli.github.com/) (`gh`) installed and authenticated.
|
|
197
|
+
|
|
198
|
+
## Review Process
|
|
199
|
+
|
|
200
|
+
**Every community skill requires maintainer approval before it can be merged.**
|
|
201
|
+
|
|
202
|
+
When you open a PR, the following happens automatically:
|
|
203
|
+
|
|
204
|
+
1. CI runs `agenticmail-enterprise validate` on your manifest
|
|
205
|
+
2. The bot posts a validation report and a **maintainer review checklist** on your PR
|
|
206
|
+
3. The PR is labeled `community-skill` + `needs-maintainer-review`
|
|
207
|
+
4. A maintainer from `@agenticmail/skill-reviewers` is auto-assigned via CODEOWNERS
|
|
208
|
+
|
|
209
|
+
**The PR cannot be merged until a maintainer explicitly approves it.**
|
|
210
|
+
|
|
211
|
+
### What Maintainers Check
|
|
212
|
+
|
|
213
|
+
Automated validation only checks the manifest format. A human reviewer checks:
|
|
214
|
+
|
|
215
|
+
1. **Tool IDs are sensibly named** — follow `prefix_action` convention, no misleading names
|
|
216
|
+
2. **Descriptions are accurate** — clearly explain what each tool does
|
|
217
|
+
3. **Risk levels are appropriate** — destructive actions must be `high`/`critical`
|
|
218
|
+
4. **Side effects are correctly declared** — `sends-email`, `deletes-data`, `financial`, etc.
|
|
219
|
+
5. **No malicious or deceptive definitions** — tool names must match their actual behavior
|
|
220
|
+
6. **Category fits the application** — not miscategorized to gain visibility
|
|
221
|
+
7. **Config schema is reasonable** — no unnecessary secrets or permissions requested
|
|
222
|
+
8. **README documents everything** — all tools, configuration, and usage examples
|
|
223
|
+
9. **License is valid** — must be an open-source SPDX license
|
|
224
|
+
|
|
225
|
+
### After Approval
|
|
226
|
+
|
|
227
|
+
Once a maintainer approves and merges your PR:
|
|
228
|
+
|
|
229
|
+
1. CI automatically rebuilds `community-skills/index.json`
|
|
230
|
+
2. All deployed AgenticMail instances pick up the new skill within 6 hours (via periodic sync)
|
|
231
|
+
3. Admins can also trigger an immediate sync from the dashboard
|
|
232
|
+
4. Your skill appears in the Community Skills marketplace for all users
|
|
233
|
+
|
|
234
|
+
## Directory Structure
|
|
235
|
+
|
|
236
|
+
```
|
|
237
|
+
community-skills/
|
|
238
|
+
_template/ # Template for new skills
|
|
239
|
+
agenticmail-skill.json
|
|
240
|
+
README.md
|
|
241
|
+
github-issues/ # Example: GitHub Issues skill
|
|
242
|
+
agenticmail-skill.json
|
|
243
|
+
README.md
|
|
244
|
+
slack-notifications/ # Example: Slack skill
|
|
245
|
+
agenticmail-skill.json
|
|
246
|
+
README.md
|
|
247
|
+
your-skill/ # Your contribution
|
|
248
|
+
agenticmail-skill.json
|
|
249
|
+
README.md
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
## License
|
|
253
|
+
|
|
254
|
+
By contributing a community skill, you agree that your contribution is licensed under the license specified in your manifest (defaulting to MIT).
|