yandecode 0.1.0 → 0.2.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 (222) hide show
  1. package/dist/bin.js +14 -8
  2. package/dist/bin.js.map +7 -1
  3. package/dist/chunks/chunk-23DG7PZZ.js +58 -0
  4. package/dist/chunks/chunk-23DG7PZZ.js.map +7 -0
  5. package/dist/chunks/chunk-2S6B3DDQ.js +1769 -0
  6. package/dist/chunks/chunk-2S6B3DDQ.js.map +7 -0
  7. package/dist/chunks/chunk-6J5CZVCJ.js +120 -0
  8. package/dist/chunks/chunk-6J5CZVCJ.js.map +7 -0
  9. package/dist/chunks/chunk-7L6DD2VD.js +768 -0
  10. package/dist/chunks/chunk-7L6DD2VD.js.map +7 -0
  11. package/dist/chunks/chunk-DWD37AI2.js +39 -0
  12. package/dist/chunks/chunk-DWD37AI2.js.map +7 -0
  13. package/dist/chunks/chunk-KPDBXQ62.js +62 -0
  14. package/dist/chunks/chunk-KPDBXQ62.js.map +7 -0
  15. package/dist/chunks/chunk-KVBKQXTU.js +351 -0
  16. package/dist/chunks/chunk-KVBKQXTU.js.map +7 -0
  17. package/dist/chunks/chunk-L2DDIZPI.js +53 -0
  18. package/dist/chunks/chunk-L2DDIZPI.js.map +7 -0
  19. package/dist/chunks/chunk-OIAMKDTQ.js +27 -0
  20. package/dist/chunks/chunk-OIAMKDTQ.js.map +7 -0
  21. package/dist/chunks/chunk-PUWSEWX3.js +61 -0
  22. package/dist/chunks/chunk-PUWSEWX3.js.map +7 -0
  23. package/dist/chunks/chunk-QCQC73WX.js +122 -0
  24. package/dist/chunks/chunk-QCQC73WX.js.map +7 -0
  25. package/dist/chunks/chunk-TYLH4NIC.js +39 -0
  26. package/dist/chunks/chunk-TYLH4NIC.js.map +7 -0
  27. package/dist/chunks/chunk-VKVJGBNJ.js +72 -0
  28. package/dist/chunks/chunk-VKVJGBNJ.js.map +7 -0
  29. package/dist/chunks/chunk-Y2MIXROU.js +20072 -0
  30. package/dist/chunks/chunk-Y2MIXROU.js.map +7 -0
  31. package/dist/chunks/cli-V6PJTDLM.js +3464 -0
  32. package/dist/chunks/cli-V6PJTDLM.js.map +7 -0
  33. package/dist/chunks/doctor-LLDVEPWL.js +184 -0
  34. package/dist/chunks/doctor-LLDVEPWL.js.map +7 -0
  35. package/dist/chunks/entry-YAOEX3EB.js +187 -0
  36. package/dist/chunks/entry-YAOEX3EB.js.map +7 -0
  37. package/dist/chunks/init-4ZJFCKIJ.js +46 -0
  38. package/dist/chunks/init-4ZJFCKIJ.js.map +7 -0
  39. package/dist/chunks/mcp-serve-KWKMUGWZ.js +22575 -0
  40. package/dist/chunks/mcp-serve-KWKMUGWZ.js.map +7 -0
  41. package/dist/chunks/modules-CJB5IKUJ.js +121 -0
  42. package/dist/chunks/modules-CJB5IKUJ.js.map +7 -0
  43. package/dist/chunks/runtime-3E4NIFAL.js +208 -0
  44. package/dist/chunks/runtime-3E4NIFAL.js.map +7 -0
  45. package/dist/chunks/runtime-7CRR63B5.js +395 -0
  46. package/dist/chunks/runtime-7CRR63B5.js.map +7 -0
  47. package/dist/chunks/runtime-CKMVHAU4.js +64 -0
  48. package/dist/chunks/runtime-CKMVHAU4.js.map +7 -0
  49. package/dist/chunks/runtime-CVZMWIJO.js +318 -0
  50. package/dist/chunks/runtime-CVZMWIJO.js.map +7 -0
  51. package/dist/chunks/runtime-DBNXBOAL.js +295 -0
  52. package/dist/chunks/runtime-DBNXBOAL.js.map +7 -0
  53. package/dist/chunks/runtime-EKHO2JXB.js +197 -0
  54. package/dist/chunks/runtime-EKHO2JXB.js.map +7 -0
  55. package/dist/chunks/runtime-EY6SVZYP.js +539 -0
  56. package/dist/chunks/runtime-EY6SVZYP.js.map +7 -0
  57. package/dist/chunks/runtime-UB2O2HUN.js +212 -0
  58. package/dist/chunks/runtime-UB2O2HUN.js.map +7 -0
  59. package/dist/chunks/runtime-WAFQWW4M.js +755 -0
  60. package/dist/chunks/runtime-WAFQWW4M.js.map +7 -0
  61. package/dist/chunks/runtime-ZGGF6RVA.js +271 -0
  62. package/dist/chunks/runtime-ZGGF6RVA.js.map +7 -0
  63. package/dist/chunks/status-SPIESL4F.js +38 -0
  64. package/dist/chunks/status-SPIESL4F.js.map +7 -0
  65. package/dist/chunks/uninstall-J2OWCX4A.js +54 -0
  66. package/dist/chunks/uninstall-J2OWCX4A.js.map +7 -0
  67. package/dist/chunks/update-OX5MZYQY.js +34 -0
  68. package/dist/chunks/update-OX5MZYQY.js.map +7 -0
  69. package/dist/content/agents/yandecode-reviewer.md +22 -0
  70. package/dist/content/agents/yandecode-security-reviewer.md +23 -0
  71. package/dist/content/skills/NOTICE.md +29 -0
  72. package/dist/content/skills/yandecode-code-review/SKILL.md +37 -0
  73. package/dist/content/skills/yandecode-debugging/SKILL.md +33 -0
  74. package/dist/content/skills/yandecode-instructions/SKILL.md +26 -0
  75. package/dist/content/skills/yandecode-memory/SKILL.md +36 -0
  76. package/dist/content/skills/yandecode-security-review/SKILL.md +24 -0
  77. package/dist/content/skills/yandecode-tdd/SKILL.md +38 -0
  78. package/dist/content/skills/yandecode-verification/SKILL.md +29 -0
  79. package/dist/content/skills/yandecode-workflow/SKILL.md +50 -0
  80. package/package.json +25 -19
  81. package/dist/bin.d.ts +0 -3
  82. package/dist/bin.d.ts.map +0 -1
  83. package/dist/cli.d.ts +0 -6
  84. package/dist/cli.d.ts.map +0 -1
  85. package/dist/cli.js +0 -21
  86. package/dist/cli.js.map +0 -1
  87. package/dist/commands/doctor.d.ts +0 -2
  88. package/dist/commands/doctor.d.ts.map +0 -1
  89. package/dist/commands/doctor.js +0 -19
  90. package/dist/commands/doctor.js.map +0 -1
  91. package/dist/commands/hook.d.ts +0 -2
  92. package/dist/commands/hook.d.ts.map +0 -1
  93. package/dist/commands/hook.js +0 -23
  94. package/dist/commands/hook.js.map +0 -1
  95. package/dist/commands/index-cmd.d.ts +0 -2
  96. package/dist/commands/index-cmd.d.ts.map +0 -1
  97. package/dist/commands/index-cmd.js +0 -47
  98. package/dist/commands/index-cmd.js.map +0 -1
  99. package/dist/commands/index.d.ts +0 -13
  100. package/dist/commands/index.d.ts.map +0 -1
  101. package/dist/commands/index.js +0 -15
  102. package/dist/commands/index.js.map +0 -1
  103. package/dist/commands/init.d.ts +0 -2
  104. package/dist/commands/init.d.ts.map +0 -1
  105. package/dist/commands/init.js +0 -22
  106. package/dist/commands/init.js.map +0 -1
  107. package/dist/commands/mcp.d.ts +0 -2
  108. package/dist/commands/mcp.d.ts.map +0 -1
  109. package/dist/commands/mcp.js +0 -71
  110. package/dist/commands/mcp.js.map +0 -1
  111. package/dist/commands/rag.d.ts +0 -2
  112. package/dist/commands/rag.d.ts.map +0 -1
  113. package/dist/commands/rag.js +0 -27
  114. package/dist/commands/rag.js.map +0 -1
  115. package/dist/commands/start.d.ts +0 -6
  116. package/dist/commands/start.d.ts.map +0 -1
  117. package/dist/commands/start.js +0 -76
  118. package/dist/commands/start.js.map +0 -1
  119. package/dist/commands/status.d.ts +0 -2
  120. package/dist/commands/status.d.ts.map +0 -1
  121. package/dist/commands/status.js +0 -29
  122. package/dist/commands/status.js.map +0 -1
  123. package/dist/commands/statusline.d.ts +0 -2
  124. package/dist/commands/statusline.d.ts.map +0 -1
  125. package/dist/commands/statusline.js +0 -90
  126. package/dist/commands/statusline.js.map +0 -1
  127. package/dist/commands/swarm.d.ts +0 -4
  128. package/dist/commands/swarm.d.ts.map +0 -1
  129. package/dist/commands/swarm.js +0 -48
  130. package/dist/commands/swarm.js.map +0 -1
  131. package/dist/commands/uninstall.d.ts +0 -2
  132. package/dist/commands/uninstall.d.ts.map +0 -1
  133. package/dist/commands/uninstall.js +0 -16
  134. package/dist/commands/uninstall.js.map +0 -1
  135. package/dist/context.d.ts +0 -13
  136. package/dist/context.d.ts.map +0 -1
  137. package/dist/context.js +0 -31
  138. package/dist/context.js.map +0 -1
  139. package/dist/doctor/checks.d.ts +0 -18
  140. package/dist/doctor/checks.d.ts.map +0 -1
  141. package/dist/doctor/checks.js +0 -269
  142. package/dist/doctor/checks.js.map +0 -1
  143. package/dist/hooks/handlers.d.ts +0 -21
  144. package/dist/hooks/handlers.d.ts.map +0 -1
  145. package/dist/hooks/handlers.js +0 -191
  146. package/dist/hooks/handlers.js.map +0 -1
  147. package/dist/index.d.ts +0 -9
  148. package/dist/index.d.ts.map +0 -1
  149. package/dist/index.js +0 -9
  150. package/dist/index.js.map +0 -1
  151. package/dist/integration/claude-md.d.ts +0 -6
  152. package/dist/integration/claude-md.d.ts.map +0 -1
  153. package/dist/integration/claude-md.js +0 -30
  154. package/dist/integration/claude-md.js.map +0 -1
  155. package/dist/integration/gitignore.d.ts +0 -3
  156. package/dist/integration/gitignore.d.ts.map +0 -1
  157. package/dist/integration/gitignore.js +0 -13
  158. package/dist/integration/gitignore.js.map +0 -1
  159. package/dist/integration/init.d.ts +0 -17
  160. package/dist/integration/init.d.ts.map +0 -1
  161. package/dist/integration/init.js +0 -86
  162. package/dist/integration/init.js.map +0 -1
  163. package/dist/integration/json-utils.d.ts +0 -13
  164. package/dist/integration/json-utils.d.ts.map +0 -1
  165. package/dist/integration/json-utils.js +0 -33
  166. package/dist/integration/json-utils.js.map +0 -1
  167. package/dist/integration/manifest.d.ts +0 -17
  168. package/dist/integration/manifest.d.ts.map +0 -1
  169. package/dist/integration/manifest.js +0 -26
  170. package/dist/integration/manifest.js.map +0 -1
  171. package/dist/integration/materialize.d.ts +0 -9
  172. package/dist/integration/materialize.d.ts.map +0 -1
  173. package/dist/integration/materialize.js +0 -21
  174. package/dist/integration/materialize.js.map +0 -1
  175. package/dist/integration/mcp-config.d.ts +0 -4
  176. package/dist/integration/mcp-config.d.ts.map +0 -1
  177. package/dist/integration/mcp-config.js +0 -11
  178. package/dist/integration/mcp-config.js.map +0 -1
  179. package/dist/integration/settings.d.ts +0 -7
  180. package/dist/integration/settings.d.ts.map +0 -1
  181. package/dist/integration/settings.js +0 -70
  182. package/dist/integration/settings.js.map +0 -1
  183. package/dist/integration/uninstall.d.ts +0 -10
  184. package/dist/integration/uninstall.d.ts.map +0 -1
  185. package/dist/integration/uninstall.js +0 -71
  186. package/dist/integration/uninstall.js.map +0 -1
  187. package/dist/launcher.d.ts +0 -8
  188. package/dist/launcher.d.ts.map +0 -1
  189. package/dist/launcher.js +0 -18
  190. package/dist/launcher.js.map +0 -1
  191. package/dist/mcp/server.d.ts +0 -27
  192. package/dist/mcp/server.d.ts.map +0 -1
  193. package/dist/mcp/server.js +0 -311
  194. package/dist/mcp/server.js.map +0 -1
  195. package/dist/plugin-content.d.ts +0 -21
  196. package/dist/plugin-content.d.ts.map +0 -1
  197. package/dist/plugin-content.js +0 -67
  198. package/dist/plugin-content.js.map +0 -1
  199. package/dist/rag/format.d.ts +0 -3
  200. package/dist/rag/format.d.ts.map +0 -1
  201. package/dist/rag/format.js +0 -12
  202. package/dist/rag/format.js.map +0 -1
  203. package/dist/retrieval-runtime.d.ts +0 -21
  204. package/dist/retrieval-runtime.d.ts.map +0 -1
  205. package/dist/retrieval-runtime.js +0 -47
  206. package/dist/retrieval-runtime.js.map +0 -1
  207. package/dist/status-line/git.d.ts +0 -3
  208. package/dist/status-line/git.d.ts.map +0 -1
  209. package/dist/status-line/git.js +0 -34
  210. package/dist/status-line/git.js.map +0 -1
  211. package/dist/status-line/render.d.ts +0 -29
  212. package/dist/status-line/render.d.ts.map +0 -1
  213. package/dist/status-line/render.js +0 -72
  214. package/dist/status-line/render.js.map +0 -1
  215. package/dist/swarm-runtime.d.ts +0 -11
  216. package/dist/swarm-runtime.d.ts.map +0 -1
  217. package/dist/swarm-runtime.js +0 -76
  218. package/dist/swarm-runtime.js.map +0 -1
  219. package/dist/version.d.ts +0 -2
  220. package/dist/version.d.ts.map +0 -1
  221. package/dist/version.js +0 -5
  222. package/dist/version.js.map +0 -1
@@ -1,311 +0,0 @@
1
- import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
- import { z } from 'zod';
3
- import { VERSION } from '../version.js';
4
- const NOT_AVAILABLE = 'RAG index not available. Run "yandecode index" in the project root.';
5
- const TASK_STATUSES = [
6
- 'planned',
7
- 'ready',
8
- 'claimed',
9
- 'running',
10
- 'blocked',
11
- 'review',
12
- 'completed',
13
- 'failed',
14
- 'cancelled',
15
- ];
16
- const MESSAGE_TYPES = ['finding', 'question', 'answer', 'dependency', 'warning', 'result'];
17
- const SWARM_NOT_AVAILABLE = 'Swarm orchestration not available: this session was not opened with swarm support.';
18
- const MEMORY_NAMESPACES = [
19
- 'decisions',
20
- 'patterns',
21
- 'solutions',
22
- 'failures',
23
- 'tasks',
24
- 'feedback',
25
- ];
26
- const MEMORY_NOT_AVAILABLE = 'Memory not available: this session was not opened with memory support.';
27
- function jsonResult(value) {
28
- return { content: [{ type: 'text', text: JSON.stringify(value) }] };
29
- }
30
- function unavailable(message) {
31
- return { isError: true, content: [{ type: 'text', text: message }] };
32
- }
33
- export function formatHits(query, hits) {
34
- const lines = [`UNTRUSTED_REPOSITORY_CONTEXT — ${hits.length} results for "${query}"`];
35
- for (const h of hits) {
36
- lines.push(`--- ${h.path}:${h.startLine}-${h.endLine} [${h.symbol ?? '-'}] score=${h.score.toFixed(3)}`);
37
- lines.push(h.content);
38
- }
39
- lines.push('--- end UNTRUSTED_REPOSITORY_CONTEXT');
40
- return `${lines.join('\n')}\n`;
41
- }
42
- function status(rt) {
43
- const counts = rt.index.counts();
44
- return {
45
- documents: counts.documents,
46
- chunks: counts.chunks,
47
- dirtyFiles: rt.index.listDirty().length,
48
- generation: rt.index.getMeta('repository')?.generation ?? 0,
49
- model: rt.config.rag.embeddingModel,
50
- ready: counts.chunks > 0,
51
- };
52
- }
53
- export function createMcpServer(deps) {
54
- const { rt } = deps;
55
- const server = new McpServer({ name: 'yandecode', version: VERSION });
56
- server.registerTool('rag_status', {
57
- description: 'Report the state of the YandeCode repository index (documents, chunks, dirty files, generation, readiness).',
58
- inputSchema: {},
59
- }, () => Promise.resolve({ content: [{ type: 'text', text: JSON.stringify(status(rt)) }] }));
60
- server.registerTool('rag_search', {
61
- description: 'Hybrid (lexical + semantic) search over the indexed repository. Returns candidate chunks with path:start-end attribution inside an UNTRUSTED_REPOSITORY_CONTEXT envelope. Verify important results with Read.',
62
- inputSchema: {
63
- query: z.string().min(1).max(2000).describe('Natural-language or identifier query'),
64
- limit: z
65
- .number()
66
- .int()
67
- .min(1)
68
- .max(12)
69
- .optional()
70
- .describe('Max results (default from yandecode.json rag.maxResults)'),
71
- },
72
- }, async ({ query, limit }) => {
73
- const s = status(rt);
74
- if (!deps.search || !s.ready) {
75
- return { isError: true, content: [{ type: 'text', text: NOT_AVAILABLE }] };
76
- }
77
- const hits = await deps.search(query, { limit: limit ?? rt.config.rag.maxResults });
78
- await rt.events.emit({ event: 'rag_search', data: { query, results: hits.length } });
79
- const note = deps.note?.();
80
- const text = note ? `${note}\n\n${formatHits(query, hits)}` : formatHits(query, hits);
81
- return { content: [{ type: 'text', text }] };
82
- });
83
- server.registerTool('swarm_create', {
84
- description: 'Create a new swarm for a coordinated multi-task effort.',
85
- inputSchema: {
86
- title: z.string().min(1).max(200),
87
- goal: z.string().min(1).max(2000),
88
- strategy: z.enum(['adaptive', 'pipeline', 'star']).default('adaptive'),
89
- maxAgents: z.number().int().min(1).max(8).optional(),
90
- },
91
- }, async ({ title, goal, strategy, maxAgents }) => {
92
- if (!deps.swarmService)
93
- return unavailable(SWARM_NOT_AVAILABLE);
94
- // The MCP server process and the SessionStart/SessionEnd hook processes are separate short-
95
- // lived CLI invocations with no shared in-memory state, so "the current session" can only be
96
- // resolved by reading the sessions table for whichever session is still open (SessionStart
97
- // wrote it, SessionEnd hasn't closed it yet). This is what makes SessionEnd's swarm cleanup
98
- // (packages/cli/src/hooks/handlers.ts) able to find and cancel this swarm later.
99
- const openSession = deps.rt.sessions.getMostRecentOpen();
100
- const swarm = await deps.swarmService.createSwarm({
101
- title,
102
- goal,
103
- strategy,
104
- ...(maxAgents !== undefined ? { maxAgents } : {}),
105
- sessionId: openSession?.claudeSessionId ?? null,
106
- });
107
- return jsonResult(swarm);
108
- });
109
- server.registerTool('swarm_status', {
110
- description: 'Report a swarm and its task counts by status.',
111
- inputSchema: { swarmId: z.string().min(1) },
112
- }, ({ swarmId }) => {
113
- if (!deps.swarmService)
114
- return Promise.resolve(unavailable(SWARM_NOT_AVAILABLE));
115
- const tasks = deps.swarmService.taskList(swarmId);
116
- const taskCounts = {};
117
- for (const t of tasks)
118
- taskCounts[t.status] = (taskCounts[t.status] ?? 0) + 1;
119
- const swarm = deps.swarmService.getSwarm(swarmId);
120
- return Promise.resolve(jsonResult({ ...swarm, taskCounts }));
121
- });
122
- server.registerTool('swarm_next', {
123
- description: 'Get the next batch of ready tasks to spawn as workers.',
124
- inputSchema: { swarmId: z.string().min(1) },
125
- }, async ({ swarmId }) => {
126
- if (!deps.swarmService)
127
- return unavailable(SWARM_NOT_AVAILABLE);
128
- return jsonResult(await deps.swarmService.swarmNext(swarmId));
129
- });
130
- server.registerTool('swarm_cancel', {
131
- description: 'Cancel every non-terminal task in a swarm and release its leases.',
132
- inputSchema: { swarmId: z.string().min(1) },
133
- }, async ({ swarmId }) => {
134
- if (!deps.swarmService)
135
- return unavailable(SWARM_NOT_AVAILABLE);
136
- return jsonResult(await deps.swarmService.swarmCancel(swarmId));
137
- });
138
- server.registerTool('task_create', {
139
- description: 'Create one or more tasks (optionally interdependent) in a swarm.',
140
- inputSchema: {
141
- swarmId: z.string().min(1),
142
- tasks: z
143
- .array(z.object({
144
- ref: z.string().min(1),
145
- title: z.string().min(1).max(200),
146
- description: z.string().min(1).max(4000),
147
- role: z.string().min(1),
148
- priority: z.number().int().optional(),
149
- maxAttempts: z.number().int().min(1).max(5).optional(),
150
- needsWorktree: z.boolean().optional(),
151
- dependsOn: z.array(z.string()).optional(),
152
- paths: z.array(z.string()).optional(),
153
- }))
154
- .min(1)
155
- .max(50),
156
- },
157
- }, async ({ swarmId, tasks }) => {
158
- if (!deps.swarmService)
159
- return unavailable(SWARM_NOT_AVAILABLE);
160
- const inputs = tasks.map((t) => ({
161
- ref: t.ref,
162
- title: t.title,
163
- description: t.description,
164
- role: t.role,
165
- ...(t.priority !== undefined ? { priority: t.priority } : {}),
166
- ...(t.maxAttempts !== undefined ? { maxAttempts: t.maxAttempts } : {}),
167
- ...(t.needsWorktree !== undefined ? { needsWorktree: t.needsWorktree } : {}),
168
- ...(t.dependsOn !== undefined ? { dependsOn: t.dependsOn } : {}),
169
- ...(t.paths !== undefined ? { paths: t.paths } : {}),
170
- }));
171
- return jsonResult(await deps.swarmService.taskCreate(swarmId, inputs));
172
- });
173
- server.registerTool('task_list', {
174
- description: 'List tasks in a swarm, optionally filtered by status.',
175
- inputSchema: {
176
- swarmId: z.string().min(1),
177
- statuses: z.array(z.enum(TASK_STATUSES)).optional(),
178
- },
179
- }, ({ swarmId, statuses }) => {
180
- if (!deps.swarmService)
181
- return Promise.resolve(unavailable(SWARM_NOT_AVAILABLE));
182
- return Promise.resolve(jsonResult(deps.swarmService.taskList(swarmId, statuses)));
183
- });
184
- server.registerTool('task_update', {
185
- description: "Update a task's status, optionally recording its owner, workspace, or result.",
186
- inputSchema: {
187
- taskId: z.string().min(1),
188
- status: z.enum(TASK_STATUSES),
189
- ownerAgent: z.string().optional(),
190
- workspaceId: z.string().optional(),
191
- resultJson: z.string().max(4096).optional(),
192
- },
193
- }, async ({ taskId, status, ownerAgent, workspaceId, resultJson }) => {
194
- if (!deps.swarmService)
195
- return unavailable(SWARM_NOT_AVAILABLE);
196
- return jsonResult(await deps.swarmService.taskUpdate(taskId, status, {
197
- ...(ownerAgent !== undefined ? { ownerAgent } : {}),
198
- ...(workspaceId !== undefined ? { workspaceId } : {}),
199
- ...(resultJson !== undefined ? { resultJson } : {}),
200
- }));
201
- });
202
- server.registerTool('message_send', {
203
- description: 'Send a structured message to another agent in the same swarm.',
204
- inputSchema: {
205
- swarmId: z.string().min(1),
206
- from: z.string().min(1),
207
- to: z.string().min(1),
208
- type: z.enum(MESSAGE_TYPES),
209
- payload: z.unknown(),
210
- },
211
- }, async ({ swarmId, from, to, type, payload }) => {
212
- if (!deps.messages)
213
- return unavailable(SWARM_NOT_AVAILABLE);
214
- return jsonResult(await deps.messages.send({ swarmId, from, to, type, payload }));
215
- });
216
- server.registerTool('message_read', {
217
- description: 'Read and mark-as-read every unread message addressed to an agent in a swarm.',
218
- inputSchema: { swarmId: z.string().min(1), toAgent: z.string().min(1) },
219
- }, async ({ swarmId, toAgent }) => {
220
- if (!deps.messages)
221
- return unavailable(SWARM_NOT_AVAILABLE);
222
- const unread = deps.messages.listUnreadFor(swarmId, toAgent);
223
- for (const m of unread)
224
- await deps.messages.markRead(m.id);
225
- return jsonResult(unread);
226
- });
227
- server.registerTool('workspace_reserve', {
228
- description: 'Reserve one or more file-path patterns for a task, failing atomically if any pattern conflicts with an active lease.',
229
- inputSchema: {
230
- swarmId: z.string().min(1),
231
- taskId: z.string().min(1),
232
- patterns: z.array(z.string().min(1)).min(1).max(20),
233
- holderAgent: z.string().min(1),
234
- },
235
- }, async ({ swarmId, taskId, patterns, holderAgent }) => {
236
- if (!deps.swarmService)
237
- return unavailable(SWARM_NOT_AVAILABLE);
238
- return jsonResult(await deps.swarmService.workspaceReserve({ swarmId, taskId, patterns, holderAgent }));
239
- });
240
- server.registerTool('workspace_release', {
241
- description: 'Release every path reservation a task currently holds.',
242
- inputSchema: { taskId: z.string().min(1) },
243
- }, async ({ taskId }) => {
244
- if (!deps.swarmService)
245
- return unavailable(SWARM_NOT_AVAILABLE);
246
- await deps.swarmService.workspaceRelease(taskId);
247
- return jsonResult({ released: true });
248
- });
249
- server.registerTool('memory_store', {
250
- description: 'Store a durable memory (a decision, pattern, solution, failure, task note, or feedback) with evidence, for future sessions to retrieve.',
251
- inputSchema: {
252
- namespace: z.enum(MEMORY_NAMESPACES),
253
- content: z.string().min(1).max(4000),
254
- summary: z.string().max(500).optional(),
255
- confidence: z.number().min(0).max(1).default(0.5),
256
- evidence: z.string().min(1).optional(),
257
- sourceSwarmId: z.string().optional(),
258
- sourceTaskId: z.string().optional(),
259
- },
260
- }, async ({ namespace, content, summary, confidence, evidence, sourceSwarmId, sourceTaskId }) => {
261
- if (!deps.memoryService)
262
- return unavailable(MEMORY_NOT_AVAILABLE);
263
- const result = await deps.memoryService.store({
264
- namespace,
265
- content,
266
- summary: summary ?? null,
267
- sourceSwarmId: sourceSwarmId ?? null,
268
- sourceTaskId: sourceTaskId ?? null,
269
- confidence,
270
- evidence: evidence ?? null,
271
- });
272
- return jsonResult(result);
273
- });
274
- server.registerTool('memory_search', {
275
- description: 'Search stored memories by relevance, optionally scoped to one namespace.',
276
- inputSchema: {
277
- query: z.string().min(1),
278
- namespace: z.enum(MEMORY_NAMESPACES).optional(),
279
- limit: z.number().int().min(1).max(20).optional(),
280
- },
281
- }, async ({ query, namespace, limit }) => {
282
- if (!deps.memoryRetriever)
283
- return unavailable(MEMORY_NOT_AVAILABLE);
284
- const hits = await deps.memoryRetriever.search(query, {
285
- namespace: namespace ?? null,
286
- ...(limit !== undefined ? { limit } : {}),
287
- });
288
- return jsonResult(hits);
289
- });
290
- server.registerTool('memory_feedback', {
291
- description: "Report whether a previously-retrieved memory was helpful, wrong, or stale - adjusts its confidence for future searches. This is what closes the learning loop: memory_store alone never updates a memory's confidence.",
292
- inputSchema: {
293
- memoryId: z.string().min(1),
294
- verdict: z.enum(['helpful', 'wrong', 'stale']),
295
- taskId: z.string().optional(),
296
- note: z.string().max(1000).optional(),
297
- },
298
- }, async ({ memoryId, verdict, taskId, note }) => {
299
- if (!deps.memoryService)
300
- return unavailable(MEMORY_NOT_AVAILABLE);
301
- const result = await deps.memoryService.feedback({
302
- memoryId,
303
- verdict,
304
- taskId: taskId ?? null,
305
- note: note ?? null,
306
- });
307
- return jsonResult(result);
308
- });
309
- return server;
310
- }
311
- //# sourceMappingURL=server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- export declare const AGENT_NAMES: readonly ["yandecode-dispatcher", "yandecode-scout", "yandecode-implementer", "yandecode-tester", "yandecode-reviewer", "yandecode-security", "yandecode-researcher"];
2
- export declare const SKILL_NAMES: readonly ["yandecode-context-rules", "yandecode-delegation", "yandecode-swarm-protocol", "yandecode-worker-contract"];
3
- export declare const HOOK_EVENTS: readonly ["SessionStart", "PostToolUse", "SessionEnd", "SubagentStop", "WorktreeCreate", "WorktreeRemove"];
4
- export interface PluginContent {
5
- root: string;
6
- agents: {
7
- name: string;
8
- file: string;
9
- }[];
10
- skills: {
11
- name: string;
12
- dir: string;
13
- file: string;
14
- }[];
15
- hooksFile: string;
16
- mcpFile: string;
17
- manifestFile: string;
18
- }
19
- export declare function loadPluginContent(root?: string): PluginContent;
20
- export declare function parseFrontmatter(markdown: string): Record<string, string>;
21
- //# sourceMappingURL=plugin-content.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-content.d.ts","sourceRoot":"","sources":["../src/plugin-content.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,WAAW,uKAQd,CAAC;AAEX,eAAO,MAAM,WAAW,uHAKd,CAAC;AAEX,eAAO,MAAM,WAAW,4GAOd,CAAC;AAEX,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACzC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACtD,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,iBAAiB,CAAC,IAAI,GAAE,MAAmB,GAAG,aAAa,CA4B1E;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAUzE"}
@@ -1,67 +0,0 @@
1
- import { existsSync } from 'node:fs';
2
- import { join } from 'node:path';
3
- import { YandeCodeError } from '@yandecode/core';
4
- import { pluginRoot } from '@yandecode/plugin';
5
- export const AGENT_NAMES = [
6
- 'yandecode-dispatcher',
7
- 'yandecode-scout',
8
- 'yandecode-implementer',
9
- 'yandecode-tester',
10
- 'yandecode-reviewer',
11
- 'yandecode-security',
12
- 'yandecode-researcher',
13
- ];
14
- export const SKILL_NAMES = [
15
- 'yandecode-context-rules',
16
- 'yandecode-delegation',
17
- 'yandecode-swarm-protocol',
18
- 'yandecode-worker-contract',
19
- ];
20
- export const HOOK_EVENTS = [
21
- 'SessionStart',
22
- 'PostToolUse',
23
- 'SessionEnd',
24
- 'SubagentStop',
25
- 'WorktreeCreate',
26
- 'WorktreeRemove',
27
- ];
28
- export function loadPluginContent(root = pluginRoot) {
29
- const content = {
30
- root,
31
- agents: AGENT_NAMES.map((name) => ({ name, file: join(root, 'agents', `${name}.md`) })),
32
- skills: SKILL_NAMES.map((name) => ({
33
- name,
34
- dir: join(root, 'skills', name),
35
- file: join(root, 'skills', name, 'SKILL.md'),
36
- })),
37
- hooksFile: join(root, 'hooks', 'hooks.json'),
38
- mcpFile: join(root, '.mcp.json'),
39
- manifestFile: join(root, '.claude-plugin', 'plugin.json'),
40
- };
41
- const required = [
42
- ...content.agents.map((a) => a.file),
43
- ...content.skills.map((s) => s.file),
44
- content.hooksFile,
45
- content.mcpFile,
46
- content.manifestFile,
47
- ];
48
- const missing = required.filter((f) => !existsSync(f));
49
- if (missing.length > 0) {
50
- throw new YandeCodeError('PLUGIN_CONTENT_MISSING', `missing plugin files: ${missing.join(', ')}`);
51
- }
52
- return content;
53
- }
54
- export function parseFrontmatter(markdown) {
55
- const match = /^---\r?\n([\s\S]*?)\r?\n---/.exec(markdown);
56
- if (!match)
57
- return {};
58
- const out = {};
59
- for (const line of match[1].split(/\r?\n/)) {
60
- const idx = line.indexOf(':');
61
- if (idx <= 0)
62
- continue;
63
- out[line.slice(0, idx).trim()] = line.slice(idx + 1).trim();
64
- }
65
- return out;
66
- }
67
- //# sourceMappingURL=plugin-content.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-content.js","sourceRoot":"","sources":["../src/plugin-content.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { RagHit } from '@yandecode/retrieval';
2
- export declare function formatRagResults(query: string, hits: RagHit[]): string;
3
- //# sourceMappingURL=format.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/rag/format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAWtE"}
@@ -1,12 +0,0 @@
1
- export function formatRagResults(query, hits) {
2
- if (hits.length === 0)
3
- return `No results for "${query}"\n`;
4
- const lines = [];
5
- for (const hit of hits) {
6
- lines.push(`${hit.path}:${hit.startLine}-${hit.endLine} [${hit.symbol ?? '-'}] score=${hit.score.toFixed(3)}`);
7
- lines.push(hit.content.split('\n').slice(0, 3).join('\n'));
8
- lines.push('');
9
- }
10
- return lines.join('\n');
11
- }
12
- //# sourceMappingURL=format.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/rag/format.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,gBAAgB,CAAC,KAAa,EAAE,IAAc;IAC5D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,mBAAmB,KAAK,KAAK,CAAC;IAC5D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CACR,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,MAAM,IAAI,GAAG,WAAW,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CACnG,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -1,21 +0,0 @@
1
- import { DocumentRepository } from '@yandecode/core';
2
- import { HybridRetriever, IndexingService, type EmbeddingProvider } from '@yandecode/retrieval';
3
- import type { RuntimeContext } from './context.js';
4
- export interface Retrieval {
5
- provider: EmbeddingProvider;
6
- documents: DocumentRepository;
7
- indexing: IndexingService;
8
- retriever: HybridRetriever;
9
- dispose(): Promise<void>;
10
- }
11
- export declare function createProvider(rt: RuntimeContext): EmbeddingProvider;
12
- /**
13
- * `sharedProvider`, when passed, is reused instead of constructing a new one, and `dispose()`
14
- * becomes a no-op for it - the caller owns its lifecycle. This lets a long-running process (the
15
- * MCP server) hold one persistent EmbeddingProvider across many `createRetrieval` calls instead
16
- * of tearing down and reconstructing the ONNX pipeline on every request, while everything else
17
- * (documents/chunker/index/retriever) still gets rebuilt fresh each call so index freshness after
18
- * a reindex is unaffected.
19
- */
20
- export declare function createRetrieval(rt: RuntimeContext, sharedProvider?: EmbeddingProvider): Retrieval;
21
- //# sourceMappingURL=retrieval-runtime.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"retrieval-runtime.d.ts","sourceRoot":"","sources":["../src/retrieval-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAIL,eAAe,EACf,eAAe,EAGf,KAAK,iBAAiB,EACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,SAAS,EAAE,kBAAkB,CAAC;IAC9B,QAAQ,EAAE,eAAe,CAAC;IAC1B,SAAS,EAAE,eAAe,CAAC;IAC3B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,cAAc,GAAG,iBAAiB,CAMpE;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,cAAc,EAAE,cAAc,CAAC,EAAE,iBAAiB,GAAG,SAAS,CA8BjG"}
@@ -1,47 +0,0 @@
1
- import { DocumentRepository } from '@yandecode/core';
2
- import { ArcticEmbedXsProvider, createDefaultChunker, HashEmbeddingProvider, HybridRetriever, IndexingService, resolveModelCacheDir, USearchVectorIndex, } from '@yandecode/retrieval';
3
- export function createProvider(rt) {
4
- if (process.env.YANDECODE_EMBEDDINGS === 'hash')
5
- return new HashEmbeddingProvider(64);
6
- return new ArcticEmbedXsProvider({
7
- cacheDir: resolveModelCacheDir(process.env),
8
- modelId: rt.config.rag.embeddingModel,
9
- });
10
- }
11
- /**
12
- * `sharedProvider`, when passed, is reused instead of constructing a new one, and `dispose()`
13
- * becomes a no-op for it - the caller owns its lifecycle. This lets a long-running process (the
14
- * MCP server) hold one persistent EmbeddingProvider across many `createRetrieval` calls instead
15
- * of tearing down and reconstructing the ONNX pipeline on every request, while everything else
16
- * (documents/chunker/index/retriever) still gets rebuilt fresh each call so index freshness after
17
- * a reindex is unaffected.
18
- */
19
- export function createRetrieval(rt, sharedProvider) {
20
- const provider = sharedProvider ?? createProvider(rt);
21
- const documents = new DocumentRepository(rt.state);
22
- const chunker = createDefaultChunker(provider);
23
- const openIndex = (file) => new USearchVectorIndex({ dimensions: provider.dimensions, file });
24
- const indexing = new IndexingService({
25
- root: rt.paths.root,
26
- indexesDir: rt.paths.indexesDir,
27
- documents,
28
- indexRepo: rt.index,
29
- provider,
30
- chunker,
31
- events: rt.events,
32
- openIndex,
33
- });
34
- const meta = rt.index.getMeta('repository');
35
- const index = openIndex(meta?.filePath ?? null);
36
- if (meta?.filePath)
37
- index.load();
38
- const retriever = new HybridRetriever({ documents, provider, index });
39
- return {
40
- provider,
41
- documents,
42
- indexing,
43
- retriever,
44
- dispose: () => (sharedProvider ? Promise.resolve() : provider.dispose()),
45
- };
46
- }
47
- //# sourceMappingURL=retrieval-runtime.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"retrieval-runtime.js","sourceRoot":"","sources":["../src/retrieval-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,kBAAkB,GAEnB,MAAM,sBAAsB,CAAC;AAW9B,MAAM,UAAU,cAAc,CAAC,EAAkB;IAC/C,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,MAAM;QAAE,OAAO,IAAI,qBAAqB,CAAC,EAAE,CAAC,CAAC;IACtF,OAAO,IAAI,qBAAqB,CAAC;QAC/B,QAAQ,EAAE,oBAAoB,CAAC,OAAO,CAAC,GAAG,CAAC;QAC3C,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc;KACtC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,EAAkB,EAAE,cAAkC;IACpF,MAAM,QAAQ,GAAG,cAAc,IAAI,cAAc,CAAC,EAAE,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,IAAI,kBAAkB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,CAAC,IAAmB,EAAsB,EAAE,CAC5D,IAAI,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IAEpE,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC;QACnC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI;QACnB,UAAU,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU;QAC/B,SAAS;QACT,SAAS,EAAE,EAAE,CAAC,KAAK;QACnB,QAAQ;QACR,OAAO;QACP,MAAM,EAAE,EAAE,CAAC,MAAM;QACjB,SAAS;KACV,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,QAAQ,IAAI,IAAI,CAAC,CAAC;IAChD,IAAI,IAAI,EAAE,QAAQ;QAAE,KAAK,CAAC,IAAI,EAAE,CAAC;IACjC,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IAEtE,OAAO;QACL,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,SAAS;QACT,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;KACzE,CAAC;AACJ,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { StatusLineGitInfo } from './render.js';
2
- export declare function gatherGitInfo(cwd: string): StatusLineGitInfo | null;
3
- //# sourceMappingURL=git.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/status-line/git.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAgBrD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAmBnE"}
@@ -1,34 +0,0 @@
1
- import { execFileSync } from 'node:child_process';
2
- function run(args, cwd) {
3
- try {
4
- return execFileSync('git', args, {
5
- cwd,
6
- timeout: 1000,
7
- stdio: ['ignore', 'pipe', 'ignore'],
8
- })
9
- .toString('utf8')
10
- .trim();
11
- }
12
- catch {
13
- return null;
14
- }
15
- }
16
- export function gatherGitInfo(cwd) {
17
- const branch = run(['branch', '--show-current'], cwd);
18
- if (branch === null)
19
- return null;
20
- const statusOut = run(['status', '--porcelain'], cwd) ?? '';
21
- const dirty = statusOut.length > 0;
22
- let ahead = 0;
23
- let behind = 0;
24
- const counts = run(['rev-list', '--left-right', '--count', 'HEAD...@{u}'], cwd);
25
- if (counts) {
26
- const parts = counts.split(/\s+/);
27
- const a = Number.parseInt(parts[0] ?? '', 10);
28
- const b = Number.parseInt(parts[1] ?? '', 10);
29
- ahead = Number.isFinite(a) ? a : 0;
30
- behind = Number.isFinite(b) ? b : 0;
31
- }
32
- return { branch: branch || '(detached)', dirty, ahead, behind };
33
- }
34
- //# sourceMappingURL=git.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/status-line/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,SAAS,GAAG,CAAC,IAAc,EAAE,GAAW;IACtC,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE;YAC/B,GAAG;YACH,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;SACpC,CAAC;aACC,QAAQ,CAAC,MAAM,CAAC;aAChB,IAAI,EAAE,CAAC;IACZ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,gBAAgB,CAAC,EAAE,GAAG,CAAC,CAAC;IACtD,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAEjC,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;IAC5D,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAEnC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,aAAa,CAAC,EAAE,GAAG,CAAC,CAAC;IAChF,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAClC,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAC9C,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAC9C,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAClE,CAAC"}
@@ -1,29 +0,0 @@
1
- export interface StatusLineGitInfo {
2
- branch: string;
3
- dirty: boolean;
4
- ahead: number;
5
- behind: number;
6
- }
7
- export interface StatusLineSwarmInfo {
8
- done: number;
9
- total: number;
10
- }
11
- export interface StatusLineWorkspaceInfo {
12
- chunks: number;
13
- dirtyFiles: number;
14
- indexGeneration: number;
15
- indexBytes: number;
16
- hooksRegistered: number;
17
- hooksTotal: number;
18
- swarm: StatusLineSwarmInfo | null;
19
- }
20
- export interface StatusLineInput {
21
- version: string;
22
- projectName: string;
23
- model: string | null;
24
- durationMs: number | null;
25
- git: StatusLineGitInfo | null;
26
- workspace: StatusLineWorkspaceInfo | null;
27
- }
28
- export declare function renderStatusLine(input: StatusLineInput): string;
29
- //# sourceMappingURL=render.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/status-line/render.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,mBAAmB,GAAG,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,GAAG,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,uBAAuB,GAAG,IAAI,CAAC;CAC3C;AAqCD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CA0B/D"}