@agent-native/core 0.84.34 → 0.84.36

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 (230) hide show
  1. package/README.md +15 -51
  2. package/corpus/README.md +1 -1
  3. package/corpus/core/CHANGELOG.md +20 -0
  4. package/corpus/core/docs/content/actions.mdx +17 -24
  5. package/corpus/core/docs/content/agent-surfaces.mdx +59 -56
  6. package/corpus/core/docs/content/cloneable-saas.mdx +3 -3
  7. package/corpus/core/docs/content/faq.mdx +4 -4
  8. package/corpus/core/docs/content/getting-started.mdx +246 -204
  9. package/corpus/core/docs/content/key-concepts.mdx +9 -9
  10. package/corpus/core/docs/content/locales/ar-SA/cloneable-saas.mdx +3 -3
  11. package/corpus/core/docs/content/locales/ar-SA/faq.mdx +4 -4
  12. package/corpus/core/docs/content/locales/ar-SA/getting-started.mdx +148 -214
  13. package/corpus/core/docs/content/locales/ar-SA/pure-agent-apps.mdx +4 -9
  14. package/corpus/core/docs/content/locales/ar-SA/template-chat.mdx +2 -2
  15. package/corpus/core/docs/content/locales/ar-SA/using-your-agent.mdx +2 -2
  16. package/corpus/core/docs/content/locales/de-DE/cloneable-saas.mdx +3 -3
  17. package/corpus/core/docs/content/locales/de-DE/faq.mdx +4 -4
  18. package/corpus/core/docs/content/locales/de-DE/getting-started.mdx +145 -211
  19. package/corpus/core/docs/content/locales/de-DE/pure-agent-apps.mdx +4 -9
  20. package/corpus/core/docs/content/locales/de-DE/template-chat.mdx +2 -2
  21. package/corpus/core/docs/content/locales/de-DE/using-your-agent.mdx +2 -2
  22. package/corpus/core/docs/content/locales/es-ES/cloneable-saas.mdx +3 -3
  23. package/corpus/core/docs/content/locales/es-ES/faq.mdx +4 -4
  24. package/corpus/core/docs/content/locales/es-ES/getting-started.mdx +148 -214
  25. package/corpus/core/docs/content/locales/es-ES/pure-agent-apps.mdx +4 -9
  26. package/corpus/core/docs/content/locales/es-ES/template-chat.mdx +2 -2
  27. package/corpus/core/docs/content/locales/es-ES/using-your-agent.mdx +2 -2
  28. package/corpus/core/docs/content/locales/fr-FR/cloneable-saas.mdx +2 -2
  29. package/corpus/core/docs/content/locales/fr-FR/faq.mdx +4 -4
  30. package/corpus/core/docs/content/locales/fr-FR/getting-started.mdx +146 -212
  31. package/corpus/core/docs/content/locales/fr-FR/pure-agent-apps.mdx +4 -9
  32. package/corpus/core/docs/content/locales/fr-FR/template-chat.mdx +2 -2
  33. package/corpus/core/docs/content/locales/fr-FR/using-your-agent.mdx +2 -2
  34. package/corpus/core/docs/content/locales/hi-IN/cloneable-saas.mdx +3 -3
  35. package/corpus/core/docs/content/locales/hi-IN/faq.mdx +4 -4
  36. package/corpus/core/docs/content/locales/hi-IN/getting-started.mdx +149 -215
  37. package/corpus/core/docs/content/locales/hi-IN/pure-agent-apps.mdx +8 -13
  38. package/corpus/core/docs/content/locales/hi-IN/template-chat.mdx +2 -2
  39. package/corpus/core/docs/content/locales/hi-IN/using-your-agent.mdx +2 -2
  40. package/corpus/core/docs/content/locales/ja-JP/cloneable-saas.mdx +2 -2
  41. package/corpus/core/docs/content/locales/ja-JP/faq.mdx +4 -4
  42. package/corpus/core/docs/content/locales/ja-JP/getting-started.mdx +144 -210
  43. package/corpus/core/docs/content/locales/ja-JP/pure-agent-apps.mdx +8 -13
  44. package/corpus/core/docs/content/locales/ja-JP/template-chat.mdx +2 -2
  45. package/corpus/core/docs/content/locales/ja-JP/using-your-agent.mdx +2 -2
  46. package/corpus/core/docs/content/locales/ko-KR/cloneable-saas.mdx +3 -3
  47. package/corpus/core/docs/content/locales/ko-KR/faq.mdx +4 -4
  48. package/corpus/core/docs/content/locales/ko-KR/getting-started.mdx +146 -212
  49. package/corpus/core/docs/content/locales/ko-KR/pure-agent-apps.mdx +8 -13
  50. package/corpus/core/docs/content/locales/ko-KR/template-chat.mdx +2 -2
  51. package/corpus/core/docs/content/locales/ko-KR/using-your-agent.mdx +2 -2
  52. package/corpus/core/docs/content/locales/pt-BR/cloneable-saas.mdx +3 -3
  53. package/corpus/core/docs/content/locales/pt-BR/faq.mdx +4 -4
  54. package/corpus/core/docs/content/locales/pt-BR/getting-started.mdx +145 -211
  55. package/corpus/core/docs/content/locales/pt-BR/pure-agent-apps.mdx +4 -9
  56. package/corpus/core/docs/content/locales/pt-BR/template-chat.mdx +2 -2
  57. package/corpus/core/docs/content/locales/pt-BR/using-your-agent.mdx +2 -2
  58. package/corpus/core/docs/content/locales/zh-CN/cloneable-saas.mdx +3 -3
  59. package/corpus/core/docs/content/locales/zh-CN/faq.mdx +4 -4
  60. package/corpus/core/docs/content/locales/zh-CN/getting-started.mdx +158 -209
  61. package/corpus/core/docs/content/locales/zh-CN/pure-agent-apps.mdx +4 -9
  62. package/corpus/core/docs/content/locales/zh-CN/template-chat.mdx +2 -2
  63. package/corpus/core/docs/content/locales/zh-CN/using-your-agent.mdx +2 -2
  64. package/corpus/core/docs/content/locales/zh-TW/cloneable-saas.mdx +3 -3
  65. package/corpus/core/docs/content/locales/zh-TW/faq.mdx +4 -4
  66. package/corpus/core/docs/content/locales/zh-TW/getting-started.mdx +158 -212
  67. package/corpus/core/docs/content/locales/zh-TW/pure-agent-apps.mdx +4 -9
  68. package/corpus/core/docs/content/locales/zh-TW/template-chat.mdx +2 -2
  69. package/corpus/core/docs/content/locales/zh-TW/using-your-agent.mdx +2 -2
  70. package/corpus/core/docs/content/native-chat-ui.mdx +17 -32
  71. package/corpus/core/docs/content/pure-agent-apps.mdx +46 -26
  72. package/corpus/core/docs/content/template-chat.mdx +8 -8
  73. package/corpus/core/docs/content/using-your-agent.mdx +2 -2
  74. package/corpus/core/docs/content/what-is-agent-native.mdx +6 -6
  75. package/corpus/core/package.json +1 -1
  76. package/corpus/core/src/a2a/response-text.ts +10 -1
  77. package/corpus/core/src/agent/production-agent.ts +23 -20
  78. package/corpus/core/src/agent/run-manager.ts +46 -1
  79. package/corpus/core/src/agent/thread-data-builder.ts +15 -2
  80. package/corpus/core/src/cli/skills.ts +7 -9
  81. package/corpus/core/src/client/MultiTabAssistantChat.tsx +2 -0
  82. package/corpus/core/src/client/RunStuckBanner.tsx +172 -18
  83. package/corpus/core/src/client/blocks/library/wireframe-kit.tsx +57 -9
  84. package/corpus/core/src/client/blocks/library/wireframe.tsx +3 -18
  85. package/corpus/core/src/client/chat/widgets/builtin-tool-renderers.tsx +28 -32
  86. package/corpus/core/src/client/code-agent-chat-adapter.ts +8 -1
  87. package/corpus/core/src/client/sse-event-processor.ts +21 -3
  88. package/corpus/core/src/code-agents/transcript-normalizer.ts +31 -0
  89. package/corpus/core/src/db/schema.ts +5 -0
  90. package/corpus/core/src/server/agent-chat-plugin.ts +8 -2
  91. package/corpus/core/src/server/agent-teams.ts +24 -2
  92. package/corpus/core/src/styles/blocks.css +27 -6
  93. package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +1 -4
  94. package/corpus/templates/analytics/changelog/2026-07-01-smoother-chat-streaming.md +6 -0
  95. package/corpus/templates/content/actions/list-trashed-content-databases.ts +1 -1
  96. package/corpus/templates/plan/.agents/skills/visual-plan/references/wireframe.md +7 -9
  97. package/corpus/templates/plan/.agents/skills/visual-recap/references/wireframe.md +7 -9
  98. package/dist/a2a/response-text.d.ts +1 -0
  99. package/dist/a2a/response-text.d.ts.map +1 -1
  100. package/dist/a2a/response-text.js +8 -2
  101. package/dist/a2a/response-text.js.map +1 -1
  102. package/dist/agent/production-agent.d.ts.map +1 -1
  103. package/dist/agent/production-agent.js +31 -27
  104. package/dist/agent/production-agent.js.map +1 -1
  105. package/dist/agent/run-manager.d.ts +12 -0
  106. package/dist/agent/run-manager.d.ts.map +1 -1
  107. package/dist/agent/run-manager.js +32 -1
  108. package/dist/agent/run-manager.js.map +1 -1
  109. package/dist/agent/thread-data-builder.d.ts.map +1 -1
  110. package/dist/agent/thread-data-builder.js +15 -2
  111. package/dist/agent/thread-data-builder.js.map +1 -1
  112. package/dist/cli/skills.d.ts +1 -1
  113. package/dist/cli/skills.d.ts.map +1 -1
  114. package/dist/cli/skills.js +7 -9
  115. package/dist/cli/skills.js.map +1 -1
  116. package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
  117. package/dist/client/MultiTabAssistantChat.js +1 -1
  118. package/dist/client/MultiTabAssistantChat.js.map +1 -1
  119. package/dist/client/RunStuckBanner.d.ts +13 -1
  120. package/dist/client/RunStuckBanner.d.ts.map +1 -1
  121. package/dist/client/RunStuckBanner.js +123 -16
  122. package/dist/client/RunStuckBanner.js.map +1 -1
  123. package/dist/client/blocks/library/wireframe-kit.d.ts +6 -6
  124. package/dist/client/blocks/library/wireframe-kit.d.ts.map +1 -1
  125. package/dist/client/blocks/library/wireframe-kit.js +52 -5
  126. package/dist/client/blocks/library/wireframe-kit.js.map +1 -1
  127. package/dist/client/blocks/library/wireframe.d.ts.map +1 -1
  128. package/dist/client/blocks/library/wireframe.js +1 -11
  129. package/dist/client/blocks/library/wireframe.js.map +1 -1
  130. package/dist/client/chat/widgets/builtin-tool-renderers.d.ts.map +1 -1
  131. package/dist/client/chat/widgets/builtin-tool-renderers.js +27 -31
  132. package/dist/client/chat/widgets/builtin-tool-renderers.js.map +1 -1
  133. package/dist/client/code-agent-chat-adapter.d.ts.map +1 -1
  134. package/dist/client/code-agent-chat-adapter.js +5 -1
  135. package/dist/client/code-agent-chat-adapter.js.map +1 -1
  136. package/dist/client/sse-event-processor.d.ts.map +1 -1
  137. package/dist/client/sse-event-processor.js +21 -3
  138. package/dist/client/sse-event-processor.js.map +1 -1
  139. package/dist/code-agents/transcript-normalizer.d.ts.map +1 -1
  140. package/dist/code-agents/transcript-normalizer.js +24 -0
  141. package/dist/code-agents/transcript-normalizer.js.map +1 -1
  142. package/dist/collab/awareness.d.ts +2 -2
  143. package/dist/collab/awareness.d.ts.map +1 -1
  144. package/dist/collab/routes.d.ts +2 -2
  145. package/dist/db/schema.d.ts +2 -1
  146. package/dist/db/schema.d.ts.map +1 -1
  147. package/dist/db/schema.js +3 -2
  148. package/dist/db/schema.js.map +1 -1
  149. package/dist/notifications/routes.d.ts +3 -3
  150. package/dist/resources/handlers.d.ts +3 -3
  151. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  152. package/dist/server/agent-chat-plugin.js +2 -3
  153. package/dist/server/agent-chat-plugin.js.map +1 -1
  154. package/dist/server/agent-teams.d.ts.map +1 -1
  155. package/dist/server/agent-teams.js +17 -2
  156. package/dist/server/agent-teams.js.map +1 -1
  157. package/dist/server/transcribe-voice.d.ts +1 -1
  158. package/dist/styles/blocks.css +27 -6
  159. package/docs/content/actions.mdx +17 -24
  160. package/docs/content/agent-surfaces.mdx +59 -56
  161. package/docs/content/cloneable-saas.mdx +3 -3
  162. package/docs/content/faq.mdx +4 -4
  163. package/docs/content/getting-started.mdx +246 -204
  164. package/docs/content/key-concepts.mdx +9 -9
  165. package/docs/content/locales/ar-SA/cloneable-saas.mdx +3 -3
  166. package/docs/content/locales/ar-SA/faq.mdx +4 -4
  167. package/docs/content/locales/ar-SA/getting-started.mdx +148 -214
  168. package/docs/content/locales/ar-SA/pure-agent-apps.mdx +4 -9
  169. package/docs/content/locales/ar-SA/template-chat.mdx +2 -2
  170. package/docs/content/locales/ar-SA/using-your-agent.mdx +2 -2
  171. package/docs/content/locales/de-DE/cloneable-saas.mdx +3 -3
  172. package/docs/content/locales/de-DE/faq.mdx +4 -4
  173. package/docs/content/locales/de-DE/getting-started.mdx +145 -211
  174. package/docs/content/locales/de-DE/pure-agent-apps.mdx +4 -9
  175. package/docs/content/locales/de-DE/template-chat.mdx +2 -2
  176. package/docs/content/locales/de-DE/using-your-agent.mdx +2 -2
  177. package/docs/content/locales/es-ES/cloneable-saas.mdx +3 -3
  178. package/docs/content/locales/es-ES/faq.mdx +4 -4
  179. package/docs/content/locales/es-ES/getting-started.mdx +148 -214
  180. package/docs/content/locales/es-ES/pure-agent-apps.mdx +4 -9
  181. package/docs/content/locales/es-ES/template-chat.mdx +2 -2
  182. package/docs/content/locales/es-ES/using-your-agent.mdx +2 -2
  183. package/docs/content/locales/fr-FR/cloneable-saas.mdx +2 -2
  184. package/docs/content/locales/fr-FR/faq.mdx +4 -4
  185. package/docs/content/locales/fr-FR/getting-started.mdx +146 -212
  186. package/docs/content/locales/fr-FR/pure-agent-apps.mdx +4 -9
  187. package/docs/content/locales/fr-FR/template-chat.mdx +2 -2
  188. package/docs/content/locales/fr-FR/using-your-agent.mdx +2 -2
  189. package/docs/content/locales/hi-IN/cloneable-saas.mdx +3 -3
  190. package/docs/content/locales/hi-IN/faq.mdx +4 -4
  191. package/docs/content/locales/hi-IN/getting-started.mdx +149 -215
  192. package/docs/content/locales/hi-IN/pure-agent-apps.mdx +8 -13
  193. package/docs/content/locales/hi-IN/template-chat.mdx +2 -2
  194. package/docs/content/locales/hi-IN/using-your-agent.mdx +2 -2
  195. package/docs/content/locales/ja-JP/cloneable-saas.mdx +2 -2
  196. package/docs/content/locales/ja-JP/faq.mdx +4 -4
  197. package/docs/content/locales/ja-JP/getting-started.mdx +144 -210
  198. package/docs/content/locales/ja-JP/pure-agent-apps.mdx +8 -13
  199. package/docs/content/locales/ja-JP/template-chat.mdx +2 -2
  200. package/docs/content/locales/ja-JP/using-your-agent.mdx +2 -2
  201. package/docs/content/locales/ko-KR/cloneable-saas.mdx +3 -3
  202. package/docs/content/locales/ko-KR/faq.mdx +4 -4
  203. package/docs/content/locales/ko-KR/getting-started.mdx +146 -212
  204. package/docs/content/locales/ko-KR/pure-agent-apps.mdx +8 -13
  205. package/docs/content/locales/ko-KR/template-chat.mdx +2 -2
  206. package/docs/content/locales/ko-KR/using-your-agent.mdx +2 -2
  207. package/docs/content/locales/pt-BR/cloneable-saas.mdx +3 -3
  208. package/docs/content/locales/pt-BR/faq.mdx +4 -4
  209. package/docs/content/locales/pt-BR/getting-started.mdx +145 -211
  210. package/docs/content/locales/pt-BR/pure-agent-apps.mdx +4 -9
  211. package/docs/content/locales/pt-BR/template-chat.mdx +2 -2
  212. package/docs/content/locales/pt-BR/using-your-agent.mdx +2 -2
  213. package/docs/content/locales/zh-CN/cloneable-saas.mdx +3 -3
  214. package/docs/content/locales/zh-CN/faq.mdx +4 -4
  215. package/docs/content/locales/zh-CN/getting-started.mdx +158 -209
  216. package/docs/content/locales/zh-CN/pure-agent-apps.mdx +4 -9
  217. package/docs/content/locales/zh-CN/template-chat.mdx +2 -2
  218. package/docs/content/locales/zh-CN/using-your-agent.mdx +2 -2
  219. package/docs/content/locales/zh-TW/cloneable-saas.mdx +3 -3
  220. package/docs/content/locales/zh-TW/faq.mdx +4 -4
  221. package/docs/content/locales/zh-TW/getting-started.mdx +158 -212
  222. package/docs/content/locales/zh-TW/pure-agent-apps.mdx +4 -9
  223. package/docs/content/locales/zh-TW/template-chat.mdx +2 -2
  224. package/docs/content/locales/zh-TW/using-your-agent.mdx +2 -2
  225. package/docs/content/native-chat-ui.mdx +17 -32
  226. package/docs/content/pure-agent-apps.mdx +46 -26
  227. package/docs/content/template-chat.mdx +8 -8
  228. package/docs/content/using-your-agent.mdx +2 -2
  229. package/docs/content/what-is-agent-native.mdx +6 -6
  230. package/package.json +1 -1
@@ -17,6 +17,7 @@
17
17
 
18
18
  import { AsyncLocalStorage } from "node:async_hooks";
19
19
 
20
+ import { applyAgentTextEventToBuffer } from "../a2a/response-text.js";
20
21
  import type { AgentEngine, EngineMessage } from "../agent/engine/types.js";
21
22
  import type {
22
23
  ActionEntry,
@@ -1158,7 +1159,11 @@ function summarizeAgentChatEvent(event: RunEvent): {
1158
1159
  metadata: { reason: payload.reason },
1159
1160
  };
1160
1161
  case "clear":
1161
- return null;
1162
+ return {
1163
+ kind: "status",
1164
+ message: "",
1165
+ metadata: { agentChatEventType: "clear" },
1166
+ };
1162
1167
  case "agent_call":
1163
1168
  return {
1164
1169
  kind: "status",
@@ -1759,7 +1764,10 @@ export async function processAgentTeamRun(
1759
1764
  const wrappedSend = (event: AgentChatEvent) => {
1760
1765
  send(event);
1761
1766
  if (event.type === "text") {
1762
- accumulatedText += event.text;
1767
+ accumulatedText = applyAgentTextEventToBuffer(
1768
+ accumulatedText,
1769
+ event,
1770
+ );
1763
1771
  task.preview = accumulatedText.slice(-800);
1764
1772
  const now = Date.now();
1765
1773
  if (now - lastProgressSent >= PROGRESS_INTERVAL_MS) {
@@ -1772,6 +1780,20 @@ export async function processAgentTeamRun(
1772
1780
  });
1773
1781
  if (ownerEmail) void updateTaskProgressRun(task, ownerEmail);
1774
1782
  }
1783
+ } else if (event.type === "clear") {
1784
+ accumulatedText = applyAgentTextEventToBuffer(
1785
+ accumulatedText,
1786
+ event,
1787
+ );
1788
+ task.preview = "";
1789
+ lastProgressSent = Date.now();
1790
+ saveTask(task).catch((err) => {
1791
+ console.warn(
1792
+ `[agent-teams] clear save failed for task ${task.taskId}:`,
1793
+ describeDbError(err),
1794
+ );
1795
+ });
1796
+ if (ownerEmail) void updateTaskProgressRun(task, ownerEmail);
1775
1797
  } else if (event.type === "tool_start") {
1776
1798
  task.currentStep = `Running ${event.tool}...`;
1777
1799
  } else if (event.type === "tool_done") {
@@ -995,7 +995,7 @@
995
995
  min-height: 100%;
996
996
  overflow: hidden;
997
997
  box-sizing: border-box;
998
- background: var(--wf-paper);
998
+ background: transparent;
999
999
  color: var(--wf-ink);
1000
1000
  font-family: var(--wf-font);
1001
1001
  font-size: 14px;
@@ -1177,6 +1177,16 @@
1177
1177
  border-radius: var(--wf-radius);
1178
1178
  padding: 12px;
1179
1179
  }
1180
+ .plan-html-frame:not([data-render-mode="design"]) .wf-row {
1181
+ display: flex;
1182
+ align-items: center;
1183
+ justify-content: space-between;
1184
+ gap: 10px;
1185
+ }
1186
+ .plan-html-frame:not([data-render-mode="design"]) .wf-row > :last-child {
1187
+ margin-inline-start: auto;
1188
+ text-align: end;
1189
+ }
1180
1190
  .plan-html-frame[data-style="sketchy"]:not([data-render-mode="design"])
1181
1191
  :is(.wf-card, .wf-box) {
1182
1192
  border-color: color-mix(in srgb, var(--wf-line) 72%, transparent);
@@ -1197,9 +1207,9 @@
1197
1207
  background: var(--wf-accent-soft);
1198
1208
  }
1199
1209
 
1200
- /* Once rough has drawn, hide crisp borders only on elements rough.js actually
1201
- redraws. Broad helper containers keep theme-safe filled backgrounds and soft
1202
- borders so nested cards do not become a pile of overlapping sketch strokes. */
1210
+ /* Once rough has drawn, hide crisp borders on the standard wireframe primitives
1211
+ that rough.js redraws. Fills and text stay in CSS; only outlines switch to
1212
+ the hand-drawn overlay. */
1203
1213
  .plan-html-frame[data-rough-ready]
1204
1214
  :is(
1205
1215
  button,
@@ -1207,8 +1217,19 @@
1207
1217
  textarea,
1208
1218
  select,
1209
1219
  hr,
1210
- [data-rough]:not([data-rough="none"])
1211
- ) {
1220
+ .wf-btn,
1221
+ .wf-card,
1222
+ .wf-box,
1223
+ .wf-pill,
1224
+ .wf-chip,
1225
+ .wf-icon-fallback,
1226
+ [style*="border:"],
1227
+ [style*="border-top:"],
1228
+ [style*="border-right:"],
1229
+ [style*="border-bottom:"],
1230
+ [style*="border-left:"],
1231
+ [data-rough]
1232
+ ):not([data-rough="none"]) {
1212
1233
  border-color: transparent !important;
1213
1234
  }
1214
1235
 
@@ -1348,9 +1348,6 @@ function AnalyticsChatsSection() {
1348
1348
 
1349
1349
  return (
1350
1350
  <div className="ms-4 min-w-0 space-y-0.5">
1351
- <p className="min-w-0 truncate px-3 pb-0.5 pt-1 text-[11px] font-medium text-muted-foreground/70">
1352
- {t("chat.recentChats")}
1353
- </p>
1354
1351
  {visibleThreads.map((thread) => {
1355
1352
  const title = threadTitle(thread, t("chat.untitledChat"));
1356
1353
  const isActive =
@@ -1395,7 +1392,7 @@ function AnalyticsChatsSection() {
1395
1392
  <button
1396
1393
  type="button"
1397
1394
  onClick={() => openThread(thread.id)}
1398
- className="min-w-0 flex-1 px-2 py-1.5 pe-12 text-start text-xs outline-none transition-[padding] focus-visible:ring-2 focus-visible:ring-ring md:pe-2 md:group-hover/item:pe-12 md:group-focus-within/item:pe-12"
1395
+ className="min-w-0 flex-1 px-2 py-1.5 pe-12 text-start text-xs outline-none focus-visible:ring-2 focus-visible:ring-ring"
1399
1396
  >
1400
1397
  <span className="block truncate">{title}</span>
1401
1398
  </button>
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: improved
3
+ date: 2026-07-01
4
+ ---
5
+
6
+ Analytics chat responses stream more smoothly during long background runs and guarded final answers.
@@ -1,7 +1,7 @@
1
1
  import { defineAction } from "@agent-native/core";
2
+ import { alias } from "@agent-native/core/db/schema";
2
3
  import { accessFilter } from "@agent-native/core/sharing";
3
4
  import { and, desc, eq, isNotNull, isNull, ne, or } from "drizzle-orm";
4
- import { alias } from "drizzle-orm/sqlite-core";
5
5
  import { z } from "zod";
6
6
 
7
7
  import { getDb, schema } from "../server/db/index.js";
@@ -75,15 +75,13 @@ background, text, border, ring, fill, stroke, gradient, placeholder, decoration,
75
75
  or shadow color, rewrite it to renderer tokens or remove it. Layout-only classes
76
76
  are still discouraged; inline flex/grid styles are safer and easier to review.
77
77
 
78
- **Keep Rough.js sparse.** `.wf-card` and `.wf-box` already render with
79
- theme-safe filled backgrounds (`--wf-card`) and soft tokenized borders that work
80
- in both light and dark mode. Do not add `data-rough` to broad root wrappers,
81
- dialog shells, page panels, grid cells, or nested containers unless that single
82
- container is the visual point. The renderer sketches the outer frame and
83
- standard controls by default; use `data-rough` only for a deliberate one-off
84
- shape. If a mockup starts looking like stacked/overlapping sketch lines, remove
85
- rough targets from parent containers and let backgrounds plus spacing separate
86
- the surfaces.
78
+ **Keep Rough.js sparse.** The renderer sketches the outer frame, standard
79
+ `.wf-*` primitives, controls, and inline border dividers by default. Do not add
80
+ `data-rough` to broad root wrappers, dialog shells, page panels, grid cells, or
81
+ nested containers unless that single container is the visual point. Use
82
+ `data-rough` only for a deliberate one-off shape. If a mockup starts looking
83
+ like stacked/overlapping sketch lines, remove rough targets from parent
84
+ containers and let backgrounds plus spacing separate the surfaces.
87
85
 
88
86
  **Use literal CSS lengths for spacing.** The `--wf-*` tokens are for colors and
89
87
  renderer-owned visual styling, not layout spacing. Do not use guessed spacing
@@ -75,15 +75,13 @@ background, text, border, ring, fill, stroke, gradient, placeholder, decoration,
75
75
  or shadow color, rewrite it to renderer tokens or remove it. Layout-only classes
76
76
  are still discouraged; inline flex/grid styles are safer and easier to review.
77
77
 
78
- **Keep Rough.js sparse.** `.wf-card` and `.wf-box` already render with
79
- theme-safe filled backgrounds (`--wf-card`) and soft tokenized borders that work
80
- in both light and dark mode. Do not add `data-rough` to broad root wrappers,
81
- dialog shells, page panels, grid cells, or nested containers unless that single
82
- container is the visual point. The renderer sketches the outer frame and
83
- standard controls by default; use `data-rough` only for a deliberate one-off
84
- shape. If a mockup starts looking like stacked/overlapping sketch lines, remove
85
- rough targets from parent containers and let backgrounds plus spacing separate
86
- the surfaces.
78
+ **Keep Rough.js sparse.** The renderer sketches the outer frame, standard
79
+ `.wf-*` primitives, controls, and inline border dividers by default. Do not add
80
+ `data-rough` to broad root wrappers, dialog shells, page panels, grid cells, or
81
+ nested containers unless that single container is the visual point. Use
82
+ `data-rough` only for a deliberate one-off shape. If a mockup starts looking
83
+ like stacked/overlapping sketch lines, remove rough targets from parent
84
+ containers and let backgrounds plus spacing separate the surfaces.
87
85
 
88
86
  **Use literal CSS lengths for spacing.** The `--wf-*` tokens are for colors and
89
87
  renderer-owned visual styling, not layout spacing. Do not use guessed spacing
@@ -2,5 +2,6 @@ import type { AgentChatEvent } from "../agent/types.js";
2
2
  export interface CollectFinalResponseTextOptions {
3
3
  fallbackToPreToolText?: boolean;
4
4
  }
5
+ export declare function applyAgentTextEventToBuffer(currentText: string, event: AgentChatEvent): string;
5
6
  export declare function collectFinalResponseTextFromAgentEvents(events: readonly AgentChatEvent[], options?: CollectFinalResponseTextOptions): string;
6
7
  //# sourceMappingURL=response-text.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"response-text.d.ts","sourceRoot":"","sources":["../../src/a2a/response-text.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,MAAM,WAAW,+BAA+B;IAC9C,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,wBAAgB,uCAAuC,CACrD,MAAM,EAAE,SAAS,cAAc,EAAE,EACjC,OAAO,GAAE,+BAAoC,GAC5C,MAAM,CAsBR"}
1
+ {"version":3,"file":"response-text.d.ts","sourceRoot":"","sources":["../../src/a2a/response-text.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,MAAM,WAAW,+BAA+B;IAC9C,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,cAAc,GACpB,MAAM,CAIR;AAED,wBAAgB,uCAAuC,CACrD,MAAM,EAAE,SAAS,cAAc,EAAE,EACjC,OAAO,GAAE,+BAAoC,GAC5C,MAAM,CAsBR"}
@@ -1,3 +1,10 @@
1
+ export function applyAgentTextEventToBuffer(currentText, event) {
2
+ if (event.type === "clear")
3
+ return "";
4
+ if (event.type === "text")
5
+ return currentText + event.text;
6
+ return currentText;
7
+ }
1
8
  export function collectFinalResponseTextFromAgentEvents(events, options = {}) {
2
9
  const fallbackToPreToolText = options.fallbackToPreToolText ?? true;
3
10
  let lastToolIdx = -1;
@@ -22,8 +29,7 @@ function collectTextEvents(events, startIdx) {
22
29
  let text = "";
23
30
  for (let i = startIdx; i < events.length; i++) {
24
31
  const event = events[i];
25
- if (event.type === "text")
26
- text += event.text;
32
+ text = applyAgentTextEventToBuffer(text, event);
27
33
  }
28
34
  return text;
29
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"response-text.js","sourceRoot":"","sources":["../../src/a2a/response-text.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,uCAAuC,CACrD,MAAiC,EACjC,OAAO,GAAoC,EAAE;IAE7C,MAAM,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,IAAI,IAAI,CAAC;IACpE,IAAI,WAAW,GAAG,CAAC,CAAC,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5B,IAAI,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YAClD,WAAW,GAAG,CAAC,CAAC;YAChB,MAAM;QACR,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,IAAI,YAAY,GAAG,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEvD,2EAA2E;IAC3E,2EAA2E;IAC3E,eAAe;IACf,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,WAAW,IAAI,CAAC,IAAI,qBAAqB,EAAE,CAAC;QACtE,YAAY,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,iBAAiB,CACxB,MAAiC,EACjC,QAAgB;IAEhB,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;YAAE,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC;IAChD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["import type { AgentChatEvent } from \"../agent/types.js\";\n\nexport interface CollectFinalResponseTextOptions {\n fallbackToPreToolText?: boolean;\n}\n\nexport function collectFinalResponseTextFromAgentEvents(\n events: readonly AgentChatEvent[],\n options: CollectFinalResponseTextOptions = {},\n): string {\n const fallbackToPreToolText = options.fallbackToPreToolText ?? true;\n let lastToolIdx = -1;\n for (let i = events.length - 1; i >= 0; i--) {\n const type = events[i].type;\n if (type === \"tool_start\" || type === \"tool_done\") {\n lastToolIdx = i;\n break;\n }\n }\n\n const startIdx = lastToolIdx >= 0 ? lastToolIdx + 1 : 0;\n let responseText = collectTextEvents(events, startIdx);\n\n // Some agents let the final tool output speak for itself. Fall back to all\n // text so callers do not get an empty reply just because no post-tool text\n // was emitted.\n if (!responseText.trim() && lastToolIdx >= 0 && fallbackToPreToolText) {\n responseText = collectTextEvents(events, 0);\n }\n\n return responseText;\n}\n\nfunction collectTextEvents(\n events: readonly AgentChatEvent[],\n startIdx: number,\n): string {\n let text = \"\";\n for (let i = startIdx; i < events.length; i++) {\n const event = events[i];\n if (event.type === \"text\") text += event.text;\n }\n return text;\n}\n"]}
1
+ {"version":3,"file":"response-text.js","sourceRoot":"","sources":["../../src/a2a/response-text.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,2BAA2B,CACzC,WAAmB,EACnB,KAAqB;IAErB,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,EAAE,CAAC;IACtC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC;IAC3D,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,uCAAuC,CACrD,MAAiC,EACjC,OAAO,GAAoC,EAAE;IAE7C,MAAM,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,IAAI,IAAI,CAAC;IACpE,IAAI,WAAW,GAAG,CAAC,CAAC,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5B,IAAI,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YAClD,WAAW,GAAG,CAAC,CAAC;YAChB,MAAM;QACR,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,IAAI,YAAY,GAAG,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEvD,2EAA2E;IAC3E,2EAA2E;IAC3E,eAAe;IACf,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,WAAW,IAAI,CAAC,IAAI,qBAAqB,EAAE,CAAC;QACtE,YAAY,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,iBAAiB,CACxB,MAAiC,EACjC,QAAgB;IAEhB,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,GAAG,2BAA2B,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["import type { AgentChatEvent } from \"../agent/types.js\";\n\nexport interface CollectFinalResponseTextOptions {\n fallbackToPreToolText?: boolean;\n}\n\nexport function applyAgentTextEventToBuffer(\n currentText: string,\n event: AgentChatEvent,\n): string {\n if (event.type === \"clear\") return \"\";\n if (event.type === \"text\") return currentText + event.text;\n return currentText;\n}\n\nexport function collectFinalResponseTextFromAgentEvents(\n events: readonly AgentChatEvent[],\n options: CollectFinalResponseTextOptions = {},\n): string {\n const fallbackToPreToolText = options.fallbackToPreToolText ?? true;\n let lastToolIdx = -1;\n for (let i = events.length - 1; i >= 0; i--) {\n const type = events[i].type;\n if (type === \"tool_start\" || type === \"tool_done\") {\n lastToolIdx = i;\n break;\n }\n }\n\n const startIdx = lastToolIdx >= 0 ? lastToolIdx + 1 : 0;\n let responseText = collectTextEvents(events, startIdx);\n\n // Some agents let the final tool output speak for itself. Fall back to all\n // text so callers do not get an empty reply just because no post-tool text\n // was emitted.\n if (!responseText.trim() && lastToolIdx >= 0 && fallbackToPreToolText) {\n responseText = collectTextEvents(events, 0);\n }\n\n return responseText;\n}\n\nfunction collectTextEvents(\n events: readonly AgentChatEvent[],\n startIdx: number,\n): string {\n let text = \"\";\n for (let i = startIdx; i < events.length; i++) {\n const event = events[i];\n text = applyAgentTextEventToBuffer(text, event);\n }\n return text;\n}\n"]}
@@ -1 +1 @@
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;AA6BvC,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,EAGlB,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+3C1B;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,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,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,CA2CnE;AA+BD,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,sBAAsB,GAC9B,cAAc,CAkvDhB;AAED,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,MAAM,EACN,QAAQ,EACR,cAAc,GACf,CAAC"}
1
+ {"version":3,"file":"production-agent.d.ts","sourceRoot":"","sources":["../../src/agent/production-agent.ts"],"names":[],"mappings":"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"}
@@ -1861,7 +1861,6 @@ export async function runAgentLoop(opts) {
1861
1861
  // means no hard-block this turn.
1862
1862
  }
1863
1863
  }
1864
- const bufferTextUntilFinalGuard = Boolean(opts.finalResponseGuard);
1865
1864
  let finalGuardRetries = 0;
1866
1865
  let iterations = 0;
1867
1866
  // Set when an in-loop processor aborts via `abort()` / throws a `TripWire`.
@@ -1889,7 +1888,7 @@ export async function runAgentLoop(opts) {
1889
1888
  iterations = 1;
1890
1889
  }
1891
1890
  let assistantContent;
1892
- let bufferedAssistantText = "";
1891
+ let streamedAssistantText = "";
1893
1892
  let terminalStopReason;
1894
1893
  const toolCallErrors = new Map();
1895
1894
  let contextMessages = messages;
@@ -1940,7 +1939,7 @@ export async function runAgentLoop(opts) {
1940
1939
  }
1941
1940
  for (let retry = 0;; retry++) {
1942
1941
  assistantContent = undefined;
1943
- bufferedAssistantText = "";
1942
+ streamedAssistantText = "";
1944
1943
  terminalStopReason = undefined;
1945
1944
  toolCallErrors.clear();
1946
1945
  try {
@@ -1994,12 +1993,8 @@ export async function runAgentLoop(opts) {
1994
1993
  }
1995
1994
  }
1996
1995
  if (event.type === "text-delta") {
1997
- if (bufferTextUntilFinalGuard) {
1998
- bufferedAssistantText += event.text;
1999
- }
2000
- else {
2001
- send({ type: "text", text: event.text });
2002
- }
1996
+ streamedAssistantText += event.text;
1997
+ send({ type: "text", text: event.text });
2003
1998
  }
2004
1999
  else if (event.type === "thinking-delta") {
2005
2000
  thinkingBuffer += event.text;
@@ -2158,47 +2153,56 @@ export async function runAgentLoop(opts) {
2158
2153
  throw err;
2159
2154
  }
2160
2155
  }
2161
- const flushBufferedAssistantText = () => {
2162
- if (!bufferTextUntilFinalGuard)
2156
+ const flushUnstreamedAssistantText = () => {
2157
+ if (streamedAssistantText)
2163
2158
  return;
2164
- const text = bufferedAssistantText || collectTextParts(assistantContentForHistory);
2159
+ const text = collectTextParts(assistantContentForHistory);
2165
2160
  if (text)
2166
2161
  send({ type: "text", text });
2167
2162
  };
2168
2163
  if (toolCallParts.length === 0) {
2169
2164
  if (terminalStopReason === "max_tokens") {
2170
- flushBufferedAssistantText();
2165
+ flushUnstreamedAssistantText();
2171
2166
  appendAgentLoopContinuation(messages, "max_tokens");
2172
2167
  continue;
2173
2168
  }
2174
- const guard = opts.finalResponseGuard
2175
- ? await opts.finalResponseGuard({
2176
- messages,
2177
- assistantContent: assistantContentForHistory,
2178
- text: collectTextParts(assistantContentForHistory),
2179
- toolCalls: [...toolCallHistory],
2180
- toolResults: [...toolResultHistory],
2181
- retryCount: finalGuardRetries,
2182
- executionMode: opts.executionMode ?? "act",
2183
- })
2184
- : null;
2169
+ let guard = null;
2170
+ if (opts.finalResponseGuard) {
2171
+ try {
2172
+ guard = await opts.finalResponseGuard({
2173
+ messages,
2174
+ assistantContent: assistantContentForHistory,
2175
+ text: collectTextParts(assistantContentForHistory),
2176
+ toolCalls: [...toolCallHistory],
2177
+ toolResults: [...toolResultHistory],
2178
+ retryCount: finalGuardRetries,
2179
+ executionMode: opts.executionMode ?? "act",
2180
+ });
2181
+ }
2182
+ catch (err) {
2183
+ send({ type: "clear" });
2184
+ throw err;
2185
+ }
2186
+ }
2185
2187
  let guardEmittedFallback = false;
2186
2188
  if (guard) {
2187
2189
  const retryMessage = typeof guard === "string" ? guard : guard.retryMessage;
2188
2190
  const fallbackMessage = typeof guard === "string" ? guard : guard.fallbackMessage;
2189
2191
  if (finalGuardRetries < 1) {
2190
2192
  finalGuardRetries += 1;
2193
+ send({ type: "clear" });
2191
2194
  messages.push({
2192
2195
  role: "user",
2193
2196
  content: [{ type: "text", text: retryMessage }],
2194
2197
  });
2195
2198
  continue;
2196
2199
  }
2200
+ send({ type: "clear" });
2197
2201
  send({ type: "text", text: fallbackMessage ?? retryMessage });
2198
2202
  guardEmittedFallback = true;
2199
2203
  }
2200
2204
  else {
2201
- flushBufferedAssistantText();
2205
+ flushUnstreamedAssistantText();
2202
2206
  }
2203
2207
  // Some providers (notably OpenAI Responses for gpt-5+) can stream a
2204
2208
  // successful turn that contains only reasoning content and zero output
@@ -2208,7 +2212,7 @@ export async function runAgentLoop(opts) {
2208
2212
  // Surface a plain-language error so the user knows what happened.
2209
2213
  if (!guardEmittedFallback &&
2210
2214
  collectTextParts(assistantContentForHistory).trim().length === 0 &&
2211
- bufferedAssistantText.trim().length === 0) {
2215
+ streamedAssistantText.trim().length === 0) {
2212
2216
  send({
2213
2217
  type: "text",
2214
2218
  text: "The model returned an empty response. This usually means reasoning used the full output-token budget. Try again, or pick a different model from the model menu.",
@@ -2222,7 +2226,7 @@ export async function runAgentLoop(opts) {
2222
2226
  // finalGuardRetries stays at 1 from a prior cycle and the guard is
2223
2227
  // permanently disabled for the rest of a long multi-step run.
2224
2228
  finalGuardRetries = 0;
2225
- flushBufferedAssistantText();
2229
+ flushUnstreamedAssistantText();
2226
2230
  let requestedActionStop = null;
2227
2231
  // Human-in-the-loop approvals granted by the user for this turn (opt-in;
2228
2232
  // empty for the overwhelming majority of turns). Keyed by the stable