@agent-native/core 0.84.3 → 0.84.5
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/core/CHANGELOG.md +12 -0
- package/corpus/core/package.json +2 -1
- package/corpus/core/src/cli/skills.ts +9 -7
- package/corpus/core/src/client/agent-chat-adapter.ts +13 -1
- package/corpus/core/src/client/sse-event-processor.ts +75 -1
- package/corpus/templates/design/AGENTS.md +7 -6
- package/corpus/templates/design/actions/present-design-variants.ts +4 -2
- package/corpus/templates/design/app/hooks/use-question-flow.ts +2 -2
- package/corpus/templates/design/app/pages/DesignEditor.tsx +1 -1
- package/dist/cli/skills.d.ts.map +1 -1
- package/dist/cli/skills.js +9 -7
- package/dist/cli/skills.js.map +1 -1
- package/dist/client/agent-chat-adapter.d.ts.map +1 -1
- package/dist/client/agent-chat-adapter.js +8 -1
- package/dist/client/agent-chat-adapter.js.map +1 -1
- package/dist/client/sse-event-processor.d.ts.map +1 -1
- package/dist/client/sse-event-processor.js +63 -1
- package/dist/client/sse-event-processor.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/notifications/routes.d.ts +3 -3
- package/dist/observability/routes.d.ts +3 -3
- package/dist/progress/routes.d.ts +1 -1
- package/dist/resources/handlers.d.ts +3 -3
- package/dist/server/agent-engine-api-key-route.d.ts +1 -1
- package/dist/server/transcribe-voice.d.ts +1 -1
- package/package.json +2 -1
package/corpus/core/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @agent-native/core
|
|
2
2
|
|
|
3
|
+
## 0.84.5
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 1a8400a: Surface an explicit chat error when an agent stops before a displayed tool action starts or returns a result, and keep Design variant generation prompts compact enough to finish.
|
|
8
|
+
|
|
9
|
+
## 0.84.4
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- 61715b4: Pin Nitro's `nf3` tracer dependency to a Node 22-compatible release so downstream package updates continue to build hosted apps.
|
|
14
|
+
|
|
3
15
|
## 0.84.3
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
package/corpus/core/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-native/core",
|
|
3
|
-
"version": "0.84.
|
|
3
|
+
"version": "0.84.5",
|
|
4
4
|
"description": "Framework for agent-native application development — where AI agents and UI share SQL state, actions, and context",
|
|
5
5
|
"homepage": "https://github.com/BuilderIO/agent-native#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -257,6 +257,7 @@
|
|
|
257
257
|
"minimatch": "^10.0.0",
|
|
258
258
|
"nanoid": "^5.1.9",
|
|
259
259
|
"next-themes": "^0.4.6",
|
|
260
|
+
"nf3": "0.3.17",
|
|
260
261
|
"nitro": "3.0.260415-beta",
|
|
261
262
|
"p-limit": "^7.3.0",
|
|
262
263
|
"prettier": "^3.8.3",
|
|
@@ -322,11 +322,13 @@ iteration, or a human-in-the-loop choice among design directions.
|
|
|
322
322
|
|
|
323
323
|
- Use \`create-design\` first to create a project shell. Do not report the
|
|
324
324
|
design as ready until it has renderable HTML.
|
|
325
|
-
- For open-ended UX exploration, generate distinct, complete HTML
|
|
326
|
-
(2-5, three by default) and call \`present-design-variants\`.
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
325
|
+
- For open-ended UX exploration, generate distinct, compact, complete HTML
|
|
326
|
+
directions (2-5, three by default) and call \`present-design-variants\`. Each
|
|
327
|
+
direction should be one representative screen or directional snapshot, not a
|
|
328
|
+
full app per variant. Design saves every option as a normal screen on the
|
|
329
|
+
overview board and renders an inline chat choice with one button per screen
|
|
330
|
+
name. After the user picks, delete the unchosen variant screens and continue
|
|
331
|
+
from the kept screen.
|
|
330
332
|
- If the chat choice buttons are not available in the host, ask the user to
|
|
331
333
|
tell you the screen name they prefer. The variants are already real screens
|
|
332
334
|
on the board, so do not ask them to paste HTML or copy a generated handoff
|
|
@@ -343,8 +345,8 @@ iteration, or a human-in-the-loop choice among design directions.
|
|
|
343
345
|
1. Default to three variants unless the user asks for a different count
|
|
344
346
|
(\`present-design-variants\` accepts 2-5; three is the sweet spot).
|
|
345
347
|
2. Make variants structurally and stylistically distinct, not just color swaps.
|
|
346
|
-
3. Each variant must be a complete standalone HTML document that
|
|
347
|
-
without a build step.
|
|
348
|
+
3. Each variant must be a compact, complete standalone HTML document that
|
|
349
|
+
renders without a build step.
|
|
348
350
|
4. For product UI redesigns, prefer cleaner hierarchy, progressive disclosure,
|
|
349
351
|
and realistic controls over decorative mockups.
|
|
350
352
|
5. After \`present-design-variants\`, wait for the user's pick before
|
|
@@ -1814,7 +1814,7 @@ export function createAgentChatAdapter(
|
|
|
1814
1814
|
}
|
|
1815
1815
|
const isTransient = signal.reason !== "loop_limit";
|
|
1816
1816
|
const visibleContent = visibleContentForContinuation();
|
|
1817
|
-
|
|
1817
|
+
let currentPartialHistory =
|
|
1818
1818
|
contentToContinuationHistory(visibleContent);
|
|
1819
1819
|
// Real, content-weight progress: streamed text or a completed tool
|
|
1820
1820
|
// result. Used to reset the stalled/empty counters so trivial
|
|
@@ -1986,6 +1986,18 @@ export function createAgentChatAdapter(
|
|
|
1986
1986
|
}
|
|
1987
1987
|
}
|
|
1988
1988
|
|
|
1989
|
+
if (isTransient) {
|
|
1990
|
+
const settledInterruptedTools = settleInterruptedToolCalls(
|
|
1991
|
+
visibleContent,
|
|
1992
|
+
undefined,
|
|
1993
|
+
{ includeActivity: true },
|
|
1994
|
+
);
|
|
1995
|
+
if (settledInterruptedTools) {
|
|
1996
|
+
currentPartialHistory =
|
|
1997
|
+
contentToContinuationHistory(visibleContent);
|
|
1998
|
+
}
|
|
1999
|
+
}
|
|
2000
|
+
|
|
1989
2001
|
if (isTransient && currentPartialHistory) {
|
|
1990
2002
|
continuationHistoryFragments.push(currentPartialHistory);
|
|
1991
2003
|
}
|
|
@@ -7,7 +7,11 @@ import {
|
|
|
7
7
|
} from "../agent/engine/credential-errors.js";
|
|
8
8
|
import type { AgentMcpAppPayload } from "../mcp-client/app-result.js";
|
|
9
9
|
import { formatChatErrorText, normalizeChatError } from "./error-format.js";
|
|
10
|
-
import {
|
|
10
|
+
import {
|
|
11
|
+
humanizeToolLabelText,
|
|
12
|
+
humanizeToolName,
|
|
13
|
+
runningToolLabel,
|
|
14
|
+
} from "./tool-display.js";
|
|
11
15
|
|
|
12
16
|
export type ContentPart =
|
|
13
17
|
| { type: "text"; text: string }
|
|
@@ -341,6 +345,42 @@ function dispatchActivityClear(tabId: string | undefined) {
|
|
|
341
345
|
);
|
|
342
346
|
}
|
|
343
347
|
|
|
348
|
+
function pendingToolNames(content: ContentPart[]): {
|
|
349
|
+
activity: string[];
|
|
350
|
+
running: string[];
|
|
351
|
+
} {
|
|
352
|
+
const activity = new Set<string>();
|
|
353
|
+
const running = new Set<string>();
|
|
354
|
+
for (const part of content) {
|
|
355
|
+
if (part.type === "tool-call" && part.result === undefined) {
|
|
356
|
+
if (part.activity === true) {
|
|
357
|
+
activity.add(part.toolName);
|
|
358
|
+
} else {
|
|
359
|
+
running.add(part.toolName);
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
return { activity: [...activity], running: [...running] };
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
function formatToolNames(tools: string[]): string {
|
|
367
|
+
const names = tools.map(humanizeToolName);
|
|
368
|
+
if (names.length === 0) return "the promised action";
|
|
369
|
+
if (names.length === 1) return `the ${names[0]} action`;
|
|
370
|
+
return `these actions: ${names.join(", ")}`;
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
function interruptedToolMessage(pending: {
|
|
374
|
+
activity: string[];
|
|
375
|
+
running: string[];
|
|
376
|
+
}): string {
|
|
377
|
+
if (pending.running.length > 0) {
|
|
378
|
+
return `The agent stopped before ${formatToolNames(pending.running)} returned a result. The requested changes may not have been made.`;
|
|
379
|
+
}
|
|
380
|
+
const actionLabel = formatToolNames(pending.activity);
|
|
381
|
+
return `The agent stopped before starting ${actionLabel}. No tool result was returned, so the requested changes were not made.`;
|
|
382
|
+
}
|
|
383
|
+
|
|
344
384
|
/**
|
|
345
385
|
* Process a single SSE event and update the content accumulator.
|
|
346
386
|
* Returns: "continue" to keep going, "done" to stop, or a yield-ready result.
|
|
@@ -751,6 +791,40 @@ export function processEvent(
|
|
|
751
791
|
}
|
|
752
792
|
|
|
753
793
|
if (ev.type === "done") {
|
|
794
|
+
const interruptedTools = pendingToolNames(content);
|
|
795
|
+
const allInterruptedTools = [
|
|
796
|
+
...interruptedTools.running,
|
|
797
|
+
...interruptedTools.activity,
|
|
798
|
+
];
|
|
799
|
+
if (allInterruptedTools.length > 0) {
|
|
800
|
+
settleInterruptedToolCalls(content, undefined, { includeActivity: true });
|
|
801
|
+
const message = interruptedToolMessage(interruptedTools);
|
|
802
|
+
const runError = {
|
|
803
|
+
message,
|
|
804
|
+
details: `interrupted_actions: ${allInterruptedTools.join(", ")}`,
|
|
805
|
+
errorCode: "action_not_started",
|
|
806
|
+
recoverable: true,
|
|
807
|
+
};
|
|
808
|
+
if (typeof window !== "undefined") {
|
|
809
|
+
window.dispatchEvent(
|
|
810
|
+
new CustomEvent("agent-chat:run-error", {
|
|
811
|
+
detail: { ...runError, tabId },
|
|
812
|
+
}),
|
|
813
|
+
);
|
|
814
|
+
}
|
|
815
|
+
content.push({
|
|
816
|
+
type: "text",
|
|
817
|
+
text: formatChatErrorText(message, undefined, runError.errorCode),
|
|
818
|
+
});
|
|
819
|
+
return {
|
|
820
|
+
action: "error",
|
|
821
|
+
result: {
|
|
822
|
+
content: [...content],
|
|
823
|
+
status: { type: "incomplete" as const, reason: "error" as const },
|
|
824
|
+
metadata: { custom: { runError } },
|
|
825
|
+
} as ChatModelRunResult,
|
|
826
|
+
};
|
|
827
|
+
}
|
|
754
828
|
return {
|
|
755
829
|
action: "done",
|
|
756
830
|
result: { content: [...content] } as ChatModelRunResult,
|
|
@@ -133,8 +133,9 @@ patterns live in `.agents/skills/`.
|
|
|
133
133
|
write-back remains a localhost/fusion follow-up capability.
|
|
134
134
|
- For multi-variant work, use `present-design-variants` so every candidate is
|
|
135
135
|
saved as a normal overview-board screen and the user gets one inline chat
|
|
136
|
-
button per screen name.
|
|
137
|
-
|
|
136
|
+
button per screen name. Keep each variant compact: one representative screen
|
|
137
|
+
or directional snapshot, not a full app per variant. After the user picks,
|
|
138
|
+
delete the unchosen variant screens before continuing from the kept screen.
|
|
138
139
|
- Use framework sharing actions for design and design-system visibility/grants.
|
|
139
140
|
- `/visual-edit` is a public entry route and public `/design/:id` links may
|
|
140
141
|
render read-only public designs without a session. Do not open anonymous write
|
|
@@ -217,10 +218,10 @@ patterns live in `.agents/skills/`.
|
|
|
217
218
|
register that manifest with `connect-localhost`, call `add-localhost-screens`,
|
|
218
219
|
and open the editor in overview mode.
|
|
219
220
|
- For human-in-the-loop UI exploration, create a design shell, call
|
|
220
|
-
`present-design-variants` with 2-5 complete HTML directions (three
|
|
221
|
-
default), wait for the user to pick one in chat, delete the other
|
|
222
|
-
variant screens with `delete-file`, then use `get-design-snapshot`
|
|
223
|
-
`generate-design` or `edit-design` for follow-up refinements.
|
|
221
|
+
`present-design-variants` with 2-5 compact, complete HTML directions (three
|
|
222
|
+
by default), wait for the user to pick one in chat, delete the other
|
|
223
|
+
generated variant screens with `delete-file`, then use `get-design-snapshot`
|
|
224
|
+
and `generate-design` or `edit-design` for follow-up refinements.
|
|
224
225
|
- If inline chat choice buttons are unavailable, the user can tell you the
|
|
225
226
|
preferred screen name. Do not show a separate variant picker or ask them to
|
|
226
227
|
paste a copyable handoff summary.
|
|
@@ -52,7 +52,7 @@ const variantSchema = z.object({
|
|
|
52
52
|
.string()
|
|
53
53
|
.min(1)
|
|
54
54
|
.describe(
|
|
55
|
-
"Complete self-contained HTML document for this variant. Inline the CSS needed for the preview; avoid relying on external CSS/script CDNs because app sandboxes may block them.",
|
|
55
|
+
"Complete self-contained HTML document for this variant. Keep it compact: one representative screen or directional snapshot, not a full multi-screen app. Inline the CSS needed for the preview; avoid relying on external CSS/script CDNs because app sandboxes may block them.",
|
|
56
56
|
),
|
|
57
57
|
width: z
|
|
58
58
|
.number()
|
|
@@ -227,7 +227,9 @@ export default defineAction({
|
|
|
227
227
|
"Provide 2-5 variants (3 is the sweet spot). Use this for design " +
|
|
228
228
|
"exploration before follow-up refinement. After the user's choice, keep " +
|
|
229
229
|
"the chosen screen, delete the other generated variant screens, and " +
|
|
230
|
-
"continue from the kept screen."
|
|
230
|
+
"continue from the kept screen. For complex apps, make each variant a " +
|
|
231
|
+
"compact but complete representative screen; expand the chosen direction " +
|
|
232
|
+
"after the user picks.",
|
|
231
233
|
schema: z.object({
|
|
232
234
|
designId: z.string().describe("Design project ID to show variants for"),
|
|
233
235
|
prompt: z
|
|
@@ -41,7 +41,7 @@ export function useQuestionFlow(
|
|
|
41
41
|
formattedAnswers,
|
|
42
42
|
"",
|
|
43
43
|
designId
|
|
44
|
-
? "Now continue the design. Honor any answer about variations: if the user asked to explore options, call present-design-variants with 2-5 complete HTML directions, wait for their chat pick, delete the unchosen variant screens, then continue from the kept screen; otherwise call generate-design with one complete, renderable index.html first. Do not ask another question unless a required decision is still genuinely missing."
|
|
44
|
+
? "Now continue the design. Honor any answer about variations: if the user asked to explore options, call present-design-variants with 2-5 compact, complete HTML directions - one representative screen per direction, not a full app per variant - wait for their chat pick, delete the unchosen variant screens, then continue from the kept screen; otherwise call generate-design with one complete, renderable index.html first. Do not ask another question unless a required decision is still genuinely missing."
|
|
45
45
|
: "Now continue the design. Honor any answer about variations: use variants only if requested; otherwise generate one polished direction.",
|
|
46
46
|
]
|
|
47
47
|
.filter(Boolean)
|
|
@@ -79,7 +79,7 @@ export function useQuestionFlow(
|
|
|
79
79
|
formattedAnswers,
|
|
80
80
|
"",
|
|
81
81
|
designId
|
|
82
|
-
? "Now continue the design. Honor any answer about variations: if the user asked to explore options, call present-design-variants with 2-5 complete HTML directions, wait for their chat pick, delete the unchosen variant screens, then continue from the kept screen; otherwise call generate-design with one complete, renderable index.html first. Do not ask another question unless a required decision is still genuinely missing."
|
|
82
|
+
? "Now continue the design. Honor any answer about variations: if the user asked to explore options, call present-design-variants with 2-5 compact, complete HTML directions - one representative screen per direction, not a full app per variant - wait for their chat pick, delete the unchosen variant screens, then continue from the kept screen; otherwise call generate-design with one complete, renderable index.html first. Do not ask another question unless a required decision is still genuinely missing."
|
|
83
83
|
: "Now continue the design. Honor any answer about variations: use variants only if requested; otherwise generate one polished direction.",
|
|
84
84
|
]
|
|
85
85
|
.filter(Boolean)
|
|
@@ -1309,7 +1309,7 @@ function designGenerationDirectives(
|
|
|
1309
1309
|
return [
|
|
1310
1310
|
`Use the \`generate-design --designId="${designId}"\` action with exactly one complete, renderable \`index.html\` file first. The design already exists - DO NOT call create-design.`,
|
|
1311
1311
|
...designSystemGenerationDirectives(designSystemId),
|
|
1312
|
-
"If the user asked to explore variations, call `present-design-variants` with 2-5 complete HTML directions,
|
|
1312
|
+
"If the user asked to explore variations, call `present-design-variants` with 2-5 compact, complete HTML directions: one representative screen per direction, not a full app per variant. Wait for their chat pick, delete the unchosen variant screens, then continue from the kept screen. Otherwise generate one polished first direction.",
|
|
1313
1313
|
"Keep the first pass bounded enough to finish quickly: one self-contained Alpine.js + Tailwind CDN HTML document, polished but concise. Add 3-6 tweaks only when they naturally fit the design.",
|
|
1314
1314
|
"After generate-design succeeds, stop and summarize what was created.",
|
|
1315
1315
|
];
|
package/dist/cli/skills.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/cli/skills.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,EAKL,KAAK,gBAAgB,EAEtB,MAAM,gBAAgB,CAAC;AAUxB,OAAO,EAAW,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGjE,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/cli/skills.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/skills.js
CHANGED
|
@@ -302,11 +302,13 @@ iteration, or a human-in-the-loop choice among design directions.
|
|
|
302
302
|
|
|
303
303
|
- Use \`create-design\` first to create a project shell. Do not report the
|
|
304
304
|
design as ready until it has renderable HTML.
|
|
305
|
-
- For open-ended UX exploration, generate distinct, complete HTML
|
|
306
|
-
(2-5, three by default) and call \`present-design-variants\`.
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
305
|
+
- For open-ended UX exploration, generate distinct, compact, complete HTML
|
|
306
|
+
directions (2-5, three by default) and call \`present-design-variants\`. Each
|
|
307
|
+
direction should be one representative screen or directional snapshot, not a
|
|
308
|
+
full app per variant. Design saves every option as a normal screen on the
|
|
309
|
+
overview board and renders an inline chat choice with one button per screen
|
|
310
|
+
name. After the user picks, delete the unchosen variant screens and continue
|
|
311
|
+
from the kept screen.
|
|
310
312
|
- If the chat choice buttons are not available in the host, ask the user to
|
|
311
313
|
tell you the screen name they prefer. The variants are already real screens
|
|
312
314
|
on the board, so do not ask them to paste HTML or copy a generated handoff
|
|
@@ -323,8 +325,8 @@ iteration, or a human-in-the-loop choice among design directions.
|
|
|
323
325
|
1. Default to three variants unless the user asks for a different count
|
|
324
326
|
(\`present-design-variants\` accepts 2-5; three is the sweet spot).
|
|
325
327
|
2. Make variants structurally and stylistically distinct, not just color swaps.
|
|
326
|
-
3. Each variant must be a complete standalone HTML document that
|
|
327
|
-
without a build step.
|
|
328
|
+
3. Each variant must be a compact, complete standalone HTML document that
|
|
329
|
+
renders without a build step.
|
|
328
330
|
4. For product UI redesigns, prefer cleaner hierarchy, progressive disclosure,
|
|
329
331
|
and realistic controls over decorative mockups.
|
|
330
332
|
5. After \`present-design-variants\`, wait for the user's pick before
|