@goondocks/myco 0.20.0 → 0.20.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 (94) hide show
  1. package/dist/{agent-run-4HUXVRHW.js → agent-run-PQXC246Y.js} +5 -5
  2. package/dist/{agent-tasks-JF45ELB6.js → agent-tasks-323BZEBX.js} +5 -5
  3. package/dist/{chunk-P3DN5EWW.js → chunk-22JALAXN.js} +4 -4
  4. package/dist/chunk-22JALAXN.js.map +1 -0
  5. package/dist/{chunk-UOQQENDW.js → chunk-3WWJOTYG.js} +2 -2
  6. package/dist/{chunk-POR75WM6.js → chunk-63ZGP4Q2.js} +2 -2
  7. package/dist/{chunk-ACQ2AIEM.js → chunk-AIYFHQRX.js} +2 -2
  8. package/dist/{chunk-L6XFAJIF.js → chunk-FGY7J6EZ.js} +4 -4
  9. package/dist/chunk-FGY7J6EZ.js.map +1 -0
  10. package/dist/{chunk-4LCIKVDM.js → chunk-LZP4IJB3.js} +3 -3
  11. package/dist/chunk-LZP4IJB3.js.map +1 -0
  12. package/dist/{chunk-YSNIAJ5D.js → chunk-UEWMSIL3.js} +3 -3
  13. package/dist/{cli-AHTINAHY.js → cli-UWBAOHLL.js} +34 -34
  14. package/dist/{client-LHENCAV3.js → client-SLDDMSKN.js} +3 -3
  15. package/dist/{doctor-XPCF5HV5.js → doctor-UUUOVDZS.js} +7 -7
  16. package/dist/doctor-UUUOVDZS.js.map +1 -0
  17. package/dist/{executor-ACDHGTRH.js → executor-J4IBXSBY.js} +7 -7
  18. package/dist/{init-V3KCC36O.js → init-UDH3ZBDD.js} +11 -15
  19. package/dist/init-UDH3ZBDD.js.map +1 -0
  20. package/dist/{installer-ZNK4JSQA.js → installer-I6KRGJOO.js} +2 -2
  21. package/dist/{main-5S4MDCIO.js → main-E7HU4QYR.js} +222 -108
  22. package/dist/main-E7HU4QYR.js.map +1 -0
  23. package/dist/{open-AB5ULZIB.js → open-4UGDPBKN.js} +5 -5
  24. package/dist/{post-compact-P2B7C7FE.js → post-compact-BFU3WZSV.js} +4 -4
  25. package/dist/{post-tool-use-LXL6NXDS.js → post-tool-use-RYHXLCTC.js} +3 -3
  26. package/dist/{post-tool-use-failure-WAYVVKGR.js → post-tool-use-failure-DCVHK2P3.js} +4 -4
  27. package/dist/{pre-compact-BCXUCF4V.js → pre-compact-EZZCJ6AG.js} +4 -4
  28. package/dist/{remove-KAPX5NT2.js → remove-GBBQG3SJ.js} +5 -5
  29. package/dist/{restart-HQO36FTG.js → restart-RMIGKMA6.js} +6 -6
  30. package/dist/{search-YOMOKAAI.js → search-2A5AJVNG.js} +5 -5
  31. package/dist/{server-2N23P6F2.js → server-TSYZMFFK.js} +3 -3
  32. package/dist/{session-WW2JLHPX.js → session-NKREOTEO.js} +5 -5
  33. package/dist/{session-end-4WRTIBVQ.js → session-end-DQELLTGJ.js} +3 -3
  34. package/dist/{session-start-HRWTZXQR.js → session-start-5SUTR5GP.js} +5 -5
  35. package/dist/{session-start-HRWTZXQR.js.map → session-start-5SUTR5GP.js.map} +1 -1
  36. package/dist/{setup-llm-HFWSBUAF.js → setup-llm-SLX5764H.js} +5 -5
  37. package/dist/src/cli.js +1 -1
  38. package/dist/src/daemon/main.js +1 -1
  39. package/dist/src/hooks/post-tool-use.js +1 -1
  40. package/dist/src/hooks/session-end.js +1 -1
  41. package/dist/src/hooks/session-start.js +1 -1
  42. package/dist/src/hooks/stop.js +1 -1
  43. package/dist/src/hooks/user-prompt-submit.js +1 -1
  44. package/dist/src/mcp/server.js +1 -1
  45. package/dist/{stats-7A4CJ4MS.js → stats-ARBLNEE3.js} +6 -6
  46. package/dist/{stop-R2GDHMRA.js → stop-5AJXBKEE.js} +3 -3
  47. package/dist/{stop-failure-773KR4VZ.js → stop-failure-XGKTZPLR.js} +4 -4
  48. package/dist/{subagent-start-IDECNBHW.js → subagent-start-2JLIPGJN.js} +4 -4
  49. package/dist/{subagent-stop-3JH7DR2S.js → subagent-stop-FV4EOKWZ.js} +4 -4
  50. package/dist/{task-completed-AYVHPHDR.js → task-completed-XJKT366I.js} +4 -4
  51. package/dist/{update-YWYW55JM.js → update-XVSAMN4O.js} +5 -5
  52. package/dist/{user-prompt-submit-YELSR6XI.js → user-prompt-submit-TTBTHBBH.js} +3 -3
  53. package/dist/{verify-JS44DVKJ.js → verify-LMHNEYIP.js} +3 -3
  54. package/dist/verify-LMHNEYIP.js.map +1 -0
  55. package/dist/{version-K5NETYIL.js → version-HRVSEMUR.js} +2 -2
  56. package/package.json +1 -1
  57. package/dist/chunk-4LCIKVDM.js.map +0 -1
  58. package/dist/chunk-L6XFAJIF.js.map +0 -1
  59. package/dist/chunk-P3DN5EWW.js.map +0 -1
  60. package/dist/doctor-XPCF5HV5.js.map +0 -1
  61. package/dist/init-V3KCC36O.js.map +0 -1
  62. package/dist/main-5S4MDCIO.js.map +0 -1
  63. package/dist/verify-JS44DVKJ.js.map +0 -1
  64. /package/dist/{agent-run-4HUXVRHW.js.map → agent-run-PQXC246Y.js.map} +0 -0
  65. /package/dist/{agent-tasks-JF45ELB6.js.map → agent-tasks-323BZEBX.js.map} +0 -0
  66. /package/dist/{chunk-UOQQENDW.js.map → chunk-3WWJOTYG.js.map} +0 -0
  67. /package/dist/{chunk-POR75WM6.js.map → chunk-63ZGP4Q2.js.map} +0 -0
  68. /package/dist/{chunk-ACQ2AIEM.js.map → chunk-AIYFHQRX.js.map} +0 -0
  69. /package/dist/{chunk-YSNIAJ5D.js.map → chunk-UEWMSIL3.js.map} +0 -0
  70. /package/dist/{cli-AHTINAHY.js.map → cli-UWBAOHLL.js.map} +0 -0
  71. /package/dist/{client-LHENCAV3.js.map → client-SLDDMSKN.js.map} +0 -0
  72. /package/dist/{executor-ACDHGTRH.js.map → executor-J4IBXSBY.js.map} +0 -0
  73. /package/dist/{installer-ZNK4JSQA.js.map → installer-I6KRGJOO.js.map} +0 -0
  74. /package/dist/{open-AB5ULZIB.js.map → open-4UGDPBKN.js.map} +0 -0
  75. /package/dist/{post-compact-P2B7C7FE.js.map → post-compact-BFU3WZSV.js.map} +0 -0
  76. /package/dist/{post-tool-use-LXL6NXDS.js.map → post-tool-use-RYHXLCTC.js.map} +0 -0
  77. /package/dist/{post-tool-use-failure-WAYVVKGR.js.map → post-tool-use-failure-DCVHK2P3.js.map} +0 -0
  78. /package/dist/{pre-compact-BCXUCF4V.js.map → pre-compact-EZZCJ6AG.js.map} +0 -0
  79. /package/dist/{remove-KAPX5NT2.js.map → remove-GBBQG3SJ.js.map} +0 -0
  80. /package/dist/{restart-HQO36FTG.js.map → restart-RMIGKMA6.js.map} +0 -0
  81. /package/dist/{search-YOMOKAAI.js.map → search-2A5AJVNG.js.map} +0 -0
  82. /package/dist/{server-2N23P6F2.js.map → server-TSYZMFFK.js.map} +0 -0
  83. /package/dist/{session-WW2JLHPX.js.map → session-NKREOTEO.js.map} +0 -0
  84. /package/dist/{session-end-4WRTIBVQ.js.map → session-end-DQELLTGJ.js.map} +0 -0
  85. /package/dist/{setup-llm-HFWSBUAF.js.map → setup-llm-SLX5764H.js.map} +0 -0
  86. /package/dist/{stats-7A4CJ4MS.js.map → stats-ARBLNEE3.js.map} +0 -0
  87. /package/dist/{stop-R2GDHMRA.js.map → stop-5AJXBKEE.js.map} +0 -0
  88. /package/dist/{stop-failure-773KR4VZ.js.map → stop-failure-XGKTZPLR.js.map} +0 -0
  89. /package/dist/{subagent-start-IDECNBHW.js.map → subagent-start-2JLIPGJN.js.map} +0 -0
  90. /package/dist/{subagent-stop-3JH7DR2S.js.map → subagent-stop-FV4EOKWZ.js.map} +0 -0
  91. /package/dist/{task-completed-AYVHPHDR.js.map → task-completed-XJKT366I.js.map} +0 -0
  92. /package/dist/{update-YWYW55JM.js.map → update-XVSAMN4O.js.map} +0 -0
  93. /package/dist/{user-prompt-submit-YELSR6XI.js.map → user-prompt-submit-TTBTHBBH.js.map} +0 -0
  94. /package/dist/{version-K5NETYIL.js.map → version-HRVSEMUR.js.map} +0 -0
@@ -1 +0,0 @@
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 { DEFAULT_OLLAMA_EMBEDDING_MODEL } from '../constants.js';\nimport { getPluginVersion } from '../version.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\nfunction printBanner(): void {\n const version = getPluginVersion();\n console.log('');\n console.log(' 🍄 Myco');\n console.log(` v${version} — Collective Agent Intelligence`);\n console.log(' ─────────────────────────────────────────────');\n console.log('');\n}\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 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 // CLI flags for non-interactive/scripted installs\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 // Flag-based embedding config for new vaults via non-interactive / scripted installs.\n // Existing vaults are configured through the dashboard, not CLI flags.\n // The agent provider is not flag-configurable -- it must be set via the dashboard.\n let embeddingFromFlags: Record<string, unknown> = {};\n if (hasEmbeddingFlags && !alreadyInitialized) {\n embeddingFromFlags = {\n provider: embeddingProvider ?? 'ollama',\n model: embeddingModel ?? DEFAULT_OLLAMA_EMBEDDING_MODEL,\n ...(embeddingUrl ? { base_url: embeddingUrl } : {}),\n };\n }\n\n // Show existing config summary on re-init\n if (alreadyInitialized && isInteractive) {\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\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 // Agent disabled by default -- user enables via dashboard after configuring a provider\n const config = MycoConfigSchema.parse({\n version: 3,\n ...(Object.keys(embeddingFromFlags).length > 0 ? { embedding: embeddingFromFlags } : {}),\n agent: {\n scheduled_tasks_enabled: false,\n event_tasks_enabled: false,\n },\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 // --- 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 // Load existing symbiont config for pre-checking on re-init (interactive only)\n let existingSymbionts: Record<string, { enabled: boolean }> | undefined;\n if (alreadyInitialized && isInteractive) {\n try {\n const { loadConfig } = await import('../config/loader.js');\n const existing = loadConfig(vaultDir);\n existingSymbionts = existing.symbionts;\n } catch { /* config not loadable — skip pre-check */ }\n }\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 // Pre-check from config on re-init; nothing pre-checked on first init\n const checked = !!existingSymbionts?.[m.name]?.enabled;\n return {\n value: m.name,\n name: hint ? `${m.displayName} (${hint})` : m.displayName,\n checked,\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 symbiontsConfig: Record<string, { enabled: boolean }> = {};\n for (const m of selectedManifests) {\n symbiontsConfig[m.name] = { enabled: true };\n }\n updateConfig(vaultDir, (config) => ({\n ...config,\n symbionts: symbiontsConfig,\n }));\n\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}/settings`;\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\n if (isInteractive) {\n console.log('');\n console.log(' Data collection is active. Configure the Myco agent and');\n console.log(' embedding providers in the dashboard to unlock the full');\n console.log(' intelligence pipeline.');\n\n // Auto-open browser to settings -- fire-and-forget\n const { openBrowser } = await import('./open-browser.js');\n openBrowser(daemonUrl);\n }\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":[]}