@goondocks/myco 0.3.7 → 0.4.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 (121) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/README.md +9 -4
  4. package/commands/init.md +63 -39
  5. package/commands/setup-llm.md +69 -44
  6. package/commands/status.md +28 -10
  7. package/dist/{chunk-YFG2O5HR.js → chunk-2GJFTIWX.js} +2 -2
  8. package/dist/chunk-4FCFRJIQ.js +147 -0
  9. package/dist/chunk-4FCFRJIQ.js.map +1 -0
  10. package/dist/{chunk-PA3VMINE.js → chunk-AK6GNLPV.js} +6 -1
  11. package/dist/chunk-AK6GNLPV.js.map +1 -0
  12. package/dist/{chunk-JKOALBZC.js → chunk-BNIYWCST.js} +2 -2
  13. package/dist/{chunk-ISCT2SI6.js → chunk-G6ZMTQMJ.js} +7357 -60
  14. package/dist/chunk-G6ZMTQMJ.js.map +1 -0
  15. package/dist/{chunk-7WNE22W7.js → chunk-IVS5MYBL.js} +3 -3
  16. package/dist/{chunk-7WNE22W7.js.map → chunk-IVS5MYBL.js.map} +1 -1
  17. package/dist/{chunk-7VPJK56U.js → chunk-JBD5KP5G.js} +31 -16
  18. package/dist/chunk-JBD5KP5G.js.map +1 -0
  19. package/dist/chunk-NUA7UTIY.js +37 -0
  20. package/dist/chunk-NUA7UTIY.js.map +1 -0
  21. package/dist/{chunk-NYAWCMRZ.js → chunk-OUFSLZTX.js} +4 -4
  22. package/dist/chunk-P7RNAYU7.js +242 -0
  23. package/dist/chunk-P7RNAYU7.js.map +1 -0
  24. package/dist/chunk-QQ36XEJP.js +38 -0
  25. package/dist/chunk-QQ36XEJP.js.map +1 -0
  26. package/dist/chunk-RDXTQ436.js +49 -0
  27. package/dist/chunk-RDXTQ436.js.map +1 -0
  28. package/dist/{chunk-AWF3M57N.js → chunk-S7EIHYE7.js} +8 -8
  29. package/dist/{chunk-AWF3M57N.js.map → chunk-S7EIHYE7.js.map} +1 -1
  30. package/dist/{chunk-QWU7QLZI.js → chunk-TZDDXRHG.js} +10 -10
  31. package/dist/chunk-TZDDXRHG.js.map +1 -0
  32. package/dist/chunk-VYV5IFD6.js +99 -0
  33. package/dist/chunk-VYV5IFD6.js.map +1 -0
  34. package/dist/{chunk-LR7RQCOB.js → chunk-XCPQHC4X.js} +2 -2
  35. package/dist/{chunk-CCIV47S4.js → chunk-XHWIIU5D.js} +8 -9
  36. package/dist/chunk-XHWIIU5D.js.map +1 -0
  37. package/dist/{chunk-FFQNE6CT.js → chunk-YZO22BBI.js} +45 -31
  38. package/dist/chunk-YZO22BBI.js.map +1 -0
  39. package/dist/{chunk-ZBNT6E22.js → chunk-ZCBL5HER.js} +2 -2
  40. package/dist/{cli-3WQSDSW6.js → cli-ZN6VBA7V.js} +23 -17
  41. package/dist/cli-ZN6VBA7V.js.map +1 -0
  42. package/dist/{client-5T4M42UQ.js → client-5SUO2UYH.js} +5 -5
  43. package/dist/{config-MD4XMLUS.js → config-4GGMWGAF.js} +4 -4
  44. package/dist/{detect-providers-LNOLBICR.js → detect-providers-5FU3BN5Q.js} +3 -3
  45. package/dist/{init-RALMQKOQ.js → init-7UXGDOFS.js} +51 -60
  46. package/dist/init-7UXGDOFS.js.map +1 -0
  47. package/dist/{main-S3WSUF5T.js → main-6UPAIDGS.js} +648 -228
  48. package/dist/main-6UPAIDGS.js.map +1 -0
  49. package/dist/{rebuild-JW6BCHHZ.js → rebuild-QDSYYCS7.js} +10 -10
  50. package/dist/rebuild-QDSYYCS7.js.map +1 -0
  51. package/dist/{reprocess-SNXFNKBN.js → reprocess-ZNUQCIS3.js} +18 -18
  52. package/dist/reprocess-ZNUQCIS3.js.map +1 -0
  53. package/dist/{restart-YE2IGOYT.js → restart-5UY2KV54.js} +6 -6
  54. package/dist/{search-2HMG3ON7.js → search-2VEN3XIG.js} +9 -9
  55. package/dist/{server-JM3TM7D2.js → server-OR5B4B7K.js} +77 -54
  56. package/dist/{server-JM3TM7D2.js.map → server-OR5B4B7K.js.map} +1 -1
  57. package/dist/{session-5GI2YU6R.js → session-QF6MILAC.js} +2 -2
  58. package/dist/{session-start-2UEEEO52.js → session-start-TUITIUMB.js} +29 -28
  59. package/dist/session-start-TUITIUMB.js.map +1 -0
  60. package/dist/setup-digest-ETCZAUIU.js +15 -0
  61. package/dist/setup-llm-DWEJE3JE.js +15 -0
  62. package/dist/setup-llm-DWEJE3JE.js.map +1 -0
  63. package/dist/src/cli.js +4 -4
  64. package/dist/src/daemon/main.js +4 -4
  65. package/dist/src/hooks/post-tool-use.js +5 -5
  66. package/dist/src/hooks/session-end.js +5 -5
  67. package/dist/src/hooks/session-start.js +4 -4
  68. package/dist/src/hooks/stop.js +7 -7
  69. package/dist/src/hooks/user-prompt-submit.js +5 -5
  70. package/dist/src/hooks/user-prompt-submit.js.map +1 -1
  71. package/dist/src/mcp/server.js +4 -4
  72. package/dist/src/prompts/classification.md +1 -0
  73. package/dist/src/prompts/digest-10000.md +74 -0
  74. package/dist/src/prompts/digest-1500.md +25 -0
  75. package/dist/src/prompts/digest-3000.md +32 -0
  76. package/dist/src/prompts/digest-5000.md +43 -0
  77. package/dist/src/prompts/digest-system.md +32 -0
  78. package/dist/src/prompts/extraction.md +11 -10
  79. package/dist/src/prompts/summary.md +11 -1
  80. package/dist/src/prompts/title.md +1 -1
  81. package/dist/{stats-IOWXG576.js → stats-IVIXIKTS.js} +12 -12
  82. package/dist/stats-IVIXIKTS.js.map +1 -0
  83. package/dist/{verify-7MWOV72E.js → verify-4H6CEE5T.js} +6 -6
  84. package/dist/{version-S7MHLD5P.js → version-5B2TWXQJ.js} +4 -4
  85. package/dist/version-5B2TWXQJ.js.map +1 -0
  86. package/package.json +1 -1
  87. package/skills/myco/SKILL.md +20 -20
  88. package/skills/myco/references/wisdom.md +14 -14
  89. package/skills/rules/SKILL.md +4 -4
  90. package/dist/chunk-7VPJK56U.js.map +0 -1
  91. package/dist/chunk-BA23DROX.js +0 -160
  92. package/dist/chunk-BA23DROX.js.map +0 -1
  93. package/dist/chunk-CCIV47S4.js.map +0 -1
  94. package/dist/chunk-EF4JVH24.js +0 -7299
  95. package/dist/chunk-EF4JVH24.js.map +0 -1
  96. package/dist/chunk-FFQNE6CT.js.map +0 -1
  97. package/dist/chunk-ISCT2SI6.js.map +0 -1
  98. package/dist/chunk-PA3VMINE.js.map +0 -1
  99. package/dist/chunk-QWU7QLZI.js.map +0 -1
  100. package/dist/chunk-YMYJ7FNH.js +0 -19
  101. package/dist/chunk-YMYJ7FNH.js.map +0 -1
  102. package/dist/cli-3WQSDSW6.js.map +0 -1
  103. package/dist/init-RALMQKOQ.js.map +0 -1
  104. package/dist/main-S3WSUF5T.js.map +0 -1
  105. package/dist/rebuild-JW6BCHHZ.js.map +0 -1
  106. package/dist/reprocess-SNXFNKBN.js.map +0 -1
  107. package/dist/session-start-2UEEEO52.js.map +0 -1
  108. package/dist/stats-IOWXG576.js.map +0 -1
  109. /package/dist/{chunk-YFG2O5HR.js.map → chunk-2GJFTIWX.js.map} +0 -0
  110. /package/dist/{chunk-JKOALBZC.js.map → chunk-BNIYWCST.js.map} +0 -0
  111. /package/dist/{chunk-NYAWCMRZ.js.map → chunk-OUFSLZTX.js.map} +0 -0
  112. /package/dist/{chunk-LR7RQCOB.js.map → chunk-XCPQHC4X.js.map} +0 -0
  113. /package/dist/{chunk-ZBNT6E22.js.map → chunk-ZCBL5HER.js.map} +0 -0
  114. /package/dist/{client-5T4M42UQ.js.map → client-5SUO2UYH.js.map} +0 -0
  115. /package/dist/{config-MD4XMLUS.js.map → config-4GGMWGAF.js.map} +0 -0
  116. /package/dist/{detect-providers-LNOLBICR.js.map → detect-providers-5FU3BN5Q.js.map} +0 -0
  117. /package/dist/{restart-YE2IGOYT.js.map → restart-5UY2KV54.js.map} +0 -0
  118. /package/dist/{search-2HMG3ON7.js.map → search-2VEN3XIG.js.map} +0 -0
  119. /package/dist/{session-5GI2YU6R.js.map → session-QF6MILAC.js.map} +0 -0
  120. /package/dist/{version-S7MHLD5P.js.map → setup-digest-ETCZAUIU.js.map} +0 -0
  121. /package/dist/{verify-7MWOV72E.js.map → verify-4H6CEE5T.js.map} +0 -0
@@ -26,6 +26,7 @@ var MycoIndex = class {
26
26
  CREATE INDEX IF NOT EXISTS idx_notes_type ON notes(type);
27
27
  CREATE INDEX IF NOT EXISTS idx_notes_id ON notes(id);
28
28
  CREATE INDEX IF NOT EXISTS idx_notes_created ON notes(created);
29
+ CREATE INDEX IF NOT EXISTS idx_notes_updated_at ON notes(updated_at);
29
30
  `);
30
31
  }
31
32
  getPragma(name) {
@@ -80,6 +81,10 @@ var MycoIndex = class {
80
81
  conditions.push("created >= ?");
81
82
  params.push(options.since);
82
83
  }
84
+ if (options.updatedSince) {
85
+ conditions.push("updated_at >= datetime(?)");
86
+ params.push(options.updatedSince);
87
+ }
83
88
  if (options.frontmatter) {
84
89
  for (const [key, value] of Object.entries(options.frontmatter)) {
85
90
  conditions.push(`json_extract(frontmatter, '$.' || ?) = ?`);
@@ -108,4 +113,4 @@ var MycoIndex = class {
108
113
  export {
109
114
  MycoIndex
110
115
  };
111
- //# sourceMappingURL=chunk-PA3VMINE.js.map
116
+ //# sourceMappingURL=chunk-AK6GNLPV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index/sqlite.ts"],"sourcesContent":["import Database from 'better-sqlite3';\n\nexport interface IndexedNote {\n path: string;\n type: string;\n id: string;\n title: string;\n content: string;\n frontmatter: Record<string, unknown>;\n created: string;\n updated_at?: string;\n}\n\nexport interface QueryOptions {\n type?: string;\n id?: string;\n limit?: number;\n since?: string;\n /** Filter by updated_at — returns notes with updated_at >= this ISO string. */\n updatedSince?: string;\n /** Filter by frontmatter fields using json_extract. Applied before LIMIT. */\n frontmatter?: Record<string, string>;\n}\n\nexport class MycoIndex {\n private db: Database.Database;\n\n constructor(dbPath: string) {\n this.db = new Database(dbPath);\n this.db.pragma('journal_mode = WAL');\n this.db.pragma('foreign_keys = ON');\n this.init();\n }\n\n private init(): void {\n this.db.exec(`\n CREATE TABLE IF NOT EXISTS notes (\n path TEXT PRIMARY KEY,\n type TEXT NOT NULL,\n id TEXT NOT NULL,\n title TEXT NOT NULL DEFAULT '',\n content TEXT NOT NULL DEFAULT '',\n frontmatter TEXT NOT NULL DEFAULT '{}',\n created TEXT NOT NULL,\n updated_at TEXT NOT NULL DEFAULT (datetime('now'))\n );\n\n CREATE INDEX IF NOT EXISTS idx_notes_type ON notes(type);\n CREATE INDEX IF NOT EXISTS idx_notes_id ON notes(id);\n CREATE INDEX IF NOT EXISTS idx_notes_created ON notes(created);\n CREATE INDEX IF NOT EXISTS idx_notes_updated_at ON notes(updated_at);\n `);\n }\n\n getPragma(name: string): unknown {\n return this.db.pragma(`${name}`, { simple: true });\n }\n\n getDb(): Database.Database {\n return this.db;\n }\n\n upsertNote(note: Omit<IndexedNote, 'updated_at'>): void {\n const stmt = this.db.prepare(`\n INSERT INTO notes (path, type, id, title, content, frontmatter, created, updated_at)\n VALUES (?, ?, ?, ?, ?, ?, ?, datetime('now'))\n ON CONFLICT(path) DO UPDATE SET\n type = excluded.type,\n id = excluded.id,\n title = excluded.title,\n content = excluded.content,\n frontmatter = excluded.frontmatter,\n created = excluded.created,\n updated_at = datetime('now')\n `);\n stmt.run(\n note.path,\n note.type,\n note.id,\n note.title,\n note.content,\n JSON.stringify(note.frontmatter),\n note.created,\n );\n }\n\n getNoteByPath(notePath: string): IndexedNote | null {\n const row = this.db.prepare('SELECT * FROM notes WHERE path = ?').get(notePath) as any;\n if (!row) return null;\n return { ...row, frontmatter: JSON.parse(row.frontmatter) };\n }\n\n deleteNote(notePath: string): void {\n this.db.prepare('DELETE FROM notes WHERE path = ?').run(notePath);\n }\n\n query(options: QueryOptions): IndexedNote[] {\n const conditions: string[] = [];\n const params: unknown[] = [];\n\n if (options.type) {\n conditions.push('type = ?');\n params.push(options.type);\n }\n if (options.id) {\n conditions.push('id = ?');\n params.push(options.id);\n }\n if (options.since) {\n conditions.push('created >= ?');\n params.push(options.since);\n }\n if (options.updatedSince) {\n // Use SQLite datetime() to handle ISO 8601 formats (Z-suffix, offsets, milliseconds)\n conditions.push('updated_at >= datetime(?)');\n params.push(options.updatedSince);\n }\n if (options.frontmatter) {\n for (const [key, value] of Object.entries(options.frontmatter)) {\n conditions.push(`json_extract(frontmatter, '$.' || ?) = ?`);\n params.push(key, value);\n }\n }\n\n const where = conditions.length > 0 ? `WHERE ${conditions.join(' AND ')}` : '';\n const limitClause = options.limit ? 'LIMIT ?' : '';\n if (options.limit) params.push(options.limit);\n const sql = `SELECT * FROM notes ${where} ORDER BY created DESC ${limitClause}`;\n\n const rows = this.db.prepare(sql).all(...params) as any[];\n return rows.map((row) => ({ ...row, frontmatter: JSON.parse(row.frontmatter) }));\n }\n\n queryByIds(ids: string[]): IndexedNote[] {\n if (ids.length === 0) return [];\n const placeholders = ids.map(() => '?').join(',');\n const sql = `SELECT * FROM notes WHERE id IN (${placeholders})`;\n const rows = this.db.prepare(sql).all(...ids) as any[];\n return rows.map((row) => ({ ...row, frontmatter: JSON.parse(row.frontmatter) }));\n }\n\n close(): void {\n this.db.close();\n }\n}\n"],"mappings":"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","names":[]}
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
2
  import {
3
3
  PROMPT_PREVIEW_CHARS
4
- } from "./chunk-7VPJK56U.js";
4
+ } from "./chunk-JBD5KP5G.js";
5
5
 
6
6
  // src/agents/adapter.ts
7
7
  import fs from "fs";
@@ -351,4 +351,4 @@ export {
351
351
  claudeCodeAdapter,
352
352
  AgentRegistry
353
353
  };
354
- //# sourceMappingURL=chunk-JKOALBZC.js.map
354
+ //# sourceMappingURL=chunk-BNIYWCST.js.map