@agent-native/core 0.83.0 → 0.84.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 (424) hide show
  1. package/README.md +2 -2
  2. package/corpus/README.md +1 -1
  3. package/corpus/core/CHANGELOG.md +28 -0
  4. package/corpus/core/README.md +2 -2
  5. package/corpus/core/docs/content/cloneable-saas.mdx +2 -2
  6. package/corpus/core/docs/content/faq.mdx +1 -1
  7. package/corpus/core/docs/content/locales/ar-SA/cloneable-saas.mdx +2 -2
  8. package/corpus/core/docs/content/locales/ar-SA/faq.mdx +1 -1
  9. package/corpus/core/docs/content/locales/ar-SA/template-chat.mdx +1 -1
  10. package/corpus/core/docs/content/locales/de-DE/cloneable-saas.mdx +2 -2
  11. package/corpus/core/docs/content/locales/de-DE/faq.mdx +1 -1
  12. package/corpus/core/docs/content/locales/de-DE/template-chat.mdx +1 -1
  13. package/corpus/core/docs/content/locales/es-ES/cloneable-saas.mdx +2 -2
  14. package/corpus/core/docs/content/locales/es-ES/faq.mdx +1 -1
  15. package/corpus/core/docs/content/locales/es-ES/template-chat.mdx +1 -1
  16. package/corpus/core/docs/content/locales/fr-FR/cloneable-saas.mdx +2 -2
  17. package/corpus/core/docs/content/locales/fr-FR/faq.mdx +1 -1
  18. package/corpus/core/docs/content/locales/fr-FR/template-chat.mdx +1 -1
  19. package/corpus/core/docs/content/locales/hi-IN/cloneable-saas.mdx +2 -2
  20. package/corpus/core/docs/content/locales/hi-IN/faq.mdx +1 -1
  21. package/corpus/core/docs/content/locales/hi-IN/template-chat.mdx +1 -1
  22. package/corpus/core/docs/content/locales/ja-JP/cloneable-saas.mdx +2 -2
  23. package/corpus/core/docs/content/locales/ja-JP/faq.mdx +1 -1
  24. package/corpus/core/docs/content/locales/ja-JP/template-chat.mdx +1 -1
  25. package/corpus/core/docs/content/locales/ko-KR/cloneable-saas.mdx +2 -2
  26. package/corpus/core/docs/content/locales/ko-KR/faq.mdx +1 -1
  27. package/corpus/core/docs/content/locales/ko-KR/template-chat.mdx +1 -1
  28. package/corpus/core/docs/content/locales/pt-BR/cloneable-saas.mdx +2 -2
  29. package/corpus/core/docs/content/locales/pt-BR/faq.mdx +1 -1
  30. package/corpus/core/docs/content/locales/pt-BR/template-chat.mdx +1 -1
  31. package/corpus/core/docs/content/locales/zh-CN/cloneable-saas.mdx +2 -2
  32. package/corpus/core/docs/content/locales/zh-CN/faq.mdx +1 -1
  33. package/corpus/core/docs/content/locales/zh-CN/template-chat.mdx +1 -1
  34. package/corpus/core/docs/content/locales/zh-TW/cloneable-saas.mdx +2 -2
  35. package/corpus/core/docs/content/locales/zh-TW/faq.mdx +1 -1
  36. package/corpus/core/docs/content/locales/zh-TW/template-chat.mdx +1 -1
  37. package/corpus/core/docs/content/template-chat.mdx +1 -1
  38. package/corpus/core/package.json +1 -1
  39. package/corpus/core/src/agent/engine/builtin.ts +1 -1
  40. package/corpus/core/src/agent/engine/output-tokens.ts +1 -1
  41. package/corpus/core/src/agent/harness/acp-adapter.ts +28 -4
  42. package/corpus/core/src/agent/harness/ai-sdk-adapter.ts +3 -0
  43. package/corpus/core/src/agent/harness/translate.ts +3 -0
  44. package/corpus/core/src/agent/harness/types.ts +1 -0
  45. package/corpus/core/src/agent/model-config.ts +34 -13
  46. package/corpus/core/src/agent/production-agent.ts +87 -10
  47. package/corpus/core/src/agent/thread-data-builder.ts +29 -4
  48. package/corpus/core/src/agent/tool-call-journal.ts +109 -48
  49. package/corpus/core/src/agent/types.ts +6 -1
  50. package/corpus/core/src/cli/design-connect.ts +106 -0
  51. package/corpus/core/src/cli/gateway-helpers.ts +17 -0
  52. package/corpus/core/src/cli/recap.ts +0 -2
  53. package/corpus/core/src/cli/skills.ts +54 -16
  54. package/corpus/core/src/cli/workspace-dev.ts +29 -5
  55. package/corpus/core/src/client/AssistantChat.tsx +89 -42
  56. package/corpus/core/src/client/DefaultSpinner.tsx +8 -1
  57. package/corpus/core/src/client/chat/message-components.tsx +49 -1
  58. package/corpus/core/src/client/chat/repo-helpers.ts +71 -0
  59. package/corpus/core/src/client/chat/run-recovery.tsx +15 -5
  60. package/corpus/core/src/client/components/ApiKeySettings.tsx +8 -8
  61. package/corpus/core/src/client/components/CodeRequiredDialog.tsx +26 -15
  62. package/corpus/core/src/client/components/MissingKeyCard.tsx +13 -6
  63. package/corpus/core/src/client/composer/TiptapComposer.tsx +4 -3
  64. package/corpus/core/src/client/extensions/ExtensionsSidebarSection.tsx +0 -1
  65. package/corpus/core/src/client/guided-questions.tsx +21 -27
  66. package/corpus/core/src/client/integrations/IntegrationCard.tsx +1 -1
  67. package/corpus/core/src/client/integrations/IntegrationsPanel.tsx +1 -1
  68. package/corpus/core/src/client/onboarding/OnboardingBanner.tsx +2 -2
  69. package/corpus/core/src/client/onboarding/OnboardingPanel.tsx +23 -19
  70. package/corpus/core/src/client/resources/ResourceEditor.tsx +18 -10
  71. package/corpus/core/src/client/resources/ResourcesPanel.tsx +5 -1
  72. package/corpus/core/src/client/settings/SettingsPanel.tsx +8 -3
  73. package/corpus/core/src/client/settings/useBuilderStatus.ts +8 -41
  74. package/corpus/core/src/client/useProductionAgent.ts +6 -2
  75. package/corpus/core/src/deploy/build.ts +1 -1
  76. package/corpus/core/src/observability/traces.ts +3 -3
  77. package/corpus/core/src/onboarding/default-steps.ts +1 -1
  78. package/corpus/core/src/scripts/agent-engines/manage-agent-engine.ts +1 -1
  79. package/corpus/core/src/scripts/agent-engines/set-agent-engine.ts +1 -1
  80. package/corpus/core/src/server/agent-chat-plugin.ts +177 -81
  81. package/corpus/core/src/server/core-routes-plugin.ts +7 -1
  82. package/corpus/core/src/server/open-route.ts +59 -40
  83. package/corpus/core/src/shared/reasoning-effort.ts +2 -0
  84. package/corpus/core/src/sharing/access.ts +22 -2
  85. package/corpus/core/src/sharing/registry.ts +18 -0
  86. package/corpus/core/src/styles/agent-native.css +104 -20
  87. package/corpus/core/src/styles/rich-markdown-editor.css +11 -10
  88. package/corpus/templates/analytics/app/components/dashboard/CumulativeNetChart.tsx +10 -10
  89. package/corpus/templates/analytics/app/components/dashboard/RevenueChart.tsx +10 -10
  90. package/corpus/templates/analytics/app/components/dashboard/RevenueComparisonChart.tsx +6 -5
  91. package/corpus/templates/analytics/app/components/dashboard/TimeSeriesChart.tsx +9 -9
  92. package/corpus/templates/analytics/app/global.css +4 -0
  93. package/corpus/templates/analytics/app/lib/chart-theme.ts +13 -0
  94. package/corpus/templates/analytics/app/pages/adhoc/_shared/KpiChart.tsx +22 -24
  95. package/corpus/templates/analytics/changelog/2026-06-30-dashboard-charts-now-use-theme-aware-tooltip-and-grid-colors.md +6 -0
  96. package/corpus/templates/analytics/changelog/2026-06-30-fixed-ask-composer-spacing-so-the-chat-field-has-a-comfortab.md +6 -0
  97. package/corpus/templates/calendar/AGENTS.md +4 -0
  98. package/corpus/templates/calendar/actions/connect-google-calendar.ts +80 -0
  99. package/corpus/templates/calendar/changelog/2026-06-30-calendar-now-gives-the-agent-a-safe-google-connection-link-i.md +6 -0
  100. package/corpus/templates/calendar/server/plugins/agent-chat.ts +4 -0
  101. package/corpus/templates/content/app/components/editor/BubbleToolbar.tsx +5 -5
  102. package/corpus/templates/content/app/global.css +6 -5
  103. package/corpus/templates/content/changelog/2026-06-30-editor-floating-toolbars-now-use-theme-aware-colors-in-light.md +6 -0
  104. package/corpus/templates/design/.agents/skills/visual-edit/SKILL.md +6 -1
  105. package/corpus/templates/design/actions/add-localhost-screens.ts +63 -8
  106. package/corpus/templates/design/actions/apply-motion-edit.ts +12 -46
  107. package/corpus/templates/design/actions/list-design-native-assets.ts +2 -1
  108. package/corpus/templates/design/actions/migrate-board-objects-to-file.ts +49 -1
  109. package/corpus/templates/design/actions/navigate.ts +3 -12
  110. package/corpus/templates/design/actions/open-visual-edit.ts +341 -0
  111. package/corpus/templates/design/actions/view-screen.ts +1 -1
  112. package/corpus/templates/design/app/components/design/CanvasContextMenu.tsx +1 -1
  113. package/corpus/templates/design/app/components/design/DesignCanvas.tsx +345 -14
  114. package/corpus/templates/design/app/components/design/DesignEditorSkeleton.tsx +71 -91
  115. package/corpus/templates/design/app/components/design/DesignExtensionsPanel.tsx +25 -27
  116. package/corpus/templates/design/app/components/design/DeviceFrame.tsx +1 -1
  117. package/corpus/templates/design/app/components/design/DrawOverlay.tsx +2 -2
  118. package/corpus/templates/design/app/components/design/EditPanel.tsx +1111 -570
  119. package/corpus/templates/design/app/components/design/LayersPanel.tsx +162 -32
  120. package/corpus/templates/design/app/components/design/MotionDock.tsx +268 -240
  121. package/corpus/templates/design/app/components/design/MultiScreenCanvas.tsx +1038 -150
  122. package/corpus/templates/design/app/components/design/QuestionFlow.tsx +1 -1
  123. package/corpus/templates/design/app/components/design/ReviewPanel.tsx +81 -102
  124. package/corpus/templates/design/app/components/design/StatesPanel.tsx +6 -6
  125. package/corpus/templates/design/app/components/design/TokensPanel.tsx +11 -11
  126. package/corpus/templates/design/app/components/design/TweaksPanel.tsx +9 -7
  127. package/corpus/templates/design/app/components/design/bridge/editor-chrome.bridge.ts +1129 -155
  128. package/corpus/templates/design/app/components/design/bridge/hit-test.bridge.ts +130 -37
  129. package/corpus/templates/design/app/components/design/canvas-primitive-style.ts +24 -11
  130. package/corpus/templates/design/app/components/design/inspector/AutoLayoutMatrix.tsx +184 -162
  131. package/corpus/templates/design/app/components/design/inspector/ConstraintsWidget.tsx +137 -79
  132. package/corpus/templates/design/app/components/design/inspector/DesignColorPicker.tsx +13 -13
  133. package/corpus/templates/design/app/components/design/inspector/ExportSettingsPanel.tsx +8 -8
  134. package/corpus/templates/design/app/components/design/inspector/GradientEditor.tsx +2 -2
  135. package/corpus/templates/design/app/components/design/inspector/ImageFillControls.tsx +4 -4
  136. package/corpus/templates/design/app/components/design/inspector/InspectorAiActions.tsx +3 -3
  137. package/corpus/templates/design/app/components/design/inspector/ScrubInput.tsx +13 -7
  138. package/corpus/templates/design/app/components/design/inspector/ShaderControls.tsx +14 -11
  139. package/corpus/templates/design/app/components/design/inspector/ShaderFillsPanel.tsx +4 -4
  140. package/corpus/templates/design/app/components/design/inspector/index.ts +2 -0
  141. package/corpus/templates/design/app/components/design/types.ts +19 -0
  142. package/corpus/templates/design/app/components/editor/PromptDialog.tsx +61 -78
  143. package/corpus/templates/design/app/components/layout/Header.tsx +0 -1
  144. package/corpus/templates/design/app/components/layout/Layout.tsx +3 -2
  145. package/corpus/templates/design/app/components/layout/Sidebar.tsx +0 -2
  146. package/corpus/templates/design/app/components/visual-editor/CanvasCommentPins.tsx +5 -4
  147. package/corpus/templates/design/app/components/visual-editor/DrawOverlay.tsx +1 -1
  148. package/corpus/templates/design/app/components/visual-editor/SaveStatusIndicator.tsx +2 -2
  149. package/corpus/templates/design/app/global.css +56 -0
  150. package/corpus/templates/design/app/hooks/use-agent-generating.ts +4 -5
  151. package/corpus/templates/design/app/hooks/use-navigation-state.ts +6 -7
  152. package/corpus/templates/design/app/hooks/use-question-flow.ts +3 -2
  153. package/corpus/templates/design/app/hooks/useAgentEditRequest.ts +6 -4
  154. package/corpus/templates/design/app/i18n/zh-TW.ts +5 -14
  155. package/corpus/templates/design/app/i18n-data.ts +63 -188
  156. package/corpus/templates/design/app/lib/agent-chat.ts +13 -0
  157. package/corpus/templates/design/app/pages/DesignEditor.tsx +1428 -384
  158. package/corpus/templates/design/app/pages/DesignSystemSetup.tsx +9 -5
  159. package/corpus/templates/design/app/pages/DesignSystems.tsx +2 -2
  160. package/corpus/templates/design/app/pages/Index.tsx +49 -26
  161. package/corpus/templates/design/app/pages/NotFound.tsx +25 -8
  162. package/corpus/templates/design/app/pages/VisualEdit.tsx +17 -5
  163. package/corpus/templates/design/app/routes/examples.tsx +1 -7
  164. package/corpus/templates/design/app/routes/templates.tsx +7 -4
  165. package/corpus/templates/design/changelog/2026-06-30-board-shapes-and-auto-layout-controls-are-clearer.md +6 -0
  166. package/corpus/templates/design/changelog/2026-06-30-component-selections-now-use-purple-component-chrome-and-sho.md +6 -0
  167. package/corpus/templates/design/changelog/2026-06-30-constraints-now-stay-tucked-into-a-compact-inspector-preview.md +6 -0
  168. package/corpus/templates/design/changelog/2026-06-30-creating-a-component-now-opens-in-a-compact-inspector-popove.md +6 -0
  169. package/corpus/templates/design/changelog/2026-06-30-design-cards-no-longer-show-legacy-project-type-badges.md +6 -0
  170. package/corpus/templates/design/changelog/2026-06-30-design-chat-now-keeps-new-turns-in-the-visible-design-agent-.md +6 -0
  171. package/corpus/templates/design/changelog/2026-06-30-design-editor-panels-now-keep-their-compact-text-sizing-cons.md +6 -0
  172. package/corpus/templates/design/changelog/2026-06-30-design-no-longer-shows-the-connected-local-code-warning-bann.md +6 -0
  173. package/corpus/templates/design/changelog/2026-06-30-design-now-opens-to-the-files-panel-unless-a-generation-is-a.md +6 -0
  174. package/corpus/templates/design/changelog/2026-06-30-design-opens-with-a-cleaner-empty-canvas-and-loading-preview.md +6 -0
  175. package/corpus/templates/design/changelog/2026-06-30-design-tools-use-simpler-less-decorative-icons.md +6 -0
  176. package/corpus/templates/design/changelog/2026-06-30-dragging-absolute-elements-no-longer-shows-coordinate-labels.md +6 -0
  177. package/corpus/templates/design/changelog/2026-06-30-fixed-all-screens-opening-too-zoomed-in-by-default.md +6 -0
  178. package/corpus/templates/design/changelog/2026-06-30-fixed-the-public-design-assets-sidebar-so-native-components-.md +6 -0
  179. package/corpus/templates/design/changelog/2026-06-30-fixed-the-screen-overview-board-so-empty-board-space-no-long.md +6 -0
  180. package/corpus/templates/design/changelog/2026-06-30-full-view-screens-can-now-scroll-while-remaining-editable.md +6 -0
  181. package/corpus/templates/design/changelog/2026-06-30-inspector-element-headers-show-the-selected-html-tag-and-the.md +6 -0
  182. package/corpus/templates/design/changelog/2026-06-30-inspector-inputs-stay-compact-across-desktop-breakpoints.md +6 -0
  183. package/corpus/templates/design/changelog/2026-06-30-layers-can-be-multi-selected-from-the-canvas-and-edited-toge.md +6 -0
  184. package/corpus/templates/design/changelog/2026-06-30-local-visual-edit-links-can-edit-localhost-frames-without-si.md +6 -0
  185. package/corpus/templates/design/changelog/2026-06-30-localhost-visual-edit-frames-can-now-be-selected-and-edited.md +6 -0
  186. package/corpus/templates/design/changelog/2026-06-30-marquee-selection-now-works-inside-screens-multi-selected-la.md +6 -0
  187. package/corpus/templates/design/changelog/2026-06-30-motion-is-now-available-from-the-persistent-left-rail-and-th.md +6 -0
  188. package/corpus/templates/design/changelog/2026-06-30-motion-timeline-collapse-and-reopen-animations-feel-smoother.md +6 -0
  189. package/corpus/templates/design/changelog/2026-06-30-multi-select-outlines-now-stay-consistent-across-all-screens.md +6 -0
  190. package/corpus/templates/design/changelog/2026-06-30-new-board-shapes-now-start-with-neutral-gray-styling.md +6 -0
  191. package/corpus/templates/design/changelog/2026-06-30-new-designs-open-into-a-steadier-loading-state-before-the-ed.md +6 -0
  192. package/corpus/templates/design/changelog/2026-06-30-new-designs-show-a-loading-state-during-handoff-and-keep-edi.md +6 -0
  193. package/corpus/templates/design/changelog/2026-06-30-public-visual-edit-design-links-now-open-directly-instead-of.md +6 -0
  194. package/corpus/templates/design/changelog/2026-06-30-removed-the-confusing-states-section-from-the-design-editor-.md +6 -0
  195. package/corpus/templates/design/changelog/2026-06-30-removed-the-templates-gallery-from-design-navigation.md +6 -0
  196. package/corpus/templates/design/changelog/2026-06-30-share-stays-visible-as-soon-as-editable-designs-load.md +6 -0
  197. package/corpus/templates/design/changelog/2026-06-30-signed-out-save-and-share-controls-use-simpler-labels-and-op.md +6 -0
  198. package/corpus/templates/design/changelog/2026-06-30-text-added-on-the-canvas-now-focuses-cleanly-with-the-right-.md +6 -0
  199. package/corpus/templates/design/changelog/2026-06-30-the-design-editor-loading-skeleton-is-simpler-and-its-bottom.md +6 -0
  200. package/corpus/templates/design/changelog/2026-06-30-the-design-editor-loading-skeleton-now-follows-the-current-t.md +6 -0
  201. package/corpus/templates/design/changelog/2026-06-30-the-design-inspector-no-longer-shows-child-layout-controls-o.md +6 -0
  202. package/corpus/templates/design/changelog/2026-06-30-the-design-inspector-no-longer-shows-the-ask-ai-section-abov.md +6 -0
  203. package/corpus/templates/design/changelog/2026-06-30-the-design-review-panel-no-longer-shows-a-separate-inline-au.md +6 -0
  204. package/corpus/templates/design/changelog/2026-06-30-the-empty-designs-page-now-focuses-on-a-single-primary-new-d.md +6 -0
  205. package/corpus/templates/design/changelog/2026-06-30-the-layers-panel-header-stays-as-layers-while-multiple-items.md +6 -0
  206. package/corpus/templates/design/changelog/2026-06-30-the-missing-design-screen-now-uses-a-neutral-back-button.md +6 -0
  207. package/corpus/templates/design/changelog/2026-06-30-the-motion-timeline-now-closes-without-squeezing-the-canvas-.md +6 -0
  208. package/corpus/templates/design/changelog/2026-06-30-the-new-design-connect-ai-setup-now-lines-up-with-the-compos.md +6 -0
  209. package/corpus/templates/design/changelog/2026-06-30-the-screen-overview-board-now-blends-into-the-canvas-and-new.md +6 -0
  210. package/corpus/templates/design/changelog/2026-06-30-top-level-canvas-drops-now-show-screen-guides.md +6 -0
  211. package/corpus/templates/design/changelog/2026-06-30-top-level-canvas-layers-now-keep-a-transparent-backdrop-and-.md +6 -0
  212. package/corpus/templates/design/changelog/2026-06-30-top-level-canvas-layers-now-select-reliably-from-all-screens.md +6 -0
  213. package/corpus/templates/design/changelog/2026-06-30-visual-edit-can-open-and-refresh-localhost-screens-in-one-au.md +6 -0
  214. package/corpus/templates/design/e2e/helpers.ts +15 -4
  215. package/corpus/templates/design/server/db/index.ts +52 -0
  216. package/corpus/templates/design/server/plugins/agent-chat.ts +5 -0
  217. package/corpus/templates/design/server/plugins/auth.ts +1 -0
  218. package/corpus/templates/design/server/plugins/core-routes.ts +4 -0
  219. package/corpus/templates/design/shared/board-file.ts +380 -5
  220. package/corpus/templates/design/shared/board-objects.ts +2 -2
  221. package/corpus/templates/design/shared/code-layer.ts +50 -6
  222. package/corpus/templates/design/shared/motion-compiler.ts +27 -0
  223. package/corpus/templates/macros/app/components/DailyProgress.tsx +41 -37
  224. package/corpus/templates/macros/app/components/ExerciseCard.tsx +2 -2
  225. package/corpus/templates/macros/app/components/MealCard.tsx +2 -2
  226. package/corpus/templates/macros/app/components/VoiceDictation.tsx +1 -1
  227. package/corpus/templates/macros/app/components/WeeklyCaloriesChart.tsx +1 -1
  228. package/corpus/templates/macros/app/components/WeightCard.tsx +2 -2
  229. package/corpus/templates/macros/app/components/WeightTracker.tsx +1 -1
  230. package/corpus/templates/macros/app/components/layout/AppLayout.tsx +1 -1
  231. package/corpus/templates/macros/app/routes/_index.tsx +5 -5
  232. package/corpus/templates/macros/app/routes/analytics.tsx +1 -1
  233. package/corpus/templates/macros/changelog/2026-06-30-dashboard-loading-and-chart-surfaces-now-use-theme-aware-col.md +6 -0
  234. package/corpus/templates/mail/app/components/email/ComposeBubbleToolbar.tsx +14 -11
  235. package/corpus/templates/mail/app/global.css +3 -2
  236. package/corpus/templates/mail/changelog/2026-06-30-compose-floating-toolbars-now-use-theme-aware-colors-in-ligh.md +6 -0
  237. package/corpus/templates/plan/app/pages/PlansPage.tsx +2 -2
  238. package/corpus/templates/slides/app/components/deck/DeckCard.tsx +3 -3
  239. package/corpus/templates/slides/app/global.css +10 -0
  240. package/corpus/templates/slides/app/pages/Index.tsx +55 -51
  241. package/corpus/templates/slides/changelog/2026-06-30-deck-thumbnails-collapse-cleanly-to-one-column-when-the-chat.md +6 -0
  242. package/dist/agent/engine/anthropic-engine.d.ts +2 -2
  243. package/dist/agent/engine/anthropic-engine.d.ts.map +1 -1
  244. package/dist/agent/engine/builder-engine.d.ts +2 -2
  245. package/dist/agent/engine/builder-engine.d.ts.map +1 -1
  246. package/dist/agent/engine/builtin.js +1 -1
  247. package/dist/agent/engine/builtin.js.map +1 -1
  248. package/dist/agent/engine/output-tokens.js +1 -1
  249. package/dist/agent/engine/output-tokens.js.map +1 -1
  250. package/dist/agent/harness/acp-adapter.d.ts +4 -1
  251. package/dist/agent/harness/acp-adapter.d.ts.map +1 -1
  252. package/dist/agent/harness/acp-adapter.js +19 -2
  253. package/dist/agent/harness/acp-adapter.js.map +1 -1
  254. package/dist/agent/harness/ai-sdk-adapter.d.ts.map +1 -1
  255. package/dist/agent/harness/ai-sdk-adapter.js +3 -0
  256. package/dist/agent/harness/ai-sdk-adapter.js.map +1 -1
  257. package/dist/agent/harness/translate.d.ts.map +1 -1
  258. package/dist/agent/harness/translate.js +3 -0
  259. package/dist/agent/harness/translate.js.map +1 -1
  260. package/dist/agent/harness/types.d.ts +1 -0
  261. package/dist/agent/harness/types.d.ts.map +1 -1
  262. package/dist/agent/harness/types.js.map +1 -1
  263. package/dist/agent/model-config.d.ts +21 -20
  264. package/dist/agent/model-config.d.ts.map +1 -1
  265. package/dist/agent/model-config.js +31 -13
  266. package/dist/agent/model-config.js.map +1 -1
  267. package/dist/agent/production-agent.d.ts.map +1 -1
  268. package/dist/agent/production-agent.js +85 -10
  269. package/dist/agent/production-agent.js.map +1 -1
  270. package/dist/agent/thread-data-builder.d.ts.map +1 -1
  271. package/dist/agent/thread-data-builder.js +27 -6
  272. package/dist/agent/thread-data-builder.js.map +1 -1
  273. package/dist/agent/tool-call-journal.d.ts +11 -9
  274. package/dist/agent/tool-call-journal.d.ts.map +1 -1
  275. package/dist/agent/tool-call-journal.js +92 -40
  276. package/dist/agent/tool-call-journal.js.map +1 -1
  277. package/dist/agent/types.d.ts +5 -1
  278. package/dist/agent/types.d.ts.map +1 -1
  279. package/dist/agent/types.js.map +1 -1
  280. package/dist/cli/design-connect.d.ts.map +1 -1
  281. package/dist/cli/design-connect.js +84 -0
  282. package/dist/cli/design-connect.js.map +1 -1
  283. package/dist/cli/gateway-helpers.d.ts +4 -0
  284. package/dist/cli/gateway-helpers.d.ts.map +1 -1
  285. package/dist/cli/gateway-helpers.js +9 -0
  286. package/dist/cli/gateway-helpers.js.map +1 -1
  287. package/dist/cli/recap.d.ts.map +1 -1
  288. package/dist/cli/recap.js +0 -2
  289. package/dist/cli/recap.js.map +1 -1
  290. package/dist/cli/skills.d.ts.map +1 -1
  291. package/dist/cli/skills.js +54 -16
  292. package/dist/cli/skills.js.map +1 -1
  293. package/dist/cli/workspace-dev.d.ts.map +1 -1
  294. package/dist/cli/workspace-dev.js +33 -6
  295. package/dist/cli/workspace-dev.js.map +1 -1
  296. package/dist/client/AssistantChat.d.ts.map +1 -1
  297. package/dist/client/AssistantChat.js +72 -26
  298. package/dist/client/AssistantChat.js.map +1 -1
  299. package/dist/client/DefaultSpinner.d.ts.map +1 -1
  300. package/dist/client/DefaultSpinner.js +8 -1
  301. package/dist/client/DefaultSpinner.js.map +1 -1
  302. package/dist/client/chat/message-components.d.ts +7 -1
  303. package/dist/client/chat/message-components.d.ts.map +1 -1
  304. package/dist/client/chat/message-components.js +37 -1
  305. package/dist/client/chat/message-components.js.map +1 -1
  306. package/dist/client/chat/repo-helpers.d.ts +1 -0
  307. package/dist/client/chat/repo-helpers.d.ts.map +1 -1
  308. package/dist/client/chat/repo-helpers.js +59 -0
  309. package/dist/client/chat/repo-helpers.js.map +1 -1
  310. package/dist/client/chat/run-recovery.d.ts.map +1 -1
  311. package/dist/client/chat/run-recovery.js +4 -4
  312. package/dist/client/chat/run-recovery.js.map +1 -1
  313. package/dist/client/components/ApiKeySettings.js +8 -8
  314. package/dist/client/components/ApiKeySettings.js.map +1 -1
  315. package/dist/client/components/CodeRequiredDialog.d.ts.map +1 -1
  316. package/dist/client/components/CodeRequiredDialog.js +24 -15
  317. package/dist/client/components/CodeRequiredDialog.js.map +1 -1
  318. package/dist/client/components/MissingKeyCard.d.ts.map +1 -1
  319. package/dist/client/components/MissingKeyCard.js +11 -6
  320. package/dist/client/components/MissingKeyCard.js.map +1 -1
  321. package/dist/client/composer/TiptapComposer.d.ts.map +1 -1
  322. package/dist/client/composer/TiptapComposer.js +4 -3
  323. package/dist/client/composer/TiptapComposer.js.map +1 -1
  324. package/dist/client/extensions/ExtensionsSidebarSection.d.ts.map +1 -1
  325. package/dist/client/extensions/ExtensionsSidebarSection.js +1 -1
  326. package/dist/client/extensions/ExtensionsSidebarSection.js.map +1 -1
  327. package/dist/client/guided-questions.d.ts.map +1 -1
  328. package/dist/client/guided-questions.js +6 -6
  329. package/dist/client/guided-questions.js.map +1 -1
  330. package/dist/client/integrations/IntegrationCard.js +1 -1
  331. package/dist/client/integrations/IntegrationCard.js.map +1 -1
  332. package/dist/client/integrations/IntegrationsPanel.js +1 -1
  333. package/dist/client/integrations/IntegrationsPanel.js.map +1 -1
  334. package/dist/client/onboarding/OnboardingBanner.js +2 -2
  335. package/dist/client/onboarding/OnboardingBanner.js.map +1 -1
  336. package/dist/client/onboarding/OnboardingPanel.js +23 -19
  337. package/dist/client/onboarding/OnboardingPanel.js.map +1 -1
  338. package/dist/client/resources/ResourceEditor.d.ts.map +1 -1
  339. package/dist/client/resources/ResourceEditor.js +13 -10
  340. package/dist/client/resources/ResourceEditor.js.map +1 -1
  341. package/dist/client/resources/ResourcesPanel.d.ts.map +1 -1
  342. package/dist/client/resources/ResourcesPanel.js +2 -1
  343. package/dist/client/resources/ResourcesPanel.js.map +1 -1
  344. package/dist/client/settings/SettingsPanel.d.ts.map +1 -1
  345. package/dist/client/settings/SettingsPanel.js +8 -3
  346. package/dist/client/settings/SettingsPanel.js.map +1 -1
  347. package/dist/client/settings/useBuilderStatus.d.ts.map +1 -1
  348. package/dist/client/settings/useBuilderStatus.js +6 -38
  349. package/dist/client/settings/useBuilderStatus.js.map +1 -1
  350. package/dist/client/useProductionAgent.d.ts +2 -1
  351. package/dist/client/useProductionAgent.d.ts.map +1 -1
  352. package/dist/client/useProductionAgent.js.map +1 -1
  353. package/dist/deploy/build.js +1 -1
  354. package/dist/deploy/build.js.map +1 -1
  355. package/dist/file-upload/actions/upload-image.d.ts +2 -2
  356. package/dist/notifications/routes.d.ts +1 -1
  357. package/dist/observability/routes.d.ts +5 -5
  358. package/dist/observability/traces.d.ts.map +1 -1
  359. package/dist/observability/traces.js.map +1 -1
  360. package/dist/onboarding/default-steps.js +1 -1
  361. package/dist/onboarding/default-steps.js.map +1 -1
  362. package/dist/scripts/agent-engines/manage-agent-engine.js +1 -1
  363. package/dist/scripts/agent-engines/manage-agent-engine.js.map +1 -1
  364. package/dist/scripts/agent-engines/set-agent-engine.js +1 -1
  365. package/dist/scripts/agent-engines/set-agent-engine.js.map +1 -1
  366. package/dist/server/agent-chat-plugin.d.ts +3 -0
  367. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  368. package/dist/server/agent-chat-plugin.js +134 -72
  369. package/dist/server/agent-chat-plugin.js.map +1 -1
  370. package/dist/server/core-routes-plugin.d.ts +3 -0
  371. package/dist/server/core-routes-plugin.d.ts.map +1 -1
  372. package/dist/server/core-routes-plugin.js +4 -1
  373. package/dist/server/core-routes-plugin.js.map +1 -1
  374. package/dist/server/open-route.d.ts +9 -0
  375. package/dist/server/open-route.d.ts.map +1 -1
  376. package/dist/server/open-route.js +48 -38
  377. package/dist/server/open-route.js.map +1 -1
  378. package/dist/shared/reasoning-effort.js +3 -0
  379. package/dist/shared/reasoning-effort.js.map +1 -1
  380. package/dist/sharing/access.d.ts.map +1 -1
  381. package/dist/sharing/access.js +18 -2
  382. package/dist/sharing/access.js.map +1 -1
  383. package/dist/sharing/registry.d.ts +10 -0
  384. package/dist/sharing/registry.d.ts.map +1 -1
  385. package/dist/sharing/registry.js.map +1 -1
  386. package/dist/styles/agent-native.css +104 -20
  387. package/dist/styles/rich-markdown-editor.css +11 -10
  388. package/docs/content/cloneable-saas.mdx +2 -2
  389. package/docs/content/faq.mdx +1 -1
  390. package/docs/content/locales/ar-SA/cloneable-saas.mdx +2 -2
  391. package/docs/content/locales/ar-SA/faq.mdx +1 -1
  392. package/docs/content/locales/ar-SA/template-chat.mdx +1 -1
  393. package/docs/content/locales/de-DE/cloneable-saas.mdx +2 -2
  394. package/docs/content/locales/de-DE/faq.mdx +1 -1
  395. package/docs/content/locales/de-DE/template-chat.mdx +1 -1
  396. package/docs/content/locales/es-ES/cloneable-saas.mdx +2 -2
  397. package/docs/content/locales/es-ES/faq.mdx +1 -1
  398. package/docs/content/locales/es-ES/template-chat.mdx +1 -1
  399. package/docs/content/locales/fr-FR/cloneable-saas.mdx +2 -2
  400. package/docs/content/locales/fr-FR/faq.mdx +1 -1
  401. package/docs/content/locales/fr-FR/template-chat.mdx +1 -1
  402. package/docs/content/locales/hi-IN/cloneable-saas.mdx +2 -2
  403. package/docs/content/locales/hi-IN/faq.mdx +1 -1
  404. package/docs/content/locales/hi-IN/template-chat.mdx +1 -1
  405. package/docs/content/locales/ja-JP/cloneable-saas.mdx +2 -2
  406. package/docs/content/locales/ja-JP/faq.mdx +1 -1
  407. package/docs/content/locales/ja-JP/template-chat.mdx +1 -1
  408. package/docs/content/locales/ko-KR/cloneable-saas.mdx +2 -2
  409. package/docs/content/locales/ko-KR/faq.mdx +1 -1
  410. package/docs/content/locales/ko-KR/template-chat.mdx +1 -1
  411. package/docs/content/locales/pt-BR/cloneable-saas.mdx +2 -2
  412. package/docs/content/locales/pt-BR/faq.mdx +1 -1
  413. package/docs/content/locales/pt-BR/template-chat.mdx +1 -1
  414. package/docs/content/locales/zh-CN/cloneable-saas.mdx +2 -2
  415. package/docs/content/locales/zh-CN/faq.mdx +1 -1
  416. package/docs/content/locales/zh-CN/template-chat.mdx +1 -1
  417. package/docs/content/locales/zh-TW/cloneable-saas.mdx +2 -2
  418. package/docs/content/locales/zh-TW/faq.mdx +1 -1
  419. package/docs/content/locales/zh-TW/template-chat.mdx +1 -1
  420. package/docs/content/template-chat.mdx +1 -1
  421. package/package.json +1 -1
  422. package/corpus/templates/design/app/components/design/LocalSourceEditBanner.tsx +0 -157
  423. package/corpus/templates/design/app/lib/design-templates.ts +0 -1305
  424. package/corpus/templates/design/app/pages/Templates.tsx +0 -279
@@ -7225,7 +7225,7 @@ function PlanDocumentSkeleton() {
7225
7225
 
7226
7226
  function DesktopArtboardSkeleton() {
7227
7227
  return (
7228
- <div className="h-[20rem] overflow-hidden rounded-[12px] border border-plan-line bg-plan-wireframe p-6 shadow-[0_10px_34px_rgba(24,24,27,0.08)] sm:h-[23rem] sm:p-8">
7228
+ <div className="h-[20rem] overflow-hidden rounded-[12px] border border-plan-line bg-muted p-6 shadow-[0_10px_34px_rgba(24,24,27,0.08)] sm:h-[23rem] sm:p-8">
7229
7229
  <Skeleton
7230
7230
  className="h-14 w-2/5 max-w-[20rem] rounded-lg"
7231
7231
  style={PLAN_SKELETON_FILL.heading}
@@ -7244,7 +7244,7 @@ function DesktopArtboardSkeleton() {
7244
7244
 
7245
7245
  function PhoneArtboardSkeleton() {
7246
7246
  return (
7247
- <div className="h-[22rem] overflow-hidden rounded-[26px] border border-plan-line bg-plan-wireframe p-5 shadow-[0_10px_34px_rgba(24,24,27,0.08)]">
7247
+ <div className="h-[22rem] overflow-hidden rounded-[26px] border border-plan-line bg-muted p-5 shadow-[0_10px_34px_rgba(24,24,27,0.08)]">
7248
7248
  <PlanSkeletonBox className="h-28" />
7249
7249
  <div className="mt-5 space-y-3">
7250
7250
  <PlanSkeletonBar className="h-3 w-full" />
@@ -125,12 +125,12 @@ export default function DeckCard({
125
125
  )}
126
126
  <VisibilityBadge visibility={deck.visibility} />
127
127
  </div>
128
- <div className="mt-1 flex items-center gap-2 text-xs text-muted-foreground">
129
- <span>
128
+ <div className="mt-1 flex min-w-0 items-center gap-2 text-xs text-muted-foreground">
129
+ <span className="shrink-0 whitespace-nowrap">
130
130
  {deck.slides.length} slide{deck.slides.length !== 1 ? "s" : ""}
131
131
  </span>
132
132
  {deck.designSystemId && (
133
- <span className="inline-flex min-w-0 items-center gap-1 rounded border border-border px-1.5 py-0.5 text-[10px] text-muted-foreground/80">
133
+ <span className="inline-flex min-w-0 max-w-full items-center gap-1 rounded border border-border px-1.5 py-0.5 text-[10px] text-muted-foreground/80">
134
134
  <IconPalette className="h-3 w-3 shrink-0 text-[#609FF8]" />
135
135
  <span className="max-w-28 truncate">
136
136
  {designSystemTitle || "Design system"}
@@ -149,6 +149,16 @@ button[title="Open agent sidebar"] {
149
149
  }
150
150
  }
151
151
 
152
+ .deck-grid-container {
153
+ container-type: inline-size;
154
+ }
155
+
156
+ @container (max-width: 36rem) {
157
+ .deck-grid {
158
+ grid-template-columns: minmax(0, 1fr);
159
+ }
160
+ }
161
+
152
162
  /* Presentation mode styles */
153
163
  .presentation-mode {
154
164
  cursor: none;
@@ -478,19 +478,21 @@ export default function Index() {
478
478
  <div className="flex items-center justify-end mb-4">
479
479
  <div className="h-3 w-16 rounded bg-muted animate-pulse" />
480
480
  </div>
481
- <div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4">
482
- {Array.from({ length: 8 }).map((_, i) => (
483
- <div
484
- key={i}
485
- className="rounded-xl border border-border bg-card overflow-hidden"
486
- >
487
- <div className="aspect-video bg-muted/50 animate-pulse" />
488
- <div className="p-4 space-y-2">
489
- <div className="h-4 w-3/4 rounded bg-muted animate-pulse" />
490
- <div className="h-3 w-1/2 rounded bg-muted animate-pulse" />
481
+ <div className="deck-grid-container">
482
+ <div className="deck-grid grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4">
483
+ {Array.from({ length: 8 }).map((_, i) => (
484
+ <div
485
+ key={i}
486
+ className="overflow-hidden rounded-xl border border-border bg-card"
487
+ >
488
+ <div className="aspect-video animate-pulse bg-muted/50" />
489
+ <div className="space-y-2 p-4">
490
+ <div className="h-4 w-3/4 animate-pulse rounded bg-muted" />
491
+ <div className="h-3 w-1/2 animate-pulse rounded bg-muted" />
492
+ </div>
491
493
  </div>
492
- </div>
493
- ))}
494
+ ))}
495
+ </div>
494
496
  </div>
495
497
  </>
496
498
  ) : decks.length === 0 ? (
@@ -532,47 +534,49 @@ export default function Index() {
532
534
  })}
533
535
  </span>
534
536
  </div>
535
- <div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4">
536
- {/* New deck card */}
537
- <button
538
- onClick={openNewDeck}
539
- className="group relative rounded-xl border border-dashed border-border bg-card hover:border-foreground/15 overflow-hidden text-start cursor-pointer"
540
- >
541
- <div className="aspect-video flex items-center justify-center bg-muted/30">
542
- <div className="w-12 h-12 rounded-xl bg-accent/50 flex items-center justify-center group-hover:bg-accent">
543
- <IconPlus className="w-6 h-6 text-muted-foreground/70 group-hover:text-muted-foreground" />
537
+ <div className="deck-grid-container">
538
+ <div className="deck-grid grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4">
539
+ {/* New deck card */}
540
+ <button
541
+ onClick={openNewDeck}
542
+ className="group relative cursor-pointer overflow-hidden rounded-xl border border-dashed border-border bg-card text-start hover:border-foreground/15"
543
+ >
544
+ <div className="flex aspect-video items-center justify-center bg-muted/30">
545
+ <div className="flex h-12 w-12 items-center justify-center rounded-xl bg-accent/50 group-hover:bg-accent">
546
+ <IconPlus className="h-6 w-6 text-muted-foreground/70 group-hover:text-muted-foreground" />
547
+ </div>
548
+ </div>
549
+ <div className="p-4">
550
+ <h3 className="text-sm font-medium text-muted-foreground group-hover:text-foreground/70">
551
+ {t("home.newDeck")}
552
+ </h3>
553
+ <div className="mt-1 text-xs text-muted-foreground/70">
554
+ {t("home.createDeckOrVisual")}
555
+ </div>
544
556
  </div>
545
- </div>
546
- <div className="p-4">
547
- <h3 className="font-medium text-sm text-muted-foreground group-hover:text-foreground/70">
548
- {t("home.newDeck")}
549
- </h3>
550
- <div className="text-xs text-muted-foreground/70 mt-1">
551
- {t("home.createDeckOrVisual")}
557
+ </button>
558
+
559
+ {[...visibleDecks].reverse().map((deck) => (
560
+ <DeckCard
561
+ key={deck.id}
562
+ deck={deck}
563
+ onDelete={(id) => setDeckToDelete(id)}
564
+ onRename={handleRename}
565
+ onDuplicate={handleDuplicate}
566
+ isDuplicating={duplicating === deck.id}
567
+ designSystemTitle={
568
+ deck.designSystemId
569
+ ? designSystemTitleById.get(deck.designSystemId)
570
+ : null
571
+ }
572
+ />
573
+ ))}
574
+ {visibleDecks.length === 0 && (
575
+ <div className="rounded-xl border border-border bg-card p-6 text-sm text-muted-foreground">
576
+ {t("home.noMineDecks")}
552
577
  </div>
553
- </div>
554
- </button>
555
-
556
- {[...visibleDecks].reverse().map((deck) => (
557
- <DeckCard
558
- key={deck.id}
559
- deck={deck}
560
- onDelete={(id) => setDeckToDelete(id)}
561
- onRename={handleRename}
562
- onDuplicate={handleDuplicate}
563
- isDuplicating={duplicating === deck.id}
564
- designSystemTitle={
565
- deck.designSystemId
566
- ? designSystemTitleById.get(deck.designSystemId)
567
- : null
568
- }
569
- />
570
- ))}
571
- {visibleDecks.length === 0 && (
572
- <div className="rounded-xl border border-border bg-card p-6 text-sm text-muted-foreground">
573
- {t("home.noMineDecks")}
574
- </div>
575
- )}
578
+ )}
579
+ </div>
576
580
  </div>
577
581
  </>
578
582
  )}
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: fixed
3
+ date: 2026-06-30
4
+ ---
5
+
6
+ Deck thumbnails collapse cleanly to one column when the chat pane narrows the deck list.
@@ -9,8 +9,8 @@
9
9
  */
10
10
  import type { AgentEngine, EngineCapabilities } from "./types.js";
11
11
  export declare const ANTHROPIC_CAPABILITIES: EngineCapabilities;
12
- export declare const ANTHROPIC_SUPPORTED_MODELS: readonly ["claude-fable-5", "claude-opus-4-8", "claude-sonnet-4-6", "claude-haiku-4-5-20251001"];
13
- export declare const ANTHROPIC_DEFAULT_MODEL: "claude-sonnet-4-6";
12
+ export declare const ANTHROPIC_SUPPORTED_MODELS: readonly ["claude-fable-5", "claude-opus-4-8", "claude-sonnet-4-6" | "claude-sonnet-5", "claude-haiku-4-5-20251001"];
13
+ export declare const ANTHROPIC_DEFAULT_MODEL: "claude-sonnet-4-6" | "claude-sonnet-5";
14
14
  /**
15
15
  * Create an AnthropicEngine instance.
16
16
  * Falls back to the deployment Anthropic key if no key is provided.
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic-engine.d.ts","sourceRoot":"","sources":["../../../src/agent/engine/anthropic-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAiBH,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EAGnB,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,sBAAsB,EAAE,kBAMpC,CAAC;AAEF,eAAO,MAAM,0BAA0B,kGACC,CAAC;AACzC,eAAO,MAAM,uBAAuB,qBAAsC,CAAC;AA8I3E;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACnC,WAAW,CAyBb"}
1
+ {"version":3,"file":"anthropic-engine.d.ts","sourceRoot":"","sources":["../../../src/agent/engine/anthropic-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAiBH,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EAGnB,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,sBAAsB,EAAE,kBAMpC,CAAC;AAEF,eAAO,MAAM,0BAA0B,sHACC,CAAC;AACzC,eAAO,MAAM,uBAAuB,yCAAsC,CAAC;AA8I3E;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACnC,WAAW,CAyBb"}
@@ -14,7 +14,7 @@
14
14
  */
15
15
  import type { AgentEngine, EngineCapabilities } from "./types.js";
16
16
  export declare const BUILDER_CAPABILITIES: EngineCapabilities;
17
- export declare const BUILDER_SUPPORTED_MODELS: readonly ["auto", "claude-opus-4-7", "claude-sonnet-4-6", "claude-haiku-4-5", string, "gpt-5-4", "gpt-5-4-mini", "gemini-3-1-pro", "gemini-3-5-flash", "gemini-3-1-flash-lite", "grok-code-fast", "qwen3-coder"];
18
- export declare const BUILDER_DEFAULT_MODEL: "claude-sonnet-4-6";
17
+ export declare const BUILDER_SUPPORTED_MODELS: readonly ["auto", "claude-opus-4-8", "claude-sonnet-4-6" | "claude-sonnet-5", "claude-haiku-4-5", string, "gpt-5-4", "gpt-5-4-mini", "gemini-3-1-pro", "gemini-3-5-flash", "gemini-3-1-flash-lite", "grok-code-fast", "qwen3-coder"];
18
+ export declare const BUILDER_DEFAULT_MODEL: "claude-sonnet-4-6" | "claude-sonnet-5";
19
19
  export declare function createBuilderEngine(_config?: Record<string, unknown>): AgentEngine;
20
20
  //# sourceMappingURL=builder-engine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"builder-engine.d.ts","sourceRoot":"","sources":["../../../src/agent/engine/builder-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAwBH,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EAInB,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,oBAAoB,EAAE,kBAMlC,CAAC;AAEF,eAAO,MAAM,wBAAwB,kNAAuC,CAAC;AAW7E,eAAO,MAAM,qBAAqB,qBAAoC,CAAC;AAorBvE,wBAAgB,mBAAmB,CACjC,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACpC,WAAW,CAEb"}
1
+ {"version":3,"file":"builder-engine.d.ts","sourceRoot":"","sources":["../../../src/agent/engine/builder-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAwBH,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EAInB,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,oBAAoB,EAAE,kBAMlC,CAAC;AAEF,eAAO,MAAM,wBAAwB,sOAAuC,CAAC;AAW7E,eAAO,MAAM,qBAAqB,yCAAoC,CAAC;AAorBvE,wBAAgB,mBAAmB,CACjC,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACpC,WAAW,CAEb"}
@@ -67,7 +67,7 @@ export function registerBuiltinEngines() {
67
67
  const providerDescriptions = {
68
68
  anthropic: "Claude models through the Vercel AI SDK. Supports thinking and caching via AI SDK providerOptions.",
69
69
  openai: "OpenAI GPT models via the Vercel AI SDK. Requires OPENAI_API_KEY.",
70
- openrouter: "300+ models from Anthropic, OpenAI, Google, Meta, and more routed through a single endpoint. Use model IDs like 'anthropic/claude-sonnet-4.6' or 'openai/gpt-5.5'. Requires OPENROUTER_API_KEY.",
70
+ openrouter: "300+ models from Anthropic, OpenAI, Google, Z.ai, and more routed through a single endpoint. Use model IDs like 'anthropic/claude-sonnet-5', 'openai/gpt-5.5', or 'z-ai/glm-5.2'. Requires OPENROUTER_API_KEY.",
71
71
  google: "Google Gemini models via the Vercel AI SDK. Requires GOOGLE_GENERATIVE_AI_API_KEY.",
72
72
  groq: "Groq LPU inference via the Vercel AI SDK. Requires GROQ_API_KEY.",
73
73
  mistral: "Mistral models via the Vercel AI SDK. Requires MISTRAL_API_KEY.",
@@ -1 +1 @@
1
- {"version":3,"file":"builtin.js","sourceRoot":"","sources":["../../../src/agent/engine/builtin.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Registers built-in agent engines (anthropic, ai-sdk:*) into the global registry.\n *\n * This module is imported once at server startup via the agent-chat plugin.\n * Additional engines can be registered by calling registerAgentEngine() from\n * any server plugin after startup.\n */\n\nimport {\n createAISDKEngine,\n PROVIDER_CAPABILITIES,\n PROVIDER_DEFAULT_MODELS,\n PROVIDER_SUPPORTED_MODELS,\n PROVIDER_ENV_VARS,\n PROVIDER_PACKAGES,\n type AISDKProvider,\n} from \"./ai-sdk-engine.js\";\nimport {\n createAnthropicEngine,\n ANTHROPIC_CAPABILITIES,\n ANTHROPIC_DEFAULT_MODEL,\n ANTHROPIC_SUPPORTED_MODELS,\n} from \"./anthropic-engine.js\";\nimport {\n createBuilderEngine,\n BUILDER_CAPABILITIES,\n BUILDER_DEFAULT_MODEL,\n BUILDER_SUPPORTED_MODELS,\n} from \"./builder-engine.js\";\nimport { registerAgentEngine } from \"./registry.js\";\n\nlet _registered = false;\n\n/**\n * Register all built-in engines. Safe to call multiple times (idempotent).\n */\nexport function registerBuiltinEngines(): void {\n if (_registered) return;\n _registered = true;\n\n // ── Builder.io managed gateway ─────────────────────────────────────────────\n // Registered first so detectEngineFromEnv picks it when both Builder keys\n // are set — Builder is the managed path we want everyone on long-term.\n // Users who prefer BYO keys can opt out via AGENT_ENGINE_PREFER_BYO_KEY=true,\n // which drops Builder to the fallback slot in detectEngineFromEnv.\n registerAgentEngine({\n name: \"builder\",\n label: \"Builder.io Gateway\",\n description:\n \"Managed LLM access via Builder.io — Claude, GPT, Gemini, and more through a single connection.\",\n capabilities: BUILDER_CAPABILITIES,\n defaultModel: BUILDER_DEFAULT_MODEL,\n supportedModels: BUILDER_SUPPORTED_MODELS,\n requiredEnvVars: [\"BUILDER_PRIVATE_KEY\", \"BUILDER_PUBLIC_KEY\"],\n create: (config) => createBuilderEngine(config),\n });\n\n // ── Anthropic ──────────────────────────────────────────────────────────────\n registerAgentEngine({\n name: \"anthropic\",\n label: \"Claude\",\n description:\n \"Anthropic's SDK — best-in-class Claude models with full feature support (thinking, prompt caching, vision, computer use).\",\n capabilities: ANTHROPIC_CAPABILITIES,\n defaultModel: ANTHROPIC_DEFAULT_MODEL,\n supportedModels: ANTHROPIC_SUPPORTED_MODELS,\n requiredEnvVars: [\"ANTHROPIC_API_KEY\"],\n create: (config) => createAnthropicEngine(config),\n });\n\n // ── Vercel AI SDK providers ────────────────────────────────────────────────\n const aiSdkProviders: AISDKProvider[] = [\n \"anthropic\",\n \"openai\",\n \"openrouter\",\n \"google\",\n \"groq\",\n \"mistral\",\n \"cohere\",\n \"ollama\",\n ];\n\n const providerLabels: Record<AISDKProvider, string> = {\n anthropic: \"Claude\",\n openai: \"OpenAI\",\n openrouter: \"OpenRouter\",\n google: \"Gemini\",\n groq: \"Groq\",\n mistral: \"Mistral\",\n cohere: \"Cohere\",\n ollama: \"Ollama\",\n };\n\n const providerDescriptions: Record<AISDKProvider, string> = {\n anthropic:\n \"Claude models through the Vercel AI SDK. Supports thinking and caching via AI SDK providerOptions.\",\n openai: \"OpenAI GPT models via the Vercel AI SDK. Requires OPENAI_API_KEY.\",\n openrouter:\n \"300+ models from Anthropic, OpenAI, Google, Meta, and more routed through a single endpoint. Use model IDs like 'anthropic/claude-sonnet-4.6' or 'openai/gpt-5.5'. Requires OPENROUTER_API_KEY.\",\n google:\n \"Google Gemini models via the Vercel AI SDK. Requires GOOGLE_GENERATIVE_AI_API_KEY.\",\n groq: \"Groq LPU inference via the Vercel AI SDK. Requires GROQ_API_KEY.\",\n mistral: \"Mistral models via the Vercel AI SDK. Requires MISTRAL_API_KEY.\",\n cohere:\n \"Cohere Command models via the Vercel AI SDK. Requires COHERE_API_KEY.\",\n ollama: \"Local Ollama models via the Vercel AI SDK. No API key required.\",\n };\n\n for (const provider of aiSdkProviders) {\n registerAgentEngine({\n name: `ai-sdk:${provider}`,\n label: providerLabels[provider],\n description: providerDescriptions[provider],\n installPackage: `ai ${PROVIDER_PACKAGES[provider]}`,\n capabilities: PROVIDER_CAPABILITIES[provider],\n defaultModel: PROVIDER_DEFAULT_MODELS[provider],\n supportedModels: PROVIDER_SUPPORTED_MODELS[provider],\n requiredEnvVars: PROVIDER_ENV_VARS[provider],\n create: (config) => createAISDKEngine(provider, config),\n });\n }\n}\n"]}
1
+ {"version":3,"file":"builtin.js","sourceRoot":"","sources":["../../../src/agent/engine/builtin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,yBAAyB,EACzB,iBAAiB,EACjB,iBAAiB,GAElB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,IAAI,WAAW,GAAG,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,UAAU,sBAAsB;IACpC,IAAI,WAAW;QAAE,OAAO;IACxB,WAAW,GAAG,IAAI,CAAC;IAEnB,8EAA8E;IAC9E,0EAA0E;IAC1E,uEAAuE;IACvE,8EAA8E;IAC9E,mEAAmE;IACnE,mBAAmB,CAAC;QAClB,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EACT,gGAAgG;QAClG,YAAY,EAAE,oBAAoB;QAClC,YAAY,EAAE,qBAAqB;QACnC,eAAe,EAAE,wBAAwB;QACzC,eAAe,EAAE,CAAC,qBAAqB,EAAE,oBAAoB,CAAC;QAC9D,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC;KAChD,CAAC,CAAC;IAEH,8EAA8E;IAC9E,mBAAmB,CAAC;QAClB,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,QAAQ;QACf,WAAW,EACT,2HAA2H;QAC7H,YAAY,EAAE,sBAAsB;QACpC,YAAY,EAAE,uBAAuB;QACrC,eAAe,EAAE,0BAA0B;QAC3C,eAAe,EAAE,CAAC,mBAAmB,CAAC;QACtC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,qBAAqB,CAAC,MAAM,CAAC;KAClD,CAAC,CAAC;IAEH,8EAA8E;IAC9E,MAAM,cAAc,GAAoB;QACtC,WAAW;QACX,QAAQ;QACR,YAAY;QACZ,QAAQ;QACR,MAAM;QACN,SAAS;QACT,QAAQ;QACR,QAAQ;KACT,CAAC;IAEF,MAAM,cAAc,GAAkC;QACpD,SAAS,EAAE,QAAQ;QACnB,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE,YAAY;QACxB,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,SAAS;QAClB,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,QAAQ;KACjB,CAAC;IAEF,MAAM,oBAAoB,GAAkC;QAC1D,SAAS,EACP,oGAAoG;QACtG,MAAM,EAAE,mEAAmE;QAC3E,UAAU,EACR,gNAAgN;QAClN,MAAM,EACJ,oFAAoF;QACtF,IAAI,EAAE,kEAAkE;QACxE,OAAO,EAAE,iEAAiE;QAC1E,MAAM,EACJ,uEAAuE;QACzE,MAAM,EAAE,iEAAiE;KAC1E,CAAC;IAEF,KAAK,MAAM,QAAQ,IAAI,cAAc,EAAE,CAAC;QACtC,mBAAmB,CAAC;YAClB,IAAI,EAAE,UAAU,QAAQ,EAAE;YAC1B,KAAK,EAAE,cAAc,CAAC,QAAQ,CAAC;YAC/B,WAAW,EAAE,oBAAoB,CAAC,QAAQ,CAAC;YAC3C,cAAc,EAAE,MAAM,iBAAiB,CAAC,QAAQ,CAAC,EAAE;YACnD,YAAY,EAAE,qBAAqB,CAAC,QAAQ,CAAC;YAC7C,YAAY,EAAE,uBAAuB,CAAC,QAAQ,CAAC;YAC/C,eAAe,EAAE,yBAAyB,CAAC,QAAQ,CAAC;YACpD,eAAe,EAAE,iBAAiB,CAAC,QAAQ,CAAC;YAC5C,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC;SACxD,CAAC,CAAC;IACL,CAAC;AACH,CAAC","sourcesContent":["/**\n * Registers built-in agent engines (anthropic, ai-sdk:*) into the global registry.\n *\n * This module is imported once at server startup via the agent-chat plugin.\n * Additional engines can be registered by calling registerAgentEngine() from\n * any server plugin after startup.\n */\n\nimport {\n createAISDKEngine,\n PROVIDER_CAPABILITIES,\n PROVIDER_DEFAULT_MODELS,\n PROVIDER_SUPPORTED_MODELS,\n PROVIDER_ENV_VARS,\n PROVIDER_PACKAGES,\n type AISDKProvider,\n} from \"./ai-sdk-engine.js\";\nimport {\n createAnthropicEngine,\n ANTHROPIC_CAPABILITIES,\n ANTHROPIC_DEFAULT_MODEL,\n ANTHROPIC_SUPPORTED_MODELS,\n} from \"./anthropic-engine.js\";\nimport {\n createBuilderEngine,\n BUILDER_CAPABILITIES,\n BUILDER_DEFAULT_MODEL,\n BUILDER_SUPPORTED_MODELS,\n} from \"./builder-engine.js\";\nimport { registerAgentEngine } from \"./registry.js\";\n\nlet _registered = false;\n\n/**\n * Register all built-in engines. Safe to call multiple times (idempotent).\n */\nexport function registerBuiltinEngines(): void {\n if (_registered) return;\n _registered = true;\n\n // ── Builder.io managed gateway ─────────────────────────────────────────────\n // Registered first so detectEngineFromEnv picks it when both Builder keys\n // are set — Builder is the managed path we want everyone on long-term.\n // Users who prefer BYO keys can opt out via AGENT_ENGINE_PREFER_BYO_KEY=true,\n // which drops Builder to the fallback slot in detectEngineFromEnv.\n registerAgentEngine({\n name: \"builder\",\n label: \"Builder.io Gateway\",\n description:\n \"Managed LLM access via Builder.io — Claude, GPT, Gemini, and more through a single connection.\",\n capabilities: BUILDER_CAPABILITIES,\n defaultModel: BUILDER_DEFAULT_MODEL,\n supportedModels: BUILDER_SUPPORTED_MODELS,\n requiredEnvVars: [\"BUILDER_PRIVATE_KEY\", \"BUILDER_PUBLIC_KEY\"],\n create: (config) => createBuilderEngine(config),\n });\n\n // ── Anthropic ──────────────────────────────────────────────────────────────\n registerAgentEngine({\n name: \"anthropic\",\n label: \"Claude\",\n description:\n \"Anthropic's SDK — best-in-class Claude models with full feature support (thinking, prompt caching, vision, computer use).\",\n capabilities: ANTHROPIC_CAPABILITIES,\n defaultModel: ANTHROPIC_DEFAULT_MODEL,\n supportedModels: ANTHROPIC_SUPPORTED_MODELS,\n requiredEnvVars: [\"ANTHROPIC_API_KEY\"],\n create: (config) => createAnthropicEngine(config),\n });\n\n // ── Vercel AI SDK providers ────────────────────────────────────────────────\n const aiSdkProviders: AISDKProvider[] = [\n \"anthropic\",\n \"openai\",\n \"openrouter\",\n \"google\",\n \"groq\",\n \"mistral\",\n \"cohere\",\n \"ollama\",\n ];\n\n const providerLabels: Record<AISDKProvider, string> = {\n anthropic: \"Claude\",\n openai: \"OpenAI\",\n openrouter: \"OpenRouter\",\n google: \"Gemini\",\n groq: \"Groq\",\n mistral: \"Mistral\",\n cohere: \"Cohere\",\n ollama: \"Ollama\",\n };\n\n const providerDescriptions: Record<AISDKProvider, string> = {\n anthropic:\n \"Claude models through the Vercel AI SDK. Supports thinking and caching via AI SDK providerOptions.\",\n openai: \"OpenAI GPT models via the Vercel AI SDK. Requires OPENAI_API_KEY.\",\n openrouter:\n \"300+ models from Anthropic, OpenAI, Google, Z.ai, and more routed through a single endpoint. Use model IDs like 'anthropic/claude-sonnet-5', 'openai/gpt-5.5', or 'z-ai/glm-5.2'. Requires OPENROUTER_API_KEY.\",\n google:\n \"Google Gemini models via the Vercel AI SDK. Requires GOOGLE_GENERATIVE_AI_API_KEY.\",\n groq: \"Groq LPU inference via the Vercel AI SDK. Requires GROQ_API_KEY.\",\n mistral: \"Mistral models via the Vercel AI SDK. Requires MISTRAL_API_KEY.\",\n cohere:\n \"Cohere Command models via the Vercel AI SDK. Requires COHERE_API_KEY.\",\n ollama: \"Local Ollama models via the Vercel AI SDK. No API key required.\",\n };\n\n for (const provider of aiSdkProviders) {\n registerAgentEngine({\n name: `ai-sdk:${provider}`,\n label: providerLabels[provider],\n description: providerDescriptions[provider],\n installPackage: `ai ${PROVIDER_PACKAGES[provider]}`,\n capabilities: PROVIDER_CAPABILITIES[provider],\n defaultModel: PROVIDER_DEFAULT_MODELS[provider],\n supportedModels: PROVIDER_SUPPORTED_MODELS[provider],\n requiredEnvVars: PROVIDER_ENV_VARS[provider],\n create: (config) => createAISDKEngine(provider, config),\n });\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  const MIN_MAX_OUTPUT_TOKENS = 256;
2
- // Raise the global clamp to 64K to support models like claude-sonnet-4-6
2
+ // Raise the global clamp to 64K to support models like claude-sonnet-5
3
3
  // (64K) and GPT-5.x (up to 128K). Callers can still set higher explicit
4
4
  // per-call values; this clamp only applies when no explicit value is given.
5
5
  const MAX_MAX_OUTPUT_TOKENS = 64_000;
@@ -1 +1 @@
1
- {"version":3,"file":"output-tokens.js","sourceRoot":"","sources":["../../../src/agent/engine/output-tokens.ts"],"names":[],"mappings":"AAAA,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAClC,yEAAyE;AACzE,wEAAwE;AACxE,4EAA4E;AAC5E,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAErC,kEAAkE;AAClE,MAAM,CAAC,MAAM,oCAAoC,GAAG,IAAI,CAAC;AACzD,MAAM,CAAC,MAAM,gCAAgC,GAAG,IAAI,CAAC;AACrD,MAAM,CAAC,MAAM,mCAAmC,GAAG,IAAI,CAAC;AACxD,MAAM,CAAC,MAAM,iCAAiC,GAAG,IAAI,CAAC;AAEtD,SAAS,oBAAoB,CAAC,KAAc;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAClE,MAAM,CAAC,GACL,OAAO,KAAK,KAAK,QAAQ;QACvB,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ;YACzB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YACf,CAAC,CAAC,IAAI,CAAC;IACb,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1E,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACxB,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAAc;IACrD,MAAM,MAAM,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,MAAM,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAChC,OAAO,IAAI,CAAC,GAAG,CACb,qBAAqB,EACrB,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE,MAAM,CAAC,CACxC,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,UAAkB;IAC9C,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC;QAC/C,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;QACpC,CAAC,CAAC,UAAU,CAAC;IACf,MAAM,cAAc,GAAG,SAAS,QAAQ;SACrC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;SAC5B,WAAW,EAAE,oBAAoB,CAAC;IACrC,OAAO;IACL,yEAAyE;IACzE,wBAAwB,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACrD,wBAAwB,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAC9D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,UAAkB;IAChE,MAAM,QAAQ,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAClD,IAAI,QAAQ,IAAI,IAAI;QAAE,OAAO,QAAQ,CAAC;IAEtC,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,iCAAiC,CAAC;IACvE,IAAI,UAAU,KAAK,WAAW,IAAI,UAAU,KAAK,kBAAkB,EAAE,CAAC;QACpE,OAAO,mCAAmC,CAAC;IAC7C,CAAC;IACD,IAAI,UAAU,KAAK,mBAAmB,EAAE,CAAC;QACvC,OAAO,oCAAoC,CAAC;IAC9C,CAAC;IACD,IAAI,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACrC,OAAO,gCAAgC,CAAC;IAC1C,CAAC;IACD,OAAO,gCAAgC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,UAAkB,EAClB,QAAkB;IAElB,OAAO,CACL,wBAAwB,CAAC,QAAQ,CAAC;QAClC,+BAA+B,CAAC,UAAU,CAAC,CAC5C,CAAC;AACJ,CAAC","sourcesContent":["const MIN_MAX_OUTPUT_TOKENS = 256;\n// Raise the global clamp to 64K to support models like claude-sonnet-4-6\n// (64K) and GPT-5.x (up to 128K). Callers can still set higher explicit\n// per-call values; this clamp only applies when no explicit value is given.\nconst MAX_MAX_OUTPUT_TOKENS = 64_000;\n\n// OpenRouter default raised from 1024 (truncation-prone) to 8192.\nexport const DEFAULT_OPENROUTER_MAX_OUTPUT_TOKENS = 8192;\nexport const DEFAULT_AI_SDK_MAX_OUTPUT_TOKENS = 4096;\nexport const DEFAULT_ANTHROPIC_MAX_OUTPUT_TOKENS = 8192;\nexport const DEFAULT_BUILDER_MAX_OUTPUT_TOKENS = 8192;\n\nfunction parsePositiveInteger(value: unknown): number | null {\n if (typeof value === \"string\" && value.trim() === \"\") return null;\n const n =\n typeof value === \"number\"\n ? value\n : typeof value === \"string\"\n ? Number(value)\n : null;\n if (n == null || !Number.isFinite(n) || !Number.isInteger(n)) return null;\n if (n <= 0) return null;\n return n;\n}\n\nexport function normalizeMaxOutputTokens(value: unknown): number | null {\n const parsed = parsePositiveInteger(value);\n if (parsed == null) return null;\n return Math.min(\n MAX_MAX_OUTPUT_TOKENS,\n Math.max(MIN_MAX_OUTPUT_TOKENS, parsed),\n );\n}\n\nfunction envOverrideForEngine(engineName: string): number | null {\n const provider = engineName.startsWith(\"ai-sdk:\")\n ? engineName.slice(\"ai-sdk:\".length)\n : engineName;\n const providerEnvKey = `AGENT_${provider\n .replace(/[^a-z0-9]+/gi, \"_\")\n .toUpperCase()}_MAX_OUTPUT_TOKENS`;\n return (\n // guard:allow-env-credential — output-token cap config, not a credential\n normalizeMaxOutputTokens(process.env[providerEnvKey]) ??\n normalizeMaxOutputTokens(process.env.AGENT_MAX_OUTPUT_TOKENS)\n );\n}\n\nexport function defaultMaxOutputTokensForEngine(engineName: string): number {\n const override = envOverrideForEngine(engineName);\n if (override != null) return override;\n\n if (engineName === \"builder\") return DEFAULT_BUILDER_MAX_OUTPUT_TOKENS;\n if (engineName === \"anthropic\" || engineName === \"ai-sdk:anthropic\") {\n return DEFAULT_ANTHROPIC_MAX_OUTPUT_TOKENS;\n }\n if (engineName === \"ai-sdk:openrouter\") {\n return DEFAULT_OPENROUTER_MAX_OUTPUT_TOKENS;\n }\n if (engineName.startsWith(\"ai-sdk:\")) {\n return DEFAULT_AI_SDK_MAX_OUTPUT_TOKENS;\n }\n return DEFAULT_AI_SDK_MAX_OUTPUT_TOKENS;\n}\n\nexport function resolveMaxOutputTokensForEngine(\n engineName: string,\n explicit?: unknown,\n): number {\n return (\n normalizeMaxOutputTokens(explicit) ??\n defaultMaxOutputTokensForEngine(engineName)\n );\n}\n"]}
1
+ {"version":3,"file":"output-tokens.js","sourceRoot":"","sources":["../../../src/agent/engine/output-tokens.ts"],"names":[],"mappings":"AAAA,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAClC,uEAAuE;AACvE,wEAAwE;AACxE,4EAA4E;AAC5E,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAErC,kEAAkE;AAClE,MAAM,CAAC,MAAM,oCAAoC,GAAG,IAAI,CAAC;AACzD,MAAM,CAAC,MAAM,gCAAgC,GAAG,IAAI,CAAC;AACrD,MAAM,CAAC,MAAM,mCAAmC,GAAG,IAAI,CAAC;AACxD,MAAM,CAAC,MAAM,iCAAiC,GAAG,IAAI,CAAC;AAEtD,SAAS,oBAAoB,CAAC,KAAc;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAClE,MAAM,CAAC,GACL,OAAO,KAAK,KAAK,QAAQ;QACvB,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ;YACzB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YACf,CAAC,CAAC,IAAI,CAAC;IACb,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1E,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACxB,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAAc;IACrD,MAAM,MAAM,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,MAAM,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAChC,OAAO,IAAI,CAAC,GAAG,CACb,qBAAqB,EACrB,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE,MAAM,CAAC,CACxC,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,UAAkB;IAC9C,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC;QAC/C,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;QACpC,CAAC,CAAC,UAAU,CAAC;IACf,MAAM,cAAc,GAAG,SAAS,QAAQ;SACrC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;SAC5B,WAAW,EAAE,oBAAoB,CAAC;IACrC,OAAO;IACL,yEAAyE;IACzE,wBAAwB,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACrD,wBAAwB,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAC9D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,UAAkB;IAChE,MAAM,QAAQ,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAClD,IAAI,QAAQ,IAAI,IAAI;QAAE,OAAO,QAAQ,CAAC;IAEtC,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,iCAAiC,CAAC;IACvE,IAAI,UAAU,KAAK,WAAW,IAAI,UAAU,KAAK,kBAAkB,EAAE,CAAC;QACpE,OAAO,mCAAmC,CAAC;IAC7C,CAAC;IACD,IAAI,UAAU,KAAK,mBAAmB,EAAE,CAAC;QACvC,OAAO,oCAAoC,CAAC;IAC9C,CAAC;IACD,IAAI,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACrC,OAAO,gCAAgC,CAAC;IAC1C,CAAC;IACD,OAAO,gCAAgC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,UAAkB,EAClB,QAAkB;IAElB,OAAO,CACL,wBAAwB,CAAC,QAAQ,CAAC;QAClC,+BAA+B,CAAC,UAAU,CAAC,CAC5C,CAAC;AACJ,CAAC","sourcesContent":["const MIN_MAX_OUTPUT_TOKENS = 256;\n// Raise the global clamp to 64K to support models like claude-sonnet-5\n// (64K) and GPT-5.x (up to 128K). Callers can still set higher explicit\n// per-call values; this clamp only applies when no explicit value is given.\nconst MAX_MAX_OUTPUT_TOKENS = 64_000;\n\n// OpenRouter default raised from 1024 (truncation-prone) to 8192.\nexport const DEFAULT_OPENROUTER_MAX_OUTPUT_TOKENS = 8192;\nexport const DEFAULT_AI_SDK_MAX_OUTPUT_TOKENS = 4096;\nexport const DEFAULT_ANTHROPIC_MAX_OUTPUT_TOKENS = 8192;\nexport const DEFAULT_BUILDER_MAX_OUTPUT_TOKENS = 8192;\n\nfunction parsePositiveInteger(value: unknown): number | null {\n if (typeof value === \"string\" && value.trim() === \"\") return null;\n const n =\n typeof value === \"number\"\n ? value\n : typeof value === \"string\"\n ? Number(value)\n : null;\n if (n == null || !Number.isFinite(n) || !Number.isInteger(n)) return null;\n if (n <= 0) return null;\n return n;\n}\n\nexport function normalizeMaxOutputTokens(value: unknown): number | null {\n const parsed = parsePositiveInteger(value);\n if (parsed == null) return null;\n return Math.min(\n MAX_MAX_OUTPUT_TOKENS,\n Math.max(MIN_MAX_OUTPUT_TOKENS, parsed),\n );\n}\n\nfunction envOverrideForEngine(engineName: string): number | null {\n const provider = engineName.startsWith(\"ai-sdk:\")\n ? engineName.slice(\"ai-sdk:\".length)\n : engineName;\n const providerEnvKey = `AGENT_${provider\n .replace(/[^a-z0-9]+/gi, \"_\")\n .toUpperCase()}_MAX_OUTPUT_TOKENS`;\n return (\n // guard:allow-env-credential — output-token cap config, not a credential\n normalizeMaxOutputTokens(process.env[providerEnvKey]) ??\n normalizeMaxOutputTokens(process.env.AGENT_MAX_OUTPUT_TOKENS)\n );\n}\n\nexport function defaultMaxOutputTokensForEngine(engineName: string): number {\n const override = envOverrideForEngine(engineName);\n if (override != null) return override;\n\n if (engineName === \"builder\") return DEFAULT_BUILDER_MAX_OUTPUT_TOKENS;\n if (engineName === \"anthropic\" || engineName === \"ai-sdk:anthropic\") {\n return DEFAULT_ANTHROPIC_MAX_OUTPUT_TOKENS;\n }\n if (engineName === \"ai-sdk:openrouter\") {\n return DEFAULT_OPENROUTER_MAX_OUTPUT_TOKENS;\n }\n if (engineName.startsWith(\"ai-sdk:\")) {\n return DEFAULT_AI_SDK_MAX_OUTPUT_TOKENS;\n }\n return DEFAULT_AI_SDK_MAX_OUTPUT_TOKENS;\n}\n\nexport function resolveMaxOutputTokensForEngine(\n engineName: string,\n explicit?: unknown,\n): number {\n return (\n normalizeMaxOutputTokens(explicit) ??\n defaultMaxOutputTokensForEngine(engineName)\n );\n}\n"]}
@@ -62,7 +62,10 @@ export declare function buildAcpPromptBlocks(input: {
62
62
  * stateless; the caller supplies a resolver for tool titles seen on earlier
63
63
  * `tool_call` updates so completion events can be labelled.
64
64
  */
65
- export declare function acpUpdateToHarnessEvents(update: AcpSessionUpdate, titleFor?: (toolCallId: string) => string | undefined): AgentHarnessEvent[];
65
+ export declare function acpUpdateToHarnessEvents(update: AcpSessionUpdate, resolvers?: ((toolCallId: string) => string | undefined) | {
66
+ titleFor?: (toolCallId: string) => string | undefined;
67
+ inputFor?: (toolCallId: string) => Record<string, unknown> | undefined;
68
+ }): AgentHarnessEvent[];
66
69
  /** Extract displayable text from an ACP content block. */
67
70
  export declare function acpContentBlockToText(block: AcpContentBlock | undefined): string;
68
71
  /** Derive file-change events from a tool call's `diff` content blocks. */
@@ -1 +1 @@
1
- {"version":3,"file":"acp-adapter.d.ts","sourceRoot":"","sources":["../../../src/agent/harness/acp-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acp-adapter.d.ts","sourceRoot":"","sources":["../../../src/agent/harness/acp-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAOH,OAAO,KAAK,EACV,mBAAmB,EAInB,iBAAiB,EACjB,mBAAmB,EACnB,0BAA0B,EAG3B,MAAM,YAAY,CAAC;AAOpB;;;GAGG;AACH,eAAO,MAAM,WAAW,0CAA0C,CAAC;AAEnE,MAAM,WAAW,wBAAwB;IACvC,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,kEAAkE;IAClE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAuBD,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,wBAAwB,GAChC,mBAAmB,CA8CrB;AAuTD,sDAAsD;AACtD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,mBAAmB,EAAE,CAAC;CAClC,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAgBxC;AAkBD;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,gBAAgB,EACxB,SAAS,CAAC,EACN,CAAC,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC,GAC5C;IACE,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACtD,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;CACxE,GACJ,iBAAiB,EAAE,CAuErB;AAMD,0DAA0D;AAC1D,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,eAAe,GAAG,SAAS,GACjC,MAAM,CASR;AAiBD,0EAA0E;AAC1E,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,kBAAkB,EAAE,GAAG,SAAS,GAAG,IAAI,GAC/C,iBAAiB,EAAE,CAgBrB;AAWD;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,IAAI,EAAE,0BAA0B,GAC/B,OAAO,GAAG,QAAQ,CAapB;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,mBAAmB,EAAE,EAC9B,QAAQ,EAAE,OAAO,GAChB,MAAM,GAAG,SAAS,CASpB;AAWD;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,GACpB,MAAM,CAgBR;AAsCD,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,UAAU,kBAAkB;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,YAAY;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,gBAAgB,GACxB;IACE,aAAa,EACT,qBAAqB,GACrB,oBAAoB,GACpB,qBAAqB,CAAC;IAC1B,OAAO,EAAE,eAAe,CAAC;CAC1B,GACD;IACE,aAAa,EAAE,WAAW,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;CACvB,GACD;IACE,aAAa,EAAE,kBAAkB,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,CAAC,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC,GACD;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,YAAY,EAAE,CAAA;CAAE,GAClD;IAAE,aAAa,EAAE,2BAA2B,CAAC;IAAC,iBAAiB,EAAE,OAAO,EAAE,CAAA;CAAE,GAC5E;IAAE,aAAa,EAAE,qBAAqB,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAAC;AAOpE,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,GAAG,cAAc,GAAG,aAAa,GAAG,eAAe,CAAC;CACvE"}
@@ -106,6 +106,7 @@ class AcpHarnessSession {
106
106
  queue = null;
107
107
  pendingPermissions = new Map();
108
108
  toolTitles = new Map();
109
+ toolInputs = new Map();
109
110
  approvalCounter = 0;
110
111
  stderrTail = "";
111
112
  childExited = false;
@@ -268,11 +269,19 @@ class AcpHarnessSession {
268
269
  if (update?.sessionUpdate === "tool_call" && update.title) {
269
270
  this.toolTitles.set(update.toolCallId, update.title);
270
271
  }
272
+ if ((update?.sessionUpdate === "tool_call" ||
273
+ update?.sessionUpdate === "tool_call_update") &&
274
+ update.rawInput) {
275
+ this.toolInputs.set(update.toolCallId, update.rawInput);
276
+ }
271
277
  // Updates that arrive without an active turn are history replay from
272
278
  // loadSession; the transcript already contains them, so drop them.
273
279
  if (!this.queue)
274
280
  return;
275
- for (const event of acpUpdateToHarnessEvents(update, (id) => this.toolTitles.get(id))) {
281
+ for (const event of acpUpdateToHarnessEvents(update, {
282
+ titleFor: (id) => this.toolTitles.get(id),
283
+ inputFor: (id) => this.toolInputs.get(id),
284
+ })) {
276
285
  this.queue.push(event);
277
286
  }
278
287
  }
@@ -380,7 +389,9 @@ function messageToText(content) {
380
389
  * stateless; the caller supplies a resolver for tool titles seen on earlier
381
390
  * `tool_call` updates so completion events can be labelled.
382
391
  */
383
- export function acpUpdateToHarnessEvents(update, titleFor) {
392
+ export function acpUpdateToHarnessEvents(update, resolvers) {
393
+ const titleFor = typeof resolvers === "function" ? resolvers : resolvers?.titleFor;
394
+ const inputFor = typeof resolvers === "function" ? undefined : resolvers?.inputFor;
384
395
  switch (update.sessionUpdate) {
385
396
  case "agent_message_chunk": {
386
397
  const text = acpContentBlockToText(update.content);
@@ -408,6 +419,9 @@ export function acpUpdateToHarnessEvents(update, titleFor) {
408
419
  type: "tool-done",
409
420
  id: update.toolCallId,
410
421
  name: update.title || titleFor?.(update.toolCallId) || "tool",
422
+ ...((update.rawInput ?? inputFor?.(update.toolCallId))
423
+ ? { input: update.rawInput ?? inputFor?.(update.toolCallId) }
424
+ : {}),
411
425
  result: update.rawOutput ?? acpToolContentText(update.content),
412
426
  });
413
427
  }
@@ -421,6 +435,9 @@ export function acpUpdateToHarnessEvents(update, titleFor) {
421
435
  type: "tool-done",
422
436
  id: update.toolCallId,
423
437
  name: update.title || titleFor?.(update.toolCallId) || "tool",
438
+ ...((update.rawInput ?? inputFor?.(update.toolCallId))
439
+ ? { input: update.rawInput ?? inputFor?.(update.toolCallId) }
440
+ : {}),
424
441
  result: update.rawOutput ?? acpToolContentText(content),
425
442
  });
426
443
  }