@kywk/open-slide-core 2.3.1 → 2.3.3
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/{build-CZ6Qtrng.js → build-46dO14h1.js} +1 -1
- package/dist/cli/bin.js +4 -4
- package/dist/{config-CpmGqpQi.d.ts → config-DJ8ZOe7C.d.ts} +6 -2
- package/dist/{config-B5LArqpp.js → config-KyYvWqq-.js} +2061 -355
- package/dist/{dev-CCgdakbZ.js → dev-C0n-o0-c.js} +2 -2
- package/dist/index.d.ts +3 -3
- package/dist/index.js +73 -32
- package/dist/locale/index.d.ts +1 -1
- package/dist/locale/index.js +1 -1
- package/dist/{preview-AwAqvG17.js → preview-CDWAGSfB.js} +1 -1
- package/dist/{types-CvAqFqsY.d.ts → types-tdaXSyah.d.ts} +111 -0
- package/dist/{update-C_RlnKu4.js → update-CqZqQRQk.js} +128 -7
- package/dist/vite/index.d.ts +1 -1
- package/dist/vite/index.js +1 -1
- package/dist/{zh-tw-B7_Oqv2q.js → zh-tw-DXcqQTrA.js} +540 -0
- package/package.json +10 -3
- package/src/agent/prompt.ts +141 -0
- package/src/agent/provider.ts +123 -0
- package/src/agent/types.ts +151 -0
- package/src/app/components/agent/agent-dock.tsx +35 -0
- package/src/app/components/agent/agent-markdown.tsx +45 -0
- package/src/app/components/agent/agent-panel.tsx +692 -0
- package/src/app/components/agent/agent-presence.tsx +74 -0
- package/src/app/components/agent/composer.tsx +120 -0
- package/src/app/components/agent/connect-view.tsx +184 -0
- package/src/app/components/agent/history-view.tsx +135 -0
- package/src/app/components/agent/provider-logo.tsx +34 -0
- package/src/app/components/agent/transcript.tsx +609 -0
- package/src/app/components/command/slide-command-menu.tsx +10 -0
- package/src/app/components/inline-svg.tsx +52 -21
- package/src/app/components/inspector/comment-layer.tsx +20 -1
- package/src/app/components/inspector/image-crop-dialog.tsx +1 -5
- package/src/app/components/inspector/inspector-panel.tsx +1 -1
- package/src/app/components/mermaid.tsx +42 -11
- package/src/app/components/panel/editor-sidebar.tsx +85 -16
- package/src/app/components/panel/panel-shell.tsx +2 -2
- package/src/app/components/panel/resize-handle.tsx +129 -0
- package/src/app/components/player.tsx +105 -23
- package/src/app/components/present/curtain.tsx +52 -0
- package/src/app/components/present/last-slide-hint.tsx +36 -0
- package/src/app/components/slide-canvas.tsx +1 -1
- package/src/app/components/thumbnail-rail.tsx +1 -1
- package/src/app/lib/agent/use-agent.ts +543 -0
- package/src/app/lib/use-auto-grow.ts +15 -0
- package/src/app/lib/utils.ts +4 -0
- package/src/app/routes/home.tsx +51 -7
- package/src/app/routes/slide.tsx +172 -116
- package/src/app/styles.css +170 -0
- package/src/editing/placeholder-id.ts +1 -0
- package/src/locale/en.ts +107 -0
- package/src/locale/es.ts +109 -0
- package/src/locale/ja.ts +100 -0
- package/src/locale/types.ts +110 -0
- package/src/locale/zh-cn.ts +97 -0
- package/src/locale/zh-tw.ts +97 -0
package/src/locale/en.ts
CHANGED
|
@@ -96,6 +96,7 @@ export const en: Locale = {
|
|
|
96
96
|
},
|
|
97
97
|
|
|
98
98
|
slide: {
|
|
99
|
+
resizeSidePanel: 'Resize side panel',
|
|
99
100
|
home: 'Home',
|
|
100
101
|
backToHome: 'Back to home',
|
|
101
102
|
agentConnected: 'Agent connected',
|
|
@@ -177,6 +178,7 @@ export const en: Locale = {
|
|
|
177
178
|
helpAria: 'Keyboard shortcuts (?)',
|
|
178
179
|
exitAria: 'Exit (Esc)',
|
|
179
180
|
elapsedTime: 'Elapsed time',
|
|
181
|
+
lastSlideHint: 'Last slide · Press Esc to exit',
|
|
180
182
|
helpEyebrow: 'Present mode',
|
|
181
183
|
helpTitle: 'Keyboard shortcuts',
|
|
182
184
|
shortcutNext: 'Next slide',
|
|
@@ -540,4 +542,109 @@ export const en: Locale = {
|
|
|
540
542
|
expandPromptAria: 'Expand prompt',
|
|
541
543
|
collapsePromptAria: 'Collapse prompt',
|
|
542
544
|
},
|
|
545
|
+
|
|
546
|
+
agent: {
|
|
547
|
+
title: 'Agent',
|
|
548
|
+
beta: 'Beta',
|
|
549
|
+
betaTitle: 'Early preview',
|
|
550
|
+
betaHint: 'Replies, edits and tool calls can occasionally fail or do something unexpected.',
|
|
551
|
+
open: 'Agent',
|
|
552
|
+
openTitle: 'Open the agent panel',
|
|
553
|
+
close: 'Close agent panel',
|
|
554
|
+
newSession: 'New chat',
|
|
555
|
+
sessions: 'History',
|
|
556
|
+
noSessions: 'No conversations yet.',
|
|
557
|
+
deleteSession: 'Delete conversation',
|
|
558
|
+
historyThisDeck: 'This deck',
|
|
559
|
+
historyOtherDecks: 'Other decks',
|
|
560
|
+
historyEmptyHint: 'Chats you start in this panel show up here.',
|
|
561
|
+
sessionRunning: 'Working',
|
|
562
|
+
composerPlaceholder: 'Ask {provider} to create or edit slides…',
|
|
563
|
+
send: 'Send',
|
|
564
|
+
stop: 'Stop',
|
|
565
|
+
working: 'Working',
|
|
566
|
+
contextPage: 'Page {n}',
|
|
567
|
+
contextSelection: 'Selection',
|
|
568
|
+
pendingComments: { one: '{count} comment', other: '{count} comments' },
|
|
569
|
+
applyComments: 'Apply comments',
|
|
570
|
+
applyCommentsWith: 'Apply with {provider}',
|
|
571
|
+
createDeck: 'New deck',
|
|
572
|
+
createDeckWith: 'Create a deck with {provider}',
|
|
573
|
+
quickCreate: 'Draft a new deck',
|
|
574
|
+
quickCreateHint: 'Opens a blank deck; describe it and the agent drafts it page by page.',
|
|
575
|
+
quickApply: 'Apply pending comments',
|
|
576
|
+
quickApplyHint: 'Resolves every @slide-comment marker in this slide.',
|
|
577
|
+
quickTheme: 'Create a theme',
|
|
578
|
+
quickThemeHint: 'Extracts or designs a reusable theme under themes/.',
|
|
579
|
+
quickEdit: 'Edit this page',
|
|
580
|
+
quickEditHint: 'Describe a change to the page you are viewing.',
|
|
581
|
+
emptyTitle: 'What should we build?',
|
|
582
|
+
emptyHint: 'Describe a deck, or pick a starting point.',
|
|
583
|
+
questionSubmit: 'Continue',
|
|
584
|
+
questionOther: 'Other',
|
|
585
|
+
questionOtherPlaceholder: 'Type your own answer',
|
|
586
|
+
questionCancelled: 'Dismissed',
|
|
587
|
+
permissionTitle: 'Needs approval',
|
|
588
|
+
allow: 'Allow',
|
|
589
|
+
deny: 'Deny',
|
|
590
|
+
allowed: 'Allowed',
|
|
591
|
+
denied: 'Denied',
|
|
592
|
+
autoApprove: 'Auto-approve',
|
|
593
|
+
autoApproveHint: 'Run commands without asking. Edits inside the workspace are always allowed.',
|
|
594
|
+
resultDone: 'Done',
|
|
595
|
+
resultStopped: 'Stopped',
|
|
596
|
+
resultSeconds: '{seconds}s',
|
|
597
|
+
errorEyebrow: 'Error',
|
|
598
|
+
statusLoading: 'Checking agents',
|
|
599
|
+
disabled: 'The agent panel is disabled in open-slide.config.ts.',
|
|
600
|
+
connectTitle: 'Connect an agent',
|
|
601
|
+
connectDescription:
|
|
602
|
+
'Drive your coding agent from here instead of a terminal. Agents installed on this machine connect automatically and reuse their sign-in.',
|
|
603
|
+
connect: 'Connect',
|
|
604
|
+
connecting: 'Connecting',
|
|
605
|
+
connected: 'Connected',
|
|
606
|
+
connectInstallHint: 'Adds {pkg} to this workspace with {pm}.',
|
|
607
|
+
cliFound: 'CLI found · v{version}',
|
|
608
|
+
cliFoundNoVersion: 'CLI found',
|
|
609
|
+
cliMissing: 'CLI not found on PATH',
|
|
610
|
+
cliHint: 'Install the {name} CLI and sign in once; the panel reuses its login.',
|
|
611
|
+
needCliTitle: 'Install Claude Code or Codex first',
|
|
612
|
+
needCliDescription:
|
|
613
|
+
'The panel drives the coding agent CLI on this machine, and none was found on your PATH. Install one, sign in once in a terminal, then check again.',
|
|
614
|
+
checkAgain: 'Check again',
|
|
615
|
+
retry: 'Retry',
|
|
616
|
+
toastConnected: '{name} connected',
|
|
617
|
+
toastConnectFailed: 'Could not install {pkg}',
|
|
618
|
+
manageConnections: 'Manage agents',
|
|
619
|
+
backToChat: 'Back',
|
|
620
|
+
toastSendFailed: 'Could not send message',
|
|
621
|
+
newDeckTitle: "What's this deck about?",
|
|
622
|
+
newDeckHint:
|
|
623
|
+
'Describe the topic, audience and tone. {provider} drafts it page by page while you watch.',
|
|
624
|
+
newDeckPlaceholder: 'A 10-minute talk on…',
|
|
625
|
+
toastCreateDeckFailed: 'Could not create a deck',
|
|
626
|
+
steps: { one: '{count} step', other: '{count} steps' },
|
|
627
|
+
questionSkip: 'Skip',
|
|
628
|
+
copyMessage: 'Copy',
|
|
629
|
+
copied: 'Copied',
|
|
630
|
+
editMessage: 'Edit',
|
|
631
|
+
cancelEdit: 'Cancel',
|
|
632
|
+
sendEdit: 'Send',
|
|
633
|
+
editHint:
|
|
634
|
+
'Sending replaces the conversation after this message. Edits already made to files stay.',
|
|
635
|
+
modelDefault: 'Default',
|
|
636
|
+
reasoning: 'Reasoning',
|
|
637
|
+
effortAuto: 'Auto',
|
|
638
|
+
efforts: {
|
|
639
|
+
minimal: 'Minimal',
|
|
640
|
+
low: 'Low',
|
|
641
|
+
medium: 'Medium',
|
|
642
|
+
high: 'High',
|
|
643
|
+
xhigh: 'Extra high',
|
|
644
|
+
max: 'Max',
|
|
645
|
+
},
|
|
646
|
+
presenceEditing: '{provider} is editing',
|
|
647
|
+
presenceThinking: 'Thinking',
|
|
648
|
+
presenceWaiting: 'Waiting for you',
|
|
649
|
+
},
|
|
543
650
|
};
|
package/src/locale/es.ts
CHANGED
|
@@ -98,6 +98,7 @@ export const es: Locale = {
|
|
|
98
98
|
},
|
|
99
99
|
|
|
100
100
|
slide: {
|
|
101
|
+
resizeSidePanel: 'Redimensionar panel lateral',
|
|
101
102
|
home: 'Inicio',
|
|
102
103
|
backToHome: 'Volver al inicio',
|
|
103
104
|
agentConnected: 'Agente conectado',
|
|
@@ -179,6 +180,7 @@ export const es: Locale = {
|
|
|
179
180
|
helpAria: 'Atajos de teclado (?)',
|
|
180
181
|
exitAria: 'Salir (Esc)',
|
|
181
182
|
elapsedTime: 'Tiempo transcurrido',
|
|
183
|
+
lastSlideHint: 'Última diapositiva · Pulsa Esc para salir',
|
|
182
184
|
helpEyebrow: 'Modo presentación',
|
|
183
185
|
helpTitle: 'Atajos de teclado',
|
|
184
186
|
shortcutNext: 'Diapositiva siguiente',
|
|
@@ -547,4 +549,111 @@ export const es: Locale = {
|
|
|
547
549
|
expandPromptAria: 'Expandir prompt',
|
|
548
550
|
collapsePromptAria: 'Contraer prompt',
|
|
549
551
|
},
|
|
552
|
+
agent: {
|
|
553
|
+
title: 'Agente',
|
|
554
|
+
beta: 'Beta',
|
|
555
|
+
betaTitle: 'Versión preliminar',
|
|
556
|
+
betaHint:
|
|
557
|
+
'Las respuestas, ediciones y acciones pueden fallar o hacer algo inesperado de vez en cuando.',
|
|
558
|
+
open: 'Agente',
|
|
559
|
+
openTitle: 'Abrir el panel del agente',
|
|
560
|
+
close: 'Cerrar el panel del agente',
|
|
561
|
+
newSession: 'Nuevo chat',
|
|
562
|
+
sessions: 'Historial',
|
|
563
|
+
noSessions: 'Todavía no hay conversaciones.',
|
|
564
|
+
deleteSession: 'Eliminar conversación',
|
|
565
|
+
historyThisDeck: 'Esta presentación',
|
|
566
|
+
historyOtherDecks: 'Otras presentaciones',
|
|
567
|
+
historyEmptyHint: 'Los chats que empieces en este panel aparecen aquí.',
|
|
568
|
+
sessionRunning: 'En curso',
|
|
569
|
+
composerPlaceholder: 'Pídele a {provider} que cree o edite diapositivas…',
|
|
570
|
+
send: 'Enviar',
|
|
571
|
+
stop: 'Detener',
|
|
572
|
+
working: 'Trabajando',
|
|
573
|
+
contextPage: 'Página {n}',
|
|
574
|
+
contextSelection: 'Selección',
|
|
575
|
+
pendingComments: { one: '{count} comentario', other: '{count} comentarios' },
|
|
576
|
+
applyComments: 'Aplicar comentarios',
|
|
577
|
+
applyCommentsWith: 'Aplicar con {provider}',
|
|
578
|
+
createDeck: 'Nueva presentación',
|
|
579
|
+
createDeckWith: 'Crear una presentación con {provider}',
|
|
580
|
+
quickCreate: 'Redactar una nueva presentación',
|
|
581
|
+
quickCreateHint:
|
|
582
|
+
'Abre una presentación en blanco; descríbela y el agente la redacta página a página.',
|
|
583
|
+
quickApply: 'Aplicar comentarios pendientes',
|
|
584
|
+
quickApplyHint: 'Resuelve todos los marcadores @slide-comment de esta presentación.',
|
|
585
|
+
quickTheme: 'Crear un tema',
|
|
586
|
+
quickThemeHint: 'Extrae o diseña un tema reutilizable en themes/.',
|
|
587
|
+
quickEdit: 'Editar esta página',
|
|
588
|
+
quickEditHint: 'Describe un cambio para la página que estás viendo.',
|
|
589
|
+
emptyTitle: '¿Qué construimos?',
|
|
590
|
+
emptyHint: 'Describe una presentación o elige un punto de partida.',
|
|
591
|
+
questionSubmit: 'Continuar',
|
|
592
|
+
questionOther: 'Otra',
|
|
593
|
+
questionOtherPlaceholder: 'Escribe tu propia respuesta',
|
|
594
|
+
questionCancelled: 'Descartada',
|
|
595
|
+
permissionTitle: 'Requiere aprobación',
|
|
596
|
+
allow: 'Permitir',
|
|
597
|
+
deny: 'Denegar',
|
|
598
|
+
allowed: 'Permitido',
|
|
599
|
+
denied: 'Denegado',
|
|
600
|
+
autoApprove: 'Aprobar automáticamente',
|
|
601
|
+
autoApproveHint:
|
|
602
|
+
'Ejecuta comandos sin preguntar. Las ediciones dentro del workspace siempre se permiten.',
|
|
603
|
+
resultDone: 'Listo',
|
|
604
|
+
resultStopped: 'Detenido',
|
|
605
|
+
resultSeconds: '{seconds}s',
|
|
606
|
+
errorEyebrow: 'Error',
|
|
607
|
+
statusLoading: 'Comprobando agentes',
|
|
608
|
+
disabled: 'El panel del agente está desactivado en open-slide.config.ts.',
|
|
609
|
+
connectTitle: 'Conectar un agente',
|
|
610
|
+
connectDescription:
|
|
611
|
+
'Dirige tu agente de código desde aquí en lugar de una terminal. Los agentes instalados en esta máquina se conectan solos y reutilizan su sesión.',
|
|
612
|
+
connect: 'Conectar',
|
|
613
|
+
connecting: 'Conectando',
|
|
614
|
+
connected: 'Conectado',
|
|
615
|
+
connectInstallHint: 'Añade {pkg} a este workspace con {pm}.',
|
|
616
|
+
cliFound: 'CLI encontrada · v{version}',
|
|
617
|
+
cliFoundNoVersion: 'CLI encontrada',
|
|
618
|
+
cliMissing: 'CLI no encontrada en el PATH',
|
|
619
|
+
cliHint: 'Instala la CLI de {name} e inicia sesión una vez; el panel reutiliza esa sesión.',
|
|
620
|
+
needCliTitle: 'Instala Claude Code o Codex primero',
|
|
621
|
+
needCliDescription:
|
|
622
|
+
'El panel dirige la CLI del agente de código de esta máquina y no se encontró ninguna en el PATH. Instala una, inicia sesión una vez en una terminal y vuelve a comprobar.',
|
|
623
|
+
checkAgain: 'Volver a comprobar',
|
|
624
|
+
retry: 'Reintentar',
|
|
625
|
+
toastConnected: '{name} conectado',
|
|
626
|
+
toastConnectFailed: 'No se pudo instalar {pkg}',
|
|
627
|
+
manageConnections: 'Gestionar agentes',
|
|
628
|
+
backToChat: 'Volver',
|
|
629
|
+
toastSendFailed: 'No se pudo enviar el mensaje',
|
|
630
|
+
newDeckTitle: '¿De qué trata esta presentación?',
|
|
631
|
+
newDeckHint:
|
|
632
|
+
'Describe el tema, la audiencia y el tono. {provider} la redacta página a página mientras miras.',
|
|
633
|
+
newDeckPlaceholder: 'Una charla de 10 minutos sobre…',
|
|
634
|
+
toastCreateDeckFailed: 'No se pudo crear la presentación',
|
|
635
|
+
steps: { one: '{count} paso', other: '{count} pasos' },
|
|
636
|
+
questionSkip: 'Omitir',
|
|
637
|
+
copyMessage: 'Copiar',
|
|
638
|
+
copied: 'Copiado',
|
|
639
|
+
editMessage: 'Editar',
|
|
640
|
+
cancelEdit: 'Cancelar',
|
|
641
|
+
sendEdit: 'Enviar',
|
|
642
|
+
editHint:
|
|
643
|
+
'Al enviar se reemplaza la conversación posterior a este mensaje. Los cambios en archivos se mantienen.',
|
|
644
|
+
modelDefault: 'Predeterminado',
|
|
645
|
+
reasoning: 'Razonamiento',
|
|
646
|
+
effortAuto: 'Auto',
|
|
647
|
+
efforts: {
|
|
648
|
+
minimal: 'Mínimo',
|
|
649
|
+
low: 'Bajo',
|
|
650
|
+
medium: 'Medio',
|
|
651
|
+
high: 'Alto',
|
|
652
|
+
xhigh: 'Muy alto',
|
|
653
|
+
max: 'Máximo',
|
|
654
|
+
},
|
|
655
|
+
presenceEditing: '{provider} está editando',
|
|
656
|
+
presenceThinking: 'Pensando',
|
|
657
|
+
presenceWaiting: 'Esperando tu respuesta',
|
|
658
|
+
},
|
|
550
659
|
};
|
package/src/locale/ja.ts
CHANGED
|
@@ -96,6 +96,7 @@ export const ja: Locale = {
|
|
|
96
96
|
},
|
|
97
97
|
|
|
98
98
|
slide: {
|
|
99
|
+
resizeSidePanel: 'サイドパネルの幅を調整',
|
|
99
100
|
agentConnected: 'エージェント接続中',
|
|
100
101
|
agentConnectedTooltip:
|
|
101
102
|
'現在のスライドと Inspector の選択はエージェントにリアルタイムで同期されています。',
|
|
@@ -177,6 +178,7 @@ export const ja: Locale = {
|
|
|
177
178
|
helpAria: 'キーボードショートカット (?)',
|
|
178
179
|
exitAria: '終了 (Esc)',
|
|
179
180
|
elapsedTime: '経過時間',
|
|
181
|
+
lastSlideHint: '最後のスライドです · Esc で終了',
|
|
180
182
|
helpEyebrow: '発表モード',
|
|
181
183
|
helpTitle: 'キーボードショートカット',
|
|
182
184
|
shortcutNext: '次のスライド',
|
|
@@ -547,4 +549,102 @@ export const ja: Locale = {
|
|
|
547
549
|
expandPromptAria: 'プロンプトを展開',
|
|
548
550
|
collapsePromptAria: 'プロンプトを折りたたむ',
|
|
549
551
|
},
|
|
552
|
+
agent: {
|
|
553
|
+
title: 'エージェント',
|
|
554
|
+
beta: 'Beta',
|
|
555
|
+
betaTitle: 'プレビュー版',
|
|
556
|
+
betaHint: '返答・編集・ツール実行が失敗したり、思わぬ動作をしたりすることがあります。',
|
|
557
|
+
open: 'エージェント',
|
|
558
|
+
openTitle: 'エージェントパネルを開く',
|
|
559
|
+
close: 'エージェントパネルを閉じる',
|
|
560
|
+
newSession: '新しいチャット',
|
|
561
|
+
sessions: '履歴',
|
|
562
|
+
noSessions: 'まだ会話はありません。',
|
|
563
|
+
deleteSession: '会話を削除',
|
|
564
|
+
historyThisDeck: 'このデッキ',
|
|
565
|
+
historyOtherDecks: '他のデッキ',
|
|
566
|
+
historyEmptyHint: 'このパネルで始めた会話がここに表示されます。',
|
|
567
|
+
sessionRunning: '実行中',
|
|
568
|
+
composerPlaceholder: '{provider} にスライドの作成や編集を依頼…',
|
|
569
|
+
send: '送信',
|
|
570
|
+
stop: '停止',
|
|
571
|
+
working: '処理中',
|
|
572
|
+
contextPage: '{n} ページ目',
|
|
573
|
+
contextSelection: '選択中',
|
|
574
|
+
pendingComments: { one: '{count} 件のコメント', other: '{count} 件のコメント' },
|
|
575
|
+
applyComments: 'コメントを適用',
|
|
576
|
+
applyCommentsWith: '{provider} で適用',
|
|
577
|
+
createDeck: '新しいデッキ',
|
|
578
|
+
createDeckWith: '{provider} でデッキを作成',
|
|
579
|
+
quickCreate: '新しいデッキを下書き',
|
|
580
|
+
quickCreateHint: '空のデッキを開き、内容を伝えるとエージェントが 1 ページずつ作成します。',
|
|
581
|
+
quickApply: '未処理のコメントを適用',
|
|
582
|
+
quickApplyHint: 'このスライドの @slide-comment マーカーをすべて処理します。',
|
|
583
|
+
quickTheme: 'テーマを作成',
|
|
584
|
+
quickThemeHint: 'themes/ に再利用できるテーマを抽出・設計します。',
|
|
585
|
+
quickEdit: 'このページを編集',
|
|
586
|
+
quickEditHint: '表示中のページへの変更内容を書いてください。',
|
|
587
|
+
emptyTitle: '何を作りますか?',
|
|
588
|
+
emptyHint: 'デッキの内容を書くか、下から出発点を選んでください。',
|
|
589
|
+
questionSubmit: '続ける',
|
|
590
|
+
questionOther: 'その他',
|
|
591
|
+
questionOtherPlaceholder: '自由に入力',
|
|
592
|
+
questionCancelled: 'スキップ',
|
|
593
|
+
permissionTitle: '承認が必要です',
|
|
594
|
+
allow: '許可',
|
|
595
|
+
deny: '拒否',
|
|
596
|
+
allowed: '許可済み',
|
|
597
|
+
denied: '拒否済み',
|
|
598
|
+
autoApprove: '自動承認',
|
|
599
|
+
autoApproveHint: '確認なしでコマンドを実行します。ワークスペース内の編集は常に許可されます。',
|
|
600
|
+
resultDone: '完了',
|
|
601
|
+
resultStopped: '停止',
|
|
602
|
+
resultSeconds: '{seconds} 秒',
|
|
603
|
+
errorEyebrow: 'エラー',
|
|
604
|
+
statusLoading: 'エージェントを確認中',
|
|
605
|
+
disabled: 'エージェントパネルは open-slide.config.ts で無効化されています。',
|
|
606
|
+
connectTitle: 'エージェントを接続',
|
|
607
|
+
connectDescription:
|
|
608
|
+
'ターミナルの代わりにここからコーディングエージェントを操作できます。このマシンにインストール済みのエージェントは自動で接続され、そのログインを再利用します。',
|
|
609
|
+
connect: '接続',
|
|
610
|
+
connecting: '接続中',
|
|
611
|
+
connected: '接続済み',
|
|
612
|
+
connectInstallHint: '{pm} で {pkg} をこのワークスペースに追加します。',
|
|
613
|
+
cliFound: 'CLI を検出 · v{version}',
|
|
614
|
+
cliFoundNoVersion: 'CLI を検出',
|
|
615
|
+
cliMissing: 'PATH に CLI が見つかりません',
|
|
616
|
+
cliHint:
|
|
617
|
+
'{name} CLI をインストールして一度ログインしてください。パネルはそのログインを再利用します。',
|
|
618
|
+
needCliTitle: '先に Claude Code か Codex をインストールしてください',
|
|
619
|
+
needCliDescription:
|
|
620
|
+
'パネルはこのマシンのコーディングエージェント CLI を操作しますが、PATH に見つかりませんでした。どちらかをインストールしてターミナルで一度ログインし、もう一度確認してください。',
|
|
621
|
+
checkAgain: 'もう一度確認',
|
|
622
|
+
retry: '再試行',
|
|
623
|
+
toastConnected: '{name} を接続しました',
|
|
624
|
+
toastConnectFailed: '{pkg} をインストールできませんでした',
|
|
625
|
+
manageConnections: 'エージェントを管理',
|
|
626
|
+
backToChat: '戻る',
|
|
627
|
+
toastSendFailed: 'メッセージを送信できませんでした',
|
|
628
|
+
newDeckTitle: 'どんなデッキにしますか?',
|
|
629
|
+
newDeckHint:
|
|
630
|
+
'テーマ、対象、トーンを伝えてください。{provider} が 1 ページずつ作成する様子を見られます。',
|
|
631
|
+
newDeckPlaceholder: '10 分間のトーク:…',
|
|
632
|
+
toastCreateDeckFailed: 'デッキを作成できませんでした',
|
|
633
|
+
steps: { one: '{count} ステップ', other: '{count} ステップ' },
|
|
634
|
+
questionSkip: 'スキップ',
|
|
635
|
+
copyMessage: 'コピー',
|
|
636
|
+
copied: 'コピーしました',
|
|
637
|
+
editMessage: '編集',
|
|
638
|
+
cancelEdit: 'キャンセル',
|
|
639
|
+
sendEdit: '送信',
|
|
640
|
+
editHint:
|
|
641
|
+
'送信すると、このメッセージ以降の会話が置き換わります。ファイルへの変更は元に戻りません。',
|
|
642
|
+
modelDefault: 'デフォルト',
|
|
643
|
+
reasoning: '推論',
|
|
644
|
+
effortAuto: '自動',
|
|
645
|
+
efforts: { minimal: '最小', low: '低', medium: '中', high: '高', xhigh: '最高', max: '最大' },
|
|
646
|
+
presenceEditing: '{provider} が編集中',
|
|
647
|
+
presenceThinking: '考え中',
|
|
648
|
+
presenceWaiting: 'あなたの回答待ち',
|
|
649
|
+
},
|
|
550
650
|
};
|
package/src/locale/types.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { AgentEffort } from '../agent/types.ts';
|
|
2
|
+
|
|
1
3
|
export type Plural = { one: string; other: string };
|
|
2
4
|
|
|
3
5
|
export type Locale = {
|
|
@@ -100,6 +102,7 @@ export type Locale = {
|
|
|
100
102
|
};
|
|
101
103
|
|
|
102
104
|
slide: {
|
|
105
|
+
resizeSidePanel: string;
|
|
103
106
|
home: string;
|
|
104
107
|
backToHome: string;
|
|
105
108
|
agentConnected: string;
|
|
@@ -179,6 +182,7 @@ export type Locale = {
|
|
|
179
182
|
helpAria: string;
|
|
180
183
|
exitAria: string;
|
|
181
184
|
elapsedTime: string;
|
|
185
|
+
lastSlideHint: string;
|
|
182
186
|
helpEyebrow: string;
|
|
183
187
|
helpTitle: string;
|
|
184
188
|
shortcutNext: string;
|
|
@@ -575,4 +579,110 @@ export type Locale = {
|
|
|
575
579
|
expandPromptAria: string;
|
|
576
580
|
collapsePromptAria: string;
|
|
577
581
|
};
|
|
582
|
+
|
|
583
|
+
agent: {
|
|
584
|
+
title: string;
|
|
585
|
+
beta: string;
|
|
586
|
+
betaTitle: string;
|
|
587
|
+
betaHint: string;
|
|
588
|
+
open: string;
|
|
589
|
+
openTitle: string;
|
|
590
|
+
close: string;
|
|
591
|
+
newSession: string;
|
|
592
|
+
sessions: string;
|
|
593
|
+
noSessions: string;
|
|
594
|
+
deleteSession: string;
|
|
595
|
+
historyThisDeck: string;
|
|
596
|
+
historyOtherDecks: string;
|
|
597
|
+
historyEmptyHint: string;
|
|
598
|
+
sessionRunning: string;
|
|
599
|
+
/** template: "Ask {provider} to create or edit slides…" */
|
|
600
|
+
composerPlaceholder: string;
|
|
601
|
+
send: string;
|
|
602
|
+
stop: string;
|
|
603
|
+
working: string;
|
|
604
|
+
/** template: "Page {n}" */
|
|
605
|
+
contextPage: string;
|
|
606
|
+
contextSelection: string;
|
|
607
|
+
/** plural, template: "{count} comments" */
|
|
608
|
+
pendingComments: Plural;
|
|
609
|
+
applyComments: string;
|
|
610
|
+
/** template: "Apply with {provider}" */
|
|
611
|
+
applyCommentsWith: string;
|
|
612
|
+
createDeck: string;
|
|
613
|
+
/** template: "Create a deck with {provider}" */
|
|
614
|
+
createDeckWith: string;
|
|
615
|
+
quickCreate: string;
|
|
616
|
+
quickCreateHint: string;
|
|
617
|
+
quickApply: string;
|
|
618
|
+
quickApplyHint: string;
|
|
619
|
+
quickTheme: string;
|
|
620
|
+
quickThemeHint: string;
|
|
621
|
+
quickEdit: string;
|
|
622
|
+
quickEditHint: string;
|
|
623
|
+
emptyTitle: string;
|
|
624
|
+
emptyHint: string;
|
|
625
|
+
questionSubmit: string;
|
|
626
|
+
questionOther: string;
|
|
627
|
+
questionOtherPlaceholder: string;
|
|
628
|
+
questionCancelled: string;
|
|
629
|
+
permissionTitle: string;
|
|
630
|
+
allow: string;
|
|
631
|
+
deny: string;
|
|
632
|
+
allowed: string;
|
|
633
|
+
denied: string;
|
|
634
|
+
autoApprove: string;
|
|
635
|
+
autoApproveHint: string;
|
|
636
|
+
resultDone: string;
|
|
637
|
+
resultStopped: string;
|
|
638
|
+
/** template: "{seconds}s" */
|
|
639
|
+
resultSeconds: string;
|
|
640
|
+
errorEyebrow: string;
|
|
641
|
+
statusLoading: string;
|
|
642
|
+
disabled: string;
|
|
643
|
+
connectTitle: string;
|
|
644
|
+
connectDescription: string;
|
|
645
|
+
connect: string;
|
|
646
|
+
connecting: string;
|
|
647
|
+
connected: string;
|
|
648
|
+
/** template: "Adds {pkg} to this workspace with {pm}." */
|
|
649
|
+
connectInstallHint: string;
|
|
650
|
+
/** template: "CLI found · v{version}" */
|
|
651
|
+
cliFound: string;
|
|
652
|
+
cliFoundNoVersion: string;
|
|
653
|
+
cliMissing: string;
|
|
654
|
+
/** template: "Install the {name} CLI and sign in once; the panel reuses its login." */
|
|
655
|
+
cliHint: string;
|
|
656
|
+
needCliTitle: string;
|
|
657
|
+
needCliDescription: string;
|
|
658
|
+
checkAgain: string;
|
|
659
|
+
retry: string;
|
|
660
|
+
/** template: "{name} connected" */
|
|
661
|
+
toastConnected: string;
|
|
662
|
+
/** template: "Could not install {pkg}" */
|
|
663
|
+
toastConnectFailed: string;
|
|
664
|
+
manageConnections: string;
|
|
665
|
+
backToChat: string;
|
|
666
|
+
toastSendFailed: string;
|
|
667
|
+
newDeckTitle: string;
|
|
668
|
+
newDeckHint: string;
|
|
669
|
+
newDeckPlaceholder: string;
|
|
670
|
+
toastCreateDeckFailed: string;
|
|
671
|
+
steps: Plural;
|
|
672
|
+
questionSkip: string;
|
|
673
|
+
copyMessage: string;
|
|
674
|
+
copied: string;
|
|
675
|
+
editMessage: string;
|
|
676
|
+
cancelEdit: string;
|
|
677
|
+
sendEdit: string;
|
|
678
|
+
editHint: string;
|
|
679
|
+
modelDefault: string;
|
|
680
|
+
reasoning: string;
|
|
681
|
+
effortAuto: string;
|
|
682
|
+
efforts: Record<AgentEffort, string>;
|
|
683
|
+
/** template: "{provider} is editing" */
|
|
684
|
+
presenceEditing: string;
|
|
685
|
+
presenceThinking: string;
|
|
686
|
+
presenceWaiting: string;
|
|
687
|
+
};
|
|
578
688
|
};
|
package/src/locale/zh-cn.ts
CHANGED
|
@@ -96,6 +96,7 @@ export const zhCN: Locale = {
|
|
|
96
96
|
},
|
|
97
97
|
|
|
98
98
|
slide: {
|
|
99
|
+
resizeSidePanel: '调整侧栏宽度',
|
|
99
100
|
agentConnected: 'Agent 已连接',
|
|
100
101
|
agentConnectedTooltip: '目前的 slide 与 Inspector 选择会即时同步给 agent。',
|
|
101
102
|
agentDisconnected: 'Agent 已断开',
|
|
@@ -176,6 +177,7 @@ export const zhCN: Locale = {
|
|
|
176
177
|
helpAria: '键盘快捷键 (?)',
|
|
177
178
|
exitAria: '退出 (Esc)',
|
|
178
179
|
elapsedTime: '已用时',
|
|
180
|
+
lastSlideHint: '已是最后一页 · 按 Esc 退出放映',
|
|
179
181
|
helpEyebrow: '演示模式',
|
|
180
182
|
helpTitle: '键盘快捷键',
|
|
181
183
|
shortcutNext: '下一张',
|
|
@@ -537,4 +539,99 @@ export const zhCN: Locale = {
|
|
|
537
539
|
expandPromptAria: '展开 prompt',
|
|
538
540
|
collapsePromptAria: '收起 prompt',
|
|
539
541
|
},
|
|
542
|
+
agent: {
|
|
543
|
+
title: 'Agent',
|
|
544
|
+
beta: 'Beta',
|
|
545
|
+
betaTitle: '抢先体验版',
|
|
546
|
+
betaHint: '回复、编辑或工具调用偶尔可能失败,或出现预期之外的结果。',
|
|
547
|
+
open: 'Agent',
|
|
548
|
+
openTitle: '打开 agent 面板',
|
|
549
|
+
close: '关闭 agent 面板',
|
|
550
|
+
newSession: '新对话',
|
|
551
|
+
sessions: '对话记录',
|
|
552
|
+
noSessions: '还没有任何对话。',
|
|
553
|
+
deleteSession: '删除对话',
|
|
554
|
+
historyThisDeck: '这份幻灯片',
|
|
555
|
+
historyOtherDecks: '其他幻灯片',
|
|
556
|
+
historyEmptyHint: '在这个面板开始的对话会列在这里。',
|
|
557
|
+
sessionRunning: '进行中',
|
|
558
|
+
composerPlaceholder: '让 {provider} 创建或修改幻灯片…',
|
|
559
|
+
send: '发送',
|
|
560
|
+
stop: '停止',
|
|
561
|
+
working: '处理中',
|
|
562
|
+
contextPage: '第 {n} 页',
|
|
563
|
+
contextSelection: '选中元素',
|
|
564
|
+
pendingComments: { one: '{count} 条评论', other: '{count} 条评论' },
|
|
565
|
+
applyComments: '应用评论',
|
|
566
|
+
applyCommentsWith: '用 {provider} 应用',
|
|
567
|
+
createDeck: '新幻灯片',
|
|
568
|
+
createDeckWith: '用 {provider} 创建幻灯片',
|
|
569
|
+
quickCreate: '起草一份新幻灯片',
|
|
570
|
+
quickCreateHint: '打开一份空白幻灯片,描述需求后 agent 会逐页生成。',
|
|
571
|
+
quickApply: '应用待处理的评论',
|
|
572
|
+
quickApplyHint: '处理这份幻灯片中所有的 @slide-comment 标记。',
|
|
573
|
+
quickTheme: '创建主题',
|
|
574
|
+
quickThemeHint: '在 themes/ 下提取或设计可复用的主题。',
|
|
575
|
+
quickEdit: '编辑当前页',
|
|
576
|
+
quickEditHint: '描述你想对当前页面做的修改。',
|
|
577
|
+
emptyTitle: '想做什么?',
|
|
578
|
+
emptyHint: '描述一份幻灯片,或从下面选一个起点。',
|
|
579
|
+
questionSubmit: '继续',
|
|
580
|
+
questionOther: '其他',
|
|
581
|
+
questionOtherPlaceholder: '输入你自己的答案',
|
|
582
|
+
questionCancelled: '已跳过',
|
|
583
|
+
permissionTitle: '需要批准',
|
|
584
|
+
allow: '允许',
|
|
585
|
+
deny: '拒绝',
|
|
586
|
+
allowed: '已允许',
|
|
587
|
+
denied: '已拒绝',
|
|
588
|
+
autoApprove: '自动批准',
|
|
589
|
+
autoApproveHint: '不询问直接执行命令。工作区内的文件编辑始终允许。',
|
|
590
|
+
resultDone: '完成',
|
|
591
|
+
resultStopped: '已停止',
|
|
592
|
+
resultSeconds: '{seconds} 秒',
|
|
593
|
+
errorEyebrow: '错误',
|
|
594
|
+
statusLoading: '正在检查 agent',
|
|
595
|
+
disabled: 'agent 面板已在 open-slide.config.ts 中禁用。',
|
|
596
|
+
connectTitle: '连接 agent',
|
|
597
|
+
connectDescription:
|
|
598
|
+
'直接在这里驱动你的 coding agent,无需切换到终端。这台电脑上已安装的 agent 会自动连接,并复用它的登录状态。',
|
|
599
|
+
connect: '连接',
|
|
600
|
+
connecting: '连接中',
|
|
601
|
+
connected: '已连接',
|
|
602
|
+
connectInstallHint: '会用 {pm} 把 {pkg} 添加到这个工作区。',
|
|
603
|
+
cliFound: '已找到 CLI · v{version}',
|
|
604
|
+
cliFoundNoVersion: '已找到 CLI',
|
|
605
|
+
cliMissing: 'PATH 中找不到 CLI',
|
|
606
|
+
cliHint: '请安装 {name} CLI 并登录一次;面板会复用它的登录状态。',
|
|
607
|
+
needCliTitle: '请先安装 Claude Code 或 Codex',
|
|
608
|
+
needCliDescription:
|
|
609
|
+
'面板会驱动这台电脑上的 coding agent CLI,但 PATH 中找不到任何一个。请先安装其中一个并在终端登录一次,再重新检查。',
|
|
610
|
+
checkAgain: '重新检查',
|
|
611
|
+
retry: '重试',
|
|
612
|
+
toastConnected: '{name} 已连接',
|
|
613
|
+
toastConnectFailed: '无法安装 {pkg}',
|
|
614
|
+
manageConnections: '管理 agent',
|
|
615
|
+
backToChat: '返回',
|
|
616
|
+
toastSendFailed: '消息发送失败',
|
|
617
|
+
newDeckTitle: '这份幻灯片要讲什么?',
|
|
618
|
+
newDeckHint: '描述主题、受众和风格,{provider} 会逐页生成,你可以边看边调整。',
|
|
619
|
+
newDeckPlaceholder: '一场 10 分钟的分享,主题是…',
|
|
620
|
+
toastCreateDeckFailed: '无法创建幻灯片',
|
|
621
|
+
steps: { one: '{count} 个步骤', other: '{count} 个步骤' },
|
|
622
|
+
questionSkip: '跳过',
|
|
623
|
+
copyMessage: '复制',
|
|
624
|
+
copied: '已复制',
|
|
625
|
+
editMessage: '编辑',
|
|
626
|
+
cancelEdit: '取消',
|
|
627
|
+
sendEdit: '发送',
|
|
628
|
+
editHint: '发送后会替换这条消息之后的对话,已改动的文件不会还原。',
|
|
629
|
+
modelDefault: '默认',
|
|
630
|
+
reasoning: '推理强度',
|
|
631
|
+
effortAuto: '自动',
|
|
632
|
+
efforts: { minimal: '最低', low: '低', medium: '中', high: '高', xhigh: '超高', max: '最高' },
|
|
633
|
+
presenceEditing: '{provider} 正在编辑',
|
|
634
|
+
presenceThinking: '思考中',
|
|
635
|
+
presenceWaiting: '等待你的回复',
|
|
636
|
+
},
|
|
540
637
|
};
|