@goondocks/myco 0.12.7 → 0.12.8

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 (94) hide show
  1. package/dist/{agent-run-WM3PFA3Y.js → agent-run-W2QFAY6Q.js} +4 -4
  2. package/dist/{agent-tasks-MONSZFG7.js → agent-tasks-ARTFCN3Q.js} +4 -4
  3. package/dist/{chunk-TIFE27JS.js → chunk-4GAD3XUH.js} +2 -2
  4. package/dist/{chunk-MAZOVVDU.js → chunk-OAGY5APE.js} +2 -2
  5. package/dist/chunk-OAGY5APE.js.map +1 -0
  6. package/dist/{chunk-R52WNQIK.js → chunk-P5PM2XBP.js} +2 -2
  7. package/dist/{chunk-NYG4YIFJ.js → chunk-PNMO37IS.js} +2 -2
  8. package/dist/{chunk-46C4ADA4.js → chunk-X3UIUHOL.js} +2 -2
  9. package/dist/{chunk-SBJKSZZE.js → chunk-YJ2AARLV.js} +3 -3
  10. package/dist/{cli-D6SW3X7M.js → cli-XLJCARKC.js} +36 -36
  11. package/dist/{client-JHV6WMHB.js → client-7ZWAQ4M5.js} +3 -3
  12. package/dist/{config-G3CSGI7P.js → config-6RQ7FAEV.js} +2 -2
  13. package/dist/{doctor-X5CVDZCL.js → doctor-ZOY52EPV.js} +5 -5
  14. package/dist/{executor-QRGGW4H7.js → executor-C5VCAJAJ.js} +3 -3
  15. package/dist/{init-US52M3AV.js → init-VGSYSCGO.js} +9 -9
  16. package/dist/{init-wizard-CNW3KWND.js → init-wizard-VN64L4DY.js} +2 -2
  17. package/dist/{loader-PZ7ZRSA4.js → loader-4FMGOVWF.js} +2 -2
  18. package/dist/{main-2ZCTH6JF.js → main-PGC7LXKQ.js} +12 -10
  19. package/dist/{main-2ZCTH6JF.js.map → main-PGC7LXKQ.js.map} +1 -1
  20. package/dist/{open-LDE3NMWS.js → open-7ZH3BLWM.js} +4 -4
  21. package/dist/{post-compact-BNBLIHBB.js → post-compact-L37MQOOJ.js} +4 -4
  22. package/dist/{post-tool-use-OAVV3HJ6.js → post-tool-use-3UAJWEBN.js} +3 -3
  23. package/dist/{post-tool-use-failure-DRM7FKKO.js → post-tool-use-failure-XSKAGZCA.js} +4 -4
  24. package/dist/{pre-compact-BU5P4VUK.js → pre-compact-G6STPYHO.js} +4 -4
  25. package/dist/{remove-XOKHXEC5.js → remove-XB4LO7MF.js} +4 -4
  26. package/dist/{restart-K7WW6HT5.js → restart-BVIILGII.js} +5 -5
  27. package/dist/{search-W45MUD6X.js → search-Q5SCSTCQ.js} +4 -4
  28. package/dist/{server-YAMYC52G.js → server-CWGEV6ZU.js} +3 -3
  29. package/dist/{session-VBAXOCYP.js → session-BGHUYGU6.js} +4 -4
  30. package/dist/{session-end-MS7QSOOG.js → session-end-5BCQ5D52.js} +3 -3
  31. package/dist/{session-start-YVLOEHSJ.js → session-start-XO47SXGR.js} +4 -4
  32. package/dist/{setup-llm-X7M3CCZU.js → setup-llm-CLWMTP6S.js} +5 -5
  33. package/dist/src/cli.js +1 -1
  34. package/dist/src/daemon/main.js +1 -1
  35. package/dist/src/hooks/post-tool-use.js +1 -1
  36. package/dist/src/hooks/session-end.js +1 -1
  37. package/dist/src/hooks/session-start.js +1 -1
  38. package/dist/src/hooks/stop.js +1 -1
  39. package/dist/src/hooks/user-prompt-submit.js +1 -1
  40. package/dist/src/mcp/server.js +1 -1
  41. package/dist/{stats-HJS43XXW.js → stats-67GPP6O7.js} +6 -6
  42. package/dist/{stop-O7ZCYIFZ.js → stop-O3E6GC6T.js} +3 -3
  43. package/dist/{stop-failure-MRJBYLFU.js → stop-failure-PRV6WZH3.js} +4 -4
  44. package/dist/{subagent-start-DUHEJR4K.js → subagent-start-NMYHWVLY.js} +4 -4
  45. package/dist/{subagent-stop-OBPIXEIL.js → subagent-stop-OLBC3G2F.js} +4 -4
  46. package/dist/{task-completed-JJOH4QFA.js → task-completed-4OWLYM2S.js} +4 -4
  47. package/dist/{team-TBS5OILG.js → team-VU5MGPGG.js} +2 -2
  48. package/dist/ui/assets/{index-BE87MlCd.js → index-ZSGlKT25.js} +25 -25
  49. package/dist/ui/index.html +1 -1
  50. package/dist/{update-Q3AU7UDC.js → update-S5Q4I2NY.js} +4 -4
  51. package/dist/{user-prompt-submit-PL4IH4GZ.js → user-prompt-submit-DLVNAWSW.js} +3 -3
  52. package/dist/{verify-D7EDVXO5.js → verify-MQAANTUR.js} +2 -2
  53. package/dist/{version-DPPJB3HZ.js → version-NXZNTNBT.js} +2 -2
  54. package/package.json +1 -1
  55. package/dist/chunk-MAZOVVDU.js.map +0 -1
  56. /package/dist/{agent-run-WM3PFA3Y.js.map → agent-run-W2QFAY6Q.js.map} +0 -0
  57. /package/dist/{agent-tasks-MONSZFG7.js.map → agent-tasks-ARTFCN3Q.js.map} +0 -0
  58. /package/dist/{chunk-TIFE27JS.js.map → chunk-4GAD3XUH.js.map} +0 -0
  59. /package/dist/{chunk-R52WNQIK.js.map → chunk-P5PM2XBP.js.map} +0 -0
  60. /package/dist/{chunk-NYG4YIFJ.js.map → chunk-PNMO37IS.js.map} +0 -0
  61. /package/dist/{chunk-46C4ADA4.js.map → chunk-X3UIUHOL.js.map} +0 -0
  62. /package/dist/{chunk-SBJKSZZE.js.map → chunk-YJ2AARLV.js.map} +0 -0
  63. /package/dist/{cli-D6SW3X7M.js.map → cli-XLJCARKC.js.map} +0 -0
  64. /package/dist/{client-JHV6WMHB.js.map → client-7ZWAQ4M5.js.map} +0 -0
  65. /package/dist/{config-G3CSGI7P.js.map → config-6RQ7FAEV.js.map} +0 -0
  66. /package/dist/{doctor-X5CVDZCL.js.map → doctor-ZOY52EPV.js.map} +0 -0
  67. /package/dist/{executor-QRGGW4H7.js.map → executor-C5VCAJAJ.js.map} +0 -0
  68. /package/dist/{init-US52M3AV.js.map → init-VGSYSCGO.js.map} +0 -0
  69. /package/dist/{init-wizard-CNW3KWND.js.map → init-wizard-VN64L4DY.js.map} +0 -0
  70. /package/dist/{loader-PZ7ZRSA4.js.map → loader-4FMGOVWF.js.map} +0 -0
  71. /package/dist/{open-LDE3NMWS.js.map → open-7ZH3BLWM.js.map} +0 -0
  72. /package/dist/{post-compact-BNBLIHBB.js.map → post-compact-L37MQOOJ.js.map} +0 -0
  73. /package/dist/{post-tool-use-OAVV3HJ6.js.map → post-tool-use-3UAJWEBN.js.map} +0 -0
  74. /package/dist/{post-tool-use-failure-DRM7FKKO.js.map → post-tool-use-failure-XSKAGZCA.js.map} +0 -0
  75. /package/dist/{pre-compact-BU5P4VUK.js.map → pre-compact-G6STPYHO.js.map} +0 -0
  76. /package/dist/{remove-XOKHXEC5.js.map → remove-XB4LO7MF.js.map} +0 -0
  77. /package/dist/{restart-K7WW6HT5.js.map → restart-BVIILGII.js.map} +0 -0
  78. /package/dist/{search-W45MUD6X.js.map → search-Q5SCSTCQ.js.map} +0 -0
  79. /package/dist/{server-YAMYC52G.js.map → server-CWGEV6ZU.js.map} +0 -0
  80. /package/dist/{session-VBAXOCYP.js.map → session-BGHUYGU6.js.map} +0 -0
  81. /package/dist/{session-end-MS7QSOOG.js.map → session-end-5BCQ5D52.js.map} +0 -0
  82. /package/dist/{session-start-YVLOEHSJ.js.map → session-start-XO47SXGR.js.map} +0 -0
  83. /package/dist/{setup-llm-X7M3CCZU.js.map → setup-llm-CLWMTP6S.js.map} +0 -0
  84. /package/dist/{stats-HJS43XXW.js.map → stats-67GPP6O7.js.map} +0 -0
  85. /package/dist/{stop-O7ZCYIFZ.js.map → stop-O3E6GC6T.js.map} +0 -0
  86. /package/dist/{stop-failure-MRJBYLFU.js.map → stop-failure-PRV6WZH3.js.map} +0 -0
  87. /package/dist/{subagent-start-DUHEJR4K.js.map → subagent-start-NMYHWVLY.js.map} +0 -0
  88. /package/dist/{subagent-stop-OBPIXEIL.js.map → subagent-stop-OLBC3G2F.js.map} +0 -0
  89. /package/dist/{task-completed-JJOH4QFA.js.map → task-completed-4OWLYM2S.js.map} +0 -0
  90. /package/dist/{team-TBS5OILG.js.map → team-VU5MGPGG.js.map} +0 -0
  91. /package/dist/{update-Q3AU7UDC.js.map → update-S5Q4I2NY.js.map} +0 -0
  92. /package/dist/{user-prompt-submit-PL4IH4GZ.js.map → user-prompt-submit-DLVNAWSW.js.map} +0 -0
  93. /package/dist/{verify-D7EDVXO5.js.map → verify-MQAANTUR.js.map} +0 -0
  94. /package/dist/{version-DPPJB3HZ.js.map → version-NXZNTNBT.js.map} +0 -0
@@ -1,14 +1,14 @@
1
1
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
2
  import {
3
3
  connectToDaemon
4
- } from "./chunk-R52WNQIK.js";
4
+ } from "./chunk-P5PM2XBP.js";
5
5
  import "./chunk-SAKJMNSR.js";
6
6
  import "./chunk-LUQBT2Y4.js";
7
7
  import "./chunk-MYX5NCRH.js";
8
- import "./chunk-TIFE27JS.js";
8
+ import "./chunk-4GAD3XUH.js";
9
9
  import "./chunk-PIRWYDOH.js";
10
10
  import "./chunk-S6I62FAH.js";
11
- import "./chunk-46C4ADA4.js";
11
+ import "./chunk-X3UIUHOL.js";
12
12
  import "./chunk-LPUQPDC2.js";
13
13
  import "./chunk-PZUWP5VK.js";
14
14
 
@@ -31,4 +31,4 @@ async function run(args, vaultDir) {
31
31
  export {
32
32
  run
33
33
  };
34
- //# sourceMappingURL=agent-run-WM3PFA3Y.js.map
34
+ //# sourceMappingURL=agent-run-W2QFAY6Q.js.map
@@ -1,14 +1,14 @@
1
1
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
2
  import {
3
3
  connectToDaemon
4
- } from "./chunk-R52WNQIK.js";
4
+ } from "./chunk-P5PM2XBP.js";
5
5
  import "./chunk-SAKJMNSR.js";
6
6
  import "./chunk-LUQBT2Y4.js";
7
7
  import "./chunk-MYX5NCRH.js";
8
- import "./chunk-TIFE27JS.js";
8
+ import "./chunk-4GAD3XUH.js";
9
9
  import "./chunk-PIRWYDOH.js";
10
10
  import "./chunk-S6I62FAH.js";
11
- import "./chunk-46C4ADA4.js";
11
+ import "./chunk-X3UIUHOL.js";
12
12
  import "./chunk-LPUQPDC2.js";
13
13
  import "./chunk-PZUWP5VK.js";
14
14
 
@@ -177,4 +177,4 @@ async function run(args, vaultDir) {
177
177
  export {
178
178
  run
179
179
  };
180
- //# sourceMappingURL=agent-tasks-MONSZFG7.js.map
180
+ //# sourceMappingURL=agent-tasks-ARTFCN3Q.js.map
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-PIRWYDOH.js";
8
8
  import {
9
9
  getPluginVersion
10
- } from "./chunk-46C4ADA4.js";
10
+ } from "./chunk-X3UIUHOL.js";
11
11
 
12
12
  // src/hooks/client.ts
13
13
  import fs from "fs";
@@ -168,4 +168,4 @@ export {
168
168
  resolveCliEntryPath,
169
169
  DaemonClient
170
170
  };
171
- //# sourceMappingURL=chunk-TIFE27JS.js.map
171
+ //# sourceMappingURL=chunk-4GAD3XUH.js.map
@@ -73,7 +73,7 @@ var AgentSchema = external_exports.object({
73
73
  tasks: external_exports.record(external_exports.string(), TaskProviderOverrideSchema).optional()
74
74
  });
75
75
  var BackupSchema = external_exports.object({
76
- /** Override directory for backup files (absolute path). When unset, defaults to {vaultDir}/backups. */
76
+ /** Override directory for backup files. Supports ~ for home directory. When unset, defaults to .myco/backups. */
77
77
  dir: external_exports.string().optional()
78
78
  });
79
79
  var TeamSchema = external_exports.object({
@@ -302,4 +302,4 @@ export {
302
302
  updateBackupConfig,
303
303
  updateTeamConfig
304
304
  };
305
- //# sourceMappingURL=chunk-MAZOVVDU.js.map
305
+ //# sourceMappingURL=chunk-OAGY5APE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/config/loader.ts","../src/config/schema.ts","../src/config/migrations.ts"],"sourcesContent":["import fs from 'node:fs';\nimport path from 'node:path';\nimport YAML from 'yaml';\nimport { MycoConfigSchema, type MycoConfig, type BackupConfig, type TeamConfig } from './schema.js';\nimport { runMigrations, CURRENT_MIGRATION_VERSION } from './migrations.js';\n\nexport const CONFIG_FILENAME = 'myco.yaml';\n\nexport function loadConfig(vaultDir: string): MycoConfig {\n const configPath = path.join(vaultDir, CONFIG_FILENAME);\n\n if (!fs.existsSync(configPath)) {\n throw new Error(`myco.yaml not found in ${vaultDir}`);\n }\n\n const raw = fs.readFileSync(configPath, 'utf-8');\n const parsed = YAML.parse(raw) as Record<string, unknown>;\n\n // Detect v1 config and guide migration\n if (parsed.version === 1 || (parsed.intelligence as Record<string, unknown>)?.backend) {\n throw new Error(\n 'Myco config uses v1 format. Run /myco:setup-llm to reconfigure for v2.',\n );\n }\n\n // --- v2 → v3 migration ---\n let v2Migrated = false;\n if (parsed.version === 2) {\n // Extract intelligence.embedding to top-level embedding\n const intel = parsed.intelligence as Record<string, unknown> | undefined;\n const embeddingConfig = intel?.embedding as Record<string, unknown> | undefined;\n if (embeddingConfig && !parsed.embedding) {\n // Map v2 'lm-studio' to v3 'openai-compatible' for embedding provider\n if (embeddingConfig.provider === 'lm-studio') {\n embeddingConfig.provider = 'openai-compatible';\n }\n parsed.embedding = embeddingConfig;\n }\n\n // Keep daemon.port and daemon.log_level, drop grace_period and max_log_size\n const daemon = parsed.daemon as Record<string, unknown> | undefined;\n if (daemon) {\n const { port, log_level } = daemon;\n parsed.daemon = { port: port ?? null, log_level: log_level ?? 'info' };\n }\n\n // Keep capture basics, drop token-related fields; migrate artifact_watch → plan_dirs\n const capture = parsed.capture as Record<string, unknown> | undefined;\n if (capture) {\n const { transcript_paths, artifact_watch, plan_dirs, artifact_extensions, buffer_max_events } = capture;\n parsed.capture = {\n transcript_paths,\n plan_dirs: plan_dirs ?? artifact_watch,\n artifact_extensions,\n buffer_max_events,\n };\n }\n\n // Drop removed top-level sections\n delete parsed.intelligence;\n delete parsed.context;\n delete parsed.team;\n delete parsed.digest;\n delete parsed.pipeline;\n\n // Set version to 3\n parsed.version = 3;\n v2Migrated = true;\n\n process.stderr.write('[myco migration] Migrated config from v2 to v3\\n');\n }\n\n // Run numbered migrations (for v3+ forward migrations)\n const migrationsRan = runMigrations(parsed, vaultDir, (msg) => {\n process.stderr.write(`[myco migration] ${msg}\\n`);\n });\n\n // Parse with Zod to fill in defaults for new config sections\n const config = MycoConfigSchema.parse(parsed);\n\n // Write back if v2→v3 migration ran, numbered migrations ran, or new defaults were added\n const needsWrite = v2Migrated\n || migrationsRan\n || (parsed.config_version as number ?? 0) < CURRENT_MIGRATION_VERSION\n || parsed.version !== config.version;\n\n if (needsWrite) {\n const fullConfig = JSON.parse(JSON.stringify(config)) as Record<string, unknown>;\n fs.writeFileSync(configPath, YAML.stringify(fullConfig), 'utf-8');\n }\n\n return config;\n}\n\nexport function saveConfig(vaultDir: string, config: MycoConfig): void {\n // Validate before writing — OAK lesson: validate on write, not just read\n const validated = MycoConfigSchema.parse(config);\n\n const configPath = path.join(vaultDir, CONFIG_FILENAME);\n fs.mkdirSync(vaultDir, { recursive: true });\n fs.writeFileSync(configPath, YAML.stringify(validated), 'utf-8');\n}\n\nexport function updateConfig(\n vaultDir: string,\n fn: (config: MycoConfig) => MycoConfig,\n): MycoConfig {\n const current = loadConfig(vaultDir);\n const updated = fn(current);\n saveConfig(vaultDir, updated);\n return updated;\n}\n\nexport function updateBackupConfig(\n vaultDir: string,\n backup: Partial<BackupConfig>,\n): MycoConfig {\n return updateConfig(vaultDir, (config) => ({\n ...config,\n backup: { ...config.backup, ...backup },\n }));\n}\n\nexport function updateTeamConfig(\n vaultDir: string,\n team: Partial<TeamConfig>,\n): MycoConfig {\n return updateConfig(vaultDir, (config) => ({\n ...config,\n team: { ...config.team, ...team },\n }));\n}\n","import { z } from 'zod';\n\nconst EmbeddingProviderSchema = z.object({\n provider: z.enum(['ollama', 'openai-compatible', 'openrouter', 'openai']).default('ollama'),\n model: z.string().default('bge-m3'),\n base_url: z.string().url().optional(),\n});\n\nconst DaemonSchema = z.object({\n port: z.number().int().min(1024).max(65535).nullable().default(null),\n log_level: z.enum(['debug', 'info', 'warn', 'error']).default('info'),\n log_retention_days: z.number().int().min(1).max(365).default(30),\n});\n\nconst CaptureSchema = z.object({\n transcript_paths: z.array(z.string()).default([]),\n plan_dirs: z.array(z.string()).default([]),\n artifact_extensions: z.array(z.string()).default(['.md']),\n buffer_max_events: z.number().int().positive().default(500),\n});\n\n/** Provider config shape used in both task-level and phase-level overrides. */\nconst ProviderOverrideSchema = z.object({\n type: z.enum(['cloud', 'ollama', 'lmstudio']),\n base_url: z.string().optional(),\n model: z.string().optional(),\n /** Context window size for local models (Ollama num_ctx, LM Studio context_length). */\n context_length: z.number().int().positive().optional(),\n});\n\n/** Per-phase overrides within a task — keyed by phase name. */\nconst PhaseOverrideSchema = z.object({\n provider: ProviderOverrideSchema.optional(),\n model: z.string().optional(),\n maxTurns: z.number().int().positive().optional(),\n});\n\n/** Per-task config override — stored in myco.yaml under agent.tasks. */\nconst TaskProviderOverrideSchema = z.object({\n provider: ProviderOverrideSchema.optional(),\n model: z.string().optional(),\n maxTurns: z.number().int().positive().optional(),\n timeoutSeconds: z.number().int().positive().optional(),\n phases: z.record(z.string(), PhaseOverrideSchema).optional(),\n});\n\nconst ContextSchema = z.object({\n /** Which digest tier to inject at session start. */\n digest_tier: z.number().int().default(5000),\n /** Enable semantic spore search on each user prompt. */\n prompt_search: z.boolean().default(true),\n /** Max spores to inject per prompt (0-10). */\n prompt_max_spores: z.number().int().min(0).max(10).default(3),\n});\n\nconst AgentSchema = z.object({\n /** Whether the daemon automatically runs the agent on unprocessed batches. */\n auto_run: z.boolean().default(true),\n /** Seconds between agent timer checks. */\n interval_seconds: z.number().int().positive().default(300),\n /** Number of batches between event-driven summary triggers (0 to disable). */\n summary_batch_interval: z.number().int().min(0).default(5),\n /** Global default provider — applies to all tasks unless overridden per-task. */\n provider: ProviderOverrideSchema.optional(),\n /** Global default model — applies to all tasks unless overridden per-task. */\n model: z.string().optional(),\n /** Per-task overrides keyed by task name. */\n tasks: z.record(z.string(), TaskProviderOverrideSchema).optional(),\n});\n\nconst BackupSchema = z.object({\n /** Override directory for backup files. Supports ~ for home directory. When unset, defaults to .myco/backups. */\n dir: z.string().optional(),\n});\n\nconst TeamSchema = z.object({\n /** Whether team sync is enabled. */\n enabled: z.boolean().default(false),\n /** Cloudflare Worker URL for team sync. */\n worker_url: z.string().url().optional(),\n /** Team identifier for sync grouping. */\n team_id: z.string().optional(),\n /** Sync interval in minutes. */\n interval_minutes: z.number().int().min(1).max(1440).default(15),\n});\n\nexport const MycoConfigSchema = z.preprocess(\n (raw: unknown) => {\n if (raw && typeof raw === 'object' && 'curation' in raw && !('agent' in raw)) {\n const { curation, ...rest } = raw as Record<string, unknown>;\n return { ...rest, agent: curation };\n }\n return raw;\n },\n z.object({\n version: z.literal(3),\n config_version: z.number().int().nonnegative().default(0),\n embedding: EmbeddingProviderSchema.default(() => EmbeddingProviderSchema.parse({})),\n daemon: DaemonSchema.default(() => DaemonSchema.parse({})),\n capture: CaptureSchema.default(() => CaptureSchema.parse({})),\n agent: AgentSchema.default(() => AgentSchema.parse({})),\n context: ContextSchema.default(() => ContextSchema.parse({})),\n backup: BackupSchema.default(() => BackupSchema.parse({})),\n team: TeamSchema.default(() => TeamSchema.parse({})),\n }),\n);\n\nexport type MycoConfig = z.output<typeof MycoConfigSchema>;\nexport type EmbeddingProviderConfig = z.infer<typeof EmbeddingProviderSchema>;\nexport type TaskProviderOverride = z.infer<typeof TaskProviderOverrideSchema>;\nexport type PhaseOverride = z.infer<typeof PhaseOverrideSchema>;\nexport type ContextConfig = z.infer<typeof ContextSchema>;\nexport type BackupConfig = z.infer<typeof BackupSchema>;\nexport type TeamConfig = z.infer<typeof TeamSchema>;\n","/**\n * Config and vault migrations — run once per version, tracked by config_version.\n *\n * Each migration has a version number, a name, and a function that receives\n * the raw parsed YAML doc and the vault directory. Migrations run in order\n * and are skipped if config_version is already past them.\n *\n * To add a new migration:\n * 1. Add an entry to MIGRATIONS with the next version number\n * 2. Write the migrate function — it receives the mutable doc and vaultDir\n * 3. The framework handles version tracking and writing the config back\n */\n\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nexport interface Migration {\n version: number;\n name: string;\n migrate: (doc: Record<string, unknown>, vaultDir: string) => void;\n}\n\n/** Regex matching both quoted and unquoted YAML: type: memory, type: \"memory\", type: 'memory' */\nconst MEMORY_TYPE_PATTERN = /type:\\s*[\"']?memory[\"']?/g;\n\nexport const MIGRATIONS: Migration[] = [\n {\n version: 1,\n name: 'rename-memories-to-spores',\n migrate: (doc, vaultDir) => {\n // Config: rename context.layers.memories → context.layers.spores\n const context = doc.context as Record<string, unknown> | undefined;\n const layers = context?.layers as Record<string, unknown> | undefined;\n if (layers && 'memories' in layers && !('spores' in layers)) {\n layers.spores = layers.memories;\n delete layers.memories;\n }\n\n // Vault: rename memories/ directory → spores/\n const memoriesDir = path.join(vaultDir, 'memories');\n const sporesDir = path.join(vaultDir, 'spores');\n\n if (!fs.existsSync(memoriesDir)) return;\n\n if (fs.existsSync(sporesDir)) {\n // Both exist (interrupted migration) — merge remaining files\n const moveRemaining = (srcDir: string, destDir: string): void => {\n for (const entry of fs.readdirSync(srcDir, { withFileTypes: true })) {\n const srcPath = path.join(srcDir, entry.name);\n const destPath = path.join(destDir, entry.name);\n if (entry.isDirectory()) {\n if (!fs.existsSync(destPath)) fs.mkdirSync(destPath, { recursive: true });\n moveRemaining(srcPath, destPath);\n } else if (!fs.existsSync(destPath)) {\n fs.renameSync(srcPath, destPath);\n }\n }\n };\n moveRemaining(memoriesDir, sporesDir);\n fs.rmSync(memoriesDir, { recursive: true, force: true });\n } else {\n fs.renameSync(memoriesDir, sporesDir);\n }\n\n // Update frontmatter type: memory → type: spore (handles quoted and unquoted)\n const walkUpdate = (dir: string): void => {\n for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {\n const fullPath = path.join(dir, entry.name);\n if (entry.isDirectory()) { walkUpdate(fullPath); continue; }\n if (!entry.name.endsWith('.md')) continue;\n const content = fs.readFileSync(fullPath, 'utf-8');\n MEMORY_TYPE_PATTERN.lastIndex = 0;\n if (MEMORY_TYPE_PATTERN.test(content)) {\n MEMORY_TYPE_PATTERN.lastIndex = 0;\n fs.writeFileSync(fullPath, content.replace(MEMORY_TYPE_PATTERN, 'type: spore'));\n }\n }\n };\n walkUpdate(sporesDir);\n\n // Legacy: update wikilink references in Markdown files (pre-SQLite migration): [[memories/...]] → [[spores/...]]\n const walkLinks = (dir: string): void => {\n for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {\n const fullPath = path.join(dir, entry.name);\n if (entry.isDirectory()) { walkLinks(fullPath); continue; }\n if (!entry.name.endsWith('.md')) continue;\n const content = fs.readFileSync(fullPath, 'utf-8');\n if (content.includes('memories/')) {\n fs.writeFileSync(fullPath, content.replace(/memories\\//g, 'spores/'));\n }\n }\n };\n walkLinks(vaultDir);\n },\n },\n {\n version: 2,\n name: 'consolidation-boolean-to-object',\n migrate: (doc) => {\n const digest = doc.digest as Record<string, unknown> | undefined;\n if (!digest) return;\n\n const consolidation = digest.consolidation;\n if (typeof consolidation === 'boolean') {\n digest.consolidation = { enabled: consolidation, max_tokens: 2048 };\n }\n },\n },\n];\n\n/** Current migration version — the highest version in MIGRATIONS. */\nexport const CURRENT_MIGRATION_VERSION = MIGRATIONS[MIGRATIONS.length - 1]?.version ?? 0;\n\n/**\n * Run all pending migrations on the raw config doc.\n * Returns true if any migrations ran (caller should reindex).\n */\nexport function runMigrations(\n doc: Record<string, unknown>,\n vaultDir: string,\n log?: (message: string) => void,\n): boolean {\n const currentVersion = (doc.config_version as number) ?? 0;\n let ran = false;\n\n for (const migration of MIGRATIONS) {\n if (migration.version <= currentVersion) continue;\n\n migration.migrate(doc, vaultDir);\n doc.config_version = migration.version;\n ran = true;\n }\n\n if (ran) {\n const from = currentVersion;\n const to = (doc.config_version as number) ?? 0;\n log?.(`Migrated config from v${from} to v${to}`);\n }\n\n return ran;\n}\n"],"mappings":"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","names":["fs","path","path","fs","YAML"]}
@@ -10,7 +10,7 @@ import {
10
10
  } from "./chunk-MYX5NCRH.js";
11
11
  import {
12
12
  DaemonClient
13
- } from "./chunk-TIFE27JS.js";
13
+ } from "./chunk-4GAD3XUH.js";
14
14
 
15
15
  // src/symbionts/installer.ts
16
16
  import fs from "fs";
@@ -883,4 +883,4 @@ export {
883
883
  VAULT_GITIGNORE,
884
884
  registerSymbionts
885
885
  };
886
- //# sourceMappingURL=chunk-R52WNQIK.js.map
886
+ //# sourceMappingURL=chunk-P5PM2XBP.js.map
@@ -8,7 +8,7 @@ import {
8
8
  } from "./chunk-RR75ZKEV.js";
9
9
  import {
10
10
  DaemonClient
11
- } from "./chunk-TIFE27JS.js";
11
+ } from "./chunk-4GAD3XUH.js";
12
12
  import {
13
13
  resolveVaultDir
14
14
  } from "./chunk-JTYZRPX5.js";
@@ -39,4 +39,4 @@ async function sendEvent(hookName, buildEvent) {
39
39
  export {
40
40
  sendEvent
41
41
  };
42
- //# sourceMappingURL=chunk-NYG4YIFJ.js.map
42
+ //# sourceMappingURL=chunk-PNMO37IS.js.map
@@ -11,7 +11,7 @@ var cached;
11
11
  function getPluginVersion() {
12
12
  if (cached) return cached;
13
13
  if (true) {
14
- cached = "0.12.7";
14
+ cached = "0.12.8";
15
15
  return cached;
16
16
  }
17
17
  const root = findPackageRoot(path.dirname(fileURLToPath(import.meta.url)));
@@ -32,4 +32,4 @@ function getPluginVersion() {
32
32
  export {
33
33
  getPluginVersion
34
34
  };
35
- //# sourceMappingURL=chunk-46C4ADA4.js.map
35
+ //# sourceMappingURL=chunk-X3UIUHOL.js.map
@@ -1,10 +1,10 @@
1
1
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
2
  import {
3
3
  isProcessAlive
4
- } from "./chunk-R52WNQIK.js";
4
+ } from "./chunk-P5PM2XBP.js";
5
5
  import {
6
6
  loadConfig
7
- } from "./chunk-MAZOVVDU.js";
7
+ } from "./chunk-OAGY5APE.js";
8
8
  import {
9
9
  getDatabase
10
10
  } from "./chunk-MYX5NCRH.js";
@@ -184,4 +184,4 @@ export {
184
184
  getEmbeddingQueueDepth,
185
185
  gatherStats
186
186
  };
187
- //# sourceMappingURL=chunk-SBJKSZZE.js.map
187
+ //# sourceMappingURL=chunk-YJ2AARLV.js.map
@@ -2,14 +2,14 @@
2
2
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
3
3
  import {
4
4
  loadEnv
5
- } from "./chunk-R52WNQIK.js";
5
+ } from "./chunk-P5PM2XBP.js";
6
6
  import "./chunk-SAKJMNSR.js";
7
7
  import "./chunk-LUQBT2Y4.js";
8
8
  import "./chunk-MYX5NCRH.js";
9
- import "./chunk-TIFE27JS.js";
9
+ import "./chunk-4GAD3XUH.js";
10
10
  import "./chunk-PIRWYDOH.js";
11
11
  import "./chunk-S6I62FAH.js";
12
- import "./chunk-46C4ADA4.js";
12
+ import "./chunk-X3UIUHOL.js";
13
13
  import "./chunk-LPUQPDC2.js";
14
14
  import {
15
15
  resolveVaultDir
@@ -53,29 +53,29 @@ async function main() {
53
53
  process.stdout.write(USAGE);
54
54
  return;
55
55
  }
56
- if (cmd === "init") return (await import("./init-US52M3AV.js")).run(args);
56
+ if (cmd === "init") return (await import("./init-VGSYSCGO.js")).run(args);
57
57
  if (cmd === "detect-providers") return (await import("./detect-providers-JFE3QLJI.js")).run(args);
58
58
  if (cmd === "version" || cmd === "--version" || cmd === "-v") {
59
- const { getPluginVersion } = await import("./version-DPPJB3HZ.js");
59
+ const { getPluginVersion } = await import("./version-NXZNTNBT.js");
60
60
  console.log(getPluginVersion());
61
61
  return;
62
62
  }
63
- if (cmd === "mcp") return (await import("./server-YAMYC52G.js")).main();
63
+ if (cmd === "mcp") return (await import("./server-CWGEV6ZU.js")).main();
64
64
  if (cmd === "hook") {
65
65
  const hookName = args[0];
66
66
  const HOOK_DISPATCH = {
67
- "session-start": () => import("./session-start-YVLOEHSJ.js"),
68
- "session-end": () => import("./session-end-MS7QSOOG.js"),
69
- "stop": () => import("./stop-O7ZCYIFZ.js"),
70
- "user-prompt-submit": () => import("./user-prompt-submit-PL4IH4GZ.js"),
71
- "post-tool-use": () => import("./post-tool-use-OAVV3HJ6.js"),
72
- "post-tool-use-failure": () => import("./post-tool-use-failure-DRM7FKKO.js"),
73
- "subagent-start": () => import("./subagent-start-DUHEJR4K.js"),
74
- "subagent-stop": () => import("./subagent-stop-OBPIXEIL.js"),
75
- "stop-failure": () => import("./stop-failure-MRJBYLFU.js"),
76
- "task-completed": () => import("./task-completed-JJOH4QFA.js"),
77
- "pre-compact": () => import("./pre-compact-BU5P4VUK.js"),
78
- "post-compact": () => import("./post-compact-BNBLIHBB.js")
67
+ "session-start": () => import("./session-start-XO47SXGR.js"),
68
+ "session-end": () => import("./session-end-5BCQ5D52.js"),
69
+ "stop": () => import("./stop-O3E6GC6T.js"),
70
+ "user-prompt-submit": () => import("./user-prompt-submit-DLVNAWSW.js"),
71
+ "post-tool-use": () => import("./post-tool-use-3UAJWEBN.js"),
72
+ "post-tool-use-failure": () => import("./post-tool-use-failure-XSKAGZCA.js"),
73
+ "subagent-start": () => import("./subagent-start-NMYHWVLY.js"),
74
+ "subagent-stop": () => import("./subagent-stop-OLBC3G2F.js"),
75
+ "stop-failure": () => import("./stop-failure-PRV6WZH3.js"),
76
+ "task-completed": () => import("./task-completed-4OWLYM2S.js"),
77
+ "pre-compact": () => import("./pre-compact-G6STPYHO.js"),
78
+ "post-compact": () => import("./post-compact-L37MQOOJ.js")
79
79
  };
80
80
  const loader = HOOK_DISPATCH[hookName];
81
81
  if (!loader) {
@@ -84,13 +84,13 @@ async function main() {
84
84
  }
85
85
  return (await loader()).main();
86
86
  }
87
- if (cmd === "daemon") return (await import("./main-2ZCTH6JF.js")).main();
87
+ if (cmd === "daemon") return (await import("./main-PGC7LXKQ.js")).main();
88
88
  if (cmd === "doctor") {
89
89
  const vaultDir2 = resolveVaultDir();
90
- return (await import("./doctor-X5CVDZCL.js")).run(args, vaultDir2);
90
+ return (await import("./doctor-ZOY52EPV.js")).run(args, vaultDir2);
91
91
  }
92
- if (cmd === "update") return (await import("./update-Q3AU7UDC.js")).run(args);
93
- if (cmd === "remove") return (await import("./remove-XOKHXEC5.js")).run(args);
92
+ if (cmd === "update") return (await import("./update-S5Q4I2NY.js")).run(args);
93
+ if (cmd === "remove") return (await import("./remove-XB4LO7MF.js")).run(args);
94
94
  const vaultDir = resolveVaultDir();
95
95
  if (!fs.existsSync(path.join(vaultDir, "myco.yaml"))) {
96
96
  console.error(`No myco.yaml found in ${vaultDir}. Run 'myco init' first.`);
@@ -98,37 +98,37 @@ async function main() {
98
98
  }
99
99
  switch (cmd) {
100
100
  case "config":
101
- return (await import("./config-G3CSGI7P.js")).run(args, vaultDir);
101
+ return (await import("./config-6RQ7FAEV.js")).run(args, vaultDir);
102
102
  case "verify":
103
- return (await import("./verify-D7EDVXO5.js")).run(args, vaultDir);
103
+ return (await import("./verify-MQAANTUR.js")).run(args, vaultDir);
104
104
  case "stats":
105
- return (await import("./stats-HJS43XXW.js")).run(args, vaultDir);
105
+ return (await import("./stats-67GPP6O7.js")).run(args, vaultDir);
106
106
  case "search":
107
- return (await import("./search-W45MUD6X.js")).run(args, vaultDir);
107
+ return (await import("./search-Q5SCSTCQ.js")).run(args, vaultDir);
108
108
  case "vectors":
109
- return (await import("./search-W45MUD6X.js")).runVectors(args, vaultDir);
109
+ return (await import("./search-Q5SCSTCQ.js")).runVectors(args, vaultDir);
110
110
  case "session":
111
- return (await import("./session-VBAXOCYP.js")).run(args, vaultDir);
111
+ return (await import("./session-BGHUYGU6.js")).run(args, vaultDir);
112
112
  case "setup-llm":
113
- return (await import("./setup-llm-X7M3CCZU.js")).run(args, vaultDir);
113
+ return (await import("./setup-llm-CLWMTP6S.js")).run(args, vaultDir);
114
114
  case "setup-digest":
115
115
  return (await import("./setup-digest-4KDSXAIV.js")).run(args, vaultDir);
116
116
  case "agent":
117
- return (await import("./agent-run-WM3PFA3Y.js")).run(args, vaultDir);
117
+ return (await import("./agent-run-W2QFAY6Q.js")).run(args, vaultDir);
118
118
  case "task":
119
- return (await import("./agent-tasks-MONSZFG7.js")).run(args, vaultDir);
119
+ return (await import("./agent-tasks-ARTFCN3Q.js")).run(args, vaultDir);
120
120
  case "team": {
121
121
  const sub = args[0];
122
- if (sub === "init") return (await import("./team-TBS5OILG.js")).teamInit(vaultDir);
123
- if (sub === "upgrade") return (await import("./team-TBS5OILG.js")).teamUpgrade(vaultDir);
122
+ if (sub === "init") return (await import("./team-VU5MGPGG.js")).teamInit(vaultDir);
123
+ if (sub === "upgrade") return (await import("./team-VU5MGPGG.js")).teamUpgrade(vaultDir);
124
124
  console.error("Usage: myco team <init|upgrade>");
125
125
  process.exit(1);
126
126
  break;
127
127
  }
128
128
  case "open":
129
- return (await import("./open-LDE3NMWS.js")).run(args, vaultDir);
129
+ return (await import("./open-7ZH3BLWM.js")).run(args, vaultDir);
130
130
  case "restart":
131
- return (await import("./restart-K7WW6HT5.js")).run(args, vaultDir);
131
+ return (await import("./restart-BVIILGII.js")).run(args, vaultDir);
132
132
  case "logs":
133
133
  return (await import("./logs-LXHPDKUA.js")).run(args, vaultDir);
134
134
  default:
@@ -141,4 +141,4 @@ main().catch((err) => {
141
141
  console.error(`myco: ${err.message}`);
142
142
  process.exit(1);
143
143
  });
144
- //# sourceMappingURL=cli-D6SW3X7M.js.map
144
+ //# sourceMappingURL=cli-XLJCARKC.js.map
@@ -2,14 +2,14 @@ import { createRequire as __cr } from 'node:module'; const require = __cr(import
2
2
  import {
3
3
  DaemonClient,
4
4
  resolveCliEntryPath
5
- } from "./chunk-TIFE27JS.js";
5
+ } from "./chunk-4GAD3XUH.js";
6
6
  import "./chunk-PIRWYDOH.js";
7
7
  import "./chunk-S6I62FAH.js";
8
- import "./chunk-46C4ADA4.js";
8
+ import "./chunk-X3UIUHOL.js";
9
9
  import "./chunk-LPUQPDC2.js";
10
10
  import "./chunk-PZUWP5VK.js";
11
11
  export {
12
12
  DaemonClient,
13
13
  resolveCliEntryPath
14
14
  };
15
- //# sourceMappingURL=client-JHV6WMHB.js.map
15
+ //# sourceMappingURL=client-7ZWAQ4M5.js.map
@@ -5,7 +5,7 @@ import {
5
5
  import {
6
6
  loadConfig,
7
7
  updateConfig
8
- } from "./chunk-MAZOVVDU.js";
8
+ } from "./chunk-OAGY5APE.js";
9
9
  import "./chunk-D7TYRPRM.js";
10
10
  import "./chunk-E4VLWIJC.js";
11
11
  import "./chunk-KH64DHOY.js";
@@ -85,4 +85,4 @@ function parseValue(raw) {
85
85
  export {
86
86
  run
87
87
  };
88
- //# sourceMappingURL=config-G3CSGI7P.js.map
88
+ //# sourceMappingURL=config-6RQ7FAEV.js.map
@@ -2,14 +2,14 @@ import { createRequire as __cr } from 'node:module'; const require = __cr(import
2
2
  import {
3
3
  MYCO_MCP_SERVER_NAME,
4
4
  isProcessAlive
5
- } from "./chunk-R52WNQIK.js";
5
+ } from "./chunk-P5PM2XBP.js";
6
6
  import "./chunk-SAKJMNSR.js";
7
7
  import "./chunk-LUQBT2Y4.js";
8
8
  import "./chunk-MYX5NCRH.js";
9
- import "./chunk-TIFE27JS.js";
9
+ import "./chunk-4GAD3XUH.js";
10
10
  import "./chunk-PIRWYDOH.js";
11
11
  import "./chunk-S6I62FAH.js";
12
- import "./chunk-46C4ADA4.js";
12
+ import "./chunk-X3UIUHOL.js";
13
13
  import "./chunk-LPUQPDC2.js";
14
14
  import "./chunk-PZUWP5VK.js";
15
15
 
@@ -27,7 +27,7 @@ async function checkVault(vaultDir) {
27
27
  return { check: { name: "Vault", status: "fail", detail: `${CONFIG_FILENAME} not found in ${vaultDir}`, fixable: false }, config: null };
28
28
  }
29
29
  try {
30
- const { loadConfig } = await import("./loader-PZ7ZRSA4.js");
30
+ const { loadConfig } = await import("./loader-4FMGOVWF.js");
31
31
  const config = loadConfig(vaultDir);
32
32
  return { check: { name: "Vault", status: "ok", detail: `.myco/ (v${config.version})`, fixable: false }, config };
33
33
  } catch (err) {
@@ -249,4 +249,4 @@ export {
249
249
  run,
250
250
  runChecks
251
251
  };
252
- //# sourceMappingURL=doctor-X5CVDZCL.js.map
252
+ //# sourceMappingURL=doctor-ZOY52EPV.js.map
@@ -54,7 +54,7 @@ import {
54
54
  } from "./chunk-PW5QVY44.js";
55
55
  import {
56
56
  loadConfig
57
- } from "./chunk-MAZOVVDU.js";
57
+ } from "./chunk-OAGY5APE.js";
58
58
  import {
59
59
  getDatabase,
60
60
  initDatabase,
@@ -71,7 +71,7 @@ import {
71
71
  import "./chunk-S6I62FAH.js";
72
72
  import {
73
73
  getPluginVersion
74
- } from "./chunk-46C4ADA4.js";
74
+ } from "./chunk-X3UIUHOL.js";
75
75
  import {
76
76
  findPackageRoot
77
77
  } from "./chunk-LPUQPDC2.js";
@@ -1451,4 +1451,4 @@ export {
1451
1451
  computeWaves,
1452
1452
  runAgent
1453
1453
  };
1454
- //# sourceMappingURL=executor-QRGGW4H7.js.map
1454
+ //# sourceMappingURL=executor-C5VCAJAJ.js.map
@@ -5,7 +5,7 @@ import {
5
5
  import {
6
6
  VAULT_GITIGNORE,
7
7
  registerSymbionts
8
- } from "./chunk-R52WNQIK.js";
8
+ } from "./chunk-P5PM2XBP.js";
9
9
  import {
10
10
  parseStringFlag
11
11
  } from "./chunk-SAKJMNSR.js";
@@ -17,16 +17,16 @@ import {
17
17
  MycoConfigSchema,
18
18
  saveConfig,
19
19
  updateConfig
20
- } from "./chunk-MAZOVVDU.js";
20
+ } from "./chunk-OAGY5APE.js";
21
21
  import {
22
22
  closeDatabase,
23
23
  initDatabase,
24
24
  vaultDbPath
25
25
  } from "./chunk-MYX5NCRH.js";
26
- import "./chunk-TIFE27JS.js";
26
+ import "./chunk-4GAD3XUH.js";
27
27
  import "./chunk-PIRWYDOH.js";
28
28
  import "./chunk-S6I62FAH.js";
29
- import "./chunk-46C4ADA4.js";
29
+ import "./chunk-X3UIUHOL.js";
30
30
  import {
31
31
  detectSymbionts,
32
32
  loadManifests,
@@ -51,7 +51,7 @@ async function run(args) {
51
51
  const nonInteractive = args.includes("--non-interactive");
52
52
  const isInteractive = !nonInteractive && !!process.stdin.isTTY;
53
53
  if (isInteractive) {
54
- const { printBanner } = await import("./init-wizard-CNW3KWND.js");
54
+ const { printBanner } = await import("./init-wizard-VN64L4DY.js");
55
55
  printBanner();
56
56
  }
57
57
  const vaultDir = vaultPath ? vaultPath.startsWith("~/") ? path.join(os.homedir(), vaultPath.slice(2)) : path.resolve(vaultPath) : path.join(resolveVaultDir());
@@ -66,7 +66,7 @@ async function run(args) {
66
66
  let shouldRunWizard = false;
67
67
  if (isInteractive && !hasEmbeddingFlags) {
68
68
  if (alreadyInitialized) {
69
- const { loadConfig } = await import("./loader-PZ7ZRSA4.js");
69
+ const { loadConfig } = await import("./loader-4FMGOVWF.js");
70
70
  const config = loadConfig(vaultDir);
71
71
  const agentProvider = config.agent.provider;
72
72
  const embConfig = config.embedding;
@@ -81,7 +81,7 @@ async function run(args) {
81
81
  }
82
82
  }
83
83
  if (shouldRunWizard) {
84
- const { runWizard, buildEmbeddingConfig, buildAgentConfig } = await import("./init-wizard-CNW3KWND.js");
84
+ const { runWizard, buildEmbeddingConfig, buildAgentConfig } = await import("./init-wizard-VN64L4DY.js");
85
85
  const answers = await runWizard();
86
86
  wizardAnswers = answers;
87
87
  if (answers.embeddingProvider !== "skip") {
@@ -162,7 +162,7 @@ async function run(args) {
162
162
  registerSymbionts(selectedManifests, projectRoot, pkgRoot, "Registered");
163
163
  }
164
164
  }
165
- const { DaemonClient } = await import("./client-JHV6WMHB.js");
165
+ const { DaemonClient } = await import("./client-7ZWAQ4M5.js");
166
166
  const client = new DaemonClient(vaultDir);
167
167
  const daemonHealthy = await client.ensureRunning();
168
168
  let daemonUrl = "";
@@ -192,4 +192,4 @@ async function run(args) {
192
192
  export {
193
193
  run
194
194
  };
195
- //# sourceMappingURL=init-US52M3AV.js.map
195
+ //# sourceMappingURL=init-VGSYSCGO.js.map
@@ -19,7 +19,7 @@ import {
19
19
  import "./chunk-S6I62FAH.js";
20
20
  import {
21
21
  getPluginVersion
22
- } from "./chunk-46C4ADA4.js";
22
+ } from "./chunk-X3UIUHOL.js";
23
23
  import "./chunk-LPUQPDC2.js";
24
24
  import "./chunk-PZUWP5VK.js";
25
25
 
@@ -291,4 +291,4 @@ export {
291
291
  printBanner,
292
292
  runWizard
293
293
  };
294
- //# sourceMappingURL=init-wizard-CNW3KWND.js.map
294
+ //# sourceMappingURL=init-wizard-VN64L4DY.js.map
@@ -6,7 +6,7 @@ import {
6
6
  updateBackupConfig,
7
7
  updateConfig,
8
8
  updateTeamConfig
9
- } from "./chunk-MAZOVVDU.js";
9
+ } from "./chunk-OAGY5APE.js";
10
10
  import "./chunk-D7TYRPRM.js";
11
11
  import "./chunk-E4VLWIJC.js";
12
12
  import "./chunk-KH64DHOY.js";
@@ -19,4 +19,4 @@ export {
19
19
  updateConfig,
20
20
  updateTeamConfig
21
21
  };
22
- //# sourceMappingURL=loader-PZ7ZRSA4.js.map
22
+ //# sourceMappingURL=loader-4FMGOVWF.js.map
@@ -15,7 +15,7 @@ import {
15
15
  getEmbeddingQueueDepth,
16
16
  getUnembedded,
17
17
  markEmbedded
18
- } from "./chunk-SBJKSZZE.js";
18
+ } from "./chunk-YJ2AARLV.js";
19
19
  import {
20
20
  getMachineId
21
21
  } from "./chunk-ENWBFX7F.js";
@@ -79,7 +79,7 @@ import {
79
79
  readSecrets,
80
80
  writeSecret
81
81
  } from "./chunk-RJMXDUMA.js";
82
- import "./chunk-R52WNQIK.js";
82
+ import "./chunk-P5PM2XBP.js";
83
83
  import "./chunk-SAKJMNSR.js";
84
84
  import {
85
85
  LmStudioBackend,
@@ -123,7 +123,7 @@ import {
123
123
  updateBackupConfig,
124
124
  updateConfig,
125
125
  updateTeamConfig
126
- } from "./chunk-MAZOVVDU.js";
126
+ } from "./chunk-OAGY5APE.js";
127
127
  import {
128
128
  closeDatabase,
129
129
  getDatabase,
@@ -132,7 +132,7 @@ import {
132
132
  } from "./chunk-MYX5NCRH.js";
133
133
  import {
134
134
  resolveCliEntryPath
135
- } from "./chunk-TIFE27JS.js";
135
+ } from "./chunk-4GAD3XUH.js";
136
136
  import {
137
137
  CONTENT_HASH_ALGORITHM,
138
138
  DAEMON_EVICT_POLL_MS,
@@ -191,7 +191,7 @@ import {
191
191
  } from "./chunk-S6I62FAH.js";
192
192
  import {
193
193
  getPluginVersion
194
- } from "./chunk-46C4ADA4.js";
194
+ } from "./chunk-X3UIUHOL.js";
195
195
  import {
196
196
  loadManifests
197
197
  } from "./chunk-QFMBZ72S.js";
@@ -4565,6 +4565,7 @@ async function runSessionMaintenance(deps) {
4565
4565
 
4566
4566
  // src/daemon/main.ts
4567
4567
  import fs13 from "fs";
4568
+ import os8 from "os";
4568
4569
  import path15 from "path";
4569
4570
  var AGENT_RUNS_DEFAULT_LIMIT = 50;
4570
4571
  var TOOL_INPUT_STORE_LIMIT = 4e3;
@@ -4833,7 +4834,7 @@ async function main() {
4833
4834
  const running = getRunningRun(DEFAULT_AGENT_ID);
4834
4835
  if (running) return;
4835
4836
  try {
4836
- const { runAgent } = await import("./executor-QRGGW4H7.js");
4837
+ const { runAgent } = await import("./executor-C5VCAJAJ.js");
4837
4838
  runAgent(vaultDir, {
4838
4839
  task: "title-summary",
4839
4840
  instruction: `Process session ${sessionId} only`,
@@ -5514,7 +5515,7 @@ async function main() {
5514
5515
  });
5515
5516
  server.registerRoute("POST", "/api/agent/run", async (req) => {
5516
5517
  const { task, instruction, agentId } = AgentRunBody.parse(req.body);
5517
- const { runAgent } = await import("./executor-QRGGW4H7.js");
5518
+ const { runAgent } = await import("./executor-C5VCAJAJ.js");
5518
5519
  const resultPromise = runAgent(vaultDir, { task, instruction, agentId, embeddingManager });
5519
5520
  const effectiveAgentId = agentId ?? "myco-agent";
5520
5521
  const latestRun = getRunningRun(effectiveAgentId);
@@ -5714,7 +5715,8 @@ async function main() {
5714
5715
  }
5715
5716
  };
5716
5717
  });
5717
- const backupDir = config.backup.dir ? path15.resolve(config.backup.dir) : path15.resolve(vaultDir, "backups");
5718
+ const rawBackupDir = config.backup.dir;
5719
+ const backupDir = rawBackupDir ? path15.resolve(rawBackupDir.startsWith("~/") ? path15.join(os8.homedir(), rawBackupDir.slice(2)) : rawBackupDir) : path15.resolve(vaultDir, "backups");
5718
5720
  const backupHandlers = createBackupHandlers({ db, backupDir, machineId });
5719
5721
  server.registerRoute("POST", "/api/backup", backupHandlers.handleCreateBackup);
5720
5722
  server.registerRoute("GET", "/api/backups", backupHandlers.handleListBackups);
@@ -5850,7 +5852,7 @@ async function main() {
5850
5852
  lastAgentRun = Date.now();
5851
5853
  try {
5852
5854
  logger.info(LOG_KINDS.AGENT_AUTO_RUN, "Unprocessed batches found, starting agent", { count });
5853
- const { runAgent } = await import("./executor-QRGGW4H7.js");
5855
+ const { runAgent } = await import("./executor-C5VCAJAJ.js");
5854
5856
  const runResult = await runAgent(vaultDir, { embeddingManager });
5855
5857
  logger.info(LOG_KINDS.AGENT_RUN, "Agent run completed", { status: runResult.status, runId: runResult.runId });
5856
5858
  } catch (err) {
@@ -5955,4 +5957,4 @@ export {
5955
5957
  handleUserPrompt,
5956
5958
  main
5957
5959
  };
5958
- //# sourceMappingURL=main-2ZCTH6JF.js.map
5960
+ //# sourceMappingURL=main-PGC7LXKQ.js.map