veryfront 0.1.1074 → 0.1.1077
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/esm/cli/templates/manifest.js +1 -1
- package/esm/deno.js +1 -1
- package/esm/src/agent/react/index.d.ts +3 -3
- package/esm/src/agent/react/index.d.ts.map +1 -1
- package/esm/src/agent/react/index.js +1 -1
- package/esm/src/agent/react/use-agent-metadata.d.ts +18 -1
- package/esm/src/agent/react/use-agent-metadata.d.ts.map +1 -1
- package/esm/src/agent/react/use-agent-metadata.js +19 -0
- package/esm/src/agent/react/use-chat/index.d.ts +1 -1
- package/esm/src/agent/react/use-chat/index.d.ts.map +1 -1
- package/esm/src/agent/react/use-chat/types.d.ts +16 -0
- package/esm/src/agent/react/use-chat/types.d.ts.map +1 -1
- package/esm/src/agent/react/use-chat/use-chat.d.ts.map +1 -1
- package/esm/src/agent/react/use-chat/use-chat.js +36 -3
- package/esm/src/agent/schemas/agent.schema.d.ts +3 -3
- package/esm/src/channels/invoke.d.ts +2 -2
- package/esm/src/config/define-config.d.ts +4 -3
- package/esm/src/config/define-config.d.ts.map +1 -1
- package/esm/src/config/define-config.js +0 -1
- package/esm/src/config/loader.d.ts.map +1 -1
- package/esm/src/config/loader.js +8 -4
- package/esm/src/config/schemas/config.schema.d.ts +16 -7
- package/esm/src/config/schemas/config.schema.d.ts.map +1 -1
- package/esm/src/config/schemas/config.schema.js +6 -3
- package/esm/src/eval/agent-service/durable-run-canaries/runner.d.ts +1 -1
- package/esm/src/integrations/index.d.ts +1 -1
- package/esm/src/integrations/index.d.ts.map +1 -1
- package/esm/src/integrations/remote-tools.d.ts +7 -5
- package/esm/src/integrations/remote-tools.d.ts.map +1 -1
- package/esm/src/integrations/remote-tools.js +1 -1
- package/esm/src/integrations/types.d.ts +12 -4
- package/esm/src/integrations/types.d.ts.map +1 -1
- package/esm/src/internal-agents/schema.d.ts +3 -3
- package/esm/src/mcp/server.d.ts.map +1 -1
- package/esm/src/mcp/server.js +8 -1
- package/esm/src/react/components/chat/agent-picker.d.ts +4 -4
- package/esm/src/react/components/chat/agent-picker.d.ts.map +1 -1
- package/esm/src/react/components/chat/agent-picker.js +3 -5
- package/esm/src/react/components/chat/chat/app-mode-chat.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/app-mode-chat.js +16 -31
- package/esm/src/react/components/chat/chat/chat-props.d.ts +11 -4
- package/esm/src/react/components/chat/chat/chat-props.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/components/sidebar.d.ts +10 -16
- package/esm/src/react/components/chat/chat/components/sidebar.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/components/sidebar.js +16 -10
- package/esm/src/react/components/chat/chat/composition/chat-composer.d.ts +20 -19
- package/esm/src/react/components/chat/chat/composition/chat-composer.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/composition/chat-composer.js +16 -46
- package/esm/src/react/components/chat/chat/composition/chat-empty.d.ts +12 -3
- package/esm/src/react/components/chat/chat/composition/chat-empty.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/composition/chat-empty.js +12 -2
- package/esm/src/react/components/chat/chat/composition/chat-message-list.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/composition/chat-message-list.js +5 -1
- package/esm/src/react/components/chat/chat/composition/chat-root.d.ts +7 -3
- package/esm/src/react/components/chat/chat/composition/chat-root.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/composition/chat-root.js +5 -1
- package/esm/src/react/components/chat/chat/composition/message-sources.d.ts +35 -0
- package/esm/src/react/components/chat/chat/composition/message-sources.d.ts.map +1 -0
- package/esm/src/react/components/chat/chat/composition/message-sources.js +31 -0
- package/esm/src/react/components/chat/chat/composition/message.d.ts +8 -10
- package/esm/src/react/components/chat/chat/composition/message.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/composition/message.js +10 -17
- package/esm/src/react/components/chat/chat/composition/use-composer-value.d.ts +53 -0
- package/esm/src/react/components/chat/chat/composition/use-composer-value.d.ts.map +1 -0
- package/esm/src/react/components/chat/chat/composition/use-composer-value.js +78 -0
- package/esm/src/react/components/chat/chat/contexts/chat-context.d.ts +10 -2
- package/esm/src/react/components/chat/chat/contexts/chat-context.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/controlled-chat.d.ts +1 -1
- package/esm/src/react/components/chat/chat/controlled-chat.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/controlled-chat.js +5 -7
- package/esm/src/react/components/chat/chat/hooks/use-conversation-chat.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/hooks/use-conversation-chat.js +8 -5
- package/esm/src/react/components/chat/chat/hooks/use-conversation.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/hooks/use-conversation.js +3 -1
- package/esm/src/react/components/chat/chat/hooks/use-conversations.d.ts +5 -0
- package/esm/src/react/components/chat/chat/hooks/use-conversations.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/hooks/use-conversations.js +2 -0
- package/esm/src/react/components/chat/chat-agent-picker.d.ts +6 -1
- package/esm/src/react/components/chat/chat-agent-picker.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat-agent-picker.js +7 -2
- package/esm/src/react/components/chat/model-selector.d.ts +2 -0
- package/esm/src/react/components/chat/model-selector.d.ts.map +1 -1
- package/esm/src/react/components/chat/model-selector.js +7 -6
- package/esm/src/server/handlers/dev/framework-candidates.generated.d.ts.map +1 -1
- package/esm/src/server/handlers/dev/framework-candidates.generated.js +198 -74
- package/esm/src/utils/version-constant.d.ts +1 -1
- package/esm/src/utils/version-constant.js +1 -1
- package/package.json +5 -5
|
@@ -51,7 +51,7 @@ export default {
|
|
|
51
51
|
"app/api/ag-ui/route.ts": "import { createAgUiHandler } from \"veryfront/agent\";\nimport { store } from \"../../../store.ts\";\n\nexport const POST = createAgUiHandler(\"rag\", {\n beforeStream: async ({ lastUserText }) => {\n const query = lastUserText.trim();\n if (!query) return;\n\n try {\n const results = await store.search(query, { topK: 5 });\n if (results.length === 0) return;\n\n const contextBlock = results\n .map(\n (result) =>\n `[${result.title}] (score: ${\n result.score.toFixed(2)\n })\\n${result.text}`,\n )\n .join(\"\\n\\n---\\n\\n\");\n\n return {\n prepend: [\n {\n role: \"system\",\n parts: [\n {\n type: \"text\",\n text:\n `Here are relevant documents retrieved for your question:\\n\\n${contextBlock}\\n\\n` +\n \"Use these documents to answer. Cite the document title when referencing information.\",\n },\n ],\n },\n ],\n };\n } catch (e) {\n console.error(\"[RAG] Retrieval failed:\", e);\n return;\n }\n },\n});\n",
|
|
52
52
|
"app/api/ingest/route.ts": "import { store } from \"../../../store.ts\";\n\nexport async function POST() {\n await store.indexContentDir();\n return Response.json({ ok: true });\n}\n",
|
|
53
53
|
"app/api/uploads/route.ts": "import { createUploadHandler } from \"veryfront/embedding\";\nimport { store } from \"../../../store.ts\";\n\nexport const { POST, GET, DELETE } = createUploadHandler(store, {\n auth: { type: \"none\", allowUnauthenticated: true },\n});\n",
|
|
54
|
-
"app/layout.tsx": "'use client'\n\nimport \"../globals.css\";\nimport {\n AppShell,\n ChatSidebar,\n ChatThemeScope,\n ConversationsProvider,\n Tabs,\n TabsItem,\n} from \"veryfront/chat\";\nimport { Head } from \"veryfront/head\";\nimport { useRouter } from \"veryfront/router\";\n\nexport default function RootLayout({ children }: { children: React.ReactNode }): React.ReactNode {\n const router = useRouter();\n const activeTab = router.pathname.startsWith(\"/uploads\") ? \"uploads\" : \"chat\";\n\n return (\n <>\n <Head><title>Docs Agent</title></Head>\n <ChatThemeScope className=\"flex flex-col h-screen\">\n <ConversationsProvider storageKey=\"rag-conversations\">\n <AppShell className=\"flex-1 min-h-0\">\n <AppShell.Sidebar side=\"left\" className=\"border-r border-[var(--outline-border)]\">\n <AppShell.SidebarContent className=\"p-0\">\n <ChatSidebar
|
|
54
|
+
"app/layout.tsx": "'use client'\n\nimport \"../globals.css\";\nimport {\n AppShell,\n ChatSidebar,\n ChatThemeScope,\n ConversationsProvider,\n Tabs,\n TabsItem,\n} from \"veryfront/chat\";\nimport { Head } from \"veryfront/head\";\nimport { useRouter } from \"veryfront/router\";\n\nexport default function RootLayout({ children }: { children: React.ReactNode }): React.ReactNode {\n const router = useRouter();\n const activeTab = router.pathname.startsWith(\"/uploads\") ? \"uploads\" : \"chat\";\n\n return (\n <>\n <Head><title>Docs Agent</title></Head>\n <ChatThemeScope className=\"flex flex-col h-screen\">\n <ConversationsProvider storageKey=\"rag-conversations\">\n <AppShell className=\"flex-1 min-h-0\">\n <AppShell.Sidebar side=\"left\" className=\"border-r border-[var(--outline-border)]\">\n <AppShell.SidebarContent className=\"p-0\">\n <ChatSidebar.Root>\n <ChatSidebar.NewButton />\n <ChatSidebar.List />\n </ChatSidebar.Root>\n </AppShell.SidebarContent>\n </AppShell.Sidebar>\n <AppShell.Main>\n <AppShell.Header border className=\"h-16 gap-3 px-3\">\n <AppShell.Trigger side=\"left\" />\n <div className=\"flex flex-1 justify-center\">\n <Tabs\n value={activeTab}\n onValueChange={(value) => router.push(value === \"uploads\" ? \"/uploads\" : \"/\")}\n >\n <TabsItem value=\"chat\">Chat</TabsItem>\n <TabsItem value=\"uploads\">Uploads</TabsItem>\n </Tabs>\n </div>\n </AppShell.Header>\n <AppShell.Content className=\"flex flex-col min-h-0 pt-3\">\n {children}\n </AppShell.Content>\n </AppShell.Main>\n </AppShell>\n </ConversationsProvider>\n </ChatThemeScope>\n </>\n );\n}\n",
|
|
55
55
|
"app/page.tsx": "'use client'\n\nimport { Chat } from 'veryfront/chat'\n\nconst ACCEPT = '.pdf,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.csv,.txt,.md,.mdx,.html,.rtf,.epub,.json,.xml'\n\nexport default function DocsChat() {\n return (\n <Chat\n agentId=\"rag\"\n api=\"/api/ag-ui\"\n uploadApi=\"/api/uploads\"\n attachAccept={ACCEPT}\n className=\"flex-1 min-h-0\"\n placeholder=\"Ask anything about your documents...\"\n />\n )\n}\n",
|
|
56
56
|
"app/uploads/page.tsx": "'use client'\n\nimport { AttachmentsPanel, useUploadsRegistry } from 'veryfront/chat'\n\nconst UPLOAD_API = '/api/uploads'\nconst ACCEPT = '.pdf,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.csv,.txt,.md,.mdx,.html,.rtf,.epub,.json,.xml'\n\nexport default function UploadsPage(): React.JSX.Element {\n const uploads = useUploadsRegistry({ url: UPLOAD_API, storageKey: 'rag-uploads' })\n\n return (\n <AttachmentsPanel\n uploads={uploads.items}\n loading={uploads.isLoading}\n onAttach={uploads.upload}\n onRemoveUpload={uploads.remove}\n attachAccept={ACCEPT}\n className=\"flex-1 min-h-0\"\n />\n )\n}\n",
|
|
57
57
|
"content/architecture.md": "# Architecture\n\nAcme Platform uses a modular, event-driven architecture.\n\n## Core Components\n\n### API Gateway\nRoutes incoming requests to the appropriate microservice. Handles authentication, rate limiting, and request validation.\n\n### Event Bus\nAsynchronous message broker connecting all services. Supports pub/sub and point-to-point messaging patterns.\n\n### Data Layer\nMulti-tenant data storage with automatic sharding. Supports PostgreSQL for relational data and Redis for caching.\n\n## Request Flow\n\n1. Client sends request to API Gateway\n2. Gateway validates authentication token\n3. Request is routed to the target service\n4. Service processes request and publishes events\n5. Response is returned through the gateway\n\n## Scaling\n\nEach component scales independently. The API Gateway uses horizontal scaling with load balancing. Services auto-scale based on queue depth and CPU utilization.\n\n## Security\n\n- All inter-service communication uses mTLS\n- API tokens are rotated every 24 hours\n- Data at rest is encrypted with AES-256\n- Audit logs are retained for 90 days\n",
|
package/esm/deno.js
CHANGED
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
* @module agent/react
|
|
5
5
|
*/
|
|
6
6
|
export { useChat } from "./use-chat/index.js";
|
|
7
|
-
export type { BranchInfo, ChatDynamicToolPart, ChatFilePart, ChatFinishReason, ChatMessage, ChatMessagePart, ChatReasoningPart, ChatStepPart, ChatStreamEvent, ChatTextPart, ChatToolPart, ChatToolResultPart, ChatToolState, InferenceMode, OnToolCallArg, ToolOutput, UseChatOptions, UseChatResult, } from "./use-chat/index.js";
|
|
7
|
+
export type { BranchInfo, ChatDynamicToolPart, ChatFilePart, ChatFinishReason, ChatMessage, ChatMessagePart, ChatReasoningPart, ChatStatus, ChatStepPart, ChatStreamEvent, ChatTextPart, ChatToolPart, ChatToolResultPart, ChatToolState, InferenceMode, OnToolCallArg, ToolOutput, UseChatOptions, UseChatResult, } from "./use-chat/index.js";
|
|
8
8
|
export { useAgent } from "./use-agent.js";
|
|
9
9
|
export type { UseAgentOptions, UseAgentResult } from "./use-agent.js";
|
|
10
|
-
export { getAgentPromptSuggestions, normalizeAgentMetadata, normalizeAgentMetadataResponse, useAgentMetadata, } from "./use-agent-metadata.js";
|
|
11
|
-
export type { AgentMetadata, AgentMetadataPromptSuggestion, AgentMetadataSuggestion, AgentMetadataSuggestions, AgentMetadataTaskSuggestion, UseAgentMetadataResult, } from "./use-agent-metadata.js";
|
|
10
|
+
export { getAgentPromptSuggestionItems, getAgentPromptSuggestions, normalizeAgentMetadata, normalizeAgentMetadataResponse, useAgentMetadata, } from "./use-agent-metadata.js";
|
|
11
|
+
export type { AgentMetadata, AgentMetadataPromptSuggestion, AgentMetadataSuggestion, AgentMetadataSuggestions, AgentMetadataTaskSuggestion, PromptSuggestion, UseAgentMetadataResult, } from "./use-agent-metadata.js";
|
|
12
12
|
export { normalizeAgentsListResponse, useAgents } from "./use-agents.js";
|
|
13
13
|
export type { UseAgentsOptions, UseAgentsResult } from "./use-agents.js";
|
|
14
14
|
export { useCompletion } from "./use-completion.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/react/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,YAAY,EACV,UAAU,EACV,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,aAAa,EACb,UAAU,EACV,cAAc,EACd,aAAa,GACd,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEtE,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,8BAA8B,EAC9B,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,aAAa,EACb,6BAA6B,EAC7B,uBAAuB,EACvB,wBAAwB,EACxB,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,2BAA2B,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACzE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEzE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAErF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAElF,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/react/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,YAAY,EACV,UAAU,EACV,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,aAAa,EACb,UAAU,EACV,cAAc,EACd,aAAa,GACd,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEtE,OAAO,EACL,6BAA6B,EAC7B,yBAAyB,EACzB,sBAAsB,EACtB,8BAA8B,EAC9B,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,aAAa,EACb,6BAA6B,EAC7B,uBAAuB,EACvB,wBAAwB,EACxB,2BAA2B,EAC3B,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,2BAA2B,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACzE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEzE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAErF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAElF,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
export { useChat } from "./use-chat/index.js";
|
|
7
7
|
export { useAgent } from "./use-agent.js";
|
|
8
|
-
export { getAgentPromptSuggestions, normalizeAgentMetadata, normalizeAgentMetadataResponse, useAgentMetadata, } from "./use-agent-metadata.js";
|
|
8
|
+
export { getAgentPromptSuggestionItems, getAgentPromptSuggestions, normalizeAgentMetadata, normalizeAgentMetadataResponse, useAgentMetadata, } from "./use-agent-metadata.js";
|
|
9
9
|
export { normalizeAgentsListResponse, useAgents } from "./use-agents.js";
|
|
10
10
|
export { useCompletion } from "./use-completion.js";
|
|
11
11
|
export { useStreaming } from "./use-streaming.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/** Source-defined prompt suggestion shown by chat surfaces. */
|
|
2
2
|
export type AgentMetadataPromptSuggestion = {
|
|
3
3
|
type: "prompt";
|
|
4
|
-
title
|
|
4
|
+
title?: string;
|
|
5
5
|
prompt: string;
|
|
6
6
|
} | {
|
|
7
7
|
id: string;
|
|
@@ -42,6 +42,23 @@ export declare function normalizeAgentMetadata(value: unknown): AgentMetadata;
|
|
|
42
42
|
export declare function normalizeAgentMetadataResponse(value: unknown): AgentMetadata;
|
|
43
43
|
/** Return prompt text suggestions that the current Chat component can render. */
|
|
44
44
|
export declare function getAgentPromptSuggestions(agent: AgentMetadata | null): string[];
|
|
45
|
+
/**
|
|
46
|
+
* A prompt suggestion normalized for rendering: the short `label` shown on the
|
|
47
|
+
* chip and the full `prompt` sent when it is clicked.
|
|
48
|
+
*/
|
|
49
|
+
export interface PromptSuggestion {
|
|
50
|
+
/** Short chip label — the agent's `title`, falling back to the prompt. */
|
|
51
|
+
label: string;
|
|
52
|
+
/** Full text sent to the agent when the chip is clicked. */
|
|
53
|
+
prompt: string;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Normalize an agent's prompt suggestions to `{ label, prompt }[]`, ready to
|
|
57
|
+
* render — the chip shows the short `title` while the click sends the full
|
|
58
|
+
* `prompt`. Saves consumers from flat-mapping `agent.suggestions.suggestions`
|
|
59
|
+
* and reconciling the `title`/`prompt` fields themselves.
|
|
60
|
+
*/
|
|
61
|
+
export declare function getAgentPromptSuggestionItems(agent: AgentMetadata | null): PromptSuggestion[];
|
|
45
62
|
/** React hook for browser-safe source-defined agent metadata. */
|
|
46
63
|
export declare function useAgentMetadata(agentId: string | null | undefined): UseAgentMetadataResult;
|
|
47
64
|
//# sourceMappingURL=use-agent-metadata.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-agent-metadata.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/react/use-agent-metadata.ts"],"names":[],"mappings":"AAGA,+DAA+D;AAC/D,MAAM,MAAM,6BAA6B,GACrC;IACA,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"use-agent-metadata.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/react/use-agent-metadata.ts"],"names":[],"mappings":"AAGA,+DAA+D;AAC/D,MAAM,MAAM,6BAA6B,GACrC;IACA,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,GACC;IACA,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;CAChB,CAAC;AAEJ,6DAA6D;AAC7D,MAAM,MAAM,2BAA2B,GAAG;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,uCAAuC;AACvC,MAAM,MAAM,uBAAuB,GAAG,6BAA6B,GAAG,2BAA2B,CAAC;AAElG,oDAAoD;AACpD,MAAM,WAAW,wBAAwB;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,uBAAuB,EAAE,CAAC;CACxC;AAED,kDAAkD;AAClD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,CAAC,EAAE,wBAAwB,CAAC;CACxC;AAED,6CAA6C;AAC7C,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AA2ED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,CAYpE;AAED,wDAAwD;AACxD,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,CAK5E;AAED,iFAAiF;AACjF,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,GAAG,MAAM,EAAE,CAK/E;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,aAAa,GAAG,IAAI,GAC1B,gBAAgB,EAAE,CAWpB;AAED,iEAAiE;AACjE,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,sBAAsB,CAkD3F"}
|
|
@@ -93,6 +93,25 @@ export function getAgentPromptSuggestions(agent) {
|
|
|
93
93
|
return [suggestion.prompt];
|
|
94
94
|
}) ?? [];
|
|
95
95
|
}
|
|
96
|
+
/**
|
|
97
|
+
* Normalize an agent's prompt suggestions to `{ label, prompt }[]`, ready to
|
|
98
|
+
* render — the chip shows the short `title` while the click sends the full
|
|
99
|
+
* `prompt`. Saves consumers from flat-mapping `agent.suggestions.suggestions`
|
|
100
|
+
* and reconciling the `title`/`prompt` fields themselves.
|
|
101
|
+
*/
|
|
102
|
+
export function getAgentPromptSuggestionItems(agent) {
|
|
103
|
+
const list = agent?.suggestions?.suggestions;
|
|
104
|
+
if (!Array.isArray(list))
|
|
105
|
+
return [];
|
|
106
|
+
return list.flatMap((suggestion) => {
|
|
107
|
+
if (suggestion.type !== "prompt" || !("prompt" in suggestion) || !suggestion.prompt) {
|
|
108
|
+
return [];
|
|
109
|
+
}
|
|
110
|
+
const title = suggestion.title;
|
|
111
|
+
const label = typeof title === "string" && title.length > 0 ? title : suggestion.prompt;
|
|
112
|
+
return [{ label, prompt: suggestion.prompt }];
|
|
113
|
+
});
|
|
114
|
+
}
|
|
96
115
|
/** React hook for browser-safe source-defined agent metadata. */
|
|
97
116
|
export function useAgentMetadata(agentId) {
|
|
98
117
|
const [agent, setAgent] = useState(null);
|
|
@@ -5,6 +5,6 @@
|
|
|
5
5
|
* Build any interface you want.
|
|
6
6
|
*/
|
|
7
7
|
export { useChat } from "./use-chat.js";
|
|
8
|
-
export type { BranchInfo, ChatDynamicToolPart, ChatFilePart, ChatMessage, ChatMessagePart, ChatReasoningPart, ChatStepPart, ChatTextPart, ChatToolPart, ChatToolResultPart, ChatToolState, InferenceMode, OnToolCallArg, ToolOutput, UseChatOptions, UseChatResult, } from "./types.js";
|
|
8
|
+
export type { BranchInfo, ChatDynamicToolPart, ChatFilePart, ChatMessage, ChatMessagePart, ChatReasoningPart, ChatStatus, ChatStepPart, ChatTextPart, ChatToolPart, ChatToolResultPart, ChatToolState, InferenceMode, OnToolCallArg, ToolOutput, UseChatOptions, UseChatResult, } from "./types.js";
|
|
9
9
|
export type { ChatFinishReason, ChatStreamEvent, } from "./stream-protocol.js";
|
|
10
10
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/src/agent/react/use-chat/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,YAAY,EACV,UAAU,EACV,mBAAmB,EACnB,YAAY,EACZ,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,aAAa,EACb,UAAU,EACV,cAAc,EACd,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,gBAAgB,EAChB,eAAe,GAChB,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/src/agent/react/use-chat/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,YAAY,EACV,UAAU,EACV,mBAAmB,EACnB,YAAY,EACZ,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,aAAa,EACb,UAAU,EACV,cAAc,EACd,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,gBAAgB,EAChB,eAAe,GAChB,MAAM,sBAAsB,CAAC"}
|
|
@@ -43,10 +43,26 @@ export interface BranchInfo {
|
|
|
43
43
|
total: number;
|
|
44
44
|
}
|
|
45
45
|
/** Result returned from use chat. */
|
|
46
|
+
/**
|
|
47
|
+
* Streaming lifecycle of a chat turn.
|
|
48
|
+
* - `submitted`: request sent, awaiting the first streamed token
|
|
49
|
+
* - `streaming`: assistant tokens are arriving
|
|
50
|
+
* - `ready`: idle — no turn in flight
|
|
51
|
+
* - `error`: the last turn failed
|
|
52
|
+
*
|
|
53
|
+
* Parity with the Vercel AI SDK `status` field. Prefer this over `isLoading`
|
|
54
|
+
* (which stays as a convenience alias for `submitted | streaming`).
|
|
55
|
+
*/
|
|
56
|
+
export type ChatStatus = "submitted" | "streaming" | "ready" | "error";
|
|
46
57
|
export interface UseChatResult {
|
|
47
58
|
messages: ChatMessage[];
|
|
48
59
|
input: string;
|
|
60
|
+
/** @deprecated Use `status`. Equivalent to `status === "submitted" || status === "streaming"`. */
|
|
49
61
|
isLoading: boolean;
|
|
62
|
+
/** Streaming lifecycle of the current turn (AI-SDK parity). */
|
|
63
|
+
status: ChatStatus;
|
|
64
|
+
/** Id of the assistant message currently streaming, or `null` when idle. */
|
|
65
|
+
streamingMessageId: string | null;
|
|
50
66
|
error: Error | null;
|
|
51
67
|
/** Current model override (undefined = use agent default) */
|
|
52
68
|
model: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/src/agent/react/use-chat/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/src/agent/react/use-chat/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACd,MAAM,2BAA2B,CAAC;AAEnC,oCAAoC;AACpC,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,cAAc,CAAC;AAErD,YAAY,EACV,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,aAAa,GACd,CAAC;AAEF,KAAK,eAAe,GAAG,kBAAkB,GAAG,cAAc,CAAC;AAE3D,wBAAwB;AACxB,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,gDAAgD;AAChD,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE;QACR,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,OAAO,CAAC;QACf,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;CACH;AAED,oCAAoC;AACpC,MAAM,WAAW,cAAc;IAC7B,gDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,WAAW,EAAE,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,+FAA+F;IAC/F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IAC1C,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IAC1C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3D;AAED,2CAA2C;AAC3C,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qCAAqC;AACrC;;;;;;;;;GASG;AACH,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,OAAO,GAAG,OAAO,CAAC;AAEvE,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,kGAAkG;IAClG,SAAS,EAAE,OAAO,CAAC;IACnB,+DAA+D;IAC/D,MAAM,EAAE,UAAU,CAAC;IACnB,4EAA4E;IAC5E,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,6DAA6D;IAC7D,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,iGAAiG;IACjG,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,6CAA6C;IAC7C,aAAa,EAAE,aAAa,CAAC;IAC7B,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,+CAA+C;IAC/C,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAC9C,WAAW,EAAE,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,YAAY,EAAE,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClF,yEAAyE;IACzE,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,yFAAyF;IACzF,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,UAAU,CAAC;IAC/C,sDAAsD;IACtD,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/D,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,WAAW,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;IAC/C,aAAa,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IAC5C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,iBAAiB,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,GAAG,mBAAmB,CAAC,KAAK,IAAI,CAAC;IAC1F,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACtD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-chat.d.ts","sourceRoot":"","sources":["../../../../../src/src/agent/react/use-chat/use-chat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,KAAK,EAEV,YAAY,EACZ,WAAW,EACX,eAAe,
|
|
1
|
+
{"version":3,"file":"use-chat.d.ts","sourceRoot":"","sources":["../../../../../src/src/agent/react/use-chat/use-chat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,KAAK,EAEV,YAAY,EACZ,WAAW,EACX,eAAe,EAIf,cAAc,EACd,aAAa,EACd,MAAM,YAAY,CAAC;AAGpB,KAAK,oBAAoB,GAAG,OAAO,2BAA2B,CAAC;AAE/D,wDAAwD;AACxD,UAAU,MAAM;IACd,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB;AAED,sEAAsE;AACtE,UAAU,WAAW;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,WAAW,EAAE,CAAC;CAC7B;AAED,wBAAgB,eAAe,CAAC,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAEnF;AAED,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EACnC,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACxC,MAAM,GAAG,SAAS,CAGpB;AAED,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,WAAW,EAAE,EACvB,SAAS,EAAE,MAAM,EACjB,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACxC,MAAM,CAIR;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,YAAY,EAAE,GACrB,eAAe,EAAE,CAEnB;AAMD,4EAA4E;AAC5E,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,WAAW,GACnB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,YAAY,EAAE,CAAA;CAAE,GAAG,IAAI,CAQjD;AAED,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,cAAc,CAAC,WAAW,CAAC,GACrC,oBAAoB,CAGtB;AAOD,UAAU,uBAAwB,SAAQ,aAAa;IACrD,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;CAC3C;AAED,wBAAgB,OAAO,CAAC,OAAO,GAAE,cAAmB,GAAG,aAAa,CAInE;AAED,mFAAmF;AACnF,wBAAgB,uBAAuB,CACrC,OAAO,GAAE,cAAmB,GAC3B,uBAAuB,CAEzB"}
|
|
@@ -68,6 +68,8 @@ function useChatState(options) {
|
|
|
68
68
|
messagesRef.current = messages;
|
|
69
69
|
const [input, setInput] = useState("");
|
|
70
70
|
const [isLoading, setIsLoading] = useState(false);
|
|
71
|
+
const [status, setStatus] = useState("ready");
|
|
72
|
+
const [streamingMessageId, setStreamingMessageId] = useState(null);
|
|
71
73
|
const [error, setError] = useState(null);
|
|
72
74
|
const [data, setData] = useState(null);
|
|
73
75
|
const [model, setModel] = useState(options.model);
|
|
@@ -128,7 +130,10 @@ function useChatState(options) {
|
|
|
128
130
|
const base = message.baseMessages ?? messagesRef.current;
|
|
129
131
|
setMessages([...base, userMessage]);
|
|
130
132
|
setIsLoading(true);
|
|
133
|
+
setStatus("submitted");
|
|
134
|
+
setStreamingMessageId(null);
|
|
131
135
|
setError(null);
|
|
136
|
+
let didError = false;
|
|
132
137
|
try {
|
|
133
138
|
const allMessages = [...base, userMessage];
|
|
134
139
|
const abortController = new AbortController();
|
|
@@ -171,9 +176,18 @@ function useChatState(options) {
|
|
|
171
176
|
options.onResponse?.(response);
|
|
172
177
|
if (!response.body)
|
|
173
178
|
return;
|
|
174
|
-
const
|
|
179
|
+
const fallbackStreamingId = generateClientId("msg");
|
|
175
180
|
let hasAddedStreamingMessage = false;
|
|
176
|
-
const currentMessageIdRef = { current:
|
|
181
|
+
const currentMessageIdRef = { current: fallbackStreamingId };
|
|
182
|
+
// Promote the turn to `streaming` and publish the id of the message
|
|
183
|
+
// currently receiving tokens. Idempotent — repeated identical values
|
|
184
|
+
// bail out of re-render, so calling per chunk is cheap.
|
|
185
|
+
const markStreaming = () => {
|
|
186
|
+
if (!isLatestRequest(requestIdRef.current, requestId))
|
|
187
|
+
return;
|
|
188
|
+
setStatus("streaming");
|
|
189
|
+
setStreamingMessageId(currentMessageIdRef.current);
|
|
190
|
+
};
|
|
177
191
|
// Mutable local — updated by onData before onMessage/onUpdate use it.
|
|
178
192
|
let serverModel = model;
|
|
179
193
|
setActiveModel((current) => isLatestRequest(requestIdRef.current, requestId) ? undefined : current);
|
|
@@ -186,6 +200,13 @@ function useChatState(options) {
|
|
|
186
200
|
...assistantMessage,
|
|
187
201
|
metadata: { ...assistantMessage.metadata, model: serverModel },
|
|
188
202
|
};
|
|
203
|
+
// A response delivered as a single complete message (no incremental
|
|
204
|
+
// `onUpdate`) still passes through `streaming` for one commit so
|
|
205
|
+
// consumers see a consistent lifecycle.
|
|
206
|
+
if (!hasAddedStreamingMessage) {
|
|
207
|
+
currentMessageIdRef.current = withMeta.id;
|
|
208
|
+
markStreaming();
|
|
209
|
+
}
|
|
189
210
|
setMessages((prev) => {
|
|
190
211
|
if (!isLatestRequest(requestIdRef.current, requestId))
|
|
191
212
|
return prev;
|
|
@@ -224,7 +245,7 @@ function useChatState(options) {
|
|
|
224
245
|
onUpdate: (parts, messageId, messageMetadata) => {
|
|
225
246
|
if (!isLatestRequest(requestIdRef.current, requestId))
|
|
226
247
|
return;
|
|
227
|
-
const id = messageId ??
|
|
248
|
+
const id = messageId ?? fallbackStreamingId;
|
|
228
249
|
const metadata = { ...messageMetadata, model: serverModel };
|
|
229
250
|
if (messageId && messageId !== currentMessageIdRef.current) {
|
|
230
251
|
const oldId = currentMessageIdRef.current;
|
|
@@ -235,6 +256,7 @@ function useChatState(options) {
|
|
|
235
256
|
? { ...m, id, parts, metadata: { ...m.metadata, ...metadata } }
|
|
236
257
|
: m)
|
|
237
258
|
: prev);
|
|
259
|
+
markStreaming();
|
|
238
260
|
return;
|
|
239
261
|
}
|
|
240
262
|
}
|
|
@@ -253,6 +275,7 @@ function useChatState(options) {
|
|
|
253
275
|
},
|
|
254
276
|
]
|
|
255
277
|
: prev);
|
|
278
|
+
markStreaming();
|
|
256
279
|
return;
|
|
257
280
|
}
|
|
258
281
|
setMessages((prev) => isLatestRequest(requestIdRef.current, requestId)
|
|
@@ -260,6 +283,7 @@ function useChatState(options) {
|
|
|
260
283
|
? { ...m, parts, metadata: { ...m.metadata, ...metadata } }
|
|
261
284
|
: m)
|
|
262
285
|
: prev);
|
|
286
|
+
markStreaming();
|
|
263
287
|
},
|
|
264
288
|
onToolCall: options.onToolCall
|
|
265
289
|
? (arg) => isLatestRequest(requestIdRef.current, requestId)
|
|
@@ -274,6 +298,7 @@ function useChatState(options) {
|
|
|
274
298
|
if (!isLatestRequest(requestIdRef.current, requestId))
|
|
275
299
|
return;
|
|
276
300
|
const nextError = ensureError(error);
|
|
301
|
+
didError = true;
|
|
277
302
|
setError(nextError);
|
|
278
303
|
options.onError?.(nextError);
|
|
279
304
|
}
|
|
@@ -281,6 +306,8 @@ function useChatState(options) {
|
|
|
281
306
|
// Only the latest request can clear loading/abort state.
|
|
282
307
|
if (isLatestRequest(requestIdRef.current, requestId)) {
|
|
283
308
|
setIsLoading(false);
|
|
309
|
+
setStatus(didError ? "error" : "ready");
|
|
310
|
+
setStreamingMessageId(null);
|
|
284
311
|
abortControllerRef.current = null;
|
|
285
312
|
}
|
|
286
313
|
}
|
|
@@ -312,6 +339,8 @@ function useChatState(options) {
|
|
|
312
339
|
// request id also fences callbacks and state updaters queued by that chunk.
|
|
313
340
|
invalidateActiveRequest();
|
|
314
341
|
setIsLoading(false);
|
|
342
|
+
setStatus("ready");
|
|
343
|
+
setStreamingMessageId(null);
|
|
315
344
|
}, [invalidateActiveRequest]);
|
|
316
345
|
/**
|
|
317
346
|
* Reset state that belongs to one conversation while preserving the hook
|
|
@@ -327,6 +356,8 @@ function useChatState(options) {
|
|
|
327
356
|
setMessages(nextMessages);
|
|
328
357
|
setInput("");
|
|
329
358
|
setIsLoading(false);
|
|
359
|
+
setStatus("ready");
|
|
360
|
+
setStreamingMessageId(null);
|
|
330
361
|
setError(null);
|
|
331
362
|
setData(null);
|
|
332
363
|
setModel(options.model);
|
|
@@ -447,6 +478,8 @@ function useChatState(options) {
|
|
|
447
478
|
messages,
|
|
448
479
|
input,
|
|
449
480
|
isLoading,
|
|
481
|
+
status,
|
|
482
|
+
streamingMessageId,
|
|
450
483
|
error,
|
|
451
484
|
model,
|
|
452
485
|
activeModel,
|
|
@@ -102,7 +102,7 @@ export declare const getMessagePartSchema: () => import("../../internal-agents/s
|
|
|
102
102
|
}>>;
|
|
103
103
|
export declare const getMessageSchema: () => import("../../internal-agents/schema.js").Schema<import("../../extensions/schema/schema-validator.js").InferShape<{
|
|
104
104
|
id: import("../../internal-agents/schema.js").Schema<string>;
|
|
105
|
-
role: import("../../internal-agents/schema.js").Schema<"
|
|
105
|
+
role: import("../../internal-agents/schema.js").Schema<"user" | "tool" | "assistant" | "system">;
|
|
106
106
|
parts: import("../../internal-agents/schema.js").Schema<(import("../../extensions/schema/schema-validator.js").InferShape<{
|
|
107
107
|
type: import("../../internal-agents/schema.js").Schema<string>;
|
|
108
108
|
toolCallId: import("../../internal-agents/schema.js").Schema<string>;
|
|
@@ -167,7 +167,7 @@ export declare const getAgentResponseSchema: () => import("../../internal-agents
|
|
|
167
167
|
text: import("../../internal-agents/schema.js").Schema<string>;
|
|
168
168
|
messages: import("../../internal-agents/schema.js").Schema<import("../../extensions/schema/schema-validator.js").InferShape<{
|
|
169
169
|
id: import("../../internal-agents/schema.js").Schema<string>;
|
|
170
|
-
role: import("../../internal-agents/schema.js").Schema<"
|
|
170
|
+
role: import("../../internal-agents/schema.js").Schema<"user" | "tool" | "assistant" | "system">;
|
|
171
171
|
parts: import("../../internal-agents/schema.js").Schema<(import("../../extensions/schema/schema-validator.js").InferShape<{
|
|
172
172
|
type: import("../../internal-agents/schema.js").Schema<string>;
|
|
173
173
|
toolCallId: import("../../internal-agents/schema.js").Schema<string>;
|
|
@@ -255,7 +255,7 @@ export declare const getAgentContextSchema: () => import("../../internal-agents/
|
|
|
255
255
|
model: import("../../internal-agents/schema.js").Schema<string | undefined>;
|
|
256
256
|
input: import("../../internal-agents/schema.js").Schema<string | import("../../extensions/schema/schema-validator.js").InferShape<{
|
|
257
257
|
id: import("../../internal-agents/schema.js").Schema<string>;
|
|
258
|
-
role: import("../../internal-agents/schema.js").Schema<"
|
|
258
|
+
role: import("../../internal-agents/schema.js").Schema<"user" | "tool" | "assistant" | "system">;
|
|
259
259
|
parts: import("../../internal-agents/schema.js").Schema<(import("../../extensions/schema/schema-validator.js").InferShape<{
|
|
260
260
|
type: import("../../internal-agents/schema.js").Schema<string>;
|
|
261
261
|
toolCallId: import("../../internal-agents/schema.js").Schema<string>;
|
|
@@ -25,7 +25,7 @@ export declare const getChannelInvokeRequestSchema: () => import("../internal-ag
|
|
|
25
25
|
}>>;
|
|
26
26
|
conversationHistory: import("../internal-agents/schema.js").Schema<import("../extensions/schema/schema-validator.js").InferShape<{
|
|
27
27
|
id: import("../internal-agents/schema.js").Schema<string>;
|
|
28
|
-
role: import("../internal-agents/schema.js").Schema<"
|
|
28
|
+
role: import("../internal-agents/schema.js").Schema<"user" | "tool" | "assistant" | "system">;
|
|
29
29
|
parts: import("../internal-agents/schema.js").Schema<({
|
|
30
30
|
type: string;
|
|
31
31
|
} & {} & Record<string, unknown>)[]>;
|
|
@@ -58,7 +58,7 @@ export declare const ChannelInvokeRequestSchema: import("../internal-agents/sche
|
|
|
58
58
|
}>>;
|
|
59
59
|
conversationHistory: import("../internal-agents/schema.js").Schema<import("../extensions/schema/schema-validator.js").InferShape<{
|
|
60
60
|
id: import("../internal-agents/schema.js").Schema<string>;
|
|
61
|
-
role: import("../internal-agents/schema.js").Schema<"
|
|
61
|
+
role: import("../internal-agents/schema.js").Schema<"user" | "tool" | "assistant" | "system">;
|
|
62
62
|
parts: import("../internal-agents/schema.js").Schema<({
|
|
63
63
|
type: string;
|
|
64
64
|
} & {} & Record<string, unknown>)[]>;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import type { VeryfrontConfig } from "./schemas/index.js";
|
|
1
|
+
import type { VeryfrontConfig, VeryfrontConfigInput } from "./schemas/index.js";
|
|
2
2
|
import { type EnvironmentConfig } from "./environment-config.js";
|
|
3
3
|
/** Define a Veryfront project configuration object. */
|
|
4
|
-
export declare function defineConfig(config:
|
|
4
|
+
export declare function defineConfig<const T extends VeryfrontConfigInput>(config: T): T;
|
|
5
5
|
/** Define a Veryfront project configuration from the current environment name. */
|
|
6
|
-
export declare function defineConfigWithEnv(factory: (env: string) =>
|
|
6
|
+
export declare function defineConfigWithEnv<const T extends VeryfrontConfigInput>(factory: (env: string) => T, envConfig?: EnvironmentConfig): T;
|
|
7
7
|
/** Merge multiple partial Veryfront configuration objects into one config object. */
|
|
8
8
|
export declare function mergeConfigs(...configs: Partial<VeryfrontConfig>[]): VeryfrontConfig;
|
|
9
|
+
export declare function mergeConfigs(...configs: Partial<VeryfrontConfigInput>[]): VeryfrontConfigInput;
|
|
9
10
|
export declare function validateConfig(config: unknown): Promise<void>;
|
|
10
11
|
//# sourceMappingURL=define-config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define-config.d.ts","sourceRoot":"","sources":["../../../src/src/config/define-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"define-config.d.ts","sourceRoot":"","sources":["../../../src/src/config/define-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAEhF,OAAO,EAAE,KAAK,iBAAiB,EAAwB,MAAM,yBAAyB,CAAC;AAEvF,uDAAuD;AACvD,wBAAgB,YAAY,CAAC,KAAK,CAAC,CAAC,SAAS,oBAAoB,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAE/E;AAED,kFAAkF;AAClF,wBAAgB,mBAAmB,CAAC,KAAK,CAAC,CAAC,SAAS,oBAAoB,EACtE,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,CAAC,EAC3B,SAAS,GAAE,iBAA0C,GACpD,CAAC,CAEH;AAED,qFAAqF;AACrF,wBAAgB,YAAY,CAAC,GAAG,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,EAAE,GAAG,eAAe,CAAC;AACtF,wBAAgB,YAAY,CAAC,GAAG,OAAO,EAAE,OAAO,CAAC,oBAAoB,CAAC,EAAE,GAAG,oBAAoB,CAAC;AAOhG,wBAAsB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAWnE"}
|
|
@@ -8,7 +8,6 @@ export function defineConfig(config) {
|
|
|
8
8
|
export function defineConfigWithEnv(factory, envConfig = getEnvironmentConfig()) {
|
|
9
9
|
return factory(envConfig.nodeEnv);
|
|
10
10
|
}
|
|
11
|
-
/** Merge multiple partial Veryfront configuration objects into one config object. */
|
|
12
11
|
export function mergeConfigs(...configs) {
|
|
13
12
|
return Object.assign({}, ...configs);
|
|
14
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/src/config/loader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAG1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAiCnE,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/src/config/loader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAG1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAiCnE,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AA0J1D,sGAAsG;AACtG,wBAAgB,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAuFlF;AAqFD;;;;;;;;GAQG;AACH,wBAAgB,iCAAiC,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAMxE;AAED,gBAAgB;AAChB,wBAAsB,8BAA8B,CAClD,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,CAUjB;AA4FD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,SAAS,CACvB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,eAAe,CAAC,CAmF1B;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAI9E"}
|
package/esm/src/config/loader.js
CHANGED
|
@@ -157,15 +157,19 @@ function validateCorsConfig(userConfig) {
|
|
|
157
157
|
});
|
|
158
158
|
}
|
|
159
159
|
function validateConfigShape(userConfig) {
|
|
160
|
-
validateVeryfrontConfig(userConfig);
|
|
160
|
+
const normalizedConfig = validateVeryfrontConfig(userConfig);
|
|
161
161
|
if (!userConfig || typeof userConfig !== "object")
|
|
162
|
-
return;
|
|
162
|
+
return normalizedConfig;
|
|
163
163
|
const unknown = findUnknownTopLevelKeys(userConfig);
|
|
164
164
|
if (unknown.length > 0) {
|
|
165
165
|
throw CONFIG_VALIDATION_FAILED.create({
|
|
166
166
|
detail: `Unknown config keys: ${unknown.join(", ")}. Check for typos in veryfront.config.`,
|
|
167
167
|
});
|
|
168
168
|
}
|
|
169
|
+
return {
|
|
170
|
+
...userConfig,
|
|
171
|
+
integrations: normalizedConfig.integrations,
|
|
172
|
+
};
|
|
169
173
|
}
|
|
170
174
|
/** @internal Exported for tests: merges user config over fresh defaults (deep for nested objects). */
|
|
171
175
|
export function mergeConfigs(userConfig) {
|
|
@@ -259,8 +263,8 @@ function validateAndCacheConfig(userConfig, cacheKey) {
|
|
|
259
263
|
});
|
|
260
264
|
}
|
|
261
265
|
validateCorsConfig(userConfig);
|
|
262
|
-
validateConfigShape(userConfig);
|
|
263
|
-
const merged = mergeConfigs(
|
|
266
|
+
const normalizedConfig = validateConfigShape(userConfig);
|
|
267
|
+
const merged = mergeConfigs(normalizedConfig);
|
|
264
268
|
if (merged.react?.version) {
|
|
265
269
|
logger.debug("React version from config", { version: merged.react.version });
|
|
266
270
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { InferInput, InferSchema } from "../../extensions/schema/index.js";
|
|
2
|
+
import type { IntegrationRuntimeConfigInput } from "../../integrations/types.js";
|
|
2
3
|
export declare const getVeryfrontConfigSchema: () => import("../../internal-agents/schema.js").Schema<Partial<import("../../extensions/schema/schema-validator.js").InferShape<{
|
|
3
4
|
projectSlug: import("../../internal-agents/schema.js").Schema<string | undefined>;
|
|
4
5
|
title: import("../../internal-agents/schema.js").Schema<string | undefined>;
|
|
@@ -369,9 +370,9 @@ export declare const getVeryfrontConfigSchema: () => import("../../internal-agen
|
|
|
369
370
|
}>> | undefined>;
|
|
370
371
|
/** Third-party integration configuration (e.g., Slack, GitHub) */
|
|
371
372
|
integrations: import("../../internal-agents/schema.js").Schema<Record<string, Partial<import("../../extensions/schema/schema-validator.js").InferShape<{
|
|
372
|
-
/** Token scope
|
|
373
|
-
scope: import("../../internal-agents/schema.js").Schema<
|
|
374
|
-
/** @deprecated Use `scope: "
|
|
373
|
+
/** Token scope. Legacy "endUser" input is normalized to "user". */
|
|
374
|
+
scope: import("../../internal-agents/schema.js").Schema<"user" | "project" | undefined>;
|
|
375
|
+
/** @deprecated Use `scope: "user"` instead. */
|
|
375
376
|
perUser: import("../../internal-agents/schema.js").Schema<boolean | undefined>;
|
|
376
377
|
/** Allowlist of tool IDs to expose. When set, only these tools are registered.
|
|
377
378
|
* This keeps the MCP context narrow by excluding unused tools.
|
|
@@ -791,9 +792,9 @@ export declare const veryfrontConfigSchema: import("../../internal-agents/schema
|
|
|
791
792
|
}>> | undefined>;
|
|
792
793
|
/** Third-party integration configuration (e.g., Slack, GitHub) */
|
|
793
794
|
integrations: import("../../internal-agents/schema.js").Schema<Record<string, Partial<import("../../extensions/schema/schema-validator.js").InferShape<{
|
|
794
|
-
/** Token scope
|
|
795
|
-
scope: import("../../internal-agents/schema.js").Schema<
|
|
796
|
-
/** @deprecated Use `scope: "
|
|
795
|
+
/** Token scope. Legacy "endUser" input is normalized to "user". */
|
|
796
|
+
scope: import("../../internal-agents/schema.js").Schema<"user" | "project" | undefined>;
|
|
797
|
+
/** @deprecated Use `scope: "user"` instead. */
|
|
797
798
|
perUser: import("../../internal-agents/schema.js").Schema<boolean | undefined>;
|
|
798
799
|
/** Allowlist of tool IDs to expose. When set, only these tools are registered.
|
|
799
800
|
* This keeps the MCP context narrow by excluding unused tools.
|
|
@@ -844,7 +845,15 @@ export declare const veryfrontConfigSchema: import("../../internal-agents/schema
|
|
|
844
845
|
}>> | undefined>;
|
|
845
846
|
}>>>;
|
|
846
847
|
export type VeryfrontConfig = InferSchema<ReturnType<typeof getVeryfrontConfigSchema>>;
|
|
847
|
-
|
|
848
|
+
type InferredVeryfrontConfigInput = InferInput<ReturnType<typeof getVeryfrontConfigSchema>>;
|
|
849
|
+
/**
|
|
850
|
+
* User-authored configuration accepted before schema transforms run.
|
|
851
|
+
* `endUser` remains a deprecated integration scope input and normalizes to `user`.
|
|
852
|
+
*/
|
|
853
|
+
export type VeryfrontConfigInput = Omit<InferredVeryfrontConfigInput, "integrations"> & {
|
|
854
|
+
integrations?: Record<string, IntegrationRuntimeConfigInput | undefined>;
|
|
855
|
+
};
|
|
848
856
|
export declare function validateVeryfrontConfig(input: unknown): VeryfrontConfig;
|
|
849
857
|
export declare function findUnknownTopLevelKeys(input: Record<string, unknown>): string[];
|
|
858
|
+
export {};
|
|
850
859
|
//# sourceMappingURL=config.schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.schema.d.ts","sourceRoot":"","sources":["../../../../src/src/config/schemas/config.schema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"config.schema.d.ts","sourceRoot":"","sources":["../../../../src/src/config/schemas/config.schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -581,9 +581,12 @@ export const getVeryfrontConfigSchema = defineSchema((v) => v
|
|
|
581
581
|
integrations: v
|
|
582
582
|
.record(v.string(), v
|
|
583
583
|
.object({
|
|
584
|
-
/** Token scope
|
|
585
|
-
scope: v
|
|
586
|
-
|
|
584
|
+
/** Token scope. Legacy "endUser" input is normalized to "user". */
|
|
585
|
+
scope: v
|
|
586
|
+
.enum(["user", "project", "endUser"])
|
|
587
|
+
.transform((scope) => scope === "project" ? "project" : "user")
|
|
588
|
+
.optional(),
|
|
589
|
+
/** @deprecated Use `scope: "user"` instead. */
|
|
587
590
|
perUser: v.boolean().optional(),
|
|
588
591
|
/** Allowlist of tool IDs to expose. When set, only these tools are registered.
|
|
589
592
|
* This keeps the MCP context narrow by excluding unused tools.
|
|
@@ -28,7 +28,7 @@ export interface DurableRunCanaryStartRunInput extends DurableRunCanaryCreateRoo
|
|
|
28
28
|
/** Zod schema for get durable run canary message. */
|
|
29
29
|
export declare const getDurableRunCanaryMessageSchema: () => import("../../../internal-agents/schema.js").Schema<{
|
|
30
30
|
id: string;
|
|
31
|
-
role: "
|
|
31
|
+
role: "user" | "tool" | "assistant" | "system";
|
|
32
32
|
parts: ({
|
|
33
33
|
type: string;
|
|
34
34
|
} & {} & Record<string, unknown>)[];
|
|
@@ -30,5 +30,5 @@ export declare function getConnectorNames(): readonly string[];
|
|
|
30
30
|
/** Return icon. */
|
|
31
31
|
export declare function getIcon(name: IntegrationName | string): string | undefined;
|
|
32
32
|
export { executeRemoteIntegrationTool, getRemoteIntegrationToolDefinitions, isRemoteIntegrationTool, syncIntegrationConfig, } from "./remote-tools.js";
|
|
33
|
-
export type { IntegrationConnector, IntegrationRuntimeConfig, IntegrationScope, IntegrationTool, } from "./types.js";
|
|
33
|
+
export type { IntegrationConnector, IntegrationRuntimeConfig, IntegrationRuntimeConfigInput, IntegrationScope, IntegrationScopeInput, IntegrationTool, LegacyIntegrationScope, } from "./types.js";
|
|
34
34
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/integrations/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,yBAAyB,CAAC;AAEjC,YAAY,EACV,YAAY,EACZ,iBAAiB,EACjB,oCAAoC,EACpC,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,EACX,UAAU,GACX,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,0CAA0C,EAC1C,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAIrB,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAItE,wBAAwB;AACxB,wBAAgB,YAAY,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAG1F;AAED,uBAAuB;AACvB,wBAAgB,cAAc,IAAI,SAAS,iBAAiB,EAAE,CAE7D;AAED,8BAA8B;AAC9B,wBAAgB,iBAAiB,IAAI,SAAS,MAAM,EAAE,CAErD;AAED,mBAAmB;AACnB,wBAAgB,OAAO,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAG1E;AAGD,OAAO,EACL,4BAA4B,EAC5B,mCAAmC,EACnC,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,oBAAoB,EACpB,wBAAwB,EACxB,gBAAgB,EAChB,eAAe,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/integrations/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,yBAAyB,CAAC;AAEjC,YAAY,EACV,YAAY,EACZ,iBAAiB,EACjB,oCAAoC,EACpC,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,EACX,UAAU,GACX,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,0CAA0C,EAC1C,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAIrB,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAItE,wBAAwB;AACxB,wBAAgB,YAAY,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAG1F;AAED,uBAAuB;AACvB,wBAAgB,cAAc,IAAI,SAAS,iBAAiB,EAAE,CAE7D;AAED,8BAA8B;AAC9B,wBAAgB,iBAAiB,IAAI,SAAS,MAAM,EAAE,CAErD;AAED,mBAAmB;AACnB,wBAAgB,OAAO,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAG1E;AAGD,OAAO,EACL,4BAA4B,EAC5B,mCAAmC,EACnC,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,oBAAoB,EACpB,wBAAwB,EACxB,6BAA6B,EAC7B,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,EACf,sBAAsB,GACvB,MAAM,YAAY,CAAC"}
|
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
import type { ToolDefinition } from "../tool/index.js";
|
|
2
|
+
import type { IntegrationScope } from "./types.js";
|
|
2
3
|
type RemoteIntegrationToolExecutionContext = {
|
|
3
4
|
runId?: string;
|
|
4
5
|
agentId?: string;
|
|
5
6
|
};
|
|
7
|
+
type IntegrationConfigSyncInput = {
|
|
8
|
+
scope: IntegrationScope;
|
|
9
|
+
tools?: string[];
|
|
10
|
+
};
|
|
6
11
|
/**
|
|
7
12
|
* Fetch integration tool definitions for the current request context.
|
|
8
13
|
* Returns ToolDefinition[] that the agent runtime merges into the model's
|
|
@@ -25,11 +30,8 @@ export declare function executeRemoteIntegrationTool(toolName: string, args: Rec
|
|
|
25
30
|
/**
|
|
26
31
|
* Sync integration config from veryfront.config.ts to the API.
|
|
27
32
|
* This is a full-replace operation. Called by the MCP server path
|
|
28
|
-
* which has access to the config.
|
|
33
|
+
* which has access to the validated, canonical config.
|
|
29
34
|
*/
|
|
30
|
-
export declare function syncIntegrationConfig(apiBaseUrl: string, apiToken: string, integrations: Record<string,
|
|
31
|
-
scope?: string;
|
|
32
|
-
tools?: string[];
|
|
33
|
-
}>): Promise<void>;
|
|
35
|
+
export declare function syncIntegrationConfig(apiBaseUrl: string, apiToken: string, integrations: Record<string, IntegrationConfigSyncInput>): Promise<void>;
|
|
34
36
|
export {};
|
|
35
37
|
//# sourceMappingURL=remote-tools.d.ts.map
|