@goondocks/myco 0.6.3 → 0.6.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.
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/dist/{chunk-LDKXXKF6.js → chunk-2ZIBCEYO.js} +4 -4
- package/dist/{chunk-PQWQC3RF.js → chunk-4XVKZ3WA.js} +137 -146
- package/dist/chunk-4XVKZ3WA.js.map +1 -0
- package/dist/{chunk-25FY74AP.js → chunk-7WHF2OIZ.js} +2 -2
- package/dist/{chunk-JSK7L46L.js → chunk-ERG2IEWX.js} +22 -4
- package/dist/{chunk-JSK7L46L.js.map → chunk-ERG2IEWX.js.map} +1 -1
- package/dist/{chunk-RXJHB7W4.js → chunk-FPRXMJLT.js} +2 -2
- package/dist/{chunk-RY76WEN3.js → chunk-GENQ5QGP.js} +2 -2
- package/dist/{chunk-YG6MLLGL.js → chunk-HYVT345Y.js} +2 -2
- package/dist/{chunk-WBLTISAK.js → chunk-J4D4CROB.js} +32 -6
- package/dist/chunk-J4D4CROB.js.map +1 -0
- package/dist/{chunk-IWBWZQK6.js → chunk-MDLSAFPP.js} +2 -2
- package/dist/{chunk-WU4PCNIK.js → chunk-NL6WQO56.js} +2 -2
- package/dist/{chunk-DBMHUMG3.js → chunk-NLUE6CYG.js} +3 -3
- package/dist/{chunk-CQ4RKK67.js → chunk-O6PERU7U.js} +2 -2
- package/dist/{chunk-XNAM6Z4O.js → chunk-P723N2LP.js} +2 -2
- package/dist/{chunk-CK24O5YQ.js → chunk-QN4W3JUA.js} +2 -2
- package/dist/{chunk-ALBVNGCF.js → chunk-UP4P4OAA.js} +55 -44
- package/dist/{chunk-ALBVNGCF.js.map → chunk-UP4P4OAA.js.map} +1 -1
- package/dist/{chunk-CPVXNRGW.js → chunk-YIQLYIHW.js} +4 -4
- package/dist/{chunk-4WL5X7VS.js → chunk-YTFXA4RX.js} +3 -3
- package/dist/{chunk-RNWALAFP.js → chunk-Z74SDEKE.js} +2 -2
- package/dist/chunk-Z74SDEKE.js.map +1 -0
- package/dist/{cli-EGWAINIE.js → cli-IHILSS6N.js} +20 -20
- package/dist/{client-FDKJ4BY7.js → client-AGFNR2S4.js} +5 -5
- package/dist/{config-HDUFDOQN.js → config-IBS6KOLQ.js} +3 -3
- package/dist/{curate-OHIJFBYF.js → curate-3D4GHKJH.js} +9 -10
- package/dist/{curate-OHIJFBYF.js.map → curate-3D4GHKJH.js.map} +1 -1
- package/dist/{detect-providers-4U3ZPW5G.js → detect-providers-XEP4QA3R.js} +3 -3
- package/dist/{digest-I2XYCK2M.js → digest-7HLJXL77.js} +11 -11
- package/dist/{init-ZO2XQT6U.js → init-ARQ53JOR.js} +8 -8
- package/dist/{main-XZ6X4BUX.js → main-6AGPIMH2.js} +1972 -374
- package/dist/main-6AGPIMH2.js.map +1 -0
- package/dist/{rebuild-NAH4EW5B.js → rebuild-Q2ACEB6F.js} +9 -10
- package/dist/{rebuild-NAH4EW5B.js.map → rebuild-Q2ACEB6F.js.map} +1 -1
- package/dist/{reprocess-6FOP37XS.js → reprocess-CDEFGQOV.js} +11 -11
- package/dist/{restart-WSA4JSE3.js → restart-XCMILOL5.js} +6 -6
- package/dist/{search-QXJQUB35.js → search-7W25SKCB.js} +6 -6
- package/dist/{server-VXN3CJ4Y.js → server-6UDN35QN.js} +11 -11
- package/dist/{session-start-KQ4KCQMZ.js → session-start-K6IGAC7H.js} +9 -9
- package/dist/setup-digest-X5PN27F4.js +15 -0
- package/dist/setup-llm-S5OHQJXK.js +15 -0
- package/dist/src/cli.js +4 -4
- package/dist/src/daemon/main.js +4 -4
- package/dist/src/hooks/post-tool-use.js +5 -5
- package/dist/src/hooks/session-end.js +5 -5
- package/dist/src/hooks/session-start.js +4 -4
- package/dist/src/hooks/stop.js +7 -7
- package/dist/src/hooks/user-prompt-submit.js +5 -5
- package/dist/src/mcp/server.js +4 -4
- package/dist/src/prompts/extraction.md +4 -4
- package/dist/{stats-43OESUEB.js → stats-TTSDXGJV.js} +6 -6
- package/dist/ui/assets/index-08wKT7wS.css +1 -0
- package/dist/ui/assets/index-CMSMi4Jb.js +369 -0
- package/dist/ui/index.html +2 -2
- package/dist/{verify-IIAHBAAU.js → verify-TOWQHPBX.js} +6 -6
- package/dist/{version-NKOECSVH.js → version-36RVCQA6.js} +4 -4
- package/package.json +1 -1
- package/dist/chunk-PQWQC3RF.js.map +0 -1
- package/dist/chunk-RNWALAFP.js.map +0 -1
- package/dist/chunk-WBLTISAK.js.map +0 -1
- package/dist/main-XZ6X4BUX.js.map +0 -1
- package/dist/setup-digest-QNCM3PNQ.js +0 -15
- package/dist/setup-llm-EAOIUSPJ.js +0 -15
- package/dist/ui/assets/index-Bk4X_8-Z.css +0 -1
- package/dist/ui/assets/index-D3SY7ZHY.js +0 -299
- /package/dist/{chunk-LDKXXKF6.js.map → chunk-2ZIBCEYO.js.map} +0 -0
- /package/dist/{chunk-25FY74AP.js.map → chunk-7WHF2OIZ.js.map} +0 -0
- /package/dist/{chunk-RXJHB7W4.js.map → chunk-FPRXMJLT.js.map} +0 -0
- /package/dist/{chunk-RY76WEN3.js.map → chunk-GENQ5QGP.js.map} +0 -0
- /package/dist/{chunk-YG6MLLGL.js.map → chunk-HYVT345Y.js.map} +0 -0
- /package/dist/{chunk-IWBWZQK6.js.map → chunk-MDLSAFPP.js.map} +0 -0
- /package/dist/{chunk-WU4PCNIK.js.map → chunk-NL6WQO56.js.map} +0 -0
- /package/dist/{chunk-DBMHUMG3.js.map → chunk-NLUE6CYG.js.map} +0 -0
- /package/dist/{chunk-CQ4RKK67.js.map → chunk-O6PERU7U.js.map} +0 -0
- /package/dist/{chunk-XNAM6Z4O.js.map → chunk-P723N2LP.js.map} +0 -0
- /package/dist/{chunk-CK24O5YQ.js.map → chunk-QN4W3JUA.js.map} +0 -0
- /package/dist/{chunk-CPVXNRGW.js.map → chunk-YIQLYIHW.js.map} +0 -0
- /package/dist/{chunk-4WL5X7VS.js.map → chunk-YTFXA4RX.js.map} +0 -0
- /package/dist/{cli-EGWAINIE.js.map → cli-IHILSS6N.js.map} +0 -0
- /package/dist/{client-FDKJ4BY7.js.map → client-AGFNR2S4.js.map} +0 -0
- /package/dist/{config-HDUFDOQN.js.map → config-IBS6KOLQ.js.map} +0 -0
- /package/dist/{detect-providers-4U3ZPW5G.js.map → detect-providers-XEP4QA3R.js.map} +0 -0
- /package/dist/{digest-I2XYCK2M.js.map → digest-7HLJXL77.js.map} +0 -0
- /package/dist/{init-ZO2XQT6U.js.map → init-ARQ53JOR.js.map} +0 -0
- /package/dist/{reprocess-6FOP37XS.js.map → reprocess-CDEFGQOV.js.map} +0 -0
- /package/dist/{restart-WSA4JSE3.js.map → restart-XCMILOL5.js.map} +0 -0
- /package/dist/{search-QXJQUB35.js.map → search-7W25SKCB.js.map} +0 -0
- /package/dist/{server-VXN3CJ4Y.js.map → server-6UDN35QN.js.map} +0 -0
- /package/dist/{session-start-KQ4KCQMZ.js.map → session-start-K6IGAC7H.js.map} +0 -0
- /package/dist/{setup-digest-QNCM3PNQ.js.map → setup-digest-X5PN27F4.js.map} +0 -0
- /package/dist/{setup-llm-EAOIUSPJ.js.map → setup-llm-S5OHQJXK.js.map} +0 -0
- /package/dist/{stats-43OESUEB.js.map → stats-TTSDXGJV.js.map} +0 -0
- /package/dist/{verify-IIAHBAAU.js.map → verify-TOWQHPBX.js.map} +0 -0
- /package/dist/{version-NKOECSVH.js.map → version-36RVCQA6.js.map} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
AgentRegistry
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-Z74SDEKE.js";
|
|
5
5
|
|
|
6
6
|
// src/native-deps.ts
|
|
7
7
|
import { execFileSync } from "child_process";
|
|
@@ -53,4 +53,4 @@ function ensureNativeDeps() {
|
|
|
53
53
|
export {
|
|
54
54
|
ensureNativeDeps
|
|
55
55
|
};
|
|
56
|
-
//# sourceMappingURL=chunk-
|
|
56
|
+
//# sourceMappingURL=chunk-FPRXMJLT.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
require_dist
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-ERG2IEWX.js";
|
|
5
5
|
import {
|
|
6
6
|
__toESM
|
|
7
7
|
} from "./chunk-PZUWP5VK.js";
|
|
@@ -34,4 +34,4 @@ export {
|
|
|
34
34
|
sessionFm,
|
|
35
35
|
sporeFm
|
|
36
36
|
};
|
|
37
|
-
//# sourceMappingURL=chunk-
|
|
37
|
+
//# sourceMappingURL=chunk-GENQ5QGP.js.map
|
|
@@ -2,7 +2,7 @@ import { createRequire as __cr } from 'node:module'; const require = __cr(import
|
|
|
2
2
|
import {
|
|
3
3
|
MycoConfigSchema,
|
|
4
4
|
require_dist
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-ERG2IEWX.js";
|
|
6
6
|
import {
|
|
7
7
|
__toESM
|
|
8
8
|
} from "./chunk-PZUWP5VK.js";
|
|
@@ -156,4 +156,4 @@ export {
|
|
|
156
156
|
loadConfig,
|
|
157
157
|
saveConfig
|
|
158
158
|
};
|
|
159
|
-
//# sourceMappingURL=chunk-
|
|
159
|
+
//# sourceMappingURL=chunk-HYVT345Y.js.map
|
|
@@ -7,8 +7,6 @@ function estimateTokens(text) {
|
|
|
7
7
|
}
|
|
8
8
|
var EMBEDDING_INPUT_LIMIT = 8e3;
|
|
9
9
|
var PROMPT_PREVIEW_CHARS = 300;
|
|
10
|
-
var AI_RESPONSE_PREVIEW_CHARS = 500;
|
|
11
|
-
var COMMAND_PREVIEW_CHARS = 80;
|
|
12
10
|
var CONTENT_SNIPPET_CHARS = 120;
|
|
13
11
|
var TOOL_OUTPUT_PREVIEW_CHARS = 200;
|
|
14
12
|
var SESSION_SUMMARY_PREVIEW_CHARS = 300;
|
|
@@ -24,13 +22,15 @@ var DIGEST_LLM_REQUEST_TIMEOUT_MS = 6e5;
|
|
|
24
22
|
var STDIN_TIMEOUT_MS = 100;
|
|
25
23
|
var FILE_WATCH_STABILITY_MS = 1e3;
|
|
26
24
|
var PROVIDER_DETECT_TIMEOUT_MS = 3e3;
|
|
27
|
-
var
|
|
25
|
+
var MS_PER_DAY = 24 * 60 * 60 * 1e3;
|
|
26
|
+
var STALE_BUFFER_MAX_AGE_MS = 1 * MS_PER_DAY;
|
|
28
27
|
var DAEMON_HEALTH_RETRY_DELAYS = [100, 200, 400, 800, 1500];
|
|
29
28
|
var DAEMON_STALE_GRACE_PERIOD_MS = 6e4;
|
|
30
29
|
var DAEMON_EVICT_TIMEOUT_MS = 3e3;
|
|
31
30
|
var DAEMON_EVICT_POLL_MS = 100;
|
|
32
31
|
var MAX_SLUG_LENGTH = 100;
|
|
33
32
|
var CANDIDATE_CONTENT_PREVIEW = 2e3;
|
|
33
|
+
var TURN_MAX_FILES_DISPLAYED = 10;
|
|
34
34
|
var LINEAGE_RECENT_SESSIONS_LIMIT = 5;
|
|
35
35
|
var RELATED_SPORES_LIMIT = 50;
|
|
36
36
|
var SESSION_CONTEXT_MAX_PLANS = 3;
|
|
@@ -60,6 +60,24 @@ var SUPERSESSION_CANDIDATE_LIMIT = 5;
|
|
|
60
60
|
var SUPERSESSION_VECTOR_FETCH_LIMIT = 20;
|
|
61
61
|
var SUPERSESSION_MAX_TOKENS = 256;
|
|
62
62
|
var CURATION_CLUSTER_SIMILARITY = 0.75;
|
|
63
|
+
var PIPELINE_ITEMS_DEFAULT_LIMIT = 50;
|
|
64
|
+
var PIPELINE_PARSE_MAX_RETRIES = 1;
|
|
65
|
+
var PIPELINE_BACKOFF_MULTIPLIER = 4;
|
|
66
|
+
var PIPELINE_STAGES = ["capture", "extraction", "embedding", "consolidation", "digest"];
|
|
67
|
+
var PIPELINE_PROVIDER_ROLES = ["llm", "embedding", "digest-llm"];
|
|
68
|
+
var STAGE_PROVIDER_MAP = {
|
|
69
|
+
capture: null,
|
|
70
|
+
extraction: "llm",
|
|
71
|
+
embedding: "embedding",
|
|
72
|
+
consolidation: "digest-llm",
|
|
73
|
+
digest: "digest-llm"
|
|
74
|
+
};
|
|
75
|
+
var PIPELINE_TICK_STAGES = ["extraction", "embedding", "consolidation"];
|
|
76
|
+
var ITEM_STAGE_MAP = {
|
|
77
|
+
session: ["capture", "extraction", "embedding", "digest"],
|
|
78
|
+
spore: ["capture", "embedding", "consolidation", "digest"],
|
|
79
|
+
artifact: ["capture", "embedding", "digest"]
|
|
80
|
+
};
|
|
63
81
|
var CONSOLIDATION_MIN_CLUSTER_SIZE = 3;
|
|
64
82
|
var CONSOLIDATION_VECTOR_FETCH_LIMIT = 20;
|
|
65
83
|
var CONSOLIDATION_MAX_TOKENS = 2048;
|
|
@@ -69,8 +87,6 @@ export {
|
|
|
69
87
|
estimateTokens,
|
|
70
88
|
EMBEDDING_INPUT_LIMIT,
|
|
71
89
|
PROMPT_PREVIEW_CHARS,
|
|
72
|
-
AI_RESPONSE_PREVIEW_CHARS,
|
|
73
|
-
COMMAND_PREVIEW_CHARS,
|
|
74
90
|
CONTENT_SNIPPET_CHARS,
|
|
75
91
|
TOOL_OUTPUT_PREVIEW_CHARS,
|
|
76
92
|
SESSION_SUMMARY_PREVIEW_CHARS,
|
|
@@ -86,6 +102,7 @@ export {
|
|
|
86
102
|
STDIN_TIMEOUT_MS,
|
|
87
103
|
FILE_WATCH_STABILITY_MS,
|
|
88
104
|
PROVIDER_DETECT_TIMEOUT_MS,
|
|
105
|
+
MS_PER_DAY,
|
|
89
106
|
STALE_BUFFER_MAX_AGE_MS,
|
|
90
107
|
DAEMON_HEALTH_RETRY_DELAYS,
|
|
91
108
|
DAEMON_STALE_GRACE_PERIOD_MS,
|
|
@@ -93,6 +110,7 @@ export {
|
|
|
93
110
|
DAEMON_EVICT_POLL_MS,
|
|
94
111
|
MAX_SLUG_LENGTH,
|
|
95
112
|
CANDIDATE_CONTENT_PREVIEW,
|
|
113
|
+
TURN_MAX_FILES_DISPLAYED,
|
|
96
114
|
LINEAGE_RECENT_SESSIONS_LIMIT,
|
|
97
115
|
RELATED_SPORES_LIMIT,
|
|
98
116
|
SESSION_CONTEXT_MAX_PLANS,
|
|
@@ -110,8 +128,16 @@ export {
|
|
|
110
128
|
SUPERSESSION_VECTOR_FETCH_LIMIT,
|
|
111
129
|
SUPERSESSION_MAX_TOKENS,
|
|
112
130
|
CURATION_CLUSTER_SIMILARITY,
|
|
131
|
+
PIPELINE_ITEMS_DEFAULT_LIMIT,
|
|
132
|
+
PIPELINE_PARSE_MAX_RETRIES,
|
|
133
|
+
PIPELINE_BACKOFF_MULTIPLIER,
|
|
134
|
+
PIPELINE_STAGES,
|
|
135
|
+
PIPELINE_PROVIDER_ROLES,
|
|
136
|
+
STAGE_PROVIDER_MAP,
|
|
137
|
+
PIPELINE_TICK_STAGES,
|
|
138
|
+
ITEM_STAGE_MAP,
|
|
113
139
|
CONSOLIDATION_MIN_CLUSTER_SIZE,
|
|
114
140
|
CONSOLIDATION_VECTOR_FETCH_LIMIT,
|
|
115
141
|
CONSOLIDATION_MAX_TOKENS
|
|
116
142
|
};
|
|
117
|
-
//# sourceMappingURL=chunk-
|
|
143
|
+
//# sourceMappingURL=chunk-J4D4CROB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/constants.ts"],"sourcesContent":["/**\n * Shared constants for the Myco codebase.\n * Per CLAUDE.md: \"No Magic Literals — Numeric and string constants\n * MUST NOT appear inline in logic.\"\n */\n\n// --- Token estimation ---\n/** Approximate characters per token for the chars/4 heuristic. */\nexport const CHARS_PER_TOKEN = 4;\n\n/** Estimate token count from character length using the CHARS_PER_TOKEN heuristic. */\nexport function estimateTokens(text: string): number {\n return Math.ceil(text.length / CHARS_PER_TOKEN);\n}\n\n// --- Embedding ---\n/** Max characters of text sent to the embedding model. */\nexport const EMBEDDING_INPUT_LIMIT = 8000;\n\n// --- Truncation limits (display/preview) ---\n/** Max chars for a user prompt preview in event summaries. */\nexport const PROMPT_PREVIEW_CHARS = 300;\n/** Max chars for an AI response preview in event summaries. */\nexport const AI_RESPONSE_PREVIEW_CHARS = 500;\n/** Max chars for a command string preview. */\nexport const COMMAND_PREVIEW_CHARS = 80;\n/** Max chars for a content snippet in search results. */\nexport const CONTENT_SNIPPET_CHARS = 120;\n/** Max chars for a tool output preview in hooks. */\nexport const TOOL_OUTPUT_PREVIEW_CHARS = 200;\n/** Max chars for a session summary preview in MCP tools. */\nexport const SESSION_SUMMARY_PREVIEW_CHARS = 300;\n/** Max chars for a recall summary preview. */\nexport const RECALL_SUMMARY_PREVIEW_CHARS = 200;\n\n// --- Context injection layer budgets (chars, not tokens — used with .slice()) ---\nexport const CONTEXT_PLAN_PREVIEW_CHARS = 100;\nexport const CONTEXT_SESSION_PREVIEW_CHARS = 80;\nexport const CONTEXT_SPORE_PREVIEW_CHARS = 80;\n\n// --- Processor maxTokens budgets ---\n/** Response token budget for observation extraction. */\nexport const EXTRACTION_MAX_TOKENS = 2048;\n/** Response token budget for session summary. */\nexport const SUMMARY_MAX_TOKENS = 512;\n/** Response token budget for session title generation. */\nexport const TITLE_MAX_TOKENS = 32;\n/** Response token budget for artifact classification. */\nexport const CLASSIFICATION_MAX_TOKENS = 1024;\n\n// --- Timeouts ---\n/** Daemon client HTTP request timeout (ms). */\nexport const DAEMON_CLIENT_TIMEOUT_MS = 2000;\n/** Health check timeout (ms) — fail fast if daemon isn't responding. */\nexport const DAEMON_HEALTH_CHECK_TIMEOUT_MS = 500;\n/** LLM request timeout (ms). All LLM calls are background daemon work — no need to be aggressive. */\nexport const LLM_REQUEST_TIMEOUT_MS = 180_000;\n/** Embedding request timeout (ms). Embeddings run in background batch processing — generous timeout. */\nexport const EMBEDDING_REQUEST_TIMEOUT_MS = 60_000;\n/** Digest LLM request timeout (ms). Digest cycles use large context windows and may need model loading time. */\nexport const DIGEST_LLM_REQUEST_TIMEOUT_MS = 600_000;\n/** Stdin read timeout for hooks (ms). */\nexport const STDIN_TIMEOUT_MS = 100;\n/** Chokidar write stability threshold (ms). */\nexport const FILE_WATCH_STABILITY_MS = 1000;\n/** Provider detection timeout for detect-providers CLI command (ms). */\nexport const PROVIDER_DETECT_TIMEOUT_MS = 3000;\n\n// --- Time ---\n/** Milliseconds in one day. */\nexport const MS_PER_DAY = 24 * 60 * 60 * 1000;\n\n// --- Buffer cleanup ---\n/** Max age for stale buffer files before cleanup (ms). */\nexport const STALE_BUFFER_MAX_AGE_MS = 1 * MS_PER_DAY;\n\n// --- Retry backoff ---\n/** Retry delays for daemon health check (ms). */\nexport const DAEMON_HEALTH_RETRY_DELAYS = [100, 200, 400, 800, 1500];\n\n/** Grace period after daemon.json is written before stale checks can trigger a restart (ms).\n * Prevents rapid restart loops from concurrent hooks or session reloads. */\nexport const DAEMON_STALE_GRACE_PERIOD_MS = 60_000;\n\n/** Grace period for SIGTERM before escalating to SIGKILL (ms).\n * Gives the old daemon a chance to shut down cleanly, but force-kills\n * to guarantee the configured port is reclaimed. */\nexport const DAEMON_EVICT_TIMEOUT_MS = 3000;\n/** Poll interval when waiting for an evicted daemon to die (ms). */\nexport const DAEMON_EVICT_POLL_MS = 100;\n\n// --- Slug limits ---\n/** Max length for slugified artifact IDs. */\nexport const MAX_SLUG_LENGTH = 100;\n\n// --- Content preview for classification prompt ---\n/** Max chars of file content per candidate in classification prompt. */\nexport const CANDIDATE_CONTENT_PREVIEW = 2000;\n\n// --- Turn rendering ---\n/** Max file paths displayed per turn in session notes. */\nexport const TURN_MAX_FILES_DISPLAYED = 10;\n\n// --- Transcript mining ---\n/** Minimum content length to consider a transcript entry meaningful. */\nexport const MIN_TRANSCRIPT_CONTENT_LENGTH = 10;\n\n// --- Query limits ---\n/** Max recent sessions to check for lineage heuristics. */\nexport const LINEAGE_RECENT_SESSIONS_LIMIT = 5;\n/** Max related spores to query for session notes. */\nexport const RELATED_SPORES_LIMIT = 50;\n\n// --- Context injection ---\n/** Max active plans to inject at session start. */\nexport const SESSION_CONTEXT_MAX_PLANS = 3;\n/** Max spores to inject per prompt. */\nexport const PROMPT_CONTEXT_MAX_SPORES = 3;\n/** Minimum similarity score for prompt context injection (0-1). */\nexport const PROMPT_CONTEXT_MIN_SIMILARITY = 0.3;\n/** Max token budget for session-start context injection. */\nexport const SESSION_CONTEXT_MAX_TOKENS = 500;\n/** Max token budget for per-prompt context injection. */\nexport const PROMPT_CONTEXT_MAX_TOKENS = 300;\n/** Minimum prompt length to trigger context search. */\nexport const PROMPT_CONTEXT_MIN_LENGTH = 10;\n\n// --- MCP tool defaults ---\n/** Default result limit for myco_search. */\nexport const MCP_SEARCH_DEFAULT_LIMIT = 10;\n/** Default result limit for myco_sessions. */\nexport const MCP_SESSIONS_DEFAULT_LIMIT = 20;\n/** Default result limit for myco_logs. */\nexport const MCP_LOGS_DEFAULT_LIMIT = 50;\n\n// --- Digest — Tiers ---\n/** Available token-budget tiers for digest synthesis. */\nexport const DIGEST_TIERS = [1500, 3000, 5000, 7500, 10000] as const;\nexport type DigestTier = (typeof DIGEST_TIERS)[number];\n\n// --- Digest — Context window minimums per tier ---\n/** Minimum context window (tokens) required to run a digest at a given tier. */\nexport const DIGEST_TIER_MIN_CONTEXT: Record<number, number> = {\n 1500: 6500,\n 3000: 11500,\n 5000: 18500,\n 7500: 24500,\n 10000: 30500,\n};\n\n// --- Digest — Substrate ---\n/** Default minimum substrate notes required before a digest cycle runs. */\nexport const DIGEST_MIN_NOTES_FOR_CYCLE = 10;\n\n/** Scoring weights by note type when selecting substrate for synthesis. */\nexport const DIGEST_SUBSTRATE_TYPE_WEIGHTS: Record<string, number> = {\n session: 3,\n spore: 3,\n plan: 2,\n artifact: 1,\n team: 1,\n};\n\n// --- LLM reasoning control ---\n/** Reasoning mode for all Myco LLM calls. Suppresses chain-of-thought tokens from reasoning models. */\nexport const LLM_REASONING_MODE = 'off' as const;\n\n// --- Digest — System prompt overhead estimate ---\n\n// --- Vault curation ---\n/** Max candidate spores after post-filtering for supersession check. */\nexport const SUPERSESSION_CANDIDATE_LIMIT = 5;\n\n/** Over-fetch from vector index before post-filtering by status/type. */\nexport const SUPERSESSION_VECTOR_FETCH_LIMIT = 20;\n\n/** Max output tokens for supersession LLM evaluation. */\nexport const SUPERSESSION_MAX_TOKENS = 256;\n\n/** Similarity threshold for clustering related spores in batch curation. */\nexport const CURATION_CLUSTER_SIMILARITY = 0.75;\n\n// --- Pipeline processing ---\n/** Default page size for pipeline items API listing. */\nexport const PIPELINE_ITEMS_DEFAULT_LIMIT = 50;\n\n// --- Pipeline retry ---\n/** Max retries for parse (structural) pipeline failures — fail fast. */\nexport const PIPELINE_PARSE_MAX_RETRIES = 1;\n/** Exponential backoff multiplier for successive pipeline retries. */\nexport const PIPELINE_BACKOFF_MULTIPLIER = 4;\n\n// --- Pipeline stages (ordered) ---\nexport const PIPELINE_STAGES = ['capture', 'extraction', 'embedding', 'consolidation', 'digest'] as const;\nexport type PipelineStage = typeof PIPELINE_STAGES[number];\n\n// --- Pipeline statuses ---\nexport const PIPELINE_STATUSES = ['pending', 'processing', 'succeeded', 'failed', 'blocked', 'skipped', 'poisoned'] as const;\nexport type PipelineStatus = typeof PIPELINE_STATUSES[number];\n\n// --- Provider roles for circuit breakers ---\nexport const PIPELINE_PROVIDER_ROLES = ['llm', 'embedding', 'digest-llm'] as const;\nexport type PipelineProviderRole = typeof PIPELINE_PROVIDER_ROLES[number];\n\n// --- Stage to provider role mapping ---\nexport const STAGE_PROVIDER_MAP: Record<PipelineStage, PipelineProviderRole | null> = {\n capture: null,\n extraction: 'llm',\n embedding: 'embedding',\n consolidation: 'digest-llm',\n digest: 'digest-llm',\n};\n\n/**\n * Stages processed by the pipeline tick timer.\n * Capture is handled at registration time, digest is gated by the metabolism timer.\n */\nexport const PIPELINE_TICK_STAGES: PipelineStage[] = ['extraction', 'embedding', 'consolidation'];\n\n// --- Item type to applicable stages ---\n// Sessions skip consolidation — consolidation applies to the spores\n// extracted FROM sessions, not the session work item itself.\n// Lineage detection stays outside the pipeline (fire-and-forget, non-critical).\nexport const ITEM_STAGE_MAP: Record<string, PipelineStage[]> = {\n session: ['capture', 'extraction', 'embedding', 'digest'],\n spore: ['capture', 'embedding', 'consolidation', 'digest'],\n artifact: ['capture', 'embedding', 'digest'],\n};\n\n// --- Automatic consolidation ---\n/** Minimum cluster size required before asking LLM to consolidate. */\nexport const CONSOLIDATION_MIN_CLUSTER_SIZE = 3;\n\n/** Over-fetch from vector index before post-filtering by status/type. */\nexport const CONSOLIDATION_VECTOR_FETCH_LIMIT = 20;\n\n/** Max output tokens for consolidation LLM synthesis.\n * Must be large enough for the full JSON response including content field. */\nexport const CONSOLIDATION_MAX_TOKENS = 2048;\n"],"mappings":";;;AAQO,IAAM,kBAAkB;AAGxB,SAAS,eAAe,MAAsB;AACnD,SAAO,KAAK,KAAK,KAAK,SAAS,eAAe;AAChD;AAIO,IAAM,wBAAwB;AAI9B,IAAM,uBAAuB;AAM7B,IAAM,wBAAwB;AAE9B,IAAM,4BAA4B;AAElC,IAAM,gCAAgC;AAEtC,IAAM,+BAA+B;AAGrC,IAAM,6BAA6B;AACnC,IAAM,gCAAgC;AACtC,IAAM,8BAA8B;AAcpC,IAAM,2BAA2B;AAEjC,IAAM,iCAAiC;AAEvC,IAAM,yBAAyB;AAE/B,IAAM,+BAA+B;AAErC,IAAM,gCAAgC;AAEtC,IAAM,mBAAmB;AAEzB,IAAM,0BAA0B;AAEhC,IAAM,6BAA6B;AAInC,IAAM,aAAa,KAAK,KAAK,KAAK;AAIlC,IAAM,0BAA0B,IAAI;AAIpC,IAAM,6BAA6B,CAAC,KAAK,KAAK,KAAK,KAAK,IAAI;AAI5D,IAAM,+BAA+B;AAKrC,IAAM,0BAA0B;AAEhC,IAAM,uBAAuB;AAI7B,IAAM,kBAAkB;AAIxB,IAAM,4BAA4B;AAIlC,IAAM,2BAA2B;AAQjC,IAAM,gCAAgC;AAEtC,IAAM,uBAAuB;AAI7B,IAAM,4BAA4B;AAElC,IAAM,4BAA4B;AAElC,IAAM,gCAAgC;AAMtC,IAAM,4BAA4B;AAIlC,IAAM,2BAA2B;AAEjC,IAAM,6BAA6B;AAEnC,IAAM,yBAAyB;AAI/B,IAAM,eAAe,CAAC,MAAM,KAAM,KAAM,MAAM,GAAK;AAKnD,IAAM,0BAAkD;AAAA,EAC7D,MAAM;AAAA,EACN,KAAM;AAAA,EACN,KAAM;AAAA,EACN,MAAM;AAAA,EACN,KAAO;AACT;AAOO,IAAM,gCAAwD;AAAA,EACnE,SAAS;AAAA,EACT,OAAO;AAAA,EACP,MAAM;AAAA,EACN,UAAU;AAAA,EACV,MAAM;AACR;AAIO,IAAM,qBAAqB;AAM3B,IAAM,+BAA+B;AAGrC,IAAM,kCAAkC;AAGxC,IAAM,0BAA0B;AAGhC,IAAM,8BAA8B;AAIpC,IAAM,+BAA+B;AAIrC,IAAM,6BAA6B;AAEnC,IAAM,8BAA8B;AAGpC,IAAM,kBAAkB,CAAC,WAAW,cAAc,aAAa,iBAAiB,QAAQ;AAQxF,IAAM,0BAA0B,CAAC,OAAO,aAAa,YAAY;AAIjE,IAAM,qBAAyE;AAAA,EACpF,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,eAAe;AAAA,EACf,QAAQ;AACV;AAMO,IAAM,uBAAwC,CAAC,cAAc,aAAa,eAAe;AAMzF,IAAM,iBAAkD;AAAA,EAC7D,SAAS,CAAC,WAAW,cAAc,aAAa,QAAQ;AAAA,EACxD,OAAO,CAAC,WAAW,aAAa,iBAAiB,QAAQ;AAAA,EACzD,UAAU,CAAC,WAAW,aAAa,QAAQ;AAC7C;AAIO,IAAM,iCAAiC;AAGvC,IAAM,mCAAmC;AAIzC,IAAM,2BAA2B;","names":[]}
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
import {
|
|
6
6
|
MycoConfigSchema,
|
|
7
7
|
require_dist
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-ERG2IEWX.js";
|
|
9
9
|
import {
|
|
10
10
|
__toESM
|
|
11
11
|
} from "./chunk-PZUWP5VK.js";
|
|
@@ -96,4 +96,4 @@ async function run(args, vaultDir) {
|
|
|
96
96
|
export {
|
|
97
97
|
run
|
|
98
98
|
};
|
|
99
|
-
//# sourceMappingURL=chunk-
|
|
99
|
+
//# sourceMappingURL=chunk-MDLSAFPP.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
} from "./chunk-4RMSHZE4.js";
|
|
5
5
|
import {
|
|
6
6
|
isProcessAlive
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-YTFXA4RX.js";
|
|
8
8
|
|
|
9
9
|
// src/services/stats.ts
|
|
10
10
|
import fs from "fs";
|
|
@@ -62,4 +62,4 @@ function gatherStats(vaultDir, index, vectorIndex) {
|
|
|
62
62
|
export {
|
|
63
63
|
gatherStats
|
|
64
64
|
};
|
|
65
|
-
//# sourceMappingURL=chunk-
|
|
65
|
+
//# sourceMappingURL=chunk-NL6WQO56.js.map
|
|
@@ -2,10 +2,10 @@ import { createRequire as __cr } from 'node:module'; const require = __cr(import
|
|
|
2
2
|
import {
|
|
3
3
|
LmStudioBackend,
|
|
4
4
|
OllamaBackend
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-7WHF2OIZ.js";
|
|
6
6
|
import {
|
|
7
7
|
LLM_REQUEST_TIMEOUT_MS
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-J4D4CROB.js";
|
|
9
9
|
|
|
10
10
|
// node_modules/@anthropic-ai/sdk/internal/tslib.mjs
|
|
11
11
|
function __classPrivateFieldSet(receiver, state, value, kind, f) {
|
|
@@ -4913,4 +4913,4 @@ export {
|
|
|
4913
4913
|
createLlmProvider,
|
|
4914
4914
|
createEmbeddingProvider
|
|
4915
4915
|
};
|
|
4916
|
-
//# sourceMappingURL=chunk-
|
|
4916
|
+
//# sourceMappingURL=chunk-NLUE6CYG.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
STDIN_TIMEOUT_MS
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-J4D4CROB.js";
|
|
5
5
|
|
|
6
6
|
// src/hooks/read-stdin.ts
|
|
7
7
|
function readStdin() {
|
|
@@ -18,4 +18,4 @@ function readStdin() {
|
|
|
18
18
|
export {
|
|
19
19
|
readStdin
|
|
20
20
|
};
|
|
21
|
-
//# sourceMappingURL=chunk-
|
|
21
|
+
//# sourceMappingURL=chunk-O6PERU7U.js.map
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
import {
|
|
6
6
|
MycoConfigSchema,
|
|
7
7
|
require_dist
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-ERG2IEWX.js";
|
|
9
9
|
import {
|
|
10
10
|
__toESM
|
|
11
11
|
} from "./chunk-PZUWP5VK.js";
|
|
@@ -144,4 +144,4 @@ async function run(args, vaultDir) {
|
|
|
144
144
|
export {
|
|
145
145
|
run
|
|
146
146
|
};
|
|
147
|
-
//# sourceMappingURL=chunk-
|
|
147
|
+
//# sourceMappingURL=chunk-P723N2LP.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
AgentRegistry
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-Z74SDEKE.js";
|
|
5
5
|
|
|
6
6
|
// src/version.ts
|
|
7
7
|
import fs from "fs";
|
|
@@ -40,4 +40,4 @@ function readVersionFrom(dir) {
|
|
|
40
40
|
export {
|
|
41
41
|
getPluginVersion
|
|
42
42
|
};
|
|
43
|
-
//# sourceMappingURL=chunk-
|
|
43
|
+
//# sourceMappingURL=chunk-QN4W3JUA.js.map
|
|
@@ -5,15 +5,16 @@ import {
|
|
|
5
5
|
import {
|
|
6
6
|
external_exports,
|
|
7
7
|
require_dist
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-ERG2IEWX.js";
|
|
9
9
|
import {
|
|
10
10
|
CANDIDATE_CONTENT_PREVIEW,
|
|
11
11
|
EMBEDDING_INPUT_LIMIT,
|
|
12
12
|
LLM_REASONING_MODE,
|
|
13
13
|
SUPERSESSION_CANDIDATE_LIMIT,
|
|
14
14
|
SUPERSESSION_MAX_TOKENS,
|
|
15
|
-
SUPERSESSION_VECTOR_FETCH_LIMIT
|
|
16
|
-
|
|
15
|
+
SUPERSESSION_VECTOR_FETCH_LIMIT,
|
|
16
|
+
TURN_MAX_FILES_DISPLAYED
|
|
17
|
+
} from "./chunk-J4D4CROB.js";
|
|
17
18
|
import {
|
|
18
19
|
__commonJS,
|
|
19
20
|
__require,
|
|
@@ -3523,6 +3524,7 @@ function sessionRelativePath(bareId, date) {
|
|
|
3523
3524
|
|
|
3524
3525
|
// src/obsidian/formatter.ts
|
|
3525
3526
|
var CONVERSATION_HEADING = "## Conversation";
|
|
3527
|
+
var TURN_HEADING_PREFIX = "\n### Turn ";
|
|
3526
3528
|
var CALLOUT_MAP = {
|
|
3527
3529
|
gotcha: "warning",
|
|
3528
3530
|
bug_fix: "bug",
|
|
@@ -3571,6 +3573,24 @@ function buildTags(type, subtype, extraTags = []) {
|
|
|
3571
3573
|
function footerTags(tags) {
|
|
3572
3574
|
return tags.map((t) => t.startsWith("#") ? t : `#${t}`).join(" ");
|
|
3573
3575
|
}
|
|
3576
|
+
function formatToolAndFiles(turn) {
|
|
3577
|
+
const parts = [];
|
|
3578
|
+
if (turn.toolCount > 0) {
|
|
3579
|
+
if (turn.toolBreakdown && Object.keys(turn.toolBreakdown).length > 0) {
|
|
3580
|
+
const sorted = Object.entries(turn.toolBreakdown).sort((a, b) => b[1] - a[1]);
|
|
3581
|
+
const breakdown = sorted.map(([name, count]) => `${name} (${count})`).join(", ");
|
|
3582
|
+
parts.push(`*${turn.toolCount} tool calls: ${breakdown}*`);
|
|
3583
|
+
} else {
|
|
3584
|
+
parts.push(`*${turn.toolCount} tool calls*`);
|
|
3585
|
+
}
|
|
3586
|
+
}
|
|
3587
|
+
if (turn.files && turn.files.length > 0) {
|
|
3588
|
+
const displayed = turn.files.slice(0, TURN_MAX_FILES_DISPLAYED);
|
|
3589
|
+
const suffix = turn.files.length > TURN_MAX_FILES_DISPLAYED ? ` +${turn.files.length - TURN_MAX_FILES_DISPLAYED} more` : "";
|
|
3590
|
+
parts.push(`*Files: ${displayed.join(", ")}${suffix}*`);
|
|
3591
|
+
}
|
|
3592
|
+
return parts;
|
|
3593
|
+
}
|
|
3574
3594
|
function formatSessionBody(input) {
|
|
3575
3595
|
const sections = [];
|
|
3576
3596
|
sections.push(`# ${input.title}`);
|
|
@@ -3597,16 +3617,16 @@ ${links.join("\n")}`);
|
|
|
3597
3617
|
const turn = input.turns[i];
|
|
3598
3618
|
const turnNum = i + 1;
|
|
3599
3619
|
turnLines.push(`### Turn ${turnNum}`);
|
|
3600
|
-
|
|
3620
|
+
{
|
|
3601
3621
|
const parts = [];
|
|
3602
3622
|
if (turn.prompt) parts.push(turn.prompt);
|
|
3603
3623
|
if (turn.images?.length) {
|
|
3604
3624
|
parts.push(turn.images.map((f) => `![[${f}]]`).join("\n"));
|
|
3605
3625
|
}
|
|
3606
|
-
|
|
3607
|
-
|
|
3608
|
-
|
|
3609
|
-
|
|
3626
|
+
parts.push(...formatToolAndFiles(turn));
|
|
3627
|
+
if (parts.length > 0) {
|
|
3628
|
+
turnLines.push(callout("user", "Prompt", parts.join("\n\n")));
|
|
3629
|
+
}
|
|
3610
3630
|
}
|
|
3611
3631
|
if (turn.aiResponse) {
|
|
3612
3632
|
turnLines.push(callout("assistant", "Response", turn.aiResponse));
|
|
@@ -3753,6 +3773,8 @@ var VaultWriter = class {
|
|
|
3753
3773
|
]);
|
|
3754
3774
|
if (input.tools_used != null) frontmatter.tools_used = input.tools_used;
|
|
3755
3775
|
if (input.files_changed != null) frontmatter.files_changed = input.files_changed;
|
|
3776
|
+
if (input.transcript_source) frontmatter.transcript_source = input.transcript_source;
|
|
3777
|
+
if (input.transcript_path) frontmatter.transcript_path = input.transcript_path;
|
|
3756
3778
|
this.writeMarkdown(relativePath, frontmatter, input.summary);
|
|
3757
3779
|
return relativePath;
|
|
3758
3780
|
}
|
|
@@ -4021,6 +4043,20 @@ function coerceDatesToStrings(obj) {
|
|
|
4021
4043
|
|
|
4022
4044
|
// src/vault/reader.ts
|
|
4023
4045
|
var VAULT_SUBDIRS = ["sessions", "plans", "spores", "artifacts", "team"];
|
|
4046
|
+
function walkMarkdownFiles(dir) {
|
|
4047
|
+
if (!fs2.existsSync(dir)) return [];
|
|
4048
|
+
const results = [];
|
|
4049
|
+
const entries = fs2.readdirSync(dir, { withFileTypes: true });
|
|
4050
|
+
for (const entry of entries) {
|
|
4051
|
+
const fullPath = path2.join(dir, entry.name);
|
|
4052
|
+
if (entry.isDirectory()) {
|
|
4053
|
+
results.push(...walkMarkdownFiles(fullPath));
|
|
4054
|
+
} else if (entry.isFile() && entry.name.endsWith(".md")) {
|
|
4055
|
+
results.push(fullPath);
|
|
4056
|
+
}
|
|
4057
|
+
}
|
|
4058
|
+
return results;
|
|
4059
|
+
}
|
|
4024
4060
|
var VaultReader = class {
|
|
4025
4061
|
constructor(vaultDir) {
|
|
4026
4062
|
this.vaultDir = vaultDir;
|
|
@@ -4035,7 +4071,7 @@ var VaultReader = class {
|
|
|
4035
4071
|
listNotes(subdir) {
|
|
4036
4072
|
const dirPath = path2.join(this.vaultDir, subdir);
|
|
4037
4073
|
if (!fs2.existsSync(dirPath)) return [];
|
|
4038
|
-
const files =
|
|
4074
|
+
const files = walkMarkdownFiles(dirPath);
|
|
4039
4075
|
return files.map((filePath) => {
|
|
4040
4076
|
const relativePath = path2.relative(this.vaultDir, filePath);
|
|
4041
4077
|
return this.readNote(relativePath);
|
|
@@ -4044,20 +4080,6 @@ var VaultReader = class {
|
|
|
4044
4080
|
readAllNotes() {
|
|
4045
4081
|
return VAULT_SUBDIRS.flatMap((subdir) => this.listNotes(subdir));
|
|
4046
4082
|
}
|
|
4047
|
-
walkMarkdownFiles(dir) {
|
|
4048
|
-
if (!fs2.existsSync(dir)) return [];
|
|
4049
|
-
const results = [];
|
|
4050
|
-
const entries = fs2.readdirSync(dir, { withFileTypes: true });
|
|
4051
|
-
for (const entry of entries) {
|
|
4052
|
-
const fullPath = path2.join(dir, entry.name);
|
|
4053
|
-
if (entry.isDirectory()) {
|
|
4054
|
-
results.push(...this.walkMarkdownFiles(fullPath));
|
|
4055
|
-
} else if (entry.isFile() && entry.name.endsWith(".md")) {
|
|
4056
|
-
results.push(fullPath);
|
|
4057
|
-
}
|
|
4058
|
-
}
|
|
4059
|
-
return results;
|
|
4060
|
-
}
|
|
4061
4083
|
};
|
|
4062
4084
|
|
|
4063
4085
|
// src/index/rebuild.ts
|
|
@@ -4097,6 +4119,11 @@ function extractTitle(content) {
|
|
|
4097
4119
|
return match ? match[1].trim() : "";
|
|
4098
4120
|
}
|
|
4099
4121
|
|
|
4122
|
+
// src/vault/curation.ts
|
|
4123
|
+
var import_yaml2 = __toESM(require_dist(), 1);
|
|
4124
|
+
import fs4 from "fs";
|
|
4125
|
+
import path4 from "path";
|
|
4126
|
+
|
|
4100
4127
|
// src/intelligence/response.ts
|
|
4101
4128
|
var REASONING_PATTERNS = [
|
|
4102
4129
|
// <think>...</think>answer (DeepSeek, Qwen, GLM, many others)
|
|
@@ -4134,12 +4161,6 @@ function extractJson(text) {
|
|
|
4134
4161
|
}
|
|
4135
4162
|
return JSON.parse(cleaned);
|
|
4136
4163
|
}
|
|
4137
|
-
function extractNumber(text) {
|
|
4138
|
-
const cleaned = stripReasoningTokens(text).trim();
|
|
4139
|
-
const match = cleaned.match(/(\d+\.?\d*)/);
|
|
4140
|
-
if (match) return parseFloat(match[1]);
|
|
4141
|
-
return parseFloat(cleaned);
|
|
4142
|
-
}
|
|
4143
4164
|
|
|
4144
4165
|
// src/prompts/index.ts
|
|
4145
4166
|
import fs3 from "fs";
|
|
@@ -4182,11 +4203,10 @@ ${note.content}`;
|
|
|
4182
4203
|
function formatNotesForPrompt(notes) {
|
|
4183
4204
|
return notes.map(formatNoteForPrompt).join("\n\n");
|
|
4184
4205
|
}
|
|
4185
|
-
function buildExtractionPrompt(sessionId,
|
|
4206
|
+
function buildExtractionPrompt(sessionId, conversation, maxTokens) {
|
|
4186
4207
|
return interpolate(loadPrompt("extraction"), {
|
|
4187
4208
|
sessionId,
|
|
4188
|
-
|
|
4189
|
-
toolSummary,
|
|
4209
|
+
conversation,
|
|
4190
4210
|
maxTokens: String(maxTokens ?? 2048)
|
|
4191
4211
|
});
|
|
4192
4212
|
}
|
|
@@ -4211,12 +4231,6 @@ var ARTIFACT_TYPE_DESCRIPTIONS = [
|
|
|
4211
4231
|
'"doc" \u2014 Documentation, guides, READMEs',
|
|
4212
4232
|
'"other" \u2014 Other substantive documents'
|
|
4213
4233
|
];
|
|
4214
|
-
function buildSimilarityPrompt(currentSummary, candidateSummary) {
|
|
4215
|
-
return interpolate(loadPrompt("session-similarity"), {
|
|
4216
|
-
currentSummary,
|
|
4217
|
-
candidateSummary
|
|
4218
|
-
});
|
|
4219
|
-
}
|
|
4220
4234
|
function buildClassificationPrompt(sessionId, candidates, maxTokens) {
|
|
4221
4235
|
const fileList = candidates.map((c) => {
|
|
4222
4236
|
const truncated = c.content.slice(0, CANDIDATE_CONTENT_PREVIEW);
|
|
@@ -4235,9 +4249,6 @@ ${truncated}
|
|
|
4235
4249
|
}
|
|
4236
4250
|
|
|
4237
4251
|
// src/vault/curation.ts
|
|
4238
|
-
var import_yaml2 = __toESM(require_dist(), 1);
|
|
4239
|
-
import fs4 from "fs";
|
|
4240
|
-
import path4 from "path";
|
|
4241
4252
|
var supersededIdsSchema = external_exports.array(external_exports.string());
|
|
4242
4253
|
var SUPERSESSION_NOTICE_MARKER = "Superseded by::";
|
|
4243
4254
|
function isActiveSpore(frontmatter) {
|
|
@@ -4364,6 +4375,7 @@ export {
|
|
|
4364
4375
|
sessionWikilink,
|
|
4365
4376
|
sessionRelativePath,
|
|
4366
4377
|
CONVERSATION_HEADING,
|
|
4378
|
+
TURN_HEADING_PREFIX,
|
|
4367
4379
|
callout,
|
|
4368
4380
|
formatSessionBody,
|
|
4369
4381
|
formatSporeBody,
|
|
@@ -4373,18 +4385,17 @@ export {
|
|
|
4373
4385
|
PLAN_STATUSES,
|
|
4374
4386
|
OBSERVATION_TYPES,
|
|
4375
4387
|
ARTIFACT_TYPES,
|
|
4388
|
+
walkMarkdownFiles,
|
|
4376
4389
|
indexNote,
|
|
4377
4390
|
rebuildIndex,
|
|
4378
4391
|
stripReasoningTokens,
|
|
4379
4392
|
extractJson,
|
|
4380
|
-
extractNumber,
|
|
4381
4393
|
loadPrompt,
|
|
4382
4394
|
formatNoteForPrompt,
|
|
4383
4395
|
formatNotesForPrompt,
|
|
4384
4396
|
buildExtractionPrompt,
|
|
4385
4397
|
buildSummaryPrompt,
|
|
4386
4398
|
buildTitlePrompt,
|
|
4387
|
-
buildSimilarityPrompt,
|
|
4388
4399
|
buildClassificationPrompt,
|
|
4389
4400
|
supersededIdsSchema,
|
|
4390
4401
|
isActiveSpore,
|
|
@@ -4409,4 +4420,4 @@ strip-bom-string/index.js:
|
|
|
4409
4420
|
* Released under the MIT License.
|
|
4410
4421
|
*)
|
|
4411
4422
|
*/
|
|
4412
|
-
//# sourceMappingURL=chunk-
|
|
4423
|
+
//# sourceMappingURL=chunk-UP4P4OAA.js.map
|