@goondocks/myco 0.2.7 → 0.2.9
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/.claude-plugin/plugin.json +1 -1
- package/CONTRIBUTING.md +1 -1
- package/commands/init.md +10 -26
- package/dist/chunk-4JML636J.js +52 -0
- package/dist/chunk-4JML636J.js.map +1 -0
- package/dist/chunk-AOMX45LH.js +8974 -0
- package/dist/chunk-AOMX45LH.js.map +1 -0
- package/dist/chunk-I7PMGO6S.js +58 -0
- package/dist/chunk-I7PMGO6S.js.map +1 -0
- package/dist/chunk-N33KUCFP.js +33 -0
- package/dist/chunk-N33KUCFP.js.map +1 -0
- package/dist/chunk-NYNEJ5QY.js +71 -0
- package/dist/chunk-NYNEJ5QY.js.map +1 -0
- package/dist/chunk-PA3VMINE.js +111 -0
- package/dist/chunk-PA3VMINE.js.map +1 -0
- package/dist/chunk-PZUWP5VK.js +44 -0
- package/dist/chunk-PZUWP5VK.js.map +1 -0
- package/dist/chunk-SVUINMDD.js +104 -0
- package/dist/chunk-SVUINMDD.js.map +1 -0
- package/dist/chunk-TH6GIBXG.js +91 -0
- package/dist/chunk-TH6GIBXG.js.map +1 -0
- package/dist/chunk-TWDS6MSU.js +354 -0
- package/dist/chunk-TWDS6MSU.js.map +1 -0
- package/dist/chunk-UIIZRTJU.js +21172 -0
- package/dist/chunk-UIIZRTJU.js.map +1 -0
- package/dist/chunk-YMYJ7FNH.js +19 -0
- package/dist/chunk-YMYJ7FNH.js.map +1 -0
- package/dist/chunk-ZJQ5G637.js +21 -0
- package/dist/chunk-ZJQ5G637.js.map +1 -0
- package/dist/chunk-ZTZVX5E6.js +421 -0
- package/dist/chunk-ZTZVX5E6.js.map +1 -0
- package/dist/cli-K5FSKLQC.js +625 -0
- package/dist/cli-K5FSKLQC.js.map +1 -0
- package/dist/client-4JMOYNKK.js +11 -0
- package/dist/client-4JMOYNKK.js.map +1 -0
- package/dist/main-5W4ADOBG.js +3224 -0
- package/dist/main-5W4ADOBG.js.map +1 -0
- package/dist/server-PIEPVUUH.js +14725 -0
- package/dist/server-PIEPVUUH.js.map +1 -0
- package/dist/session-start-2NNQHT5S.js +189 -0
- package/dist/session-start-2NNQHT5S.js.map +1 -0
- package/dist/src/cli.js +9 -582
- package/dist/src/cli.js.map +1 -1
- package/dist/src/daemon/main.js +9 -737
- package/dist/src/daemon/main.js.map +1 -1
- package/dist/src/hooks/post-tool-use.js +47 -35
- package/dist/src/hooks/post-tool-use.js.map +1 -1
- package/dist/src/hooks/session-end.js +29 -18
- package/dist/src/hooks/session-end.js.map +1 -1
- package/dist/src/hooks/session-start.js +9 -48
- package/dist/src/hooks/session-start.js.map +1 -1
- package/dist/src/hooks/stop.js +39 -30
- package/dist/src/hooks/stop.js.map +1 -1
- package/dist/src/hooks/user-prompt-submit.js +48 -40
- package/dist/src/hooks/user-prompt-submit.js.map +1 -1
- package/dist/src/mcp/server.js +9 -304
- package/dist/src/mcp/server.js.map +1 -1
- package/package.json +3 -2
- package/dist/src/agents/adapter.d.ts +0 -76
- package/dist/src/agents/adapter.d.ts.map +0 -1
- package/dist/src/agents/adapter.js +0 -124
- package/dist/src/agents/adapter.js.map +0 -1
- package/dist/src/agents/claude-code.d.ts +0 -3
- package/dist/src/agents/claude-code.d.ts.map +0 -1
- package/dist/src/agents/claude-code.js +0 -22
- package/dist/src/agents/claude-code.js.map +0 -1
- package/dist/src/agents/cursor.d.ts +0 -3
- package/dist/src/agents/cursor.d.ts.map +0 -1
- package/dist/src/agents/cursor.js +0 -154
- package/dist/src/agents/cursor.js.map +0 -1
- package/dist/src/agents/index.d.ts +0 -6
- package/dist/src/agents/index.d.ts.map +0 -1
- package/dist/src/agents/index.js +0 -5
- package/dist/src/agents/index.js.map +0 -1
- package/dist/src/agents/registry.d.ts +0 -34
- package/dist/src/agents/registry.d.ts.map +0 -1
- package/dist/src/agents/registry.js +0 -95
- package/dist/src/agents/registry.js.map +0 -1
- package/dist/src/artifacts/candidates.d.ts +0 -20
- package/dist/src/artifacts/candidates.d.ts.map +0 -1
- package/dist/src/artifacts/candidates.js +0 -84
- package/dist/src/artifacts/candidates.js.map +0 -1
- package/dist/src/artifacts/slugify.d.ts +0 -2
- package/dist/src/artifacts/slugify.d.ts.map +0 -1
- package/dist/src/artifacts/slugify.js +0 -22
- package/dist/src/artifacts/slugify.js.map +0 -1
- package/dist/src/capture/buffer.d.ts +0 -20
- package/dist/src/capture/buffer.d.ts.map +0 -1
- package/dist/src/capture/buffer.js +0 -55
- package/dist/src/capture/buffer.js.map +0 -1
- package/dist/src/capture/transcript-miner.d.ts +0 -31
- package/dist/src/capture/transcript-miner.d.ts.map +0 -1
- package/dist/src/capture/transcript-miner.js +0 -61
- package/dist/src/capture/transcript-miner.js.map +0 -1
- package/dist/src/cli.d.ts +0 -3
- package/dist/src/cli.d.ts.map +0 -1
- package/dist/src/config/loader.d.ts +0 -4
- package/dist/src/config/loader.d.ts.map +0 -1
- package/dist/src/config/loader.js +0 -32
- package/dist/src/config/loader.js.map +0 -1
- package/dist/src/config/schema.d.ts +0 -83
- package/dist/src/config/schema.d.ts.map +0 -1
- package/dist/src/config/schema.js +0 -55
- package/dist/src/config/schema.js.map +0 -1
- package/dist/src/constants.d.ts +0 -73
- package/dist/src/constants.d.ts.map +0 -1
- package/dist/src/constants.js +0 -86
- package/dist/src/constants.js.map +0 -1
- package/dist/src/context/injector.d.ts +0 -18
- package/dist/src/context/injector.d.ts.map +0 -1
- package/dist/src/context/injector.js +0 -71
- package/dist/src/context/injector.js.map +0 -1
- package/dist/src/context/relevance.d.ts +0 -13
- package/dist/src/context/relevance.d.ts.map +0 -1
- package/dist/src/context/relevance.js +0 -44
- package/dist/src/context/relevance.js.map +0 -1
- package/dist/src/daemon/batch.d.ts +0 -22
- package/dist/src/daemon/batch.d.ts.map +0 -1
- package/dist/src/daemon/batch.js +0 -38
- package/dist/src/daemon/batch.js.map +0 -1
- package/dist/src/daemon/lifecycle.d.ts +0 -27
- package/dist/src/daemon/lifecycle.d.ts.map +0 -1
- package/dist/src/daemon/lifecycle.js +0 -50
- package/dist/src/daemon/lifecycle.js.map +0 -1
- package/dist/src/daemon/lineage.d.ts +0 -42
- package/dist/src/daemon/lineage.d.ts.map +0 -1
- package/dist/src/daemon/lineage.js +0 -116
- package/dist/src/daemon/lineage.js.map +0 -1
- package/dist/src/daemon/logger.d.ts +0 -33
- package/dist/src/daemon/logger.d.ts.map +0 -1
- package/dist/src/daemon/logger.js +0 -88
- package/dist/src/daemon/logger.js.map +0 -1
- package/dist/src/daemon/main.d.ts +0 -2
- package/dist/src/daemon/main.d.ts.map +0 -1
- package/dist/src/daemon/processor.d.ts +0 -44
- package/dist/src/daemon/processor.d.ts.map +0 -1
- package/dist/src/daemon/processor.js +0 -142
- package/dist/src/daemon/processor.js.map +0 -1
- package/dist/src/daemon/server.d.ts +0 -24
- package/dist/src/daemon/server.d.ts.map +0 -1
- package/dist/src/daemon/server.js +0 -117
- package/dist/src/daemon/server.js.map +0 -1
- package/dist/src/daemon/watcher.d.ts +0 -29
- package/dist/src/daemon/watcher.d.ts.map +0 -1
- package/dist/src/daemon/watcher.js +0 -67
- package/dist/src/daemon/watcher.js.map +0 -1
- package/dist/src/hooks/client.d.ts +0 -20
- package/dist/src/hooks/client.d.ts.map +0 -1
- package/dist/src/hooks/client.js +0 -111
- package/dist/src/hooks/client.js.map +0 -1
- package/dist/src/hooks/post-tool-use.d.ts +0 -2
- package/dist/src/hooks/post-tool-use.d.ts.map +0 -1
- package/dist/src/hooks/read-stdin.d.ts +0 -2
- package/dist/src/hooks/read-stdin.d.ts.map +0 -1
- package/dist/src/hooks/read-stdin.js +0 -10
- package/dist/src/hooks/read-stdin.js.map +0 -1
- package/dist/src/hooks/session-end.d.ts +0 -2
- package/dist/src/hooks/session-end.d.ts.map +0 -1
- package/dist/src/hooks/session-start.d.ts +0 -2
- package/dist/src/hooks/session-start.d.ts.map +0 -1
- package/dist/src/hooks/stop.d.ts +0 -2
- package/dist/src/hooks/stop.d.ts.map +0 -1
- package/dist/src/hooks/user-prompt-submit.d.ts +0 -2
- package/dist/src/hooks/user-prompt-submit.d.ts.map +0 -1
- package/dist/src/index/fts.d.ts +0 -16
- package/dist/src/index/fts.d.ts.map +0 -1
- package/dist/src/index/fts.js +0 -53
- package/dist/src/index/fts.js.map +0 -1
- package/dist/src/index/rebuild.d.ts +0 -4
- package/dist/src/index/rebuild.d.ts.map +0 -1
- package/dist/src/index/rebuild.js +0 -40
- package/dist/src/index/rebuild.js.map +0 -1
- package/dist/src/index/sqlite.d.ts +0 -33
- package/dist/src/index/sqlite.d.ts.map +0 -1
- package/dist/src/index/sqlite.js +0 -99
- package/dist/src/index/sqlite.js.map +0 -1
- package/dist/src/index/vectors.d.ts +0 -24
- package/dist/src/index/vectors.d.ts.map +0 -1
- package/dist/src/index/vectors.js +0 -97
- package/dist/src/index/vectors.js.map +0 -1
- package/dist/src/intelligence/anthropic.d.ts +0 -17
- package/dist/src/intelligence/anthropic.d.ts.map +0 -1
- package/dist/src/intelligence/anthropic.js +0 -36
- package/dist/src/intelligence/anthropic.js.map +0 -1
- package/dist/src/intelligence/embeddings.d.ts +0 -3
- package/dist/src/intelligence/embeddings.d.ts.map +0 -1
- package/dist/src/intelligence/embeddings.js +0 -15
- package/dist/src/intelligence/embeddings.js.map +0 -1
- package/dist/src/intelligence/llm.d.ts +0 -33
- package/dist/src/intelligence/llm.d.ts.map +0 -1
- package/dist/src/intelligence/llm.js +0 -26
- package/dist/src/intelligence/llm.js.map +0 -1
- package/dist/src/intelligence/lm-studio.d.ts +0 -20
- package/dist/src/intelligence/lm-studio.d.ts.map +0 -1
- package/dist/src/intelligence/lm-studio.js +0 -59
- package/dist/src/intelligence/lm-studio.js.map +0 -1
- package/dist/src/intelligence/ollama.d.ts +0 -22
- package/dist/src/intelligence/ollama.d.ts.map +0 -1
- package/dist/src/intelligence/ollama.js +0 -64
- package/dist/src/intelligence/ollama.js.map +0 -1
- package/dist/src/intelligence/response.d.ts +0 -29
- package/dist/src/intelligence/response.d.ts.map +0 -1
- package/dist/src/intelligence/response.js +0 -71
- package/dist/src/intelligence/response.js.map +0 -1
- package/dist/src/logs/format.d.ts +0 -6
- package/dist/src/logs/format.d.ts.map +0 -1
- package/dist/src/logs/format.js +0 -46
- package/dist/src/logs/format.js.map +0 -1
- package/dist/src/logs/reader.d.ts +0 -28
- package/dist/src/logs/reader.d.ts.map +0 -1
- package/dist/src/logs/reader.js +0 -106
- package/dist/src/logs/reader.js.map +0 -1
- package/dist/src/mcp/server.d.ts +0 -16
- package/dist/src/mcp/server.d.ts.map +0 -1
- package/dist/src/mcp/tools/consolidate.d.ts +0 -15
- package/dist/src/mcp/tools/consolidate.d.ts.map +0 -1
- package/dist/src/mcp/tools/consolidate.js +0 -49
- package/dist/src/mcp/tools/consolidate.js.map +0 -1
- package/dist/src/mcp/tools/graph.d.ts +0 -30
- package/dist/src/mcp/tools/graph.d.ts.map +0 -1
- package/dist/src/mcp/tools/graph.js +0 -106
- package/dist/src/mcp/tools/graph.js.map +0 -1
- package/dist/src/mcp/tools/logs.d.ts +0 -3
- package/dist/src/mcp/tools/logs.d.ts.map +0 -1
- package/dist/src/mcp/tools/logs.js +0 -7
- package/dist/src/mcp/tools/logs.js.map +0 -1
- package/dist/src/mcp/tools/plans.d.ts +0 -23
- package/dist/src/mcp/tools/plans.d.ts.map +0 -1
- package/dist/src/mcp/tools/plans.js +0 -63
- package/dist/src/mcp/tools/plans.js.map +0 -1
- package/dist/src/mcp/tools/recall.d.ts +0 -30
- package/dist/src/mcp/tools/recall.d.ts.map +0 -1
- package/dist/src/mcp/tools/recall.js +0 -34
- package/dist/src/mcp/tools/recall.js.map +0 -1
- package/dist/src/mcp/tools/remember.d.ts +0 -15
- package/dist/src/mcp/tools/remember.d.ts.map +0 -1
- package/dist/src/mcp/tools/remember.js +0 -18
- package/dist/src/mcp/tools/remember.js.map +0 -1
- package/dist/src/mcp/tools/search.d.ts +0 -19
- package/dist/src/mcp/tools/search.d.ts.map +0 -1
- package/dist/src/mcp/tools/search.js +0 -59
- package/dist/src/mcp/tools/search.js.map +0 -1
- package/dist/src/mcp/tools/sessions.d.ts +0 -21
- package/dist/src/mcp/tools/sessions.d.ts.map +0 -1
- package/dist/src/mcp/tools/sessions.js +0 -36
- package/dist/src/mcp/tools/sessions.js.map +0 -1
- package/dist/src/mcp/tools/supersede.d.ts +0 -14
- package/dist/src/mcp/tools/supersede.d.ts.map +0 -1
- package/dist/src/mcp/tools/supersede.js +0 -30
- package/dist/src/mcp/tools/supersede.js.map +0 -1
- package/dist/src/mcp/tools/team.d.ts +0 -16
- package/dist/src/mcp/tools/team.d.ts.map +0 -1
- package/dist/src/mcp/tools/team.js +0 -32
- package/dist/src/mcp/tools/team.js.map +0 -1
- package/dist/src/obsidian/formatter.d.ts +0 -80
- package/dist/src/obsidian/formatter.d.ts.map +0 -1
- package/dist/src/obsidian/formatter.js +0 -227
- package/dist/src/obsidian/formatter.js.map +0 -1
- package/dist/src/prompts/index.d.ts +0 -13
- package/dist/src/prompts/index.d.ts.map +0 -1
- package/dist/src/prompts/index.js +0 -75
- package/dist/src/prompts/index.js.map +0 -1
- package/dist/src/vault/frontmatter.d.ts +0 -6
- package/dist/src/vault/frontmatter.d.ts.map +0 -1
- package/dist/src/vault/frontmatter.js +0 -10
- package/dist/src/vault/frontmatter.js.map +0 -1
- package/dist/src/vault/observations.d.ts +0 -10
- package/dist/src/vault/observations.d.ts.map +0 -1
- package/dist/src/vault/observations.js +0 -33
- package/dist/src/vault/observations.js.map +0 -1
- package/dist/src/vault/reader.d.ts +0 -10
- package/dist/src/vault/reader.d.ts.map +0 -1
- package/dist/src/vault/reader.js +0 -48
- package/dist/src/vault/reader.js.map +0 -1
- package/dist/src/vault/resolve.d.ts +0 -18
- package/dist/src/vault/resolve.d.ts.map +0 -1
- package/dist/src/vault/resolve.js +0 -51
- package/dist/src/vault/resolve.js.map +0 -1
- package/dist/src/vault/session-id.d.ts +0 -16
- package/dist/src/vault/session-id.d.ts.map +0 -1
- package/dist/src/vault/session-id.js +0 -29
- package/dist/src/vault/session-id.js.map +0 -1
- package/dist/src/vault/types.d.ts +0 -88
- package/dist/src/vault/types.d.ts.map +0 -1
- package/dist/src/vault/types.js +0 -94
- package/dist/src/vault/types.js.map +0 -1
- package/dist/src/vault/writer.d.ts +0 -66
- package/dist/src/vault/writer.d.ts.map +0 -1
- package/dist/src/vault/writer.js +0 -217
- package/dist/src/vault/writer.js.map +0 -1
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Clean LLM response text before parsing.
|
|
3
|
-
*
|
|
4
|
-
* Reasoning models (DeepSeek, Qwen, GLM, etc.) embed chain-of-thought
|
|
5
|
-
* in the response using special tags. These must be stripped before
|
|
6
|
-
* JSON parsing or value extraction.
|
|
7
|
-
*/
|
|
8
|
-
/**
|
|
9
|
-
* Strip reasoning/chain-of-thought tokens from LLM response text.
|
|
10
|
-
* Returns the final answer without the thinking process.
|
|
11
|
-
*/
|
|
12
|
-
export declare function stripReasoningTokens(text: string): string;
|
|
13
|
-
/**
|
|
14
|
-
* Extract JSON from an LLM response that may contain markdown fences,
|
|
15
|
-
* reasoning tokens, or other wrapper text.
|
|
16
|
-
*
|
|
17
|
-
* Tries in order:
|
|
18
|
-
* 1. Strip reasoning tokens
|
|
19
|
-
* 2. Extract from ```json ... ``` code fences
|
|
20
|
-
* 3. Find bare {...} JSON object
|
|
21
|
-
* 4. Parse the cleaned text directly
|
|
22
|
-
*/
|
|
23
|
-
export declare function extractJson(text: string): unknown;
|
|
24
|
-
/**
|
|
25
|
-
* Extract a numeric value from an LLM response that may contain
|
|
26
|
-
* reasoning tokens or extra text around the number.
|
|
27
|
-
*/
|
|
28
|
-
export declare function extractNumber(text: string): number;
|
|
29
|
-
//# sourceMappingURL=response.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../../src/intelligence/response.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAeH;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAWzD;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAiBjD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKlD"}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Clean LLM response text before parsing.
|
|
3
|
-
*
|
|
4
|
-
* Reasoning models (DeepSeek, Qwen, GLM, etc.) embed chain-of-thought
|
|
5
|
-
* in the response using special tags. These must be stripped before
|
|
6
|
-
* JSON parsing or value extraction.
|
|
7
|
-
*/
|
|
8
|
-
// Patterns for reasoning model chain-of-thought tokens.
|
|
9
|
-
// Order matters: most specific patterns first.
|
|
10
|
-
const REASONING_PATTERNS = [
|
|
11
|
-
// <think>...</think>answer (DeepSeek, Qwen, GLM, many others)
|
|
12
|
-
/<think>[\s\S]*?<\/think>\s*/gi,
|
|
13
|
-
// Implicit opening: reasoning...</think>answer (GLM-4.7 observed)
|
|
14
|
-
/^[\s\S]*?<\/think>\s*/i,
|
|
15
|
-
// <reasoning>...</reasoning>answer
|
|
16
|
-
/<reasoning>[\s\S]*?<\/reasoning>\s*/gi,
|
|
17
|
-
// <|thinking|>...<|/thinking|>answer
|
|
18
|
-
/<\|thinking\|>[\s\S]*?<\|\/thinking\|>\s*/gi,
|
|
19
|
-
];
|
|
20
|
-
/**
|
|
21
|
-
* Strip reasoning/chain-of-thought tokens from LLM response text.
|
|
22
|
-
* Returns the final answer without the thinking process.
|
|
23
|
-
*/
|
|
24
|
-
export function stripReasoningTokens(text) {
|
|
25
|
-
if (!text)
|
|
26
|
-
return text;
|
|
27
|
-
for (const pattern of REASONING_PATTERNS) {
|
|
28
|
-
const stripped = text.replace(pattern, '').trim();
|
|
29
|
-
if (stripped && stripped !== text.trim()) {
|
|
30
|
-
return stripped;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
return text;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Extract JSON from an LLM response that may contain markdown fences,
|
|
37
|
-
* reasoning tokens, or other wrapper text.
|
|
38
|
-
*
|
|
39
|
-
* Tries in order:
|
|
40
|
-
* 1. Strip reasoning tokens
|
|
41
|
-
* 2. Extract from ```json ... ``` code fences
|
|
42
|
-
* 3. Find bare {...} JSON object
|
|
43
|
-
* 4. Parse the cleaned text directly
|
|
44
|
-
*/
|
|
45
|
-
export function extractJson(text) {
|
|
46
|
-
const cleaned = stripReasoningTokens(text);
|
|
47
|
-
// Try code fence extraction
|
|
48
|
-
const fenceMatch = cleaned.match(/```(?:json)?\s*\n?([\s\S]*?)\n?```/);
|
|
49
|
-
if (fenceMatch) {
|
|
50
|
-
return JSON.parse(fenceMatch[1].trim());
|
|
51
|
-
}
|
|
52
|
-
// Try bare JSON object
|
|
53
|
-
const objectMatch = cleaned.match(/\{[\s\S]*\}/);
|
|
54
|
-
if (objectMatch) {
|
|
55
|
-
return JSON.parse(objectMatch[0]);
|
|
56
|
-
}
|
|
57
|
-
// Try direct parse
|
|
58
|
-
return JSON.parse(cleaned);
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Extract a numeric value from an LLM response that may contain
|
|
62
|
-
* reasoning tokens or extra text around the number.
|
|
63
|
-
*/
|
|
64
|
-
export function extractNumber(text) {
|
|
65
|
-
const cleaned = stripReasoningTokens(text).trim();
|
|
66
|
-
const match = cleaned.match(/(\d+\.?\d*)/);
|
|
67
|
-
if (match)
|
|
68
|
-
return parseFloat(match[1]);
|
|
69
|
-
return parseFloat(cleaned);
|
|
70
|
-
}
|
|
71
|
-
//# sourceMappingURL=response.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/intelligence/response.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,wDAAwD;AACxD,+CAA+C;AAC/C,MAAM,kBAAkB,GAAG;IACzB,+DAA+D;IAC/D,+BAA+B;IAC/B,mEAAmE;IACnE,wBAAwB;IACxB,mCAAmC;IACnC,uCAAuC;IACvC,qCAAqC;IACrC,6CAA6C;CAC9C,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,KAAK,MAAM,OAAO,IAAI,kBAAkB,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAClD,IAAI,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACzC,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAE3C,4BAA4B;IAC5B,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACvE,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,uBAAuB;IACvB,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACjD,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IAED,mBAAmB;IACnB,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IAClD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAC3C,IAAI,KAAK;QAAE,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { LogEntry } from '../daemon/logger.js';
|
|
2
|
-
export declare function formatLogLine(entry: LogEntry): string;
|
|
3
|
-
export declare function formatLocalTime(iso: string): string;
|
|
4
|
-
export declare function parseIntFlag(args: string[], long: string, short?: string): number | undefined;
|
|
5
|
-
export declare function parseStringFlag(args: string[], long: string, short?: string): string | undefined;
|
|
6
|
-
//# sourceMappingURL=format.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/logs/format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAQpD,wBAAgB,aAAa,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAiBrD;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAMnD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQ7F;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAOhG"}
|
package/dist/src/logs/format.js
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
/** Max display length for extra field values in pretty-printed output. */
|
|
2
|
-
const LOG_VALUE_MAX_DISPLAY = 80;
|
|
3
|
-
/** Core fields that are handled positionally, not as extras. */
|
|
4
|
-
const CORE_FIELDS = ['timestamp', 'level', 'component', 'message'];
|
|
5
|
-
export function formatLogLine(entry) {
|
|
6
|
-
const time = formatLocalTime(entry.timestamp);
|
|
7
|
-
const lvl = entry.level.toUpperCase().padEnd(5);
|
|
8
|
-
const comp = `[${entry.component}]`.padEnd(14);
|
|
9
|
-
const extras = [];
|
|
10
|
-
for (const [key, value] of Object.entries(entry)) {
|
|
11
|
-
if (CORE_FIELDS.includes(key))
|
|
12
|
-
continue;
|
|
13
|
-
const str = String(value);
|
|
14
|
-
const display = str.length > LOG_VALUE_MAX_DISPLAY
|
|
15
|
-
? str.slice(0, LOG_VALUE_MAX_DISPLAY) + '...'
|
|
16
|
-
: str;
|
|
17
|
-
extras.push(`${key}=${display}`);
|
|
18
|
-
}
|
|
19
|
-
const extraStr = extras.length > 0 ? ' ' + extras.join(' ') : '';
|
|
20
|
-
return `${time} ${lvl} ${comp} ${entry.message}${extraStr}`;
|
|
21
|
-
}
|
|
22
|
-
export function formatLocalTime(iso) {
|
|
23
|
-
const d = new Date(iso);
|
|
24
|
-
const hh = String(d.getHours()).padStart(2, '0');
|
|
25
|
-
const mm = String(d.getMinutes()).padStart(2, '0');
|
|
26
|
-
const ss = String(d.getSeconds()).padStart(2, '0');
|
|
27
|
-
return `${hh}:${mm}:${ss}`;
|
|
28
|
-
}
|
|
29
|
-
export function parseIntFlag(args, long, short) {
|
|
30
|
-
for (let i = 0; i < args.length; i++) {
|
|
31
|
-
if (args[i] === long || (short && args[i] === short)) {
|
|
32
|
-
const val = parseInt(args[i + 1], 10);
|
|
33
|
-
return isNaN(val) ? undefined : val;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
return undefined;
|
|
37
|
-
}
|
|
38
|
-
export function parseStringFlag(args, long, short) {
|
|
39
|
-
for (let i = 0; i < args.length; i++) {
|
|
40
|
-
if (args[i] === long || (short && args[i] === short)) {
|
|
41
|
-
return args[i + 1];
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
return undefined;
|
|
45
|
-
}
|
|
46
|
-
//# sourceMappingURL=format.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/logs/format.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import type { LogEntry } from '../daemon/logger.js';
|
|
2
|
-
import { LEVEL_ORDER } from '../daemon/logger.js';
|
|
3
|
-
import type { LogLevel } from '../daemon/logger.js';
|
|
4
|
-
export { LEVEL_ORDER };
|
|
5
|
-
export type { LogEntry, LogLevel };
|
|
6
|
-
export interface LogQuery {
|
|
7
|
-
limit?: number;
|
|
8
|
-
level?: LogLevel;
|
|
9
|
-
component?: string;
|
|
10
|
-
since?: string;
|
|
11
|
-
until?: string;
|
|
12
|
-
}
|
|
13
|
-
export interface LogQueryResult {
|
|
14
|
-
entries: LogEntry[];
|
|
15
|
-
total: number;
|
|
16
|
-
truncated: boolean;
|
|
17
|
-
}
|
|
18
|
-
/** Default number of entries returned when no limit is specified. */
|
|
19
|
-
export declare const DEFAULT_LOG_TAIL = 50;
|
|
20
|
-
/**
|
|
21
|
-
* Query parsed log entries from all JSONL log files on disk.
|
|
22
|
-
* Reads both daemon logs and MCP activity logs.
|
|
23
|
-
* Returns the last N matching entries (tail behavior).
|
|
24
|
-
*/
|
|
25
|
-
export declare function queryLogs(logDir: string, query?: LogQuery): LogQueryResult;
|
|
26
|
-
/** Test whether a single entry matches the query filters. */
|
|
27
|
-
export declare function matchesFilter(entry: LogEntry, query: LogQuery): boolean;
|
|
28
|
-
//# sourceMappingURL=reader.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../../../src/logs/reader.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,CAAC;AACvB,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAEnC,MAAM,WAAW,QAAQ;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,qEAAqE;AACrE,eAAO,MAAM,gBAAgB,KAAK,CAAC;AASnC;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,QAAa,GAAG,cAAc,CAmB9E;AAsDD,6DAA6D;AAC7D,wBAAgB,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAUvE"}
|
package/dist/src/logs/reader.js
DELETED
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
import fs from 'node:fs';
|
|
2
|
-
import path from 'node:path';
|
|
3
|
-
import { LEVEL_ORDER } from '../daemon/logger.js';
|
|
4
|
-
export { LEVEL_ORDER };
|
|
5
|
-
/** Default number of entries returned when no limit is specified. */
|
|
6
|
-
export const DEFAULT_LOG_TAIL = 50;
|
|
7
|
-
/** Hard ceiling on entries returned to prevent memory issues. */
|
|
8
|
-
const MAX_LOG_QUERY_LIMIT = 10_000;
|
|
9
|
-
/** Matches daemon.log, rotated daemon.N.log, and mcp.jsonl. */
|
|
10
|
-
const DAEMON_LOG_PATTERN = /^daemon(?:\.(\d+))?\.log$/;
|
|
11
|
-
const MCP_LOG_FILE = 'mcp.jsonl';
|
|
12
|
-
/**
|
|
13
|
-
* Query parsed log entries from all JSONL log files on disk.
|
|
14
|
-
* Reads both daemon logs and MCP activity logs.
|
|
15
|
-
* Returns the last N matching entries (tail behavior).
|
|
16
|
-
*/
|
|
17
|
-
export function queryLogs(logDir, query = {}) {
|
|
18
|
-
const limit = Math.min(query.limit ?? DEFAULT_LOG_TAIL, MAX_LOG_QUERY_LIMIT);
|
|
19
|
-
const logFiles = discoverLogFiles(logDir);
|
|
20
|
-
if (logFiles.length === 0) {
|
|
21
|
-
return { entries: [], total: 0, truncated: false };
|
|
22
|
-
}
|
|
23
|
-
const allEntries = readAndParse(logFiles);
|
|
24
|
-
// Sort all entries by timestamp so daemon + MCP logs interleave correctly
|
|
25
|
-
allEntries.sort((a, b) => (a.timestamp ?? '').localeCompare(b.timestamp ?? ''));
|
|
26
|
-
const filtered = applyFilters(allEntries, query);
|
|
27
|
-
const total = filtered.length;
|
|
28
|
-
const truncated = total > limit;
|
|
29
|
-
const entries = truncated ? filtered.slice(total - limit) : filtered;
|
|
30
|
-
return { entries, total, truncated };
|
|
31
|
-
}
|
|
32
|
-
/** Discover and sort log files: MCP first, then rotated daemon logs oldest-first, current daemon last. */
|
|
33
|
-
function discoverLogFiles(logDir) {
|
|
34
|
-
let files;
|
|
35
|
-
try {
|
|
36
|
-
files = fs.readdirSync(logDir);
|
|
37
|
-
}
|
|
38
|
-
catch {
|
|
39
|
-
return [];
|
|
40
|
-
}
|
|
41
|
-
const matched = [];
|
|
42
|
-
for (const file of files) {
|
|
43
|
-
if (file === MCP_LOG_FILE) {
|
|
44
|
-
matched.push({ path: path.join(logDir, file), order: -1 });
|
|
45
|
-
continue;
|
|
46
|
-
}
|
|
47
|
-
const m = DAEMON_LOG_PATTERN.exec(file);
|
|
48
|
-
if (!m)
|
|
49
|
-
continue;
|
|
50
|
-
const rotationNum = m[1] ? parseInt(m[1], 10) : 0;
|
|
51
|
-
matched.push({ path: path.join(logDir, file), order: rotationNum });
|
|
52
|
-
}
|
|
53
|
-
matched.sort((a, b) => {
|
|
54
|
-
if (a.order === 0)
|
|
55
|
-
return 1;
|
|
56
|
-
if (b.order === 0)
|
|
57
|
-
return -1;
|
|
58
|
-
return b.order - a.order;
|
|
59
|
-
});
|
|
60
|
-
return matched.map((m) => m.path);
|
|
61
|
-
}
|
|
62
|
-
/** Read all log files and parse each line as JSON. Malformed lines are skipped. */
|
|
63
|
-
function readAndParse(filePaths) {
|
|
64
|
-
const entries = [];
|
|
65
|
-
for (const filePath of filePaths) {
|
|
66
|
-
let content;
|
|
67
|
-
try {
|
|
68
|
-
content = fs.readFileSync(filePath, 'utf-8');
|
|
69
|
-
}
|
|
70
|
-
catch {
|
|
71
|
-
continue;
|
|
72
|
-
}
|
|
73
|
-
for (const line of content.split('\n')) {
|
|
74
|
-
if (!line.trim())
|
|
75
|
-
continue;
|
|
76
|
-
try {
|
|
77
|
-
entries.push(JSON.parse(line));
|
|
78
|
-
}
|
|
79
|
-
catch {
|
|
80
|
-
// Malformed line — skip
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
return entries;
|
|
85
|
-
}
|
|
86
|
-
/** Test whether a single entry matches the query filters. */
|
|
87
|
-
export function matchesFilter(entry, query) {
|
|
88
|
-
if (query.level) {
|
|
89
|
-
const entryOrder = LEVEL_ORDER[entry.level] ?? 0;
|
|
90
|
-
const minOrder = LEVEL_ORDER[query.level];
|
|
91
|
-
if (entryOrder < minOrder)
|
|
92
|
-
return false;
|
|
93
|
-
}
|
|
94
|
-
if (query.component && entry.component !== query.component)
|
|
95
|
-
return false;
|
|
96
|
-
if (query.since && entry.timestamp < query.since)
|
|
97
|
-
return false;
|
|
98
|
-
if (query.until && entry.timestamp > query.until)
|
|
99
|
-
return false;
|
|
100
|
-
return true;
|
|
101
|
-
}
|
|
102
|
-
/** Apply level, component, and time range filters. */
|
|
103
|
-
function applyFilters(entries, query) {
|
|
104
|
-
return entries.filter((entry) => matchesFilter(entry, query));
|
|
105
|
-
}
|
|
106
|
-
//# sourceMappingURL=reader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"reader.js","sourceRoot":"","sources":["../../../src/logs/reader.ts"],"names":[],"mappings":"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"}
|
package/dist/src/mcp/server.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { EmbeddingProvider } from '../intelligence/llm.js';
|
|
2
|
-
import { VectorIndex } from '../index/vectors.js';
|
|
3
|
-
interface ServerConfig {
|
|
4
|
-
vaultDir: string;
|
|
5
|
-
teamUser?: string;
|
|
6
|
-
embeddingProvider?: EmbeddingProvider;
|
|
7
|
-
vectorIndex?: VectorIndex;
|
|
8
|
-
}
|
|
9
|
-
export interface MycoServer {
|
|
10
|
-
name: string;
|
|
11
|
-
getRegisteredTools(): string[];
|
|
12
|
-
start(): Promise<void>;
|
|
13
|
-
}
|
|
14
|
-
export declare function createMycoServer(config: ServerConfig): MycoServer;
|
|
15
|
-
export {};
|
|
16
|
-
//# sourceMappingURL=server.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/mcp/server.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAQlD,UAAU,YAAY;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAkJD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB,IAAI,MAAM,EAAE,CAAC;IAC/B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,UAAU,CAqGjE"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { MycoIndex } from '../../index/sqlite.js';
|
|
2
|
-
interface ConsolidateInput {
|
|
3
|
-
source_memory_ids: string[];
|
|
4
|
-
consolidated_content: string;
|
|
5
|
-
observation_type: string;
|
|
6
|
-
tags?: string[];
|
|
7
|
-
}
|
|
8
|
-
interface ConsolidateResult {
|
|
9
|
-
wisdom_id: string;
|
|
10
|
-
wisdom_path: string;
|
|
11
|
-
sources_archived: number;
|
|
12
|
-
}
|
|
13
|
-
export declare function handleMycoConsolidate(vaultDir: string, index: MycoIndex, input: ConsolidateInput): Promise<ConsolidateResult>;
|
|
14
|
-
export {};
|
|
15
|
-
//# sourceMappingURL=consolidate.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"consolidate.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/consolidate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAKvD,UAAU,gBAAgB;IACxB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,UAAU,iBAAiB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,iBAAiB,CAAC,CAmD5B"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { VaultWriter } from '../../vault/writer.js';
|
|
2
|
-
import { indexNote } from '../../index/rebuild.js';
|
|
3
|
-
import { randomBytes } from 'node:crypto';
|
|
4
|
-
import fs from 'node:fs';
|
|
5
|
-
import path from 'node:path';
|
|
6
|
-
export async function handleMycoConsolidate(vaultDir, index, input) {
|
|
7
|
-
const writer = new VaultWriter(vaultDir);
|
|
8
|
-
const wisdomId = `${input.observation_type}-wisdom-${randomBytes(4).toString('hex')}`;
|
|
9
|
-
// Build the wisdom note content with source links for Obsidian graph
|
|
10
|
-
const sourceLinks = input.source_memory_ids.map((id) => `- [[${id}]]`).join('\n');
|
|
11
|
-
const fullContent = `${input.consolidated_content}\n\n## Sources\n\nConsolidated from:\n${sourceLinks}`;
|
|
12
|
-
// Create the consolidated wisdom note
|
|
13
|
-
const wisdomPath = writer.writeMemory({
|
|
14
|
-
id: wisdomId,
|
|
15
|
-
observation_type: input.observation_type,
|
|
16
|
-
tags: [...(input.tags ?? []), 'wisdom', 'consolidated'],
|
|
17
|
-
content: fullContent,
|
|
18
|
-
});
|
|
19
|
-
// Add consolidated_from to the new note's frontmatter
|
|
20
|
-
writer.updateNoteFrontmatter(wisdomPath, {
|
|
21
|
-
consolidated_from: input.source_memory_ids,
|
|
22
|
-
}, true);
|
|
23
|
-
// Mark each source memory as superseded by the wisdom note
|
|
24
|
-
let archived = 0;
|
|
25
|
-
for (const sourceId of input.source_memory_ids) {
|
|
26
|
-
const notes = index.queryByIds([sourceId]);
|
|
27
|
-
if (notes.length > 0) {
|
|
28
|
-
const notePath = notes[0].path;
|
|
29
|
-
// Update frontmatter
|
|
30
|
-
writer.updateNoteFrontmatter(notePath, {
|
|
31
|
-
status: 'superseded',
|
|
32
|
-
superseded_by: wisdomId,
|
|
33
|
-
}, true);
|
|
34
|
-
// Append supersession notice with wikilink to body
|
|
35
|
-
const fullPath = path.join(vaultDir, notePath);
|
|
36
|
-
const content = fs.readFileSync(fullPath, 'utf-8');
|
|
37
|
-
if (!content.includes('Superseded by::')) {
|
|
38
|
-
const notice = `\n\n> [!warning] Consolidated\n> This observation has been consolidated into a wisdom note.\n\nSuperseded by:: [[${wisdomId}]]`;
|
|
39
|
-
fs.writeFileSync(fullPath, content.trimEnd() + notice + '\n', 'utf-8');
|
|
40
|
-
}
|
|
41
|
-
indexNote(index, vaultDir, notePath);
|
|
42
|
-
archived++;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
// Index the new wisdom note
|
|
46
|
-
indexNote(index, vaultDir, wisdomPath);
|
|
47
|
-
return { wisdom_id: wisdomId, wisdom_path: wisdomPath, sources_archived: archived };
|
|
48
|
-
}
|
|
49
|
-
//# sourceMappingURL=consolidate.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"consolidate.js","sourceRoot":"","sources":["../../../../src/mcp/tools/consolidate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAe7B,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,QAAgB,EAChB,KAAgB,EAChB,KAAuB;IAEvB,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,GAAG,KAAK,CAAC,gBAAgB,WAAW,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;IAEtF,qEAAqE;IACrE,MAAM,WAAW,GAAG,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClF,MAAM,WAAW,GAAG,GAAG,KAAK,CAAC,oBAAoB,yCAAyC,WAAW,EAAE,CAAC;IAExG,sCAAsC;IACtC,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;QACpC,EAAE,EAAE,QAAQ;QACZ,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;QACxC,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC;QACvD,OAAO,EAAE,WAAW;KACrB,CAAC,CAAC;IAEH,sDAAsD;IACtD,MAAM,CAAC,qBAAqB,CAAC,UAAU,EAAE;QACvC,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;KAC3C,EAAE,IAAI,CAAC,CAAC;IAET,2DAA2D;IAC3D,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3C,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAE/B,qBAAqB;YACrB,MAAM,CAAC,qBAAqB,CAAC,QAAQ,EAAE;gBACrC,MAAM,EAAE,YAAY;gBACpB,aAAa,EAAE,QAAQ;aACxB,EAAE,IAAI,CAAC,CAAC;YAET,mDAAmD;YACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC/C,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACnD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBACzC,MAAM,MAAM,GAAG,oHAAoH,QAAQ,IAAI,CAAC;gBAChJ,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,MAAM,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;YACzE,CAAC;YAED,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACrC,QAAQ,EAAE,CAAC;QACb,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAEvC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC;AACtF,CAAC"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import type { MycoIndex } from '../../index/sqlite.js';
|
|
2
|
-
interface GraphInput {
|
|
3
|
-
note_id: string;
|
|
4
|
-
direction?: 'incoming' | 'outgoing' | 'both';
|
|
5
|
-
depth?: number;
|
|
6
|
-
}
|
|
7
|
-
interface GraphLink {
|
|
8
|
-
source: string;
|
|
9
|
-
target: string;
|
|
10
|
-
source_type: string;
|
|
11
|
-
target_type: string;
|
|
12
|
-
source_title: string;
|
|
13
|
-
target_title: string;
|
|
14
|
-
}
|
|
15
|
-
interface GraphResult {
|
|
16
|
-
note_id: string;
|
|
17
|
-
links: GraphLink[];
|
|
18
|
-
}
|
|
19
|
-
export declare function handleMycoGraph(index: MycoIndex, input: GraphInput): Promise<GraphResult>;
|
|
20
|
-
interface OrphansResult {
|
|
21
|
-
orphans: Array<{
|
|
22
|
-
id: string;
|
|
23
|
-
type: string;
|
|
24
|
-
title: string;
|
|
25
|
-
path: string;
|
|
26
|
-
}>;
|
|
27
|
-
}
|
|
28
|
-
export declare function handleMycoOrphans(index: MycoIndex): Promise<OrphansResult>;
|
|
29
|
-
export {};
|
|
30
|
-
//# sourceMappingURL=graph.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAe,MAAM,uBAAuB,CAAC;AAIpE,UAAU,UAAU;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,SAAS;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,WAAW;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,SAAS,EAAE,CAAC;CACpB;AAgBD,wBAAsB,eAAe,CACnC,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC,WAAW,CAAC,CAiEtB;AAED,UAAU,aAAa;IACrB,OAAO,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC3E;AAED,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,CAiChF"}
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
const WIKILINK_RE = /\[\[([^\]|]+)(?:\|[^\]]+)?\]\]/g;
|
|
2
|
-
function extractWikilinks(content) {
|
|
3
|
-
const links = [];
|
|
4
|
-
let match;
|
|
5
|
-
while ((match = WIKILINK_RE.exec(content)) !== null) {
|
|
6
|
-
links.push(match[1]);
|
|
7
|
-
}
|
|
8
|
-
return links;
|
|
9
|
-
}
|
|
10
|
-
function findNoteById(index, noteId) {
|
|
11
|
-
const results = index.query({ id: noteId, limit: 1 });
|
|
12
|
-
return results[0] ?? null;
|
|
13
|
-
}
|
|
14
|
-
export async function handleMycoGraph(index, input) {
|
|
15
|
-
const direction = input.direction ?? 'both';
|
|
16
|
-
const depth = Math.min(input.depth ?? 1, 3);
|
|
17
|
-
const visited = new Set();
|
|
18
|
-
const allLinks = [];
|
|
19
|
-
function traverse(noteId, currentDepth) {
|
|
20
|
-
if (currentDepth > depth || visited.has(noteId))
|
|
21
|
-
return;
|
|
22
|
-
visited.add(noteId);
|
|
23
|
-
const note = findNoteById(index, noteId);
|
|
24
|
-
// Outgoing: wikilinks in this note's content
|
|
25
|
-
if (direction === 'outgoing' || direction === 'both') {
|
|
26
|
-
if (note) {
|
|
27
|
-
const targets = extractWikilinks(note.content);
|
|
28
|
-
for (const target of targets) {
|
|
29
|
-
const targetNote = findNoteById(index, target);
|
|
30
|
-
allLinks.push({
|
|
31
|
-
source: noteId,
|
|
32
|
-
target,
|
|
33
|
-
source_type: note.type,
|
|
34
|
-
target_type: targetNote?.type ?? 'unknown',
|
|
35
|
-
source_title: note.title,
|
|
36
|
-
target_title: targetNote?.title ?? target,
|
|
37
|
-
});
|
|
38
|
-
if (currentDepth < depth)
|
|
39
|
-
traverse(target, currentDepth + 1);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
// Incoming: other notes whose content links to this note
|
|
44
|
-
if (direction === 'incoming' || direction === 'both') {
|
|
45
|
-
const allNotes = index.query({ limit: 500 });
|
|
46
|
-
for (const n of allNotes) {
|
|
47
|
-
if (n.id === noteId)
|
|
48
|
-
continue;
|
|
49
|
-
const links = extractWikilinks(n.content);
|
|
50
|
-
if (links.includes(noteId)) {
|
|
51
|
-
allLinks.push({
|
|
52
|
-
source: n.id,
|
|
53
|
-
target: noteId,
|
|
54
|
-
source_type: n.type,
|
|
55
|
-
target_type: note?.type ?? 'unknown',
|
|
56
|
-
source_title: n.title,
|
|
57
|
-
target_title: note?.title ?? noteId,
|
|
58
|
-
});
|
|
59
|
-
if (currentDepth < depth)
|
|
60
|
-
traverse(n.id, currentDepth + 1);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
traverse(input.note_id, 1);
|
|
66
|
-
// Deduplicate links
|
|
67
|
-
const seen = new Set();
|
|
68
|
-
const unique = allLinks.filter((link) => {
|
|
69
|
-
const key = `${link.source}->${link.target}`;
|
|
70
|
-
if (seen.has(key))
|
|
71
|
-
return false;
|
|
72
|
-
seen.add(key);
|
|
73
|
-
return true;
|
|
74
|
-
});
|
|
75
|
-
return { note_id: input.note_id, links: unique };
|
|
76
|
-
}
|
|
77
|
-
export async function handleMycoOrphans(index) {
|
|
78
|
-
const allNotes = index.query({ limit: 1000 });
|
|
79
|
-
// Build maps of all links
|
|
80
|
-
const hasOutgoing = new Set();
|
|
81
|
-
const isLinkedTo = new Set();
|
|
82
|
-
for (const note of allNotes) {
|
|
83
|
-
const links = extractWikilinks(note.content);
|
|
84
|
-
if (links.length > 0)
|
|
85
|
-
hasOutgoing.add(note.id);
|
|
86
|
-
for (const target of links) {
|
|
87
|
-
isLinkedTo.add(target);
|
|
88
|
-
}
|
|
89
|
-
// Also check frontmatter session/plan refs
|
|
90
|
-
const fm = note.frontmatter;
|
|
91
|
-
if (fm.session && typeof fm.session === 'string') {
|
|
92
|
-
isLinkedTo.add(fm.session);
|
|
93
|
-
}
|
|
94
|
-
if (fm.plan && typeof fm.plan === 'string') {
|
|
95
|
-
isLinkedTo.add(fm.plan);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
const orphans = allNotes.filter((note) => !hasOutgoing.has(note.id) && !isLinkedTo.has(note.id)).map((note) => ({
|
|
99
|
-
id: note.id,
|
|
100
|
-
type: note.type,
|
|
101
|
-
title: note.title,
|
|
102
|
-
path: note.path,
|
|
103
|
-
}));
|
|
104
|
-
return { orphans };
|
|
105
|
-
}
|
|
106
|
-
//# sourceMappingURL=graph.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../../../src/mcp/tools/graph.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,GAAG,iCAAiC,CAAC;AAsBtD,SAAS,gBAAgB,CAAC,OAAe;IACvC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,KAAK,CAAC;IACV,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACpD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,YAAY,CAAC,KAAgB,EAAE,MAAc;IACpD,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACtD,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC5B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAAgB,EAChB,KAAiB;IAEjB,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,MAAM,CAAC;IAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAE5C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,QAAQ,GAAgB,EAAE,CAAC;IAEjC,SAAS,QAAQ,CAAC,MAAc,EAAE,YAAoB;QACpD,IAAI,YAAY,GAAG,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO;QACxD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEpB,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAEzC,6CAA6C;QAC7C,IAAI,SAAS,KAAK,UAAU,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;YACrD,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC/C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;oBAC7B,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;oBAC/C,QAAQ,CAAC,IAAI,CAAC;wBACZ,MAAM,EAAE,MAAM;wBACd,MAAM;wBACN,WAAW,EAAE,IAAI,CAAC,IAAI;wBACtB,WAAW,EAAE,UAAU,EAAE,IAAI,IAAI,SAAS;wBAC1C,YAAY,EAAE,IAAI,CAAC,KAAK;wBACxB,YAAY,EAAE,UAAU,EAAE,KAAK,IAAI,MAAM;qBAC1C,CAAC,CAAC;oBACH,IAAI,YAAY,GAAG,KAAK;wBAAE,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC;QACH,CAAC;QAED,yDAAyD;QACzD,IAAI,SAAS,KAAK,UAAU,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;YACrD,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YAC7C,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACzB,IAAI,CAAC,CAAC,EAAE,KAAK,MAAM;oBAAE,SAAS;gBAC9B,MAAM,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBAC1C,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC3B,QAAQ,CAAC,IAAI,CAAC;wBACZ,MAAM,EAAE,CAAC,CAAC,EAAE;wBACZ,MAAM,EAAE,MAAM;wBACd,WAAW,EAAE,CAAC,CAAC,IAAI;wBACnB,WAAW,EAAE,IAAI,EAAE,IAAI,IAAI,SAAS;wBACpC,YAAY,EAAE,CAAC,CAAC,KAAK;wBACrB,YAAY,EAAE,IAAI,EAAE,KAAK,IAAI,MAAM;qBACpC,CAAC,CAAC;oBACH,IAAI,YAAY,GAAG,KAAK;wBAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC;gBAC7D,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAE3B,oBAAoB;IACpB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QACtC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7C,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACnD,CAAC;AAMD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,KAAgB;IACtD,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAE9C,0BAA0B;IAC1B,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IAErC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/C,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE,CAAC;YAC3B,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;QACD,2CAA2C;QAC3C,MAAM,EAAE,GAAG,IAAI,CAAC,WAAsC,CAAC;QACvD,IAAI,EAAE,CAAC,OAAO,IAAI,OAAO,EAAE,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACjD,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,EAAE,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC3C,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACvC,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CACtD,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACf,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,IAAI,EAAE,IAAI,CAAC,IAAI;KAChB,CAAC,CAAC,CAAC;IAEJ,OAAO,EAAE,OAAO,EAAE,CAAC;AACrB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/logs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGrE,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,QAAQ,GACd,OAAO,CAAC,cAAc,CAAC,CAGzB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../../src/mcp/tools/logs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,QAAgB,EAChB,KAAe;IAEf,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC3C,OAAO,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAClC,CAAC"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import type { MycoIndex } from '../../index/sqlite.js';
|
|
2
|
-
interface PlansInput {
|
|
3
|
-
status?: 'active' | 'in_progress' | 'completed' | 'abandoned' | 'all';
|
|
4
|
-
id?: string;
|
|
5
|
-
}
|
|
6
|
-
interface PlanSummary {
|
|
7
|
-
id: string;
|
|
8
|
-
title: string;
|
|
9
|
-
status: string;
|
|
10
|
-
progress: string;
|
|
11
|
-
tags: string[];
|
|
12
|
-
}
|
|
13
|
-
interface PlanDetail extends PlanSummary {
|
|
14
|
-
content: string;
|
|
15
|
-
sessions: Array<{
|
|
16
|
-
id: string;
|
|
17
|
-
title: string;
|
|
18
|
-
started: string;
|
|
19
|
-
}>;
|
|
20
|
-
}
|
|
21
|
-
export declare function handleMycoPlans(index: MycoIndex, input: PlansInput): Promise<PlanSummary[] | PlanDetail>;
|
|
22
|
-
export {};
|
|
23
|
-
//# sourceMappingURL=plans.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plans.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/plans.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGvD,UAAU,UAAU;IAClB,MAAM,CAAC,EAAE,QAAQ,GAAG,aAAa,GAAG,WAAW,GAAG,WAAW,GAAG,KAAK,CAAC;IACtE,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,UAAU,WAAW;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,UAAU,UAAW,SAAQ,WAAW;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjE;AAED,wBAAsB,eAAe,CACnC,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC,WAAW,EAAE,GAAG,UAAU,CAAC,CAsBrC"}
|