@agent-native/core 0.84.20 → 0.84.22
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 +1 -1
- package/corpus/core/CHANGELOG.md +16 -0
- package/corpus/core/package.json +1 -1
- package/corpus/core/src/a2a/caller-auth.ts +37 -8
- package/corpus/core/src/a2a/client.ts +178 -67
- package/corpus/core/src/agent/production-agent.ts +19 -3
- package/corpus/core/src/agent/types.ts +1 -1
- package/corpus/core/src/cli/pr-visual-recap-workflow.ts +1 -1
- package/corpus/core/src/cli/recap.ts +43 -34
- package/corpus/core/src/client/AssistantChat.tsx +27 -4
- package/corpus/core/src/client/PoweredByBadge.tsx +70 -17
- package/corpus/core/src/client/agent-chat-adapter.ts +5 -1
- package/corpus/core/src/client/guided-questions.tsx +11 -6
- package/corpus/core/src/client/i18n.tsx +10 -5
- package/corpus/core/src/client/sse-event-processor.ts +147 -5
- package/corpus/core/src/client/tool-display.ts +8 -0
- package/corpus/core/src/file-upload/builder.ts +40 -14
- package/corpus/core/src/file-upload/types.ts +3 -0
- package/corpus/core/src/integrations/a2a-continuation-processor.ts +49 -24
- package/corpus/core/src/mcp/builtin-tools.ts +3 -0
- package/corpus/core/src/mcp/org-directory.ts +66 -20
- package/corpus/core/src/notifications/channels.ts +235 -38
- package/corpus/core/src/scripts/call-agent.ts +7 -2
- package/corpus/core/src/server/analytics.ts +32 -6
- package/corpus/core/src/server/ssr-handler.ts +31 -12
- package/corpus/templates/analytics/AGENTS.md +21 -0
- package/corpus/templates/analytics/README.md +35 -0
- package/corpus/templates/analytics/actions/delete-analytics-alert-rule.ts +23 -0
- package/corpus/templates/analytics/actions/list-analytics-alert-rules.ts +20 -0
- package/corpus/templates/analytics/actions/run-analytics-alerts.ts +23 -0
- package/corpus/templates/analytics/actions/save-analytics-alert-rule.ts +69 -0
- package/corpus/templates/analytics/app/pages/sessions/SessionDetailPage.tsx +161 -12
- package/corpus/templates/analytics/changelog/2026-07-01-analytics-can-alert-when-first-party-events-spike.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-01-session-replays-load-large-production-recordings-from-scoped.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-01-session-replays-play-back-in-production-instead-of-showing.md +6 -0
- package/corpus/templates/analytics/netlify.toml +3 -0
- package/corpus/templates/analytics/scripts/emit-netlify-dashboard-report-cron.ts +109 -0
- package/corpus/templates/analytics/server/db/schema.ts +55 -0
- package/corpus/templates/analytics/server/handlers/session-replay.ts +5 -2
- package/corpus/templates/analytics/server/jobs/analytics-alerts.ts +71 -0
- package/corpus/templates/analytics/server/lib/analytics-alerts.ts +734 -0
- package/corpus/templates/analytics/server/lib/session-replay.ts +10 -3
- package/corpus/templates/analytics/server/plugins/analytics-alert-jobs.ts +54 -0
- package/corpus/templates/analytics/server/plugins/db.ts +100 -0
- package/corpus/templates/analytics/server/routes/api/analytics-alerts/run.post.ts +60 -0
- package/corpus/templates/assets/README.md +30 -8
- package/corpus/templates/brain/README.md +20 -552
- package/corpus/templates/calendar/README.md +22 -28
- package/corpus/templates/calendar/app/pages/BookingPage.tsx +14 -8
- package/corpus/templates/calendar/changelog/2026-07-01-meeting-invite-pages-have-cleaner-branding-a-black-dark-mo.md +6 -0
- package/corpus/templates/chat/README.md +32 -0
- package/corpus/templates/clips/README.md +37 -0
- package/corpus/templates/clips/actions/create-recording.ts +7 -2
- package/corpus/templates/clips/actions/finalize-recording.ts +11 -0
- package/corpus/templates/clips/actions/get-recording-player-data.ts +4 -2
- package/corpus/templates/clips/actions/import-loom-recording.ts +1 -0
- package/corpus/templates/clips/actions/lib/loom-video.ts +16 -0
- package/corpus/templates/clips/app/components/library/library-grid.tsx +18 -7
- package/corpus/templates/clips/app/components/library/recording-card.tsx +42 -5
- package/corpus/templates/clips/app/components/player/scrubber.tsx +2 -2
- package/corpus/templates/clips/app/components/recorder/countdown-overlay.tsx +4 -3
- package/corpus/templates/clips/app/components/recorder/pre-record-panel.tsx +39 -12
- package/corpus/templates/clips/app/components/recorder/recorder-engine.ts +106 -2
- package/corpus/templates/clips/app/components/recorder/recording-toolbar.tsx +1 -22
- package/corpus/templates/clips/app/routes/record.tsx +48 -8
- package/corpus/templates/clips/changelog/2026-07-01-clip-uploads-and-loom-imports-finish-sooner-by-skipping-the-.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-01-clip-uploads-and-playback-recover-more-reliably-from-storage.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-01-desktop-recording-avoids-unsupported-browser-tab-capture.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-01-embedded-player-progress-is-easier-to-see-on-dark-videos.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-01-loom-imports-show-clear-guidance-when-loom-does-not-provide-a-downloadable-video.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-01-move-to-folder-now-opens-folder-choices-directly-instead-of.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-01-preserve-in-flight-streaming-uploads-when-the-streaming-kill.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-01-recording-controls-are-cleaner-and-the-countdown-uses-shadow.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-01-recordings-now-recover-when-final-upload-status-gets-lost.md +6 -0
- package/corpus/templates/clips/chrome-extension/public/manifest.json +1 -1
- package/corpus/templates/clips/chrome-extension/src/finalize-recovery.ts +7 -224
- package/corpus/templates/clips/chrome-extension/src/offscreen.ts +64 -6
- package/corpus/templates/clips/desktop/src/lib/recorder.ts +87 -5
- package/corpus/templates/clips/server/lib/streaming-upload-mode.ts +7 -0
- package/corpus/templates/clips/server/routes/api/uploads/[recordingId]/chunk.post.ts +51 -1
- package/corpus/templates/clips/server/routes/api/uploads/[recordingId]/status.get.ts +4 -1
- package/corpus/templates/clips/server/routes/api/video/[recordingId].get.ts +96 -1
- package/corpus/templates/clips/shared/finalize-recovery.ts +242 -0
- package/corpus/templates/content/AGENTS.md +7 -3
- package/corpus/templates/content/README.md +22 -34
- package/corpus/templates/content/actions/list-trashed-content-databases.ts +4 -0
- package/corpus/templates/content/app/components/editor/SlashCommandMenu.tsx +58 -6
- package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +257 -24
- package/corpus/templates/content/app/components/sidebar/DocumentTreeItem.tsx +41 -15
- package/corpus/templates/content/app/i18n/zh-TW.ts +25 -7
- package/corpus/templates/content/app/i18n-data.ts +278 -40
- package/corpus/templates/content/changelog/2026-06-30-database-once-again-creates-an-inline-database-in-the-curren.md +6 -0
- package/corpus/templates/content/shared/api.ts +1 -0
- package/corpus/templates/design/AGENTS.md +7 -6
- package/corpus/templates/design/README.md +33 -0
- package/corpus/templates/design/actions/delete-file.ts +86 -10
- package/corpus/templates/design/actions/get-design-snapshot.ts +13 -0
- package/corpus/templates/design/actions/present-design-variants.ts +11 -13
- package/corpus/templates/design/app/hooks/use-question-flow.ts +2 -2
- package/corpus/templates/design/app/pages/DesignEditor.tsx +2 -2
- package/corpus/templates/design/changelog/2026-07-01-design-recovers-sooner-when-an-agent-gets-stuck-preparing-a-.md +6 -0
- package/corpus/templates/dispatch/README.md +34 -0
- package/corpus/templates/forms/README.md +34 -0
- package/corpus/templates/macros/README.md +28 -0
- package/corpus/templates/mail/README.md +35 -0
- package/corpus/templates/plan/README.md +30 -118
- package/corpus/templates/plan/app/global.css +1 -1
- package/corpus/templates/slides/README.md +34 -0
- package/corpus/templates/videos/README.md +22 -201
- package/dist/a2a/caller-auth.d.ts +1 -0
- package/dist/a2a/caller-auth.d.ts.map +1 -1
- package/dist/a2a/caller-auth.js +34 -8
- package/dist/a2a/caller-auth.js.map +1 -1
- package/dist/a2a/client.d.ts +4 -0
- package/dist/a2a/client.d.ts.map +1 -1
- package/dist/a2a/client.js +148 -58
- package/dist/a2a/client.js.map +1 -1
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +19 -4
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/agent/types.d.ts +1 -0
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js.map +1 -1
- package/dist/cli/pr-visual-recap-workflow.d.ts +1 -1
- package/dist/cli/pr-visual-recap-workflow.d.ts.map +1 -1
- package/dist/cli/pr-visual-recap-workflow.js +1 -1
- package/dist/cli/pr-visual-recap-workflow.js.map +1 -1
- package/dist/cli/recap.d.ts +3 -3
- package/dist/cli/recap.d.ts.map +1 -1
- package/dist/cli/recap.js +41 -34
- package/dist/cli/recap.js.map +1 -1
- package/dist/client/AssistantChat.d.ts.map +1 -1
- package/dist/client/AssistantChat.js +28 -4
- package/dist/client/AssistantChat.js.map +1 -1
- package/dist/client/PoweredByBadge.d.ts +9 -3
- package/dist/client/PoweredByBadge.d.ts.map +1 -1
- package/dist/client/PoweredByBadge.js +47 -15
- package/dist/client/PoweredByBadge.js.map +1 -1
- package/dist/client/agent-chat-adapter.d.ts.map +1 -1
- package/dist/client/agent-chat-adapter.js +5 -1
- package/dist/client/agent-chat-adapter.js.map +1 -1
- package/dist/client/guided-questions.d.ts.map +1 -1
- package/dist/client/guided-questions.js +10 -6
- package/dist/client/guided-questions.js.map +1 -1
- package/dist/client/i18n.d.ts +1 -1
- package/dist/client/i18n.d.ts.map +1 -1
- package/dist/client/i18n.js +6 -2
- package/dist/client/i18n.js.map +1 -1
- package/dist/client/sse-event-processor.d.ts +2 -0
- package/dist/client/sse-event-processor.d.ts.map +1 -1
- package/dist/client/sse-event-processor.js +121 -5
- package/dist/client/sse-event-processor.js.map +1 -1
- package/dist/client/tool-display.d.ts.map +1 -1
- package/dist/client/tool-display.js +8 -0
- package/dist/client/tool-display.js.map +1 -1
- package/dist/collab/awareness.d.ts +2 -2
- package/dist/collab/awareness.d.ts.map +1 -1
- package/dist/collab/routes.d.ts +1 -1
- package/dist/file-upload/builder.d.ts.map +1 -1
- package/dist/file-upload/builder.js +26 -8
- package/dist/file-upload/builder.js.map +1 -1
- package/dist/file-upload/types.d.ts +5 -1
- package/dist/file-upload/types.d.ts.map +1 -1
- package/dist/file-upload/types.js.map +1 -1
- package/dist/integrations/a2a-continuation-processor.js +43 -18
- package/dist/integrations/a2a-continuation-processor.js.map +1 -1
- package/dist/mcp/builtin-tools.d.ts.map +1 -1
- package/dist/mcp/builtin-tools.js +3 -0
- package/dist/mcp/builtin-tools.js.map +1 -1
- package/dist/mcp/org-directory.d.ts.map +1 -1
- package/dist/mcp/org-directory.js +58 -20
- package/dist/mcp/org-directory.js.map +1 -1
- package/dist/notifications/channels.d.ts +10 -0
- package/dist/notifications/channels.d.ts.map +1 -1
- package/dist/notifications/channels.js +172 -20
- package/dist/notifications/channels.js.map +1 -1
- package/dist/notifications/routes.d.ts +3 -3
- package/dist/observability/routes.d.ts +5 -5
- package/dist/progress/routes.d.ts +1 -1
- package/dist/resources/handlers.d.ts +1 -1
- package/dist/scripts/call-agent.d.ts.map +1 -1
- package/dist/scripts/call-agent.js +2 -2
- package/dist/scripts/call-agent.js.map +1 -1
- package/dist/server/agent-engine-api-key-route.d.ts +1 -1
- package/dist/server/analytics.d.ts +16 -0
- package/dist/server/analytics.d.ts.map +1 -1
- package/dist/server/analytics.js +30 -7
- package/dist/server/analytics.js.map +1 -1
- package/dist/server/ssr-handler.d.ts.map +1 -1
- package/dist/server/ssr-handler.js +28 -12
- package/dist/server/ssr-handler.js.map +1 -1
- package/dist/server/transcribe-voice.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
export interface PoweredByBadgeProps {
|
|
2
2
|
position?: "bottom-right" | "bottom-left";
|
|
3
|
+
/** Plain shows the logo only with no surrounding badge chrome. */
|
|
4
|
+
variant?: "badge" | "plain";
|
|
5
|
+
/** When true, positioning is handled by the parent container. */
|
|
6
|
+
embedded?: boolean;
|
|
3
7
|
}
|
|
4
8
|
export interface OpenSourceBadgeProps {
|
|
5
9
|
position?: "bottom-left" | "bottom-right";
|
|
10
|
+
/** When true, positioning is handled by the parent container. */
|
|
11
|
+
embedded?: boolean;
|
|
6
12
|
}
|
|
7
13
|
/**
|
|
8
14
|
* Small branding badge: "Built with [Agent Native logo]"
|
|
@@ -13,11 +19,11 @@ export interface OpenSourceBadgeProps {
|
|
|
13
19
|
* - Respects prefers-color-scheme
|
|
14
20
|
* - Can be hidden via HIDE_BRANDING=true env var (for white-label)
|
|
15
21
|
*/
|
|
16
|
-
export declare function PoweredByBadge({ position, }: PoweredByBadgeProps): import("react").JSX.Element | null;
|
|
22
|
+
export declare function PoweredByBadge({ position, variant, embedded, }: PoweredByBadgeProps): import("react").JSX.Element | null;
|
|
17
23
|
/**
|
|
18
|
-
* Small GitHub badge: "
|
|
24
|
+
* Small GitHub badge: "Free and open source"
|
|
19
25
|
*
|
|
20
26
|
* Intended to pair with PoweredByBadge on public pages.
|
|
21
27
|
*/
|
|
22
|
-
export declare function OpenSourceBadge({ position, }: OpenSourceBadgeProps): import("react").JSX.Element | null;
|
|
28
|
+
export declare function OpenSourceBadge({ position, embedded, }: OpenSourceBadgeProps): import("react").JSX.Element | null;
|
|
23
29
|
//# sourceMappingURL=PoweredByBadge.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PoweredByBadge.d.ts","sourceRoot":"","sources":["../../src/client/PoweredByBadge.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PoweredByBadge.d.ts","sourceRoot":"","sources":["../../src/client/PoweredByBadge.tsx"],"names":[],"mappings":"AAMA,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,cAAc,GAAG,aAAa,CAAC;IAC1C,kEAAkE;IAClE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IAC5B,iEAAiE;IACjE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,aAAa,GAAG,cAAc,CAAC;IAC1C,iEAAiE;IACjE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA+BD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,EAC7B,QAAyB,EACzB,OAAiB,EACjB,QAAgB,GACjB,EAAE,mBAAmB,sCAiIrB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,EAC9B,QAAwB,EACxB,QAAgB,GACjB,EAAE,oBAAoB,sCAyFtB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { IconBrandGithub } from "@tabler/icons-react";
|
|
3
3
|
import { appPath } from "./api-path.js";
|
|
4
|
+
import { cn } from "./utils.js";
|
|
4
5
|
const containerStyle = (position) => ({
|
|
5
6
|
position: "fixed",
|
|
6
7
|
bottom: 16,
|
|
@@ -34,7 +35,7 @@ const darkQuery = "(prefers-color-scheme: dark)";
|
|
|
34
35
|
* - Respects prefers-color-scheme
|
|
35
36
|
* - Can be hidden via HIDE_BRANDING=true env var (for white-label)
|
|
36
37
|
*/
|
|
37
|
-
export function PoweredByBadge({ position = "bottom-right", }) {
|
|
38
|
+
export function PoweredByBadge({ position = "bottom-right", variant = "badge", embedded = false, }) {
|
|
38
39
|
// Allow hiding via env var
|
|
39
40
|
const hidden = import.meta.env
|
|
40
41
|
?.VITE_HIDE_BRANDING === "true";
|
|
@@ -42,10 +43,11 @@ export function PoweredByBadge({ position = "bottom-right", }) {
|
|
|
42
43
|
return null;
|
|
43
44
|
const logoOnLight = appPath("/agent-native-logo-light.svg");
|
|
44
45
|
const logoOnDark = appPath("/agent-native-logo-dark.svg");
|
|
46
|
+
const isPlain = variant === "plain";
|
|
45
47
|
return (_jsxs(_Fragment, { children: [_jsx("style", { children: `
|
|
46
48
|
.an-powered-logo {
|
|
47
49
|
display: block;
|
|
48
|
-
height: 14px;
|
|
50
|
+
height: ${isPlain ? "16.2px" : "14px"};
|
|
49
51
|
width: auto;
|
|
50
52
|
flex: none;
|
|
51
53
|
}
|
|
@@ -53,14 +55,25 @@ export function PoweredByBadge({ position = "bottom-right", }) {
|
|
|
53
55
|
display: none;
|
|
54
56
|
}
|
|
55
57
|
@media (max-width: 640px) {
|
|
56
|
-
.an-powered-badge {
|
|
58
|
+
.an-powered-badge:not(.an-powered-badge-embedded) {
|
|
57
59
|
position: static !important;
|
|
58
60
|
margin: 0.75rem auto 0 !important;
|
|
59
61
|
width: max-content;
|
|
60
62
|
max-width: calc(100vw - 2rem);
|
|
61
63
|
}
|
|
62
64
|
}
|
|
63
|
-
.
|
|
65
|
+
.an-powered-badge-plain {
|
|
66
|
+
background: transparent !important;
|
|
67
|
+
border-color: transparent !important;
|
|
68
|
+
backdrop-filter: none !important;
|
|
69
|
+
-webkit-backdrop-filter: none !important;
|
|
70
|
+
padding: 0 !important;
|
|
71
|
+
opacity: 1 !important;
|
|
72
|
+
}
|
|
73
|
+
.an-powered-badge-plain:hover {
|
|
74
|
+
opacity: 0.82 !important;
|
|
75
|
+
}
|
|
76
|
+
.dark .an-powered-badge:not(.an-powered-badge-plain) {
|
|
64
77
|
background: rgba(255, 255, 255, 0.06) !important;
|
|
65
78
|
border-color: rgba(255, 255, 255, 0.08) !important;
|
|
66
79
|
color: rgba(215, 215, 215, 0.94) !important;
|
|
@@ -72,7 +85,7 @@ export function PoweredByBadge({ position = "bottom-right", }) {
|
|
|
72
85
|
display: block;
|
|
73
86
|
}
|
|
74
87
|
@media ${darkQuery} {
|
|
75
|
-
.an-powered-badge {
|
|
88
|
+
.an-powered-badge:not(.an-powered-badge-plain) {
|
|
76
89
|
background: rgba(255, 255, 255, 0.06) !important;
|
|
77
90
|
border-color: rgba(255, 255, 255, 0.08) !important;
|
|
78
91
|
color: rgba(215, 215, 215, 0.94) !important;
|
|
@@ -84,7 +97,7 @@ export function PoweredByBadge({ position = "bottom-right", }) {
|
|
|
84
97
|
display: block;
|
|
85
98
|
}
|
|
86
99
|
}
|
|
87
|
-
.light .an-powered-badge {
|
|
100
|
+
.light .an-powered-badge:not(.an-powered-badge-plain) {
|
|
88
101
|
background: rgba(0, 0, 0, 0.05) !important;
|
|
89
102
|
border-color: rgba(0, 0, 0, 0.06) !important;
|
|
90
103
|
color: rgba(95, 95, 95, 0.95) !important;
|
|
@@ -95,29 +108,36 @@ export function PoweredByBadge({ position = "bottom-right", }) {
|
|
|
95
108
|
.light .an-powered-logo-dark {
|
|
96
109
|
display: none;
|
|
97
110
|
}
|
|
98
|
-
.an-powered-badge:hover {
|
|
111
|
+
.an-powered-badge:not(.an-powered-badge-plain):hover {
|
|
99
112
|
opacity: 1 !important;
|
|
100
113
|
color: rgba(70, 70, 70, 1) !important;
|
|
101
114
|
}
|
|
102
115
|
@media ${darkQuery} {
|
|
103
|
-
.an-powered-badge:hover {
|
|
116
|
+
.an-powered-badge:not(.an-powered-badge-plain):hover {
|
|
104
117
|
color: rgba(238, 238, 238, 1) !important;
|
|
105
118
|
}
|
|
106
119
|
}
|
|
107
|
-
.dark .an-powered-badge:hover {
|
|
120
|
+
.dark .an-powered-badge:not(.an-powered-badge-plain):hover {
|
|
108
121
|
color: rgba(238, 238, 238, 1) !important;
|
|
109
122
|
}
|
|
110
|
-
.light .an-powered-badge:hover {
|
|
123
|
+
.light .an-powered-badge:not(.an-powered-badge-plain):hover {
|
|
111
124
|
color: rgba(70, 70, 70, 1) !important;
|
|
112
125
|
}
|
|
113
|
-
` }), _jsxs("a", { href: "https://agent-native.com", target: "_blank", rel: "noopener noreferrer", className: "an-powered-badge",
|
|
126
|
+
` }), _jsxs("a", { href: "https://agent-native.com", target: "_blank", rel: "noopener noreferrer", className: cn("an-powered-badge", isPlain && "an-powered-badge-plain", embedded && "an-powered-badge-embedded"), style: embedded
|
|
127
|
+
? {
|
|
128
|
+
display: "inline-flex",
|
|
129
|
+
alignItems: "center",
|
|
130
|
+
textDecoration: "none",
|
|
131
|
+
transition: "opacity 0.2s",
|
|
132
|
+
}
|
|
133
|
+
: containerStyle(position), "aria-label": "Built with Agent Native", children: [!isPlain && _jsx("span", { children: "Built with" }), _jsx("img", { src: logoOnLight, alt: "Agent Native", className: "an-powered-logo an-powered-logo-light" }), _jsx("img", { src: logoOnDark, alt: "Agent Native", className: "an-powered-logo an-powered-logo-dark" })] })] }));
|
|
114
134
|
}
|
|
115
135
|
/**
|
|
116
|
-
* Small GitHub badge: "
|
|
136
|
+
* Small GitHub badge: "Free and open source"
|
|
117
137
|
*
|
|
118
138
|
* Intended to pair with PoweredByBadge on public pages.
|
|
119
139
|
*/
|
|
120
|
-
export function OpenSourceBadge({ position = "bottom-left", }) {
|
|
140
|
+
export function OpenSourceBadge({ position = "bottom-left", embedded = false, }) {
|
|
121
141
|
const hidden = import.meta.env
|
|
122
142
|
?.VITE_HIDE_BRANDING === "true";
|
|
123
143
|
if (hidden)
|
|
@@ -138,7 +158,7 @@ export function OpenSourceBadge({ position = "bottom-left", }) {
|
|
|
138
158
|
opacity: 0.95 !important;
|
|
139
159
|
}
|
|
140
160
|
@media (max-width: 640px) {
|
|
141
|
-
.an-open-source-badge {
|
|
161
|
+
.an-open-source-badge:not(.an-open-source-badge-embedded) {
|
|
142
162
|
position: static !important;
|
|
143
163
|
margin: 1rem auto 0 !important;
|
|
144
164
|
width: max-content;
|
|
@@ -171,6 +191,18 @@ export function OpenSourceBadge({ position = "bottom-left", }) {
|
|
|
171
191
|
.light .an-open-source-badge:hover {
|
|
172
192
|
color: #33C4FF !important;
|
|
173
193
|
}
|
|
174
|
-
` }), _jsxs("a", { href: "https://github.com/BuilderIO/agent-native", target: "_blank", rel: "noopener noreferrer", className: "an-open-source-badge",
|
|
194
|
+
` }), _jsxs("a", { href: "https://github.com/BuilderIO/agent-native", target: "_blank", rel: "noopener noreferrer", className: cn("an-open-source-badge", embedded && "an-open-source-badge-embedded"), style: embedded
|
|
195
|
+
? {
|
|
196
|
+
display: "flex",
|
|
197
|
+
alignItems: "center",
|
|
198
|
+
gap: 6,
|
|
199
|
+
fontSize: 12,
|
|
200
|
+
fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',
|
|
201
|
+
fontWeight: 600,
|
|
202
|
+
lineHeight: 1,
|
|
203
|
+
textDecoration: "none",
|
|
204
|
+
transition: "opacity 0.2s, color 0.2s",
|
|
205
|
+
}
|
|
206
|
+
: containerStyle(position), children: [_jsx(IconBrandGithub, { "aria-hidden": "true", stroke: 1.8 }), _jsx("span", { children: "Free and open source" })] })] }));
|
|
175
207
|
}
|
|
176
208
|
//# sourceMappingURL=PoweredByBadge.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PoweredByBadge.js","sourceRoot":"","sources":["../../src/client/PoweredByBadge.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAUxC,MAAM,cAAc,GAAG,CACrB,QAAwC,EACzB,EAAE,CAAC,CAAC;IACnB,QAAQ,EAAE,OAAO;IACjB,MAAM,EAAE,EAAE;IACV,GAAG,CAAC,QAAQ,KAAK,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAC/D,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,QAAQ;IACpB,GAAG,EAAE,CAAC;IACN,OAAO,EAAE,UAAU;IACnB,YAAY,EAAE,CAAC;IACf,QAAQ,EAAE,EAAE;IACZ,UAAU,EACR,mEAAmE;IACrE,UAAU,EAAE,GAAG;IACf,UAAU,EAAE,CAAC;IACb,KAAK,EAAE,wBAAwB;IAC/B,UAAU,EAAE,qBAAqB;IACjC,cAAc,EAAE,WAAW;IAC3B,oBAAoB,EAAE,WAAW;IACjC,MAAM,EAAE,+BAA+B;IACvC,cAAc,EAAE,MAAM;IACtB,UAAU,EAAE,0BAA0B;IACtC,OAAO,EAAE,IAAI;CACd,CAAC,CAAC;AAEH,MAAM,SAAS,GAAG,8BAA8B,CAAC;AAEjD;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,EAC7B,QAAQ,GAAG,cAAc,GACL;IACpB,2BAA2B;IAC3B,MAAM,MAAM,GACT,OAAO,IAAI,CAAC,GAA0C;QACrD,EAAE,kBAAkB,KAAK,MAAM,CAAC;IAEpC,IAAI,MAAM;QAAE,OAAO,IAAI,CAAC;IAExB,MAAM,WAAW,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAC5D,MAAM,UAAU,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC;IAE1D,OAAO,CACL,8BACE,0BAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA6BG,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA4BT,SAAS;;;;;;;;;;;OAWnB,GAAS,EACV,aACE,IAAI,EAAC,0BAA0B,EAC/B,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,EACzB,SAAS,EAAC,kBAAkB,EAC5B,KAAK,EAAE,cAAc,CAAC,QAAQ,CAAC,gBACpB,yBAAyB,aAEpC,wCAAuB,EACvB,cACE,GAAG,EAAE,WAAW,EAChB,GAAG,EAAC,cAAc,EAClB,SAAS,EAAC,uCAAuC,GACjD,EACF,cACE,GAAG,EAAE,UAAU,EACf,GAAG,EAAC,cAAc,EAClB,SAAS,EAAC,sCAAsC,GAChD,IACA,IACH,CACJ,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,EAC9B,QAAQ,GAAG,aAAa,GACH;IACrB,MAAM,MAAM,GACT,OAAO,IAAI,CAAC,GAA0C;QACrD,EAAE,kBAAkB,KAAK,MAAM,CAAC;IAEpC,IAAI,MAAM;QAAE,OAAO,IAAI,CAAC;IAExB,OAAO,CACL,8BACE,0BAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;iBA0BG,SAAS;;;;;;;;;;;;iBAYT,SAAS;;;;;;;;;;;OAWnB,GAAS,EACV,aACE,IAAI,EAAC,2CAA2C,EAChD,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,EACzB,SAAS,EAAC,sBAAsB,EAChC,KAAK,EAAE,cAAc,CAAC,QAAQ,CAAC,aAE/B,KAAC,eAAe,mBAAa,MAAM,EAAC,MAAM,EAAE,GAAG,GAAI,EACnD,uDAAsC,IACpC,IACH,CACJ,CAAC;AACJ,CAAC","sourcesContent":["import { IconBrandGithub } from \"@tabler/icons-react\";\nimport type { CSSProperties } from \"react\";\n\nimport { appPath } from \"./api-path.js\";\n\nexport interface PoweredByBadgeProps {\n position?: \"bottom-right\" | \"bottom-left\";\n}\n\nexport interface OpenSourceBadgeProps {\n position?: \"bottom-left\" | \"bottom-right\";\n}\n\nconst containerStyle = (\n position: \"bottom-right\" | \"bottom-left\",\n): CSSProperties => ({\n position: \"fixed\",\n bottom: 16,\n ...(position === \"bottom-right\" ? { right: 16 } : { left: 16 }),\n zIndex: 50,\n display: \"flex\",\n alignItems: \"center\",\n gap: 6,\n padding: \"6px 12px\",\n borderRadius: 8,\n fontSize: 12,\n fontFamily:\n '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif',\n fontWeight: 500,\n lineHeight: 1,\n color: \"rgba(95, 95, 95, 0.95)\",\n background: \"rgba(0, 0, 0, 0.05)\",\n backdropFilter: \"blur(8px)\",\n WebkitBackdropFilter: \"blur(8px)\",\n border: \"1px solid rgba(0, 0, 0, 0.06)\",\n textDecoration: \"none\",\n transition: \"opacity 0.2s, color 0.2s\",\n opacity: 0.82,\n});\n\nconst darkQuery = \"(prefers-color-scheme: dark)\";\n\n/**\n * Small branding badge: \"Built with [Agent Native logo]\"\n *\n * - Fixed position in the corner\n * - Subtle, semi-transparent\n * - Links to https://agent-native.com\n * - Respects prefers-color-scheme\n * - Can be hidden via HIDE_BRANDING=true env var (for white-label)\n */\nexport function PoweredByBadge({\n position = \"bottom-right\",\n}: PoweredByBadgeProps) {\n // Allow hiding via env var\n const hidden =\n (import.meta.env as Record<string, string | undefined>)\n ?.VITE_HIDE_BRANDING === \"true\";\n\n if (hidden) return null;\n\n const logoOnLight = appPath(\"/agent-native-logo-light.svg\");\n const logoOnDark = appPath(\"/agent-native-logo-dark.svg\");\n\n return (\n <>\n <style>{`\n .an-powered-logo {\n display: block;\n height: 14px;\n width: auto;\n flex: none;\n }\n .an-powered-logo-dark {\n display: none;\n }\n @media (max-width: 640px) {\n .an-powered-badge {\n position: static !important;\n margin: 0.75rem auto 0 !important;\n width: max-content;\n max-width: calc(100vw - 2rem);\n }\n }\n .dark .an-powered-badge {\n background: rgba(255, 255, 255, 0.06) !important;\n border-color: rgba(255, 255, 255, 0.08) !important;\n color: rgba(215, 215, 215, 0.94) !important;\n }\n .dark .an-powered-logo-light {\n display: none;\n }\n .dark .an-powered-logo-dark {\n display: block;\n }\n @media ${darkQuery} {\n .an-powered-badge {\n background: rgba(255, 255, 255, 0.06) !important;\n border-color: rgba(255, 255, 255, 0.08) !important;\n color: rgba(215, 215, 215, 0.94) !important;\n }\n .an-powered-logo-light {\n display: none;\n }\n .an-powered-logo-dark {\n display: block;\n }\n }\n .light .an-powered-badge {\n background: rgba(0, 0, 0, 0.05) !important;\n border-color: rgba(0, 0, 0, 0.06) !important;\n color: rgba(95, 95, 95, 0.95) !important;\n }\n .light .an-powered-logo-light {\n display: block;\n }\n .light .an-powered-logo-dark {\n display: none;\n }\n .an-powered-badge:hover {\n opacity: 1 !important;\n color: rgba(70, 70, 70, 1) !important;\n }\n @media ${darkQuery} {\n .an-powered-badge:hover {\n color: rgba(238, 238, 238, 1) !important;\n }\n }\n .dark .an-powered-badge:hover {\n color: rgba(238, 238, 238, 1) !important;\n }\n .light .an-powered-badge:hover {\n color: rgba(70, 70, 70, 1) !important;\n }\n `}</style>\n <a\n href=\"https://agent-native.com\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"an-powered-badge\"\n style={containerStyle(position)}\n aria-label=\"Built with Agent Native\"\n >\n <span>Built with</span>\n <img\n src={logoOnLight}\n alt=\"Agent Native\"\n className=\"an-powered-logo an-powered-logo-light\"\n />\n <img\n src={logoOnDark}\n alt=\"Agent Native\"\n className=\"an-powered-logo an-powered-logo-dark\"\n />\n </a>\n </>\n );\n}\n\n/**\n * Small GitHub badge: \"100% free and open source\"\n *\n * Intended to pair with PoweredByBadge on public pages.\n */\nexport function OpenSourceBadge({\n position = \"bottom-left\",\n}: OpenSourceBadgeProps) {\n const hidden =\n (import.meta.env as Record<string, string | undefined>)\n ?.VITE_HIDE_BRANDING === \"true\";\n\n if (hidden) return null;\n\n return (\n <>\n <style>{`\n .an-open-source-badge svg {\n width: 15px;\n height: 15px;\n flex: none;\n }\n .an-open-source-badge {\n background: transparent !important;\n border-color: transparent !important;\n backdrop-filter: none !important;\n -webkit-backdrop-filter: none !important;\n color: #00B5FF !important;\n font-weight: 600 !important;\n opacity: 0.95 !important;\n }\n @media (max-width: 640px) {\n .an-open-source-badge {\n position: static !important;\n margin: 1rem auto 0 !important;\n width: max-content;\n max-width: calc(100vw - 2rem);\n }\n }\n .dark .an-open-source-badge {\n color: #00B5FF !important;\n }\n @media ${darkQuery} {\n .an-open-source-badge {\n color: #00B5FF !important;\n }\n }\n .light .an-open-source-badge {\n color: #00B5FF !important;\n }\n .an-open-source-badge:hover {\n opacity: 1 !important;\n color: #33C4FF !important;\n }\n @media ${darkQuery} {\n .an-open-source-badge:hover {\n color: #33C4FF !important;\n }\n }\n .dark .an-open-source-badge:hover {\n color: #33C4FF !important;\n }\n .light .an-open-source-badge:hover {\n color: #33C4FF !important;\n }\n `}</style>\n <a\n href=\"https://github.com/BuilderIO/agent-native\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"an-open-source-badge\"\n style={containerStyle(position)}\n >\n <IconBrandGithub aria-hidden=\"true\" stroke={1.8} />\n <span>100% free and open source</span>\n </a>\n </>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"PoweredByBadge.js","sourceRoot":"","sources":["../../src/client/PoweredByBadge.tsx"],"names":[],"mappings":"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","sourcesContent":["import { IconBrandGithub } from \"@tabler/icons-react\";\nimport type { CSSProperties } from \"react\";\n\nimport { appPath } from \"./api-path.js\";\nimport { cn } from \"./utils.js\";\n\nexport interface PoweredByBadgeProps {\n position?: \"bottom-right\" | \"bottom-left\";\n /** Plain shows the logo only with no surrounding badge chrome. */\n variant?: \"badge\" | \"plain\";\n /** When true, positioning is handled by the parent container. */\n embedded?: boolean;\n}\n\nexport interface OpenSourceBadgeProps {\n position?: \"bottom-left\" | \"bottom-right\";\n /** When true, positioning is handled by the parent container. */\n embedded?: boolean;\n}\n\nconst containerStyle = (\n position: \"bottom-right\" | \"bottom-left\",\n): CSSProperties => ({\n position: \"fixed\",\n bottom: 16,\n ...(position === \"bottom-right\" ? { right: 16 } : { left: 16 }),\n zIndex: 50,\n display: \"flex\",\n alignItems: \"center\",\n gap: 6,\n padding: \"6px 12px\",\n borderRadius: 8,\n fontSize: 12,\n fontFamily:\n '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif',\n fontWeight: 500,\n lineHeight: 1,\n color: \"rgba(95, 95, 95, 0.95)\",\n background: \"rgba(0, 0, 0, 0.05)\",\n backdropFilter: \"blur(8px)\",\n WebkitBackdropFilter: \"blur(8px)\",\n border: \"1px solid rgba(0, 0, 0, 0.06)\",\n textDecoration: \"none\",\n transition: \"opacity 0.2s, color 0.2s\",\n opacity: 0.82,\n});\n\nconst darkQuery = \"(prefers-color-scheme: dark)\";\n\n/**\n * Small branding badge: \"Built with [Agent Native logo]\"\n *\n * - Fixed position in the corner\n * - Subtle, semi-transparent\n * - Links to https://agent-native.com\n * - Respects prefers-color-scheme\n * - Can be hidden via HIDE_BRANDING=true env var (for white-label)\n */\nexport function PoweredByBadge({\n position = \"bottom-right\",\n variant = \"badge\",\n embedded = false,\n}: PoweredByBadgeProps) {\n // Allow hiding via env var\n const hidden =\n (import.meta.env as Record<string, string | undefined>)\n ?.VITE_HIDE_BRANDING === \"true\";\n\n if (hidden) return null;\n\n const logoOnLight = appPath(\"/agent-native-logo-light.svg\");\n const logoOnDark = appPath(\"/agent-native-logo-dark.svg\");\n const isPlain = variant === \"plain\";\n\n return (\n <>\n <style>{`\n .an-powered-logo {\n display: block;\n height: ${isPlain ? \"16.2px\" : \"14px\"};\n width: auto;\n flex: none;\n }\n .an-powered-logo-dark {\n display: none;\n }\n @media (max-width: 640px) {\n .an-powered-badge:not(.an-powered-badge-embedded) {\n position: static !important;\n margin: 0.75rem auto 0 !important;\n width: max-content;\n max-width: calc(100vw - 2rem);\n }\n }\n .an-powered-badge-plain {\n background: transparent !important;\n border-color: transparent !important;\n backdrop-filter: none !important;\n -webkit-backdrop-filter: none !important;\n padding: 0 !important;\n opacity: 1 !important;\n }\n .an-powered-badge-plain:hover {\n opacity: 0.82 !important;\n }\n .dark .an-powered-badge:not(.an-powered-badge-plain) {\n background: rgba(255, 255, 255, 0.06) !important;\n border-color: rgba(255, 255, 255, 0.08) !important;\n color: rgba(215, 215, 215, 0.94) !important;\n }\n .dark .an-powered-logo-light {\n display: none;\n }\n .dark .an-powered-logo-dark {\n display: block;\n }\n @media ${darkQuery} {\n .an-powered-badge:not(.an-powered-badge-plain) {\n background: rgba(255, 255, 255, 0.06) !important;\n border-color: rgba(255, 255, 255, 0.08) !important;\n color: rgba(215, 215, 215, 0.94) !important;\n }\n .an-powered-logo-light {\n display: none;\n }\n .an-powered-logo-dark {\n display: block;\n }\n }\n .light .an-powered-badge:not(.an-powered-badge-plain) {\n background: rgba(0, 0, 0, 0.05) !important;\n border-color: rgba(0, 0, 0, 0.06) !important;\n color: rgba(95, 95, 95, 0.95) !important;\n }\n .light .an-powered-logo-light {\n display: block;\n }\n .light .an-powered-logo-dark {\n display: none;\n }\n .an-powered-badge:not(.an-powered-badge-plain):hover {\n opacity: 1 !important;\n color: rgba(70, 70, 70, 1) !important;\n }\n @media ${darkQuery} {\n .an-powered-badge:not(.an-powered-badge-plain):hover {\n color: rgba(238, 238, 238, 1) !important;\n }\n }\n .dark .an-powered-badge:not(.an-powered-badge-plain):hover {\n color: rgba(238, 238, 238, 1) !important;\n }\n .light .an-powered-badge:not(.an-powered-badge-plain):hover {\n color: rgba(70, 70, 70, 1) !important;\n }\n `}</style>\n <a\n href=\"https://agent-native.com\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={cn(\n \"an-powered-badge\",\n isPlain && \"an-powered-badge-plain\",\n embedded && \"an-powered-badge-embedded\",\n )}\n style={\n embedded\n ? {\n display: \"inline-flex\",\n alignItems: \"center\",\n textDecoration: \"none\",\n transition: \"opacity 0.2s\",\n }\n : containerStyle(position)\n }\n aria-label=\"Built with Agent Native\"\n >\n {!isPlain && <span>Built with</span>}\n <img\n src={logoOnLight}\n alt=\"Agent Native\"\n className=\"an-powered-logo an-powered-logo-light\"\n />\n <img\n src={logoOnDark}\n alt=\"Agent Native\"\n className=\"an-powered-logo an-powered-logo-dark\"\n />\n </a>\n </>\n );\n}\n\n/**\n * Small GitHub badge: \"Free and open source\"\n *\n * Intended to pair with PoweredByBadge on public pages.\n */\nexport function OpenSourceBadge({\n position = \"bottom-left\",\n embedded = false,\n}: OpenSourceBadgeProps) {\n const hidden =\n (import.meta.env as Record<string, string | undefined>)\n ?.VITE_HIDE_BRANDING === \"true\";\n\n if (hidden) return null;\n\n return (\n <>\n <style>{`\n .an-open-source-badge svg {\n width: 15px;\n height: 15px;\n flex: none;\n }\n .an-open-source-badge {\n background: transparent !important;\n border-color: transparent !important;\n backdrop-filter: none !important;\n -webkit-backdrop-filter: none !important;\n color: #00B5FF !important;\n font-weight: 600 !important;\n opacity: 0.95 !important;\n }\n @media (max-width: 640px) {\n .an-open-source-badge:not(.an-open-source-badge-embedded) {\n position: static !important;\n margin: 1rem auto 0 !important;\n width: max-content;\n max-width: calc(100vw - 2rem);\n }\n }\n .dark .an-open-source-badge {\n color: #00B5FF !important;\n }\n @media ${darkQuery} {\n .an-open-source-badge {\n color: #00B5FF !important;\n }\n }\n .light .an-open-source-badge {\n color: #00B5FF !important;\n }\n .an-open-source-badge:hover {\n opacity: 1 !important;\n color: #33C4FF !important;\n }\n @media ${darkQuery} {\n .an-open-source-badge:hover {\n color: #33C4FF !important;\n }\n }\n .dark .an-open-source-badge:hover {\n color: #33C4FF !important;\n }\n .light .an-open-source-badge:hover {\n color: #33C4FF !important;\n }\n `}</style>\n <a\n href=\"https://github.com/BuilderIO/agent-native\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={cn(\n \"an-open-source-badge\",\n embedded && \"an-open-source-badge-embedded\",\n )}\n style={\n embedded\n ? {\n display: \"flex\",\n alignItems: \"center\",\n gap: 6,\n fontSize: 12,\n fontFamily:\n '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif',\n fontWeight: 600,\n lineHeight: 1,\n textDecoration: \"none\",\n transition: \"opacity 0.2s, color 0.2s\",\n }\n : containerStyle(position)\n }\n >\n <IconBrandGithub aria-hidden=\"true\" stroke={1.8} />\n <span>Free and open source</span>\n </a>\n </>\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-chat-adapter.d.ts","sourceRoot":"","sources":["../../src/client/agent-chat-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAsB,MAAM,qBAAqB,CAAC;AAMhF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAkBrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,MAAM,MAAM,oBAAoB;AAC9B;;;;GAIG;AACD,KAAK;AACP,0EAA0E;GACxE,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-chat-adapter.d.ts","sourceRoot":"","sources":["../../src/client/agent-chat-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAsB,MAAM,qBAAqB,CAAC;AAMhF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAkBrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,MAAM,MAAM,oBAAoB;AAC9B;;;;GAIG;AACD,KAAK;AACP,0EAA0E;GACxE,WAAW,CAAC;AAssChB;;;;GAIG;AACH;;;GAGG;AACH,MAAM,WAAW,6BAA6B;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IAC3C,SAAS,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IAC5C,SAAS,CAAC,EAAE;QAAE,OAAO,EAAE,eAAe,GAAG,SAAS,CAAA;KAAE,CAAC;IACrD,WAAW,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE;QAAE,OAAO,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,CAAA;KAAE,CAAC;IAC3D,OAAO,CAAC,EAAE,oBAAoB,CAAC;CAChC;AAED,wBAAgB,sBAAsB,CACpC,OAAO,CAAC,EAAE,6BAA6B,GACtC,gBAAgB,CA6/ClB"}
|
|
@@ -731,6 +731,8 @@ function incrementalActionGuidance(tool) {
|
|
|
731
731
|
case "generate-design":
|
|
732
732
|
case "update-design":
|
|
733
733
|
return 'if an existing design file or snapshot is already in history, especially after a Design variant pick, stop retrying `generate-design`: call `get-design-snapshot` for the selected file, then call `edit-design` once on that same `fileId` (`mode: "replace-file"` for a compact full-file replacement, or search/replace for smaller edits). Use `generate-design` only for a brand-new compact first file when no target file exists yet';
|
|
734
|
+
case "edit-design":
|
|
735
|
+
return "retry with a smaller `edit-design` payload: prefer a handful of exact search/replace edits against the already-snapshotted file, and avoid `replacementContent` for a huge full-file rewrite. If a selected variant needs expansion, upgrade the highest-value visible sections first, save once, and summarize any remaining refinements";
|
|
734
736
|
case "present-design-variants":
|
|
735
737
|
return 'call `present-design-variants` with concise labels, descriptions, accent colors, and feature bullets; omit large `content` HTML when needed so the action can render compact representative screens. After the user picks a direction, delete unchosen screens, snapshot the selected `fileId`, and refine that same file with `edit-design` (`mode: "replace-file"` for placeholder expansion). Do not call `generate-design` after the variant pick';
|
|
736
738
|
case "create-visual-plan":
|
|
@@ -764,7 +766,9 @@ function autoContinueMessage(signal) {
|
|
|
764
766
|
// is the classic trigger for the repetition/cutoff loop. Nudge the model
|
|
765
767
|
// toward a compact first version it can actually finish in a single run, then
|
|
766
768
|
// incremental refinements — never re-streaming the same oversized payload.
|
|
767
|
-
const cutoffPreparingAction = signal.reason === "run_timeout" ||
|
|
769
|
+
const cutoffPreparingAction = signal.reason === "run_timeout" ||
|
|
770
|
+
signal.reason === "stream_ended" ||
|
|
771
|
+
signal.reason === "no_progress";
|
|
768
772
|
let actionInputNote = "";
|
|
769
773
|
if (cutoffPreparingAction && tool) {
|
|
770
774
|
const guidance = incrementalActionGuidance(tool);
|