viveworker 0.5.3 → 0.6.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/web/i18n.js CHANGED
@@ -47,6 +47,7 @@ const translations = {
47
47
  "common.userMessage": "You",
48
48
  "common.assistantCommentary": "Update",
49
49
  "common.assistantFinal": "Final reply",
50
+ "common.ambientSuggestions": "Suggestions",
50
51
  "common.item": "Item",
51
52
  "common.sns": "SNS",
52
53
  "common.moltbookReply": "Reply",
@@ -138,6 +139,11 @@ const translations = {
138
139
  "detail.filesTitle": "Files",
139
140
  "detail.diffTitle": "Diff",
140
141
  "detail.diffUnavailable": "Diff is not available for this change. Showing touched files only.",
142
+ "detail.ambientSuggestions.copy": "Review the suggested next steps and copy any prompt into a new turn when you want to try it.",
143
+ "detail.ambientSuggestions.prompt": "Prompt",
144
+ "detail.ambientSuggestions.copyPrompt": "Copy prompt",
145
+ "detail.ambientSuggestions.copyPromptDone": "Copied",
146
+ "detail.ambientSuggestions.copyPromptFailed": "Copy failed",
141
147
  "detail.diffThread.copy": ({ count }) =>
142
148
  `This thread has ${count} ${count === 1 ? "changed file" : "changed files"}. Review each file below.`,
143
149
  "detail.diffThread.copy.current": ({ count }) =>
@@ -194,6 +200,13 @@ const translations = {
194
200
  "summary.userMessage": "Open the message again and read it in context.",
195
201
  "summary.assistantCommentary": "Read {provider}'s latest working update.",
196
202
  "summary.assistantFinal": "Read {provider}'s final reply for this turn.",
203
+ "summary.ambientSuggestions": ({ count, firstTitle, more }) => {
204
+ if (!count) return "Review suggested next steps.";
205
+ const parts = [`${count} ${count === 1 ? "suggestion" : "suggestions"}`];
206
+ if (firstTitle) parts.push(firstTitle);
207
+ if (more > 0) parts.push(`+${more} more`);
208
+ return parts.join(" · ");
209
+ },
197
210
  "summary.approval": "Review what {provider} wants to do and decide whether to allow it.",
198
211
  "summary.plan": "Check the proposed plan before {provider} starts implementing it.",
199
212
  "summary.choice": "Pick the option {provider} needs to continue.",
@@ -206,6 +219,7 @@ const translations = {
206
219
  "intent.completed": "Finished. Open to review the result.",
207
220
  "intent.fileEvent": "Review the files involved in this step.",
208
221
  "intent.diffThread": "Review the file changes for this thread.",
222
+ "intent.ambientSuggestions": "Review suggested next steps and copy a prompt if you want to try one.",
209
223
  "intent.userMessage": "Open this message again.",
210
224
  "intent.assistantCommentary": "Read the latest working update.",
211
225
  "intent.assistantFinal": "Read {provider}'s final reply for this turn.",
@@ -223,6 +237,7 @@ const translations = {
223
237
  "timeline.kindFilterButtonLabel": "Filter timeline events",
224
238
  "timeline.kindFilter.all": "All events",
225
239
  "timeline.kindFilter.messages": "Messages",
240
+ "timeline.kindFilter.suggestions": "Suggested next steps",
226
241
  "timeline.kindFilter.files": "Files",
227
242
  "timeline.kindFilter.approvals": "Approvals",
228
243
  "timeline.kindFilter.plans": "Plans",
@@ -430,10 +445,10 @@ const translations = {
430
445
  "settings.a2aExecutor.ask": "Ask every time",
431
446
  "settings.a2aExecutor.unavailable": "Not detected",
432
447
  "settings.a2aExecutor.detected": "Detected",
433
- "settings.a2aShare.title": "A2A Share",
434
- "settings.a2aShare.subtitle": "HTML hosting",
435
- "settings.a2aShare.copy": "Host static HTML files on a private URL. Shares the A2A credentials; no separate setup needed.",
436
- "settings.a2aShare.unavailable": "A2A Share is not configured. Run `viveworker a2a setup` to provision credentials.",
448
+ "settings.a2aShare.title": "File Share",
449
+ "settings.a2aShare.subtitle": "File hosting",
450
+ "settings.a2aShare.copy": "Host static files (HTML, PDF, images, CSV) on a private URL. Shares the A2A credentials; no separate setup needed.",
451
+ "settings.a2aShare.unavailable": "File Share is not configured. Run `viveworker a2a setup` to provision credentials.",
437
452
  "settings.a2aShare.storage.title": "Storage",
438
453
  "settings.a2aShare.files.title": "Active shares",
439
454
  "settings.a2aShare.files.empty": "No active shares yet.",
@@ -519,6 +534,7 @@ const translations = {
519
534
  "server.title.userMessage": "User",
520
535
  "server.title.assistantCommentary": "Update",
521
536
  "server.title.assistantFinal": "Final reply",
537
+ "server.title.ambientSuggestions": "Suggested next steps",
522
538
  "server.action.review": "Review",
523
539
  "server.action.detail": "Detail",
524
540
  "server.action.select": "Choose",
@@ -569,9 +585,11 @@ const translations = {
569
585
  "server.page.choiceMissing": "Choice input token not found",
570
586
  "server.page.approvalHandled": "Approval already handled",
571
587
  "server.page.detailMissing": "Completion detail not found",
572
- "cli.help.usage": "Usage: viveworker <setup|start|stop|status|doctor|update> [options]",
588
+ "cli.help.usage": "Usage: viveworker <setup|pair|enable|start|stop|status|doctor|update> [options]",
573
589
  "cli.help.commands": "Commands:",
574
- "cli.help.setup": "setup Create config, generate pairing info, register launchd, start the bridge",
590
+ "cli.help.setup": "setup Create config, register launchd, and start the base viveworker bridge",
591
+ "cli.help.pair": "pair Refresh pairing info for another trusted device",
592
+ "cli.help.enable": "enable Enable an optional integration or feature",
575
593
  "cli.help.start": "start Start the bridge using the saved config",
576
594
  "cli.help.stop": "stop Stop the bridge",
577
595
  "cli.help.status": "status Print launchd/background status and health",
@@ -586,7 +604,28 @@ const translations = {
586
604
  "cli.update.alreadyLatest": "Already up to date (v{version})",
587
605
  "cli.update.versionInfo": "Updating v{current} -> v{latest}",
588
606
  "cli.update.done": "Updated to v{version} — all services restarted",
607
+ "cli.update.title": "viveworker updated",
608
+ "cli.update.changedVersion": "Version updated from v{current} to v{latest}",
609
+ "cli.update.changedBridge": "Bridge was restarted",
610
+ "cli.update.changedWatcher": "Moltbook watcher was restarted",
611
+ "cli.update.changedScout": "Moltbook scout was restarted",
612
+ "cli.update.next": "Run `npx viveworker status` if you want to verify the restarted services.",
589
613
  "cli.help.commonOptions": "Common options:",
614
+ "cli.help.featureOptions": "Feature examples:",
615
+ "cli.help.enableClaude": "enable claude [--settings-file <path>]",
616
+ "cli.help.enableA2a": "enable a2a --user-id <id> [--description <text>] [--skills <csv>]",
617
+ "cli.help.enableMoltbook": "enable moltbook --api-key <key> --agent-id <id> [--agent-name <name>] [--no-scout]",
618
+ "cli.help.enableScout": "enable scout [--interval <seconds>] [--harness auto|codex|claude|manual] [--uninstall]",
619
+ "cli.help.doctorFix": "doctor --fix Repair common local issues and restart the bridge",
620
+ "cli.section.ready": "Ready",
621
+ "cli.section.changed": "Changed",
622
+ "cli.section.needsAttention": "Needs attention",
623
+ "cli.section.next": "Next",
624
+ "cli.section.details": "Details",
625
+ "cli.section.pairingLinks": "Pairing links",
626
+ "cli.section.caDownload": "CA download",
627
+ "cli.section.qrPairing": "Pairing QR",
628
+ "cli.section.qrCaDownload": "rootCA.pem download QR",
590
629
  "cli.setup.complete": "viveworker setup complete",
591
630
  "cli.setup.progress.prepare": "Preparing local viveworker setup...",
592
631
  "cli.setup.progress.installCa": "Installing or refreshing the local CA ({stores})...",
@@ -594,6 +633,7 @@ const translations = {
594
633
  "cli.setup.progress.generateCert": "Generating local HTTPS certificate...",
595
634
  "cli.setup.progress.generateVapid": "Generating Web Push keys...",
596
635
  "cli.setup.progress.writeConfig": "Writing config files...",
636
+ "cli.setup.progress.providers": "Checking Codex and Claude integrations...",
597
637
  "cli.setup.progress.launchd": "Registering and starting the launchd service...",
598
638
  "cli.setup.progress.startBridge": "Starting the local bridge...",
599
639
  "cli.setup.progress.health": "Waiting for viveworker to respond...",
@@ -611,6 +651,31 @@ const translations = {
611
651
  "cli.setup.webPushEnabled": "Web Push: enabled (HTTPS)",
612
652
  "cli.setup.webPushDisabled": "Web Push: disabled",
613
653
  "cli.setup.claudeHooksSkipped": "Claude hooks skipped (no ~/.claude directory detected). Install Claude Desktop and re-run `viveworker setup` to enable Claude integration.",
654
+ "cli.setup.providers.title": "Provider setup:",
655
+ "cli.setup.providers.codexReady": "Codex detected: ready (no extra setup needed).",
656
+ "cli.setup.providers.codexNotDetected": "Codex not detected: viveworker is still ready; Codex support will appear when Codex Desktop is installed.",
657
+ "cli.setup.providers.claudeEnabled": "Claude detected: hooks enabled at {path}.",
658
+ "cli.setup.providers.claudeNotDetected": "Claude not detected: run `npx viveworker enable claude` later if you install Claude Desktop.",
659
+ "cli.setup.providers.claudeSkipped": "Claude auto-setup skipped (--no-auto-claude).",
660
+ "cli.setup.providers.claudeFailed": "Claude was detected, but hooks could not be installed automatically: {message}",
661
+ "cli.setup.legacyFeatureFlags": "Legacy setup feature flags are still running for compatibility. Next time, use: {commands}",
662
+ "cli.pair.done": "Pairing refreshed",
663
+ "cli.enable.claude.title": "Claude enabled",
664
+ "cli.enable.claude.changed": "Hooks installed at {path}",
665
+ "cli.enable.claude.next": "Open Claude Desktop and trigger one prompt to confirm the hooks are active.",
666
+ "cli.enable.moltbook.title": "Moltbook enabled",
667
+ "cli.enable.moltbook.watcher": "Watcher installed at {path}",
668
+ "cli.enable.moltbook.env": "Environment saved at {path}",
669
+ "cli.enable.moltbook.scout": "Auto-scout installed on a {interval}s interval",
670
+ "cli.enable.moltbook.watcherOnly": "Watcher-only mode enabled (auto-scout is off)",
671
+ "cli.enable.moltbook.personaTip": "No persona file was found. Run `npx viveworker moltbook persona init` to improve draft quality.",
672
+ "cli.enable.moltbook.next": "Open Settings > Moltbook in the phone app and confirm that watcher status, quota, and drafts appear.",
673
+ "cli.enable.scout.title": "Moltbook scout enabled",
674
+ "cli.enable.scout.removed": "Moltbook scout removed",
675
+ "cli.enable.scout.installed": "Scout schedule installed on a {interval}s interval",
676
+ "cli.enable.scout.harness": "Draft harness: {path}",
677
+ "cli.enable.scout.manualHarness": "Draft harness is in manual mode until Codex CLI or Claude Code CLI is installed.",
678
+ "cli.enable.scout.next": "Watch the next scout cycle in the phone app, or tune it later with `npx viveworker enable scout --interval ...`.",
614
679
  "cli.setup.completePending": "viveworker setup finished, but health has not responded yet.",
615
680
  "cli.setup.caFlow.title": "Before opening viveworker on your device, install and trust the local root certificate if needed:",
616
681
  "cli.setup.caFlow.step1": "1. Open the CA download URL or scan the QR code below on your device.",
@@ -643,7 +708,7 @@ const translations = {
643
708
  "cli.setup.error.mkcertInstallPermission":
644
709
  "Homebrew is installed, but its prefix is not writable by your current user, so viveworker could not auto-install mkcert.",
645
710
  "cli.setup.error.mkcertInstallNext":
646
- "Fix your Homebrew permissions, then rerun `npx viveworker setup --install-mkcert`, or install mkcert manually first.",
711
+ "Fix your Homebrew permissions, then rerun `npx viveworker setup`, or install mkcert manually first.",
647
712
  "cli.setup.error.mkcertInstallExample": "Example: brew install mkcert && mkcert -install",
648
713
  "cli.start.progress.prepare": "Loading saved viveworker config...",
649
714
  "cli.start.progress.refreshPairing": "Refreshing expired pairing credentials...",
@@ -655,6 +720,14 @@ const translations = {
655
720
  "cli.start.launchdStartedPending": "viveworker launchd service started, but health has not responded yet.",
656
721
  "cli.start.bridgeStarted": "viveworker bridge started in background.",
657
722
  "cli.start.bridgeStartedPending": "viveworker bridge started in background, but health has not responded yet.",
723
+ "cli.start.title": "viveworker started",
724
+ "cli.start.readyLaunchd": "launchd service is running",
725
+ "cli.start.readyBridge": "background bridge process started",
726
+ "cli.start.nextPairing": "Use the refreshed pairing link below only if you are adding another device.",
727
+ "cli.stop.title": "viveworker stopped",
728
+ "cli.stop.alreadyStopped": "viveworker is already stopped",
729
+ "cli.stop.changedLaunchd": "launchd service was stopped",
730
+ "cli.stop.changedPid": "Background process {pid} was stopped",
658
731
  "cli.stop.launchdStopped": "viveworker launchd service stopped.",
659
732
  "cli.stop.noProcess": "No background viveworker process found.",
660
733
  "cli.stop.stopped": "Stopped background viveworker process {pid}.",
@@ -674,7 +747,10 @@ const translations = {
674
747
  "cli.status.notRunning": "not running",
675
748
  "cli.status.ok": "ok",
676
749
  "cli.status.failed": "failed",
750
+ "cli.status.title": "viveworker status",
677
751
  "cli.doctor.ok": "viveworker doctor: ok",
752
+ "cli.doctor.titleIssues": "Doctor found issues",
753
+ "cli.doctor.titleFix": "Doctor repaired the local setup",
678
754
  "cli.doctor.foundIssues": "viveworker doctor found issues:",
679
755
  "cli.doctor.issue.envMissing": "env file is missing",
680
756
  "cli.doctor.issue.sessionSecretMissing": "SESSION_SECRET is missing",
@@ -688,6 +764,25 @@ const translations = {
688
764
  "cli.doctor.issue.vapidPrivateMissing": "WEB_PUSH_VAPID_PRIVATE_KEY is missing",
689
765
  "cli.doctor.issue.healthHttps": "health endpoint is not reachable over HTTPS",
690
766
  "cli.doctor.issue.health": "health endpoint is not reachable",
767
+ "cli.doctor.fixing": "viveworker doctor is repairing the local setup...",
768
+ "cli.doctor.fixed": "viveworker doctor applied repairs.",
769
+ "cli.doctor.nextFix": "Run `npx viveworker doctor --fix` to repair the issues automatically.",
770
+ "cli.doctor.nextRestarting": "viveworker is now restarting so the repaired setup takes effect.",
771
+ "cli.doctor.fixed.sessionSecret": "SESSION_SECRET was regenerated",
772
+ "cli.doctor.fixed.pairing": "Pairing credentials were refreshed",
773
+ "cli.doctor.fixed.locale": "Default locale was written",
774
+ "cli.doctor.fixed.host": "Bridge host was restored",
775
+ "cli.doctor.fixed.port": "Bridge port was restored",
776
+ "cli.doctor.fixed.hostname": "Hostname was restored",
777
+ "cli.doctor.fixed.deviceTrust": "Device trust TTL was restored",
778
+ "cli.doctor.fixed.webUi": "WEB_UI_ENABLED was restored",
779
+ "cli.doctor.fixed.auth": "AUTH_REQUIRED was restored",
780
+ "cli.doctor.fixed.choicePageSize": "CHOICE_PAGE_SIZE was restored",
781
+ "cli.doctor.fixed.maxHistory": "MAX_HISTORY_ITEMS was restored",
782
+ "cli.doctor.fixed.nativeApprovals": "NATIVE_APPROVALS was restored",
783
+ "cli.doctor.fixed.baseUrl": "Public base URL was restored",
784
+ "cli.doctor.fixed.webPushAssets": "TLS certificate and Web Push keys were refreshed",
785
+ "cli.doctor.fixed.webPushSubject": "WEB_PUSH_SUBJECT was restored",
691
786
  },
692
787
  ja: {
693
788
  "common.codex": "Codex",
@@ -734,6 +829,7 @@ const translations = {
734
829
  "common.userMessage": "あなた",
735
830
  "common.assistantCommentary": "途中経過",
736
831
  "common.assistantFinal": "最終回答",
832
+ "common.ambientSuggestions": "候補",
737
833
  "common.item": "項目",
738
834
  "common.sns": "SNS",
739
835
  "common.moltbookReply": "返信",
@@ -824,6 +920,11 @@ const translations = {
824
920
  "detail.filesTitle": "関連ファイル",
825
921
  "detail.diffTitle": "差分",
826
922
  "detail.diffUnavailable": "この変更の差分はまだ利用できません。対象ファイルのみ表示します。",
923
+ "detail.ambientSuggestions.copy": "次にやる候補を確認して、試したい prompt があればコピーできます。",
924
+ "detail.ambientSuggestions.prompt": "Prompt",
925
+ "detail.ambientSuggestions.copyPrompt": "Prompt をコピー",
926
+ "detail.ambientSuggestions.copyPromptDone": "コピーしました",
927
+ "detail.ambientSuggestions.copyPromptFailed": "コピーに失敗しました",
827
928
  "detail.diffThread.copy": ({ count }) => `このスレッドで変更があるファイルは ${count}件です。下でファイルごとに確認できます。`,
828
929
  "detail.diffThread.copy.current": ({ count }) => `このスレッドで現在未ステージの変更があるファイルは ${count}件です。下でファイルごとに確認できます。`,
829
930
  "detail.diffThread.copy.latest": ({ count }) => `このスレッドで最後に観測した変更があるファイルは ${count}件です。下でファイルごとに確認できます。`,
@@ -877,6 +978,13 @@ const translations = {
877
978
  "summary.userMessage": "このメッセージをもう一度開いて文脈付きで確認します。",
878
979
  "summary.assistantCommentary": "{provider} の最新の途中経過を確認します。",
879
980
  "summary.assistantFinal": "このターンの {provider} の最終回答を確認します。",
981
+ "summary.ambientSuggestions": ({ count, firstTitle, more }) => {
982
+ if (!count) return "次にやる候補を確認します。";
983
+ const parts = [`${count}件の候補`];
984
+ if (firstTitle) parts.push(firstTitle);
985
+ if (more > 0) parts.push(`ほか${more}件`);
986
+ return parts.join(" · ");
987
+ },
880
988
  "summary.approval": "{provider} がやろうとしていることを確認して、許可するか決めます。",
881
989
  "summary.plan": "{provider} が実装を始める前に、提案されたプランを確認します。",
882
990
  "summary.choice": "{provider} が先へ進むために必要な選択肢を選びます。",
@@ -889,6 +997,7 @@ const translations = {
889
997
  "intent.completed": "完了済みです。結果を確認できます。",
890
998
  "intent.fileEvent": "このステップで触れたファイルを確認します。",
891
999
  "intent.diffThread": "このスレッドのファイル変更を確認します。",
1000
+ "intent.ambientSuggestions": "次にやる候補を確認して、必要なら prompt をコピーします。",
892
1001
  "intent.userMessage": "このメッセージを開き直します。",
893
1002
  "intent.assistantCommentary": "最新の途中経過を確認します。",
894
1003
  "intent.assistantFinal": "このターンの {provider} の最終回答を確認します。",
@@ -906,6 +1015,7 @@ const translations = {
906
1015
  "timeline.kindFilterButtonLabel": "タイムラインのイベントを絞り込む",
907
1016
  "timeline.kindFilter.all": "すべてのイベント",
908
1017
  "timeline.kindFilter.messages": "メッセージ",
1018
+ "timeline.kindFilter.suggestions": "候補提案",
909
1019
  "timeline.kindFilter.files": "ファイル",
910
1020
  "timeline.kindFilter.approvals": "承認",
911
1021
  "timeline.kindFilter.plans": "プラン",
@@ -1113,10 +1223,10 @@ const translations = {
1113
1223
  "settings.a2aExecutor.ask": "毎回確認する",
1114
1224
  "settings.a2aExecutor.unavailable": "未検出",
1115
1225
  "settings.a2aExecutor.detected": "検出",
1116
- "settings.a2aShare.title": "A2A Share",
1117
- "settings.a2aShare.subtitle": "HTML ホスティング",
1118
- "settings.a2aShare.copy": "静的 HTML ファイルを非公開 URL でホストします。A2A と認証情報を共有するため追加の設定は不要です。",
1119
- "settings.a2aShare.unavailable": "A2A Share が設定されていません。`viveworker a2a setup` を実行して認証情報を設定してください。",
1226
+ "settings.a2aShare.title": "File Share",
1227
+ "settings.a2aShare.subtitle": "ファイルホスティング",
1228
+ "settings.a2aShare.copy": "静的ファイル (HTML / PDF / 画像 / CSV) を非公開 URL でホストします。A2A と認証情報を共有するため追加の設定は不要です。",
1229
+ "settings.a2aShare.unavailable": "File Share が設定されていません。`viveworker a2a setup` を実行して認証情報を設定してください。",
1120
1230
  "settings.a2aShare.storage.title": "ストレージ",
1121
1231
  "settings.a2aShare.files.title": "公開中のファイル",
1122
1232
  "settings.a2aShare.files.empty": "公開中のファイルはありません。",
@@ -1202,6 +1312,7 @@ const translations = {
1202
1312
  "server.title.userMessage": "ユーザー",
1203
1313
  "server.title.assistantCommentary": "途中経過",
1204
1314
  "server.title.assistantFinal": "最終回答",
1315
+ "server.title.ambientSuggestions": "次の候補",
1205
1316
  "server.action.review": "判断する",
1206
1317
  "server.action.detail": "詳細",
1207
1318
  "server.action.select": "選ぶ",
@@ -1252,9 +1363,11 @@ const translations = {
1252
1363
  "server.page.choiceMissing": "選択入力トークンが見つかりません",
1253
1364
  "server.page.approvalHandled": "この承認はすでに処理済みです",
1254
1365
  "server.page.detailMissing": "完了詳細が見つかりません",
1255
- "cli.help.usage": "Usage: viveworker <setup|start|stop|status|doctor|update> [options]",
1366
+ "cli.help.usage": "Usage: viveworker <setup|pair|enable|start|stop|status|doctor|update> [options]",
1256
1367
  "cli.help.commands": "Commands:",
1257
- "cli.help.setup": "setup 設定を作成し、ペアリング情報を生成し、launchd に登録して bridge を起動します",
1368
+ "cli.help.setup": "setup base の設定を作成し、launchd に登録して viveworker bridge を起動します",
1369
+ "cli.help.pair": "pair 追加する信頼済み端末向けに pairing 情報を更新します",
1370
+ "cli.help.enable": "enable オプション機能や連携を有効化します",
1258
1371
  "cli.help.start": "start 保存済み設定で bridge を起動します",
1259
1372
  "cli.help.stop": "stop bridge を停止します",
1260
1373
  "cli.help.status": "status launchd / バックグラウンド状態と health を表示します",
@@ -1269,7 +1382,28 @@ const translations = {
1269
1382
  "cli.update.alreadyLatest": "すでに最新です (v{version})",
1270
1383
  "cli.update.versionInfo": "v{current} -> v{latest} に更新します",
1271
1384
  "cli.update.done": "v{version} に更新しました — 全サービスを再起動しました",
1385
+ "cli.update.title": "viveworker updated",
1386
+ "cli.update.changedVersion": "バージョンを v{current} から v{latest} に更新しました",
1387
+ "cli.update.changedBridge": "bridge を再起動しました",
1388
+ "cli.update.changedWatcher": "Moltbook watcher を再起動しました",
1389
+ "cli.update.changedScout": "Moltbook scout を再起動しました",
1390
+ "cli.update.next": "`npx viveworker status` を実行すると、再起動後の状態を確認できます。",
1272
1391
  "cli.help.commonOptions": "共通オプション:",
1392
+ "cli.help.featureOptions": "機能ごとの例:",
1393
+ "cli.help.enableClaude": "enable claude [--settings-file <path>]",
1394
+ "cli.help.enableA2a": "enable a2a --user-id <id> [--description <text>] [--skills <csv>]",
1395
+ "cli.help.enableMoltbook": "enable moltbook --api-key <key> --agent-id <id> [--agent-name <name>] [--no-scout]",
1396
+ "cli.help.enableScout": "enable scout [--interval <seconds>] [--harness auto|codex|claude|manual] [--uninstall]",
1397
+ "cli.help.doctorFix": "doctor --fix よくあるローカル問題を修復し、bridge を再起動します",
1398
+ "cli.section.ready": "Ready",
1399
+ "cli.section.changed": "Changed",
1400
+ "cli.section.needsAttention": "Needs attention",
1401
+ "cli.section.next": "Next",
1402
+ "cli.section.details": "Details",
1403
+ "cli.section.pairingLinks": "Pairing links",
1404
+ "cli.section.caDownload": "CA download",
1405
+ "cli.section.qrPairing": "Pairing QR",
1406
+ "cli.section.qrCaDownload": "rootCA.pem download QR",
1273
1407
  "cli.setup.complete": "viveworker の setup が完了しました",
1274
1408
  "cli.setup.progress.prepare": "viveworker のローカル設定を準備しています...",
1275
1409
  "cli.setup.progress.installCa": "ローカル CA をインストールまたは更新しています ({stores})...",
@@ -1277,6 +1411,7 @@ const translations = {
1277
1411
  "cli.setup.progress.generateCert": "ローカル HTTPS 証明書を生成しています...",
1278
1412
  "cli.setup.progress.generateVapid": "Web Push の鍵を生成しています...",
1279
1413
  "cli.setup.progress.writeConfig": "設定ファイルを書き込んでいます...",
1414
+ "cli.setup.progress.providers": "Codex / Claude 連携を確認しています...",
1280
1415
  "cli.setup.progress.launchd": "launchd サービスを登録して起動しています...",
1281
1416
  "cli.setup.progress.startBridge": "ローカル bridge を起動しています...",
1282
1417
  "cli.setup.progress.health": "viveworker の応答を待っています...",
@@ -1294,6 +1429,31 @@ const translations = {
1294
1429
  "cli.setup.webPushEnabled": "Web Push: enabled (HTTPS)",
1295
1430
  "cli.setup.webPushDisabled": "Web Push: disabled",
1296
1431
  "cli.setup.claudeHooksSkipped": "Claude hooks はスキップしました(~/.claude ディレクトリが見つかりません)。Claude Desktop をインストール後に `viveworker setup` を再実行すると Claude 連携が有効になります。",
1432
+ "cli.setup.providers.title": "Provider setup:",
1433
+ "cli.setup.providers.codexReady": "Codex を検出しました: 追加設定なしで使えます。",
1434
+ "cli.setup.providers.codexNotDetected": "Codex はまだ見つかっていません: viveworker 自体はこのまま使えます。Codex Desktop を入れると Codex 連携も有効になります。",
1435
+ "cli.setup.providers.claudeEnabled": "Claude を検出しました: hooks を {path} に有効化しました。",
1436
+ "cli.setup.providers.claudeNotDetected": "Claude はまだ見つかっていません: Claude Desktop を入れたあとで `npx viveworker enable claude` を実行してください。",
1437
+ "cli.setup.providers.claudeSkipped": "Claude の自動セットアップはスキップしました (--no-auto-claude)。",
1438
+ "cli.setup.providers.claudeFailed": "Claude は見つかりましたが、hooks を自動設定できませんでした: {message}",
1439
+ "cli.setup.legacyFeatureFlags": "旧 setup フラグは互換のため引き続き実行します。次回からは {commands} を使ってください。",
1440
+ "cli.pair.done": "Pairing refreshed",
1441
+ "cli.enable.claude.title": "Claude enabled",
1442
+ "cli.enable.claude.changed": "Hooks を {path} に設定しました",
1443
+ "cli.enable.claude.next": "Claude Desktop で一度プロンプトを動かして、hooks が有効になっていることを確認してください。",
1444
+ "cli.enable.moltbook.title": "Moltbook enabled",
1445
+ "cli.enable.moltbook.watcher": "Watcher を {path} に設定しました",
1446
+ "cli.enable.moltbook.env": "環境設定を {path} に保存しました",
1447
+ "cli.enable.moltbook.scout": "{interval} 秒間隔で auto-scout を設定しました",
1448
+ "cli.enable.moltbook.watcherOnly": "Watcher-only mode で有効化しました (auto-scout は OFF です)",
1449
+ "cli.enable.moltbook.personaTip": "persona file が見つかりません。`npx viveworker moltbook persona init` を実行すると draft の質が上がります。",
1450
+ "cli.enable.moltbook.next": "端末アプリの Settings > Moltbook を開き、watcher status / quota / drafts が見えることを確認してください。",
1451
+ "cli.enable.scout.title": "Moltbook scout enabled",
1452
+ "cli.enable.scout.removed": "Moltbook scout removed",
1453
+ "cli.enable.scout.installed": "{interval} 秒間隔で scout schedule を設定しました",
1454
+ "cli.enable.scout.harness": "Draft harness: {path}",
1455
+ "cli.enable.scout.manualHarness": "Codex CLI か Claude Code CLI が入るまでは manual mode で動きます。",
1456
+ "cli.enable.scout.next": "次の scout cycle を端末アプリで確認するか、`npx viveworker enable scout --interval ...` であとから調整してください。",
1297
1457
  "cli.setup.completePending": "viveworker の setup は完了しましたが、まだ health 応答は確認できていません。",
1298
1458
  "cli.setup.caFlow.title": "端末で viveworker を開く前に、必要ならローカルの証明書をインストールしてください:",
1299
1459
  "cli.setup.caFlow.step1": "1. 下の CA download URL を開くか QR を読み取り、端末で rootCA.pem を取得します。",
@@ -1326,7 +1486,7 @@ const translations = {
1326
1486
  "cli.setup.error.mkcertInstallPermission":
1327
1487
  "Homebrew は見つかりましたが、その prefix に現在のユーザーの書き込み権限がないため、viveworker が mkcert を自動インストールできませんでした。",
1328
1488
  "cli.setup.error.mkcertInstallNext":
1329
- "`npx viveworker setup --install-mkcert` をやり直す前に Homebrew の権限を直すか、先に mkcert を手動でインストールしてください。",
1489
+ "Homebrew の権限を直してから `npx viveworker setup` をやり直すか、先に mkcert を手動でインストールしてください。",
1330
1490
  "cli.setup.error.mkcertInstallExample": "例: brew install mkcert && mkcert -install",
1331
1491
  "cli.start.progress.prepare": "保存済みの viveworker 設定を読み込んでいます...",
1332
1492
  "cli.start.progress.refreshPairing": "期限切れの pairing 情報を更新しています...",
@@ -1338,6 +1498,14 @@ const translations = {
1338
1498
  "cli.start.launchdStartedPending": "viveworker の launchd サービスは開始しましたが、まだ health 応答は確認できていません。",
1339
1499
  "cli.start.bridgeStarted": "viveworker bridge をバックグラウンドで起動しました。",
1340
1500
  "cli.start.bridgeStartedPending": "viveworker bridge はバックグラウンドで起動しましたが、まだ health 応答は確認できていません。",
1501
+ "cli.start.title": "viveworker started",
1502
+ "cli.start.readyLaunchd": "launchd service が動作中です",
1503
+ "cli.start.readyBridge": "background bridge process を起動しました",
1504
+ "cli.start.nextPairing": "追加する端末があるときだけ、下の refreshed pairing link を使ってください。",
1505
+ "cli.stop.title": "viveworker stopped",
1506
+ "cli.stop.alreadyStopped": "viveworker is already stopped",
1507
+ "cli.stop.changedLaunchd": "launchd service を停止しました",
1508
+ "cli.stop.changedPid": "background process {pid} を停止しました",
1341
1509
  "cli.stop.launchdStopped": "viveworker の launchd サービスを停止しました。",
1342
1510
  "cli.stop.noProcess": "バックグラウンドの viveworker プロセスは見つかりませんでした。",
1343
1511
  "cli.stop.stopped": "バックグラウンドの viveworker プロセス {pid} を停止しました。",
@@ -1357,7 +1525,10 @@ const translations = {
1357
1525
  "cli.status.notRunning": "停止中",
1358
1526
  "cli.status.ok": "ok",
1359
1527
  "cli.status.failed": "failed",
1528
+ "cli.status.title": "viveworker status",
1360
1529
  "cli.doctor.ok": "viveworker doctor: ok",
1530
+ "cli.doctor.titleIssues": "Doctor found issues",
1531
+ "cli.doctor.titleFix": "Doctor repaired the local setup",
1361
1532
  "cli.doctor.foundIssues": "viveworker doctor で問題が見つかりました:",
1362
1533
  "cli.doctor.issue.envMissing": "env ファイルが見つかりません",
1363
1534
  "cli.doctor.issue.sessionSecretMissing": "SESSION_SECRET がありません",
@@ -1371,6 +1542,25 @@ const translations = {
1371
1542
  "cli.doctor.issue.vapidPrivateMissing": "WEB_PUSH_VAPID_PRIVATE_KEY がありません",
1372
1543
  "cli.doctor.issue.healthHttps": "health endpoint に HTTPS で到達できません",
1373
1544
  "cli.doctor.issue.health": "health endpoint に到達できません",
1545
+ "cli.doctor.fixing": "viveworker doctor がローカル設定を修復しています...",
1546
+ "cli.doctor.fixed": "viveworker doctor が修復を適用しました。",
1547
+ "cli.doctor.nextFix": "`npx viveworker doctor --fix` を実行すると自動で修復できます。",
1548
+ "cli.doctor.nextRestarting": "修復内容を反映するため、いま viveworker を再起動しています。",
1549
+ "cli.doctor.fixed.sessionSecret": "SESSION_SECRET を再生成しました",
1550
+ "cli.doctor.fixed.pairing": "pairing credentials を更新しました",
1551
+ "cli.doctor.fixed.locale": "DEFAULT_LOCALE を補いました",
1552
+ "cli.doctor.fixed.host": "bridge host を補いました",
1553
+ "cli.doctor.fixed.port": "bridge port を補いました",
1554
+ "cli.doctor.fixed.hostname": "hostname を補いました",
1555
+ "cli.doctor.fixed.deviceTrust": "device trust TTL を補いました",
1556
+ "cli.doctor.fixed.webUi": "WEB_UI_ENABLED を補いました",
1557
+ "cli.doctor.fixed.auth": "AUTH_REQUIRED を補いました",
1558
+ "cli.doctor.fixed.choicePageSize": "CHOICE_PAGE_SIZE を補いました",
1559
+ "cli.doctor.fixed.maxHistory": "MAX_HISTORY_ITEMS を補いました",
1560
+ "cli.doctor.fixed.nativeApprovals": "NATIVE_APPROVALS を補いました",
1561
+ "cli.doctor.fixed.baseUrl": "public base URL を補いました",
1562
+ "cli.doctor.fixed.webPushAssets": "TLS 証明書と Web Push 鍵を更新しました",
1563
+ "cli.doctor.fixed.webPushSubject": "WEB_PUSH_SUBJECT を補いました",
1374
1564
  },
1375
1565
  };
1376
1566