@agent-native/core 0.43.0 → 0.44.0

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 (87) hide show
  1. package/dist/chat-threads/store.d.ts.map +1 -1
  2. package/dist/chat-threads/store.js +71 -10
  3. package/dist/chat-threads/store.js.map +1 -1
  4. package/dist/cli/pr-visual-recap-workflow.d.ts +1 -1
  5. package/dist/cli/pr-visual-recap-workflow.d.ts.map +1 -1
  6. package/dist/cli/pr-visual-recap-workflow.js +1 -1
  7. package/dist/cli/pr-visual-recap-workflow.js.map +1 -1
  8. package/dist/cli/recap.d.ts.map +1 -1
  9. package/dist/cli/recap.js +2 -13
  10. package/dist/cli/recap.js.map +1 -1
  11. package/dist/cli/skills.d.ts +2 -2
  12. package/dist/cli/skills.d.ts.map +1 -1
  13. package/dist/cli/skills.js +13 -13
  14. package/dist/cli/skills.js.map +1 -1
  15. package/dist/client/AssistantChat.d.ts.map +1 -1
  16. package/dist/client/AssistantChat.js +76 -18
  17. package/dist/client/AssistantChat.js.map +1 -1
  18. package/dist/client/blocks/index.d.ts +0 -2
  19. package/dist/client/blocks/index.d.ts.map +1 -1
  20. package/dist/client/blocks/index.js +0 -2
  21. package/dist/client/blocks/index.js.map +1 -1
  22. package/dist/client/blocks/library/AnnotatedCodeBlock.d.ts.map +1 -1
  23. package/dist/client/blocks/library/AnnotatedCodeBlock.js +1 -1
  24. package/dist/client/blocks/library/AnnotatedCodeBlock.js.map +1 -1
  25. package/dist/client/blocks/library/ApiEndpointBlock.d.ts.map +1 -1
  26. package/dist/client/blocks/library/ApiEndpointBlock.js +1 -1
  27. package/dist/client/blocks/library/ApiEndpointBlock.js.map +1 -1
  28. package/dist/client/blocks/library/DiffBlock.d.ts.map +1 -1
  29. package/dist/client/blocks/library/DiffBlock.js +68 -24
  30. package/dist/client/blocks/library/DiffBlock.js.map +1 -1
  31. package/dist/client/blocks/library/FileTreeBlock.d.ts.map +1 -1
  32. package/dist/client/blocks/library/FileTreeBlock.js +4 -0
  33. package/dist/client/blocks/library/FileTreeBlock.js.map +1 -1
  34. package/dist/client/blocks/library/annotation-rail.d.ts +0 -19
  35. package/dist/client/blocks/library/annotation-rail.d.ts.map +1 -1
  36. package/dist/client/blocks/library/annotation-rail.js +0 -19
  37. package/dist/client/blocks/library/annotation-rail.js.map +1 -1
  38. package/dist/client/blocks/library/code-tabs.js +1 -1
  39. package/dist/client/blocks/library/code-tabs.js.map +1 -1
  40. package/dist/client/blocks/library/server-specs.d.ts.map +1 -1
  41. package/dist/client/blocks/library/server-specs.js +0 -10
  42. package/dist/client/blocks/library/server-specs.js.map +1 -1
  43. package/dist/client/blocks/library/specs.d.ts.map +1 -1
  44. package/dist/client/blocks/library/specs.js +0 -2
  45. package/dist/client/blocks/library/specs.js.map +1 -1
  46. package/dist/client/blocks/library/wireframe.config.d.ts.map +1 -1
  47. package/dist/client/blocks/library/wireframe.config.js +19 -2
  48. package/dist/client/blocks/library/wireframe.config.js.map +1 -1
  49. package/dist/client/blocks/mdx.d.ts.map +1 -1
  50. package/dist/client/blocks/mdx.js +11 -0
  51. package/dist/client/blocks/mdx.js.map +1 -1
  52. package/dist/client/rich-markdown-editor/DragHandle.d.ts.map +1 -1
  53. package/dist/client/rich-markdown-editor/DragHandle.js +35 -72
  54. package/dist/client/rich-markdown-editor/DragHandle.js.map +1 -1
  55. package/dist/client/rich-markdown-editor/RegistryBlockNode.d.ts.map +1 -1
  56. package/dist/client/rich-markdown-editor/RegistryBlockNode.js +1 -1
  57. package/dist/client/rich-markdown-editor/RegistryBlockNode.js.map +1 -1
  58. package/dist/client/rich-markdown-editor/SharedRichEditor.d.ts +9 -1
  59. package/dist/client/rich-markdown-editor/SharedRichEditor.d.ts.map +1 -1
  60. package/dist/client/rich-markdown-editor/SharedRichEditor.js +3 -1
  61. package/dist/client/rich-markdown-editor/SharedRichEditor.js.map +1 -1
  62. package/dist/client/rich-markdown-editor/extensions.d.ts +13 -1
  63. package/dist/client/rich-markdown-editor/extensions.d.ts.map +1 -1
  64. package/dist/client/rich-markdown-editor/extensions.js +4 -2
  65. package/dist/client/rich-markdown-editor/extensions.js.map +1 -1
  66. package/dist/client/rich-markdown-editor/useCollabReconcile.d.ts.map +1 -1
  67. package/dist/client/rich-markdown-editor/useCollabReconcile.js +11 -1
  68. package/dist/client/rich-markdown-editor/useCollabReconcile.js.map +1 -1
  69. package/dist/server/poll.d.ts.map +1 -1
  70. package/dist/server/poll.js +30 -14
  71. package/dist/server/poll.js.map +1 -1
  72. package/dist/styles/blocks.css +10 -2
  73. package/dist/templates/default/.agents/skills/storing-data/SKILL.md +2 -0
  74. package/dist/templates/workspace-core/.agents/skills/performance/SKILL.md +141 -0
  75. package/dist/templates/workspace-core/.agents/skills/storing-data/SKILL.md +2 -0
  76. package/package.json +1 -1
  77. package/src/templates/default/.agents/skills/storing-data/SKILL.md +2 -0
  78. package/src/templates/workspace-core/.agents/skills/performance/SKILL.md +141 -0
  79. package/src/templates/workspace-core/.agents/skills/storing-data/SKILL.md +2 -0
  80. package/dist/client/blocks/library/decision.config.d.ts +0 -37
  81. package/dist/client/blocks/library/decision.config.d.ts.map +0 -1
  82. package/dist/client/blocks/library/decision.config.js +0 -32
  83. package/dist/client/blocks/library/decision.config.js.map +0 -1
  84. package/dist/client/blocks/library/decision.d.ts +0 -19
  85. package/dist/client/blocks/library/decision.d.ts.map +0 -1
  86. package/dist/client/blocks/library/decision.js +0 -119
  87. package/dist/client/blocks/library/decision.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantChat.d.ts","sourceRoot":"","sources":["../../src/client/AssistantChat.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AssistantChat.d.ts","sourceRoot":"","sources":["../../src/client/AssistantChat.tsx"],"names":[],"mappings":"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"}
@@ -1956,16 +1956,13 @@ function ensureMessageMetadata(repo) {
1956
1956
  // Re-export for backwards compatibility
1957
1957
  import { extractThreadMeta, normalizeThreadRepository, } from "../agent/thread-data-builder.js";
1958
1958
  export { extractThreadMeta };
1959
- function EmptyStateSuggestionSkeleton() {
1960
- return (_jsxs("div", { className: "flex w-full max-w-[280px] flex-col gap-1.5", "aria-hidden": "true", children: [_jsx("div", { className: "h-12 w-full rounded-lg border border-border bg-muted/60 animate-pulse" }), _jsx("div", { className: "h-12 w-full rounded-lg border border-border bg-muted/60 animate-pulse" }), _jsx("div", { className: "h-12 w-full rounded-lg border border-border bg-muted/60 animate-pulse" })] }));
1961
- }
1962
1959
  const AssistantChatInner = forwardRef(function AssistantChatInner({ emptyStateText, suggestions, dynamicSuggestions, emptyStateAddon, showHeader = true, onSwitchToCli, className, apiUrl, tabId, browserTabId, threadId, contextScope, isActiveComposer = true, onMessageCountChange, onSaveThread, onGenerateTitle, composerSlot, composerAreaClassName, composerPlaceholder, composerLayoutVariant = "default", centerComposerWhenEmpty = false, emptyStateDisplay = "default", composerToolbarSlot, composerExtraActionButton, composerDisabled = false, composerDisabledPlaceholder, isNewThread, onSlashCommand, execMode, onExecModeChange, planModeDisabled, planModeDisabledReason, selectedModel, defaultModel, selectedEngine, selectedEffort, availableModels, onModelChange, onEffortChange, onForkChat, onConnectProvider, plusMenuMode = "full", providerStatusChecksEnabled = true, loadHistoryRepository, historyReloadKey, externalStreaming = false, }, ref) {
1963
1960
  const thread = useThread();
1964
1961
  const threadRuntime = useThreadRuntime();
1965
1962
  const composerRuntime = useComposerRuntime();
1966
1963
  const isRuntimeRunning = thread.isRunning;
1967
1964
  const messages = thread.messages;
1968
- const { suggestions: resolvedSuggestions, isLoading: suggestionsLoading } = useAgentDynamicSuggestionsResult({
1965
+ const { suggestions: resolvedSuggestions } = useAgentDynamicSuggestionsResult({
1969
1966
  staticSuggestions: suggestions,
1970
1967
  dynamicSuggestions,
1971
1968
  browserTabId,
@@ -2135,6 +2132,21 @@ const AssistantChatInner = forwardRef(function AssistantChatInner({ emptyStateTe
2135
2132
  // debounced save effect can skip no-op writes (e.g. restore-from-server
2136
2133
  // on mount, or queue state that hasn't actually changed).
2137
2134
  const lastPersistedQueueRef = useRef("[]");
2135
+ // Cheap change-guard for `importThreadData`. The real-time sync layer
2136
+ // refetches `/threads/:id` (or re-runs `loadHistoryRepository`) on poll /
2137
+ // change ticks, on reconnect, and whenever the host's transcript bumps
2138
+ // `historyReloadKey`. On a long thread the JSON.parse +
2139
+ // normalizeThreadRepository + threadRuntime.export()/import round-trip is
2140
+ // CPU-bound and triggers re-render churn even when the content is byte-for-
2141
+ // byte identical to what we last imported. We hash the raw incoming payload
2142
+ // and skip the whole pipeline when it hasn't advanced, returning the
2143
+ // already-imported repo so callers (e.g. the reconnect loop's
2144
+ // repoHasAssistantMessage check) see consistent data. Any real change — a
2145
+ // new message, an arriving tool result, the server replacing an optimistic
2146
+ // copy, or switching threads — produces a different signal and falls
2147
+ // through to a full import.
2148
+ const lastImportedSignatureRef = useRef(null);
2149
+ const lastImportedRepoRef = useRef(null);
2138
2150
  const [showContinue, setShowContinue] = useState(false);
2139
2151
  const [loopLimitInfo, setLoopLimitInfo] = useState(null);
2140
2152
  const [runErrorInfo, setRunErrorInfo] = useState(null);
@@ -2178,7 +2190,38 @@ const AssistantChatInner = forwardRef(function AssistantChatInner({ emptyStateTe
2178
2190
  onGenerateTitleRef.current = onGenerateTitle;
2179
2191
  const titleGeneratedRef = useRef(false);
2180
2192
  const importThreadData = useCallback((threadData, options) => {
2193
+ // Cheap-signal short-circuit: if the raw payload is identical to the
2194
+ // last one we imported, there is nothing new to parse, normalize, or
2195
+ // re-import into the runtime. Reuse the already-imported repo so callers
2196
+ // still get back a stable result without the CPU + re-render cost. We
2197
+ // still honor `markTitleGenerated` because a re-fetch carrying the same
2198
+ // content can legitimately confirm a title is settled.
2199
+ const signature = typeof threadData === "string"
2200
+ ? threadData
2201
+ : (() => {
2202
+ try {
2203
+ return JSON.stringify(threadData);
2204
+ }
2205
+ catch {
2206
+ return null;
2207
+ }
2208
+ })();
2209
+ if (signature !== null &&
2210
+ signature === lastImportedSignatureRef.current) {
2211
+ if (options?.markTitleGenerated) {
2212
+ titleGeneratedRef.current = true;
2213
+ }
2214
+ return lastImportedRepoRef.current;
2215
+ }
2181
2216
  const repo = normalizeThreadRepository(typeof threadData === "string" ? JSON.parse(threadData) : threadData);
2217
+ // Whether this payload settled into the runtime (either imported, or
2218
+ // had no messages to import). Only then is it safe to remember its
2219
+ // signature as the canonical "last imported" — a payload that
2220
+ // `shouldImportServerThreadData` deliberately rejected (e.g. it
2221
+ // regressed message count) must NOT be cached, so an identical re-fetch
2222
+ // re-evaluates against the runtime exactly as before instead of
2223
+ // short-circuiting to the rejected repo.
2224
+ let settled = true;
2182
2225
  if (repo?.messages?.length > 0) {
2183
2226
  let shouldImport = true;
2184
2227
  try {
@@ -2193,11 +2236,18 @@ const AssistantChatInner = forwardRef(function AssistantChatInner({ emptyStateTe
2193
2236
  }
2194
2237
  threadRuntime.import(ensureMessageMetadata(repo));
2195
2238
  }
2239
+ else {
2240
+ settled = false;
2241
+ }
2196
2242
  }
2197
2243
  if (Array.isArray(repo?.queuedMessages)) {
2198
2244
  setQueuedMessages(repo.queuedMessages);
2199
2245
  lastPersistedQueueRef.current = JSON.stringify(repo.queuedMessages);
2200
2246
  }
2247
+ if (settled && signature !== null) {
2248
+ lastImportedSignatureRef.current = signature;
2249
+ lastImportedRepoRef.current = repo;
2250
+ }
2201
2251
  return repo;
2202
2252
  }, [threadRuntime]);
2203
2253
  const refreshThreadFromServer = useCallback(async () => {
@@ -2440,26 +2490,35 @@ const AssistantChatInner = forwardRef(function AssistantChatInner({ emptyStateTe
2440
2490
  (async () => {
2441
2491
  try {
2442
2492
  const res = await fetch(`${apiUrl}/threads/${encodeURIComponent(threadId)}`);
2443
- if (!res.ok)
2444
- return;
2445
- const data = await res.json();
2446
- if (data.threadData) {
2447
- importThreadData(data.threadData, { markTitleGenerated: true });
2448
- }
2449
- // Also skip title generation if thread already has a title
2450
- if (data.title) {
2451
- titleGeneratedRef.current = true;
2493
+ if (res.ok) {
2494
+ const data = await res.json();
2495
+ if (data.threadData) {
2496
+ importThreadData(data.threadData, { markTitleGenerated: true });
2497
+ }
2498
+ // Also skip title generation if thread already has a title
2499
+ if (data.title) {
2500
+ titleGeneratedRef.current = true;
2501
+ }
2452
2502
  }
2453
- // Check if there's an active run for this thread (e.g. after hot
2454
- // reload), and reconnect to it if it is still running.
2455
- await reconnectActiveRunForThread();
2456
2503
  }
2457
2504
  catch {
2458
2505
  // Start fresh
2459
2506
  }
2460
2507
  finally {
2508
+ // Clear the skeleton as soon as the persisted messages are imported.
2509
+ // The active-run reconnect probe below must NOT gate first paint — it
2510
+ // only matters when a run is mid-flight (e.g. after a hot reload), and
2511
+ // it streams on top of the already-rendered messages.
2461
2512
  setIsRestoring(false);
2462
2513
  }
2514
+ // Reconnect to an in-progress run after the skeleton has cleared, so a
2515
+ // background `/runs/active` probe never delays showing the conversation.
2516
+ try {
2517
+ await reconnectActiveRunForThread();
2518
+ }
2519
+ catch {
2520
+ // No active run to reconnect to.
2521
+ }
2463
2522
  })();
2464
2523
  }
2465
2524
  else {
@@ -3207,8 +3266,7 @@ const AssistantChatInner = forwardRef(function AssistantChatInner({ emptyStateTe
3207
3266
  ? "text-xs text-background bg-foreground hover:opacity-90 px-3 py-1.5 rounded-md"
3208
3267
  : "text-xs text-muted-foreground hover:text-foreground px-3 py-1.5 rounded-md border border-border hover:bg-accent", children: "Refresh chat" })] })] })) : missingApiKey && messages.length === 0 ? (_jsx("div", { className: "flex flex-col items-center justify-center h-full px-2", children: _jsx(BuilderSetupCard, { onConnected: handleBuilderConnected, bouncePulse: missingKeyBouncePulse }) })) : isRestoring ? (_jsxs("div", { className: "flex flex-col gap-3 p-4", children: [_jsx("div", { className: "flex justify-end", children: _jsx("div", { className: "h-8 w-32 rounded-lg bg-muted animate-pulse" }) }), _jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx("div", { className: "h-4 w-48 rounded bg-muted animate-pulse" }), _jsx("div", { className: "h-4 w-64 rounded bg-muted animate-pulse" }), _jsx("div", { className: "h-4 w-40 rounded bg-muted animate-pulse" })] })] })) : messages.length === 0 && !isReconnecting ? (_jsxs("div", { className: cn("agent-empty-state", emptyStateDisplay === "hidden"
3209
3268
  ? "sr-only"
3210
- : "flex h-full flex-col items-center justify-center gap-4 px-4 py-16"), children: [_jsx("div", { className: "flex h-10 w-10 items-center justify-center rounded-full bg-muted", children: _jsx(IconMessage, { className: "h-5 w-5 text-muted-foreground" }) }), _jsx("p", { className: "sr-only", children: emptyStateText ?? "How can I help you?" }), emptyStateAddon, suggestionsLoading ? (_jsx(EmptyStateSuggestionSkeleton, {})) : resolvedSuggestions &&
3211
- resolvedSuggestions.length > 0 ? (_jsx("div", { className: "flex flex-col gap-1.5 w-full max-w-[280px]", children: resolvedSuggestions.map((suggestion) => (_jsx("button", { onClick: () => {
3269
+ : "flex h-full flex-col items-center justify-center gap-4 px-4 py-16"), children: [_jsx("div", { className: "flex h-10 w-10 items-center justify-center rounded-full bg-muted", children: _jsx(IconMessage, { className: "h-5 w-5 text-muted-foreground" }) }), _jsx("p", { className: "sr-only", children: emptyStateText ?? "How can I help you?" }), emptyStateAddon, resolvedSuggestions && resolvedSuggestions.length > 0 ? (_jsx("div", { className: "flex flex-col gap-1.5 w-full max-w-[280px]", children: resolvedSuggestions.map((suggestion) => (_jsx("button", { onClick: () => {
3212
3270
  threadRuntime.append({
3213
3271
  role: "user",
3214
3272
  content: [{ type: "text", text: suggestion }],