@goondocks/myco 0.3.2 → 0.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/dist/{chunk-5BGQJOJN.js → chunk-4RJ3IEPW.js} +4 -4
  4. package/dist/{chunk-Q7BEFSOV.js → chunk-7VPJK56U.js} +10 -4
  5. package/dist/chunk-7VPJK56U.js.map +1 -0
  6. package/dist/{chunk-N6IAW33G.js → chunk-7WNE22W7.js} +3 -3
  7. package/dist/{chunk-72OAG4SF.js → chunk-AWF3M57N.js} +11 -6
  8. package/dist/{chunk-72OAG4SF.js.map → chunk-AWF3M57N.js.map} +1 -1
  9. package/dist/{chunk-XW3OL55U.js → chunk-BA23DROX.js} +2 -2
  10. package/dist/{chunk-TJJRIVZ7.js → chunk-C72VNYA4.js} +2 -2
  11. package/dist/{chunk-PAUPHPOC.js → chunk-DBSG4V6Y.js} +3 -3
  12. package/dist/{chunk-P2Q77C5F.js → chunk-QWU7QLZI.js} +6 -2
  13. package/dist/chunk-QWU7QLZI.js.map +1 -0
  14. package/dist/{chunk-2UEJVXXE.js → chunk-R2R243GC.js} +2 -2
  15. package/dist/{chunk-JIQISBPI.js → chunk-UHMMKLK3.js} +5 -5
  16. package/dist/{chunk-2QEJKG7R.js → chunk-Y3OYD4CX.js} +2 -2
  17. package/dist/{chunk-2TKJPRZL.js → chunk-ZBNT6E22.js} +2 -2
  18. package/dist/{cli-4RR3QBYK.js → cli-YTICB2DH.js} +15 -15
  19. package/dist/{client-43ML4EHJ.js → client-YI6RXFJD.js} +5 -5
  20. package/dist/{detect-providers-6RQCQZOI.js → detect-providers-LNOLBICR.js} +3 -3
  21. package/dist/{init-HTKEL3YT.js → init-TQ7Q4WEI.js} +5 -5
  22. package/dist/{main-DTWU4OAH.js → main-3BL45UM3.js} +10 -9
  23. package/dist/{main-DTWU4OAH.js.map → main-3BL45UM3.js.map} +1 -1
  24. package/dist/{rebuild-TXMFYBOU.js → rebuild-JW6BCHHZ.js} +5 -5
  25. package/dist/{reprocess-ARKHGDWF.js → reprocess-5XX3EOAV.js} +9 -9
  26. package/dist/{restart-C5BCVG3A.js → restart-UGE2Y327.js} +6 -6
  27. package/dist/{search-YCKNX2WS.js → search-2HMG3ON7.js} +4 -4
  28. package/dist/{server-EBKMQISL.js → server-YYCYIH5Z.js} +102 -81
  29. package/dist/server-YYCYIH5Z.js.map +1 -0
  30. package/dist/{session-start-ADZLL2YI.js → session-start-4MNXDOYK.js} +6 -6
  31. package/dist/src/cli.js +4 -4
  32. package/dist/src/daemon/main.js +4 -4
  33. package/dist/src/hooks/post-tool-use.js +5 -5
  34. package/dist/src/hooks/session-end.js +5 -5
  35. package/dist/src/hooks/session-start.js +4 -4
  36. package/dist/src/hooks/stop.js +5 -5
  37. package/dist/src/hooks/user-prompt-submit.js +9 -8
  38. package/dist/src/hooks/user-prompt-submit.js.map +1 -1
  39. package/dist/src/mcp/server.js +4 -4
  40. package/dist/{stats-7VEZN2WF.js → stats-7T44NZQN.js} +5 -5
  41. package/dist/{verify-HN5DWV2H.js → verify-7MWOV72E.js} +4 -4
  42. package/dist/{version-N55WTRG5.js → version-3MSC7E3V.js} +4 -4
  43. package/package.json +1 -1
  44. package/skills/myco/SKILL.md +15 -14
  45. package/dist/chunk-P2Q77C5F.js.map +0 -1
  46. package/dist/chunk-Q7BEFSOV.js.map +0 -1
  47. package/dist/server-EBKMQISL.js.map +0 -1
  48. /package/dist/{chunk-5BGQJOJN.js.map → chunk-4RJ3IEPW.js.map} +0 -0
  49. /package/dist/{chunk-N6IAW33G.js.map → chunk-7WNE22W7.js.map} +0 -0
  50. /package/dist/{chunk-XW3OL55U.js.map → chunk-BA23DROX.js.map} +0 -0
  51. /package/dist/{chunk-TJJRIVZ7.js.map → chunk-C72VNYA4.js.map} +0 -0
  52. /package/dist/{chunk-PAUPHPOC.js.map → chunk-DBSG4V6Y.js.map} +0 -0
  53. /package/dist/{chunk-2UEJVXXE.js.map → chunk-R2R243GC.js.map} +0 -0
  54. /package/dist/{chunk-JIQISBPI.js.map → chunk-UHMMKLK3.js.map} +0 -0
  55. /package/dist/{chunk-2QEJKG7R.js.map → chunk-Y3OYD4CX.js.map} +0 -0
  56. /package/dist/{chunk-2TKJPRZL.js.map → chunk-ZBNT6E22.js.map} +0 -0
  57. /package/dist/{cli-4RR3QBYK.js.map → cli-YTICB2DH.js.map} +0 -0
  58. /package/dist/{client-43ML4EHJ.js.map → client-YI6RXFJD.js.map} +0 -0
  59. /package/dist/{detect-providers-6RQCQZOI.js.map → detect-providers-LNOLBICR.js.map} +0 -0
  60. /package/dist/{init-HTKEL3YT.js.map → init-TQ7Q4WEI.js.map} +0 -0
  61. /package/dist/{rebuild-TXMFYBOU.js.map → rebuild-JW6BCHHZ.js.map} +0 -0
  62. /package/dist/{reprocess-ARKHGDWF.js.map → reprocess-5XX3EOAV.js.map} +0 -0
  63. /package/dist/{restart-C5BCVG3A.js.map → restart-UGE2Y327.js.map} +0 -0
  64. /package/dist/{search-YCKNX2WS.js.map → search-2HMG3ON7.js.map} +0 -0
  65. /package/dist/{session-start-ADZLL2YI.js.map → session-start-4MNXDOYK.js.map} +0 -0
  66. /package/dist/{stats-7VEZN2WF.js.map → stats-7T44NZQN.js.map} +0 -0
  67. /package/dist/{verify-HN5DWV2H.js.map → verify-7MWOV72E.js.map} +0 -0
  68. /package/dist/{version-N55WTRG5.js.map → version-3MSC7E3V.js.map} +0 -0
@@ -12,7 +12,7 @@
12
12
  "source": {
13
13
  "source": "npm",
14
14
  "package": "@goondocks/myco",
15
- "version": "0.3.1"
15
+ "version": "0.3.3"
16
16
  },
17
17
  "description": "Collective agent intelligence — captures session knowledge and serves it back via MCP",
18
18
  "license": "MIT",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "myco",
3
- "version": "0.3.2",
3
+ "version": "0.3.4",
4
4
  "description": "Collective agent intelligence — captures session knowledge and serves it back to your team via MCP",
5
5
  "author": {
6
6
  "name": "goondocks-co",
@@ -1,15 +1,15 @@
1
1
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
2
  import {
3
3
  getPluginVersion
4
- } from "./chunk-2UEJVXXE.js";
4
+ } from "./chunk-R2R243GC.js";
5
5
  import {
6
6
  AgentRegistry
7
- } from "./chunk-2QEJKG7R.js";
7
+ } from "./chunk-Y3OYD4CX.js";
8
8
  import {
9
9
  DAEMON_CLIENT_TIMEOUT_MS,
10
10
  DAEMON_HEALTH_CHECK_TIMEOUT_MS,
11
11
  DAEMON_HEALTH_RETRY_DELAYS
12
- } from "./chunk-Q7BEFSOV.js";
12
+ } from "./chunk-7VPJK56U.js";
13
13
 
14
14
  // src/hooks/client.ts
15
15
  import fs from "fs";
@@ -144,4 +144,4 @@ var DaemonClient = class {
144
144
  export {
145
145
  DaemonClient
146
146
  };
147
- //# sourceMappingURL=chunk-5BGQJOJN.js.map
147
+ //# sourceMappingURL=chunk-4RJ3IEPW.js.map
@@ -19,8 +19,8 @@ var TITLE_MAX_TOKENS = 32;
19
19
  var CLASSIFICATION_MAX_TOKENS = 1024;
20
20
  var DAEMON_CLIENT_TIMEOUT_MS = 2e3;
21
21
  var DAEMON_HEALTH_CHECK_TIMEOUT_MS = 500;
22
- var LLM_REQUEST_TIMEOUT_MS = 3e4;
23
- var EMBEDDING_REQUEST_TIMEOUT_MS = 1e4;
22
+ var LLM_REQUEST_TIMEOUT_MS = 18e4;
23
+ var EMBEDDING_REQUEST_TIMEOUT_MS = 6e4;
24
24
  var STDIN_TIMEOUT_MS = 100;
25
25
  var FILE_WATCH_STABILITY_MS = 1e3;
26
26
  var PROVIDER_DETECT_TIMEOUT_MS = 3e3;
@@ -34,6 +34,9 @@ var SESSION_CONTEXT_MAX_PLANS = 3;
34
34
  var PROMPT_CONTEXT_MAX_MEMORIES = 3;
35
35
  var PROMPT_CONTEXT_MIN_SIMILARITY = 0.3;
36
36
  var PROMPT_CONTEXT_MIN_LENGTH = 10;
37
+ var MCP_SEARCH_DEFAULT_LIMIT = 10;
38
+ var MCP_SESSIONS_DEFAULT_LIMIT = 20;
39
+ var MCP_LOGS_DEFAULT_LIMIT = 50;
37
40
 
38
41
  export {
39
42
  CHARS_PER_TOKEN,
@@ -68,6 +71,9 @@ export {
68
71
  SESSION_CONTEXT_MAX_PLANS,
69
72
  PROMPT_CONTEXT_MAX_MEMORIES,
70
73
  PROMPT_CONTEXT_MIN_SIMILARITY,
71
- PROMPT_CONTEXT_MIN_LENGTH
74
+ PROMPT_CONTEXT_MIN_LENGTH,
75
+ MCP_SEARCH_DEFAULT_LIMIT,
76
+ MCP_SESSIONS_DEFAULT_LIMIT,
77
+ MCP_LOGS_DEFAULT_LIMIT
72
78
  };
73
- //# sourceMappingURL=chunk-Q7BEFSOV.js.map
79
+ //# sourceMappingURL=chunk-7VPJK56U.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// --- 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_MEMORY_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/** 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// --- Buffer cleanup ---\n/** Max age for stale buffer files before cleanup (ms). */\nexport const STALE_BUFFER_MAX_AGE_MS = 24 * 60 * 60 * 1000;\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// --- 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// --- 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 memories to query for session notes. */\nexport const RELATED_MEMORIES_LIMIT = 50;\n\n// --- Context injection ---\n/** Max active plans to inject at session start. */\nexport const SESSION_CONTEXT_MAX_PLANS = 3;\n/** Max memories to inject per prompt. */\nexport const PROMPT_CONTEXT_MAX_MEMORIES = 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"],"mappings":";;;AAQO,IAAM,kBAAkB;AAIxB,IAAM,wBAAwB;AAI9B,IAAM,uBAAuB;AAE7B,IAAM,4BAA4B;AAElC,IAAM,wBAAwB;AAE9B,IAAM,wBAAwB;AAE9B,IAAM,4BAA4B;AAElC,IAAM,gCAAgC;AAEtC,IAAM,+BAA+B;AAGrC,IAAM,6BAA6B;AACnC,IAAM,gCAAgC;AACtC,IAAM,+BAA+B;AAIrC,IAAM,wBAAwB;AAE9B,IAAM,qBAAqB;AAE3B,IAAM,mBAAmB;AAEzB,IAAM,4BAA4B;AAIlC,IAAM,2BAA2B;AAEjC,IAAM,iCAAiC;AAEvC,IAAM,yBAAyB;AAE/B,IAAM,+BAA+B;AAErC,IAAM,mBAAmB;AAEzB,IAAM,0BAA0B;AAEhC,IAAM,6BAA6B;AAInC,IAAM,0BAA0B,KAAK,KAAK,KAAK;AAI/C,IAAM,6BAA6B,CAAC,KAAK,KAAK,KAAK,KAAK,IAAI;AAI5D,IAAM,kBAAkB;AAIxB,IAAM,4BAA4B;AAQlC,IAAM,gCAAgC;AAEtC,IAAM,yBAAyB;AAI/B,IAAM,4BAA4B;AAElC,IAAM,8BAA8B;AAEpC,IAAM,gCAAgC;AAMtC,IAAM,4BAA4B;AAIlC,IAAM,2BAA2B;AAEjC,IAAM,6BAA6B;AAEnC,IAAM,yBAAyB;","names":[]}
@@ -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-XW3OL55U.js";
5
+ } from "./chunk-BA23DROX.js";
6
6
  import {
7
7
  LLM_REQUEST_TIMEOUT_MS
8
- } from "./chunk-Q7BEFSOV.js";
8
+ } from "./chunk-7VPJK56U.js";
9
9
 
10
10
  // node_modules/@anthropic-ai/sdk/internal/tslib.mjs
11
11
  function __classPrivateFieldSet(receiver, state, value, kind, f) {
@@ -4911,4 +4911,4 @@ export {
4911
4911
  createLlmProvider,
4912
4912
  createEmbeddingProvider
4913
4913
  };
4914
- //# sourceMappingURL=chunk-N6IAW33G.js.map
4914
+ //# sourceMappingURL=chunk-7WNE22W7.js.map
@@ -3492,6 +3492,11 @@ var require_gray_matter = __commonJS({
3492
3492
  }
3493
3493
  });
3494
3494
 
3495
+ // src/vault/reader.ts
3496
+ var import_gray_matter = __toESM(require_gray_matter(), 1);
3497
+ import fs from "fs";
3498
+ import path from "path";
3499
+
3495
3500
  // src/vault/types.ts
3496
3501
  var SessionFrontmatterSchema = external_exports.object({
3497
3502
  type: external_exports.literal("session"),
@@ -3511,14 +3516,16 @@ var SessionFrontmatterSchema = external_exports.object({
3511
3516
  tools_used: external_exports.number().int().optional(),
3512
3517
  files_changed: external_exports.number().int().optional()
3513
3518
  });
3519
+ var PLAN_STATUSES = ["active", "in_progress", "completed", "abandoned"];
3514
3520
  var PlanFrontmatterSchema = external_exports.object({
3515
3521
  type: external_exports.literal("plan"),
3516
3522
  id: external_exports.string(),
3517
- status: external_exports.enum(["active", "in_progress", "completed", "abandoned"]).default("active"),
3523
+ status: external_exports.enum(PLAN_STATUSES).default("active"),
3518
3524
  created: external_exports.string(),
3519
3525
  author: external_exports.string().optional(),
3520
3526
  tags: external_exports.array(external_exports.string()).default([])
3521
3527
  });
3528
+ var OBSERVATION_TYPES = ["gotcha", "bug_fix", "decision", "discovery", "trade_off", "cross-cutting"];
3522
3529
  var MEMORY_STATUSES = ["active", "superseded", "archived"];
3523
3530
  var MemoryFrontmatterSchema = external_exports.object({
3524
3531
  type: external_exports.literal("memory"),
@@ -3584,9 +3591,6 @@ function coerceDatesToStrings(obj) {
3584
3591
  }
3585
3592
 
3586
3593
  // src/vault/reader.ts
3587
- var import_gray_matter = __toESM(require_gray_matter(), 1);
3588
- import fs from "fs";
3589
- import path from "path";
3590
3594
  var VAULT_SUBDIRS = ["sessions", "plans", "memories", "artifacts", "team"];
3591
3595
  var VaultReader = class {
3592
3596
  constructor(vaultDir) {
@@ -3666,7 +3670,8 @@ function extractTitle(content) {
3666
3670
 
3667
3671
  export {
3668
3672
  require_gray_matter,
3669
- PlanFrontmatterSchema,
3673
+ PLAN_STATUSES,
3674
+ OBSERVATION_TYPES,
3670
3675
  ARTIFACT_TYPES,
3671
3676
  indexNote,
3672
3677
  rebuildIndex
@@ -3689,4 +3694,4 @@ strip-bom-string/index.js:
3689
3694
  * Released under the MIT License.
3690
3695
  *)
3691
3696
  */
3692
- //# sourceMappingURL=chunk-72OAG4SF.js.map
3697
+ //# sourceMappingURL=chunk-AWF3M57N.js.map