@goondocks/myco 0.3.0 → 0.3.2

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 (52) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/dist/chunk-2UEJVXXE.js +33 -0
  4. package/dist/chunk-2UEJVXXE.js.map +1 -0
  5. package/dist/chunk-3JCXYLHD.js +33 -0
  6. package/dist/chunk-3JCXYLHD.js.map +1 -0
  7. package/dist/{chunk-NTYYYC32.js → chunk-5BGQJOJN.js} +47 -4
  8. package/dist/chunk-5BGQJOJN.js.map +1 -0
  9. package/dist/{chunk-QQWUV3TC.js → chunk-72OAG4SF.js} +2 -1
  10. package/dist/chunk-JIQISBPI.js +362 -0
  11. package/dist/chunk-JIQISBPI.js.map +1 -0
  12. package/dist/{cli-ZHUR53CS.js → cli-4RR3QBYK.js} +15 -6
  13. package/dist/cli-4RR3QBYK.js.map +1 -0
  14. package/dist/{client-HORA3CC4.js → client-43ML4EHJ.js} +3 -2
  15. package/dist/{init-LLLHUNSY.js → init-HTKEL3YT.js} +4 -4
  16. package/dist/{main-JY6O6ZVH.js → main-DTWU4OAH.js} +227 -537
  17. package/dist/main-DTWU4OAH.js.map +1 -0
  18. package/dist/{rebuild-YAN3TPFB.js → rebuild-TXMFYBOU.js} +27 -20
  19. package/dist/rebuild-TXMFYBOU.js.map +1 -0
  20. package/dist/reprocess-ARKHGDWF.js +199 -0
  21. package/dist/reprocess-ARKHGDWF.js.map +1 -0
  22. package/dist/{restart-NH5MX45I.js → restart-C5BCVG3A.js} +2 -2
  23. package/dist/{search-W3ECVSTH.js → search-YCKNX2WS.js} +7 -7
  24. package/dist/{server-DLBATUNG.js → server-EBKMQISL.js} +18 -23
  25. package/dist/{server-DLBATUNG.js.map → server-EBKMQISL.js.map} +1 -1
  26. package/dist/{session-start-DECLNJDI.js → session-start-ADZLL2YI.js} +3 -2
  27. package/dist/{session-start-DECLNJDI.js.map → session-start-ADZLL2YI.js.map} +1 -1
  28. package/dist/src/cli.js +1 -1
  29. package/dist/src/daemon/main.js +1 -1
  30. package/dist/src/hooks/post-tool-use.js +2 -1
  31. package/dist/src/hooks/post-tool-use.js.map +1 -1
  32. package/dist/src/hooks/session-end.js +2 -1
  33. package/dist/src/hooks/session-end.js.map +1 -1
  34. package/dist/src/hooks/session-start.js +1 -1
  35. package/dist/src/hooks/stop.js +2 -1
  36. package/dist/src/hooks/stop.js.map +1 -1
  37. package/dist/src/hooks/user-prompt-submit.js +2 -1
  38. package/dist/src/hooks/user-prompt-submit.js.map +1 -1
  39. package/dist/src/mcp/server.js +1 -1
  40. package/dist/version-N55WTRG5.js +11 -0
  41. package/dist/version-N55WTRG5.js.map +1 -0
  42. package/package.json +1 -1
  43. package/skills/myco/SKILL.md +34 -0
  44. package/dist/chunk-NTYYYC32.js.map +0 -1
  45. package/dist/cli-ZHUR53CS.js.map +0 -1
  46. package/dist/main-JY6O6ZVH.js.map +0 -1
  47. package/dist/rebuild-YAN3TPFB.js.map +0 -1
  48. /package/dist/{chunk-QQWUV3TC.js.map → chunk-72OAG4SF.js.map} +0 -0
  49. /package/dist/{client-HORA3CC4.js.map → client-43ML4EHJ.js.map} +0 -0
  50. /package/dist/{init-LLLHUNSY.js.map → init-HTKEL3YT.js.map} +0 -0
  51. /package/dist/{restart-NH5MX45I.js.map → restart-C5BCVG3A.js.map} +0 -0
  52. /package/dist/{search-W3ECVSTH.js.map → search-YCKNX2WS.js.map} +0 -0
@@ -0,0 +1,199 @@
1
+ import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
+ import {
3
+ BufferProcessor,
4
+ TranscriptMiner,
5
+ writeObservationNotes
6
+ } from "./chunk-JIQISBPI.js";
7
+ import {
8
+ EMBEDDING_BATCH_CONCURRENCY,
9
+ LLM_BATCH_CONCURRENCY,
10
+ batchExecute
11
+ } from "./chunk-3JCXYLHD.js";
12
+ import {
13
+ VaultWriter,
14
+ bareSessionId,
15
+ sessionNoteId
16
+ } from "./chunk-P2Q77C5F.js";
17
+ import {
18
+ indexNote,
19
+ require_gray_matter
20
+ } from "./chunk-72OAG4SF.js";
21
+ import {
22
+ generateEmbedding
23
+ } from "./chunk-RGVBGTD6.js";
24
+ import {
25
+ VectorIndex
26
+ } from "./chunk-XQXXF6MU.js";
27
+ import "./chunk-PAUPHPOC.js";
28
+ import {
29
+ parseStringFlag
30
+ } from "./chunk-SAKJMNSR.js";
31
+ import {
32
+ initFts
33
+ } from "./chunk-6FQISQNA.js";
34
+ import {
35
+ MycoIndex
36
+ } from "./chunk-PA3VMINE.js";
37
+ import {
38
+ createEmbeddingProvider,
39
+ createLlmProvider
40
+ } from "./chunk-N6IAW33G.js";
41
+ import "./chunk-XW3OL55U.js";
42
+ import {
43
+ loadConfig
44
+ } from "./chunk-ISCT2SI6.js";
45
+ import "./chunk-EF4JVH24.js";
46
+ import {
47
+ claudeCodeAdapter,
48
+ createPerProjectAdapter
49
+ } from "./chunk-2QEJKG7R.js";
50
+ import {
51
+ EMBEDDING_INPUT_LIMIT
52
+ } from "./chunk-Q7BEFSOV.js";
53
+ import {
54
+ __toESM
55
+ } from "./chunk-PZUWP5VK.js";
56
+
57
+ // src/cli/reprocess.ts
58
+ import fs from "fs";
59
+ import path from "path";
60
+ var import_gray_matter = __toESM(require_gray_matter(), 1);
61
+ async function run(args, vaultDir) {
62
+ const sessionFilter = parseStringFlag(args, "--session");
63
+ const skipLlm = args.includes("--index-only");
64
+ const config = loadConfig(vaultDir);
65
+ const index = new MycoIndex(path.join(vaultDir, "index.db"));
66
+ initFts(index);
67
+ const llmProvider = skipLlm ? null : createLlmProvider(config.intelligence.llm);
68
+ const embeddingProvider = createEmbeddingProvider(config.intelligence.embedding);
69
+ let vectorIndex = null;
70
+ try {
71
+ const testEmbed = await embeddingProvider.embed("test");
72
+ vectorIndex = new VectorIndex(path.join(vaultDir, "vectors.db"), testEmbed.dimensions);
73
+ } catch (e) {
74
+ console.log(`Vector index unavailable: ${e.message}`);
75
+ }
76
+ const processor = llmProvider ? new BufferProcessor(llmProvider, config.intelligence.llm.context_window) : null;
77
+ const writer = new VaultWriter(vaultDir);
78
+ const miner = new TranscriptMiner({
79
+ additionalAdapters: config.capture.transcript_paths.map(
80
+ (p) => createPerProjectAdapter(p, claudeCodeAdapter.parseTurns)
81
+ )
82
+ });
83
+ const sessionsDir = path.join(vaultDir, "sessions");
84
+ if (!fs.existsSync(sessionsDir)) {
85
+ console.log("No sessions directory found.");
86
+ index.close();
87
+ vectorIndex?.close();
88
+ return;
89
+ }
90
+ const sessionFiles = [];
91
+ for (const dateDir of fs.readdirSync(sessionsDir)) {
92
+ const datePath = path.join(sessionsDir, dateDir);
93
+ if (!fs.statSync(datePath).isDirectory()) continue;
94
+ for (const file of fs.readdirSync(datePath)) {
95
+ if (!file.startsWith("session-") || !file.endsWith(".md")) continue;
96
+ const sessionId = file.replace("session-", "").replace(".md", "");
97
+ if (sessionFilter && !sessionId.includes(sessionFilter)) continue;
98
+ sessionFiles.push({
99
+ relativePath: path.join("sessions", dateDir, file),
100
+ sessionId
101
+ });
102
+ }
103
+ }
104
+ if (sessionFiles.length === 0) {
105
+ console.log(sessionFilter ? `No sessions matching "${sessionFilter}" found.` : "No sessions found.");
106
+ index.close();
107
+ vectorIndex?.close();
108
+ return;
109
+ }
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);
113
+ const bare = bareSessionId(sessionId);
114
+ const turnsResult = miner.getAllTurnsWithSource(bare);
115
+ const batchEvents = turnsResult && turnsResult.turns.length > 0 ? turnsResult.turns.map((t) => ({
116
+ type: "turn",
117
+ prompt: t.prompt,
118
+ tool_count: t.toolCount,
119
+ response: t.aiResponse ?? "",
120
+ timestamp: t.timestamp
121
+ })) : null;
122
+ return { relativePath, sessionId, bare, frontmatter, batchEvents, turnCount: turnsResult?.turns.length ?? 0 };
123
+ });
124
+ console.log(`Reprocessing ${tasks.length} session(s)...
125
+ `);
126
+ const embedJobs = [];
127
+ let totalObservations = 0;
128
+ const extractionResult = await batchExecute(
129
+ tasks,
130
+ async (task) => {
131
+ let obs = 0;
132
+ process.stdout.write(` ${task.sessionId.slice(0, 12)}... ${task.turnCount} turns`);
133
+ if (processor && task.batchEvents) {
134
+ const result = await processor.process(task.batchEvents, task.bare);
135
+ if (result.observations.length > 0) {
136
+ writeObservationNotes(result.observations, task.bare, writer, index, vaultDir);
137
+ obs = result.observations.length;
138
+ process.stdout.write(` \u2192 ${obs} observations`);
139
+ for (const o of result.observations) {
140
+ embedJobs.push({
141
+ id: `${o.type}-${task.bare.slice(-6)}-${Date.now()}`,
142
+ text: `${o.title}
143
+ ${o.content}`.slice(0, EMBEDDING_INPUT_LIMIT),
144
+ metadata: { type: "memory", session_id: task.bare }
145
+ });
146
+ }
147
+ }
148
+ }
149
+ indexNote(index, vaultDir, task.relativePath);
150
+ const embText = `${task.frontmatter.title ?? ""}
151
+ ${task.frontmatter.summary ?? ""}`.slice(0, EMBEDDING_INPUT_LIMIT);
152
+ if (embText.trim()) {
153
+ embedJobs.push({
154
+ id: sessionNoteId(task.bare),
155
+ text: embText,
156
+ metadata: { type: "session", session_id: task.bare }
157
+ });
158
+ }
159
+ process.stdout.write("\n");
160
+ return obs;
161
+ },
162
+ {
163
+ concurrency: LLM_BATCH_CONCURRENCY,
164
+ onProgress: (done, total) => {
165
+ if (done === total) console.log(`
166
+ Extraction complete: ${done} sessions processed.`);
167
+ }
168
+ }
169
+ );
170
+ for (const r of extractionResult.results) {
171
+ if (r.status === "fulfilled") totalObservations += r.value;
172
+ }
173
+ if (vectorIndex && embedJobs.length > 0) {
174
+ console.log(`Embedding ${embedJobs.length} notes (concurrency: ${EMBEDDING_BATCH_CONCURRENCY})...`);
175
+ const embResult = await batchExecute(
176
+ embedJobs,
177
+ async (job) => {
178
+ const emb = await generateEmbedding(embeddingProvider, job.text);
179
+ vectorIndex.upsert(job.id, emb.embedding, job.metadata);
180
+ },
181
+ {
182
+ concurrency: EMBEDDING_BATCH_CONCURRENCY,
183
+ onProgress: (done, total) => process.stdout.write(`\r Embedded ${done}/${total}`)
184
+ }
185
+ );
186
+ process.stdout.write("\n");
187
+ if (embResult.failed > 0) {
188
+ console.log(` ${embResult.failed} embedding(s) failed.`);
189
+ }
190
+ }
191
+ console.log(`
192
+ Done: ${tasks.length} sessions reprocessed, ${totalObservations} observations extracted.`);
193
+ index.close();
194
+ vectorIndex?.close();
195
+ }
196
+ export {
197
+ run
198
+ };
199
+ //# sourceMappingURL=reprocess-ARKHGDWF.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, and re-indexes everything. Existing memory files from those sessions\n * are preserved — new observations are additive.\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 } 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 { parseStringFlag } from './shared.js';\nimport matter from 'gray-matter';\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 batchEvents: Array<Record<string, unknown>> | null;\n turnCount: number;\n}\n\nexport async function run(args: string[], vaultDir: string): Promise<void> {\n const sessionFilter = parseStringFlag(args, '--session');\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)\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 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 console.log(sessionFilter ? `No sessions matching \"${sessionFilter}\" found.` : 'No sessions found.');\n index.close();\n vectorIndex?.close();\n return;\n }\n\n // Prepare tasks: read transcripts, build extraction inputs\n const tasks: SessionTask[] = sessionFiles.map(({ relativePath, sessionId }) => {\n const raw = fs.readFileSync(path.join(vaultDir, relativePath), 'utf-8');\n const { data: frontmatter } = matter(raw);\n const bare = bareSessionId(sessionId);\n const turnsResult = miner.getAllTurnsWithSource(bare);\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 return { relativePath, sessionId, bare, frontmatter, batchEvents, turnCount: turnsResult?.turns.length ?? 0 };\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: 'memory', 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: 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.`);\n\n index.close();\n vectorIndex?.close();\n}\n"],"mappings":"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","names":["matter"]}
@@ -29,7 +29,7 @@ async function run(_args, vaultDir) {
29
29
  } catch {
30
30
  }
31
31
  }
32
- const { DaemonClient } = await import("./client-HORA3CC4.js");
32
+ const { DaemonClient } = await import("./client-43ML4EHJ.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-NH5MX45I.js.map
50
+ //# sourceMappingURL=restart-C5BCVG3A.js.map
@@ -2,18 +2,18 @@ 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
- searchFts
7
- } from "./chunk-6FQISQNA.js";
8
- import {
9
- createEmbeddingProvider
10
- } from "./chunk-N6IAW33G.js";
11
5
  import {
12
6
  VectorIndex
13
7
  } from "./chunk-XQXXF6MU.js";
8
+ import {
9
+ searchFts
10
+ } from "./chunk-6FQISQNA.js";
14
11
  import {
15
12
  MycoIndex
16
13
  } from "./chunk-PA3VMINE.js";
14
+ import {
15
+ createEmbeddingProvider
16
+ } from "./chunk-N6IAW33G.js";
17
17
  import "./chunk-XW3OL55U.js";
18
18
  import {
19
19
  loadConfig
@@ -117,4 +117,4 @@ export {
117
117
  run,
118
118
  runVectors
119
119
  };
120
- //# sourceMappingURL=search-W3ECVSTH.js.map
120
+ //# sourceMappingURL=search-YCKNX2WS.js.map
@@ -1,17 +1,20 @@
1
1
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
- import {
3
- queryLogs
4
- } from "./chunk-BMJX2IDQ.js";
5
2
  import {
6
3
  VaultWriter
7
4
  } from "./chunk-P2Q77C5F.js";
8
5
  import {
9
6
  PlanFrontmatterSchema,
10
7
  indexNote
11
- } from "./chunk-QQWUV3TC.js";
8
+ } from "./chunk-72OAG4SF.js";
12
9
  import {
13
10
  generateEmbedding
14
11
  } from "./chunk-RGVBGTD6.js";
12
+ import {
13
+ VectorIndex
14
+ } from "./chunk-XQXXF6MU.js";
15
+ import {
16
+ queryLogs
17
+ } from "./chunk-BMJX2IDQ.js";
15
18
  import "./chunk-5EZ7QF6J.js";
16
19
  import {
17
20
  memoryFm,
@@ -22,15 +25,12 @@ import {
22
25
  initFts,
23
26
  searchFts
24
27
  } from "./chunk-6FQISQNA.js";
25
- import {
26
- createEmbeddingProvider
27
- } from "./chunk-N6IAW33G.js";
28
- import {
29
- VectorIndex
30
- } from "./chunk-XQXXF6MU.js";
31
28
  import {
32
29
  MycoIndex
33
30
  } from "./chunk-PA3VMINE.js";
31
+ import {
32
+ createEmbeddingProvider
33
+ } from "./chunk-N6IAW33G.js";
34
34
  import "./chunk-XW3OL55U.js";
35
35
  import {
36
36
  _enum,
@@ -55,9 +55,13 @@ import {
55
55
  unknown
56
56
  } from "./chunk-ISCT2SI6.js";
57
57
  import "./chunk-EF4JVH24.js";
58
+ import {
59
+ getPluginVersion
60
+ } from "./chunk-2UEJVXXE.js";
58
61
  import {
59
62
  resolveVaultDir
60
63
  } from "./chunk-N33KUCFP.js";
64
+ import "./chunk-2QEJKG7R.js";
61
65
  import {
62
66
  CONTENT_SNIPPET_CHARS,
63
67
  EMBEDDING_INPUT_LIMIT,
@@ -14049,7 +14053,8 @@ var StdioServerTransport = class {
14049
14053
  };
14050
14054
 
14051
14055
  // src/mcp/server.ts
14052
- import { createRequire } from "module";
14056
+ import fs3 from "fs";
14057
+ import path4 from "path";
14053
14058
 
14054
14059
  // src/mcp/tools/search.ts
14055
14060
  async function handleMycoSearch(index, input, vectorIndex, backend) {
@@ -14457,16 +14462,6 @@ Superseded by:: [[${wisdomId}]]`;
14457
14462
  }
14458
14463
 
14459
14464
  // src/mcp/server.ts
14460
- import path4 from "path";
14461
- import fs3 from "fs";
14462
- function getPackageVersion() {
14463
- try {
14464
- const require2 = createRequire(import.meta.url);
14465
- return require2("../../../package.json").version;
14466
- } catch {
14467
- return "0.0.0";
14468
- }
14469
- }
14470
14465
  var OBSERVATION_TYPES = ["gotcha", "bug_fix", "decision", "discovery", "trade_off", "cross-cutting"];
14471
14466
  var PLAN_STATUSES = [...PlanFrontmatterSchema.shape.status._def.innerType.options, "all"];
14472
14467
  var TOOL_DEFINITIONS = [
@@ -14610,7 +14605,7 @@ var TOOL_DEFINITIONS = [
14610
14605
  ];
14611
14606
  function createMycoServer(config2) {
14612
14607
  const server = new Server(
14613
- { name: "myco", version: getPackageVersion() },
14608
+ { name: "myco", version: getPluginVersion() },
14614
14609
  { capabilities: { tools: {} } }
14615
14610
  );
14616
14611
  const dbPath = path4.join(config2.vaultDir, "index.db");
@@ -14725,4 +14720,4 @@ export {
14725
14720
  createMycoServer,
14726
14721
  main
14727
14722
  };
14728
- //# sourceMappingURL=server-DLBATUNG.js.map
14723
+ //# sourceMappingURL=server-EBKMQISL.js.map