mulmoclaude 0.4.0 → 0.5.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.
Files changed (228) hide show
  1. package/bin/mulmoclaude.js +1 -1
  2. package/client/assets/{html2canvas-Cx501zZr-Cv5snK9D.js → html2canvas-Cx501zZr-DiKaqnKs.js} +1 -1
  3. package/client/assets/{index-DtcyExH9.js → index-C94GcmNa.js} +182 -196
  4. package/client/assets/index-CY-WpQUm.css +2 -0
  5. package/client/assets/{index.es-D4YyL_Dg-DnizuhIY.js → index.es-D4YyL_Dg-5ipqh8Pe.js} +1 -1
  6. package/client/assets/material-symbols-outlined-NzYEeyps.woff2 +0 -0
  7. package/client/index.html +2 -2
  8. package/package.json +8 -6
  9. package/server/agent/backend/claude-code.ts +170 -0
  10. package/server/agent/backend/index.ts +14 -0
  11. package/server/agent/backend/types.ts +65 -0
  12. package/server/agent/index.ts +22 -156
  13. package/server/agent/mcp-server.ts +88 -10
  14. package/server/agent/mcp-tools/index.ts +2 -1
  15. package/server/agent/mcp-tools/notify.ts +76 -0
  16. package/server/agent/mcp-tools/x.ts +10 -1
  17. package/server/agent/plugin-names.ts +10 -4
  18. package/server/agent/prompt.ts +1 -1
  19. package/server/api/routes/agent.ts +78 -1
  20. package/server/api/routes/chart.ts +13 -0
  21. package/server/api/routes/chat-index.ts +2 -1
  22. package/server/api/routes/config.ts +34 -7
  23. package/server/api/routes/files.ts +62 -12
  24. package/server/api/routes/html.ts +13 -0
  25. package/server/api/routes/image.ts +76 -21
  26. package/server/api/routes/news.ts +146 -0
  27. package/server/api/routes/notifications.ts +58 -2
  28. package/server/api/routes/plugins.ts +62 -90
  29. package/server/api/routes/presentHtml.ts +9 -0
  30. package/server/api/routes/roles.ts +10 -0
  31. package/server/api/routes/scheduler.ts +12 -5
  32. package/server/api/routes/schedulerTasks.ts +55 -20
  33. package/server/api/routes/sessions.ts +13 -2
  34. package/server/api/routes/skills.ts +21 -0
  35. package/server/api/routes/sources.ts +5 -4
  36. package/server/api/routes/todos.ts +30 -0
  37. package/server/api/routes/todosColumnsHandlers.ts +13 -27
  38. package/server/api/routes/wiki/frontmatter.ts +86 -0
  39. package/server/api/routes/wiki.ts +313 -67
  40. package/server/events/notifications.ts +26 -2
  41. package/server/events/relay-client.ts +9 -0
  42. package/server/events/resolveRelayBridgeOptions.ts +125 -0
  43. package/server/index.ts +33 -4
  44. package/server/system/env.ts +10 -0
  45. package/server/system/macosNotify.ts +152 -0
  46. package/server/utils/errors.ts +11 -2
  47. package/server/utils/fetch.ts +54 -0
  48. package/server/utils/files/atomic.ts +7 -6
  49. package/server/utils/files/image-store.ts +14 -19
  50. package/server/utils/files/markdown-image-fill.ts +131 -0
  51. package/server/utils/files/markdown-store.ts +20 -4
  52. package/server/utils/files/naming.ts +20 -10
  53. package/server/utils/files/spreadsheet-store.ts +11 -6
  54. package/server/utils/gemini.ts +29 -3
  55. package/server/utils/id.ts +40 -8
  56. package/server/utils/logPreview.ts +24 -0
  57. package/server/utils/promptMeta.ts +32 -0
  58. package/server/utils/slug.ts +65 -4
  59. package/server/workspace/chat-index/index.ts +1 -1
  60. package/server/workspace/chat-index/summarizer.ts +1 -1
  61. package/server/workspace/helps/gemini.md +57 -0
  62. package/server/workspace/helps/index.md +2 -1
  63. package/server/workspace/helps/sources.md +42 -0
  64. package/server/workspace/helps/wiki.md +40 -5
  65. package/server/workspace/journal/archivist-cli.ts +121 -0
  66. package/server/workspace/journal/{archivist.ts → archivist-schemas.ts} +12 -120
  67. package/server/workspace/journal/dailyPass.ts +78 -38
  68. package/server/workspace/journal/index.ts +52 -1
  69. package/server/workspace/journal/memoryExtractor.ts +1 -1
  70. package/server/workspace/journal/optimizationPass.ts +2 -3
  71. package/server/workspace/journal/paths.ts +8 -24
  72. package/server/workspace/journal/state.ts +12 -2
  73. package/server/workspace/news/reader.ts +248 -0
  74. package/server/workspace/paths.ts +1 -0
  75. package/server/workspace/skills/scheduler.ts +2 -1
  76. package/server/workspace/skills/user-tasks.ts +3 -2
  77. package/server/workspace/sources/classifier.ts +1 -1
  78. package/server/workspace/sources/pipeline/fetch.ts +23 -0
  79. package/server/workspace/sources/pipeline/index.ts +57 -0
  80. package/server/workspace/sources/pipeline/notify.ts +10 -2
  81. package/server/workspace/sources/pipeline/summarize.ts +1 -1
  82. package/src/App.vue +322 -270
  83. package/src/components/CanvasViewToggle.vue +2 -3
  84. package/src/components/ChatInput.vue +82 -109
  85. package/src/components/FileContentHeader.vue +3 -3
  86. package/src/components/FileContentRenderer.vue +17 -4
  87. package/src/components/FileTree.vue +28 -1
  88. package/src/components/FileTreePane.vue +25 -23
  89. package/src/components/FilesView.vue +1 -1
  90. package/src/components/FilterChip.vue +22 -0
  91. package/src/components/LockStatusPopup.vue +4 -1
  92. package/src/components/NewsView.vue +252 -0
  93. package/src/components/NotificationBell.vue +22 -5
  94. package/src/components/PageChatComposer.vue +101 -0
  95. package/src/components/PluginLauncher.vue +18 -7
  96. package/src/components/RoleSelector.vue +3 -2
  97. package/src/components/SessionHeaderControls.vue +63 -0
  98. package/src/components/SessionHistoryExpandButton.vue +30 -0
  99. package/src/components/SessionHistoryPanel.vue +47 -80
  100. package/src/components/SessionHistoryToggleButton.vue +40 -0
  101. package/src/components/SessionRoleIcon.vue +72 -0
  102. package/src/components/SessionSidebar.vue +96 -0
  103. package/src/components/SessionTabBar.vue +42 -47
  104. package/src/components/SettingsMcpTab.vue +318 -22
  105. package/src/components/SettingsModal.vue +185 -56
  106. package/src/components/SettingsReferenceDirsTab.vue +54 -38
  107. package/src/components/SettingsWorkspaceDirsTab.vue +55 -42
  108. package/src/components/SidebarHeader.vue +34 -21
  109. package/src/components/SourcesManager.vue +900 -0
  110. package/src/components/SourcesView.vue +45 -0
  111. package/src/components/StackView.vue +81 -48
  112. package/src/components/SuggestionsPanel.vue +22 -36
  113. package/src/components/SystemFileBanner.vue +106 -0
  114. package/src/components/ThinkingIndicator.vue +41 -0
  115. package/src/components/TodoExplorer.vue +47 -8
  116. package/src/components/todo/TodoKanbanView.vue +6 -1
  117. package/src/components/todo/TodoListView.vue +9 -1
  118. package/src/components/todo/TodoTableView.vue +31 -3
  119. package/src/composables/favicon/conditions.ts +76 -0
  120. package/src/composables/favicon/resolveColor.ts +93 -0
  121. package/src/composables/favicon/types.ts +61 -0
  122. package/src/composables/useAppApi.ts +19 -5
  123. package/src/composables/useChatScroll.ts +5 -5
  124. package/src/composables/useCurrentRole.ts +32 -0
  125. package/src/composables/useDynamicFavicon.ts +58 -77
  126. package/src/composables/useEventListeners.ts +3 -7
  127. package/src/composables/useFaviconState.ts +91 -21
  128. package/src/composables/useFileSelection.ts +2 -1
  129. package/src/composables/useHealth.ts +76 -7
  130. package/src/composables/useLayoutMode.ts +2 -7
  131. package/src/composables/useNewsItems.ts +38 -0
  132. package/src/composables/useNewsReadState.ts +75 -0
  133. package/src/composables/useNotifications.ts +76 -13
  134. package/src/composables/usePendingCalls.ts +11 -1
  135. package/src/composables/useRoles.ts +6 -10
  136. package/src/composables/useRunElapsed.ts +80 -0
  137. package/src/composables/useSessionDerived.ts +21 -5
  138. package/src/composables/useSessionHistory.ts +1 -1
  139. package/src/composables/useSidePanelVisible.ts +25 -0
  140. package/src/composables/useViewLayout.ts +2 -9
  141. package/src/config/apiRoutes.ts +19 -6
  142. package/src/config/historyFilters.ts +30 -0
  143. package/src/config/mcpCatalog.ts +285 -0
  144. package/src/config/mcpTypes.ts +26 -0
  145. package/src/config/roles.ts +19 -51
  146. package/src/config/systemFileDescriptors.ts +170 -0
  147. package/src/config/toolNames.ts +6 -1
  148. package/src/config/workspacePaths.ts +1 -0
  149. package/src/index.css +14 -0
  150. package/src/lang/de.ts +189 -19
  151. package/src/lang/en.ts +187 -19
  152. package/src/lang/es.ts +188 -19
  153. package/src/lang/fr.ts +187 -19
  154. package/src/lang/ja.ts +187 -16
  155. package/src/lang/ko.ts +187 -18
  156. package/src/lang/pt-BR.ts +187 -19
  157. package/src/lang/zh.ts +186 -18
  158. package/src/main.ts +1 -0
  159. package/src/plugins/canvas/View.vue +4 -2
  160. package/src/plugins/canvas/index.ts +3 -2
  161. package/src/plugins/chart/index.ts +3 -2
  162. package/src/plugins/editImage/index.ts +3 -2
  163. package/src/plugins/generateImage/index.ts +3 -2
  164. package/src/plugins/manageRoles/View.vue +8 -3
  165. package/src/plugins/manageRoles/index.ts +3 -2
  166. package/src/plugins/manageSkills/View.vue +13 -12
  167. package/src/plugins/manageSkills/index.ts +3 -2
  168. package/src/plugins/manageSource/View.vue +3 -708
  169. package/src/plugins/manageSource/index.ts +3 -2
  170. package/src/plugins/markdown/View.vue +148 -47
  171. package/src/plugins/markdown/definition.ts +6 -4
  172. package/src/plugins/markdown/index.ts +3 -2
  173. package/src/plugins/presentForm/Preview.vue +99 -0
  174. package/src/plugins/presentForm/View.vue +675 -0
  175. package/src/plugins/presentForm/definition.ts +127 -0
  176. package/src/plugins/presentForm/index.ts +18 -0
  177. package/src/plugins/presentForm/plugin.ts +94 -0
  178. package/src/plugins/presentForm/types.ts +109 -0
  179. package/src/plugins/presentHtml/index.ts +3 -2
  180. package/src/plugins/presentMulmoScript/index.ts +3 -2
  181. package/src/plugins/scheduler/AutomationsPreview.vue +37 -0
  182. package/src/plugins/scheduler/AutomationsView.vue +23 -0
  183. package/src/plugins/scheduler/CalendarView.vue +23 -0
  184. package/src/plugins/scheduler/LegacySchedulerView.vue +32 -0
  185. package/src/plugins/scheduler/TasksTab.vue +66 -4
  186. package/src/plugins/scheduler/View.vue +52 -18
  187. package/src/plugins/scheduler/automationsDefinition.ts +58 -0
  188. package/src/plugins/scheduler/calendarDefinition.ts +46 -0
  189. package/src/plugins/scheduler/index.ts +68 -14
  190. package/src/plugins/scheduler/legacyShape.ts +34 -0
  191. package/src/plugins/spreadsheet/Preview.vue +2 -3
  192. package/src/plugins/spreadsheet/View.vue +23 -46
  193. package/src/plugins/spreadsheet/engine/responseDecoder.ts +2 -1
  194. package/src/plugins/spreadsheet/index.ts +3 -2
  195. package/src/plugins/textResponse/View.vue +17 -40
  196. package/src/plugins/textResponse/utils.ts +25 -0
  197. package/src/plugins/todo/composables/useTodos.ts +3 -1
  198. package/src/plugins/todo/index.ts +3 -2
  199. package/src/plugins/wiki/View.vue +426 -100
  200. package/src/plugins/wiki/index.ts +5 -2
  201. package/src/plugins/wiki/route.ts +14 -5
  202. package/src/router/guards.ts +3 -2
  203. package/src/router/index.ts +34 -22
  204. package/src/router/pageRoutes.ts +23 -0
  205. package/src/tools/index.ts +12 -5
  206. package/src/tools/legacyPluginNames.ts +13 -0
  207. package/src/types/notification.ts +31 -6
  208. package/src/utils/agent/eventDispatch.ts +3 -6
  209. package/src/utils/agent/formatElapsed.ts +37 -0
  210. package/src/utils/agent/request.ts +4 -2
  211. package/src/utils/canvas/sidePanelVisible.ts +19 -0
  212. package/src/utils/dom/scrollIntoViewByTestId.ts +38 -0
  213. package/src/utils/errors.ts +9 -2
  214. package/src/utils/files/filename.ts +24 -0
  215. package/src/utils/filesPreview/schedulerPreview.ts +9 -3
  216. package/src/utils/id.ts +18 -0
  217. package/src/utils/markdown/taskList.ts +175 -0
  218. package/src/utils/mcp/interpolateSpec.ts +97 -0
  219. package/src/utils/notification/dispatch.ts +51 -15
  220. package/src/utils/path/workspaceLinkRouter.ts +18 -0
  221. package/src/utils/session/mergeSessions.ts +5 -0
  222. package/src/utils/sources/filter.ts +69 -0
  223. package/client/assets/index-CubzmCVK.css +0 -2
  224. package/server/workspace/journal/linkRewrite.ts +0 -4
  225. package/src/components/ToolResultsPanel.vue +0 -91
  226. package/src/plugins/scheduler/definition.ts +0 -57
  227. package/src/utils/role/plugins.ts +0 -12
  228. package/src/utils/session/seedRoleDefault.ts +0 -35
package/src/lang/ja.ts CHANGED
@@ -19,20 +19,23 @@ const jaMessages = {
19
19
  saved: "保存しました",
20
20
  noResultsYet: "まだ結果はありません",
21
21
  noImageYet: "画像はまだありません",
22
+ sendChat: "新しいチャットを開始",
22
23
  },
23
24
  sessionTabBar: {
24
25
  newSession: "新しいセッション",
25
- sessionHistory: "セッション履歴",
26
26
  // 日本語は単複同形のため左右同じ文字列だが、vue-i18n の
27
27
  // pluralization API に合わせて `|` 区切りで揃える。
28
28
  activeSessions: "{count} 件のアクティブセッション(エージェント実行中)",
29
29
  unreadReplies: "{count} 件の未読返信",
30
+ unreadDot: "新しい返信",
31
+ origin: {
32
+ scheduler: "スケジューラから開始",
33
+ skill: "スキルから開始",
34
+ bridge: "ブリッジから開始",
35
+ },
30
36
  },
31
37
  chatInput: {
32
38
  placeholder: "タスクを入力、またはファイルをドロップ・ペースト・添付…",
33
- expandEditor: "エディタを広げる",
34
- composeMessage: "メッセージを作成",
35
- sendHint: "Cmd+Enter で送信",
36
39
  send: "送信",
37
40
  attachFile: "ファイルを添付",
38
41
  fileTooLarge: "ファイルが大きすぎます({sizeMB} MB)。上限は 30 MB です。",
@@ -52,8 +55,8 @@ const jaMessages = {
52
55
  noSessions: "セッションはまだありません。",
53
56
  noMatching: "該当するセッションはありません。",
54
57
  running: "実行中",
55
- unread: "未読",
56
58
  noMessages: "(メッセージなし)",
59
+ openRowAria: "セッションを開く: {preview}",
57
60
  },
58
61
  notificationBell: {
59
62
  notifications: "通知",
@@ -65,6 +68,7 @@ const jaMessages = {
65
68
  home: "最新のチャットに移動",
66
69
  toolCallHistory: "ツール呼び出し履歴",
67
70
  settings: "設定",
71
+ settingsGeminiMissing: "設定 — Gemini API キー未設定",
68
72
  },
69
73
  rightSidebar: {
70
74
  toggleSystemPrompt: "システムプロンプトの表示切替",
@@ -112,11 +116,18 @@ const jaMessages = {
112
116
  settingsModal: {
113
117
  title: "設定",
114
118
  tabs: {
119
+ gemini: "Gemini API キー",
115
120
  tools: "許可ツール",
116
121
  mcp: "MCP サーバ",
117
122
  dirs: "ディレクトリ",
118
123
  refs: "参照ディレクトリ",
119
124
  },
125
+ // `<i18n-t>` スロット — `envKey` / `envFile` は SettingsModal.vue で
126
+ // インラインの `<code>` として描画されるため、変数名とファイル名は
127
+ // 翻訳せずそのまま残します。
128
+ geminiRequired: "画像生成には {envKey} が必要です。{envFile} に追加してアプリを再起動してください。",
129
+ geminiAskButton: "Claude に質問",
130
+ geminiAskMessage: "このアプリにおける Gemini API キーの役割は何ですか?",
120
131
  toolNamesLabel: "ツール名",
121
132
  invalidToolNamesPrefix: "次の項目は標準的ではないようです(期待される接頭辞",
122
133
  invalidToolNamesSuffix: "):",
@@ -125,13 +136,29 @@ const jaMessages = {
125
136
  cannotSaveTooltip: "設定の読み込みに成功するまで保存できません",
126
137
  saving: "保存中…",
127
138
  loadingLabel: "読み込み中…",
139
+ unsavedMarker: "●",
140
+ unsavedToolsConfirm: "許可ツールに未保存の変更があります。閉じてもよろしいですか?",
141
+ unsavedMcpDraftConfirm: "MCP サーバーの下書きが残っています。閉じてもよろしいですか?",
142
+ mcpSaveFailed: "MCP サーバーの変更を保存できませんでした。",
128
143
  },
129
144
  canvasViewToggle: {
130
- stackViewTooltip: "スタック表示・クリックで Single に切替 (⌘1)",
131
- singleViewTooltip: "Single 表示・クリックで Stack に切替 (⌘2)",
145
+ stackViewTooltip: "スタック表示・クリックで Single に切替",
146
+ singleViewTooltip: "Single 表示・クリックで Stack に切替",
132
147
  switchToSingle: "Single 表示に切替",
133
148
  switchToStack: "Stack 表示に切替",
134
149
  },
150
+ sessionHistoryToggle: {
151
+ showTooltip: "左側にセッション履歴パネルを表示",
152
+ hideTooltip: "セッション履歴パネルを閉じる",
153
+ show: "セッション履歴を表示",
154
+ hide: "セッション履歴を閉じる",
155
+ },
156
+ sessionHistoryExpand: {
157
+ expandTooltip: "セッション履歴パネルを全画面表示",
158
+ collapseTooltip: "セッション履歴パネルを元のサイズに戻す",
159
+ expand: "セッション履歴を拡大",
160
+ collapse: "セッション履歴を縮小",
161
+ },
135
162
  settingsWorkspaceDirs: {
136
163
  explanation: "{dataDir} および {artifactsDir} 配下でファイルを整理するためのカスタムディレクトリ。Claude がファイル保存先を振り分けるために使用します。",
137
164
  noEntries: "カスタムディレクトリは未設定です。",
@@ -156,12 +183,15 @@ const jaMessages = {
156
183
  errLabelConflict: "ラベル「{label}」は既に使用されています",
157
184
  },
158
185
  pluginLauncher: {
159
- todos: { label: "Todo", title: "Todo を開く (⌘4)" },
160
- scheduler: { label: "スケジュール", title: "スケジュールを開く (⌘5)" },
161
- wiki: { label: "Wiki", title: "Wiki を開く (⌘6)" },
162
- skills: { label: "スキル", title: "スキルを開く (⌘7)" },
163
- roles: { label: "ロール", title: "ロールを開く (⌘8)" },
164
- files: { label: "ファイル", title: "ワークスペースファイルを開く (⌘3)" },
186
+ todos: { label: "Todo", title: "Todo を開く" },
187
+ calendar: { label: "カレンダー", title: "カレンダーを開く" },
188
+ automations: { label: "自動化", title: "自動化を開く" },
189
+ wiki: { label: "Wiki", title: "Wiki を開く" },
190
+ sources: { label: "ソース", title: "情報ソースを開く" },
191
+ news: { label: "ニュース", title: "ニュースビューアを開く" },
192
+ skills: { label: "スキル", title: "スキルを開く" },
193
+ roles: { label: "ロール", title: "ロールを開く" },
194
+ files: { label: "ファイル", title: "ワークスペースファイルを開く" },
165
195
  },
166
196
  fileContentHeader: {
167
197
  showRendered: "レンダリング表示",
@@ -201,6 +231,78 @@ const jaMessages = {
201
231
  errBadName: "名前は小文字で始まり、[a-z0-9_-] のみ使用できます。",
202
232
  errIdExists: "サーバ ID「{id}」は既に存在します。",
203
233
  errBadHttpUrl: "HTTP URL は http:// または https:// で始める必要があります",
234
+ pendingEntryWarning: "保留中の MCP サーバ設定を確定またはキャンセルしてください。",
235
+ customHeading: "カスタムサーバ",
236
+ catalog: {
237
+ heading: "登録済み MCP サーバ",
238
+ audience: { general: "🟢 一般用途", developer: "🔵 開発者向け" },
239
+ risk: { low: "低", medium: "中", high: "高" },
240
+ upstream: "📦 ソース",
241
+ setupGuide: "📚 セットアップ",
242
+ entry: {
243
+ memory: {
244
+ displayName: "メモリ",
245
+ description: "セッションを跨いで会話の内容を覚えます。",
246
+ },
247
+ sequentialThinking: {
248
+ displayName: "順序立てた思考",
249
+ description: "複雑な問題を段階的に考える支援。",
250
+ },
251
+ context7: {
252
+ displayName: "Context7(ライブラリドキュメント)",
253
+ description: "主要ライブラリの最新ドキュメントを取得 — モデルの学習データ時点を超える情報源。",
254
+ },
255
+ deepwiki: {
256
+ displayName: "DeepWiki(GitHub リポジトリ Wiki)",
257
+ description: "GitHub リポジトリについて質問すると、Wiki スタイルの構造化された回答が返ります。",
258
+ },
259
+ notion: {
260
+ displayName: "Notion",
261
+ description: "Notion ワークスペースを読み書き — ページ・データベース・検索に対応。",
262
+ field: {
263
+ apiKey: {
264
+ label: "Notion インテグレーショントークン",
265
+ help: "Notion インテグレーションを作成し Internal Integration Secret をコピーしてください。🔑 でインテグレーション設定ページを開けます。",
266
+ },
267
+ },
268
+ },
269
+ slack: {
270
+ displayName: "Slack",
271
+ description: "Slack ワークスペースのチャンネル一覧、メッセージ送信、履歴検索。",
272
+ field: {
273
+ botToken: {
274
+ label: "Bot トークン",
275
+ help: "Slack App → OAuth & Permissions → Bot User OAuth Token。xoxb- で始まります。",
276
+ },
277
+ teamId: {
278
+ label: "チーム / ワークスペース ID",
279
+ help: "team.info を呼び出すかワークスペース URL から確認 — T01ABC23DEF のような形式です。",
280
+ },
281
+ },
282
+ },
283
+ googleMaps: {
284
+ displayName: "Google Maps",
285
+ description: "場所の検索、ルート案内、位置情報の詳細取得。",
286
+ field: {
287
+ apiKey: {
288
+ label: "Google Maps API キー",
289
+ help: "Google Cloud Console → APIs & Services → Credentials → API キー作成。Places + Directions を有効化してください。",
290
+ },
291
+ },
292
+ },
293
+ weatherOpenMeteo: {
294
+ displayName: "天気予報(Open-Meteo)",
295
+ description: "世界各地の天気予報と現在の気象情報 — API キー不要で無料利用可能。",
296
+ },
297
+ },
298
+ config: {
299
+ howToGet: "取得方法",
300
+ install: "インストール",
301
+ errMissingRequired: "必須項目が未入力です: {fields}",
302
+ requiredMarker: "*",
303
+ requiredAria: "必須",
304
+ },
305
+ },
204
306
  },
205
307
  pluginScheduler: {
206
308
  prev: "前へ",
@@ -221,10 +323,12 @@ const jaMessages = {
221
323
  update: "更新",
222
324
  editSource: "ソースを編集",
223
325
  applyChanges: "変更を適用",
326
+ yamlParseError: "YAML を解析できません — 'title' が含まれているか確認してください",
224
327
  propLabel: "{key}:",
225
328
  moreCount: "他 {count} 件",
226
329
  previewIcon: "📅",
227
330
  previewUpcoming: "今後 {count} 件",
331
+ previewAutomations: "オートメーション {count} 件",
228
332
  previewMore: "+ {count} 件…",
229
333
  },
230
334
  pluginSchedulerTasks: {
@@ -243,6 +347,9 @@ const jaMessages = {
243
347
  runFailed: "実行失敗: {error}",
244
348
  toggleFailed: "切替失敗: {error}",
245
349
  deleteFailed: "削除失敗: {error}",
350
+ detailsToggle: "詳細を表示",
351
+ promptLabel: "プロンプト",
352
+ roleLabel: "ロール",
246
353
  },
247
354
  pluginCanvas: {
248
355
  undo: "元に戻す",
@@ -260,6 +367,7 @@ const jaMessages = {
260
367
  clearFilters: "すべてのフィルタをクリア",
261
368
  deleteItem: "項目を削除",
262
369
  apiError: "⚠ Todo の更新に失敗: {error}",
370
+ loadFailed: "Todo の読み込みに失敗しました",
263
371
  heading: "Todo リスト",
264
372
  completedRatio: "{done}/{total} 完了",
265
373
  filter: "フィルタ:",
@@ -316,9 +424,12 @@ const jaMessages = {
316
424
  deleteColumn: "列を削除",
317
425
  columnActions: "列のアクション",
318
426
  addCard: "+ カードを追加",
427
+ openCardAria: "タスクを開く: {task}",
319
428
  },
320
429
  todoTableList: {
321
430
  noMatchingFilter: "現在のフィルタに一致する項目はありません",
431
+ sortColumnAria: "{column} で並べ替え",
432
+ expandRowAria: "タスクを展開: {task}",
322
433
  },
323
434
  pluginWiki: {
324
435
  backToIndex: "インデックスに戻る",
@@ -330,7 +441,26 @@ const jaMessages = {
330
441
  empty: "Wiki は空です。Wiki Manager にソースの取り込みを依頼してください。",
331
442
  previewMore: "+ {count} 件…",
332
443
  chatPlaceholder: "このページについて質問…",
333
- chatSend: "このページについて新しいチャットを開始",
444
+ emptyPage: "「{title}」のページはまだありません。",
445
+ emptyContent: "「{title}」のページは存在しますが、内容がありません。",
446
+ createPage: "この Wiki ページの作成をお願いする",
447
+ updatePage: "この Wiki ページの更新をお願いする",
448
+ tagFilterAll: "すべて",
449
+ noMatches: "#{tag} タグのページがありません",
450
+ lintChat: "Wiki を Lint",
451
+ taskCountMismatch: "Wiki ソースと描画結果でタスク数が一致しないため、ファイル破損を避けるためトグル操作を中止しました。",
452
+ },
453
+ pluginPresentForm: {
454
+ fallbackTitle: "フォーム",
455
+ fieldCount: "{count} 項目",
456
+ submitted: "送信済み",
457
+ errorSummary: "次のエラーを修正してください",
458
+ requiredMarker: "*",
459
+ selectOption: "選択してください",
460
+ charactersCount: "{current} / {max} 文字",
461
+ charactersCountNoMax: "{current} 文字",
462
+ submit: "送信",
463
+ progress: "必須項目 {total} 件中 {filled} 件入力済み",
334
464
  },
335
465
  pluginPresentHtml: {
336
466
  saveAsPdf: "PDF として保存(印刷ダイアログを開きます)",
@@ -339,9 +469,26 @@ const jaMessages = {
339
469
  hideSource: "ソースを隠す <>",
340
470
  showSource: "ソースを表示 <>",
341
471
  },
472
+ pluginNews: {
473
+ title: "ニュース",
474
+ itemCount: "未読 {unread} / 全 {total}",
475
+ filterAll: "すべて",
476
+ filterUnread: "未読",
477
+ allSources: "すべて",
478
+ markAllRead: "すべて既読にする",
479
+ selectPrompt: "記事を選択してください。",
480
+ empty: "表示できるニュースはありません。",
481
+ unread: "未読",
482
+ openOriginal: "元の記事を開く",
483
+ noBody: "本文がありません — 元の記事を開いてください。",
484
+ bodyError: "本文の取得に失敗: {error}",
485
+ loadError: "ニュースの取得に失敗: {error}",
486
+ chatPlaceholder: "この記事について何でも質問",
487
+ },
342
488
  pluginManageSource: {
343
489
  titlePlaceholder: "タイトル(省略可)",
344
490
  heading: "情報ソース",
491
+ chatPlaceholder: "情報ソースについて質問…",
345
492
  sourceCount: "{count} 件",
346
493
  addButton: "追加",
347
494
  rebuildNow: "今すぐ再構築",
@@ -388,6 +535,26 @@ const jaMessages = {
388
535
  flashPresetAlreadyRegistered: "「{label}」のソースはすべて登録済みです。",
389
536
  flashPresetRegistered: "「{label}」から {count} 件のソースを登録しました。取得中…",
390
537
  flashPresetPartial: "登録 {ok}/{total} 件。エラー: {errors}",
538
+ errPrimaryRequired: "URL / クエリを入力してください。",
539
+ errRssUrlProtocol: "RSS フィード URL は http:// または https:// で始めてください。",
540
+ errRssUrlInvalid: "RSS フィード URL が有効な URL ではありません。",
541
+ errRssUrlHost: "RSS フィード URL にはホスト名が必要です。",
542
+ errGithubInvalid: "GitHub リポジトリの URL (https://github.com/owner/repo) または owner/repo を入力してください。",
543
+ errUnsupportedKind: "未対応の fetcher 種別です。",
544
+ initialLoading: "ソース一覧を読み込み中…",
545
+ initialLoadFailed: "ソース一覧の読み込みに失敗しました。",
546
+ retryLabel: "再試行",
547
+ filter: {
548
+ all: "すべて",
549
+ rss: "RSS",
550
+ github: "GitHub",
551
+ arxiv: "arXiv",
552
+ scheduleDaily: "毎日",
553
+ scheduleWeekly: "毎週",
554
+ scheduleManual: "手動",
555
+ noMatching: "現在のフィルタに一致するソースはありません。",
556
+ clearFilter: "フィルタを解除",
557
+ },
391
558
  },
392
559
  pluginManageSkills: {
393
560
  deleteProjectSkill: "このプロジェクト限定スキルを削除",
@@ -492,6 +659,7 @@ const jaMessages = {
492
659
  saveError: "⚠ 保存失敗: {error}",
493
660
  copyLabel: "コピー",
494
661
  copiedLabel: "コピーしました!",
662
+ taskCountMismatch: "Markdown ソースと描画結果でタスク数が一致しないため、ファイル破損を避けるためトグル操作を中止しました。",
495
663
  },
496
664
  pluginTextResponse: {
497
665
  pdf: "PDF",
@@ -503,7 +671,6 @@ const jaMessages = {
503
671
  cancel: "キャンセル",
504
672
  },
505
673
  pluginSpreadsheet: {
506
- previewLabel: "📊 スプレッドシート",
507
674
  previewUntitled: "スプレッドシート",
508
675
  previewSheets: "{count} シート",
509
676
  untitled: "スプレッドシート",
@@ -515,13 +682,17 @@ const jaMessages = {
515
682
  noData: "スプレッドシートのデータがありません",
516
683
  editData: "スプレッドシートデータを編集",
517
684
  applyChanges: "変更を適用",
685
+ dataMustBeArray: "データはシートの配列である必要があります",
686
+ loadFailed: "スプレッドシートの読み込みに失敗: {error}",
687
+ invalidJsonAlert: "不正な JSON 形式です: {error}",
688
+ unknownError: "不明なエラー",
518
689
  update: "更新",
519
690
  stringType: "文字列",
520
691
  formulaType: "数式",
521
692
  },
522
693
  app: {
523
- geminiRequired: "画像生成には {envKey} が必要です。{envFile} に追加してアプリを再起動してください。",
524
694
  startConversation: "会話を開始してください",
695
+ thinking: "考え中…",
525
696
  },
526
697
  suggestionsPanel: {
527
698
  suggestions: "候補",