@agent-native/core 0.126.0 → 0.127.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/corpus/README.md +2 -2
- package/corpus/core/CHANGELOG.md +83 -0
- package/corpus/core/docs/content/external-agents-catalog.mdx +14 -11
- package/corpus/core/docs/content/mcp-protocol.mdx +9 -4
- package/corpus/core/package.json +1 -1
- package/corpus/core/src/a2a/index.ts +2 -0
- package/corpus/core/src/agent/production-agent.ts +6 -1
- package/corpus/core/src/agent/run-manager.ts +37 -0
- package/corpus/core/src/agent/run-store.ts +18 -0
- package/corpus/core/src/cli/template-sync.ts +96 -0
- package/corpus/core/src/client/MultiTabAssistantChat.tsx +75 -43
- package/corpus/core/src/client/agent-chat.ts +19 -1
- package/corpus/core/src/client/chat/tool-call-display.tsx +25 -0
- package/corpus/core/src/client/resources/mcp-integration-catalog.ts +23 -0
- package/corpus/core/src/client/settings/AgentsSection.tsx +565 -71
- package/corpus/core/src/client/settings/SecretsSection.tsx +71 -36
- package/corpus/core/src/client/use-chat-models.ts +54 -37
- package/corpus/core/src/localization/default-messages.ts +11 -0
- package/corpus/core/src/mcp/ask-app-task-handle.ts +183 -0
- package/corpus/core/src/mcp/builtin-tools.ts +146 -34
- package/corpus/core/src/server/agent-capabilities.ts +8 -1
- package/corpus/core/src/server/agent-chat-plugin.ts +17 -0
- package/corpus/core/src/server/agent-discovery.ts +1 -1
- package/corpus/core/src/server/agent-peer-probe.ts +133 -0
- package/corpus/core/src/server/builder-design-systems.ts +1 -1
- package/corpus/core/src/server/core-routes-plugin.ts +67 -0
- package/corpus/core/src/shared/mcp-embed-headers.ts +4 -0
- package/corpus/core/src/templates/chat/_gitignore +2 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/a2a-protocol/SKILL.md +159 -119
- package/corpus/templates/chat/_gitignore +2 -0
- package/corpus/templates/design/.agents/skills/design-generation/SKILL.md +23 -0
- package/corpus/templates/design/actions/create-file.ts +15 -0
- package/corpus/templates/design/actions/generate-design.ts +40 -0
- package/corpus/templates/design/actions/present-design-variants.ts +16 -0
- package/corpus/templates/design/app/hooks/use-question-flow.ts +21 -1
- package/corpus/templates/design/app/pages/design-editor/save-failure.ts +7 -1
- package/corpus/templates/design/changelog/2026-07-28-generated-designs-with-malformed-html-are-now-rejected-at-sa.md +6 -0
- package/corpus/templates/design/changelog/2026-07-28-the-model-you-pick-when-starting-a-new-design-is-now-used-fo.md +6 -0
- package/corpus/templates/design/server/source-workspace.ts +1 -0
- package/corpus/templates/design/shared/html-integrity.ts +608 -18
- package/corpus/templates/dispatch/changelog/2026-07-28-pending-apps-are-hidden-by-default-and-app-ownership-details.md +6 -0
- package/corpus/templates/slides/app/components/deck/DeckCard.tsx +2 -6
- package/corpus/templates/slides/app/components/editor/EditorSidebar.tsx +5 -1
- package/corpus/templates/slides/app/components/editor/EditorToolbar.tsx +5 -0
- package/corpus/templates/slides/app/components/editor/ExportMenu.tsx +31 -8
- package/corpus/templates/slides/app/components/editor/PromptDialog.tsx +15 -0
- package/corpus/templates/slides/app/components/presentation/PresentationView.tsx +78 -8
- package/corpus/templates/slides/app/components/presentation/PresenterView.tsx +179 -0
- package/corpus/templates/slides/app/components/presentation/present-channel.ts +15 -0
- package/corpus/templates/slides/app/i18n/en-US.ts +10 -1
- package/corpus/templates/slides/app/lib/export-google-slides-client.ts +67 -0
- package/corpus/templates/slides/app/lib/export-pptx-client.ts +16 -3
- package/corpus/templates/slides/app/pages/DeckEditor.tsx +11 -0
- package/corpus/templates/slides/app/pages/Presentation.tsx +11 -3
- package/corpus/templates/slides/changelog/2026-07-28-export-to-google-slides-now-creates-the-deck-directly-in-you.md +6 -0
- package/corpus/templates/slides/changelog/2026-07-28-opening-a-presentation-link-directly-no-longer-bounces-back-.md +6 -0
- package/corpus/templates/slides/changelog/2026-07-28-presenter-view-open-a-second-window-while-presenting-to-see-.md +6 -0
- package/corpus/templates/slides/server/routes/api/exports/google-slides.post.ts +90 -0
- package/corpus/toolkit/CHANGELOG.md +6 -0
- package/corpus/toolkit/package.json +1 -1
- package/corpus/toolkit/src/composer/TiptapComposer.tsx +143 -111
- package/corpus/toolkit/src/composer/runtime-adapters.tsx +2 -0
- package/dist/a2a/index.d.ts +2 -0
- package/dist/a2a/index.d.ts.map +1 -1
- package/dist/a2a/index.js +1 -0
- package/dist/a2a/index.js.map +1 -1
- package/dist/agent/production-agent.d.ts +2 -2
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +6 -3
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/agent/run-manager.d.ts +11 -0
- package/dist/agent/run-manager.d.ts.map +1 -1
- package/dist/agent/run-manager.js +34 -1
- package/dist/agent/run-manager.js.map +1 -1
- package/dist/agent/run-store.d.ts +8 -0
- package/dist/agent/run-store.d.ts.map +1 -1
- package/dist/agent/run-store.js +16 -0
- package/dist/agent/run-store.js.map +1 -1
- package/dist/cli/template-sync.d.ts.map +1 -1
- package/dist/cli/template-sync.js +88 -0
- package/dist/cli/template-sync.js.map +1 -1
- package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
- package/dist/client/MultiTabAssistantChat.js +60 -31
- package/dist/client/MultiTabAssistantChat.js.map +1 -1
- package/dist/client/agent-chat.d.ts +6 -0
- package/dist/client/agent-chat.d.ts.map +1 -1
- package/dist/client/agent-chat.js +13 -1
- package/dist/client/agent-chat.js.map +1 -1
- package/dist/client/chat/tool-call-display.d.ts.map +1 -1
- package/dist/client/chat/tool-call-display.js +14 -0
- package/dist/client/chat/tool-call-display.js.map +1 -1
- package/dist/client/resources/mcp-integration-catalog.d.ts +6 -0
- package/dist/client/resources/mcp-integration-catalog.d.ts.map +1 -1
- package/dist/client/resources/mcp-integration-catalog.js +16 -0
- package/dist/client/resources/mcp-integration-catalog.js.map +1 -1
- package/dist/client/settings/AgentsSection.d.ts.map +1 -1
- package/dist/client/settings/AgentsSection.js +250 -30
- package/dist/client/settings/AgentsSection.js.map +1 -1
- package/dist/client/settings/SecretsSection.d.ts.map +1 -1
- package/dist/client/settings/SecretsSection.js +16 -2
- package/dist/client/settings/SecretsSection.js.map +1 -1
- package/dist/client/use-chat-models.d.ts.map +1 -1
- package/dist/client/use-chat-models.js +46 -27
- package/dist/client/use-chat-models.js.map +1 -1
- package/dist/collab/routes.d.ts +2 -2
- package/dist/collab/struct-routes.d.ts +1 -1
- package/dist/file-upload/actions/upload-image.d.ts +1 -1
- package/dist/localization/default-messages.d.ts +9 -0
- package/dist/localization/default-messages.d.ts.map +1 -1
- package/dist/localization/default-messages.js +9 -0
- package/dist/localization/default-messages.js.map +1 -1
- package/dist/mcp/ask-app-task-handle.d.ts +25 -0
- package/dist/mcp/ask-app-task-handle.d.ts.map +1 -0
- package/dist/mcp/ask-app-task-handle.js +136 -0
- package/dist/mcp/ask-app-task-handle.js.map +1 -0
- package/dist/mcp/builtin-tools.d.ts +3 -3
- package/dist/mcp/builtin-tools.d.ts.map +1 -1
- package/dist/mcp/builtin-tools.js +115 -38
- package/dist/mcp/builtin-tools.js.map +1 -1
- package/dist/observability/routes.d.ts +3 -3
- package/dist/progress/routes.d.ts +1 -1
- package/dist/provider-api/actions/custom-provider-registration.d.ts +4 -4
- package/dist/provider-api/actions/provider-api.d.ts +8 -8
- package/dist/resources/handlers.d.ts +1 -1
- package/dist/secrets/routes.d.ts +9 -9
- package/dist/server/agent-capabilities.d.ts +7 -1
- package/dist/server/agent-capabilities.d.ts.map +1 -1
- package/dist/server/agent-capabilities.js +1 -0
- package/dist/server/agent-capabilities.js.map +1 -1
- package/dist/server/agent-chat-plugin.d.ts +7 -0
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +16 -1
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/agent-discovery.d.ts +1 -0
- package/dist/server/agent-discovery.d.ts.map +1 -1
- package/dist/server/agent-discovery.js +1 -1
- package/dist/server/agent-discovery.js.map +1 -1
- package/dist/server/agent-peer-probe.d.ts +37 -0
- package/dist/server/agent-peer-probe.d.ts.map +1 -0
- package/dist/server/agent-peer-probe.js +90 -0
- package/dist/server/agent-peer-probe.js.map +1 -0
- package/dist/server/builder-design-systems.js +1 -1
- package/dist/server/builder-design-systems.js.map +1 -1
- package/dist/server/core-routes-plugin.d.ts.map +1 -1
- package/dist/server/core-routes-plugin.js +53 -0
- package/dist/server/core-routes-plugin.js.map +1 -1
- package/dist/server/realtime-token.d.ts +1 -1
- package/dist/server/transcribe-voice.d.ts +1 -1
- package/dist/shared/mcp-embed-headers.d.ts +1 -0
- package/dist/shared/mcp-embed-headers.d.ts.map +1 -1
- package/dist/shared/mcp-embed-headers.js +4 -0
- package/dist/shared/mcp-embed-headers.js.map +1 -1
- package/dist/templates/chat/_gitignore +2 -0
- package/dist/templates/workspace-core/.agents/skills/a2a-protocol/SKILL.md +159 -119
- package/docs/content/external-agents-catalog.mdx +14 -11
- package/docs/content/mcp-protocol.mdx +9 -4
- package/package.json +2 -2
- package/src/a2a/index.ts +2 -0
- package/src/agent/production-agent.ts +6 -1
- package/src/agent/run-manager.ts +37 -0
- package/src/agent/run-store.ts +18 -0
- package/src/cli/template-sync.ts +96 -0
- package/src/client/MultiTabAssistantChat.tsx +75 -43
- package/src/client/agent-chat.ts +19 -1
- package/src/client/chat/tool-call-display.tsx +25 -0
- package/src/client/resources/mcp-integration-catalog.ts +23 -0
- package/src/client/settings/AgentsSection.tsx +565 -71
- package/src/client/settings/SecretsSection.tsx +71 -36
- package/src/client/use-chat-models.ts +54 -37
- package/src/localization/default-messages.ts +11 -0
- package/src/mcp/ask-app-task-handle.ts +183 -0
- package/src/mcp/builtin-tools.ts +146 -34
- package/src/server/agent-capabilities.ts +8 -1
- package/src/server/agent-chat-plugin.ts +17 -0
- package/src/server/agent-discovery.ts +1 -1
- package/src/server/agent-peer-probe.ts +133 -0
- package/src/server/builder-design-systems.ts +1 -1
- package/src/server/core-routes-plugin.ts +67 -0
- package/src/shared/mcp-embed-headers.ts +4 -0
- package/src/templates/chat/_gitignore +2 -0
- package/src/templates/workspace-core/.agents/skills/a2a-protocol/SKILL.md +159 -119
|
@@ -3,6 +3,7 @@ import { useEffect, useState } from "react";
|
|
|
3
3
|
import { useParams, Navigate, useSearchParams } from "react-router";
|
|
4
4
|
|
|
5
5
|
import PresentationView from "@/components/presentation/PresentationView";
|
|
6
|
+
import PresenterView from "@/components/presentation/PresenterView";
|
|
6
7
|
import { useDecks } from "@/context/DeckContext";
|
|
7
8
|
import type { Deck } from "@/context/DeckContext";
|
|
8
9
|
|
|
@@ -45,10 +46,14 @@ export default function Presentation() {
|
|
|
45
46
|
};
|
|
46
47
|
}, [contextDeck, id, loading]);
|
|
47
48
|
|
|
48
|
-
if (
|
|
49
|
+
if (!id) return <Navigate to="/" replace />;
|
|
50
|
+
// "Not fetched yet" is not "not found": on a cold load of this URL the deck
|
|
51
|
+
// context is empty and the fallback fetch has not run, so redirecting on a
|
|
52
|
+
// falsy deck bounced every direct/presenter/share link back to the index.
|
|
53
|
+
if (!deck && fallbackState !== "missing") {
|
|
49
54
|
return <div className="h-screen bg-black" />;
|
|
50
55
|
}
|
|
51
|
-
if (!deck
|
|
56
|
+
if (!deck) {
|
|
52
57
|
return <Navigate to="/" replace />;
|
|
53
58
|
}
|
|
54
59
|
|
|
@@ -58,8 +63,11 @@ export default function Presentation() {
|
|
|
58
63
|
? Math.max(0, parsedSlide - 1)
|
|
59
64
|
: 0;
|
|
60
65
|
|
|
66
|
+
const View =
|
|
67
|
+
searchParams.get("presenter") === "1" ? PresenterView : PresentationView;
|
|
68
|
+
|
|
61
69
|
return (
|
|
62
|
-
<
|
|
70
|
+
<View
|
|
63
71
|
slides={Array.isArray(deck.slides) ? deck.slides : []}
|
|
64
72
|
deckId={id}
|
|
65
73
|
startIndex={startSlide}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { getSession, runWithRequestContext } from "@agent-native/core/server";
|
|
2
|
+
import {
|
|
3
|
+
defineEventHandler,
|
|
4
|
+
readMultipartFormData,
|
|
5
|
+
setResponseStatus,
|
|
6
|
+
} from "h3";
|
|
7
|
+
|
|
8
|
+
import { getGoogleDocsAccessToken } from "../../../lib/google-docs-oauth.js";
|
|
9
|
+
|
|
10
|
+
const PPTX_CONTENT_TYPE =
|
|
11
|
+
"application/vnd.openxmlformats-officedocument.presentationml.presentation";
|
|
12
|
+
const GOOGLE_SLIDES_MIME = "application/vnd.google-apps.presentation";
|
|
13
|
+
const UPLOAD_URL =
|
|
14
|
+
"https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart&fields=id,webViewLink";
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Uploads a browser-generated PPTX into the user's Drive, letting Drive convert
|
|
18
|
+
* it to a native Google Slides deck. The PPTX comes from the client because the
|
|
19
|
+
* browser export renders the real slide DOM — the server-side pptxgenjs export
|
|
20
|
+
* is a lower-fidelity fallback and would ship a visibly worse deck to Google.
|
|
21
|
+
*/
|
|
22
|
+
export default defineEventHandler(async (event) => {
|
|
23
|
+
const session = await getSession(event).catch(() => null);
|
|
24
|
+
if (!session?.email) {
|
|
25
|
+
setResponseStatus(event, 401);
|
|
26
|
+
return { error: "Unauthorized" };
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const parts = (await readMultipartFormData(event)) ?? [];
|
|
30
|
+
const file = parts.find((part) => part.name === "file");
|
|
31
|
+
const titlePart = parts.find((part) => part.name === "title");
|
|
32
|
+
const title = titlePart
|
|
33
|
+
? new TextDecoder().decode(titlePart.data).trim() || "Untitled deck"
|
|
34
|
+
: "Untitled deck";
|
|
35
|
+
|
|
36
|
+
if (!file?.data?.length) {
|
|
37
|
+
setResponseStatus(event, 400);
|
|
38
|
+
return { error: "file required" };
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// Same request context the actions run in — Google's client credentials can
|
|
42
|
+
// be org-scoped vault secrets, and resolving them without the org reports the
|
|
43
|
+
// integration as unconfigured.
|
|
44
|
+
const account = await runWithRequestContext(
|
|
45
|
+
{ userEmail: session.email, orgId: session.orgId },
|
|
46
|
+
() => getGoogleDocsAccessToken(session.email),
|
|
47
|
+
);
|
|
48
|
+
if (!account) {
|
|
49
|
+
setResponseStatus(event, 409);
|
|
50
|
+
return {
|
|
51
|
+
error: "No connected Google account.",
|
|
52
|
+
code: "google-not-connected",
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
const boundary = `an-slides-${Math.random().toString(36).slice(2)}`;
|
|
57
|
+
const body = new Blob([
|
|
58
|
+
`--${boundary}\r\nContent-Type: application/json; charset=UTF-8\r\n\r\n`,
|
|
59
|
+
JSON.stringify({ name: title, mimeType: GOOGLE_SLIDES_MIME }),
|
|
60
|
+
`\r\n--${boundary}\r\nContent-Type: ${PPTX_CONTENT_TYPE}\r\n\r\n`,
|
|
61
|
+
new Uint8Array(file.data),
|
|
62
|
+
`\r\n--${boundary}--`,
|
|
63
|
+
]);
|
|
64
|
+
|
|
65
|
+
const response = await fetch(UPLOAD_URL, {
|
|
66
|
+
method: "POST",
|
|
67
|
+
headers: {
|
|
68
|
+
Authorization: `Bearer ${account.accessToken}`,
|
|
69
|
+
"Content-Type": `multipart/related; boundary=${boundary}`,
|
|
70
|
+
},
|
|
71
|
+
body,
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
const result = (await response.json().catch(() => null)) as {
|
|
75
|
+
id?: string;
|
|
76
|
+
webViewLink?: string;
|
|
77
|
+
error?: { message?: string };
|
|
78
|
+
} | null;
|
|
79
|
+
|
|
80
|
+
if (!response.ok || !result?.webViewLink) {
|
|
81
|
+
setResponseStatus(event, 502);
|
|
82
|
+
return {
|
|
83
|
+
error:
|
|
84
|
+
result?.error?.message ??
|
|
85
|
+
`Google Drive returned HTTP ${response.status} while creating the deck.`,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
return { url: result.webViewLink, accountEmail: account.accountEmail };
|
|
90
|
+
});
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# @agent-native/toolkit
|
|
2
2
|
|
|
3
|
+
## 0.10.9
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- cbc6936: Show only the connect actions in the composer model picker when no LLM provider is configured, instead of a list of unpickable "needs API key" models, and surface Builder connect failures instead of leaving the "Connect Builder.io" button looking dead when the popup is blocked.
|
|
8
|
+
|
|
3
9
|
## 0.10.8
|
|
4
10
|
|
|
5
11
|
### Patch Changes
|
|
@@ -839,6 +839,18 @@ export function shouldShowModelSelectorSkeleton(
|
|
|
839
839
|
return isLoading && engineCount === 0;
|
|
840
840
|
}
|
|
841
841
|
|
|
842
|
+
/**
|
|
843
|
+
* With nothing connected, every family is a dead "needs API key" row, so the
|
|
844
|
+
* picker shows only the connect CTAs. Never hide the list unless a CTA is
|
|
845
|
+
* there to replace it — an empty popover reads as more broken, not less.
|
|
846
|
+
*/
|
|
847
|
+
export function shouldShowOnlyConnectPath(
|
|
848
|
+
showBuilderCta: boolean,
|
|
849
|
+
groups: ReadonlyArray<{ configured: boolean }>,
|
|
850
|
+
): boolean {
|
|
851
|
+
return showBuilderCta && groups.every((group) => !group.configured);
|
|
852
|
+
}
|
|
853
|
+
|
|
842
854
|
function friendlyModelName(model: string): string {
|
|
843
855
|
if (FRIENDLY_MODEL_NAMES[model]) return FRIENDLY_MODEL_NAMES[model];
|
|
844
856
|
// Claude: claude-{tier}-{major}[-minor][-dateYYYYMMDD] → Tier Major[.Minor]
|
|
@@ -1081,6 +1093,10 @@ function ModelSelector({
|
|
|
1081
1093
|
!builderFlow.configured &&
|
|
1082
1094
|
!builderFlow.envManaged &&
|
|
1083
1095
|
!hasConfiguredBuilderModels;
|
|
1096
|
+
const onlyConnectPathAvailable = shouldShowOnlyConnectPath(
|
|
1097
|
+
showBuilderCta,
|
|
1098
|
+
providerGroups,
|
|
1099
|
+
);
|
|
1084
1100
|
const openLlmSettings = useCallback(() => {
|
|
1085
1101
|
try {
|
|
1086
1102
|
window.location.hash = "llm";
|
|
@@ -1161,6 +1177,14 @@ function ModelSelector({
|
|
|
1161
1177
|
</span>
|
|
1162
1178
|
</span>
|
|
1163
1179
|
</button>
|
|
1180
|
+
{!onConnectProvider && builderFlow.error && (
|
|
1181
|
+
<p
|
|
1182
|
+
role="alert"
|
|
1183
|
+
className="px-3 pb-2 ps-9 text-[11px] text-destructive"
|
|
1184
|
+
>
|
|
1185
|
+
{builderFlow.error}
|
|
1186
|
+
</p>
|
|
1187
|
+
)}
|
|
1164
1188
|
<button
|
|
1165
1189
|
type="button"
|
|
1166
1190
|
onClick={openLlmSettings}
|
|
@@ -1181,7 +1205,9 @@ function ModelSelector({
|
|
|
1181
1205
|
</span>
|
|
1182
1206
|
</span>
|
|
1183
1207
|
</button>
|
|
1184
|
-
|
|
1208
|
+
{!onlyConnectPathAvailable && (
|
|
1209
|
+
<div className="my-1 border-t border-border" />
|
|
1210
|
+
)}
|
|
1185
1211
|
</>
|
|
1186
1212
|
)}
|
|
1187
1213
|
{imageModel && imageModel.options.length > 0 && (
|
|
@@ -1231,7 +1257,7 @@ function ModelSelector({
|
|
|
1231
1257
|
</>
|
|
1232
1258
|
)}
|
|
1233
1259
|
{showModelListSkeleton && <ModelSelectorSkeleton />}
|
|
1234
|
-
{autoModelGroup && (
|
|
1260
|
+
{autoModelGroup && !onlyConnectPathAvailable && (
|
|
1235
1261
|
<button
|
|
1236
1262
|
type="button"
|
|
1237
1263
|
onClick={() => {
|
|
@@ -1248,136 +1274,142 @@ function ModelSelector({
|
|
|
1248
1274
|
)}
|
|
1249
1275
|
</button>
|
|
1250
1276
|
)}
|
|
1251
|
-
{autoModelGroup &&
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1277
|
+
{autoModelGroup &&
|
|
1278
|
+
providerGroups.length > 0 &&
|
|
1279
|
+
!onlyConnectPathAvailable && (
|
|
1280
|
+
<div className="my-1 border-t border-border" />
|
|
1281
|
+
)}
|
|
1282
|
+
{!onlyConnectPathAvailable &&
|
|
1283
|
+
providerGroups.map((group) => {
|
|
1284
|
+
const models = latestModelsOnly(group.models);
|
|
1285
|
+
const groupKey = `${group.engine}:${group.label}`;
|
|
1286
|
+
const isExpanded = expandedGroups.has(groupKey);
|
|
1287
|
+
const ChevronIcon = isExpanded ? IconChevronDown : IconChevronRight;
|
|
1288
|
+
return (
|
|
1289
|
+
<div key={groupKey}>
|
|
1290
|
+
<div className="flex items-center hover:bg-accent/30">
|
|
1291
|
+
<button
|
|
1292
|
+
type="button"
|
|
1293
|
+
aria-expanded={isExpanded}
|
|
1294
|
+
onClick={() => toggleGroup(groupKey)}
|
|
1295
|
+
className="flex flex-1 min-w-0 items-center gap-1.5 px-2 py-1.5 cursor-pointer text-start"
|
|
1296
|
+
>
|
|
1297
|
+
<ChevronIcon className="h-3 w-3 shrink-0 text-muted-foreground rtl:-scale-x-100" />
|
|
1298
|
+
<span className="text-[11px] font-medium text-muted-foreground uppercase tracking-wide shrink-0">
|
|
1299
|
+
{group.label}
|
|
1300
|
+
</span>
|
|
1301
|
+
{!isExpanded && groupKey === selectedGroupKey && (
|
|
1302
|
+
<span className="text-[11px] text-muted-foreground/80 truncate">
|
|
1303
|
+
{friendlyModelName(model)}
|
|
1304
|
+
</span>
|
|
1305
|
+
)}
|
|
1306
|
+
</button>
|
|
1307
|
+
{!group.configured && (
|
|
1308
|
+
<button
|
|
1309
|
+
type="button"
|
|
1310
|
+
className="text-[10px] text-muted-foreground/60 hover:text-foreground cursor-pointer pe-3 py-1.5"
|
|
1311
|
+
onClick={() =>
|
|
1312
|
+
group.engine === "codex-cli" && onConnectLocalRuntime
|
|
1313
|
+
? connectLocalRuntime(group.engine)
|
|
1314
|
+
: openLlmSettings()
|
|
1315
|
+
}
|
|
1316
|
+
>
|
|
1317
|
+
{group.engine === "codex-cli" && onConnectLocalRuntime
|
|
1318
|
+
? "sign in"
|
|
1319
|
+
: "needs API key"}
|
|
1320
|
+
</button>
|
|
1321
|
+
)}
|
|
1322
|
+
</div>
|
|
1323
|
+
{isExpanded &&
|
|
1324
|
+
models.map((m) => (
|
|
1325
|
+
<button
|
|
1326
|
+
key={m}
|
|
1327
|
+
type="button"
|
|
1328
|
+
onClick={() => {
|
|
1329
|
+
if (!group.configured) {
|
|
1330
|
+
if (
|
|
1331
|
+
group.engine === "codex-cli" &&
|
|
1332
|
+
onConnectLocalRuntime
|
|
1333
|
+
) {
|
|
1334
|
+
connectLocalRuntime(group.engine);
|
|
1335
|
+
} else {
|
|
1336
|
+
openLlmSettings();
|
|
1337
|
+
}
|
|
1338
|
+
return;
|
|
1339
|
+
}
|
|
1340
|
+
onChange(m, group.engine);
|
|
1341
|
+
const nextOptions =
|
|
1342
|
+
getReasoningEffortOptionsForModel(m);
|
|
1343
|
+
if (
|
|
1344
|
+
nextOptions.length > 0 &&
|
|
1345
|
+
!nextOptions.includes(selectedEffort)
|
|
1346
|
+
) {
|
|
1347
|
+
onEffortChange?.(defaultEffort);
|
|
1348
|
+
}
|
|
1349
|
+
setOpen(false);
|
|
1350
|
+
}}
|
|
1351
|
+
className={`flex w-full items-center gap-3 ps-7 pe-3 py-1.5 text-start ${
|
|
1352
|
+
group.configured
|
|
1353
|
+
? "hover:bg-accent/50"
|
|
1354
|
+
: "opacity-40 cursor-default"
|
|
1355
|
+
}`}
|
|
1356
|
+
>
|
|
1357
|
+
<span className="flex-1 min-w-0 text-[13px] text-foreground truncate">
|
|
1358
|
+
{friendlyModelName(m)}
|
|
1359
|
+
</span>
|
|
1360
|
+
{m === model && group.configured && (
|
|
1361
|
+
<IconCheck className="h-3.5 w-3.5 shrink-0 text-blue-500" />
|
|
1362
|
+
)}
|
|
1363
|
+
</button>
|
|
1364
|
+
))}
|
|
1365
|
+
</div>
|
|
1366
|
+
);
|
|
1367
|
+
})}
|
|
1368
|
+
{!showModelListSkeleton &&
|
|
1369
|
+
!onlyConnectPathAvailable &&
|
|
1370
|
+
effortOptions.length > 0 && (
|
|
1371
|
+
<>
|
|
1372
|
+
<div className="my-1 border-t border-border" />
|
|
1261
1373
|
<div className="flex items-center hover:bg-accent/30">
|
|
1262
1374
|
<button
|
|
1263
1375
|
type="button"
|
|
1264
|
-
aria-expanded={
|
|
1265
|
-
onClick={() =>
|
|
1376
|
+
aria-expanded={reasoningExpanded}
|
|
1377
|
+
onClick={() => setReasoningExpanded((prev) => !prev)}
|
|
1266
1378
|
className="flex flex-1 min-w-0 items-center gap-1.5 px-2 py-1.5 cursor-pointer text-start"
|
|
1267
1379
|
>
|
|
1268
|
-
|
|
1380
|
+
{reasoningExpanded ? (
|
|
1381
|
+
<IconChevronDown className="h-3 w-3 shrink-0 text-muted-foreground" />
|
|
1382
|
+
) : (
|
|
1383
|
+
<IconChevronRight className="h-3 w-3 shrink-0 text-muted-foreground rtl:-scale-x-100" />
|
|
1384
|
+
)}
|
|
1269
1385
|
<span className="text-[11px] font-medium text-muted-foreground uppercase tracking-wide shrink-0">
|
|
1270
|
-
|
|
1386
|
+
Reasoning
|
|
1271
1387
|
</span>
|
|
1272
|
-
{!
|
|
1388
|
+
{!reasoningExpanded && (
|
|
1273
1389
|
<span className="text-[11px] text-muted-foreground/80 truncate">
|
|
1274
|
-
{
|
|
1390
|
+
{effortLabel(selectedEffort)}
|
|
1275
1391
|
</span>
|
|
1276
1392
|
)}
|
|
1277
1393
|
</button>
|
|
1278
|
-
{!group.configured && (
|
|
1279
|
-
<button
|
|
1280
|
-
type="button"
|
|
1281
|
-
className="text-[10px] text-muted-foreground/60 hover:text-foreground cursor-pointer pe-3 py-1.5"
|
|
1282
|
-
onClick={() =>
|
|
1283
|
-
group.engine === "codex-cli" && onConnectLocalRuntime
|
|
1284
|
-
? connectLocalRuntime(group.engine)
|
|
1285
|
-
: openLlmSettings()
|
|
1286
|
-
}
|
|
1287
|
-
>
|
|
1288
|
-
{group.engine === "codex-cli" && onConnectLocalRuntime
|
|
1289
|
-
? "sign in"
|
|
1290
|
-
: "needs API key"}
|
|
1291
|
-
</button>
|
|
1292
|
-
)}
|
|
1293
1394
|
</div>
|
|
1294
|
-
{
|
|
1295
|
-
|
|
1395
|
+
{reasoningExpanded &&
|
|
1396
|
+
effortOptions.map((option) => (
|
|
1296
1397
|
<button
|
|
1297
|
-
key={
|
|
1398
|
+
key={option}
|
|
1298
1399
|
type="button"
|
|
1299
|
-
onClick={() =>
|
|
1300
|
-
|
|
1301
|
-
if (
|
|
1302
|
-
group.engine === "codex-cli" &&
|
|
1303
|
-
onConnectLocalRuntime
|
|
1304
|
-
) {
|
|
1305
|
-
connectLocalRuntime(group.engine);
|
|
1306
|
-
} else {
|
|
1307
|
-
openLlmSettings();
|
|
1308
|
-
}
|
|
1309
|
-
return;
|
|
1310
|
-
}
|
|
1311
|
-
onChange(m, group.engine);
|
|
1312
|
-
const nextOptions = getReasoningEffortOptionsForModel(m);
|
|
1313
|
-
if (
|
|
1314
|
-
nextOptions.length > 0 &&
|
|
1315
|
-
!nextOptions.includes(selectedEffort)
|
|
1316
|
-
) {
|
|
1317
|
-
onEffortChange?.(defaultEffort);
|
|
1318
|
-
}
|
|
1319
|
-
setOpen(false);
|
|
1320
|
-
}}
|
|
1321
|
-
className={`flex w-full items-center gap-3 ps-7 pe-3 py-1.5 text-start ${
|
|
1322
|
-
group.configured
|
|
1323
|
-
? "hover:bg-accent/50"
|
|
1324
|
-
: "opacity-40 cursor-default"
|
|
1325
|
-
}`}
|
|
1400
|
+
onClick={() => onEffortChange?.(option)}
|
|
1401
|
+
className="flex w-full items-center gap-3 ps-7 pe-3 py-1.5 text-start hover:bg-accent/50"
|
|
1326
1402
|
>
|
|
1327
1403
|
<span className="flex-1 min-w-0 text-[13px] text-foreground truncate">
|
|
1328
|
-
{
|
|
1404
|
+
{effortLabel(option)}
|
|
1329
1405
|
</span>
|
|
1330
|
-
{
|
|
1406
|
+
{option === selectedEffort && (
|
|
1331
1407
|
<IconCheck className="h-3.5 w-3.5 shrink-0 text-blue-500" />
|
|
1332
1408
|
)}
|
|
1333
1409
|
</button>
|
|
1334
1410
|
))}
|
|
1335
|
-
|
|
1336
|
-
)
|
|
1337
|
-
})}
|
|
1338
|
-
{!showModelListSkeleton && effortOptions.length > 0 && (
|
|
1339
|
-
<>
|
|
1340
|
-
<div className="my-1 border-t border-border" />
|
|
1341
|
-
<div className="flex items-center hover:bg-accent/30">
|
|
1342
|
-
<button
|
|
1343
|
-
type="button"
|
|
1344
|
-
aria-expanded={reasoningExpanded}
|
|
1345
|
-
onClick={() => setReasoningExpanded((prev) => !prev)}
|
|
1346
|
-
className="flex flex-1 min-w-0 items-center gap-1.5 px-2 py-1.5 cursor-pointer text-start"
|
|
1347
|
-
>
|
|
1348
|
-
{reasoningExpanded ? (
|
|
1349
|
-
<IconChevronDown className="h-3 w-3 shrink-0 text-muted-foreground" />
|
|
1350
|
-
) : (
|
|
1351
|
-
<IconChevronRight className="h-3 w-3 shrink-0 text-muted-foreground rtl:-scale-x-100" />
|
|
1352
|
-
)}
|
|
1353
|
-
<span className="text-[11px] font-medium text-muted-foreground uppercase tracking-wide shrink-0">
|
|
1354
|
-
Reasoning
|
|
1355
|
-
</span>
|
|
1356
|
-
{!reasoningExpanded && (
|
|
1357
|
-
<span className="text-[11px] text-muted-foreground/80 truncate">
|
|
1358
|
-
{effortLabel(selectedEffort)}
|
|
1359
|
-
</span>
|
|
1360
|
-
)}
|
|
1361
|
-
</button>
|
|
1362
|
-
</div>
|
|
1363
|
-
{reasoningExpanded &&
|
|
1364
|
-
effortOptions.map((option) => (
|
|
1365
|
-
<button
|
|
1366
|
-
key={option}
|
|
1367
|
-
type="button"
|
|
1368
|
-
onClick={() => onEffortChange?.(option)}
|
|
1369
|
-
className="flex w-full items-center gap-3 ps-7 pe-3 py-1.5 text-start hover:bg-accent/50"
|
|
1370
|
-
>
|
|
1371
|
-
<span className="flex-1 min-w-0 text-[13px] text-foreground truncate">
|
|
1372
|
-
{effortLabel(option)}
|
|
1373
|
-
</span>
|
|
1374
|
-
{option === selectedEffort && (
|
|
1375
|
-
<IconCheck className="h-3.5 w-3.5 shrink-0 text-blue-500" />
|
|
1376
|
-
)}
|
|
1377
|
-
</button>
|
|
1378
|
-
))}
|
|
1379
|
-
</>
|
|
1380
|
-
)}
|
|
1411
|
+
</>
|
|
1412
|
+
)}
|
|
1381
1413
|
</PopoverContent>
|
|
1382
1414
|
</Popover>
|
|
1383
1415
|
);
|
|
@@ -43,6 +43,7 @@ export interface ComposerBuilderConnectFlow {
|
|
|
43
43
|
envManaged: boolean;
|
|
44
44
|
connecting: boolean;
|
|
45
45
|
statusResolved: boolean;
|
|
46
|
+
error: string | null;
|
|
46
47
|
start: () => void;
|
|
47
48
|
}
|
|
48
49
|
|
|
@@ -196,6 +197,7 @@ const fallbackBuilderFlow = {
|
|
|
196
197
|
envManaged: false,
|
|
197
198
|
connecting: false,
|
|
198
199
|
statusResolved: false,
|
|
200
|
+
error: null,
|
|
199
201
|
start: () => {},
|
|
200
202
|
};
|
|
201
203
|
|
package/dist/a2a/index.d.ts
CHANGED
|
@@ -3,6 +3,8 @@ export type { A2ATokenPayload } from "./server.js";
|
|
|
3
3
|
export { generateAgentCard } from "./agent-card.js";
|
|
4
4
|
export { A2A_AGENT_ACTIVITY_KIND, A2A_AGENT_ACTIVITY_VERSION, MAX_A2A_ACTIVITY_REASONING_CHARS, MAX_A2A_ACTIVITY_REASONING_SEGMENTS, MAX_A2A_ACTIVITY_RESPONSE_CHARS, MAX_A2A_ACTIVITY_TOOL_CALLS, MAX_A2A_ACTIVITY_TOTAL_CHARS, MAX_A2A_ACTIVITY_TOOL_ID_CHARS, MAX_A2A_ACTIVITY_TOOL_NAME_CHARS, applyA2AAgentActivityEvent, buildA2AAgentActivityPart, buildA2AAgentActivitySnapshot, createA2AAgentActivityState, parseA2AAgentActivityPart, } from "./activity.js";
|
|
5
5
|
export { A2AClient, callAction, callAgent, signA2AToken } from "./client.js";
|
|
6
|
+
export { resolveA2ACallerAuth } from "./caller-auth.js";
|
|
7
|
+
export type { A2ACallerAuth } from "./caller-auth.js";
|
|
6
8
|
export { AgentInvocationError, buildAgentInvocationPrompt, invokeAgent, invokeAgentAction, looksLikeAgentUrl, resolveAgentInvocationTarget, } from "./invoke.js";
|
|
7
9
|
export type { A2AConfig, A2AHandler, A2AHandlerContext, A2AHandlerResult, A2ASourceContext, AgentCard, AgentSkill, AgentCapabilities, Task, TaskState, TaskStatus, Message, Part, TextPart, FilePart, DataPart, Artifact, JsonRpcRequest, JsonRpcResponse, A2ACorrelationMetadata, A2AReadOnlyActionInvocation, A2AReadOnlyActionResult, A2AAgentActivityPhase, A2AAgentActivitySnapshot, A2AAgentActivityState, A2AAgentActivityToolCall, A2AAgentActivityToolStatus, } from "./types.js";
|
|
8
10
|
export type { AgentInvocationErrorCode, AgentActionInvocationResult, AgentInvocationResult, AgentInvocationRuntime, InvokeAgentActionOptions, InvokeAgentOptions, ResolveAgentInvocationTargetOptions, ResolvedAgentInvocationTarget, } from "./invoke.js";
|
package/dist/a2a/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/a2a/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACvD,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,gCAAgC,EAChC,mCAAmC,EACnC,+BAA+B,EAC/B,2BAA2B,EAC3B,4BAA4B,EAC5B,8BAA8B,EAC9B,gCAAgC,EAChC,0BAA0B,EAC1B,yBAAyB,EACzB,6BAA6B,EAC7B,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,4BAA4B,GAC7B,MAAM,aAAa,CAAC;AAGrB,YAAY,EACV,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,IAAI,EACJ,SAAS,EACT,UAAU,EACV,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,2BAA2B,EAC3B,uBAAuB,EACvB,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,wBAAwB,EACxB,2BAA2B,EAC3B,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,EAClB,mCAAmC,EACnC,6BAA6B,GAC9B,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/a2a/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACvD,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,gCAAgC,EAChC,mCAAmC,EACnC,+BAA+B,EAC/B,2BAA2B,EAC3B,4BAA4B,EAC5B,8BAA8B,EAC9B,gCAAgC,EAChC,0BAA0B,EAC1B,yBAAyB,EACzB,6BAA6B,EAC7B,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,4BAA4B,GAC7B,MAAM,aAAa,CAAC;AAGrB,YAAY,EACV,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,IAAI,EACJ,SAAS,EACT,UAAU,EACV,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,2BAA2B,EAC3B,uBAAuB,EACvB,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,wBAAwB,EACxB,2BAA2B,EAC3B,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,EAClB,mCAAmC,EACnC,6BAA6B,GAC9B,MAAM,aAAa,CAAC"}
|
package/dist/a2a/index.js
CHANGED
|
@@ -4,5 +4,6 @@ export { generateAgentCard } from "./agent-card.js";
|
|
|
4
4
|
export { A2A_AGENT_ACTIVITY_KIND, A2A_AGENT_ACTIVITY_VERSION, MAX_A2A_ACTIVITY_REASONING_CHARS, MAX_A2A_ACTIVITY_REASONING_SEGMENTS, MAX_A2A_ACTIVITY_RESPONSE_CHARS, MAX_A2A_ACTIVITY_TOOL_CALLS, MAX_A2A_ACTIVITY_TOTAL_CHARS, MAX_A2A_ACTIVITY_TOOL_ID_CHARS, MAX_A2A_ACTIVITY_TOOL_NAME_CHARS, applyA2AAgentActivityEvent, buildA2AAgentActivityPart, buildA2AAgentActivitySnapshot, createA2AAgentActivityState, parseA2AAgentActivityPart, } from "./activity.js";
|
|
5
5
|
// Client
|
|
6
6
|
export { A2AClient, callAction, callAgent, signA2AToken } from "./client.js";
|
|
7
|
+
export { resolveA2ACallerAuth } from "./caller-auth.js";
|
|
7
8
|
export { AgentInvocationError, buildAgentInvocationPrompt, invokeAgent, invokeAgentAction, looksLikeAgentUrl, resolveAgentInvocationTarget, } from "./invoke.js";
|
|
8
9
|
//# sourceMappingURL=index.js.map
|
package/dist/a2a/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/a2a/index.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,gCAAgC,EAChC,mCAAmC,EACnC,+BAA+B,EAC/B,2BAA2B,EAC3B,4BAA4B,EAC5B,8BAA8B,EAC9B,gCAAgC,EAChC,0BAA0B,EAC1B,yBAAyB,EACzB,6BAA6B,EAC7B,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,eAAe,CAAC;AAEvB,SAAS;AACT,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,4BAA4B,GAC7B,MAAM,aAAa,CAAC","sourcesContent":["// Server (H3/Nitro)\nexport { mountA2A, verifyA2AToken } from \"./server.js\";\nexport type { A2ATokenPayload } from \"./server.js\";\nexport { generateAgentCard } from \"./agent-card.js\";\nexport {\n A2A_AGENT_ACTIVITY_KIND,\n A2A_AGENT_ACTIVITY_VERSION,\n MAX_A2A_ACTIVITY_REASONING_CHARS,\n MAX_A2A_ACTIVITY_REASONING_SEGMENTS,\n MAX_A2A_ACTIVITY_RESPONSE_CHARS,\n MAX_A2A_ACTIVITY_TOOL_CALLS,\n MAX_A2A_ACTIVITY_TOTAL_CHARS,\n MAX_A2A_ACTIVITY_TOOL_ID_CHARS,\n MAX_A2A_ACTIVITY_TOOL_NAME_CHARS,\n applyA2AAgentActivityEvent,\n buildA2AAgentActivityPart,\n buildA2AAgentActivitySnapshot,\n createA2AAgentActivityState,\n parseA2AAgentActivityPart,\n} from \"./activity.js\";\n\n// Client\nexport { A2AClient, callAction, callAgent, signA2AToken } from \"./client.js\";\nexport {\n AgentInvocationError,\n buildAgentInvocationPrompt,\n invokeAgent,\n invokeAgentAction,\n looksLikeAgentUrl,\n resolveAgentInvocationTarget,\n} from \"./invoke.js\";\n\n// Types\nexport type {\n A2AConfig,\n A2AHandler,\n A2AHandlerContext,\n A2AHandlerResult,\n A2ASourceContext,\n AgentCard,\n AgentSkill,\n AgentCapabilities,\n Task,\n TaskState,\n TaskStatus,\n Message,\n Part,\n TextPart,\n FilePart,\n DataPart,\n Artifact,\n JsonRpcRequest,\n JsonRpcResponse,\n A2ACorrelationMetadata,\n A2AReadOnlyActionInvocation,\n A2AReadOnlyActionResult,\n A2AAgentActivityPhase,\n A2AAgentActivitySnapshot,\n A2AAgentActivityState,\n A2AAgentActivityToolCall,\n A2AAgentActivityToolStatus,\n} from \"./types.js\";\nexport type {\n AgentInvocationErrorCode,\n AgentActionInvocationResult,\n AgentInvocationResult,\n AgentInvocationRuntime,\n InvokeAgentActionOptions,\n InvokeAgentOptions,\n ResolveAgentInvocationTargetOptions,\n ResolvedAgentInvocationTarget,\n} from \"./invoke.js\";\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/a2a/index.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,gCAAgC,EAChC,mCAAmC,EACnC,+BAA+B,EAC/B,2BAA2B,EAC3B,4BAA4B,EAC5B,8BAA8B,EAC9B,gCAAgC,EAChC,0BAA0B,EAC1B,yBAAyB,EACzB,6BAA6B,EAC7B,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,eAAe,CAAC;AAEvB,SAAS;AACT,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,4BAA4B,GAC7B,MAAM,aAAa,CAAC","sourcesContent":["// Server (H3/Nitro)\nexport { mountA2A, verifyA2AToken } from \"./server.js\";\nexport type { A2ATokenPayload } from \"./server.js\";\nexport { generateAgentCard } from \"./agent-card.js\";\nexport {\n A2A_AGENT_ACTIVITY_KIND,\n A2A_AGENT_ACTIVITY_VERSION,\n MAX_A2A_ACTIVITY_REASONING_CHARS,\n MAX_A2A_ACTIVITY_REASONING_SEGMENTS,\n MAX_A2A_ACTIVITY_RESPONSE_CHARS,\n MAX_A2A_ACTIVITY_TOOL_CALLS,\n MAX_A2A_ACTIVITY_TOTAL_CHARS,\n MAX_A2A_ACTIVITY_TOOL_ID_CHARS,\n MAX_A2A_ACTIVITY_TOOL_NAME_CHARS,\n applyA2AAgentActivityEvent,\n buildA2AAgentActivityPart,\n buildA2AAgentActivitySnapshot,\n createA2AAgentActivityState,\n parseA2AAgentActivityPart,\n} from \"./activity.js\";\n\n// Client\nexport { A2AClient, callAction, callAgent, signA2AToken } from \"./client.js\";\nexport { resolveA2ACallerAuth } from \"./caller-auth.js\";\nexport type { A2ACallerAuth } from \"./caller-auth.js\";\nexport {\n AgentInvocationError,\n buildAgentInvocationPrompt,\n invokeAgent,\n invokeAgentAction,\n looksLikeAgentUrl,\n resolveAgentInvocationTarget,\n} from \"./invoke.js\";\n\n// Types\nexport type {\n A2AConfig,\n A2AHandler,\n A2AHandlerContext,\n A2AHandlerResult,\n A2ASourceContext,\n AgentCard,\n AgentSkill,\n AgentCapabilities,\n Task,\n TaskState,\n TaskStatus,\n Message,\n Part,\n TextPart,\n FilePart,\n DataPart,\n Artifact,\n JsonRpcRequest,\n JsonRpcResponse,\n A2ACorrelationMetadata,\n A2AReadOnlyActionInvocation,\n A2AReadOnlyActionResult,\n A2AAgentActivityPhase,\n A2AAgentActivitySnapshot,\n A2AAgentActivityState,\n A2AAgentActivityToolCall,\n A2AAgentActivityToolStatus,\n} from \"./types.js\";\nexport type {\n AgentInvocationErrorCode,\n AgentActionInvocationResult,\n AgentInvocationResult,\n AgentInvocationRuntime,\n InvokeAgentActionOptions,\n InvokeAgentOptions,\n ResolveAgentInvocationTargetOptions,\n ResolvedAgentInvocationTarget,\n} from \"./invoke.js\";\n"]}
|
|
@@ -6,7 +6,7 @@ import { type ReasoningEffort } from "../shared/reasoning-effort.js";
|
|
|
6
6
|
import { PROVIDER_TO_ENV } from "./engine/provider-env-vars.js";
|
|
7
7
|
import type { AgentEngine, EngineTool, EngineMessage, EngineContentPart } from "./engine/types.js";
|
|
8
8
|
import { type Processor } from "./processors.js";
|
|
9
|
-
import { subscribeToRun, getActiveRunForThread, getActiveRunForThreadAsync, getRun, abortRun, abortRunDurably } from "./run-manager.js";
|
|
9
|
+
import { subscribeToRun, getActiveRunForThread, getActiveRunForThreadAsync, getRun, abortRun, abortRunDurably, abortTurnDurably } from "./run-manager.js";
|
|
10
10
|
import type { ActiveRun } from "./run-manager.js";
|
|
11
11
|
import { insertRun, isTurnAborted, markRunAborted, updateRunHeartbeat, updateRunStatusIfRunning, setRunError, setRunTerminalReason, claimBackgroundRun, readBackgroundRunClaim, recordRunDiagnostic, countRunsForTurn } from "./run-store.js";
|
|
12
12
|
import type { ActionTool, AgentChatAttachment, AgentChatEvent, AgentChatReference, AgentChatStructuredMessage } from "./types.js";
|
|
@@ -1051,5 +1051,5 @@ export declare function resolveAgentRequestReasoningEffort({ model, requestEffor
|
|
|
1051
1051
|
configuredEffort?: ReasoningEffort;
|
|
1052
1052
|
}): ReasoningEffort | undefined;
|
|
1053
1053
|
export declare function createProductionAgentHandler(options: ProductionAgentOptions): H3EventHandler;
|
|
1054
|
-
export { getActiveRunForThread, getActiveRunForThreadAsync, getRun, abortRun, abortRunDurably, subscribeToRun, };
|
|
1054
|
+
export { getActiveRunForThread, getActiveRunForThreadAsync, getRun, abortRun, abortRunDurably, abortTurnDurably, subscribeToRun, };
|
|
1055
1055
|
//# sourceMappingURL=production-agent.d.ts.map
|