@agent-native/toolkit 0.198.5 → 0.198.7-nightly-20260930213124

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/app/agentkit/react/components.d.ts +2 -1
  2. package/dist/app/agentkit/react/components.d.ts.map +1 -1
  3. package/dist/app/agentkit/react/components.js +86 -62
  4. package/dist/app/agentkit/react/components.js.map +1 -1
  5. package/dist/app/agentkit/react/styles.css +36 -24
  6. package/dist/app/chat/AgentKitAssistantChat.js +14 -7
  7. package/dist/app/chat/AgentKitAssistantChat.js.map +1 -1
  8. package/dist/app/chat/AgentPanel.d.ts +1 -1
  9. package/dist/app/chat/AgentPanel.d.ts.map +1 -1
  10. package/dist/app/chat/AgentPanel.js +11 -38
  11. package/dist/app/chat/AgentPanel.js.map +1 -1
  12. package/dist/app/chat/AgentSidebar.d.ts.map +1 -1
  13. package/dist/app/chat/AgentSidebar.js +3 -11
  14. package/dist/app/chat/AgentSidebar.js.map +1 -1
  15. package/dist/app/chat/chat/tool-call-display.d.ts +2 -1
  16. package/dist/app/chat/chat/tool-call-display.d.ts.map +1 -1
  17. package/dist/app/chat/chat/tool-call-display.js +83 -55
  18. package/dist/app/chat/chat/tool-call-display.js.map +1 -1
  19. package/dist/app/i18n/catalogs/ar-SA.d.ts.map +1 -1
  20. package/dist/app/i18n/catalogs/ar-SA.js +1 -0
  21. package/dist/app/i18n/catalogs/ar-SA.js.map +1 -1
  22. package/dist/app/i18n/catalogs/de-DE.d.ts.map +1 -1
  23. package/dist/app/i18n/catalogs/de-DE.js +1 -0
  24. package/dist/app/i18n/catalogs/de-DE.js.map +1 -1
  25. package/dist/app/i18n/catalogs/en-US.d.ts +1 -0
  26. package/dist/app/i18n/catalogs/en-US.d.ts.map +1 -1
  27. package/dist/app/i18n/catalogs/en-US.js +1 -0
  28. package/dist/app/i18n/catalogs/en-US.js.map +1 -1
  29. package/dist/app/i18n/catalogs/es-ES.d.ts.map +1 -1
  30. package/dist/app/i18n/catalogs/es-ES.js +1 -0
  31. package/dist/app/i18n/catalogs/es-ES.js.map +1 -1
  32. package/dist/app/i18n/catalogs/fr-FR.d.ts.map +1 -1
  33. package/dist/app/i18n/catalogs/fr-FR.js +1 -0
  34. package/dist/app/i18n/catalogs/fr-FR.js.map +1 -1
  35. package/dist/app/i18n/catalogs/hi-IN.d.ts.map +1 -1
  36. package/dist/app/i18n/catalogs/hi-IN.js +1 -0
  37. package/dist/app/i18n/catalogs/hi-IN.js.map +1 -1
  38. package/dist/app/i18n/catalogs/ja-JP.d.ts.map +1 -1
  39. package/dist/app/i18n/catalogs/ja-JP.js +1 -0
  40. package/dist/app/i18n/catalogs/ja-JP.js.map +1 -1
  41. package/dist/app/i18n/catalogs/ko-KR.d.ts.map +1 -1
  42. package/dist/app/i18n/catalogs/ko-KR.js +1 -0
  43. package/dist/app/i18n/catalogs/ko-KR.js.map +1 -1
  44. package/dist/app/i18n/catalogs/pt-BR.d.ts.map +1 -1
  45. package/dist/app/i18n/catalogs/pt-BR.js +1 -0
  46. package/dist/app/i18n/catalogs/pt-BR.js.map +1 -1
  47. package/dist/app/i18n/catalogs/zh-CN.d.ts.map +1 -1
  48. package/dist/app/i18n/catalogs/zh-CN.js +1 -0
  49. package/dist/app/i18n/catalogs/zh-CN.js.map +1 -1
  50. package/dist/app/i18n/catalogs/zh-TW.d.ts.map +1 -1
  51. package/dist/app/i18n/catalogs/zh-TW.js +1 -0
  52. package/dist/app/i18n/catalogs/zh-TW.js.map +1 -1
  53. package/dist/composer/TiptapComposer.d.ts +1 -1
  54. package/dist/composer/TiptapComposer.d.ts.map +1 -1
  55. package/dist/composer/TiptapComposer.js +26 -23
  56. package/dist/composer/TiptapComposer.js.map +1 -1
  57. package/dist/ui/sonner.js +1 -1
  58. package/dist/ui/sonner.js.map +1 -1
  59. package/package.json +4 -4
  60. package/src/app/agentkit/react/components.tsx +156 -128
  61. package/src/app/agentkit/react/lifecycle.spec.tsx +556 -39
  62. package/src/app/agentkit/react/styles.css +36 -24
  63. package/src/app/chat/AgentKitAssistantChat.spec.tsx +22 -0
  64. package/src/app/chat/AgentKitAssistantChat.tsx +19 -9
  65. package/src/app/chat/AgentPanel.overlay.spec.tsx +28 -4
  66. package/src/app/chat/AgentPanel.tsx +51 -168
  67. package/src/app/chat/AgentSidebar.spec.tsx +19 -19
  68. package/src/app/chat/AgentSidebar.tsx +59 -94
  69. package/src/app/chat/chat/tool-call-display.spec.tsx +371 -15
  70. package/src/app/chat/chat/tool-call-display.tsx +154 -80
  71. package/src/app/i18n/catalogs/ar-SA.ts +1 -0
  72. package/src/app/i18n/catalogs/de-DE.ts +1 -0
  73. package/src/app/i18n/catalogs/en-US.ts +1 -0
  74. package/src/app/i18n/catalogs/es-ES.ts +1 -0
  75. package/src/app/i18n/catalogs/fr-FR.ts +1 -0
  76. package/src/app/i18n/catalogs/hi-IN.ts +1 -0
  77. package/src/app/i18n/catalogs/ja-JP.ts +1 -0
  78. package/src/app/i18n/catalogs/ko-KR.ts +1 -0
  79. package/src/app/i18n/catalogs/pt-BR.ts +1 -0
  80. package/src/app/i18n/catalogs/zh-CN.ts +1 -0
  81. package/src/app/i18n/catalogs/zh-TW.ts +1 -0
  82. package/src/app-shell/sidebar-overflow.spec.tsx +2 -1
  83. package/src/composer/PromptComposer.context.spec.tsx +28 -15
  84. package/src/composer/TiptapComposer.spec.ts +14 -2
  85. package/src/composer/TiptapComposer.tsx +77 -86
  86. package/src/ui/sonner.spec.ts +15 -0
  87. package/src/ui/sonner.tsx +1 -1
@@ -984,6 +984,15 @@ body:has(> [data-agent-native-composer-popover="true"]) > .fixed.inset-0 {
984
984
  opacity: 1;
985
985
  }
986
986
 
987
+ .agentkit-message .agentkit-message-actions[data-streaming="true"],
988
+ .agentkit-message:hover .agentkit-message-actions[data-streaming="true"],
989
+ .agentkit-message:focus-within
990
+ .agentkit-message-actions[data-streaming="true"] {
991
+ opacity: 0;
992
+ visibility: hidden;
993
+ pointer-events: none;
994
+ }
995
+
987
996
  @media (hover: none), (any-pointer: coarse) {
988
997
  .agentkit-message-actions[data-role="user"] {
989
998
  opacity: 1;
@@ -1133,11 +1142,11 @@ body:has(> [data-agent-native-composer-popover="true"]) > .fixed.inset-0 {
1133
1142
  }
1134
1143
 
1135
1144
  .agentkit-activities-summary {
1136
- display: grid;
1145
+ display: flex;
1137
1146
  inline-size: fit-content;
1138
1147
  max-inline-size: 100%;
1139
- justify-items: start;
1140
- gap: 0.125rem;
1148
+ align-items: center;
1149
+ gap: 0.375rem;
1141
1150
  }
1142
1151
 
1143
1152
  .agentkit-activities {
@@ -1263,6 +1272,12 @@ body:has(> [data-agent-native-composer-popover="true"]) > .fixed.inset-0 {
1263
1272
  gap: 0.375rem;
1264
1273
  }
1265
1274
 
1275
+ .agentkit-activities-summary-content {
1276
+ display: grid;
1277
+ min-inline-size: 0;
1278
+ gap: 0.125rem;
1279
+ }
1280
+
1266
1281
  .agentkit-activities-current {
1267
1282
  display: flex;
1268
1283
  align-items: center;
@@ -1280,20 +1295,6 @@ body:has(> [data-agent-native-composer-popover="true"]) > .fixed.inset-0 {
1280
1295
  white-space: nowrap;
1281
1296
  }
1282
1297
 
1283
- .agentkit-activities-current[data-running="true"]
1284
- .agentkit-activities-current-label {
1285
- color: transparent;
1286
- background: linear-gradient(
1287
- 90deg,
1288
- var(--agentkit-text),
1289
- color-mix(in srgb, var(--agentkit-text) 32%, transparent),
1290
- var(--agentkit-text)
1291
- );
1292
- background-size: 200% 100%;
1293
- background-clip: text;
1294
- animation: agentkit-shimmer 1.8s linear infinite;
1295
- }
1296
-
1297
1298
  .agentkit-summary-chevron,
1298
1299
  .agentkit-disclosure-icon {
1299
1300
  transition:
@@ -1301,16 +1302,24 @@ body:has(> [data-agent-native-composer-popover="true"]) > .fixed.inset-0 {
1301
1302
  transform 160ms ease;
1302
1303
  }
1303
1304
 
1304
- .agentkit-activities-summary .agentkit-summary-chevron {
1305
+ .agentkit-activities-summary > .agentkit-summary-chevron {
1305
1306
  opacity: 0;
1306
1307
  }
1307
1308
 
1308
- .agentkit-activities-summary:hover .agentkit-summary-chevron,
1309
- .agentkit-activities-summary:focus-visible .agentkit-summary-chevron,
1310
- .agentkit-activities[open] .agentkit-summary-chevron {
1309
+ .agentkit-activities[data-expandable="true"]
1310
+ .agentkit-activities-summary:hover
1311
+ > .agentkit-summary-chevron,
1312
+ .agentkit-activities[data-expandable="true"]
1313
+ .agentkit-activities-summary:focus-visible
1314
+ > .agentkit-summary-chevron,
1315
+ .agentkit-activities[data-expandable="true"][open] .agentkit-summary-chevron {
1311
1316
  opacity: 1;
1312
1317
  }
1313
1318
 
1319
+ .agentkit-activities[data-expandable="false"] .agentkit-activities-summary {
1320
+ cursor: default;
1321
+ }
1322
+
1314
1323
  .agentkit-activities-static {
1315
1324
  display: grid;
1316
1325
  min-inline-size: 0;
@@ -1346,7 +1355,10 @@ body:has(> [data-agent-native-composer-popover="true"]) > .fixed.inset-0 {
1346
1355
 
1347
1356
  .agentkit-activities-list {
1348
1357
  display: grid;
1358
+ max-block-size: 15.625rem;
1349
1359
  gap: 0.5rem;
1360
+ overflow: auto;
1361
+ overscroll-behavior: contain;
1350
1362
  padding-block-start: 0.25rem;
1351
1363
  }
1352
1364
 
@@ -1384,7 +1396,9 @@ body:has(> [data-agent-native-composer-popover="true"]) > .fixed.inset-0 {
1384
1396
 
1385
1397
  @media (hover: none) {
1386
1398
  .agentkit-message-actions[data-role="user"],
1387
- .agentkit-activities-summary .agentkit-summary-chevron {
1399
+ .agentkit-activities[data-expandable="true"]
1400
+ .agentkit-activities-summary
1401
+ .agentkit-summary-chevron {
1388
1402
  opacity: 1;
1389
1403
  }
1390
1404
  }
@@ -1844,8 +1858,6 @@ button.agentkit-object {
1844
1858
  }
1845
1859
 
1846
1860
  @media (prefers-reduced-motion: reduce) {
1847
- .agentkit-activities-current[data-running="true"]
1848
- .agentkit-activities-current-label,
1849
1861
  .agentkit-activity-item[data-status="running"] .agentkit-activity-label,
1850
1862
  .agentkit-agent[data-status="working"] .agentkit-agent-name,
1851
1863
  .agentkit-reasoning[data-active="true"] .agentkit-reasoning-label {
@@ -2032,6 +2032,11 @@ function AgentKitTranscript({ children, threadId }) {
2032
2032
  },
2033
2033
  });
2034
2034
  const threadMessageIds = new Set(thread.messages.map((message) => message.id));
2035
+ const lastMessage = thread.messages.at(-1);
2036
+ const showThinking = surface.isSubmissionInFlight &&
2037
+ !surface.isRunning &&
2038
+ lastMessage?.role === "user" &&
2039
+ lastMessage.metadata?.hideUserMessage !== true;
2035
2040
  const pendingVoiceMessages = surface.voiceTranscriptMessages.filter((message) => !threadMessageIds.has(message.id));
2036
2041
  const showHomeSuggestions = surface.props.centerComposerWhenEmpty &&
2037
2042
  !surface.hasRenderedMessages &&
@@ -2076,7 +2081,7 @@ function AgentKitTranscript({ children, threadId }) {
2076
2081
  }
2077
2082
  return (_jsxs(_Fragment, { children: [thread.messages.length > 0 || surface.hasRenderedMessages ? (_jsx(AgentKitHistoryBeginningRevert, {})) : null, surface.threadRestore.status === "error" ? (_jsxs("div", { className: "mx-4 mt-3 flex items-center justify-between gap-3 rounded-md border border-border px-3 py-2 text-xs text-muted-foreground", role: "alert", children: [_jsx("span", { children: surface.threadRestore.notFound
2078
2083
  ? t("agentChat.message.threadNotFound")
2079
- : t("agentChat.message.restoreRequestFailed") }), _jsx("button", { type: "button", onClick: surface.retryThreadRestore, className: "shrink-0 rounded px-2 py-1 hover:bg-accent hover:text-foreground", children: t("agentChat.common.retry") })] })) : null, renderThreadSlot(surface.props.threadContentSlot, threadId, surface.props.tabId), children, handoffMessages.map((message) => (_jsx(AgentMessageView, { value: message, threadId: threadId }, message.id))), pendingVoiceMessages.map((message) => (_jsx(AgentMessageView, { value: message, threadId: threadId }, message.id))), surface.isThinkingVisibleInTranscript ? (_jsx("div", { role: "status", "aria-live": "polite", className: "px-3 py-2 text-sm text-muted-foreground", children: t("agentChat.status.thinking") })) : null, guided.questions?.length ? (_jsx("div", { className: "px-3 pb-3", children: _jsx(GuidedQuestionFlow, { questions: guided.questions, onSubmit: guided.handleSubmit, onSkip: guided.handleSkip, isSubmitting: guided.isSubmitting, isSubmissionBlocked: !surface.canChat, providerStatus: surface.providerStatus, onRetryProviderStatus: surface.retryProviderStatus, ...(guided.title ? { title: guided.title } : {}), ...(guided.description ? { description: guided.description } : {}), ...(guided.skipLabel ? { skipLabel: guided.skipLabel } : {}), ...(guided.submitLabel ? { submitLabel: guided.submitLabel } : {}), className: "h-auto items-stretch justify-stretch bg-transparent" }) })) : null, suggestionBar, renderThreadSlot(surface.props.threadFooterSlot, threadId, surface.props.tabId)] }));
2084
+ : t("agentChat.message.restoreRequestFailed") }), _jsx("button", { type: "button", onClick: surface.retryThreadRestore, className: "shrink-0 rounded px-2 py-1 hover:bg-accent hover:text-foreground", children: t("agentChat.common.retry") })] })) : null, renderThreadSlot(surface.props.threadContentSlot, threadId, surface.props.tabId), children, handoffMessages.map((message) => (_jsx(AgentMessageView, { value: message, threadId: threadId }, message.id))), pendingVoiceMessages.map((message) => (_jsx(AgentMessageView, { value: message, threadId: threadId }, message.id))), showThinking ? (_jsx("div", { className: "agent-thinking-indicator", role: "status", "aria-live": "polite", children: _jsx("span", { className: "agent-thinking-indicator__text", children: t("agentChat.status.thinking") }) })) : null, guided.questions?.length ? (_jsx("div", { className: "px-3 pb-3", children: _jsx(GuidedQuestionFlow, { questions: guided.questions, onSubmit: guided.handleSubmit, onSkip: guided.handleSkip, isSubmitting: guided.isSubmitting, isSubmissionBlocked: !surface.canChat, providerStatus: surface.providerStatus, onRetryProviderStatus: surface.retryProviderStatus, ...(guided.title ? { title: guided.title } : {}), ...(guided.description ? { description: guided.description } : {}), ...(guided.skipLabel ? { skipLabel: guided.skipLabel } : {}), ...(guided.submitLabel ? { submitLabel: guided.submitLabel } : {}), className: "h-auto items-stretch justify-stretch bg-transparent" }) })) : null, suggestionBar, renderThreadSlot(surface.props.threadFooterSlot, threadId, surface.props.tabId)] }));
2080
2085
  }
2081
2086
  function renderThreadSlot(slot, threadId, tabId) {
2082
2087
  return typeof slot === "function"
@@ -2414,12 +2419,14 @@ function AgentKitTool({ value, active }) {
2414
2419
  const surface = useAgentKitSurface();
2415
2420
  const metadata = value.metadata ?? {};
2416
2421
  const input = asRecord(value.input) ?? {};
2417
- const output = typeof value.output === "string"
2418
- ? value.output
2419
- : value.output === undefined
2420
- ? undefined
2421
- : JSON.stringify(value.output);
2422
- return (_jsx(ChatRunningContext.Provider, { value: active === true || value.status === "running", children: _jsx(SuppressInlineOpenAppContext.Provider, { value: surface.props.suppressInlineOpenApp === true, children: _jsx(ToolCallDisplay, { toolName: value.name, toolCallId: value.id, args: input, argsText: JSON.stringify(input), result: output, isRunning: value.status === "running", outcome: value.status === "failed" ? "unknown" : undefined, structuredMeta: metadata, mcpApp: asRecord(metadata.mcpApp), chatUI: asRecord(metadata.chatUI), activity: metadata.activity === true, isActiveTail: active === true }) }) }));
2422
+ const output = value.status === "failed" && value.error?.message
2423
+ ? value.error.message
2424
+ : typeof value.output === "string"
2425
+ ? value.output
2426
+ : value.output === undefined
2427
+ ? undefined
2428
+ : JSON.stringify(value.output);
2429
+ return (_jsx(ChatRunningContext.Provider, { value: active === true || value.status === "running", children: _jsx(SuppressInlineOpenAppContext.Provider, { value: surface.props.suppressInlineOpenApp === true, children: _jsx(ToolCallDisplay, { toolName: value.name, toolCallId: value.id, args: input, argsText: JSON.stringify(input), result: output, isError: value.status === "failed", isRunning: value.status === "running", structuredMeta: metadata, mcpApp: asRecord(metadata.mcpApp), chatUI: asRecord(metadata.chatUI), activity: metadata.activity === true, isActiveTail: active === true }) }) }));
2423
2430
  }
2424
2431
  function AgentKitApproval({ value, runId, }) {
2425
2432
  const surface = useAgentKitSurface();