@agent-native/core 0.84.4 → 0.84.6

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.
Files changed (39) hide show
  1. package/corpus/core/CHANGELOG.md +12 -0
  2. package/corpus/core/package.json +1 -1
  3. package/corpus/core/src/agent/production-agent.ts +97 -38
  4. package/corpus/core/src/agent/run-store.ts +17 -0
  5. package/corpus/core/src/cli/skills.ts +9 -7
  6. package/corpus/core/src/client/agent-chat-adapter.ts +13 -1
  7. package/corpus/core/src/client/sse-event-processor.ts +75 -1
  8. package/corpus/core/src/server/agent-chat-plugin.ts +57 -12
  9. package/corpus/templates/design/AGENTS.md +7 -6
  10. package/corpus/templates/design/actions/present-design-variants.ts +4 -2
  11. package/corpus/templates/design/app/hooks/use-question-flow.ts +2 -2
  12. package/corpus/templates/design/app/pages/DesignEditor.tsx +1 -1
  13. package/dist/agent/production-agent.d.ts +20 -0
  14. package/dist/agent/production-agent.d.ts.map +1 -1
  15. package/dist/agent/production-agent.js +65 -32
  16. package/dist/agent/production-agent.js.map +1 -1
  17. package/dist/agent/run-store.d.ts +14 -0
  18. package/dist/agent/run-store.d.ts.map +1 -1
  19. package/dist/agent/run-store.js +14 -0
  20. package/dist/agent/run-store.js.map +1 -1
  21. package/dist/cli/skills.d.ts.map +1 -1
  22. package/dist/cli/skills.js +9 -7
  23. package/dist/cli/skills.js.map +1 -1
  24. package/dist/client/agent-chat-adapter.d.ts.map +1 -1
  25. package/dist/client/agent-chat-adapter.js +8 -1
  26. package/dist/client/agent-chat-adapter.js.map +1 -1
  27. package/dist/client/sse-event-processor.d.ts.map +1 -1
  28. package/dist/client/sse-event-processor.js +63 -1
  29. package/dist/client/sse-event-processor.js.map +1 -1
  30. package/dist/collab/routes.d.ts +2 -2
  31. package/dist/notifications/routes.d.ts +1 -1
  32. package/dist/observability/routes.d.ts +5 -5
  33. package/dist/resources/handlers.d.ts +1 -1
  34. package/dist/server/agent-chat-plugin.d.ts +9 -0
  35. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  36. package/dist/server/agent-chat-plugin.js +20 -8
  37. package/dist/server/agent-chat-plugin.js.map +1 -1
  38. package/dist/server/agent-engine-api-key-route.d.ts +1 -1
  39. package/package.json +1 -1
@@ -1,5 +1,17 @@
1
1
  # @agent-native/core
2
2
 
3
+ ## 0.84.6
4
+
5
+ ### Patch Changes
6
+
7
+ - 126ccac: Claim durable background agent-chat runs before expensive worker setup so hosted apps stay on the 15-minute background-function path instead of falling back to 40-second inline chunks.
8
+
9
+ ## 0.84.5
10
+
11
+ ### Patch Changes
12
+
13
+ - 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.
14
+
3
15
  ## 0.84.4
4
16
 
5
17
  ### Patch Changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-native/core",
3
- "version": "0.84.4",
3
+ "version": "0.84.6",
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": {
@@ -4025,6 +4025,58 @@ export function shouldChainBackgroundContinuation(opts: {
4025
4025
  );
4026
4026
  }
4027
4027
 
4028
+ export async function claimBackgroundWorkerRunEarly(opts: {
4029
+ runId: string;
4030
+ threadId?: string | null;
4031
+ markerTurnId?: string | null;
4032
+ requestTurnId?: string | null;
4033
+ continuationCount: number;
4034
+ runsInBackgroundFunction: boolean;
4035
+ deps?: {
4036
+ recordRunDiagnostic?: typeof recordRunDiagnostic;
4037
+ insertRun?: typeof insertRun;
4038
+ claimBackgroundRun?: typeof claimBackgroundRun;
4039
+ updateRunHeartbeat?: typeof updateRunHeartbeat;
4040
+ };
4041
+ }): Promise<{ claimed: true } | { claimed: false; skipped: string }> {
4042
+ const record = opts.deps?.recordRunDiagnostic ?? recordRunDiagnostic;
4043
+ const insert = opts.deps?.insertRun ?? insertRun;
4044
+ const claim = opts.deps?.claimBackgroundRun ?? claimBackgroundRun;
4045
+ const heartbeat = opts.deps?.updateRunHeartbeat ?? updateRunHeartbeat;
4046
+ const threadId =
4047
+ typeof opts.threadId === "string" && opts.threadId.trim()
4048
+ ? opts.threadId.trim()
4049
+ : opts.runId;
4050
+ const turnId =
4051
+ typeof opts.markerTurnId === "string" && opts.markerTurnId.trim()
4052
+ ? opts.markerTurnId.trim()
4053
+ : typeof opts.requestTurnId === "string" && opts.requestTurnId.trim()
4054
+ ? opts.requestTurnId.trim()
4055
+ : opts.runId;
4056
+
4057
+ await record(
4058
+ opts.runId,
4059
+ RUN_DIAG_STAGE.workerEntered,
4060
+ `runsInBackgroundFunction=${opts.runsInBackgroundFunction} continuationCount=${opts.continuationCount}`,
4061
+ ).catch(() => {});
4062
+
4063
+ if (opts.continuationCount > 0) {
4064
+ await insert(opts.runId, threadId, turnId, {
4065
+ dispatchMode: "background",
4066
+ }).catch(() => {});
4067
+ }
4068
+
4069
+ const won = await claim(opts.runId);
4070
+ if (!won) {
4071
+ await record(opts.runId, RUN_DIAG_STAGE.workerClaimLost).catch(() => {});
4072
+ return { claimed: false, skipped: "already-claimed" };
4073
+ }
4074
+
4075
+ await record(opts.runId, RUN_DIAG_STAGE.workerClaimed).catch(() => {});
4076
+ await heartbeat(opts.runId).catch(() => {});
4077
+ return { claimed: true };
4078
+ }
4079
+
4028
4080
  function progressStepFromAgentChatEvent(event: AgentChatEvent): string | null {
4029
4081
  switch (event.type) {
4030
4082
  case "activity":
@@ -4175,6 +4227,24 @@ export function createProductionAgentHandler(
4175
4227
  Number.isFinite(backgroundRunMarker.continuationCount)
4176
4228
  ? Math.max(0, Math.floor(backgroundRunMarker.continuationCount))
4177
4229
  : 0;
4230
+ let backgroundRunClaimedEarly = false;
4231
+ if (isBackgroundWorker && bgRunId) {
4232
+ const earlyClaim = await claimBackgroundWorkerRunEarly({
4233
+ runId: bgRunId,
4234
+ threadId,
4235
+ markerTurnId:
4236
+ typeof backgroundRunMarker?.turnId === "string"
4237
+ ? backgroundRunMarker.turnId
4238
+ : null,
4239
+ requestTurnId,
4240
+ continuationCount: backgroundContinuationCount,
4241
+ runsInBackgroundFunction,
4242
+ });
4243
+ if (!earlyClaim.claimed) {
4244
+ return { ok: true, skipped: earlyClaim.skipped };
4245
+ }
4246
+ backgroundRunClaimedEarly = true;
4247
+ }
4178
4248
  // The foreground POST decides whether to dispatch into a background
4179
4249
  // function. The background worker itself never re-dispatches.
4180
4250
  const dispatchToBackground =
@@ -5254,48 +5324,37 @@ export function createProductionAgentHandler(
5254
5324
  }
5255
5325
  : undefined;
5256
5326
 
5257
- // Background worker: claim the pre-inserted run idempotently before
5258
- // executing. A duplicate Netlify delivery loses the claim and no-ops here,
5259
- // so the run can never be double-executed. Bump the heartbeat immediately
5260
- // on entry so a slow cold-start doesn't leave the row looking stale to the
5261
- // reaper before startRun's 1.5s heartbeat timer takes over.
5327
+ // Background worker: the run was claimed immediately after the authenticated
5328
+ // `_process-run` body was parsed, before owner/model/prompt/tool setup. That
5329
+ // early claim is what lets the foreground subscribe to the real background
5330
+ // worker instead of racing slow setup and falling back to the 40s inline
5331
+ // path. This late block is a defensive fallback for older/custom callers
5332
+ // that somehow reach here without the early claim.
5262
5333
  if (isBackgroundWorker) {
5263
- // DIAGNOSTIC: the re-entered handler recognized itself as the background
5264
- // worker. Record the runtime regime too — `isInBackgroundFunctionRuntime()`
5265
- // reads a globalThis marker set by the bg-fn entry, which may NOT be set in
5266
- // this isolate; recording the ACTUAL resolved value reveals whether the
5267
- // worker is on the 13-min `-background` budget or the 40s clamp. This is
5268
- // the proof the worker reached its own code (vs. dying at auth before it).
5269
- await recordRunDiagnostic(
5270
- runId,
5271
- RUN_DIAG_STAGE.workerEntered,
5272
- `runsInBackgroundFunction=${runsInBackgroundFunction} continuationCount=${backgroundContinuationCount}`,
5273
- ).catch(() => {});
5274
- // A chained continuation chunk's runId was minted by the prior chunk and
5275
- // never inserted, so insert its background row now (idempotently — a
5276
- // duplicate Netlify delivery that already inserted it just PK-collides and
5277
- // the claim below dedups). The first chunk's row was inserted by the
5278
- // foreground, so skip the insert there.
5279
- if (isChainedBackgroundContinuation) {
5280
- await insertRun(runId, effectiveThreadId, effectiveTurnId, {
5281
- dispatchMode: "background",
5282
- }).catch(() => {});
5283
- }
5284
- const won = await claimBackgroundRun(runId);
5285
- if (!won) {
5286
- // Already claimed by an earlier delivery — return a benign ack so
5287
- // Netlify doesn't retry a successful handoff.
5288
- await recordRunDiagnostic(runId, RUN_DIAG_STAGE.workerClaimLost).catch(
5334
+ if (!backgroundRunClaimedEarly) {
5335
+ await recordRunDiagnostic(
5336
+ runId,
5337
+ RUN_DIAG_STAGE.workerEntered,
5338
+ `runsInBackgroundFunction=${runsInBackgroundFunction} continuationCount=${backgroundContinuationCount}`,
5339
+ ).catch(() => {});
5340
+ if (isChainedBackgroundContinuation) {
5341
+ await insertRun(runId, effectiveThreadId, effectiveTurnId, {
5342
+ dispatchMode: "background",
5343
+ }).catch(() => {});
5344
+ }
5345
+ const won = await claimBackgroundRun(runId);
5346
+ if (!won) {
5347
+ await recordRunDiagnostic(
5348
+ runId,
5349
+ RUN_DIAG_STAGE.workerClaimLost,
5350
+ ).catch(() => {});
5351
+ return { ok: true, skipped: "already-claimed" };
5352
+ }
5353
+ await recordRunDiagnostic(runId, RUN_DIAG_STAGE.workerClaimed).catch(
5289
5354
  () => {},
5290
5355
  );
5291
- return { ok: true, skipped: "already-claimed" };
5356
+ await updateRunHeartbeat(runId).catch(() => {});
5292
5357
  }
5293
- // DIAGNOSTIC: this worker won the claim and now OWNS the run. If a run
5294
- // ever stalls at this stage it means the loop below failed to start.
5295
- await recordRunDiagnostic(runId, RUN_DIAG_STAGE.workerClaimed).catch(
5296
- () => {},
5297
- );
5298
- await updateRunHeartbeat(runId).catch(() => {});
5299
5358
  }
5300
5359
 
5301
5360
  // DIAGNOSTIC-ONLY: build the pre-startRun setup-timing breakdown now (so the
@@ -64,6 +64,23 @@ export const UNCLAIMED_BACKGROUND_RUN_ERROR_EVENT = {
64
64
  "A background-dispatched run was acknowledged (HTTP 202) but its worker never claimed the run, so no progress was produced. The run was reaped early (it had no live worker to protect) so the turn can be retried.",
65
65
  } as const;
66
66
 
67
+ /**
68
+ * Terminal error for a background worker that DID claim the run, then failed
69
+ * during route/handler setup before `startRun` could emit its own error event.
70
+ * Claimed runs are no longer eligible for foreground inline recovery, so the
71
+ * route boundary must fail them loudly instead of leaving subscribers to wait
72
+ * for stale-run recovery.
73
+ */
74
+ export const CLAIMED_BACKGROUND_WORKER_FAILED_ERROR_EVENT = {
75
+ type: "error",
76
+ error:
77
+ "The background agent worker stopped before it could start the turn. You can retry from the preserved chat context.",
78
+ errorCode: "background_worker_failed",
79
+ recoverable: true,
80
+ details:
81
+ "The durable background worker claimed the run but threw during setup before it could emit agent events.",
82
+ } as const;
83
+
67
84
  /**
68
85
  * Grace period before a never-claimed background run (dispatch_mode still
69
86
  * 'background', no worker claim) is treated as a dead handoff and reaped.
@@ -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 directions
326
- (2-5, three by default) and call \`present-design-variants\`. Design saves
327
- every option as a normal screen on the overview board and renders an inline
328
- chat choice with one button per screen name. After the user picks, delete the
329
- unchosen variant screens and continue from the kept screen.
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 renders
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
- const currentPartialHistory =
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 { humanizeToolLabelText, runningToolLabel } from "./tool-display.js";
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,
@@ -62,7 +62,15 @@ import {
62
62
  import { runAgentLoopDirectWithSoftTimeout } from "../agent/run-loop-with-resume.js";
63
63
  import { callerOwnsRun, callerOwnsThread } from "../agent/run-ownership.js";
64
64
  import type { AgentRunSummary } from "../agent/run-store.js";
65
- import { readBackgroundRunClaim } from "../agent/run-store.js";
65
+ import {
66
+ CLAIMED_BACKGROUND_WORKER_FAILED_ERROR_EVENT,
67
+ ensureTerminalRunEvent,
68
+ readBackgroundRunClaim,
69
+ recordRunDiagnostic,
70
+ RUN_DIAG_STAGE,
71
+ setRunError,
72
+ updateRunStatusIfRunning,
73
+ } from "../agent/run-store.js";
66
74
  import { buildRuntimeContextPrompt } from "../agent/runtime-context.js";
67
75
  import {
68
76
  buildAssistantMessage,
@@ -3864,6 +3872,50 @@ export function shouldDisableRecurringJobsRuntime(
3864
3872
  return isLocalRuntime;
3865
3873
  }
3866
3874
 
3875
+ type AgentChatProcessRunFailureDeps = {
3876
+ readBackgroundRunClaim?: typeof readBackgroundRunClaim;
3877
+ recordRunDiagnostic?: typeof recordRunDiagnostic;
3878
+ setRunError?: typeof setRunError;
3879
+ updateRunStatusIfRunning?: typeof updateRunStatusIfRunning;
3880
+ ensureTerminalRunEvent?: typeof ensureTerminalRunEvent;
3881
+ };
3882
+
3883
+ export async function finalizeClaimedAgentChatProcessRunFailure(
3884
+ runId: string,
3885
+ err: unknown,
3886
+ deps: AgentChatProcessRunFailureDeps = {},
3887
+ ): Promise<boolean> {
3888
+ const readClaim = deps.readBackgroundRunClaim ?? readBackgroundRunClaim;
3889
+ const record = deps.recordRunDiagnostic ?? recordRunDiagnostic;
3890
+ const setError = deps.setRunError ?? setRunError;
3891
+ const updateStatus =
3892
+ deps.updateRunStatusIfRunning ?? updateRunStatusIfRunning;
3893
+ const ensureTerminal = deps.ensureTerminalRunEvent ?? ensureTerminalRunEvent;
3894
+ const message = err instanceof Error ? err.message : String(err);
3895
+
3896
+ await record(runId, RUN_DIAG_STAGE.routeThrew, message).catch(() => {});
3897
+
3898
+ const claim = await readClaim(runId).catch(() => null);
3899
+ if (
3900
+ claim?.status !== "running" ||
3901
+ claim.dispatchMode !== "background-processing"
3902
+ ) {
3903
+ return false;
3904
+ }
3905
+
3906
+ await setError(
3907
+ runId,
3908
+ CLAIMED_BACKGROUND_WORKER_FAILED_ERROR_EVENT.errorCode,
3909
+ `${CLAIMED_BACKGROUND_WORKER_FAILED_ERROR_EVENT.details} setupError=${message}`,
3910
+ ).catch(() => {});
3911
+ await updateStatus(runId, "errored").catch(() => {});
3912
+ await ensureTerminal(
3913
+ runId,
3914
+ CLAIMED_BACKGROUND_WORKER_FAILED_ERROR_EVENT,
3915
+ ).catch(() => {});
3916
+ return true;
3917
+ }
3918
+
3867
3919
  export function createAgentChatPlugin(
3868
3920
  options?: AgentChatPluginOptions,
3869
3921
  ): NitroPluginDef {
@@ -8030,17 +8082,10 @@ Non-code requests are still fine on this surface: read data, navigate the UI, su
8030
8082
  runId: prepared.runId,
8031
8083
  },
8032
8084
  });
8033
- // DIAGNOSTIC: the worker invocation threw at the route boundary —
8034
- // record the message so the failure cause is readable client-side.
8035
- if (diag) {
8036
- await diag
8037
- .record(
8038
- prepared.runId,
8039
- diag.stages.routeThrew,
8040
- err instanceof Error ? err.message : String(err),
8041
- )
8042
- .catch(() => {});
8043
- }
8085
+ await finalizeClaimedAgentChatProcessRunFailure(
8086
+ prepared.runId,
8087
+ err,
8088
+ );
8044
8089
  setResponseStatus(event, 500);
8045
8090
  return { error: "process-run failed" };
8046
8091
  }
@@ -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. After the user picks, delete the unchosen variant
137
- screens before continuing from the kept screen.
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 by
221
- default), wait for the user to pick one in chat, delete the other generated
222
- variant screens with `delete-file`, then use `get-design-snapshot` and
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, wait for their chat pick, delete the unchosen variant screens, then continue from the kept screen. Otherwise generate one polished first direction.",
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
  ];
@@ -5,6 +5,7 @@ import type { AgentEngine, EngineTool, EngineMessage, EngineContentPart } from "
5
5
  import { type Processor } from "./processors.js";
6
6
  import { subscribeToRun, getActiveRunForThread, getActiveRunForThreadAsync, getRun, abortRun } from "./run-manager.js";
7
7
  import type { ActiveRun } from "./run-manager.js";
8
+ import { insertRun, updateRunHeartbeat, claimBackgroundRun, recordRunDiagnostic } from "./run-store.js";
8
9
  import type { ActionTool, AgentChatAttachment, AgentChatEvent, AgentChatReference, AgentChatStructuredMessage } from "./types.js";
9
10
  export { PROVIDER_TO_ENV };
10
11
  /**
@@ -477,6 +478,25 @@ export declare function shouldChainBackgroundContinuation(opts: {
477
478
  run: ActiveRun;
478
479
  continuationCount: number;
479
480
  }): boolean;
481
+ export declare function claimBackgroundWorkerRunEarly(opts: {
482
+ runId: string;
483
+ threadId?: string | null;
484
+ markerTurnId?: string | null;
485
+ requestTurnId?: string | null;
486
+ continuationCount: number;
487
+ runsInBackgroundFunction: boolean;
488
+ deps?: {
489
+ recordRunDiagnostic?: typeof recordRunDiagnostic;
490
+ insertRun?: typeof insertRun;
491
+ claimBackgroundRun?: typeof claimBackgroundRun;
492
+ updateRunHeartbeat?: typeof updateRunHeartbeat;
493
+ };
494
+ }): Promise<{
495
+ claimed: true;
496
+ } | {
497
+ claimed: false;
498
+ skipped: string;
499
+ }>;
480
500
  export declare function createProductionAgentHandler(options: ProductionAgentOptions): H3EventHandler;
481
501
  export { getActiveRunForThread, getActiveRunForThreadAsync, getRun, abortRun, subscribeToRun, };
482
502
  //# sourceMappingURL=production-agent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"production-agent.d.ts","sourceRoot":"","sources":["../../src/agent/production-agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"production-agent.d.ts","sourceRoot":"","sources":["../../src/agent/production-agent.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,IAAI,cAAc,EAAE,MAAM,IAAI,CAAC;AAkCzD,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,+BAA+B,CAAC;AA2BvC,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAMhE,OAAO,KAAK,EACV,WAAW,EACX,UAAU,EACV,aAAa,EACb,iBAAiB,EAGlB,MAAM,mBAAmB,CAAC;AAgB3B,OAAO,EAIL,KAAK,SAAS,EACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAEL,cAAc,EACd,qBAAqB,EACrB,0BAA0B,EAC1B,MAAM,EACN,QAAQ,EAET,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAKL,SAAS,EACT,kBAAkB,EAElB,kBAAkB,EAElB,mBAAmB,EAGpB,MAAM,gBAAgB,CAAC;AAexB,OAAO,KAAK,EACV,UAAU,EAEV,mBAAmB,EAEnB,cAAc,EACd,kBAAkB,EAClB,0BAA0B,EAC3B,MAAM,YAAY,CAAC;AAKpB,OAAO,EAAE,eAAe,EAAE,CAAC;AAE3B;;;;;;;;;GASG;AACH,eAAO,MAAM,yBAAyB,QAAS,CAAC;AAChD;;;;;;GAMG;AACH,eAAO,MAAM,kCAAkC,OAAQ,CAAC;AACxD,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C,MAAM,MAAM,yBAAyB,GACjC;IAAE,MAAM,EAAE,QAAQ,CAAA;CAAE,GACpB;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GACvB;IACE,MAAM,EAAE,QAAQ,CAAC;IACjB,MAAM,EAAE,iBAAiB,GAAG,sBAAsB,GAAG,QAAQ,CAAC;CAC/D,CAAC;AAmBN;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,gCAAgC,CAAC,IAAI,EAAE;IAC3D,UAAU,EAAE,OAAO,CAAC;IACpB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6FAA6F;IAC7F,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;QACpC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,wEAAwE;QACxE,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAChC,GAAG,IAAI,CAAC,CAAC;IACV,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC,GAAG,OAAO,CAAC,yBAAyB,CAAC,CA6FrC;AA4CD;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACpC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA8C7B;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE3D;AAaD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACpC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAsB7B;AAED,sEAAsE;AACtE,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACpC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAE7B;AAED;;;;GAIG;AACH,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEnE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,UAAU,CAAC;IACjB,GAAG,EAAE,CACH,IAAI,EAAE,GAAG,EACT,OAAO,CAAC,EAAE,OAAO,cAAc,EAAE,gBAAgB,KAC9C,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACxB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qFAAqF;IACrF,IAAI,CAAC,EAAE,OAAO,cAAc,EAAE,gBAAgB,GAAG,KAAK,CAAC;IACvD;;0EAEsE;IACtE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;qDACiD;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;sDAGkD;IAClD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;qFACiF;IACjF,WAAW,CAAC,EAAE,OAAO,cAAc,EAAE,uBAAuB,CAAC;IAC7D;4EACwE;IACxE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;oDAEgD;IAChD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;gDAK4C;IAC5C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;2EAEuE;IACvE,IAAI,CAAC,EAAE,OAAO,cAAc,EAAE,iBAAiB,CAAC;IAChD;;qCAEiC;IACjC,MAAM,CAAC,EAAE,OAAO,cAAc,EAAE,kBAAkB,CAAC;IACnD,2EAA2E;IAC3E,MAAM,CAAC,EAAE,OAAO,iBAAiB,EAAE,kBAAkB,CAAC;IACtD;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;OAMG;IACH,aAAa,CAAC,EACV,OAAO,GACP,CAAC,CACC,IAAI,EAAE,GAAG,EACT,GAAG,CAAC,EAAE,OAAO,cAAc,EAAE,gBAAgB,KAC1C,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;CACtC;AAED,4CAA4C;AAC5C,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC;AAEtC,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,MAAM,CAAC;AAEhD,eAAO,MAAM,uBAAuB,ivBAQ2H,CAAC;AAwFhK,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,WAAW,GACjB,OAAO,CAiBT;AA0ED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GACnC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAiC7B;AAED,MAAM,WAAW,sBAAsB;IACrC,+FAA+F;IAC/F,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACtC,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACtC,0FAA0F;IAC1F,YAAY,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAClE,kFAAkF;IAClF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,MAAM,CAAC,EACH,WAAW,GACX,MAAM,GACN;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;IACtD,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,6DAA6D;IAC7D,eAAe,CAAC,EAAE,aAAa,SAAS,KAAK,GAAG,KAAK,GAAG,GAAG,CAAC;IAC5D,uEAAuE;IACvE,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACvE,mEAAmE;IACnE,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE;QACxB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;QAC7B,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,mBAAmB,EAAE,CAAC;KACrC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE;QACzB,KAAK,EAAE,GAAG,CAAC;QACX,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,OAAO,EAAE,MAAM,CAAC;QAChB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,WAAW,EAAE,mBAAmB,EAAE,CAAC;QACnC,UAAU,EAAE,kBAAkB,EAAE,CAAC;QACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,oBAAoB,CAAC,EAAE,OAAO,CAAC;QAC/B,IAAI,EAAE,kBAAkB,CAAC;KAC1B,KACG,IAAI,GACJ;QACE,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,WAAW,CAAC,EAAE,mBAAmB,EAAE,CAAC;KACrC,GACD,OAAO,CAAC,IAAI,GAAG;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,WAAW,CAAC,EAAE,mBAAmB,EAAE,CAAC;KACrC,CAAC,CAAC;IACP;;;mDAG+C;IAC/C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,4FAA4F;IAC5F,UAAU,CAAC,EAAE,CACX,IAAI,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,EACrC,QAAQ,EAAE,MAAM,KACb,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChE,qEAAqE;IACrE,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7D;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,2BAA2B,CAAC;IACjD;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B;;;;OAIG;IACH,UAAU,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9D;AAED,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,IAAI,CAAC,sBAAsB,EAAE,mBAAmB,CAAC,EAC1D,KAAK,EAAE,GAAG,GACT,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAUxB;AAoFD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAoB3D;AAED,6CAA6C;AAC7C,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAwDtD;AAeD;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,aAAa,EAAE,EACzB,QAAQ,SAAyB,GAChC,aAAa,EAAE,GAAG,IAAI,CA0BxB;AAiGD,wBAAgB,+BAA+B,CAAC,IAAI,EAAE;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,mBAAmB,EAAE,CAAC;CACrC,GAAG,iBAAiB,EAAE,CAiFtB;AAyBD,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,0BAA0B,EAAE,GAAG,SAAS,GAChD,aAAa,EAAE,GAAG,IAAI,CA2GxB;AAoBD,wBAAsB,4BAA4B,CAChD,GAAG,EAAE,kBAAkB,GACtB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA8CxB;AAqED,qDAAqD;AACrD,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,kCAAkC;IACjD,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,gBAAgB,EAAE,iBAAiB,EAAE,CAAC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,wBAAwB,EAAE,CAAC;IACtC,WAAW,EAAE,0BAA0B,EAAE,CAAC;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,kBAAkB,CAAC;CACnC;AAED,MAAM,MAAM,iCAAiC,GACzC,MAAM,GACN;IACE,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEN,MAAM,MAAM,2BAA2B,GAAG,CACxC,OAAO,EAAE,kCAAkC,KAEzC,iCAAiC,GACjC,IAAI,GACJ,SAAS,GACT,OAAO,CAAC,iCAAiC,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;AAYlE,eAAO,MAAM,8BAA8B,mOACuL,CAAC;AAEnO,MAAM,MAAM,2BAA2B,GACnC,aAAa,GACb,YAAY,GACZ,YAAY,GACZ,cAAc,GACd,iBAAiB,GACjB,qBAAqB,CAAC;AAE1B,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,aAAa,EAAE,EACzB,MAAM,EAAE,2BAA2B,QAuBpC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAoC5D;AAED;;;;GAIG;AACH,wBAAgB,mCAAmC,CACjD,GAAG,EAAE,OAAO,GACX,iBAAiB,GAAG,qBAAqB,CAa3C;AAqQD;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GACnC,UAAU,EAAE,CAkBd;AAkSD,wBAAgB,+BAA+B,CAAC,IAAI,EAAE;IACpD,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,MAAM,CAsBT;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,WAAW,GAAG,SAAS,CAAC;IAC/B,cAAc,EAAE,SAAS,wBAAwB,EAAE,CAAC;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAgBnE;AA6FD;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE;IACvC,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,cAAc,CAAC,EAAE,UAAU,EAAE,CAAC;IAC9B,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACrC,IAAI,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IACtC,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACpC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,2BAA2B,CAAC;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,UAAU,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;CAC1B,GAAG,OAAO,CAAC,cAAc,CAAC,CA+2C1B;AA4CD;;;;;;GAMG;AACH,eAAO,MAAM,gCAAgC,KAAK,CAAC;AAEnD;;;;;;GAMG;AACH,wBAAgB,iCAAiC,CAAC,IAAI,EAAE;IACtD,kBAAkB,EAAE,OAAO,CAAC;IAC5B,GAAG,EAAE,SAAS,CAAC;IACf,iBAAiB,EAAE,MAAM,CAAC;CAC3B,GAAG,OAAO,CAOV;AAED,wBAAsB,6BAA6B,CAAC,IAAI,EAAE;IACxD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,wBAAwB,EAAE,OAAO,CAAC;IAClC,IAAI,CAAC,EAAE;QACL,mBAAmB,CAAC,EAAE,OAAO,mBAAmB,CAAC;QACjD,SAAS,CAAC,EAAE,OAAO,SAAS,CAAC;QAC7B,kBAAkB,CAAC,EAAE,OAAO,kBAAkB,CAAC;QAC/C,kBAAkB,CAAC,EAAE,OAAO,kBAAkB,CAAC;KAChD,CAAC;CACH,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAqCnE;AA+BD,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,sBAAsB,GAC9B,cAAc,CAmrDhB;AAED,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,MAAM,EACN,QAAQ,EACR,cAAc,GACf,CAAC"}