@agent-native/core 0.200.0 → 0.200.1-nightly-20261002213029
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.
- package/dist/agent/actions/manage-builder-connection.js +1 -1
- package/dist/agent/engine/ai-sdk-engine.js +8 -1
- package/dist/agent/engine/builder-engine.js +1 -1
- package/dist/agent/engine/credential-errors.d.ts +1 -1
- package/dist/agent/engine/credential-errors.js +2 -2
- package/dist/agent/engine/translate-ai-sdk.d.ts +1 -1
- package/dist/agent/engine/translate-ai-sdk.js +2 -1
- package/dist/agent/production-agent.js +1 -1
- package/dist/agent/run-manager.d.ts +7 -0
- package/dist/agent/run-manager.js +4 -0
- package/dist/agent/thread-data-builder.js +63 -14
- package/dist/brand-kit/fig/index.js +1 -1
- package/dist/cli/skills-content/turn-into-app-skill.d.ts +1 -1
- package/dist/cli/skills-content/turn-into-app-skill.js +2 -2
- package/dist/client/agent-engine-key.js +1 -1
- package/dist/client/chat/agentkit-agent-native.js +26 -14
- package/dist/client/error-format.js +5 -5
- package/dist/client/uploads/upload-editor-image.js +1 -1
- package/dist/client/use-chat-threads.js +48 -1
- package/dist/collab/awareness.d.ts +2 -2
- package/dist/deploy/build.js +7 -1
- package/dist/extensions/web-search-tool.js +2 -2
- package/dist/file-upload/actions/upload-image.d.ts +1 -1
- package/dist/file-upload/actions/upload-image.js +1 -1
- package/dist/file-upload/builder.js +2 -2
- package/dist/file-upload/registry.js +1 -1
- package/dist/ingestion/pptx.d.ts +3 -1
- package/dist/ingestion/pptx.js +3 -2
- package/dist/jobs/actions/manage-recurring-job.d.ts +1 -1
- package/dist/localization/default-messages.js +11 -11
- package/dist/mcp/build-server.js +11 -5
- package/dist/mcp-client/manager.js +14 -2
- package/dist/notifications/routes.d.ts +3 -3
- package/dist/observability/metrics.js +10 -1
- package/dist/onboarding/app-profile.js +1 -1
- package/dist/onboarding/default-steps.js +4 -4
- package/dist/private-blob/attachment-errors.js +1 -1
- package/dist/progress/routes.d.ts +1 -1
- package/dist/resources/handlers.js +1 -1
- package/dist/secrets/routes.d.ts +6 -6
- package/dist/server/action-routes.js +14 -3
- package/dist/server/agent-chat/browser-team-tools.js +4 -4
- package/dist/server/agent-chat/context-tools.js +2 -2
- package/dist/server/agent-chat-ai-setup.js +1 -1
- package/dist/server/agent-chat-plugin.d.ts +2 -2
- package/dist/server/agent-chat-plugin.js +9 -5
- package/dist/server/agent-engine-api-key-route.d.ts +1 -1
- package/dist/server/agent-engine-default-model-route.d.ts +1 -1
- package/dist/server/builder-api-auth.js +5 -5
- package/dist/server/builder-browser.js +1 -1
- package/dist/server/builder-design-systems.js +1 -1
- package/dist/server/core-routes-plugin.d.ts +5 -11
- package/dist/server/core-routes-plugin.js +36 -68
- package/dist/server/credential-provider.js +3 -3
- package/dist/server/deep-link.d.ts +2 -0
- package/dist/server/deep-link.js +30 -3
- package/dist/server/fusion-app.js +1 -1
- package/dist/server/prompts/framework-core.js +1 -1
- package/dist/server/realtime-voice.js +1 -1
- package/dist/server/transcribe-voice.js +3 -3
- package/dist/shared/connect-required.js +1 -1
- package/dist/templates/chat/.agents/skills/turn-into-app/SKILL.md +2 -2
- package/dist/templates/default/.agents/skills/turn-into-app/SKILL.md +2 -2
- package/dist/templates/default/app/i18n/ar-SA.ts +3 -3
- package/dist/templates/default/app/i18n/de-DE.ts +3 -3
- package/dist/templates/default/app/i18n/en-US.ts +3 -3
- package/dist/templates/default/app/i18n/es-ES.ts +3 -3
- package/dist/templates/default/app/i18n/fr-FR.ts +3 -3
- package/dist/templates/default/app/i18n/hi-IN.ts +3 -3
- package/dist/templates/default/app/i18n/ja-JP.ts +3 -3
- package/dist/templates/default/app/i18n/ko-KR.ts +3 -3
- package/dist/templates/default/app/i18n/pt-BR.ts +3 -3
- package/dist/templates/default/app/i18n/zh-CN.ts +3 -3
- package/dist/templates/default/app/i18n/zh-TW.ts +3 -3
- package/dist/templates/workspace-core/.agents/skills/turn-into-app/SKILL.md +2 -2
- package/dist/templates/workspace-root/.env.example +1 -1
- package/dist/transcription/builder-transcription.js +1 -1
- package/dist/triggers/actions/manage-automation.d.ts +2 -2
- package/docs/content/getting-started.mdx +1 -1
- package/docs/content/multi-app-workspace.mdx +1 -1
- package/docs/content/onboarding.mdx +7 -8
- package/docs/content/real-time-collaboration.mdx +1 -1
- package/docs/content/template-chat-developers.mdx +1 -1
- package/docs/content/template-clips-developers.mdx +1 -1
- package/docs/content/template-content-developers.mdx +1 -1
- package/docs/content/template-slides-features.mdx +2 -2
- package/docs/content/toolkit-settings.mdx +10 -10
- package/docs/content/toolkit-setup-connections.mdx +1 -1
- package/docs/content/tracking.mdx +1 -1
- package/docs/content/updating-ui-in-production.mdx +3 -3
- package/docs/content/voice-input.mdx +1 -1
- package/package.json +4 -4
- package/src/templates/chat/.agents/skills/turn-into-app/SKILL.md +2 -2
- package/src/templates/default/.agents/skills/turn-into-app/SKILL.md +2 -2
- package/src/templates/default/app/i18n/ar-SA.ts +3 -3
- package/src/templates/default/app/i18n/de-DE.ts +3 -3
- package/src/templates/default/app/i18n/en-US.ts +3 -3
- package/src/templates/default/app/i18n/es-ES.ts +3 -3
- package/src/templates/default/app/i18n/fr-FR.ts +3 -3
- package/src/templates/default/app/i18n/hi-IN.ts +3 -3
- package/src/templates/default/app/i18n/ja-JP.ts +3 -3
- package/src/templates/default/app/i18n/ko-KR.ts +3 -3
- package/src/templates/default/app/i18n/pt-BR.ts +3 -3
- package/src/templates/default/app/i18n/zh-CN.ts +3 -3
- package/src/templates/default/app/i18n/zh-TW.ts +3 -3
- package/src/templates/workspace-core/.agents/skills/turn-into-app/SKILL.md +2 -2
- package/src/templates/workspace-root/.env.example +1 -1
|
@@ -47,7 +47,7 @@ Workspace resources are user-facing by default. If you need temporary working fi
|
|
|
47
47
|
"inline embeds (`embed` fenced code block)",
|
|
48
48
|
groupOn("chat") ? "chat history search (`chat-history`)" : "",
|
|
49
49
|
groupOn("automation") ? "recurring jobs (`manage-jobs`)" : "",
|
|
50
|
-
"
|
|
50
|
+
"using Builder.io (`connect-builder`)",
|
|
51
51
|
"browser automation (`set-browser-control`/`activate-browser`)",
|
|
52
52
|
"structured memory (`save-memory`/`delete-memory`)",
|
|
53
53
|
].filter(Boolean);
|
|
@@ -400,7 +400,7 @@ function createSessionHandler(tools, options) {
|
|
|
400
400
|
if (!builderConfigured && !apiKey) {
|
|
401
401
|
setResponseStatus(event, 409);
|
|
402
402
|
return {
|
|
403
|
-
error: gatewayLaneUnavailableMessage("
|
|
403
|
+
error: gatewayLaneUnavailableMessage("Use Builder.io (free tier available) or configure an OpenAI API key to use realtime voice."),
|
|
404
404
|
code: "realtime_voice_setup_required",
|
|
405
405
|
};
|
|
406
406
|
}
|
|
@@ -221,7 +221,7 @@ export function createTranscribeVoiceHandler() {
|
|
|
221
221
|
if (!(await hasBuilderCredential())) {
|
|
222
222
|
setResponseStatus(event, 400);
|
|
223
223
|
return {
|
|
224
|
-
error: gatewayLaneUnavailableMessage(`${label} is selected but Builder.io is not connected.
|
|
224
|
+
error: gatewayLaneUnavailableMessage(`${label} is selected but Builder.io is not connected. Sign in to Builder.io (free tier available) in Settings, or change the provider preference.`),
|
|
225
225
|
};
|
|
226
226
|
}
|
|
227
227
|
try {
|
|
@@ -362,7 +362,7 @@ export function createTranscribeVoiceHandler() {
|
|
|
362
362
|
return {
|
|
363
363
|
error: gatewayLaneUnavailableMessage(builderError
|
|
364
364
|
? `Builder transcription failed: ${builderError}. Add GOOGLE_GENERATIVE_AI_API_KEY, GROQ_API_KEY, or OPENAI_API_KEY in Settings → API Keys to enable a fallback provider.`
|
|
365
|
-
: "No voice transcription provider configured.
|
|
365
|
+
: "No voice transcription provider configured. Use Builder.io (free tier available) or add GOOGLE_GENERATIVE_AI_API_KEY / GROQ_API_KEY / OPENAI_API_KEY in Settings → API Keys."),
|
|
366
366
|
};
|
|
367
367
|
});
|
|
368
368
|
}
|
|
@@ -442,7 +442,7 @@ async function cleanupTranscriptText({ event, text, instructions, contextPack, p
|
|
|
442
442
|
if (!(await hasBuilderCredential())) {
|
|
443
443
|
setResponseStatus(event, 400);
|
|
444
444
|
return {
|
|
445
|
-
error: gatewayLaneUnavailableMessage("Builder.io cleanup is selected but Builder.io is not connected.
|
|
445
|
+
error: gatewayLaneUnavailableMessage("Builder.io cleanup is selected but Builder.io is not connected. Sign in to Builder.io (free tier available) in Settings, or change the provider preference."),
|
|
446
446
|
};
|
|
447
447
|
}
|
|
448
448
|
try {
|
|
@@ -29,7 +29,7 @@ export function connectRequiredResult(input) {
|
|
|
29
29
|
provider: input.provider,
|
|
30
30
|
providerLabel,
|
|
31
31
|
reason,
|
|
32
|
-
message: `${reason}
|
|
32
|
+
message: `${reason} Use ${providerLabel} to continue: choose the button shown here, or set up ${providerLabel} in Settings.`,
|
|
33
33
|
...(connectUrl ? { connectUrl } : {}),
|
|
34
34
|
...(settingsPath ? { settingsPath } : {}),
|
|
35
35
|
},
|
|
@@ -364,7 +364,7 @@ optimistic action patterns. Do not add a parallel CRUD API route for an action.
|
|
|
364
364
|
## 4. Keep onboarding shared
|
|
365
365
|
|
|
366
366
|
Use the framework's existing setup experience. The app should offer the normal
|
|
367
|
-
“
|
|
367
|
+
“Use Builder.io” and “Add your own keys” paths for AI setup. Do not create a
|
|
368
368
|
second credential form or hardcode a provider key.
|
|
369
369
|
|
|
370
370
|
In local-development instructions, add a brief note that a developer can set
|
|
@@ -388,7 +388,7 @@ plain `pnpm dev` has the right first-run behavior without extra flags:
|
|
|
388
388
|
}
|
|
389
389
|
```
|
|
390
390
|
|
|
391
|
-
Either value keeps the shared
|
|
391
|
+
Either value keeps the shared Use Builder.io / Add your own keys choice
|
|
392
392
|
visible; only `"off"` disables first-run onboarding entirely. Do not replace
|
|
393
393
|
this with a local credential form or remove the shared onboarding.
|
|
394
394
|
|
|
@@ -364,7 +364,7 @@ optimistic action patterns. Do not add a parallel CRUD API route for an action.
|
|
|
364
364
|
## 4. Keep onboarding shared
|
|
365
365
|
|
|
366
366
|
Use the framework's existing setup experience. The app should offer the normal
|
|
367
|
-
“
|
|
367
|
+
“Use Builder.io” and “Add your own keys” paths for AI setup. Do not create a
|
|
368
368
|
second credential form or hardcode a provider key.
|
|
369
369
|
|
|
370
370
|
In local-development instructions, add a brief note that a developer can set
|
|
@@ -388,7 +388,7 @@ plain `pnpm dev` has the right first-run behavior without extra flags:
|
|
|
388
388
|
}
|
|
389
389
|
```
|
|
390
390
|
|
|
391
|
-
Either value keeps the shared
|
|
391
|
+
Either value keeps the shared Use Builder.io / Add your own keys choice
|
|
392
392
|
visible; only `"off"` disables first-run onboarding entirely. Do not replace
|
|
393
393
|
this with a local credential form or remove the shared onboarding.
|
|
394
394
|
|
|
@@ -377,9 +377,9 @@ const messages = {
|
|
|
377
377
|
"اسمح لوكيلنا السحابي بإجراء التغييرات نيابةً عنك. ستحصل على رابط للمعاينة والنشر.",
|
|
378
378
|
codeChangeTitle: "وهذا يتطلب تغيير التعليمات البرمجية",
|
|
379
379
|
codeChangeBadge: "تغيير الكود",
|
|
380
|
-
connectBuilderTitle: "
|
|
380
|
+
connectBuilderTitle: "استخدم Builder.io",
|
|
381
381
|
connectBuilderDescription:
|
|
382
|
-
"
|
|
382
|
+
"استخدم Builder.io (تتوفر طبقة مجانية) لتمكين تغييرات التعليمات البرمجية المستندة إلى السحابة من هذا التطبيق.",
|
|
383
383
|
setupRequired: "الإعداد مطلوب",
|
|
384
384
|
branchCreated: "تم إنشاء الفرع",
|
|
385
385
|
close: "إغلاق",
|
|
@@ -636,7 +636,7 @@ const messages = {
|
|
|
636
636
|
back: "رجوع",
|
|
637
637
|
agentEngineRequired: "مطلوب محرك الوكيل",
|
|
638
638
|
agentEngineDescription:
|
|
639
|
-
"
|
|
639
|
+
"استخدم Builder.io (تتوفر طبقة مجانية) أو مفتاح LLM قبل أن يتمكن {{platform}} من الإجابة.",
|
|
640
640
|
openLlm: "افتح LLM",
|
|
641
641
|
setup: "Setup",
|
|
642
642
|
shareDocumentsWith: "مشاركة المستندات مع",
|
|
@@ -368,9 +368,9 @@ const messages = {
|
|
|
368
368
|
"Lassen Sie unseren Cloud-Agenten die Änderungen für Sie vornehmen. Sie erhalten einen Link zur Vorschau und Bereitstellung.",
|
|
369
369
|
codeChangeTitle: "Dies erfordert eine Codeänderung",
|
|
370
370
|
codeChangeBadge: "Codeänderung",
|
|
371
|
-
connectBuilderTitle: "Builder.io
|
|
371
|
+
connectBuilderTitle: "Builder.io verwenden",
|
|
372
372
|
connectBuilderDescription:
|
|
373
|
-
"
|
|
373
|
+
"Verwenden Sie Builder.io (kostenloser Tarif verfügbar), um cloudbasierte Codeänderungen über diese App zu ermöglichen.",
|
|
374
374
|
setupRequired: "Einrichtung erforderlich",
|
|
375
375
|
branchCreated: "Zweig erstellt",
|
|
376
376
|
close: "Schließen",
|
|
@@ -624,7 +624,7 @@ const messages = {
|
|
|
624
624
|
back: "Zurück",
|
|
625
625
|
agentEngineRequired: "Agent-Engine erforderlich",
|
|
626
626
|
agentEngineDescription:
|
|
627
|
-
"
|
|
627
|
+
"Verwenden Sie Builder.io (kostenloser Tarif verfügbar) oder einen LLM-Schlüssel, bevor {{platform}} antworten kann.",
|
|
628
628
|
openLlm: "Öffnen Sie LLM",
|
|
629
629
|
setup: "Setup",
|
|
630
630
|
shareDocumentsWith: "Teilen Sie Dokumente mit",
|
|
@@ -361,9 +361,9 @@ const messages = {
|
|
|
361
361
|
"Let our cloud agent make the changes for you. You'll get a link to preview and deploy.",
|
|
362
362
|
codeChangeTitle: "This requires a code change",
|
|
363
363
|
codeChangeBadge: "Code change",
|
|
364
|
-
connectBuilderTitle: "
|
|
364
|
+
connectBuilderTitle: "Use Builder.io",
|
|
365
365
|
connectBuilderDescription:
|
|
366
|
-
"
|
|
366
|
+
"Use Builder.io (free tier available) to enable cloud-based code changes from this app.",
|
|
367
367
|
setupRequired: "Setup required",
|
|
368
368
|
branchCreated: "Branch created",
|
|
369
369
|
close: "Close",
|
|
@@ -611,7 +611,7 @@ const messages = {
|
|
|
611
611
|
back: "Back",
|
|
612
612
|
agentEngineRequired: "Agent engine required",
|
|
613
613
|
agentEngineDescription:
|
|
614
|
-
"
|
|
614
|
+
"Use Builder.io (free tier available) or an LLM key before {{platform}} can answer.",
|
|
615
615
|
openLlm: "Open LLM",
|
|
616
616
|
setup: "Setup",
|
|
617
617
|
shareDocumentsWith: "Share documents with",
|
|
@@ -372,9 +372,9 @@ const messages = {
|
|
|
372
372
|
"Deje que nuestro agente en la nube haga los cambios por usted. Obtendrá un enlace para obtener una vista previa e implementar.",
|
|
373
373
|
codeChangeTitle: "Esto requiere un cambio de código.",
|
|
374
374
|
codeChangeBadge: "cambio de código",
|
|
375
|
-
connectBuilderTitle: "
|
|
375
|
+
connectBuilderTitle: "Usar Builder.io",
|
|
376
376
|
connectBuilderDescription:
|
|
377
|
-
"
|
|
377
|
+
"Usa Builder.io (nivel gratuito disponible) para habilitar cambios de código basados en la nube desde esta aplicación.",
|
|
378
378
|
setupRequired: "Configuración requerida",
|
|
379
379
|
branchCreated: "Sucursal creada",
|
|
380
380
|
close: "Cerrar",
|
|
@@ -631,7 +631,7 @@ const messages = {
|
|
|
631
631
|
back: "Volver",
|
|
632
632
|
agentEngineRequired: "Se requiere motor de agente",
|
|
633
633
|
agentEngineDescription:
|
|
634
|
-
"
|
|
634
|
+
"Usa Builder.io (nivel gratuito disponible) o una clave de LLM antes de que {{platform}} pueda responder.",
|
|
635
635
|
openLlm: "Abierto LLM",
|
|
636
636
|
setup: "Setup",
|
|
637
637
|
shareDocumentsWith: "Compartir documentos con",
|
|
@@ -373,9 +373,9 @@ const messages = {
|
|
|
373
373
|
"Laissez notre agent cloud effectuer les modifications pour vous. Vous recevrez un lien pour prévisualiser et déployer.",
|
|
374
374
|
codeChangeTitle: "Cela nécessite un changement de code",
|
|
375
375
|
codeChangeBadge: "Changement de code",
|
|
376
|
-
connectBuilderTitle: "
|
|
376
|
+
connectBuilderTitle: "Utiliser Builder.io",
|
|
377
377
|
connectBuilderDescription:
|
|
378
|
-
"
|
|
378
|
+
"Utilisez Builder.io (offre gratuite disponible) pour activer les modifications de code basées sur le cloud à partir de cette application.",
|
|
379
379
|
setupRequired: "Configuration requise",
|
|
380
380
|
branchCreated: "Branche créée",
|
|
381
381
|
close: "Fermer",
|
|
@@ -630,7 +630,7 @@ const messages = {
|
|
|
630
630
|
back: "Retour",
|
|
631
631
|
agentEngineRequired: "Moteur d'agent requis",
|
|
632
632
|
agentEngineDescription:
|
|
633
|
-
"
|
|
633
|
+
"Utilisez Builder.io (offre gratuite disponible) ou une clé LLM avant que {{platform}} puisse répondre.",
|
|
634
634
|
openLlm: "Ouvrir LLM",
|
|
635
635
|
setup: "Setup",
|
|
636
636
|
shareDocumentsWith: "Partager des documents avec",
|
|
@@ -354,9 +354,9 @@ const messages = {
|
|
|
354
354
|
"हमारे क्लाउड एजेंट को आपके लिए परिवर्तन करने दें। आपको पूर्वावलोकन और परिनियोजन के लिए एक लिंक मिलेगा।",
|
|
355
355
|
codeChangeTitle: "इसके लिए कोड परिवर्तन की आवश्यकता है",
|
|
356
356
|
codeChangeBadge: "कोड परिवर्तन",
|
|
357
|
-
connectBuilderTitle: "Builder.io
|
|
357
|
+
connectBuilderTitle: "Builder.io का उपयोग करें",
|
|
358
358
|
connectBuilderDescription:
|
|
359
|
-
"इस ऐप से क्लाउड-आधारित कोड परिवर्तन सक्षम करने के लिए
|
|
359
|
+
"इस ऐप से क्लाउड-आधारित कोड परिवर्तन सक्षम करने के लिए Builder.io का उपयोग करें (free tier उपलब्ध)।",
|
|
360
360
|
setupRequired: "सेटअप आवश्यक है",
|
|
361
361
|
branchCreated: "शाखा बनाई गई",
|
|
362
362
|
close: "बंद करें",
|
|
@@ -604,7 +604,7 @@ const messages = {
|
|
|
604
604
|
back: "वापस",
|
|
605
605
|
agentEngineRequired: "एजेंट इंजन की आवश्यकता है",
|
|
606
606
|
agentEngineDescription:
|
|
607
|
-
"
|
|
607
|
+
"{{platform}} के जवाब देने से पहले Builder.io (free tier उपलब्ध) या LLM key का उपयोग करें।",
|
|
608
608
|
openLlm: "LLM खोलें",
|
|
609
609
|
setup: "Setup",
|
|
610
610
|
shareDocumentsWith: "दस्तावेज़ साझा करें",
|
|
@@ -360,9 +360,9 @@ const messages = {
|
|
|
360
360
|
"弊社のクラウド エージェントに変更を依頼してください。プレビューしてデプロイするためのリンクが表示されます。",
|
|
361
361
|
codeChangeTitle: "これにはコードの変更が必要です",
|
|
362
362
|
codeChangeBadge: "コード変更",
|
|
363
|
-
connectBuilderTitle: "Builder.io
|
|
363
|
+
connectBuilderTitle: "Builder.io を使う",
|
|
364
364
|
connectBuilderDescription:
|
|
365
|
-
"Builder
|
|
365
|
+
"Builder.io(無料プランあり)を使うと、このアプリからクラウド経由でコードを変更できます。",
|
|
366
366
|
setupRequired: "セットアップが必要です",
|
|
367
367
|
branchCreated: "ブランチが作成されました",
|
|
368
368
|
close: "閉じる",
|
|
@@ -612,7 +612,7 @@ const messages = {
|
|
|
612
612
|
back: "戻る",
|
|
613
613
|
agentEngineRequired: "エージェント エンジンが必要です",
|
|
614
614
|
agentEngineDescription:
|
|
615
|
-
"
|
|
615
|
+
"Builder.io(無料プランあり)または LLM キーを使うと、{{platform}} が回答できるようになります。",
|
|
616
616
|
openLlm: "LLM を開く",
|
|
617
617
|
setup: "Setup",
|
|
618
618
|
shareDocumentsWith: "ドキュメントを共有する",
|
|
@@ -354,9 +354,9 @@ const messages = {
|
|
|
354
354
|
"클라우드 에이전트가 귀하를 대신해 변경해 드립니다. 미리 보고 배포할 수 있는 링크가 제공됩니다.",
|
|
355
355
|
codeChangeTitle: "코드 변경이 필요합니다",
|
|
356
356
|
codeChangeBadge: "코드 변경",
|
|
357
|
-
connectBuilderTitle: "Builder.io
|
|
357
|
+
connectBuilderTitle: "Builder.io 사용",
|
|
358
358
|
connectBuilderDescription:
|
|
359
|
-
"이 앱에서 클라우드 기반 코드 변경을
|
|
359
|
+
"이 앱에서 클라우드 기반 코드 변경을 사용하려면 Builder.io를 사용하세요(무료 요금제 제공).",
|
|
360
360
|
setupRequired: "설정 필요",
|
|
361
361
|
branchCreated: "지점이 생성되었습니다.",
|
|
362
362
|
close: "닫기",
|
|
@@ -603,7 +603,7 @@ const messages = {
|
|
|
603
603
|
back: "뒤로",
|
|
604
604
|
agentEngineRequired: "에이전트 엔진 필요",
|
|
605
605
|
agentEngineDescription:
|
|
606
|
-
"
|
|
606
|
+
"{{platform}}이 답변하려면 Builder.io(무료 요금제 제공) 또는 LLM 키를 사용하세요.",
|
|
607
607
|
openLlm: "LLM 열기",
|
|
608
608
|
setup: "Setup",
|
|
609
609
|
shareDocumentsWith: "다음과 문서 공유",
|
|
@@ -370,9 +370,9 @@ const messages = {
|
|
|
370
370
|
"Deixe nosso agente de nuvem fazer as alterações para você. Você receberá um link para visualizar e implantar.",
|
|
371
371
|
codeChangeTitle: "Isso requer uma mudança de código",
|
|
372
372
|
codeChangeBadge: "Mudança de código",
|
|
373
|
-
connectBuilderTitle: "
|
|
373
|
+
connectBuilderTitle: "Usar o Builder.io",
|
|
374
374
|
connectBuilderDescription:
|
|
375
|
-
"
|
|
375
|
+
"Use o Builder.io (nível gratuito disponível) para permitir alterações de código baseadas em nuvem deste aplicativo.",
|
|
376
376
|
setupRequired: "Configuração necessária",
|
|
377
377
|
branchCreated: "Filial criada",
|
|
378
378
|
close: "Fechar",
|
|
@@ -626,7 +626,7 @@ const messages = {
|
|
|
626
626
|
back: "Voltar",
|
|
627
627
|
agentEngineRequired: "Mecanismo de agente necessário",
|
|
628
628
|
agentEngineDescription:
|
|
629
|
-
"
|
|
629
|
+
"Use o Builder.io (nível gratuito disponível) ou uma chave de LLM antes que {{platform}} possa responder.",
|
|
630
630
|
openLlm: "Abra LLM",
|
|
631
631
|
setup: "Setup",
|
|
632
632
|
shareDocumentsWith: "Compartilhe documentos com",
|
|
@@ -346,9 +346,9 @@ const messages = {
|
|
|
346
346
|
"让我们的云代理为您进行更改。您将获得预览和部署的链接。",
|
|
347
347
|
codeChangeTitle: "这需要更改代码",
|
|
348
348
|
codeChangeBadge: "代码变更",
|
|
349
|
-
connectBuilderTitle: "
|
|
349
|
+
connectBuilderTitle: "使用 Builder.io",
|
|
350
350
|
connectBuilderDescription:
|
|
351
|
-
"
|
|
351
|
+
"使用 Builder.io(提供免费套餐)即可在此应用中启用基于云的代码更改。",
|
|
352
352
|
setupRequired: "需要设置",
|
|
353
353
|
branchCreated: "已创建分支",
|
|
354
354
|
close: "关闭",
|
|
@@ -586,7 +586,7 @@ const messages = {
|
|
|
586
586
|
back: "返回",
|
|
587
587
|
agentEngineRequired: "需要代理引擎",
|
|
588
588
|
agentEngineDescription:
|
|
589
|
-
"
|
|
589
|
+
"使用 Builder.io(提供免费套餐)或 LLM 密钥后,{{platform}} 才能回答。",
|
|
590
590
|
openLlm: "打开LLM",
|
|
591
591
|
setup: "Setup",
|
|
592
592
|
shareDocumentsWith: "与以下人员共享文档",
|
|
@@ -346,9 +346,9 @@ const messages = {
|
|
|
346
346
|
"讓我們的雲端代理為您進行更改。您將獲得預覽和部署的連結。",
|
|
347
347
|
codeChangeTitle: "這需要更改程式碼",
|
|
348
348
|
codeChangeBadge: "程式碼變更",
|
|
349
|
-
connectBuilderTitle: "
|
|
349
|
+
connectBuilderTitle: "使用 Builder.io",
|
|
350
350
|
connectBuilderDescription:
|
|
351
|
-
"
|
|
351
|
+
"使用 Builder.io(提供免費方案)即可從此應用程式啟用雲端程式碼變更。",
|
|
352
352
|
setupRequired: "需要設定",
|
|
353
353
|
branchCreated: "已建立分支",
|
|
354
354
|
close: "關閉",
|
|
@@ -586,7 +586,7 @@ const messages = {
|
|
|
586
586
|
back: "返回",
|
|
587
587
|
agentEngineRequired: "需要代理引擎",
|
|
588
588
|
agentEngineDescription:
|
|
589
|
-
"
|
|
589
|
+
"請先使用 Builder.io(提供免費方案)或 LLM 金鑰,{{platform}} 才能回覆。",
|
|
590
590
|
openLlm: "開啟 LLM",
|
|
591
591
|
setup: "Setup",
|
|
592
592
|
shareDocumentsWith: "與以下人員共用檔案",
|
|
@@ -364,7 +364,7 @@ optimistic action patterns. Do not add a parallel CRUD API route for an action.
|
|
|
364
364
|
## 4. Keep onboarding shared
|
|
365
365
|
|
|
366
366
|
Use the framework's existing setup experience. The app should offer the normal
|
|
367
|
-
“
|
|
367
|
+
“Use Builder.io” and “Add your own keys” paths for AI setup. Do not create a
|
|
368
368
|
second credential form or hardcode a provider key.
|
|
369
369
|
|
|
370
370
|
In local-development instructions, add a brief note that a developer can set
|
|
@@ -388,7 +388,7 @@ plain `pnpm dev` has the right first-run behavior without extra flags:
|
|
|
388
388
|
}
|
|
389
389
|
```
|
|
390
390
|
|
|
391
|
-
Either value keeps the shared
|
|
391
|
+
Either value keeps the shared Use Builder.io / Add your own keys choice
|
|
392
392
|
visible; only `"off"` disables first-run onboarding entirely. Do not replace
|
|
393
393
|
this with a local credential form or remove the shared onboarding.
|
|
394
394
|
|
|
@@ -30,7 +30,7 @@ WORKSPACE_ORG_DOMAIN=
|
|
|
30
30
|
WORKSPACE_OWNER_EMAIL=
|
|
31
31
|
|
|
32
32
|
# Builder browser integration (run `agent-native dev` and visit any app,
|
|
33
|
-
# then
|
|
33
|
+
# then choose "Use Builder.io" — these are written automatically by the
|
|
34
34
|
# callback handler to this workspace-level .env).
|
|
35
35
|
BUILDER_PRIVATE_KEY=
|
|
36
36
|
BUILDER_PUBLIC_KEY=
|
|
@@ -9,7 +9,7 @@ function describeError(err) {
|
|
|
9
9
|
export async function transcribeWithBuilder(opts) {
|
|
10
10
|
const auth = await resolveBuilderGatewayAuth();
|
|
11
11
|
if (!auth) {
|
|
12
|
-
throw new Error("Builder private key not configured.
|
|
12
|
+
throw new Error("Builder private key is not configured. Use Builder.io (free tier available) in Settings to set it up.");
|
|
13
13
|
}
|
|
14
14
|
const params = new URLSearchParams();
|
|
15
15
|
params.set("mimeType", opts.mimeType);
|
|
@@ -13,7 +13,6 @@ declare const _default: import("../../action.js").ActionDefinition<{
|
|
|
13
13
|
executionEngine?: string;
|
|
14
14
|
executionCwd?: string;
|
|
15
15
|
}, {
|
|
16
|
-
deleted?: undefined;
|
|
17
16
|
created: boolean;
|
|
18
17
|
name: string;
|
|
19
18
|
scope: "organization" | "personal";
|
|
@@ -24,6 +23,7 @@ declare const _default: import("../../action.js").ActionDefinition<{
|
|
|
24
23
|
reasoningEffort: "auto" | "high" | "low" | "max" | "medium" | "minimal" | "none" | "xhigh";
|
|
25
24
|
webhookPath: string;
|
|
26
25
|
nextRun: string;
|
|
26
|
+
deleted?: undefined;
|
|
27
27
|
enabled?: undefined;
|
|
28
28
|
executionHostId?: undefined;
|
|
29
29
|
executionEngine?: undefined;
|
|
@@ -45,11 +45,11 @@ declare const _default: import("../../action.js").ActionDefinition<{
|
|
|
45
45
|
nextRun?: undefined;
|
|
46
46
|
webhookPath?: undefined;
|
|
47
47
|
} | {
|
|
48
|
-
deleted?: undefined;
|
|
49
48
|
created?: undefined;
|
|
50
49
|
scope?: undefined;
|
|
51
50
|
triggerType?: undefined;
|
|
52
51
|
event?: undefined;
|
|
52
|
+
deleted?: undefined;
|
|
53
53
|
name: string;
|
|
54
54
|
enabled: boolean;
|
|
55
55
|
schedule: string;
|
|
@@ -58,7 +58,7 @@ enter an email or password for local development.
|
|
|
58
58
|
|
|
59
59
|
## Connect an LLM
|
|
60
60
|
|
|
61
|
-
Next, connect an LLM. Select **
|
|
61
|
+
Next, connect an LLM. Select **Use Builder.io** to use free credits, or
|
|
62
62
|
select **Custom keys**, choose a provider, and enter the requested connection
|
|
63
63
|
details.
|
|
64
64
|
|
|
@@ -301,7 +301,7 @@ my-company-platform/
|
|
|
301
301
|
|
|
302
302
|
A few onboarding flows are workspace-aware out of the box:
|
|
303
303
|
|
|
304
|
-
- **Builder OAuth**: clicking "
|
|
304
|
+
- **Builder OAuth**: clicking "Use Builder.io" authorizes the signed-in user with the least-privilege `builder:ai:invoke` scope and stores the token in encrypted per-user custody. Legacy Builder keys remain available only to existing uncovered integrations.
|
|
305
305
|
- **Compatibility key route** (`POST /_agent-native/env-vars`): older onboarding forms still call this route name, but it now saves values as scoped DB secrets. Pass `scope: "workspace"` to share with the active org, or omit it for a per-user key.
|
|
306
306
|
|
|
307
307
|
This works because every app in the same workspace points at the same `DATABASE_URL` by default, so framework credential storage (`@agent-native/core/credentials`) makes a credential available to every app without per-app config. Add a thin helper in `packages/shared` if your workspace wants a stricter naming convention.
|
|
@@ -18,7 +18,7 @@ infrastructure, and add providers only when you need them.
|
|
|
18
18
|
<span class="diagram-pill warn">required</span
|
|
19
19
|
><strong>Connect an AI engine</strong
|
|
20
20
|
><small class="diagram-muted"
|
|
21
|
-
>
|
|
21
|
+
>Use Builder.io (one click) or paste an LLM key</small
|
|
22
22
|
>
|
|
23
23
|
</div>
|
|
24
24
|
<div class="diagram-card">
|
|
@@ -66,7 +66,7 @@ infrastructure, and add providers only when you need them.
|
|
|
66
66
|
<Screen
|
|
67
67
|
surface="panel"
|
|
68
68
|
html={
|
|
69
|
-
"<div style='display:flex;flex-direction:column;gap:10px;padding:14px 16px;min-height:460px;box-sizing:border-box'><div style='display:flex;align-items:center;gap:8px'><strong style='flex:1'>Setup</strong><span class='wf-pill accent'>1 of 4</span><span data-icon='chevronUp'></span></div><div class='wf-card' style='display:flex;align-items:center;gap:8px'><span data-icon='check' style='color:var(--wf-ok)'></span><span style='flex:1'>Database</span><small class='wf-muted'>optional</small></div><div class='wf-card' style='display:flex;flex-direction:column;gap:8px'><div style='display:flex;align-items:center;gap:8px'><strong style='flex:1'>Connect an AI engine</strong><span class='wf-pill' style='color:var(--wf-warn);border-color:var(--wf-warn)'>required</span></div><small class='wf-muted'>
|
|
69
|
+
"<div style='display:flex;flex-direction:column;gap:10px;padding:14px 16px;min-height:460px;box-sizing:border-box'><div style='display:flex;align-items:center;gap:8px'><strong style='flex:1'>Setup</strong><span class='wf-pill accent'>1 of 4</span><span data-icon='chevronUp'></span></div><div class='wf-card' style='display:flex;align-items:center;gap:8px'><span data-icon='check' style='color:var(--wf-ok)'></span><span style='flex:1'>Database</span><small class='wf-muted'>optional</small></div><div class='wf-card' style='display:flex;flex-direction:column;gap:8px'><div style='display:flex;align-items:center;gap:8px'><strong style='flex:1'>Connect an AI engine</strong><span class='wf-pill' style='color:var(--wf-warn);border-color:var(--wf-warn)'>required</span></div><small class='wf-muted'>Use Builder.io (one click) or paste an LLM key</small><button class='primary'>Use Builder.io</button><small style='text-decoration:underline'>or paste your own key</small></div><div class='wf-card' style='display:flex;align-items:center;gap:8px'><span style='flex:1'>Authentication</span><small class='wf-muted'>optional</small></div><div class='wf-card' style='display:flex;align-items:center;gap:8px'><span style='flex:1'>Email delivery</span><small class='wf-muted'>optional</small></div><div style='flex:1'></div><small style='text-decoration:underline;align-self:flex-start'>Hide setup</small></div>"
|
|
70
70
|
}
|
|
71
71
|
/>
|
|
72
72
|
</WireframeBlock>
|
|
@@ -88,9 +88,9 @@ Steps offer one or more **methods** — different ways to satisfy the same
|
|
|
88
88
|
requirement. The primary path is shown first; secondary paths are kept compact
|
|
89
89
|
behind a picker or disclosure when a step has several equivalent providers.
|
|
90
90
|
|
|
91
|
-
- **Connect a service (one click)** — e.g.
|
|
92
|
-
AI gateway.
|
|
93
|
-
|
|
91
|
+
- **Connect a service (one click)** — e.g. _Use Builder.io_ for the managed
|
|
92
|
+
AI gateway. Create or activate your Builder.io account directly in the app.
|
|
93
|
+
If you already have an account, choose the sign-in option. No keys to copy.
|
|
94
94
|
- **Paste an API key or fill a form** — e.g. choose an LLM provider, database,
|
|
95
95
|
OAuth provider, or email provider, paste the value(s), click **Save**.
|
|
96
96
|
Secret fields use a password input so the value isn't shown on screen. Saved
|
|
@@ -104,8 +104,7 @@ behind a picker or disclosure when a step has several equivalent providers.
|
|
|
104
104
|
|
|
105
105
|
### The built-in steps you'll usually see
|
|
106
106
|
|
|
107
|
-
- **Connect an AI engine** (required) — the only mandatory step.
|
|
108
|
-
Builder for a one-click managed gateway, or open the secondary provider-key
|
|
107
|
+
- **Connect an AI engine** (required) — the only mandatory step. Use Builder.io for a one-click managed gateway, or open the secondary provider-key
|
|
109
108
|
picker and paste your own LLM key.
|
|
110
109
|
- **Database** (optional) — set `DATABASE_URL` when you want to use a specific
|
|
111
110
|
PostgreSQL connection string.
|
|
@@ -254,7 +253,7 @@ Refer to the [Workspace Connections](/docs/workspace-connections) documentation
|
|
|
254
253
|
| ------------------ | ----------------------------------------------------- | ------------------------------------------ |
|
|
255
254
|
| `link` | `{ url, external? }` | Send user to an OAuth flow or docs page |
|
|
256
255
|
| `form` | `{ fields, writeScope? }` | Collect env vars (keys, secrets, URLs) |
|
|
257
|
-
| `builder-cli-auth` | `{ scope: "llm" \| "browser" \| "image-generation" }` |
|
|
256
|
+
| `builder-cli-auth` | `{ scope: "llm" \| "browser" \| "image-generation" }` | Use Builder.io (unlocks shared infra) |
|
|
258
257
|
| `agent-task` | `{ prompt }` | Send a prompt to the agent chat to handle |
|
|
259
258
|
| `file-storage` | - | Show the shared S3-compatible storage form |
|
|
260
259
|
|
|
@@ -649,7 +649,7 @@ production app does:
|
|
|
649
649
|
|
|
650
650
|
<Callout tone="warning">
|
|
651
651
|
|
|
652
|
-
**
|
|
652
|
+
**Using Builder.io from inside the app is not enough.** The in-app Builder
|
|
653
653
|
connection stores its credential per user or per organization in the app's
|
|
654
654
|
secret vault. Self-registration deliberately ignores that credential — a
|
|
655
655
|
single user's connection must not enroll the whole deployment's database under
|
|
@@ -47,7 +47,7 @@ already in use.
|
|
|
47
47
|
|
|
48
48
|
On the Welcome screen, select **Continue as local dev** — no email or
|
|
49
49
|
password needed for local development. Then connect an LLM: select
|
|
50
|
-
**
|
|
50
|
+
**Use Builder.io** for free credits, or **Custom keys** to add an
|
|
51
51
|
Anthropic/OpenAI key or a local Ollama model. Chat ships with no domain data
|
|
52
52
|
to seed, so once an LLM is connected there's nothing else to set up before
|
|
53
53
|
you can start chatting.
|
|
@@ -33,7 +33,7 @@ The app opens automatically in your browser. Recording works without any extra s
|
|
|
33
33
|
|
|
34
34
|
<Callout tone="info">
|
|
35
35
|
|
|
36
|
-
Recording, transcription, and AI titles/summaries need file storage and AI credits configured before they'll work end to end.
|
|
36
|
+
Recording, transcription, and AI titles/summaries need file storage and AI credits configured before they'll work end to end. Use Builder.io from **Settings** for both at once (its free tier includes managed AI credits), or connect S3-compatible storage separately and bring your own Groq key for transcription. See [Transcription and AI metadata](/docs/template-clips-features#transcription-and-ai-metadata).
|
|
37
37
|
|
|
38
38
|
</Callout>
|
|
39
39
|
|
|
@@ -42,7 +42,7 @@ visit that URL in your browser.
|
|
|
42
42
|
|
|
43
43
|
On the Welcome screen, select **Continue as local dev**. You don't need an
|
|
44
44
|
email or password for local development. Then connect an LLM: select
|
|
45
|
-
**
|
|
45
|
+
**Use Builder.io** for free credits, or **Custom keys** to add an
|
|
46
46
|
Anthropic/OpenAI key or a local Ollama model.
|
|
47
47
|
|
|
48
48
|
</Steps>
|
|
@@ -130,9 +130,9 @@ Mark one design system as your default so every new deck picks it up automatical
|
|
|
130
130
|
|
|
131
131
|
A Figma file, a connected codebase or GitHub repo, or a `design.md` needs real analysis, so those go through Builder Design System Intelligence instead of a one-shot local guess.
|
|
132
132
|
|
|
133
|
-
####
|
|
133
|
+
#### Use Builder.io
|
|
134
134
|
|
|
135
|
-
This requires a
|
|
135
|
+
This requires a Builder.io account (a free tier is available). If you haven't used Builder.io yet, the agent prompts you to when it needs to.
|
|
136
136
|
|
|
137
137
|
#### Builder stays the source of truth
|
|
138
138
|
|
|
@@ -206,16 +206,16 @@ An app's own rows follow the same rule: every control on `generalGroups`,
|
|
|
206
206
|
|
|
207
207
|
## Roles {#roles}
|
|
208
208
|
|
|
209
|
-
| Capability | Member | Admin
|
|
210
|
-
| --------------------------------------------------------------------------------- | ---------------------- |
|
|
211
|
-
| Account pages, connecting integrations for themselves | Yes | Yes
|
|
212
|
-
| Personal providers and a personal Builder.io
|
|
213
|
-
| Organization providers, default model, max iterations, Restrict personal API keys | Read-only | Yes
|
|
214
|
-
| Organization instructions, memory, skills, and files | Read-only | Yes
|
|
215
|
-
| Invite members | No | Members
|
|
216
|
-
| Change member roles | No | No
|
|
217
|
-
| Authentication, Apps, Infrastructure, Audit log | Hidden | Yes
|
|
218
|
-
| Shared A2A secret, delete the organization | No | No
|
|
209
|
+
| Capability | Member | Admin | Owner |
|
|
210
|
+
| --------------------------------------------------------------------------------- | ---------------------- | --------------------------------------------- | ------------------ |
|
|
211
|
+
| Account pages, connecting integrations for themselves | Yes | Yes | Yes |
|
|
212
|
+
| Personal providers and a personal Builder.io account | Yes, unless restricted | Own keys; use Builder.io for the organization | Same as admin |
|
|
213
|
+
| Organization providers, default model, max iterations, Restrict personal API keys | Read-only | Yes | Yes |
|
|
214
|
+
| Organization instructions, memory, skills, and files | Read-only | Yes | Yes |
|
|
215
|
+
| Invite members | No | Members | Members and admins |
|
|
216
|
+
| Change member roles | No | No | Yes |
|
|
217
|
+
| Authentication, Apps, Infrastructure, Audit log | Hidden | Yes | Yes |
|
|
218
|
+
| Shared A2A secret, delete the organization | No | No | Yes |
|
|
219
219
|
|
|
220
220
|
## UX standard {#ux-standard}
|
|
221
221
|
|
|
@@ -14,7 +14,7 @@ what is missing and link users to the exact fix.
|
|
|
14
14
|
<Screen
|
|
15
15
|
surface="desktop"
|
|
16
16
|
html={
|
|
17
|
-
"<div style='min-height:520px;box-sizing:border-box;padding:26px;display:grid;grid-template-columns:1fr 300px;gap:18px'><main class='wf-card' style='display:flex;flex-direction:column;gap:12px'><h2 style='margin:0'>Finish setup</h2><small class='wf-muted'>2 of 4 steps complete</small><div class='wf-box' style='display:flex;align-items:center;gap:10px'><span data-icon='check'></span><div style='flex:1'>
|
|
17
|
+
"<div style='min-height:520px;box-sizing:border-box;padding:26px;display:grid;grid-template-columns:1fr 300px;gap:18px'><main class='wf-card' style='display:flex;flex-direction:column;gap:12px'><h2 style='margin:0'>Finish setup</h2><small class='wf-muted'>2 of 4 steps complete</small><div class='wf-box' style='display:flex;align-items:center;gap:10px'><span data-icon='check'></span><div style='flex:1'>Use Builder.io</div><span class='wf-pill'>Done</span></div><div class='wf-box' style='display:flex;align-items:center;gap:10px;border-color:var(--wf-accent)'><span data-icon='lock'></span><div style='flex:1'><strong>Add OpenAI key</strong><br/><small class='wf-muted'>Needed for the agent to run</small></div><button class='primary'>Fix</button></div><div class='wf-box' style='display:flex;align-items:center;gap:10px'><span data-icon='plus'></span><div style='flex:1'>Connect Slack</div><span class='wf-muted'>Optional</span></div><div class='wf-box' style='display:flex;align-items:center;gap:10px'><span data-icon='check'></span><div style='flex:1'>Enable GitHub OAuth</div><span class='wf-pill'>Ready</span></div></main><aside class='wf-card' style='display:flex;flex-direction:column;gap:10px'><strong>Provider readiness</strong><div style='display:flex;align-items:center;gap:8px'><span data-icon='check'></span><div style='flex:1'>Builder</div><span class='wf-pill'>Connected</span></div><div style='display:flex;align-items:center;gap:8px'><span data-icon='x'></span><div style='flex:1'>LLM key</div><span class='wf-pill'>Missing</span></div><div style='display:flex;align-items:center;gap:8px'><span data-icon='check'></span><div style='flex:1'>GitHub</div><span class='wf-pill'>OAuth ready</span></div><div style='flex:1'></div><button class='primary'>Open settings</button></aside></div>"
|
|
18
18
|
}
|
|
19
19
|
/>
|
|
20
20
|
</WireframeBlock>
|
|
@@ -384,7 +384,7 @@ Template roots call `configureTracking()` once at startup. Browser events sent w
|
|
|
384
384
|
- `llm_connection_source` — `app_secrets`, `settings`, or `env`
|
|
385
385
|
- `llm_connection_configured` — whether an LLM connection is available
|
|
386
386
|
|
|
387
|
-
The framework also tracks `builder connect clicked`
|
|
387
|
+
The framework also tracks `builder connect clicked` when a user selects a Use Builder.io CTA, and the server-side Builder connect routes track started/succeeded/failed lifecycle events. `configureTracking()` is called automatically by the framework; you don't need to call it in your own template code.
|
|
388
388
|
|
|
389
389
|
</details>
|
|
390
390
|
|