@agent-native/core 0.155.0 → 0.157.1

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 (192) hide show
  1. package/corpus/README.md +1 -1
  2. package/corpus/templates/analytics/server/jobs/analytics-bigquery-backfill.ts +19 -4
  3. package/corpus/templates/analytics/server/lib/first-party-analytics-backend.ts +7 -2
  4. package/corpus/templates/assets/app/components/asset/AssetPreviewDialog.tsx +3 -1
  5. package/corpus/templates/assets/app/global.css +4 -0
  6. package/corpus/templates/assets/app/i18n-data.ts +21 -1
  7. package/corpus/templates/assets/app/routes/brand-kits.$id.tsx +18 -15
  8. package/corpus/templates/brain/app/routes/sources.tsx +1 -2
  9. package/corpus/templates/calendar/app/hooks/use-bookings.ts +12 -2
  10. package/corpus/templates/calendar/app/pages/BookingLinksPage.tsx +64 -2
  11. package/corpus/templates/calendar/server/handlers/bookings.ts +219 -93
  12. package/corpus/templates/calendar/server/plugins/auth.ts +0 -2
  13. package/corpus/templates/clips/actions/create-folder.ts +7 -1
  14. package/corpus/templates/clips/actions/create-meeting.ts +6 -2
  15. package/corpus/templates/clips/actions/create-recording.ts +5 -3
  16. package/corpus/templates/clips/actions/finalize-recording.ts +97 -65
  17. package/corpus/templates/clips/actions/import-loom-recording.ts +5 -3
  18. package/corpus/templates/clips/actions/request-recording-access.ts +272 -0
  19. package/corpus/templates/clips/actions/stitch-recordings.ts +5 -3
  20. package/corpus/templates/clips/app/components/meetings/share-meeting-dialog.tsx +38 -63
  21. package/corpus/templates/clips/app/components/player/share-dialog.tsx +177 -134
  22. package/corpus/templates/clips/app/components/recorder/recorder-engine.ts +3 -21
  23. package/corpus/templates/clips/app/components/sharing/share-ui.tsx +13 -30
  24. package/corpus/templates/clips/app/i18n/en-US.ts +10 -0
  25. package/corpus/templates/clips/app/routes/_app.meetings.$meetingId.tsx +5 -5
  26. package/corpus/templates/clips/app/routes/r.$recordingId.tsx +24 -17
  27. package/corpus/templates/clips/app/routes/share.$shareId.tsx +151 -20
  28. package/corpus/templates/clips/changelog/2026-08-14-long-resumable-uploads-now-abort-cleanly-and-show-errors.md +6 -0
  29. package/corpus/templates/clips/changelog/2026-08-14-standardized-share-popovers.md +6 -0
  30. package/corpus/templates/clips/chrome-extension/public/manifest.json +11 -3
  31. package/corpus/templates/clips/chrome-extension/src/github-preview-content.ts +37 -8
  32. package/corpus/templates/clips/chrome-extension/src/github-preview.ts +3 -3
  33. package/corpus/templates/clips/chrome-extension/src/offscreen.ts +8 -25
  34. package/corpus/templates/clips/desktop/src/app.tsx +24 -0
  35. package/corpus/templates/clips/desktop/src/lib/media-capture-constraints.ts +42 -13
  36. package/corpus/templates/clips/desktop/src/lib/recorder.ts +11 -18
  37. package/corpus/templates/clips/desktop/src/overlays/onboarding.tsx +1 -0
  38. package/corpus/templates/clips/desktop/src/shared/config.ts +1 -0
  39. package/corpus/templates/clips/desktop/src/styles.css +24 -9
  40. package/corpus/templates/clips/desktop/src-tauri/Cargo.toml +3 -0
  41. package/corpus/templates/clips/desktop/src-tauri/src/config.rs +8 -0
  42. package/corpus/templates/clips/desktop/src-tauri/src/native_screen/custom_capture.rs +154 -176
  43. package/corpus/templates/clips/desktop/src-tauri/src/native_screen.rs +115 -31
  44. package/corpus/templates/clips/desktop/src-tauri/src/rewind_clip.rs +7 -0
  45. package/corpus/templates/clips/server/db/index.ts +1 -0
  46. package/corpus/templates/clips/server/db/schema.ts +1 -0
  47. package/corpus/templates/clips/server/lib/calendar-event-meetings.ts +6 -1
  48. package/corpus/templates/clips/server/lib/emails.ts +23 -0
  49. package/corpus/templates/clips/server/lib/public-agent-context.ts +55 -0
  50. package/corpus/templates/clips/server/lib/recordings.ts +2 -1
  51. package/corpus/templates/clips/server/lib/resumable-upload-cleanup.ts +49 -0
  52. package/corpus/templates/clips/server/lib/s3-upload-provider.ts +34 -7
  53. package/corpus/templates/clips/server/lib/upload-interruption.ts +15 -1
  54. package/corpus/templates/clips/server/lib/upload-lease.ts +94 -9
  55. package/corpus/templates/clips/server/routes/api/agent-context.json.get.ts +82 -7
  56. package/corpus/templates/clips/server/routes/api/public-recording.get.ts +1 -0
  57. package/corpus/templates/clips/server/routes/api/uploads/[recordingId]/chunk.post.ts +71 -12
  58. package/corpus/templates/clips/server/routes/api/uploads/[recordingId]/interrupt.post.ts +4 -3
  59. package/corpus/templates/clips/server/routes/api/uploads/[recordingId]/reset-chunks.post.ts +19 -0
  60. package/corpus/templates/clips/server/routes/api/uploads/reap.post.ts +8 -1
  61. package/corpus/templates/clips/shared/recording-link.ts +4 -0
  62. package/corpus/templates/clips/shared/share-loader-response.ts +2 -1
  63. package/corpus/templates/content/app/components/editor/DocumentToolbar.tsx +7 -16
  64. package/corpus/templates/factory/AGENTS.md +5 -1
  65. package/corpus/templates/factory/README.md +6 -2
  66. package/corpus/templates/factory/actions/view-screen.ts +15 -0
  67. package/corpus/templates/factory/app/components/factory/FactoryAgentsView.tsx +58 -189
  68. package/corpus/templates/factory/app/components/layout/Header.tsx +1 -0
  69. package/corpus/templates/factory/app/components/layout/Layout.tsx +1 -1
  70. package/corpus/templates/factory/app/components/layout/Sidebar.tsx +7 -0
  71. package/corpus/templates/factory/app/hooks/use-navigation-state.ts +3 -0
  72. package/corpus/templates/factory/app/i18n/en-US.ts +3 -1
  73. package/corpus/templates/factory/app/routes/agents.tsx +9 -0
  74. package/corpus/templates/mail/server/plugins/auth.ts +0 -2
  75. package/corpus/templates/plan/app/components/plan/LocalCodebasePicker.tsx +50 -14
  76. package/corpus/templates/plan/app/pages/PlansPage.tsx +9 -19
  77. package/corpus/templates/slides/app/components/editor/AddSlidePopover.tsx +98 -29
  78. package/corpus/templates/slides/app/components/editor/EditorActionCluster.tsx +45 -91
  79. package/corpus/templates/slides/app/components/editor/EditorSidebar.tsx +94 -2
  80. package/corpus/templates/slides/app/components/editor/EditorToolbar.tsx +17 -29
  81. package/corpus/templates/slides/app/components/editor/HistoryPanel.tsx +7 -1
  82. package/corpus/templates/slides/app/components/editor/SlideContextToolbar.tsx +1 -1
  83. package/corpus/templates/slides/app/context/DeckContext.tsx +108 -19
  84. package/corpus/templates/slides/app/global.css +7 -40
  85. package/corpus/templates/slides/app/i18n/en-US.ts +4 -0
  86. package/corpus/templates/slides/app/lib/editor-shortcuts.ts +46 -0
  87. package/corpus/templates/slides/app/pages/DeckEditor.tsx +143 -45
  88. package/dist/agent/index.d.ts +1 -1
  89. package/dist/agent/production-agent.d.ts +30 -0
  90. package/dist/agent/production-agent.js +100 -8
  91. package/dist/agent/types.d.ts +9 -0
  92. package/dist/client/AgentPanel.d.ts +13 -1
  93. package/dist/client/AgentPanel.js +22 -17
  94. package/dist/client/AssistantChat.d.ts +15 -1
  95. package/dist/client/AssistantChat.js +135 -48
  96. package/dist/client/HighlightedCodeBlock.js +12 -2
  97. package/dist/client/MultiTabAssistantChat.js +44 -27
  98. package/dist/client/agent-chat/index.d.ts +1 -0
  99. package/dist/client/agent-chat/index.js +1 -0
  100. package/dist/client/chat/markdown-renderer.js +20 -5
  101. package/dist/client/chat/message-components.d.ts +2 -2
  102. package/dist/client/chat/message-components.js +69 -35
  103. package/dist/client/chat/run-recovery.d.ts +4 -1
  104. package/dist/client/chat/run-recovery.js +62 -30
  105. package/dist/client/chat/tool-call-display.d.ts +12 -3
  106. package/dist/client/chat/tool-call-display.js +79 -40
  107. package/dist/client/chat/widgets/DataChartRenderer.js +3 -1
  108. package/dist/client/chat/widgets/DataChartWidget.js +8 -2
  109. package/dist/client/chat/widgets/DataInsightsWidget.js +3 -1
  110. package/dist/client/chat/widgets/DataTableWidget.js +23 -9
  111. package/dist/client/chat/widgets/builtin-tool-renderers.js +3 -1
  112. package/dist/client/chat-first/apps-rail.js +1 -1
  113. package/dist/client/components/ui/message-scroller.d.ts +1 -1
  114. package/dist/client/components/ui/message-scroller.js +7 -3
  115. package/dist/client/composer/runtime-adapters.js +3 -2
  116. package/dist/client/context-xray/ContextMeter.js +5 -1
  117. package/dist/client/context-xray/ContextXRayPanel.js +5 -5
  118. package/dist/client/error-format.d.ts +4 -0
  119. package/dist/client/error-format.js +93 -5
  120. package/dist/client/i18n.js +83 -17
  121. package/dist/client/observability/ThumbsFeedback.js +10 -8
  122. package/dist/client/settings/AccountSettingsCard.js +48 -19
  123. package/dist/client/sharing/ShareButton.d.ts +1 -2
  124. package/dist/client/sharing/ShareButton.js +151 -81
  125. package/dist/client/sharing/ShareDialog.js +5 -4
  126. package/dist/client/use-chat-threads.js +10 -14
  127. package/dist/coding-tools/run-code.js +2 -1
  128. package/dist/coding-tools/sandbox/background.d.ts +1 -0
  129. package/dist/coding-tools/sandbox/background.js +8 -1
  130. package/dist/coding-tools/sandbox/executions-store.d.ts +2 -0
  131. package/dist/coding-tools/sandbox/executions-store.js +41 -3
  132. package/dist/collab/routes.d.ts +1 -1
  133. package/dist/collab/struct-routes.d.ts +1 -1
  134. package/dist/index.d.ts +1 -1
  135. package/dist/localization/core-messages/ar-SA.d.ts +3 -0
  136. package/dist/localization/core-messages/ar-SA.js +541 -0
  137. package/dist/localization/core-messages/de-DE.d.ts +3 -0
  138. package/dist/localization/core-messages/de-DE.js +513 -0
  139. package/dist/localization/core-messages/en-US.d.ts +513 -0
  140. package/dist/localization/core-messages/en-US.js +513 -0
  141. package/dist/localization/core-messages/es-ES.d.ts +3 -0
  142. package/dist/localization/core-messages/es-ES.js +520 -0
  143. package/dist/localization/core-messages/fr-FR.d.ts +3 -0
  144. package/dist/localization/core-messages/fr-FR.js +520 -0
  145. package/dist/localization/core-messages/hi-IN.d.ts +3 -0
  146. package/dist/localization/core-messages/hi-IN.js +513 -0
  147. package/dist/localization/core-messages/ja-JP.d.ts +3 -0
  148. package/dist/localization/core-messages/ja-JP.js +506 -0
  149. package/dist/localization/core-messages/ko-KR.d.ts +3 -0
  150. package/dist/localization/core-messages/ko-KR.js +506 -0
  151. package/dist/localization/core-messages/pt-BR.d.ts +3 -0
  152. package/dist/localization/core-messages/pt-BR.js +520 -0
  153. package/dist/localization/core-messages/zh-CN.d.ts +3 -0
  154. package/dist/localization/core-messages/zh-CN.js +506 -0
  155. package/dist/localization/core-messages/zh-TW.d.ts +3 -0
  156. package/dist/localization/core-messages/zh-TW.js +506 -0
  157. package/dist/localization/core-messages.d.ts +524 -0
  158. package/dist/localization/core-messages.js +124 -0
  159. package/dist/localization/default-messages.d.ts +3 -0
  160. package/dist/localization/default-messages.js +3 -0
  161. package/dist/notifications/routes.d.ts +1 -1
  162. package/dist/observability/routes.d.ts +5 -5
  163. package/dist/progress/routes.d.ts +1 -1
  164. package/dist/provider-api/actions/custom-provider-registration.d.ts +11 -11
  165. package/dist/provider-api/actions/provider-api.d.ts +15 -15
  166. package/dist/resources/handlers.d.ts +1 -1
  167. package/dist/secrets/routes.d.ts +9 -9
  168. package/dist/server/agent-chat/plugin-options.d.ts +7 -2
  169. package/dist/server/agent-chat-plugin.d.ts +10 -0
  170. package/dist/server/agent-chat-plugin.js +144 -41
  171. package/dist/server/agent-engine-api-key-route.d.ts +1 -1
  172. package/dist/server/agent-run-context.d.ts +7 -1
  173. package/dist/server/agent-run-context.js +9 -2
  174. package/dist/server/agent-teams-run-queue.d.ts +3 -0
  175. package/dist/server/agent-teams.js +38 -9
  176. package/dist/server/auth-marketing.d.ts +1 -0
  177. package/dist/server/auth-marketing.js +0 -2
  178. package/dist/server/auth.d.ts +1 -0
  179. package/dist/server/auth.js +18 -0
  180. package/dist/server/index.d.ts +1 -1
  181. package/dist/server/onboarding-html.d.ts +1 -0
  182. package/dist/server/onboarding-html.js +2 -88
  183. package/dist/server/realtime-token.d.ts +1 -1
  184. package/dist/server/request-context.d.ts +7 -0
  185. package/dist/server/request-context.js +15 -0
  186. package/dist/shared/markdown-block-split.d.ts +16 -0
  187. package/dist/shared/markdown-block-split.js +81 -5
  188. package/dist/styles/agent-native.css +13 -0
  189. package/dist/voice/voice-cleanup-prompt.js +1 -0
  190. package/docs/content/agent-surfaces.mdx +30 -0
  191. package/package.json +2 -2
  192. package/corpus/templates/clips/shared/mic-audio-cleanup.ts +0 -350
@@ -0,0 +1,513 @@
1
+ const messages = {
2
+ "approval.alwaysAllow": "Always allow",
3
+ "approval.alwaysAllowHint": "Approve and always allow this exact command",
4
+ "approval.approve": "Approve",
5
+ "approval.approved": "Approved. Re-running {{tool}}...",
6
+ "approval.denied": "Denied. {{tool}} did not run.",
7
+ "approval.deny": "Deny",
8
+ "approval.question": "Approve to run {{tool}}?",
9
+ "auth.expiredDescription": "Your session may have expired. Log out and log back in to reconnect.",
10
+ "auth.expiredTitle": "Session expired",
11
+ "auth.logIn": "Log in",
12
+ "auth.logOut": "Log out",
13
+ "auth.refreshChat": "Refresh chat",
14
+ "auth.refreshDescription": "You're signed in, but this chat connection needs to reconnect.",
15
+ "auth.refreshTitle": "Chat session needs refresh",
16
+ "auth.requiredDescription": "You need to log in to use the agent.",
17
+ "auth.requiredTitle": "Authentication required",
18
+ "commands.act": "Switch back to acting",
19
+ "commands.available": "Available commands",
20
+ "commands.clear": "Start a new chat (keeps current chat in history)",
21
+ "commands.closeHelp": "Close help",
22
+ "commands.help": "Show this list of commands",
23
+ "commands.history": "Browse all chats",
24
+ "commands.mention": "Mention files, agents, or resources",
25
+ "commands.new": "Same as /clear",
26
+ "commands.plan": "Switch to read-only planning",
27
+ "common.agent": "Agent",
28
+ "common.cancel": "Cancel",
29
+ "common.collapse": "Collapse",
30
+ "common.connect": "Connect",
31
+ "common.continue": "Continue",
32
+ "common.copied": "Copied",
33
+ "common.copy": "Copy",
34
+ "common.details": "Details",
35
+ "common.dismiss": "Dismiss",
36
+ "common.dismissError": "Dismiss error",
37
+ "common.expand": "Expand",
38
+ "common.loading": "Loading...",
39
+ "common.no": "No",
40
+ "common.retry": "Retry",
41
+ "common.save": "Save",
42
+ "common.saveFailed": "Save failed",
43
+ "common.saveFailedStatus": "Save failed ({{status}})",
44
+ "common.saving": "Saving...",
45
+ "common.settings": "Settings",
46
+ "common.waiting": "Waiting...",
47
+ "common.yes": "Yes",
48
+ "composer.attachmentError": "Attachment could not be processed.",
49
+ "composer.dropToAttach": "Drop to attach",
50
+ "composer.droppedFileError": "Could not add the dropped file. Try a different format.",
51
+ "composer.openDesktop": "Open Desktop to use this chat.",
52
+ "composer.removeAttachment": "Remove {{name}}",
53
+ "composer.scrollToBottom": "Scroll to bottom",
54
+ "composer.stopResponse": "Stop response",
55
+ "composer.subAgentReadOnly": "Send messages to the orchestrator chat — this sub-agent runs automatically",
56
+ "commands.clearShort": "Start a new chat",
57
+ "commands.newShort": "Start a new chat",
58
+ "composer.actDescription": "Use tools and make approved changes",
59
+ "composer.activeAppContext": "Active app context",
60
+ "composer.actMode": "Act mode",
61
+ "composer.add": "Add...",
62
+ "composer.addOwnKeys": "Custom keys",
63
+ "composer.assets.closePicker": "Close image picker",
64
+ "composer.assets.contextTitle": "Image: {{title}}",
65
+ "composer.assets.generatedImage": "Generated image",
66
+ "composer.assets.generateImage": "Generate image",
67
+ "composer.assets.invalidUrl": "The configured image picker URL is not valid.",
68
+ "composer.assets.loadingPicker": "Loading Assets picker",
69
+ "composer.assets.openPicker": "Open Assets image picker",
70
+ "composer.assets.openSecurely": "Open Assets in a new tab to sign in and choose an image securely.",
71
+ "composer.assets.pickerTitle": "Assets image picker",
72
+ "composer.auto": "Auto",
73
+ "composer.builderModelCredits": "Free credits for Claude, OpenAI & Gemini",
74
+ "composer.chatGptSubscription": "ChatGPT subscription",
75
+ "composer.closePreview": "Close preview",
76
+ "composer.configureProviderKeys": "Configure Anthropic, OpenAI, or another provider",
77
+ "composer.connectAbove": "Connect AI above to continue...",
78
+ "composer.connectBuilder": "Connect Builder.io",
79
+ "composer.connectingBuilder": "Connecting Builder.io…",
80
+ "composer.costHigher": "Higher cost",
81
+ "composer.costLower": "Lower cost",
82
+ "composer.costMedium": "Medium cost",
83
+ "composer.createAutomation": "Create Automation",
84
+ "composer.createAutomationPrefix": "Create an automation: ",
85
+ "composer.createExtension": "Create Extension",
86
+ "composer.createExtensionPrefix": "Create an extension: ",
87
+ "composer.createSkill": "Create Skill",
88
+ "composer.createSkillPrefix": "Create a skill: ",
89
+ "composer.currentDraft": "Current draft",
90
+ "composer.defaultModel": "Default model",
91
+ "composer.describeAutomation": "Describe what you want to automate...",
92
+ "composer.describeExtension": "Describe the interactive extension you want to build...",
93
+ "composer.describeSchedule": "Describe what should happen and when...",
94
+ "composer.describeSkill": "Describe the skill you want to create...",
95
+ "composer.documentTooLarge": '"{{name}}" is {{size}} MB. {{label}} are capped at {{maxSize}} MB to stay within message limits. Please reduce the file size or split it into smaller parts.',
96
+ "composer.file": "file",
97
+ "composer.imageModel": "Image model",
98
+ "composer.imagePreview": "Image preview",
99
+ "composer.loadingModels": "Loading models",
100
+ "composer.loadingModelsProgress": "Loading models…",
101
+ "composer.menu.createAutomation": "Create Automation",
102
+ "composer.menu.createAutomationDescription": "Set up a when-X-do-Y rule",
103
+ "composer.menu.createExtension": "Create Extension",
104
+ "composer.menu.createExtensionDescription": "Build a mini app extension",
105
+ "composer.menu.createSkill": "Create Skill",
106
+ "composer.menu.createSkillDescription": "Teach the agent a new ability",
107
+ "composer.menu.generateImage": "Generate Image",
108
+ "composer.menu.generateImageDescription": "Open the Assets image picker",
109
+ "composer.menu.integrations": "Integrations",
110
+ "composer.menu.integrationsDescription": "Connect tools and services to the agent",
111
+ "composer.menu.scheduleTask": "Schedule Task",
112
+ "composer.menu.scheduleTaskDescription": "Run something on a schedule",
113
+ "composer.menu.uploadFile": "Upload File",
114
+ "composer.menu.uploadFileDescription": "Images, PDFs, text/code, JSON, CSV",
115
+ "composer.messageAgent": "Message agent...",
116
+ "composer.model": "Model",
117
+ "composer.needsApiKey": "needs API key",
118
+ "composer.pageTitle": "Page title",
119
+ "composer.pastedImageError": "Could not attach the pasted image. Try a different format.",
120
+ "composer.pastedTextError": "Could not attach the pasted text.",
121
+ "composer.plan": "Plan",
122
+ "composer.planDescription": "Read-only research and approval first",
123
+ "composer.planDesktopRequired": "Open Agent Native Desktop to use Plan mode.",
124
+ "composer.previewAttachment": "Preview {{name}}",
125
+ "composer.reasoning": "Reasoning",
126
+ "composer.reasoningEffort.auto": "Auto",
127
+ "composer.reasoningEffort.high": "High",
128
+ "composer.reasoningEffort.low": "Low",
129
+ "composer.reasoningEffort.max": "Max",
130
+ "composer.reasoningEffort.medium": "Medium",
131
+ "composer.reasoningEffort.minimal": "Minimal",
132
+ "composer.reasoningEffort.none": "None",
133
+ "composer.reasoningEffort.xhigh": "Extra high",
134
+ "composer.reasoningExtraHighShort": "XHigh",
135
+ "composer.reasoningMediumShort": "Med",
136
+ "composer.reasoningMinimalShort": "Min",
137
+ "composer.removeContext": "Remove {{name}} context",
138
+ "composer.removeReference": "Remove {{name}} reference",
139
+ "composer.route": "Route",
140
+ "composer.scheduleTask": "Schedule Task",
141
+ "composer.scheduleTaskPrefix": "Create a recurring job: ",
142
+ "composer.selectedReferences": "Selected references",
143
+ "composer.sendMessage": "Send message",
144
+ "composer.skill.added": 'Skill "{{name}}" added',
145
+ "composer.skill.back": "Back",
146
+ "composer.skill.content": "Content",
147
+ "composer.skill.createDescription": "Describe a skill and let the agent draft it",
148
+ "composer.skill.createNew": "Create new skill",
149
+ "composer.skill.name": "Skill name",
150
+ "composer.skill.review": "Review the content from {{name}} before saving.",
151
+ "composer.skill.savedAt": "Saved at",
152
+ "composer.skill.saveFailed": "Failed to save skill file",
153
+ "composer.skill.selectedFile": "the selected file",
154
+ "composer.skill.uploadDescription": "Import an existing SKILL.md file",
155
+ "composer.skill.uploadFailedStatus": "Upload failed ({{status}})",
156
+ "composer.skill.uploadFile": "Upload skill file",
157
+ "composer.upload": "Upload",
158
+ "composer.uploadFailed": "Could not upload the selected file.",
159
+ "composer.useAttachedContext": "Use the attached context.",
160
+ "mentions.commands": "Commands",
161
+ "mentions.learnMore": "Learn more",
162
+ "mentions.noResults": "No results found",
163
+ "mentions.noSkills": "No skills available",
164
+ "mentions.sections.agents": "Agents",
165
+ "mentions.sections.connectedAgents": "Connected Agents",
166
+ "mentions.sections.files": "Files",
167
+ "mentions.sections.other": "Other",
168
+ "mentions.skills": "Skills",
169
+ "mentions.typeToSearch": "Type to search...",
170
+ "pastedText.characters": "{{formattedCount}} chars",
171
+ "pastedText.characters_one": "{{formattedCount}} char",
172
+ "pastedText.characters_other": "{{formattedCount}} chars",
173
+ "pastedText.lines": "{{formattedCount}} lines",
174
+ "pastedText.lines_one": "{{formattedCount}} line",
175
+ "pastedText.lines_other": "{{formattedCount}} lines",
176
+ "pastedText.preview": "Preview pasted text",
177
+ "pastedText.remove": "Remove pasted text",
178
+ "pastedText.title": "Pasted text",
179
+ "voice.dictation.cancel": "Cancel (Esc)",
180
+ "voice.dictation.cancelRecording": "Cancel recording",
181
+ "voice.dictation.start": "Dictate ({{shortcut}})",
182
+ "voice.dictation.stopRecording": "Stop recording",
183
+ "voice.dictation.transcribing": "Transcribing…",
184
+ "voiceMode.connectBuilder": "Connect Builder.io",
185
+ "voiceMode.end": "End voice mode",
186
+ "voiceMode.entryButtonLabel": "Use microphone",
187
+ "voiceMode.errors.channelDisconnected": "The realtime voice control channel disconnected.",
188
+ "voiceMode.errors.connectionFailed": "The realtime voice connection failed.",
189
+ "voiceMode.errors.connectionTimedOut": "The realtime voice connection timed out.",
190
+ "voiceMode.errors.offerFailed": "The browser did not create an audio offer.",
191
+ "voiceMode.errors.responseFailed": "OpenAI could not complete the voice response.",
192
+ "voiceMode.errors.sessionFailed": "The realtime voice session encountered an error.",
193
+ "voiceMode.errors.unsupported": "This browser does not support realtime voice conversations.",
194
+ "voiceMode.hideChat": "Hide chat",
195
+ "voiceMode.keepDictating": "Dictate",
196
+ "voiceMode.promptDescription": "Voice mode keeps listening while the agent navigates and takes actions.",
197
+ "voiceMode.promptTitle": "Use your voice",
198
+ "voiceMode.rememberPreference": "Remember my preference",
199
+ "voiceMode.settings.autoLanguage": "Auto",
200
+ "voiceMode.settings.defaultMicrophone": "System default",
201
+ "voiceMode.settings.intelligence": "Intelligence",
202
+ "voiceMode.settings.intelligenceLevels.balanced": "Balanced",
203
+ "voiceMode.settings.intelligenceLevels.deep": "Deep",
204
+ "voiceMode.settings.intelligenceLevels.instant": "Instant",
205
+ "voiceMode.settings.language": "Language",
206
+ "voiceMode.settings.languages.de": "German",
207
+ "voiceMode.settings.languages.en": "English",
208
+ "voiceMode.settings.languages.es": "Spanish",
209
+ "voiceMode.settings.languages.fr": "French",
210
+ "voiceMode.settings.languages.it": "Italian",
211
+ "voiceMode.settings.languages.ja": "Japanese",
212
+ "voiceMode.settings.languages.ko": "Korean",
213
+ "voiceMode.settings.languages.pt": "Portuguese",
214
+ "voiceMode.settings.languages.zh": "Chinese",
215
+ "voiceMode.settings.microphone": "Microphone",
216
+ "voiceMode.settings.microphoneNumber": "Microphone {{number}}",
217
+ "voiceMode.settings.microphoneSwitchFailed": "Could not switch microphones. Your current microphone is still active.",
218
+ "voiceMode.settings.voiceChangePending": "Your new voice will apply next time you start voice mode.",
219
+ "voiceMode.settings.voiceDescriptions.alloy": "Balanced and neutral",
220
+ "voiceMode.settings.voiceDescriptions.ash": "Smooth and confident",
221
+ "voiceMode.settings.voiceDescriptions.ballad": "Warm and expressive",
222
+ "voiceMode.settings.voiceDescriptions.cedar": "Clear and grounded",
223
+ "voiceMode.settings.voiceDescriptions.coral": "Friendly and bright",
224
+ "voiceMode.settings.voiceDescriptions.echo": "Clear and direct",
225
+ "voiceMode.settings.voiceDescriptions.marin": "Warm and natural",
226
+ "voiceMode.settings.voiceDescriptions.sage": "Calm and thoughtful",
227
+ "voiceMode.settings.voiceDescriptions.shimmer": "Light and upbeat",
228
+ "voiceMode.settings.voiceDescriptions.verse": "Expressive and versatile",
229
+ "voiceMode.settings.voiceStyle": "Voice style",
230
+ "voiceMode.setupDescription": "Connect Builder.io to use managed voice with free credits, or add your own keys.",
231
+ "voiceMode.setupTitle": "Set up voice mode",
232
+ "voiceMode.showChat": "Show chat",
233
+ "voiceMode.start": "Real-time voice",
234
+ "voiceMode.startWithOpenAiKey": "Start with OpenAI key",
235
+ "voiceMode.status.connecting": "Connecting",
236
+ "voiceMode.status.ending": "Ending voice mode",
237
+ "voiceMode.status.error": "Voice mode needs attention",
238
+ "voiceMode.status.listening": "Listening",
239
+ "voiceMode.status.speaking": "Speaking",
240
+ "voiceMode.status.working": "Working",
241
+ "voiceMode.useOpenAiKey": "Add your own keys",
242
+ "voiceMode.voiceSettings": "Voice settings",
243
+ "duration.hourShort": "h",
244
+ "duration.minuteShort": "m",
245
+ "duration.secondShort": "s",
246
+ "empty.loadingChat": "Loading chat...",
247
+ "empty.prompt": "How can I help you?",
248
+ "error.afterDuration": "{{headline}} after {{duration}}",
249
+ "error.failed": "The agent hit an error",
250
+ "error.stopped": "The agent stopped before finishing",
251
+ "errorMessages.agentConnection": "The agent connection was interrupted. Check your connection and retry.",
252
+ "errorMessages.builderAuthentication": "Builder rejected the connected credentials. Reconnect Builder.io in Settings, then retry.",
253
+ "errorMessages.builderModelUnauthorized": "The provider behind this model rejected the request. Pick a different model, then retry.",
254
+ "errorMessages.errorPrefix": "Error: {{message}}",
255
+ "errorMessages.gatewayNoDetails": "The model gateway returned no error details and the chat couldn't recover. Wait a moment and retry, or start a new chat if it keeps happening.",
256
+ "errorMessages.inactivityTimeout": "The agent connection timed out before it could finish. You can continue from the partial work or retry.",
257
+ "errorMessages.invalidToolSchema": "A tool schema was invalid, so the model rejected the request before it started. The invalid tool can be skipped and the request retried.",
258
+ "errorMessages.noProviderConnected": "No LLM provider is connected. Open this app's Manage agent > LLM, then connect Builder.io or add a provider key.",
259
+ "errorMessages.openBuilderSpaceSettings": "Open Builder space settings",
260
+ "errorMessages.providerAuthentication": "The model provider rejected the saved API key. Update the key in Settings → Integrations → API keys, then retry.",
261
+ "errorMessages.providerConfiguration": "This model can't use tools with the current settings. Switch models in Settings, then retry.",
262
+ "errorMessages.providerHtml": "The provider returned an HTML error page.",
263
+ "errorMessages.providerNetwork": "The model provider could not be reached. Check your connection and retry.",
264
+ "errorMessages.providerRateLimit": "The model provider is rate-limiting this chat right now. Wait a moment, then retry.",
265
+ "errorMessages.startNewChat": "Start new chat",
266
+ "errorMessages.upgradeAtBuilder": "Upgrade at Builder.io",
267
+ "feedback.inaccurate": "Inaccurate",
268
+ "feedback.notHelpful": "Not helpful",
269
+ "feedback.thumbsDown": "Thumbs down",
270
+ "feedback.thumbsUp": "Thumbs up",
271
+ "feedback.tooSlow": "Too slow",
272
+ "feedback.wrongTool": "Wrong tool",
273
+ "header.switchToCli": "Switch to CLI",
274
+ "history.active": "Active",
275
+ "history.empty": "No chats yet",
276
+ "history.loadOlder": "Load older chats",
277
+ "history.noMatches": "No matching chats",
278
+ "history.open": "Open",
279
+ "history.pinned": "Pinned",
280
+ "history.search": "Search chats...",
281
+ "history.searching": "Searching...",
282
+ "history.untitledChat": "Chat",
283
+ "history.yesterday": "Yesterday",
284
+ "limit.account": "your account",
285
+ "limit.descriptionAll": "The agent used all available steps. Keep going in a fresh turn, or raise the {{scope}} limit first.",
286
+ "limit.descriptionWithCount": "The agent used {{formattedCount}} steps. Keep going in a fresh turn, or raise the {{scope}} limit first.",
287
+ "limit.descriptionWithCount_one": "The agent used {{formattedCount}} step. Keep going in a fresh turn, or raise the {{scope}} limit first.",
288
+ "limit.descriptionWithCount_other": "The agent used {{formattedCount}} steps. Keep going in a fresh turn, or raise the {{scope}} limit first.",
289
+ "limit.keepGoing": "Keep going",
290
+ "limit.maxSteps": "Max steps",
291
+ "limit.namedOrganization": "{{organization}} organization",
292
+ "limit.organization": "organization",
293
+ "limit.ownerOnly": "Only organization owners and admins can change this limit.",
294
+ "limit.reached": "Step limit reached",
295
+ "limit.saveAndContinue": "Save and keep going",
296
+ "message.actions": "Message actions",
297
+ "message.copyMessage": "Copy message",
298
+ "message.copyRequestId": "Copy request ID",
299
+ "message.requestIdUnavailable": "Request ID unavailable",
300
+ "message.edit": "Edit message",
301
+ "message.forkChat": "Fork chat",
302
+ "message.missingFinal": "The agent stopped without sending a final message. Ask it to continue or retry.",
303
+ "message.messages": "Messages",
304
+ "message.nextBranch": "Next branch",
305
+ "message.noRestoreRun": "This message has no run to restore to.",
306
+ "message.previousBranch": "Previous branch",
307
+ "message.regenerate": "Regenerate response",
308
+ "message.restoreFailed": "Restore failed ({{status}}).",
309
+ "message.restoreQuestion": "Restore to here?",
310
+ "message.restoreRequestFailed": "Restore request failed.",
311
+ "message.restoring": "Restoring...",
312
+ "message.revertHere": "Revert to here",
313
+ "message.sentAt": "Sent {{time}}",
314
+ "contextMeter.ariaLabel": "Context {{percent}}%, {{totalTokens}}{{breakdown}}. Open Context X-Ray.",
315
+ "contextMeter.breakdown": " total: {{systemTokens}} system + {{conversationTokens}} conversation",
316
+ "contextMeter.summary": "Context {{percent}}% · {{totalTokens}}",
317
+ "contextMeter.summaryBreakdown": " ({{systemTokens}} system + {{conversationTokens}} conversation)",
318
+ "contextXray.advisory": "advisory",
319
+ "contextXray.conversation": "{{count}} conversation",
320
+ "contextXray.currentStatus": "current status",
321
+ "contextXray.estimated": "estimated",
322
+ "contextXray.estimatedPrefix": " estimated",
323
+ "contextXray.estimatedSuffix": " · estimated",
324
+ "contextXray.evict": "Evict",
325
+ "contextXray.evicted": "{{count}} evicted",
326
+ "contextXray.evictSegment": "Evict segment",
327
+ "contextXray.framework": "framework",
328
+ "contextXray.free": "{{count}} free",
329
+ "contextXray.governance.inherited": "Inherited",
330
+ "contextXray.governance.required": "Required",
331
+ "contextXray.governance.user": "Your context",
332
+ "contextXray.groups.conversation": "Conversation",
333
+ "contextXray.groups.evicted": "Evicted",
334
+ "contextXray.groups.filesRead": "Files read",
335
+ "contextXray.groups.pinned": "Pinned",
336
+ "contextXray.groups.taskInstructions": "Task & instructions",
337
+ "contextXray.groups.thinking": "Thinking",
338
+ "contextXray.groups.toolResults": "Tool results",
339
+ "contextXray.inspect": "Inspect {{name}}",
340
+ "contextXray.list": "List",
341
+ "contextXray.loading": "Loading context...",
342
+ "contextXray.map": "Map",
343
+ "contextXray.messageIndex": "message index",
344
+ "contextXray.noActiveSegments": "No active segments",
345
+ "contextXray.panelTitle": "Context X-Ray",
346
+ "contextXray.partIndex": "part index",
347
+ "contextXray.pin": "Pin",
348
+ "contextXray.pinned": "{{count}} pinned",
349
+ "contextXray.pinSegment": "Pin segment",
350
+ "contextXray.protectedDescription": "This segment is part of the active turn and cannot be evicted yet.",
351
+ "contextXray.protectedDuringTurn": "Protected during active turn",
352
+ "contextXray.recordEvictionIntent": "Record eviction intent",
353
+ "contextXray.restore": "Restore",
354
+ "contextXray.restoreSegment": "Restore segment",
355
+ "contextXray.segment": "Segment",
356
+ "contextXray.showList": "Show context list",
357
+ "contextXray.showMap": "Show context map",
358
+ "contextXray.status.active": "Active",
359
+ "contextXray.status.evicted": "Evicted",
360
+ "contextXray.status.pinned": "Pinned",
361
+ "contextXray.status.protected": "Protected",
362
+ "contextXray.status.summarized": "Summarized",
363
+ "contextXray.system": "{{count}} system",
364
+ "contextXray.systemOrdered": "System · ordered, not evictable",
365
+ "contextXray.tokens": "tokens",
366
+ "contextXray.tokensShare": "tokens · {{share}}%",
367
+ "contextXray.unpin": "Unpin",
368
+ "contextXray.unpinSegment": "Unpin segment",
369
+ "plan.act": "Act",
370
+ "plan.implement": "Implement",
371
+ "plan.mode": "Plan mode",
372
+ "plan.ready": "Plan ready",
373
+ "plan.switchToAct": "Switch to Act mode",
374
+ "queue.count": "{{count}} queued",
375
+ "queue.followUp": "Send a follow-up...",
376
+ "queue.followUpWithCount": "{{count}} queued — send a follow-up...",
377
+ "queue.remove": "Remove from queue",
378
+ "queue.sendNow": "Send now",
379
+ "queue.sendNowHint": "Send now (stops the current response)",
380
+ "recovery.connectingBuilder": "Connecting Builder.io",
381
+ "recovery.copyDebug": "Copy debug",
382
+ "recovery.copyFailed": "Copy failed",
383
+ "recovery.credentialRejected": "The current Builder.io or model-provider credential was rejected. Reconnect Builder.io, then retry this message.",
384
+ "recovery.diagnoseRetry": "Diagnose and retry",
385
+ "recovery.forkDescription": "Fork this conversation into a separate chat thread.",
386
+ "recovery.forkFailed": "Could not fork this chat. Try starting a new chat.",
387
+ "recovery.forking": "Forking...",
388
+ "recovery.newChatHint": "If retry lands on the same error, start a new chat session and continue from what already changed.",
389
+ "recovery.backgroundTimeout": "The previous background agent run reached its time limit before finishing. The partial work was preserved; continue or retry to pick up from here.",
390
+ "recovery.noProgress": "The previous agent run stopped producing visible progress during recovery, so it was stopped before it could keep looping.",
391
+ "recovery.statusCheckFailed": "Couldn't reach the server to check whether the agent is still working. Send your message again to retry.",
392
+ "recovery.streamEnded": "The previous agent stream ended while the run was recovering. Continue or retry to reconnect to the run.",
393
+ "recovery.reconnectBuilder": "Reconnect Builder.io",
394
+ "selection.attached": "{{formattedCount}} characters of selection attached",
395
+ "selection.attached_one": "{{formattedCount}} character of selection attached",
396
+ "selection.attached_other": "{{formattedCount}} characters of selection attached",
397
+ "selection.clear": "Clear selection context",
398
+ "setup.addOwnKeys": "Add your own keys",
399
+ "setup.builderCredits": "Builder.io includes free credits, or use your own API key.",
400
+ "setup.builderOrOwnKeys": "Use Builder.io (free credits), or add your own provider keys.",
401
+ "setup.connectAi": "Connect AI",
402
+ "setup.connectBuilder": "Connect Builder.io",
403
+ "setup.connectPlaceholder": "Connect AI to start chatting...",
404
+ "setup.connectToChat": "Connect AI to chat",
405
+ "setup.connectToStart": "Connect AI to start chatting",
406
+ "setup.connected": "Connected",
407
+ "setup.connectedOrganization": "Connected — {{organization}}",
408
+ "setup.connectedTo": "Connected to {{organization}}",
409
+ "setup.freeCredits": "Free credits for LLM, hosting, and more — no API key needed",
410
+ "setup.keyProvider": "API key provider",
411
+ "setup.keySaveFailed": "Could not save the key.",
412
+ "setup.storedSecurely": "Stored securely for this app only.",
413
+ "share.add": "Add",
414
+ "share.addPeopleEmail": "Add people by email",
415
+ "share.addPeopleOrganization": "Add people from your organization",
416
+ "share.admin": "Admin",
417
+ "share.adminDescription": "Can edit and manage access",
418
+ "share.commenter": "Commenter",
419
+ "share.commenterDescription": "Can view and add comments",
420
+ "share.advanced": "Advanced",
421
+ "share.advancedAccess": "Advanced access",
422
+ "share.advancedDescription": "Control how organization access appears in search.",
423
+ "share.copied": "Copied",
424
+ "share.copy": "Copy",
425
+ "share.editor": "Editor",
426
+ "share.editorDescription": "Can edit",
427
+ "share.generalAccess": "General access",
428
+ "share.hideInSearch": "Hide in search",
429
+ "share.linkCanStillOpen": "People with the link can still open this.",
430
+ "share.loading": "Loading...",
431
+ "share.loadMore": "Load more",
432
+ "share.loadPeopleFailed": "Could not load people.",
433
+ "share.noAccess": "No one has access yet.",
434
+ "share.noMatches": "No matches.",
435
+ "share.noPeopleFound": "No people found.",
436
+ "share.notifyPeople": "Notify people",
437
+ "share.message": "Message",
438
+ "share.addMessage": "Add a message",
439
+ "share.hideMessage": "Hide message",
440
+ "share.messagePlaceholder": "Add a short note (optional)",
441
+ "share.organization": "Organization",
442
+ "share.organizationDescription": "Anyone in your organization can view",
443
+ "share.owner": "Owner",
444
+ "share.peopleWithAccess": "People with access",
445
+ "share.private": "Private",
446
+ "share.privateDescription": "Only people with access can view",
447
+ "share.public": "Public",
448
+ "share.publicDescription": "Anyone with the link can view",
449
+ "share.remove": "Remove",
450
+ "share.role": "Role",
451
+ "share.searching": "Searching...",
452
+ "share.share": "Share",
453
+ "share.shareLink": "Share link",
454
+ "share.shareOptions": "Share options",
455
+ "share.titleWithResource": 'Share "{{title}}"',
456
+ "share.titleWithType": "Share {{type}}",
457
+ "share.triggerWithVisibility": "Share ({{visibility}})",
458
+ "share.unknownPerson": "Unknown person",
459
+ "share.viewer": "Viewer",
460
+ "share.viewerDescription": "Can view",
461
+ "status.resuming": "Resuming",
462
+ "status.stillWorking": "Still working",
463
+ "status.thinking": "Thinking",
464
+ "status.working": "Working",
465
+ "shell.chat": "Chat",
466
+ "shell.loadingTerminal": "Loading terminal...",
467
+ "shell.toggleAgent": "Toggle agent",
468
+ "status.contactingModel": "Contacting model",
469
+ "status.starting": "Starting {{activity}}...",
470
+ "status.preparing": "Preparing {{activity}}...",
471
+ "status.writing": "Writing {{activity}}...",
472
+ "status.stillGenerating": "Still generating {{activity}}",
473
+ "tabs.allChats": "All chats",
474
+ "tabs.closeTab": "Close tab",
475
+ "tabs.main": "Main",
476
+ "tabs.newChat": "New chat",
477
+ "tabs.subAgent": "Sub-agent...",
478
+ "tool.askedAgent": "Asked {{agent}}",
479
+ "tool.askingAgent": "Asking {{agent}}...",
480
+ "tool.elapsed": "{{duration}} elapsed",
481
+ "tool.askingAgentFailed": "Error asking {{agent}}",
482
+ "tool.input": "Input",
483
+ "tool.inputWithLabel": "Input - {{label}}",
484
+ "tool.interrupted": "Interrupted before this finished reporting — it may or may not have completed. Check before retrying.",
485
+ "tool.longRunning": "Still working. Large updates can take a minute or two.",
486
+ "tool.ranTools": "Ran {{count}} tools",
487
+ "tool.ranTools_one": "Ran {{count}} tool",
488
+ "tool.ranTools_other": "Ran {{count}} tools",
489
+ "tool.rawOutput": "Raw {{tool}} tool call output",
490
+ "tool.repeated": "Repeated {{count}} times",
491
+ "tool.result": "Result",
492
+ "tool.subAgentTask": "Sub-agent task",
493
+ "tool.thought": "Thought",
494
+ "tool.thoughtFor": "Thought for {{duration}}",
495
+ "tool.viewOutput": "View {{tool}} output",
496
+ "tool.worked": "Worked",
497
+ "tool.workedFor": "Worked for {{duration}}",
498
+ "widget.chart": "Chart",
499
+ "widget.dataChart": "Data chart",
500
+ "widget.dataInsights": "Data insights",
501
+ "widget.dataTable": "Data table",
502
+ "widget.downloadCsv": "Download CSV",
503
+ "widget.loadingToolResult": "Loading tool result",
504
+ "widget.noRows": "No rows",
505
+ "widget.points": "{{formattedCount}} points",
506
+ "widget.points_one": "{{formattedCount}} point",
507
+ "widget.points_other": "{{formattedCount}} points",
508
+ "widget.rows": "{{formattedCount}} rows",
509
+ "widget.rows_one": "{{formattedCount}} row",
510
+ "widget.rows_other": "{{formattedCount}} rows",
511
+ "widget.sampled": "sampled",
512
+ };
513
+ export default messages;
@@ -0,0 +1,3 @@
1
+ import type { AgentChatTranslation } from "../core-messages.js";
2
+ declare const messages: AgentChatTranslation;
3
+ export default messages;