@agent-native/core 0.146.8 → 0.147.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/corpus/README.md +1 -1
- package/corpus/templates/analytics/.agents/skills/turn-into-app/SKILL.md +18 -6
- package/corpus/templates/analytics/.agents/skills/turn-into-app/references/fresh-project.md +8 -1
- package/corpus/templates/analytics/app/routes/status.$slug.tsx +4 -2
- package/corpus/templates/analytics/scripts/first-party-analytics-bigquery-backfill.ts +56 -6
- package/corpus/templates/assets/.agents/skills/turn-into-app/SKILL.md +18 -6
- package/corpus/templates/assets/.agents/skills/turn-into-app/references/fresh-project.md +8 -1
- package/corpus/templates/brain/.agents/skills/adding-a-feature/SKILL.md +9 -0
- package/corpus/templates/brain/.agents/skills/turn-into-app/SKILL.md +18 -6
- package/corpus/templates/brain/.agents/skills/turn-into-app/references/fresh-project.md +8 -1
- package/corpus/templates/calendar/.agents/skills/turn-into-app/SKILL.md +18 -6
- package/corpus/templates/calendar/.agents/skills/turn-into-app/references/fresh-project.md +8 -1
- package/corpus/templates/chat/.agents/skills/adding-a-feature/SKILL.md +9 -0
- package/corpus/templates/chat/.agents/skills/turn-into-app/SKILL.md +18 -6
- package/corpus/templates/chat/.agents/skills/turn-into-app/references/fresh-project.md +8 -1
- package/corpus/templates/clips/.agents/skills/turn-into-app/SKILL.md +18 -6
- package/corpus/templates/clips/.agents/skills/turn-into-app/references/fresh-project.md +8 -1
- package/corpus/templates/clips/app/routes/r.$recordingId.tsx +16 -4
- package/corpus/templates/clips/app/routes/share.meeting.$meetingId.tsx +14 -5
- package/corpus/templates/clips/package.json +1 -0
- package/corpus/templates/clips/react-router.config.ts +7 -0
- package/corpus/templates/clips/server/plugins/auth.ts +6 -1
- package/corpus/templates/clips/shared/prerendered-public-paths.ts +21 -0
- package/corpus/templates/clips/shared/share-meta.ts +8 -3
- package/corpus/templates/content/.agents/skills/turn-into-app/SKILL.md +18 -6
- package/corpus/templates/content/.agents/skills/turn-into-app/references/fresh-project.md +8 -1
- package/corpus/templates/crm/.agents/skills/turn-into-app/SKILL.md +18 -6
- package/corpus/templates/crm/.agents/skills/turn-into-app/references/fresh-project.md +8 -1
- package/corpus/templates/design/.agents/skills/turn-into-app/SKILL.md +18 -6
- package/corpus/templates/design/.agents/skills/turn-into-app/references/fresh-project.md +8 -1
- package/corpus/templates/dispatch/.agents/skills/turn-into-app/SKILL.md +18 -6
- package/corpus/templates/dispatch/.agents/skills/turn-into-app/references/fresh-project.md +8 -1
- package/corpus/templates/dispatch/app/chat-first-pages.ts +747 -0
- package/corpus/templates/dispatch/app/i18n-data.ts +181 -0
- package/corpus/templates/dispatch/app/routes/settings.tsx +62 -1
- package/corpus/templates/dispatch/changelog/2026-08-08-chat-first-navigation-keeps-conversations-central-while-open.md +6 -0
- package/corpus/templates/factory/.agents/skills/adding-a-feature/SKILL.md +9 -0
- package/corpus/templates/factory/.agents/skills/turn-into-app/SKILL.md +18 -6
- package/corpus/templates/factory/.agents/skills/turn-into-app/references/fresh-project.md +8 -1
- package/corpus/templates/factory/app/routes/factory.tsx +108 -76
- package/corpus/templates/factory/changelog/2026-08-08-scheduler-health-moves-to-settings.md +6 -0
- package/corpus/templates/forms/.agents/skills/turn-into-app/SKILL.md +18 -6
- package/corpus/templates/forms/.agents/skills/turn-into-app/references/fresh-project.md +8 -1
- package/corpus/templates/macros/.agents/skills/turn-into-app/SKILL.md +18 -6
- package/corpus/templates/macros/.agents/skills/turn-into-app/references/fresh-project.md +8 -1
- package/corpus/templates/mail/.agents/skills/turn-into-app/SKILL.md +18 -6
- package/corpus/templates/mail/.agents/skills/turn-into-app/references/fresh-project.md +8 -1
- package/corpus/templates/plan/.agents/skills/adding-a-feature/SKILL.md +9 -0
- package/corpus/templates/plan/.agents/skills/turn-into-app/SKILL.md +18 -6
- package/corpus/templates/plan/.agents/skills/turn-into-app/references/fresh-project.md +8 -1
- package/corpus/templates/plan/app/lib/plan-document-title.ts +3 -1
- package/corpus/templates/plan/app/root.tsx +1 -0
- package/corpus/templates/slides/.agents/skills/turn-into-app/SKILL.md +18 -6
- package/corpus/templates/slides/.agents/skills/turn-into-app/references/fresh-project.md +8 -1
- package/corpus/templates/tasks/.agents/skills/adding-a-feature/SKILL.md +9 -0
- package/corpus/templates/tasks/.agents/skills/turn-into-app/SKILL.md +18 -6
- package/corpus/templates/tasks/.agents/skills/turn-into-app/references/fresh-project.md +8 -1
- package/dist/agent/engine/builder-engine.d.ts +11 -1
- package/dist/agent/engine/builder-engine.js +11 -4
- package/dist/chat-threads/store.d.ts +2 -0
- package/dist/chat-threads/store.js +1 -1
- package/dist/cli/agent-plugin.d.ts +5 -2
- package/dist/cli/agent-plugin.js +17 -9
- package/dist/cli/code-agent-executor.js +25 -5
- package/dist/cli/code-agent-mcp-config.d.ts +21 -0
- package/dist/cli/code-agent-mcp-config.js +103 -0
- package/dist/client/NewWorkspaceAppFlow.js +4 -1
- package/dist/client/agent-chat/index.d.ts +4 -1
- package/dist/client/agent-chat/index.js +4 -1
- package/dist/client/agent-page/AgentTabsPage.d.ts +1 -0
- package/dist/client/agent-page/AgentTabsPage.js +4 -3
- package/dist/client/app-providers.d.ts +3 -1
- package/dist/client/app-providers.js +50 -5
- package/dist/client/chat/runtime.js +63 -0
- package/dist/client/chat-first/agents-pane.d.ts +2 -0
- package/dist/client/chat-first/agents-pane.js +6 -0
- package/dist/client/chat-first/app-pane.d.ts +2 -0
- package/dist/client/chat-first/app-pane.js +6 -0
- package/dist/client/chat-first/apps-rail.d.ts +2 -0
- package/dist/client/chat-first/apps-rail.js +103 -0
- package/dist/client/chat-first/browser-pane.d.ts +2 -0
- package/dist/client/chat-first/browser-pane.js +64 -0
- package/dist/client/chat-first/chat-history.d.ts +12 -0
- package/dist/client/chat-first/chat-history.js +10 -0
- package/dist/client/chat-first/copy.d.ts +2 -0
- package/dist/client/chat-first/copy.js +117 -0
- package/dist/client/chat-first/index.d.ts +13 -0
- package/dist/client/chat-first/index.js +12 -0
- package/dist/client/chat-first/primary-nav.d.ts +8 -0
- package/dist/client/chat-first/primary-nav.js +6 -0
- package/dist/client/chat-first/session-watch-pane.d.ts +2 -0
- package/dist/client/chat-first/session-watch-pane.js +9 -0
- package/dist/client/chat-first/surface-panel.d.ts +9 -0
- package/dist/client/chat-first/surface-panel.js +9 -0
- package/dist/client/chat-first/surface-tabs.d.ts +9 -0
- package/dist/client/chat-first/surface-tabs.js +74 -0
- package/dist/client/chat-first/types.d.ts +74 -0
- package/dist/client/chat-first/types.js +1 -0
- package/dist/client/chat-first-agent-activity.d.ts +11 -0
- package/dist/client/chat-first-agent-activity.js +51 -0
- package/dist/client/chat-first-surface-panel-toggle.d.ts +5 -0
- package/dist/client/chat-first-surface-panel-toggle.js +6 -0
- package/dist/client/chat-first.d.ts +208 -0
- package/dist/client/chat-first.js +816 -0
- package/dist/client/extensions/ExtensionViewer.js +8 -1
- package/dist/client/resources/McpIntegrationDialog.js +3 -2
- package/dist/client/resources/McpServerDetail.js +6 -11
- package/dist/client/resources/index.d.ts +1 -0
- package/dist/client/resources/index.js +1 -0
- package/dist/client/resources/use-mcp-servers.d.ts +20 -0
- package/dist/client/resources/use-mcp-servers.js +82 -46
- package/dist/client/settings/index.d.ts +1 -0
- package/dist/client/settings/index.js +1 -0
- package/dist/collab/awareness.d.ts +2 -2
- package/dist/collab/routes.d.ts +1 -1
- package/dist/collab/struct-routes.d.ts +1 -1
- package/dist/jobs/background-automation-runner.js +19 -2
- package/dist/jobs/scheduler-health.d.ts +20 -0
- package/dist/jobs/scheduler-health.js +86 -1
- package/dist/jobs/scheduler.js +38 -1
- package/dist/mcp-client/routes.d.ts +3 -0
- package/dist/mcp-client/routes.js +14 -0
- package/dist/notifications/routes.d.ts +1 -1
- package/dist/observability/routes.d.ts +5 -5
- package/dist/progress/routes.d.ts +1 -1
- package/dist/provider-api/actions/provider-api.d.ts +2 -2
- package/dist/resources/handlers.d.ts +1 -1
- package/dist/secrets/routes.d.ts +3 -3
- package/dist/server/agent-engine-api-key-route.d.ts +1 -1
- package/dist/server/agents-bundle.d.ts +2 -0
- package/dist/server/agents-bundle.js +31 -2
- package/dist/server/credential-provider.d.ts +8 -2
- package/dist/server/credential-provider.js +13 -9
- package/dist/server/realtime-token.d.ts +1 -1
- package/dist/server/transcribe-voice.d.ts +1 -1
- package/dist/shared/chat-first-app-creation.d.ts +19 -0
- package/dist/shared/chat-first-app-creation.js +75 -0
- package/dist/shared/document-title.d.ts +7 -0
- package/dist/shared/document-title.js +29 -0
- package/dist/shared/index.d.ts +2 -0
- package/dist/shared/index.js +2 -0
- package/dist/styles/chat-history-list.css +16 -0
- package/dist/templates/chat/.agents/skills/adding-a-feature/SKILL.md +9 -0
- package/dist/templates/chat/.agents/skills/turn-into-app/SKILL.md +18 -6
- package/dist/templates/chat/.agents/skills/turn-into-app/references/fresh-project.md +8 -1
- package/dist/templates/default/.agents/skills/adding-a-feature/SKILL.md +9 -0
- package/dist/templates/default/.agents/skills/turn-into-app/SKILL.md +18 -6
- package/dist/templates/default/.agents/skills/turn-into-app/references/fresh-project.md +8 -1
- package/dist/templates/default/react-router.config.ts +18 -0
- package/dist/templates/headless/.agents/skills/turn-into-app/SKILL.md +18 -6
- package/dist/templates/headless/.agents/skills/turn-into-app/references/fresh-project.md +8 -1
- package/dist/templates/workspace-core/.agents/skills/adding-a-feature/SKILL.md +9 -0
- package/dist/templates/workspace-core/.agents/skills/turn-into-app/SKILL.md +18 -6
- package/dist/templates/workspace-core/.agents/skills/turn-into-app/references/fresh-project.md +8 -1
- package/dist/templates/workspace-core/.agents/skills/workspace-conventions/SKILL.md +7 -0
- package/package.json +3 -2
- package/src/templates/chat/.agents/skills/adding-a-feature/SKILL.md +9 -0
- package/src/templates/chat/.agents/skills/turn-into-app/SKILL.md +18 -6
- package/src/templates/chat/.agents/skills/turn-into-app/references/fresh-project.md +8 -1
- package/src/templates/default/.agents/skills/adding-a-feature/SKILL.md +9 -0
- package/src/templates/default/.agents/skills/turn-into-app/SKILL.md +18 -6
- package/src/templates/default/.agents/skills/turn-into-app/references/fresh-project.md +8 -1
- package/src/templates/default/react-router.config.ts +18 -0
- package/src/templates/headless/.agents/skills/turn-into-app/SKILL.md +18 -6
- package/src/templates/headless/.agents/skills/turn-into-app/references/fresh-project.md +8 -1
- package/src/templates/workspace-core/.agents/skills/adding-a-feature/SKILL.md +9 -0
- package/src/templates/workspace-core/.agents/skills/turn-into-app/SKILL.md +18 -6
- package/src/templates/workspace-core/.agents/skills/turn-into-app/references/fresh-project.md +8 -1
- package/src/templates/workspace-core/.agents/skills/workspace-conventions/SKILL.md +7 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type LocaleCode } from "@agent-native/core/client/i18n";
|
|
2
2
|
|
|
3
|
+
import { chatFirstPageTranslations } from "./chat-first-pages";
|
|
3
4
|
import zhTW from "./i18n/zh-TW";
|
|
4
5
|
|
|
5
6
|
const enUS = {
|
|
@@ -37,6 +38,16 @@ const enUS = {
|
|
|
37
38
|
deliveryDescription:
|
|
38
39
|
"Manage message destinations and check the outbound delivery queue.",
|
|
39
40
|
openDelivery: "Open delivery",
|
|
41
|
+
chatFirstTitle: "Chat-first workspace",
|
|
42
|
+
chatFirstDescription:
|
|
43
|
+
"Keep chats at the center and open workspace apps in a contextual pane beside them. This preference only changes your local Dispatch shell.",
|
|
44
|
+
chatFirstAriaLabel: "Use chat-first navigation",
|
|
45
|
+
chatFirstSessionWatchDescription:
|
|
46
|
+
"Session watch and follow-up messaging work in this browser pane too. Local CLI subscription detection stays in the Electron app; Dispatch uses workspace/provider credentials.",
|
|
47
|
+
chatFirstStorageUnavailable:
|
|
48
|
+
"This browser is not allowing local preferences, so Chat-first mode cannot be persisted.",
|
|
49
|
+
chatFirstStorageBlocked:
|
|
50
|
+
"This browser blocked local preferences, so Chat-first mode was not changed.",
|
|
40
51
|
agentTitle: "Manage agent",
|
|
41
52
|
agentDescription:
|
|
42
53
|
"Manage the agent's model, API keys, voice, and other controls. Use the Automations page for scheduled and event-triggered jobs.",
|
|
@@ -379,6 +390,77 @@ const enUS = {
|
|
|
379
390
|
threadDebugRefreshThreads: "Refresh threads",
|
|
380
391
|
threadDebugNoThreads: "No threads found.",
|
|
381
392
|
threadDebugSelectPrompt: "Select a failed run or thread to inspect.",
|
|
393
|
+
chatFirstWorkspaceApps: "Workspace apps",
|
|
394
|
+
chatFirstCreateWorkspaceApp: "Create workspace app",
|
|
395
|
+
chatFirstOpenApp: "Open {{name}}",
|
|
396
|
+
chatFirstAppsLoadError: "Workspace apps could not be loaded",
|
|
397
|
+
chatFirstNoWorkspaceApps: "No workspace apps yet.",
|
|
398
|
+
chatFirstCreateApp: "Create app",
|
|
399
|
+
chatFirstRetry: "Retry",
|
|
400
|
+
chatFirstUnpinApp: "Unpin {{name}}",
|
|
401
|
+
chatFirstPinApp: "Pin {{name}}",
|
|
402
|
+
chatFirstRemovePinned: "Remove from pinned apps",
|
|
403
|
+
chatFirstPinTop: "Pin app to the top",
|
|
404
|
+
chatFirstOpenSideSurfaces: "Open side surfaces",
|
|
405
|
+
chatFirstCloseTab: "Close {{name}}",
|
|
406
|
+
chatFirstClose: "Close",
|
|
407
|
+
chatFirstCloseOthers: "Close others",
|
|
408
|
+
chatFirstCloseToRight: "Close to the right",
|
|
409
|
+
chatFirstCloseAll: "Close all",
|
|
410
|
+
chatFirstBrowserAgentHint: "Ask the agent to open a web URL.",
|
|
411
|
+
chatFirstUnavailable: "This surface is not available here.",
|
|
412
|
+
chatFirstOpenActivity: "Open activity",
|
|
413
|
+
chatFirstDeferred: "Deferred",
|
|
414
|
+
chatFirstSurfaceBrowserLabel: "Browser",
|
|
415
|
+
chatFirstSurfaceBrowserDescription:
|
|
416
|
+
"Open a regular web page with address-bar controls.",
|
|
417
|
+
chatFirstSurfaceBrowserReason: "Ask the agent to open a web URL.",
|
|
418
|
+
chatFirstSurfaceTerminalLabel: "Terminal",
|
|
419
|
+
chatFirstSurfaceTerminalDescription:
|
|
420
|
+
"Run commands beside the conversation.",
|
|
421
|
+
chatFirstSurfaceTerminalReason:
|
|
422
|
+
"Deferred in this release: the existing terminal is a standalone host surface; an embedded pane needs a shared PTY lifecycle.",
|
|
423
|
+
chatFirstSurfaceFilesLabel: "Files",
|
|
424
|
+
chatFirstSurfaceFilesDescription: "Browse the active workspace tree.",
|
|
425
|
+
chatFirstSurfaceFilesReason:
|
|
426
|
+
"Deferred in this release: this shared pane contract does not expose a bounded workspace tree yet.",
|
|
427
|
+
chatFirstSurfaceDiffLabel: "Diff",
|
|
428
|
+
chatFirstSurfaceDiffDescription: "Review the current changeset.",
|
|
429
|
+
chatFirstSurfaceDiffReason:
|
|
430
|
+
"Deferred in this release: diff blocks remain available in chat while a shared changed-file source is defined.",
|
|
431
|
+
chatFirstSurfaceSideChatLabel: "Side chat",
|
|
432
|
+
chatFirstSurfaceSideChatDescription:
|
|
433
|
+
"Watch and message another session beside the main chat.",
|
|
434
|
+
chatFirstSurfaceAgentsLabel: "Agents",
|
|
435
|
+
chatFirstSurfaceAgentsDescription:
|
|
436
|
+
"Review agent sessions and watch one beside the conversation.",
|
|
437
|
+
chatFirstSurfaceSideChatReason:
|
|
438
|
+
"Choose Watch and message from any chat row.",
|
|
439
|
+
chatFirstSurfaceAgentsReason:
|
|
440
|
+
"Review recent runs or watch one beside this conversation.",
|
|
441
|
+
chatFirstAppView: "Contextual app view",
|
|
442
|
+
chatFirstContextualView: "Contextual view · {{view}}",
|
|
443
|
+
chatFirstWorkspaceApp: "Workspace app",
|
|
444
|
+
chatFirstCloseAppPane: "Close app pane",
|
|
445
|
+
chatFirstAppUnavailable: "This workspace app is no longer available.",
|
|
446
|
+
chatFirstLoadingApp: "Loading app",
|
|
447
|
+
chatFirstBrowserBack: "Back",
|
|
448
|
+
chatFirstBrowserForward: "Forward",
|
|
449
|
+
chatFirstBrowserReload: "Reload page",
|
|
450
|
+
chatFirstBrowserAddress: "Browser address",
|
|
451
|
+
chatFirstBrowserOpenExternal: "Open in external browser",
|
|
452
|
+
chatFirstBrowserClose: "Close browser",
|
|
453
|
+
chatFirstBrowserPage: "Browser page",
|
|
454
|
+
chatFirstBrowserInvalidUrl: "Enter a full http(s) URL to navigate.",
|
|
455
|
+
chatFirstWatchingSession: "Watching {{name}}",
|
|
456
|
+
chatFirstSession: "session",
|
|
457
|
+
chatFirstStopWatchingSession: "Stop watching session",
|
|
458
|
+
chatFirstStopWatching: "Stop watching",
|
|
459
|
+
chatFirstWatchedSession: "Watched session",
|
|
460
|
+
chatFirstSessionMessagePlaceholder: "Message this session…",
|
|
461
|
+
chatFirstAgentsTitle: "Subagents",
|
|
462
|
+
chatFirstUntitledAgentSession: "Untitled agent session",
|
|
463
|
+
chatFirstAgentChatSession: "Agent chat session",
|
|
382
464
|
},
|
|
383
465
|
},
|
|
384
466
|
};
|
|
@@ -504,6 +586,16 @@ export const messagesByLocale = {
|
|
|
504
586
|
deliveryTitle: "投递",
|
|
505
587
|
deliveryDescription: "管理消息目的地并查看出站投递队列。",
|
|
506
588
|
openDelivery: "打开投递",
|
|
589
|
+
chatFirstTitle: "聊天优先工作区",
|
|
590
|
+
chatFirstDescription:
|
|
591
|
+
"让聊天保持中心位置,并在旁边的上下文面板中打开工作区应用。此偏好只会更改你在 Dispatch 中的本地界面。",
|
|
592
|
+
chatFirstAriaLabel: "使用聊天优先导航",
|
|
593
|
+
chatFirstSessionWatchDescription:
|
|
594
|
+
"会话监看和后续消息也可在此浏览器面板中使用。本地 CLI 订阅检测保留在 Electron 应用中;Dispatch 使用工作区/提供商凭据。",
|
|
595
|
+
chatFirstStorageUnavailable:
|
|
596
|
+
"此浏览器不允许使用本地偏好设置,因此无法保存聊天优先模式。",
|
|
597
|
+
chatFirstStorageBlocked:
|
|
598
|
+
"此浏览器阻止了本地偏好设置,因此未更改聊天优先模式。",
|
|
507
599
|
agentTitle: "管理代理",
|
|
508
600
|
agentDescription:
|
|
509
601
|
"管理代理的模型、API 密钥、语音和其他控制项。定时与事件触发的任务请使用自动化页面。",
|
|
@@ -737,6 +829,7 @@ export const messagesByLocale = {
|
|
|
737
829
|
agent: "代理",
|
|
738
830
|
},
|
|
739
831
|
pages: {
|
|
832
|
+
...chatFirstPageTranslations["zh-CN"],
|
|
740
833
|
adminDescription: "工作区控制与运营",
|
|
741
834
|
adminNavigation: "管理导航",
|
|
742
835
|
adminWelcome: "工作区控制中心",
|
|
@@ -873,6 +966,16 @@ export const messagesByLocale = {
|
|
|
873
966
|
deliveryDescription:
|
|
874
967
|
"Gestiona destinos de mensajes y revisa la cola de entrega saliente.",
|
|
875
968
|
openDelivery: "Abrir entrega",
|
|
969
|
+
chatFirstTitle: "Espacio de trabajo centrado en el chat",
|
|
970
|
+
chatFirstDescription:
|
|
971
|
+
"Deja los chats en el centro y abre las apps del espacio de trabajo en un panel contextual junto a ellos. Esta preferencia solo cambia tu shell local de Dispatch.",
|
|
972
|
+
chatFirstAriaLabel: "Usar navegación centrada en el chat",
|
|
973
|
+
chatFirstSessionWatchDescription:
|
|
974
|
+
"Puedes observar sesiones y enviar mensajes de seguimiento desde este panel del navegador. La detección de suscripciones CLI locales permanece en la app de Electron; Dispatch usa credenciales del espacio de trabajo/proveedor.",
|
|
975
|
+
chatFirstStorageUnavailable:
|
|
976
|
+
"Este navegador no permite las preferencias locales, por lo que el modo centrado en el chat no se puede guardar.",
|
|
977
|
+
chatFirstStorageBlocked:
|
|
978
|
+
"Este navegador bloqueó las preferencias locales, por lo que no se cambió el modo centrado en el chat.",
|
|
876
979
|
agentTitle: "Gestionar agente",
|
|
877
980
|
agentDescription:
|
|
878
981
|
"Gestiona el modelo del agente, claves API, voz y otros controles. Usa la página de Automatizaciones para trabajos programados y activados por eventos.",
|
|
@@ -1129,6 +1232,7 @@ export const messagesByLocale = {
|
|
|
1129
1232
|
agent: "Agente",
|
|
1130
1233
|
},
|
|
1131
1234
|
pages: {
|
|
1235
|
+
...chatFirstPageTranslations["es-ES"],
|
|
1132
1236
|
adminDescription: "Controles y operaciones del espacio de trabajo",
|
|
1133
1237
|
adminNavigation: "Navegación de administración",
|
|
1134
1238
|
adminWelcome: "Panel de control del espacio de trabajo",
|
|
@@ -1278,6 +1382,16 @@ export const messagesByLocale = {
|
|
|
1278
1382
|
deliveryDescription:
|
|
1279
1383
|
"Gérez les destinations de messages et consultez la file d’attente sortante.",
|
|
1280
1384
|
openDelivery: "Ouvrir la livraison",
|
|
1385
|
+
chatFirstTitle: "Espace de travail axé sur le chat",
|
|
1386
|
+
chatFirstDescription:
|
|
1387
|
+
"Gardez les chats au centre et ouvrez les apps de l’espace de travail dans un panneau contextuel à côté. Cette préférence ne modifie que votre interface locale Dispatch.",
|
|
1388
|
+
chatFirstAriaLabel: "Utiliser la navigation axée sur le chat",
|
|
1389
|
+
chatFirstSessionWatchDescription:
|
|
1390
|
+
"Le suivi des sessions et les messages de suivi fonctionnent aussi dans ce panneau du navigateur. La détection des abonnements CLI locaux reste dans l’app Electron ; Dispatch utilise les identifiants de l’espace de travail/fournisseur.",
|
|
1391
|
+
chatFirstStorageUnavailable:
|
|
1392
|
+
"Ce navigateur n’autorise pas les préférences locales ; le mode axé sur le chat ne peut donc pas être conservé.",
|
|
1393
|
+
chatFirstStorageBlocked:
|
|
1394
|
+
"Ce navigateur a bloqué les préférences locales ; le mode axé sur le chat n’a pas été modifié.",
|
|
1281
1395
|
agentTitle: "Gérer l’agent",
|
|
1282
1396
|
agentDescription:
|
|
1283
1397
|
"Gérez le modèle de l’agent, les clés API, la voix et les autres contrôles. Utilisez la page Automatisations pour les tâches planifiées et déclenchées par des événements.",
|
|
@@ -1534,6 +1648,7 @@ export const messagesByLocale = {
|
|
|
1534
1648
|
agent: "Agent",
|
|
1535
1649
|
},
|
|
1536
1650
|
pages: {
|
|
1651
|
+
...chatFirstPageTranslations["fr-FR"],
|
|
1537
1652
|
adminDescription: "Contrôles et opérations de l’espace de travail",
|
|
1538
1653
|
adminNavigation: "Navigation d’administration",
|
|
1539
1654
|
adminWelcome: "Centre de contrôle de l’espace de travail",
|
|
@@ -1684,6 +1799,16 @@ export const messagesByLocale = {
|
|
|
1684
1799
|
deliveryDescription:
|
|
1685
1800
|
"Nachrichtenziele verwalten und die ausgehende Zustellungswarteschlange prüfen.",
|
|
1686
1801
|
openDelivery: "Zustellung öffnen",
|
|
1802
|
+
chatFirstTitle: "Chat-zentrierter Arbeitsbereich",
|
|
1803
|
+
chatFirstDescription:
|
|
1804
|
+
"Chats bleiben im Mittelpunkt, während Workspace-Apps in einem kontextbezogenen Bereich daneben geöffnet werden. Diese Einstellung ändert nur deine lokale Dispatch-Oberfläche.",
|
|
1805
|
+
chatFirstAriaLabel: "Chat-zentrierte Navigation verwenden",
|
|
1806
|
+
chatFirstSessionWatchDescription:
|
|
1807
|
+
"Sessions können auch in diesem Browserbereich beobachtet und mit Folgemeldungen versehen werden. Die Erkennung lokaler CLI-Abos bleibt in der Electron-App; Dispatch verwendet Workspace-/Anbieter-Anmeldedaten.",
|
|
1808
|
+
chatFirstStorageUnavailable:
|
|
1809
|
+
"Dieser Browser lässt lokale Einstellungen nicht zu. Der chat-zentrierte Modus kann daher nicht gespeichert werden.",
|
|
1810
|
+
chatFirstStorageBlocked:
|
|
1811
|
+
"Dieser Browser hat lokale Einstellungen blockiert. Der chat-zentrierte Modus wurde nicht geändert.",
|
|
1687
1812
|
agentTitle: "Agent verwalten",
|
|
1688
1813
|
agentDescription:
|
|
1689
1814
|
"Verwalte das Modell, die API-Schlüssel, Sprache und weitere Steuerungen des Agents. Für geplante und ereignisgesteuerte Jobs die Automatisierungen-Seite verwenden.",
|
|
@@ -1929,6 +2054,7 @@ export const messagesByLocale = {
|
|
|
1929
2054
|
agent: "Agent",
|
|
1930
2055
|
},
|
|
1931
2056
|
pages: {
|
|
2057
|
+
...chatFirstPageTranslations["de-DE"],
|
|
1932
2058
|
adminDescription: "Arbeitsbereichssteuerung und -betrieb",
|
|
1933
2059
|
adminNavigation: "Administrationsnavigation",
|
|
1934
2060
|
adminWelcome: "Arbeitsbereichsleitstelle",
|
|
@@ -2075,6 +2201,16 @@ export const messagesByLocale = {
|
|
|
2075
2201
|
deliveryDescription:
|
|
2076
2202
|
"メッセージの送信先を管理し、送信キューを確認します。",
|
|
2077
2203
|
openDelivery: "配信を開く",
|
|
2204
|
+
chatFirstTitle: "チャット中心のワークスペース",
|
|
2205
|
+
chatFirstDescription:
|
|
2206
|
+
"チャットを中心に保ち、ワークスペースアプリを隣のコンテキストパネルで開きます。この設定で変わるのはローカルの Dispatch シェルだけです。",
|
|
2207
|
+
chatFirstAriaLabel: "チャット中心のナビゲーションを使用",
|
|
2208
|
+
chatFirstSessionWatchDescription:
|
|
2209
|
+
"このブラウザパネルでもセッションの監視とフォローアップメッセージを利用できます。ローカル CLI サブスクリプションの検出は Electron アプリに残り、Dispatch はワークスペース/プロバイダーの認証情報を使用します。",
|
|
2210
|
+
chatFirstStorageUnavailable:
|
|
2211
|
+
"このブラウザではローカル設定が許可されないため、チャット中心モードを保存できません。",
|
|
2212
|
+
chatFirstStorageBlocked:
|
|
2213
|
+
"このブラウザがローカル設定をブロックしたため、チャット中心モードは変更されませんでした。",
|
|
2078
2214
|
agentTitle: "エージェントを管理",
|
|
2079
2215
|
agentDescription:
|
|
2080
2216
|
"エージェントのモデル、API キー、音声などを管理します。スケジュールおよびイベント駆動のジョブは自動化ページを使用してください。",
|
|
@@ -2318,6 +2454,7 @@ export const messagesByLocale = {
|
|
|
2318
2454
|
agent: "エージェント",
|
|
2319
2455
|
},
|
|
2320
2456
|
pages: {
|
|
2457
|
+
...chatFirstPageTranslations["ja-JP"],
|
|
2321
2458
|
adminDescription: "ワークスペースの管理と運用",
|
|
2322
2459
|
adminNavigation: "管理ナビゲーション",
|
|
2323
2460
|
adminWelcome: "ワークスペースのコントロールプレーン",
|
|
@@ -2462,6 +2599,16 @@ export const messagesByLocale = {
|
|
|
2462
2599
|
deliveryDescription:
|
|
2463
2600
|
"메시지 대상을 관리하고 발신 전달 대기열을 확인합니다.",
|
|
2464
2601
|
openDelivery: "전달 열기",
|
|
2602
|
+
chatFirstTitle: "채팅 중심 작업공간",
|
|
2603
|
+
chatFirstDescription:
|
|
2604
|
+
"채팅을 중심에 두고 작업공간 앱을 옆의 컨텍스트 패널에서 엽니다. 이 설정은 로컬 Dispatch 셸만 변경합니다.",
|
|
2605
|
+
chatFirstAriaLabel: "채팅 중심 탐색 사용",
|
|
2606
|
+
chatFirstSessionWatchDescription:
|
|
2607
|
+
"이 브라우저 패널에서도 세션을 지켜보고 후속 메시지를 보낼 수 있습니다. 로컬 CLI 구독 감지는 Electron 앱에 남아 있으며, Dispatch는 작업공간/공급자 자격 증명을 사용합니다.",
|
|
2608
|
+
chatFirstStorageUnavailable:
|
|
2609
|
+
"이 브라우저에서는 로컬 환경설정을 허용하지 않아 채팅 중심 모드를 저장할 수 없습니다.",
|
|
2610
|
+
chatFirstStorageBlocked:
|
|
2611
|
+
"이 브라우저가 로컬 환경설정을 차단하여 채팅 중심 모드가 변경되지 않았습니다.",
|
|
2465
2612
|
agentTitle: "에이전트 관리",
|
|
2466
2613
|
agentDescription:
|
|
2467
2614
|
"에이전트의 모델, API 키, 음성 및 기타 제어를 관리합니다. 예약 및 이벤트 트리거 작업은 자동화 페이지를 사용하세요.",
|
|
@@ -2702,6 +2849,7 @@ export const messagesByLocale = {
|
|
|
2702
2849
|
agent: "에이전트",
|
|
2703
2850
|
},
|
|
2704
2851
|
pages: {
|
|
2852
|
+
...chatFirstPageTranslations["ko-KR"],
|
|
2705
2853
|
adminDescription: "워크스페이스 제어 및 운영",
|
|
2706
2854
|
adminNavigation: "관리 탐색",
|
|
2707
2855
|
adminWelcome: "워크스페이스 제어 센터",
|
|
@@ -2842,6 +2990,16 @@ export const messagesByLocale = {
|
|
|
2842
2990
|
deliveryDescription:
|
|
2843
2991
|
"Gerencie destinos de mensagens e verifique a fila de entrega de saída.",
|
|
2844
2992
|
openDelivery: "Abrir entrega",
|
|
2993
|
+
chatFirstTitle: "Espaço de trabalho com foco no chat",
|
|
2994
|
+
chatFirstDescription:
|
|
2995
|
+
"Mantenha os chats no centro e abra os apps do workspace em um painel contextual ao lado. Esta preferência altera apenas o shell local do Dispatch.",
|
|
2996
|
+
chatFirstAriaLabel: "Usar navegação com foco no chat",
|
|
2997
|
+
chatFirstSessionWatchDescription:
|
|
2998
|
+
"O acompanhamento de sessões e as mensagens de acompanhamento também funcionam neste painel do navegador. A detecção de assinaturas CLI locais continua no app Electron; o Dispatch usa credenciais do workspace/provedor.",
|
|
2999
|
+
chatFirstStorageUnavailable:
|
|
3000
|
+
"Este navegador não permite preferências locais, então o modo com foco no chat não pode ser salvo.",
|
|
3001
|
+
chatFirstStorageBlocked:
|
|
3002
|
+
"Este navegador bloqueou as preferências locais, então o modo com foco no chat não foi alterado.",
|
|
2845
3003
|
agentTitle: "Gerenciar agente",
|
|
2846
3004
|
agentDescription:
|
|
2847
3005
|
"Gerencie o modelo do agente, chaves de API, voz e outros controles. Use a página de Automações para trabalhos agendados e acionados por eventos.",
|
|
@@ -3094,6 +3252,7 @@ export const messagesByLocale = {
|
|
|
3094
3252
|
agent: "Agente",
|
|
3095
3253
|
},
|
|
3096
3254
|
pages: {
|
|
3255
|
+
...chatFirstPageTranslations["pt-BR"],
|
|
3097
3256
|
adminDescription: "Controles e operações do espaço de trabalho",
|
|
3098
3257
|
adminNavigation: "Navegação de administração",
|
|
3099
3258
|
adminWelcome: "Central de controle do espaço de trabalho",
|
|
@@ -3238,6 +3397,16 @@ export const messagesByLocale = {
|
|
|
3238
3397
|
deliveryTitle: "डिलीवरी",
|
|
3239
3398
|
deliveryDescription: "संदेश गंतव्य प्रबंधित करें और आउटबाउंड डिलीवरी कतार जांचें।",
|
|
3240
3399
|
openDelivery: "डिलीवरी खोलें",
|
|
3400
|
+
chatFirstTitle: "चैट-केंद्रित कार्यक्षेत्र",
|
|
3401
|
+
chatFirstDescription:
|
|
3402
|
+
"चैट को केंद्र में रखें और कार्यक्षेत्र ऐप्स को बगल के संदर्भ पैनल में खोलें। यह प्राथमिकता केवल आपके स्थानीय Dispatch शेल को बदलती है।",
|
|
3403
|
+
chatFirstAriaLabel: "चैट-केंद्रित नेविगेशन का उपयोग करें",
|
|
3404
|
+
chatFirstSessionWatchDescription:
|
|
3405
|
+
"इस ब्राउज़र पैनल में भी सत्र देखना और फ़ॉलो-अप संदेश भेजना काम करता है। स्थानीय CLI सदस्यता पहचान Electron ऐप में रहती है; Dispatch कार्यक्षेत्र/प्रदाता क्रेडेंशियल का उपयोग करता है।",
|
|
3406
|
+
chatFirstStorageUnavailable:
|
|
3407
|
+
"यह ब्राउज़र स्थानीय प्राथमिकताओं की अनुमति नहीं देता, इसलिए चैट-केंद्रित मोड सहेजा नहीं जा सकता।",
|
|
3408
|
+
chatFirstStorageBlocked:
|
|
3409
|
+
"इस ब्राउज़र ने स्थानीय प्राथमिकताओं को ब्लॉक कर दिया, इसलिए चैट-केंद्रित मोड बदला नहीं गया।",
|
|
3241
3410
|
agentTitle: "एजेंट प्रबंधित करें",
|
|
3242
3411
|
agentDescription:
|
|
3243
3412
|
"एजेंट के मॉडल, API कुंजियों, आवाज़ और अन्य नियंत्रणों को प्रबंधित करें। शेड्यूल और इवेंट-ट्रिगर जॉब्स के लिए ऑटोमेशन पेज का उपयोग करें।",
|
|
@@ -3475,6 +3644,7 @@ export const messagesByLocale = {
|
|
|
3475
3644
|
agent: "एजेंट",
|
|
3476
3645
|
},
|
|
3477
3646
|
pages: {
|
|
3647
|
+
...chatFirstPageTranslations["hi-IN"],
|
|
3478
3648
|
adminDescription: "वर्कस्पेस नियंत्रण और संचालन",
|
|
3479
3649
|
adminNavigation: "व्यवस्थापक नेविगेशन",
|
|
3480
3650
|
adminWelcome: "वर्कस्पेस नियंत्रण केंद्र",
|
|
@@ -3611,6 +3781,16 @@ export const messagesByLocale = {
|
|
|
3611
3781
|
deliveryDescription:
|
|
3612
3782
|
"إدارة وجهات الرسائل وفحص قائمة انتظار التسليم الصادرة.",
|
|
3613
3783
|
openDelivery: "فتح التسليم",
|
|
3784
|
+
chatFirstTitle: "مساحة عمل تركز على الدردشة",
|
|
3785
|
+
chatFirstDescription:
|
|
3786
|
+
"أبقِ الدردشات في المركز وافتح تطبيقات مساحة العمل في لوحة سياقية بجانبها. يغيّر هذا التفضيل واجهة Dispatch المحلية فقط.",
|
|
3787
|
+
chatFirstAriaLabel: "استخدام التنقل المتمحور حول الدردشة",
|
|
3788
|
+
chatFirstSessionWatchDescription:
|
|
3789
|
+
"تعمل مراقبة الجلسات وإرسال رسائل المتابعة أيضًا في لوحة المتصفح هذه. يبقى اكتشاف اشتراكات CLI المحلية في تطبيق Electron؛ ويستخدم Dispatch بيانات اعتماد مساحة العمل/الموفر.",
|
|
3790
|
+
chatFirstStorageUnavailable:
|
|
3791
|
+
"لا يسمح هذا المتصفح بالتفضيلات المحلية، لذلك لا يمكن حفظ وضع التركيز على الدردشة.",
|
|
3792
|
+
chatFirstStorageBlocked:
|
|
3793
|
+
"حظر هذا المتصفح التفضيلات المحلية، لذلك لم يتم تغيير وضع التركيز على الدردشة.",
|
|
3614
3794
|
agentTitle: "إدارة الوكيل",
|
|
3615
3795
|
agentDescription:
|
|
3616
3796
|
"أدر نموذج الوكيل ومفاتيح API والصوت وعناصر التحكم الأخرى. استخدم صفحة الأتمتة للمهام المجدولة والمُشغَّلة بالأحداث.",
|
|
@@ -3887,6 +4067,7 @@ export const messagesByLocale = {
|
|
|
3887
4067
|
agent: "الوكيل",
|
|
3888
4068
|
},
|
|
3889
4069
|
pages: {
|
|
4070
|
+
...chatFirstPageTranslations["ar-SA"],
|
|
3890
4071
|
adminDescription: "عناصر التحكم في مساحة العمل وعملياتها",
|
|
3891
4072
|
adminNavigation: "تنقل الإدارة",
|
|
3892
4073
|
adminWelcome: "مركز التحكم في مساحة العمل",
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
import {
|
|
2
|
+
CHAT_FIRST_MODE_CHANGED_EVENT,
|
|
3
|
+
readChatFirstModeState,
|
|
4
|
+
writeChatFirstMode,
|
|
5
|
+
} from "@agent-native/core/client/agent-chat";
|
|
1
6
|
import { ChangelogSettingsCard } from "@agent-native/core/client/changelog";
|
|
2
7
|
import { LanguagePicker, useT } from "@agent-native/core/client/i18n";
|
|
3
8
|
import { TeamPage } from "@agent-native/core/client/org";
|
|
@@ -10,7 +15,8 @@ import {
|
|
|
10
15
|
type SettingsSearchEntry,
|
|
11
16
|
} from "@agent-native/core/client/settings";
|
|
12
17
|
import { Button } from "@agent-native/dispatch/components/ui/button";
|
|
13
|
-
import {
|
|
18
|
+
import { Switch } from "@agent-native/dispatch/components/ui/switch";
|
|
19
|
+
import { useMemo, useState } from "react";
|
|
14
20
|
import { Link } from "react-router";
|
|
15
21
|
|
|
16
22
|
import { messagesByLocale } from "@/i18n-data";
|
|
@@ -24,6 +30,32 @@ export function meta() {
|
|
|
24
30
|
export default function SettingsRoute() {
|
|
25
31
|
const t = useT();
|
|
26
32
|
const agentSettingsTabs = useAgentSettingsTabs();
|
|
33
|
+
const [chatFirstModeState] = useState(() => readChatFirstModeState());
|
|
34
|
+
const [chatFirstMode, setChatFirstMode] = useState(
|
|
35
|
+
() => chatFirstModeState.enabled,
|
|
36
|
+
);
|
|
37
|
+
const [chatFirstStorageNotice, setChatFirstStorageNotice] = useState<
|
|
38
|
+
string | null
|
|
39
|
+
>(
|
|
40
|
+
chatFirstModeState.availability === "unavailable"
|
|
41
|
+
? t("settings.chatFirstStorageUnavailable")
|
|
42
|
+
: null,
|
|
43
|
+
);
|
|
44
|
+
|
|
45
|
+
function updateChatFirstMode(enabled: boolean) {
|
|
46
|
+
const result = writeChatFirstMode(enabled);
|
|
47
|
+
if (!result.ok) {
|
|
48
|
+
setChatFirstStorageNotice(t("settings.chatFirstStorageBlocked"));
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
setChatFirstStorageNotice(null);
|
|
52
|
+
setChatFirstMode(enabled);
|
|
53
|
+
window.dispatchEvent(
|
|
54
|
+
new CustomEvent(CHAT_FIRST_MODE_CHANGED_EVENT, {
|
|
55
|
+
detail: { enabled },
|
|
56
|
+
}),
|
|
57
|
+
);
|
|
58
|
+
}
|
|
27
59
|
|
|
28
60
|
const generalSearchEntries = useMemo<SettingsSearchEntry[]>(
|
|
29
61
|
() => [
|
|
@@ -39,6 +71,12 @@ export default function SettingsRoute() {
|
|
|
39
71
|
keywords: "workspace resources integrations vault destinations",
|
|
40
72
|
hash: "workspace-resources",
|
|
41
73
|
},
|
|
74
|
+
{
|
|
75
|
+
id: "dispatch-chat-first",
|
|
76
|
+
label: t("settings.chatFirstTitle"),
|
|
77
|
+
keywords: "chat first codex t3 apps pane navigation",
|
|
78
|
+
hash: "chat-first",
|
|
79
|
+
},
|
|
42
80
|
],
|
|
43
81
|
[t],
|
|
44
82
|
);
|
|
@@ -78,6 +116,29 @@ export default function SettingsRoute() {
|
|
|
78
116
|
}
|
|
79
117
|
/>
|
|
80
118
|
</SettingsGroup>
|
|
119
|
+
|
|
120
|
+
<SettingsGroup id="chat-first">
|
|
121
|
+
<SettingsRow
|
|
122
|
+
label={t("settings.chatFirstTitle")}
|
|
123
|
+
description={t("settings.chatFirstDescription")}
|
|
124
|
+
control={
|
|
125
|
+
<Switch
|
|
126
|
+
aria-label={t("settings.chatFirstAriaLabel")}
|
|
127
|
+
checked={chatFirstMode}
|
|
128
|
+
onCheckedChange={updateChatFirstMode}
|
|
129
|
+
/>
|
|
130
|
+
}
|
|
131
|
+
>
|
|
132
|
+
<p className="text-sm leading-6 text-muted-foreground">
|
|
133
|
+
{t("settings.chatFirstSessionWatchDescription")}
|
|
134
|
+
</p>
|
|
135
|
+
{chatFirstStorageNotice ? (
|
|
136
|
+
<p className="text-sm text-destructive" role="alert">
|
|
137
|
+
{chatFirstStorageNotice}
|
|
138
|
+
</p>
|
|
139
|
+
) : null}
|
|
140
|
+
</SettingsRow>
|
|
141
|
+
</SettingsGroup>
|
|
81
142
|
</div>
|
|
82
143
|
}
|
|
83
144
|
team={
|
|
@@ -81,6 +81,13 @@ or other file-like payloads, design the upload path in the same change:
|
|
|
81
81
|
provider upload first, then URL/id/blob handle in SQL. Do not add base64/binary
|
|
82
82
|
columns or stuff files into `application_state`.
|
|
83
83
|
|
|
84
|
+
If the feature adds a server-side dependency carrying a native binary or heavy
|
|
85
|
+
runtime — headless browser, ffmpeg, image/video processing, ML runtime — read
|
|
86
|
+
the `performance` skill §9 before adding it. A deployed app has one `/*` page
|
|
87
|
+
function that every visitor's cache miss wakes, and it ships whatever the server
|
|
88
|
+
bundle depends on. Run that work from a background function or a job so the page
|
|
89
|
+
function never carries the weight.
|
|
90
|
+
|
|
84
91
|
**If the action produces or lists a navigable resource**, add a `link` builder that returns `{ url: buildDeepLink({ app, view, params }), label }`. External coding agents and MCP hosts (Claude / ChatGPT / Claude Code / Cowork / Codex, over MCP/A2A) then surface an "Open in … →" deep link that drops the user back into the running UI focused on the record — for free. If a compatible MCP host should render an inline review/edit surface, also add `mcpApp` with `embedApp()` so the action embeds the real React app route instead of a one-off HTML UI. The `link` builder and `mcpApp` metadata must be pure and synchronous (no I/O). Any external-agent read/ingest action must be `http: { method: "GET" }` + `readOnly: true` + `publicAgent: { expose: true, readOnly: true, requiresAuth: true }`. See the `external-agents` skill.
|
|
85
92
|
|
|
86
93
|
### 3. Skills / Instructions
|
|
@@ -195,4 +202,6 @@ TL;DR: declare the vocabulary once with `defineAppRoles({ appId, roles, defaultR
|
|
|
195
202
|
- **create-skill** — How to create skills for new patterns (area 3 in detail)
|
|
196
203
|
- **storing-data** — Where to store the feature's data
|
|
197
204
|
- **real-time-sync** — How the UI stays in sync when the agent writes data
|
|
205
|
+
- **performance** — Query/load cost, and (§9) cold-start artifact size when a
|
|
206
|
+
feature adds a server-side dependency
|
|
198
207
|
- **internationalization** — How to update localized UI copy and catalogs
|
|
@@ -3,8 +3,9 @@ name: turn-into-app
|
|
|
3
3
|
description: >-
|
|
4
4
|
Turn visible project context, a proven thread, skill, or workflow into a
|
|
5
5
|
runnable Agent-Native app with simple buttons, visible agent steps, preview,
|
|
6
|
-
and deployment handoff. Use when a user invokes `/turn-into-app
|
|
7
|
-
make a workflow into an app, including from
|
|
6
|
+
and deployment handoff. Use when a user invokes `/turn-into-app`,
|
|
7
|
+
`/make-into-app`, or asks to make a workflow into an app, including from
|
|
8
|
+
Claude or ChatGPT on the web.
|
|
8
9
|
user-invocable: true
|
|
9
10
|
scope: both
|
|
10
11
|
metadata:
|
|
@@ -38,6 +39,15 @@ The build location depends on the host. Treat this as a hard routing rule:
|
|
|
38
39
|
workspace, follow the local implementation steps below. The local agent may
|
|
39
40
|
scaffold, edit, run, and verify the app there.
|
|
40
41
|
|
|
42
|
+
Once the source brief is sufficient to identify a repeatable workflow, the
|
|
43
|
+
handoff is non-interactive. Do not ask the user for visual, product, copy,
|
|
44
|
+
layout, template, integration, or implementation choices that can be resolved
|
|
45
|
+
from the source. Select the source's recommended option; otherwise choose the
|
|
46
|
+
most direct conventional default and record the assumption for later review.
|
|
47
|
+
Only stop for a genuine hard blocker such as missing authorization, a
|
|
48
|
+
destructive external action, an ambiguous target workspace, or no identifiable
|
|
49
|
+
workflow at all.
|
|
50
|
+
|
|
41
51
|
## Default behavior
|
|
42
52
|
|
|
43
53
|
For a local code-agent runtime this is an end-to-end build skill, not a request
|
|
@@ -104,14 +114,16 @@ before creating the app. Read the host-provided context in this order:
|
|
|
104
114
|
Record the brief with these headings before handoff: source and provenance,
|
|
105
115
|
project goal, configuration and constraints, knowledge sources, repeatable
|
|
106
116
|
workflow, inputs and outputs, judgment and review points, representative runs,
|
|
107
|
-
integrations and permissions, and unknowns. This is the compact contract for
|
|
117
|
+
integrations and permissions, and unknowns and assumptions. This is the compact contract for
|
|
108
118
|
the app. It keeps the new app useful without pretending that hidden Project
|
|
109
119
|
history was imported. See [the fresh Project reference](references/fresh-project.md)
|
|
110
120
|
for the host setup and brief template.
|
|
111
121
|
|
|
112
|
-
If the visible Project context has no concrete repeatable job
|
|
113
|
-
|
|
114
|
-
|
|
122
|
+
If the visible Project context has no concrete repeatable job and no primary
|
|
123
|
+
goal can be inferred, ask for one focused clarification or a representative
|
|
124
|
+
artifact. Otherwise use the project's primary goal and source conventions; do
|
|
125
|
+
not ask a questionnaire and do not fall back to a generic “what app do you
|
|
126
|
+
want to make?” builder.
|
|
115
127
|
|
|
116
128
|
## Source selection guard
|
|
117
129
|
|
|
@@ -36,7 +36,7 @@ Inputs and outputs:
|
|
|
36
36
|
Judgment and review points:
|
|
37
37
|
Representative runs: none, or 1-3 selected examples
|
|
38
38
|
Integrations and permissions:
|
|
39
|
-
Unknowns and
|
|
39
|
+
Unknowns and assumptions:
|
|
40
40
|
```
|
|
41
41
|
|
|
42
42
|
Keep source references bounded. Prefer a file name, URL, resource ID, or short
|
|
@@ -69,6 +69,13 @@ do not fall back to a local sandbox build. Claude Code and Codex Code are the
|
|
|
69
69
|
local-agent exception and may follow the implementation steps in the main
|
|
70
70
|
skill.
|
|
71
71
|
|
|
72
|
+
The brief is an implementation authorization, not a questionnaire. After a
|
|
73
|
+
repeatable workflow is identifiable, choose any source-recommended option
|
|
74
|
+
automatically. For unresolved non-blocking choices, use the most direct
|
|
75
|
+
conventional default, record it under assumptions, and continue. Ask only when
|
|
76
|
+
there is no identifiable workflow, no authorized target workspace, or a
|
|
77
|
+
destructive/credential boundary genuinely prevents the handoff.
|
|
78
|
+
|
|
72
79
|
In a new Project chat, say:
|
|
73
80
|
|
|
74
81
|
```text
|