@agent-native/core 0.114.15 → 0.115.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/agent-native.eject.json +2 -0
- package/bin/agent-native.js +35 -14
- package/bin/launcher.js +34 -0
- package/corpus/README.md +3 -3
- package/corpus/core/CHANGELOG.md +35 -0
- package/corpus/core/agent-native.eject.json +2 -0
- package/corpus/core/bin/agent-native.js +35 -14
- package/corpus/core/bin/launcher.js +34 -0
- package/corpus/core/docs/content/agent-native-toolkit.mdx +16 -0
- package/corpus/core/docs/content/recurring-jobs.mdx +35 -6
- package/corpus/core/export-snapshot.json +4 -0
- package/corpus/core/package.json +5 -1
- package/corpus/core/src/action.ts +22 -1
- package/corpus/core/src/agent/production-agent.ts +105 -3
- package/corpus/core/src/cli/templates-meta.ts +12 -0
- package/corpus/core/src/client/AssistantChat.tsx +53 -26
- package/corpus/core/src/client/agent-page/AgentJobsTab.tsx +19 -0
- package/corpus/core/src/client/agent-page/use-jobs.ts +1 -0
- package/corpus/core/src/client/chat/message-components.tsx +35 -1
- package/corpus/core/src/client/chat/tool-call-display.tsx +38 -3
- package/corpus/core/src/connections/catalog.ts +20 -1
- package/corpus/core/src/connections/reader.ts +65 -0
- package/corpus/core/src/dashboard-storage/index.ts +27 -0
- package/corpus/core/src/dashboard-storage/panel-source.ts +168 -0
- package/corpus/core/src/dashboard-storage/schema.ts +62 -0
- package/corpus/core/src/dashboard-storage/store.ts +333 -0
- package/corpus/core/src/deploy/build.ts +95 -16
- package/corpus/core/src/eject/provider-api-definitions.ts +1 -0
- package/corpus/core/src/eject/workspace-connections.ts +1 -0
- package/corpus/core/src/extensions/actions.ts +199 -73
- package/corpus/core/src/jobs/actions/list-recurring-jobs.ts +2 -0
- package/corpus/core/src/jobs/scheduler.ts +71 -4
- package/corpus/core/src/jobs/tools.ts +31 -1
- package/corpus/core/src/localization/default-messages.ts +1 -0
- package/corpus/core/src/mcp-client/index.ts +6 -0
- package/corpus/core/src/provider-api/actions/provider-api.ts +1 -1
- package/corpus/core/src/provider-api/index.ts +190 -5
- package/corpus/core/src/secrets/register-framework-secrets.ts +8 -0
- package/corpus/core/src/server/agent-chat/context-tools.ts +9 -0
- package/corpus/core/src/server/agent-chat/framework-prompts.ts +2 -2
- package/corpus/core/src/server/agent-chat-plugin.ts +22 -2
- package/corpus/core/src/server/core-routes-plugin.ts +1 -0
- package/corpus/core/src/server/credential-provider.ts +9 -3
- package/corpus/core/src/server/workspace-provider-oauth.ts +181 -4
- package/corpus/core/src/styles/agent-native.css +45 -2
- package/corpus/core/src/templates/default/.agents/skills/agent-native-docs/SKILL.md +27 -0
- package/corpus/core/src/templates/default/.agents/skills/app-branding/SKILL.md +159 -0
- package/corpus/core/src/templates/default/.agents/skills/app-permissions/SKILL.md +155 -0
- package/corpus/core/src/templates/headless/.agents/skills/agent-native-docs/SKILL.md +27 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/agent-native-docs/SKILL.md +27 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/extensions/SKILL.md +31 -18
- package/corpus/core/src/templates/workspace-core/.agents/skills/recurring-jobs/SKILL.md +15 -0
- package/corpus/core/src/triggers/actions.ts +11 -2
- package/corpus/core/src/triggers/dispatcher.ts +20 -1
- package/corpus/core/src/triggers/types.ts +5 -0
- package/corpus/core/src/vite/action-types-plugin.ts +9 -1
- package/corpus/templates/analytics/.agents/skills/agent-native-docs/SKILL.md +115 -0
- package/corpus/templates/analytics/AGENTS.md +11 -11
- package/corpus/templates/analytics/_gitignore +39 -0
- package/corpus/templates/analytics/actions/query-dashboard-panel.ts +30 -0
- package/corpus/templates/analytics/actions/update-dashboard.ts +2 -1
- package/corpus/templates/analytics/app/lib/sql-query.ts +11 -25
- package/corpus/templates/analytics/changelog/2026-07-21-fixed-extension-updates-failing-before-changes-could-be-appl.md +6 -0
- package/corpus/templates/analytics/server/lib/dashboard-panel-query.ts +1 -0
- package/corpus/templates/analytics/server/lib/dashboard-panel-source-resolver.ts +51 -0
- package/corpus/templates/analytics/server/lib/prometheus.ts +1 -1
- package/corpus/templates/analytics/server/plugins/agent-chat.ts +1 -1
- package/corpus/templates/assets/.agents/skills/agent-native-docs/SKILL.md +115 -0
- package/corpus/templates/brain/.agents/skills/agent-native-docs/SKILL.md +115 -0
- package/corpus/templates/calendar/.agents/skills/agent-native-docs/SKILL.md +115 -0
- package/corpus/templates/calendar/_gitignore +39 -0
- package/corpus/templates/chat/.agents/skills/agent-native-docs/SKILL.md +27 -0
- package/corpus/templates/chat/AGENTS.md +1 -1
- package/corpus/templates/clips/.agents/skills/agent-native-docs/SKILL.md +115 -0
- package/corpus/templates/clips/AGENTS.md +7 -0
- package/corpus/templates/clips/actions/prepare-crm-call-evidence.ts +58 -0
- package/corpus/templates/clips/app/components/library/bulk-action-toolbar.tsx +25 -8
- package/corpus/templates/clips/app/components/library/library-grid.tsx +118 -9
- package/corpus/templates/clips/app/components/library/library-layout.tsx +1 -1
- package/corpus/templates/clips/app/components/library/recording-card.tsx +10 -8
- package/corpus/templates/clips/app/components/recorder/recorder-engine.ts +88 -11
- package/corpus/templates/clips/app/i18n/en-US.ts +6 -0
- package/corpus/templates/clips/app/routes/_app.trash.tsx +16 -1
- package/corpus/templates/clips/changelog/2026-07-21-crm-call-evidence-handoff.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-21-recording-retries-and-restarts-keep-their-upload-session-so-.md +6 -0
- package/corpus/templates/clips/chrome-extension/src/background.ts +20 -5
- package/corpus/templates/clips/chrome-extension/src/native-recording-state.ts +19 -0
- package/corpus/templates/clips/chrome-extension/src/offscreen.ts +8 -0
- package/corpus/templates/clips/desktop/src/app.tsx +24 -3
- package/corpus/templates/clips/desktop/src/overlays/recording-pill.tsx +9 -0
- package/corpus/templates/clips/desktop/src-tauri/src/recording_indicator.rs +54 -28
- package/corpus/templates/clips/server/plugins/agent-chat.ts +1 -0
- package/corpus/templates/content/.agents/skills/agent-native-docs/SKILL.md +115 -0
- package/corpus/templates/content/_gitignore +39 -0
- package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +20 -38
- package/corpus/templates/content/app/components/editor/previewDocumentSaveController.ts +40 -1
- package/corpus/templates/content/learnings.defaults.md +5 -0
- package/corpus/templates/crm/.agents/skills/agent-native-docs/SKILL.md +115 -0
- package/corpus/templates/crm/.agents/skills/agent-native-toolkit/SKILL.md +133 -0
- package/corpus/templates/crm/.agents/skills/crm/SKILL.md +128 -0
- package/corpus/templates/crm/.agents/skills/customizing-agent-native/SKILL.md +145 -0
- package/corpus/templates/crm/.agents/skills/feature-flags/SKILL.md +169 -0
- package/corpus/templates/crm/.agents/skills/upgrade-agent-native/SKILL.md +100 -0
- package/corpus/templates/crm/.env.example +5 -0
- package/corpus/templates/crm/AGENTS.md +120 -0
- package/corpus/templates/crm/CHANGELOG.md +1 -0
- package/corpus/templates/crm/DEVELOPING.md +66 -0
- package/corpus/templates/crm/README.md +106 -0
- package/corpus/templates/crm/_gitignore +12 -0
- package/corpus/templates/crm/actions/_crm-action-utils.ts +87 -0
- package/corpus/templates/crm/actions/_crm-dashboard.ts +69 -0
- package/corpus/templates/crm/actions/_crm-signal-utils.ts +79 -0
- package/corpus/templates/crm/actions/apply-crm-proposals.ts +203 -0
- package/corpus/templates/crm/actions/attach-call-evidence.ts +170 -0
- package/corpus/templates/crm/actions/configure-crm-connection.ts +126 -0
- package/corpus/templates/crm/actions/configure-native-crm.ts +44 -0
- package/corpus/templates/crm/actions/create-crm-record.ts +148 -0
- package/corpus/templates/crm/actions/create-crm-signal-tracker.ts +58 -0
- package/corpus/templates/crm/actions/delete-staged-dataset.ts +14 -0
- package/corpus/templates/crm/actions/get-crm-automation-recipe.ts +36 -0
- package/corpus/templates/crm/actions/get-crm-dashboard-panel.ts +33 -0
- package/corpus/templates/crm/actions/get-crm-dashboard.ts +14 -0
- package/corpus/templates/crm/actions/get-crm-overview.ts +13 -0
- package/corpus/templates/crm/actions/get-crm-pipeline-data.ts +61 -0
- package/corpus/templates/crm/actions/get-crm-record.ts +75 -0
- package/corpus/templates/crm/actions/install-crm-pipeline-dashboard.ts +81 -0
- package/corpus/templates/crm/actions/list-crm-dashboard-revisions.ts +15 -0
- package/corpus/templates/crm/actions/list-crm-dashboards.ts +15 -0
- package/corpus/templates/crm/actions/list-crm-proposals.ts +31 -0
- package/corpus/templates/crm/actions/list-crm-records.ts +79 -0
- package/corpus/templates/crm/actions/list-crm-saved-views.ts +15 -0
- package/corpus/templates/crm/actions/list-crm-signal-hits.ts +43 -0
- package/corpus/templates/crm/actions/list-crm-signal-trackers.ts +32 -0
- package/corpus/templates/crm/actions/list-crm-tasks.ts +22 -0
- package/corpus/templates/crm/actions/list-staged-datasets.ts +14 -0
- package/corpus/templates/crm/actions/list-workspace-connections.ts +47 -0
- package/corpus/templates/crm/actions/manage-crm-signal-tracker.ts +87 -0
- package/corpus/templates/crm/actions/manage-crm-task.ts +132 -0
- package/corpus/templates/crm/actions/navigate.ts +63 -0
- package/corpus/templates/crm/actions/provider-api-catalog.ts +22 -0
- package/corpus/templates/crm/actions/provider-api-docs.ts +54 -0
- package/corpus/templates/crm/actions/provider-api-request.ts +92 -0
- package/corpus/templates/crm/actions/query-staged-dataset.ts +44 -0
- package/corpus/templates/crm/actions/record-crm-call-insight.ts +160 -0
- package/corpus/templates/crm/actions/record-crm-smart-signal.ts +150 -0
- package/corpus/templates/crm/actions/restore-crm-dashboard-revision.ts +23 -0
- package/corpus/templates/crm/actions/review-crm-signal.ts +31 -0
- package/corpus/templates/crm/actions/run-crm-saved-view-program.ts +103 -0
- package/corpus/templates/crm/actions/run-crm-signal-trackers.ts +275 -0
- package/corpus/templates/crm/actions/run.ts +11 -0
- package/corpus/templates/crm/actions/save-crm-dashboard.ts +51 -0
- package/corpus/templates/crm/actions/save-crm-saved-view.ts +119 -0
- package/corpus/templates/crm/actions/sync-crm.ts +146 -0
- package/corpus/templates/crm/actions/update-crm-record.ts +508 -0
- package/corpus/templates/crm/actions/view-screen.ts +218 -0
- package/corpus/templates/crm/agent-native.app-skill.json +58 -0
- package/corpus/templates/crm/app/components/crm/CreateCrmRecordDialog.tsx +158 -0
- package/corpus/templates/crm/app/components/crm/CrmDashboardPanel.tsx +83 -0
- package/corpus/templates/crm/app/components/crm/CrmSignalsPanel.tsx +225 -0
- package/corpus/templates/crm/app/components/crm/IntelligenceSettings.tsx +413 -0
- package/corpus/templates/crm/app/components/crm/RecordActions.tsx +510 -0
- package/corpus/templates/crm/app/components/crm/RecordGrid.tsx +134 -0
- package/corpus/templates/crm/app/components/crm/RecordWorkspace.tsx +367 -0
- package/corpus/templates/crm/app/components/crm/SavedViewDataProgram.tsx +92 -0
- package/corpus/templates/crm/app/components/crm/Surface.tsx +96 -0
- package/corpus/templates/crm/app/components/crm/WorkOverview.tsx +180 -0
- package/corpus/templates/crm/app/components/layout/CrmLayout.tsx +106 -0
- package/corpus/templates/crm/app/components/layout/CrmSidebar.tsx +84 -0
- package/corpus/templates/crm/app/entry.client.tsx +16 -0
- package/corpus/templates/crm/app/entry.server.tsx +10 -0
- package/corpus/templates/crm/app/global.css +167 -0
- package/corpus/templates/crm/app/hooks/use-navigation-state.ts +60 -0
- package/corpus/templates/crm/app/i18n/en-US.ts +89 -0
- package/corpus/templates/crm/app/i18n/index.ts +34 -0
- package/corpus/templates/crm/app/lib/dashboard.ts +13 -0
- package/corpus/templates/crm/app/lib/navigation.ts +54 -0
- package/corpus/templates/crm/app/lib/tab-id.ts +1 -0
- package/corpus/templates/crm/app/lib/types.ts +172 -0
- package/corpus/templates/crm/app/lib/utils.ts +1 -0
- package/corpus/templates/crm/app/root.tsx +88 -0
- package/corpus/templates/crm/app/routes/_index.tsx +26 -0
- package/corpus/templates/crm/app/routes/accounts.tsx +41 -0
- package/corpus/templates/crm/app/routes/agent.tsx +5 -0
- package/corpus/templates/crm/app/routes/ask.tsx +53 -0
- package/corpus/templates/crm/app/routes/dashboard.tsx +118 -0
- package/corpus/templates/crm/app/routes/opportunities.tsx +41 -0
- package/corpus/templates/crm/app/routes/people.tsx +41 -0
- package/corpus/templates/crm/app/routes/proposals.tsx +266 -0
- package/corpus/templates/crm/app/routes/records.$recordId.tsx +35 -0
- package/corpus/templates/crm/app/routes/settings.tsx +63 -0
- package/corpus/templates/crm/app/routes/setup.tsx +308 -0
- package/corpus/templates/crm/app/routes/tasks.tsx +252 -0
- package/corpus/templates/crm/app/routes/views.tsx +333 -0
- package/corpus/templates/crm/app/routes.ts +17 -0
- package/corpus/templates/crm/app/vite-env.d.ts +6 -0
- package/corpus/templates/crm/changelog/2026-07-21-agent-native-crm.md +6 -0
- package/corpus/templates/crm/changelog/2026-07-21-clips-call-evidence-review-recipe.md +6 -0
- package/corpus/templates/crm/changelog/2026-07-21-crm-can-now-find-and-review-evidence-grounded-call-signals-w.md +6 -0
- package/corpus/templates/crm/changelog/2026-07-21-crm-can-now-manage-keyword-and-smart-call-signal-trackers-fr.md +6 -0
- package/corpus/templates/crm/changelog/2026-07-21-delegated-local-crm-automation.md +6 -0
- package/corpus/templates/crm/changelog/2026-07-21-native-sql.md +6 -0
- package/corpus/templates/crm/changelog/2026-07-21-pipeline-dashboard.md +6 -0
- package/corpus/templates/crm/changelog/2026-07-21-pipeline-dashboards-now-install-correctly-from-the-crm-actio.md +6 -0
- package/corpus/templates/crm/changelog/2026-07-21-salesforce-connection.md +6 -0
- package/corpus/templates/crm/components.json +20 -0
- package/corpus/templates/crm/docs/architecture/crm-contract.md +180 -0
- package/corpus/templates/crm/learnings.defaults.md +5 -0
- package/corpus/templates/crm/package.json +59 -0
- package/corpus/templates/crm/public/favicon.svg +1 -0
- package/corpus/templates/crm/public/icon-180.svg +1 -0
- package/corpus/templates/crm/public/manifest.json +11 -0
- package/corpus/templates/crm/react-router.config.ts +7 -0
- package/corpus/templates/crm/server/crm/adapter.ts +32 -0
- package/corpus/templates/crm/server/crm/crm-field-firewall.ts +64 -0
- package/corpus/templates/crm/server/crm/crm-mirror.ts +711 -0
- package/corpus/templates/crm/server/crm/hubspot-adapter.ts +1143 -0
- package/corpus/templates/crm/server/crm/native-adapter.ts +1715 -0
- package/corpus/templates/crm/server/crm/read-through.ts +207 -0
- package/corpus/templates/crm/server/crm/salesforce-adapter.ts +1255 -0
- package/corpus/templates/crm/server/db/crm-store.ts +1170 -0
- package/corpus/templates/crm/server/db/index.ts +169 -0
- package/corpus/templates/crm/server/db/schema.ts +441 -0
- package/corpus/templates/crm/server/lib/intelligence/default-detectors.ts +65 -0
- package/corpus/templates/crm/server/lib/intelligence/evidence.ts +105 -0
- package/corpus/templates/crm/server/lib/intelligence/keyword-detector.ts +100 -0
- package/corpus/templates/crm/server/lib/intelligence/smart-detector.ts +144 -0
- package/corpus/templates/crm/server/lib/intelligence/summary.ts +141 -0
- package/corpus/templates/crm/server/lib/provider-api.ts +64 -0
- package/corpus/templates/crm/server/middleware/auth.ts +4 -0
- package/corpus/templates/crm/server/plugins/agent-chat.ts +68 -0
- package/corpus/templates/crm/server/plugins/auth.ts +14 -0
- package/corpus/templates/crm/server/plugins/core-routes.ts +17 -0
- package/corpus/templates/crm/server/plugins/db.ts +454 -0
- package/corpus/templates/crm/server/routes/[...page].get.ts +5 -0
- package/corpus/templates/crm/shared/crm-automation-recipes.ts +132 -0
- package/corpus/templates/crm/shared/crm-contract.ts +254 -0
- package/corpus/templates/crm/shared/crm-sales-config.ts +63 -0
- package/corpus/templates/crm/ssr-entry.ts +11 -0
- package/corpus/templates/crm/tsconfig.json +24 -0
- package/corpus/templates/crm/vite.config.ts +15 -0
- package/corpus/templates/crm/vitest.config.ts +5 -0
- package/corpus/templates/design/.agents/skills/agent-native-docs/SKILL.md +115 -0
- package/corpus/templates/dispatch/.agents/skills/agent-native-docs/SKILL.md +115 -0
- package/corpus/templates/forms/.agents/skills/agent-native-docs/SKILL.md +115 -0
- package/corpus/templates/forms/_gitignore +39 -0
- package/corpus/templates/forms/learnings.defaults.md +5 -0
- package/corpus/templates/macros/.agents/skills/agent-native-docs/SKILL.md +115 -0
- package/corpus/templates/macros/_gitignore +39 -0
- package/corpus/templates/macros/learnings.defaults.md +5 -0
- package/corpus/templates/mail/.agents/skills/agent-native-docs/SKILL.md +115 -0
- package/corpus/templates/mail/_gitignore +39 -0
- package/corpus/templates/plan/.agents/skills/agent-native-docs/SKILL.md +115 -0
- package/corpus/templates/slides/.agents/skills/agent-native-docs/SKILL.md +115 -0
- package/corpus/templates/slides/_gitignore +39 -0
- package/corpus/templates/tasks/.agents/skills/agent-native-docs/SKILL.md +27 -0
- package/corpus/templates/tasks/_gitignore +39 -0
- package/corpus/toolkit/CHANGELOG.md +12 -0
- package/corpus/toolkit/README.md +30 -0
- package/corpus/toolkit/agent-native.eject.json +33 -0
- package/corpus/toolkit/package.json +15 -1
- package/corpus/toolkit/src/dashboard/DataTable.tsx +273 -0
- package/corpus/toolkit/src/dashboard/DateRangePicker.tsx +57 -0
- package/corpus/toolkit/src/dashboard/GenericChartPanel.tsx +461 -0
- package/corpus/toolkit/src/dashboard/MetricCard.tsx +54 -0
- package/corpus/toolkit/src/dashboard/StatsCard.tsx +49 -0
- package/corpus/toolkit/src/dashboard/dashboard-layout.ts +329 -0
- package/corpus/toolkit/src/dashboard/index.ts +6 -0
- package/corpus/toolkit/src/index.ts +1 -0
- package/corpus/toolkit/src/ui/calendar.tsx +8 -8
- package/corpus/toolkit/src/ui/date-picker.tsx +4 -1
- package/dist/action.d.ts +14 -1
- package/dist/action.d.ts.map +1 -1
- package/dist/action.js.map +1 -1
- package/dist/agent/production-agent.d.ts +3 -1
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +83 -3
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/cli/templates-meta.d.ts.map +1 -1
- package/dist/cli/templates-meta.js +12 -0
- package/dist/cli/templates-meta.js.map +1 -1
- package/dist/client/AssistantChat.d.ts +4 -0
- package/dist/client/AssistantChat.d.ts.map +1 -1
- package/dist/client/AssistantChat.js +30 -17
- package/dist/client/AssistantChat.js.map +1 -1
- package/dist/client/agent-page/AgentJobsTab.d.ts.map +1 -1
- package/dist/client/agent-page/AgentJobsTab.js +3 -1
- package/dist/client/agent-page/AgentJobsTab.js.map +1 -1
- package/dist/client/agent-page/use-jobs.d.ts +1 -0
- package/dist/client/agent-page/use-jobs.d.ts.map +1 -1
- package/dist/client/agent-page/use-jobs.js.map +1 -1
- package/dist/client/chat/message-components.d.ts +5 -0
- package/dist/client/chat/message-components.d.ts.map +1 -1
- package/dist/client/chat/message-components.js +17 -1
- package/dist/client/chat/message-components.js.map +1 -1
- package/dist/client/chat/tool-call-display.d.ts +3 -1
- package/dist/client/chat/tool-call-display.d.ts.map +1 -1
- package/dist/client/chat/tool-call-display.js +17 -7
- package/dist/client/chat/tool-call-display.js.map +1 -1
- package/dist/collab/awareness.d.ts +2 -2
- package/dist/collab/awareness.d.ts.map +1 -1
- package/dist/collab/routes.d.ts +1 -1
- package/dist/collab/struct-routes.d.ts +1 -1
- package/dist/connections/catalog.d.ts +17 -3
- package/dist/connections/catalog.d.ts.map +1 -1
- package/dist/connections/catalog.js +16 -1
- package/dist/connections/catalog.js.map +1 -1
- package/dist/connections/reader.d.ts +18 -0
- package/dist/connections/reader.d.ts.map +1 -1
- package/dist/connections/reader.js +41 -0
- package/dist/connections/reader.js.map +1 -1
- package/dist/dashboard-storage/index.d.ts +4 -0
- package/dist/dashboard-storage/index.d.ts.map +1 -0
- package/dist/dashboard-storage/index.js +4 -0
- package/dist/dashboard-storage/index.js.map +1 -0
- package/dist/dashboard-storage/panel-source.d.ts +68 -0
- package/dist/dashboard-storage/panel-source.d.ts.map +1 -0
- package/dist/dashboard-storage/panel-source.js +76 -0
- package/dist/dashboard-storage/panel-source.js.map +1 -0
- package/dist/dashboard-storage/schema.d.ts +562 -0
- package/dist/dashboard-storage/schema.d.ts.map +1 -0
- package/dist/dashboard-storage/schema.js +32 -0
- package/dist/dashboard-storage/schema.js.map +1 -0
- package/dist/dashboard-storage/store.d.ts +62 -0
- package/dist/dashboard-storage/store.d.ts.map +1 -0
- package/dist/dashboard-storage/store.js +227 -0
- package/dist/dashboard-storage/store.js.map +1 -0
- package/dist/deploy/build.d.ts +7 -0
- package/dist/deploy/build.d.ts.map +1 -1
- package/dist/deploy/build.js +78 -14
- package/dist/deploy/build.js.map +1 -1
- package/dist/eject/provider-api-definitions.d.ts +2 -1
- package/dist/eject/provider-api-definitions.d.ts.map +1 -1
- package/dist/eject/provider-api-definitions.js +1 -0
- package/dist/eject/provider-api-definitions.js.map +1 -1
- package/dist/eject/workspace-connections.d.ts.map +1 -1
- package/dist/eject/workspace-connections.js +1 -0
- package/dist/eject/workspace-connections.js.map +1 -1
- package/dist/extensions/actions.d.ts.map +1 -1
- package/dist/extensions/actions.js +165 -67
- package/dist/extensions/actions.js.map +1 -1
- package/dist/file-upload/actions/upload-image.d.ts +1 -1
- package/dist/jobs/actions/list-recurring-jobs.d.ts +1 -0
- package/dist/jobs/actions/list-recurring-jobs.d.ts.map +1 -1
- package/dist/jobs/actions/list-recurring-jobs.js +1 -0
- package/dist/jobs/actions/list-recurring-jobs.js.map +1 -1
- package/dist/jobs/scheduler.d.ts +17 -2
- package/dist/jobs/scheduler.d.ts.map +1 -1
- package/dist/jobs/scheduler.js +51 -2
- package/dist/jobs/scheduler.js.map +1 -1
- package/dist/jobs/tools.d.ts.map +1 -1
- package/dist/jobs/tools.js +32 -2
- package/dist/jobs/tools.js.map +1 -1
- package/dist/localization/default-messages.d.ts +1 -0
- package/dist/localization/default-messages.d.ts.map +1 -1
- package/dist/localization/default-messages.js +1 -0
- package/dist/localization/default-messages.js.map +1 -1
- package/dist/mcp-client/index.d.ts +2 -0
- package/dist/mcp-client/index.d.ts.map +1 -1
- package/dist/mcp-client/index.js +5 -0
- package/dist/mcp-client/index.js.map +1 -1
- package/dist/observability/routes.d.ts +1 -1
- package/dist/provider-api/actions/custom-provider-registration.d.ts +8 -8
- package/dist/provider-api/actions/provider-api.d.ts +8 -6
- package/dist/provider-api/actions/provider-api.d.ts.map +1 -1
- package/dist/provider-api/actions/provider-api.js +1 -1
- package/dist/provider-api/actions/provider-api.js.map +1 -1
- package/dist/provider-api/index.d.ts +11 -7
- package/dist/provider-api/index.d.ts.map +1 -1
- package/dist/provider-api/index.js +143 -5
- package/dist/provider-api/index.js.map +1 -1
- package/dist/resources/handlers.d.ts +1 -1
- package/dist/secrets/register-framework-secrets.d.ts.map +1 -1
- package/dist/secrets/register-framework-secrets.js +7 -0
- package/dist/secrets/register-framework-secrets.js.map +1 -1
- package/dist/server/agent-chat/context-tools.d.ts.map +1 -1
- package/dist/server/agent-chat/context-tools.js +9 -0
- package/dist/server/agent-chat/context-tools.js.map +1 -1
- package/dist/server/agent-chat/framework-prompts.js +2 -2
- package/dist/server/agent-chat/framework-prompts.js.map +1 -1
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +18 -2
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/agent-engine-api-key-route.d.ts +1 -1
- package/dist/server/core-routes-plugin.d.ts.map +1 -1
- package/dist/server/core-routes-plugin.js +1 -0
- package/dist/server/core-routes-plugin.js.map +1 -1
- package/dist/server/credential-provider.d.ts +4 -3
- package/dist/server/credential-provider.d.ts.map +1 -1
- package/dist/server/credential-provider.js +9 -3
- package/dist/server/credential-provider.js.map +1 -1
- package/dist/server/workspace-provider-oauth.d.ts +6 -1
- package/dist/server/workspace-provider-oauth.d.ts.map +1 -1
- package/dist/server/workspace-provider-oauth.js +141 -4
- package/dist/server/workspace-provider-oauth.js.map +1 -1
- package/dist/styles/agent-native.css +45 -2
- package/dist/templates/chat/.agents/skills/agent-native-docs/SKILL.md +27 -0
- package/dist/templates/chat/AGENTS.md +1 -1
- package/dist/templates/default/.agents/skills/agent-native-docs/SKILL.md +27 -0
- package/dist/templates/default/.agents/skills/app-branding/SKILL.md +159 -0
- package/dist/templates/default/.agents/skills/app-permissions/SKILL.md +155 -0
- package/dist/templates/headless/.agents/skills/agent-native-docs/SKILL.md +27 -0
- package/dist/templates/workspace-core/.agents/skills/agent-native-docs/SKILL.md +27 -0
- package/dist/templates/workspace-core/.agents/skills/extensions/SKILL.md +31 -18
- package/dist/templates/workspace-core/.agents/skills/recurring-jobs/SKILL.md +15 -0
- package/dist/triggers/actions.d.ts.map +1 -1
- package/dist/triggers/actions.js +10 -2
- package/dist/triggers/actions.js.map +1 -1
- package/dist/triggers/dispatcher.d.ts.map +1 -1
- package/dist/triggers/dispatcher.js +15 -0
- package/dist/triggers/dispatcher.js.map +1 -1
- package/dist/triggers/types.d.ts +5 -0
- package/dist/triggers/types.d.ts.map +1 -1
- package/dist/triggers/types.js.map +1 -1
- package/dist/vite/action-types-plugin.d.ts.map +1 -1
- package/dist/vite/action-types-plugin.js +4 -1
- package/dist/vite/action-types-plugin.js.map +1 -1
- package/docs/content/agent-native-toolkit.mdx +16 -0
- package/docs/content/recurring-jobs.mdx +35 -6
- package/package.json +6 -2
- package/src/action.ts +22 -1
- package/src/agent/production-agent.ts +105 -3
- package/src/cli/templates-meta.ts +12 -0
- package/src/client/AssistantChat.tsx +53 -26
- package/src/client/agent-page/AgentJobsTab.tsx +19 -0
- package/src/client/agent-page/use-jobs.ts +1 -0
- package/src/client/chat/message-components.tsx +35 -1
- package/src/client/chat/tool-call-display.tsx +38 -3
- package/src/connections/catalog.ts +20 -1
- package/src/connections/reader.ts +65 -0
- package/src/dashboard-storage/index.ts +27 -0
- package/src/dashboard-storage/panel-source.ts +168 -0
- package/src/dashboard-storage/schema.ts +62 -0
- package/src/dashboard-storage/store.ts +333 -0
- package/src/deploy/build.ts +95 -16
- package/src/eject/provider-api-definitions.ts +1 -0
- package/src/eject/workspace-connections.ts +1 -0
- package/src/extensions/actions.ts +199 -73
- package/src/jobs/actions/list-recurring-jobs.ts +2 -0
- package/src/jobs/scheduler.ts +71 -4
- package/src/jobs/tools.ts +31 -1
- package/src/localization/default-messages.ts +1 -0
- package/src/mcp-client/index.ts +6 -0
- package/src/provider-api/actions/provider-api.ts +1 -1
- package/src/provider-api/index.ts +190 -5
- package/src/secrets/register-framework-secrets.ts +8 -0
- package/src/server/agent-chat/context-tools.ts +9 -0
- package/src/server/agent-chat/framework-prompts.ts +2 -2
- package/src/server/agent-chat-plugin.ts +22 -2
- package/src/server/core-routes-plugin.ts +1 -0
- package/src/server/credential-provider.ts +9 -3
- package/src/server/workspace-provider-oauth.ts +181 -4
- package/src/styles/agent-native.css +45 -2
- package/src/templates/chat/.agents/skills/agent-native-docs/SKILL.md +27 -0
- package/src/templates/chat/AGENTS.md +1 -1
- package/src/templates/default/.agents/skills/agent-native-docs/SKILL.md +27 -0
- package/src/templates/default/.agents/skills/app-branding/SKILL.md +159 -0
- package/src/templates/default/.agents/skills/app-permissions/SKILL.md +155 -0
- package/src/templates/headless/.agents/skills/agent-native-docs/SKILL.md +27 -0
- package/src/templates/workspace-core/.agents/skills/agent-native-docs/SKILL.md +27 -0
- package/src/templates/workspace-core/.agents/skills/extensions/SKILL.md +31 -18
- package/src/templates/workspace-core/.agents/skills/recurring-jobs/SKILL.md +15 -0
- package/src/triggers/actions.ts +11 -2
- package/src/triggers/dispatcher.ts +20 -1
- package/src/triggers/types.ts +5 -0
- package/src/vite/action-types-plugin.ts +9 -1
- package/corpus/templates/analytics/server/handlers/sql-query.ts +0 -36
- package/corpus/templates/analytics/server/routes/api/sql-query.post.ts +0 -1
|
@@ -6,9 +6,10 @@ export declare function mergeProviderApiConfigs(overrides?: readonly ProviderApi
|
|
|
6
6
|
export declare function getProviderApiConfig(providerId: ProviderApiId | string, overrides?: readonly ProviderApiConfig[]): ProviderApiConfig;
|
|
7
7
|
export declare function listProviderApiIdsForTemplateUse(templateUse: WorkspaceConnectionTemplateUse, overrides?: readonly ProviderApiConfig[]): ProviderApiId[];
|
|
8
8
|
export declare function listProviderApiCatalog(providerId?: ProviderApiId | string, options?: Parameters<typeof listRuntimeProviderApiCatalog>[1]): {
|
|
9
|
-
id: "amplitude" | "apollo" | "bigquery" | "clay" | "commonroom" | "dataforseo" | "figma" | "ga4" | "gcloud" | "github" | "gmail" | "gong" | "google_calendar" | "google_drive" | "google_slides" | "grafana" | "granola" | "hubspot" | "jira" | "mixpanel" | "notion" | "posthog" | "prometheus" | "pylon" | "sentry" | "slack" | "stripe" | "twitter";
|
|
9
|
+
id: "amplitude" | "apollo" | "bigquery" | "clay" | "commonroom" | "dataforseo" | "figma" | "ga4" | "gcloud" | "github" | "gmail" | "gong" | "google_calendar" | "google_drive" | "google_slides" | "grafana" | "granola" | "hubspot" | "jira" | "mixpanel" | "notion" | "posthog" | "prometheus" | "pylon" | "salesforce" | "sentry" | "slack" | "stripe" | "twitter";
|
|
10
10
|
label: string;
|
|
11
11
|
defaultBaseUrl: string;
|
|
12
|
+
requiresConnectionId: boolean;
|
|
12
13
|
baseUrlCredentialKey: string | null;
|
|
13
14
|
auth: string;
|
|
14
15
|
credentialKeys: readonly string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-api-definitions.d.ts","sourceRoot":"","sources":["../../src/eject/provider-api-definitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,wCAAwC,CAAC;AAC7F,OAAO,EAGL,0BAA0B,IAAI,iCAAiC,EAC/D,yBAAyB,IAAI,gCAAgC,EAC7D,oBAAoB,IAAI,2BAA2B,EAEnD,yBAAyB,IAAI,gCAAgC,EAC7D,sBAAsB,IAAI,6BAA6B,EAEvD,wBAAwB,IAAI,+BAA+B,EAC3D,kCAAkC,IAAI,yCAAyC,EAC/E,2BAA2B,IAAI,kCAAkC,EACjE,yBAAyB,IAAI,gCAAgC,EAC7D,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC/B,MAAM,yCAAyC,CAAC;AAEjD,cAAc,yCAAyC,CAAC;AAMxD,eAAO,MAAM,oBAAoB,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"provider-api-definitions.d.ts","sourceRoot":"","sources":["../../src/eject/provider-api-definitions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-api-definitions.js","sourceRoot":"","sources":["../../src/eject/provider-api-definitions.ts"],"names":[],"mappings":"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","sourcesContent":["import type { WorkspaceConnectionTemplateUse } from \"@agent-native/core/connections/runtime\";\nimport {\n PROVIDER_API_IDS,\n createProviderApiRuntime as createRuntimeProviderApiRuntime,\n deleteGitHubRepositoryFile as deleteRuntimeGitHubRepositoryFile,\n executeProviderApiRequest as executeRuntimeProviderApiRequest,\n fetchProviderApiDocs as fetchRuntimeProviderApiDocs,\n getProviderApiConfig as getRuntimeProviderApiConfig,\n listGitHubRepositoryFiles as listRuntimeGitHubRepositoryFiles,\n listProviderApiCatalog as listRuntimeProviderApiCatalog,\n mergeProviderApiConfigs as mergeRuntimeProviderApiConfigs,\n readGitHubRepositoryFile as readRuntimeGitHubRepositoryFile,\n resolveProviderApiOAuthAccessToken as resolveRuntimeProviderApiOAuthAccessToken,\n searchGitHubRepositoryFiles as searchRuntimeGitHubRepositoryFiles,\n writeGitHubRepositoryFile as writeRuntimeGitHubRepositoryFile,\n type ProviderApiConfig,\n type ProviderApiId,\n type ProviderApiRuntime,\n type ProviderApiRuntimeOptions,\n} from \"@agent-native/core/provider-api/runtime\";\n\nexport * from \"@agent-native/core/provider-api/runtime\";\n\nconst provider = (id: ProviderApiId): ProviderApiConfig => ({\n ...getRuntimeProviderApiConfig(id),\n});\n\nexport const providerApiOverrides: ProviderApiConfig[] = [\n provider(\"amplitude\"),\n provider(\"apollo\"),\n provider(\"bigquery\"),\n provider(\"clay\"),\n provider(\"commonroom\"),\n provider(\"dataforseo\"),\n provider(\"ga4\"),\n provider(\"gcloud\"),\n provider(\"github\"),\n provider(\"figma\"),\n provider(\"gmail\"),\n provider(\"gong\"),\n provider(\"google_calendar\"),\n provider(\"google_drive\"),\n provider(\"google_slides\"),\n provider(\"granola\"),\n provider(\"grafana\"),\n provider(\"hubspot\"),\n provider(\"jira\"),\n provider(\"mixpanel\"),\n provider(\"notion\"),\n provider(\"posthog\"),\n provider(\"prometheus\"),\n provider(\"pylon\"),\n provider(\"sentry\"),\n provider(\"slack\"),\n provider(\"stripe\"),\n provider(\"twitter\"),\n];\n\nfunction withLocalOverrides(\n overrides: readonly ProviderApiConfig[] = [],\n): ProviderApiConfig[] {\n return [...providerApiOverrides, ...overrides];\n}\n\nfunction withLocalRuntimeOverrides(\n runtime: ProviderApiRuntimeOptions,\n): ProviderApiRuntimeOptions {\n return {\n ...runtime,\n providerOverrides: withLocalOverrides(runtime.providerOverrides),\n };\n}\n\nexport function mergeProviderApiConfigs(\n overrides: readonly ProviderApiConfig[] = [],\n): ProviderApiConfig[] {\n return mergeRuntimeProviderApiConfigs(withLocalOverrides(overrides));\n}\n\nexport function getProviderApiConfig(\n providerId: ProviderApiId | string,\n overrides: readonly ProviderApiConfig[] = [],\n): ProviderApiConfig {\n return getRuntimeProviderApiConfig(providerId, withLocalOverrides(overrides));\n}\n\nexport function listProviderApiIdsForTemplateUse(\n templateUse: WorkspaceConnectionTemplateUse,\n overrides: readonly ProviderApiConfig[] = [],\n): ProviderApiId[] {\n const configs = new Map(\n mergeProviderApiConfigs(overrides).map((config) => [config.id, config]),\n );\n return PROVIDER_API_IDS.filter((id) =>\n (configs.get(id)?.templateUses ?? []).includes(templateUse),\n );\n}\n\nexport function listProviderApiCatalog(\n providerId?: ProviderApiId | string,\n options: Parameters<typeof listRuntimeProviderApiCatalog>[1] = {},\n) {\n return listRuntimeProviderApiCatalog(providerId, {\n ...options,\n providerOverrides: withLocalOverrides(options.providerOverrides),\n });\n}\n\nexport function createProviderApiRuntime(\n options: ProviderApiRuntimeOptions,\n): ProviderApiRuntime {\n return createRuntimeProviderApiRuntime(withLocalRuntimeOverrides(options));\n}\n\nexport function fetchProviderApiDocs(\n options: Parameters<typeof fetchRuntimeProviderApiDocs>[0],\n runtime: ProviderApiRuntimeOptions = { appId: \"app\" },\n): ReturnType<typeof fetchRuntimeProviderApiDocs> {\n return fetchRuntimeProviderApiDocs(\n options,\n withLocalRuntimeOverrides(runtime),\n );\n}\n\nexport function executeProviderApiRequest(\n args: Parameters<typeof executeRuntimeProviderApiRequest>[0],\n runtime: ProviderApiRuntimeOptions,\n): ReturnType<typeof executeRuntimeProviderApiRequest> {\n return executeRuntimeProviderApiRequest(\n args,\n withLocalRuntimeOverrides(runtime),\n );\n}\n\nexport function resolveProviderApiOAuthAccessToken(\n args: Parameters<typeof resolveRuntimeProviderApiOAuthAccessToken>[0],\n runtime: ProviderApiRuntimeOptions,\n): ReturnType<typeof resolveRuntimeProviderApiOAuthAccessToken> {\n return resolveRuntimeProviderApiOAuthAccessToken(\n args,\n withLocalRuntimeOverrides(runtime),\n );\n}\n\nexport function listGitHubRepositoryFiles(\n args: Parameters<typeof listRuntimeGitHubRepositoryFiles>[0],\n runtime: ProviderApiRuntimeOptions,\n): ReturnType<typeof listRuntimeGitHubRepositoryFiles> {\n return listRuntimeGitHubRepositoryFiles(\n args,\n withLocalRuntimeOverrides(runtime),\n );\n}\n\nexport function searchGitHubRepositoryFiles(\n args: Parameters<typeof searchRuntimeGitHubRepositoryFiles>[0],\n runtime: ProviderApiRuntimeOptions,\n): ReturnType<typeof searchRuntimeGitHubRepositoryFiles> {\n return searchRuntimeGitHubRepositoryFiles(\n args,\n withLocalRuntimeOverrides(runtime),\n );\n}\n\nexport function readGitHubRepositoryFile(\n args: Parameters<typeof readRuntimeGitHubRepositoryFile>[0],\n runtime: ProviderApiRuntimeOptions,\n): ReturnType<typeof readRuntimeGitHubRepositoryFile> {\n return readRuntimeGitHubRepositoryFile(\n args,\n withLocalRuntimeOverrides(runtime),\n );\n}\n\nexport function writeGitHubRepositoryFile(\n args: Parameters<typeof writeRuntimeGitHubRepositoryFile>[0],\n runtime: ProviderApiRuntimeOptions,\n): ReturnType<typeof writeRuntimeGitHubRepositoryFile> {\n return writeRuntimeGitHubRepositoryFile(\n args,\n withLocalRuntimeOverrides(runtime),\n );\n}\n\nexport function deleteGitHubRepositoryFile(\n args: Parameters<typeof deleteRuntimeGitHubRepositoryFile>[0],\n runtime: ProviderApiRuntimeOptions,\n): ReturnType<typeof deleteRuntimeGitHubRepositoryFile> {\n return deleteRuntimeGitHubRepositoryFile(\n args,\n withLocalRuntimeOverrides(runtime),\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"provider-api-definitions.js","sourceRoot":"","sources":["../../src/eject/provider-api-definitions.ts"],"names":[],"mappings":"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","sourcesContent":["import type { WorkspaceConnectionTemplateUse } from \"@agent-native/core/connections/runtime\";\nimport {\n PROVIDER_API_IDS,\n createProviderApiRuntime as createRuntimeProviderApiRuntime,\n deleteGitHubRepositoryFile as deleteRuntimeGitHubRepositoryFile,\n executeProviderApiRequest as executeRuntimeProviderApiRequest,\n fetchProviderApiDocs as fetchRuntimeProviderApiDocs,\n getProviderApiConfig as getRuntimeProviderApiConfig,\n listGitHubRepositoryFiles as listRuntimeGitHubRepositoryFiles,\n listProviderApiCatalog as listRuntimeProviderApiCatalog,\n mergeProviderApiConfigs as mergeRuntimeProviderApiConfigs,\n readGitHubRepositoryFile as readRuntimeGitHubRepositoryFile,\n resolveProviderApiOAuthAccessToken as resolveRuntimeProviderApiOAuthAccessToken,\n searchGitHubRepositoryFiles as searchRuntimeGitHubRepositoryFiles,\n writeGitHubRepositoryFile as writeRuntimeGitHubRepositoryFile,\n type ProviderApiConfig,\n type ProviderApiId,\n type ProviderApiRuntime,\n type ProviderApiRuntimeOptions,\n} from \"@agent-native/core/provider-api/runtime\";\n\nexport * from \"@agent-native/core/provider-api/runtime\";\n\nconst provider = (id: ProviderApiId): ProviderApiConfig => ({\n ...getRuntimeProviderApiConfig(id),\n});\n\nexport const providerApiOverrides: ProviderApiConfig[] = [\n provider(\"amplitude\"),\n provider(\"apollo\"),\n provider(\"bigquery\"),\n provider(\"clay\"),\n provider(\"commonroom\"),\n provider(\"dataforseo\"),\n provider(\"ga4\"),\n provider(\"gcloud\"),\n provider(\"github\"),\n provider(\"figma\"),\n provider(\"gmail\"),\n provider(\"gong\"),\n provider(\"google_calendar\"),\n provider(\"google_drive\"),\n provider(\"google_slides\"),\n provider(\"granola\"),\n provider(\"grafana\"),\n provider(\"hubspot\"),\n provider(\"salesforce\"),\n provider(\"jira\"),\n provider(\"mixpanel\"),\n provider(\"notion\"),\n provider(\"posthog\"),\n provider(\"prometheus\"),\n provider(\"pylon\"),\n provider(\"sentry\"),\n provider(\"slack\"),\n provider(\"stripe\"),\n provider(\"twitter\"),\n];\n\nfunction withLocalOverrides(\n overrides: readonly ProviderApiConfig[] = [],\n): ProviderApiConfig[] {\n return [...providerApiOverrides, ...overrides];\n}\n\nfunction withLocalRuntimeOverrides(\n runtime: ProviderApiRuntimeOptions,\n): ProviderApiRuntimeOptions {\n return {\n ...runtime,\n providerOverrides: withLocalOverrides(runtime.providerOverrides),\n };\n}\n\nexport function mergeProviderApiConfigs(\n overrides: readonly ProviderApiConfig[] = [],\n): ProviderApiConfig[] {\n return mergeRuntimeProviderApiConfigs(withLocalOverrides(overrides));\n}\n\nexport function getProviderApiConfig(\n providerId: ProviderApiId | string,\n overrides: readonly ProviderApiConfig[] = [],\n): ProviderApiConfig {\n return getRuntimeProviderApiConfig(providerId, withLocalOverrides(overrides));\n}\n\nexport function listProviderApiIdsForTemplateUse(\n templateUse: WorkspaceConnectionTemplateUse,\n overrides: readonly ProviderApiConfig[] = [],\n): ProviderApiId[] {\n const configs = new Map(\n mergeProviderApiConfigs(overrides).map((config) => [config.id, config]),\n );\n return PROVIDER_API_IDS.filter((id) =>\n (configs.get(id)?.templateUses ?? []).includes(templateUse),\n );\n}\n\nexport function listProviderApiCatalog(\n providerId?: ProviderApiId | string,\n options: Parameters<typeof listRuntimeProviderApiCatalog>[1] = {},\n) {\n return listRuntimeProviderApiCatalog(providerId, {\n ...options,\n providerOverrides: withLocalOverrides(options.providerOverrides),\n });\n}\n\nexport function createProviderApiRuntime(\n options: ProviderApiRuntimeOptions,\n): ProviderApiRuntime {\n return createRuntimeProviderApiRuntime(withLocalRuntimeOverrides(options));\n}\n\nexport function fetchProviderApiDocs(\n options: Parameters<typeof fetchRuntimeProviderApiDocs>[0],\n runtime: ProviderApiRuntimeOptions = { appId: \"app\" },\n): ReturnType<typeof fetchRuntimeProviderApiDocs> {\n return fetchRuntimeProviderApiDocs(\n options,\n withLocalRuntimeOverrides(runtime),\n );\n}\n\nexport function executeProviderApiRequest(\n args: Parameters<typeof executeRuntimeProviderApiRequest>[0],\n runtime: ProviderApiRuntimeOptions,\n): ReturnType<typeof executeRuntimeProviderApiRequest> {\n return executeRuntimeProviderApiRequest(\n args,\n withLocalRuntimeOverrides(runtime),\n );\n}\n\nexport function resolveProviderApiOAuthAccessToken(\n args: Parameters<typeof resolveRuntimeProviderApiOAuthAccessToken>[0],\n runtime: ProviderApiRuntimeOptions,\n): ReturnType<typeof resolveRuntimeProviderApiOAuthAccessToken> {\n return resolveRuntimeProviderApiOAuthAccessToken(\n args,\n withLocalRuntimeOverrides(runtime),\n );\n}\n\nexport function listGitHubRepositoryFiles(\n args: Parameters<typeof listRuntimeGitHubRepositoryFiles>[0],\n runtime: ProviderApiRuntimeOptions,\n): ReturnType<typeof listRuntimeGitHubRepositoryFiles> {\n return listRuntimeGitHubRepositoryFiles(\n args,\n withLocalRuntimeOverrides(runtime),\n );\n}\n\nexport function searchGitHubRepositoryFiles(\n args: Parameters<typeof searchRuntimeGitHubRepositoryFiles>[0],\n runtime: ProviderApiRuntimeOptions,\n): ReturnType<typeof searchRuntimeGitHubRepositoryFiles> {\n return searchRuntimeGitHubRepositoryFiles(\n args,\n withLocalRuntimeOverrides(runtime),\n );\n}\n\nexport function readGitHubRepositoryFile(\n args: Parameters<typeof readRuntimeGitHubRepositoryFile>[0],\n runtime: ProviderApiRuntimeOptions,\n): ReturnType<typeof readRuntimeGitHubRepositoryFile> {\n return readRuntimeGitHubRepositoryFile(\n args,\n withLocalRuntimeOverrides(runtime),\n );\n}\n\nexport function writeGitHubRepositoryFile(\n args: Parameters<typeof writeRuntimeGitHubRepositoryFile>[0],\n runtime: ProviderApiRuntimeOptions,\n): ReturnType<typeof writeRuntimeGitHubRepositoryFile> {\n return writeRuntimeGitHubRepositoryFile(\n args,\n withLocalRuntimeOverrides(runtime),\n );\n}\n\nexport function deleteGitHubRepositoryFile(\n args: Parameters<typeof deleteRuntimeGitHubRepositoryFile>[0],\n runtime: ProviderApiRuntimeOptions,\n): ReturnType<typeof deleteRuntimeGitHubRepositoryFile> {\n return deleteRuntimeGitHubRepositoryFile(\n args,\n withLocalRuntimeOverrides(runtime),\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-connections.d.ts","sourceRoot":"","sources":["../../src/eject/workspace-connections.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,uCAAuC,EAC5C,KAAK,6BAA6B,EAClC,KAAK,2BAA2B,EAChC,KAAK,8BAA8B,EACpC,MAAM,wCAAwC,CAAC;AAEhD,cAAc,wCAAwC,CAAC;AAEvD,eAAO,MAAM,8BAA8B,EAAE,2BAA2B,
|
|
1
|
+
{"version":3,"file":"workspace-connections.d.ts","sourceRoot":"","sources":["../../src/eject/workspace-connections.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,uCAAuC,EAC5C,KAAK,6BAA6B,EAClC,KAAK,2BAA2B,EAChC,KAAK,8BAA8B,EACpC,MAAM,wCAAwC,CAAC;AAEhD,cAAc,wCAAwC,CAAC;AAEvD,eAAO,MAAM,8BAA8B,EAAE,2BAA2B,EAkBrE,CAAC;AAEJ,eAAO,MAAM,oCAAoC,+BACjB,CAAC;AAQjC,wBAAgB,iCAAiC,CAC/C,SAAS,GAAE,SAAS,2BAA2B,EAAO,GACrD,2BAA2B,EAAE,CAI/B;AAED,wBAAgB,gCAAgC,CAC9C,OAAO,GAAE,uCAA4C,GACpD,2BAA2B,EAAE,CAK/B;AAED,wBAAgB,8BAA8B,CAC5C,EAAE,EAAE,MAAM,EACV,SAAS,GAAE,SAAS,2BAA2B,EAAO,GACrD,2BAA2B,GAAG,SAAS,CAKzC;AAED,wBAAgB,2CAA2C,CACzD,WAAW,EAAE,8BAA8B,EAC3C,iBAAiB,GAAE,SAAS,2BAA2B,EAAO,GAC7D,2BAA2B,EAAE,CAE/B;AAED,wBAAgB,6CAA6C,CAC3D,UAAU,EAAE,6BAA6B,EACzC,iBAAiB,GAAE,SAAS,2BAA2B,EAAO,GAC7D,2BAA2B,EAAE,CAE/B;AAED,wBAAgB,mCAAmC,CACjD,YAAY,EAAE,2BAA2B,GAAG,MAAM,EAClD,UAAU,EAAE,6BAA6B,GACxC,OAAO,CAMT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-connections.js","sourceRoot":"","sources":["../../src/eject/workspace-connections.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,8BAA8B,IAAI,sCAAsC,EACxE,8BAA8B,IAAI,qCAAqC,EACvE,gCAAgC,IAAI,uCAAuC,EAC3E,iCAAiC,IAAI,wCAAwC,GAK9E,MAAM,wCAAwC,CAAC;AAEhD,cAAc,wCAAwC,CAAC;AAEvD,MAAM,CAAC,MAAM,8BAA8B,GAAkC;IAC3E,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,OAAO;IACP,cAAc;IACd,SAAS;IACT,MAAM;IACN,QAAQ;IACR,SAAS;IACT,OAAO;IACP,SAAS;CACV,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACb,GAAG,sCAAsC,CAAC,IAAI,CAC5C,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAChC;CACH,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,MAAM,oCAAoC,GAC/C,8BAA8B,CAAC;AAEjC,SAAS,kBAAkB,CACzB,SAAS,GAA2C,EAAE;IAEtD,OAAO,CAAC,GAAG,oCAAoC,EAAE,GAAG,SAAS,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,SAAS,GAA2C,EAAE;IAEtD,OAAO,wCAAwC,CAC7C,kBAAkB,CAAC,SAAS,CAAC,CAC9B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,OAAO,GAA4C,EAAE;IAErD,OAAO,uCAAuC,CAAC;QAC7C,GAAG,OAAO;QACV,iBAAiB,EAAE,kBAAkB,CAAC,OAAO,CAAC,iBAAiB,CAAC;KACjE,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,EAAU,EACV,SAAS,GAA2C,EAAE;IAEtD,OAAO,qCAAqC,CAC1C,EAAE,EACF,kBAAkB,CAAC,SAAS,CAAC,CAC9B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,2CAA2C,CACzD,WAA2C,EAC3C,iBAAiB,GAA2C,EAAE;IAE9D,OAAO,gCAAgC,CAAC,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,6CAA6C,CAC3D,UAAyC,EACzC,iBAAiB,GAA2C,EAAE;IAE9D,OAAO,gCAAgC,CAAC,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,mCAAmC,CACjD,YAAkD,EAClD,UAAyC;IAEzC,MAAM,QAAQ,GACZ,OAAO,YAAY,KAAK,QAAQ;QAC9B,CAAC,CAAC,8BAA8B,CAAC,YAAY,CAAC;QAC9C,CAAC,CAAC,YAAY,CAAC;IACnB,OAAO,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC;AAC9D,CAAC","sourcesContent":["import {\n WORKSPACE_CONNECTION_PROVIDERS as RUNTIME_WORKSPACE_CONNECTION_PROVIDERS,\n getWorkspaceConnectionProvider as getRuntimeWorkspaceConnectionProvider,\n listWorkspaceConnectionProviders as listRuntimeWorkspaceConnectionProviders,\n mergeWorkspaceConnectionProviders as mergeRuntimeWorkspaceConnectionProviders,\n type ListWorkspaceConnectionProvidersOptions,\n type WorkspaceConnectionCapability,\n type WorkspaceConnectionProvider,\n type WorkspaceConnectionTemplateUse,\n} from \"@agent-native/core/connections/runtime\";\n\nexport * from \"@agent-native/core/connections/runtime\";\n\nexport const WORKSPACE_CONNECTION_PROVIDERS: WorkspaceConnectionProvider[] = [\n \"slack\",\n \"github\",\n \"figma\",\n \"notion\",\n \"gmail\",\n \"google_drive\",\n \"hubspot\",\n \"jira\",\n \"sentry\",\n \"granola\",\n \"clips\",\n \"generic\",\n].map((id) => ({\n ...RUNTIME_WORKSPACE_CONNECTION_PROVIDERS.find(\n (provider) => provider.id === id,\n )!,\n}));\n\nexport const workspaceConnectionProviderOverrides =\n WORKSPACE_CONNECTION_PROVIDERS;\n\nfunction withLocalOverrides(\n overrides: readonly WorkspaceConnectionProvider[] = [],\n): WorkspaceConnectionProvider[] {\n return [...workspaceConnectionProviderOverrides, ...overrides];\n}\n\nexport function mergeWorkspaceConnectionProviders(\n overrides: readonly WorkspaceConnectionProvider[] = [],\n): WorkspaceConnectionProvider[] {\n return mergeRuntimeWorkspaceConnectionProviders(\n withLocalOverrides(overrides),\n );\n}\n\nexport function listWorkspaceConnectionProviders(\n options: ListWorkspaceConnectionProvidersOptions = {},\n): WorkspaceConnectionProvider[] {\n return listRuntimeWorkspaceConnectionProviders({\n ...options,\n providerOverrides: withLocalOverrides(options.providerOverrides),\n });\n}\n\nexport function getWorkspaceConnectionProvider(\n id: string,\n overrides: readonly WorkspaceConnectionProvider[] = [],\n): WorkspaceConnectionProvider | undefined {\n return getRuntimeWorkspaceConnectionProvider(\n id,\n withLocalOverrides(overrides),\n );\n}\n\nexport function listWorkspaceConnectionProvidersForTemplate(\n templateUse: WorkspaceConnectionTemplateUse,\n providerOverrides: readonly WorkspaceConnectionProvider[] = [],\n): WorkspaceConnectionProvider[] {\n return listWorkspaceConnectionProviders({ templateUse, providerOverrides });\n}\n\nexport function listWorkspaceConnectionProvidersForCapability(\n capability: WorkspaceConnectionCapability,\n providerOverrides: readonly WorkspaceConnectionProvider[] = [],\n): WorkspaceConnectionProvider[] {\n return listWorkspaceConnectionProviders({ capability, providerOverrides });\n}\n\nexport function workspaceConnectionProviderSupports(\n providerOrId: WorkspaceConnectionProvider | string,\n capability: WorkspaceConnectionCapability,\n): boolean {\n const provider =\n typeof providerOrId === \"string\"\n ? getWorkspaceConnectionProvider(providerOrId)\n : providerOrId;\n return provider?.capabilities.includes(capability) ?? false;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"workspace-connections.js","sourceRoot":"","sources":["../../src/eject/workspace-connections.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,8BAA8B,IAAI,sCAAsC,EACxE,8BAA8B,IAAI,qCAAqC,EACvE,gCAAgC,IAAI,uCAAuC,EAC3E,iCAAiC,IAAI,wCAAwC,GAK9E,MAAM,wCAAwC,CAAC;AAEhD,cAAc,wCAAwC,CAAC;AAEvD,MAAM,CAAC,MAAM,8BAA8B,GAAkC;IAC3E,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,OAAO;IACP,cAAc;IACd,SAAS;IACT,YAAY;IACZ,MAAM;IACN,QAAQ;IACR,SAAS;IACT,OAAO;IACP,SAAS;CACV,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACb,GAAG,sCAAsC,CAAC,IAAI,CAC5C,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAChC;CACH,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,MAAM,oCAAoC,GAC/C,8BAA8B,CAAC;AAEjC,SAAS,kBAAkB,CACzB,SAAS,GAA2C,EAAE;IAEtD,OAAO,CAAC,GAAG,oCAAoC,EAAE,GAAG,SAAS,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,SAAS,GAA2C,EAAE;IAEtD,OAAO,wCAAwC,CAC7C,kBAAkB,CAAC,SAAS,CAAC,CAC9B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,OAAO,GAA4C,EAAE;IAErD,OAAO,uCAAuC,CAAC;QAC7C,GAAG,OAAO;QACV,iBAAiB,EAAE,kBAAkB,CAAC,OAAO,CAAC,iBAAiB,CAAC;KACjE,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,EAAU,EACV,SAAS,GAA2C,EAAE;IAEtD,OAAO,qCAAqC,CAC1C,EAAE,EACF,kBAAkB,CAAC,SAAS,CAAC,CAC9B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,2CAA2C,CACzD,WAA2C,EAC3C,iBAAiB,GAA2C,EAAE;IAE9D,OAAO,gCAAgC,CAAC,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,6CAA6C,CAC3D,UAAyC,EACzC,iBAAiB,GAA2C,EAAE;IAE9D,OAAO,gCAAgC,CAAC,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,mCAAmC,CACjD,YAAkD,EAClD,UAAyC;IAEzC,MAAM,QAAQ,GACZ,OAAO,YAAY,KAAK,QAAQ;QAC9B,CAAC,CAAC,8BAA8B,CAAC,YAAY,CAAC;QAC9C,CAAC,CAAC,YAAY,CAAC;IACnB,OAAO,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC;AAC9D,CAAC","sourcesContent":["import {\n WORKSPACE_CONNECTION_PROVIDERS as RUNTIME_WORKSPACE_CONNECTION_PROVIDERS,\n getWorkspaceConnectionProvider as getRuntimeWorkspaceConnectionProvider,\n listWorkspaceConnectionProviders as listRuntimeWorkspaceConnectionProviders,\n mergeWorkspaceConnectionProviders as mergeRuntimeWorkspaceConnectionProviders,\n type ListWorkspaceConnectionProvidersOptions,\n type WorkspaceConnectionCapability,\n type WorkspaceConnectionProvider,\n type WorkspaceConnectionTemplateUse,\n} from \"@agent-native/core/connections/runtime\";\n\nexport * from \"@agent-native/core/connections/runtime\";\n\nexport const WORKSPACE_CONNECTION_PROVIDERS: WorkspaceConnectionProvider[] = [\n \"slack\",\n \"github\",\n \"figma\",\n \"notion\",\n \"gmail\",\n \"google_drive\",\n \"hubspot\",\n \"salesforce\",\n \"jira\",\n \"sentry\",\n \"granola\",\n \"clips\",\n \"generic\",\n].map((id) => ({\n ...RUNTIME_WORKSPACE_CONNECTION_PROVIDERS.find(\n (provider) => provider.id === id,\n )!,\n}));\n\nexport const workspaceConnectionProviderOverrides =\n WORKSPACE_CONNECTION_PROVIDERS;\n\nfunction withLocalOverrides(\n overrides: readonly WorkspaceConnectionProvider[] = [],\n): WorkspaceConnectionProvider[] {\n return [...workspaceConnectionProviderOverrides, ...overrides];\n}\n\nexport function mergeWorkspaceConnectionProviders(\n overrides: readonly WorkspaceConnectionProvider[] = [],\n): WorkspaceConnectionProvider[] {\n return mergeRuntimeWorkspaceConnectionProviders(\n withLocalOverrides(overrides),\n );\n}\n\nexport function listWorkspaceConnectionProviders(\n options: ListWorkspaceConnectionProvidersOptions = {},\n): WorkspaceConnectionProvider[] {\n return listRuntimeWorkspaceConnectionProviders({\n ...options,\n providerOverrides: withLocalOverrides(options.providerOverrides),\n });\n}\n\nexport function getWorkspaceConnectionProvider(\n id: string,\n overrides: readonly WorkspaceConnectionProvider[] = [],\n): WorkspaceConnectionProvider | undefined {\n return getRuntimeWorkspaceConnectionProvider(\n id,\n withLocalOverrides(overrides),\n );\n}\n\nexport function listWorkspaceConnectionProvidersForTemplate(\n templateUse: WorkspaceConnectionTemplateUse,\n providerOverrides: readonly WorkspaceConnectionProvider[] = [],\n): WorkspaceConnectionProvider[] {\n return listWorkspaceConnectionProviders({ templateUse, providerOverrides });\n}\n\nexport function listWorkspaceConnectionProvidersForCapability(\n capability: WorkspaceConnectionCapability,\n providerOverrides: readonly WorkspaceConnectionProvider[] = [],\n): WorkspaceConnectionProvider[] {\n return listWorkspaceConnectionProviders({ capability, providerOverrides });\n}\n\nexport function workspaceConnectionProviderSupports(\n providerOrId: WorkspaceConnectionProvider | string,\n capability: WorkspaceConnectionCapability,\n): boolean {\n const provider =\n typeof providerOrId === \"string\"\n ? getWorkspaceConnectionProvider(providerOrId)\n : providerOrId;\n return provider?.capabilities.includes(capability) ?? false;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../src/extensions/actions.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAkEhE,wBAAgB,4BAA4B,IAAI,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../src/extensions/actions.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAkEhE,wBAAgB,4BAA4B,IAAI,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAowC1E"}
|
|
@@ -518,7 +518,7 @@ export function createExtensionActionEntries() {
|
|
|
518
518
|
},
|
|
519
519
|
"update-extension": {
|
|
520
520
|
tool: {
|
|
521
|
-
description: 'Update an existing sandboxed Alpine.js mini-app extension.
|
|
521
|
+
description: 'Update an existing sandboxed Alpine.js mini-app extension. Pass exactly three fields: `id`, `operation`, and `payloadJson`. `payloadJson` is a JSON object encoded as a string so model gateways cannot fill its optional members with invalid empty placeholders. For operation="edit", pass {"edits":[...]} or {"patches":[...]} and optional format=true. For operation="replace", pass exactly one of content, contentFromAttachment, or contentFromWorkspaceFile; use this operation only for a user-requested broad visual rewrite or complete replacement body. For operation="metadata", pass name, description, or icon. Change sharing through set-resource-visibility instead. If the user is viewing the extension, use the extensionId from <current-screen> or <current-url> directly.',
|
|
522
522
|
parameters: {
|
|
523
523
|
type: "object",
|
|
524
524
|
properties: {
|
|
@@ -526,65 +526,33 @@ export function createExtensionActionEntries() {
|
|
|
526
526
|
type: "string",
|
|
527
527
|
description: "Extension id to update. Prefer the extensionId from <current-screen> or <current-url> for the current extension.",
|
|
528
528
|
},
|
|
529
|
-
|
|
530
|
-
type: "string",
|
|
531
|
-
description: "Optional new display name.",
|
|
532
|
-
},
|
|
533
|
-
description: {
|
|
534
|
-
type: "string",
|
|
535
|
-
description: "Optional new description.",
|
|
536
|
-
},
|
|
537
|
-
content: {
|
|
538
|
-
type: "string",
|
|
539
|
-
description: "Optional full replacement Alpine.js HTML body snippet.",
|
|
540
|
-
},
|
|
541
|
-
contentFromAttachment: {
|
|
529
|
+
operation: {
|
|
542
530
|
type: "string",
|
|
543
|
-
|
|
531
|
+
enum: ["edit", "replace", "metadata"],
|
|
532
|
+
description: 'The single update mode: "edit" for focused patches/edits, "replace" for an explicitly authorized complete body replacement, or "metadata" for name/description/icon.',
|
|
544
533
|
},
|
|
545
|
-
|
|
534
|
+
payloadJson: {
|
|
546
535
|
type: "string",
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
allowFullReplacement: {
|
|
550
|
-
type: "boolean",
|
|
551
|
-
description: "Explicitly allow replacing the entire existing body. Omit or set false for data-only repairs so the existing visual design is protected. Use true only when the user explicitly requested a broad visual rewrite or supplied a complete replacement body.",
|
|
552
|
-
},
|
|
553
|
-
patches: {
|
|
554
|
-
anyOf: [
|
|
555
|
-
{ type: "string" },
|
|
556
|
-
{ type: "array", items: { type: "object" } },
|
|
557
|
-
],
|
|
558
|
-
description: 'Optional patches as a JSON-encoded string or native array of { "find": "...", "replace": "...", "all"?: true, "expectedMatches"?: 1, "required"?: true } objects. Missing required targets fail instead of silently no-oping.',
|
|
559
|
-
},
|
|
560
|
-
edits: {
|
|
561
|
-
anyOf: [
|
|
562
|
-
{ type: "string" },
|
|
563
|
-
{ type: "array", items: { type: "object" } },
|
|
564
|
-
],
|
|
565
|
-
description: 'Preferred optional granular edit operations as a JSON-encoded string or native array. Examples: { "op": "insert-after", "marker": "<!-- section:metrics -->", "content": "..." }, { "op": "replace-section", "section": "npm-chart", "content": "..." }, { "op": "wrap-section", "section": "charts", "before": "<div>", "after": "</div>" }, { "op": "regex-replace", "pattern": "...", "replace": "...", "expectedMatches": 1 }.',
|
|
566
|
-
},
|
|
567
|
-
format: {
|
|
568
|
-
type: "boolean",
|
|
569
|
-
description: "When true, format the final extension HTML with Prettier after applying content, patches, and edits.",
|
|
570
|
-
},
|
|
571
|
-
icon: {
|
|
572
|
-
type: "string",
|
|
573
|
-
description: "Optional icon name or short label.",
|
|
574
|
-
},
|
|
575
|
-
visibility: {
|
|
576
|
-
type: "string",
|
|
577
|
-
description: "Optional sharing visibility. Public extension sharing is not supported; use private or org.",
|
|
578
|
-
enum: ["private", "org"],
|
|
536
|
+
minLength: 2,
|
|
537
|
+
description: 'A non-empty JSON object encoded as a string. edit example: {"edits":[{"op":"replace","find":"old","replace":"new"}],"format":true}. replace example: {"contentFromAttachment":"latest"}. metadata example: {"name":"New name"}.',
|
|
579
538
|
},
|
|
580
539
|
},
|
|
581
|
-
required: ["id"],
|
|
540
|
+
required: ["id", "operation", "payloadJson"],
|
|
541
|
+
additionalProperties: false,
|
|
582
542
|
},
|
|
583
543
|
},
|
|
584
544
|
run: async (args, ctx) => {
|
|
545
|
+
const normalizedUpdate = normalizeUpdateExtensionArgs(args);
|
|
546
|
+
if ("error" in normalizedUpdate)
|
|
547
|
+
return normalizedUpdate.error;
|
|
548
|
+
args = normalizedUpdate.args;
|
|
585
549
|
const id = String(args?.id ?? "").trim();
|
|
586
550
|
if (!id)
|
|
587
551
|
return "Error: id is required.";
|
|
552
|
+
if (args?.name !== undefined &&
|
|
553
|
+
(typeof args.name !== "string" || args.name.trim().length === 0)) {
|
|
554
|
+
return "Error: extension name must be a non-empty string. No changes were applied.";
|
|
555
|
+
}
|
|
588
556
|
const localMessage = await localExtensionEditMessage(id);
|
|
589
557
|
if (localMessage)
|
|
590
558
|
return localMessage;
|
|
@@ -601,10 +569,16 @@ export function createExtensionActionEntries() {
|
|
|
601
569
|
}, null, 2),
|
|
602
570
|
});
|
|
603
571
|
}
|
|
572
|
+
const attachmentRef = typeof args?.contentFromAttachment === "string"
|
|
573
|
+
? args.contentFromAttachment.trim()
|
|
574
|
+
: "";
|
|
575
|
+
const workspaceFileRef = typeof args?.contentFromWorkspaceFile === "string"
|
|
576
|
+
? args.contentFromWorkspaceFile.trim()
|
|
577
|
+
: "";
|
|
604
578
|
const fullReplacementRequested = (typeof args?.content === "string" &&
|
|
605
579
|
args.content.trim().length > 0) ||
|
|
606
|
-
|
|
607
|
-
|
|
580
|
+
attachmentRef.length > 0 ||
|
|
581
|
+
workspaceFileRef.length > 0;
|
|
608
582
|
if (fullReplacementRequested &&
|
|
609
583
|
!coerceBoolean(args?.allowFullReplacement)) {
|
|
610
584
|
const message = "Full extension-body replacement requires allowFullReplacement=true. No changes were applied. If the user's request includes a broad visual rewrite such as changing layout, compactness, visible sections, naming, or padding, retry once with allowFullReplacement=true; otherwise read the current extension and use focused patches/edits for a data-only repair. Do not retry unchanged arguments.";
|
|
@@ -620,27 +594,26 @@ export function createExtensionActionEntries() {
|
|
|
620
594
|
? args.content
|
|
621
595
|
: undefined;
|
|
622
596
|
if (replacementContent === undefined &&
|
|
623
|
-
(
|
|
624
|
-
args?.contentFromWorkspaceFile !== undefined)) {
|
|
597
|
+
(attachmentRef.length > 0 || workspaceFileRef.length > 0)) {
|
|
625
598
|
const resolved = await resolveExtensionContentAsync(args, ctx);
|
|
626
599
|
if ("error" in resolved)
|
|
627
600
|
return resolved.error;
|
|
628
601
|
replacementContent = resolved.content;
|
|
629
602
|
}
|
|
630
603
|
let result = null;
|
|
604
|
+
const patches = parsePatches(args.patches);
|
|
605
|
+
if (args?.patches !== undefined && !patches) {
|
|
606
|
+
return "Error: patches must be a JSON array of { find, replace } objects.";
|
|
607
|
+
}
|
|
608
|
+
const edits = parseEdits(args.edits);
|
|
609
|
+
if (args?.edits !== undefined && !edits) {
|
|
610
|
+
return "Error: edits must be a JSON array of supported extension edit operations.";
|
|
611
|
+
}
|
|
631
612
|
const hasContentUpdate = replacementContent !== undefined ||
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
args?.format
|
|
613
|
+
(patches?.length ?? 0) > 0 ||
|
|
614
|
+
(edits?.length ?? 0) > 0 ||
|
|
615
|
+
coerceBoolean(args?.format);
|
|
635
616
|
if (hasContentUpdate) {
|
|
636
|
-
const patches = parsePatches(args.patches);
|
|
637
|
-
if (args?.patches !== undefined && !patches) {
|
|
638
|
-
return "Error: patches must be a JSON array of { find, replace } objects.";
|
|
639
|
-
}
|
|
640
|
-
const edits = parseEdits(args.edits);
|
|
641
|
-
if (args?.edits !== undefined && !edits) {
|
|
642
|
-
return "Error: edits must be a JSON array of supported extension edit operations.";
|
|
643
|
-
}
|
|
644
617
|
try {
|
|
645
618
|
result = await updateExtensionContent(id, {
|
|
646
619
|
content: replacementContent,
|
|
@@ -674,12 +647,14 @@ export function createExtensionActionEntries() {
|
|
|
674
647
|
}
|
|
675
648
|
if (args?.icon !== undefined)
|
|
676
649
|
meta.icon = String(args.icon);
|
|
677
|
-
if (args?.visibility !== undefined)
|
|
650
|
+
if (args?.visibility !== undefined)
|
|
678
651
|
meta.visibility = String(args.visibility);
|
|
679
|
-
}
|
|
680
652
|
if (Object.keys(meta).length > 0) {
|
|
681
653
|
result = await updateExtension(id, meta);
|
|
682
654
|
}
|
|
655
|
+
if (!result && !hasContentUpdate && Object.keys(meta).length === 0) {
|
|
656
|
+
return "Error: update-extension received no actual changes. Choose one operation and provide a non-empty payloadJson object; empty placeholder fields are not an update.";
|
|
657
|
+
}
|
|
683
658
|
if (!result)
|
|
684
659
|
result = await getExtension(id);
|
|
685
660
|
if (!result)
|
|
@@ -1265,7 +1240,7 @@ async function summarizeExtensionForAgentRead(row, hiddenIds, includeContent, fo
|
|
|
1265
1240
|
reason: "unchanged-content-already-returned-this-run",
|
|
1266
1241
|
contentHash: fingerprint,
|
|
1267
1242
|
contentLength: row.content.length,
|
|
1268
|
-
next:
|
|
1243
|
+
next: 'Use the content already returned earlier in this run and call update-extension with operation="edit" plus focused edits/patches inside payloadJson. Set forceContent=true only if you truly need the full body again.',
|
|
1269
1244
|
},
|
|
1270
1245
|
};
|
|
1271
1246
|
}
|
|
@@ -1523,6 +1498,129 @@ async function resolveExtensionContentAsync(args, ctx) {
|
|
|
1523
1498
|
function coerceBoolean(value) {
|
|
1524
1499
|
return value === true || value === "true";
|
|
1525
1500
|
}
|
|
1501
|
+
function normalizeUpdateExtensionArgs(args) {
|
|
1502
|
+
const hasCompactContract = args?.operation !== undefined || args?.payloadJson !== undefined;
|
|
1503
|
+
if (!hasCompactContract) {
|
|
1504
|
+
const legacyArgs = { ...(args ?? {}) };
|
|
1505
|
+
const hasInvalidPlaceholderSignal = (typeof legacyArgs.visibility === "string" &&
|
|
1506
|
+
legacyArgs.visibility.trim().length === 0) ||
|
|
1507
|
+
[legacyArgs.patches, legacyArgs.edits].some((value) => value !== null &&
|
|
1508
|
+
typeof value === "object" &&
|
|
1509
|
+
(Array.isArray(value)
|
|
1510
|
+
? value.length > 0 &&
|
|
1511
|
+
value.every((item) => item !== null &&
|
|
1512
|
+
typeof item === "object" &&
|
|
1513
|
+
!Array.isArray(item) &&
|
|
1514
|
+
Object.keys(item).length === 0)
|
|
1515
|
+
: Object.keys(value).length === 0));
|
|
1516
|
+
if (hasInvalidPlaceholderSignal) {
|
|
1517
|
+
for (const [key, value] of Object.entries(legacyArgs)) {
|
|
1518
|
+
if (key === "id")
|
|
1519
|
+
continue;
|
|
1520
|
+
const empty = value === false ||
|
|
1521
|
+
value === null ||
|
|
1522
|
+
(typeof value === "string" && value.trim().length === 0) ||
|
|
1523
|
+
(Array.isArray(value) &&
|
|
1524
|
+
(value.length === 0 ||
|
|
1525
|
+
value.every((item) => item !== null &&
|
|
1526
|
+
typeof item === "object" &&
|
|
1527
|
+
!Array.isArray(item) &&
|
|
1528
|
+
Object.keys(item).length === 0))) ||
|
|
1529
|
+
(typeof value === "object" &&
|
|
1530
|
+
value !== null &&
|
|
1531
|
+
!Array.isArray(value) &&
|
|
1532
|
+
Object.keys(value).length === 0);
|
|
1533
|
+
if (empty)
|
|
1534
|
+
delete legacyArgs[key];
|
|
1535
|
+
}
|
|
1536
|
+
delete legacyArgs.visibility;
|
|
1537
|
+
}
|
|
1538
|
+
return { args: legacyArgs };
|
|
1539
|
+
}
|
|
1540
|
+
const operation = String(args?.operation ?? "").trim();
|
|
1541
|
+
if (!["edit", "replace", "metadata"].includes(operation)) {
|
|
1542
|
+
return {
|
|
1543
|
+
error: 'Error: operation must be "edit", "replace", or "metadata". No changes were applied.',
|
|
1544
|
+
};
|
|
1545
|
+
}
|
|
1546
|
+
let payload;
|
|
1547
|
+
try {
|
|
1548
|
+
payload = JSON.parse(String(args?.payloadJson ?? ""));
|
|
1549
|
+
}
|
|
1550
|
+
catch {
|
|
1551
|
+
return {
|
|
1552
|
+
error: "Error: payloadJson must be a valid JSON object encoded as a string. No changes were applied.",
|
|
1553
|
+
};
|
|
1554
|
+
}
|
|
1555
|
+
if (!payload || typeof payload !== "object" || Array.isArray(payload)) {
|
|
1556
|
+
return {
|
|
1557
|
+
error: "Error: payloadJson must decode to a non-empty JSON object. No changes were applied.",
|
|
1558
|
+
};
|
|
1559
|
+
}
|
|
1560
|
+
const payloadRecord = payload;
|
|
1561
|
+
const allowedByOperation = {
|
|
1562
|
+
edit: new Set(["patches", "edits", "format"]),
|
|
1563
|
+
replace: new Set([
|
|
1564
|
+
"content",
|
|
1565
|
+
"contentFromAttachment",
|
|
1566
|
+
"contentFromWorkspaceFile",
|
|
1567
|
+
"format",
|
|
1568
|
+
]),
|
|
1569
|
+
metadata: new Set(["name", "description", "icon"]),
|
|
1570
|
+
};
|
|
1571
|
+
const unexpected = Object.keys(payloadRecord).filter((key) => !allowedByOperation[operation].has(key));
|
|
1572
|
+
if (unexpected.length > 0) {
|
|
1573
|
+
return {
|
|
1574
|
+
error: `Error: operation=${operation} does not accept ${unexpected.join(", ")}. No changes were applied.`,
|
|
1575
|
+
};
|
|
1576
|
+
}
|
|
1577
|
+
if (operation === "edit") {
|
|
1578
|
+
const patches = parsePatches(payloadRecord.patches);
|
|
1579
|
+
const edits = parseEdits(payloadRecord.edits);
|
|
1580
|
+
const hasEdit = (patches?.length ?? 0) > 0 ||
|
|
1581
|
+
(edits?.length ?? 0) > 0 ||
|
|
1582
|
+
coerceBoolean(payloadRecord.format);
|
|
1583
|
+
if (!hasEdit) {
|
|
1584
|
+
return {
|
|
1585
|
+
error: "Error: operation=edit requires at least one valid patch/edit or format=true. No changes were applied.",
|
|
1586
|
+
};
|
|
1587
|
+
}
|
|
1588
|
+
}
|
|
1589
|
+
if (operation === "replace") {
|
|
1590
|
+
const replacementSources = [
|
|
1591
|
+
payloadRecord.content,
|
|
1592
|
+
payloadRecord.contentFromAttachment,
|
|
1593
|
+
payloadRecord.contentFromWorkspaceFile,
|
|
1594
|
+
].filter((value) => typeof value === "string" && value.trim().length > 0);
|
|
1595
|
+
if (replacementSources.length !== 1) {
|
|
1596
|
+
return {
|
|
1597
|
+
error: "Error: operation=replace requires exactly one non-empty content, contentFromAttachment, or contentFromWorkspaceFile value. No changes were applied.",
|
|
1598
|
+
};
|
|
1599
|
+
}
|
|
1600
|
+
}
|
|
1601
|
+
if (operation === "metadata") {
|
|
1602
|
+
const keys = Object.keys(payloadRecord);
|
|
1603
|
+
if (keys.length === 0) {
|
|
1604
|
+
return {
|
|
1605
|
+
error: "Error: operation=metadata requires name, description, or icon. No changes were applied.",
|
|
1606
|
+
};
|
|
1607
|
+
}
|
|
1608
|
+
if (payloadRecord.name !== undefined &&
|
|
1609
|
+
(typeof payloadRecord.name !== "string" ||
|
|
1610
|
+
payloadRecord.name.trim().length === 0)) {
|
|
1611
|
+
return {
|
|
1612
|
+
error: "Error: extension name must be a non-empty string. No changes were applied.",
|
|
1613
|
+
};
|
|
1614
|
+
}
|
|
1615
|
+
}
|
|
1616
|
+
return {
|
|
1617
|
+
args: {
|
|
1618
|
+
id: String(args?.id ?? "").trim(),
|
|
1619
|
+
...payloadRecord,
|
|
1620
|
+
...(operation === "replace" ? { allowFullReplacement: true } : {}),
|
|
1621
|
+
},
|
|
1622
|
+
};
|
|
1623
|
+
}
|
|
1526
1624
|
function parseInlineContext(value) {
|
|
1527
1625
|
if (value === undefined || value === null || value === "")
|
|
1528
1626
|
return undefined;
|