@goondocks/myco 0.2.6 → 0.2.8

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 (290) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/CONTRIBUTING.md +1 -1
  3. package/commands/init.md +10 -26
  4. package/dist/chunk-4JML636J.js +52 -0
  5. package/dist/chunk-4JML636J.js.map +1 -0
  6. package/dist/chunk-AOMX45LH.js +8974 -0
  7. package/dist/chunk-AOMX45LH.js.map +1 -0
  8. package/dist/chunk-I7PMGO6S.js +58 -0
  9. package/dist/chunk-I7PMGO6S.js.map +1 -0
  10. package/dist/chunk-N33KUCFP.js +33 -0
  11. package/dist/chunk-N33KUCFP.js.map +1 -0
  12. package/dist/chunk-NYNEJ5QY.js +71 -0
  13. package/dist/chunk-NYNEJ5QY.js.map +1 -0
  14. package/dist/chunk-PA3VMINE.js +111 -0
  15. package/dist/chunk-PA3VMINE.js.map +1 -0
  16. package/dist/chunk-PZUWP5VK.js +44 -0
  17. package/dist/chunk-PZUWP5VK.js.map +1 -0
  18. package/dist/chunk-SVUINMDD.js +104 -0
  19. package/dist/chunk-SVUINMDD.js.map +1 -0
  20. package/dist/chunk-TH6GIBXG.js +91 -0
  21. package/dist/chunk-TH6GIBXG.js.map +1 -0
  22. package/dist/chunk-TWDS6MSU.js +354 -0
  23. package/dist/chunk-TWDS6MSU.js.map +1 -0
  24. package/dist/chunk-UIIZRTJU.js +21172 -0
  25. package/dist/chunk-UIIZRTJU.js.map +1 -0
  26. package/dist/chunk-YMYJ7FNH.js +19 -0
  27. package/dist/chunk-YMYJ7FNH.js.map +1 -0
  28. package/dist/chunk-ZJQ5G637.js +21 -0
  29. package/dist/chunk-ZJQ5G637.js.map +1 -0
  30. package/dist/chunk-ZTZVX5E6.js +421 -0
  31. package/dist/chunk-ZTZVX5E6.js.map +1 -0
  32. package/dist/cli-K5FSKLQC.js +625 -0
  33. package/dist/cli-K5FSKLQC.js.map +1 -0
  34. package/dist/client-4JMOYNKK.js +11 -0
  35. package/dist/client-4JMOYNKK.js.map +1 -0
  36. package/dist/main-5W4ADOBG.js +3224 -0
  37. package/dist/main-5W4ADOBG.js.map +1 -0
  38. package/dist/server-PIEPVUUH.js +14725 -0
  39. package/dist/server-PIEPVUUH.js.map +1 -0
  40. package/dist/session-start-2NNQHT5S.js +189 -0
  41. package/dist/session-start-2NNQHT5S.js.map +1 -0
  42. package/dist/src/cli.js +9 -582
  43. package/dist/src/cli.js.map +1 -1
  44. package/dist/src/daemon/main.js +9 -737
  45. package/dist/src/daemon/main.js.map +1 -1
  46. package/dist/src/hooks/post-tool-use.js +47 -35
  47. package/dist/src/hooks/post-tool-use.js.map +1 -1
  48. package/dist/src/hooks/session-end.js +29 -18
  49. package/dist/src/hooks/session-end.js.map +1 -1
  50. package/dist/src/hooks/session-start.js +9 -48
  51. package/dist/src/hooks/session-start.js.map +1 -1
  52. package/dist/src/hooks/stop.js +39 -30
  53. package/dist/src/hooks/stop.js.map +1 -1
  54. package/dist/src/hooks/user-prompt-submit.js +48 -40
  55. package/dist/src/hooks/user-prompt-submit.js.map +1 -1
  56. package/dist/src/mcp/server.js +9 -304
  57. package/dist/src/mcp/server.js.map +1 -1
  58. package/package.json +3 -2
  59. package/dist/src/agents/adapter.d.ts +0 -76
  60. package/dist/src/agents/adapter.d.ts.map +0 -1
  61. package/dist/src/agents/adapter.js +0 -124
  62. package/dist/src/agents/adapter.js.map +0 -1
  63. package/dist/src/agents/claude-code.d.ts +0 -3
  64. package/dist/src/agents/claude-code.d.ts.map +0 -1
  65. package/dist/src/agents/claude-code.js +0 -22
  66. package/dist/src/agents/claude-code.js.map +0 -1
  67. package/dist/src/agents/cursor.d.ts +0 -3
  68. package/dist/src/agents/cursor.d.ts.map +0 -1
  69. package/dist/src/agents/cursor.js +0 -154
  70. package/dist/src/agents/cursor.js.map +0 -1
  71. package/dist/src/agents/index.d.ts +0 -6
  72. package/dist/src/agents/index.d.ts.map +0 -1
  73. package/dist/src/agents/index.js +0 -5
  74. package/dist/src/agents/index.js.map +0 -1
  75. package/dist/src/agents/registry.d.ts +0 -34
  76. package/dist/src/agents/registry.d.ts.map +0 -1
  77. package/dist/src/agents/registry.js +0 -95
  78. package/dist/src/agents/registry.js.map +0 -1
  79. package/dist/src/artifacts/candidates.d.ts +0 -20
  80. package/dist/src/artifacts/candidates.d.ts.map +0 -1
  81. package/dist/src/artifacts/candidates.js +0 -84
  82. package/dist/src/artifacts/candidates.js.map +0 -1
  83. package/dist/src/artifacts/slugify.d.ts +0 -2
  84. package/dist/src/artifacts/slugify.d.ts.map +0 -1
  85. package/dist/src/artifacts/slugify.js +0 -22
  86. package/dist/src/artifacts/slugify.js.map +0 -1
  87. package/dist/src/capture/buffer.d.ts +0 -20
  88. package/dist/src/capture/buffer.d.ts.map +0 -1
  89. package/dist/src/capture/buffer.js +0 -55
  90. package/dist/src/capture/buffer.js.map +0 -1
  91. package/dist/src/capture/transcript-miner.d.ts +0 -31
  92. package/dist/src/capture/transcript-miner.d.ts.map +0 -1
  93. package/dist/src/capture/transcript-miner.js +0 -61
  94. package/dist/src/capture/transcript-miner.js.map +0 -1
  95. package/dist/src/cli.d.ts +0 -3
  96. package/dist/src/cli.d.ts.map +0 -1
  97. package/dist/src/config/loader.d.ts +0 -4
  98. package/dist/src/config/loader.d.ts.map +0 -1
  99. package/dist/src/config/loader.js +0 -32
  100. package/dist/src/config/loader.js.map +0 -1
  101. package/dist/src/config/schema.d.ts +0 -83
  102. package/dist/src/config/schema.d.ts.map +0 -1
  103. package/dist/src/config/schema.js +0 -55
  104. package/dist/src/config/schema.js.map +0 -1
  105. package/dist/src/constants.d.ts +0 -73
  106. package/dist/src/constants.d.ts.map +0 -1
  107. package/dist/src/constants.js +0 -86
  108. package/dist/src/constants.js.map +0 -1
  109. package/dist/src/context/injector.d.ts +0 -18
  110. package/dist/src/context/injector.d.ts.map +0 -1
  111. package/dist/src/context/injector.js +0 -71
  112. package/dist/src/context/injector.js.map +0 -1
  113. package/dist/src/context/relevance.d.ts +0 -13
  114. package/dist/src/context/relevance.d.ts.map +0 -1
  115. package/dist/src/context/relevance.js +0 -44
  116. package/dist/src/context/relevance.js.map +0 -1
  117. package/dist/src/daemon/batch.d.ts +0 -22
  118. package/dist/src/daemon/batch.d.ts.map +0 -1
  119. package/dist/src/daemon/batch.js +0 -38
  120. package/dist/src/daemon/batch.js.map +0 -1
  121. package/dist/src/daemon/lifecycle.d.ts +0 -27
  122. package/dist/src/daemon/lifecycle.d.ts.map +0 -1
  123. package/dist/src/daemon/lifecycle.js +0 -50
  124. package/dist/src/daemon/lifecycle.js.map +0 -1
  125. package/dist/src/daemon/lineage.d.ts +0 -42
  126. package/dist/src/daemon/lineage.d.ts.map +0 -1
  127. package/dist/src/daemon/lineage.js +0 -116
  128. package/dist/src/daemon/lineage.js.map +0 -1
  129. package/dist/src/daemon/logger.d.ts +0 -33
  130. package/dist/src/daemon/logger.d.ts.map +0 -1
  131. package/dist/src/daemon/logger.js +0 -88
  132. package/dist/src/daemon/logger.js.map +0 -1
  133. package/dist/src/daemon/main.d.ts +0 -2
  134. package/dist/src/daemon/main.d.ts.map +0 -1
  135. package/dist/src/daemon/processor.d.ts +0 -44
  136. package/dist/src/daemon/processor.d.ts.map +0 -1
  137. package/dist/src/daemon/processor.js +0 -142
  138. package/dist/src/daemon/processor.js.map +0 -1
  139. package/dist/src/daemon/server.d.ts +0 -24
  140. package/dist/src/daemon/server.d.ts.map +0 -1
  141. package/dist/src/daemon/server.js +0 -117
  142. package/dist/src/daemon/server.js.map +0 -1
  143. package/dist/src/daemon/watcher.d.ts +0 -29
  144. package/dist/src/daemon/watcher.d.ts.map +0 -1
  145. package/dist/src/daemon/watcher.js +0 -67
  146. package/dist/src/daemon/watcher.js.map +0 -1
  147. package/dist/src/hooks/client.d.ts +0 -20
  148. package/dist/src/hooks/client.d.ts.map +0 -1
  149. package/dist/src/hooks/client.js +0 -111
  150. package/dist/src/hooks/client.js.map +0 -1
  151. package/dist/src/hooks/post-tool-use.d.ts +0 -2
  152. package/dist/src/hooks/post-tool-use.d.ts.map +0 -1
  153. package/dist/src/hooks/read-stdin.d.ts +0 -2
  154. package/dist/src/hooks/read-stdin.d.ts.map +0 -1
  155. package/dist/src/hooks/read-stdin.js +0 -10
  156. package/dist/src/hooks/read-stdin.js.map +0 -1
  157. package/dist/src/hooks/session-end.d.ts +0 -2
  158. package/dist/src/hooks/session-end.d.ts.map +0 -1
  159. package/dist/src/hooks/session-start.d.ts +0 -2
  160. package/dist/src/hooks/session-start.d.ts.map +0 -1
  161. package/dist/src/hooks/stop.d.ts +0 -2
  162. package/dist/src/hooks/stop.d.ts.map +0 -1
  163. package/dist/src/hooks/user-prompt-submit.d.ts +0 -2
  164. package/dist/src/hooks/user-prompt-submit.d.ts.map +0 -1
  165. package/dist/src/index/fts.d.ts +0 -16
  166. package/dist/src/index/fts.d.ts.map +0 -1
  167. package/dist/src/index/fts.js +0 -53
  168. package/dist/src/index/fts.js.map +0 -1
  169. package/dist/src/index/rebuild.d.ts +0 -4
  170. package/dist/src/index/rebuild.d.ts.map +0 -1
  171. package/dist/src/index/rebuild.js +0 -40
  172. package/dist/src/index/rebuild.js.map +0 -1
  173. package/dist/src/index/sqlite.d.ts +0 -33
  174. package/dist/src/index/sqlite.d.ts.map +0 -1
  175. package/dist/src/index/sqlite.js +0 -99
  176. package/dist/src/index/sqlite.js.map +0 -1
  177. package/dist/src/index/vectors.d.ts +0 -24
  178. package/dist/src/index/vectors.d.ts.map +0 -1
  179. package/dist/src/index/vectors.js +0 -97
  180. package/dist/src/index/vectors.js.map +0 -1
  181. package/dist/src/intelligence/anthropic.d.ts +0 -17
  182. package/dist/src/intelligence/anthropic.d.ts.map +0 -1
  183. package/dist/src/intelligence/anthropic.js +0 -36
  184. package/dist/src/intelligence/anthropic.js.map +0 -1
  185. package/dist/src/intelligence/embeddings.d.ts +0 -3
  186. package/dist/src/intelligence/embeddings.d.ts.map +0 -1
  187. package/dist/src/intelligence/embeddings.js +0 -15
  188. package/dist/src/intelligence/embeddings.js.map +0 -1
  189. package/dist/src/intelligence/llm.d.ts +0 -33
  190. package/dist/src/intelligence/llm.d.ts.map +0 -1
  191. package/dist/src/intelligence/llm.js +0 -26
  192. package/dist/src/intelligence/llm.js.map +0 -1
  193. package/dist/src/intelligence/lm-studio.d.ts +0 -20
  194. package/dist/src/intelligence/lm-studio.d.ts.map +0 -1
  195. package/dist/src/intelligence/lm-studio.js +0 -59
  196. package/dist/src/intelligence/lm-studio.js.map +0 -1
  197. package/dist/src/intelligence/ollama.d.ts +0 -22
  198. package/dist/src/intelligence/ollama.d.ts.map +0 -1
  199. package/dist/src/intelligence/ollama.js +0 -64
  200. package/dist/src/intelligence/ollama.js.map +0 -1
  201. package/dist/src/intelligence/response.d.ts +0 -29
  202. package/dist/src/intelligence/response.d.ts.map +0 -1
  203. package/dist/src/intelligence/response.js +0 -71
  204. package/dist/src/intelligence/response.js.map +0 -1
  205. package/dist/src/logs/format.d.ts +0 -6
  206. package/dist/src/logs/format.d.ts.map +0 -1
  207. package/dist/src/logs/format.js +0 -46
  208. package/dist/src/logs/format.js.map +0 -1
  209. package/dist/src/logs/reader.d.ts +0 -28
  210. package/dist/src/logs/reader.d.ts.map +0 -1
  211. package/dist/src/logs/reader.js +0 -106
  212. package/dist/src/logs/reader.js.map +0 -1
  213. package/dist/src/mcp/server.d.ts +0 -16
  214. package/dist/src/mcp/server.d.ts.map +0 -1
  215. package/dist/src/mcp/tools/consolidate.d.ts +0 -15
  216. package/dist/src/mcp/tools/consolidate.d.ts.map +0 -1
  217. package/dist/src/mcp/tools/consolidate.js +0 -49
  218. package/dist/src/mcp/tools/consolidate.js.map +0 -1
  219. package/dist/src/mcp/tools/graph.d.ts +0 -30
  220. package/dist/src/mcp/tools/graph.d.ts.map +0 -1
  221. package/dist/src/mcp/tools/graph.js +0 -106
  222. package/dist/src/mcp/tools/graph.js.map +0 -1
  223. package/dist/src/mcp/tools/logs.d.ts +0 -3
  224. package/dist/src/mcp/tools/logs.d.ts.map +0 -1
  225. package/dist/src/mcp/tools/logs.js +0 -7
  226. package/dist/src/mcp/tools/logs.js.map +0 -1
  227. package/dist/src/mcp/tools/plans.d.ts +0 -23
  228. package/dist/src/mcp/tools/plans.d.ts.map +0 -1
  229. package/dist/src/mcp/tools/plans.js +0 -63
  230. package/dist/src/mcp/tools/plans.js.map +0 -1
  231. package/dist/src/mcp/tools/recall.d.ts +0 -30
  232. package/dist/src/mcp/tools/recall.d.ts.map +0 -1
  233. package/dist/src/mcp/tools/recall.js +0 -34
  234. package/dist/src/mcp/tools/recall.js.map +0 -1
  235. package/dist/src/mcp/tools/remember.d.ts +0 -15
  236. package/dist/src/mcp/tools/remember.d.ts.map +0 -1
  237. package/dist/src/mcp/tools/remember.js +0 -18
  238. package/dist/src/mcp/tools/remember.js.map +0 -1
  239. package/dist/src/mcp/tools/search.d.ts +0 -19
  240. package/dist/src/mcp/tools/search.d.ts.map +0 -1
  241. package/dist/src/mcp/tools/search.js +0 -59
  242. package/dist/src/mcp/tools/search.js.map +0 -1
  243. package/dist/src/mcp/tools/sessions.d.ts +0 -21
  244. package/dist/src/mcp/tools/sessions.d.ts.map +0 -1
  245. package/dist/src/mcp/tools/sessions.js +0 -36
  246. package/dist/src/mcp/tools/sessions.js.map +0 -1
  247. package/dist/src/mcp/tools/supersede.d.ts +0 -14
  248. package/dist/src/mcp/tools/supersede.d.ts.map +0 -1
  249. package/dist/src/mcp/tools/supersede.js +0 -30
  250. package/dist/src/mcp/tools/supersede.js.map +0 -1
  251. package/dist/src/mcp/tools/team.d.ts +0 -16
  252. package/dist/src/mcp/tools/team.d.ts.map +0 -1
  253. package/dist/src/mcp/tools/team.js +0 -32
  254. package/dist/src/mcp/tools/team.js.map +0 -1
  255. package/dist/src/obsidian/formatter.d.ts +0 -80
  256. package/dist/src/obsidian/formatter.d.ts.map +0 -1
  257. package/dist/src/obsidian/formatter.js +0 -227
  258. package/dist/src/obsidian/formatter.js.map +0 -1
  259. package/dist/src/prompts/index.d.ts +0 -13
  260. package/dist/src/prompts/index.d.ts.map +0 -1
  261. package/dist/src/prompts/index.js +0 -75
  262. package/dist/src/prompts/index.js.map +0 -1
  263. package/dist/src/vault/frontmatter.d.ts +0 -6
  264. package/dist/src/vault/frontmatter.d.ts.map +0 -1
  265. package/dist/src/vault/frontmatter.js +0 -10
  266. package/dist/src/vault/frontmatter.js.map +0 -1
  267. package/dist/src/vault/observations.d.ts +0 -10
  268. package/dist/src/vault/observations.d.ts.map +0 -1
  269. package/dist/src/vault/observations.js +0 -33
  270. package/dist/src/vault/observations.js.map +0 -1
  271. package/dist/src/vault/reader.d.ts +0 -10
  272. package/dist/src/vault/reader.d.ts.map +0 -1
  273. package/dist/src/vault/reader.js +0 -48
  274. package/dist/src/vault/reader.js.map +0 -1
  275. package/dist/src/vault/resolve.d.ts +0 -18
  276. package/dist/src/vault/resolve.d.ts.map +0 -1
  277. package/dist/src/vault/resolve.js +0 -51
  278. package/dist/src/vault/resolve.js.map +0 -1
  279. package/dist/src/vault/session-id.d.ts +0 -16
  280. package/dist/src/vault/session-id.d.ts.map +0 -1
  281. package/dist/src/vault/session-id.js +0 -29
  282. package/dist/src/vault/session-id.js.map +0 -1
  283. package/dist/src/vault/types.d.ts +0 -88
  284. package/dist/src/vault/types.d.ts.map +0 -1
  285. package/dist/src/vault/types.js +0 -94
  286. package/dist/src/vault/types.js.map +0 -1
  287. package/dist/src/vault/writer.d.ts +0 -66
  288. package/dist/src/vault/writer.d.ts.map +0 -1
  289. package/dist/src/vault/writer.js +0 -217
  290. package/dist/src/vault/writer.js.map +0 -1
@@ -1,305 +1,10 @@
1
- import { Server } from '@modelcontextprotocol/sdk/server/index.js';
2
- import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
3
- import { createRequire } from 'node:module';
4
- function getPackageVersion() {
5
- try {
6
- const require = createRequire(import.meta.url);
7
- return require('../../../package.json').version;
8
- }
9
- catch {
10
- return '0.0.0';
11
- }
12
- }
13
- import { ListToolsRequestSchema, CallToolRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
14
- import { MycoIndex } from '../index/sqlite.js';
15
- import { initFts } from '../index/fts.js';
16
- import { handleMycoSearch } from './tools/search.js';
17
- import { handleMycoRecall } from './tools/recall.js';
18
- import { handleMycoRemember } from './tools/remember.js';
19
- import { handleMycoPlans } from './tools/plans.js';
20
- import { handleMycoSessions } from './tools/sessions.js';
21
- import { handleMycoTeam } from './tools/team.js';
22
- import { handleMycoGraph, handleMycoOrphans } from './tools/graph.js';
23
- import { handleMycoLogs } from './tools/logs.js';
24
- import { handleMycoSupersede } from './tools/supersede.js';
25
- import { handleMycoConsolidate } from './tools/consolidate.js';
26
- import { resolveVaultDir } from '../vault/resolve.js';
27
- import { loadConfig } from '../config/loader.js';
28
- import { createEmbeddingProvider } from '../intelligence/llm.js';
29
- import { VectorIndex } from '../index/vectors.js';
30
- import { generateEmbedding } from '../intelligence/embeddings.js';
31
- import { PlanFrontmatterSchema } from '../vault/types.js';
32
- import { EMBEDDING_INPUT_LIMIT } from '../constants.js';
33
- import { fileURLToPath } from 'node:url';
34
- import path from 'node:path';
35
- import fs from 'node:fs';
36
- // Common observation types shown as hints in the tool schema; the vault accepts any string
37
- const OBSERVATION_TYPES = ['gotcha', 'bug_fix', 'decision', 'discovery', 'trade_off', 'cross-cutting'];
38
- const PLAN_STATUSES = [...PlanFrontmatterSchema.shape.status._def.innerType.options, 'all'];
39
- const TOOL_DEFINITIONS = [
40
- {
41
- name: 'myco_search',
42
- description: 'Combined semantic + full-text search across the vault',
43
- inputSchema: {
44
- type: 'object',
45
- properties: {
46
- query: { type: 'string', description: 'Search query' },
47
- type: { type: 'string', enum: ['session', 'plan', 'memory', 'all'] },
48
- limit: { type: 'number', default: 10 },
49
- },
50
- required: ['query'],
51
- },
52
- },
53
- {
54
- name: 'myco_recall',
55
- description: 'Automatic context retrieval based on current work',
56
- inputSchema: {
57
- type: 'object',
58
- properties: {
59
- branch: { type: 'string' },
60
- files: { type: 'array', items: { type: 'string' } },
61
- },
62
- },
63
- },
64
- {
65
- name: 'myco_remember',
66
- description: 'Store an observation as a memory note',
67
- inputSchema: {
68
- type: 'object',
69
- properties: {
70
- content: { type: 'string' },
71
- type: { type: 'string', enum: OBSERVATION_TYPES },
72
- tags: { type: 'array', items: { type: 'string' } },
73
- related_plan: { type: 'string' },
74
- },
75
- required: ['content', 'type'],
76
- },
77
- },
78
- {
79
- name: 'myco_plans',
80
- description: 'List active plans with progress',
81
- inputSchema: {
82
- type: 'object',
83
- properties: {
84
- status: { type: 'string', enum: PLAN_STATUSES },
85
- id: { type: 'string' },
86
- },
87
- },
88
- },
89
- {
90
- name: 'myco_sessions',
91
- description: 'Query session history with filters',
92
- inputSchema: {
93
- type: 'object',
94
- properties: {
95
- plan: { type: 'string' },
96
- branch: { type: 'string' },
97
- user: { type: 'string' },
98
- since: { type: 'string' },
99
- limit: { type: 'number' },
100
- },
101
- },
102
- },
103
- {
104
- name: 'myco_team',
105
- description: 'Teammate activity on same files or plan',
106
- inputSchema: {
107
- type: 'object',
108
- properties: {
109
- files: { type: 'array', items: { type: 'string' } },
110
- plan: { type: 'string' },
111
- since: { type: 'string' },
112
- },
113
- },
114
- },
115
- {
116
- name: 'myco_graph',
117
- description: 'Traverse vault connections via wikilinks — find related notes by following links',
118
- inputSchema: {
119
- type: 'object',
120
- properties: {
121
- note_id: { type: 'string', description: 'Note ID to start from (e.g. "session-abc123")' },
122
- direction: { type: 'string', enum: ['incoming', 'outgoing', 'both'], description: 'Link direction (default: both)' },
123
- depth: { type: 'number', description: 'Traversal depth 1-3 (default: 1)' },
124
- },
125
- required: ['note_id'],
126
- },
127
- },
128
- {
129
- name: 'myco_orphans',
130
- description: 'Find vault notes with no incoming or outgoing wikilinks',
131
- inputSchema: {
132
- type: 'object',
133
- properties: {},
134
- },
135
- },
136
- {
137
- name: 'myco_logs',
138
- description: 'View daemon and MCP activity logs with filtering — useful for debugging and auditing',
139
- inputSchema: {
140
- type: 'object',
141
- properties: {
142
- limit: { type: 'number', description: 'Max entries to return (default 50)' },
143
- level: { type: 'string', enum: ['debug', 'info', 'warn', 'error'], description: 'Minimum log level' },
144
- component: { type: 'string', description: 'Filter by component (daemon, processor, hooks, lifecycle, embeddings, mcp, lineage, watcher)' },
145
- since: { type: 'string', description: 'ISO timestamp — entries after this time' },
146
- until: { type: 'string', description: 'ISO timestamp — entries before this time' },
147
- },
148
- },
149
- },
150
- {
151
- name: 'myco_supersede',
152
- description: 'Mark a memory as superseded by a newer one — use when an older observation is outdated, incorrect, or replaced by better understanding',
153
- inputSchema: {
154
- type: 'object',
155
- properties: {
156
- old_memory_id: { type: 'string', description: 'ID of the memory to supersede' },
157
- new_memory_id: { type: 'string', description: 'ID of the memory that replaces it' },
158
- reason: { type: 'string', description: 'Why this memory is being superseded' },
159
- },
160
- required: ['old_memory_id', 'new_memory_id'],
161
- },
162
- },
163
- {
164
- name: 'myco_consolidate',
165
- description: 'Merge multiple related memories into a single wisdom note — use when several observations describe aspects of the same insight or pattern',
166
- inputSchema: {
167
- type: 'object',
168
- properties: {
169
- source_memory_ids: { type: 'array', items: { type: 'string' }, description: 'IDs of memories to consolidate' },
170
- consolidated_content: { type: 'string', description: 'The merged, comprehensive content for the wisdom note' },
171
- observation_type: { type: 'string', enum: OBSERVATION_TYPES, description: 'Type for the consolidated note' },
172
- tags: { type: 'array', items: { type: 'string' }, description: 'Tags for the wisdom note' },
173
- },
174
- required: ['source_memory_ids', 'consolidated_content', 'observation_type'],
175
- },
176
- },
177
- ];
178
- export function createMycoServer(config) {
179
- const server = new Server({ name: 'myco', version: getPackageVersion() }, { capabilities: { tools: {} } });
180
- const dbPath = path.join(config.vaultDir, 'index.db');
181
- let index = null;
182
- function getIndex() {
183
- if (!index) {
184
- index = new MycoIndex(dbPath);
185
- initFts(index);
186
- }
187
- return index;
188
- }
189
- /** Embed a note and upsert into vector index (fire-and-forget). */
190
- function embedNote(noteId, text, metadata) {
191
- if (!config.embeddingProvider || !config.vectorIndex || !text)
192
- return;
193
- generateEmbedding(config.embeddingProvider, text.slice(0, EMBEDDING_INPUT_LIMIT))
194
- .then((emb) => config.vectorIndex.upsert(noteId, emb.embedding, metadata))
195
- .catch(() => { });
196
- }
197
- server.setRequestHandler(ListToolsRequestSchema, async () => ({
198
- tools: TOOL_DEFINITIONS,
199
- }));
200
- /** Log MCP tool activity to vault logs for auditability. */
201
- function logActivity(tool, detail) {
202
- const logDir = path.join(config.vaultDir, 'logs');
203
- try {
204
- fs.mkdirSync(logDir, { recursive: true });
205
- const entry = JSON.stringify({ timestamp: new Date().toISOString(), component: 'mcp', level: 'info', tool, ...detail }) + '\n';
206
- fs.appendFileSync(path.join(logDir, 'mcp.jsonl'), entry);
207
- }
208
- catch { /* logging failure is non-fatal */ }
209
- }
210
- server.setRequestHandler(CallToolRequestSchema, async (request) => {
211
- const { name, arguments: args = {} } = request.params;
212
- const idx = getIndex();
213
- const input = args;
214
- switch (name) {
215
- case 'myco_search':
216
- return { content: [{ type: 'text', text: JSON.stringify(await handleMycoSearch(idx, input, config.vectorIndex, config.embeddingProvider)) }] };
217
- case 'myco_recall':
218
- return { content: [{ type: 'text', text: JSON.stringify(await handleMycoRecall(idx, input)) }] };
219
- case 'myco_remember': {
220
- const result = await handleMycoRemember(config.vaultDir, idx, input);
221
- embedNote(result.id, String(input.content), { type: 'memory', observation_type: String(input.type ?? ''), importance: 'high' });
222
- logActivity('myco_remember', { id: result.id, observation_type: input.type, path: result.note_path });
223
- return { content: [{ type: 'text', text: JSON.stringify(result) }] };
224
- }
225
- case 'myco_plans':
226
- return { content: [{ type: 'text', text: JSON.stringify(await handleMycoPlans(idx, input)) }] };
227
- case 'myco_sessions':
228
- return { content: [{ type: 'text', text: JSON.stringify(await handleMycoSessions(idx, input)) }] };
229
- case 'myco_team':
230
- return { content: [{ type: 'text', text: JSON.stringify(await handleMycoTeam(idx, input, config.teamUser)) }] };
231
- case 'myco_graph':
232
- return { content: [{ type: 'text', text: JSON.stringify(await handleMycoGraph(idx, input)) }] };
233
- case 'myco_orphans':
234
- return { content: [{ type: 'text', text: JSON.stringify(await handleMycoOrphans(idx)) }] };
235
- case 'myco_logs':
236
- return { content: [{ type: 'text', text: JSON.stringify(await handleMycoLogs(config.vaultDir, input)) }] };
237
- case 'myco_supersede': {
238
- const result = await handleMycoSupersede(config.vaultDir, idx, input);
239
- if (result.status === 'superseded' && config.vectorIndex) {
240
- config.vectorIndex.delete(result.old_memory);
241
- }
242
- logActivity('myco_supersede', { old: result.old_memory, new: result.new_memory, status: result.status });
243
- return { content: [{ type: 'text', text: JSON.stringify(result) }] };
244
- }
245
- case 'myco_consolidate': {
246
- const result = await handleMycoConsolidate(config.vaultDir, idx, input);
247
- embedNote(result.wisdom_id, String(input.consolidated_content), { type: 'memory', observation_type: String(input.observation_type ?? ''), importance: 'high' });
248
- if (config.vectorIndex && Array.isArray(input.source_memory_ids)) {
249
- for (const id of input.source_memory_ids) {
250
- config.vectorIndex.delete(id);
251
- }
252
- }
253
- logActivity('myco_consolidate', { wisdom_id: result.wisdom_id, sources: input.source_memory_ids, archived: result.sources_archived });
254
- return { content: [{ type: 'text', text: JSON.stringify(result) }] };
255
- }
256
- default:
257
- throw new Error(`Unknown tool: ${name}`);
258
- }
259
- });
260
- return {
261
- name: 'myco',
262
- getRegisteredTools() {
263
- return TOOL_DEFINITIONS.map((t) => t.name);
264
- },
265
- async start() {
266
- const transport = new StdioServerTransport();
267
- await server.connect(transport);
268
- },
269
- };
270
- }
271
- // Entry point — invoked by .mcp.json: node dist/src/mcp/server.js
272
- const __filename = fileURLToPath(import.meta.url);
273
- if (process.argv[1] === __filename) {
274
- main().catch((err) => {
275
- process.stderr.write(`[myco-mcp] Fatal: ${err.message}\n`);
276
- process.exit(1);
277
- });
278
- }
279
- async function main() {
280
- const vaultDir = resolveVaultDir();
281
- const config = fs.existsSync(path.join(vaultDir, 'myco.yaml'))
282
- ? loadConfig(vaultDir)
283
- : undefined;
284
- // Initialize embedding provider + vector index (same as daemon does)
285
- let embeddingProvider;
286
- let vectorIndex;
287
- if (config) {
288
- try {
289
- embeddingProvider = createEmbeddingProvider(config.intelligence.embedding);
290
- const testEmbed = await embeddingProvider.embed('test');
291
- vectorIndex = new VectorIndex(path.join(vaultDir, 'vectors.db'), testEmbed.dimensions);
292
- }
293
- catch {
294
- // Embedding unavailable — MCP tools fall back to FTS only
295
- }
296
- }
297
- const server = createMycoServer({
298
- vaultDir,
299
- teamUser: config?.team?.user,
300
- embeddingProvider,
301
- vectorIndex,
302
- });
303
- await server.start();
304
- }
1
+ import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
+ import {
3
+ ensureNativeDeps
4
+ } from "../../chunk-4JML636J.js";
5
+ import "../../chunk-PZUWP5VK.js";
6
+
7
+ // src/entries/mcp-server.ts
8
+ ensureNativeDeps();
9
+ await import("../../server-PIEPVUUH.js");
305
10
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/mcp/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/entries/mcp-server.ts"],"sourcesContent":["import { ensureNativeDeps } from '../native-deps.js';\nensureNativeDeps();\nawait import('../mcp/server.js');\n"],"mappings":";;;;;;;AACA,iBAAiB;AACjB,MAAM,OAAO,0BAAkB;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@goondocks/myco",
3
- "version": "0.2.6",
3
+ "version": "0.2.8",
4
4
  "description": "Collective agent intelligence — Claude Code plugin",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -18,8 +18,9 @@
18
18
  ],
19
19
  "scripts": {
20
20
  "prepare": "npm run build",
21
- "build": "tsc",
21
+ "build": "tsup",
22
22
  "build:watch": "tsc --watch",
23
+ "build:types": "tsc",
23
24
  "test": "vitest run",
24
25
  "test:watch": "vitest",
25
26
  "lint": "tsc --noEmit"
@@ -1,76 +0,0 @@
1
- /** An image attached to a conversation turn */
2
- export interface TranscriptImage {
3
- /** Base64-encoded image data */
4
- data: string;
5
- /** MIME type (e.g., image/png) */
6
- mediaType: string;
7
- }
8
- /** A single conversation turn extracted from an agent's transcript */
9
- export interface TranscriptTurn {
10
- prompt: string;
11
- toolCount: number;
12
- aiResponse?: string;
13
- timestamp: string;
14
- /** Images attached to this turn's user prompt */
15
- images?: TranscriptImage[];
16
- }
17
- /**
18
- * Maps agent-specific hook field names to normalized names.
19
- * Each agent's hook system uses different field names for the same data.
20
- */
21
- export interface HookFieldNames {
22
- /** Field name for the transcript file path (e.g., 'transcript_path') */
23
- transcriptPath: string;
24
- /** Field name for the last AI response text (e.g., 'last_assistant_message') */
25
- lastResponse: string;
26
- /** Field name for the session ID (e.g., 'session_id') */
27
- sessionId: string;
28
- }
29
- export interface AgentAdapter {
30
- /** Agent identifier (matches plugin directory names) */
31
- readonly name: string;
32
- /** Human-readable display name */
33
- readonly displayName: string;
34
- /** Environment variable for the plugin root directory */
35
- readonly pluginRootEnvVar: string;
36
- /** Maps agent-specific hook body field names to normalized names */
37
- readonly hookFields: HookFieldNames;
38
- /**
39
- * Find the transcript file for a given session ID.
40
- * Returns the absolute path if found, null otherwise.
41
- */
42
- findTranscript(sessionId: string): string | null;
43
- /**
44
- * Parse a transcript file's content into normalized turns.
45
- * Each adapter handles its agent's specific format.
46
- */
47
- parseTurns(content: string): TranscriptTurn[];
48
- }
49
- /**
50
- * Scan subdirectories of baseDir for a JSONL transcript file matching sessionId.
51
- * Shared by claude-code, cursor, custom adapters, and tests.
52
- */
53
- export declare function findJsonlInSubdirs(baseDir: string, sessionId: string): string | null;
54
- /**
55
- * Factory for creating simple per-project adapters from a base directory.
56
- * Used for user-configured transcript_paths and testing.
57
- */
58
- export declare function createPerProjectAdapter(baseDir: string, parseTurns: AgentAdapter['parseTurns'], name?: string): AgentAdapter;
59
- export declare function extensionForMimeType(mimeType: string): string;
60
- export declare function mimeTypeForExtension(ext: string): string;
61
- export interface ParseJsonlOptions {
62
- /** Field name containing the message role ('type' for Claude Code, 'role' for Cursor) */
63
- roleField: 'type' | 'role';
64
- /** Whether entries have a timestamp field to extract */
65
- extractTimestamp: boolean;
66
- /** Whether to check for text-only user messages (Claude Code has tool_result user messages to skip) */
67
- skipToolResultUsers: boolean;
68
- /** Whether to strip [Image: source: ...] text references from prompts (Claude Code-specific) */
69
- stripImageTextRefs: boolean;
70
- }
71
- /**
72
- * Shared JSONL transcript parser — used by both Claude Code and Cursor adapters.
73
- * Handles user/assistant role detection, text/image extraction, and tool counting.
74
- */
75
- export declare function parseJsonlTurns(content: string, opts: ParseJsonlOptions): TranscriptTurn[];
76
- //# sourceMappingURL=adapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/agents/adapter.ts"],"names":[],"mappings":"AAWA,+CAA+C;AAC/C,MAAM,WAAW,eAAe;IAC9B,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,sEAAsE;AACtE,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,wEAAwE;IACxE,cAAc,EAAE,MAAM,CAAC;IACvB,gFAAgF;IAChF,YAAY,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,wDAAwD;IACxD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,kCAAkC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,yDAAyD;IACzD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,oEAAoE;IACpE,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IAEpC;;;OAGG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAEjD;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,EAAE,CAAC;CAC/C;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAYpF;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,YAAY,CAAC,YAAY,CAAC,EACtC,IAAI,CAAC,EAAE,MAAM,GACZ,YAAY,CASd;AAUD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE7D;AAWD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAExD;AAOD,MAAM,WAAW,iBAAiB;IAChC,yFAAyF;IACzF,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,wDAAwD;IACxD,gBAAgB,EAAE,OAAO,CAAC;IAC1B,uGAAuG;IACvG,mBAAmB,EAAE,OAAO,CAAC;IAC7B,gGAAgG;IAChG,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,GAAG,cAAc,EAAE,CAiD1F"}
@@ -1,124 +0,0 @@
1
- /**
2
- * Agent adapter interface — declares what each coding agent provides to Myco.
3
- *
4
- * Each supported agent (Claude Code, Cursor, Cline, etc.) has an adapter that
5
- * tells Myco where to find transcripts, how to parse them, and what capabilities
6
- * the agent supports. The daemon uses these adapters at runtime to read the
7
- * authoritative conversation record.
8
- */
9
- import fs from 'node:fs';
10
- import path from 'node:path';
11
- /**
12
- * Scan subdirectories of baseDir for a JSONL transcript file matching sessionId.
13
- * Shared by claude-code, cursor, custom adapters, and tests.
14
- */
15
- export function findJsonlInSubdirs(baseDir, sessionId) {
16
- try {
17
- for (const entry of fs.readdirSync(baseDir, { withFileTypes: true })) {
18
- if (!entry.isDirectory())
19
- continue;
20
- const candidate = path.join(baseDir, entry.name, `${sessionId}.jsonl`);
21
- try {
22
- fs.accessSync(candidate);
23
- return candidate;
24
- }
25
- catch { /* not here */ }
26
- }
27
- }
28
- catch { /* baseDir doesn't exist or unreadable */ }
29
- return null;
30
- }
31
- /**
32
- * Factory for creating simple per-project adapters from a base directory.
33
- * Used for user-configured transcript_paths and testing.
34
- */
35
- export function createPerProjectAdapter(baseDir, parseTurns, name) {
36
- return {
37
- name: name ?? `custom:${path.basename(baseDir)}`,
38
- displayName: `Custom (${baseDir})`,
39
- pluginRootEnvVar: '',
40
- hookFields: { transcriptPath: 'transcript_path', lastResponse: 'last_assistant_message', sessionId: 'session_id' },
41
- findTranscript: (sessionId) => findJsonlInSubdirs(baseDir, sessionId),
42
- parseTurns,
43
- };
44
- }
45
- /** Map MIME type to file extension */
46
- const MIME_TO_EXT = {
47
- 'image/jpeg': 'jpg',
48
- 'image/gif': 'gif',
49
- 'image/webp': 'webp',
50
- 'image/png': 'png',
51
- };
52
- export function extensionForMimeType(mimeType) {
53
- return MIME_TO_EXT[mimeType] ?? 'png';
54
- }
55
- /** Map file extension to MIME type */
56
- const EXT_TO_MIME = {
57
- '.jpg': 'image/jpeg',
58
- '.jpeg': 'image/jpeg',
59
- '.gif': 'image/gif',
60
- '.webp': 'image/webp',
61
- '.png': 'image/png',
62
- };
63
- export function mimeTypeForExtension(ext) {
64
- return EXT_TO_MIME[ext.toLowerCase()] ?? 'image/png';
65
- }
66
- import { PROMPT_PREVIEW_CHARS } from '../constants.js';
67
- /** Claude Code injects [Image: source: /path] text alongside base64 image blocks. Strip these since the actual images are captured as Obsidian embeds. */
68
- const IMAGE_TEXT_REF_PATTERN = /\[Image: source: [^\]]+\]\n*/g;
69
- /**
70
- * Shared JSONL transcript parser — used by both Claude Code and Cursor adapters.
71
- * Handles user/assistant role detection, text/image extraction, and tool counting.
72
- */
73
- export function parseJsonlTurns(content, opts) {
74
- const lines = content.split('\n').filter(Boolean);
75
- const turns = [];
76
- let current = null;
77
- for (const line of lines) {
78
- let entry;
79
- try {
80
- entry = JSON.parse(line);
81
- }
82
- catch {
83
- continue;
84
- }
85
- const role = entry[opts.roleField];
86
- const timestamp = opts.extractTimestamp ? (entry.timestamp ?? '') : '';
87
- if (role === 'user') {
88
- const msg = entry.message;
89
- const blocks = Array.isArray(msg?.content) ? msg.content : [];
90
- const hasText = blocks.some((b) => b.type === 'text' && b.text?.trim());
91
- if (!hasText && opts.skipToolResultUsers)
92
- continue;
93
- if (!hasText)
94
- continue;
95
- if (current)
96
- turns.push(current);
97
- const rawPrompt = blocks
98
- .filter((b) => b.type === 'text' && b.text)
99
- .map((b) => b.text)
100
- .join('\n');
101
- const promptText = (opts.stripImageTextRefs ? rawPrompt.replace(IMAGE_TEXT_REF_PATTERN, '') : rawPrompt)
102
- .trim()
103
- .slice(0, PROMPT_PREVIEW_CHARS);
104
- const images = blocks
105
- .filter((b) => b.type === 'image' && b.source?.type === 'base64' && b.source.data)
106
- .map((b) => ({ data: b.source.data, mediaType: b.source.media_type ?? 'image/png' }));
107
- current = { prompt: promptText, toolCount: 0, timestamp, ...(images.length > 0 ? { images } : {}) };
108
- }
109
- else if (role === 'assistant' && current) {
110
- const msg = entry.message;
111
- if (Array.isArray(msg?.content)) {
112
- const textParts = msg.content.filter((b) => b.type === 'text' && b.text).map((b) => b.text);
113
- const text = textParts.join('\n').trim();
114
- if (text)
115
- current.aiResponse = text;
116
- current.toolCount += msg.content.filter((b) => b.type === 'tool_use').length;
117
- }
118
- }
119
- }
120
- if (current)
121
- turns.push(current);
122
- return turns;
123
- }
124
- //# sourceMappingURL=adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/agents/adapter.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { AgentAdapter } from './adapter.js';
2
- export declare const claudeCodeAdapter: AgentAdapter;
3
- //# sourceMappingURL=claude-code.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../../src/agents/claude-code.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAOjD,eAAO,MAAM,iBAAiB,EAAE,YAkB/B,CAAC"}
@@ -1,22 +0,0 @@
1
- import { findJsonlInSubdirs, parseJsonlTurns } from './adapter.js';
2
- import path from 'node:path';
3
- import os from 'node:os';
4
- const TRANSCRIPT_BASE = path.join(os.homedir(), '.claude', 'projects');
5
- export const claudeCodeAdapter = {
6
- name: 'claude-code',
7
- displayName: 'Claude Code',
8
- pluginRootEnvVar: 'CLAUDE_PLUGIN_ROOT',
9
- hookFields: {
10
- transcriptPath: 'transcript_path',
11
- lastResponse: 'last_assistant_message',
12
- sessionId: 'session_id',
13
- },
14
- findTranscript: (sessionId) => findJsonlInSubdirs(TRANSCRIPT_BASE, sessionId),
15
- parseTurns: (content) => parseJsonlTurns(content, {
16
- roleField: 'type',
17
- extractTimestamp: true,
18
- skipToolResultUsers: true,
19
- stripImageTextRefs: true,
20
- }),
21
- };
22
- //# sourceMappingURL=claude-code.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../../src/agents/claude-code.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AAEvE,MAAM,CAAC,MAAM,iBAAiB,GAAiB;IAC7C,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,aAAa;IAC1B,gBAAgB,EAAE,oBAAoB;IACtC,UAAU,EAAE;QACV,cAAc,EAAE,iBAAiB;QACjC,YAAY,EAAE,wBAAwB;QACtC,SAAS,EAAE,YAAY;KACxB;IAED,cAAc,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,kBAAkB,CAAC,eAAe,EAAE,SAAS,CAAC;IAE7E,UAAU,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE;QAChD,SAAS,EAAE,MAAM;QACjB,gBAAgB,EAAE,IAAI;QACtB,mBAAmB,EAAE,IAAI;QACzB,kBAAkB,EAAE,IAAI;KACzB,CAAC;CACH,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { AgentAdapter } from './adapter.js';
2
- export declare const cursorAdapter: AgentAdapter;
3
- //# sourceMappingURL=cursor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../../src/agents/cursor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAgCjD,eAAO,MAAM,aAAa,EAAE,YAsC3B,CAAC"}