@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.
Files changed (107) hide show
  1. package/dist/agent/actions/manage-builder-connection.js +1 -1
  2. package/dist/agent/engine/ai-sdk-engine.js +8 -1
  3. package/dist/agent/engine/builder-engine.js +1 -1
  4. package/dist/agent/engine/credential-errors.d.ts +1 -1
  5. package/dist/agent/engine/credential-errors.js +2 -2
  6. package/dist/agent/engine/translate-ai-sdk.d.ts +1 -1
  7. package/dist/agent/engine/translate-ai-sdk.js +2 -1
  8. package/dist/agent/production-agent.js +1 -1
  9. package/dist/agent/run-manager.d.ts +7 -0
  10. package/dist/agent/run-manager.js +4 -0
  11. package/dist/agent/thread-data-builder.js +63 -14
  12. package/dist/brand-kit/fig/index.js +1 -1
  13. package/dist/cli/skills-content/turn-into-app-skill.d.ts +1 -1
  14. package/dist/cli/skills-content/turn-into-app-skill.js +2 -2
  15. package/dist/client/agent-engine-key.js +1 -1
  16. package/dist/client/chat/agentkit-agent-native.js +26 -14
  17. package/dist/client/error-format.js +5 -5
  18. package/dist/client/uploads/upload-editor-image.js +1 -1
  19. package/dist/client/use-chat-threads.js +48 -1
  20. package/dist/collab/awareness.d.ts +2 -2
  21. package/dist/deploy/build.js +7 -1
  22. package/dist/extensions/web-search-tool.js +2 -2
  23. package/dist/file-upload/actions/upload-image.d.ts +1 -1
  24. package/dist/file-upload/actions/upload-image.js +1 -1
  25. package/dist/file-upload/builder.js +2 -2
  26. package/dist/file-upload/registry.js +1 -1
  27. package/dist/ingestion/pptx.d.ts +3 -1
  28. package/dist/ingestion/pptx.js +3 -2
  29. package/dist/jobs/actions/manage-recurring-job.d.ts +1 -1
  30. package/dist/localization/default-messages.js +11 -11
  31. package/dist/mcp/build-server.js +11 -5
  32. package/dist/mcp-client/manager.js +14 -2
  33. package/dist/notifications/routes.d.ts +3 -3
  34. package/dist/observability/metrics.js +10 -1
  35. package/dist/onboarding/app-profile.js +1 -1
  36. package/dist/onboarding/default-steps.js +4 -4
  37. package/dist/private-blob/attachment-errors.js +1 -1
  38. package/dist/progress/routes.d.ts +1 -1
  39. package/dist/resources/handlers.js +1 -1
  40. package/dist/secrets/routes.d.ts +6 -6
  41. package/dist/server/action-routes.js +14 -3
  42. package/dist/server/agent-chat/browser-team-tools.js +4 -4
  43. package/dist/server/agent-chat/context-tools.js +2 -2
  44. package/dist/server/agent-chat-ai-setup.js +1 -1
  45. package/dist/server/agent-chat-plugin.d.ts +2 -2
  46. package/dist/server/agent-chat-plugin.js +9 -5
  47. package/dist/server/agent-engine-api-key-route.d.ts +1 -1
  48. package/dist/server/agent-engine-default-model-route.d.ts +1 -1
  49. package/dist/server/builder-api-auth.js +5 -5
  50. package/dist/server/builder-browser.js +1 -1
  51. package/dist/server/builder-design-systems.js +1 -1
  52. package/dist/server/core-routes-plugin.d.ts +5 -11
  53. package/dist/server/core-routes-plugin.js +36 -68
  54. package/dist/server/credential-provider.js +3 -3
  55. package/dist/server/deep-link.d.ts +2 -0
  56. package/dist/server/deep-link.js +30 -3
  57. package/dist/server/fusion-app.js +1 -1
  58. package/dist/server/prompts/framework-core.js +1 -1
  59. package/dist/server/realtime-voice.js +1 -1
  60. package/dist/server/transcribe-voice.js +3 -3
  61. package/dist/shared/connect-required.js +1 -1
  62. package/dist/templates/chat/.agents/skills/turn-into-app/SKILL.md +2 -2
  63. package/dist/templates/default/.agents/skills/turn-into-app/SKILL.md +2 -2
  64. package/dist/templates/default/app/i18n/ar-SA.ts +3 -3
  65. package/dist/templates/default/app/i18n/de-DE.ts +3 -3
  66. package/dist/templates/default/app/i18n/en-US.ts +3 -3
  67. package/dist/templates/default/app/i18n/es-ES.ts +3 -3
  68. package/dist/templates/default/app/i18n/fr-FR.ts +3 -3
  69. package/dist/templates/default/app/i18n/hi-IN.ts +3 -3
  70. package/dist/templates/default/app/i18n/ja-JP.ts +3 -3
  71. package/dist/templates/default/app/i18n/ko-KR.ts +3 -3
  72. package/dist/templates/default/app/i18n/pt-BR.ts +3 -3
  73. package/dist/templates/default/app/i18n/zh-CN.ts +3 -3
  74. package/dist/templates/default/app/i18n/zh-TW.ts +3 -3
  75. package/dist/templates/workspace-core/.agents/skills/turn-into-app/SKILL.md +2 -2
  76. package/dist/templates/workspace-root/.env.example +1 -1
  77. package/dist/transcription/builder-transcription.js +1 -1
  78. package/dist/triggers/actions/manage-automation.d.ts +2 -2
  79. package/docs/content/getting-started.mdx +1 -1
  80. package/docs/content/multi-app-workspace.mdx +1 -1
  81. package/docs/content/onboarding.mdx +7 -8
  82. package/docs/content/real-time-collaboration.mdx +1 -1
  83. package/docs/content/template-chat-developers.mdx +1 -1
  84. package/docs/content/template-clips-developers.mdx +1 -1
  85. package/docs/content/template-content-developers.mdx +1 -1
  86. package/docs/content/template-slides-features.mdx +2 -2
  87. package/docs/content/toolkit-settings.mdx +10 -10
  88. package/docs/content/toolkit-setup-connections.mdx +1 -1
  89. package/docs/content/tracking.mdx +1 -1
  90. package/docs/content/updating-ui-in-production.mdx +3 -3
  91. package/docs/content/voice-input.mdx +1 -1
  92. package/package.json +4 -4
  93. package/src/templates/chat/.agents/skills/turn-into-app/SKILL.md +2 -2
  94. package/src/templates/default/.agents/skills/turn-into-app/SKILL.md +2 -2
  95. package/src/templates/default/app/i18n/ar-SA.ts +3 -3
  96. package/src/templates/default/app/i18n/de-DE.ts +3 -3
  97. package/src/templates/default/app/i18n/en-US.ts +3 -3
  98. package/src/templates/default/app/i18n/es-ES.ts +3 -3
  99. package/src/templates/default/app/i18n/fr-FR.ts +3 -3
  100. package/src/templates/default/app/i18n/hi-IN.ts +3 -3
  101. package/src/templates/default/app/i18n/ja-JP.ts +3 -3
  102. package/src/templates/default/app/i18n/ko-KR.ts +3 -3
  103. package/src/templates/default/app/i18n/pt-BR.ts +3 -3
  104. package/src/templates/default/app/i18n/zh-CN.ts +3 -3
  105. package/src/templates/default/app/i18n/zh-TW.ts +3 -3
  106. package/src/templates/workspace-core/.agents/skills/turn-into-app/SKILL.md +2 -2
  107. 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
- "connecting Builder.io (`connect-builder`)",
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("Connect Builder (free tier available) or configure an OpenAI API key to use realtime voice."),
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. Connect Builder.io (free tier available) in Settings, or change the provider preference.`),
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. Connect Builder.io (free tier available) or add GOOGLE_GENERATIVE_AI_API_KEY / GROQ_API_KEY / OPENAI_API_KEY in Settings → API Keys."),
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. Connect Builder.io (free tier available) in Settings, or change the provider preference."),
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} Connect ${providerLabel} to continue: use the Connect button shown here, or connect ${providerLabel} in Settings.`,
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
- “Connect Builder” and “Add your own keys” paths for AI setup. Do not create a
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 Connect Builder / Add your own keys choice
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
- “Connect Builder” and “Add your own keys” paths for AI setup. Do not create a
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 Connect Builder / Add your own keys choice
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: "اتصال Builder.io",
380
+ connectBuilderTitle: "استخدم Builder.io",
381
381
  connectBuilderDescription:
382
- "قم بتوصيل Builder (free tier available) لتمكين تغييرات التعليمات البرمجية المستندة إلى السحابة من هذا التطبيق.",
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
- "Connect Builder.io (free tier available) or an LLM key before {{platform}} can answer.",
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 verbinden",
371
+ connectBuilderTitle: "Builder.io verwenden",
372
372
  connectBuilderDescription:
373
- "Connect Builder (kostenloser Tarif verfügbar), um cloudbasierte Codeänderungen über diese App zu ermöglichen.",
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
- "Connect Builder.io (kostenloser Tarif verfügbar) or an LLM key before {{platform}} can answer.",
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: "Connect Builder.io",
364
+ connectBuilderTitle: "Use Builder.io",
365
365
  connectBuilderDescription:
366
- "Connect Builder (free tier available) to enable cloud-based code changes from this app.",
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
- "Connect Builder.io (free tier available) or an LLM key before {{platform}} can answer.",
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: "Conectar Builder.io",
375
+ connectBuilderTitle: "Usar Builder.io",
376
376
  connectBuilderDescription:
377
- "Connect Builder (nivel gratuito disponible) para habilitar cambios de código basados en la nube desde esta aplicación.",
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
- "Connect Builder.io (nivel gratuito disponible) or an LLM key before {{platform}} can answer.",
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: "Connecter Builder.io",
376
+ connectBuilderTitle: "Utiliser Builder.io",
377
377
  connectBuilderDescription:
378
- "Connectez Builder (offre gratuite disponible) pour activer les modifications de code basées sur le cloud à partir de cette application.",
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
- "Connect Builder.io (offre gratuite disponible) or an LLM key before {{platform}} can answer.",
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
- "इस ऐप से क्लाउड-आधारित कोड परिवर्तन सक्षम करने के लिए बिल्डर से कनेक्ट करें (free tier उपलब्ध)।",
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
- "Connect Builder.io (free tier उपलब्ध) or an LLM key before {{platform}} can answer.",
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
- "Connect Builder.io(無料プランあり)or an LLM key before {{platform}} can answer.",
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
- "Connect Builder.io(무료 요금제 제공) or an LLM key before {{platform}} can answer.",
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: "Conectar Builder.io",
373
+ connectBuilderTitle: "Usar o Builder.io",
374
374
  connectBuilderDescription:
375
- "Connect Builder (nível gratuito disponível) para permitir alterações de código baseadas em nuvem deste aplicativo.",
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
- "Connect Builder.io (nível gratuito disponível) or an LLM key before {{platform}} can answer.",
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: "连接 Builder.io",
349
+ connectBuilderTitle: "使用 Builder.io",
350
350
  connectBuilderDescription:
351
- "Connect Builder(提供免费套餐)可从此应用程序启用基于云的代码更改。",
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
- "Connect Builder.io(提供免费套餐)or an LLM key before {{platform}} can answer.",
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: "連線 Builder.io",
349
+ connectBuilderTitle: "使用 Builder.io",
350
350
  connectBuilderDescription:
351
- "Connect Builder(提供免費方案)可從此應用程式啟用基於雲端的程式碼更改。",
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
- "請先連線 Builder.io 或 LLM 金鑰,{{platform}} 才能回覆。",
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
- “Connect Builder” and “Add your own keys” paths for AI setup. Do not create a
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 Connect Builder / Add your own keys choice
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 click "Connect Builder" — these are written automatically by the
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. Connect your Builder.io account (free tier available) in Settings.");
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 **Connect Builder.io** to use free credits, or
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 "Connect Builder" 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.
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
- >Connect Builder (one click) or paste an LLM key</small
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'>Connect Builder (one click) or paste an LLM key</small><button class='primary'>Connect 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>"
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. _Connect Builder_ for the managed
92
- AI gateway. Click the button, a window opens, you sign in, the window closes,
93
- and the step is marked complete. No keys to copy.
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. Connect
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" }` | Connect Builder (unlocks shared infra) |
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
- **Connecting Builder from inside the app is not enough.** The in-app Builder
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
- **Connect Builder.io** for free credits, or **Custom keys** to add an
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. Connect 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).
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
- **Connect Builder.io** for free credits, or **Custom keys** to add an
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
- #### Connect Builder
133
+ #### Use Builder.io
134
134
 
135
- This requires a connected Builder.io account (a free tier is available). If you haven't connected one yet, the agent prompts you to when it needs to.
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 | Owner |
210
- | --------------------------------------------------------------------------------- | ---------------------- | -------------------------------------------------- | ------------------ |
211
- | Account pages, connecting integrations for themselves | Yes | Yes | Yes |
212
- | Personal providers and a personal Builder.io connection | Yes, unless restricted | Own keys; Builder.io connects 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 |
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'>Connect Builder</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>"
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` from Connect Builder CTAs, 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.
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