@agent-native/core 0.112.0 → 0.113.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/corpus/README.md +4 -2
- package/corpus/core/CHANGELOG.md +22 -0
- package/corpus/core/docs/AGENTS.md +7 -0
- package/corpus/core/docs/content/integrations.mdx +63 -2
- package/corpus/core/docs/design/provider-integration-authority.md +117 -0
- package/corpus/core/package.json +6 -1
- package/corpus/core/scripts/materialize-source-corpus.mjs +9 -2
- package/corpus/core/src/cli/atomic-json-file.ts +324 -0
- package/corpus/core/src/cli/claude-code-participant.ts +515 -0
- package/corpus/core/src/cli/code-agent-executor.ts +18 -10
- package/corpus/core/src/cli/code-agent-runs.concurrent-worker.ts +33 -0
- package/corpus/core/src/cli/code-agent-runs.ts +55 -62
- package/corpus/core/src/cli/codex-cli-participant.ts +496 -0
- package/corpus/core/src/cli/multi-frontier-runs.ts +1246 -135
- package/corpus/core/src/client/chat/ChatHistoryList.tsx +7 -404
- package/corpus/core/src/integrations/index.ts +10 -0
- package/corpus/core/src/integrations/slack-oauth.ts +1 -0
- package/corpus/core/src/integrations/webhook-delivery.ts +55 -0
- package/corpus/core/src/notifications/channels.ts +4 -10
- package/corpus/core/src/provider-api/actions/custom-provider-registration.ts +197 -0
- package/corpus/core/src/provider-api/actions/delete-staged-dataset.ts +3 -42
- package/corpus/core/src/provider-api/actions/list-staged-datasets.ts +3 -45
- package/corpus/core/src/provider-api/actions/provider-api-audit.ts +88 -0
- package/corpus/core/src/provider-api/actions/provider-api.ts +460 -0
- package/corpus/core/src/provider-api/actions/query-staged-dataset.ts +3 -140
- package/corpus/core/src/provider-api/actions/staged-datasets.ts +359 -0
- package/corpus/core/src/provider-api/gong.ts +108 -0
- package/corpus/core/src/scripts/docs/source-search.ts +2 -1
- package/corpus/core/src/server/google-oauth-credentials.ts +80 -3
- package/corpus/core/src/server/index.ts +6 -0
- package/corpus/core/src/styles/chat-history-list.css +1 -313
- package/corpus/core/src/templates/default/.agents/skills/actions/SKILL.md +32 -12
- package/corpus/core/src/templates/default/.agents/skills/agent-native-docs/SKILL.md +10 -0
- package/corpus/core/src/templates/default/.agents/skills/customizing-agent-native/SKILL.md +102 -0
- package/corpus/core/src/templates/default/.agents/skills/integration-webhooks/SKILL.md +323 -0
- package/corpus/core/src/templates/default/.agents/skills/onboarding/SKILL.md +56 -0
- package/corpus/core/src/templates/default/.agents/skills/secrets/SKILL.md +273 -0
- package/corpus/core/src/templates/default/.agents/skills/self-modifying-code/SKILL.md +11 -2
- package/corpus/core/src/templates/default/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
- package/corpus/core/src/templates/default/AGENTS.md +25 -18
- package/corpus/core/src/templates/headless/.agents/skills/actions/SKILL.md +512 -0
- package/corpus/core/src/templates/headless/.agents/skills/agent-native-docs/SKILL.md +10 -0
- package/corpus/core/src/templates/headless/.agents/skills/customizing-agent-native/SKILL.md +102 -0
- package/corpus/core/src/templates/headless/.agents/skills/integration-webhooks/SKILL.md +323 -0
- package/corpus/core/src/templates/headless/.agents/skills/secrets/SKILL.md +273 -0
- package/corpus/core/src/templates/headless/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
- package/corpus/core/src/templates/headless/AGENTS.md +7 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/actions/SKILL.md +32 -12
- package/corpus/core/src/templates/workspace-core/.agents/skills/agent-native-docs/SKILL.md +10 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +6 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/customizing-agent-native/SKILL.md +102 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/self-modifying-code/SKILL.md +11 -2
- package/corpus/core/src/templates/workspace-core/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
- package/corpus/core/src/templates/workspace-core/AGENTS.md +4 -0
- package/corpus/core/src/templates/workspace-root/AGENTS.md +4 -0
- package/corpus/templates/analytics/.agents/skills/actions/SKILL.md +32 -12
- package/corpus/templates/analytics/.agents/skills/customizing-agent-native/SKILL.md +102 -0
- package/corpus/templates/analytics/.agents/skills/self-modifying-code/SKILL.md +11 -2
- package/corpus/templates/analytics/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
- package/corpus/templates/analytics/actions/delete-staged-dataset.ts +3 -23
- package/corpus/templates/analytics/actions/list-staged-datasets.ts +3 -27
- package/corpus/templates/analytics/actions/provider-api-catalog.ts +16 -19
- package/corpus/templates/analytics/actions/provider-api-docs.ts +3 -5
- package/corpus/templates/analytics/actions/provider-api-request.ts +162 -185
- package/corpus/templates/analytics/actions/query-staged-dataset.ts +3 -47
- package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +52 -161
- package/corpus/templates/assets/.agents/skills/actions/SKILL.md +32 -12
- package/corpus/templates/assets/.agents/skills/customizing-agent-native/SKILL.md +102 -0
- package/corpus/templates/assets/.agents/skills/self-modifying-code/SKILL.md +11 -2
- package/corpus/templates/assets/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
- package/corpus/templates/assets/app/components/layout/Sidebar.tsx +63 -160
- package/corpus/templates/brain/.agents/skills/actions/SKILL.md +32 -12
- package/corpus/templates/brain/.agents/skills/customizing-agent-native/SKILL.md +102 -0
- package/corpus/templates/brain/.agents/skills/self-modifying-code/SKILL.md +11 -2
- package/corpus/templates/brain/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
- package/corpus/templates/brain/actions/_schemas.ts +13 -7
- package/corpus/templates/brain/actions/delete-staged-dataset.ts +3 -24
- package/corpus/templates/brain/actions/list-staged-datasets.ts +3 -28
- package/corpus/templates/brain/actions/provider-api-catalog.ts +5 -11
- package/corpus/templates/brain/actions/provider-api-docs.ts +3 -5
- package/corpus/templates/brain/actions/provider-api-request.ts +3 -37
- package/corpus/templates/brain/actions/query-staged-dataset.ts +3 -48
- package/corpus/templates/brain/actions/update-source.ts +5 -1
- package/corpus/templates/brain/app/components/layout/Sidebar.tsx +48 -154
- package/corpus/templates/brain/app/lib/brain.ts +55 -0
- package/corpus/templates/brain/app/lib/ingest-handoff.ts +35 -0
- package/corpus/templates/brain/changelog/2026-07-19-slack-backfills-can-now-join-configured-public-channels-befo.md +6 -0
- package/corpus/templates/brain/changelog/2026-07-19-slack-backfills-now-continue-across-the-configured-number-of.md +6 -0
- package/corpus/templates/brain/changelog/2026-07-19-slack-backfills-now-start-with-a-safe-four-week-window-and-r.md +6 -0
- package/corpus/templates/brain/server/lib/connectors.ts +53 -2
- package/corpus/templates/brain/server/lib/slack-channel-membership.ts +44 -0
- package/corpus/templates/brain/shared/slack-source-config.ts +60 -0
- package/corpus/templates/calendar/.agents/skills/actions/SKILL.md +32 -12
- package/corpus/templates/calendar/.agents/skills/customizing-agent-native/SKILL.md +102 -0
- package/corpus/templates/calendar/.agents/skills/self-modifying-code/SKILL.md +11 -2
- package/corpus/templates/calendar/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
- package/corpus/templates/calendar/actions/delete-staged-dataset.ts +3 -24
- package/corpus/templates/calendar/actions/list-staged-datasets.ts +3 -28
- package/corpus/templates/calendar/actions/provider-api-catalog.ts +5 -11
- package/corpus/templates/calendar/actions/provider-api-docs.ts +3 -5
- package/corpus/templates/calendar/actions/provider-api-request.ts +3 -37
- package/corpus/templates/calendar/actions/query-staged-dataset.ts +3 -48
- package/corpus/templates/calendar/server/handlers/gong.ts +6 -61
- package/corpus/templates/calendar/server/handlers/google-auth.ts +10 -8
- package/corpus/templates/calendar/server/lib/google-calendar.ts +7 -45
- package/corpus/templates/chat/.agents/skills/actions/SKILL.md +32 -12
- package/corpus/templates/chat/.agents/skills/agent-native-docs/SKILL.md +10 -0
- package/corpus/templates/chat/.agents/skills/customizing-agent-native/SKILL.md +102 -0
- package/corpus/templates/chat/.agents/skills/self-modifying-code/SKILL.md +11 -2
- package/corpus/templates/chat/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
- package/corpus/templates/chat/AGENTS.md +5 -2
- package/corpus/templates/chat/app/components/layout/Sidebar.tsx +51 -157
- package/corpus/templates/clips/.agents/skills/actions/SKILL.md +32 -12
- package/corpus/templates/clips/.agents/skills/customizing-agent-native/SKILL.md +102 -0
- package/corpus/templates/clips/.agents/skills/self-modifying-code/SKILL.md +11 -2
- package/corpus/templates/clips/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
- package/corpus/templates/clips/AGENTS.md +11 -0
- package/corpus/templates/clips/actions/export-to-brain.ts +505 -171
- package/corpus/templates/clips/changelog/2026-07-19-ready-clips-transcripts-can-be-backfilled-to-brain-for-a-bou.md +6 -0
- package/corpus/templates/clips/server/lib/calendar-event-meetings.ts +1 -1
- package/corpus/templates/clips/server/lib/google-calendar-client.ts +12 -22
- package/corpus/templates/clips/server/lib/google-calendar-oauth.ts +9 -6
- package/corpus/templates/clips/server/lib/slack-oauth.ts +12 -47
- package/corpus/templates/clips/server/routes/_agent-native/google/auth-url.get.ts +2 -6
- package/corpus/templates/clips/server/routes/api/auth/google-calendar.get.ts +4 -4
- package/corpus/templates/content/.agents/skills/actions/SKILL.md +32 -12
- package/corpus/templates/content/.agents/skills/customizing-agent-native/SKILL.md +102 -0
- package/corpus/templates/content/.agents/skills/self-modifying-code/SKILL.md +11 -2
- package/corpus/templates/content/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
- package/corpus/templates/content/actions/delete-staged-dataset.ts +3 -24
- package/corpus/templates/content/actions/list-staged-datasets.ts +3 -28
- package/corpus/templates/content/actions/provider-api-catalog.ts +5 -11
- package/corpus/templates/content/actions/provider-api-docs.ts +3 -5
- package/corpus/templates/content/actions/provider-api-request.ts +3 -37
- package/corpus/templates/content/actions/query-staged-dataset.ts +3 -48
- package/corpus/templates/design/.agents/skills/actions/SKILL.md +32 -12
- package/corpus/templates/design/.agents/skills/customizing-agent-native/SKILL.md +102 -0
- package/corpus/templates/design/.agents/skills/self-modifying-code/SKILL.md +11 -2
- package/corpus/templates/design/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
- package/corpus/templates/design/actions/delete-staged-dataset.ts +4 -23
- package/corpus/templates/design/actions/list-staged-datasets.ts +4 -27
- package/corpus/templates/design/actions/provider-api-catalog.ts +15 -18
- package/corpus/templates/design/actions/provider-api-docs.ts +57 -48
- package/corpus/templates/design/actions/provider-api-request.ts +140 -164
- package/corpus/templates/design/actions/query-staged-dataset.ts +4 -47
- package/corpus/templates/dispatch/.agents/skills/actions/SKILL.md +32 -12
- package/corpus/templates/dispatch/.agents/skills/customizing-agent-native/SKILL.md +102 -0
- package/corpus/templates/dispatch/.agents/skills/self-modifying-code/SKILL.md +11 -2
- package/corpus/templates/dispatch/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
- package/corpus/templates/dispatch/actions/delete-staged-dataset.ts +4 -23
- package/corpus/templates/dispatch/actions/list-staged-datasets.ts +4 -30
- package/corpus/templates/dispatch/actions/provider-api-catalog.ts +15 -18
- package/corpus/templates/dispatch/actions/provider-api-docs.ts +57 -48
- package/corpus/templates/dispatch/actions/provider-api-request.ts +138 -163
- package/corpus/templates/dispatch/actions/query-staged-dataset.ts +4 -47
- package/corpus/templates/forms/.agents/skills/actions/SKILL.md +32 -12
- package/corpus/templates/forms/.agents/skills/customizing-agent-native/SKILL.md +102 -0
- package/corpus/templates/forms/.agents/skills/self-modifying-code/SKILL.md +11 -2
- package/corpus/templates/forms/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
- package/corpus/templates/forms/server/lib/integrations.ts +23 -22
- package/corpus/templates/macros/.agents/skills/customizing-agent-native/SKILL.md +102 -0
- package/corpus/templates/macros/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
- package/corpus/templates/mail/.agents/skills/actions/SKILL.md +32 -12
- package/corpus/templates/mail/.agents/skills/customizing-agent-native/SKILL.md +102 -0
- package/corpus/templates/mail/.agents/skills/self-modifying-code/SKILL.md +11 -2
- package/corpus/templates/mail/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
- package/corpus/templates/mail/actions/delete-staged-dataset.ts +4 -23
- package/corpus/templates/mail/actions/list-staged-datasets.ts +4 -27
- package/corpus/templates/mail/actions/provider-api-catalog.ts +15 -18
- package/corpus/templates/mail/actions/provider-api-docs.ts +57 -48
- package/corpus/templates/mail/actions/provider-api-request.ts +146 -173
- package/corpus/templates/mail/actions/query-staged-dataset.ts +4 -47
- package/corpus/templates/mail/server/handlers/gong.ts +6 -61
- package/corpus/templates/mail/server/lib/google-auth.ts +10 -13
- package/corpus/templates/plan/.agents/skills/actions/SKILL.md +32 -12
- package/corpus/templates/plan/.agents/skills/customizing-agent-native/SKILL.md +102 -0
- package/corpus/templates/plan/.agents/skills/self-modifying-code/SKILL.md +11 -2
- package/corpus/templates/plan/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
- package/corpus/templates/plan/app/components/layout/Sidebar.tsx +47 -156
- package/corpus/templates/slides/.agents/skills/actions/SKILL.md +32 -12
- package/corpus/templates/slides/.agents/skills/customizing-agent-native/SKILL.md +102 -0
- package/corpus/templates/slides/.agents/skills/self-modifying-code/SKILL.md +11 -2
- package/corpus/templates/slides/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
- package/corpus/templates/slides/actions/delete-staged-dataset.ts +4 -23
- package/corpus/templates/slides/actions/list-staged-datasets.ts +4 -27
- package/corpus/templates/slides/actions/provider-api-catalog.ts +15 -18
- package/corpus/templates/slides/actions/provider-api-docs.ts +57 -48
- package/corpus/templates/slides/actions/provider-api-request.ts +145 -172
- package/corpus/templates/slides/actions/query-staged-dataset.ts +4 -47
- package/corpus/templates/slides/server/lib/google-docs-oauth.ts +11 -36
- package/corpus/templates/tasks/.agents/skills/actions/SKILL.md +32 -12
- package/corpus/templates/tasks/.agents/skills/agent-native-docs/SKILL.md +10 -0
- package/corpus/templates/tasks/.agents/skills/customizing-agent-native/SKILL.md +102 -0
- package/corpus/templates/tasks/.agents/skills/self-modifying-code/SKILL.md +11 -2
- package/corpus/templates/tasks/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
- package/corpus/toolkit/CHANGELOG.md +125 -0
- package/corpus/toolkit/README.md +60 -0
- package/corpus/toolkit/export-snapshot.json +35 -0
- package/corpus/toolkit/migration-manifest.json +4 -0
- package/corpus/toolkit/package.json +281 -0
- package/corpus/toolkit/scripts/finalize-build.mjs +55 -0
- package/corpus/toolkit/src/app-shell/header-actions.tsx +84 -0
- package/corpus/toolkit/src/app-shell/index.ts +1 -0
- package/corpus/toolkit/src/chat-history/ChatHistoryList.tsx +469 -0
- package/corpus/toolkit/src/chat-history/index.ts +7 -0
- package/corpus/toolkit/src/chat-history.css +314 -0
- package/corpus/toolkit/src/collab-ui/AgentPresenceChip.tsx +69 -0
- package/corpus/toolkit/src/collab-ui/LiveCursorOverlay.tsx +241 -0
- package/corpus/toolkit/src/collab-ui/PresenceBar.tsx +346 -0
- package/corpus/toolkit/src/collab-ui/RecentEditHighlights.tsx +225 -0
- package/corpus/toolkit/src/collab-ui/RemoteSelectionRings.tsx +227 -0
- package/corpus/toolkit/src/collab-ui/agent-identity.ts +16 -0
- package/corpus/toolkit/src/collab-ui/index.ts +39 -0
- package/corpus/toolkit/src/collab-ui/lead-client.ts +32 -0
- package/corpus/toolkit/src/collab-ui/types.ts +96 -0
- package/corpus/toolkit/src/composer/AgentComposerFrame.tsx +59 -0
- package/corpus/toolkit/src/composer/ComposerPlusMenu.tsx +983 -0
- package/corpus/toolkit/src/composer/MentionPopover.tsx +412 -0
- package/corpus/toolkit/src/composer/PastedTextChip.tsx +150 -0
- package/corpus/toolkit/src/composer/PromptComposer.tsx +718 -0
- package/corpus/toolkit/src/composer/RealtimeVoiceMode.tsx +856 -0
- package/corpus/toolkit/src/composer/TiptapComposer.tsx +2936 -0
- package/corpus/toolkit/src/composer/VoiceButton.tsx +255 -0
- package/corpus/toolkit/src/composer/asset-picker-url.ts +80 -0
- package/corpus/toolkit/src/composer/attachment-accept.ts +71 -0
- package/corpus/toolkit/src/composer/draft-key.ts +7 -0
- package/corpus/toolkit/src/composer/extensions/FileReference.tsx +55 -0
- package/corpus/toolkit/src/composer/extensions/MentionReference.tsx +93 -0
- package/corpus/toolkit/src/composer/extensions/SkillReference.tsx +56 -0
- package/corpus/toolkit/src/composer/index.ts +79 -0
- package/corpus/toolkit/src/composer/pasted-text.ts +160 -0
- package/corpus/toolkit/src/composer/prompt-attachments.ts +93 -0
- package/corpus/toolkit/src/composer/realtime-voice-audio-level.ts +64 -0
- package/corpus/toolkit/src/composer/realtime-voice-transcript.ts +134 -0
- package/corpus/toolkit/src/composer/runtime-adapters.tsx +343 -0
- package/corpus/toolkit/src/composer/types.ts +66 -0
- package/corpus/toolkit/src/composer/use-file-search.ts +64 -0
- package/corpus/toolkit/src/composer/use-mention-search.ts +90 -0
- package/corpus/toolkit/src/composer/use-skills.ts +45 -0
- package/corpus/toolkit/src/composer/useRealtimeVoiceMode.tsx +2117 -0
- package/corpus/toolkit/src/composer/useVoiceDictation.ts +1191 -0
- package/corpus/toolkit/src/context-ui/ContextMeter.tsx +101 -0
- package/corpus/toolkit/src/context-ui/ContextSegmentRow.tsx +184 -0
- package/corpus/toolkit/src/context-ui/ContextTreemap.tsx +125 -0
- package/corpus/toolkit/src/context-ui/ContextXRayPanel.tsx +377 -0
- package/corpus/toolkit/src/context-ui/format.ts +42 -0
- package/corpus/toolkit/src/context-ui/index.ts +15 -0
- package/corpus/toolkit/src/context-ui/types.ts +43 -0
- package/corpus/toolkit/src/design-tweaks/index.ts +1 -0
- package/corpus/toolkit/src/design-tweaks/visual-style-controls.tsx +1084 -0
- package/corpus/toolkit/src/editor/BubbleToolbar.tsx +253 -0
- package/corpus/toolkit/src/editor/CodeBlockNode.tsx +254 -0
- package/corpus/toolkit/src/editor/DragHandle.ts +1437 -0
- package/corpus/toolkit/src/editor/ImageExtension.ts +306 -0
- package/corpus/toolkit/src/editor/RegistryBlockContext.tsx +107 -0
- package/corpus/toolkit/src/editor/RegistryBlockNode.tsx +652 -0
- package/corpus/toolkit/src/editor/RichMarkdownEditor.tsx +81 -0
- package/corpus/toolkit/src/editor/RunId.ts +61 -0
- package/corpus/toolkit/src/editor/SharedRichEditor.tsx +321 -0
- package/corpus/toolkit/src/editor/SlashCommandMenu.tsx +310 -0
- package/corpus/toolkit/src/editor/extensions.ts +402 -0
- package/corpus/toolkit/src/editor/gfmDoc.ts +92 -0
- package/corpus/toolkit/src/editor/index.ts +93 -0
- package/corpus/toolkit/src/editor/registrySlashCommands.ts +131 -0
- package/corpus/toolkit/src/editor/surgical-apply.ts +192 -0
- package/corpus/toolkit/src/editor/useCollabReconcile.ts +589 -0
- package/corpus/toolkit/src/editor.css +510 -0
- package/corpus/toolkit/src/hooks/index.ts +2 -0
- package/corpus/toolkit/src/hooks/use-mobile.tsx +21 -0
- package/corpus/toolkit/src/hooks/use-toast.ts +188 -0
- package/corpus/toolkit/src/index.ts +8 -0
- package/corpus/toolkit/src/onboarding/index.ts +1 -0
- package/corpus/toolkit/src/provider.tsx +47 -0
- package/corpus/toolkit/src/sharing/VisibilityBadge.tsx +37 -0
- package/corpus/toolkit/src/sharing/index.ts +4 -0
- package/corpus/toolkit/src/styles.css +21 -0
- package/corpus/toolkit/src/ui/accordion.tsx +56 -0
- package/corpus/toolkit/src/ui/alert-dialog.tsx +141 -0
- package/corpus/toolkit/src/ui/alert.tsx +59 -0
- package/corpus/toolkit/src/ui/aspect-ratio.tsx +5 -0
- package/corpus/toolkit/src/ui/avatar.tsx +48 -0
- package/corpus/toolkit/src/ui/badge.tsx +37 -0
- package/corpus/toolkit/src/ui/breadcrumb.tsx +115 -0
- package/corpus/toolkit/src/ui/button.tsx +78 -0
- package/corpus/toolkit/src/ui/calendar.tsx +214 -0
- package/corpus/toolkit/src/ui/card.tsx +86 -0
- package/corpus/toolkit/src/ui/carousel.tsx +260 -0
- package/corpus/toolkit/src/ui/chart.tsx +375 -0
- package/corpus/toolkit/src/ui/checkbox.tsx +28 -0
- package/corpus/toolkit/src/ui/collapsible.tsx +9 -0
- package/corpus/toolkit/src/ui/command.tsx +174 -0
- package/corpus/toolkit/src/ui/context-menu.tsx +202 -0
- package/corpus/toolkit/src/ui/date-picker.tsx +64 -0
- package/corpus/toolkit/src/ui/dialog.tsx +146 -0
- package/corpus/toolkit/src/ui/drawer.tsx +126 -0
- package/corpus/toolkit/src/ui/dropdown-menu.tsx +218 -0
- package/corpus/toolkit/src/ui/form.tsx +177 -0
- package/corpus/toolkit/src/ui/hover-card.tsx +27 -0
- package/corpus/toolkit/src/ui/index.ts +52 -0
- package/corpus/toolkit/src/ui/input-otp.tsx +69 -0
- package/corpus/toolkit/src/ui/input.tsx +22 -0
- package/corpus/toolkit/src/ui/label.tsx +24 -0
- package/corpus/toolkit/src/ui/logo.tsx +36 -0
- package/corpus/toolkit/src/ui/menubar.tsx +235 -0
- package/corpus/toolkit/src/ui/navigation-menu.tsx +128 -0
- package/corpus/toolkit/src/ui/pagination.tsx +121 -0
- package/corpus/toolkit/src/ui/popover.tsx +44 -0
- package/corpus/toolkit/src/ui/progress.tsx +26 -0
- package/corpus/toolkit/src/ui/radio-group.tsx +42 -0
- package/corpus/toolkit/src/ui/resizable.tsx +43 -0
- package/corpus/toolkit/src/ui/scroll-area.tsx +46 -0
- package/corpus/toolkit/src/ui/select.tsx +158 -0
- package/corpus/toolkit/src/ui/separator.tsx +29 -0
- package/corpus/toolkit/src/ui/sheet.tsx +160 -0
- package/corpus/toolkit/src/ui/sidebar.tsx +777 -0
- package/corpus/toolkit/src/ui/skeleton.tsx +18 -0
- package/corpus/toolkit/src/ui/slider.tsx +26 -0
- package/corpus/toolkit/src/ui/sonner.tsx +58 -0
- package/corpus/toolkit/src/ui/spinner.tsx +17 -0
- package/corpus/toolkit/src/ui/switch.tsx +27 -0
- package/corpus/toolkit/src/ui/table.tsx +117 -0
- package/corpus/toolkit/src/ui/tabs.tsx +53 -0
- package/corpus/toolkit/src/ui/textarea.tsx +23 -0
- package/corpus/toolkit/src/ui/toast.tsx +127 -0
- package/corpus/toolkit/src/ui/toaster.tsx +33 -0
- package/corpus/toolkit/src/ui/toggle-group.tsx +59 -0
- package/corpus/toolkit/src/ui/toggle.tsx +43 -0
- package/corpus/toolkit/src/ui/tooltip.tsx +53 -0
- package/corpus/toolkit/src/ui/use-toast.ts +3 -0
- package/corpus/toolkit/src/utils.ts +8 -0
- package/corpus/toolkit/tsconfig.json +23 -0
- package/dist/cli/atomic-json-file.d.ts +30 -0
- package/dist/cli/atomic-json-file.d.ts.map +1 -0
- package/dist/cli/atomic-json-file.js +240 -0
- package/dist/cli/atomic-json-file.js.map +1 -0
- package/dist/cli/claude-code-participant.d.ts +77 -0
- package/dist/cli/claude-code-participant.d.ts.map +1 -0
- package/dist/cli/claude-code-participant.js +355 -0
- package/dist/cli/claude-code-participant.js.map +1 -0
- package/dist/cli/code-agent-executor.d.ts.map +1 -1
- package/dist/cli/code-agent-executor.js +18 -10
- package/dist/cli/code-agent-executor.js.map +1 -1
- package/dist/cli/code-agent-runs.concurrent-worker.d.ts +2 -0
- package/dist/cli/code-agent-runs.concurrent-worker.d.ts.map +1 -0
- package/dist/cli/code-agent-runs.concurrent-worker.js +32 -0
- package/dist/cli/code-agent-runs.concurrent-worker.js.map +1 -0
- package/dist/cli/code-agent-runs.d.ts.map +1 -1
- package/dist/cli/code-agent-runs.js +43 -56
- package/dist/cli/code-agent-runs.js.map +1 -1
- package/dist/cli/codex-cli-participant.d.ts +77 -0
- package/dist/cli/codex-cli-participant.d.ts.map +1 -0
- package/dist/cli/codex-cli-participant.js +354 -0
- package/dist/cli/codex-cli-participant.js.map +1 -0
- package/dist/cli/multi-frontier-runs.d.ts +115 -0
- package/dist/cli/multi-frontier-runs.d.ts.map +1 -1
- package/dist/cli/multi-frontier-runs.js +831 -113
- package/dist/cli/multi-frontier-runs.js.map +1 -1
- package/dist/client/chat/ChatHistoryList.d.ts +1 -87
- package/dist/client/chat/ChatHistoryList.d.ts.map +1 -1
- package/dist/client/chat/ChatHistoryList.js +1 -82
- package/dist/client/chat/ChatHistoryList.js.map +1 -1
- package/dist/integrations/index.d.ts +2 -1
- package/dist/integrations/index.d.ts.map +1 -1
- package/dist/integrations/index.js +2 -1
- package/dist/integrations/index.js.map +1 -1
- package/dist/integrations/slack-manifest.d.ts +1 -1
- package/dist/integrations/slack-oauth.d.ts +1 -1
- package/dist/integrations/slack-oauth.d.ts.map +1 -1
- package/dist/integrations/slack-oauth.js +1 -0
- package/dist/integrations/slack-oauth.js.map +1 -1
- package/dist/integrations/webhook-delivery.d.ts +23 -0
- package/dist/integrations/webhook-delivery.d.ts.map +1 -0
- package/dist/integrations/webhook-delivery.js +32 -0
- package/dist/integrations/webhook-delivery.js.map +1 -0
- package/dist/notifications/channels.d.ts.map +1 -1
- package/dist/notifications/channels.js +4 -9
- package/dist/notifications/channels.js.map +1 -1
- package/dist/notifications/routes.d.ts +3 -3
- package/dist/provider-api/actions/custom-provider-registration.d.ts +136 -0
- package/dist/provider-api/actions/custom-provider-registration.d.ts.map +1 -0
- package/dist/provider-api/actions/custom-provider-registration.js +154 -0
- package/dist/provider-api/actions/custom-provider-registration.js.map +1 -0
- package/dist/provider-api/actions/delete-staged-dataset.d.ts +1 -1
- package/dist/provider-api/actions/delete-staged-dataset.d.ts.map +1 -1
- package/dist/provider-api/actions/delete-staged-dataset.js +3 -34
- package/dist/provider-api/actions/delete-staged-dataset.js.map +1 -1
- package/dist/provider-api/actions/list-staged-datasets.d.ts +2 -3
- package/dist/provider-api/actions/list-staged-datasets.d.ts.map +1 -1
- package/dist/provider-api/actions/list-staged-datasets.js +3 -40
- package/dist/provider-api/actions/list-staged-datasets.js.map +1 -1
- package/dist/provider-api/actions/provider-api-audit.d.ts +7 -0
- package/dist/provider-api/actions/provider-api-audit.d.ts.map +1 -0
- package/dist/provider-api/actions/provider-api-audit.js +74 -0
- package/dist/provider-api/actions/provider-api-audit.js.map +1 -0
- package/dist/provider-api/actions/provider-api.d.ts +370 -0
- package/dist/provider-api/actions/provider-api.d.ts.map +1 -0
- package/dist/provider-api/actions/provider-api.js +280 -0
- package/dist/provider-api/actions/provider-api.js.map +1 -0
- package/dist/provider-api/actions/query-staged-dataset.d.ts +1 -1
- package/dist/provider-api/actions/query-staged-dataset.d.ts.map +1 -1
- package/dist/provider-api/actions/query-staged-dataset.js +3 -116
- package/dist/provider-api/actions/query-staged-dataset.js.map +1 -1
- package/dist/provider-api/actions/staged-datasets.d.ts +190 -0
- package/dist/provider-api/actions/staged-datasets.d.ts.map +1 -0
- package/dist/provider-api/actions/staged-datasets.js +210 -0
- package/dist/provider-api/actions/staged-datasets.js.map +1 -0
- package/dist/provider-api/gong.d.ts +44 -0
- package/dist/provider-api/gong.d.ts.map +1 -0
- package/dist/provider-api/gong.js +56 -0
- package/dist/provider-api/gong.js.map +1 -0
- package/dist/scripts/docs/source-search.d.ts +2 -1
- package/dist/scripts/docs/source-search.d.ts.map +1 -1
- package/dist/scripts/docs/source-search.js +2 -1
- package/dist/scripts/docs/source-search.js.map +1 -1
- package/dist/server/agent-engine-api-key-route.d.ts +1 -1
- package/dist/server/google-oauth-credentials.d.ts +35 -0
- package/dist/server/google-oauth-credentials.d.ts.map +1 -1
- package/dist/server/google-oauth-credentials.js +48 -2
- package/dist/server/google-oauth-credentials.js.map +1 -1
- package/dist/server/index.d.ts +1 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +1 -1
- package/dist/server/index.js.map +1 -1
- package/dist/styles/chat-history-list.css +1 -313
- package/dist/templates/chat/.agents/skills/actions/SKILL.md +32 -12
- package/dist/templates/chat/.agents/skills/agent-native-docs/SKILL.md +10 -0
- package/dist/templates/chat/.agents/skills/customizing-agent-native/SKILL.md +102 -0
- package/dist/templates/chat/.agents/skills/self-modifying-code/SKILL.md +11 -2
- package/dist/templates/chat/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
- package/dist/templates/chat/AGENTS.md +5 -2
- package/dist/templates/chat/app/components/layout/Sidebar.tsx +51 -157
- package/dist/templates/default/.agents/skills/actions/SKILL.md +32 -12
- package/dist/templates/default/.agents/skills/agent-native-docs/SKILL.md +10 -0
- package/dist/templates/default/.agents/skills/customizing-agent-native/SKILL.md +102 -0
- package/dist/templates/default/.agents/skills/integration-webhooks/SKILL.md +323 -0
- package/dist/templates/default/.agents/skills/onboarding/SKILL.md +56 -0
- package/dist/templates/default/.agents/skills/secrets/SKILL.md +273 -0
- package/dist/templates/default/.agents/skills/self-modifying-code/SKILL.md +11 -2
- package/dist/templates/default/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
- package/dist/templates/default/AGENTS.md +25 -18
- package/dist/templates/headless/.agents/skills/actions/SKILL.md +512 -0
- package/dist/templates/headless/.agents/skills/agent-native-docs/SKILL.md +10 -0
- package/dist/templates/headless/.agents/skills/customizing-agent-native/SKILL.md +102 -0
- package/dist/templates/headless/.agents/skills/integration-webhooks/SKILL.md +323 -0
- package/dist/templates/headless/.agents/skills/secrets/SKILL.md +273 -0
- package/dist/templates/headless/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
- package/dist/templates/headless/AGENTS.md +7 -0
- package/dist/templates/workspace-core/.agents/skills/actions/SKILL.md +32 -12
- package/dist/templates/workspace-core/.agents/skills/agent-native-docs/SKILL.md +10 -0
- package/dist/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +6 -0
- package/dist/templates/workspace-core/.agents/skills/customizing-agent-native/SKILL.md +102 -0
- package/dist/templates/workspace-core/.agents/skills/self-modifying-code/SKILL.md +11 -2
- package/dist/templates/workspace-core/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
- package/dist/templates/workspace-core/AGENTS.md +4 -0
- package/dist/templates/workspace-root/AGENTS.md +4 -0
- package/docs/AGENTS.md +7 -0
- package/docs/content/integrations.mdx +63 -2
- package/docs/design/provider-integration-authority.md +117 -0
- package/package.json +7 -2
- package/src/templates/chat/.agents/skills/actions/SKILL.md +32 -12
- package/src/templates/chat/.agents/skills/agent-native-docs/SKILL.md +10 -0
- package/src/templates/chat/.agents/skills/customizing-agent-native/SKILL.md +102 -0
- package/src/templates/chat/.agents/skills/self-modifying-code/SKILL.md +11 -2
- package/src/templates/chat/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
- package/src/templates/chat/AGENTS.md +5 -2
- package/src/templates/chat/app/components/layout/Sidebar.tsx +51 -157
- package/src/templates/default/.agents/skills/actions/SKILL.md +32 -12
- package/src/templates/default/.agents/skills/agent-native-docs/SKILL.md +10 -0
- package/src/templates/default/.agents/skills/customizing-agent-native/SKILL.md +102 -0
- package/src/templates/default/.agents/skills/integration-webhooks/SKILL.md +323 -0
- package/src/templates/default/.agents/skills/onboarding/SKILL.md +56 -0
- package/src/templates/default/.agents/skills/secrets/SKILL.md +273 -0
- package/src/templates/default/.agents/skills/self-modifying-code/SKILL.md +11 -2
- package/src/templates/default/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
- package/src/templates/default/AGENTS.md +25 -18
- package/src/templates/headless/.agents/skills/actions/SKILL.md +512 -0
- package/src/templates/headless/.agents/skills/agent-native-docs/SKILL.md +10 -0
- package/src/templates/headless/.agents/skills/customizing-agent-native/SKILL.md +102 -0
- package/src/templates/headless/.agents/skills/integration-webhooks/SKILL.md +323 -0
- package/src/templates/headless/.agents/skills/secrets/SKILL.md +273 -0
- package/src/templates/headless/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
- package/src/templates/headless/AGENTS.md +7 -0
- package/src/templates/workspace-core/.agents/skills/actions/SKILL.md +32 -12
- package/src/templates/workspace-core/.agents/skills/agent-native-docs/SKILL.md +10 -0
- package/src/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +6 -0
- package/src/templates/workspace-core/.agents/skills/customizing-agent-native/SKILL.md +102 -0
- package/src/templates/workspace-core/.agents/skills/self-modifying-code/SKILL.md +11 -2
- package/src/templates/workspace-core/.agents/skills/upgrade-agent-native/SKILL.md +6 -0
- package/src/templates/workspace-core/AGENTS.md +4 -0
- package/src/templates/workspace-root/AGENTS.md +4 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-api.js","sourceRoot":"","sources":["../../../src/provider-api/actions/provider-api.ts"],"names":[],"mappings":"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","sourcesContent":["import { z, type ZodTypeAny } from \"zod\";\n\nimport {\n defineAction,\n type ActionHttpConfig,\n type ActionRunContext,\n} from \"../../action.js\";\nimport { getCredentialContext } from \"../../server/request-context.js\";\nimport type {\n ProviderApiDocsOptions,\n ProviderApiRequestArgs,\n ProviderApiRuntime,\n} from \"../index.js\";\nimport { stagingExecuteRequest, type StagingRequestArgs } from \"../staging.js\";\nimport {\n createCustomProviderRegistrationAction,\n type CreateCustomProviderRegistrationActionOptions,\n} from \"./custom-provider-registration.js\";\nimport { buildProviderApiAuditSummary } from \"./provider-api-audit.js\";\n\nconst MethodSchema = z.enum([\"GET\", \"POST\", \"PUT\", \"PATCH\", \"DELETE\", \"HEAD\"]);\n\nconst PaginationSchema = z\n .object({\n nextCursorPath: z\n .string()\n .optional()\n .describe(\n \"Dot-path in the response JSON where the next cursor/token lives, e.g. 'next_cursor', 'meta.next', or 'nextPageToken'.\",\n ),\n cursorParam: z\n .string()\n .optional()\n .describe(\n \"Query parameter name to inject the cursor into the next request. Use cursorBodyPath for APIs that page through POST bodies.\",\n ),\n cursorBodyPath: z\n .string()\n .optional()\n .describe(\n \"Dot-path in the JSON request body to set to the next cursor. Use this for POST-body pagination.\",\n ),\n pageParam: z\n .string()\n .optional()\n .describe(\n \"Use page-number mode: this query param is incremented on each page.\",\n ),\n startPage: z.coerce\n .number()\n .int()\n .optional()\n .describe(\"Starting page number for pageParam mode (default 1).\"),\n offsetParam: z\n .string()\n .optional()\n .describe(\n \"Use offset mode: this query param is incremented by pageSize on each request.\",\n ),\n pageSize: z.coerce\n .number()\n .int()\n .min(1)\n .optional()\n .describe(\n \"Expected page size for offset increments. Defaults to the actual item count of the first page.\",\n ),\n maxPages: z.coerce\n .number()\n .int()\n .min(1)\n .max(200)\n .optional()\n .describe(\"Maximum pages to fetch server-side (default 50, max 200).\"),\n })\n .optional();\n\nconst FetchAllPagesSchema = z\n .object({\n cursorPath: z\n .string()\n .describe(\n \"Dot-path in the JSON response body where the next-page cursor lives, e.g. 'meta.next_cursor' or 'pagination.next_page_token'.\",\n ),\n cursorParam: z\n .string()\n .optional()\n .describe(\n \"Query parameter name to pass the cursor on subsequent pages, e.g. 'cursor' or 'page_token'. Use cursorBodyPath instead for APIs that put cursors in POST bodies.\",\n ),\n cursorBodyPath: z\n .string()\n .optional()\n .describe(\n \"Dot-path in the JSON request body to set to the next cursor. Use for POST-body pagination.\",\n ),\n itemsPath: z\n .string()\n .optional()\n .describe(\n \"Dot-path to the items array in each response, e.g. 'results' or 'data.items'. When omitted, the whole response body is appended per page.\",\n ),\n maxPages: z.coerce\n .number()\n .int()\n .min(1)\n .max(50)\n .optional()\n .describe(\n \"Maximum pages to fetch. Default 10, max 50. Stops early when the cursor is empty.\",\n ),\n })\n .optional()\n .describe(\n \"Enable cursor-based pagination. After each response, reads cursorPath from the JSON body and re-issues the request with cursorParam or cursorBodyPath set, accumulating items from itemsPath (or whole bodies) until cursor is empty or maxPages is reached. Combine with saveToFile to write the full dataset to a workspace file.\",\n );\n\nconst BooleanFromQuerySchema = z.preprocess(\n (value) => (typeof value === \"string\" ? value === \"true\" : value),\n z.boolean(),\n);\n\nconst WebContentSearchSchema = z.object({\n query: z.union([z.string(), z.array(z.string())]).optional(),\n queries: z.array(z.string()).optional(),\n terms: z.array(z.string()).optional(),\n regex: z.string().optional(),\n regexFlags: z.string().optional(),\n source: z.enum([\"extracted\", \"raw\"]).optional(),\n maxMatches: z.coerce.number().int().min(1).max(500).optional(),\n contextChars: z.coerce.number().int().min(0).max(1_000).optional(),\n caseSensitive: BooleanFromQuerySchema.optional(),\n});\n\nexport function createProviderApiRequestSchema(\n providerSchema: ZodTypeAny = z\n .string()\n .min(1)\n .describe(\n \"Provider id to call — built-in or a custom provider id registered via provider-api-register. Use provider-api-catalog to list available providers.\",\n ),\n) {\n return z.object({\n provider: providerSchema,\n method: MethodSchema.default(\"GET\").describe(\"HTTP method to use.\"),\n path: z\n .string()\n .min(1)\n .describe(\n \"Provider API path or a full URL on an allowed provider host. Use placeholders from provider-api-catalog when provided.\",\n ),\n query: z\n .unknown()\n .optional()\n .describe(\n \"Optional query params as a JSON object/string. Array values produce repeated query params.\",\n ),\n headers: z\n .record(z.string(), z.unknown())\n .optional()\n .describe(\n \"Optional extra headers. Unsafe hop-by-hop headers are ignored. Auth headers are injected from stored credentials.\",\n ),\n body: z\n .unknown()\n .optional()\n .describe(\n \"Optional request body. Objects/arrays are JSON encoded; strings are sent as-is.\",\n ),\n auth: z\n .enum([\"default\", \"none\"])\n .default(\"default\")\n .describe(\n \"Use default to inject configured provider auth. Use none only for public provider endpoints that intentionally require no auth.\",\n ),\n connectionId: z\n .string()\n .optional()\n .describe(\n \"Optional shared workspace connection id to use when the provider has multiple granted connections.\",\n ),\n accountId: z\n .string()\n .optional()\n .describe(\n \"Optional OAuth account id to use for OAuth-backed providers such as Gmail, Google Calendar, or Google Drive.\",\n ),\n timeoutMs: z.coerce\n .number()\n .int()\n .min(1_000)\n .max(120_000)\n .optional()\n .describe(\"Request timeout in milliseconds. Default 30000, max 120000.\"),\n maxBytes: z.coerce\n .number()\n .int()\n .min(1_000)\n .max(4 * 1024 * 1024)\n .optional()\n .describe(\n \"Maximum response bytes to read. Default 1MB, max 4MB. Ignored when saveToFile is set (allows up to 20MB).\",\n ),\n saveToFile: z\n .string()\n .optional()\n .describe(\n \"Workspace file path to save the full response body to instead of returning it in context. When set, returns a compact summary and allows up to 20MB response.\",\n ),\n stageAs: z\n .string()\n .min(1)\n .optional()\n .describe(\n \"When set, parse the response as records and write them into a staged dataset with this name. Re-staging the same name replaces the previous dataset.\",\n ),\n itemsPath: z\n .string()\n .optional()\n .describe(\n \"Dot-path to the items array in the response JSON. Omit for auto-detection.\",\n ),\n pagination: PaginationSchema.describe(\n \"Pagination config for server-side fetchAll when stageAs is set. Supports cursor, page, and offset modes.\",\n ),\n fetchAllPages: FetchAllPagesSchema,\n });\n}\n\nexport function createProviderApiCatalogSchema(\n providerSchema: ZodTypeAny = z.string(),\n) {\n return z.object({\n provider: providerSchema\n .optional()\n .describe(\n \"Optional provider id to inspect. Omit to list every available provider API.\",\n ),\n });\n}\n\nexport function createProviderApiDocsSchema(\n providerSchema: ZodTypeAny = z.string().min(1),\n) {\n return z.object({\n provider: providerSchema.describe(\n \"Provider whose API docs/spec to inspect.\",\n ),\n url: z\n .string()\n .url()\n .optional()\n .describe(\n \"Optional public documentation, OpenAPI spec, changelog, or web page URL to fetch.\",\n ),\n maxBytes: z.coerce\n .number()\n .int()\n .min(1_000)\n .max(4 * 1024 * 1024)\n .optional()\n .describe(\"Maximum response bytes to read. Default 1MB, max 4MB.\"),\n maxChars: z.coerce\n .number()\n .int()\n .min(1)\n .max(200_000)\n .optional()\n .describe(\"Maximum extracted content characters to return.\"),\n responseMode: z\n .enum([\"auto\", \"raw\", \"text\", \"markdown\", \"links\", \"metadata\", \"matches\"])\n .optional()\n .describe(\n \"How to return fetched docs. Default auto extracts HTML to markdown; use matches with search for compact snippets.\",\n ),\n extract: z\n .enum([\"readability\", \"all-visible\", \"none\"])\n .optional()\n .describe(\"HTML extraction strategy. Default readability.\"),\n includeLinks: BooleanFromQuerySchema.optional().describe(\n \"Include compact links from extracted HTML. Default true.\",\n ),\n search: WebContentSearchSchema.optional().describe(\n \"Optional post-fetch search over extracted content by default. Supports query, queries, terms, regex, source, maxMatches, and contextChars.\",\n ),\n });\n}\n\ntype ProviderRequestActionArgs = StagingRequestArgs & {\n saveToFile?: string;\n fetchAllPages?: ProviderApiRequestArgs[\"fetchAllPages\"];\n};\n\ninterface ProviderApiActionBaseOptions<TSchema extends ZodTypeAny> {\n schema?: TSchema;\n description?: string;\n http?: ActionHttpConfig | false;\n toolCallable?: boolean;\n}\n\nexport interface CreateProviderApiRequestActionOptions<\n TSchema extends ZodTypeAny = ReturnType<\n typeof createProviderApiRequestSchema\n >,\n> extends ProviderApiActionBaseOptions<TSchema> {\n appId?: string;\n getOwnerEmail?: () => string | null;\n needsApproval?:\n | boolean\n | ((\n args: z.output<TSchema>,\n ctx?: ActionRunContext,\n ) => boolean | Promise<boolean>);\n}\n\nexport function createProviderApiRequestAction<\n TSchema extends ZodTypeAny = ReturnType<\n typeof createProviderApiRequestSchema\n >,\n>(\n runtime: Pick<ProviderApiRuntime, \"executeRequest\">,\n options: CreateProviderApiRequestActionOptions<TSchema> = {},\n) {\n const schema = options.schema ?? createProviderApiRequestSchema();\n return defineAction({\n description:\n options.description ??\n \"Make an arbitrary authenticated HTTP request to a shared workspace integration, configured provider API, or custom provider registered via provider-api-register. Use this flexible escape hatch when a provider endpoint, filter, pagination mode, payload, or API version is not covered by a first-class action. Requests stay constrained to allowed provider hosts and credentials are injected by the provider runtime.\",\n schema,\n http: options.http ?? false,\n ...(options.toolCallable === undefined\n ? {}\n : { toolCallable: options.toolCallable }),\n ...(options.needsApproval === undefined\n ? {}\n : {\n needsApproval: options.needsApproval as\n | boolean\n | ((\n args: unknown,\n ctx?: ActionRunContext,\n ) => boolean | Promise<boolean>),\n }),\n audit: {\n recordInputs: false,\n target: (args) => ({\n type: \"provider-api\",\n id: String((args as ProviderRequestActionArgs).provider),\n visibility: \"private\" as const,\n }),\n summary: (args) =>\n buildProviderApiAuditSummary(args as ProviderRequestActionArgs),\n },\n run: async (rawArgs) => {\n const args = rawArgs as ProviderRequestActionArgs;\n if (args.stageAs) {\n if (!options.appId) {\n throw new Error(\n \"createProviderApiRequestAction requires appId when stageAs is used.\",\n );\n }\n const ownerEmail = options.getOwnerEmail\n ? options.getOwnerEmail()\n : (getCredentialContext()?.userEmail ?? null);\n if (!ownerEmail) {\n throw new Error(\"No authenticated context for provider API staging.\");\n }\n return stagingExecuteRequest(args, runtime.executeRequest, {\n appId: options.appId,\n ownerEmail,\n });\n }\n return runtime.executeRequest(args);\n },\n });\n}\n\nexport interface CreateProviderApiCatalogActionOptions<\n TSchema extends ZodTypeAny = ReturnType<\n typeof createProviderApiCatalogSchema\n >,\n> extends ProviderApiActionBaseOptions<TSchema> {\n guidance?: string;\n}\n\nexport function createProviderApiCatalogAction<\n TSchema extends ZodTypeAny = ReturnType<\n typeof createProviderApiCatalogSchema\n >,\n>(\n runtime: Pick<ProviderApiRuntime, \"listCatalog\">,\n options: CreateProviderApiCatalogActionOptions<TSchema> = {},\n) {\n const schema = options.schema ?? createProviderApiCatalogSchema();\n return defineAction({\n description:\n options.description ??\n \"List raw HTTP API capabilities for shared workspace integrations, configured providers, and custom registered providers. Returns setup metadata and examples, never secret values.\",\n schema,\n http: options.http ?? { method: \"GET\" },\n readOnly: true,\n run: async (rawArgs) => {\n const args = rawArgs as { provider?: string };\n return {\n providers: await runtime.listCatalog(args.provider),\n guidance:\n options.guidance ??\n \"First-class provider actions are convenience shortcuts, not capability limits. Inspect provider docs and use provider-api-request when the upstream API can express the operation safely.\",\n };\n },\n });\n}\n\nexport interface CreateProviderApiDocsActionOptions<\n TSchema extends ZodTypeAny = ReturnType<typeof createProviderApiDocsSchema>,\n> extends ProviderApiActionBaseOptions<TSchema> {}\n\nexport function createProviderApiDocsAction<\n TSchema extends ZodTypeAny = ReturnType<typeof createProviderApiDocsSchema>,\n>(\n runtime: Pick<ProviderApiRuntime, \"fetchDocs\">,\n options: CreateProviderApiDocsActionOptions<TSchema> = {},\n) {\n const schema = options.schema ?? createProviderApiDocsSchema();\n return defineAction({\n description:\n options.description ??\n \"Inspect provider API docs/spec metadata or fetch a public API documentation page, OpenAPI spec, changelog, or web page. Private and internal addresses remain blocked by the provider runtime.\",\n schema,\n http: options.http ?? { method: \"GET\" },\n readOnly: true,\n run: async (rawArgs) =>\n runtime.fetchDocs(rawArgs as ProviderApiDocsOptions),\n });\n}\n\nexport interface CreateProviderApiActionsOptions {\n request?: CreateProviderApiRequestActionOptions;\n catalog?: CreateProviderApiCatalogActionOptions;\n docs?: CreateProviderApiDocsActionOptions;\n customProviderRegistration?: boolean;\n registration?: CreateCustomProviderRegistrationActionOptions;\n}\n\nexport function createProviderApiActions(\n runtime: Pick<\n ProviderApiRuntime,\n \"executeRequest\" | \"listCatalog\" | \"fetchDocs\"\n >,\n options: CreateProviderApiActionsOptions = {},\n) {\n return {\n request: createProviderApiRequestAction(runtime, options.request),\n catalog: createProviderApiCatalogAction(runtime, options.catalog),\n docs: createProviderApiDocsAction(runtime, options.docs),\n register: options.customProviderRegistration\n ? createCustomProviderRegistrationAction(options.registration)\n : undefined,\n };\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
export { createQueryStagedDatasetAction } from "./staged-datasets.js";
|
|
1
2
|
declare const _default: import("../../action.js").ActionDefinition<{
|
|
2
3
|
datasetId: string;
|
|
3
|
-
appId: string;
|
|
4
4
|
where?: {
|
|
5
5
|
column: string;
|
|
6
6
|
op: "contains" | "equals" | "exists" | "gt" | "gte" | "lt" | "lte" | "not_contains" | "not_equals" | "not_exists";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-staged-dataset.d.ts","sourceRoot":"","sources":["../../../src/provider-api/actions/query-staged-dataset.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"query-staged-dataset.d.ts","sourceRoot":"","sources":["../../../src/provider-api/actions/query-staged-dataset.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -1,117 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
*
|
|
5
|
-
* All aggregation is done in TypeScript (no SQL JSON functions) so the action
|
|
6
|
-
* works identically on Postgres and SQLite.
|
|
7
|
-
*/
|
|
8
|
-
import { defineAction } from "../../action.js";
|
|
9
|
-
import { getCredentialContext } from "../../server/request-context.js";
|
|
10
|
-
import { runAggregateQuery } from "../staged-datasets-aggregate.js";
|
|
11
|
-
import { getStagedDatasetRows, getStagedDatasetMeta, } from "../staged-datasets-store.js";
|
|
12
|
-
const WhereSchema = z.object({
|
|
13
|
-
column: z.string().min(1),
|
|
14
|
-
op: z.enum([
|
|
15
|
-
"equals",
|
|
16
|
-
"not_equals",
|
|
17
|
-
"contains",
|
|
18
|
-
"not_contains",
|
|
19
|
-
"gt",
|
|
20
|
-
"gte",
|
|
21
|
-
"lt",
|
|
22
|
-
"lte",
|
|
23
|
-
"exists",
|
|
24
|
-
"not_exists",
|
|
25
|
-
]),
|
|
26
|
-
value: z.unknown().optional(),
|
|
27
|
-
});
|
|
28
|
-
const AggregateFieldSchema = z.object({
|
|
29
|
-
column: z.string().min(1).describe("Column to aggregate."),
|
|
30
|
-
op: z
|
|
31
|
-
.enum(["sum", "avg", "count", "min", "max", "count_distinct"])
|
|
32
|
-
.describe("Aggregation function."),
|
|
33
|
-
as: z
|
|
34
|
-
.string()
|
|
35
|
-
.optional()
|
|
36
|
-
.describe("Output column name. Default: {op}_{column}."),
|
|
37
|
-
});
|
|
38
|
-
export default defineAction({
|
|
39
|
-
description: "Run a filter/aggregate/project query over a staged dataset stored by provider-api-request (stageAs). " +
|
|
40
|
-
"All aggregation is done in-process — no SQL dialect differences. " +
|
|
41
|
-
"Use this after staging to compute counts, sums, averages, min/max, or to filter/project rows without re-fetching the provider API.",
|
|
42
|
-
schema: z.object({
|
|
43
|
-
datasetId: z
|
|
44
|
-
.string()
|
|
45
|
-
.min(1)
|
|
46
|
-
.describe("Dataset id returned by provider-api-request when stageAs was set, or from list-staged-datasets."),
|
|
47
|
-
appId: z
|
|
48
|
-
.string()
|
|
49
|
-
.min(1)
|
|
50
|
-
.describe("App id that owns the dataset (must match the staging context)."),
|
|
51
|
-
where: z
|
|
52
|
-
.array(WhereSchema)
|
|
53
|
-
.optional()
|
|
54
|
-
.describe("Optional row-level filters. All clauses must match (AND). " +
|
|
55
|
-
"Ops: equals, not_equals, contains, not_contains, gt, gte, lt, lte, exists, not_exists."),
|
|
56
|
-
groupBy: z
|
|
57
|
-
.array(z.string().min(1))
|
|
58
|
-
.optional()
|
|
59
|
-
.describe("Column(s) to group by. Omit for a single aggregate over all rows."),
|
|
60
|
-
aggregate: z
|
|
61
|
-
.array(AggregateFieldSchema)
|
|
62
|
-
.optional()
|
|
63
|
-
.describe("Aggregation fields. When set, non-group columns are aggregated. " +
|
|
64
|
-
"When omitted, rows are returned as-is (after where + select)."),
|
|
65
|
-
select: z
|
|
66
|
-
.array(z.string().min(1))
|
|
67
|
-
.optional()
|
|
68
|
-
.describe("Column projection when aggregate is empty. Omit to return all columns."),
|
|
69
|
-
orderBy: z.string().optional().describe("Sort output by this column."),
|
|
70
|
-
orderDir: z
|
|
71
|
-
.enum(["asc", "desc"])
|
|
72
|
-
.optional()
|
|
73
|
-
.describe("Sort direction (default asc)."),
|
|
74
|
-
limit: z.coerce
|
|
75
|
-
.number()
|
|
76
|
-
.int()
|
|
77
|
-
.min(1)
|
|
78
|
-
.max(10_000)
|
|
79
|
-
.optional()
|
|
80
|
-
.describe("Maximum rows to return (default all, max 10000)."),
|
|
81
|
-
}),
|
|
82
|
-
http: false,
|
|
83
|
-
readOnly: true,
|
|
84
|
-
run: async (args) => {
|
|
85
|
-
const ctx = getCredentialContext();
|
|
86
|
-
if (!ctx)
|
|
87
|
-
throw new Error("No authenticated context for query-staged-dataset.");
|
|
88
|
-
const meta = await getStagedDatasetMeta({
|
|
89
|
-
id: args.datasetId,
|
|
90
|
-
appId: args.appId,
|
|
91
|
-
ownerEmail: ctx.userEmail,
|
|
92
|
-
});
|
|
93
|
-
if (!meta) {
|
|
94
|
-
throw new Error(`Dataset ${args.datasetId} not found (or belongs to a different owner/app).`);
|
|
95
|
-
}
|
|
96
|
-
const rows = await getStagedDatasetRows({
|
|
97
|
-
id: args.datasetId,
|
|
98
|
-
appId: args.appId,
|
|
99
|
-
ownerEmail: ctx.userEmail,
|
|
100
|
-
});
|
|
101
|
-
const result = runAggregateQuery(rows, {
|
|
102
|
-
where: args.where,
|
|
103
|
-
groupBy: args.groupBy,
|
|
104
|
-
aggregate: args.aggregate,
|
|
105
|
-
select: args.select,
|
|
106
|
-
orderBy: args.orderBy,
|
|
107
|
-
orderDir: args.orderDir,
|
|
108
|
-
limit: args.limit,
|
|
109
|
-
});
|
|
110
|
-
return {
|
|
111
|
-
dataset: { id: meta.id, name: meta.name, totalRows: meta.rowCount },
|
|
112
|
-
rowCount: result.length,
|
|
113
|
-
rows: result,
|
|
114
|
-
};
|
|
115
|
-
},
|
|
116
|
-
});
|
|
1
|
+
import { createQueryStagedDatasetAction } from "./staged-datasets.js";
|
|
2
|
+
export { createQueryStagedDatasetAction } from "./staged-datasets.js";
|
|
3
|
+
export default createQueryStagedDatasetAction();
|
|
117
4
|
//# sourceMappingURL=query-staged-dataset.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-staged-dataset.js","sourceRoot":"","sources":["../../../src/provider-api/actions/query-staged-dataset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"query-staged-dataset.js","sourceRoot":"","sources":["../../../src/provider-api/actions/query-staged-dataset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AAEtE,OAAO,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AAEtE,eAAe,8BAA8B,EAAE,CAAC","sourcesContent":["import { createQueryStagedDatasetAction } from \"./staged-datasets.js\";\n\nexport { createQueryStagedDatasetAction } from \"./staged-datasets.js\";\n\nexport default createQueryStagedDatasetAction();\n"]}
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
import { z, type ZodTypeAny } from "zod";
|
|
2
|
+
import { type ActionHttpConfig } from "../../action.js";
|
|
3
|
+
import { runAggregateQuery } from "../staged-datasets-aggregate.js";
|
|
4
|
+
import { deleteStagedDataset, getStagedDatasetMeta, getStagedDatasetRows, listStagedDatasets } from "../staged-datasets-store.js";
|
|
5
|
+
export declare function createQueryStagedDatasetSchema(options?: {
|
|
6
|
+
includeAppId?: boolean;
|
|
7
|
+
}): z.ZodObject<{
|
|
8
|
+
datasetId: z.ZodString;
|
|
9
|
+
where: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
10
|
+
column: z.ZodString;
|
|
11
|
+
op: z.ZodEnum<{
|
|
12
|
+
contains: "contains";
|
|
13
|
+
equals: "equals";
|
|
14
|
+
exists: "exists";
|
|
15
|
+
gt: "gt";
|
|
16
|
+
gte: "gte";
|
|
17
|
+
lt: "lt";
|
|
18
|
+
lte: "lte";
|
|
19
|
+
not_contains: "not_contains";
|
|
20
|
+
not_equals: "not_equals";
|
|
21
|
+
not_exists: "not_exists";
|
|
22
|
+
}>;
|
|
23
|
+
value: z.ZodOptional<z.ZodUnknown>;
|
|
24
|
+
}, z.core.$strip>>>;
|
|
25
|
+
groupBy: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
26
|
+
aggregate: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
27
|
+
column: z.ZodString;
|
|
28
|
+
op: z.ZodEnum<{
|
|
29
|
+
avg: "avg";
|
|
30
|
+
count: "count";
|
|
31
|
+
count_distinct: "count_distinct";
|
|
32
|
+
max: "max";
|
|
33
|
+
min: "min";
|
|
34
|
+
sum: "sum";
|
|
35
|
+
}>;
|
|
36
|
+
as: z.ZodOptional<z.ZodString>;
|
|
37
|
+
}, z.core.$strip>>>;
|
|
38
|
+
select: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
39
|
+
orderBy: z.ZodOptional<z.ZodString>;
|
|
40
|
+
orderDir: z.ZodOptional<z.ZodEnum<{
|
|
41
|
+
asc: "asc";
|
|
42
|
+
desc: "desc";
|
|
43
|
+
}>>;
|
|
44
|
+
limit: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
|
|
45
|
+
}, z.core.$strip>;
|
|
46
|
+
export declare function createListStagedDatasetsSchema(options?: {
|
|
47
|
+
includeAppId?: boolean;
|
|
48
|
+
}): z.ZodObject<{}, z.core.$strip>;
|
|
49
|
+
export declare function createDeleteStagedDatasetSchema(options?: {
|
|
50
|
+
includeAppId?: boolean;
|
|
51
|
+
}): z.ZodObject<{
|
|
52
|
+
datasetId: z.ZodString;
|
|
53
|
+
}, z.core.$strip>;
|
|
54
|
+
export interface StagedDatasetActionRuntime {
|
|
55
|
+
getMeta: typeof getStagedDatasetMeta;
|
|
56
|
+
getRows: typeof getStagedDatasetRows;
|
|
57
|
+
list: typeof listStagedDatasets;
|
|
58
|
+
delete: typeof deleteStagedDataset;
|
|
59
|
+
aggregate: typeof runAggregateQuery;
|
|
60
|
+
}
|
|
61
|
+
interface StagedDatasetActionBaseOptions<TSchema extends ZodTypeAny> {
|
|
62
|
+
appId?: string;
|
|
63
|
+
schema?: TSchema;
|
|
64
|
+
description?: string;
|
|
65
|
+
http?: ActionHttpConfig | false;
|
|
66
|
+
getOwnerEmail?: () => string | null;
|
|
67
|
+
runtime?: StagedDatasetActionRuntime;
|
|
68
|
+
}
|
|
69
|
+
export type CreateQueryStagedDatasetActionOptions<TSchema extends ZodTypeAny = ReturnType<typeof createQueryStagedDatasetSchema>> = StagedDatasetActionBaseOptions<TSchema>;
|
|
70
|
+
export declare function createQueryStagedDatasetAction<TSchema extends ZodTypeAny = ReturnType<typeof createQueryStagedDatasetSchema>>(options?: CreateQueryStagedDatasetActionOptions<TSchema>): import("../../action.js").ActionDefinition<import("better-auth").StandardSchemaV1.InferInput<TSchema | z.ZodObject<{
|
|
71
|
+
datasetId: z.ZodString;
|
|
72
|
+
where: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
73
|
+
column: z.ZodString;
|
|
74
|
+
op: z.ZodEnum<{
|
|
75
|
+
contains: "contains";
|
|
76
|
+
equals: "equals";
|
|
77
|
+
exists: "exists";
|
|
78
|
+
gt: "gt";
|
|
79
|
+
gte: "gte";
|
|
80
|
+
lt: "lt";
|
|
81
|
+
lte: "lte";
|
|
82
|
+
not_contains: "not_contains";
|
|
83
|
+
not_equals: "not_equals";
|
|
84
|
+
not_exists: "not_exists";
|
|
85
|
+
}>;
|
|
86
|
+
value: z.ZodOptional<z.ZodUnknown>;
|
|
87
|
+
}, z.core.$strip>>>;
|
|
88
|
+
groupBy: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
89
|
+
aggregate: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
90
|
+
column: z.ZodString;
|
|
91
|
+
op: z.ZodEnum<{
|
|
92
|
+
avg: "avg";
|
|
93
|
+
count: "count";
|
|
94
|
+
count_distinct: "count_distinct";
|
|
95
|
+
max: "max";
|
|
96
|
+
min: "min";
|
|
97
|
+
sum: "sum";
|
|
98
|
+
}>;
|
|
99
|
+
as: z.ZodOptional<z.ZodString>;
|
|
100
|
+
}, z.core.$strip>>>;
|
|
101
|
+
select: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
102
|
+
orderBy: z.ZodOptional<z.ZodString>;
|
|
103
|
+
orderDir: z.ZodOptional<z.ZodEnum<{
|
|
104
|
+
asc: "asc";
|
|
105
|
+
desc: "desc";
|
|
106
|
+
}>>;
|
|
107
|
+
limit: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
|
|
108
|
+
}, z.core.$strip>>, {
|
|
109
|
+
dataset: {
|
|
110
|
+
id: string;
|
|
111
|
+
name: string;
|
|
112
|
+
totalRows: number;
|
|
113
|
+
};
|
|
114
|
+
rowCount: number;
|
|
115
|
+
rows: Record<string, unknown>[];
|
|
116
|
+
}>;
|
|
117
|
+
export type CreateListStagedDatasetsActionOptions<TSchema extends ZodTypeAny = ReturnType<typeof createListStagedDatasetsSchema>> = StagedDatasetActionBaseOptions<TSchema>;
|
|
118
|
+
export declare function createListStagedDatasetsAction<TSchema extends ZodTypeAny = ReturnType<typeof createListStagedDatasetsSchema>>(options?: CreateListStagedDatasetsActionOptions<TSchema>): import("../../action.js").ActionDefinition<import("better-auth").StandardSchemaV1.InferInput<TSchema | z.ZodObject<{}, z.core.$strip>>, {
|
|
119
|
+
datasets: {
|
|
120
|
+
id: string;
|
|
121
|
+
name: string;
|
|
122
|
+
rowCount: number;
|
|
123
|
+
columns: string[];
|
|
124
|
+
byteSize: number;
|
|
125
|
+
updatedAt: string;
|
|
126
|
+
}[];
|
|
127
|
+
total: number;
|
|
128
|
+
}>;
|
|
129
|
+
export type CreateDeleteStagedDatasetActionOptions<TSchema extends ZodTypeAny = ReturnType<typeof createDeleteStagedDatasetSchema>> = StagedDatasetActionBaseOptions<TSchema>;
|
|
130
|
+
export declare function createDeleteStagedDatasetAction<TSchema extends ZodTypeAny = ReturnType<typeof createDeleteStagedDatasetSchema>>(options?: CreateDeleteStagedDatasetActionOptions<TSchema>): import("../../action.js").ActionDefinition<import("better-auth").StandardSchemaV1.InferInput<TSchema | z.ZodObject<{
|
|
131
|
+
datasetId: z.ZodString;
|
|
132
|
+
}, z.core.$strip>>, {
|
|
133
|
+
deleted: boolean;
|
|
134
|
+
datasetId: string;
|
|
135
|
+
}>;
|
|
136
|
+
export interface CreateStagedDatasetActionsOptions {
|
|
137
|
+
appId?: string;
|
|
138
|
+
getOwnerEmail?: () => string | null;
|
|
139
|
+
runtime?: StagedDatasetActionRuntime;
|
|
140
|
+
query?: Omit<CreateQueryStagedDatasetActionOptions, "appId" | "getOwnerEmail" | "runtime">;
|
|
141
|
+
list?: Omit<CreateListStagedDatasetsActionOptions, "appId" | "getOwnerEmail" | "runtime">;
|
|
142
|
+
delete?: Omit<CreateDeleteStagedDatasetActionOptions, "appId" | "getOwnerEmail" | "runtime">;
|
|
143
|
+
}
|
|
144
|
+
export declare function createStagedDatasetActions(options?: CreateStagedDatasetActionsOptions): {
|
|
145
|
+
query: import("../../action.js").ActionDefinition<{
|
|
146
|
+
datasetId: string;
|
|
147
|
+
where?: {
|
|
148
|
+
column: string;
|
|
149
|
+
op: "contains" | "equals" | "exists" | "gt" | "gte" | "lt" | "lte" | "not_contains" | "not_equals" | "not_exists";
|
|
150
|
+
value?: unknown;
|
|
151
|
+
}[] | undefined;
|
|
152
|
+
groupBy?: string[] | undefined;
|
|
153
|
+
aggregate?: {
|
|
154
|
+
column: string;
|
|
155
|
+
op: "avg" | "count" | "count_distinct" | "max" | "min" | "sum";
|
|
156
|
+
as?: string | undefined;
|
|
157
|
+
}[] | undefined;
|
|
158
|
+
select?: string[] | undefined;
|
|
159
|
+
orderBy?: string | undefined;
|
|
160
|
+
orderDir?: "asc" | "desc" | undefined;
|
|
161
|
+
limit?: unknown;
|
|
162
|
+
}, {
|
|
163
|
+
dataset: {
|
|
164
|
+
id: string;
|
|
165
|
+
name: string;
|
|
166
|
+
totalRows: number;
|
|
167
|
+
};
|
|
168
|
+
rowCount: number;
|
|
169
|
+
rows: Record<string, unknown>[];
|
|
170
|
+
}>;
|
|
171
|
+
list: import("../../action.js").ActionDefinition<Record<string, never>, {
|
|
172
|
+
datasets: {
|
|
173
|
+
id: string;
|
|
174
|
+
name: string;
|
|
175
|
+
rowCount: number;
|
|
176
|
+
columns: string[];
|
|
177
|
+
byteSize: number;
|
|
178
|
+
updatedAt: string;
|
|
179
|
+
}[];
|
|
180
|
+
total: number;
|
|
181
|
+
}>;
|
|
182
|
+
delete: import("../../action.js").ActionDefinition<{
|
|
183
|
+
datasetId: string;
|
|
184
|
+
}, {
|
|
185
|
+
deleted: boolean;
|
|
186
|
+
datasetId: string;
|
|
187
|
+
}>;
|
|
188
|
+
};
|
|
189
|
+
export {};
|
|
190
|
+
//# sourceMappingURL=staged-datasets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"staged-datasets.d.ts","sourceRoot":"","sources":["../../../src/provider-api/actions/staged-datasets.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { defineAction } from "../../action.js";
|
|
3
|
+
import { getCredentialContext } from "../../server/request-context.js";
|
|
4
|
+
import { runAggregateQuery } from "../staged-datasets-aggregate.js";
|
|
5
|
+
import { deleteStagedDataset, getStagedDatasetMeta, getStagedDatasetRows, listStagedDatasets, } from "../staged-datasets-store.js";
|
|
6
|
+
const WhereSchema = z.object({
|
|
7
|
+
column: z.string().min(1),
|
|
8
|
+
op: z.enum([
|
|
9
|
+
"equals",
|
|
10
|
+
"not_equals",
|
|
11
|
+
"contains",
|
|
12
|
+
"not_contains",
|
|
13
|
+
"gt",
|
|
14
|
+
"gte",
|
|
15
|
+
"lt",
|
|
16
|
+
"lte",
|
|
17
|
+
"exists",
|
|
18
|
+
"not_exists",
|
|
19
|
+
]),
|
|
20
|
+
value: z.unknown().optional(),
|
|
21
|
+
});
|
|
22
|
+
const AggregateFieldSchema = z.object({
|
|
23
|
+
column: z.string().min(1).describe("Column to aggregate."),
|
|
24
|
+
op: z
|
|
25
|
+
.enum(["sum", "avg", "count", "min", "max", "count_distinct"])
|
|
26
|
+
.describe("Aggregation function."),
|
|
27
|
+
as: z
|
|
28
|
+
.string()
|
|
29
|
+
.optional()
|
|
30
|
+
.describe("Output column name. Default: {op}_{column}."),
|
|
31
|
+
});
|
|
32
|
+
export function createQueryStagedDatasetSchema(options = {}) {
|
|
33
|
+
const shape = {
|
|
34
|
+
datasetId: z
|
|
35
|
+
.string()
|
|
36
|
+
.min(1)
|
|
37
|
+
.describe("Dataset id returned by provider-api-request when stageAs was set, or from list-staged-datasets."),
|
|
38
|
+
where: z
|
|
39
|
+
.array(WhereSchema)
|
|
40
|
+
.optional()
|
|
41
|
+
.describe("Optional row-level filters. All clauses must match (AND). Ops: equals, not_equals, contains, not_contains, gt, gte, lt, lte, exists, not_exists."),
|
|
42
|
+
groupBy: z
|
|
43
|
+
.array(z.string().min(1))
|
|
44
|
+
.optional()
|
|
45
|
+
.describe("Column(s) to group by. Omit for a single aggregate over all rows."),
|
|
46
|
+
aggregate: z
|
|
47
|
+
.array(AggregateFieldSchema)
|
|
48
|
+
.optional()
|
|
49
|
+
.describe("Aggregation fields. When omitted, rows are returned as-is after filters and projection."),
|
|
50
|
+
select: z
|
|
51
|
+
.array(z.string().min(1))
|
|
52
|
+
.optional()
|
|
53
|
+
.describe("Column projection when aggregate is empty."),
|
|
54
|
+
orderBy: z.string().optional().describe("Sort output by this column."),
|
|
55
|
+
orderDir: z
|
|
56
|
+
.enum(["asc", "desc"])
|
|
57
|
+
.optional()
|
|
58
|
+
.describe("Sort direction (default asc)."),
|
|
59
|
+
limit: z.coerce
|
|
60
|
+
.number()
|
|
61
|
+
.int()
|
|
62
|
+
.min(1)
|
|
63
|
+
.max(10_000)
|
|
64
|
+
.optional()
|
|
65
|
+
.describe("Maximum rows to return (default all, max 10000)."),
|
|
66
|
+
};
|
|
67
|
+
return options.includeAppId
|
|
68
|
+
? z.object({
|
|
69
|
+
...shape,
|
|
70
|
+
appId: z.string().min(1).describe("App id that owns the dataset."),
|
|
71
|
+
})
|
|
72
|
+
: z.object(shape);
|
|
73
|
+
}
|
|
74
|
+
export function createListStagedDatasetsSchema(options = {}) {
|
|
75
|
+
return options.includeAppId
|
|
76
|
+
? z.object({
|
|
77
|
+
appId: z.string().min(1).describe("App id that owns the datasets."),
|
|
78
|
+
})
|
|
79
|
+
: z.object({});
|
|
80
|
+
}
|
|
81
|
+
export function createDeleteStagedDatasetSchema(options = {}) {
|
|
82
|
+
const shape = {
|
|
83
|
+
datasetId: z
|
|
84
|
+
.string()
|
|
85
|
+
.min(1)
|
|
86
|
+
.describe("Dataset id to delete (from list-staged-datasets)."),
|
|
87
|
+
};
|
|
88
|
+
return options.includeAppId
|
|
89
|
+
? z.object({
|
|
90
|
+
...shape,
|
|
91
|
+
appId: z.string().min(1).describe("App id that owns the dataset."),
|
|
92
|
+
})
|
|
93
|
+
: z.object(shape);
|
|
94
|
+
}
|
|
95
|
+
const defaultRuntime = {
|
|
96
|
+
getMeta: getStagedDatasetMeta,
|
|
97
|
+
getRows: getStagedDatasetRows,
|
|
98
|
+
list: listStagedDatasets,
|
|
99
|
+
delete: deleteStagedDataset,
|
|
100
|
+
aggregate: runAggregateQuery,
|
|
101
|
+
};
|
|
102
|
+
function resolveScope(actionName, args, options) {
|
|
103
|
+
const appId = options.appId ?? args.appId;
|
|
104
|
+
if (!appId)
|
|
105
|
+
throw new Error(`No app id for ${actionName}.`);
|
|
106
|
+
const ownerEmail = options.getOwnerEmail
|
|
107
|
+
? options.getOwnerEmail()
|
|
108
|
+
: (getCredentialContext()?.userEmail ?? null);
|
|
109
|
+
if (!ownerEmail)
|
|
110
|
+
throw new Error(`No authenticated context for ${actionName}.`);
|
|
111
|
+
return { appId, ownerEmail };
|
|
112
|
+
}
|
|
113
|
+
export function createQueryStagedDatasetAction(options = {}) {
|
|
114
|
+
const schema = options.schema ??
|
|
115
|
+
createQueryStagedDatasetSchema({ includeAppId: !options.appId });
|
|
116
|
+
const runtime = options.runtime ?? defaultRuntime;
|
|
117
|
+
return defineAction({
|
|
118
|
+
description: options.description ??
|
|
119
|
+
"Run a filter, aggregate, or projection query over a staged dataset stored by provider-api-request. Aggregation runs in-process and remains database-portable.",
|
|
120
|
+
schema,
|
|
121
|
+
http: options.http ?? false,
|
|
122
|
+
readOnly: true,
|
|
123
|
+
run: async (rawArgs) => {
|
|
124
|
+
const args = rawArgs;
|
|
125
|
+
const scope = resolveScope("query-staged-dataset", args, options);
|
|
126
|
+
const datasetId = String(args.datasetId ?? "");
|
|
127
|
+
const meta = await runtime.getMeta({ id: datasetId, ...scope });
|
|
128
|
+
if (!meta) {
|
|
129
|
+
throw new Error(`Dataset ${datasetId} not found (or belongs to a different owner/app).`);
|
|
130
|
+
}
|
|
131
|
+
const rows = await runtime.getRows({ id: datasetId, ...scope });
|
|
132
|
+
const result = runtime.aggregate(rows, {
|
|
133
|
+
where: args.where,
|
|
134
|
+
groupBy: args.groupBy,
|
|
135
|
+
aggregate: args.aggregate,
|
|
136
|
+
select: args.select,
|
|
137
|
+
orderBy: args.orderBy,
|
|
138
|
+
orderDir: args.orderDir,
|
|
139
|
+
limit: args.limit,
|
|
140
|
+
});
|
|
141
|
+
return {
|
|
142
|
+
dataset: { id: meta.id, name: meta.name, totalRows: meta.rowCount },
|
|
143
|
+
rowCount: result.length,
|
|
144
|
+
rows: result,
|
|
145
|
+
};
|
|
146
|
+
},
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
export function createListStagedDatasetsAction(options = {}) {
|
|
150
|
+
const schema = options.schema ??
|
|
151
|
+
createListStagedDatasetsSchema({ includeAppId: !options.appId });
|
|
152
|
+
const runtime = options.runtime ?? defaultRuntime;
|
|
153
|
+
return defineAction({
|
|
154
|
+
description: options.description ??
|
|
155
|
+
"List staged datasets stored by provider-api-request for the current user and app.",
|
|
156
|
+
schema,
|
|
157
|
+
http: options.http ?? { method: "GET" },
|
|
158
|
+
readOnly: true,
|
|
159
|
+
run: async (rawArgs) => {
|
|
160
|
+
const args = rawArgs;
|
|
161
|
+
const scope = resolveScope("list-staged-datasets", args, options);
|
|
162
|
+
const datasets = await runtime.list(scope);
|
|
163
|
+
return {
|
|
164
|
+
datasets: datasets.map((dataset) => ({
|
|
165
|
+
id: dataset.id,
|
|
166
|
+
name: dataset.name,
|
|
167
|
+
rowCount: dataset.rowCount,
|
|
168
|
+
columns: dataset.columns,
|
|
169
|
+
byteSize: dataset.byteSize,
|
|
170
|
+
updatedAt: new Date(dataset.updatedAt).toISOString(),
|
|
171
|
+
})),
|
|
172
|
+
total: datasets.length,
|
|
173
|
+
};
|
|
174
|
+
},
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
export function createDeleteStagedDatasetAction(options = {}) {
|
|
178
|
+
const schema = options.schema ??
|
|
179
|
+
createDeleteStagedDatasetSchema({ includeAppId: !options.appId });
|
|
180
|
+
const runtime = options.runtime ?? defaultRuntime;
|
|
181
|
+
return defineAction({
|
|
182
|
+
description: options.description ??
|
|
183
|
+
"Delete a staged dataset by id, freeing its scratch storage. Only the owner who staged the dataset can delete it.",
|
|
184
|
+
schema,
|
|
185
|
+
http: options.http ?? false,
|
|
186
|
+
run: async (rawArgs) => {
|
|
187
|
+
const args = rawArgs;
|
|
188
|
+
const scope = resolveScope("delete-staged-dataset", args, options);
|
|
189
|
+
const datasetId = String(args.datasetId ?? "");
|
|
190
|
+
const deleted = await runtime.delete({ id: datasetId, ...scope });
|
|
191
|
+
if (!deleted) {
|
|
192
|
+
throw new Error(`Dataset ${datasetId} not found (or belongs to a different owner/app).`);
|
|
193
|
+
}
|
|
194
|
+
return { deleted: true, datasetId };
|
|
195
|
+
},
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
export function createStagedDatasetActions(options = {}) {
|
|
199
|
+
const shared = {
|
|
200
|
+
appId: options.appId,
|
|
201
|
+
getOwnerEmail: options.getOwnerEmail,
|
|
202
|
+
runtime: options.runtime,
|
|
203
|
+
};
|
|
204
|
+
return {
|
|
205
|
+
query: createQueryStagedDatasetAction({ ...shared, ...options.query }),
|
|
206
|
+
list: createListStagedDatasetsAction({ ...shared, ...options.list }),
|
|
207
|
+
delete: createDeleteStagedDatasetAction({ ...shared, ...options.delete }),
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
//# sourceMappingURL=staged-datasets.js.map
|