@goondocks/myco 0.12.0 → 0.12.1

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 (81) hide show
  1. package/dist/{agent-run-5KYQJQTY.js → agent-run-ECYDEYOJ.js} +4 -4
  2. package/dist/{agent-tasks-N7BDYKGB.js → agent-tasks-IH77FIDQ.js} +4 -4
  3. package/dist/{chunk-HAG2YDH6.js → chunk-ME3R5B7H.js} +2 -2
  4. package/dist/{chunk-DPJVKNNP.js → chunk-QUSCGEYI.js} +2 -2
  5. package/dist/{chunk-TY7A5OZ5.js → chunk-UIGH6TKR.js} +2 -2
  6. package/dist/{chunk-YRHSTVCZ.js → chunk-YBUXSTBR.js} +21 -2
  7. package/dist/chunk-YBUXSTBR.js.map +1 -0
  8. package/dist/{chunk-RGRPAKEY.js → chunk-ZI3NGD5O.js} +3 -3
  9. package/dist/{chunk-RGRPAKEY.js.map → chunk-ZI3NGD5O.js.map} +1 -1
  10. package/dist/{cli-Y5QZJAHX.js → cli-VPKNXU2Q.js} +31 -31
  11. package/dist/{client-UGM6MG55.js → client-3TCFLWWW.js} +3 -3
  12. package/dist/{doctor-NFWPX75B.js → doctor-4KHMJYMF.js} +4 -4
  13. package/dist/{executor-ESRLUCGU.js → executor-2BZMDCYN.js} +2 -2
  14. package/dist/{init-NMSG24BY.js → init-7YSOIIGM.js} +28 -12
  15. package/dist/{init-NMSG24BY.js.map → init-7YSOIIGM.js.map} +1 -1
  16. package/dist/{init-wizard-WIUCR4JE.js → init-wizard-DAZNFQ7D.js} +2 -2
  17. package/dist/{main-3NTAT7ZD.js → main-TDE4T4MX.js} +8 -8
  18. package/dist/{post-compact-3DDK3OVZ.js → post-compact-3PIKQGFQ.js} +4 -4
  19. package/dist/{post-tool-use-LSG6N3W5.js → post-tool-use-BGTDDWAO.js} +3 -3
  20. package/dist/{post-tool-use-failure-5V3OCLI6.js → post-tool-use-failure-E3J3MDVD.js} +4 -4
  21. package/dist/{pre-compact-F7Y7SDSZ.js → pre-compact-2E6H57AT.js} +4 -4
  22. package/dist/{remove-VCWRNG54.js → remove-PVWK3CHQ.js} +4 -4
  23. package/dist/{restart-YYJ7SH4K.js → restart-FKPX2TJ2.js} +5 -5
  24. package/dist/{search-L7KTBURJ.js → search-QZVYVKAE.js} +4 -4
  25. package/dist/{server-GMRVF2PB.js → server-7LQPO5WY.js} +3 -3
  26. package/dist/{session-V3SNFG7J.js → session-UKCZ7T4P.js} +4 -4
  27. package/dist/{session-end-V3V3GMP2.js → session-end-PXS5ACST.js} +3 -3
  28. package/dist/{session-start-OH7SBUIA.js → session-start-M33PWCJD.js} +3 -3
  29. package/dist/{setup-llm-5AMWEAJ5.js → setup-llm-WNSUUNXA.js} +4 -4
  30. package/dist/src/cli.js +1 -1
  31. package/dist/src/daemon/main.js +1 -1
  32. package/dist/src/hooks/post-tool-use.js +1 -1
  33. package/dist/src/hooks/session-end.js +1 -1
  34. package/dist/src/hooks/session-start.js +1 -1
  35. package/dist/src/hooks/stop.js +1 -1
  36. package/dist/src/hooks/user-prompt-submit.js +1 -1
  37. package/dist/src/mcp/server.js +1 -1
  38. package/dist/src/symbionts/templates/agents-starter.md +5 -0
  39. package/dist/{stats-B2V7P45Y.js → stats-GAG6QBZL.js} +5 -5
  40. package/dist/{stop-D6L2KRHZ.js → stop-RCBDSSPO.js} +3 -3
  41. package/dist/{stop-failure-7OM2AYRX.js → stop-failure-7GSAM3RS.js} +4 -4
  42. package/dist/{subagent-start-MKL5I54S.js → subagent-start-PZHS5UDO.js} +4 -4
  43. package/dist/{subagent-stop-2E7VKZW2.js → subagent-stop-D2YKWNG4.js} +4 -4
  44. package/dist/{task-completed-5QHIT773.js → task-completed-ADUANOQI.js} +4 -4
  45. package/dist/{update-4NVFET56.js → update-L35DSYQL.js} +4 -4
  46. package/dist/{user-prompt-submit-X4BCPMZ4.js → user-prompt-submit-DIZJ7QPB.js} +3 -3
  47. package/dist/{version-GTFCEIJ2.js → version-ORVUUFGG.js} +2 -2
  48. package/package.json +1 -1
  49. package/dist/chunk-YRHSTVCZ.js.map +0 -1
  50. /package/dist/{agent-run-5KYQJQTY.js.map → agent-run-ECYDEYOJ.js.map} +0 -0
  51. /package/dist/{agent-tasks-N7BDYKGB.js.map → agent-tasks-IH77FIDQ.js.map} +0 -0
  52. /package/dist/{chunk-HAG2YDH6.js.map → chunk-ME3R5B7H.js.map} +0 -0
  53. /package/dist/{chunk-DPJVKNNP.js.map → chunk-QUSCGEYI.js.map} +0 -0
  54. /package/dist/{chunk-TY7A5OZ5.js.map → chunk-UIGH6TKR.js.map} +0 -0
  55. /package/dist/{cli-Y5QZJAHX.js.map → cli-VPKNXU2Q.js.map} +0 -0
  56. /package/dist/{client-UGM6MG55.js.map → client-3TCFLWWW.js.map} +0 -0
  57. /package/dist/{doctor-NFWPX75B.js.map → doctor-4KHMJYMF.js.map} +0 -0
  58. /package/dist/{executor-ESRLUCGU.js.map → executor-2BZMDCYN.js.map} +0 -0
  59. /package/dist/{init-wizard-WIUCR4JE.js.map → init-wizard-DAZNFQ7D.js.map} +0 -0
  60. /package/dist/{main-3NTAT7ZD.js.map → main-TDE4T4MX.js.map} +0 -0
  61. /package/dist/{post-compact-3DDK3OVZ.js.map → post-compact-3PIKQGFQ.js.map} +0 -0
  62. /package/dist/{post-tool-use-LSG6N3W5.js.map → post-tool-use-BGTDDWAO.js.map} +0 -0
  63. /package/dist/{post-tool-use-failure-5V3OCLI6.js.map → post-tool-use-failure-E3J3MDVD.js.map} +0 -0
  64. /package/dist/{pre-compact-F7Y7SDSZ.js.map → pre-compact-2E6H57AT.js.map} +0 -0
  65. /package/dist/{remove-VCWRNG54.js.map → remove-PVWK3CHQ.js.map} +0 -0
  66. /package/dist/{restart-YYJ7SH4K.js.map → restart-FKPX2TJ2.js.map} +0 -0
  67. /package/dist/{search-L7KTBURJ.js.map → search-QZVYVKAE.js.map} +0 -0
  68. /package/dist/{server-GMRVF2PB.js.map → server-7LQPO5WY.js.map} +0 -0
  69. /package/dist/{session-V3SNFG7J.js.map → session-UKCZ7T4P.js.map} +0 -0
  70. /package/dist/{session-end-V3V3GMP2.js.map → session-end-PXS5ACST.js.map} +0 -0
  71. /package/dist/{session-start-OH7SBUIA.js.map → session-start-M33PWCJD.js.map} +0 -0
  72. /package/dist/{setup-llm-5AMWEAJ5.js.map → setup-llm-WNSUUNXA.js.map} +0 -0
  73. /package/dist/{stats-B2V7P45Y.js.map → stats-GAG6QBZL.js.map} +0 -0
  74. /package/dist/{stop-D6L2KRHZ.js.map → stop-RCBDSSPO.js.map} +0 -0
  75. /package/dist/{stop-failure-7OM2AYRX.js.map → stop-failure-7GSAM3RS.js.map} +0 -0
  76. /package/dist/{subagent-start-MKL5I54S.js.map → subagent-start-PZHS5UDO.js.map} +0 -0
  77. /package/dist/{subagent-stop-2E7VKZW2.js.map → subagent-stop-D2YKWNG4.js.map} +0 -0
  78. /package/dist/{task-completed-5QHIT773.js.map → task-completed-ADUANOQI.js.map} +0 -0
  79. /package/dist/{update-4NVFET56.js.map → update-L35DSYQL.js.map} +0 -0
  80. /package/dist/{user-prompt-submit-X4BCPMZ4.js.map → user-prompt-submit-DIZJ7QPB.js.map} +0 -0
  81. /package/dist/{version-GTFCEIJ2.js.map → version-ORVUUFGG.js.map} +0 -0
@@ -5,7 +5,7 @@ import {
5
5
  import {
6
6
  VAULT_GITIGNORE,
7
7
  registerSymbionts
8
- } from "./chunk-YRHSTVCZ.js";
8
+ } from "./chunk-YBUXSTBR.js";
9
9
  import {
10
10
  parseStringFlag
11
11
  } from "./chunk-SAKJMNSR.js";
@@ -23,10 +23,10 @@ import {
23
23
  initDatabase,
24
24
  vaultDbPath
25
25
  } from "./chunk-MYX5NCRH.js";
26
- import "./chunk-DPJVKNNP.js";
26
+ import "./chunk-QUSCGEYI.js";
27
27
  import "./chunk-PIRWYDOH.js";
28
28
  import "./chunk-S6I62FAH.js";
29
- import "./chunk-TY7A5OZ5.js";
29
+ import "./chunk-UIGH6TKR.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-WIUCR4JE.js");
54
+ const { printBanner } = await import("./init-wizard-DAZNFQ7D.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());
@@ -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-WIUCR4JE.js");
84
+ const { runWizard, buildEmbeddingConfig, buildAgentConfig } = await import("./init-wizard-DAZNFQ7D.js");
85
85
  const answers = await runWizard();
86
86
  wizardAnswers = answers;
87
87
  if (answers.embeddingProvider !== "skip") {
@@ -162,18 +162,34 @@ async function run(args) {
162
162
  registerSymbionts(selectedManifests, projectRoot, pkgRoot, "Registered");
163
163
  }
164
164
  }
165
+ const { DaemonClient } = await import("./client-3TCFLWWW.js");
166
+ const client = new DaemonClient(vaultDir);
167
+ const daemonHealthy = await client.ensureRunning();
168
+ let daemonUrl = "";
169
+ if (daemonHealthy) {
170
+ try {
171
+ const daemonJson = JSON.parse(fs.readFileSync(path.join(vaultDir, "daemon.json"), "utf-8"));
172
+ daemonUrl = `http://localhost:${daemonJson.port}/`;
173
+ } catch {
174
+ }
175
+ }
176
+ console.log("");
165
177
  if (!alreadyInitialized) {
166
- console.log("");
167
178
  console.log("=== Myco Vault Initialized ===");
168
- console.log(`Path: ${vaultDir}`);
169
- console.log("");
170
- console.log("Next: start a coding session \u2014 Myco will begin capturing automatically.");
171
179
  } else {
172
- console.log("");
173
- console.log("Run `myco doctor` to verify setup health.");
180
+ console.log("=== Myco Updated ===");
181
+ }
182
+ console.log(`Project: ${path.basename(projectRoot)}`);
183
+ console.log(`Vault: ${vaultDir}`);
184
+ if (daemonUrl) {
185
+ console.log(`Dashboard: ${daemonUrl}`);
186
+ } else if (!daemonHealthy) {
187
+ console.log("Dashboard: daemon failed to start \u2014 run `myco doctor` to diagnose");
174
188
  }
189
+ console.log("");
190
+ console.log("Start a coding session \u2014 Myco will begin capturing automatically.");
175
191
  }
176
192
  export {
177
193
  run
178
194
  };
179
- //# sourceMappingURL=init-NMSG24BY.js.map
195
+ //# sourceMappingURL=init-7YSOIIGM.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/cli/init.ts"],"sourcesContent":["import { initDatabase, vaultDbPath, closeDatabase } from '../db/client.js';\nimport { createSchema } from '../db/schema.js';\nimport { resolveVaultDir } from '../vault/resolve.js';\nimport {\n parseStringFlag,\n VAULT_GITIGNORE,\n registerSymbionts,\n} from './shared.js';\nimport { detectSymbionts, loadManifests, resolvePackageRoot } from '../symbionts/detect.js';\nimport { MycoConfigSchema } from '../config/schema.js';\nimport { updateConfig, saveConfig } from '../config/loader.js';\nimport { writeSecret } from '../config/secrets.js';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport os from 'node:os';\n\n/** Directories that must exist inside a vault for correct operation. */\nconst VAULT_REQUIRED_DIRS = ['buffer', 'attachments', 'logs'] as const;\n\nexport async function run(args: string[]): Promise<void> {\n const vaultPath = parseStringFlag(args, '--vault');\n const nonInteractive = args.includes('--non-interactive');\n const isInteractive = !nonInteractive && !!process.stdin.isTTY;\n\n // Show banner in interactive mode\n if (isInteractive) {\n const { printBanner } = await import('./init-wizard.js');\n printBanner();\n }\n\n // Resolve vault directory\n const vaultDir = vaultPath\n ? (vaultPath.startsWith('~/') ? path.join(os.homedir(), vaultPath.slice(2)) : path.resolve(vaultPath))\n : path.join(resolveVaultDir());\n\n const alreadyInitialized = fs.existsSync(path.join(vaultDir, 'myco.yaml'));\n\n // --- Wizard: runs for both new and existing vaults ---\n\n const embeddingProvider = parseStringFlag(args, '--embedding-provider');\n const embeddingModel = parseStringFlag(args, '--embedding-model');\n const embeddingUrl = parseStringFlag(args, '--embedding-url');\n const hasEmbeddingFlags = !!(embeddingProvider || embeddingModel || embeddingUrl);\n\n let wizardOverrides: Record<string, unknown> = {};\n let agentOverrides: Record<string, unknown> | null = null;\n let wizardAnswers: Awaited<ReturnType<typeof import('./init-wizard.js').runWizard>> | null = null;\n\n // Determine if the wizard should run\n let shouldRunWizard = false;\n if (isInteractive && !hasEmbeddingFlags) {\n if (alreadyInitialized) {\n const { loadConfig } = await import('../config/loader.js');\n const config = loadConfig(vaultDir);\n const agentProvider = config.agent.provider;\n const embConfig = config.embedding;\n\n console.log(` Vault: ${vaultDir}`);\n console.log(` Intelligence: ${agentProvider?.type ?? 'not configured'}${agentProvider?.model ? ` / ${agentProvider.model}` : ''}`);\n console.log(` Embeddings: ${embConfig.provider} / ${embConfig.model}`);\n console.log('');\n\n const { confirm } = await import('@inquirer/prompts');\n shouldRunWizard = await confirm({ message: 'Reconfigure providers?', default: false });\n } else {\n shouldRunWizard = true;\n }\n }\n\n if (shouldRunWizard) {\n const { runWizard, buildEmbeddingConfig, buildAgentConfig } = await import('./init-wizard.js');\n const answers = await runWizard();\n wizardAnswers = answers;\n if (answers.embeddingProvider !== 'skip') {\n wizardOverrides = { ...buildEmbeddingConfig(answers) };\n }\n agentOverrides = buildAgentConfig(answers);\n }\n\n // --- Vault creation (new vaults only) ---\n\n if (!alreadyInitialized) {\n console.log(`Initializing Myco vault at ${vaultDir}`);\n\n for (const dir of VAULT_REQUIRED_DIRS) {\n fs.mkdirSync(path.join(vaultDir, dir), { recursive: true });\n }\n\n // Build embedding config from flags (flags take precedence over wizard)\n const embeddingOverrides: Record<string, unknown> = { ...wizardOverrides };\n if (embeddingProvider) embeddingOverrides.provider = embeddingProvider;\n if (embeddingModel) embeddingOverrides.model = embeddingModel;\n if (embeddingUrl) embeddingOverrides.base_url = embeddingUrl;\n\n const config = MycoConfigSchema.parse({\n version: 3,\n ...(Object.keys(embeddingOverrides).length > 0 ? { embedding: embeddingOverrides } : {}),\n ...(agentOverrides ? { agent: agentOverrides } : {}),\n });\n\n saveConfig(vaultDir, config);\n fs.writeFileSync(path.join(vaultDir, '.gitignore'), VAULT_GITIGNORE, 'utf-8');\n\n const db = initDatabase(vaultDbPath(vaultDir));\n createSchema(db);\n closeDatabase();\n }\n\n // --- Update existing vault config if wizard ran ---\n\n if (alreadyInitialized && (Object.keys(wizardOverrides).length > 0 || agentOverrides)) {\n updateConfig(vaultDir, (config) => {\n let updated = config;\n if (Object.keys(wizardOverrides).length > 0) {\n // Full replacement — avoids stale fields (e.g., old base_url) leaking when switching providers\n updated = { ...updated, embedding: wizardOverrides as typeof updated.embedding };\n }\n if (agentOverrides) {\n updated = {\n ...updated,\n agent: { ...updated.agent, ...agentOverrides },\n };\n }\n return updated;\n });\n console.log(' Updated myco.yaml');\n }\n\n // --- Store embedding API key in secrets.env ---\n\n if (wizardAnswers?.embeddingApiKey) {\n const { OPENROUTER_API_KEY_ENV } = await import('./providers/openrouter.js');\n const { OPENAI_API_KEY_ENV } = await import('./providers/openai-embeddings.js');\n const envVarName = wizardAnswers.embeddingProvider === 'openrouter'\n ? OPENROUTER_API_KEY_ENV\n : OPENAI_API_KEY_ENV;\n writeSecret(vaultDir, envVarName, wizardAnswers.embeddingApiKey);\n }\n\n // --- Symbiont selection and registration ---\n\n const projectRoot = path.dirname(vaultDir);\n const allManifests = loadManifests();\n const detected = detectSymbionts(projectRoot);\n const detectedNames = new Set(detected.map((d) => d.manifest.name));\n\n if (allManifests.length > 0) {\n // Interactive: let user choose which agents to configure\n let selectedManifests = allManifests.filter((m) => detectedNames.has(m.name));\n\n if (isInteractive) {\n const { checkbox } = await import('@inquirer/prompts');\n const choices = allManifests.map((m) => {\n const det = detected.find((d) => d.manifest.name === m.name);\n const hint = det\n ? [det.binaryFound && 'detected', det.configDirFound && `${m.configDir}/ exists`].filter(Boolean).join(', ')\n : '';\n return {\n value: m.name,\n name: hint ? `${m.displayName} (${hint})` : m.displayName,\n checked: detectedNames.has(m.name),\n };\n });\n const selectedNames = await checkbox({\n message: 'Configure agents',\n choices,\n });\n selectedManifests = allManifests.filter((m) => selectedNames.includes(m.name));\n if (selectedManifests.length === 0) {\n console.log(' Skipped agent configuration.');\n }\n }\n\n if (selectedManifests.length > 0) {\n const pkgRoot = resolvePackageRoot();\n registerSymbionts(selectedManifests, projectRoot, pkgRoot, 'Registered');\n }\n }\n\n // --- Summary ---\n\n if (!alreadyInitialized) {\n console.log('');\n console.log('=== Myco Vault Initialized ===');\n console.log(`Path: ${vaultDir}`);\n console.log('');\n console.log('Next: start a coding session — Myco will begin capturing automatically.');\n } else {\n console.log('');\n console.log('Run `myco doctor` to verify setup health.');\n }\n}\n\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/cli/init.ts"],"sourcesContent":["import { initDatabase, vaultDbPath, closeDatabase } from '../db/client.js';\nimport { createSchema } from '../db/schema.js';\nimport { resolveVaultDir } from '../vault/resolve.js';\nimport {\n parseStringFlag,\n VAULT_GITIGNORE,\n registerSymbionts,\n} from './shared.js';\nimport { detectSymbionts, loadManifests, resolvePackageRoot } from '../symbionts/detect.js';\nimport { MycoConfigSchema } from '../config/schema.js';\nimport { updateConfig, saveConfig } from '../config/loader.js';\nimport { writeSecret } from '../config/secrets.js';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport os from 'node:os';\n\n/** Directories that must exist inside a vault for correct operation. */\nconst VAULT_REQUIRED_DIRS = ['buffer', 'attachments', 'logs'] as const;\n\nexport async function run(args: string[]): Promise<void> {\n const vaultPath = parseStringFlag(args, '--vault');\n const nonInteractive = args.includes('--non-interactive');\n const isInteractive = !nonInteractive && !!process.stdin.isTTY;\n\n // Show banner in interactive mode\n if (isInteractive) {\n const { printBanner } = await import('./init-wizard.js');\n printBanner();\n }\n\n // Resolve vault directory\n const vaultDir = vaultPath\n ? (vaultPath.startsWith('~/') ? path.join(os.homedir(), vaultPath.slice(2)) : path.resolve(vaultPath))\n : path.join(resolveVaultDir());\n\n const alreadyInitialized = fs.existsSync(path.join(vaultDir, 'myco.yaml'));\n\n // --- Wizard: runs for both new and existing vaults ---\n\n const embeddingProvider = parseStringFlag(args, '--embedding-provider');\n const embeddingModel = parseStringFlag(args, '--embedding-model');\n const embeddingUrl = parseStringFlag(args, '--embedding-url');\n const hasEmbeddingFlags = !!(embeddingProvider || embeddingModel || embeddingUrl);\n\n let wizardOverrides: Record<string, unknown> = {};\n let agentOverrides: Record<string, unknown> | null = null;\n let wizardAnswers: Awaited<ReturnType<typeof import('./init-wizard.js').runWizard>> | null = null;\n\n // Determine if the wizard should run\n let shouldRunWizard = false;\n if (isInteractive && !hasEmbeddingFlags) {\n if (alreadyInitialized) {\n const { loadConfig } = await import('../config/loader.js');\n const config = loadConfig(vaultDir);\n const agentProvider = config.agent.provider;\n const embConfig = config.embedding;\n\n console.log(` Vault: ${vaultDir}`);\n console.log(` Intelligence: ${agentProvider?.type ?? 'not configured'}${agentProvider?.model ? ` / ${agentProvider.model}` : ''}`);\n console.log(` Embeddings: ${embConfig.provider} / ${embConfig.model}`);\n console.log('');\n\n const { confirm } = await import('@inquirer/prompts');\n shouldRunWizard = await confirm({ message: 'Reconfigure providers?', default: false });\n } else {\n shouldRunWizard = true;\n }\n }\n\n if (shouldRunWizard) {\n const { runWizard, buildEmbeddingConfig, buildAgentConfig } = await import('./init-wizard.js');\n const answers = await runWizard();\n wizardAnswers = answers;\n if (answers.embeddingProvider !== 'skip') {\n wizardOverrides = { ...buildEmbeddingConfig(answers) };\n }\n agentOverrides = buildAgentConfig(answers);\n }\n\n // --- Vault creation (new vaults only) ---\n\n if (!alreadyInitialized) {\n console.log(`Initializing Myco vault at ${vaultDir}`);\n\n for (const dir of VAULT_REQUIRED_DIRS) {\n fs.mkdirSync(path.join(vaultDir, dir), { recursive: true });\n }\n\n // Build embedding config from flags (flags take precedence over wizard)\n const embeddingOverrides: Record<string, unknown> = { ...wizardOverrides };\n if (embeddingProvider) embeddingOverrides.provider = embeddingProvider;\n if (embeddingModel) embeddingOverrides.model = embeddingModel;\n if (embeddingUrl) embeddingOverrides.base_url = embeddingUrl;\n\n const config = MycoConfigSchema.parse({\n version: 3,\n ...(Object.keys(embeddingOverrides).length > 0 ? { embedding: embeddingOverrides } : {}),\n ...(agentOverrides ? { agent: agentOverrides } : {}),\n });\n\n saveConfig(vaultDir, config);\n fs.writeFileSync(path.join(vaultDir, '.gitignore'), VAULT_GITIGNORE, 'utf-8');\n\n const db = initDatabase(vaultDbPath(vaultDir));\n createSchema(db);\n closeDatabase();\n }\n\n // --- Update existing vault config if wizard ran ---\n\n if (alreadyInitialized && (Object.keys(wizardOverrides).length > 0 || agentOverrides)) {\n updateConfig(vaultDir, (config) => {\n let updated = config;\n if (Object.keys(wizardOverrides).length > 0) {\n // Full replacement — avoids stale fields (e.g., old base_url) leaking when switching providers\n updated = { ...updated, embedding: wizardOverrides as typeof updated.embedding };\n }\n if (agentOverrides) {\n updated = {\n ...updated,\n agent: { ...updated.agent, ...agentOverrides },\n };\n }\n return updated;\n });\n console.log(' Updated myco.yaml');\n }\n\n // --- Store embedding API key in secrets.env ---\n\n if (wizardAnswers?.embeddingApiKey) {\n const { OPENROUTER_API_KEY_ENV } = await import('./providers/openrouter.js');\n const { OPENAI_API_KEY_ENV } = await import('./providers/openai-embeddings.js');\n const envVarName = wizardAnswers.embeddingProvider === 'openrouter'\n ? OPENROUTER_API_KEY_ENV\n : OPENAI_API_KEY_ENV;\n writeSecret(vaultDir, envVarName, wizardAnswers.embeddingApiKey);\n }\n\n // --- Symbiont selection and registration ---\n\n const projectRoot = path.dirname(vaultDir);\n const allManifests = loadManifests();\n const detected = detectSymbionts(projectRoot);\n const detectedNames = new Set(detected.map((d) => d.manifest.name));\n\n if (allManifests.length > 0) {\n // Interactive: let user choose which agents to configure\n let selectedManifests = allManifests.filter((m) => detectedNames.has(m.name));\n\n if (isInteractive) {\n const { checkbox } = await import('@inquirer/prompts');\n const choices = allManifests.map((m) => {\n const det = detected.find((d) => d.manifest.name === m.name);\n const hint = det\n ? [det.binaryFound && 'detected', det.configDirFound && `${m.configDir}/ exists`].filter(Boolean).join(', ')\n : '';\n return {\n value: m.name,\n name: hint ? `${m.displayName} (${hint})` : m.displayName,\n checked: detectedNames.has(m.name),\n };\n });\n const selectedNames = await checkbox({\n message: 'Configure agents',\n choices,\n });\n selectedManifests = allManifests.filter((m) => selectedNames.includes(m.name));\n if (selectedManifests.length === 0) {\n console.log(' Skipped agent configuration.');\n }\n }\n\n if (selectedManifests.length > 0) {\n const pkgRoot = resolvePackageRoot();\n registerSymbionts(selectedManifests, projectRoot, pkgRoot, 'Registered');\n }\n }\n\n // --- Start daemon and show summary ---\n\n const { DaemonClient } = await import('../hooks/client.js');\n const client = new DaemonClient(vaultDir);\n const daemonHealthy = await client.ensureRunning();\n\n let daemonUrl = '';\n if (daemonHealthy) {\n try {\n const daemonJson = JSON.parse(fs.readFileSync(path.join(vaultDir, 'daemon.json'), 'utf-8'));\n daemonUrl = `http://localhost:${daemonJson.port}/`;\n } catch { /* daemon.json not readable — skip URL */ }\n }\n\n console.log('');\n if (!alreadyInitialized) {\n console.log('=== Myco Vault Initialized ===');\n } else {\n console.log('=== Myco Updated ===');\n }\n console.log(`Project: ${path.basename(projectRoot)}`);\n console.log(`Vault: ${vaultDir}`);\n if (daemonUrl) {\n console.log(`Dashboard: ${daemonUrl}`);\n } else if (!daemonHealthy) {\n console.log('Dashboard: daemon failed to start — run `myco doctor` to diagnose');\n }\n console.log('');\n console.log('Start a coding session — Myco will begin capturing automatically.');\n}\n\n"],"mappings":"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","names":[]}
@@ -19,7 +19,7 @@ import {
19
19
  import "./chunk-S6I62FAH.js";
20
20
  import {
21
21
  getPluginVersion
22
- } from "./chunk-TY7A5OZ5.js";
22
+ } from "./chunk-UIGH6TKR.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-WIUCR4JE.js.map
294
+ //# sourceMappingURL=init-wizard-DAZNFQ7D.js.map
@@ -15,7 +15,7 @@ import {
15
15
  getEmbeddingQueueDepth,
16
16
  getUnembedded,
17
17
  markEmbedded
18
- } from "./chunk-RGRPAKEY.js";
18
+ } from "./chunk-ZI3NGD5O.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-YRHSTVCZ.js";
82
+ import "./chunk-YBUXSTBR.js";
83
83
  import "./chunk-SAKJMNSR.js";
84
84
  import {
85
85
  LmStudioBackend,
@@ -132,7 +132,7 @@ import {
132
132
  } from "./chunk-MYX5NCRH.js";
133
133
  import {
134
134
  resolveCliEntryPath
135
- } from "./chunk-DPJVKNNP.js";
135
+ } from "./chunk-QUSCGEYI.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-TY7A5OZ5.js";
194
+ } from "./chunk-UIGH6TKR.js";
195
195
  import {
196
196
  loadManifests
197
197
  } from "./chunk-QFMBZ72S.js";
@@ -4832,7 +4832,7 @@ async function main() {
4832
4832
  const running = getRunningRun(DEFAULT_AGENT_ID);
4833
4833
  if (running) return;
4834
4834
  try {
4835
- const { runAgent } = await import("./executor-ESRLUCGU.js");
4835
+ const { runAgent } = await import("./executor-2BZMDCYN.js");
4836
4836
  runAgent(vaultDir, {
4837
4837
  task: "title-summary",
4838
4838
  instruction: `Process session ${sessionId} only`,
@@ -5513,7 +5513,7 @@ async function main() {
5513
5513
  });
5514
5514
  server.registerRoute("POST", "/api/agent/run", async (req) => {
5515
5515
  const { task, instruction, agentId } = AgentRunBody.parse(req.body);
5516
- const { runAgent } = await import("./executor-ESRLUCGU.js");
5516
+ const { runAgent } = await import("./executor-2BZMDCYN.js");
5517
5517
  const resultPromise = runAgent(vaultDir, { task, instruction, agentId, embeddingManager });
5518
5518
  const effectiveAgentId = agentId ?? "myco-agent";
5519
5519
  const latestRun = getRunningRun(effectiveAgentId);
@@ -5849,7 +5849,7 @@ async function main() {
5849
5849
  lastAgentRun = Date.now();
5850
5850
  try {
5851
5851
  logger.info(LOG_KINDS.AGENT_AUTO_RUN, "Unprocessed batches found, starting agent", { count });
5852
- const { runAgent } = await import("./executor-ESRLUCGU.js");
5852
+ const { runAgent } = await import("./executor-2BZMDCYN.js");
5853
5853
  const runResult = await runAgent(vaultDir, { embeddingManager });
5854
5854
  logger.info(LOG_KINDS.AGENT_RUN, "Agent run completed", { status: runResult.status, runId: runResult.runId });
5855
5855
  } catch (err) {
@@ -5954,4 +5954,4 @@ export {
5954
5954
  handleUserPrompt,
5955
5955
  main
5956
5956
  };
5957
- //# sourceMappingURL=main-3NTAT7ZD.js.map
5957
+ //# sourceMappingURL=main-TDE4T4MX.js.map
@@ -1,13 +1,13 @@
1
1
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
2
  import {
3
3
  sendEvent
4
- } from "./chunk-HAG2YDH6.js";
4
+ } from "./chunk-ME3R5B7H.js";
5
5
  import "./chunk-V7XG6V6C.js";
6
6
  import "./chunk-RR75ZKEV.js";
7
- import "./chunk-DPJVKNNP.js";
7
+ import "./chunk-QUSCGEYI.js";
8
8
  import "./chunk-PIRWYDOH.js";
9
9
  import "./chunk-S6I62FAH.js";
10
- import "./chunk-TY7A5OZ5.js";
10
+ import "./chunk-UIGH6TKR.js";
11
11
  import "./chunk-QFMBZ72S.js";
12
12
  import "./chunk-LPUQPDC2.js";
13
13
  import "./chunk-D7TYRPRM.js";
@@ -27,4 +27,4 @@ async function main() {
27
27
  export {
28
28
  main
29
29
  };
30
- //# sourceMappingURL=post-compact-3DDK3OVZ.js.map
30
+ //# sourceMappingURL=post-compact-3PIKQGFQ.js.map
@@ -8,12 +8,12 @@ import {
8
8
  } from "./chunk-RR75ZKEV.js";
9
9
  import {
10
10
  DaemonClient
11
- } from "./chunk-DPJVKNNP.js";
11
+ } from "./chunk-QUSCGEYI.js";
12
12
  import {
13
13
  TOOL_OUTPUT_PREVIEW_CHARS
14
14
  } from "./chunk-PIRWYDOH.js";
15
15
  import "./chunk-S6I62FAH.js";
16
- import "./chunk-TY7A5OZ5.js";
16
+ import "./chunk-UIGH6TKR.js";
17
17
  import "./chunk-QFMBZ72S.js";
18
18
  import "./chunk-LPUQPDC2.js";
19
19
  import "./chunk-D7TYRPRM.js";
@@ -60,4 +60,4 @@ async function main() {
60
60
  export {
61
61
  main
62
62
  };
63
- //# sourceMappingURL=post-tool-use-LSG6N3W5.js.map
63
+ //# sourceMappingURL=post-tool-use-BGTDDWAO.js.map
@@ -1,13 +1,13 @@
1
1
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
2
  import {
3
3
  sendEvent
4
- } from "./chunk-HAG2YDH6.js";
4
+ } from "./chunk-ME3R5B7H.js";
5
5
  import "./chunk-V7XG6V6C.js";
6
6
  import "./chunk-RR75ZKEV.js";
7
- import "./chunk-DPJVKNNP.js";
7
+ import "./chunk-QUSCGEYI.js";
8
8
  import "./chunk-PIRWYDOH.js";
9
9
  import "./chunk-S6I62FAH.js";
10
- import "./chunk-TY7A5OZ5.js";
10
+ import "./chunk-UIGH6TKR.js";
11
11
  import "./chunk-QFMBZ72S.js";
12
12
  import "./chunk-LPUQPDC2.js";
13
13
  import "./chunk-D7TYRPRM.js";
@@ -29,4 +29,4 @@ async function main() {
29
29
  export {
30
30
  main
31
31
  };
32
- //# sourceMappingURL=post-tool-use-failure-5V3OCLI6.js.map
32
+ //# sourceMappingURL=post-tool-use-failure-E3J3MDVD.js.map
@@ -1,13 +1,13 @@
1
1
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
2
  import {
3
3
  sendEvent
4
- } from "./chunk-HAG2YDH6.js";
4
+ } from "./chunk-ME3R5B7H.js";
5
5
  import "./chunk-V7XG6V6C.js";
6
6
  import "./chunk-RR75ZKEV.js";
7
- import "./chunk-DPJVKNNP.js";
7
+ import "./chunk-QUSCGEYI.js";
8
8
  import "./chunk-PIRWYDOH.js";
9
9
  import "./chunk-S6I62FAH.js";
10
- import "./chunk-TY7A5OZ5.js";
10
+ import "./chunk-UIGH6TKR.js";
11
11
  import "./chunk-QFMBZ72S.js";
12
12
  import "./chunk-LPUQPDC2.js";
13
13
  import "./chunk-D7TYRPRM.js";
@@ -26,4 +26,4 @@ async function main() {
26
26
  export {
27
27
  main
28
28
  };
29
- //# sourceMappingURL=pre-compact-F7Y7SDSZ.js.map
29
+ //# sourceMappingURL=pre-compact-2E6H57AT.js.map
@@ -2,14 +2,14 @@ import { createRequire as __cr } from 'node:module'; const require = __cr(import
2
2
  import {
3
3
  SymbiontInstaller,
4
4
  isProcessAlive
5
- } from "./chunk-YRHSTVCZ.js";
5
+ } from "./chunk-YBUXSTBR.js";
6
6
  import "./chunk-SAKJMNSR.js";
7
7
  import "./chunk-LUQBT2Y4.js";
8
8
  import "./chunk-MYX5NCRH.js";
9
- import "./chunk-DPJVKNNP.js";
9
+ import "./chunk-QUSCGEYI.js";
10
10
  import "./chunk-PIRWYDOH.js";
11
11
  import "./chunk-S6I62FAH.js";
12
- import "./chunk-TY7A5OZ5.js";
12
+ import "./chunk-UIGH6TKR.js";
13
13
  import {
14
14
  loadManifests,
15
15
  resolvePackageRoot
@@ -89,4 +89,4 @@ async function run(args) {
89
89
  export {
90
90
  run
91
91
  };
92
- //# sourceMappingURL=remove-VCWRNG54.js.map
92
+ //# sourceMappingURL=remove-PVWK3CHQ.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
  isProcessAlive
4
- } from "./chunk-YRHSTVCZ.js";
4
+ } from "./chunk-YBUXSTBR.js";
5
5
  import "./chunk-SAKJMNSR.js";
6
6
  import "./chunk-LUQBT2Y4.js";
7
7
  import "./chunk-MYX5NCRH.js";
8
- import "./chunk-DPJVKNNP.js";
8
+ import "./chunk-QUSCGEYI.js";
9
9
  import "./chunk-PIRWYDOH.js";
10
10
  import "./chunk-S6I62FAH.js";
11
- import "./chunk-TY7A5OZ5.js";
11
+ import "./chunk-UIGH6TKR.js";
12
12
  import "./chunk-LPUQPDC2.js";
13
13
  import "./chunk-PZUWP5VK.js";
14
14
 
@@ -33,7 +33,7 @@ async function run(_args, vaultDir) {
33
33
  } catch {
34
34
  }
35
35
  }
36
- const { DaemonClient } = await import("./client-UGM6MG55.js");
36
+ const { DaemonClient } = await import("./client-3TCFLWWW.js");
37
37
  const client = new DaemonClient(vaultDir);
38
38
  console.log("Waiting for health check...");
39
39
  const healthy = await client.ensureRunning();
@@ -52,4 +52,4 @@ async function run(_args, vaultDir) {
52
52
  export {
53
53
  run
54
54
  };
55
- //# sourceMappingURL=restart-YYJ7SH4K.js.map
55
+ //# sourceMappingURL=restart-FKPX2TJ2.js.map
@@ -5,16 +5,16 @@ import {
5
5
  import {
6
6
  connectToDaemon,
7
7
  initVaultDb
8
- } from "./chunk-YRHSTVCZ.js";
8
+ } from "./chunk-YBUXSTBR.js";
9
9
  import "./chunk-SAKJMNSR.js";
10
10
  import "./chunk-LUQBT2Y4.js";
11
11
  import "./chunk-MYX5NCRH.js";
12
- import "./chunk-DPJVKNNP.js";
12
+ import "./chunk-QUSCGEYI.js";
13
13
  import {
14
14
  CONTENT_SNIPPET_CHARS
15
15
  } from "./chunk-PIRWYDOH.js";
16
16
  import "./chunk-S6I62FAH.js";
17
- import "./chunk-TY7A5OZ5.js";
17
+ import "./chunk-UIGH6TKR.js";
18
18
  import "./chunk-LPUQPDC2.js";
19
19
  import "./chunk-PZUWP5VK.js";
20
20
 
@@ -88,4 +88,4 @@ export {
88
88
  run,
89
89
  runVectors
90
90
  };
91
- //# sourceMappingURL=search-L7KTBURJ.js.map
91
+ //# sourceMappingURL=search-QZVYVKAE.js.map
@@ -2,7 +2,7 @@ import { createRequire as __cr } from 'node:module'; const require = __cr(import
2
2
  import "./chunk-IB76KGBY.js";
3
3
  import {
4
4
  DaemonClient
5
- } from "./chunk-DPJVKNNP.js";
5
+ } from "./chunk-QUSCGEYI.js";
6
6
  import {
7
7
  DAEMON_CLIENT_TIMEOUT_MS,
8
8
  MCP_SEARCH_DEFAULT_LIMIT,
@@ -11,7 +11,7 @@ import {
11
11
  import "./chunk-S6I62FAH.js";
12
12
  import {
13
13
  getPluginVersion
14
- } from "./chunk-TY7A5OZ5.js";
14
+ } from "./chunk-UIGH6TKR.js";
15
15
  import "./chunk-LPUQPDC2.js";
16
16
  import "./chunk-E4VLWIJC.js";
17
17
  import {
@@ -14533,4 +14533,4 @@ export {
14533
14533
  createMycoServer,
14534
14534
  main
14535
14535
  };
14536
- //# sourceMappingURL=server-GMRVF2PB.js.map
14536
+ //# sourceMappingURL=server-7LQPO5WY.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
  initVaultDb
4
- } from "./chunk-YRHSTVCZ.js";
4
+ } from "./chunk-YBUXSTBR.js";
5
5
  import "./chunk-SAKJMNSR.js";
6
6
  import "./chunk-LUQBT2Y4.js";
7
7
  import {
@@ -10,10 +10,10 @@ import {
10
10
  } from "./chunk-JROOQQH6.js";
11
11
  import "./chunk-4VSNNMEU.js";
12
12
  import "./chunk-MYX5NCRH.js";
13
- import "./chunk-DPJVKNNP.js";
13
+ import "./chunk-QUSCGEYI.js";
14
14
  import "./chunk-PIRWYDOH.js";
15
15
  import "./chunk-S6I62FAH.js";
16
- import "./chunk-TY7A5OZ5.js";
16
+ import "./chunk-UIGH6TKR.js";
17
17
  import "./chunk-LPUQPDC2.js";
18
18
  import "./chunk-PZUWP5VK.js";
19
19
 
@@ -66,4 +66,4 @@ ${target.summary}`);
66
66
  export {
67
67
  run
68
68
  };
69
- //# sourceMappingURL=session-V3SNFG7J.js.map
69
+ //# sourceMappingURL=session-UKCZ7T4P.js.map
@@ -5,10 +5,10 @@ import {
5
5
  } from "./chunk-RR75ZKEV.js";
6
6
  import {
7
7
  DaemonClient
8
- } from "./chunk-DPJVKNNP.js";
8
+ } from "./chunk-QUSCGEYI.js";
9
9
  import "./chunk-PIRWYDOH.js";
10
10
  import "./chunk-S6I62FAH.js";
11
- import "./chunk-TY7A5OZ5.js";
11
+ import "./chunk-UIGH6TKR.js";
12
12
  import "./chunk-QFMBZ72S.js";
13
13
  import "./chunk-LPUQPDC2.js";
14
14
  import "./chunk-D7TYRPRM.js";
@@ -40,4 +40,4 @@ async function main() {
40
40
  export {
41
41
  main
42
42
  };
43
- //# sourceMappingURL=session-end-V3V3GMP2.js.map
43
+ //# sourceMappingURL=session-end-PXS5ACST.js.map
@@ -23,7 +23,7 @@ import {
23
23
  } from "./chunk-RR75ZKEV.js";
24
24
  import {
25
25
  DaemonClient
26
- } from "./chunk-DPJVKNNP.js";
26
+ } from "./chunk-QUSCGEYI.js";
27
27
  import {
28
28
  CONTEXT_SESSION_PREVIEW_CHARS,
29
29
  CONTEXT_SPORE_PREVIEW_CHARS,
@@ -31,7 +31,7 @@ import {
31
31
  estimateTokens
32
32
  } from "./chunk-PIRWYDOH.js";
33
33
  import "./chunk-S6I62FAH.js";
34
- import "./chunk-TY7A5OZ5.js";
34
+ import "./chunk-UIGH6TKR.js";
35
35
  import "./chunk-QFMBZ72S.js";
36
36
  import "./chunk-LPUQPDC2.js";
37
37
  import "./chunk-D7TYRPRM.js";
@@ -170,4 +170,4 @@ async function main() {
170
170
  export {
171
171
  main
172
172
  };
173
- //# sourceMappingURL=session-start-OH7SBUIA.js.map
173
+ //# sourceMappingURL=session-start-M33PWCJD.js.map
@@ -2,7 +2,7 @@ import { createRequire as __cr } from 'node:module'; const require = __cr(import
2
2
  import {
3
3
  withEmbedding
4
4
  } from "./chunk-M5XWW7UI.js";
5
- import "./chunk-YRHSTVCZ.js";
5
+ import "./chunk-YBUXSTBR.js";
6
6
  import {
7
7
  parseStringFlag
8
8
  } from "./chunk-SAKJMNSR.js";
@@ -12,10 +12,10 @@ import {
12
12
  updateConfig
13
13
  } from "./chunk-MAZOVVDU.js";
14
14
  import "./chunk-MYX5NCRH.js";
15
- import "./chunk-DPJVKNNP.js";
15
+ import "./chunk-QUSCGEYI.js";
16
16
  import "./chunk-PIRWYDOH.js";
17
17
  import "./chunk-S6I62FAH.js";
18
- import "./chunk-TY7A5OZ5.js";
18
+ import "./chunk-UIGH6TKR.js";
19
19
  import "./chunk-LPUQPDC2.js";
20
20
  import "./chunk-D7TYRPRM.js";
21
21
  import "./chunk-E4VLWIJC.js";
@@ -78,4 +78,4 @@ async function run(args, vaultDir) {
78
78
  export {
79
79
  run
80
80
  };
81
- //# sourceMappingURL=setup-llm-5AMWEAJ5.js.map
81
+ //# sourceMappingURL=setup-llm-WNSUUNXA.js.map
package/dist/src/cli.js CHANGED
@@ -2,5 +2,5 @@
2
2
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
3
3
 
4
4
  // src/entries/cli.ts
5
- await import("../cli-Y5QZJAHX.js");
5
+ await import("../cli-VPKNXU2Q.js");
6
6
  //# sourceMappingURL=cli.js.map
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
2
 
3
3
  // src/entries/daemon.ts
4
- var { main } = await import("../../main-3NTAT7ZD.js");
4
+ var { main } = await import("../../main-TDE4T4MX.js");
5
5
  await main();
6
6
  //# sourceMappingURL=main.js.map
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
2
 
3
3
  // src/entries/post-tool-use.ts
4
- var { main } = await import("../../post-tool-use-LSG6N3W5.js");
4
+ var { main } = await import("../../post-tool-use-BGTDDWAO.js");
5
5
  await main();
6
6
  //# sourceMappingURL=post-tool-use.js.map
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
2
 
3
3
  // src/entries/session-end.ts
4
- var { main } = await import("../../session-end-V3V3GMP2.js");
4
+ var { main } = await import("../../session-end-PXS5ACST.js");
5
5
  await main();
6
6
  //# sourceMappingURL=session-end.js.map
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
2
 
3
3
  // src/entries/session-start.ts
4
- var { main } = await import("../../session-start-OH7SBUIA.js");
4
+ var { main } = await import("../../session-start-M33PWCJD.js");
5
5
  await main();
6
6
  //# sourceMappingURL=session-start.js.map
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
2
 
3
3
  // src/entries/stop.ts
4
- var { main } = await import("../../stop-D6L2KRHZ.js");
4
+ var { main } = await import("../../stop-RCBDSSPO.js");
5
5
  await main();
6
6
  //# sourceMappingURL=stop.js.map
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
2
 
3
3
  // src/entries/user-prompt-submit.ts
4
- var { main } = await import("../../user-prompt-submit-X4BCPMZ4.js");
4
+ var { main } = await import("../../user-prompt-submit-DIZJ7QPB.js");
5
5
  await main();
6
6
  //# sourceMappingURL=user-prompt-submit.js.map
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
2
 
3
3
  // src/entries/mcp-server.ts
4
- var { main } = await import("../../server-GMRVF2PB.js");
4
+ var { main } = await import("../../server-7LQPO5WY.js");
5
5
  await main();
6
6
  //# sourceMappingURL=server.js.map
@@ -0,0 +1,5 @@
1
+ # Project Rules
2
+
3
+ <!-- This starter file was created by Myco. Replace it with your project's rules and conventions. -->
4
+
5
+ Rules haven't been defined yet. Use the `/rules` skill to generate project rules, or edit this file directly.
@@ -1,18 +1,18 @@
1
1
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
2
  import {
3
3
  gatherStats
4
- } from "./chunk-RGRPAKEY.js";
4
+ } from "./chunk-ZI3NGD5O.js";
5
5
  import {
6
6
  initVaultDb
7
- } from "./chunk-YRHSTVCZ.js";
7
+ } from "./chunk-YBUXSTBR.js";
8
8
  import "./chunk-SAKJMNSR.js";
9
9
  import "./chunk-LUQBT2Y4.js";
10
10
  import "./chunk-MAZOVVDU.js";
11
11
  import "./chunk-MYX5NCRH.js";
12
- import "./chunk-DPJVKNNP.js";
12
+ import "./chunk-QUSCGEYI.js";
13
13
  import "./chunk-PIRWYDOH.js";
14
14
  import "./chunk-S6I62FAH.js";
15
- import "./chunk-TY7A5OZ5.js";
15
+ import "./chunk-UIGH6TKR.js";
16
16
  import "./chunk-LPUQPDC2.js";
17
17
  import "./chunk-D7TYRPRM.js";
18
18
  import "./chunk-E4VLWIJC.js";
@@ -91,4 +91,4 @@ function formatUptime(seconds) {
91
91
  export {
92
92
  run
93
93
  };
94
- //# sourceMappingURL=stats-B2V7P45Y.js.map
94
+ //# sourceMappingURL=stats-GAG6QBZL.js.map