@goondocks/myco 0.4.3 → 0.4.4

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 (90) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/dist/chunk-2AMAOSRF.js +105 -0
  4. package/dist/chunk-2AMAOSRF.js.map +1 -0
  5. package/dist/chunk-3F63SFZZ.js +381 -0
  6. package/dist/chunk-3F63SFZZ.js.map +1 -0
  7. package/dist/{chunk-WBT5DWGC.js → chunk-42R7KVAW.js} +2 -2
  8. package/dist/{chunk-GFBG73P4.js → chunk-5FIIK27E.js} +3 -3
  9. package/dist/{chunk-XCPQHC4X.js → chunk-6CAKKNGD.js} +2 -2
  10. package/dist/{chunk-I7PNZEBO.js → chunk-6LTNFMXO.js} +12 -1
  11. package/dist/{chunk-I7PNZEBO.js.map → chunk-6LTNFMXO.js.map} +1 -1
  12. package/dist/{chunk-V2OWD2VV.js → chunk-DKHYIA2V.js} +24 -146
  13. package/dist/chunk-DKHYIA2V.js.map +1 -0
  14. package/dist/{chunk-BNIYWCST.js → chunk-EQVQEFOA.js} +2 -2
  15. package/dist/{chunk-FPEDTLQ6.js → chunk-JJL6AMDA.js} +3 -101
  16. package/dist/chunk-JJL6AMDA.js.map +1 -0
  17. package/dist/{chunk-OUFSLZTX.js → chunk-KDWBZSOB.js} +21 -9
  18. package/dist/chunk-KDWBZSOB.js.map +1 -0
  19. package/dist/{chunk-67R6EMYD.js → chunk-OPO47BVS.js} +31 -52
  20. package/dist/chunk-OPO47BVS.js.map +1 -0
  21. package/dist/{chunk-IYFKPSRP.js → chunk-OSZRLHIJ.js} +3 -3
  22. package/dist/chunk-PD7LV22R.js +150 -0
  23. package/dist/chunk-PD7LV22R.js.map +1 -0
  24. package/dist/{chunk-JBD5KP5G.js → chunk-TDLQBGKA.js} +6 -2
  25. package/dist/chunk-TDLQBGKA.js.map +1 -0
  26. package/dist/{chunk-2GJFTIWX.js → chunk-TK2ZYIAL.js} +2 -2
  27. package/dist/{chunk-ZCBL5HER.js → chunk-XIIVIMFC.js} +2 -2
  28. package/dist/{cli-PMOFCZQL.js → cli-WOM4Z2Z4.js} +21 -18
  29. package/dist/cli-WOM4Z2Z4.js.map +1 -0
  30. package/dist/{client-5SUO2UYH.js → client-XCNF6NFT.js} +5 -5
  31. package/dist/{detect-providers-IRL2TTLK.js → detect-providers-CQSPTW2B.js} +3 -3
  32. package/dist/digest-WTS6S4XP.js +96 -0
  33. package/dist/digest-WTS6S4XP.js.map +1 -0
  34. package/dist/{init-NUF5UBUJ.js → init-VPLUEULI.js} +5 -5
  35. package/dist/{main-2XEBVUR6.js → main-OGXH6XWO.js} +230 -575
  36. package/dist/main-OGXH6XWO.js.map +1 -0
  37. package/dist/{rebuild-E6YFIRYZ.js → rebuild-Z4YUY6HT.js} +8 -7
  38. package/dist/{rebuild-E6YFIRYZ.js.map → rebuild-Z4YUY6HT.js.map} +1 -1
  39. package/dist/{reprocess-7G7KQWCN.js → reprocess-DMGPZTLC.js} +91 -20
  40. package/dist/reprocess-DMGPZTLC.js.map +1 -0
  41. package/dist/{restart-ABW4ZK3P.js → restart-QCQQ55KX.js} +6 -6
  42. package/dist/{search-MPD7SFK6.js → search-ACEFQOUW.js} +6 -6
  43. package/dist/{server-NZLZRITH.js → server-BQ3DWKZ6.js} +16 -14
  44. package/dist/{server-NZLZRITH.js.map → server-BQ3DWKZ6.js.map} +1 -1
  45. package/dist/{session-start-YB4A4PZB.js → session-start-BXRTKS4X.js} +6 -6
  46. package/dist/{setup-digest-K732MGOJ.js → setup-digest-EJXSQGZ5.js} +5 -5
  47. package/dist/{setup-llm-XCCH5LYD.js → setup-llm-P3MLWUDR.js} +5 -5
  48. package/dist/src/cli.js +4 -4
  49. package/dist/src/daemon/main.js +4 -4
  50. package/dist/src/hooks/post-tool-use.js +5 -5
  51. package/dist/src/hooks/session-end.js +5 -5
  52. package/dist/src/hooks/session-start.js +4 -4
  53. package/dist/src/hooks/stop.js +6 -6
  54. package/dist/src/hooks/stop.js.map +1 -1
  55. package/dist/src/hooks/user-prompt-submit.js +5 -5
  56. package/dist/src/mcp/server.js +4 -4
  57. package/dist/src/prompts/extraction.md +1 -1
  58. package/dist/src/prompts/summary.md +1 -11
  59. package/dist/{stats-6G7SN5YZ.js → stats-3FAP5FKV.js} +5 -5
  60. package/dist/{verify-JFHQH55Z.js → verify-3FTCOULE.js} +4 -4
  61. package/dist/{version-5B2TWXQJ.js → version-AL67JH7X.js} +4 -4
  62. package/package.json +1 -1
  63. package/skills/setup/SKILL.md +56 -28
  64. package/skills/setup/references/model-recommendations.md +49 -43
  65. package/dist/chunk-67R6EMYD.js.map +0 -1
  66. package/dist/chunk-FPEDTLQ6.js.map +0 -1
  67. package/dist/chunk-JBD5KP5G.js.map +0 -1
  68. package/dist/chunk-OUFSLZTX.js.map +0 -1
  69. package/dist/chunk-V2OWD2VV.js.map +0 -1
  70. package/dist/cli-PMOFCZQL.js.map +0 -1
  71. package/dist/main-2XEBVUR6.js.map +0 -1
  72. package/dist/reprocess-7G7KQWCN.js.map +0 -1
  73. /package/dist/{chunk-WBT5DWGC.js.map → chunk-42R7KVAW.js.map} +0 -0
  74. /package/dist/{chunk-GFBG73P4.js.map → chunk-5FIIK27E.js.map} +0 -0
  75. /package/dist/{chunk-XCPQHC4X.js.map → chunk-6CAKKNGD.js.map} +0 -0
  76. /package/dist/{chunk-BNIYWCST.js.map → chunk-EQVQEFOA.js.map} +0 -0
  77. /package/dist/{chunk-IYFKPSRP.js.map → chunk-OSZRLHIJ.js.map} +0 -0
  78. /package/dist/{chunk-2GJFTIWX.js.map → chunk-TK2ZYIAL.js.map} +0 -0
  79. /package/dist/{chunk-ZCBL5HER.js.map → chunk-XIIVIMFC.js.map} +0 -0
  80. /package/dist/{client-5SUO2UYH.js.map → client-XCNF6NFT.js.map} +0 -0
  81. /package/dist/{detect-providers-IRL2TTLK.js.map → detect-providers-CQSPTW2B.js.map} +0 -0
  82. /package/dist/{init-NUF5UBUJ.js.map → init-VPLUEULI.js.map} +0 -0
  83. /package/dist/{restart-ABW4ZK3P.js.map → restart-QCQQ55KX.js.map} +0 -0
  84. /package/dist/{search-MPD7SFK6.js.map → search-ACEFQOUW.js.map} +0 -0
  85. /package/dist/{session-start-YB4A4PZB.js.map → session-start-BXRTKS4X.js.map} +0 -0
  86. /package/dist/{setup-digest-K732MGOJ.js.map → setup-digest-EJXSQGZ5.js.map} +0 -0
  87. /package/dist/{setup-llm-XCCH5LYD.js.map → setup-llm-P3MLWUDR.js.map} +0 -0
  88. /package/dist/{stats-6G7SN5YZ.js.map → stats-3FAP5FKV.js.map} +0 -0
  89. /package/dist/{verify-JFHQH55Z.js.map → verify-3FTCOULE.js.map} +0 -0
  90. /package/dist/{version-5B2TWXQJ.js.map → version-AL67JH7X.js.map} +0 -0
@@ -1,9 +1,11 @@
1
1
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
2
  import {
3
3
  BufferProcessor,
4
+ SUMMARIZATION_FAILED_MARKER,
4
5
  TranscriptMiner,
5
6
  writeObservationNotes
6
- } from "./chunk-V2OWD2VV.js";
7
+ } from "./chunk-DKHYIA2V.js";
8
+ import "./chunk-PD7LV22R.js";
7
9
  import {
8
10
  EMBEDDING_BATCH_CONCURRENCY,
9
11
  LLM_BATCH_CONCURRENCY,
@@ -12,33 +14,36 @@ import {
12
14
  import {
13
15
  VaultWriter,
14
16
  bareSessionId,
17
+ callout,
18
+ extractSection,
15
19
  sessionNoteId
16
- } from "./chunk-I7PNZEBO.js";
20
+ } from "./chunk-6LTNFMXO.js";
17
21
  import {
18
22
  indexNote,
19
23
  require_gray_matter
20
- } from "./chunk-FPEDTLQ6.js";
24
+ } from "./chunk-JJL6AMDA.js";
21
25
  import {
22
26
  generateEmbedding
23
27
  } from "./chunk-RGVBGTD6.js";
24
- import {
25
- createEmbeddingProvider,
26
- createLlmProvider
27
- } from "./chunk-IYFKPSRP.js";
28
28
  import {
29
29
  VectorIndex
30
30
  } from "./chunk-XQXXF6MU.js";
31
+ import "./chunk-2AMAOSRF.js";
32
+ import {
33
+ createEmbeddingProvider,
34
+ createLlmProvider
35
+ } from "./chunk-OSZRLHIJ.js";
31
36
  import {
32
37
  initFts
33
38
  } from "./chunk-6FQISQNA.js";
34
39
  import {
35
40
  MycoIndex
36
41
  } from "./chunk-AK6GNLPV.js";
37
- import "./chunk-GFBG73P4.js";
42
+ import "./chunk-5FIIK27E.js";
38
43
  import {
39
44
  parseStringFlag
40
45
  } from "./chunk-SAKJMNSR.js";
41
- import "./chunk-67R6EMYD.js";
46
+ import "./chunk-OPO47BVS.js";
42
47
  import {
43
48
  loadConfig
44
49
  } from "./chunk-TBRZAJ7W.js";
@@ -46,10 +51,10 @@ import "./chunk-6UJWI4IW.js";
46
51
  import {
47
52
  claudeCodeAdapter,
48
53
  createPerProjectAdapter
49
- } from "./chunk-BNIYWCST.js";
54
+ } from "./chunk-EQVQEFOA.js";
50
55
  import {
51
56
  EMBEDDING_INPUT_LIMIT
52
- } from "./chunk-JBD5KP5G.js";
57
+ } from "./chunk-TDLQBGKA.js";
53
58
  import {
54
59
  __toESM
55
60
  } from "./chunk-PZUWP5VK.js";
@@ -58,8 +63,17 @@ import {
58
63
  import fs from "fs";
59
64
  import path from "path";
60
65
  var import_gray_matter = __toESM(require_gray_matter(), 1);
66
+ var CONVERSATION_HEADING = "## Conversation";
67
+ function updateTitleAndSummary(body, newTitle, newNarrative) {
68
+ let updated = body.replace(/^# .*/m, `# ${newTitle}`);
69
+ const summaryCallout = callout("abstract", "Summary", newNarrative);
70
+ updated = updated.replace(/> \[!abstract\] Summary\n(?:> .*\n?)*/m, summaryCallout + "\n");
71
+ return updated;
72
+ }
61
73
  async function run(args, vaultDir) {
62
74
  const sessionFilter = parseStringFlag(args, "--session");
75
+ const dateFilter = parseStringFlag(args, "--date");
76
+ const failedOnly = args.includes("--failed");
63
77
  const skipLlm = args.includes("--index-only");
64
78
  const config = loadConfig(vaultDir);
65
79
  const index = new MycoIndex(path.join(vaultDir, "index.db"));
@@ -73,7 +87,7 @@ async function run(args, vaultDir) {
73
87
  } catch (e) {
74
88
  console.log(`Vector index unavailable: ${e.message}`);
75
89
  }
76
- const processor = llmProvider ? new BufferProcessor(llmProvider, config.intelligence.llm.context_window) : null;
90
+ const processor = llmProvider ? new BufferProcessor(llmProvider, config.intelligence.llm.context_window, config.capture) : null;
77
91
  const writer = new VaultWriter(vaultDir);
78
92
  const miner = new TranscriptMiner({
79
93
  additionalAdapters: config.capture.transcript_paths.map(
@@ -89,6 +103,7 @@ async function run(args, vaultDir) {
89
103
  }
90
104
  const sessionFiles = [];
91
105
  for (const dateDir of fs.readdirSync(sessionsDir)) {
106
+ if (dateFilter && dateDir !== dateFilter) continue;
92
107
  const datePath = path.join(sessionsDir, dateDir);
93
108
  if (!fs.statSync(datePath).isDirectory()) continue;
94
109
  for (const file of fs.readdirSync(datePath)) {
@@ -102,16 +117,23 @@ async function run(args, vaultDir) {
102
117
  }
103
118
  }
104
119
  if (sessionFiles.length === 0) {
105
- console.log(sessionFilter ? `No sessions matching "${sessionFilter}" found.` : "No sessions found.");
120
+ const filters = [sessionFilter && `session="${sessionFilter}"`, dateFilter && `date="${dateFilter}"`].filter(Boolean);
121
+ console.log(filters.length ? `No sessions matching ${filters.join(", ")} found.` : "No sessions found.");
106
122
  index.close();
107
123
  vectorIndex?.close();
108
124
  return;
109
125
  }
110
- const tasks = sessionFiles.map(({ relativePath, sessionId }) => {
111
- const raw = fs.readFileSync(path.join(vaultDir, relativePath), "utf-8");
112
- const { data: frontmatter } = (0, import_gray_matter.default)(raw);
126
+ let tasks = [];
127
+ for (const { relativePath, sessionId } of sessionFiles) {
128
+ const rawContent = fs.readFileSync(path.join(vaultDir, relativePath), "utf-8");
129
+ const { data: frontmatter, content: body } = (0, import_gray_matter.default)(rawContent);
130
+ const hasFailed = body.includes(SUMMARIZATION_FAILED_MARKER);
131
+ if (failedOnly && !hasFailed) continue;
113
132
  const bare = bareSessionId(sessionId);
114
133
  const turnsResult = miner.getAllTurnsWithSource(bare);
134
+ const conversationSection = extractSection(body, CONVERSATION_HEADING);
135
+ const fmEnd = rawContent.indexOf("---", 4);
136
+ const frontmatterBlock = rawContent.slice(0, fmEnd + 3);
115
137
  const batchEvents = turnsResult && turnsResult.turns.length > 0 ? turnsResult.turns.map((t) => ({
116
138
  type: "turn",
117
139
  prompt: t.prompt,
@@ -119,8 +141,19 @@ async function run(args, vaultDir) {
119
141
  response: t.aiResponse ?? "",
120
142
  timestamp: t.timestamp
121
143
  })) : null;
122
- return { relativePath, sessionId, bare, frontmatter, batchEvents, turnCount: turnsResult?.turns.length ?? 0 };
123
- });
144
+ tasks.push({ relativePath, sessionId, bare, frontmatter, frontmatterBlock, body, conversationSection, batchEvents, turnCount: turnsResult?.turns.length ?? 0, hasFailed });
145
+ }
146
+ if (failedOnly) {
147
+ console.log(`Found ${tasks.length} failed session(s) out of ${sessionFiles.length} checked.
148
+ `);
149
+ }
150
+ if (tasks.length === 0) {
151
+ const filters = [sessionFilter && `session="${sessionFilter}"`, dateFilter && `date="${dateFilter}"`, failedOnly && "failed"].filter(Boolean);
152
+ console.log(filters.length ? `No sessions matching ${filters.join(", ")} found.` : "No sessions found.");
153
+ index.close();
154
+ vectorIndex?.close();
155
+ return;
156
+ }
124
157
  console.log(`Reprocessing ${tasks.length} session(s)...
125
158
  `);
126
159
  const embedJobs = [];
@@ -170,6 +203,44 @@ Extraction complete: ${done} sessions processed.`);
170
203
  for (const r of extractionResult.results) {
171
204
  if (r.status === "fulfilled") totalObservations += r.value;
172
205
  }
206
+ let summarized = 0;
207
+ if (processor) {
208
+ const summarizableTasks = tasks.filter((t) => t.conversationSection);
209
+ if (summarizableTasks.length > 0) {
210
+ console.log(`
211
+ Regenerating summaries...`);
212
+ const summaryResult = await batchExecute(
213
+ summarizableTasks,
214
+ async (task) => {
215
+ process.stdout.write(` ${task.sessionId.slice(0, 12)}...`);
216
+ const user = typeof task.frontmatter.user === "string" ? task.frontmatter.user : void 0;
217
+ const result = await processor.summarizeSession(task.conversationSection, task.bare, user);
218
+ if (result.summary.includes(SUMMARIZATION_FAILED_MARKER)) {
219
+ process.stdout.write(` summarization failed again, skipped
220
+ `);
221
+ return false;
222
+ }
223
+ const updatedBody = updateTitleAndSummary(task.body, result.title, result.summary);
224
+ fs.writeFileSync(path.join(vaultDir, task.relativePath), task.frontmatterBlock + updatedBody);
225
+ indexNote(index, vaultDir, task.relativePath);
226
+ process.stdout.write(` \u2192 "${result.title}"
227
+ `);
228
+ return true;
229
+ },
230
+ {
231
+ concurrency: LLM_BATCH_CONCURRENCY,
232
+ onProgress: (done, total) => {
233
+ if (done === total) console.log(`
234
+ Summarization complete.`);
235
+ }
236
+ }
237
+ );
238
+ for (const r of summaryResult.results) {
239
+ if (r.status === "fulfilled" && r.value) summarized++;
240
+ }
241
+ }
242
+ console.log(`${summarized}/${tasks.length} sessions updated.`);
243
+ }
173
244
  if (vectorIndex && embedJobs.length > 0) {
174
245
  console.log(`Embedding ${embedJobs.length} notes (concurrency: ${EMBEDDING_BATCH_CONCURRENCY})...`);
175
246
  const embResult = await batchExecute(
@@ -189,11 +260,11 @@ Extraction complete: ${done} sessions processed.`);
189
260
  }
190
261
  }
191
262
  console.log(`
192
- Done: ${tasks.length} sessions reprocessed, ${totalObservations} observations extracted.`);
263
+ Done: ${tasks.length} sessions reprocessed, ${totalObservations} observations extracted, ${summarized} summaries regenerated.`);
193
264
  index.close();
194
265
  vectorIndex?.close();
195
266
  }
196
267
  export {
197
268
  run
198
269
  };
199
- //# sourceMappingURL=reprocess-7G7KQWCN.js.map
270
+ //# sourceMappingURL=reprocess-DMGPZTLC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/reprocess.ts"],"sourcesContent":["/**\n * myco reprocess — re-run the observation extraction and summarization pipeline\n * for existing sessions. Useful after bugs or when the LLM backend changes.\n *\n * Reads transcripts (the source of truth), re-extracts observations, regenerates\n * summaries/titles, and re-indexes everything. Existing spore files from those\n * sessions are preserved — new observations are additive.\n *\n * Flags:\n * --session <id> Filter to sessions matching this substring\n * --date <YYYY-MM-DD> Filter to sessions from a specific date\n * --failed Only reprocess sessions with failed summaries\n * --index-only Skip all LLM calls (re-index only)\n */\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport { MycoIndex } from '../index/sqlite.js';\nimport { VectorIndex } from '../index/vectors.js';\nimport { initFts } from '../index/fts.js';\nimport { indexNote } from '../index/rebuild.js';\nimport { loadConfig } from '../config/loader.js';\nimport { createLlmProvider, createEmbeddingProvider } from '../intelligence/llm.js';\nimport { generateEmbedding } from '../intelligence/embeddings.js';\nimport { batchExecute, LLM_BATCH_CONCURRENCY, EMBEDDING_BATCH_CONCURRENCY } from '../intelligence/batch.js';\nimport { BufferProcessor, SUMMARIZATION_FAILED_MARKER } from '../daemon/processor.js';\nimport { TranscriptMiner } from '../capture/transcript-miner.js';\nimport { VaultWriter } from '../vault/writer.js';\nimport { writeObservationNotes } from '../vault/observations.js';\nimport { createPerProjectAdapter } from '../agents/adapter.js';\nimport { claudeCodeAdapter } from '../agents/claude-code.js';\nimport { sessionNoteId, bareSessionId } from '../vault/session-id.js';\nimport { EMBEDDING_INPUT_LIMIT } from '../constants.js';\nimport { callout, extractSection } from '../obsidian/formatter.js';\nimport { parseStringFlag } from './shared.js';\nimport matter from 'gray-matter';\n\n\ninterface EmbedJob {\n id: string;\n text: string;\n metadata: Record<string, string>;\n}\n\ninterface SessionTask {\n relativePath: string;\n sessionId: string;\n bare: string;\n frontmatter: Record<string, unknown>;\n /** Raw frontmatter block (---\\n...\\n---) preserved verbatim to avoid YAML re-serialization bugs. */\n frontmatterBlock: string;\n /** Session note body after frontmatter. */\n body: string;\n conversationSection: string;\n batchEvents: Array<Record<string, unknown>> | null;\n turnCount: number;\n hasFailed: boolean;\n}\n\n/** Section heading for conversation content in session notes. */\nconst CONVERSATION_HEADING = '## Conversation';\n\n/**\n * Replace the title (first `# ` line) and summary callout in a session note body.\n */\nfunction updateTitleAndSummary(body: string, newTitle: string, newNarrative: string): string {\n // Replace the title line (first occurrence of `# ...`)\n let updated = body.replace(/^# .*/m, `# ${newTitle}`);\n\n // Replace the summary callout block: from `> [!abstract]` through consecutive `> ` lines\n const summaryCallout = callout('abstract', 'Summary', newNarrative);\n updated = updated.replace(/> \\[!abstract\\] Summary\\n(?:> .*\\n?)*/m, summaryCallout + '\\n');\n\n return updated;\n}\n\nexport async function run(args: string[], vaultDir: string): Promise<void> {\n const sessionFilter = parseStringFlag(args, '--session');\n const dateFilter = parseStringFlag(args, '--date');\n const failedOnly = args.includes('--failed');\n const skipLlm = args.includes('--index-only');\n\n const config = loadConfig(vaultDir);\n const index = new MycoIndex(path.join(vaultDir, 'index.db'));\n initFts(index);\n\n const llmProvider = skipLlm ? null : createLlmProvider(config.intelligence.llm);\n const embeddingProvider = createEmbeddingProvider(config.intelligence.embedding);\n\n let vectorIndex: VectorIndex | null = null;\n try {\n const testEmbed = await embeddingProvider.embed('test');\n vectorIndex = new VectorIndex(path.join(vaultDir, 'vectors.db'), testEmbed.dimensions);\n } catch (e) {\n console.log(`Vector index unavailable: ${(e as Error).message}`);\n }\n\n const processor = llmProvider\n ? new BufferProcessor(llmProvider, config.intelligence.llm.context_window, config.capture)\n : null;\n const writer = new VaultWriter(vaultDir);\n const miner = new TranscriptMiner({\n additionalAdapters: config.capture.transcript_paths.map((p: string) =>\n createPerProjectAdapter(p, claudeCodeAdapter.parseTurns),\n ),\n });\n\n // Find sessions to reprocess\n const sessionsDir = path.join(vaultDir, 'sessions');\n if (!fs.existsSync(sessionsDir)) {\n console.log('No sessions directory found.');\n index.close();\n vectorIndex?.close();\n return;\n }\n\n const sessionFiles: Array<{ relativePath: string; sessionId: string }> = [];\n for (const dateDir of fs.readdirSync(sessionsDir)) {\n if (dateFilter && dateDir !== dateFilter) continue;\n const datePath = path.join(sessionsDir, dateDir);\n if (!fs.statSync(datePath).isDirectory()) continue;\n for (const file of fs.readdirSync(datePath)) {\n if (!file.startsWith('session-') || !file.endsWith('.md')) continue;\n const sessionId = file.replace('session-', '').replace('.md', '');\n if (sessionFilter && !sessionId.includes(sessionFilter)) continue;\n sessionFiles.push({\n relativePath: path.join('sessions', dateDir, file),\n sessionId,\n });\n }\n }\n\n if (sessionFiles.length === 0) {\n const filters = [sessionFilter && `session=\"${sessionFilter}\"`, dateFilter && `date=\"${dateFilter}\"`].filter(Boolean);\n console.log(filters.length ? `No sessions matching ${filters.join(', ')} found.` : 'No sessions found.');\n index.close();\n vectorIndex?.close();\n return;\n }\n\n // Prepare tasks: read transcripts and session content, build extraction inputs.\n // When --failed is set, check the marker before building expensive task fields.\n let tasks: SessionTask[] = [];\n for (const { relativePath, sessionId } of sessionFiles) {\n const rawContent = fs.readFileSync(path.join(vaultDir, relativePath), 'utf-8');\n const { data: frontmatter, content: body } = matter(rawContent);\n const hasFailed = body.includes(SUMMARIZATION_FAILED_MARKER);\n\n // Early skip: when --failed is set, don't build task for sessions that succeeded\n if (failedOnly && !hasFailed) continue;\n\n const bare = bareSessionId(sessionId);\n const turnsResult = miner.getAllTurnsWithSource(bare);\n const conversationSection = extractSection(body, CONVERSATION_HEADING);\n\n // Preserve raw frontmatter block verbatim (matter.stringify corrupts YAML values)\n const fmEnd = rawContent.indexOf('---', 4);\n const frontmatterBlock = rawContent.slice(0, fmEnd + 3);\n\n const batchEvents = turnsResult && turnsResult.turns.length > 0\n ? turnsResult.turns.map((t) => ({\n type: 'turn' as const,\n prompt: t.prompt,\n tool_count: t.toolCount,\n response: t.aiResponse ?? '',\n timestamp: t.timestamp,\n }))\n : null;\n\n tasks.push({ relativePath, sessionId, bare, frontmatter, frontmatterBlock, body, conversationSection, batchEvents, turnCount: turnsResult?.turns.length ?? 0, hasFailed });\n }\n\n if (failedOnly) {\n console.log(`Found ${tasks.length} failed session(s) out of ${sessionFiles.length} checked.\\n`);\n }\n\n if (tasks.length === 0) {\n const filters = [sessionFilter && `session=\"${sessionFilter}\"`, dateFilter && `date=\"${dateFilter}\"`, failedOnly && 'failed'].filter(Boolean);\n console.log(filters.length ? `No sessions matching ${filters.join(', ')} found.` : 'No sessions found.');\n index.close();\n vectorIndex?.close();\n return;\n }\n\n console.log(`Reprocessing ${tasks.length} session(s)...\\n`);\n\n // Phase 1: LLM extraction (concurrency-limited) + FTS re-indexing\n const embedJobs: EmbedJob[] = [];\n let totalObservations = 0;\n\n const extractionResult = await batchExecute(\n tasks,\n async (task) => {\n let obs = 0;\n process.stdout.write(` ${task.sessionId.slice(0, 12)}... ${task.turnCount} turns`);\n\n if (processor && task.batchEvents) {\n const result = await processor.process(task.batchEvents, task.bare);\n if (result.observations.length > 0) {\n writeObservationNotes(result.observations, task.bare, writer, index, vaultDir);\n obs = result.observations.length;\n process.stdout.write(` → ${obs} observations`);\n\n for (const o of result.observations) {\n embedJobs.push({\n id: `${o.type}-${task.bare.slice(-6)}-${Date.now()}`,\n text: `${o.title}\\n${o.content}`.slice(0, EMBEDDING_INPUT_LIMIT),\n metadata: { type: 'spore', session_id: task.bare },\n });\n }\n }\n }\n\n // FTS re-index (fast, no LLM)\n indexNote(index, vaultDir, task.relativePath);\n\n // Queue session embedding\n const embText = `${task.frontmatter.title ?? ''}\\n${task.frontmatter.summary ?? ''}`.slice(0, EMBEDDING_INPUT_LIMIT);\n if (embText.trim()) {\n embedJobs.push({\n id: sessionNoteId(task.bare),\n text: embText,\n metadata: { type: 'session', session_id: task.bare },\n });\n }\n\n process.stdout.write('\\n');\n return obs;\n },\n {\n concurrency: LLM_BATCH_CONCURRENCY,\n onProgress: (done, total) => {\n if (done === total) console.log(`\\nExtraction complete: ${done} sessions processed.`);\n },\n },\n );\n\n for (const r of extractionResult.results) {\n if (r.status === 'fulfilled') totalObservations += r.value;\n }\n\n // Phase 2: Resummarize sessions (concurrency-limited, consistent with Phase 1)\n let summarized = 0;\n if (processor) {\n const summarizableTasks = tasks.filter((t) => t.conversationSection);\n if (summarizableTasks.length > 0) {\n console.log(`\\nRegenerating summaries...`);\n\n const summaryResult = await batchExecute(\n summarizableTasks,\n async (task) => {\n process.stdout.write(` ${task.sessionId.slice(0, 12)}...`);\n const user = typeof task.frontmatter.user === 'string' ? task.frontmatter.user : undefined;\n const result = await processor.summarizeSession(task.conversationSection, task.bare, user);\n\n if (result.summary.includes(SUMMARIZATION_FAILED_MARKER)) {\n process.stdout.write(` summarization failed again, skipped\\n`);\n return false;\n }\n\n const updatedBody = updateTitleAndSummary(task.body, result.title, result.summary);\n fs.writeFileSync(path.join(vaultDir, task.relativePath), task.frontmatterBlock + updatedBody);\n indexNote(index, vaultDir, task.relativePath);\n process.stdout.write(` → \"${result.title}\"\\n`);\n return true;\n },\n {\n concurrency: LLM_BATCH_CONCURRENCY,\n onProgress: (done, total) => {\n if (done === total) console.log(`\\nSummarization complete.`);\n },\n },\n );\n\n for (const r of summaryResult.results) {\n if (r.status === 'fulfilled' && r.value) summarized++;\n }\n }\n\n console.log(`${summarized}/${tasks.length} sessions updated.`);\n }\n\n // Phase 3: Parallel embeddings\n if (vectorIndex && embedJobs.length > 0) {\n console.log(`Embedding ${embedJobs.length} notes (concurrency: ${EMBEDDING_BATCH_CONCURRENCY})...`);\n\n const embResult = await batchExecute(\n embedJobs,\n async (job) => {\n const emb = await generateEmbedding(embeddingProvider, job.text);\n vectorIndex!.upsert(job.id, emb.embedding, job.metadata);\n },\n {\n concurrency: EMBEDDING_BATCH_CONCURRENCY,\n onProgress: (done, total) => process.stdout.write(`\\r Embedded ${done}/${total}`),\n },\n );\n\n process.stdout.write('\\n');\n if (embResult.failed > 0) {\n console.log(` ${embResult.failed} embedding(s) failed.`);\n }\n }\n\n console.log(`\\nDone: ${tasks.length} sessions reprocessed, ${totalObservations} observations extracted, ${summarized} summaries regenerated.`);\n\n index.close();\n vectorIndex?.close();\n}\n"],"mappings":"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","names":["matter"]}
@@ -1,11 +1,11 @@
1
1
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
2
  import {
3
3
  isProcessAlive
4
- } from "./chunk-GFBG73P4.js";
4
+ } from "./chunk-5FIIK27E.js";
5
5
  import "./chunk-SAKJMNSR.js";
6
- import "./chunk-67R6EMYD.js";
7
- import "./chunk-BNIYWCST.js";
8
- import "./chunk-JBD5KP5G.js";
6
+ import "./chunk-OPO47BVS.js";
7
+ import "./chunk-EQVQEFOA.js";
8
+ import "./chunk-TDLQBGKA.js";
9
9
  import "./chunk-PZUWP5VK.js";
10
10
 
11
11
  // src/cli/restart.ts
@@ -29,7 +29,7 @@ async function run(_args, vaultDir) {
29
29
  } catch {
30
30
  }
31
31
  }
32
- const { DaemonClient } = await import("./client-5SUO2UYH.js");
32
+ const { DaemonClient } = await import("./client-XCNF6NFT.js");
33
33
  const client = new DaemonClient(vaultDir);
34
34
  console.log("Waiting for health check...");
35
35
  const healthy = await client.ensureRunning();
@@ -47,4 +47,4 @@ async function run(_args, vaultDir) {
47
47
  export {
48
48
  run
49
49
  };
50
- //# sourceMappingURL=restart-ABW4ZK3P.js.map
50
+ //# sourceMappingURL=restart-QCQQ55KX.js.map
@@ -2,24 +2,24 @@ import { createRequire as __cr } from 'node:module'; const require = __cr(import
2
2
  import {
3
3
  generateEmbedding
4
4
  } from "./chunk-RGVBGTD6.js";
5
- import {
6
- createEmbeddingProvider
7
- } from "./chunk-IYFKPSRP.js";
8
5
  import {
9
6
  VectorIndex
10
7
  } from "./chunk-XQXXF6MU.js";
8
+ import {
9
+ createEmbeddingProvider
10
+ } from "./chunk-OSZRLHIJ.js";
11
11
  import {
12
12
  searchFts
13
13
  } from "./chunk-6FQISQNA.js";
14
14
  import {
15
15
  MycoIndex
16
16
  } from "./chunk-AK6GNLPV.js";
17
- import "./chunk-67R6EMYD.js";
17
+ import "./chunk-OPO47BVS.js";
18
18
  import {
19
19
  loadConfig
20
20
  } from "./chunk-TBRZAJ7W.js";
21
21
  import "./chunk-6UJWI4IW.js";
22
- import "./chunk-JBD5KP5G.js";
22
+ import "./chunk-TDLQBGKA.js";
23
23
  import "./chunk-PZUWP5VK.js";
24
24
 
25
25
  // src/cli/search.ts
@@ -117,4 +117,4 @@ export {
117
117
  run,
118
118
  runVectors
119
119
  };
120
- //# sourceMappingURL=search-MPD7SFK6.js.map
120
+ //# sourceMappingURL=search-ACEFQOUW.js.map
@@ -4,25 +4,27 @@ import {
4
4
  } from "./chunk-BMJX2IDQ.js";
5
5
  import {
6
6
  handleMycoContext
7
- } from "./chunk-WBT5DWGC.js";
8
- import "./chunk-5EZ7QF6J.js";
7
+ } from "./chunk-42R7KVAW.js";
9
8
  import {
10
9
  VaultWriter
11
- } from "./chunk-I7PNZEBO.js";
10
+ } from "./chunk-6LTNFMXO.js";
11
+ import "./chunk-5EZ7QF6J.js";
12
12
  import {
13
- OBSERVATION_TYPES,
14
- PLAN_STATUSES,
15
13
  indexNote
16
- } from "./chunk-FPEDTLQ6.js";
14
+ } from "./chunk-JJL6AMDA.js";
17
15
  import {
18
16
  generateEmbedding
19
17
  } from "./chunk-RGVBGTD6.js";
20
- import {
21
- createEmbeddingProvider
22
- } from "./chunk-IYFKPSRP.js";
23
18
  import {
24
19
  VectorIndex
25
20
  } from "./chunk-XQXXF6MU.js";
21
+ import {
22
+ OBSERVATION_TYPES,
23
+ PLAN_STATUSES
24
+ } from "./chunk-2AMAOSRF.js";
25
+ import {
26
+ createEmbeddingProvider
27
+ } from "./chunk-OSZRLHIJ.js";
26
28
  import {
27
29
  planFm,
28
30
  sessionFm,
@@ -35,7 +37,7 @@ import {
35
37
  import {
36
38
  MycoIndex
37
39
  } from "./chunk-AK6GNLPV.js";
38
- import "./chunk-67R6EMYD.js";
40
+ import "./chunk-OPO47BVS.js";
39
41
  import {
40
42
  loadConfig
41
43
  } from "./chunk-TBRZAJ7W.js";
@@ -65,11 +67,11 @@ import {
65
67
  } from "./chunk-HIN3UVOG.js";
66
68
  import {
67
69
  getPluginVersion
68
- } from "./chunk-2GJFTIWX.js";
70
+ } from "./chunk-TK2ZYIAL.js";
69
71
  import {
70
72
  resolveVaultDir
71
73
  } from "./chunk-N33KUCFP.js";
72
- import "./chunk-BNIYWCST.js";
74
+ import "./chunk-EQVQEFOA.js";
73
75
  import {
74
76
  CONTENT_SNIPPET_CHARS,
75
77
  EMBEDDING_INPUT_LIMIT,
@@ -78,7 +80,7 @@ import {
78
80
  MCP_SESSIONS_DEFAULT_LIMIT,
79
81
  RECALL_SUMMARY_PREVIEW_CHARS,
80
82
  SESSION_SUMMARY_PREVIEW_CHARS
81
- } from "./chunk-JBD5KP5G.js";
83
+ } from "./chunk-TDLQBGKA.js";
82
84
  import {
83
85
  __commonJS,
84
86
  __toESM
@@ -14769,4 +14771,4 @@ export {
14769
14771
  createMycoServer,
14770
14772
  main
14771
14773
  };
14772
- //# sourceMappingURL=server-NZLZRITH.js.map
14774
+ //# sourceMappingURL=server-BQ3DWKZ6.js.map