@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
@@ -0,0 +1,586 @@
1
+ import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
+ import {
3
+ MCP_SEARCH_DEFAULT_LIMIT,
4
+ MCP_SESSIONS_DEFAULT_LIMIT,
5
+ MCP_SKILLS_DEFAULT_LIMIT
6
+ } from "./chunk-6C6QZ4PM.js";
7
+ import {
8
+ external_exports
9
+ } from "./chunk-U6PF3YII.js";
10
+
11
+ // src/vault/types.ts
12
+ var SessionFrontmatterSchema = external_exports.object({
13
+ type: external_exports.literal("session"),
14
+ id: external_exports.string(),
15
+ agent: external_exports.string(),
16
+ user: external_exports.string(),
17
+ started: external_exports.string(),
18
+ ended: external_exports.string().optional(),
19
+ parent: external_exports.string().optional(),
20
+ parent_reason: external_exports.string().optional(),
21
+ plan: external_exports.string().optional(),
22
+ // backward compat read path
23
+ plans: external_exports.array(external_exports.string()).optional(),
24
+ // new: multiple plans
25
+ branch: external_exports.string().optional(),
26
+ tags: external_exports.array(external_exports.string()).default([]),
27
+ tools_used: external_exports.number().int().optional(),
28
+ files_changed: external_exports.number().int().optional()
29
+ });
30
+ var PLAN_STATUSES = ["active", "in_progress", "completed", "abandoned"];
31
+ var PlanFrontmatterSchema = external_exports.object({
32
+ type: external_exports.literal("plan"),
33
+ id: external_exports.string(),
34
+ status: external_exports.enum(PLAN_STATUSES).default("active"),
35
+ created: external_exports.string(),
36
+ author: external_exports.string().optional(),
37
+ tags: external_exports.array(external_exports.string()).default([])
38
+ });
39
+ var OBSERVATION_TYPES = ["gotcha", "bug_fix", "decision", "discovery", "trade_off", "cross-cutting"];
40
+ var SPORE_STATUSES = ["active", "superseded", "archived"];
41
+ var SporeFrontmatterSchema = external_exports.object({
42
+ type: external_exports.literal("spore"),
43
+ id: external_exports.string(),
44
+ observation_type: external_exports.string(),
45
+ status: external_exports.enum(SPORE_STATUSES).default("active"),
46
+ session: external_exports.string().optional(),
47
+ plan: external_exports.string().optional(),
48
+ superseded_by: external_exports.string().optional(),
49
+ consolidated_from: external_exports.array(external_exports.string()).optional(),
50
+ created: external_exports.string(),
51
+ tags: external_exports.array(external_exports.string()).default([])
52
+ });
53
+ var ARTIFACT_TYPES = ["spec", "plan", "rfc", "doc", "other"];
54
+ var ArtifactFrontmatterSchema = external_exports.object({
55
+ type: external_exports.literal("artifact"),
56
+ id: external_exports.string(),
57
+ artifact_type: external_exports.enum(ARTIFACT_TYPES).default("other"),
58
+ source_path: external_exports.string(),
59
+ title: external_exports.string(),
60
+ last_captured_by: external_exports.string(),
61
+ created: external_exports.string(),
62
+ updated: external_exports.string(),
63
+ tags: external_exports.array(external_exports.string()).default([])
64
+ });
65
+ var TeamMemberFrontmatterSchema = external_exports.object({
66
+ type: external_exports.literal("team-member"),
67
+ user: external_exports.string(),
68
+ joined: external_exports.string(),
69
+ role: external_exports.string().optional(),
70
+ tags: external_exports.array(external_exports.string()).default([])
71
+ });
72
+
73
+ // src/mcp/tool-definitions.ts
74
+ var PLAN_STATUS_FILTER = [...PLAN_STATUSES, "all"];
75
+ var DEFAULT_CORTEX_PRIORITY = 100;
76
+ function getToolCortexPriority(tool) {
77
+ return tool.cortex?.priority ?? DEFAULT_CORTEX_PRIORITY;
78
+ }
79
+ var TOOL_SEARCH = "myco_search";
80
+ var TOOL_RECALL = "myco_recall";
81
+ var TOOL_REMEMBER = "myco_remember";
82
+ var TOOL_PLANS = "myco_plans";
83
+ var TOOL_SAVE_PLAN = "myco_save_plan";
84
+ var TOOL_SESSIONS = "myco_sessions";
85
+ var TOOL_TEAM = "myco_team";
86
+ var TOOL_GRAPH = "myco_graph";
87
+ var TOOL_SUPERSEDE = "myco_supersede";
88
+ var TOOL_CONSOLIDATE = "myco_consolidate";
89
+ var TOOL_CONTEXT = "myco_context";
90
+ var TOOL_SKILLS = "myco_skills";
91
+ var TOOL_SKILL_CANDIDATES = "myco_skill_candidates";
92
+ var TOOL_COLLECTIVE_SEARCH = "collective_search";
93
+ var TOOL_COLLECTIVE_PROJECTS = "collective_projects";
94
+ var TOOL_COLLECTIVE_PROJECT = "collective_project";
95
+ var TOOL_CORTEX = "myco_cortex";
96
+ var TOOL_RUNS = "myco_runs";
97
+ var TOOL_EVALUATIONS = "myco_evaluations";
98
+ var TOOL_WRITE_INTENTS = "myco_write_intents";
99
+ var TOOL_PHASE_AUDIT = "myco_phase_audit";
100
+ var TOOL_RESUME_RUN = "myco_resume_run";
101
+ var TOOL_DIGEST_REVISIONS = "myco_digest_revisions";
102
+ var PROP_BRANCH = "Git branch name to find related sessions and plans";
103
+ var PROP_SINCE = "ISO timestamp \u2014 entries after this date";
104
+ var PROP_TAGS = "Tags for discoverability \u2014 component names, technologies, concepts";
105
+ var TOOL_DEFINITIONS = [
106
+ {
107
+ name: TOOL_SEARCH,
108
+ description: "Search the vault for prior sessions, spores, plans, and artifacts. Use before making design decisions, when debugging non-obvious issues, or when wondering why code is structured a certain way.",
109
+ cortex: {
110
+ guidance: "Use for prior decisions, bugs, and rationale when you know the topic but not the exact note.",
111
+ priority: 20
112
+ },
113
+ inputSchema: {
114
+ type: "object",
115
+ properties: {
116
+ query: { type: "string", description: "Natural language search query \u2014 describe what you are looking for" },
117
+ type: { type: "string", enum: ["session", "plan", "spore", "all"], description: "Filter by note type (default: all)" },
118
+ limit: { type: "number", description: `Max results (default: ${MCP_SEARCH_DEFAULT_LIMIT})` }
119
+ },
120
+ required: ["query"]
121
+ }
122
+ },
123
+ {
124
+ name: TOOL_RECALL,
125
+ description: "Look up a specific vault note by ID \u2014 returns the full content of a session, spore, or plan. Use when you have a note ID from search results or graph traversal and need the complete details.",
126
+ cortex: {
127
+ guidance: "Use after search finds a promising result and you need the full note.",
128
+ priority: 30
129
+ },
130
+ inputSchema: {
131
+ type: "object",
132
+ properties: {
133
+ note_id: { type: "string", description: 'Note ID to look up (e.g., "session-abc123", "decision-xyz789", "plan-feature-x")' }
134
+ },
135
+ required: ["note_id"]
136
+ }
137
+ },
138
+ {
139
+ name: TOOL_REMEMBER,
140
+ description: "Save a decision, gotcha, bug fix, discovery, or trade-off as a permanent spore. Use after making a key decision, fixing a tricky bug, discovering something non-obvious, or encountering a gotcha. Session association is derived by the daemon \u2014 the MCP client does not pass it.",
141
+ cortex: {
142
+ guidance: "Use to save durable decisions, gotchas, discoveries, or bug fixes from this work.",
143
+ priority: 90
144
+ },
145
+ inputSchema: {
146
+ type: "object",
147
+ properties: {
148
+ content: { type: "string", description: "The observation \u2014 include context, reasoning, and what someone encountering this in the future needs to know" },
149
+ type: { type: "string", enum: OBSERVATION_TYPES, description: `Observation type: ${OBSERVATION_TYPES.join(", ")}` },
150
+ tags: { type: "array", items: { type: "string" }, description: PROP_TAGS }
151
+ },
152
+ required: ["content", "type"]
153
+ }
154
+ },
155
+ {
156
+ name: TOOL_PLANS,
157
+ description: 'List or delete implementation plans. op: "list" (default) returns plan summaries \u2014 filter by status, session, or a single id. op: "delete" removes a plan by id; cross-machine rows require force_remote: true. Use list to check what work is in flight before starting new tasks; use delete when retiring obsolete plans.',
158
+ annotations: {
159
+ // Destructive because op: "delete" removes a plan and enqueues a tombstone.
160
+ // Consumers should confirm before running this tool with op: "delete".
161
+ readOnlyHint: false,
162
+ destructiveHint: true,
163
+ idempotentHint: true,
164
+ openWorldHint: false
165
+ },
166
+ cortex: {
167
+ guidance: 'Use op: "list" before implementation when approved plans or specs may already exist; pass session to scope to the current work, or id to fetch a single plan with content.',
168
+ priority: 50
169
+ },
170
+ inputSchema: {
171
+ type: "object",
172
+ properties: {
173
+ op: { type: "string", enum: ["list", "delete"], description: 'Operation (default: "list")' },
174
+ status: { type: "string", enum: PLAN_STATUS_FILTER, description: 'Filter by status (default: all statuses); ignored for op: "delete"' },
175
+ id: { type: "string", description: 'Plan id. Required for op: "delete". For op: "list" returns that plan with content.' },
176
+ session: { type: "string", description: "Filter list to plans belonging to this session; mutually exclusive with id." },
177
+ limit: { type: "number", description: 'Max results for op: "list"' },
178
+ force_remote: { type: "boolean", description: 'Allow op: "delete" to remove a plan belonging to another machine. Enqueues a tombstone for team sync.' }
179
+ }
180
+ }
181
+ },
182
+ {
183
+ name: TOOL_SAVE_PLAN,
184
+ description: "Persist a plan directly into Myco for a session. Use this when you generated or revised a plan and want it captured reliably. If the plan is also being written to disk, pass the same source_path so direct persistence and file capture reconcile to one logical plan. Note: plan_key creates a stable namespace (session:<id>:key:<name>) distinct from transcript <tag> capture (session:<id>:tag:<name>) \u2014 the two do not merge. Dropping the transcript tag while also calling myco_save_plan with plan_key=tag will produce two separate rows.",
185
+ cortex: {
186
+ guidance: "Use when you create or materially revise a plan and want it persisted to Myco. Pass `source_path` when the plan is also written to disk; otherwise use a stable `plan_key`. Note: `plan_key` rows are a separate namespace from transcript `<tag>` capture \u2014 reusing the same name in both channels creates two rows, not one.",
187
+ priority: 60
188
+ },
189
+ inputSchema: {
190
+ type: "object",
191
+ properties: {
192
+ session_id: { type: "string", description: "Session id the plan belongs to" },
193
+ content: { type: "string", description: "Markdown plan content to persist" },
194
+ source_path: { type: "string", description: "Path to the plan file when the plan is also written to disk" },
195
+ plan_key: { type: "string", description: "Stable key for non-file-backed plans (for example: primary)" },
196
+ title: { type: "string", description: "Optional explicit title. Defaults to the first Markdown H1, then file name or humanized plan_key." },
197
+ status: { type: "string", enum: PLAN_STATUSES, description: `Plan status: ${PLAN_STATUSES.join(", ")}` },
198
+ tags: { type: "array", items: { type: "string" }, description: PROP_TAGS }
199
+ },
200
+ required: ["session_id", "content"],
201
+ oneOf: [
202
+ { required: ["source_path"] },
203
+ { required: ["plan_key"] }
204
+ ]
205
+ }
206
+ },
207
+ {
208
+ name: TOOL_SESSIONS,
209
+ description: "Browse past coding sessions with summaries, tools used, and linked spores. Use to understand what work has been done on a feature or branch.",
210
+ cortex: {
211
+ guidance: "Use when continuing related work or recovering recent implementation context.",
212
+ priority: 40
213
+ },
214
+ inputSchema: {
215
+ type: "object",
216
+ properties: {
217
+ plan: { type: "string", description: "Filter to the session linked to this plan id" },
218
+ branch: { type: "string", description: PROP_BRANCH },
219
+ user: { type: "string", description: "Filter sessions by user" },
220
+ since: { type: "string", description: PROP_SINCE },
221
+ status: { type: "string", description: "Filter by session status (e.g., active, completed)" },
222
+ limit: { type: "number", description: `Max results (default: ${MCP_SESSIONS_DEFAULT_LIMIT})` }
223
+ }
224
+ }
225
+ },
226
+ {
227
+ name: TOOL_TEAM,
228
+ description: "List team members registered in the vault. Returns id, user, role, joined, and tags per member. Phase-1 scope: no filters.",
229
+ cortex: {
230
+ guidance: "Use for current team topology and shared project context.",
231
+ priority: 70,
232
+ requiresTeam: true
233
+ },
234
+ inputSchema: {
235
+ type: "object",
236
+ properties: {}
237
+ }
238
+ },
239
+ {
240
+ name: TOOL_GRAPH,
241
+ description: "Traverse connections between records via graph edges \u2014 explore how sessions, spores, and plans relate to each other.",
242
+ inputSchema: {
243
+ type: "object",
244
+ properties: {
245
+ note_id: { type: "string", description: 'Note ID to start from (e.g., "session-abc123" or "decision-xyz789")' },
246
+ direction: { type: "string", enum: ["incoming", "outgoing", "both"], description: "Link direction to follow (default: both)" },
247
+ depth: { type: "number", description: "How many hops to traverse, 1-3 (default: 1)" }
248
+ },
249
+ required: ["note_id"]
250
+ }
251
+ },
252
+ {
253
+ name: TOOL_SUPERSEDE,
254
+ description: "Mark a spore as outdated and replaced by a newer one. Use when a decision was reversed, a gotcha was fixed, a discovery was wrong, or the codebase changed and an observation no longer applies. The old spore is preserved but marked superseded.",
255
+ cortex: {
256
+ guidance: "Use when existing knowledge is outdated and should stop guiding future runs.",
257
+ priority: 100
258
+ },
259
+ inputSchema: {
260
+ type: "object",
261
+ properties: {
262
+ old_spore_id: { type: "string", description: 'ID of the outdated spore (e.g., "decision-abc123")' },
263
+ new_spore_id: { type: "string", description: "ID of the replacement spore" },
264
+ reason: { type: "string", description: "Why the old spore is being superseded" }
265
+ },
266
+ required: ["old_spore_id", "new_spore_id"]
267
+ }
268
+ },
269
+ {
270
+ name: TOOL_CONSOLIDATE,
271
+ description: "Merge 2+ related spores into a single comprehensive wisdom note. Inserts a new spore with the consolidated content; each source spore is marked superseded with a resolution_events row linking it to the new wisdom spore. Use when multiple observations describe aspects of the same insight, share a root cause, or would be more useful as one reference.",
272
+ cortex: {
273
+ guidance: "Use when several related learnings should become one durable wisdom artifact.",
274
+ priority: 110
275
+ },
276
+ inputSchema: {
277
+ type: "object",
278
+ properties: {
279
+ source_spore_ids: { type: "array", items: { type: "string" }, description: "IDs of the spores to merge (minimum 2)" },
280
+ consolidated_content: { type: "string", description: "The merged, comprehensive content \u2014 synthesize, do not just concatenate" },
281
+ observation_type: { type: "string", enum: OBSERVATION_TYPES, description: `Type for the consolidated wisdom note: ${OBSERVATION_TYPES.join(", ")}` },
282
+ tags: { type: "array", items: { type: "string" }, description: PROP_TAGS },
283
+ reason: { type: "string", description: "Optional reason recorded on each resolution event" }
284
+ },
285
+ required: ["source_spore_ids", "consolidated_content", "observation_type"]
286
+ }
287
+ },
288
+ {
289
+ name: TOOL_CONTEXT,
290
+ description: "Retrieve Myco's pre-computed project digest \u2014 a rich, always-current synthesis of project history, decisions, patterns, active work, and institutional knowledge. Call this at the start of a new task or session to orient yourself on the project before taking action; call it again after long interruptions or when switching contexts. This is NOT a search \u2014 it's the project's accumulated understanding, served instantly. Available tiers: 1500 (executive briefing, one-screen overview), 5000 (deep onboarding, default), 10000 (comprehensive institutional knowledge). Prefer this over myco_search when you need broad project orientation; use myco_search when you need to find specific prior decisions or bug fixes.",
291
+ cortex: {
292
+ guidance: "Use for broad project orientation or when you want the current digest before planning changes.",
293
+ priority: 10
294
+ },
295
+ inputSchema: {
296
+ type: "object",
297
+ properties: {
298
+ tier: {
299
+ type: "number",
300
+ enum: [1500, 5e3, 1e4],
301
+ description: "Token budget tier. Larger tiers include more detail. Default: 5000."
302
+ }
303
+ }
304
+ }
305
+ },
306
+ {
307
+ name: TOOL_SKILLS,
308
+ description: "List and inspect skills generated by Myco. Use to see what skills are active, check skill details, or find skills by status.",
309
+ inputSchema: {
310
+ type: "object",
311
+ properties: {
312
+ id: { type: "string", description: "Get a specific skill by ID or name" },
313
+ status: { type: "string", description: "Filter by status: active, stale, retired" },
314
+ limit: { type: "number", description: `Max results (default: ${MCP_SKILLS_DEFAULT_LIMIT})` }
315
+ }
316
+ }
317
+ },
318
+ {
319
+ name: TOOL_SKILL_CANDIDATES,
320
+ description: "List and manage skill candidates \u2014 observations identified as potential skills. Use to see pending candidates, approve, or dismiss them.",
321
+ inputSchema: {
322
+ type: "object",
323
+ properties: {
324
+ id: { type: "string", description: "Get a specific candidate by ID" },
325
+ action: { type: "string", enum: ["list", "approve", "dismiss"], description: "Action to perform (default: 'list')" },
326
+ status: { type: "string", description: "Filter by status: identified, approved, generated, dismissed" },
327
+ limit: { type: "number", description: `Max results (default: ${MCP_SKILLS_DEFAULT_LIMIT})` }
328
+ }
329
+ }
330
+ },
331
+ {
332
+ name: TOOL_CORTEX,
333
+ description: 'Cortex instruction + prompt-builder surface. op: "get" returns the current session-start instructions snapshot. op: "refresh" triggers the cortex-instructions task to regenerate them. op: "build_prompt" starts the cortex-prompt-builder task for a goal (required) and optional symbiont. op: "get_prompt_result" polls a prompt-builder run by run_id. Refresh and build_prompt are not read-only \u2014 they start background runs.',
334
+ annotations: {
335
+ // Mixed: get/get_prompt_result are read-only, refresh/build_prompt kick
336
+ // off background work. Mark conservatively — consumers should not silently
337
+ // auto-run this tool.
338
+ readOnlyHint: false,
339
+ destructiveHint: false,
340
+ idempotentHint: false,
341
+ openWorldHint: false
342
+ },
343
+ cortex: {
344
+ guidance: 'Use op: "get" to read your own session-start Cortex instructions; use op: "build_prompt" + "get_prompt_result" when you need the prompt-builder to draft a prompt for a specific goal.',
345
+ priority: 95
346
+ },
347
+ inputSchema: {
348
+ type: "object",
349
+ properties: {
350
+ op: { type: "string", enum: ["get", "refresh", "build_prompt", "get_prompt_result"], description: "Cortex operation" },
351
+ run_id: { type: "string", description: 'Required for op: "get_prompt_result"' },
352
+ goal: { type: "string", description: 'Required for op: "build_prompt" \u2014 the task the prompt will be built for' },
353
+ symbiont: { type: "string", description: "Optional symbiont/agent name the prompt should be tuned for; defaults to the first enabled symbiont" }
354
+ },
355
+ required: ["op"]
356
+ }
357
+ },
358
+ {
359
+ name: TOOL_RUNS,
360
+ description: 'Read agent run history. op: "list" (default) returns recent runs with runtime/provider/model/token/cost/reasoning fields \u2014 filter by task, agent_id, limit. op: "get" with id returns a single run including write_intents totals and duration_ms. Use after a run completes to check your own token budget, cost, and reasoning level \u2014 particularly useful when debugging a run that exhausted context.',
361
+ annotations: {
362
+ readOnlyHint: true,
363
+ destructiveHint: false,
364
+ idempotentHint: true,
365
+ openWorldHint: false
366
+ },
367
+ cortex: {
368
+ guidance: 'Use op: "get" with your run id to check your own token budget, cost, and reasoning level \u2014 especially after a run that exhausted context or failed. Use op: "list" to browse recent runs for a task.',
369
+ priority: 85
370
+ },
371
+ inputSchema: {
372
+ type: "object",
373
+ properties: {
374
+ op: { type: "string", enum: ["list", "get"], description: 'Operation (default: "list")' },
375
+ id: { type: "string", description: 'Required for op: "get" \u2014 the run id' },
376
+ task: { type: "string", description: 'Filter op: "list" by task name' },
377
+ agent_id: { type: "string", description: 'Filter op: "list" by agent id' },
378
+ limit: { type: "number", description: 'Max results for op: "list" (default: 50)' }
379
+ }
380
+ }
381
+ },
382
+ {
383
+ name: TOOL_EVALUATIONS,
384
+ description: 'Create, list, or fetch agent evaluations. An evaluation fans out a single task across a cartesian product of (runtime \xD7 reasoning \xD7 model) cells so outputs can be compared side by side. op: "list" (default) returns newest-first summaries with an optional limit. op: "get" with id returns the evaluation + child runs + aggregate stats. op: "create" requires task_id and matrix; cells execute sequentially in the background \u2014 the response returns the evaluationId + cellCount. op: "create" is NOT read-only; it starts background runs.',
385
+ annotations: {
386
+ // Mixed ops: list/get are read-only, create kicks off background runs.
387
+ // Mark conservatively so clients confirm before auto-running with op: "create".
388
+ readOnlyHint: false,
389
+ destructiveHint: false,
390
+ idempotentHint: false,
391
+ openWorldHint: false
392
+ },
393
+ cortex: {
394
+ guidance: 'Use op: "list" to see recent matrix evaluations, op: "get" to inspect cells + aggregate stats, and op: "create" to fan a task out across runtime/reasoning/model cells for side-by-side comparison.',
395
+ priority: 88
396
+ },
397
+ inputSchema: {
398
+ type: "object",
399
+ properties: {
400
+ op: { type: "string", enum: ["list", "get", "create"], description: 'Operation (default: "list")' },
401
+ status: { type: "string", description: 'Filter op: "list" by status (reserved; currently ignored by the route)' },
402
+ limit: { type: "number", description: 'Max results for op: "list" (default: 50)' },
403
+ id: { type: "string", description: 'Required for op: "get" \u2014 the evaluation id' },
404
+ task_id: { type: "string", description: 'Required for op: "create" \u2014 id of the agent task to evaluate' },
405
+ matrix: {
406
+ type: "object",
407
+ description: 'Required for op: "create". Matrix payload: { runtimes?, reasoningLevels?, models?, dryRun?, notes?, phases? }. Empty arrays expand to defaults. See /api/agent/evaluations POST body for full shape.'
408
+ },
409
+ notes: { type: "string", description: 'Optional notes stored alongside the evaluation row (op: "create" only)' }
410
+ }
411
+ }
412
+ },
413
+ {
414
+ name: TOOL_WRITE_INTENTS,
415
+ description: "Inspect the write-intents recorded during a dry-run \u2014 what the agent would have done (tool_name, tool_input, synthetic_output) without actually writing. Paginated via limit (default 500, max 5000) and offset. Use with myco_runs to verify safety before re-running the same task without dry_run.",
416
+ annotations: {
417
+ readOnlyHint: true,
418
+ destructiveHint: false,
419
+ idempotentHint: true,
420
+ openWorldHint: false
421
+ },
422
+ cortex: {
423
+ guidance: 'Use after a dry-run to inspect what writes the agent would have performed \u2014 close the "dry-run \u2192 verify \u2192 real-run" loop before repeating the task without dry_run.',
424
+ priority: 86
425
+ },
426
+ inputSchema: {
427
+ type: "object",
428
+ properties: {
429
+ run_id: { type: "string", description: "The run id whose write-intents you want to inspect" },
430
+ limit: { type: "number", description: "Max results (default: 500, max: 5000)" },
431
+ offset: { type: "number", description: "Pagination offset (default: 0)" }
432
+ },
433
+ required: ["run_id"]
434
+ }
435
+ },
436
+ {
437
+ name: TOOL_PHASE_AUDIT,
438
+ description: "Read the per-phase audit trail for an agent run \u2014 what each phase did, its cost, tool-call counts, reasoning level, and any write intents. Returns a joined view over agent_runs, agent_reports, agent_turns, usage_data, checkpoints, and (for dry runs) agent_run_write_intents. Essential for debugging a failed or mis-executing run.",
439
+ annotations: {
440
+ readOnlyHint: true,
441
+ destructiveHint: false,
442
+ idempotentHint: true,
443
+ openWorldHint: false
444
+ },
445
+ cortex: {
446
+ guidance: "Use when debugging a failed or mis-executing run \u2014 returns the per-phase cost, tool counts, reasoning level, and write intents in one payload.",
447
+ priority: 87
448
+ },
449
+ inputSchema: {
450
+ type: "object",
451
+ properties: {
452
+ run_id: { type: "string", description: "The run id whose phase audit you want to inspect" }
453
+ },
454
+ required: ["run_id"]
455
+ }
456
+ },
457
+ {
458
+ name: TOOL_RESUME_RUN,
459
+ description: 'Resume a paused or interrupted agent run. The run must be in a resumable state (resumable=1 AND status="failed" per the route) \u2014 check status via myco_runs first. The resume starts a new background phase and returns immediately with {ok, message, runId}. NOT idempotent: each successful call starts a fresh phase.',
460
+ annotations: {
461
+ // Starts a new background phase; mark as mutating + non-idempotent so
462
+ // clients confirm before repeating. Not "destructive" (no data is
463
+ // removed) but also not "read-only".
464
+ readOnlyHint: false,
465
+ destructiveHint: false,
466
+ idempotentHint: false,
467
+ openWorldHint: false
468
+ },
469
+ cortex: {
470
+ guidance: 'Use to resume a paused or interrupted agent run after verifying (via myco_runs) that its resumable flag is set and its status is "failed".',
471
+ priority: 89
472
+ },
473
+ inputSchema: {
474
+ type: "object",
475
+ properties: {
476
+ id: { type: "string", description: "The run id to resume" },
477
+ mode: { type: "string", enum: ["manual", "scheduled"], description: 'Resume mode (default: "manual"). Scheduled is reserved for the daemon scheduler.' }
478
+ },
479
+ required: ["id"]
480
+ }
481
+ },
482
+ {
483
+ name: TOOL_DIGEST_REVISIONS,
484
+ description: "List historical digest revisions for the given (agent_id, tier). Revisions are append-only, so this surface shows how the project's digest has evolved over time. tier is required; agent_id defaults to the primary agent on the daemon side. Restore (rolling a past revision back into the live digest) is intentionally UI-only and is NOT exposed via MCP.",
485
+ annotations: {
486
+ readOnlyHint: true,
487
+ destructiveHint: false,
488
+ idempotentHint: true,
489
+ openWorldHint: false
490
+ },
491
+ cortex: {
492
+ guidance: "Use to see how the project digest has evolved for a given tier \u2014 restore is UI-only.",
493
+ priority: 92
494
+ },
495
+ inputSchema: {
496
+ type: "object",
497
+ properties: {
498
+ agent_id: { type: "string", description: "Optional \u2014 defaults to the primary agent on the daemon side" },
499
+ tier: { type: "number", description: "Required \u2014 the digest tier (for example 1500, 5000, 10000)" },
500
+ limit: { type: "number", description: "Max results (default: 50)" }
501
+ },
502
+ required: ["tier"]
503
+ }
504
+ }
505
+ ];
506
+ var COLLECTIVE_TOOL_DEFINITIONS = [
507
+ {
508
+ name: TOOL_COLLECTIVE_SEARCH,
509
+ description: "Search across connected projects in the active Myco Collective. Results include project attribution.",
510
+ cortex: {
511
+ guidance: "Use for cross-project knowledge across the connected collective.",
512
+ priority: 80,
513
+ requiresCollective: true
514
+ },
515
+ inputSchema: {
516
+ type: "object",
517
+ properties: {
518
+ query: { type: "string", description: "Natural language search query across the connected Collective projects" },
519
+ project: { type: "string", description: "Optional project id or project name filter" },
520
+ limit: { type: "number", description: `Max results (default: ${MCP_SEARCH_DEFAULT_LIMIT})` }
521
+ },
522
+ required: ["query"]
523
+ }
524
+ },
525
+ {
526
+ name: TOOL_COLLECTIVE_PROJECTS,
527
+ description: "List the projects connected to the active Myco Collective.",
528
+ cortex: {
529
+ guidance: "Use to discover relevant collective projects before drilling deeper.",
530
+ priority: 81,
531
+ requiresCollective: true
532
+ },
533
+ inputSchema: {
534
+ type: "object",
535
+ properties: {}
536
+ }
537
+ },
538
+ {
539
+ name: TOOL_COLLECTIVE_PROJECT,
540
+ description: "Get metadata for a single project connected to the active Myco Collective.",
541
+ cortex: {
542
+ guidance: "Use when you know the collective project and need its focused context.",
543
+ priority: 82,
544
+ requiresCollective: true
545
+ },
546
+ inputSchema: {
547
+ type: "object",
548
+ properties: {
549
+ project: { type: "string", description: "Project id or project name" },
550
+ include_digest: { type: "boolean", description: "Request digest information when available" }
551
+ },
552
+ required: ["project"]
553
+ }
554
+ }
555
+ ];
556
+
557
+ export {
558
+ PLAN_STATUSES,
559
+ getToolCortexPriority,
560
+ TOOL_SEARCH,
561
+ TOOL_RECALL,
562
+ TOOL_REMEMBER,
563
+ TOOL_PLANS,
564
+ TOOL_SAVE_PLAN,
565
+ TOOL_SESSIONS,
566
+ TOOL_TEAM,
567
+ TOOL_GRAPH,
568
+ TOOL_SUPERSEDE,
569
+ TOOL_CONSOLIDATE,
570
+ TOOL_CONTEXT,
571
+ TOOL_SKILLS,
572
+ TOOL_SKILL_CANDIDATES,
573
+ TOOL_COLLECTIVE_SEARCH,
574
+ TOOL_COLLECTIVE_PROJECTS,
575
+ TOOL_COLLECTIVE_PROJECT,
576
+ TOOL_CORTEX,
577
+ TOOL_RUNS,
578
+ TOOL_EVALUATIONS,
579
+ TOOL_WRITE_INTENTS,
580
+ TOOL_PHASE_AUDIT,
581
+ TOOL_RESUME_RUN,
582
+ TOOL_DIGEST_REVISIONS,
583
+ TOOL_DEFINITIONS,
584
+ COLLECTIVE_TOOL_DEFINITIONS
585
+ };
586
+ //# sourceMappingURL=chunk-CESKJD44.js.map