mulmoclaude 0.6.4 → 0.7.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/bin/mulmoclaude.js +1 -1
- package/client/assets/{html2canvas-CDGcmOD3-XVrO-eyz.js → html2canvas-CDGcmOD3-CKJ6vKPo.js} +1 -1
- package/client/assets/{index-zZIqEbNX.js → index-BG_JJcKI.js} +193 -197
- package/client/assets/index-DCoo3kpR.css +2 -0
- package/client/assets/{index.es-DqtpmBm8-DHT6q10o.js → index.es-DqtpmBm8-DFXjJgCa.js} +1 -1
- package/client/assets/lib-Dpph7PBN.js +114 -0
- package/client/assets/marp-cCGismx0.js +3452 -0
- package/client/assets/schemas-DuYzyHQc.js +64 -0
- package/client/index.html +5 -4
- package/package.json +7 -5
- package/server/agent/backend/claude-code.ts +44 -10
- package/server/agent/backend/fake-echo.ts +5 -1
- package/server/agent/config.ts +49 -12
- package/server/agent/mcp-server.ts +13 -2
- package/server/agent/mcp-tools/handlePermission.ts +115 -0
- package/server/agent/mcp-tools/index.ts +2 -1
- package/server/agent/mcp-tools/x.ts +18 -2
- package/server/agent/prompt.ts +3 -45
- package/server/api/csrfGuard.ts +122 -32
- package/server/api/routes/collections.ts +320 -0
- package/server/api/routes/config.ts +45 -0
- package/server/api/routes/feeds.ts +70 -0
- package/server/api/routes/files.ts +167 -0
- package/server/api/routes/marp-themes.ts +15 -0
- package/server/api/routes/mulmo-script.ts +139 -0
- package/server/api/routes/pdf.ts +108 -0
- package/server/api/routes/plugins.ts +10 -0
- package/server/api/routes/shortcuts.ts +49 -0
- package/server/api/routes/wiki.ts +35 -0
- package/server/build/dispatcher.mjs +40 -22
- package/server/events/notifications.ts +14 -9
- package/server/index.ts +49 -14
- package/server/plugins/preset-list.ts +18 -10
- package/server/plugins/preset-loader.ts +11 -4
- package/server/prompts/index.ts +1 -3
- package/server/prompts/system/system.md +7 -2
- package/server/system/env.ts +14 -0
- package/server/utils/clientDir.ts +7 -0
- package/server/utils/files/index.ts +0 -2
- package/server/utils/files/shortcuts-io.ts +63 -0
- package/server/utils/slug.ts +3 -4
- package/server/workspace/billing-migration.ts +69 -0
- package/server/workspace/collections/delete.ts +186 -0
- package/server/workspace/collections/discovery.ts +730 -0
- package/server/workspace/collections/index.ts +23 -0
- package/server/workspace/collections/io.ts +287 -0
- package/server/workspace/collections/notifications.ts +404 -0
- package/server/workspace/collections/paths.ts +125 -0
- package/server/workspace/collections/spawn.ts +213 -0
- package/server/workspace/collections/templatePath.ts +36 -0
- package/server/workspace/collections/types.ts +334 -0
- package/server/workspace/collections/watcher.ts +398 -0
- package/server/workspace/feeds/engine.ts +135 -0
- package/server/workspace/feeds/fetch/httpClient.ts +127 -0
- package/server/workspace/feeds/fetch/rssParser.ts +117 -0
- package/server/workspace/feeds/index.ts +8 -0
- package/server/workspace/feeds/ingestTypes.ts +66 -0
- package/server/workspace/feeds/pathResolver.ts +74 -0
- package/server/workspace/feeds/paths.ts +30 -0
- package/server/workspace/feeds/projectItem.ts +92 -0
- package/server/workspace/feeds/registry.ts +43 -0
- package/server/workspace/feeds/retrievers/httpJson.ts +19 -0
- package/server/workspace/feeds/retrievers/index.ts +27 -0
- package/server/workspace/feeds/retrievers/registerAll.ts +5 -0
- package/server/workspace/feeds/retrievers/rss.ts +24 -0
- package/server/workspace/feeds/state.ts +55 -0
- package/server/workspace/helps/billing-clients-worklog.md +215 -0
- package/server/workspace/helps/billing-invoice.md +457 -0
- package/server/workspace/helps/collection-skills.md +664 -0
- package/server/workspace/helps/feeds.md +110 -0
- package/server/workspace/helps/index.md +9 -3
- package/server/workspace/helps/portfolio-tracker.md +211 -0
- package/server/workspace/helps/presentation-deck.md +828 -0
- package/server/workspace/helps/todo-collection.md +140 -0
- package/server/workspace/helps/vocabulary.md +106 -0
- package/server/workspace/hooks/handlers/skillBridge.ts +101 -40
- package/server/workspace/marp-themes.ts +46 -0
- package/server/workspace/paths.ts +46 -11
- package/server/workspace/skills-preset/mc-manage-skills/SKILL.md +13 -0
- package/server/workspace/skills-preset/mc-wiki-deep-lint/SKILL.md +108 -0
- package/server/workspace/skills-preset/mc-wiki-health-check/SKILL.md +61 -0
- package/server/workspace/skills-preset/mc-wiki-ingest/SKILL.md +182 -0
- package/server/workspace/skills-preset/mc-wiki-promote/SKILL.md +175 -0
- package/server/workspace/skills-preset.ts +376 -2
- package/server/workspace/wiki-pages/io.ts +34 -2
- package/server/workspace/workspace.ts +20 -1
- package/src/App.vue +70 -41
- package/src/components/BackendOfflineBanner.vue +56 -0
- package/src/components/ChatInput.vue +72 -6
- package/src/components/CollectionCalendarView.vue +243 -0
- package/src/components/CollectionDashboardView.vue +181 -0
- package/src/components/CollectionDayView.vue +308 -0
- package/src/components/CollectionEmbedView.vue +69 -0
- package/src/components/CollectionKanbanView.vue +196 -0
- package/src/components/CollectionRecordModal.vue +93 -0
- package/src/components/CollectionRecordPanel.vue +567 -0
- package/src/components/CollectionView.vue +1748 -0
- package/src/components/CollectionsIndexView.vue +152 -0
- package/src/components/ConfirmModal.vue +344 -0
- package/src/components/FeedsView.vue +225 -0
- package/src/components/FileContentRenderer.vue +122 -30
- package/src/components/FileTree.vue +218 -2
- package/src/components/FileTreePane.vue +2 -0
- package/src/components/FilesView.vue +95 -17
- package/src/components/PinToggle.vue +52 -0
- package/src/components/PluginLauncher.vue +97 -37
- package/src/components/RightSidebar.vue +74 -3
- package/src/components/RolesView.vue +1 -1
- package/src/components/SettingsModal.vue +146 -72
- package/src/components/SlashCommandMenu.vue +56 -0
- package/src/components/StackView.vue +128 -48
- package/src/components/collectionEmbed.ts +29 -0
- package/src/components/collectionTypes.ts +177 -0
- package/src/composables/collections/useCollectionRendering.ts +350 -0
- package/src/composables/useConfirm.ts +70 -0
- package/src/composables/useFileTree.ts +35 -3
- package/src/composables/useImeAwareEnter.ts +14 -0
- package/src/composables/usePdfDownload.ts +6 -1
- package/src/composables/useShortcuts.ts +163 -0
- package/src/composables/useSlashCommandMenu.ts +138 -0
- package/src/config/apiRoutes.ts +46 -13
- package/src/config/createFilePolicy.ts +82 -0
- package/src/config/roles.ts +46 -47
- package/src/config/systemFileDescriptors.ts +0 -30
- package/src/config/toolNames.ts +1 -5
- package/src/config/workspacePaths.ts +4 -9
- package/src/lang/de.ts +154 -221
- package/src/lang/en.ts +153 -218
- package/src/lang/es.ts +154 -219
- package/src/lang/fr.ts +155 -221
- package/src/lang/index.ts +55 -0
- package/src/lang/ja.ts +153 -219
- package/src/lang/ko.ts +153 -218
- package/src/lang/pt-BR.ts +154 -219
- package/src/lang/zh.ts +152 -218
- package/src/lib/vue-i18n.ts +15 -45
- package/src/lib/wiki-page/graph.ts +108 -0
- package/src/main.ts +2 -5
- package/src/plugins/_generated/metas.ts +2 -8
- package/src/plugins/_generated/registrations.ts +2 -4
- package/src/plugins/_generated/server-bindings.ts +5 -12
- package/src/plugins/manageSkills/View.vue +36 -68
- package/src/plugins/manageSkills/presetDetection.ts +25 -0
- package/src/plugins/markdown/MarpView.vue +301 -0
- package/src/plugins/markdown/Preview.vue +26 -3
- package/src/plugins/markdown/View.vue +230 -1
- package/src/plugins/markdown/definition.ts +21 -1
- package/src/plugins/presentCollection/Preview.vue +30 -0
- package/src/plugins/presentCollection/View.vue +78 -0
- package/src/plugins/presentCollection/definition.ts +30 -0
- package/src/plugins/presentCollection/index.ts +25 -0
- package/src/plugins/presentCollection/meta.ts +15 -0
- package/src/plugins/presentCollection/plugin.ts +39 -0
- package/src/plugins/presentCollection/types.ts +13 -0
- package/src/plugins/presentForm/View.vue +56 -6
- package/src/plugins/presentForm/types.ts +3 -3
- package/src/plugins/presentMulmoScript/View.vue +252 -5
- package/src/plugins/presentMulmoScript/helpers.ts +18 -0
- package/src/plugins/presentMulmoScript/meta.ts +11 -0
- package/src/plugins/scheduler/AutomationsView.vue +13 -11
- package/src/plugins/scheduler/automationsDefinition.ts +7 -10
- package/src/plugins/scheduler/automationsMeta.ts +27 -0
- package/src/plugins/scheduler/index.ts +19 -38
- package/src/plugins/wiki/View.vue +120 -27
- package/src/plugins/wiki/components/WikiGraphView.vue +75 -0
- package/src/plugins/wiki/components/WikiPageBody.vue +18 -0
- package/src/plugins/wiki/index.ts +6 -0
- package/src/plugins/wiki/route.ts +8 -1
- package/src/router/index.ts +31 -34
- package/src/router/pageRoutes.ts +2 -7
- package/src/tools/types.ts +4 -3
- package/src/types/notification.ts +5 -9
- package/src/types/session.ts +11 -0
- package/src/types/shortcuts.ts +37 -0
- package/src/utils/agent/eventDispatch.ts +4 -0
- package/src/utils/api.ts +47 -1
- package/src/utils/canvas/stackGrouping.ts +96 -0
- package/src/utils/chat/permalink.ts +20 -0
- package/src/utils/collections/actionVisible.ts +55 -0
- package/src/utils/collections/calendarGrid.ts +328 -0
- package/src/utils/collections/collectionViewMode.ts +42 -0
- package/src/utils/collections/derivedFormula.ts +364 -0
- package/src/utils/collections/draft.ts +160 -0
- package/src/utils/collections/enumColors.ts +130 -0
- package/src/utils/collections/itemLabel.ts +42 -0
- package/src/utils/confirmDelete.ts +13 -0
- package/src/utils/markdown/marpAspect.ts +28 -0
- package/src/utils/markdown/marpCustomSize.ts +120 -0
- package/src/utils/markdown/marpDetect.ts +15 -0
- package/src/utils/markdown/marpTheme.ts +109 -0
- package/src/utils/markdown/wikiEmbedHandlers.ts +1 -1
- package/src/utils/path/workspaceLinkRouter.ts +126 -9
- package/src/utils/session/sessionEntries.ts +1 -0
- package/src/utils/session/sessionFactory.ts +1 -0
- package/src/utils/session/sessionHelpers.ts +6 -1
- package/client/assets/index-CyBr8Mkr.css +0 -2
- package/server/api/routes/encore.ts +0 -55
- package/server/api/routes/news.ts +0 -133
- package/server/api/routes/sources.ts +0 -550
- package/server/encore/INVARIANTS.md +0 -272
- package/server/encore/boot.ts +0 -39
- package/server/encore/closure.ts +0 -36
- package/server/encore/cycle.ts +0 -276
- package/server/encore/dispatch.ts +0 -103
- package/server/encore/handlers/amend.ts +0 -99
- package/server/encore/handlers/appendNote.ts +0 -74
- package/server/encore/handlers/defineEncore.ts +0 -42
- package/server/encore/handlers/listTickets.ts +0 -107
- package/server/encore/handlers/markStepDone.ts +0 -41
- package/server/encore/handlers/markTargetSkipped.ts +0 -33
- package/server/encore/handlers/query.ts +0 -138
- package/server/encore/handlers/recordValues.ts +0 -44
- package/server/encore/handlers/resolveNotification.ts +0 -121
- package/server/encore/handlers/setup.ts +0 -81
- package/server/encore/handlers/shared.ts +0 -137
- package/server/encore/handlers/snooze.ts +0 -87
- package/server/encore/handlers/startObligationChat.ts +0 -64
- package/server/encore/handlers/startSetupChat.ts +0 -50
- package/server/encore/lock.ts +0 -61
- package/server/encore/notifier.ts +0 -123
- package/server/encore/obligation.ts +0 -25
- package/server/encore/paths.ts +0 -78
- package/server/encore/reconcile.ts +0 -661
- package/server/encore/tick.ts +0 -191
- package/server/encore/yaml-fm.ts +0 -63
- package/server/prompts/system/news-concierge.md +0 -24
- package/server/prompts/system/sources-context.md +0 -16
- package/server/utils/files/encore-io.ts +0 -111
- package/server/workspace/helps/encore-dsl.md +0 -482
- package/server/workspace/helps/sources.md +0 -42
- package/server/workspace/news/reader.ts +0 -247
- package/server/workspace/skills-preset/mc-manage-sources/SKILL.md +0 -106
- package/server/workspace/sources/arxivDiscovery.ts +0 -182
- package/server/workspace/sources/classifier.ts +0 -268
- package/server/workspace/sources/fetchers/arxiv.ts +0 -170
- package/server/workspace/sources/fetchers/github.ts +0 -106
- package/server/workspace/sources/fetchers/githubIssues.ts +0 -210
- package/server/workspace/sources/fetchers/githubReleases.ts +0 -186
- package/server/workspace/sources/fetchers/index.ts +0 -71
- package/server/workspace/sources/fetchers/registerAll.ts +0 -15
- package/server/workspace/sources/fetchers/rss.ts +0 -141
- package/server/workspace/sources/fetchers/rssParser.ts +0 -295
- package/server/workspace/sources/httpFetcher.ts +0 -230
- package/server/workspace/sources/interests.ts +0 -120
- package/server/workspace/sources/paths.ts +0 -110
- package/server/workspace/sources/pipeline/dedup.ts +0 -60
- package/server/workspace/sources/pipeline/fetch.ts +0 -182
- package/server/workspace/sources/pipeline/index.ts +0 -301
- package/server/workspace/sources/pipeline/notify.ts +0 -80
- package/server/workspace/sources/pipeline/plan.ts +0 -68
- package/server/workspace/sources/pipeline/summarize.ts +0 -189
- package/server/workspace/sources/pipeline/write.ts +0 -185
- package/server/workspace/sources/rateLimiter.ts +0 -148
- package/server/workspace/sources/registry.ts +0 -304
- package/server/workspace/sources/robots.ts +0 -271
- package/server/workspace/sources/sourceState.ts +0 -142
- package/server/workspace/sources/taxonomy.ts +0 -74
- package/server/workspace/sources/types.ts +0 -153
- package/server/workspace/sources/urls.ts +0 -112
- package/src/components/NewsView.vue +0 -267
- package/src/components/SourcesManager.vue +0 -915
- package/src/components/SourcesView.vue +0 -45
- package/src/components/TodoExplorer.vue +0 -423
- package/src/components/todo/TodoAddDialog.vue +0 -135
- package/src/components/todo/TodoEditDialog.vue +0 -51
- package/src/components/todo/TodoEditPanel.vue +0 -117
- package/src/components/todo/TodoKanbanView.vue +0 -290
- package/src/components/todo/TodoListView.vue +0 -88
- package/src/components/todo/TodoTableView.vue +0 -210
- package/src/composables/useNewsItems.ts +0 -38
- package/src/composables/useNewsReadState.ts +0 -75
- package/src/plugins/encore/EncoreDashboard.vue +0 -504
- package/src/plugins/encore/EncoreRedirect.vue +0 -116
- package/src/plugins/encore/View.vue +0 -36
- package/src/plugins/encore/defineEncoreDefinition.ts +0 -74
- package/src/plugins/encore/defineEncoreMeta.ts +0 -13
- package/src/plugins/encore/index.ts +0 -93
- package/src/plugins/encore/manageEncoreDefinition.ts +0 -100
- package/src/plugins/encore/manageEncoreMeta.ts +0 -36
- package/src/plugins/manageSource/Preview.vue +0 -33
- package/src/plugins/manageSource/View.vue +0 -13
- package/src/plugins/manageSource/definition.ts +0 -66
- package/src/plugins/manageSource/index.ts +0 -75
- package/src/plugins/manageSource/meta.ts +0 -21
- package/src/plugins/scheduler/CalendarView.vue +0 -23
- package/src/plugins/scheduler/Preview.vue +0 -73
- package/src/plugins/scheduler/View.vue +0 -608
- package/src/plugins/scheduler/calendarDefinition.ts +0 -47
- package/src/plugins/scheduler/calendarMeta.ts +0 -28
- package/src/plugins/scheduler/multiDayHelpers.ts +0 -95
- package/src/plugins/scheduler/viewModes.ts +0 -26
- package/src/types/encore-dsl/at-expression.ts +0 -120
- package/src/types/encore-dsl/at-resolver.ts +0 -32
- package/src/types/encore-dsl/cadence.ts +0 -289
- package/src/types/encore-dsl/schema.ts +0 -288
- package/src/utils/filesPreview/schedulerPreview.ts +0 -44
- package/src/utils/filesPreview/todoPreview.ts +0 -51
- package/src/utils/sources/filter.ts +0 -69
- /package/client/assets/{JsonEditor-D6WBWLoa.js → JsonEditor-C_RDoefj.js} +0 -0
- /package/client/assets/{chunk-D8eiyYIV-LcKZGJv5.js → chunk-D8eiyYIV-BY16KEZc.js} +0 -0
- /package/client/assets/{purify.es-Fx1Nqyry-Dwtk-9WZ.js → purify.es-Fx1Nqyry-BufT4RJl.js} +0 -0
- /package/client/assets/{typeof-DBp4T-Ny-CSr8wx1e.js → typeof-DBp4T-Ny-z2wCIsir.js} +0 -0
package/src/lang/en.ts
CHANGED
|
@@ -30,6 +30,8 @@ const enMessages = {
|
|
|
30
30
|
dismiss: "Dismiss",
|
|
31
31
|
add: "Add",
|
|
32
32
|
remove: "Remove",
|
|
33
|
+
yes: "Yes",
|
|
34
|
+
no: "No",
|
|
33
35
|
saving: "Saving...",
|
|
34
36
|
saved: "Saved",
|
|
35
37
|
noResultsYet: "No results yet",
|
|
@@ -52,10 +54,12 @@ const enMessages = {
|
|
|
52
54
|
chatInput: {
|
|
53
55
|
placeholder: "Message Claude…",
|
|
54
56
|
send: "Send",
|
|
57
|
+
stop: "Stop",
|
|
55
58
|
attachFile: "Attach file",
|
|
56
59
|
fileTooLarge: "File too large ({sizeMB} MB). Maximum is 30 MB.",
|
|
57
60
|
unsupportedFileType: "File type not supported. Accepted: images, PDF, DOCX, XLSX, PPTX, text files.",
|
|
58
61
|
attachImageFailed: "Failed to attach image: {error}",
|
|
62
|
+
stopFailed: "Failed to stop the run: {error}",
|
|
59
63
|
dropHint: "Drop file to attach",
|
|
60
64
|
},
|
|
61
65
|
sessionHistoryPanel: {
|
|
@@ -108,6 +112,15 @@ const enMessages = {
|
|
|
108
112
|
notFound: "{command} not found — related features are disabled. Install {command} and restart MulmoClaude to enable them.",
|
|
109
113
|
notResponding: "{command} is installed but not running — related features are disabled. Start {command} and restart MulmoClaude to enable them.",
|
|
110
114
|
},
|
|
115
|
+
billingMigration: {
|
|
116
|
+
title: "Invoicing moved to on-demand setup",
|
|
117
|
+
body: "The bundled clients, worklog, invoice, and profile collections were removed from your dashboard, but your data is safe and untouched. Ask to set up client & time tracking, then invoicing, to recreate them — your existing records will reappear.",
|
|
118
|
+
},
|
|
119
|
+
backendOffline: {
|
|
120
|
+
title: "Can't reach the backend",
|
|
121
|
+
body: "The MulmoClaude server may not be running. Check the dev server, then retry.",
|
|
122
|
+
retry: "Retry",
|
|
123
|
+
},
|
|
111
124
|
pluginErrorBoundary: {
|
|
112
125
|
title: "Plugin {pkg} crashed",
|
|
113
126
|
subtitle: "The plugin failed to render. The error has been logged to the console.",
|
|
@@ -127,11 +140,16 @@ const enMessages = {
|
|
|
127
140
|
copiedMarkdown: "Copied!",
|
|
128
141
|
},
|
|
129
142
|
rightSidebar: {
|
|
143
|
+
permalink: "Selected message permalink",
|
|
144
|
+
copyPermalink: "Copy permalink to selected message",
|
|
145
|
+
copiedPermalink: "Copied!",
|
|
130
146
|
toggleSystemPrompt: "Toggle system prompt",
|
|
131
147
|
systemPrompt: "System Prompt",
|
|
132
148
|
availableTools: "Available Tools",
|
|
133
149
|
toggleToolDescription: "Toggle tool description",
|
|
134
150
|
toolCallHistory: "Tool Call History",
|
|
151
|
+
copyHistory: "Copy tool call history",
|
|
152
|
+
copiedHistory: "Copied!",
|
|
135
153
|
noToolCalls: "No tool calls yet",
|
|
136
154
|
arguments: "Arguments",
|
|
137
155
|
error: "Error",
|
|
@@ -157,6 +175,21 @@ const enMessages = {
|
|
|
157
175
|
fileTree: {
|
|
158
176
|
workspace: "(workspace)",
|
|
159
177
|
recentlyChanged: "Recently changed",
|
|
178
|
+
newFileMenuItem: "New file",
|
|
179
|
+
newFileInputAria: "New file name",
|
|
180
|
+
newFilePlaceholder: {
|
|
181
|
+
wikiPage: "page-slug",
|
|
182
|
+
summary: "summary-name",
|
|
183
|
+
document: "document-name",
|
|
184
|
+
html: "page-name",
|
|
185
|
+
story: "story-name",
|
|
186
|
+
},
|
|
187
|
+
newFileError: {
|
|
188
|
+
empty: "Filename can't be empty.",
|
|
189
|
+
unsafe: "Filename contains invalid characters.",
|
|
190
|
+
exists: "A file named {filename} already exists here.",
|
|
191
|
+
saveFailed: "Couldn't create the file. Please try again.",
|
|
192
|
+
},
|
|
160
193
|
},
|
|
161
194
|
lockStatusPopup: {
|
|
162
195
|
sandboxEnabledTooltip: "Sandbox enabled (Docker)",
|
|
@@ -188,12 +221,15 @@ const enMessages = {
|
|
|
188
221
|
map: "Map",
|
|
189
222
|
photos: "Photos",
|
|
190
223
|
model: "Model",
|
|
224
|
+
skills: "Skills",
|
|
225
|
+
roles: "Roles",
|
|
191
226
|
},
|
|
192
227
|
groups: {
|
|
193
228
|
llm: "LLM",
|
|
194
229
|
servers: "Servers",
|
|
195
230
|
workspace: "Workspace",
|
|
196
231
|
plugins: "Plugins",
|
|
232
|
+
management: "Management",
|
|
197
233
|
},
|
|
198
234
|
navAriaLabel: "Settings sections",
|
|
199
235
|
mapTab: {
|
|
@@ -290,43 +326,16 @@ const enMessages = {
|
|
|
290
326
|
errLabelConflict: 'Label "{label}" already exists',
|
|
291
327
|
},
|
|
292
328
|
pluginLauncher: {
|
|
293
|
-
todos: { label: "Todos" },
|
|
294
|
-
calendar: { label: "Calendar" },
|
|
295
329
|
automations: { label: "Actions" },
|
|
296
|
-
encore: { label: "Encore" },
|
|
297
330
|
wiki: { label: "Wiki" },
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
skills: { label: "Skills" },
|
|
301
|
-
roles: { label: "Roles" },
|
|
331
|
+
collections: { label: "Collections" },
|
|
332
|
+
feeds: { label: "Feeds" },
|
|
302
333
|
files: { label: "Files" },
|
|
303
334
|
},
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
errorPrefix: "Couldn't load obligations: ",
|
|
309
|
-
empty: "No obligations yet. Ask in chat to set one up.",
|
|
310
|
-
noCycles: "No cycles recorded yet.",
|
|
311
|
-
cyclesSuffix: "cycles",
|
|
312
|
-
targetCount: "{count} target | {count} targets",
|
|
313
|
-
cycleClosed: "Closed",
|
|
314
|
-
chatButtonTitle: "Discuss this obligation in a new chat",
|
|
315
|
-
bellButtonTitle: "Discuss this cycle",
|
|
316
|
-
addButtonLabel: "Add",
|
|
317
|
-
unexpectedResponse: "Encore returned an unexpected response.",
|
|
318
|
-
status: {
|
|
319
|
-
active: "Active",
|
|
320
|
-
paused: "Paused",
|
|
321
|
-
retired: "Retired",
|
|
322
|
-
},
|
|
323
|
-
cadence: {
|
|
324
|
-
daily: "Daily",
|
|
325
|
-
weekly: "Weekly",
|
|
326
|
-
monthly: "Monthly",
|
|
327
|
-
biannual: "Biannual",
|
|
328
|
-
annual: "Annual",
|
|
329
|
-
},
|
|
335
|
+
shortcuts: {
|
|
336
|
+
pin: "Pin to launcher",
|
|
337
|
+
unpin: "Unpin from launcher",
|
|
338
|
+
zoneAriaLabel: "Pinned shortcuts",
|
|
330
339
|
},
|
|
331
340
|
fileContentHeader: {
|
|
332
341
|
showRendered: "Show rendered Markdown",
|
|
@@ -345,6 +354,8 @@ const enMessages = {
|
|
|
345
354
|
invalidJson: "Invalid JSON",
|
|
346
355
|
undo: "Undo",
|
|
347
356
|
redo: "Redo",
|
|
357
|
+
editMarp: "Edit slide source",
|
|
358
|
+
marpEditorLabel: "Marp slide source",
|
|
348
359
|
},
|
|
349
360
|
filesView: {
|
|
350
361
|
chatPlaceholder: "Ask about this file…",
|
|
@@ -367,10 +378,6 @@ const enMessages = {
|
|
|
367
378
|
"fragile-format": "Fragile format",
|
|
368
379
|
ephemeral: "Ephemeral",
|
|
369
380
|
},
|
|
370
|
-
interests: {
|
|
371
|
-
title: "Interests config",
|
|
372
|
-
summary: "Topics that the news / sources pipeline watches and ranks for you. Editable by hand; the agent also updates it from chat.",
|
|
373
|
-
},
|
|
374
381
|
mcp: {
|
|
375
382
|
title: "MCP servers",
|
|
376
383
|
summary: "External Model Context Protocol servers attached to the agent. Add HTTP or stdio servers to expand the agent's tool surface.",
|
|
@@ -388,22 +395,10 @@ const enMessages = {
|
|
|
388
395
|
summary:
|
|
389
396
|
"Per-task time / interval overrides applied on top of the system schedule. The agent edits this when you ask to change a recurring task's timing.",
|
|
390
397
|
},
|
|
391
|
-
newsReadState: {
|
|
392
|
-
title: "News read state",
|
|
393
|
-
summary: "Local-only tracking of which news items you've seen. Ephemeral — safe to delete; will be regenerated as you read.",
|
|
394
|
-
},
|
|
395
398
|
schedulerItems: {
|
|
396
399
|
title: "Scheduler items queue",
|
|
397
400
|
summary: "Active scheduled invocations ready to fire. Agent-managed; do not hand-edit unless you know exactly what each field means.",
|
|
398
401
|
},
|
|
399
|
-
todosItems: {
|
|
400
|
-
title: "Todo items",
|
|
401
|
-
summary: 'Your tasks across all columns of the kanban board. The agent writes here when you say things like "add a todo"; you can also hand-edit.',
|
|
402
|
-
},
|
|
403
|
-
todosColumns: {
|
|
404
|
-
title: "Todo columns",
|
|
405
|
-
summary: "Column layout of the kanban board (titles, order, ids). User-editable — rename or reorder freely.",
|
|
406
|
-
},
|
|
407
402
|
wikiIndex: {
|
|
408
403
|
title: "Wiki index",
|
|
409
404
|
summary: "Auto-generated index of every wiki page. Refreshed on each wiki edit; do not hand-edit (your changes will be overwritten).",
|
|
@@ -437,14 +432,6 @@ const enMessages = {
|
|
|
437
432
|
title: "Role description (Markdown)",
|
|
438
433
|
summary: "The role's persona and system-prompt prose, loaded as context when this role is active. User-editable; changes apply on the next message.",
|
|
439
434
|
},
|
|
440
|
-
sourceFeed: {
|
|
441
|
-
title: "Source feed",
|
|
442
|
-
summary: "One subscribed source (RSS, GitHub releases / issues, arXiv, etc.). User-editable; the sources pipeline polls these on schedule.",
|
|
443
|
-
},
|
|
444
|
-
sourceState: {
|
|
445
|
-
title: "Source state",
|
|
446
|
-
summary: "Ephemeral pipeline state for one source — last-seen ids, ETags, fetch errors. Safe to delete; will be regenerated on the next pipeline run.",
|
|
447
|
-
},
|
|
448
435
|
journalDaily: {
|
|
449
436
|
title: "Daily journal summary",
|
|
450
437
|
summary: "Auto-generated recap of your activity for one calendar day, distilled from chat sessions by the journal pass.",
|
|
@@ -626,29 +613,7 @@ const enMessages = {
|
|
|
626
613
|
},
|
|
627
614
|
},
|
|
628
615
|
pluginScheduler: {
|
|
629
|
-
prev: "Previous",
|
|
630
|
-
today: "Today",
|
|
631
|
-
goToday: "Go to today",
|
|
632
|
-
next: "Next",
|
|
633
|
-
deleteItem: "Delete item",
|
|
634
|
-
closeEditor: "Close editor",
|
|
635
|
-
apiError: "⚠ Failed to update scheduler: {error}",
|
|
636
|
-
tabCalendar: "Calendar",
|
|
637
|
-
tabTasks: "Tasks",
|
|
638
|
-
heading: "Scheduler",
|
|
639
|
-
itemCount: "{count} item | {count} items",
|
|
640
|
-
noScheduled: "No scheduled items",
|
|
641
|
-
unscheduled: "Unscheduled",
|
|
642
|
-
editItem: "Edit item",
|
|
643
|
-
update: "Update",
|
|
644
|
-
editSource: "Edit Source",
|
|
645
|
-
applyChanges: "Apply Changes",
|
|
646
|
-
yamlParseError: "Could not parse YAML — ensure 'title' is present",
|
|
647
|
-
propLabel: "{key}:",
|
|
648
|
-
moreCount: "+{count} more",
|
|
649
|
-
invalidRange: "Invalid date range (endDate: {endDate})",
|
|
650
616
|
previewIcon: "📅",
|
|
651
|
-
previewUpcoming: "{count} upcoming",
|
|
652
617
|
previewAutomations: "{count} automation | {count} automations",
|
|
653
618
|
previewMore: "+ {count} more…",
|
|
654
619
|
},
|
|
@@ -877,53 +842,6 @@ const enMessages = {
|
|
|
877
842
|
previewError: "Accounting: {error}",
|
|
878
843
|
previewGeneric: "Accounting result",
|
|
879
844
|
},
|
|
880
|
-
todoExplorer: {
|
|
881
|
-
heading: "Todo",
|
|
882
|
-
doneRatio: "{done}/{total} done",
|
|
883
|
-
addButton: "+ Add",
|
|
884
|
-
addColumnButton: "+ Column",
|
|
885
|
-
labels: "Labels:",
|
|
886
|
-
searchPlaceholder: "Search...",
|
|
887
|
-
clearButton: "Clear ✕",
|
|
888
|
-
clearFiltersTitle: "Clear label filters",
|
|
889
|
-
emptyHint: 'No todo items yet. Click "+ Add" to create one.',
|
|
890
|
-
addColumn: "Add Column",
|
|
891
|
-
newColumnLabelField: "Label",
|
|
892
|
-
newColumnPlaceholder: "Review",
|
|
893
|
-
noMatchingFilter: "No items match the current filter",
|
|
894
|
-
},
|
|
895
|
-
todoDialogs: {
|
|
896
|
-
addTitle: "Add Todo",
|
|
897
|
-
editTitle: "Edit Todo",
|
|
898
|
-
deleteButton: "Delete",
|
|
899
|
-
deleteTitle: "Delete this item",
|
|
900
|
-
noneOption: "— None —",
|
|
901
|
-
fieldText: "Text",
|
|
902
|
-
fieldNote: "Note",
|
|
903
|
-
fieldStatus: "Status",
|
|
904
|
-
fieldPriority: "Priority",
|
|
905
|
-
fieldDueDate: "Due date",
|
|
906
|
-
fieldLabels: "Labels",
|
|
907
|
-
fieldLabelsCommaSeparated: "Labels (comma-separated)",
|
|
908
|
-
textPlaceholder: "What needs doing?",
|
|
909
|
-
labelsPlaceholder: "work, urgent",
|
|
910
|
-
},
|
|
911
|
-
todoKanban: {
|
|
912
|
-
rename: "Rename",
|
|
913
|
-
markAsDoneColumn: "Mark as done column",
|
|
914
|
-
removeAllItems: "Remove all items",
|
|
915
|
-
removeAllItemsConfirm: 'Remove all {count} item(s) in "{column}"? This cannot be undone.',
|
|
916
|
-
deleteColumn: "Delete column",
|
|
917
|
-
columnActions: "Column actions",
|
|
918
|
-
addCard: "+ Add card",
|
|
919
|
-
openCardAria: "Open task: {task}",
|
|
920
|
-
},
|
|
921
|
-
todoTableList: {
|
|
922
|
-
noMatchingFilter: "No items match the current filter",
|
|
923
|
-
sortColumnAria: "Sort by {column}",
|
|
924
|
-
expandRowAria: "Expand task: {task}",
|
|
925
|
-
deleteItem: "Delete item",
|
|
926
|
-
},
|
|
927
845
|
pluginWiki: {
|
|
928
846
|
backToIndex: "Back to index",
|
|
929
847
|
pdf: "PDF",
|
|
@@ -931,6 +849,9 @@ const enMessages = {
|
|
|
931
849
|
tabIndex: "Index",
|
|
932
850
|
tabLog: "Log",
|
|
933
851
|
tabLint: "Lint",
|
|
852
|
+
tabGraph: "Graph",
|
|
853
|
+
graphEmpty: "No links to graph yet.",
|
|
854
|
+
linkedReferences: "Linked references",
|
|
934
855
|
empty: "Wiki is empty. Ask the Wiki Manager to ingest a source.",
|
|
935
856
|
previewMore: "+ {count} more…",
|
|
936
857
|
chatPlaceholder: "Ask about this page…",
|
|
@@ -984,6 +905,11 @@ const enMessages = {
|
|
|
984
905
|
submit: "Submit",
|
|
985
906
|
progress: "{filled} of {total} required fields completed",
|
|
986
907
|
},
|
|
908
|
+
pluginPresentCollection: {
|
|
909
|
+
fallbackTitle: "Collection",
|
|
910
|
+
itemLabel: "Item: {id}",
|
|
911
|
+
listLabel: "All records",
|
|
912
|
+
},
|
|
987
913
|
pluginPresentHtml: {
|
|
988
914
|
saveAsPdf: "Save as PDF (opens print dialog)",
|
|
989
915
|
pdf: "PDF",
|
|
@@ -1011,93 +937,6 @@ const enMessages = {
|
|
|
1011
937
|
loadingSource: "Loading source…",
|
|
1012
938
|
sourceError: "Failed to load source: {error}",
|
|
1013
939
|
},
|
|
1014
|
-
pluginNews: {
|
|
1015
|
-
title: "News",
|
|
1016
|
-
itemCount: "{unread} unread / {total} total",
|
|
1017
|
-
filterAll: "All",
|
|
1018
|
-
filterUnread: "Unread",
|
|
1019
|
-
allSources: "All",
|
|
1020
|
-
markAllRead: "Mark all read",
|
|
1021
|
-
selectPrompt: "Select an item to read.",
|
|
1022
|
-
empty: "No news in this view.",
|
|
1023
|
-
unread: "Unread",
|
|
1024
|
-
openOriginal: "Open original",
|
|
1025
|
-
noBody: "No body available — open the original article.",
|
|
1026
|
-
bodyError: "Failed to load body: {error}",
|
|
1027
|
-
loadError: "Failed to load news: {error}",
|
|
1028
|
-
chatPlaceholder: "Ask anything about this article",
|
|
1029
|
-
},
|
|
1030
|
-
pluginManageSource: {
|
|
1031
|
-
titlePlaceholder: "Title (optional)",
|
|
1032
|
-
heading: "Information sources",
|
|
1033
|
-
chatPlaceholder: "Ask about your information sources…",
|
|
1034
|
-
sourceCount: "{count} source | {count} sources",
|
|
1035
|
-
addButton: "Add",
|
|
1036
|
-
rebuildNow: "Rebuild now",
|
|
1037
|
-
rebuilding: "Rebuilding…",
|
|
1038
|
-
typeField: "Type",
|
|
1039
|
-
addingLabel: "Adding…",
|
|
1040
|
-
addAndRebuild: "Add + Rebuild",
|
|
1041
|
-
emptyPickPack: "No sources registered yet. Pick a starter pack below, click {addBold} above, or ask Claude to register one.",
|
|
1042
|
-
emptyAddStrong: "+ Add",
|
|
1043
|
-
registering: "Registering + fetching…",
|
|
1044
|
-
removeLabel: "Remove",
|
|
1045
|
-
removingLabel: "Removing…",
|
|
1046
|
-
todaysBrief: "Today's brief",
|
|
1047
|
-
todaysBriefLoading: "Loading today's brief…",
|
|
1048
|
-
briefNone: "No brief written for this date yet. Click Rebuild now.",
|
|
1049
|
-
briefEmpty: "Today's brief is empty.",
|
|
1050
|
-
briefLoadFailed: "Failed to load brief",
|
|
1051
|
-
lastRebuildSummary: "Last rebuild ({date}): {itemCount} items from {planned} sources, {duplicates} duplicates dropped.",
|
|
1052
|
-
archiveErrorsSuffix: "({count} archive errors)",
|
|
1053
|
-
kindRss: "RSS",
|
|
1054
|
-
kindGithubRel: "GitHub rel",
|
|
1055
|
-
kindGithubIss: "GitHub iss",
|
|
1056
|
-
kindArxiv: "arXiv",
|
|
1057
|
-
kindGithubReleases: "GitHub releases",
|
|
1058
|
-
kindGithubIssues: "GitHub issues",
|
|
1059
|
-
briefDateLabel: "({date})",
|
|
1060
|
-
primaryRssPlaceholder: "https://news.ycombinator.com/rss",
|
|
1061
|
-
primaryGithubPlaceholder: "https://github.com/owner/repo (or owner/repo)",
|
|
1062
|
-
primaryArxivPlaceholder: "cat:cs.CL",
|
|
1063
|
-
primaryRssHint: "Feed URL (RSS 2.0 / Atom / RDF)",
|
|
1064
|
-
primaryGithubRelHint: "GitHub repo URL or owner/repo — fetches releases",
|
|
1065
|
-
primaryGithubIssHint: "GitHub repo URL or owner/repo — fetches issues",
|
|
1066
|
-
primaryArxivHint: "arXiv search query (e.g. cat:cs.CL or au:hinton)",
|
|
1067
|
-
confirmRemove: 'Remove source "{slug}"?',
|
|
1068
|
-
flashRegistered: "Registered. Fetching new items…",
|
|
1069
|
-
flashRebuildReady: "Ready: {itemCount} items from {planned} source.|Ready: {itemCount} items from {planned} sources.",
|
|
1070
|
-
flashRebuildComplete: "Rebuild complete: {itemCount} items from {planned} sources.",
|
|
1071
|
-
flashRebuildFailed: "Rebuild failed: {error}",
|
|
1072
|
-
flashRegisterFailed: "Failed to register source",
|
|
1073
|
-
flashRegisterSucceededRebuildFailed: "Register succeeded but rebuild failed: {error}",
|
|
1074
|
-
flashRemoved: 'Removed "{slug}".',
|
|
1075
|
-
flashRemoveFailed: "Remove failed: {error}",
|
|
1076
|
-
flashRefreshListFailed: "Failed to refresh sources: {error}",
|
|
1077
|
-
flashPresetAlreadyRegistered: 'All sources in "{label}" are already registered.',
|
|
1078
|
-
flashPresetRegistered: 'Registered {count} source from "{label}". Fetching…|Registered {count} sources from "{label}". Fetching…',
|
|
1079
|
-
flashPresetPartial: "Registered {ok}/{total}. Errors: {errors}",
|
|
1080
|
-
errPrimaryRequired: "Please fill in the URL / query field.",
|
|
1081
|
-
errRssUrlProtocol: "RSS feed URL must start with http:// or https://",
|
|
1082
|
-
errRssUrlInvalid: "RSS feed URL is not a valid URL.",
|
|
1083
|
-
errRssUrlHost: "RSS feed URL must include a host.",
|
|
1084
|
-
errGithubInvalid: "Enter a GitHub repo URL (https://github.com/owner/repo) or owner/repo.",
|
|
1085
|
-
errUnsupportedKind: "Unsupported fetcher kind.",
|
|
1086
|
-
initialLoading: "Loading sources…",
|
|
1087
|
-
initialLoadFailed: "Failed to load sources.",
|
|
1088
|
-
retryLabel: "Retry",
|
|
1089
|
-
filter: {
|
|
1090
|
-
all: "All",
|
|
1091
|
-
rss: "RSS",
|
|
1092
|
-
github: "GitHub",
|
|
1093
|
-
arxiv: "arXiv",
|
|
1094
|
-
scheduleDaily: "Daily",
|
|
1095
|
-
scheduleWeekly: "Weekly",
|
|
1096
|
-
scheduleManual: "Manual",
|
|
1097
|
-
noMatching: "No sources match the current filter.",
|
|
1098
|
-
clearFilter: "Clear filter",
|
|
1099
|
-
},
|
|
1100
|
-
},
|
|
1101
940
|
photoLocations: {
|
|
1102
941
|
title: "Photo locations",
|
|
1103
942
|
summary: "{total} captured · {withGps} with GPS",
|
|
@@ -1108,6 +947,7 @@ const enMessages = {
|
|
|
1108
947
|
},
|
|
1109
948
|
pluginManageSkills: {
|
|
1110
949
|
deleteProjectSkill: "Delete this project-scope skill",
|
|
950
|
+
unstarPresetSkill: "Unstar this preset — moves it back to the catalog",
|
|
1111
951
|
heading: "Skills",
|
|
1112
952
|
previewCount: "{count} skill | {count} skills",
|
|
1113
953
|
previewMore: "+{count} more",
|
|
@@ -1124,21 +964,23 @@ const enMessages = {
|
|
|
1124
964
|
emptyBody: "(empty body)",
|
|
1125
965
|
btnEdit: "Edit",
|
|
1126
966
|
btnDelete: "Delete",
|
|
1127
|
-
|
|
967
|
+
btnUnstar: "Unstar",
|
|
1128
968
|
errListFailed: "Failed to load skills: {error}",
|
|
1129
969
|
errDetailFailed: "Failed to load skill: {error}",
|
|
1130
970
|
errSaveFailed: "Save failed: {error}",
|
|
1131
971
|
errDeleteFailed: "Failed to delete",
|
|
1132
972
|
confirmDelete: 'Delete skill "{name}"? This removes ~/mulmoclaude/.claude/skills/{name}/SKILL.md.',
|
|
973
|
+
confirmUnstar: 'Move "{name}" back to the catalog? It will stop loading into the prompt, but the catalog copy stays — you can re-star it any time.',
|
|
1133
974
|
sectionActive: "Active",
|
|
1134
975
|
sectionCatalog: "Catalog",
|
|
1135
|
-
|
|
1136
|
-
"
|
|
976
|
+
sectionLegendActive:
|
|
977
|
+
"Skills Claude can use right now. Claude calls them automatically in the flow of a conversation, or you can invoke one by typing its name. {system} System (mc- bundled) / {project} Project (editable, this workspace only) / {user} User (skills in ~/.claude/skills/).",
|
|
978
|
+
sectionLegendCatalog:
|
|
979
|
+
"Catalog: skills that become Active when you mark them with {star}. Removing {star} from an Active skill sends it back to Catalog — Claude stops using it (the skill is not deleted).",
|
|
1137
980
|
catalogEmpty: "No preset skills available.",
|
|
1138
981
|
catalogPresetHeading: "Presets",
|
|
1139
982
|
catalogStar: "Star",
|
|
1140
983
|
catalogStarred: "Starred",
|
|
1141
|
-
catalogRunOnce: "Run once",
|
|
1142
984
|
sourceUserTitle: "User skill (~/.claude/skills/, available in every workspace)",
|
|
1143
985
|
sourceSystemTitle: "System skill (bundled, mc- prefix — read-only, overwritten by the launcher)",
|
|
1144
986
|
sourceProjectTitle: "Project skill (workspace .claude/skills/, this workspace only)",
|
|
@@ -1146,7 +988,6 @@ const enMessages = {
|
|
|
1146
988
|
errCatalogListFailed: "Failed to load catalog: {error}",
|
|
1147
989
|
errCatalogStarFailed: "Failed to star skill: {error}",
|
|
1148
990
|
errCatalogPreviewFailed: "Failed to load skill preview: {error}",
|
|
1149
|
-
errCatalogRunOnceEmpty: "This skill has no body to run.",
|
|
1150
991
|
catalogAddRepo: "Add skill repository",
|
|
1151
992
|
catalogAddRepoTitle: "Add a skill repository",
|
|
1152
993
|
catalogRepoUrlLabel: "GitHub URL",
|
|
@@ -1221,6 +1062,9 @@ const enMessages = {
|
|
|
1221
1062
|
playPresentation: "Play presentation",
|
|
1222
1063
|
regenerateMovie: "Regenerate movie",
|
|
1223
1064
|
movieGenerationFailed: "Movie generation failed",
|
|
1065
|
+
pdf: "PDF",
|
|
1066
|
+
regeneratePdf: "Regenerate PDF",
|
|
1067
|
+
generatingPdf: "Generating PDF…",
|
|
1224
1068
|
retry: "Retry",
|
|
1225
1069
|
errPrefix: "⚠ Error",
|
|
1226
1070
|
noBeats: "No beats found in script",
|
|
@@ -1249,6 +1093,12 @@ const enMessages = {
|
|
|
1249
1093
|
copyLabel: "Copy",
|
|
1250
1094
|
copiedLabel: "Copied!",
|
|
1251
1095
|
taskCountMismatch: "Markdown source and rendered output disagree on the number of tasks. Refusing to toggle to avoid corruption.",
|
|
1096
|
+
marpSlidesMode: "Marp slides · {count}",
|
|
1097
|
+
marpExportPdf: "Export PDF",
|
|
1098
|
+
marpRenderFailed: "⚠ Failed to render Marp slides: {error}",
|
|
1099
|
+
marpSplitEnter: "Edit source side-by-side with preview",
|
|
1100
|
+
marpSplitExit: "Hide source editor",
|
|
1101
|
+
marpSplitEditorLabel: "Source",
|
|
1252
1102
|
},
|
|
1253
1103
|
pluginTextResponse: {
|
|
1254
1104
|
pdf: "PDF",
|
|
@@ -1303,6 +1153,91 @@ const enMessages = {
|
|
|
1303
1153
|
// is translatable.
|
|
1304
1154
|
explanation:
|
|
1305
1155
|
"Extra tool names to pass to Claude via {allowedTools}. One per line. Useful for built-in Claude Code MCP servers like Gmail / Google Calendar after you have authenticated via {claudeMcp}.",
|
|
1156
|
+
connectorsSectionTitle: "Connected connectors",
|
|
1157
|
+
connectorsEmpty: "No connectors found.",
|
|
1158
|
+
connectorConnected: "Connected",
|
|
1159
|
+
connectorDisconnected: "Not connected",
|
|
1160
|
+
connectorsGuide:
|
|
1161
|
+
"Connectors like Slack and Gmail let Claude access your accounts. Add or remove connectors from Claude Desktop, or configure them {configLink}. (Opens claude.ai)",
|
|
1162
|
+
connectorsConfigLinkText: "here",
|
|
1163
|
+
},
|
|
1164
|
+
collectionsView: {
|
|
1165
|
+
addCollectionLabel: "Collection",
|
|
1166
|
+
addCollectionPrompt:
|
|
1167
|
+
"Help me create a new collection. First read `config/helps/collection-skills.md` for the schema-driven collection conventions. Then use the `presentForm` tool (do not use AskUserQuestion) to ask me what kind of data I want to track, and author the schema.json and SKILL.md from my answers.",
|
|
1168
|
+
addFeedTitle: "Add a feed",
|
|
1169
|
+
addFeedHint: "Paste a feed or API URL — I'll fetch it and work out the title and fields for you.",
|
|
1170
|
+
addFeedPrompt:
|
|
1171
|
+
"Add a new data-source feed from this URL: {url}\n\nFirst Read `config/helps/feeds.md` and follow it exactly. Fetch that URL yourself, inspect the response to infer a sensible title and fields, then author `feeds/<slug>/schema.json` as the help describes — do NOT ask me any questions; work it all out from the data. Opening the feed loads its items automatically; when you're done, tell me it's registered (no need to mention Refresh).",
|
|
1172
|
+
title: "Collections",
|
|
1173
|
+
backToIndex: "Back to collections",
|
|
1174
|
+
indexEmpty: "No collections installed. Star a skill that ships a schema from the Skills page to see it here.",
|
|
1175
|
+
editItem: "Edit",
|
|
1176
|
+
openItem: "Open {id}",
|
|
1177
|
+
confirmDelete: "Delete this item? This cannot be undone.",
|
|
1178
|
+
deleteFeed: "Delete feed",
|
|
1179
|
+
confirmDeleteFeed: 'Delete the "{title}" feed and all its fetched records? This cannot be undone.',
|
|
1180
|
+
deleteCollection: "Delete collection",
|
|
1181
|
+
confirmDeleteCollection: 'Delete the entire "{title}" collection, including all its records? A restorable backup is archived first.',
|
|
1182
|
+
itemsEmpty: "No items yet. Click + to add one.",
|
|
1183
|
+
notFound: "Collection not found",
|
|
1184
|
+
loadFailed: "Failed to load",
|
|
1185
|
+
requiredField: "This field is required",
|
|
1186
|
+
selectPlaceholder: "Select…",
|
|
1187
|
+
inlineSaveFailed: "Couldn't save change: {error}",
|
|
1188
|
+
addRow: "Add row",
|
|
1189
|
+
removeRow: "Remove row",
|
|
1190
|
+
noRows: "No rows yet",
|
|
1191
|
+
tableSummary: "{count} items",
|
|
1192
|
+
embedMissing: "No “{id}” record found in {collection}.",
|
|
1193
|
+
embedCreate: "Set it up",
|
|
1194
|
+
searchPlaceholder: "Search records…",
|
|
1195
|
+
searchSummary: "Showing {shown} of {total}",
|
|
1196
|
+
noMatchingItems: "No matching items",
|
|
1197
|
+
clearSearch: "Clear search",
|
|
1198
|
+
openCollection: "Open {title}",
|
|
1199
|
+
createTitle: "Add new",
|
|
1200
|
+
derivedLabel: "Derived",
|
|
1201
|
+
embedMissingTitle: "Embedded reference missing",
|
|
1202
|
+
chat: "Chat",
|
|
1203
|
+
refreshFeed: "Refresh",
|
|
1204
|
+
refreshFailed: "Refresh failed: {error}",
|
|
1205
|
+
feedChatSeed:
|
|
1206
|
+
'The "{slug}" feed is defined by the schema at `feeds/{slug}/schema.json` and its records live in `{dataPath}/` (one `<id>.json` per record). Using that schema and data, respond to this request: {message}',
|
|
1207
|
+
feedsTitle: "Data-source feeds",
|
|
1208
|
+
feedsEmpty: "No feeds registered yet.",
|
|
1209
|
+
chatTitle: "Start a chat",
|
|
1210
|
+
chatPlaceholder: "Describe what you want to do with this collection…",
|
|
1211
|
+
chatStart: "Start chat",
|
|
1212
|
+
viewToggle: "View",
|
|
1213
|
+
viewTable: "Table",
|
|
1214
|
+
viewCalendar: "Calendar",
|
|
1215
|
+
calendarFieldLabel: "Calendar date field",
|
|
1216
|
+
calendarPrevMonth: "Previous month",
|
|
1217
|
+
calendarNextMonth: "Next month",
|
|
1218
|
+
calendarToday: "Today",
|
|
1219
|
+
calendarNoDate: "No date",
|
|
1220
|
+
calendarCreateOn: "Create on {date}",
|
|
1221
|
+
dayViewOpen: "Open day view for {date}",
|
|
1222
|
+
dayViewAllDay: "All day",
|
|
1223
|
+
dayViewEmpty: "No items on this day",
|
|
1224
|
+
dayViewClose: "Close day view",
|
|
1225
|
+
viewKanban: "Kanban",
|
|
1226
|
+
kanbanFieldLabel: "Kanban group field",
|
|
1227
|
+
kanbanUncategorized: "Uncategorized",
|
|
1228
|
+
kanbanOpenCard: "Open {label}",
|
|
1229
|
+
viewDashboard: "Dashboard",
|
|
1230
|
+
dashboardAlertHeading: "{label} — {count}",
|
|
1231
|
+
dashboardAllItems: "All items",
|
|
1232
|
+
source: {
|
|
1233
|
+
user: "User",
|
|
1234
|
+
project: "Project",
|
|
1235
|
+
},
|
|
1236
|
+
},
|
|
1237
|
+
confirmModal: {
|
|
1238
|
+
defaultTitle: "Confirm",
|
|
1239
|
+
defaultConfirm: "Confirm",
|
|
1240
|
+
defaultCancel: "Cancel",
|
|
1306
1241
|
},
|
|
1307
1242
|
};
|
|
1308
1243
|
|