@nac3/forge-cli 0.2.1-alpha.60 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (303) hide show
  1. package/README.md +5 -1
  2. package/dist/agents/bridge.d.ts.map +1 -1
  3. package/dist/agents/bridge.js +27 -0
  4. package/dist/agents/bridge.js.map +1 -1
  5. package/dist/agents/config_resolver.d.ts.map +1 -1
  6. package/dist/agents/config_resolver.js +15 -15
  7. package/dist/agents/config_resolver.js.map +1 -1
  8. package/dist/agents/runner.d.ts +8 -0
  9. package/dist/agents/runner.d.ts.map +1 -1
  10. package/dist/agents/runner.js +58 -11
  11. package/dist/agents/runner.js.map +1 -1
  12. package/dist/agents/system_prompt.d.ts.map +1 -1
  13. package/dist/agents/system_prompt.js +2 -1
  14. package/dist/agents/system_prompt.js.map +1 -1
  15. package/dist/bin/yf.d.ts.map +1 -1
  16. package/dist/bin/yf.js +18 -0
  17. package/dist/bin/yf.js.map +1 -1
  18. package/dist/chat/claude.d.ts +13 -0
  19. package/dist/chat/claude.d.ts.map +1 -1
  20. package/dist/chat/claude.js +95 -10
  21. package/dist/chat/claude.js.map +1 -1
  22. package/dist/chat/claude_cli.d.ts +10 -0
  23. package/dist/chat/claude_cli.d.ts.map +1 -1
  24. package/dist/chat/claude_cli.js +97 -16
  25. package/dist/chat/claude_cli.js.map +1 -1
  26. package/dist/chat/completion_hallucination_detector.d.ts +11 -0
  27. package/dist/chat/completion_hallucination_detector.d.ts.map +1 -1
  28. package/dist/chat/completion_hallucination_detector.js +37 -2
  29. package/dist/chat/completion_hallucination_detector.js.map +1 -1
  30. package/dist/chat/doctrine_digest.d.ts.map +1 -1
  31. package/dist/chat/doctrine_digest.js +10 -6
  32. package/dist/chat/doctrine_digest.js.map +1 -1
  33. package/dist/chat/panel.d.ts.map +1 -1
  34. package/dist/chat/panel.js +923 -50
  35. package/dist/chat/panel.js.map +1 -1
  36. package/dist/chat/refusal_detector.d.ts.map +1 -1
  37. package/dist/chat/refusal_detector.js +2 -1
  38. package/dist/chat/refusal_detector.js.map +1 -1
  39. package/dist/chat/server.d.ts +1 -0
  40. package/dist/chat/server.d.ts.map +1 -1
  41. package/dist/chat/server.js +960 -73
  42. package/dist/chat/server.js.map +1 -1
  43. package/dist/chat/session_projects.d.ts +31 -0
  44. package/dist/chat/session_projects.d.ts.map +1 -0
  45. package/dist/chat/session_projects.js +36 -0
  46. package/dist/chat/session_projects.js.map +1 -0
  47. package/dist/chat/session_store.d.ts +32 -0
  48. package/dist/chat/session_store.d.ts.map +1 -0
  49. package/dist/chat/session_store.js +58 -0
  50. package/dist/chat/session_store.js.map +1 -0
  51. package/dist/chat/tooling_section.d.ts +11 -0
  52. package/dist/chat/tooling_section.d.ts.map +1 -0
  53. package/dist/chat/tooling_section.js +70 -0
  54. package/dist/chat/tooling_section.js.map +1 -0
  55. package/dist/chat/tools/app_backend_dispatch.d.ts.map +1 -1
  56. package/dist/chat/tools/app_backend_dispatch.js +44 -1
  57. package/dist/chat/tools/app_backend_dispatch.js.map +1 -1
  58. package/dist/chat/tools/fs_editor.d.ts.map +1 -1
  59. package/dist/chat/tools/fs_editor.js +53 -3
  60. package/dist/chat/tools/fs_editor.js.map +1 -1
  61. package/dist/chat/tools/graph.js +2 -2
  62. package/dist/chat/tools/graph.js.map +1 -1
  63. package/dist/chat/tools/keys.d.ts.map +1 -1
  64. package/dist/chat/tools/keys.js +5 -18
  65. package/dist/chat/tools/keys.js.map +1 -1
  66. package/dist/chat/tools/nac3_invoke.d.ts.map +1 -1
  67. package/dist/chat/tools/nac3_invoke.js +16 -7
  68. package/dist/chat/tools/nac3_invoke.js.map +1 -1
  69. package/dist/chat/tools/shell.d.ts +6 -0
  70. package/dist/chat/tools/shell.d.ts.map +1 -1
  71. package/dist/chat/tools/shell.js +39 -0
  72. package/dist/chat/tools/shell.js.map +1 -1
  73. package/dist/chat/tools/workflow.d.ts +20 -0
  74. package/dist/chat/tools/workflow.d.ts.map +1 -1
  75. package/dist/chat/tools/workflow.js +98 -0
  76. package/dist/chat/tools/workflow.js.map +1 -1
  77. package/dist/chat/tools.d.ts.map +1 -1
  78. package/dist/chat/tools.js +79 -1
  79. package/dist/chat/tools.js.map +1 -1
  80. package/dist/chat/turn_control.d.ts +42 -0
  81. package/dist/chat/turn_control.d.ts.map +1 -0
  82. package/dist/chat/turn_control.js +53 -0
  83. package/dist/chat/turn_control.js.map +1 -0
  84. package/dist/commands/brain.js +1 -1
  85. package/dist/commands/chat.d.ts.map +1 -1
  86. package/dist/commands/chat.js +61 -10
  87. package/dist/commands/chat.js.map +1 -1
  88. package/dist/commands/graph.js +9 -9
  89. package/dist/commands/graph.js.map +1 -1
  90. package/dist/commands/keys_setup.d.ts +10 -28
  91. package/dist/commands/keys_setup.d.ts.map +1 -1
  92. package/dist/commands/keys_setup.js +54 -228
  93. package/dist/commands/keys_setup.js.map +1 -1
  94. package/dist/commands/license.d.ts.map +1 -1
  95. package/dist/commands/license.js +52 -28
  96. package/dist/commands/license.js.map +1 -1
  97. package/dist/commands/mcp.d.ts.map +1 -1
  98. package/dist/commands/mcp.js +62 -6
  99. package/dist/commands/mcp.js.map +1 -1
  100. package/dist/commands/mobile.d.ts +1 -1
  101. package/dist/commands/mobile.d.ts.map +1 -1
  102. package/dist/commands/mobile.js +32 -28
  103. package/dist/commands/mobile.js.map +1 -1
  104. package/dist/commands/onboard.d.ts +19 -0
  105. package/dist/commands/onboard.d.ts.map +1 -0
  106. package/dist/commands/onboard.js +126 -0
  107. package/dist/commands/onboard.js.map +1 -0
  108. package/dist/commands/pending.d.ts.map +1 -1
  109. package/dist/commands/pending.js +25 -1
  110. package/dist/commands/pending.js.map +1 -1
  111. package/dist/commands/projects.js +25 -1
  112. package/dist/commands/projects.js.map +1 -1
  113. package/dist/commands/review-screens.js +28 -1
  114. package/dist/commands/review-screens.js.map +1 -1
  115. package/dist/commands/workflow.d.ts +18 -0
  116. package/dist/commands/workflow.d.ts.map +1 -0
  117. package/dist/commands/workflow.js +253 -0
  118. package/dist/commands/workflow.js.map +1 -0
  119. package/dist/core/brain_config.d.ts +2 -0
  120. package/dist/core/brain_config.d.ts.map +1 -1
  121. package/dist/core/brain_config.js +18 -3
  122. package/dist/core/brain_config.js.map +1 -1
  123. package/dist/core/cf_tunnel.d.ts.map +1 -1
  124. package/dist/core/cf_tunnel.js +8 -2
  125. package/dist/core/cf_tunnel.js.map +1 -1
  126. package/dist/core/cost_router.d.ts.map +1 -1
  127. package/dist/core/cost_router.js +11 -2
  128. package/dist/core/cost_router.js.map +1 -1
  129. package/dist/core/desktop_open.d.ts +16 -0
  130. package/dist/core/desktop_open.d.ts.map +1 -0
  131. package/dist/core/desktop_open.js +114 -0
  132. package/dist/core/desktop_open.js.map +1 -0
  133. package/dist/core/keys_envelope.d.ts.map +1 -1
  134. package/dist/core/keys_envelope.js +5 -1
  135. package/dist/core/keys_envelope.js.map +1 -1
  136. package/dist/core/limits_config.d.ts +5 -0
  137. package/dist/core/limits_config.d.ts.map +1 -1
  138. package/dist/core/limits_config.js +5 -0
  139. package/dist/core/limits_config.js.map +1 -1
  140. package/dist/core/logger.d.ts.map +1 -1
  141. package/dist/core/logger.js +3 -0
  142. package/dist/core/logger.js.map +1 -1
  143. package/dist/core/pairing.d.ts +6 -0
  144. package/dist/core/pairing.d.ts.map +1 -1
  145. package/dist/core/pairing.js +41 -2
  146. package/dist/core/pairing.js.map +1 -1
  147. package/dist/core/provider_keys.d.ts.map +1 -1
  148. package/dist/core/provider_keys.js +25 -12
  149. package/dist/core/provider_keys.js.map +1 -1
  150. package/dist/core/provider_models.js +1 -1
  151. package/dist/deploy/cloudflare.d.ts.map +1 -1
  152. package/dist/deploy/cloudflare.js +13 -2
  153. package/dist/deploy/cloudflare.js.map +1 -1
  154. package/dist/design/yujin_design_resolver.d.ts +16 -0
  155. package/dist/design/yujin_design_resolver.d.ts.map +1 -1
  156. package/dist/design/yujin_design_resolver.js +103 -20
  157. package/dist/design/yujin_design_resolver.js.map +1 -1
  158. package/dist/docs/doctrine/default-design-system.md +32 -0
  159. package/dist/docs/doctrine/office-tools.md +20 -0
  160. package/dist/docs/doctrine/pizarron.md +40 -0
  161. package/dist/docs/doctrine/verb-composition.md +16 -0
  162. package/dist/docs/doctrine/workflow-kinds.md +39 -22
  163. package/dist/docs/doctrine/workflow.md +12 -4
  164. package/dist/license/auto_sync.d.ts +22 -0
  165. package/dist/license/auto_sync.d.ts.map +1 -0
  166. package/dist/license/auto_sync.js +91 -0
  167. package/dist/license/auto_sync.js.map +1 -0
  168. package/dist/license/handle_key.d.ts +32 -0
  169. package/dist/license/handle_key.d.ts.map +1 -0
  170. package/dist/license/handle_key.js +56 -0
  171. package/dist/license/handle_key.js.map +1 -0
  172. package/dist/license/hito4_client.d.ts.map +1 -1
  173. package/dist/license/hito4_client.js +63 -25
  174. package/dist/license/hito4_client.js.map +1 -1
  175. package/dist/llm/gemini_client.d.ts.map +1 -1
  176. package/dist/llm/gemini_client.js +5 -2
  177. package/dist/llm/gemini_client.js.map +1 -1
  178. package/dist/llm/managed_client.d.ts.map +1 -1
  179. package/dist/llm/managed_client.js +14 -9
  180. package/dist/llm/managed_client.js.map +1 -1
  181. package/dist/mcp/plan_bridges.d.ts +17 -0
  182. package/dist/mcp/plan_bridges.d.ts.map +1 -0
  183. package/dist/mcp/plan_bridges.js +119 -0
  184. package/dist/mcp/plan_bridges.js.map +1 -0
  185. package/dist/migrate/ai-apply.d.ts.map +1 -1
  186. package/dist/migrate/ai-apply.js +25 -2
  187. package/dist/migrate/ai-apply.js.map +1 -1
  188. package/dist/nac3/internal_manifest.d.ts.map +1 -1
  189. package/dist/nac3/internal_manifest.js +200 -10
  190. package/dist/nac3/internal_manifest.js.map +1 -1
  191. package/dist/nac3/verb_tier_map.d.ts.map +1 -1
  192. package/dist/nac3/verb_tier_map.js +3 -0
  193. package/dist/nac3/verb_tier_map.js.map +1 -1
  194. package/dist/onboarding/concierge_client.d.ts +34 -0
  195. package/dist/onboarding/concierge_client.d.ts.map +1 -0
  196. package/dist/onboarding/concierge_client.js +80 -0
  197. package/dist/onboarding/concierge_client.js.map +1 -0
  198. package/dist/onboarding/next_step.d.ts +32 -0
  199. package/dist/onboarding/next_step.d.ts.map +1 -0
  200. package/dist/onboarding/next_step.js +60 -0
  201. package/dist/onboarding/next_step.js.map +1 -0
  202. package/dist/pending/store.d.ts +7 -0
  203. package/dist/pending/store.d.ts.map +1 -1
  204. package/dist/pending/store.js +19 -0
  205. package/dist/pending/store.js.map +1 -1
  206. package/dist/pending/types.d.ts +20 -0
  207. package/dist/pending/types.d.ts.map +1 -1
  208. package/dist/pending/types.js.map +1 -1
  209. package/dist/reader/parsers/epub.d.ts.map +1 -1
  210. package/dist/reader/parsers/epub.js +6 -1
  211. package/dist/reader/parsers/epub.js.map +1 -1
  212. package/dist/relay/board_snapshot.d.ts +69 -0
  213. package/dist/relay/board_snapshot.d.ts.map +1 -0
  214. package/dist/relay/board_snapshot.js +149 -0
  215. package/dist/relay/board_snapshot.js.map +1 -0
  216. package/dist/relay/command_consumer.d.ts +97 -0
  217. package/dist/relay/command_consumer.d.ts.map +1 -0
  218. package/dist/relay/command_consumer.js +135 -0
  219. package/dist/relay/command_consumer.js.map +1 -0
  220. package/dist/relay/mock_relay.d.ts +34 -0
  221. package/dist/relay/mock_relay.d.ts.map +1 -0
  222. package/dist/relay/mock_relay.js +93 -0
  223. package/dist/relay/mock_relay.js.map +1 -0
  224. package/dist/relay/relay_client.d.ts +28 -0
  225. package/dist/relay/relay_client.d.ts.map +1 -0
  226. package/dist/relay/relay_client.js +80 -0
  227. package/dist/relay/relay_client.js.map +1 -0
  228. package/dist/relay/relay_publisher.d.ts +59 -0
  229. package/dist/relay/relay_publisher.d.ts.map +1 -0
  230. package/dist/relay/relay_publisher.js +101 -0
  231. package/dist/relay/relay_publisher.js.map +1 -0
  232. package/dist/relay/types.d.ts +54 -0
  233. package/dist/relay/types.d.ts.map +1 -0
  234. package/dist/relay/types.js +8 -0
  235. package/dist/relay/types.js.map +1 -0
  236. package/dist/semantic_graph/ast_extract.d.ts +5 -0
  237. package/dist/semantic_graph/ast_extract.d.ts.map +1 -1
  238. package/dist/semantic_graph/ast_extract.js +46 -0
  239. package/dist/semantic_graph/ast_extract.js.map +1 -1
  240. package/dist/semantic_graph/derive.d.ts +12 -0
  241. package/dist/semantic_graph/derive.d.ts.map +1 -1
  242. package/dist/semantic_graph/derive.js +325 -6
  243. package/dist/semantic_graph/derive.js.map +1 -1
  244. package/dist/semantic_graph/store.d.ts +9 -0
  245. package/dist/semantic_graph/store.d.ts.map +1 -1
  246. package/dist/semantic_graph/store.js +23 -1
  247. package/dist/semantic_graph/store.js.map +1 -1
  248. package/dist/semantic_graph/types.d.ts +1 -1
  249. package/dist/semantic_graph/types.d.ts.map +1 -1
  250. package/dist/support/github_dispatcher.d.ts.map +1 -1
  251. package/dist/support/github_dispatcher.js +30 -2
  252. package/dist/support/github_dispatcher.js.map +1 -1
  253. package/dist/tasks/supervisor.d.ts +88 -0
  254. package/dist/tasks/supervisor.d.ts.map +1 -0
  255. package/dist/tasks/supervisor.js +308 -0
  256. package/dist/tasks/supervisor.js.map +1 -0
  257. package/dist/tasks/task_type.d.ts +11 -0
  258. package/dist/tasks/task_type.d.ts.map +1 -0
  259. package/dist/tasks/task_type.js +21 -0
  260. package/dist/tasks/task_type.js.map +1 -0
  261. package/dist/vault/store.d.ts.map +1 -1
  262. package/dist/vault/store.js +6 -1
  263. package/dist/vault/store.js.map +1 -1
  264. package/dist/version.d.ts +3 -5
  265. package/dist/version.d.ts.map +1 -1
  266. package/dist/version.js +3 -5
  267. package/dist/version.js.map +1 -1
  268. package/dist/voice/providers/google.d.ts.map +1 -1
  269. package/dist/voice/providers/google.js +6 -4
  270. package/dist/voice/providers/google.js.map +1 -1
  271. package/dist/workflow/config.d.ts +43 -0
  272. package/dist/workflow/config.d.ts.map +1 -0
  273. package/dist/workflow/config.js +199 -0
  274. package/dist/workflow/config.js.map +1 -0
  275. package/dist/workflow/instances.d.ts +40 -0
  276. package/dist/workflow/instances.d.ts.map +1 -0
  277. package/dist/workflow/instances.js +122 -0
  278. package/dist/workflow/instances.js.map +1 -0
  279. package/dist/workflow/multi_view.d.ts +27 -0
  280. package/dist/workflow/multi_view.d.ts.map +1 -0
  281. package/dist/workflow/multi_view.js +76 -0
  282. package/dist/workflow/multi_view.js.map +1 -0
  283. package/dist/workflow/orchestrator.d.ts +111 -0
  284. package/dist/workflow/orchestrator.d.ts.map +1 -0
  285. package/dist/workflow/orchestrator.js +241 -0
  286. package/dist/workflow/orchestrator.js.map +1 -0
  287. package/docs/doctrine/default-design-system.md +32 -0
  288. package/docs/doctrine/office-tools.md +20 -0
  289. package/docs/doctrine/pizarron.md +40 -0
  290. package/docs/doctrine/verb-composition.md +16 -0
  291. package/docs/doctrine/workflow-kinds.md +39 -22
  292. package/docs/doctrine/workflow.md +12 -4
  293. package/package.json +2 -1
  294. package/src/i18n/catalogs/ar.json +223 -210
  295. package/src/i18n/catalogs/de.json +223 -210
  296. package/src/i18n/catalogs/en.json +223 -210
  297. package/src/i18n/catalogs/es.json +223 -210
  298. package/src/i18n/catalogs/fr.json +223 -210
  299. package/src/i18n/catalogs/hi.json +223 -210
  300. package/src/i18n/catalogs/it.json +223 -210
  301. package/src/i18n/catalogs/ja.json +223 -210
  302. package/src/i18n/catalogs/pt.json +223 -210
  303. package/src/i18n/catalogs/zh.json +223 -210
@@ -1,210 +1,223 @@
1
- {
2
- "panel.brand": "Yujin Forge",
3
- "panel.brand.kanji": "侑",
4
- "panel.tagline": "音声ファースト開発アシスタント",
5
- "panel.input.placeholder": "Yujinに質問する",
6
- "panel.button.send": "送信",
7
- "panel.button.mic": "話す(長押し)",
8
- "panel.button.mic.recording": "押して録音を停止",
9
- "panel.button.tts": "音声有効",
10
- "panel.button.keys": "鍵",
11
- "panel.button.minimise": "縮小",
12
- "panel.button.maximise": "最大化",
13
- "panel.button.close": "閉じる",
14
- "panel.button.language": "言語",
15
- "panel.trace.title": "アクション履歴",
16
- "panel.trace.count.one": "{n}回のツール呼び出し",
17
- "panel.trace.count.other": "{n}回のツール呼び出し",
18
- "panel.trace.empty.kanji": "空",
19
- "panel.trace.empty.body": "Yujin Forgeは、応答に呼び出すすべてのツールをここに表示します:マニフェストの読み込み、SPECの検索、コンポーネントの編集、ドキュメントの読み込み。それらを必要とする質問をしてください。",
20
- "panel.trace.badge.tool": "ツール",
21
- "panel.trace.badge.voice": "音声",
22
- "panel.trace.badge.error": "エラー",
23
- "panel.stream.empty.kanji": "侑仁",
24
- "panel.stream.empty.body": "Yujin Forgeはオンラインです。プロジェクトの変更を依頼してください。",
25
- "panel.status.no_audio": "音声が取得されませんでした。マイクが何も拾わなかった可能性があります。",
26
- "panel.status.did_not_catch": "聞き取れませんでした。もう一度試してください。",
27
- "panel.status.mic_denied": "マイクの許可が拒否されたか利用できません:{error}",
28
- "panel.status.voice_failed": "音声に失敗しました:{error}",
29
- "panel.status.voice_reply_failed": "応答を再生できませんでした:{error}",
30
- "panel.status.audio_play_error": "音声を再生できませんでした:{error}",
31
- "panel.status.reading": "{filename}を読み込み中...",
32
- "panel.status.ingest_failed": "取り込みに失敗しました:{error}",
33
- "panel.status.read_failed": "仕様書を読み込めませんでした:{error}",
34
- "panel.drop.title": "仕様書をここにドロップ",
35
- "panel.drop.hint": "PDF, DOCX, HTML, MD, RTF, EPUB, CSV, XLSX, TXT",
36
- "panel.ingest.spec_attached": "仕様書添付:{filename}、{kb} KB",
37
- "panel.ingest.read_label": "読み込み完了。",
38
- "panel.ingest.title_label": "タイトル:{title}",
39
- "panel.ingest.no_title": "(タイトルなし)",
40
- "panel.ingest.format_label": "形式:{format} / {sections}セクション / {kb} KB",
41
- "panel.ingest.first_lines": "最初の数行:",
42
- "panel.ingest.action_done": "アクション{tool}が完了しました。",
43
- "vault.modal.title": "認証情報(ボールト)",
44
- "vault.modal.aria.close": "認証情報モーダルを閉じる",
45
- "vault.tab.list": "登録済みスロット",
46
- "vault.tab.add": "追加",
47
- "vault.list.loading": "読み込み中...",
48
- "vault.list.empty": "まだ鍵を登録していません。「追加」をクリックして始めてください。",
49
- "vault.add.slot_label": "スロット名",
50
- "vault.add.slot_hint": "小文字、数字、アンダースコア、ハイフン。文字で始まる必要があります。",
51
- "vault.add.value_label": "プレーンテキストの値(マスク済み)",
52
- "vault.add.value_hint": "保存時に一度だけ表示されます。その後は置き換えのみ可能で再読み込みはできません。",
53
- "vault.add.button_save": "保存",
54
- "vault.add.button_cancel": "キャンセル",
55
- "vault.add.success": "スロット{slot}を保存しました。",
56
- "vault.add.overwrite": "スロット{slot}を上書きしました。",
57
- "manual.intro": "Yujin Forge -- ユーザーマニュアル",
58
- "manual.section.welcome": "ようこそ",
59
- "manual.section.install": "インストール",
60
- "manual.section.first_run": "初回実行",
61
- "manual.section.voice": "音声コマンド",
62
- "manual.section.spec_ingest": "仕様書の取り込み",
63
- "manual.section.troubleshooting": "トラブルシューティング",
64
- "manual.section.support": "サポート",
65
- "lang.name.es": "スペイン語",
66
- "lang.name.en": "英語",
67
- "lang.name.pt": "ポルトガル語",
68
- "lang.name.fr": "フランス語",
69
- "lang.name.ja": "日本語",
70
- "lang.name.zh": "中国語",
71
- "lang.name.hi": "ヒンディー語",
72
- "lang.name.ar": "アラビア語",
73
- "lang.name.de": "ドイツ語",
74
- "lang.name.it": "イタリア語",
75
- "recap.fallback_period": "。",
76
- "recap.empty": "まだ要約するものはありません。",
77
- "error_ui.severity.info": "お知らせ",
78
- "error_ui.severity.warning": "警告",
79
- "error_ui.severity.error": "エラー",
80
- "error_ui.severity.fatal": "致命的",
81
- "error_ui.label.what": "何が起きたか",
82
- "error_ui.label.why": "なぜ",
83
- "error_ui.label.fix": "対処方法",
84
- "error_ui.label.cmd": "コマンド",
85
- "error_ui.label.docs": "ローカル ドキュメント",
86
- "error_ui.label.retry": "再試行までの時間",
87
- "error_ui.copy_btn": "コマンドをコピー",
88
- "error_ui.unknown.what": "Forgeが内部エラーを検出しました(未知のコード)。",
89
- "error_ui.unknown.why": "コード {code} はカタログにありません。バグです。",
90
- "error_ui.unknown.fix": "https://github.com/yujinapp/yujin-forge/issues にコードとトレースバックを添えてissueを開いてください。",
91
- "error.cap_frontier_exhausted.what": "frontierティア(大型モデル)の月次トークンキャップに達しました。",
92
- "error.cap_frontier_exhausted.why": "プラン {plan} はfrontierで月 {cap} トークンまで許可されています。{used} 使用しました。次のUTC月初にリセットされます。",
93
- "error.cap_frontier_exhausted.fix": "Anthropic BYOK直接に切り替えてください: workerの月次キャップを回避します。コストはAnthropicの直接料金になります。",
94
- "error.cap_frontier_exhausted.cmd": "yf brain config --frontier-provider anthropic --frontier-model claude-opus-4-7",
95
- "error.cap_eco_exhausted.what": "ecoティア(小型モデル)の月次トークンキャップに達しました。",
96
- "error.cap_eco_exhausted.why": "プラン {plan} はecoで月 {cap} トークンまで許可されています。{used} 使用しました。次のUTC月初にリセットされます。",
97
- "error.cap_eco_exhausted.fix": "BYOK直接に切り替えるかプランをアップグレードしてください。BYOKはworkerキャップを回避します。",
98
- "error.cap_eco_exhausted.cmd": "yf brain config --eco-provider google_ai --eco-model gemini-2.5-flash-lite",
99
- "error.tier_not_in_plan.what": "ティア {tier} はあなたのプランで有効になっていません。",
100
- "error.tier_not_in_plan.why": "プラン {plan} は {tier} ティアを含みません。free-publicかライセンス期限切れの可能性があります。",
101
- "error.tier_not_in_plan.fix": "有料ライセンスを有効化するかBYOK直接に切り替えてください(あなたの費用、workerキャップなし)。",
102
- "error.tier_not_in_plan.cmd": "yf license activate --key <jwt>",
103
- "error.response_truncated.what": "モデルの応答が完了前に切り捨てられました。",
104
- "error.response_truncated.why": "managed_max_tokens_per_turn = {limit} トークンの制限がターンの途中で達しました。モデルは生成を停止しました。",
105
- "error.response_truncated.fix": "yf limits で制限を上げてください。次のターンに適用、チャット再起動不要です。",
106
- "error.response_truncated.cmd": "yf limits set managed_max_tokens_per_turn 16384",
107
- "error.response_truncated.banner": "[max_tokens={max} で応答が切り捨てられました。制限を上げてください: yf limits set managed_max_tokens_per_turn {suggested}]",
108
- "error.modal_trace_stale.what": "承認モーダルが期限切れまたは孤立しました。",
109
- "error.modal_trace_stale.why": "trace_id {trace_id} にディスパッチャー保留中の承認がありません。invokeとパネルの状態の競合状態、または以前のキャンセルでトレースがゾンビ化した可能性があります。",
110
- "error.modal_trace_stale.fix": "チャットから verb を再呼び出ししてください: クリーンな新トレースを開始します。問題が続く場合は yf doctor でパネルを確認してください。",
111
- "error.modal_trace_stale.cmd": "yf doctor",
112
- "error.byok_key_missing.what": "プロバイダー {provider} のAPIキーがありません。",
113
- "error.byok_key_missing.why": "ティア {tier} のプロバイダーとして {provider} を設定しましたが、スロット byok_{slot} が暗号化されたVaultにありません。",
114
- "error.byok_key_missing.fix": "yf keys set でキーを設定してください(アトミック、モード 0600、ログ記録なし)。",
115
- "error.byok_key_missing.cmd": "yf keys set {slot}",
116
- "error.worker_unreachable.what": "yujin.app worker に到達できませんでした。",
117
- "error.worker_unreachable.why": "ネットワークタイムアウトまたはworkerダウン (HTTP {status})。{attempts} 回再試行しました。",
118
- "error.worker_unreachable.fix": "インターネット接続を確認してください。OKであれば一時的にBYOK直接に切り替えてworker依存を回避してください。",
119
- "error.worker_unreachable.cmd": "yf brain config --frontier-provider anthropic",
120
- "error.vault_decrypt_failed.what": "Vaultからキーを復号できませんでした。",
121
- "error.vault_decrypt_failed.why": "マスターキーが間違っているかVaultファイルが破損しています。マスターを移行せずにマシン間で設定を移動したか、ディスクエラーが発生した可能性があります。",
122
- "error.vault_decrypt_failed.fix": "サーバーバックアップが有効な場合、サーバーコピーを取得してください(ローカルマスターで再暗号化されます)。",
123
- "error.vault_decrypt_failed.cmd": "yf keys setup --pull",
124
- "error.shell_exec_rejected.what": "yujin.shell.exec のR8モーダルを拒否しました。",
125
- "error.shell_exec_rejected.why": "コマンド {command} は {classification} に分類されました。shell.exec は read-only であっても常に安全のため承認を求めます。",
126
- "error.shell_exec_rejected.fix": "コマンドが read-only だった場合 (yf projects active, git status, ls)、同等のネイティブ verb を使用してください。必要だったが誤って拒否した場合は、再呼び出ししてください。",
127
- "error.project_not_registered.what": "登録されたアダプタープロジェクトがありません。",
128
- "error.project_not_registered.why": "呼び出した verb はアクティブな project root が必要ですが、~/.yujin-forge/projects.json にエントリがありません。",
129
- "error.project_not_registered.fix": "yujin.project.init で作成するか、yf projects add で既存のものを登録してください。",
130
- "error.project_not_registered.cmd": "yf projects scan",
131
- "panel.button.agents": "エージェント",
132
- "panel.agents.title": "エージェント",
133
- "panel.agents.subtitle": "このプロジェクトに登録されたディレクターとサブエージェント",
134
- "panel.agents.empty.title": "エージェントはまだありません",
135
- "panel.agents.empty.body": "`yf agent install --defaults` を実行して、ディレクターと4つのサブエージェント(アナリスト、コーダー、テスター、スキャフォルダー)を登録してください。",
136
- "panel.agents.legend.eco": "エコ",
137
- "panel.agents.legend.managed": "マネージド",
138
- "panel.agents.legend.frontier": "フロンティア",
139
- "panel.agents.status.disabled": "エージェントランタイムが開始されていません",
140
- "panel.agents.event.running": "実行中",
141
- "panel.agents.event.idle": "待機中",
142
- "panel.agents.tick.live": "接続済み",
143
- "panel.agents.tick.lost": "接続切断",
144
- "workflow.phase.i": "トリアージと意図",
145
- "workflow.phase.ii": "明確化(機能要件+4種NFR+ブロック計画)",
146
- "workflow.phase.iii": "仕様(RFP+アーキ+デザイン+承認)",
147
- "workflow.phase.iv": "ブートストラップ",
148
- "workflow.phase.v": "ブロック実装",
149
- "workflow.phase.vi": "デプロイと運用開始",
150
- "wizard.title": "Yujin Forge へようこそ",
151
- "wizard.close": "閉じる",
152
- "wizard.intro": "開始するには、Forge がAI モデルにどう接続するかを選んでください。後でSettingsから変更できます。",
153
- "wizard.back": "戻る",
154
- "wizard.start": "開始",
155
- "wizard.plan.badge": "推奨",
156
- "wizard.plan.title": "Claude プラン",
157
- "wizard.plan.desc": "Claude の月額サブスクリプション。継続利用に最も経済的。Forge はあなたの claude -p セッションを使用します。",
158
- "wizard.plan.price": "月額固定 (プラン)",
159
- "wizard.plan.step.title": "Claude プランに接続",
160
- "wizard.plan.step.1": "新しいターミナルを開きます。",
161
- "wizard.plan.step.2": "claude コマンド (引数なし) を実行し、ブラウザでログインを完了させます。",
162
- "wizard.plan.step.3": "ここに戻り、ログイン済み をクリックして確認します。",
163
- "wizard.plan.done": "ログイン済み",
164
- "wizard.byok.title": "Console API キー (BYOK)",
165
- "wizard.byok.desc": "あなた自身の Anthropic Console キー。使用量課金。柔軟ですがコストは変動します。",
166
- "wizard.byok.price": "使用量課金 (Console)",
167
- "wizard.byok.step.title": "Anthropic API キーを貼り付け",
168
- "wizard.byok.step.intro": "キーは sk-ant- で始まり、console.anthropic.com で取得します。Forge はローカルの Vault に暗号化して保存します。あなたのマシンから外には出ません。",
169
- "wizard.byok.test": "検証して保存",
170
- "wizard.skip.title": "既に設定済み",
171
- "wizard.skip.desc": "ウィザードをスキップします。後で Settings から再度開けます。",
172
- "wizard.done.kanji": "完",
173
- "wizard.done.title": "完了",
174
- "wizard.done.msg": "Forge の設定が完了しました。チャットを始めましょう。",
175
- "pizarron.button.read": "読み上げ",
176
- "pizarron.button.copy": "コピー",
177
- "pizarron.button.edit": "編集",
178
- "pizarron.graph.refresh": "更新",
179
- "pizarron.graph.regenerating": "再生成中...",
180
- "pizarron.graph.detail.hint": "ノードをタップして詳細を表示。",
181
- "pizarron.graph.detail.empty": "このノードの詳細はありません。",
182
- "pizarron.graph.detail.weight": "重み",
183
- "startup.tab.graph": "グラフ(図)",
184
- "startup.tab.graphSem": "セマンティックグラフ",
185
- "startup.tab.pendings": "保留中",
186
- "startup.tab.workflow": "Workflow",
187
- "settings.startupTabs": "起動時のタブ(グラフ、保留、ワークフロー)",
188
- "graph.term.nodes": "ノード",
189
- "graph.term.edges": "エッジ",
190
- "coding.read": "{x} を読み込み中",
191
- "coding.read_bare": "ファイルを読み込み中",
192
- "coding.edit": "{x} を編集中",
193
- "coding.edit_bare": "ファイルを編集中",
194
- "coding.write": "{x} を書き込み中",
195
- "coding.write_bare": "ファイルを書き込み中",
196
- "coding.notebook_bare": "ノートブックを編集中",
197
- "coding.bash": "実行中: {x}",
198
- "coding.bash_bare": "コマンドを実行中",
199
- "coding.grep": "「{x}」を検索中",
200
- "coding.grep_bare": "コードを検索中",
201
- "coding.glob": "{x} を一覧表示中",
202
- "coding.glob_bare": "ファイルを一覧表示中",
203
- "coding.web_bare": "ウェブを読み込み中",
204
- "coding.websearch": "ウェブ検索: {x}",
205
- "coding.websearch_bare": "ウェブを検索中",
206
- "coding.task": "サブエージェント: {x}",
207
- "coding.task_bare": "サブエージェントを起動中",
208
- "coding.todo": "タスクリストを更新中",
209
- "coding.verb_bare": "yujin 動詞を実行中"
210
- }
1
+ {
2
+ "panel.brand": "Yujin Forge",
3
+ "panel.brand.kanji": "侑",
4
+ "panel.tagline": "音声ファースト開発アシスタント",
5
+ "panel.input.placeholder": "Yujinに質問する",
6
+ "panel.button.send": "送信",
7
+ "panel.button.mic": "話す(長押し)",
8
+ "panel.button.mic.recording": "押して録音を停止",
9
+ "panel.button.tts": "音声有効",
10
+ "panel.button.keys": "鍵",
11
+ "panel.button.minimise": "縮小",
12
+ "panel.button.maximise": "最大化",
13
+ "panel.button.close": "閉じる",
14
+ "panel.button.language": "言語",
15
+ "panel.trace.title": "アクション履歴",
16
+ "panel.trace.count.one": "{n}回のツール呼び出し",
17
+ "panel.trace.count.other": "{n}回のツール呼び出し",
18
+ "panel.trace.empty.kanji": "空",
19
+ "panel.trace.empty.body": "Yujin Forgeは、応答に呼び出すすべてのツールをここに表示します:マニフェストの読み込み、SPECの検索、コンポーネントの編集、ドキュメントの読み込み。それらを必要とする質問をしてください。",
20
+ "panel.trace.badge.tool": "ツール",
21
+ "panel.trace.badge.voice": "音声",
22
+ "panel.trace.badge.error": "エラー",
23
+ "panel.stream.empty.kanji": "侑仁",
24
+ "panel.stream.empty.body": "Yujin Forgeはオンラインです。プロジェクトの変更を依頼してください。",
25
+ "panel.status.no_audio": "音声が取得されませんでした。マイクが何も拾わなかった可能性があります。",
26
+ "panel.status.did_not_catch": "聞き取れませんでした。もう一度試してください。",
27
+ "panel.status.mic_denied": "マイクの許可が拒否されたか利用できません:{error}",
28
+ "panel.status.voice_failed": "音声に失敗しました:{error}",
29
+ "panel.status.voice_reply_failed": "応答を再生できませんでした:{error}",
30
+ "panel.status.audio_play_error": "音声を再生できませんでした:{error}",
31
+ "panel.status.reading": "{filename}を読み込み中...",
32
+ "panel.status.ingest_failed": "取り込みに失敗しました:{error}",
33
+ "panel.status.read_failed": "仕様書を読み込めませんでした:{error}",
34
+ "panel.drop.title": "仕様書をここにドロップ",
35
+ "panel.drop.hint": "PDF, DOCX, HTML, MD, RTF, EPUB, CSV, XLSX, TXT",
36
+ "panel.ingest.spec_attached": "仕様書添付:{filename}、{kb} KB",
37
+ "panel.ingest.read_label": "読み込み完了。",
38
+ "panel.ingest.title_label": "タイトル:{title}",
39
+ "panel.ingest.no_title": "(タイトルなし)",
40
+ "panel.ingest.format_label": "形式:{format} / {sections}セクション / {kb} KB",
41
+ "panel.ingest.first_lines": "最初の数行:",
42
+ "panel.ingest.action_done": "アクション{tool}が完了しました。",
43
+ "vault.modal.title": "認証情報(ボールト)",
44
+ "vault.modal.aria.close": "認証情報モーダルを閉じる",
45
+ "vault.tab.list": "登録済みスロット",
46
+ "vault.tab.add": "追加",
47
+ "vault.list.loading": "読み込み中...",
48
+ "vault.list.empty": "まだ鍵を登録していません。「追加」をクリックして始めてください。",
49
+ "vault.add.slot_label": "スロット名",
50
+ "vault.add.slot_hint": "小文字、数字、アンダースコア、ハイフン。文字で始まる必要があります。",
51
+ "vault.add.value_label": "プレーンテキストの値(マスク済み)",
52
+ "vault.add.value_hint": "保存時に一度だけ表示されます。その後は置き換えのみ可能で再読み込みはできません。",
53
+ "vault.add.button_save": "保存",
54
+ "vault.add.button_cancel": "キャンセル",
55
+ "vault.add.success": "スロット{slot}を保存しました。",
56
+ "vault.add.overwrite": "スロット{slot}を上書きしました。",
57
+ "manual.intro": "Yujin Forge -- ユーザーマニュアル",
58
+ "manual.section.welcome": "ようこそ",
59
+ "manual.section.install": "インストール",
60
+ "manual.section.first_run": "初回実行",
61
+ "manual.section.voice": "音声コマンド",
62
+ "manual.section.spec_ingest": "仕様書の取り込み",
63
+ "manual.section.troubleshooting": "トラブルシューティング",
64
+ "manual.section.support": "サポート",
65
+ "lang.name.es": "スペイン語",
66
+ "lang.name.en": "英語",
67
+ "lang.name.pt": "ポルトガル語",
68
+ "lang.name.fr": "フランス語",
69
+ "lang.name.ja": "日本語",
70
+ "lang.name.zh": "中国語",
71
+ "lang.name.hi": "ヒンディー語",
72
+ "lang.name.ar": "アラビア語",
73
+ "lang.name.de": "ドイツ語",
74
+ "lang.name.it": "イタリア語",
75
+ "recap.fallback_period": "。",
76
+ "recap.empty": "まだ要約するものはありません。",
77
+ "error_ui.severity.info": "お知らせ",
78
+ "error_ui.severity.warning": "警告",
79
+ "error_ui.severity.error": "エラー",
80
+ "error_ui.severity.fatal": "致命的",
81
+ "error_ui.label.what": "何が起きたか",
82
+ "error_ui.label.why": "なぜ",
83
+ "error_ui.label.fix": "対処方法",
84
+ "error_ui.label.cmd": "コマンド",
85
+ "error_ui.label.docs": "ローカル ドキュメント",
86
+ "error_ui.label.retry": "再試行までの時間",
87
+ "error_ui.copy_btn": "コマンドをコピー",
88
+ "error_ui.unknown.what": "Forgeが内部エラーを検出しました(未知のコード)。",
89
+ "error_ui.unknown.why": "コード {code} はカタログにありません。バグです。",
90
+ "error_ui.unknown.fix": "https://github.com/yujinapp/yujin-forge/issues にコードとトレースバックを添えてissueを開いてください。",
91
+ "error.cap_frontier_exhausted.what": "frontierティア(大型モデル)の月次トークンキャップに達しました。",
92
+ "error.cap_frontier_exhausted.why": "プラン {plan} はfrontierで月 {cap} トークンまで許可されています。{used} 使用しました。次のUTC月初にリセットされます。",
93
+ "error.cap_frontier_exhausted.fix": "Anthropic BYOK直接に切り替えてください: workerの月次キャップを回避します。コストはAnthropicの直接料金になります。",
94
+ "error.cap_frontier_exhausted.cmd": "yf brain config --frontier-provider anthropic --frontier-model claude-opus-4-7",
95
+ "error.cap_eco_exhausted.what": "ecoティア(小型モデル)の月次トークンキャップに達しました。",
96
+ "error.cap_eco_exhausted.why": "プラン {plan} はecoで月 {cap} トークンまで許可されています。{used} 使用しました。次のUTC月初にリセットされます。",
97
+ "error.cap_eco_exhausted.fix": "BYOK直接に切り替えるかプランをアップグレードしてください。BYOKはworkerキャップを回避します。",
98
+ "error.cap_eco_exhausted.cmd": "yf brain config --eco-provider google_ai --eco-model gemini-2.5-flash-lite",
99
+ "error.tier_not_in_plan.what": "ティア {tier} はあなたのプランで有効になっていません。",
100
+ "error.tier_not_in_plan.why": "プラン {plan} は {tier} ティアを含みません。free-publicかライセンス期限切れの可能性があります。",
101
+ "error.tier_not_in_plan.fix": "有料ライセンスを有効化するかBYOK直接に切り替えてください(あなたの費用、workerキャップなし)。",
102
+ "error.tier_not_in_plan.cmd": "yf license activate --key <jwt>",
103
+ "error.response_truncated.what": "モデルの応答が完了前に切り捨てられました。",
104
+ "error.response_truncated.why": "managed_max_tokens_per_turn = {limit} トークンの制限がターンの途中で達しました。モデルは生成を停止しました。",
105
+ "error.response_truncated.fix": "yf limits で制限を上げてください。次のターンに適用、チャット再起動不要です。",
106
+ "error.response_truncated.cmd": "yf limits set managed_max_tokens_per_turn 16384",
107
+ "error.response_truncated.banner": "[max_tokens={max} で応答が切り捨てられました。制限を上げてください: yf limits set managed_max_tokens_per_turn {suggested}]",
108
+ "error.modal_trace_stale.what": "承認モーダルが期限切れまたは孤立しました。",
109
+ "error.modal_trace_stale.why": "trace_id {trace_id} にディスパッチャー保留中の承認がありません。invokeとパネルの状態の競合状態、または以前のキャンセルでトレースがゾンビ化した可能性があります。",
110
+ "error.modal_trace_stale.fix": "チャットから verb を再呼び出ししてください: クリーンな新トレースを開始します。問題が続く場合は yf doctor でパネルを確認してください。",
111
+ "error.modal_trace_stale.cmd": "yf doctor",
112
+ "error.byok_key_missing.what": "プロバイダー {provider} のAPIキーがありません。",
113
+ "error.byok_key_missing.why": "ティア {tier} のプロバイダーとして {provider} を設定しましたが、スロット byok_{slot} が暗号化されたVaultにありません。",
114
+ "error.byok_key_missing.fix": "yf keys set でキーを設定してください(アトミック、モード 0600、ログ記録なし)。",
115
+ "error.byok_key_missing.cmd": "yf keys set {slot}",
116
+ "error.worker_unreachable.what": "yujin.app worker に到達できませんでした。",
117
+ "error.worker_unreachable.why": "ネットワークタイムアウトまたはworkerダウン (HTTP {status})。{attempts} 回再試行しました。",
118
+ "error.worker_unreachable.fix": "インターネット接続を確認してください。OKであれば一時的にBYOK直接に切り替えてworker依存を回避してください。",
119
+ "error.worker_unreachable.cmd": "yf brain config --frontier-provider anthropic",
120
+ "error.vault_decrypt_failed.what": "Vaultからキーを復号できませんでした。",
121
+ "error.vault_decrypt_failed.why": "マスターキーが間違っているかVaultファイルが破損しています。マスターを移行せずにマシン間で設定を移動したか、ディスクエラーが発生した可能性があります。",
122
+ "error.vault_decrypt_failed.fix": "サーバーバックアップが有効な場合、サーバーコピーを取得してください(ローカルマスターで再暗号化されます)。",
123
+ "error.vault_decrypt_failed.cmd": "yf keys setup --pull",
124
+ "error.shell_exec_rejected.what": "yujin.shell.exec のR8モーダルを拒否しました。",
125
+ "error.shell_exec_rejected.why": "コマンド {command} は {classification} に分類されました。shell.exec は read-only であっても常に安全のため承認を求めます。",
126
+ "error.shell_exec_rejected.fix": "コマンドが read-only だった場合 (yf projects active, git status, ls)、同等のネイティブ verb を使用してください。必要だったが誤って拒否した場合は、再呼び出ししてください。",
127
+ "error.project_not_registered.what": "登録されたアダプタープロジェクトがありません。",
128
+ "error.project_not_registered.why": "呼び出した verb はアクティブな project root が必要ですが、~/.yujin-forge/projects.json にエントリがありません。",
129
+ "error.project_not_registered.fix": "yujin.project.init で作成するか、yf projects add で既存のものを登録してください。",
130
+ "error.project_not_registered.cmd": "yf projects scan",
131
+ "panel.button.agents": "エージェント",
132
+ "panel.agents.title": "エージェント",
133
+ "panel.agents.subtitle": "このプロジェクトに登録されたディレクターとサブエージェント",
134
+ "panel.agents.empty.title": "エージェントはまだありません",
135
+ "panel.agents.empty.body": "`yf agent install --defaults` を実行して、ディレクターと4つのサブエージェント(アナリスト、コーダー、テスター、スキャフォルダー)を登録してください。",
136
+ "panel.agents.legend.eco": "エコ",
137
+ "panel.agents.legend.managed": "マネージド",
138
+ "panel.agents.legend.frontier": "フロンティア",
139
+ "panel.agents.status.disabled": "エージェントランタイムが開始されていません",
140
+ "panel.agents.event.running": "実行中",
141
+ "panel.agents.event.idle": "待機中",
142
+ "panel.agents.tick.live": "接続済み",
143
+ "panel.agents.tick.lost": "接続切断",
144
+ "workflow.phase.i": "トリアージと意図",
145
+ "workflow.phase.ii": "明確化(機能要件+4種NFR+ブロック計画)",
146
+ "workflow.phase.iii": "仕様(RFP+アーキ+デザイン+承認)",
147
+ "workflow.phase.iv": "ブートストラップ",
148
+ "workflow.phase.v": "ブロック実装",
149
+ "workflow.phase.vi": "デプロイと運用開始",
150
+ "wizard.title": "Yujin Forge へようこそ",
151
+ "wizard.close": "閉じる",
152
+ "wizard.intro": "開始するには、Forge がAI モデルにどう接続するかを選んでください。後でSettingsから変更できます。",
153
+ "wizard.back": "戻る",
154
+ "wizard.start": "開始",
155
+ "wizard.plan.badge": "推奨",
156
+ "wizard.plan.title": "Claude プラン",
157
+ "wizard.plan.desc": "Claude の月額サブスクリプション。継続利用に最も経済的。Forge はあなたの claude -p セッションを使用します。",
158
+ "wizard.plan.price": "月額固定 (プラン)",
159
+ "wizard.plan.step.title": "Claude プランに接続",
160
+ "wizard.plan.step.1": "新しいターミナルを開きます。",
161
+ "wizard.plan.step.2": "claude コマンド (引数なし) を実行し、ブラウザでログインを完了させます。",
162
+ "wizard.plan.step.3": "ここに戻り、ログイン済み をクリックして確認します。",
163
+ "wizard.plan.done": "ログイン済み",
164
+ "wizard.byok.title": "Console API キー (BYOK)",
165
+ "wizard.byok.desc": "あなた自身の Anthropic Console キー。使用量課金。柔軟ですがコストは変動します。",
166
+ "wizard.byok.price": "使用量課金 (Console)",
167
+ "wizard.byok.step.title": "Anthropic API キーを貼り付け",
168
+ "wizard.byok.step.intro": "キーは sk-ant- で始まり、console.anthropic.com で取得します。Forge はローカルの Vault に暗号化して保存します。あなたのマシンから外には出ません。",
169
+ "wizard.byok.test": "検証して保存",
170
+ "wizard.skip.title": "既に設定済み",
171
+ "wizard.skip.desc": "ウィザードをスキップします。後で Settings から再度開けます。",
172
+ "wizard.done.kanji": "完",
173
+ "wizard.done.title": "完了",
174
+ "wizard.done.msg": "Forge の設定が完了しました。チャットを始めましょう。",
175
+ "pizarron.button.read": "読み上げ",
176
+ "pizarron.button.copy": "コピー",
177
+ "pizarron.button.edit": "編集",
178
+ "pizarron.graph.refresh": "更新",
179
+ "pizarron.graph.regenerating": "再生成中...",
180
+ "pizarron.graph.detail.hint": "ノードをタップして詳細を表示。",
181
+ "pizarron.graph.detail.empty": "このノードの詳細はありません。",
182
+ "pizarron.graph.detail.weight": "重み",
183
+ "startup.tab.graph": "グラフ(図)",
184
+ "startup.tab.graphSem": "セマンティックグラフ",
185
+ "startup.tab.pendings": "保留中",
186
+ "startup.tab.workflow": "Workflow",
187
+ "settings.startupTabs": "起動時のタブ(グラフ、保留、ワークフロー)",
188
+ "graph.term.nodes": "ノード",
189
+ "graph.term.edges": "エッジ",
190
+ "coding.read": "{x} を読み込み中",
191
+ "coding.read_bare": "ファイルを読み込み中",
192
+ "coding.edit": "{x} を編集中",
193
+ "coding.edit_bare": "ファイルを編集中",
194
+ "coding.write": "{x} を書き込み中",
195
+ "coding.write_bare": "ファイルを書き込み中",
196
+ "coding.notebook_bare": "ノートブックを編集中",
197
+ "coding.bash": "実行中: {x}",
198
+ "coding.bash_bare": "コマンドを実行中",
199
+ "coding.grep": "「{x}」を検索中",
200
+ "coding.grep_bare": "コードを検索中",
201
+ "coding.glob": "{x} を一覧表示中",
202
+ "coding.glob_bare": "ファイルを一覧表示中",
203
+ "coding.web_bare": "ウェブを読み込み中",
204
+ "coding.websearch": "ウェブ検索: {x}",
205
+ "coding.websearch_bare": "ウェブを検索中",
206
+ "coding.task": "サブエージェント: {x}",
207
+ "coding.task_bare": "サブエージェントを起動中",
208
+ "coding.todo": "タスクリストを更新中",
209
+ "coding.verb_bare": "yujin 動詞を実行中",
210
+ "panel.button.stop": "停止",
211
+ "panel.status.stopping": "停止中...",
212
+ "panel.status.noActiveTurn": "進行中のターンはありませんでした。",
213
+ "panel.status.interruptFailed": "中断を送信できませんでした。",
214
+ "panel.status.turnInterrupted": "ターンを中断しました。",
215
+ "panel.label.interrupted": "(中断)",
216
+ "panel.queue.label": "待機中",
217
+ "panel.queue.remove": "キューから削除",
218
+ "panel.project.switchHint": "プロジェクトを切り替え",
219
+ "panel.project.title": "プロジェクト",
220
+ "panel.project.add": "プロジェクトを追加...",
221
+ "panel.project.addPrompt": "追加するプロジェクトの絶対パス:",
222
+ "panel.project.switching": "プロジェクトを切り替え中..."
223
+ }