@goondocks/myco 0.21.0 → 0.21.2
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.
- package/bin/myco-run +68 -7
- package/dist/{agent-eval-RJSQI5S2.js → agent-eval-2MQKTXX3.js} +7 -6
- package/dist/{agent-eval-RJSQI5S2.js.map → agent-eval-2MQKTXX3.js.map} +1 -1
- package/dist/{agent-run-2JSYFOKU.js → agent-run-XJBTSVJR.js} +5 -5
- package/dist/{agent-tasks-APFJIM2T.js → agent-tasks-7MWBZOC7.js} +5 -5
- package/dist/{chunk-75Z7UKDY.js → chunk-4D22KTXY.js} +2 -2
- package/dist/{chunk-P66DLD6G.js → chunk-6FBLL7MD.js} +8 -2
- package/dist/chunk-6FBLL7MD.js.map +1 -0
- package/dist/{chunk-JZS6GZ6T.js → chunk-AUIXX33A.js} +10 -3
- package/dist/chunk-AUIXX33A.js.map +1 -0
- package/dist/{chunk-F3OEQYLS.js → chunk-DBBO6FHE.js} +33 -30
- package/dist/{chunk-F3OEQYLS.js.map → chunk-DBBO6FHE.js.map} +1 -1
- package/dist/{chunk-CESKJD44.js → chunk-DMPCC7V6.js} +19 -11
- package/dist/chunk-DMPCC7V6.js.map +1 -0
- package/dist/{chunk-RL5R4CQU.js → chunk-DTWUHHFI.js} +39 -2
- package/dist/{chunk-RL5R4CQU.js.map → chunk-DTWUHHFI.js.map} +1 -1
- package/dist/{chunk-XL75KZGI.js → chunk-EKZG2MCD.js} +7 -3
- package/dist/chunk-EKZG2MCD.js.map +1 -0
- package/dist/{chunk-NGH7U6A3.js → chunk-HCT7RMM2.js} +487 -98
- package/dist/chunk-HCT7RMM2.js.map +1 -0
- package/dist/{chunk-G6QIBNZM.js → chunk-IMW5TJ3O.js} +7 -6
- package/dist/chunk-IMW5TJ3O.js.map +1 -0
- package/dist/chunk-LQIPXVDH.js +17 -0
- package/dist/chunk-LQIPXVDH.js.map +1 -0
- package/dist/{chunk-5ZG4RMUH.js → chunk-N2DGFACQ.js} +2 -2
- package/dist/{chunk-VHNRMM4O.js → chunk-OTQH5KZW.js} +87 -37
- package/dist/chunk-OTQH5KZW.js.map +1 -0
- package/dist/{chunk-6LB7XELY.js → chunk-QATYARI5.js} +15 -13
- package/dist/chunk-QATYARI5.js.map +1 -0
- package/dist/{chunk-LVIY7P35.js → chunk-QLLBJEM7.js} +5 -1
- package/dist/chunk-QLLBJEM7.js.map +1 -0
- package/dist/{chunk-DJ3IHNYO.js → chunk-TFRUDNLI.js} +2 -2
- package/dist/{chunk-R2JIJBCL.js → chunk-TMAXWERS.js} +87 -4
- package/dist/chunk-TMAXWERS.js.map +1 -0
- package/dist/chunk-TSM6VESW.js +25 -0
- package/dist/chunk-TSM6VESW.js.map +1 -0
- package/dist/{chunk-ILJPRYES.js → chunk-USVFEWYL.js} +2 -2
- package/dist/{chunk-JR54LTPP.js → chunk-W5L5IHP5.js} +3 -3
- package/dist/{chunk-BUTL6IFS.js → chunk-Z55WGA2J.js} +2 -2
- package/dist/{chunk-NGROSFOH.js → chunk-Z66IT5KL.js} +14 -9
- package/dist/chunk-Z66IT5KL.js.map +1 -0
- package/dist/{cli-LNYSTDQM.js → cli-DDHTHU2J.js} +37 -37
- package/dist/{client-NWE4TCNO.js → client-PQU53UQU.js} +5 -3
- package/dist/{detect-PXNM6TA7.js → detect-7NUD5B5R.js} +2 -2
- package/dist/{doctor-TI7EZ3RW.js → doctor-QK6KFY6H.js} +6 -6
- package/dist/{executor-F2YU7HXJ.js → executor-FJCMNSXM.js} +11 -10
- package/dist/{init-KG3TYVGE.js → init-GQPD6HHX.js} +9 -9
- package/dist/{installer-UMH7OJ5A.js → installer-N4UTEACX.js} +2 -2
- package/dist/{loader-NAVVZK63.js → loader-UDNUMEDA.js} +3 -2
- package/dist/{main-5PRQNEEE.js → main-4HKTZFIM.js} +469 -187
- package/dist/main-4HKTZFIM.js.map +1 -0
- package/dist/{open-5A27BCSB.js → open-3P3DDAOA.js} +5 -5
- package/dist/{post-compact-USAODKPQ.js → post-compact-QA5LME2J.js} +7 -7
- package/dist/{post-tool-use-GMMSYBII.js → post-tool-use-QRZMPNYL.js} +6 -6
- package/dist/{post-tool-use-failure-NZVSL2PO.js → post-tool-use-failure-XNHIKBZG.js} +7 -7
- package/dist/{pre-compact-LZ57DLUS.js → pre-compact-HDV6X5QM.js} +7 -7
- package/dist/{registry-M2Z5QBWH.js → registry-F3THYC5M.js} +4 -3
- package/dist/{remove-T3KE6C5N.js → remove-USQDLGTJ.js} +7 -7
- package/dist/{restart-YWDEVZUJ.js → restart-FQLZE2TW.js} +6 -6
- package/dist/{search-GKFDGELR.js → search-5COKV6TD.js} +6 -6
- package/dist/{server-AHUR6CWF.js → server-KRMBRW4T.js} +23 -7
- package/dist/{server-AHUR6CWF.js.map → server-KRMBRW4T.js.map} +1 -1
- package/dist/{session-2ZEPLWW6.js → session-NJCUW3OX.js} +5 -5
- package/dist/{session-end-LWJYQAXX.js → session-end-XD27GRYF.js} +6 -6
- package/dist/{session-start-WTA6GCOQ.js → session-start-RDTXUSYL.js} +11 -11
- package/dist/{setup-llm-E7UU5IO7.js → setup-llm-FYPPJI6W.js} +5 -5
- package/dist/src/agent/definitions/tasks/cortex-instructions.yaml +63 -41
- package/dist/src/agent/definitions/tasks/skill-evolve.yaml +178 -22
- package/dist/src/agent/definitions/tasks/skill-generate.yaml +20 -6
- package/dist/src/agent/definitions/tasks/vault-evolve.yaml +65 -55
- package/dist/src/cli.js +1 -1
- package/dist/src/daemon/main.js +1 -1
- package/dist/src/hooks/post-tool-use.js +1 -1
- package/dist/src/hooks/session-end.js +1 -1
- package/dist/src/hooks/session-start.js +1 -1
- package/dist/src/hooks/stop.js +1 -1
- package/dist/src/hooks/user-prompt-submit.js +1 -1
- package/dist/src/mcp/server.js +1 -1
- package/dist/src/symbionts/manifests/opencode.yaml +7 -0
- package/dist/src/symbionts/templates/agents-starter.md +1 -1
- package/dist/src/symbionts/templates/opencode/plugin.ts +41 -1
- package/dist/src/symbionts/templates/pi/plugin.ts +12 -1
- package/dist/{stats-DFG6S23S.js → stats-JCLZLA5G.js} +6 -6
- package/dist/{stop-WRBTXEVT.js → stop-B7XCXEM5.js} +6 -6
- package/dist/{stop-failure-32MGIG2Q.js → stop-failure-R6QZCUOZ.js} +7 -7
- package/dist/{subagent-start-VFGHQFVL.js → subagent-start-N7A622F3.js} +7 -7
- package/dist/{subagent-stop-663FXG3P.js → subagent-stop-SVOG5MZJ.js} +7 -7
- package/dist/{task-completed-ZCQYEFMZ.js → task-completed-3DL5LJXF.js} +7 -7
- package/dist/{team-JTI5CDUO.js → team-VJ3M263F.js} +3 -3
- package/dist/ui/assets/{index-DGf1h-Ha.js → index-O1kNWlWM.js} +119 -119
- package/dist/ui/assets/index-z2Jm8i4A.css +1 -0
- package/dist/ui/index.html +2 -2
- package/dist/{update-3NBQTG32.js → update-TVXAUJMZ.js} +45 -11
- package/dist/update-TVXAUJMZ.js.map +1 -0
- package/dist/{user-prompt-submit-ME2TBKOS.js → user-prompt-submit-KYO2VGLB.js} +10 -9
- package/dist/user-prompt-submit-KYO2VGLB.js.map +1 -0
- package/dist/{version-GQAFBBPX.js → version-LDFEALUJ.js} +2 -2
- package/package.json +1 -1
- package/skills/myco-rules/SKILL.md +94 -0
- package/skills/{rules → myco-rules}/references/rules-bad-example.md +1 -1
- package/skills/{rules → myco-rules}/references/rules-good-example.md +1 -1
- package/dist/chunk-6LB7XELY.js.map +0 -1
- package/dist/chunk-CESKJD44.js.map +0 -1
- package/dist/chunk-CUDIZJY7.js +0 -36
- package/dist/chunk-CUDIZJY7.js.map +0 -1
- package/dist/chunk-G6QIBNZM.js.map +0 -1
- package/dist/chunk-JZS6GZ6T.js.map +0 -1
- package/dist/chunk-LVIY7P35.js.map +0 -1
- package/dist/chunk-NGH7U6A3.js.map +0 -1
- package/dist/chunk-NGROSFOH.js.map +0 -1
- package/dist/chunk-P66DLD6G.js.map +0 -1
- package/dist/chunk-R2JIJBCL.js.map +0 -1
- package/dist/chunk-VHNRMM4O.js.map +0 -1
- package/dist/chunk-XL75KZGI.js.map +0 -1
- package/dist/main-5PRQNEEE.js.map +0 -1
- package/dist/ui/assets/index-_OP4ifzH.css +0 -1
- package/dist/update-3NBQTG32.js.map +0 -1
- package/dist/user-prompt-submit-ME2TBKOS.js.map +0 -1
- package/skills/myco-curate/SKILL.md +0 -86
- package/skills/rules/SKILL.md +0 -214
- /package/dist/{agent-run-2JSYFOKU.js.map → agent-run-XJBTSVJR.js.map} +0 -0
- /package/dist/{agent-tasks-APFJIM2T.js.map → agent-tasks-7MWBZOC7.js.map} +0 -0
- /package/dist/{chunk-75Z7UKDY.js.map → chunk-4D22KTXY.js.map} +0 -0
- /package/dist/{chunk-5ZG4RMUH.js.map → chunk-N2DGFACQ.js.map} +0 -0
- /package/dist/{chunk-DJ3IHNYO.js.map → chunk-TFRUDNLI.js.map} +0 -0
- /package/dist/{chunk-ILJPRYES.js.map → chunk-USVFEWYL.js.map} +0 -0
- /package/dist/{chunk-JR54LTPP.js.map → chunk-W5L5IHP5.js.map} +0 -0
- /package/dist/{chunk-BUTL6IFS.js.map → chunk-Z55WGA2J.js.map} +0 -0
- /package/dist/{cli-LNYSTDQM.js.map → cli-DDHTHU2J.js.map} +0 -0
- /package/dist/{client-NWE4TCNO.js.map → client-PQU53UQU.js.map} +0 -0
- /package/dist/{detect-PXNM6TA7.js.map → detect-7NUD5B5R.js.map} +0 -0
- /package/dist/{doctor-TI7EZ3RW.js.map → doctor-QK6KFY6H.js.map} +0 -0
- /package/dist/{executor-F2YU7HXJ.js.map → executor-FJCMNSXM.js.map} +0 -0
- /package/dist/{init-KG3TYVGE.js.map → init-GQPD6HHX.js.map} +0 -0
- /package/dist/{installer-UMH7OJ5A.js.map → installer-N4UTEACX.js.map} +0 -0
- /package/dist/{loader-NAVVZK63.js.map → loader-UDNUMEDA.js.map} +0 -0
- /package/dist/{open-5A27BCSB.js.map → open-3P3DDAOA.js.map} +0 -0
- /package/dist/{post-compact-USAODKPQ.js.map → post-compact-QA5LME2J.js.map} +0 -0
- /package/dist/{post-tool-use-GMMSYBII.js.map → post-tool-use-QRZMPNYL.js.map} +0 -0
- /package/dist/{post-tool-use-failure-NZVSL2PO.js.map → post-tool-use-failure-XNHIKBZG.js.map} +0 -0
- /package/dist/{pre-compact-LZ57DLUS.js.map → pre-compact-HDV6X5QM.js.map} +0 -0
- /package/dist/{registry-M2Z5QBWH.js.map → registry-F3THYC5M.js.map} +0 -0
- /package/dist/{remove-T3KE6C5N.js.map → remove-USQDLGTJ.js.map} +0 -0
- /package/dist/{restart-YWDEVZUJ.js.map → restart-FQLZE2TW.js.map} +0 -0
- /package/dist/{search-GKFDGELR.js.map → search-5COKV6TD.js.map} +0 -0
- /package/dist/{session-2ZEPLWW6.js.map → session-NJCUW3OX.js.map} +0 -0
- /package/dist/{session-end-LWJYQAXX.js.map → session-end-XD27GRYF.js.map} +0 -0
- /package/dist/{session-start-WTA6GCOQ.js.map → session-start-RDTXUSYL.js.map} +0 -0
- /package/dist/{setup-llm-E7UU5IO7.js.map → setup-llm-FYPPJI6W.js.map} +0 -0
- /package/dist/{stats-DFG6S23S.js.map → stats-JCLZLA5G.js.map} +0 -0
- /package/dist/{stop-WRBTXEVT.js.map → stop-B7XCXEM5.js.map} +0 -0
- /package/dist/{stop-failure-32MGIG2Q.js.map → stop-failure-R6QZCUOZ.js.map} +0 -0
- /package/dist/{subagent-start-VFGHQFVL.js.map → subagent-start-N7A622F3.js.map} +0 -0
- /package/dist/{subagent-stop-663FXG3P.js.map → subagent-stop-SVOG5MZJ.js.map} +0 -0
- /package/dist/{task-completed-ZCQYEFMZ.js.map → task-completed-3DL5LJXF.js.map} +0 -0
- /package/dist/{team-JTI5CDUO.js.map → team-VJ3M263F.js.map} +0 -0
- /package/dist/{version-GQAFBBPX.js.map → version-LDFEALUJ.js.map} +0 -0
|
@@ -262,67 +262,77 @@ phases:
|
|
|
262
262
|
reasoningLevel: default
|
|
263
263
|
dependsOn: [consolidate]
|
|
264
264
|
prompt: |
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
-
|
|
318
|
-
|
|
265
|
+
Gather material for AT MOST ONE digest tier update per run. The
|
|
266
|
+
rotation decision is made by the `vault_read_digest` tool, not
|
|
267
|
+
by you — the tool returns which tier needs attention (or tells
|
|
268
|
+
you to skip). Over 3 runs every tier gets one deep pass.
|
|
269
|
+
|
|
270
|
+
Total budget: {{max_turns}} turns.
|
|
271
|
+
|
|
272
|
+
## Step 1: Get the rotation decision (1 turn)
|
|
273
|
+
|
|
274
|
+
Call `vault_read_digest` with:
|
|
275
|
+
pick: "rotate_oldest"
|
|
276
|
+
min_staleness_seconds: 1800
|
|
277
|
+
|
|
278
|
+
The tool returns one of two shapes:
|
|
279
|
+
|
|
280
|
+
**Skip shape** — `{mode:"rotate_oldest", skip:true, reason, all_tiers}`.
|
|
281
|
+
Every tier was generated within the last 30 minutes. Call
|
|
282
|
+
`vault_report` with action "skip" passing the reason through.
|
|
283
|
+
STOP — do not run steps 2-3.
|
|
284
|
+
|
|
285
|
+
**Rotate shape** — `{mode:"rotate_oldest", selected_tier,
|
|
286
|
+
selected_generated_at, selected_content, rotation_reason, all_tiers}`.
|
|
287
|
+
Proceed to step 2, scoped to `selected_tier`.
|
|
288
|
+
|
|
289
|
+
## Step 2: Gather material for `selected_tier` (budget: half
|
|
290
|
+
of remaining)
|
|
291
|
+
|
|
292
|
+
Scope the search to what belongs at the selected tier:
|
|
293
|
+
- **1500 (executive briefing):** only critical decisions,
|
|
294
|
+
reversals, state-of-system changes.
|
|
295
|
+
- **5000 (deep onboarding):** trade-offs, patterns, active
|
|
296
|
+
decisions, unresolved gotchas.
|
|
297
|
+
- **10000 (full archive):** any new content worth preserving.
|
|
298
|
+
|
|
299
|
+
Use `vault_search_semantic` for themes from new/superseded spores,
|
|
300
|
+
`vault_spores` for specific content, `vault_sessions` for recent
|
|
301
|
+
session context. Make each call count — do not repeatedly search
|
|
302
|
+
for variations of the same theme. Accept "good enough" findings
|
|
303
|
+
and move on.
|
|
304
|
+
|
|
305
|
+
## Step 3: Produce findings
|
|
306
|
+
|
|
307
|
+
Your final response is the per-tier phases' primary context
|
|
308
|
+
(they cannot call vault_spores or vault_sessions). Structure it:
|
|
309
|
+
|
|
310
|
+
**Chosen tier for this run: <selected_tier>**
|
|
311
|
+
Include the rotation_reason verbatim from the tool so readers
|
|
312
|
+
can audit the decision.
|
|
313
|
+
|
|
314
|
+
**New material to integrate (scoped to the chosen tier):**
|
|
315
|
+
- List each insight with enough detail that the tier writer can
|
|
316
|
+
incorporate it without re-searching
|
|
317
|
+
- Include specific spore content, not just spore counts
|
|
318
|
+
|
|
319
|
+
**Themes and connections** relevant to the chosen tier.
|
|
320
|
+
|
|
321
|
+
**Per-tier directives** — mark exactly the `selected_tier` as
|
|
322
|
+
UPDATE, the other two as SKIP, and include the tool's
|
|
323
|
+
rotation_reason in the UPDATE line:
|
|
324
|
+
- 10000: UPDATE or SKIP + one-line reason
|
|
325
|
+
- 5000: UPDATE or SKIP + one-line reason
|
|
326
|
+
- 1500: UPDATE or SKIP + one-line reason
|
|
327
|
+
|
|
328
|
+
Tools available: {{phase_tools}}.
|
|
319
329
|
tools:
|
|
320
330
|
- vault_spores
|
|
321
331
|
- vault_sessions
|
|
322
332
|
- vault_search_semantic
|
|
323
333
|
- vault_read_digest
|
|
324
334
|
- vault_report
|
|
325
|
-
maxTurns:
|
|
335
|
+
maxTurns: 12
|
|
326
336
|
required: true
|
|
327
337
|
|
|
328
338
|
- name: digest-10000
|
package/dist/src/cli.js
CHANGED
package/dist/src/daemon/main.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
2
|
|
|
3
3
|
// src/entries/daemon.ts
|
|
4
|
-
var { main } = await import("../../main-
|
|
4
|
+
var { main } = await import("../../main-4HKTZFIM.js");
|
|
5
5
|
await main();
|
|
6
6
|
//# sourceMappingURL=main.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
2
|
|
|
3
3
|
// src/entries/post-tool-use.ts
|
|
4
|
-
var { main } = await import("../../post-tool-use-
|
|
4
|
+
var { main } = await import("../../post-tool-use-QRZMPNYL.js");
|
|
5
5
|
await main();
|
|
6
6
|
//# sourceMappingURL=post-tool-use.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
2
|
|
|
3
3
|
// src/entries/session-end.ts
|
|
4
|
-
var { main } = await import("../../session-end-
|
|
4
|
+
var { main } = await import("../../session-end-XD27GRYF.js");
|
|
5
5
|
await main();
|
|
6
6
|
//# sourceMappingURL=session-end.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
2
|
|
|
3
3
|
// src/entries/session-start.ts
|
|
4
|
-
var { main } = await import("../../session-start-
|
|
4
|
+
var { main } = await import("../../session-start-RDTXUSYL.js");
|
|
5
5
|
await main();
|
|
6
6
|
//# sourceMappingURL=session-start.js.map
|
package/dist/src/hooks/stop.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
2
|
|
|
3
3
|
// src/entries/stop.ts
|
|
4
|
-
var { main } = await import("../../stop-
|
|
4
|
+
var { main } = await import("../../stop-B7XCXEM5.js");
|
|
5
5
|
await main();
|
|
6
6
|
//# sourceMappingURL=stop.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
2
|
|
|
3
3
|
// src/entries/user-prompt-submit.ts
|
|
4
|
-
var { main } = await import("../../user-prompt-submit-
|
|
4
|
+
var { main } = await import("../../user-prompt-submit-KYO2VGLB.js");
|
|
5
5
|
await main();
|
|
6
6
|
//# sourceMappingURL=user-prompt-submit.js.map
|
package/dist/src/mcp/server.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
2
|
|
|
3
3
|
// src/entries/mcp-server.ts
|
|
4
|
-
var { main } = await import("../../server-
|
|
4
|
+
var { main } = await import("../../server-KRMBRW4T.js");
|
|
5
5
|
await main();
|
|
6
6
|
//# sourceMappingURL=server.js.map
|
|
@@ -21,6 +21,13 @@ registration:
|
|
|
21
21
|
# opencode.json hosts MCP + permissions under non-standard keys
|
|
22
22
|
mcpTarget: opencode.json
|
|
23
23
|
mcpServersKey: mcp
|
|
24
|
+
# Opencode prepends /opt/homebrew/bin ahead of ~/.local/bin in the env it
|
|
25
|
+
# gives MCP children, so `myco-run` resolves to the prod shim regardless
|
|
26
|
+
# of the user's shell PATH. Bake the runtime.command alias into the MCP
|
|
27
|
+
# command at install time so the spawn skips PATH resolution entirely.
|
|
28
|
+
# Every other symbiont resolves `myco-run` via PATH and then uses the
|
|
29
|
+
# shim's runtime.command walk-up — no install-time substitution needed.
|
|
30
|
+
substituteRuntimeCommand: true
|
|
24
31
|
settingsTarget: opencode.json
|
|
25
32
|
skillsTarget: .agents/skills
|
|
26
33
|
# No instructionsFile — opencode reads AGENTS.md natively
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
|
|
3
3
|
<!-- This starter file was created by Myco. Replace it with your project's rules and conventions. -->
|
|
4
4
|
|
|
5
|
-
Rules haven't been defined yet. Use the `/rules` skill to
|
|
5
|
+
Rules haven't been defined yet. Use the `/myco-rules` skill to add durable project rules, or edit this file directly.
|
|
@@ -282,6 +282,16 @@ function bufferEvent(
|
|
|
282
282
|
* POST a capture event to the daemon with buffer fallback on failure.
|
|
283
283
|
* Used for user_prompt and tool_use events — both are replayed from the
|
|
284
284
|
* buffer by reconcileBufferBatches when the daemon restarts.
|
|
285
|
+
*
|
|
286
|
+
* Two failure modes route to the buffer:
|
|
287
|
+
* 1. Transport failure — HTTP non-200, timeout, network error. `result.ok`
|
|
288
|
+
* is false and we buffer exactly as you'd expect.
|
|
289
|
+
* 2. Server-side drop — HTTP 200 with body `{ ok: true, ignored: reason }`.
|
|
290
|
+
* The daemon chose not to persist the event (capture rules, phantom
|
|
291
|
+
* detection, etc.), but we've seen rule bugs silently discard entire
|
|
292
|
+
* live sessions this way. Treat "ignored" as a drop and buffer it so
|
|
293
|
+
* `reconcileBufferBatches` can recover on the next restart once the
|
|
294
|
+
* underlying cause is fixed.
|
|
285
295
|
*/
|
|
286
296
|
async function postEventWithBuffer(
|
|
287
297
|
directory: string,
|
|
@@ -289,11 +299,18 @@ async function postEventWithBuffer(
|
|
|
289
299
|
event: Record<string, unknown>,
|
|
290
300
|
): Promise<void> {
|
|
291
301
|
const result = await postJson(directory, "/events", event);
|
|
292
|
-
if (!result.ok) {
|
|
302
|
+
if (!result.ok || isIgnoredResponse(result.data)) {
|
|
293
303
|
bufferEvent(directory, sessionId, event);
|
|
294
304
|
}
|
|
295
305
|
}
|
|
296
306
|
|
|
307
|
+
/** True when the daemon returned 200 but signalled it dropped the event. */
|
|
308
|
+
function isIgnoredResponse(data: unknown): boolean {
|
|
309
|
+
if (!isRecord(data)) return false;
|
|
310
|
+
const ignored = data.ignored;
|
|
311
|
+
return typeof ignored === "string" && ignored.length > 0;
|
|
312
|
+
}
|
|
313
|
+
|
|
297
314
|
/** Register an opencode session with the daemon. */
|
|
298
315
|
async function mycoRegisterSession(
|
|
299
316
|
directory: string,
|
|
@@ -523,6 +540,29 @@ export const MycoPlugin = async ({ client, directory, worktree }: { client: any;
|
|
|
523
540
|
activeOpencodeSessions.add(sessionId);
|
|
524
541
|
|
|
525
542
|
const parentSessionId = info.parentID || undefined;
|
|
543
|
+
|
|
544
|
+
// Diagnostic: log the full session.created payload when a parent is
|
|
545
|
+
// present so we can tell sub-agent spawns apart from user-initiated
|
|
546
|
+
// forks. Sub-agents pollute the session list as phantom user sessions;
|
|
547
|
+
// filtering them needs a structural signal we don't have yet. Capture
|
|
548
|
+
// live payloads from both paths (skill invocation vs. TUI fork) and
|
|
549
|
+
// compare. Drop this block once the signal is known.
|
|
550
|
+
if (parentSessionId) {
|
|
551
|
+
try {
|
|
552
|
+
await client.app.log({
|
|
553
|
+
service: "myco",
|
|
554
|
+
level: "info",
|
|
555
|
+
message: "session.created with parentID",
|
|
556
|
+
extra: {
|
|
557
|
+
session_id: sessionId,
|
|
558
|
+
parent_session_id: parentSessionId,
|
|
559
|
+
info: JSON.stringify(info),
|
|
560
|
+
},
|
|
561
|
+
});
|
|
562
|
+
} catch {
|
|
563
|
+
// Diagnostic only — never block registration.
|
|
564
|
+
}
|
|
565
|
+
}
|
|
526
566
|
const contextPromise = parentSessionId
|
|
527
567
|
? (resumeInjectedSessions.has(sessionId)
|
|
528
568
|
? Promise.resolve(null)
|
|
@@ -501,12 +501,23 @@ export default function (pi: ExtensionAPI) {
|
|
|
501
501
|
],
|
|
502
502
|
parameters: Type.Object({
|
|
503
503
|
query: Type.String({ description: "Search query — topic, pattern, or question" }),
|
|
504
|
+
type: Type.Optional(Type.String({ description: "Optional note type filter: session, plan, spore, or all" })),
|
|
505
|
+
observation_type: Type.Optional(Type.String({ description: "Optional spore observation type filter" })),
|
|
506
|
+
status: Type.Optional(Type.String({ description: "Optional semantic status filter" })),
|
|
507
|
+
since: Type.Optional(Type.Number({ description: "Optional created_at lower bound in epoch seconds" })),
|
|
508
|
+
until: Type.Optional(Type.Number({ description: "Optional created_at upper bound in epoch seconds" })),
|
|
504
509
|
}),
|
|
505
510
|
async execute(_toolCallId, params) {
|
|
506
511
|
if (!currentSessionId) {
|
|
507
512
|
return { content: [{ type: "text" as const, text: "No active session" }], details: {} };
|
|
508
513
|
}
|
|
509
|
-
const
|
|
514
|
+
const query = new URLSearchParams({ q: params.query });
|
|
515
|
+
if (params.type) query.set("type", params.type);
|
|
516
|
+
if (params.observation_type) query.set("observation_type", params.observation_type);
|
|
517
|
+
if (params.status) query.set("status", params.status);
|
|
518
|
+
if (params.since !== undefined) query.set("since", String(params.since));
|
|
519
|
+
if (params.until !== undefined) query.set("until", String(params.until));
|
|
520
|
+
const result = await getJson(currentCwd, `/api/search?${query.toString()}`);
|
|
510
521
|
if (!result.ok || !result.data) {
|
|
511
522
|
return { content: [{ type: "text" as const, text: "Search unavailable — Myco daemon may not be running." }], details: {} };
|
|
512
523
|
}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
gatherStats
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-4D22KTXY.js";
|
|
5
5
|
import {
|
|
6
6
|
initVaultDb
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-W5L5IHP5.js";
|
|
8
8
|
import "./chunk-SAKJMNSR.js";
|
|
9
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-OTQH5KZW.js";
|
|
10
10
|
import "./chunk-X3IGT5RV.js";
|
|
11
11
|
import "./chunk-53RPGOEN.js";
|
|
12
12
|
import "./chunk-OUJSQSKE.js";
|
|
13
13
|
import "./chunk-POEPHBQK.js";
|
|
14
14
|
import "./chunk-MYX5NCRH.js";
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-6FBLL7MD.js";
|
|
16
|
+
import "./chunk-Z55WGA2J.js";
|
|
17
17
|
import "./chunk-LPUQPDC2.js";
|
|
18
18
|
import "./chunk-6C6QZ4PM.js";
|
|
19
19
|
import "./chunk-UUHLLQXO.js";
|
|
@@ -94,4 +94,4 @@ function formatUptime(seconds) {
|
|
|
94
94
|
export {
|
|
95
95
|
run
|
|
96
96
|
};
|
|
97
|
-
//# sourceMappingURL=stats-
|
|
97
|
+
//# sourceMappingURL=stats-JCLZLA5G.js.map
|
|
@@ -2,16 +2,16 @@ import { createRequire as __cr } from 'node:module'; const require = __cr(import
|
|
|
2
2
|
import {
|
|
3
3
|
normalizeHookInput,
|
|
4
4
|
readStdin
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-N2DGFACQ.js";
|
|
6
6
|
import "./chunk-ZXZPJJN3.js";
|
|
7
7
|
import {
|
|
8
8
|
resolveVaultDir
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-TSM6VESW.js";
|
|
10
10
|
import {
|
|
11
11
|
DaemonClient
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-6FBLL7MD.js";
|
|
13
|
+
import "./chunk-Z55WGA2J.js";
|
|
14
|
+
import "./chunk-Z66IT5KL.js";
|
|
15
15
|
import "./chunk-LPUQPDC2.js";
|
|
16
16
|
import "./chunk-6C6QZ4PM.js";
|
|
17
17
|
import "./chunk-UUHLLQXO.js";
|
|
@@ -46,4 +46,4 @@ async function main() {
|
|
|
46
46
|
export {
|
|
47
47
|
main
|
|
48
48
|
};
|
|
49
|
-
//# sourceMappingURL=stop-
|
|
49
|
+
//# sourceMappingURL=stop-B7XCXEM5.js.map
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
sendEvent
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-IMW5TJ3O.js";
|
|
5
5
|
import "./chunk-V7XG6V6C.js";
|
|
6
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-N2DGFACQ.js";
|
|
7
7
|
import "./chunk-ZXZPJJN3.js";
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-TSM6VESW.js";
|
|
9
|
+
import "./chunk-6FBLL7MD.js";
|
|
10
|
+
import "./chunk-Z55WGA2J.js";
|
|
11
|
+
import "./chunk-Z66IT5KL.js";
|
|
12
12
|
import "./chunk-LPUQPDC2.js";
|
|
13
13
|
import "./chunk-6C6QZ4PM.js";
|
|
14
14
|
import "./chunk-UUHLLQXO.js";
|
|
@@ -28,4 +28,4 @@ async function main() {
|
|
|
28
28
|
export {
|
|
29
29
|
main
|
|
30
30
|
};
|
|
31
|
-
//# sourceMappingURL=stop-failure-
|
|
31
|
+
//# sourceMappingURL=stop-failure-R6QZCUOZ.js.map
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
sendEvent
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-IMW5TJ3O.js";
|
|
5
5
|
import "./chunk-V7XG6V6C.js";
|
|
6
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-N2DGFACQ.js";
|
|
7
7
|
import "./chunk-ZXZPJJN3.js";
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-TSM6VESW.js";
|
|
9
|
+
import "./chunk-6FBLL7MD.js";
|
|
10
|
+
import "./chunk-Z55WGA2J.js";
|
|
11
|
+
import "./chunk-Z66IT5KL.js";
|
|
12
12
|
import "./chunk-LPUQPDC2.js";
|
|
13
13
|
import "./chunk-6C6QZ4PM.js";
|
|
14
14
|
import "./chunk-UUHLLQXO.js";
|
|
@@ -28,4 +28,4 @@ async function main() {
|
|
|
28
28
|
export {
|
|
29
29
|
main
|
|
30
30
|
};
|
|
31
|
-
//# sourceMappingURL=subagent-start-
|
|
31
|
+
//# sourceMappingURL=subagent-start-N7A622F3.js.map
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
sendEvent
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-IMW5TJ3O.js";
|
|
5
5
|
import "./chunk-V7XG6V6C.js";
|
|
6
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-N2DGFACQ.js";
|
|
7
7
|
import "./chunk-ZXZPJJN3.js";
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-TSM6VESW.js";
|
|
9
|
+
import "./chunk-6FBLL7MD.js";
|
|
10
|
+
import "./chunk-Z55WGA2J.js";
|
|
11
|
+
import "./chunk-Z66IT5KL.js";
|
|
12
12
|
import "./chunk-LPUQPDC2.js";
|
|
13
13
|
import "./chunk-6C6QZ4PM.js";
|
|
14
14
|
import "./chunk-UUHLLQXO.js";
|
|
@@ -30,4 +30,4 @@ async function main() {
|
|
|
30
30
|
export {
|
|
31
31
|
main
|
|
32
32
|
};
|
|
33
|
-
//# sourceMappingURL=subagent-stop-
|
|
33
|
+
//# sourceMappingURL=subagent-stop-SVOG5MZJ.js.map
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
sendEvent
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-IMW5TJ3O.js";
|
|
5
5
|
import "./chunk-V7XG6V6C.js";
|
|
6
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-N2DGFACQ.js";
|
|
7
7
|
import "./chunk-ZXZPJJN3.js";
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-TSM6VESW.js";
|
|
9
|
+
import "./chunk-6FBLL7MD.js";
|
|
10
|
+
import "./chunk-Z55WGA2J.js";
|
|
11
|
+
import "./chunk-Z66IT5KL.js";
|
|
12
12
|
import "./chunk-LPUQPDC2.js";
|
|
13
13
|
import "./chunk-6C6QZ4PM.js";
|
|
14
14
|
import "./chunk-UUHLLQXO.js";
|
|
@@ -29,4 +29,4 @@ async function main() {
|
|
|
29
29
|
export {
|
|
30
30
|
main
|
|
31
31
|
};
|
|
32
|
-
//# sourceMappingURL=task-completed-
|
|
32
|
+
//# sourceMappingURL=task-completed-3DL5LJXF.js.map
|
|
@@ -4,8 +4,8 @@ import {
|
|
|
4
4
|
teamInit,
|
|
5
5
|
teamUpgrade,
|
|
6
6
|
upgradeWorker
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-TMAXWERS.js";
|
|
8
|
+
import "./chunk-DTWUHHFI.js";
|
|
9
9
|
import "./chunk-53RPGOEN.js";
|
|
10
10
|
import "./chunk-OUJSQSKE.js";
|
|
11
11
|
import "./chunk-POEPHBQK.js";
|
|
@@ -21,4 +21,4 @@ export {
|
|
|
21
21
|
teamUpgrade,
|
|
22
22
|
upgradeWorker
|
|
23
23
|
};
|
|
24
|
-
//# sourceMappingURL=team-
|
|
24
|
+
//# sourceMappingURL=team-VJ3M263F.js.map
|