@monoes/monomindcli 2.14.0 → 2.14.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 (124) hide show
  1. package/.claude/skills/monodesign/scripts/context.mjs +1 -1
  2. package/.claude/skills/monodesign/scripts/detector/detect-antipatterns-browser.js +2 -2
  3. package/.claude/skills/monodesign/scripts/detector/rules/checks.mjs +2 -2
  4. package/.claude/skills/monodesign/scripts/live-browser.js +1 -1
  5. package/bin/cli.js +21 -1
  6. package/bin/mcp-server.js +21 -1
  7. package/dist/src/capabilities/cap-documents.d.ts.map +1 -1
  8. package/dist/src/capabilities/cap-documents.js +23 -0
  9. package/dist/src/capabilities/cap-documents.js.map +1 -1
  10. package/dist/src/commands/doc-filters.d.ts +19 -0
  11. package/dist/src/commands/doc-filters.d.ts.map +1 -0
  12. package/dist/src/commands/doc-filters.js +58 -0
  13. package/dist/src/commands/doc-filters.js.map +1 -0
  14. package/dist/src/commands/doc-library.d.ts +21 -0
  15. package/dist/src/commands/doc-library.d.ts.map +1 -0
  16. package/dist/src/commands/doc-library.js +390 -0
  17. package/dist/src/commands/doc-library.js.map +1 -0
  18. package/dist/src/commands/doc-list.d.ts +9 -0
  19. package/dist/src/commands/doc-list.d.ts.map +1 -0
  20. package/dist/src/commands/doc-list.js +99 -0
  21. package/dist/src/commands/doc-list.js.map +1 -0
  22. package/dist/src/commands/doc.d.ts.map +1 -1
  23. package/dist/src/commands/doc.js +49 -37
  24. package/dist/src/commands/doc.js.map +1 -1
  25. package/dist/src/knowledge/capture-envelope.d.ts +80 -0
  26. package/dist/src/knowledge/capture-envelope.d.ts.map +1 -0
  27. package/dist/src/knowledge/capture-envelope.js +165 -0
  28. package/dist/src/knowledge/capture-envelope.js.map +1 -0
  29. package/dist/src/knowledge/capture-text.d.ts +23 -0
  30. package/dist/src/knowledge/capture-text.d.ts.map +1 -0
  31. package/dist/src/knowledge/capture-text.js +49 -0
  32. package/dist/src/knowledge/capture-text.js.map +1 -0
  33. package/dist/src/knowledge/citation.d.ts +121 -0
  34. package/dist/src/knowledge/citation.d.ts.map +1 -0
  35. package/dist/src/knowledge/citation.js +252 -0
  36. package/dist/src/knowledge/citation.js.map +1 -0
  37. package/dist/src/knowledge/document-pipeline.d.ts +60 -0
  38. package/dist/src/knowledge/document-pipeline.d.ts.map +1 -1
  39. package/dist/src/knowledge/document-pipeline.js +188 -4
  40. package/dist/src/knowledge/document-pipeline.js.map +1 -1
  41. package/dist/src/knowledge/html-extract.d.ts +43 -0
  42. package/dist/src/knowledge/html-extract.d.ts.map +1 -0
  43. package/dist/src/knowledge/html-extract.js +286 -0
  44. package/dist/src/knowledge/html-extract.js.map +1 -0
  45. package/dist/src/knowledge/html-tags.d.ts +30 -0
  46. package/dist/src/knowledge/html-tags.d.ts.map +1 -0
  47. package/dist/src/knowledge/html-tags.js +229 -0
  48. package/dist/src/knowledge/html-tags.js.map +1 -0
  49. package/dist/src/knowledge/library.d.ts +106 -0
  50. package/dist/src/knowledge/library.d.ts.map +1 -0
  51. package/dist/src/knowledge/library.js +195 -0
  52. package/dist/src/knowledge/library.js.map +1 -0
  53. package/dist/src/knowledge/mhtml.d.ts +60 -0
  54. package/dist/src/knowledge/mhtml.d.ts.map +1 -0
  55. package/dist/src/knowledge/mhtml.js +154 -0
  56. package/dist/src/knowledge/mhtml.js.map +1 -0
  57. package/dist/src/knowledge/related.d.ts +58 -0
  58. package/dist/src/knowledge/related.d.ts.map +1 -0
  59. package/dist/src/knowledge/related.js +222 -0
  60. package/dist/src/knowledge/related.js.map +1 -0
  61. package/dist/src/knowledge/section-diff.d.ts +48 -0
  62. package/dist/src/knowledge/section-diff.d.ts.map +1 -0
  63. package/dist/src/knowledge/section-diff.js +151 -0
  64. package/dist/src/knowledge/section-diff.js.map +1 -0
  65. package/dist/src/knowledge/watch.d.ts +92 -0
  66. package/dist/src/knowledge/watch.d.ts.map +1 -0
  67. package/dist/src/knowledge/watch.js +221 -0
  68. package/dist/src/knowledge/watch.js.map +1 -0
  69. package/dist/src/mcp-server.d.ts.map +1 -1
  70. package/dist/src/mcp-server.js +44 -87
  71. package/dist/src/mcp-server.js.map +1 -1
  72. package/dist/src/mcp-tools/browser-instrument-tools.d.ts +35 -0
  73. package/dist/src/mcp-tools/browser-instrument-tools.d.ts.map +1 -0
  74. package/dist/src/mcp-tools/browser-instrument-tools.js +359 -0
  75. package/dist/src/mcp-tools/browser-instrument-tools.js.map +1 -0
  76. package/dist/src/mcp-tools/browser-metrics.d.ts +42 -0
  77. package/dist/src/mcp-tools/browser-metrics.d.ts.map +1 -0
  78. package/dist/src/mcp-tools/browser-metrics.js +91 -0
  79. package/dist/src/mcp-tools/browser-metrics.js.map +1 -0
  80. package/dist/src/mcp-tools/browser-profile-tools.d.ts +16 -0
  81. package/dist/src/mcp-tools/browser-profile-tools.d.ts.map +1 -0
  82. package/dist/src/mcp-tools/browser-profile-tools.js +324 -0
  83. package/dist/src/mcp-tools/browser-profile-tools.js.map +1 -0
  84. package/dist/src/mcp-tools/browser-session.d.ts +68 -0
  85. package/dist/src/mcp-tools/browser-session.d.ts.map +1 -0
  86. package/dist/src/mcp-tools/browser-session.js +224 -0
  87. package/dist/src/mcp-tools/browser-session.js.map +1 -0
  88. package/dist/src/mcp-tools/browser-tools.d.ts.map +1 -1
  89. package/dist/src/mcp-tools/browser-tools.js +10 -176
  90. package/dist/src/mcp-tools/browser-tools.js.map +1 -1
  91. package/dist/src/mcp-tools/capture-resource-read.d.ts +115 -0
  92. package/dist/src/mcp-tools/capture-resource-read.d.ts.map +1 -0
  93. package/dist/src/mcp-tools/capture-resource-read.js +296 -0
  94. package/dist/src/mcp-tools/capture-resource-read.js.map +1 -0
  95. package/dist/src/mcp-tools/capture-resource-tools.d.ts +22 -0
  96. package/dist/src/mcp-tools/capture-resource-tools.d.ts.map +1 -0
  97. package/dist/src/mcp-tools/capture-resource-tools.js +182 -0
  98. package/dist/src/mcp-tools/capture-resource-tools.js.map +1 -0
  99. package/dist/src/mcp-tools/capture-resources.d.ts +142 -0
  100. package/dist/src/mcp-tools/capture-resources.d.ts.map +1 -0
  101. package/dist/src/mcp-tools/capture-resources.js +289 -0
  102. package/dist/src/mcp-tools/capture-resources.js.map +1 -0
  103. package/dist/src/mcp-tools/index.d.ts +3 -0
  104. package/dist/src/mcp-tools/index.d.ts.map +1 -1
  105. package/dist/src/mcp-tools/index.js +6 -0
  106. package/dist/src/mcp-tools/index.js.map +1 -1
  107. package/dist/src/mcp-tools/knowledge-tools.d.ts.map +1 -1
  108. package/dist/src/mcp-tools/knowledge-tools.js +9 -1
  109. package/dist/src/mcp-tools/knowledge-tools.js.map +1 -1
  110. package/dist/src/mcp-tools/resource-router.d.ts +86 -0
  111. package/dist/src/mcp-tools/resource-router.d.ts.map +1 -0
  112. package/dist/src/mcp-tools/resource-router.js +181 -0
  113. package/dist/src/mcp-tools/resource-router.js.map +1 -0
  114. package/dist/src/memory/memory-bridge.js +1 -1
  115. package/dist/src/memory/memory-bridge.js.map +1 -1
  116. package/dist/src/orgrt/session-ledger.d.ts +7 -0
  117. package/dist/src/orgrt/session-ledger.d.ts.map +1 -1
  118. package/dist/src/orgrt/session-ledger.js +15 -0
  119. package/dist/src/orgrt/session-ledger.js.map +1 -1
  120. package/dist/src/orgrt/session.d.ts.map +1 -1
  121. package/dist/src/orgrt/session.js +21 -8
  122. package/dist/src/orgrt/session.js.map +1 -1
  123. package/dist/tsconfig.tsbuildinfo +1 -1
  124. package/package.json +6 -6
@@ -0,0 +1,390 @@
1
+ /**
2
+ * Library commands for the capture brain: `doc cite`, `doc related`,
3
+ * `doc watch` (RCL-10, RCL-03, RCL-08).
4
+ *
5
+ * They live beside `doc.ts` rather than inside it because that file is
6
+ * already long, and because these three share one piece of logic worth
7
+ * having in exactly one place: WHICH STORE a capture is in. Captures land in
8
+ * `~/.monomind/inbox`, which is outside any project, so `doc ingest` routes
9
+ * them to the personal global brain — asking about them from inside a project
10
+ * must therefore look in both stores before reporting "not indexed", or the
11
+ * commands would deny knowing pages the user just saved.
12
+ *
13
+ * @module v1/cli/commands/doc-library
14
+ */
15
+ import * as path from 'node:path';
16
+ import { getGlobalBrainDir, getProjectRoot } from '../memory/memory-bridge.js';
17
+ import { output } from '../output.js';
18
+ function projectStore(ctx) {
19
+ return {
20
+ root: getProjectRoot(ctx.cwd || process.cwd()),
21
+ scope: String(ctx.flags.scope || 'shared'),
22
+ global: false,
23
+ };
24
+ }
25
+ function globalStore() {
26
+ return { root: getGlobalBrainDir(), scope: 'global', global: true };
27
+ }
28
+ /**
29
+ * The store holding `target`: the one the flags name, or — with no flag — the
30
+ * project first and the personal brain second, because that is where captures
31
+ * actually live.
32
+ */
33
+ async function resolveStore(ctx, target) {
34
+ if (ctx.flags.global === true || ctx.flags.scope === 'global')
35
+ return globalStore();
36
+ const project = projectStore(ctx);
37
+ if (ctx.flags.scope || !target)
38
+ return project;
39
+ const { findDocumentRecord } = await import('../knowledge/document-pipeline.js');
40
+ if (findDocumentRecord(project.root, target, project.scope))
41
+ return project;
42
+ return findDocumentRecord(globalStore().root, target, 'global') ? globalStore() : project;
43
+ }
44
+ const STORE_OPTIONS = [
45
+ {
46
+ name: 'scope',
47
+ short: 's',
48
+ description: 'Knowledge scope (default: shared)',
49
+ type: 'string',
50
+ },
51
+ {
52
+ name: 'global',
53
+ short: 'g',
54
+ description: 'Use the personal cross-project global brain',
55
+ type: 'boolean',
56
+ },
57
+ { name: 'json', description: 'Emit JSON for programmatic use', type: 'boolean' },
58
+ ];
59
+ const asJson = (ctx) => ctx.flags.json === true;
60
+ function printJson(data) {
61
+ output.writeln(JSON.stringify(data, null, 2));
62
+ return { success: true, data };
63
+ }
64
+ // ── doc cite (RCL-10) ──────────────────────────────────────────────
65
+ const citeCommand = {
66
+ name: 'cite',
67
+ description: 'Quote a passage from an indexed document, with its URL and capture time',
68
+ options: [
69
+ {
70
+ name: 'chunk',
71
+ short: 'c',
72
+ description: 'Chunk index, as reported by search',
73
+ type: 'number',
74
+ },
75
+ {
76
+ name: 'anchor',
77
+ short: 'a',
78
+ description: 'Citation anchor from a search hit',
79
+ type: 'string',
80
+ },
81
+ { name: 'full', description: 'Print the whole passage, not just the quote', type: 'boolean' },
82
+ ...STORE_OPTIONS,
83
+ ],
84
+ examples: [
85
+ {
86
+ command: 'monomind doc cite https://example.com/post --chunk 2',
87
+ description: 'Quote chunk 2 of a captured page',
88
+ },
89
+ {
90
+ command: 'monomind doc cite ./readable.md --anchor 3f1a9c7b21de#3200-6400 --json',
91
+ description: 'Resolve an anchor from a search result',
92
+ },
93
+ ],
94
+ action: async (ctx) => {
95
+ const target = ctx.args[0];
96
+ if (!target) {
97
+ output.printError('Document required: monomind doc cite <url|docId|path> --chunk <n>');
98
+ return { success: false, exitCode: 1 };
99
+ }
100
+ const store = await resolveStore(ctx, target);
101
+ const { resolveCitation } = await import('../knowledge/citation.js');
102
+ try {
103
+ const cite = await resolveCitation(target, {
104
+ rootDir: store.root,
105
+ scope: store.scope,
106
+ ...(ctx.flags.anchor ? { anchor: String(ctx.flags.anchor) } : {}),
107
+ ...(ctx.flags.chunk !== undefined ? { chunkIndex: Number(ctx.flags.chunk) } : {}),
108
+ });
109
+ if (asJson(ctx))
110
+ return printJson(cite);
111
+ output.writeln();
112
+ output.writeln(` ${output.bold(`"${ctx.flags.full ? cite.passage.trim() : cite.quote}"`)}`);
113
+ output.writeln();
114
+ output.writeln(` ${output.highlight(cite.title ?? path.basename(cite.filePath))}`);
115
+ if (cite.citeUrl)
116
+ output.writeln(` ${cite.citeUrl}`);
117
+ const when = cite.capturedAt
118
+ ? `captured ${cite.capturedAt}`
119
+ : `indexed from ${cite.filePath}`;
120
+ output.writeln(output.dim(` ${when} · chunk ${cite.chunkIndex} · chars ${cite.startChar}-${cite.endChar} · ${cite.anchor}`));
121
+ if (cite.stale) {
122
+ // Never presented as if it were still true: the document has been
123
+ // re-captured since these offsets were measured.
124
+ output.printWarning(' This anchor was cut against an older version of the page — the passage may have moved.');
125
+ }
126
+ output.writeln();
127
+ return { success: true, data: cite };
128
+ }
129
+ catch (err) {
130
+ output.printError(String(err instanceof Error ? err.message : err));
131
+ return { success: false, exitCode: 1 };
132
+ }
133
+ },
134
+ };
135
+ // ── doc related (RCL-03) ───────────────────────────────────────────
136
+ const relatedCommand = {
137
+ name: 'related',
138
+ description: 'What else in the brain relates to this page',
139
+ options: [
140
+ {
141
+ name: 'limit',
142
+ short: 'l',
143
+ description: 'Max results (default: 3)',
144
+ type: 'number',
145
+ default: 3,
146
+ },
147
+ {
148
+ name: 'timeout',
149
+ description: 'Budget in ms for the similarity pass (default: 2000)',
150
+ type: 'number',
151
+ },
152
+ { name: 'min-score', description: 'Minimum similarity (default: 0.25)', type: 'number' },
153
+ ...STORE_OPTIONS,
154
+ ],
155
+ examples: [
156
+ {
157
+ command: 'monomind doc related https://example.com/post --limit 3 --json',
158
+ description: 'What the extension asks at capture time',
159
+ },
160
+ {
161
+ command: 'monomind doc related ~/.monomind/inbox/2026-09-21-post/readable.md',
162
+ description: 'Ask about a capture that has not been ingested yet',
163
+ },
164
+ ],
165
+ action: async (ctx) => {
166
+ const target = ctx.args[0];
167
+ if (!target) {
168
+ output.printError('Page required: monomind doc related <url|docId|path>');
169
+ return { success: false, exitCode: 1 };
170
+ }
171
+ const store = await resolveStore(ctx, target);
172
+ const { relatedDocuments } = await import('../knowledge/related.js');
173
+ const related = await relatedDocuments(target, {
174
+ rootDir: store.root,
175
+ scope: store.scope,
176
+ limit: Number(ctx.flags.limit || 3),
177
+ ...(ctx.flags.timeout !== undefined ? { timeoutMs: Number(ctx.flags.timeout) } : {}),
178
+ ...(ctx.flags['min-score'] !== undefined ? { minScore: Number(ctx.flags['min-score']) } : {}),
179
+ });
180
+ if (asJson(ctx))
181
+ return printJson(related);
182
+ if (!related.length) {
183
+ output.writeln(output.dim('Nothing related yet.'));
184
+ return { success: true, data: [] };
185
+ }
186
+ output.writeln(output.bold(`${related.length} related:`));
187
+ for (let i = 0; i < related.length; i++) {
188
+ const r = related[i];
189
+ output.writeln(` ${output.highlight(`${i + 1}.`)} ${r.title} ${output.dim(`(${r.score.toFixed(2)}) [${r.reasons.join(', ')}]`)}`);
190
+ if (r.url)
191
+ output.writeln(output.dim(` ${r.url}`));
192
+ if (r.excerpt)
193
+ output.writeln(output.dim(` ${r.excerpt}`));
194
+ }
195
+ return { success: true, data: related };
196
+ },
197
+ };
198
+ // ── doc watch (RCL-08) ─────────────────────────────────────────────
199
+ const watchAddCommand = {
200
+ name: 'add',
201
+ description: 'Watch a captured page for change',
202
+ options: [
203
+ {
204
+ name: 'interval',
205
+ short: 'i',
206
+ description: 'How often a check should consider it due: 30m, 6h, 2d (default: 1d)',
207
+ type: 'string',
208
+ },
209
+ { name: 'label', description: 'Name for this watch (default: the page title)', type: 'string' },
210
+ ...STORE_OPTIONS,
211
+ ],
212
+ examples: [
213
+ {
214
+ command: 'monomind doc watch add https://example.com/pricing --interval 6h',
215
+ description: 'Notice the next time this page is re-captured',
216
+ },
217
+ ],
218
+ action: async (ctx) => {
219
+ const target = ctx.args[0];
220
+ if (!target) {
221
+ output.printError('Page required: monomind doc watch add <url|docId|path>');
222
+ return { success: false, exitCode: 1 };
223
+ }
224
+ const store = await resolveStore(ctx, target);
225
+ const { addWatch } = await import('../knowledge/watch.js');
226
+ try {
227
+ const entry = await addWatch(store.root, target, {
228
+ scope: store.scope,
229
+ ...(ctx.flags.interval ? { interval: String(ctx.flags.interval) } : {}),
230
+ ...(ctx.flags.label ? { label: String(ctx.flags.label) } : {}),
231
+ });
232
+ if (asJson(ctx))
233
+ return printJson(entry);
234
+ output.writeln(`Watching ${output.highlight(entry.label ?? entry.url)} every ${entry.intervalSeconds}s`);
235
+ if (!entry.lastHash) {
236
+ output.writeln(output.dim(' Nothing indexed under it yet — the first check will say so.'));
237
+ }
238
+ return { success: true, data: entry };
239
+ }
240
+ catch (err) {
241
+ output.printError(String(err instanceof Error ? err.message : err));
242
+ return { success: false, exitCode: 1 };
243
+ }
244
+ },
245
+ };
246
+ const watchListCommand = {
247
+ name: 'list',
248
+ description: 'Show the watch list',
249
+ aliases: ['ls'],
250
+ options: STORE_OPTIONS,
251
+ action: async (ctx) => {
252
+ const store = await resolveStore(ctx);
253
+ const { listWatches } = await import('../knowledge/watch.js');
254
+ const project = listWatches(store.root);
255
+ // With no flag, show both stores: a watch added for a capture lives in the
256
+ // personal brain, and an empty list here would be a lie.
257
+ const includeGlobal = !ctx.flags.global && !ctx.flags.scope && !store.global;
258
+ const watches = includeGlobal ? [...project, ...listWatches(globalStore().root)] : project;
259
+ if (asJson(ctx))
260
+ return printJson(watches);
261
+ if (!watches.length) {
262
+ output.writeln(output.dim('No watches. Add one: monomind doc watch add <url>'));
263
+ return { success: true, data: [] };
264
+ }
265
+ output.writeln(output.bold(`${watches.length} watched:`));
266
+ for (const w of watches) {
267
+ const last = w.lastCheckedAt ? `checked ${w.lastCheckedAt.slice(0, 16)}Z` : 'never checked';
268
+ output.writeln(` ${output.highlight(w.label ?? w.url)} ${output.dim(`every ${w.intervalSeconds}s · ${last} · ${w.scope}`)}`);
269
+ if (w.label)
270
+ output.writeln(output.dim(` ${w.url}`));
271
+ }
272
+ return { success: true, data: watches };
273
+ },
274
+ };
275
+ const watchRemoveCommand = {
276
+ name: 'remove',
277
+ description: 'Stop watching a page',
278
+ aliases: ['rm'],
279
+ options: STORE_OPTIONS,
280
+ action: async (ctx) => {
281
+ const target = ctx.args[0];
282
+ if (!target) {
283
+ output.printError('Page required: monomind doc watch remove <url|label>');
284
+ return { success: false, exitCode: 1 };
285
+ }
286
+ const { removeWatch } = await import('../knowledge/watch.js');
287
+ const store = await resolveStore(ctx, target);
288
+ const removed = removeWatch(store.root, target) ||
289
+ (!ctx.flags.global && !ctx.flags.scope && removeWatch(globalStore().root, target));
290
+ if (!removed) {
291
+ output.printError(`Not watched: ${target}`);
292
+ return { success: false, exitCode: 1 };
293
+ }
294
+ output.writeln(`Stopped watching ${output.highlight(target)}`);
295
+ return { success: true, data: { url: target } };
296
+ },
297
+ };
298
+ const watchCheckCommand = {
299
+ name: 'check',
300
+ description: 'Report which watched pages changed since the last check',
301
+ options: [
302
+ {
303
+ name: 'force',
304
+ short: 'f',
305
+ description: 'Check every watch, ignoring its interval',
306
+ type: 'boolean',
307
+ },
308
+ { name: 'dry-run', description: 'Report without moving the baselines', type: 'boolean' },
309
+ ...STORE_OPTIONS,
310
+ ],
311
+ examples: [
312
+ { command: 'monomind doc watch check --json', description: 'What a scheduler calls' },
313
+ {
314
+ command: 'monomind doc watch check --force',
315
+ description: 'Check everything now, whatever the intervals say',
316
+ },
317
+ ],
318
+ action: async (ctx) => {
319
+ const store = await resolveStore(ctx);
320
+ const { checkWatches } = await import('../knowledge/watch.js');
321
+ const opts = {
322
+ force: ctx.flags.force === true,
323
+ dryRun: ctx.flags['dry-run'] === true,
324
+ };
325
+ const reports = [await checkWatches(store.root, opts)];
326
+ if (!ctx.flags.global && !ctx.flags.scope && !store.global) {
327
+ reports.push(await checkWatches(globalStore().root, opts));
328
+ }
329
+ const report = {
330
+ checked: reports.reduce((n, r) => n + r.checked, 0),
331
+ changed: reports.reduce((n, r) => n + r.changed, 0),
332
+ skipped: reports.reduce((n, r) => n + r.skipped, 0),
333
+ results: reports.flatMap((r) => r.results),
334
+ };
335
+ if (asJson(ctx))
336
+ return printJson(report);
337
+ if (!report.results.length) {
338
+ output.writeln(output.dim('No watches. Add one: monomind doc watch add <url>'));
339
+ return { success: true, data: report };
340
+ }
341
+ const changed = report.results.filter((r) => r.status === 'changed');
342
+ if (!changed.length) {
343
+ output.writeln(`Nothing changed ${output.dim(`(${report.checked} checked, ${report.skipped} not due)`)}`);
344
+ }
345
+ for (const r of changed) {
346
+ output.writeln(output.bold(`${r.title ?? r.url} changed`));
347
+ output.writeln(output.dim(` ${r.url}${r.version ? ` · version ${r.version}` : ''}`));
348
+ if (r.diff) {
349
+ output.writeln(` ${r.diff.summary}`);
350
+ for (const c of r.diff.changed.slice(0, 5)) {
351
+ if (c.sample)
352
+ output.writeln(output.dim(` ${c.key}: ${c.sample}`));
353
+ }
354
+ }
355
+ else if (r.note) {
356
+ output.writeln(output.dim(` ${r.note}`));
357
+ }
358
+ }
359
+ for (const r of report.results.filter((x) => x.status === 'missing')) {
360
+ output.writeln(output.dim(`${r.url}: ${r.note}`));
361
+ }
362
+ return { success: true, data: report };
363
+ },
364
+ };
365
+ const watchCommand = {
366
+ name: 'watch',
367
+ description: 'Watch captured pages for change (checked on demand — no daemon)',
368
+ subcommands: [watchAddCommand, watchListCommand, watchRemoveCommand, watchCheckCommand],
369
+ options: [],
370
+ examples: [
371
+ {
372
+ command: 'monomind doc watch add https://example.com/pricing -i 6h',
373
+ description: 'Watch a page',
374
+ },
375
+ { command: 'monomind doc watch check --json', description: 'What changed since last time' },
376
+ ],
377
+ action: async () => {
378
+ output.writeln('Usage: monomind doc watch <add|list|remove|check> [options]');
379
+ output.printList([
380
+ `${output.highlight('add')} - Watch a captured page for change`,
381
+ `${output.highlight('list')} - Show the watch list`,
382
+ `${output.highlight('remove')} - Stop watching a page`,
383
+ `${output.highlight('check')} - Report what changed (invoked by a scheduler, not a daemon)`,
384
+ ]);
385
+ return { success: true };
386
+ },
387
+ };
388
+ export const libraryCommands = [citeCommand, relatedCommand, watchCommand];
389
+ export { citeCommand, relatedCommand, watchCommand };
390
+ //# sourceMappingURL=doc-library.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc-library.js","sourceRoot":"","sources":["../../../src/commands/doc-library.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * `monomind doc list` — browsing the library rather than searching it
3
+ * (RCL-09).
4
+ *
5
+ * @module v1/cli/commands/doc-list
6
+ */
7
+ import type { Command } from '../types.js';
8
+ export declare const listDocCommand: Command;
9
+ //# sourceMappingURL=doc-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc-list.d.ts","sourceRoot":"","sources":["../../../src/commands/doc-list.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAiC,MAAM,aAAa,CAAC;AAG1E,eAAO,MAAM,cAAc,EAAE,OA2G5B,CAAC"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * `monomind doc list` — browsing the library rather than searching it
3
+ * (RCL-09).
4
+ *
5
+ * @module v1/cli/commands/doc-list
6
+ */
7
+ import { getGlobalBrainDir, getProjectRoot } from '../memory/memory-bridge.js';
8
+ import { output } from '../output.js';
9
+ import { FILTER_OPTIONS, hasFilter, libraryFilterFromFlags } from './doc-filters.js';
10
+ export const listDocCommand = {
11
+ name: 'list',
12
+ description: 'Browse indexed documents and captures (filter by site, tag, date, source)',
13
+ aliases: ['library'],
14
+ options: [
15
+ { name: 'scope', short: 's', description: 'Knowledge scope', type: 'string' },
16
+ {
17
+ name: 'global',
18
+ short: 'g',
19
+ description: 'List the personal cross-project global brain',
20
+ type: 'boolean',
21
+ },
22
+ ...FILTER_OPTIONS,
23
+ {
24
+ name: 'sort',
25
+ description: 'captured (default) | indexed | title | path | size',
26
+ type: 'string',
27
+ default: 'captured',
28
+ },
29
+ { name: 'asc', description: 'Oldest first (default: newest first)', type: 'boolean' },
30
+ { name: 'limit', short: 'l', description: 'Max rows', type: 'number' },
31
+ { name: 'json', description: 'Emit JSON for programmatic use', type: 'boolean' },
32
+ { name: 'facets', description: 'Show site/tag/collection/source counts', type: 'boolean' },
33
+ ],
34
+ examples: [
35
+ { command: 'monomind doc list', description: 'Everything indexed, newest capture first' },
36
+ {
37
+ command: 'monomind doc list --site example.com --since 7d --json',
38
+ description: 'This week from one site, for a GUI or a script',
39
+ },
40
+ {
41
+ command: 'monomind doc list --tag reading --source extension --limit 20',
42
+ description: 'A shelf of the library',
43
+ },
44
+ ],
45
+ action: async (ctx) => {
46
+ const { listDocuments } = await import('../knowledge/document-pipeline.js');
47
+ const { libraryFacets, listLibrary } = await import('../knowledge/library.js');
48
+ const isGlobal = ctx.flags.global === true;
49
+ const scope = isGlobal ? 'global' : ctx.flags.scope ? String(ctx.flags.scope) : undefined;
50
+ const docs = listDocuments(isGlobal ? getGlobalBrainDir() : getProjectRoot(), scope);
51
+ const filter = libraryFilterFromFlags(ctx);
52
+ const rows = listLibrary(docs, {
53
+ ...filter,
54
+ sort: String(ctx.flags.sort || 'captured'),
55
+ order: ctx.flags.asc === true ? 'asc' : 'desc',
56
+ ...(ctx.flags.limit ? { limit: Number(ctx.flags.limit) } : {}),
57
+ });
58
+ if (ctx.flags.json === true) {
59
+ output.writeln(JSON.stringify(ctx.flags.facets === true ? { rows, facets: libraryFacets(docs) } : rows, null, 2));
60
+ return { success: true, data: rows };
61
+ }
62
+ if (!rows.length) {
63
+ output.writeln(output.dim(docs.length
64
+ ? 'No documents match those filters.'
65
+ : 'No documents indexed. Run: monomind doc ingest <path>'));
66
+ return { success: true, data: [] };
67
+ }
68
+ const qualifier = hasFilter(filter) ? ` of ${docs.length}` : '';
69
+ output.writeln(output.bold(`${rows.length}${qualifier} documents:`));
70
+ output.writeln();
71
+ for (const row of rows) {
72
+ const size = row.size > 1024 * 1024
73
+ ? `${(row.size / 1024 / 1024).toFixed(1)}MB`
74
+ : `${(row.size / 1024).toFixed(0)}KB`;
75
+ const facets = [
76
+ row.site,
77
+ row.source,
78
+ row.collection,
79
+ ...(row.tags.length ? [`#${row.tags.join(' #')}`] : []),
80
+ ].filter(Boolean);
81
+ output.writeln(` ${output.highlight(row.title)} ${output.dim(`${row.capturedAt.slice(0, 10)} · ${row.chunkCount} chunks · ${size} · ${row.scope}`)}`);
82
+ if (facets.length)
83
+ output.writeln(output.dim(` ${facets.join(' · ')}`));
84
+ if (row.url)
85
+ output.writeln(output.dim(` ${row.url}`));
86
+ }
87
+ if (ctx.flags.facets === true) {
88
+ const facets = libraryFacets(docs);
89
+ output.writeln();
90
+ for (const [name, values] of Object.entries(facets)) {
91
+ if (!values.length)
92
+ continue;
93
+ output.writeln(output.dim(` ${name}: ${values.map((v) => `${v.value} (${v.count})`).join(', ')}`));
94
+ }
95
+ }
96
+ return { success: true, data: rows };
97
+ },
98
+ };
99
+ //# sourceMappingURL=doc-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc-list.js","sourceRoot":"","sources":["../../../src/commands/doc-list.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAErF,MAAM,CAAC,MAAM,cAAc,GAAY;IACrC,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,2EAA2E;IACxF,OAAO,EAAE,CAAC,SAAS,CAAC;IACpB,OAAO,EAAE;QACP,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,iBAAiB,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC7E;YACE,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,GAAG;YACV,WAAW,EAAE,8CAA8C;YAC3D,IAAI,EAAE,SAAS;SAChB;QACD,GAAG,cAAc;QACjB;YACE,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,oDAAoD;YACjE,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,UAAU;SACpB;QACD,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,sCAAsC,EAAE,IAAI,EAAE,SAAS,EAAE;QACrF,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE;QACtE,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,gCAAgC,EAAE,IAAI,EAAE,SAAS,EAAE;QAChF,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wCAAwC,EAAE,IAAI,EAAE,SAAS,EAAE;KAC3F;IACD,QAAQ,EAAE;QACR,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,0CAA0C,EAAE;QACzF;YACE,OAAO,EAAE,wDAAwD;YACjE,WAAW,EAAE,gDAAgD;SAC9D;QACD;YACE,OAAO,EAAE,+DAA+D;YACxE,WAAW,EAAE,wBAAwB;SACtC;KACF;IACD,MAAM,EAAE,KAAK,EAAE,GAAmB,EAA0B,EAAE;QAC5D,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,mCAAmC,CAAC,CAAC;QAC5E,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;QAC/E,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC;QAC3C,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1F,MAAM,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,KAAK,CAAC,CAAC;QACrF,MAAM,MAAM,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;QAE3C,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE;YAC7B,GAAG,MAAM;YACT,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,UAAU,CAAgB;YACzD,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM;YAC9C,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/D,CAAC,CAAC;QAEH,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YAC5B,MAAM,CAAC,OAAO,CACZ,IAAI,CAAC,SAAS,CACZ,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EACxE,IAAI,EACJ,CAAC,CACF,CACF,CAAC;YACF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACvC,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,CAAC,OAAO,CACZ,MAAM,CAAC,GAAG,CACR,IAAI,CAAC,MAAM;gBACT,CAAC,CAAC,mCAAmC;gBACrC,CAAC,CAAC,uDAAuD,CAC5D,CACF,CAAC;YACF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QACrC,CAAC;QAED,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,SAAS,aAAa,CAAC,CAAC,CAAC;QACrE,MAAM,CAAC,OAAO,EAAE,CAAC;QAEjB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,IAAI,GACR,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI;gBACpB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;gBAC5C,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;YAC1C,MAAM,MAAM,GAAG;gBACb,GAAG,CAAC,IAAI;gBACR,GAAG,CAAC,MAAM;gBACV,GAAG,CAAC,UAAU;gBACd,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aACxD,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAClB,MAAM,CAAC,OAAO,CACZ,KAAK,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,UAAU,aAAa,IAAI,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,CACvI,CAAC;YACF,IAAI,MAAM,CAAC,MAAM;gBAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;YAC3E,IAAI,GAAG,CAAC,GAAG;gBAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;YACnC,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACpD,IAAI,CAAC,MAAM,CAAC,MAAM;oBAAE,SAAS;gBAC7B,MAAM,CAAC,OAAO,CACZ,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CACpF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACvC,CAAC;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"doc.d.ts","sourceRoot":"","sources":["../../../src/commands/doc.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAiC,MAAM,aAAa,CAAC;AA4wB1E,eAAO,MAAM,UAAU,EAAE,OA0CxB,CAAC;eAEa,UAAU"}
1
+ {"version":3,"file":"doc.d.ts","sourceRoot":"","sources":["../../../src/commands/doc.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAiC,MAAM,aAAa,CAAC;AA0wB1E,eAAO,MAAM,UAAU,EAAE,OAuDxB,CAAC;eAEa,UAAU"}