@agent-native/core 0.7.12 → 0.7.14
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/README.md +1 -1
- package/dist/a2a/client.d.ts +44 -1
- package/dist/a2a/client.d.ts.map +1 -1
- package/dist/a2a/client.js +88 -11
- package/dist/a2a/client.js.map +1 -1
- package/dist/a2a/handlers.d.ts +10 -0
- package/dist/a2a/handlers.d.ts.map +1 -1
- package/dist/a2a/handlers.js +287 -62
- package/dist/a2a/handlers.js.map +1 -1
- package/dist/a2a/server.d.ts.map +1 -1
- package/dist/a2a/server.js +95 -17
- package/dist/a2a/server.js.map +1 -1
- package/dist/a2a/task-store.d.ts +11 -1
- package/dist/a2a/task-store.d.ts.map +1 -1
- package/dist/a2a/task-store.js +38 -2
- package/dist/a2a/task-store.js.map +1 -1
- package/dist/agent/engine/ai-sdk-engine.d.ts.map +1 -1
- package/dist/agent/engine/ai-sdk-engine.js +26 -8
- package/dist/agent/engine/ai-sdk-engine.js.map +1 -1
- package/dist/agent/engine/builder-engine.d.ts +19 -0
- package/dist/agent/engine/builder-engine.d.ts.map +1 -0
- package/dist/agent/engine/builder-engine.js +412 -0
- package/dist/agent/engine/builder-engine.js.map +1 -0
- package/dist/agent/engine/builtin.d.ts.map +1 -1
- package/dist/agent/engine/builtin.js +26 -10
- package/dist/agent/engine/builtin.js.map +1 -1
- package/dist/agent/engine/index.d.ts +1 -1
- package/dist/agent/engine/index.d.ts.map +1 -1
- package/dist/agent/engine/index.js +1 -1
- package/dist/agent/engine/index.js.map +1 -1
- package/dist/agent/engine/registry.d.ts +20 -1
- package/dist/agent/engine/registry.d.ts.map +1 -1
- package/dist/agent/engine/registry.js +49 -1
- package/dist/agent/engine/registry.js.map +1 -1
- package/dist/agent/engine/types.d.ts +30 -0
- package/dist/agent/engine/types.d.ts.map +1 -1
- package/dist/agent/engine/types.js +19 -1
- package/dist/agent/engine/types.js.map +1 -1
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +65 -7
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/agent/run-manager.d.ts.map +1 -1
- package/dist/agent/run-manager.js +11 -1
- package/dist/agent/run-manager.js.map +1 -1
- package/dist/agent/thread-data-builder.d.ts +4 -0
- package/dist/agent/thread-data-builder.d.ts.map +1 -1
- package/dist/agent/thread-data-builder.js +1 -0
- package/dist/agent/thread-data-builder.js.map +1 -1
- package/dist/agent/types.d.ts +8 -0
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/chat-threads/store.d.ts +3 -0
- package/dist/chat-threads/store.d.ts.map +1 -1
- package/dist/chat-threads/store.js +32 -0
- package/dist/chat-threads/store.js.map +1 -1
- package/dist/checkpoints/service.d.ts +1 -0
- package/dist/checkpoints/service.d.ts.map +1 -1
- package/dist/checkpoints/service.js +26 -2
- package/dist/checkpoints/service.js.map +1 -1
- package/dist/cli/create.d.ts +30 -0
- package/dist/cli/create.d.ts.map +1 -1
- package/dist/cli/create.js +25 -13
- package/dist/cli/create.js.map +1 -1
- package/dist/cli/templates-meta.d.ts.map +1 -1
- package/dist/cli/templates-meta.js +11 -0
- package/dist/cli/templates-meta.js.map +1 -1
- package/dist/client/AgentPanel.d.ts +3 -1
- package/dist/client/AgentPanel.d.ts.map +1 -1
- package/dist/client/AgentPanel.js +22 -11
- package/dist/client/AgentPanel.js.map +1 -1
- package/dist/client/AgentTaskCard.d.ts.map +1 -1
- package/dist/client/AgentTaskCard.js +2 -0
- package/dist/client/AgentTaskCard.js.map +1 -1
- package/dist/client/AssistantChat.d.ts +2 -0
- package/dist/client/AssistantChat.d.ts.map +1 -1
- package/dist/client/AssistantChat.js +159 -84
- package/dist/client/AssistantChat.js.map +1 -1
- package/dist/client/ConnectBuilderCard.d.ts +1 -7
- package/dist/client/ConnectBuilderCard.d.ts.map +1 -1
- package/dist/client/ConnectBuilderCard.js +30 -132
- package/dist/client/ConnectBuilderCard.js.map +1 -1
- package/dist/client/ErrorBoundary.d.ts +1 -3
- package/dist/client/ErrorBoundary.d.ts.map +1 -1
- package/dist/client/ErrorBoundary.js +37 -9
- package/dist/client/ErrorBoundary.js.map +1 -1
- package/dist/client/FeedbackButton.d.ts.map +1 -1
- package/dist/client/FeedbackButton.js +4 -3
- package/dist/client/FeedbackButton.js.map +1 -1
- package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
- package/dist/client/MultiTabAssistantChat.js +169 -52
- package/dist/client/MultiTabAssistantChat.js.map +1 -1
- package/dist/client/agent-chat.d.ts +11 -0
- package/dist/client/agent-chat.d.ts.map +1 -1
- package/dist/client/agent-chat.js +1 -1
- package/dist/client/agent-chat.js.map +1 -1
- package/dist/client/analytics.d.ts +5 -8
- package/dist/client/analytics.d.ts.map +1 -1
- package/dist/client/analytics.js +53 -11
- package/dist/client/analytics.js.map +1 -1
- package/dist/client/builder-mark.d.ts +9 -0
- package/dist/client/builder-mark.d.ts.map +1 -0
- package/dist/client/builder-mark.js +10 -0
- package/dist/client/builder-mark.js.map +1 -0
- package/dist/client/components/AgentPresenceChip.d.ts +12 -0
- package/dist/client/components/AgentPresenceChip.d.ts.map +1 -0
- package/dist/client/components/AgentPresenceChip.js +42 -0
- package/dist/client/components/AgentPresenceChip.js.map +1 -0
- package/dist/client/components/PresenceBar.d.ts +17 -0
- package/dist/client/components/PresenceBar.d.ts.map +1 -0
- package/dist/client/components/PresenceBar.js +118 -0
- package/dist/client/components/PresenceBar.js.map +1 -0
- package/dist/client/components/ui/popover.d.ts +8 -0
- package/dist/client/components/ui/popover.d.ts.map +1 -0
- package/dist/client/components/ui/popover.js +11 -0
- package/dist/client/components/ui/popover.js.map +1 -0
- package/dist/client/composer/ComposerPlusMenu.d.ts +7 -0
- package/dist/client/composer/ComposerPlusMenu.d.ts.map +1 -0
- package/dist/client/composer/ComposerPlusMenu.js +183 -0
- package/dist/client/composer/ComposerPlusMenu.js.map +1 -0
- package/dist/client/composer/TiptapComposer.d.ts.map +1 -1
- package/dist/client/composer/TiptapComposer.js +244 -19
- package/dist/client/composer/TiptapComposer.js.map +1 -1
- package/dist/client/composer/types.d.ts +1 -0
- package/dist/client/composer/types.d.ts.map +1 -1
- package/dist/client/composer/useVoiceDictation.d.ts +2 -0
- package/dist/client/composer/useVoiceDictation.d.ts.map +1 -1
- package/dist/client/composer/useVoiceDictation.js +89 -12
- package/dist/client/composer/useVoiceDictation.js.map +1 -1
- package/dist/client/error-format.d.ts +2 -0
- package/dist/client/error-format.d.ts.map +1 -0
- package/dist/client/error-format.js +31 -0
- package/dist/client/error-format.js.map +1 -0
- package/dist/client/index.d.ts +6 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +8 -1
- package/dist/client/index.js.map +1 -1
- package/dist/client/observability/ObservabilityDashboard.d.ts +5 -0
- package/dist/client/observability/ObservabilityDashboard.d.ts.map +1 -0
- package/dist/client/observability/ObservabilityDashboard.js +169 -0
- package/dist/client/observability/ObservabilityDashboard.js.map +1 -0
- package/dist/client/observability/ThumbsFeedback.d.ts +8 -0
- package/dist/client/observability/ThumbsFeedback.d.ts.map +1 -0
- package/dist/client/observability/ThumbsFeedback.js +64 -0
- package/dist/client/observability/ThumbsFeedback.js.map +1 -0
- package/dist/client/observability/index.d.ts +4 -0
- package/dist/client/observability/index.d.ts.map +1 -0
- package/dist/client/observability/index.js +4 -0
- package/dist/client/observability/index.js.map +1 -0
- package/dist/client/observability/useObservability.d.ts +128 -0
- package/dist/client/observability/useObservability.d.ts.map +1 -0
- package/dist/client/observability/useObservability.js +109 -0
- package/dist/client/observability/useObservability.js.map +1 -0
- package/dist/client/onboarding/OnboardingPanel.d.ts.map +1 -1
- package/dist/client/onboarding/OnboardingPanel.js +34 -92
- package/dist/client/onboarding/OnboardingPanel.js.map +1 -1
- package/dist/client/org/RequireActiveOrg.d.ts +33 -0
- package/dist/client/org/RequireActiveOrg.d.ts.map +1 -0
- package/dist/client/org/RequireActiveOrg.js +68 -0
- package/dist/client/org/RequireActiveOrg.js.map +1 -0
- package/dist/client/org/TeamPage.d.ts.map +1 -1
- package/dist/client/org/TeamPage.js +125 -4
- package/dist/client/org/TeamPage.js.map +1 -1
- package/dist/client/org/hooks.d.ts +30 -0
- package/dist/client/org/hooks.d.ts.map +1 -1
- package/dist/client/org/hooks.js +115 -15
- package/dist/client/org/hooks.js.map +1 -1
- package/dist/client/org/index.d.ts +3 -2
- package/dist/client/org/index.d.ts.map +1 -1
- package/dist/client/org/index.js +2 -1
- package/dist/client/org/index.js.map +1 -1
- package/dist/client/resources/ResourcesPanel.d.ts.map +1 -1
- package/dist/client/resources/ResourcesPanel.js +8 -4
- package/dist/client/resources/ResourcesPanel.js.map +1 -1
- package/dist/client/settings/AutomationsSection.d.ts.map +1 -1
- package/dist/client/settings/AutomationsSection.js +2 -1
- package/dist/client/settings/AutomationsSection.js.map +1 -1
- package/dist/client/settings/BrowserSection.js +1 -1
- package/dist/client/settings/BrowserSection.js.map +1 -1
- package/dist/client/settings/SettingsPanel.d.ts.map +1 -1
- package/dist/client/settings/SettingsPanel.js +133 -20
- package/dist/client/settings/SettingsPanel.js.map +1 -1
- package/dist/client/settings/VoiceTranscriptionSection.d.ts.map +1 -1
- package/dist/client/settings/VoiceTranscriptionSection.js +10 -4
- package/dist/client/settings/VoiceTranscriptionSection.js.map +1 -1
- package/dist/client/settings/useBuilderStatus.d.ts +26 -0
- package/dist/client/settings/useBuilderStatus.d.ts.map +1 -1
- package/dist/client/settings/useBuilderStatus.js +128 -4
- package/dist/client/settings/useBuilderStatus.js.map +1 -1
- package/dist/client/sse-event-processor.d.ts +2 -0
- package/dist/client/sse-event-processor.d.ts.map +1 -1
- package/dist/client/sse-event-processor.js +16 -2
- package/dist/client/sse-event-processor.js.map +1 -1
- package/dist/client/tools/ToolEditor.d.ts +5 -0
- package/dist/client/tools/ToolEditor.d.ts.map +1 -0
- package/dist/client/tools/ToolEditor.js +98 -0
- package/dist/client/tools/ToolEditor.js.map +1 -0
- package/dist/client/tools/ToolViewer.d.ts +5 -0
- package/dist/client/tools/ToolViewer.d.ts.map +1 -0
- package/dist/client/tools/ToolViewer.js +309 -0
- package/dist/client/tools/ToolViewer.js.map +1 -0
- package/dist/client/tools/ToolViewerPage.d.ts +2 -0
- package/dist/client/tools/ToolViewerPage.d.ts.map +1 -0
- package/dist/client/tools/ToolViewerPage.js +23 -0
- package/dist/client/tools/ToolViewerPage.js.map +1 -0
- package/dist/client/tools/ToolsListPage.d.ts +2 -0
- package/dist/client/tools/ToolsListPage.d.ts.map +1 -0
- package/dist/client/tools/ToolsListPage.js +72 -0
- package/dist/client/tools/ToolsListPage.js.map +1 -0
- package/dist/client/tools/ToolsSidebarSection.d.ts +2 -0
- package/dist/client/tools/ToolsSidebarSection.d.ts.map +1 -0
- package/dist/client/tools/ToolsSidebarSection.js +188 -0
- package/dist/client/tools/ToolsSidebarSection.js.map +1 -0
- package/dist/client/tools/index.d.ts +6 -0
- package/dist/client/tools/index.d.ts.map +1 -0
- package/dist/client/tools/index.js +6 -0
- package/dist/client/tools/index.js.map +1 -0
- package/dist/client/transcription/BuilderTranscriptionCta.d.ts +9 -0
- package/dist/client/transcription/BuilderTranscriptionCta.d.ts.map +1 -0
- package/dist/client/transcription/BuilderTranscriptionCta.js +18 -0
- package/dist/client/transcription/BuilderTranscriptionCta.js.map +1 -0
- package/dist/client/transcription/use-live-transcription.d.ts +29 -0
- package/dist/client/transcription/use-live-transcription.d.ts.map +1 -0
- package/dist/client/transcription/use-live-transcription.js +156 -0
- package/dist/client/transcription/use-live-transcription.js.map +1 -0
- package/dist/client/use-builder-enabled.d.ts +17 -0
- package/dist/client/use-builder-enabled.d.ts.map +1 -0
- package/dist/client/use-builder-enabled.js +36 -0
- package/dist/client/use-builder-enabled.js.map +1 -0
- package/dist/client/use-chat-threads.d.ts +1 -0
- package/dist/client/use-chat-threads.d.ts.map +1 -1
- package/dist/client/use-chat-threads.js +29 -0
- package/dist/client/use-chat-threads.js.map +1 -1
- package/dist/client/use-db-sync.d.ts.map +1 -1
- package/dist/client/use-db-sync.js +10 -8
- package/dist/client/use-db-sync.js.map +1 -1
- package/dist/client/useProductionAgent.d.ts.map +1 -1
- package/dist/client/useProductionAgent.js +3 -1
- package/dist/client/useProductionAgent.js.map +1 -1
- package/dist/collab/agent-identity.d.ts +15 -0
- package/dist/collab/agent-identity.d.ts.map +1 -0
- package/dist/collab/agent-identity.js +14 -0
- package/dist/collab/agent-identity.js.map +1 -0
- package/dist/collab/agent-presence.d.ts +59 -0
- package/dist/collab/agent-presence.d.ts.map +1 -0
- package/dist/collab/agent-presence.js +165 -0
- package/dist/collab/agent-presence.js.map +1 -0
- package/dist/collab/awareness.d.ts +7 -0
- package/dist/collab/awareness.d.ts.map +1 -1
- package/dist/collab/awareness.js +2 -2
- package/dist/collab/awareness.js.map +1 -1
- package/dist/collab/client-struct.d.ts +43 -0
- package/dist/collab/client-struct.d.ts.map +1 -0
- package/dist/collab/client-struct.js +272 -0
- package/dist/collab/client-struct.js.map +1 -0
- package/dist/collab/client.d.ts +2 -0
- package/dist/collab/client.d.ts.map +1 -1
- package/dist/collab/client.js +15 -1
- package/dist/collab/client.js.map +1 -1
- package/dist/collab/index.d.ts +6 -1
- package/dist/collab/index.d.ts.map +1 -1
- package/dist/collab/index.js +11 -1
- package/dist/collab/index.js.map +1 -1
- package/dist/collab/json-to-yjs.d.ts +72 -0
- package/dist/collab/json-to-yjs.d.ts.map +1 -0
- package/dist/collab/json-to-yjs.js +456 -0
- package/dist/collab/json-to-yjs.js.map +1 -0
- package/dist/collab/struct-routes.d.ts +52 -0
- package/dist/collab/struct-routes.d.ts.map +1 -0
- package/dist/collab/struct-routes.js +74 -0
- package/dist/collab/struct-routes.js.map +1 -0
- package/dist/collab/ydoc-manager.d.ts +19 -0
- package/dist/collab/ydoc-manager.d.ts.map +1 -1
- package/dist/collab/ydoc-manager.js +49 -0
- package/dist/collab/ydoc-manager.js.map +1 -1
- package/dist/db/migrations.d.ts +9 -0
- package/dist/db/migrations.d.ts.map +1 -1
- package/dist/db/migrations.js +75 -10
- package/dist/db/migrations.js.map +1 -1
- package/dist/deploy/build.js +1 -1
- package/dist/file-upload/builder.d.ts.map +1 -1
- package/dist/file-upload/builder.js +13 -5
- package/dist/file-upload/builder.js.map +1 -1
- package/dist/integrations/adapters/email.d.ts +17 -0
- package/dist/integrations/adapters/email.d.ts.map +1 -0
- package/dist/integrations/adapters/email.js +620 -0
- package/dist/integrations/adapters/email.js.map +1 -0
- package/dist/integrations/adapters/telegram.d.ts.map +1 -1
- package/dist/integrations/adapters/telegram.js +19 -3
- package/dist/integrations/adapters/telegram.js.map +1 -1
- package/dist/integrations/index.d.ts +1 -0
- package/dist/integrations/index.d.ts.map +1 -1
- package/dist/integrations/index.js +1 -0
- package/dist/integrations/index.js.map +1 -1
- package/dist/integrations/internal-token.d.ts +18 -0
- package/dist/integrations/internal-token.d.ts.map +1 -0
- package/dist/integrations/internal-token.js +86 -0
- package/dist/integrations/internal-token.js.map +1 -0
- package/dist/integrations/pending-tasks-retry-job.d.ts +15 -0
- package/dist/integrations/pending-tasks-retry-job.d.ts.map +1 -0
- package/dist/integrations/pending-tasks-retry-job.js +199 -0
- package/dist/integrations/pending-tasks-retry-job.js.map +1 -0
- package/dist/integrations/pending-tasks-store.d.ts +40 -0
- package/dist/integrations/pending-tasks-store.d.ts.map +1 -0
- package/dist/integrations/pending-tasks-store.js +151 -0
- package/dist/integrations/pending-tasks-store.js.map +1 -0
- package/dist/integrations/plugin.d.ts.map +1 -1
- package/dist/integrations/plugin.js +151 -9
- package/dist/integrations/plugin.js.map +1 -1
- package/dist/integrations/task-queue-stats.d.ts +22 -0
- package/dist/integrations/task-queue-stats.d.ts.map +1 -0
- package/dist/integrations/task-queue-stats.js +117 -0
- package/dist/integrations/task-queue-stats.js.map +1 -0
- package/dist/integrations/types.d.ts +2 -0
- package/dist/integrations/types.d.ts.map +1 -1
- package/dist/integrations/webhook-handler.d.ts +23 -4
- package/dist/integrations/webhook-handler.d.ts.map +1 -1
- package/dist/integrations/webhook-handler.js +217 -59
- package/dist/integrations/webhook-handler.js.map +1 -1
- package/dist/jobs/tools.d.ts.map +1 -1
- package/dist/jobs/tools.js +137 -161
- package/dist/jobs/tools.js.map +1 -1
- package/dist/mcp-client/manager.d.ts +3 -0
- package/dist/mcp-client/manager.d.ts.map +1 -1
- package/dist/mcp-client/manager.js +5 -0
- package/dist/mcp-client/manager.js.map +1 -1
- package/dist/notifications/actions.d.ts +2 -2
- package/dist/notifications/actions.d.ts.map +1 -1
- package/dist/notifications/actions.js +77 -69
- package/dist/notifications/actions.js.map +1 -1
- package/dist/oauth-tokens/google-refresh.d.ts.map +1 -1
- package/dist/oauth-tokens/google-refresh.js +6 -0
- package/dist/oauth-tokens/google-refresh.js.map +1 -1
- package/dist/observability/evals.d.ts +22 -0
- package/dist/observability/evals.d.ts.map +1 -0
- package/dist/observability/evals.js +371 -0
- package/dist/observability/evals.js.map +1 -0
- package/dist/observability/experiments.d.ts +24 -0
- package/dist/observability/experiments.d.ts.map +1 -0
- package/dist/observability/experiments.js +274 -0
- package/dist/observability/experiments.js.map +1 -0
- package/dist/observability/feedback.d.ts +14 -0
- package/dist/observability/feedback.d.ts.map +1 -0
- package/dist/observability/feedback.js +256 -0
- package/dist/observability/feedback.js.map +1 -0
- package/dist/observability/index.d.ts +6 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +5 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/plugin.d.ts +2 -0
- package/dist/observability/plugin.d.ts.map +1 -0
- package/dist/observability/plugin.js +12 -0
- package/dist/observability/plugin.js.map +1 -0
- package/dist/observability/routes.d.ts +68 -0
- package/dist/observability/routes.d.ts.map +1 -0
- package/dist/observability/routes.js +301 -0
- package/dist/observability/routes.js.map +1 -0
- package/dist/observability/store.d.ts +77 -0
- package/dist/observability/store.d.ts.map +1 -0
- package/dist/observability/store.js +976 -0
- package/dist/observability/store.js.map +1 -0
- package/dist/observability/traces.d.ts +37 -0
- package/dist/observability/traces.d.ts.map +1 -0
- package/dist/observability/traces.js +182 -0
- package/dist/observability/traces.js.map +1 -0
- package/dist/observability/types.d.ts +159 -0
- package/dist/observability/types.d.ts.map +1 -0
- package/dist/observability/types.js +16 -0
- package/dist/observability/types.js.map +1 -0
- package/dist/onboarding/default-steps.d.ts.map +1 -1
- package/dist/onboarding/default-steps.js +15 -7
- package/dist/onboarding/default-steps.js.map +1 -1
- package/dist/onboarding/types.d.ts +10 -1
- package/dist/onboarding/types.d.ts.map +1 -1
- package/dist/org/context.d.ts +43 -1
- package/dist/org/context.d.ts.map +1 -1
- package/dist/org/context.js +299 -6
- package/dist/org/context.js.map +1 -1
- package/dist/org/handlers.d.ts +76 -0
- package/dist/org/handlers.d.ts.map +1 -1
- package/dist/org/handlers.js +460 -32
- package/dist/org/handlers.js.map +1 -1
- package/dist/org/index.d.ts +2 -2
- package/dist/org/index.d.ts.map +1 -1
- package/dist/org/index.js +2 -2
- package/dist/org/index.js.map +1 -1
- package/dist/org/migrations.d.ts.map +1 -1
- package/dist/org/migrations.js +8 -0
- package/dist/org/migrations.js.map +1 -1
- package/dist/org/plugin.d.ts +6 -0
- package/dist/org/plugin.d.ts.map +1 -1
- package/dist/org/plugin.js +71 -7
- package/dist/org/plugin.js.map +1 -1
- package/dist/org/schema.d.ts +38 -0
- package/dist/org/schema.d.ts.map +1 -1
- package/dist/org/schema.js +2 -0
- package/dist/org/schema.js.map +1 -1
- package/dist/org/types.d.ts +7 -0
- package/dist/org/types.d.ts.map +1 -1
- package/dist/progress/actions.d.ts +3 -0
- package/dist/progress/actions.d.ts.map +1 -1
- package/dist/progress/actions.js +86 -110
- package/dist/progress/actions.js.map +1 -1
- package/dist/progress/routes.d.ts +1 -1
- package/dist/progress/routes.js +1 -1
- package/dist/scripts/agent-engines/list-agent-engines.js +1 -1
- package/dist/scripts/agent-engines/list-agent-engines.js.map +1 -1
- package/dist/scripts/agent-engines/manage-agent-engine.d.ts +10 -0
- package/dist/scripts/agent-engines/manage-agent-engine.d.ts.map +1 -0
- package/dist/scripts/agent-engines/manage-agent-engine.js +47 -0
- package/dist/scripts/agent-engines/manage-agent-engine.js.map +1 -0
- package/dist/scripts/agent-engines/set-agent-engine.js +2 -2
- package/dist/scripts/agent-engines/set-agent-engine.js.map +1 -1
- package/dist/scripts/call-agent.d.ts.map +1 -1
- package/dist/scripts/call-agent.js +90 -18
- package/dist/scripts/call-agent.js.map +1 -1
- package/dist/scripts/db/index.d.ts.map +1 -1
- package/dist/scripts/db/index.js +2 -0
- package/dist/scripts/db/index.js.map +1 -1
- package/dist/scripts/db/migrate-user-api-keys.d.ts +24 -0
- package/dist/scripts/db/migrate-user-api-keys.d.ts.map +1 -0
- package/dist/scripts/db/migrate-user-api-keys.js +224 -0
- package/dist/scripts/db/migrate-user-api-keys.js.map +1 -0
- package/dist/scripts/db/wipe-leaked-builder-keys.d.ts +27 -0
- package/dist/scripts/db/wipe-leaked-builder-keys.d.ts.map +1 -0
- package/dist/scripts/db/wipe-leaked-builder-keys.js +163 -0
- package/dist/scripts/db/wipe-leaked-builder-keys.js.map +1 -0
- package/dist/secrets/register-framework-secrets.d.ts +5 -0
- package/dist/secrets/register-framework-secrets.d.ts.map +1 -1
- package/dist/secrets/register-framework-secrets.js +7 -44
- package/dist/secrets/register-framework-secrets.js.map +1 -1
- package/dist/secrets/substitution.d.ts.map +1 -1
- package/dist/secrets/substitution.js +14 -2
- package/dist/secrets/substitution.js.map +1 -1
- package/dist/server/action-discovery.d.ts.map +1 -1
- package/dist/server/action-discovery.js +39 -0
- package/dist/server/action-discovery.js.map +1 -1
- package/dist/server/action-routes.js +1 -1
- package/dist/server/action-routes.js.map +1 -1
- package/dist/server/agent-chat-plugin.d.ts +39 -0
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +869 -458
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/agent-teams.js +1 -1
- package/dist/server/agent-teams.js.map +1 -1
- package/dist/server/analytics.d.ts +5 -6
- package/dist/server/analytics.d.ts.map +1 -1
- package/dist/server/analytics.js +6 -14
- package/dist/server/analytics.js.map +1 -1
- package/dist/server/app-name.d.ts +5 -2
- package/dist/server/app-name.d.ts.map +1 -1
- package/dist/server/app-name.js +14 -3
- package/dist/server/app-name.js.map +1 -1
- package/dist/server/app-url.d.ts.map +1 -1
- package/dist/server/app-url.js +10 -1
- package/dist/server/app-url.js.map +1 -1
- package/dist/server/auth.d.ts +16 -0
- package/dist/server/auth.d.ts.map +1 -1
- package/dist/server/auth.js +373 -7
- package/dist/server/auth.js.map +1 -1
- package/dist/server/better-auth-instance.d.ts +2 -0
- package/dist/server/better-auth-instance.d.ts.map +1 -1
- package/dist/server/better-auth-instance.js +4 -0
- package/dist/server/better-auth-instance.js.map +1 -1
- package/dist/server/builder-browser.d.ts +59 -1
- package/dist/server/builder-browser.d.ts.map +1 -1
- package/dist/server/builder-browser.js +139 -23
- package/dist/server/builder-browser.js.map +1 -1
- package/dist/server/collab-plugin.d.ts +4 -0
- package/dist/server/collab-plugin.d.ts.map +1 -1
- package/dist/server/collab-plugin.js +30 -4
- package/dist/server/collab-plugin.js.map +1 -1
- package/dist/server/core-routes-plugin.d.ts.map +1 -1
- package/dist/server/core-routes-plugin.js +241 -33
- package/dist/server/core-routes-plugin.js.map +1 -1
- package/dist/server/credential-provider.d.ts +50 -2
- package/dist/server/credential-provider.d.ts.map +1 -1
- package/dist/server/credential-provider.js +125 -2
- package/dist/server/credential-provider.js.map +1 -1
- package/dist/server/design-token-utils.d.ts +132 -0
- package/dist/server/design-token-utils.d.ts.map +1 -0
- package/dist/server/design-token-utils.js +714 -0
- package/dist/server/design-token-utils.js.map +1 -0
- package/dist/server/email.d.ts +10 -0
- package/dist/server/email.d.ts.map +1 -1
- package/dist/server/email.js +63 -16
- package/dist/server/email.js.map +1 -1
- package/dist/server/framework-request-handler.d.ts.map +1 -1
- package/dist/server/framework-request-handler.js +38 -3
- package/dist/server/framework-request-handler.js.map +1 -1
- package/dist/server/google-oauth.d.ts +18 -1
- package/dist/server/google-oauth.d.ts.map +1 -1
- package/dist/server/google-oauth.js +21 -4
- package/dist/server/google-oauth.js.map +1 -1
- package/dist/server/index.d.ts +3 -3
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +3 -3
- package/dist/server/index.js.map +1 -1
- package/dist/server/onboarding-html.d.ts.map +1 -1
- package/dist/server/onboarding-html.js +43 -5
- package/dist/server/onboarding-html.js.map +1 -1
- package/dist/server/poll.d.ts.map +1 -1
- package/dist/server/poll.js +46 -5
- package/dist/server/poll.js.map +1 -1
- package/dist/server/ssr-handler.d.ts.map +1 -1
- package/dist/server/ssr-handler.js +2 -1
- package/dist/server/ssr-handler.js.map +1 -1
- package/dist/server/transcribe-voice.d.ts.map +1 -1
- package/dist/server/transcribe-voice.js +125 -21
- package/dist/server/transcribe-voice.js.map +1 -1
- package/dist/sharing/schema.d.ts +1 -1
- package/dist/styles/agent-native.css +16 -2
- package/dist/templates/default/.agents/skills/progress/SKILL.md +14 -12
- package/dist/templates/default/app/root.tsx +57 -13
- package/dist/templates/default/react-router.config.ts +3 -0
- package/dist/terminal/terminal-plugin.d.ts.map +1 -1
- package/dist/terminal/terminal-plugin.js +23 -3
- package/dist/terminal/terminal-plugin.js.map +1 -1
- package/dist/tools/actions.d.ts +3 -0
- package/dist/tools/actions.d.ts.map +1 -0
- package/dist/tools/actions.js +140 -0
- package/dist/tools/actions.js.map +1 -0
- package/dist/tools/fetch-tool.js +1 -1
- package/dist/tools/fetch-tool.js.map +1 -1
- package/dist/tools/html-shell.d.ts +2 -0
- package/dist/tools/html-shell.d.ts.map +1 -0
- package/dist/tools/html-shell.js +387 -0
- package/dist/tools/html-shell.js.map +1 -0
- package/dist/tools/routes.d.ts +2 -0
- package/dist/tools/routes.d.ts.map +1 -0
- package/dist/tools/routes.js +576 -0
- package/dist/tools/routes.js.map +1 -0
- package/dist/tools/schema.d.ts +575 -0
- package/dist/tools/schema.d.ts.map +1 -0
- package/dist/tools/schema.js +112 -0
- package/dist/tools/schema.js.map +1 -0
- package/dist/tools/store.d.ts +40 -0
- package/dist/tools/store.d.ts.map +1 -0
- package/dist/tools/store.js +190 -0
- package/dist/tools/store.js.map +1 -0
- package/dist/tools/theme.d.ts +2 -0
- package/dist/tools/theme.d.ts.map +1 -0
- package/dist/tools/theme.js +67 -0
- package/dist/tools/theme.js.map +1 -0
- package/dist/transcription/builder-transcription.d.ts +27 -0
- package/dist/transcription/builder-transcription.d.ts.map +1 -0
- package/dist/transcription/builder-transcription.js +53 -0
- package/dist/transcription/builder-transcription.js.map +1 -0
- package/dist/triggers/actions.d.ts +3 -0
- package/dist/triggers/actions.d.ts.map +1 -1
- package/dist/triggers/actions.js +189 -213
- package/dist/triggers/actions.js.map +1 -1
- package/dist/vite/action-types-plugin.d.ts.map +1 -1
- package/dist/vite/action-types-plugin.js +10 -2
- package/dist/vite/action-types-plugin.js.map +1 -1
- package/dist/vite/client.d.ts.map +1 -1
- package/dist/vite/client.js +26 -6
- package/dist/vite/client.js.map +1 -1
- package/docs/content/a2a-protocol.md +2 -2
- package/docs/content/agent-mentions.md +1 -1
- package/docs/content/authentication.md +51 -0
- package/docs/content/automations.md +22 -19
- package/docs/content/cloneable-saas.md +59 -62
- package/docs/content/deployment.md +21 -61
- package/docs/content/faq.md +73 -43
- package/docs/content/getting-started.md +37 -61
- package/docs/content/key-concepts.md +1 -1
- package/docs/content/mcp-clients.md +14 -1
- package/docs/content/messaging.md +284 -0
- package/docs/content/{enterprise-workspace.md → multi-app-workspace.md} +3 -3
- package/docs/content/multi-tenancy.md +1 -1
- package/docs/content/progress.md +11 -11
- package/docs/content/pure-agent-apps.md +55 -28
- package/docs/content/template-calendar.md +61 -56
- package/docs/content/template-clips.md +22 -18
- package/docs/content/template-content.md +36 -26
- package/docs/content/template-dispatch.md +5 -4
- package/docs/content/template-forms.md +13 -11
- package/docs/content/template-slides.md +43 -31
- package/docs/content/template-video.md +49 -22
- package/docs/content/tools.md +107 -0
- package/docs/content/what-is-agent-native.md +89 -105
- package/docs/content/workspace-management.md +1 -1
- package/package.json +12 -2
- package/src/templates/default/.agents/skills/progress/SKILL.md +14 -12
- package/src/templates/default/app/root.tsx +57 -13
- package/src/templates/default/react-router.config.ts +3 -0
- package/docs/content/integrations.md +0 -198
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
* shape is meant to grow to cover future managed credential integrations
|
|
18
18
|
* (e.g. additional Builder-hosted services) without rewrites.
|
|
19
19
|
*/
|
|
20
|
+
import { getRequestUserEmail } from "./request-context.js";
|
|
20
21
|
export class FeatureNotConfiguredError extends Error {
|
|
21
22
|
requiredCredential;
|
|
22
23
|
builderConnectUrl;
|
|
@@ -30,7 +31,119 @@ export class FeatureNotConfiguredError extends Error {
|
|
|
30
31
|
this.byokDocsUrl = opts.byokDocsUrl;
|
|
31
32
|
}
|
|
32
33
|
}
|
|
33
|
-
|
|
34
|
+
// ---------------------------------------------------------------------------
|
|
35
|
+
// Per-user Builder credential resolution
|
|
36
|
+
//
|
|
37
|
+
// Builder keys are stored per-user in `app_secrets` (scope=user,
|
|
38
|
+
// scopeId=email). The OAuth callback writes them there; the status/disconnect
|
|
39
|
+
// endpoints read/delete them. `process.env` is the deployment-level fallback
|
|
40
|
+
// (e.g. a single BUILDER_PRIVATE_KEY set in Netlify).
|
|
41
|
+
// ---------------------------------------------------------------------------
|
|
42
|
+
export async function resolveBuilderCredential(key) {
|
|
43
|
+
const email = getRequestUserEmail();
|
|
44
|
+
if (email) {
|
|
45
|
+
try {
|
|
46
|
+
const { readAppSecret } = await import("../secrets/storage.js");
|
|
47
|
+
const secret = await readAppSecret({
|
|
48
|
+
key,
|
|
49
|
+
scope: "user",
|
|
50
|
+
scopeId: email,
|
|
51
|
+
});
|
|
52
|
+
if (secret)
|
|
53
|
+
return secret.value;
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
// Secrets table not ready — fall through to the env-fallback decision below
|
|
57
|
+
}
|
|
58
|
+
// Refuse the deploy-level env fallback for authenticated users in a
|
|
59
|
+
// multi-tenant context. In a hosted shared-DB deploy `process.env.BUILDER_*`
|
|
60
|
+
// would silently identify every user as whoever set the deploy-level keys —
|
|
61
|
+
// exactly the cross-tenant leak we hit on the analytics demo (KVesta Space,
|
|
62
|
+
// 2026-04). Per-user creds live in `app_secrets`; users without their own
|
|
63
|
+
// connection get null here and see the "Connect Builder" prompt. The
|
|
64
|
+
// local-dev session (`local@localhost`) is the only authenticated context
|
|
65
|
+
// where the env fallback is safe — it identifies a single-user dev box.
|
|
66
|
+
if (email !== "local@localhost") {
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return process.env[key] || null;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Resolve the current user's Builder private key.
|
|
74
|
+
* Checks per-user app_secrets first, then falls back to process.env.
|
|
75
|
+
*/
|
|
76
|
+
export async function resolveBuilderPrivateKey() {
|
|
77
|
+
return resolveBuilderCredential("BUILDER_PRIVATE_KEY");
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Resolve the current user's Builder auth header.
|
|
81
|
+
* Returns `"Bearer <key>"` or null.
|
|
82
|
+
*/
|
|
83
|
+
export async function resolveBuilderAuthHeader() {
|
|
84
|
+
const key = await resolveBuilderPrivateKey();
|
|
85
|
+
return key ? `Bearer ${key}` : null;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Check whether the current user has a Builder private key configured
|
|
89
|
+
* (per-user or deployment-level).
|
|
90
|
+
*/
|
|
91
|
+
export async function resolveHasBuilderPrivateKey() {
|
|
92
|
+
return !!(await resolveBuilderPrivateKey());
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Resolve all per-user Builder credentials. Used by the status endpoint
|
|
96
|
+
* and agent-chat-plugin to get orgName, userId, etc.
|
|
97
|
+
*/
|
|
98
|
+
export async function resolveBuilderCredentials() {
|
|
99
|
+
const [privateKey, publicKey, userId, orgName, orgKind] = await Promise.all([
|
|
100
|
+
resolveBuilderCredential("BUILDER_PRIVATE_KEY"),
|
|
101
|
+
resolveBuilderCredential("BUILDER_PUBLIC_KEY"),
|
|
102
|
+
resolveBuilderCredential("BUILDER_USER_ID"),
|
|
103
|
+
resolveBuilderCredential("BUILDER_ORG_NAME"),
|
|
104
|
+
resolveBuilderCredential("BUILDER_ORG_KIND"),
|
|
105
|
+
]);
|
|
106
|
+
return { privateKey, publicKey, userId, orgName, orgKind };
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Write Builder credentials for the current user to per-user app_secrets.
|
|
110
|
+
*/
|
|
111
|
+
export async function writeBuilderCredentials(email, creds) {
|
|
112
|
+
const { writeAppSecret } = await import("../secrets/storage.js");
|
|
113
|
+
const entries = [
|
|
114
|
+
{ key: "BUILDER_PRIVATE_KEY", value: creds.privateKey },
|
|
115
|
+
{ key: "BUILDER_PUBLIC_KEY", value: creds.publicKey },
|
|
116
|
+
];
|
|
117
|
+
if (creds.userId) {
|
|
118
|
+
entries.push({ key: "BUILDER_USER_ID", value: creds.userId });
|
|
119
|
+
}
|
|
120
|
+
if (creds.orgName) {
|
|
121
|
+
entries.push({ key: "BUILDER_ORG_NAME", value: creds.orgName });
|
|
122
|
+
}
|
|
123
|
+
if (creds.orgKind) {
|
|
124
|
+
entries.push({ key: "BUILDER_ORG_KIND", value: creds.orgKind });
|
|
125
|
+
}
|
|
126
|
+
await Promise.all(entries.map(({ key, value }) => writeAppSecret({ key, value, scope: "user", scopeId: email })));
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Delete Builder credentials for the current user from app_secrets.
|
|
130
|
+
*/
|
|
131
|
+
export async function deleteBuilderCredentials(email) {
|
|
132
|
+
const { deleteAppSecret } = await import("../secrets/storage.js");
|
|
133
|
+
const keys = [
|
|
134
|
+
"BUILDER_PRIVATE_KEY",
|
|
135
|
+
"BUILDER_PUBLIC_KEY",
|
|
136
|
+
"BUILDER_USER_ID",
|
|
137
|
+
"BUILDER_ORG_NAME",
|
|
138
|
+
"BUILDER_ORG_KIND",
|
|
139
|
+
];
|
|
140
|
+
await Promise.all(keys.map((key) => deleteAppSecret({ key, scope: "user", scopeId: email }).catch(() => { })));
|
|
141
|
+
}
|
|
142
|
+
// ---------------------------------------------------------------------------
|
|
143
|
+
// Synchronous helpers — env-only fallbacks for contexts where per-user
|
|
144
|
+
// lookup isn't possible (sync isConfigured checks, CLI scripts).
|
|
145
|
+
// ---------------------------------------------------------------------------
|
|
146
|
+
/** True when a Builder private key is configured at the deployment level. */
|
|
34
147
|
export function hasBuilderPrivateKey() {
|
|
35
148
|
return !!process.env.BUILDER_PRIVATE_KEY;
|
|
36
149
|
}
|
|
@@ -41,7 +154,17 @@ export function getBuilderProxyOrigin() {
|
|
|
41
154
|
process.env.BUILDER_API_HOST ||
|
|
42
155
|
"https://ai-services.builder.io");
|
|
43
156
|
}
|
|
44
|
-
/**
|
|
157
|
+
/**
|
|
158
|
+
* Base URL for the public Builder LLM gateway (distinct from the internal
|
|
159
|
+
* proxy origin above — the public gateway lives at api.builder.io/codegen,
|
|
160
|
+
* while the internal origin is ai-services.builder.io).
|
|
161
|
+
* Override via BUILDER_GATEWAY_BASE_URL for staging / testing.
|
|
162
|
+
*/
|
|
163
|
+
export function getBuilderGatewayBaseUrl() {
|
|
164
|
+
return (process.env.BUILDER_GATEWAY_BASE_URL ||
|
|
165
|
+
"https://api.builder.io/codegen/gateway/v1");
|
|
166
|
+
}
|
|
167
|
+
/** Authorization header value for Builder-proxied calls (env-only). */
|
|
45
168
|
export function getBuilderAuthHeader() {
|
|
46
169
|
const key = process.env.BUILDER_PRIVATE_KEY;
|
|
47
170
|
return key ? `Bearer ${key}` : null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credential-provider.js","sourceRoot":"","sources":["../../src/server/credential-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IACzC,kBAAkB,CAAS;IAC3B,iBAAiB,CAAU;IAC3B,WAAW,CAAU;IAE9B,YAAY,IAKX;QACC,KAAK,CACH,IAAI,CAAC,OAAO;YACV,gCAAgC,IAAI,CAAC,kBAAkB,yCAAyC,CACnG,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;QACxC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAClD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAChD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IACtC,CAAC;CACF;AAED,
|
|
1
|
+
{"version":3,"file":"credential-provider.js","sourceRoot":"","sources":["../../src/server/credential-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared design-token extraction utilities.
|
|
3
|
+
*
|
|
4
|
+
* Pure functions for parsing Tailwind configs, CSS files, package.json,
|
|
5
|
+
* documents, and URLs to extract colors, fonts, spacing, border-radius,
|
|
6
|
+
* and CSS custom properties. Used by the import-* actions across all
|
|
7
|
+
* templates (design, slides, videos).
|
|
8
|
+
*
|
|
9
|
+
* No framework dependencies — no defineAction, no zod, no drizzle.
|
|
10
|
+
*/
|
|
11
|
+
/** Maximum number of files to fetch from a single GitHub repo. */
|
|
12
|
+
export declare const MAX_FILES = 10;
|
|
13
|
+
/** Maximum individual file size (100 KB). */
|
|
14
|
+
export declare const MAX_FILE_SIZE: number;
|
|
15
|
+
/** Timeout for GitHub API / URL fetch calls (ms). */
|
|
16
|
+
export declare const FETCH_TIMEOUT = 15000;
|
|
17
|
+
/** File-name patterns to look for at the repo root. */
|
|
18
|
+
export declare const ROOT_PATTERNS: RegExp[];
|
|
19
|
+
/** Secondary paths (files and directories) to check for design tokens. */
|
|
20
|
+
export declare const SECONDARY_PATHS: string[];
|
|
21
|
+
/** Maximum files accepted in import-code. */
|
|
22
|
+
export declare const CODE_MAX_FILES = 20;
|
|
23
|
+
/** Maximum total bytes accepted in import-code. */
|
|
24
|
+
export declare const CODE_MAX_TOTAL_BYTES: number;
|
|
25
|
+
/** Regex for hex colors (3-8 digit, including alpha). */
|
|
26
|
+
export declare const HEX_COLOR_RE: RegExp;
|
|
27
|
+
/** Regex for well-known named CSS colors. */
|
|
28
|
+
export declare const NAMED_COLOR_RE: RegExp;
|
|
29
|
+
/** Regex for well-known font family names found in documents. */
|
|
30
|
+
export declare const FONT_NAME_RE: RegExp;
|
|
31
|
+
/** Regex matching CSS custom property values that look like colors. */
|
|
32
|
+
export declare const COLOR_VAR_PATTERN: RegExp;
|
|
33
|
+
/** Well-known styling framework deps to detect in package.json. */
|
|
34
|
+
export declare const FRAMEWORK_DETECTORS: {
|
|
35
|
+
name: string;
|
|
36
|
+
label: string;
|
|
37
|
+
}[];
|
|
38
|
+
export type ContentType = "presentation" | "document" | "spreadsheet" | "pdf" | "other";
|
|
39
|
+
export interface ParsedCss {
|
|
40
|
+
cssCustomProperties: Record<string, string> | undefined;
|
|
41
|
+
fonts: string[] | undefined;
|
|
42
|
+
}
|
|
43
|
+
export interface ParsedTailwindConfig {
|
|
44
|
+
colors?: Record<string, string>;
|
|
45
|
+
fontFamily?: Record<string, string>;
|
|
46
|
+
spacing?: Record<string, string>;
|
|
47
|
+
borderRadius?: Record<string, string>;
|
|
48
|
+
}
|
|
49
|
+
export interface CodeAnalysisState {
|
|
50
|
+
colors: Record<string, string>;
|
|
51
|
+
cssCustomProperties: Record<string, string>;
|
|
52
|
+
fonts: {
|
|
53
|
+
family: string;
|
|
54
|
+
source?: string;
|
|
55
|
+
}[];
|
|
56
|
+
spacing: Record<string, string>;
|
|
57
|
+
borderRadius: Record<string, string>;
|
|
58
|
+
stylingFramework: string | null;
|
|
59
|
+
rawExtracts: {
|
|
60
|
+
filename: string;
|
|
61
|
+
type: string;
|
|
62
|
+
data: unknown;
|
|
63
|
+
}[];
|
|
64
|
+
seenFonts: Set<string>;
|
|
65
|
+
}
|
|
66
|
+
export interface UrlExtractionResult {
|
|
67
|
+
url: string;
|
|
68
|
+
pageTitle?: string;
|
|
69
|
+
metaDescription?: string;
|
|
70
|
+
themeColor?: string;
|
|
71
|
+
cssCustomProperties?: Record<string, string>;
|
|
72
|
+
colors?: string[];
|
|
73
|
+
fontFaces?: {
|
|
74
|
+
family?: string;
|
|
75
|
+
src?: string;
|
|
76
|
+
}[];
|
|
77
|
+
googleFonts?: string[];
|
|
78
|
+
ogImage?: string;
|
|
79
|
+
favicon?: string;
|
|
80
|
+
}
|
|
81
|
+
/** Validate a URL is safe to fetch (blocks localhost, private IPs, metadata endpoints). */
|
|
82
|
+
export declare function validateUrl(url: string): void;
|
|
83
|
+
/** Parse a GitHub URL or "org/repo" shorthand into owner + repo. */
|
|
84
|
+
export declare function parseOwnerRepo(raw: string): {
|
|
85
|
+
owner: string;
|
|
86
|
+
repo: string;
|
|
87
|
+
};
|
|
88
|
+
/** Fetch a path from the GitHub Contents API as JSON. Returns null on error. */
|
|
89
|
+
export declare function fetchGitHubJson(owner: string, repo: string, path: string): Promise<unknown>;
|
|
90
|
+
/** Fetch raw file content from the GitHub Contents API. Returns null on error or oversize. */
|
|
91
|
+
export declare function fetchGitHubRaw(owner: string, repo: string, path: string): Promise<string | null>;
|
|
92
|
+
/** Extract colors, fonts, spacing, borderRadius from a Tailwind config file string. */
|
|
93
|
+
export declare function parseTailwindConfig(content: string): Record<string, unknown>;
|
|
94
|
+
/** Extract CSS custom properties and @font-face / Google Fonts from CSS content. */
|
|
95
|
+
export declare function parseCss(content: string): ParsedCss;
|
|
96
|
+
/** Detect the styling framework from a package.json string. */
|
|
97
|
+
export declare function detectStylingFramework(content: string): string | undefined;
|
|
98
|
+
/** Create a fresh state object for code file analysis. */
|
|
99
|
+
export declare function createCodeAnalysisState(): CodeAnalysisState;
|
|
100
|
+
/** De-duplicate and add a font to the analysis state. */
|
|
101
|
+
export declare function addFont(state: CodeAnalysisState, family: string, source?: string): void;
|
|
102
|
+
/** Extract CSS custom properties, classifying them by name into colors/spacing/radius. */
|
|
103
|
+
export declare function extractCssVars(state: CodeAnalysisState, content: string): void;
|
|
104
|
+
/** Extract literal color values (hex, rgb, hsl, oklch) from content. */
|
|
105
|
+
export declare function extractCodeColors(state: CodeAnalysisState, content: string): void;
|
|
106
|
+
/** Extract font-family declarations and @font-face blocks from CSS-like content. */
|
|
107
|
+
export declare function extractCodeFonts(state: CodeAnalysisState, content: string, filename: string): void;
|
|
108
|
+
/** Analyze a CSS/SCSS/LESS file, extracting vars, colors, and fonts. */
|
|
109
|
+
export declare function analyzeCssFile(state: CodeAnalysisState, content: string, filename: string): void;
|
|
110
|
+
/** Analyze a Tailwind config file for tokens. */
|
|
111
|
+
export declare function analyzeTailwindConfig(state: CodeAnalysisState, content: string, filename: string): void;
|
|
112
|
+
/** Walk a parsed JSON theme object, extracting tokens into state. */
|
|
113
|
+
export declare function analyzeJsonTheme(state: CodeAnalysisState, content: string, filename: string): void;
|
|
114
|
+
/** Analyze package.json for styling framework deps. */
|
|
115
|
+
export declare function analyzePackageJson(state: CodeAnalysisState, content: string, filename: string): void;
|
|
116
|
+
/** Analyze a theme source file (theme.ts, tokens.ts) for design tokens. */
|
|
117
|
+
export declare function analyzeThemeSourceFile(state: CodeAnalysisState, content: string, filename: string): void;
|
|
118
|
+
/** Route a file to the correct analyzer based on filename. */
|
|
119
|
+
export declare function analyzeCodeFile(state: CodeAnalysisState, filename: string, content: string): void;
|
|
120
|
+
/** Deduplicate and trim an array of strings. */
|
|
121
|
+
export declare function unique(arr: string[]): string[];
|
|
122
|
+
/** Extract hex and named colors from plain text. */
|
|
123
|
+
export declare function extractDocumentColors(text: string): string[];
|
|
124
|
+
/** Extract known font family names from plain text. */
|
|
125
|
+
export declare function extractDocumentFonts(text: string): string[];
|
|
126
|
+
/** Classify a file type string into a content category. */
|
|
127
|
+
export declare function classifyFile(fileType: string): ContentType;
|
|
128
|
+
/** Return per-type suggestions for how to use a document for design extraction. */
|
|
129
|
+
export declare function suggestionsForType(contentType: ContentType, hasText: boolean): string[];
|
|
130
|
+
/** Fetch and extract design tokens from a URL's HTML. */
|
|
131
|
+
export declare function extractDesignTokensFromUrl(rawUrl: string): Promise<UrlExtractionResult>;
|
|
132
|
+
//# sourceMappingURL=design-token-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"design-token-utils.d.ts","sourceRoot":"","sources":["../../src/server/design-token-utils.ts"],"names":[],"mappings":"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"}
|