@goondocks/myco 0.20.2 → 0.21.0

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 (196) hide show
  1. package/dist/agent-eval-RJSQI5S2.js +355 -0
  2. package/dist/agent-eval-RJSQI5S2.js.map +1 -0
  3. package/dist/{agent-run-X25Q2A6T.js → agent-run-2JSYFOKU.js} +10 -8
  4. package/dist/{agent-run-X25Q2A6T.js.map → agent-run-2JSYFOKU.js.map} +1 -1
  5. package/dist/{agent-tasks-7B6OFERB.js → agent-tasks-APFJIM2T.js} +10 -8
  6. package/dist/{agent-tasks-7B6OFERB.js.map → agent-tasks-APFJIM2T.js.map} +1 -1
  7. package/dist/{chunk-OD4AA7PV.js → chunk-53RPGOEN.js} +56 -8
  8. package/dist/chunk-53RPGOEN.js.map +1 -0
  9. package/dist/chunk-54SXG5HF.js +26 -0
  10. package/dist/chunk-54SXG5HF.js.map +1 -0
  11. package/dist/{chunk-DCSGJ7W4.js → chunk-5ZG4RMUH.js} +2 -2
  12. package/dist/{chunk-FLLBJLHM.js → chunk-6C6QZ4PM.js} +9 -5
  13. package/dist/chunk-6C6QZ4PM.js.map +1 -0
  14. package/dist/chunk-6LB7XELY.js +406 -0
  15. package/dist/chunk-6LB7XELY.js.map +1 -0
  16. package/dist/{chunk-JZGN33AY.js → chunk-75Z7UKDY.js} +4 -4
  17. package/dist/{chunk-XG5RRUYF.js → chunk-BUTL6IFS.js} +2 -2
  18. package/dist/chunk-CESKJD44.js +586 -0
  19. package/dist/chunk-CESKJD44.js.map +1 -0
  20. package/dist/chunk-CISWUP5W.js +101 -0
  21. package/dist/chunk-CISWUP5W.js.map +1 -0
  22. package/dist/chunk-DJ3IHNYO.js +50 -0
  23. package/dist/chunk-DJ3IHNYO.js.map +1 -0
  24. package/dist/chunk-F3OEQYLS.js +847 -0
  25. package/dist/chunk-F3OEQYLS.js.map +1 -0
  26. package/dist/{chunk-6RFZWV4R.js → chunk-FCJ5JV54.js} +1 -1
  27. package/dist/{chunk-6RFZWV4R.js.map → chunk-FCJ5JV54.js.map} +1 -1
  28. package/dist/{chunk-2PDWCDKY.js → chunk-G6QIBNZM.js} +9 -6
  29. package/dist/{chunk-2PDWCDKY.js.map → chunk-G6QIBNZM.js.map} +1 -1
  30. package/dist/{chunk-6X2ERTQV.js → chunk-ILJPRYES.js} +6 -4
  31. package/dist/{chunk-6X2ERTQV.js.map → chunk-ILJPRYES.js.map} +1 -1
  32. package/dist/{chunk-US4LNCAT.js → chunk-IPPMYQ2Y.js} +5 -1
  33. package/dist/chunk-IPPMYQ2Y.js.map +1 -0
  34. package/dist/{chunk-KESLPBKV.js → chunk-JR54LTPP.js} +4 -4
  35. package/dist/{chunk-CCRGY3QW.js → chunk-JZS6GZ6T.js} +16 -94
  36. package/dist/chunk-JZS6GZ6T.js.map +1 -0
  37. package/dist/{chunk-5XIVBO25.js → chunk-LVIY7P35.js} +2 -2
  38. package/dist/chunk-NGH7U6A3.js +13844 -0
  39. package/dist/chunk-NGH7U6A3.js.map +1 -0
  40. package/dist/chunk-OUJSQSKE.js +113 -0
  41. package/dist/chunk-OUJSQSKE.js.map +1 -0
  42. package/dist/{chunk-VVNL26WX.js → chunk-P66DLD6G.js} +22 -10
  43. package/dist/chunk-P66DLD6G.js.map +1 -0
  44. package/dist/{chunk-XATDZX7U.js → chunk-R2JIJBCL.js} +18 -4
  45. package/dist/{chunk-XATDZX7U.js.map → chunk-R2JIJBCL.js.map} +1 -1
  46. package/dist/{chunk-MYOZLMB2.js → chunk-RL5R4CQU.js} +538 -19
  47. package/dist/chunk-RL5R4CQU.js.map +1 -0
  48. package/dist/{chunk-EVDQKYCG.js → chunk-RQSJLWP4.js} +13 -2
  49. package/dist/chunk-RQSJLWP4.js.map +1 -0
  50. package/dist/{chunk-BPRIYNLE.js → chunk-TKAJ3JVF.js} +3 -3
  51. package/dist/{chunk-Q36VMZST.js → chunk-VHNRMM4O.js} +3 -2
  52. package/dist/{chunk-FMRZ26U5.js → chunk-X3IGT5RV.js} +5 -2
  53. package/dist/{chunk-FMRZ26U5.js.map → chunk-X3IGT5RV.js.map} +1 -1
  54. package/dist/{chunk-KHT24OWC.js → chunk-YDUOSRGD.js} +8 -94
  55. package/dist/{chunk-KHT24OWC.js.map → chunk-YDUOSRGD.js.map} +1 -1
  56. package/dist/{cli-GGPWH4UO.js → cli-LNYSTDQM.js} +49 -42
  57. package/dist/cli-LNYSTDQM.js.map +1 -0
  58. package/dist/{client-YXQUTXVZ.js → client-NWE4TCNO.js} +4 -4
  59. package/dist/{config-OMCYHG2S.js → config-VC4ACP42.js} +6 -4
  60. package/dist/{config-OMCYHG2S.js.map → config-VC4ACP42.js.map} +1 -1
  61. package/dist/{detect-providers-5KOPZ7J2.js → detect-providers-ILLQZROY.js} +4 -4
  62. package/dist/{doctor-5JXJ36KA.js → doctor-TI7EZ3RW.js} +48 -15
  63. package/dist/doctor-TI7EZ3RW.js.map +1 -0
  64. package/dist/executor-F2YU7HXJ.js +44 -0
  65. package/dist/{init-LMYOVZAV.js → init-KG3TYVGE.js} +14 -12
  66. package/dist/{init-LMYOVZAV.js.map → init-KG3TYVGE.js.map} +1 -1
  67. package/dist/{installer-FS257JRZ.js → installer-UMH7OJ5A.js} +6 -4
  68. package/dist/{llm-TH4NLIRM.js → llm-AGVEF5XD.js} +5 -4
  69. package/dist/{loader-CQYTFHEW.js → loader-LX7TFRM6.js} +5 -3
  70. package/dist/{loader-NOMBJUPW.js → loader-NAVVZK63.js} +4 -3
  71. package/dist/{main-YTBVRTBI.js → main-5PRQNEEE.js} +2453 -650
  72. package/dist/main-5PRQNEEE.js.map +1 -0
  73. package/dist/{open-HG2DX6RN.js → open-5A27BCSB.js} +10 -8
  74. package/dist/{open-HG2DX6RN.js.map → open-5A27BCSB.js.map} +1 -1
  75. package/dist/{post-compact-JSECI44W.js → post-compact-USAODKPQ.js} +6 -6
  76. package/dist/{post-tool-use-POGPTJBA.js → post-tool-use-GMMSYBII.js} +9 -7
  77. package/dist/post-tool-use-GMMSYBII.js.map +1 -0
  78. package/dist/{post-tool-use-failure-OT7BFWQW.js → post-tool-use-failure-NZVSL2PO.js} +6 -6
  79. package/dist/{pre-compact-OXVODKH4.js → pre-compact-LZ57DLUS.js} +6 -6
  80. package/dist/{provider-check-43LAMSMH.js → provider-check-ZEV5P4KM.js} +4 -4
  81. package/dist/{registry-U4CHXK6R.js → registry-M2Z5QBWH.js} +5 -4
  82. package/dist/{remove-N7ZPELFU.js → remove-T3KE6C5N.js} +10 -8
  83. package/dist/{remove-N7ZPELFU.js.map → remove-T3KE6C5N.js.map} +1 -1
  84. package/dist/{restart-ADG5GBTB.js → restart-YWDEVZUJ.js} +11 -9
  85. package/dist/{restart-ADG5GBTB.js.map → restart-YWDEVZUJ.js.map} +1 -1
  86. package/dist/{search-AHZEUNRR.js → search-GKFDGELR.js} +11 -9
  87. package/dist/{search-AHZEUNRR.js.map → search-GKFDGELR.js.map} +1 -1
  88. package/dist/{server-AGVYZVP5.js → server-AHUR6CWF.js} +368 -269
  89. package/dist/server-AHUR6CWF.js.map +1 -0
  90. package/dist/{session-6IU4AXYP.js → session-2ZEPLWW6.js} +11 -9
  91. package/dist/{session-6IU4AXYP.js.map → session-2ZEPLWW6.js.map} +1 -1
  92. package/dist/{session-end-FT27DWYZ.js → session-end-LWJYQAXX.js} +5 -5
  93. package/dist/session-start-WTA6GCOQ.js +134 -0
  94. package/dist/session-start-WTA6GCOQ.js.map +1 -0
  95. package/dist/{setup-llm-77MP4I2G.js → setup-llm-E7UU5IO7.js} +11 -9
  96. package/dist/{setup-llm-77MP4I2G.js.map → setup-llm-E7UU5IO7.js.map} +1 -1
  97. package/dist/src/agent/definitions/agent.yaml +9 -5
  98. package/dist/src/agent/definitions/tasks/cortex-instructions.yaml +93 -0
  99. package/dist/src/agent/definitions/tasks/cortex-prompt-builder.yaml +67 -0
  100. package/dist/src/agent/definitions/tasks/digest-only.yaml +1 -1
  101. package/dist/src/agent/definitions/tasks/extract-only.yaml +1 -1
  102. package/dist/src/agent/definitions/tasks/review-session.yaml +10 -39
  103. package/dist/src/agent/definitions/tasks/skill-evolve.yaml +4 -4
  104. package/dist/src/agent/definitions/tasks/skill-generate.yaml +1 -1
  105. package/dist/src/agent/definitions/tasks/skill-survey.yaml +2 -6
  106. package/dist/src/agent/definitions/tasks/supersession-sweep.yaml +1 -1
  107. package/dist/src/agent/definitions/tasks/title-summary.yaml +12 -19
  108. package/dist/src/agent/definitions/tasks/{full-intelligence.yaml → vault-evolve.yaml} +17 -82
  109. package/dist/src/agent/definitions/tasks/vault-seed.yaml +370 -0
  110. package/dist/src/agent/prompts/agent.md +12 -38
  111. package/dist/src/cli.js +1 -1
  112. package/dist/src/daemon/main.js +1 -1
  113. package/dist/src/hooks/post-tool-use.js +1 -1
  114. package/dist/src/hooks/session-end.js +1 -1
  115. package/dist/src/hooks/session-start.js +1 -1
  116. package/dist/src/hooks/stop.js +1 -1
  117. package/dist/src/hooks/user-prompt-submit.js +1 -1
  118. package/dist/src/mcp/server.js +1 -1
  119. package/dist/src/symbionts/manifests/claude-code.yaml +4 -0
  120. package/dist/src/symbionts/manifests/pi.yaml +22 -0
  121. package/dist/src/symbionts/templates/pi/package.json +6 -0
  122. package/dist/src/symbionts/templates/pi/plugin.ts +559 -0
  123. package/dist/{stats-NVPWOYTE.js → stats-DFG6S23S.js} +11 -9
  124. package/dist/{stats-NVPWOYTE.js.map → stats-DFG6S23S.js.map} +1 -1
  125. package/dist/{stop-ZPIKVLH4.js → stop-WRBTXEVT.js} +5 -5
  126. package/dist/{stop-failure-2PX67YJC.js → stop-failure-32MGIG2Q.js} +6 -6
  127. package/dist/{subagent-start-UUE6EHQD.js → subagent-start-VFGHQFVL.js} +6 -6
  128. package/dist/{subagent-stop-KQWWWPE6.js → subagent-stop-663FXG3P.js} +6 -6
  129. package/dist/{task-completed-WMHOFQ7B.js → task-completed-ZCQYEFMZ.js} +6 -6
  130. package/dist/{team-LRZ6GTQK.js → team-JTI5CDUO.js} +7 -5
  131. package/dist/{turns-YFNI5CQC.js → turns-HU2CTZAP.js} +2 -2
  132. package/dist/ui/assets/index-DGf1h-Ha.js +842 -0
  133. package/dist/ui/assets/index-_OP4ifzH.css +1 -0
  134. package/dist/ui/index.html +2 -2
  135. package/dist/{update-O6V4RC4W.js → update-3NBQTG32.js} +10 -8
  136. package/dist/{update-O6V4RC4W.js.map → update-3NBQTG32.js.map} +1 -1
  137. package/dist/{user-prompt-submit-N36KUPHI.js → user-prompt-submit-ME2TBKOS.js} +8 -7
  138. package/dist/{user-prompt-submit-N36KUPHI.js.map → user-prompt-submit-ME2TBKOS.js.map} +1 -1
  139. package/dist/{verify-LXPV7NYG.js → verify-R76ZFJSZ.js} +8 -5
  140. package/dist/{verify-LXPV7NYG.js.map → verify-R76ZFJSZ.js.map} +1 -1
  141. package/dist/{version-XMPPJQHR.js → version-GQAFBBPX.js} +2 -2
  142. package/dist/version-GQAFBBPX.js.map +1 -0
  143. package/package.json +3 -1
  144. package/skills/myco/SKILL.md +16 -1
  145. package/skills/myco/references/cli-usage.md +1 -1
  146. package/skills/myco-curate/SKILL.md +1 -1
  147. package/dist/chunk-4YFKBL3F.js +0 -195
  148. package/dist/chunk-4YFKBL3F.js.map +0 -1
  149. package/dist/chunk-CCRGY3QW.js.map +0 -1
  150. package/dist/chunk-EVDQKYCG.js.map +0 -1
  151. package/dist/chunk-FLLBJLHM.js.map +0 -1
  152. package/dist/chunk-MYOZLMB2.js.map +0 -1
  153. package/dist/chunk-OD4AA7PV.js.map +0 -1
  154. package/dist/chunk-US4LNCAT.js.map +0 -1
  155. package/dist/chunk-UYMFCYBF.js +0 -2326
  156. package/dist/chunk-UYMFCYBF.js.map +0 -1
  157. package/dist/chunk-VVNL26WX.js.map +0 -1
  158. package/dist/cli-GGPWH4UO.js.map +0 -1
  159. package/dist/doctor-5JXJ36KA.js.map +0 -1
  160. package/dist/executor-HWW2QNZQ.js +0 -2472
  161. package/dist/executor-HWW2QNZQ.js.map +0 -1
  162. package/dist/main-YTBVRTBI.js.map +0 -1
  163. package/dist/post-tool-use-POGPTJBA.js.map +0 -1
  164. package/dist/server-AGVYZVP5.js.map +0 -1
  165. package/dist/session-start-LAFICHII.js +0 -189
  166. package/dist/session-start-LAFICHII.js.map +0 -1
  167. package/dist/src/agent/definitions/tasks/graph-maintenance.yaml +0 -93
  168. package/dist/ui/assets/index-C2JuNtRB.css +0 -1
  169. package/dist/ui/assets/index-JLVaQKV2.js +0 -832
  170. /package/dist/{chunk-DCSGJ7W4.js.map → chunk-5ZG4RMUH.js.map} +0 -0
  171. /package/dist/{chunk-JZGN33AY.js.map → chunk-75Z7UKDY.js.map} +0 -0
  172. /package/dist/{chunk-XG5RRUYF.js.map → chunk-BUTL6IFS.js.map} +0 -0
  173. /package/dist/{chunk-KESLPBKV.js.map → chunk-JR54LTPP.js.map} +0 -0
  174. /package/dist/{chunk-5XIVBO25.js.map → chunk-LVIY7P35.js.map} +0 -0
  175. /package/dist/{chunk-BPRIYNLE.js.map → chunk-TKAJ3JVF.js.map} +0 -0
  176. /package/dist/{chunk-Q36VMZST.js.map → chunk-VHNRMM4O.js.map} +0 -0
  177. /package/dist/{client-YXQUTXVZ.js.map → client-NWE4TCNO.js.map} +0 -0
  178. /package/dist/{detect-providers-5KOPZ7J2.js.map → detect-providers-ILLQZROY.js.map} +0 -0
  179. /package/dist/{installer-FS257JRZ.js.map → executor-F2YU7HXJ.js.map} +0 -0
  180. /package/dist/{llm-TH4NLIRM.js.map → installer-UMH7OJ5A.js.map} +0 -0
  181. /package/dist/{loader-CQYTFHEW.js.map → llm-AGVEF5XD.js.map} +0 -0
  182. /package/dist/{loader-NOMBJUPW.js.map → loader-LX7TFRM6.js.map} +0 -0
  183. /package/dist/{provider-check-43LAMSMH.js.map → loader-NAVVZK63.js.map} +0 -0
  184. /package/dist/{post-compact-JSECI44W.js.map → post-compact-USAODKPQ.js.map} +0 -0
  185. /package/dist/{post-tool-use-failure-OT7BFWQW.js.map → post-tool-use-failure-NZVSL2PO.js.map} +0 -0
  186. /package/dist/{pre-compact-OXVODKH4.js.map → pre-compact-LZ57DLUS.js.map} +0 -0
  187. /package/dist/{registry-U4CHXK6R.js.map → provider-check-ZEV5P4KM.js.map} +0 -0
  188. /package/dist/{team-LRZ6GTQK.js.map → registry-M2Z5QBWH.js.map} +0 -0
  189. /package/dist/{session-end-FT27DWYZ.js.map → session-end-LWJYQAXX.js.map} +0 -0
  190. /package/dist/{stop-ZPIKVLH4.js.map → stop-WRBTXEVT.js.map} +0 -0
  191. /package/dist/{stop-failure-2PX67YJC.js.map → stop-failure-32MGIG2Q.js.map} +0 -0
  192. /package/dist/{subagent-start-UUE6EHQD.js.map → subagent-start-VFGHQFVL.js.map} +0 -0
  193. /package/dist/{subagent-stop-KQWWWPE6.js.map → subagent-stop-663FXG3P.js.map} +0 -0
  194. /package/dist/{task-completed-WMHOFQ7B.js.map → task-completed-ZCQYEFMZ.js.map} +0 -0
  195. /package/dist/{turns-YFNI5CQC.js.map → team-JTI5CDUO.js.map} +0 -0
  196. /package/dist/{version-XMPPJQHR.js.map → turns-HU2CTZAP.js.map} +0 -0
@@ -1,20 +1,22 @@
1
1
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
2
  import {
3
3
  initVaultDb
4
- } from "./chunk-KESLPBKV.js";
4
+ } from "./chunk-JR54LTPP.js";
5
5
  import "./chunk-SAKJMNSR.js";
6
- import "./chunk-Q36VMZST.js";
7
- import "./chunk-FMRZ26U5.js";
6
+ import "./chunk-VHNRMM4O.js";
7
+ import "./chunk-X3IGT5RV.js";
8
8
  import {
9
9
  getSession,
10
10
  listSessions
11
- } from "./chunk-EVDQKYCG.js";
12
- import "./chunk-OD4AA7PV.js";
11
+ } from "./chunk-RQSJLWP4.js";
12
+ import "./chunk-53RPGOEN.js";
13
+ import "./chunk-OUJSQSKE.js";
14
+ import "./chunk-POEPHBQK.js";
13
15
  import "./chunk-MYX5NCRH.js";
14
- import "./chunk-VVNL26WX.js";
15
- import "./chunk-XG5RRUYF.js";
16
+ import "./chunk-P66DLD6G.js";
17
+ import "./chunk-BUTL6IFS.js";
16
18
  import "./chunk-LPUQPDC2.js";
17
- import "./chunk-FLLBJLHM.js";
19
+ import "./chunk-6C6QZ4PM.js";
18
20
  import "./chunk-UUHLLQXO.js";
19
21
  import "./chunk-6LQIMRTC.js";
20
22
  import "./chunk-ODXLRR4U.js";
@@ -70,4 +72,4 @@ ${target.summary}`);
70
72
  export {
71
73
  run
72
74
  };
73
- //# sourceMappingURL=session-6IU4AXYP.js.map
75
+ //# sourceMappingURL=session-2ZEPLWW6.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/cli/session.ts"],"sourcesContent":["/**\n * CLI: myco session — display session info via direct SQLite reads.\n *\n * Opens the database directly (WAL mode allows concurrent reads).\n * Does NOT require the daemon to be running.\n */\n\nimport { listSessions, getSession } from '@myco/db/queries/sessions.js';\nimport { initVaultDb } from './shared.js';\n\n// ---------------------------------------------------------------------------\n// Command\n// ---------------------------------------------------------------------------\n\nexport async function run(args: string[], vaultDir: string): Promise<void> {\n const idOrLatest = args[0];\n\n const cleanup = initVaultDb(vaultDir);\n try {\n const sessions = listSessions({ limit: 100 });\n if (sessions.length === 0) {\n console.log('No sessions found');\n return;\n }\n\n // Resolve target session ID\n let targetId: string;\n if (!idOrLatest || idOrLatest === 'latest') {\n targetId = sessions[0].id;\n } else {\n const match = sessions.find((s) => s.id.includes(idOrLatest));\n if (!match) {\n console.error(`Session not found: ${idOrLatest}`);\n console.log('Available:', sessions.map((s) => s.id.slice(0, 12)).join(', '));\n return;\n }\n targetId = match.id;\n }\n\n // Fetch full session detail\n const target = getSession(targetId);\n if (!target) {\n console.error(`Failed to fetch session: ${targetId}`);\n return;\n }\n\n console.log(`Session: ${target.id}`);\n console.log(`Status: ${target.status}`);\n if (target.title) console.log(`Title: ${target.title}`);\n if (target.branch) console.log(`Branch: ${target.branch}`);\n if (target.user) console.log(`User: ${target.user}`);\n console.log(`Started: ${new Date(target.started_at * 1000).toISOString()}`);\n if (target.ended_at) console.log(`Ended: ${new Date(target.ended_at * 1000).toISOString()}`);\n if (target.prompt_count) console.log(`Prompts: ${target.prompt_count}`);\n if (target.tool_count) console.log(`Tools: ${target.tool_count}`);\n if (target.summary) console.log(`\\nSummary:\\n${target.summary}`);\n } catch (err) {\n console.error('Failed to read vault database:', (err as Error).message);\n process.exit(1);\n } finally {\n cleanup();\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAcA,eAAsB,IAAI,MAAgB,UAAiC;AACzE,QAAM,aAAa,KAAK,CAAC;AAEzB,QAAM,UAAU,YAAY,QAAQ;AACpC,MAAI;AACF,UAAM,WAAW,aAAa,EAAE,OAAO,IAAI,CAAC;AAC5C,QAAI,SAAS,WAAW,GAAG;AACzB,cAAQ,IAAI,mBAAmB;AAC/B;AAAA,IACF;AAGA,QAAI;AACJ,QAAI,CAAC,cAAc,eAAe,UAAU;AAC1C,iBAAW,SAAS,CAAC,EAAE;AAAA,IACzB,OAAO;AACL,YAAM,QAAQ,SAAS,KAAK,CAAC,MAAM,EAAE,GAAG,SAAS,UAAU,CAAC;AAC5D,UAAI,CAAC,OAAO;AACV,gBAAQ,MAAM,sBAAsB,UAAU,EAAE;AAChD,gBAAQ,IAAI,cAAc,SAAS,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,GAAG,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;AAC3E;AAAA,MACF;AACA,iBAAW,MAAM;AAAA,IACnB;AAGA,UAAM,SAAS,WAAW,QAAQ;AAClC,QAAI,CAAC,QAAQ;AACX,cAAQ,MAAM,4BAA4B,QAAQ,EAAE;AACpD;AAAA,IACF;AAEA,YAAQ,IAAI,YAAY,OAAO,EAAE,EAAE;AACnC,YAAQ,IAAI,YAAY,OAAO,MAAM,EAAE;AACvC,QAAI,OAAO,MAAO,SAAQ,IAAI,YAAY,OAAO,KAAK,EAAE;AACxD,QAAI,OAAO,OAAQ,SAAQ,IAAI,YAAY,OAAO,MAAM,EAAE;AAC1D,QAAI,OAAO,KAAM,SAAQ,IAAI,YAAY,OAAO,IAAI,EAAE;AACtD,YAAQ,IAAI,YAAY,IAAI,KAAK,OAAO,aAAa,GAAI,EAAE,YAAY,CAAC,EAAE;AAC1E,QAAI,OAAO,SAAU,SAAQ,IAAI,YAAY,IAAI,KAAK,OAAO,WAAW,GAAI,EAAE,YAAY,CAAC,EAAE;AAC7F,QAAI,OAAO,aAAc,SAAQ,IAAI,YAAY,OAAO,YAAY,EAAE;AACtE,QAAI,OAAO,WAAY,SAAQ,IAAI,YAAY,OAAO,UAAU,EAAE;AAClE,QAAI,OAAO,QAAS,SAAQ,IAAI;AAAA;AAAA,EAAe,OAAO,OAAO,EAAE;AAAA,EACjE,SAAS,KAAK;AACZ,YAAQ,MAAM,kCAAmC,IAAc,OAAO;AACtE,YAAQ,KAAK,CAAC;AAAA,EAChB,UAAE;AACA,YAAQ;AAAA,EACV;AACF;","names":[]}
1
+ {"version":3,"sources":["../src/cli/session.ts"],"sourcesContent":["/**\n * CLI: myco session — display session info via direct SQLite reads.\n *\n * Opens the database directly (WAL mode allows concurrent reads).\n * Does NOT require the daemon to be running.\n */\n\nimport { listSessions, getSession } from '@myco/db/queries/sessions.js';\nimport { initVaultDb } from './shared.js';\n\n// ---------------------------------------------------------------------------\n// Command\n// ---------------------------------------------------------------------------\n\nexport async function run(args: string[], vaultDir: string): Promise<void> {\n const idOrLatest = args[0];\n\n const cleanup = initVaultDb(vaultDir);\n try {\n const sessions = listSessions({ limit: 100 });\n if (sessions.length === 0) {\n console.log('No sessions found');\n return;\n }\n\n // Resolve target session ID\n let targetId: string;\n if (!idOrLatest || idOrLatest === 'latest') {\n targetId = sessions[0].id;\n } else {\n const match = sessions.find((s) => s.id.includes(idOrLatest));\n if (!match) {\n console.error(`Session not found: ${idOrLatest}`);\n console.log('Available:', sessions.map((s) => s.id.slice(0, 12)).join(', '));\n return;\n }\n targetId = match.id;\n }\n\n // Fetch full session detail\n const target = getSession(targetId);\n if (!target) {\n console.error(`Failed to fetch session: ${targetId}`);\n return;\n }\n\n console.log(`Session: ${target.id}`);\n console.log(`Status: ${target.status}`);\n if (target.title) console.log(`Title: ${target.title}`);\n if (target.branch) console.log(`Branch: ${target.branch}`);\n if (target.user) console.log(`User: ${target.user}`);\n console.log(`Started: ${new Date(target.started_at * 1000).toISOString()}`);\n if (target.ended_at) console.log(`Ended: ${new Date(target.ended_at * 1000).toISOString()}`);\n if (target.prompt_count) console.log(`Prompts: ${target.prompt_count}`);\n if (target.tool_count) console.log(`Tools: ${target.tool_count}`);\n if (target.summary) console.log(`\\nSummary:\\n${target.summary}`);\n } catch (err) {\n console.error('Failed to read vault database:', (err as Error).message);\n process.exit(1);\n } finally {\n cleanup();\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,eAAsB,IAAI,MAAgB,UAAiC;AACzE,QAAM,aAAa,KAAK,CAAC;AAEzB,QAAM,UAAU,YAAY,QAAQ;AACpC,MAAI;AACF,UAAM,WAAW,aAAa,EAAE,OAAO,IAAI,CAAC;AAC5C,QAAI,SAAS,WAAW,GAAG;AACzB,cAAQ,IAAI,mBAAmB;AAC/B;AAAA,IACF;AAGA,QAAI;AACJ,QAAI,CAAC,cAAc,eAAe,UAAU;AAC1C,iBAAW,SAAS,CAAC,EAAE;AAAA,IACzB,OAAO;AACL,YAAM,QAAQ,SAAS,KAAK,CAAC,MAAM,EAAE,GAAG,SAAS,UAAU,CAAC;AAC5D,UAAI,CAAC,OAAO;AACV,gBAAQ,MAAM,sBAAsB,UAAU,EAAE;AAChD,gBAAQ,IAAI,cAAc,SAAS,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,GAAG,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;AAC3E;AAAA,MACF;AACA,iBAAW,MAAM;AAAA,IACnB;AAGA,UAAM,SAAS,WAAW,QAAQ;AAClC,QAAI,CAAC,QAAQ;AACX,cAAQ,MAAM,4BAA4B,QAAQ,EAAE;AACpD;AAAA,IACF;AAEA,YAAQ,IAAI,YAAY,OAAO,EAAE,EAAE;AACnC,YAAQ,IAAI,YAAY,OAAO,MAAM,EAAE;AACvC,QAAI,OAAO,MAAO,SAAQ,IAAI,YAAY,OAAO,KAAK,EAAE;AACxD,QAAI,OAAO,OAAQ,SAAQ,IAAI,YAAY,OAAO,MAAM,EAAE;AAC1D,QAAI,OAAO,KAAM,SAAQ,IAAI,YAAY,OAAO,IAAI,EAAE;AACtD,YAAQ,IAAI,YAAY,IAAI,KAAK,OAAO,aAAa,GAAI,EAAE,YAAY,CAAC,EAAE;AAC1E,QAAI,OAAO,SAAU,SAAQ,IAAI,YAAY,IAAI,KAAK,OAAO,WAAW,GAAI,EAAE,YAAY,CAAC,EAAE;AAC7F,QAAI,OAAO,aAAc,SAAQ,IAAI,YAAY,OAAO,YAAY,EAAE;AACtE,QAAI,OAAO,WAAY,SAAQ,IAAI,YAAY,OAAO,UAAU,EAAE;AAClE,QAAI,OAAO,QAAS,SAAQ,IAAI;AAAA;AAAA,EAAe,OAAO,OAAO,EAAE;AAAA,EACjE,SAAS,KAAK;AACZ,YAAQ,MAAM,kCAAmC,IAAc,OAAO;AACtE,YAAQ,KAAK,CAAC;AAAA,EAChB,UAAE;AACA,YAAQ;AAAA,EACV;AACF;","names":[]}
@@ -2,18 +2,18 @@ import { createRequire as __cr } from 'node:module'; const require = __cr(import
2
2
  import {
3
3
  normalizeHookInput,
4
4
  readStdin
5
- } from "./chunk-DCSGJ7W4.js";
5
+ } from "./chunk-5ZG4RMUH.js";
6
6
  import "./chunk-ZXZPJJN3.js";
7
7
  import {
8
8
  resolveVaultDir
9
9
  } from "./chunk-CUDIZJY7.js";
10
10
  import {
11
11
  DaemonClient
12
- } from "./chunk-VVNL26WX.js";
13
- import "./chunk-XG5RRUYF.js";
12
+ } from "./chunk-P66DLD6G.js";
13
+ import "./chunk-BUTL6IFS.js";
14
14
  import "./chunk-NGROSFOH.js";
15
15
  import "./chunk-LPUQPDC2.js";
16
- import "./chunk-FLLBJLHM.js";
16
+ import "./chunk-6C6QZ4PM.js";
17
17
  import "./chunk-UUHLLQXO.js";
18
18
  import "./chunk-6LQIMRTC.js";
19
19
  import "./chunk-ODXLRR4U.js";
@@ -41,4 +41,4 @@ async function main() {
41
41
  export {
42
42
  main
43
43
  };
44
- //# sourceMappingURL=session-end-FT27DWYZ.js.map
44
+ //# sourceMappingURL=session-end-LWJYQAXX.js.map
@@ -0,0 +1,134 @@
1
+ import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
+ import {
3
+ composeSessionStartContext,
4
+ shouldInjectSessionStartDigest
5
+ } from "./chunk-DJ3IHNYO.js";
6
+ import {
7
+ getCortexInstructions,
8
+ shouldInjectCortex
9
+ } from "./chunk-F3OEQYLS.js";
10
+ import "./chunk-RQSJLWP4.js";
11
+ import {
12
+ evaluateSessionCaptureRules,
13
+ readTranscriptMeta
14
+ } from "./chunk-XL75KZGI.js";
15
+ import "./chunk-CESKJD44.js";
16
+ import {
17
+ createSchema
18
+ } from "./chunk-RL5R4CQU.js";
19
+ import {
20
+ loadMergedConfig
21
+ } from "./chunk-53RPGOEN.js";
22
+ import "./chunk-OUJSQSKE.js";
23
+ import "./chunk-POEPHBQK.js";
24
+ import {
25
+ initDatabase,
26
+ vaultDbPath
27
+ } from "./chunk-MYX5NCRH.js";
28
+ import {
29
+ normalizeHookInput,
30
+ readStdin
31
+ } from "./chunk-5ZG4RMUH.js";
32
+ import "./chunk-ZXZPJJN3.js";
33
+ import {
34
+ resolveVaultDir
35
+ } from "./chunk-CUDIZJY7.js";
36
+ import {
37
+ DaemonClient
38
+ } from "./chunk-P66DLD6G.js";
39
+ import "./chunk-BUTL6IFS.js";
40
+ import {
41
+ loadManifests
42
+ } from "./chunk-NGROSFOH.js";
43
+ import "./chunk-LPUQPDC2.js";
44
+ import {
45
+ DEFAULT_AGENT_ID,
46
+ estimateTokens
47
+ } from "./chunk-6C6QZ4PM.js";
48
+ import "./chunk-UUHLLQXO.js";
49
+ import "./chunk-6LQIMRTC.js";
50
+ import "./chunk-ODXLRR4U.js";
51
+ import "./chunk-U6PF3YII.js";
52
+ import "./chunk-PZUWP5VK.js";
53
+
54
+ // src/context/injector.ts
55
+ async function buildInjectedContext(config, _context) {
56
+ const includeBrief = shouldInjectCortex(config.context);
57
+ const includeDigest = shouldInjectSessionStartDigest(config.context);
58
+ if (!includeBrief && !includeDigest) {
59
+ return emptyContext();
60
+ }
61
+ const brief = includeBrief ? getCortexInstructions(DEFAULT_AGENT_ID)?.content ?? "" : "";
62
+ const { parts } = composeSessionStartContext(config, brief);
63
+ const text = parts.map((p) => p.text).join("\n\n");
64
+ return {
65
+ text,
66
+ tokenEstimate: estimateTokens(text)
67
+ };
68
+ }
69
+ function emptyContext() {
70
+ return {
71
+ text: "",
72
+ tokenEstimate: 0
73
+ };
74
+ }
75
+
76
+ // src/hooks/session-start.ts
77
+ import { execFileSync } from "child_process";
78
+ import fs from "fs";
79
+ import path from "path";
80
+ async function main() {
81
+ const VAULT_DIR = resolveVaultDir();
82
+ if (!fs.existsSync(path.join(VAULT_DIR, "myco.yaml"))) return;
83
+ try {
84
+ const rawInput = JSON.parse(await readStdin());
85
+ const { sessionId, agent, transcriptPath } = normalizeHookInput(rawInput);
86
+ const transcriptMeta = transcriptPath ? readTranscriptMeta(transcriptPath) : void 0;
87
+ const decision = evaluateSessionCaptureRules(loadManifests(), agent, {
88
+ transcriptPath,
89
+ transcriptMeta: transcriptMeta ?? void 0
90
+ });
91
+ if (decision.action === "drop") {
92
+ process.stderr.write(`[myco] session-start: dropped (${decision.reason ?? "rule"})
93
+ `);
94
+ return;
95
+ }
96
+ const config = loadMergedConfig(VAULT_DIR);
97
+ const client = new DaemonClient(VAULT_DIR);
98
+ const healthy = await client.ensureRunning();
99
+ let branch;
100
+ try {
101
+ branch = execFileSync("git", ["rev-parse", "--abbrev-ref", "HEAD"], { encoding: "utf-8" }).trim();
102
+ } catch {
103
+ }
104
+ if (healthy) {
105
+ const [, contextResult] = await Promise.all([
106
+ client.post("/sessions/register", {
107
+ session_id: sessionId,
108
+ agent,
109
+ branch,
110
+ started_at: (/* @__PURE__ */ new Date()).toISOString()
111
+ }),
112
+ client.post("/context", { session_id: sessionId, branch })
113
+ ]);
114
+ if (contextResult.ok && contextResult.data?.text) {
115
+ if (contextResult.data.source === "cortex") {
116
+ process.stderr.write("[myco] Injecting Myco Cortex instructions\n");
117
+ }
118
+ process.stdout.write(contextResult.data.text);
119
+ return;
120
+ }
121
+ }
122
+ const db = initDatabase(vaultDbPath(VAULT_DIR));
123
+ createSchema(db);
124
+ const injected = await buildInjectedContext(config, { branch });
125
+ if (injected.text) process.stdout.write(injected.text);
126
+ } catch (error) {
127
+ process.stderr.write(`[myco] session-start error: ${error.message}
128
+ `);
129
+ }
130
+ }
131
+ export {
132
+ main
133
+ };
134
+ //# sourceMappingURL=session-start-WTA6GCOQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/context/injector.ts","../src/hooks/session-start.ts"],"sourcesContent":["import type { MycoConfig } from '@myco/config/schema.js';\nimport { estimateTokens, DEFAULT_AGENT_ID } from '@myco/constants.js';\nimport { getCortexInstructions } from '@myco/db/queries/cortex-instructions.js';\nimport { shouldInjectCortex } from './cortex-brief.js';\nimport { shouldInjectSessionStartDigest } from './session-start-digest.js';\nimport { composeSessionStartContext } from './session-start-context.js';\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\ninterface InjectionContext {\n branch?: string;\n}\n\ninterface InjectedContext {\n text: string;\n tokenEstimate: number;\n}\n\n// ---------------------------------------------------------------------------\n// Public API\n// ---------------------------------------------------------------------------\n\n/**\n * Build the degraded-path session-start context.\n *\n * The normal session-start path goes through the daemon. If the daemon is\n * unavailable, read the last stored Cortex instructions locally so degraded\n * mode matches daemon semantics instead of regenerating ad hoc text.\n */\nexport async function buildInjectedContext(\n config: MycoConfig,\n _context: InjectionContext,\n): Promise<InjectedContext> {\n const includeBrief = shouldInjectCortex(config.context);\n const includeDigest = shouldInjectSessionStartDigest(config.context);\n if (!includeBrief && !includeDigest) {\n return emptyContext();\n }\n\n const brief = includeBrief ? getCortexInstructions(DEFAULT_AGENT_ID)?.content ?? '' : '';\n const { parts } = composeSessionStartContext(config, brief);\n const text = parts.map((p) => p.text).join('\\n\\n');\n\n return {\n text,\n tokenEstimate: estimateTokens(text),\n };\n}\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\nfunction emptyContext(): InjectedContext {\n return {\n text: '',\n tokenEstimate: 0,\n };\n}\n","import { DaemonClient } from './client.js';\nimport { readStdin } from './read-stdin.js';\nimport { normalizeHookInput } from './normalize.js';\nimport { evaluateSessionCaptureRules } from './capture-rules.js';\nimport { readTranscriptMeta } from './transcript-meta.js';\nimport { loadManifests } from '../symbionts/detect.js';\nimport { loadMergedConfig } from '../config/loader.js';\nimport { buildInjectedContext } from '../context/injector.js';\nimport { initDatabase, vaultDbPath } from '../db/client.js';\nimport { createSchema } from '../db/schema.js';\nimport { resolveVaultDir } from '../vault/resolve.js';\nimport { execFileSync } from 'node:child_process';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nexport async function main() {\n const VAULT_DIR = resolveVaultDir();\n if (!fs.existsSync(path.join(VAULT_DIR, 'myco.yaml'))) return;\n\n try {\n const rawInput = JSON.parse(await readStdin());\n const { sessionId, agent, transcriptPath } = normalizeHookInput(rawInput);\n\n // Apply session_start capture rules BEFORE registering the session.\n // For Codex ephemeral sub-invocations (title generation, etc.) this\n // structural drop prevents the phantom row from ever being created,\n // rather than creating it and cascade-deleting at user_prompt time.\n // Read the transcript's session_meta for rules that inspect it\n // (e.g., detecting sub-agent thread spawns via source.subagent).\n const transcriptMeta = transcriptPath ? readTranscriptMeta(transcriptPath) : undefined;\n const decision = evaluateSessionCaptureRules(loadManifests(), agent, {\n transcriptPath,\n transcriptMeta: transcriptMeta ?? undefined,\n });\n if (decision.action === 'drop') {\n process.stderr.write(`[myco] session-start: dropped (${decision.reason ?? 'rule'})\\n`);\n return;\n }\n\n const config = loadMergedConfig(VAULT_DIR);\n const client = new DaemonClient(VAULT_DIR);\n const healthy = await client.ensureRunning();\n\n let branch: string | undefined;\n try {\n branch = execFileSync('git', ['rev-parse', '--abbrev-ref', 'HEAD'], { encoding: 'utf-8' }).trim();\n } catch { /* not a git repo */ }\n\n if (healthy) {\n const [, contextResult] = await Promise.all([\n client.post('/sessions/register', {\n session_id: sessionId,\n agent,\n branch,\n started_at: new Date().toISOString(),\n }),\n client.post('/context', { session_id: sessionId, branch }),\n ]);\n\n if (contextResult.ok && contextResult.data?.text) {\n if (contextResult.data.source === 'cortex') {\n process.stderr.write('[myco] Injecting Myco Cortex instructions\\n');\n }\n process.stdout.write(contextResult.data.text);\n return;\n }\n }\n\n // Degraded: local SQLite context only\n const db = initDatabase(vaultDbPath(VAULT_DIR));\n createSchema(db);\n const injected = await buildInjectedContext(config, { branch });\n if (injected.text) process.stdout.write(injected.text);\n } catch (error) {\n process.stderr.write(`[myco] session-start error: ${(error as Error).message}\\n`);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BA,eAAsB,qBACpB,QACA,UAC0B;AAC1B,QAAM,eAAe,mBAAmB,OAAO,OAAO;AACtD,QAAM,gBAAgB,+BAA+B,OAAO,OAAO;AACnE,MAAI,CAAC,gBAAgB,CAAC,eAAe;AACnC,WAAO,aAAa;AAAA,EACtB;AAEA,QAAM,QAAQ,eAAe,sBAAsB,gBAAgB,GAAG,WAAW,KAAK;AACtF,QAAM,EAAE,MAAM,IAAI,2BAA2B,QAAQ,KAAK;AAC1D,QAAM,OAAO,MAAM,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,MAAM;AAEjD,SAAO;AAAA,IACL;AAAA,IACA,eAAe,eAAe,IAAI;AAAA,EACpC;AACF;AAMA,SAAS,eAAgC;AACvC,SAAO;AAAA,IACL,MAAM;AAAA,IACN,eAAe;AAAA,EACjB;AACF;;;ACjDA,SAAS,oBAAoB;AAC7B,OAAO,QAAQ;AACf,OAAO,UAAU;AAEjB,eAAsB,OAAO;AAC3B,QAAM,YAAY,gBAAgB;AAClC,MAAI,CAAC,GAAG,WAAW,KAAK,KAAK,WAAW,WAAW,CAAC,EAAG;AAEvD,MAAI;AACF,UAAM,WAAW,KAAK,MAAM,MAAM,UAAU,CAAC;AAC7C,UAAM,EAAE,WAAW,OAAO,eAAe,IAAI,mBAAmB,QAAQ;AAQxE,UAAM,iBAAiB,iBAAiB,mBAAmB,cAAc,IAAI;AAC7E,UAAM,WAAW,4BAA4B,cAAc,GAAG,OAAO;AAAA,MACnE;AAAA,MACA,gBAAgB,kBAAkB;AAAA,IACpC,CAAC;AACD,QAAI,SAAS,WAAW,QAAQ;AAC9B,cAAQ,OAAO,MAAM,kCAAkC,SAAS,UAAU,MAAM;AAAA,CAAK;AACrF;AAAA,IACF;AAEA,UAAM,SAAS,iBAAiB,SAAS;AACzC,UAAM,SAAS,IAAI,aAAa,SAAS;AACzC,UAAM,UAAU,MAAM,OAAO,cAAc;AAE3C,QAAI;AACJ,QAAI;AACF,eAAS,aAAa,OAAO,CAAC,aAAa,gBAAgB,MAAM,GAAG,EAAE,UAAU,QAAQ,CAAC,EAAE,KAAK;AAAA,IAClG,QAAQ;AAAA,IAAuB;AAE/B,QAAI,SAAS;AACX,YAAM,CAAC,EAAE,aAAa,IAAI,MAAM,QAAQ,IAAI;AAAA,QAC1C,OAAO,KAAK,sBAAsB;AAAA,UAChC,YAAY;AAAA,UACZ;AAAA,UACA;AAAA,UACA,aAAY,oBAAI,KAAK,GAAE,YAAY;AAAA,QACrC,CAAC;AAAA,QACD,OAAO,KAAK,YAAY,EAAE,YAAY,WAAW,OAAO,CAAC;AAAA,MAC3D,CAAC;AAED,UAAI,cAAc,MAAM,cAAc,MAAM,MAAM;AAChD,YAAI,cAAc,KAAK,WAAW,UAAU;AAC1C,kBAAQ,OAAO,MAAM,6CAA6C;AAAA,QACpE;AACA,gBAAQ,OAAO,MAAM,cAAc,KAAK,IAAI;AAC5C;AAAA,MACF;AAAA,IACF;AAGA,UAAM,KAAK,aAAa,YAAY,SAAS,CAAC;AAC9C,iBAAa,EAAE;AACf,UAAM,WAAW,MAAM,qBAAqB,QAAQ,EAAE,OAAO,CAAC;AAC9D,QAAI,SAAS,KAAM,SAAQ,OAAO,MAAM,SAAS,IAAI;AAAA,EACvD,SAAS,OAAO;AACd,YAAQ,OAAO,MAAM,+BAAgC,MAAgB,OAAO;AAAA,CAAI;AAAA,EAClF;AACF;","names":[]}
@@ -1,23 +1,25 @@
1
1
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
2
  import {
3
3
  withEmbedding
4
- } from "./chunk-US4LNCAT.js";
5
- import "./chunk-KESLPBKV.js";
4
+ } from "./chunk-IPPMYQ2Y.js";
5
+ import "./chunk-JR54LTPP.js";
6
6
  import {
7
7
  parseStringFlag
8
8
  } from "./chunk-SAKJMNSR.js";
9
- import "./chunk-Q36VMZST.js";
10
- import "./chunk-FMRZ26U5.js";
9
+ import "./chunk-VHNRMM4O.js";
10
+ import "./chunk-X3IGT5RV.js";
11
11
  import {
12
12
  loadConfig,
13
13
  updateConfig
14
- } from "./chunk-OD4AA7PV.js";
14
+ } from "./chunk-53RPGOEN.js";
15
+ import "./chunk-OUJSQSKE.js";
16
+ import "./chunk-POEPHBQK.js";
15
17
  import "./chunk-MYX5NCRH.js";
16
18
  import "./chunk-ZXZPJJN3.js";
17
- import "./chunk-VVNL26WX.js";
18
- import "./chunk-XG5RRUYF.js";
19
+ import "./chunk-P66DLD6G.js";
20
+ import "./chunk-BUTL6IFS.js";
19
21
  import "./chunk-LPUQPDC2.js";
20
- import "./chunk-FLLBJLHM.js";
22
+ import "./chunk-6C6QZ4PM.js";
21
23
  import "./chunk-UUHLLQXO.js";
22
24
  import "./chunk-6LQIMRTC.js";
23
25
  import "./chunk-ODXLRR4U.js";
@@ -80,4 +82,4 @@ async function run(args, vaultDir) {
80
82
  export {
81
83
  run
82
84
  };
83
- //# sourceMappingURL=setup-llm-77MP4I2G.js.map
85
+ //# sourceMappingURL=setup-llm-E7UU5IO7.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/cli/setup-llm.ts"],"sourcesContent":["import fs from 'node:fs';\nimport path from 'node:path';\nimport { loadConfig, updateConfig } from '../config/loader.js';\nimport { withEmbedding } from '../config/updates.js';\nimport { parseStringFlag } from './shared.js';\nimport type { EmbeddingProviderConfig } from '../config/schema.js';\n\nconst DAEMON_STATE_FILENAME = 'daemon.json';\n\nconst USAGE = `Usage: myco setup-llm [options]\n\nConfigure embedding provider settings.\n\nIn v3, LLM configuration is managed by the Myco agent (Claude Agent SDK).\nOnly embedding settings are user-configurable.\n\nOptions:\n --embedding-provider <name> Embedding provider (ollama, openai-compatible)\n --embedding-model <name> Embedding model name\n --embedding-url <url> Embedding provider base URL\n --show Show current settings and exit\n`;\n\nexport async function run(args: string[], vaultDir: string): Promise<void> {\n // Show current settings\n if (args.includes('--show')) {\n const config = loadConfig(vaultDir);\n console.log(JSON.stringify(config.embedding, null, 2));\n return;\n }\n\n // No flags = show usage\n if (args.length === 0) {\n console.log(USAGE);\n return;\n }\n\n // Warn about removed LLM flags\n const llmProvider = parseStringFlag(args, '--llm-provider');\n const llmModel = parseStringFlag(args, '--llm-model');\n const llmUrl = parseStringFlag(args, '--llm-url');\n const llmContextWindow = parseStringFlag(args, '--llm-context-window');\n const llmMaxTokens = parseStringFlag(args, '--llm-max-tokens');\n if (llmProvider || llmModel || llmUrl || llmContextWindow || llmMaxTokens) {\n console.log('Note: LLM configuration is managed by the Myco agent. LLM flags are ignored.');\n }\n\n // Build partial embedding update from flags\n const updates: Partial<EmbeddingProviderConfig> = {};\n\n const embeddingProvider = parseStringFlag(args, '--embedding-provider');\n if (embeddingProvider !== undefined) updates.provider = embeddingProvider as EmbeddingProviderConfig['provider'];\n\n const embeddingModel = parseStringFlag(args, '--embedding-model');\n if (embeddingModel !== undefined) updates.model = embeddingModel;\n\n const embeddingUrl = parseStringFlag(args, '--embedding-url');\n if (embeddingUrl !== undefined) updates.base_url = embeddingUrl;\n\n // Apply the update through the single write gate\n const updated = updateConfig(vaultDir, (config) => withEmbedding(config, updates));\n\n console.log('Embedding configuration updated.');\n console.log(JSON.stringify(updated.embedding, null, 2));\n\n if (embeddingModel !== undefined) {\n console.log('\\nWarning: changing the embedding model requires a full vector index rebuild.');\n console.log('Run: myco rebuild');\n }\n\n if (fs.existsSync(path.join(vaultDir, DAEMON_STATE_FILENAME))) {\n console.log('\\nNote: restart the daemon for changes to take effect (myco restart)');\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,QAAQ;AACf,OAAO,UAAU;AAMjB,IAAM,wBAAwB;AAE9B,IAAM,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAcd,eAAsB,IAAI,MAAgB,UAAiC;AAEzE,MAAI,KAAK,SAAS,QAAQ,GAAG;AAC3B,UAAM,SAAS,WAAW,QAAQ;AAClC,YAAQ,IAAI,KAAK,UAAU,OAAO,WAAW,MAAM,CAAC,CAAC;AACrD;AAAA,EACF;AAGA,MAAI,KAAK,WAAW,GAAG;AACrB,YAAQ,IAAI,KAAK;AACjB;AAAA,EACF;AAGA,QAAM,cAAc,gBAAgB,MAAM,gBAAgB;AAC1D,QAAM,WAAW,gBAAgB,MAAM,aAAa;AACpD,QAAM,SAAS,gBAAgB,MAAM,WAAW;AAChD,QAAM,mBAAmB,gBAAgB,MAAM,sBAAsB;AACrE,QAAM,eAAe,gBAAgB,MAAM,kBAAkB;AAC7D,MAAI,eAAe,YAAY,UAAU,oBAAoB,cAAc;AACzE,YAAQ,IAAI,8EAA8E;AAAA,EAC5F;AAGA,QAAM,UAA4C,CAAC;AAEnD,QAAM,oBAAoB,gBAAgB,MAAM,sBAAsB;AACtE,MAAI,sBAAsB,OAAW,SAAQ,WAAW;AAExD,QAAM,iBAAiB,gBAAgB,MAAM,mBAAmB;AAChE,MAAI,mBAAmB,OAAW,SAAQ,QAAQ;AAElD,QAAM,eAAe,gBAAgB,MAAM,iBAAiB;AAC5D,MAAI,iBAAiB,OAAW,SAAQ,WAAW;AAGnD,QAAM,UAAU,aAAa,UAAU,CAAC,WAAW,cAAc,QAAQ,OAAO,CAAC;AAEjF,UAAQ,IAAI,kCAAkC;AAC9C,UAAQ,IAAI,KAAK,UAAU,QAAQ,WAAW,MAAM,CAAC,CAAC;AAEtD,MAAI,mBAAmB,QAAW;AAChC,YAAQ,IAAI,+EAA+E;AAC3F,YAAQ,IAAI,mBAAmB;AAAA,EACjC;AAEA,MAAI,GAAG,WAAW,KAAK,KAAK,UAAU,qBAAqB,CAAC,GAAG;AAC7D,YAAQ,IAAI,sEAAsE;AAAA,EACpF;AACF;","names":[]}
1
+ {"version":3,"sources":["../src/cli/setup-llm.ts"],"sourcesContent":["import fs from 'node:fs';\nimport path from 'node:path';\nimport { loadConfig, updateConfig } from '../config/loader.js';\nimport { withEmbedding } from '../config/updates.js';\nimport { parseStringFlag } from './shared.js';\nimport type { EmbeddingProviderConfig } from '../config/schema.js';\n\nconst DAEMON_STATE_FILENAME = 'daemon.json';\n\nconst USAGE = `Usage: myco setup-llm [options]\n\nConfigure embedding provider settings.\n\nIn v3, LLM configuration is managed by the Myco agent (Claude Agent SDK).\nOnly embedding settings are user-configurable.\n\nOptions:\n --embedding-provider <name> Embedding provider (ollama, openai-compatible)\n --embedding-model <name> Embedding model name\n --embedding-url <url> Embedding provider base URL\n --show Show current settings and exit\n`;\n\nexport async function run(args: string[], vaultDir: string): Promise<void> {\n // Show current settings\n if (args.includes('--show')) {\n const config = loadConfig(vaultDir);\n console.log(JSON.stringify(config.embedding, null, 2));\n return;\n }\n\n // No flags = show usage\n if (args.length === 0) {\n console.log(USAGE);\n return;\n }\n\n // Warn about removed LLM flags\n const llmProvider = parseStringFlag(args, '--llm-provider');\n const llmModel = parseStringFlag(args, '--llm-model');\n const llmUrl = parseStringFlag(args, '--llm-url');\n const llmContextWindow = parseStringFlag(args, '--llm-context-window');\n const llmMaxTokens = parseStringFlag(args, '--llm-max-tokens');\n if (llmProvider || llmModel || llmUrl || llmContextWindow || llmMaxTokens) {\n console.log('Note: LLM configuration is managed by the Myco agent. LLM flags are ignored.');\n }\n\n // Build partial embedding update from flags\n const updates: Partial<EmbeddingProviderConfig> = {};\n\n const embeddingProvider = parseStringFlag(args, '--embedding-provider');\n if (embeddingProvider !== undefined) updates.provider = embeddingProvider as EmbeddingProviderConfig['provider'];\n\n const embeddingModel = parseStringFlag(args, '--embedding-model');\n if (embeddingModel !== undefined) updates.model = embeddingModel;\n\n const embeddingUrl = parseStringFlag(args, '--embedding-url');\n if (embeddingUrl !== undefined) updates.base_url = embeddingUrl;\n\n // Apply the update through the single write gate\n const updated = updateConfig(vaultDir, (config) => withEmbedding(config, updates));\n\n console.log('Embedding configuration updated.');\n console.log(JSON.stringify(updated.embedding, null, 2));\n\n if (embeddingModel !== undefined) {\n console.log('\\nWarning: changing the embedding model requires a full vector index rebuild.');\n console.log('Run: myco rebuild');\n }\n\n if (fs.existsSync(path.join(vaultDir, DAEMON_STATE_FILENAME))) {\n console.log('\\nNote: restart the daemon for changes to take effect (myco restart)');\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,QAAQ;AACf,OAAO,UAAU;AAMjB,IAAM,wBAAwB;AAE9B,IAAM,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAcd,eAAsB,IAAI,MAAgB,UAAiC;AAEzE,MAAI,KAAK,SAAS,QAAQ,GAAG;AAC3B,UAAM,SAAS,WAAW,QAAQ;AAClC,YAAQ,IAAI,KAAK,UAAU,OAAO,WAAW,MAAM,CAAC,CAAC;AACrD;AAAA,EACF;AAGA,MAAI,KAAK,WAAW,GAAG;AACrB,YAAQ,IAAI,KAAK;AACjB;AAAA,EACF;AAGA,QAAM,cAAc,gBAAgB,MAAM,gBAAgB;AAC1D,QAAM,WAAW,gBAAgB,MAAM,aAAa;AACpD,QAAM,SAAS,gBAAgB,MAAM,WAAW;AAChD,QAAM,mBAAmB,gBAAgB,MAAM,sBAAsB;AACrE,QAAM,eAAe,gBAAgB,MAAM,kBAAkB;AAC7D,MAAI,eAAe,YAAY,UAAU,oBAAoB,cAAc;AACzE,YAAQ,IAAI,8EAA8E;AAAA,EAC5F;AAGA,QAAM,UAA4C,CAAC;AAEnD,QAAM,oBAAoB,gBAAgB,MAAM,sBAAsB;AACtE,MAAI,sBAAsB,OAAW,SAAQ,WAAW;AAExD,QAAM,iBAAiB,gBAAgB,MAAM,mBAAmB;AAChE,MAAI,mBAAmB,OAAW,SAAQ,QAAQ;AAElD,QAAM,eAAe,gBAAgB,MAAM,iBAAiB;AAC5D,MAAI,iBAAiB,OAAW,SAAQ,WAAW;AAGnD,QAAM,UAAU,aAAa,UAAU,CAAC,WAAW,cAAc,QAAQ,OAAO,CAAC;AAEjF,UAAQ,IAAI,kCAAkC;AAC9C,UAAQ,IAAI,KAAK,UAAU,QAAQ,WAAW,MAAM,CAAC,CAAC;AAEtD,MAAI,mBAAmB,QAAW;AAChC,YAAQ,IAAI,+EAA+E;AAC3F,YAAQ,IAAI,mBAAmB;AAAA,EACjC;AAEA,MAAI,GAAG,WAAW,KAAK,KAAK,UAAU,qBAAqB,CAAC,GAAG;AAC7D,YAAQ,IAAI,sEAAsE;AAAA,EACpF;AACF;","names":[]}
@@ -5,8 +5,8 @@ name: myco-agent
5
5
  displayName: Myco Agent
6
6
  description: >
7
7
  Default intelligence agent that processes captured session data, extracts
8
- observations (spores), builds the knowledge graph, manages spore lifecycle,
9
- and synthesizes digest extracts.
8
+ observations (spores), manages spore lifecycle, and synthesizes digest
9
+ extracts.
10
10
  model: claude-sonnet-4-20250514
11
11
  maxTurns: 30
12
12
  timeoutSeconds: 300
@@ -15,19 +15,17 @@ systemPromptPath: ../prompts/agent.md
15
15
  tools:
16
16
  # Read tools
17
17
  - vault_unprocessed
18
+ - vault_session_summary_material
18
19
  - vault_spores
19
20
  - vault_sessions
20
21
  - vault_search_fts
21
22
  - vault_search_semantic
22
23
  - vault_state
23
- - vault_entities
24
24
  - vault_edges
25
25
  - vault_skill_candidates
26
26
  - vault_skill_records
27
27
  # Write tools
28
28
  - vault_create_spore
29
- - vault_create_entity
30
- - vault_create_edge
31
29
  - vault_resolve_spore
32
30
  - vault_update_session
33
31
  - vault_mark_processed
@@ -35,3 +33,9 @@ tools:
35
33
  - vault_write_digest
36
34
  - vault_set_state
37
35
  - vault_report
36
+ # Code exploration tools — used by vault-seed to infer knowledge from
37
+ # source when no session data exists yet.
38
+ - fs_read
39
+ - fs_list
40
+ - fs_tree
41
+ - code_grep
@@ -0,0 +1,93 @@
1
+ # =============================================================================
2
+ # Built-in Task: Cortex Instructions
3
+ # =============================================================================
4
+
5
+ name: cortex-instructions
6
+ displayName: Cortex Instructions
7
+ description: >
8
+ Author compact session-start instructions that teach downstream agents how
9
+ to use Myco tool behavior correctly, especially retrieval and plan persistence.
10
+ agent: myco-agent
11
+ isDefault: false
12
+ reasoningLevel: low
13
+ maxTurns: 12
14
+ timeoutSeconds: 180
15
+ schedule:
16
+ enabled: true
17
+ intervalSeconds: 3600
18
+ runIn:
19
+ - idle
20
+ - sleep
21
+
22
+ prompt: |
23
+ Author compact session-start instructions for another coding agent.
24
+
25
+ You will receive:
26
+ - current context configuration
27
+ - the available Myco tool capabilities
28
+ - tool guidance that must be encoded
29
+ - a digest excerpt plus recent sessions, spores, and plans
30
+ - authoring requirements that constrain the final output
31
+
32
+ Your job is to produce concise markdown instructions for session start.
33
+
34
+ Requirements:
35
+ - Start with the heading `## Myco-Enabled Project`.
36
+ - Immediately follow with one brief sentence explaining that Myco provides project memory, prior decisions, plans, and retrieval tools for this project.
37
+ - Teach the most useful Myco tool behavior, not implementation details.
38
+ - Mention Myco tools using backticks.
39
+ - Use the recent vault context to make the instructions feel current when it adds signal.
40
+ - Keep the heading and intro brief so most tokens go to retrieval guidance.
41
+ - Keep the output compact and ready for direct injection.
42
+ - Do not restate AGENTS.md.
43
+ - Do not invent unavailable tools.
44
+ - Do not tell the agent to call `myco_skills`; project and Myco skills are already registered separately.
45
+
46
+ Call `vault_report` with action "cortex_instructions" and:
47
+ - summary: what the instructions emphasize
48
+ - details.content: the final markdown instructions
49
+
50
+ phases:
51
+ - name: research
52
+ prompt: |
53
+ Review the provided digest excerpt and recent vault activity first.
54
+
55
+ Then use vault tools selectively to confirm what is current and high-signal
56
+ enough to deserve mention in the session-start instructions. Prefer the
57
+ smallest number of reads that sharpen the instructions.
58
+
59
+ Focus on:
60
+ - which Myco MCP tools matter most right now
61
+ - which current project hotspots or active workstreams are worth naming
62
+ - whether recent sessions, spores, or active plans reveal a better tool-use hint
63
+
64
+ Do not spend time enumerating every note. Gather only what improves the
65
+ final session-start instructions.
66
+ tools:
67
+ - vault_read_digest
68
+ - vault_sessions
69
+ - vault_session_summary_material
70
+ - vault_spores
71
+ - vault_search_fts
72
+ - vault_search_semantic
73
+ maxTurns: 10
74
+ required: true
75
+ readOnly: true
76
+
77
+ - name: author
78
+ dependsOn: [research]
79
+ prompt: |
80
+ Write the final session-start instructions.
81
+
82
+ The output should:
83
+ - open with the heading `## Myco-Enabled Project` and one brief sentence of context
84
+ - teach the agent how to retrieve the right Myco knowledge on demand and persist plans when appropriate
85
+ - mention the most relevant current project activity when it adds value
86
+ - avoid generic boilerplate
87
+ - avoid telling the agent to call `myco_skills`
88
+
89
+ Report the final markdown via `vault_report`.
90
+ tools:
91
+ - vault_report
92
+ maxTurns: 4
93
+ required: true
@@ -0,0 +1,67 @@
1
+ # =============================================================================
2
+ # Built-in Task: Cortex Prompt Builder
3
+ # =============================================================================
4
+
5
+ name: cortex-prompt-builder
6
+ displayName: Cortex Prompt Builder
7
+ description: >
8
+ Build a high-quality, Myco-informed prompt for a target symbiont while
9
+ respecting whether session-start instructions will be injected separately.
10
+ agent: myco-agent
11
+ isDefault: false
12
+ reasoningLevel: default
13
+ maxTurns: 24
14
+ timeoutSeconds: 300
15
+
16
+ prompt: |
17
+ Build a strong, pasteable prompt for a target coding agent.
18
+
19
+ The instruction payload gives you:
20
+ - the user's goal
21
+ - the target symbiont and whether session-start instructions will be injected
22
+ - the current Cortex instructions when they must be inlined
23
+
24
+ Use the vault tools to gather the most relevant project context:
25
+ - digest for broad orientation
26
+ - spores for prior decisions, gotchas, and bug fixes
27
+ - sessions and plan-related search results for recent or approved work
28
+ - skill records for repeatable project procedures
29
+ - search tools when you need targeted follow-up
30
+
31
+ Output requirements:
32
+ - Produce one final prompt suitable for direct paste into the target agent.
33
+ - If the instruction payload says to inline Cortex instructions, include them.
34
+ - If the instruction payload says session-start injection is supported, omit the
35
+ Cortex instructions from the final prompt.
36
+ - Prefer concise, high-signal context over long dumps.
37
+ - Include concrete validations when the task implies implementation work.
38
+
39
+ Call `vault_report` with action "cortex_prompt_builder" and:
40
+ - summary: short description of the brief you produced
41
+ - details.prompt: the final prompt text
42
+
43
+ phases:
44
+ - name: build
45
+ prompt: |
46
+ Gather the smallest set of relevant Myco context for this build request,
47
+ then write the final prompt and report it via `vault_report`.
48
+
49
+ Use digest, search, sessions, plans, spores, and skills selectively.
50
+ Avoid exhaustive searching; gather what you need to write the prompt.
51
+
52
+ The final output must be a single prompt suitable for direct paste into
53
+ the target agent. Respect the delivery contract from the instruction
54
+ payload when deciding whether to inline the current Cortex instructions.
55
+
56
+ Before finishing, call `vault_report` with action `cortex_prompt_builder`
57
+ and put the final prompt in `details.prompt`.
58
+ tools:
59
+ - vault_read_digest
60
+ - vault_sessions
61
+ - vault_spores
62
+ - vault_skill_records
63
+ - vault_search_fts
64
+ - vault_search_semantic
65
+ - vault_report
66
+ maxTurns: 18
67
+ required: true
@@ -13,7 +13,7 @@ description: >
13
13
  to spores or graph data.
14
14
  agent: myco-agent
15
15
  isDefault: false
16
- model: claude-sonnet-4-6
16
+ reasoningLevel: default
17
17
  maxTurns: 28
18
18
  timeoutSeconds: 1800
19
19
 
@@ -13,7 +13,7 @@ description: >
13
13
  quick pass that captures knowledge without full reasoning overhead.
14
14
  agent: myco-agent
15
15
  isDefault: false
16
- model: claude-haiku-4-5-20251001
16
+ reasoningLevel: low
17
17
  maxTurns: 30
18
18
  timeoutSeconds: 300
19
19
 
@@ -1,24 +1,24 @@
1
1
  # =============================================================================
2
2
  # Built-in Task: Review Session
3
3
  # =============================================================================
4
- # Targeted end-to-end pass over a single session: extract spores, build
5
- # graph entities and edges, run supersession checks, update title/summary.
4
+ # Targeted end-to-end pass over a single session: extract spores, run
5
+ # supersession checks, update title/summary.
6
6
  # =============================================================================
7
7
 
8
8
  name: review-session
9
9
  displayName: Review Session
10
10
  description: >
11
11
  Process a single session end-to-end. Extracts spores from all prompt
12
- batches in the session, builds graph entities and edges, runs supersession
13
- checks, and generates the session title and summary.
12
+ batches in the session, runs supersession checks, and generates the
13
+ session title and summary.
14
14
  agent: myco-agent
15
15
  isDefault: false
16
- model: claude-sonnet-4-6
17
- maxTurns: 40
16
+ reasoningLevel: default
17
+ maxTurns: 30
18
18
  timeoutSeconds: 480
19
19
 
20
20
  prompt: |
21
- Review the specified session end-to-end. Budget: ~35 turns.
21
+ Review the specified session end-to-end. Budget: ~25 turns.
22
22
 
23
23
  Target session: {{session_id}}
24
24
 
@@ -57,31 +57,7 @@ prompt: |
57
57
  After processing all batches: call `vault_mark_processed` for each batch,
58
58
  then call `vault_set_state` to update the cursor.
59
59
 
60
- ## Phase 3 — Graph (budget: 10 turns)
61
-
62
- Build entities and semantic edges for knowledge discovered in this session.
63
-
64
- 1. Call `vault_spores` to review the spores just created plus existing ones
65
- 2. Call `vault_entities` and `vault_edges` to see what already exists
66
- 3. Check `vault_spores` for cross-session references before creating entities.
67
- Only create entities referenced in 2+ sessions. For a single-session review,
68
- this means the entity must also appear in spores from OTHER sessions.
69
- 4. For valid entity candidates:
70
- - Call `vault_create_entity` with type: component | concept | person
71
- - Good: "DaemonClient", "cursor-based pagination" — specific named things
72
- - Bad: "testing phase", "code quality" — abstract categories
73
- 5. For each entity (new and existing relevant ones):
74
- - Call `vault_search_semantic` with the entity name to find related spores
75
- - Before creating, call `vault_edges` with source_id and target_id to
76
- check if the edge already exists
77
- - Call `vault_create_edge` with type REFERENCES, source_type spore,
78
- target_type entity for each relevant spore
79
- 6. Create structural edges: DEPENDS_ON (entity→entity), AFFECTS (spore→entity)
80
-
81
- Always include source_type and target_type on every edge.
82
- Do NOT create lineage edges (FROM_SESSION, EXTRACTED_FROM, etc.).
83
-
84
- ## Phase 4 — Supersession Check (budget: 3 turns)
60
+ ## Phase 3 — Supersession Check (budget: 3 turns)
85
61
 
86
62
  Scan active spores for newly introduced redundancy:
87
63
  1. Call `vault_spores` with status "active" to see the current set
@@ -90,7 +66,7 @@ prompt: |
90
66
  3. Only supersede when the new information genuinely replaces the old;
91
67
  when in doubt, keep both
92
68
 
93
- ## Phase 5 — Title & Summary (budget: 3 turns)
69
+ ## Phase 4 — Title & Summary (budget: 3 turns)
94
70
 
95
71
  1. Call `vault_sessions` to check the current title and summary
96
72
  2. Review the prompt batches you processed in Phase 2 — use user_prompt
@@ -104,14 +80,13 @@ prompt: |
104
80
  Bad: "/git-worktree", "Help me fix the bug in..."
105
81
  Summary: 2-4 sentences on key work done + outcomes.
106
82
 
107
- ## Phase 6 — Report (budget: 1 turn)
83
+ ## Phase 5 — Report (budget: 1 turn)
108
84
 
109
85
  Call `vault_report` with action "complete":
110
86
  - Session reviewed: {{session_id}}
111
87
  - Batches processed: N
112
88
  - Spores created: N (by type)
113
89
  - Spores superseded: N
114
- - Entities created: N, edges created: N
115
90
  - Title/summary updated: yes/no
116
91
 
117
92
  toolOverrides:
@@ -120,12 +95,8 @@ toolOverrides:
120
95
  - vault_sessions
121
96
  - vault_search_fts
122
97
  - vault_search_semantic
123
- - vault_entities
124
- - vault_edges
125
98
  - vault_create_spore
126
99
  - vault_resolve_spore
127
- - vault_create_entity
128
- - vault_create_edge
129
100
  - vault_update_session
130
101
  - vault_mark_processed
131
102
  - vault_set_state
@@ -10,7 +10,7 @@ prompt: >-
10
10
  overlap. The instruction contains pre-filtered skills with their
11
11
  content, new spore IDs, and pre-computed similarity analysis.
12
12
  isDefault: false
13
- model: claude-sonnet-4-6
13
+ reasoningLevel: default
14
14
  maxTurns: 48
15
15
  timeoutSeconds: 1800
16
16
  schedule:
@@ -25,7 +25,7 @@ params:
25
25
  max_skills_per_run: 8
26
26
  phases:
27
27
  - name: inventory
28
- model: claude-haiku-4-5-20251001
28
+ reasoningLevel: low
29
29
  prompt: |
30
30
  The instruction contains pre-computed structural analysis of
31
31
  all active skills. Two mechanical signals are provided:
@@ -82,7 +82,7 @@ phases:
82
82
  readOnly: true
83
83
 
84
84
  - name: assess
85
- model: claude-sonnet-4-6
85
+ reasoningLevel: default
86
86
  prompt: |
87
87
  Read the inventory analysis from vault_state
88
88
  (key: skill-evolve-inventory).
@@ -157,7 +157,7 @@ phases:
157
157
  - inventory
158
158
 
159
159
  - name: act
160
- model: claude-haiku-4-5-20251001
160
+ reasoningLevel: low
161
161
  prompt: |
162
162
  Read classifications from vault_state
163
163
  (key: skill-evolve-classifications). Parse the JSON.