@fingerskier/augment 0.3.1 → 0.5.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 (67) hide show
  1. package/README.md +37 -20
  2. package/dist/cli.d.ts +9 -6
  3. package/dist/cli.js +9 -43
  4. package/dist/cli.js.map +1 -1
  5. package/dist/config.d.ts +2 -0
  6. package/dist/config.js +2 -1
  7. package/dist/config.js.map +1 -1
  8. package/dist/constants.d.ts +1 -0
  9. package/dist/constants.js +7 -0
  10. package/dist/constants.js.map +1 -1
  11. package/dist/daemon/client.d.ts +10 -2
  12. package/dist/daemon/client.js +30 -4
  13. package/dist/daemon/client.js.map +1 -1
  14. package/dist/daemon/http.js +163 -28
  15. package/dist/daemon/http.js.map +1 -1
  16. package/dist/db.d.ts +1 -0
  17. package/dist/db.js +35 -4
  18. package/dist/db.js.map +1 -1
  19. package/dist/decoction.d.ts +51 -0
  20. package/dist/decoction.js +184 -0
  21. package/dist/decoction.js.map +1 -0
  22. package/dist/install.d.ts +2 -0
  23. package/dist/install.js +68 -5
  24. package/dist/install.js.map +1 -1
  25. package/dist/mcp/apps.js +0 -16
  26. package/dist/mcp/apps.js.map +1 -1
  27. package/dist/mcp/insights.d.ts +4 -6
  28. package/dist/mcp/insights.js +4 -11
  29. package/dist/mcp/insights.js.map +1 -1
  30. package/dist/mcp/server.js +124 -21
  31. package/dist/mcp/server.js.map +1 -1
  32. package/dist/memory/files.js +32 -2
  33. package/dist/memory/files.js.map +1 -1
  34. package/dist/memory/git.d.ts +5 -1
  35. package/dist/memory/git.js +7 -3
  36. package/dist/memory/git.js.map +1 -1
  37. package/dist/memory/project.d.ts +3 -0
  38. package/dist/memory/project.js +20 -0
  39. package/dist/memory/project.js.map +1 -1
  40. package/dist/pi/extension.d.ts +10 -2
  41. package/dist/pi/extension.js +82 -46
  42. package/dist/pi/extension.js.map +1 -1
  43. package/dist/proposals.d.ts +42 -0
  44. package/dist/proposals.js +180 -0
  45. package/dist/proposals.js.map +1 -0
  46. package/dist/recall-log.d.ts +21 -0
  47. package/dist/recall-log.js +24 -0
  48. package/dist/recall-log.js.map +1 -0
  49. package/dist/recall.d.ts +1 -1
  50. package/dist/service.d.ts +197 -2
  51. package/dist/service.js +770 -42
  52. package/dist/service.js.map +1 -1
  53. package/dist/types.d.ts +26 -2
  54. package/docs/FEATURES.md +247 -33
  55. package/docs/verify-memory-flow.md +132 -131
  56. package/integrations/claude/skills/augment-context/SKILL.md +74 -0
  57. package/integrations/claude/skills/augment-decoction/SKILL.md +36 -0
  58. package/integrations/claude/skills/augment-dream/SKILL.md +34 -0
  59. package/integrations/claude/skills/augment-dream/agents/openai.yaml +4 -0
  60. package/integrations/claude/skills/augment-sleep/SKILL.md +26 -0
  61. package/integrations/codex/SKILL.md +33 -0
  62. package/integrations/pi/skills/augment-decoction/SKILL.md +37 -0
  63. package/integrations/pi/skills/augment-dream/SKILL.md +36 -0
  64. package/package.json +16 -15
  65. package/dist/tally.d.ts +0 -46
  66. package/dist/tally.js +0 -94
  67. package/dist/tally.js.map +0 -1
@@ -8,7 +8,6 @@ import { LINK_TYPES, MEMORY_KINDS } from "../constants.js";
8
8
  import { connectOrStartDaemon } from "../daemon/client.js";
9
9
  import { cytoscapeBundleJs } from "../dashboard/assets.js";
10
10
  import { inferProjectName } from "../memory/project.js";
11
- import { TALLY_VERDICTS } from "../tally.js";
12
11
  import { GRAPH_RESOURCE_URI, graphSnippetHtml, INSIGHTS_RESOURCE_URI, insightsSnippetHtml, UI_EXTENSION_ID, UI_MIME_TYPE, } from "./apps.js";
13
12
  import { computeInsights, renderGraphText, renderInsightsText, toGraphPayload } from "./insights.js";
14
13
  // server.ts lives at src/mcp/ (dist/mcp/ once built), so package.json is two levels up.
@@ -163,20 +162,50 @@ export async function createMcpServer() {
163
162
  id: z.number().int().positive(),
164
163
  },
165
164
  }, async ({ id }) => textResult(await (await connectOrStartDaemon()).unlink(id)));
166
- server.registerTool("tally", {
167
- description: "Record one Phase-2 dogfood datapoint rating recalled memory: helpful (materially helped the task), " +
168
- "harmless (injected but neutral/ignored), harmful (misled or wasted context), or correct-abstention " +
169
- "(nothing was injected, and that was the right call). Returns the running tally.",
165
+ server.registerTool("decoction_glean", {
166
+ description: "Discover cross-project generic-memory candidates or immediately write an agent-authored generic SPEC/ARCH. " +
167
+ "Discovery is read-only and uses complete-link cosine across at least four projects. Write stores an ordinary " +
168
+ ".generic memory and returns advisory credential warnings plus unpersisted cleanup suggestions.",
170
169
  inputSchema: {
171
- verdict: z.enum(TALLY_VERDICTS),
172
- surface: z.string().optional(),
173
- note: z.string().optional(),
170
+ action: z.enum(["discover", "write"]),
171
+ min_cosine: z.number().min(0).max(1).optional(),
172
+ limit: z.number().int().positive().max(50).optional(),
173
+ kind: z.enum(["SPEC", "ARCH"]).optional(),
174
+ name: z.string().optional(),
175
+ content: z.string().optional(),
176
+ tags: z.array(z.string()).optional(),
177
+ derived_from: z.array(z.string()).optional(),
178
+ suggested_removals: z
179
+ .array(z.object({ path: z.string(), reason: z.string() }))
180
+ .optional(),
181
+ expected_content_hash: z.string().optional(),
182
+ expected_frontmatter_hash: z.string().optional(),
183
+ },
184
+ annotations: {
185
+ readOnlyHint: false,
186
+ destructiveHint: false,
187
+ idempotentHint: false,
188
+ openWorldHint: false,
174
189
  },
175
- }, async (input) => textResult(await (await connectOrStartDaemon()).tally(input)));
190
+ }, async (input) => textResult(await (await connectOrStartDaemon()).decoctionGlean(input)));
191
+ server.registerTool("decoction_cleanup", {
192
+ description: "Hard-delete explicitly approved original memories after retargeting their typed inbound links to one generic " +
193
+ "memory. The exact source paths must come from a reviewed glean result; cleanup has no journal or rollback.",
194
+ inputSchema: {
195
+ generic_path: z.string(),
196
+ source_paths: z.array(z.string()).min(1),
197
+ },
198
+ annotations: {
199
+ readOnlyHint: false,
200
+ destructiveHint: true,
201
+ idempotentHint: false,
202
+ openWorldHint: false,
203
+ },
204
+ }, async (input) => textResult(await (await connectOrStartDaemon()).decoctionCleanup(input)));
176
205
  server.registerTool("sleep_candidates", {
177
206
  description: "READ-ONLY preview of sleep consolidation: cluster settled WORK memories (per project; connected by " +
178
- "links or raw cosine) into candidate groups a future sleep pass would distill into SPEC/ARCH. " +
179
- "Mutates nothing — there is no sleep_apply. Scoped to the current project unless project_name is given.",
207
+ "links or raw cosine) into candidate groups to distill via sleep_propose user approval → sleep_apply. " +
208
+ "Mutates nothing. Scoped to the current project unless project_name is given.",
180
209
  inputSchema: {
181
210
  project_name: z.string().optional(),
182
211
  min_cosine: z.number().min(0).max(1).optional(),
@@ -188,6 +217,87 @@ export async function createMcpServer() {
188
217
  const project_name = input.project_name ?? (await inferProjectName());
189
218
  return textResult(await client.sleepCandidates({ ...input, project_name }));
190
219
  });
220
+ server.registerTool("sleep_propose", {
221
+ description: "Draft a sleep consolidation: fold >=2 settled WORK memories into one new SPEC or ARCH. Writes ONLY " +
222
+ "a proposal file outside the corpus, for user review — the corpus itself is untouched until the user " +
223
+ "approves and sleep_apply runs. Call sleep_candidates first to find groups worth consolidating.",
224
+ inputSchema: {
225
+ project_name: z.string().optional(),
226
+ kind: z.enum(["SPEC", "ARCH"]),
227
+ name: z.string(),
228
+ content: z.string(),
229
+ derived_from: z.array(z.string()).min(2),
230
+ rationale: z.string().optional(),
231
+ },
232
+ }, async (input) => {
233
+ const client = await connectOrStartDaemon();
234
+ const project_name = input.project_name ?? (await inferProjectName());
235
+ return textResult(await client.sleepPropose({ ...input, project_name }));
236
+ });
237
+ server.registerTool("sleep_proposals", {
238
+ description: "List sleep proposals (drafted by sleep_propose), optionally filtered by status.",
239
+ inputSchema: {
240
+ status: z.enum(["proposed", "applied", "rejected"]).optional(),
241
+ },
242
+ }, async ({ status }) => textResult(await (await connectOrStartDaemon()).sleepProposals(status)));
243
+ server.registerTool("sleep_apply", {
244
+ description: "Apply a sleep proposal by filename. Requires explicit user approval of the named proposal and is " +
245
+ "the only corpus write in the sleep flow: it upserts the consolidated SPEC/ARCH, archives its WORK " +
246
+ "sources in place, and marks the proposal applied.",
247
+ inputSchema: {
248
+ filename: z.string(),
249
+ },
250
+ }, async ({ filename }) => textResult(await (await connectOrStartDaemon()).sleepApply({ filename })));
251
+ server.registerTool("sleep_reject", {
252
+ description: "Reject a pending sleep proposal by filename. Mutates only the proposal file (outside the corpus); " +
253
+ "the corpus itself is untouched.",
254
+ inputSchema: {
255
+ filename: z.string(),
256
+ },
257
+ }, async ({ filename }) => textResult(await (await connectOrStartDaemon()).sleepReject({ filename })));
258
+ server.registerTool("dream_propose", {
259
+ description: "Draft one speculative dream for explicit user review. Use either the memory fields (kind, name, content, " +
260
+ "derived_from) or link. Memory inspirations may be current-project, generic, or foreign; link sources must " +
261
+ "belong to the current project while targets may be in any project. Writes only a proposal outside the corpus.",
262
+ inputSchema: {
263
+ project_name: z.string().optional(),
264
+ kind: z.enum(MEMORY_KINDS).optional(),
265
+ name: z.string().optional(),
266
+ content: z.string().optional(),
267
+ derived_from: z.array(z.string()).min(1).optional(),
268
+ link: z
269
+ .object({
270
+ from: z.string(),
271
+ to: z.string(),
272
+ type: z.enum(LINK_TYPES),
273
+ })
274
+ .optional(),
275
+ rationale: z.string().optional(),
276
+ },
277
+ }, async (input) => {
278
+ const client = await connectOrStartDaemon();
279
+ const project_name = input.project_name ?? (await inferProjectName());
280
+ return textResult(await client.dreamPropose({ ...input, project_name }));
281
+ });
282
+ server.registerTool("dream_proposals", {
283
+ description: "List speculative dream-memory and dream-link proposals, optionally filtered by status.",
284
+ inputSchema: {
285
+ status: z.enum(["proposed", "applied", "rejected"]).optional(),
286
+ },
287
+ }, async ({ status }) => textResult(await (await connectOrStartDaemon()).dreamProposals(status)));
288
+ server.registerTool("dream_apply", {
289
+ description: "Apply one explicitly user-approved dream proposal by filename. Revalidates the editable proposal against " +
290
+ "the live corpus, then creates the speculative memory or link and marks the proposal applied.",
291
+ inputSchema: {
292
+ filename: z.string(),
293
+ },
294
+ }, async ({ filename }) => textResult(await (await connectOrStartDaemon()).dreamApply({ filename })));
295
+ server.registerTool("dream_reject", {
296
+ description: "Reject a pending dream proposal by filename. Mutates only the proposal file outside the memory corpus.",
297
+ inputSchema: {
298
+ filename: z.string(),
299
+ },
300
+ }, async ({ filename }) => textResult(await (await connectOrStartDaemon()).dreamReject({ filename })));
191
301
  // --- MCP Apps dashboard snippets (SEP-1865) ------------------------------
192
302
  // Templates are predeclared ui:// resources; the tools below reference them
193
303
  // via _meta.ui.resourceUri. Non-UI hosts ignore the metadata and get the
@@ -195,7 +305,7 @@ export async function createMcpServer() {
195
305
  const snippetResourceMeta = { ui: { prefersBorder: true } };
196
306
  server.registerResource("memory-insights-snippet", INSIGHTS_RESOURCE_URI, {
197
307
  title: "Augment memory insights snippet",
198
- description: "Interactive dashboard snippet rendering memory_insights results (kind distribution, links, tags, activity, recall tally).",
308
+ description: "Interactive dashboard snippet rendering memory_insights results (kind distribution, links, tags, activity).",
199
309
  mimeType: UI_MIME_TYPE,
200
310
  _meta: snippetResourceMeta,
201
311
  }, async () => ({
@@ -220,7 +330,7 @@ export async function createMcpServer() {
220
330
  }));
221
331
  server.registerTool("memory_insights", {
222
332
  description: "Aggregate a project's memory graph into dashboard insights: counts by kind, links by type, top tags, " +
223
- "12-week activity, most-connected memories, and the recall-quality tally. Use when the user asks for " +
333
+ "12-week activity, and most-connected memories. Use when the user asks for " +
224
334
  "memory insights, stats, health, or an overview. In MCP Apps hosts this renders an interactive " +
225
335
  "dashboard snippet; elsewhere it returns the text summary.",
226
336
  inputSchema: {
@@ -235,14 +345,7 @@ export async function createMcpServer() {
235
345
  return missingProjectResult(resolved);
236
346
  }
237
347
  const graph = (await client.projectGraph(project.id));
238
- let tally;
239
- try {
240
- tally = (await client.tallySummary());
241
- }
242
- catch {
243
- // Insights degrade gracefully without the tally section.
244
- }
245
- const insights = computeInsights(graph, tally, new Date());
348
+ const insights = computeInsights(graph, new Date());
246
349
  const content = [{ type: "text", text: renderInsightsText(insights) }];
247
350
  if (embedClassicUi() && !clientSupportsUi(server)) {
248
351
  content.push(embeddedSnippet(`ui://augment/insights/${project.id}`, insightsSnippetHtml(insights)));
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAqB,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,EACf,YAAY,GACb,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAErG,wFAAwF;AACxF,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;IAC/G,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IACpD,OAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAyB,CAAC,OAAO,CAAC;AAC1D,CAAC;AAED,mFAAmF;AACnF,SAAS,gBAAgB,CAAC,MAAiB;IACzC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAE3C,CAAC;IACd,OAAO,OAAO,CAAC,YAAY,EAAE,UAAU,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc;IACrB,OAAO,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,GAAG,CAAC;AAClD,CAAC;AAED,IAAI,aAAa,GAAG,CAAC,CAAC;AAEtB,SAAS,eAAe,CAAC,SAAiB,EAAE,IAAY;IACtD,2EAA2E;IAC3E,sEAAsE;IACtE,aAAa,IAAI,CAAC,CAAC;IACnB,OAAO;QACL,IAAI,EAAE,UAAmB;QACzB,QAAQ,EAAE;YACR,GAAG,EAAE,GAAG,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;YAC5E,QAAQ,EAAE,WAAW;YACrB,IAAI,EAAE,IAAI;SACX;KACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,WAAW,CAAC,MAAoB,EAAE,IAAY;IAC3D,qEAAqE;IACrE,sEAAsE;IACtE,mEAAmE;IACnE,gEAAgE;IAChE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QACjB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,QAAQ,GAAG,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAoB,CAAC;IACtE,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAChE,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,KAAK,CAAC;IACf,CAAC;IACD,2EAA2E;IAC3E,+DAA+D;IAC/D,iEAAiE;IACjE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;QACzF,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY;IACxC,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,+BAA+B,IAAI,gDAAgD;aAC1F;SACF;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,MAAM,oBAAoB,EAAE;KACtC,CAAC,CAAC;IAEH,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,WAAW,EAAE,0EAA0E;QACvF,WAAW,EAAE;YACX,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SACpC;KACF,EACD,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE;QACzB,MAAM,MAAM,GAAG,MAAM,oBAAoB,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,YAAY,IAAI,CAAC,MAAM,gBAAgB,EAAE,CAAC,CAAC;QAC5D,OAAO,UAAU,CAAC,MAAM,MAAM,CAAC,WAAW,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC1E,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,WAAW,EAAE,8BAA8B;QAC3C,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC5B;KACF,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,oBAAoB,EAAE,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CACxF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,QAAQ,EACR;QACE,WAAW,EAAE,wEAAwE;QACrF,WAAW,EAAE;YACX,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACnC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;YACjB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;YACrD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;YAC7D,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE;YAC/C,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YACtC,SAAS,EAAE,CAAC;iBACT,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,CAAC,CAAC;iBACN,QAAQ,EAAE;iBACV,QAAQ,CAAC,oGAAoG,CAAC;SAClH;KACF,EACD,KAAK,EAAE,KAAK,EAAE,EAAE;QACd,MAAM,MAAM,GAAG,MAAM,oBAAoB,EAAE,CAAC;QAC5C,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,IAAI,CAAC,MAAM,gBAAgB,EAAE,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAsB,CAAC;QAC7G,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SAClF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,QAAQ,EACR;QACE,WAAW,EAAE,4DAA4D;QACzE,WAAW,EAAE;YACX,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;YACvC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;YACjD,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE;YACrC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;YAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;YACnB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;SACrC;KACF,EACD,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,oBAAoB,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAChF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,MAAM,EACN;QACE,WAAW,EAAE,wDAAwD;QACrE,WAAW,EAAE;YACX,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;SAChC;KACF,EACD,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,oBAAoB,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAC5E,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,MAAM,EACN;QACE,WAAW,EACT,2KAA2K;QAC7K,WAAW,EAAE;YACX,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YAClE,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YAChE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE;SACpC;KACF,EACD,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,oBAAoB,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAC9E,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,WAAW,EAAE,qDAAqD;QAClE,WAAW,EAAE;YACX,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;SACvC;KACF,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,oBAAoB,EAAE,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAC/F,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,QAAQ,EACR;QACE,WAAW,EAAE,iCAAiC;QAC9C,WAAW,EAAE;YACX,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;SAChC;KACF,EACD,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,oBAAoB,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAC9E,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,OAAO,EACP;QACE,WAAW,EACT,qGAAqG;YACrG,qGAAqG;YACrG,iFAAiF;QACnF,WAAW,EAAE;YACX,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;YAC/B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC9B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC5B;KACF,EACD,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,oBAAoB,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAC/E,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,WAAW,EACT,qGAAqG;YACrG,+FAA+F;YAC/F,wGAAwG;QAC1G,WAAW,EAAE;YACX,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACnC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;YAC/C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;YAC1C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;SACtD;KACF,EACD,KAAK,EAAE,KAAK,EAAE,EAAE;QACd,MAAM,MAAM,GAAG,MAAM,oBAAoB,EAAE,CAAC;QAC5C,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,IAAI,CAAC,MAAM,gBAAgB,EAAE,CAAC,CAAC;QACtE,OAAO,UAAU,CAAC,MAAM,MAAM,CAAC,eAAe,CAAC,EAAE,GAAG,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;IAC9E,CAAC,CACF,CAAC;IAEF,4EAA4E;IAC5E,4EAA4E;IAC5E,yEAAyE;IACzE,sDAAsD;IAEtD,MAAM,mBAAmB,GAAG,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,CAAC;IAE5D,MAAM,CAAC,gBAAgB,CACrB,yBAAyB,EACzB,qBAAqB,EACrB;QACE,KAAK,EAAE,iCAAiC;QACxC,WAAW,EACT,2HAA2H;QAC7H,QAAQ,EAAE,YAAY;QACtB,KAAK,EAAE,mBAAmB;KAC3B,EACD,KAAK,IAAI,EAAE,CAAC,CAAC;QACX,QAAQ,EAAE;YACR,EAAE,GAAG,EAAE,qBAAqB,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE;SAChH;KACF,CAAC,CACH,CAAC;IAEF,MAAM,CAAC,gBAAgB,CACrB,sBAAsB,EACtB,kBAAkB,EAClB;QACE,KAAK,EAAE,8BAA8B;QACrC,WAAW,EAAE,yFAAyF;QACtG,QAAQ,EAAE,YAAY;QACtB,KAAK,EAAE,mBAAmB;KAC3B,EACD,KAAK,IAAI,EAAE,CAAC,CAAC;QACX,QAAQ,EAAE;YACR;gBACE,GAAG,EAAE,kBAAkB;gBACvB,QAAQ,EAAE,YAAY;gBACtB,IAAI,EAAE,gBAAgB,CAAC,MAAM,iBAAiB,EAAE,CAAC;gBACjD,KAAK,EAAE,mBAAmB;aAC3B;SACF;KACF,CAAC,CACH,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EACT,uGAAuG;YACvG,sGAAsG;YACtG,gGAAgG;YAChG,2DAA2D;QAC7D,WAAW,EAAE;YACX,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SACpC;QACD,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,qBAAqB,EAAE,EAAE;KACtD,EACD,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE;QACzB,MAAM,MAAM,GAAG,MAAM,oBAAoB,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,YAAY,IAAI,CAAC,MAAM,gBAAgB,EAAE,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC;QACD,MAAM,KAAK,GAAG,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAiB,CAAC;QACtE,IAAI,KAA+B,CAAC;QACpC,IAAI,CAAC;YACH,KAAK,GAAG,CAAC,MAAM,MAAM,CAAC,YAAY,EAAE,CAAiB,CAAC;QACxD,CAAC;QAAC,MAAM,CAAC;YACP,yDAAyD;QAC3D,CAAC;QACD,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;QAC3D,MAAM,OAAO,GAA8B,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAClG,IAAI,cAAc,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,yBAAyB,OAAO,CAAC,EAAE,EAAE,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACtG,CAAC;QACD,OAAO;YACL,OAAO;YACP,iBAAiB,EAAE,QAA8C;SAClE,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,WAAW,EACT,kGAAkG;YAClG,8FAA8F;YAC9F,2EAA2E;QAC7E,WAAW,EAAE;YACX,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SACpC;QACD,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,kBAAkB,EAAE,EAAE;KACnD,EACD,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE;QACzB,MAAM,MAAM,GAAG,MAAM,oBAAoB,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,YAAY,IAAI,CAAC,MAAM,gBAAgB,EAAE,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC;QACD,MAAM,KAAK,GAAG,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAiB,CAAC;QACtE,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC;QAC7C,MAAM,OAAO,GAA8B,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC9F,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,IAAI,CACV,eAAe,CAAC,sBAAsB,OAAO,CAAC,EAAE,EAAE,EAAE,gBAAgB,CAAC,MAAM,iBAAiB,EAAE,EAAE,OAAO,CAAC,CAAC,CAC1G,CAAC;QACJ,CAAC;QACD,OAAO;YACL,OAAO;YACP,gEAAgE;YAChE,mEAAmE;YACnE,GAAG,CAAC,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,OAA6C,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpG,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,MAAM,GAAG,MAAM,eAAe,EAAE,CAAC;IACvC,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAAE,KAA2B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACzJ,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC;KAC3C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAqB,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,EACf,YAAY,GACb,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAErG,wFAAwF;AACxF,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;IAC/G,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IACpD,OAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAyB,CAAC,OAAO,CAAC;AAC1D,CAAC;AAED,mFAAmF;AACnF,SAAS,gBAAgB,CAAC,MAAiB;IACzC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAE3C,CAAC;IACd,OAAO,OAAO,CAAC,YAAY,EAAE,UAAU,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc;IACrB,OAAO,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,GAAG,CAAC;AAClD,CAAC;AAED,IAAI,aAAa,GAAG,CAAC,CAAC;AAEtB,SAAS,eAAe,CAAC,SAAiB,EAAE,IAAY;IACtD,2EAA2E;IAC3E,sEAAsE;IACtE,aAAa,IAAI,CAAC,CAAC;IACnB,OAAO;QACL,IAAI,EAAE,UAAmB;QACzB,QAAQ,EAAE;YACR,GAAG,EAAE,GAAG,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;YAC5E,QAAQ,EAAE,WAAW;YACrB,IAAI,EAAE,IAAI;SACX;KACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,WAAW,CAAC,MAAoB,EAAE,IAAY;IAC3D,qEAAqE;IACrE,sEAAsE;IACtE,mEAAmE;IACnE,gEAAgE;IAChE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QACjB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,QAAQ,GAAG,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAoB,CAAC;IACtE,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAChE,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,KAAK,CAAC;IACf,CAAC;IACD,2EAA2E;IAC3E,+DAA+D;IAC/D,iEAAiE;IACjE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;QACzF,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY;IACxC,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,+BAA+B,IAAI,gDAAgD;aAC1F;SACF;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,MAAM,oBAAoB,EAAE;KACtC,CAAC,CAAC;IAEH,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,WAAW,EAAE,0EAA0E;QACvF,WAAW,EAAE;YACX,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SACpC;KACF,EACD,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE;QACzB,MAAM,MAAM,GAAG,MAAM,oBAAoB,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,YAAY,IAAI,CAAC,MAAM,gBAAgB,EAAE,CAAC,CAAC;QAC5D,OAAO,UAAU,CAAC,MAAM,MAAM,CAAC,WAAW,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC1E,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,WAAW,EAAE,8BAA8B;QAC3C,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC5B;KACF,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,oBAAoB,EAAE,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CACxF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,QAAQ,EACR;QACE,WAAW,EAAE,wEAAwE;QACrF,WAAW,EAAE;YACX,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACnC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;YACjB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;YACrD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;YAC7D,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE;YAC/C,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YACtC,SAAS,EAAE,CAAC;iBACT,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,CAAC,CAAC;iBACN,QAAQ,EAAE;iBACV,QAAQ,CAAC,oGAAoG,CAAC;SAClH;KACF,EACD,KAAK,EAAE,KAAK,EAAE,EAAE;QACd,MAAM,MAAM,GAAG,MAAM,oBAAoB,EAAE,CAAC;QAC5C,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,IAAI,CAAC,MAAM,gBAAgB,EAAE,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAsB,CAAC;QAC7G,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SAClF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,QAAQ,EACR;QACE,WAAW,EAAE,4DAA4D;QACzE,WAAW,EAAE;YACX,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;YACvC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;YACjD,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE;YACrC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;YAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;YACnB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;SACrC;KACF,EACD,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,oBAAoB,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAChF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,MAAM,EACN;QACE,WAAW,EAAE,wDAAwD;QACrE,WAAW,EAAE;YACX,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;SAChC;KACF,EACD,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,oBAAoB,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAC5E,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,MAAM,EACN;QACE,WAAW,EACT,2KAA2K;QAC7K,WAAW,EAAE;YACX,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YAClE,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YAChE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE;SACpC;KACF,EACD,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,oBAAoB,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAC9E,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,WAAW,EAAE,qDAAqD;QAClE,WAAW,EAAE;YACX,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;SACvC;KACF,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,oBAAoB,EAAE,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAC/F,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,QAAQ,EACR;QACE,WAAW,EAAE,iCAAiC;QAC9C,WAAW,EAAE;YACX,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;SAChC;KACF,EACD,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,oBAAoB,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAC9E,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EACT,6GAA6G;YAC7G,+GAA+G;YAC/G,gGAAgG;QAClG,WAAW,EAAE;YACX,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACrC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;YAC/C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;YACrD,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;YACzC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC3B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC9B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;YACpC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;YAC5C,kBAAkB,EAAE,CAAC;iBAClB,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;iBACzD,QAAQ,EAAE;YACb,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC5C,yBAAyB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SACjD;QACD,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,oBAAoB,EAAE,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CACxF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,WAAW,EACT,+GAA+G;YAC/G,4GAA4G;QAC9G,WAAW,EAAE;YACX,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;YACxB,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SACzC;QACD,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,IAAI;YACrB,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,oBAAoB,EAAE,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAC1F,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,WAAW,EACT,qGAAqG;YACrG,yGAAyG;YACzG,8EAA8E;QAChF,WAAW,EAAE;YACX,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACnC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;YAC/C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;YAC1C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;SACtD;KACF,EACD,KAAK,EAAE,KAAK,EAAE,EAAE;QACd,MAAM,MAAM,GAAG,MAAM,oBAAoB,EAAE,CAAC;QAC5C,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,IAAI,CAAC,MAAM,gBAAgB,EAAE,CAAC,CAAC;QACtE,OAAO,UAAU,CAAC,MAAM,MAAM,CAAC,eAAe,CAAC,EAAE,GAAG,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;IAC9E,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,WAAW,EACT,qGAAqG;YACrG,sGAAsG;YACtG,gGAAgG;QAClG,WAAW,EAAE;YACX,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACnC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC9B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;YAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;YACnB,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACxC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SACjC;KACF,EACD,KAAK,EAAE,KAAK,EAAE,EAAE;QACd,MAAM,MAAM,GAAG,MAAM,oBAAoB,EAAE,CAAC;QAC5C,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,IAAI,CAAC,MAAM,gBAAgB,EAAE,CAAC,CAAC;QACtE,OAAO,UAAU,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,EAAE,GAAG,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;IAC3E,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EAAE,iFAAiF;QAC9F,WAAW,EAAE;YACX,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE;SAC/D;KACF,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,oBAAoB,EAAE,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAC9F,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;QACE,WAAW,EACT,mGAAmG;YACnG,oGAAoG;YACpG,mDAAmD;QACrD,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;SACrB;KACF,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,oBAAoB,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAClG,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,WAAW,EACT,oGAAoG;YACpG,iCAAiC;QACnC,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;SACrB;KACF,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,oBAAoB,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CACnG,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,WAAW,EACT,2GAA2G;YAC3G,4GAA4G;YAC5G,+GAA+G;QACjH,WAAW,EAAE;YACX,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACnC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE;YACrC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC3B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC9B,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;YACnD,IAAI,EAAE,CAAC;iBACJ,MAAM,CAAC;gBACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;gBAChB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;gBACd,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;aACzB,CAAC;iBACD,QAAQ,EAAE;YACb,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SACjC;KACF,EACD,KAAK,EAAE,KAAK,EAAE,EAAE;QACd,MAAM,MAAM,GAAG,MAAM,oBAAoB,EAAE,CAAC;QAC5C,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,IAAI,CAAC,MAAM,gBAAgB,EAAE,CAAC,CAAC;QACtE,OAAO,UAAU,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,EAAE,GAAG,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;IAC3E,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EAAE,wFAAwF;QACrG,WAAW,EAAE;YACX,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE;SAC/D;KACF,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,oBAAoB,EAAE,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAC9F,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;QACE,WAAW,EACT,2GAA2G;YAC3G,8FAA8F;QAChG,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;SACrB;KACF,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,oBAAoB,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAClG,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,WAAW,EACT,wGAAwG;QAC1G,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;SACrB;KACF,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,oBAAoB,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CACnG,CAAC;IAEF,4EAA4E;IAC5E,4EAA4E;IAC5E,yEAAyE;IACzE,sDAAsD;IAEtD,MAAM,mBAAmB,GAAG,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,CAAC;IAE5D,MAAM,CAAC,gBAAgB,CACrB,yBAAyB,EACzB,qBAAqB,EACrB;QACE,KAAK,EAAE,iCAAiC;QACxC,WAAW,EACT,6GAA6G;QAC/G,QAAQ,EAAE,YAAY;QACtB,KAAK,EAAE,mBAAmB;KAC3B,EACD,KAAK,IAAI,EAAE,CAAC,CAAC;QACX,QAAQ,EAAE;YACR,EAAE,GAAG,EAAE,qBAAqB,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE;SAChH;KACF,CAAC,CACH,CAAC;IAEF,MAAM,CAAC,gBAAgB,CACrB,sBAAsB,EACtB,kBAAkB,EAClB;QACE,KAAK,EAAE,8BAA8B;QACrC,WAAW,EAAE,yFAAyF;QACtG,QAAQ,EAAE,YAAY;QACtB,KAAK,EAAE,mBAAmB;KAC3B,EACD,KAAK,IAAI,EAAE,CAAC,CAAC;QACX,QAAQ,EAAE;YACR;gBACE,GAAG,EAAE,kBAAkB;gBACvB,QAAQ,EAAE,YAAY;gBACtB,IAAI,EAAE,gBAAgB,CAAC,MAAM,iBAAiB,EAAE,CAAC;gBACjD,KAAK,EAAE,mBAAmB;aAC3B;SACF;KACF,CAAC,CACH,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EACT,uGAAuG;YACvG,4EAA4E;YAC5E,gGAAgG;YAChG,2DAA2D;QAC7D,WAAW,EAAE;YACX,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SACpC;QACD,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,qBAAqB,EAAE,EAAE;KACtD,EACD,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE;QACzB,MAAM,MAAM,GAAG,MAAM,oBAAoB,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,YAAY,IAAI,CAAC,MAAM,gBAAgB,EAAE,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC;QACD,MAAM,KAAK,GAAG,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAiB,CAAC;QACtE,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;QACpD,MAAM,OAAO,GAA8B,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAClG,IAAI,cAAc,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,yBAAyB,OAAO,CAAC,EAAE,EAAE,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACtG,CAAC;QACD,OAAO;YACL,OAAO;YACP,iBAAiB,EAAE,QAA8C;SAClE,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,WAAW,EACT,kGAAkG;YAClG,8FAA8F;YAC9F,2EAA2E;QAC7E,WAAW,EAAE;YACX,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SACpC;QACD,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,kBAAkB,EAAE,EAAE;KACnD,EACD,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE;QACzB,MAAM,MAAM,GAAG,MAAM,oBAAoB,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,YAAY,IAAI,CAAC,MAAM,gBAAgB,EAAE,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC;QACD,MAAM,KAAK,GAAG,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAiB,CAAC;QACtE,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC;QAC7C,MAAM,OAAO,GAA8B,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC9F,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,IAAI,CACV,eAAe,CAAC,sBAAsB,OAAO,CAAC,EAAE,EAAE,EAAE,gBAAgB,CAAC,MAAM,iBAAiB,EAAE,EAAE,OAAO,CAAC,CAAC,CAC1G,CAAC;QACJ,CAAC;QACD,OAAO;YACL,OAAO;YACP,gEAAgE;YAChE,mEAAmE;YACnE,GAAG,CAAC,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,OAA6C,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpG,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,MAAM,GAAG,MAAM,eAAe,EAAE,CAAC;IACvC,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAAE,KAA2B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACzJ,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC;KAC3C,CAAC;AACJ,CAAC"}
@@ -3,7 +3,7 @@ import path from "node:path";
3
3
  import matter from "gray-matter";
4
4
  import { LINK_TYPES, MEMORY_KINDS } from "../constants.js";
5
5
  import { gzipDensity, sha256, stableJson } from "../util/hash.js";
6
- import { projectParts, safeSegment } from "./project.js";
6
+ import { GENERIC_PROJECT_NAME, isGenericProjectName, projectParts, safeSegment } from "./project.js";
7
7
  export function normalizeKind(kind) {
8
8
  const normalized = (kind ?? "WORK").toUpperCase();
9
9
  if (!MEMORY_KINDS.includes(normalized)) {
@@ -19,12 +19,25 @@ export function normalizeLinkType(type) {
19
19
  return normalized;
20
20
  }
21
21
  export function memoryRelativePath(projectName, kind, name) {
22
+ if (isGenericProjectName(projectName)) {
23
+ return path.posix.join(GENERIC_PROJECT_NAME, kind, `${safeSegment(name)}.md`);
24
+ }
22
25
  const parts = projectParts(projectName);
23
26
  return path.posix.join(parts.org, parts.repo, kind, `${safeSegment(name)}.md`);
24
27
  }
25
28
  export function relativePathToMetadata(relativePath) {
26
29
  const normalized = relativePath.replace(/\\/g, "/");
27
30
  const parts = normalized.split("/");
31
+ if (parts[0] === GENERIC_PROJECT_NAME) {
32
+ if (parts.length !== 3) {
33
+ throw new Error(`Generic memory path must be .generic/kind/name.md: ${relativePath}`);
34
+ }
35
+ return {
36
+ project: GENERIC_PROJECT_NAME,
37
+ kind: normalizeKind(parts[1]),
38
+ name: safeSegment(path.posix.basename(parts[2], ".md")),
39
+ };
40
+ }
28
41
  if (parts.length < 4) {
29
42
  throw new Error(`Memory path must be org/repo/kind/name.md: ${relativePath}`);
30
43
  }
@@ -43,7 +56,13 @@ export async function readMemory(memoryRoot, relativePath) {
43
56
  const parsed = matter(raw);
44
57
  const fallback = relativePathToMetadata(normalizedRelativePath);
45
58
  const stats = await stat(absolutePath);
46
- const frontmatter = normalizeFrontmatter(parsed.data, fallback);
59
+ const normalizedFrontmatter = normalizeFrontmatter(parsed.data, fallback);
60
+ // The reserved path is the source of truth for generic ownership. This
61
+ // prevents hand-edited or stale frontmatter from indexing a generic file as
62
+ // a normal project memory.
63
+ const frontmatter = isGenericProjectName(fallback.project)
64
+ ? { ...normalizedFrontmatter, project: GENERIC_PROJECT_NAME }
65
+ : normalizedFrontmatter;
47
66
  const body = parsed.content.trim();
48
67
  const frontmatterHash = sha256(stableJson(frontmatter));
49
68
  return {
@@ -88,6 +107,17 @@ export function normalizeFrontmatter(value, fallback) {
88
107
  links: rawLinks.map(normalizeLink),
89
108
  created_at: String(value.created_at ?? now),
90
109
  updated_at: String(value.updated_at ?? now),
110
+ // archived always resolves to a concrete boolean (never undefined) so
111
+ // in-memory/DB consumers can rely on it being set; consolidated_into and
112
+ // derived_from stay `undefined` (key omitted) when absent so a plain
113
+ // memory that was never archived round-trips with no archival keys at all.
114
+ archived: value.archived === true,
115
+ ...(typeof value.consolidated_into === "string"
116
+ ? { consolidated_into: normalizeRelativePath(value.consolidated_into) }
117
+ : {}),
118
+ ...(Array.isArray(value.derived_from)
119
+ ? { derived_from: value.derived_from.map((entry) => normalizeRelativePath(String(entry))) }
120
+ : {}),
91
121
  };
92
122
  }
93
123
  export function memoryToEmbeddingText(memory) {
@@ -1 +1 @@
1
- {"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/memory/files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/memory/files.ts"],"names":[],"mappings":"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"}
@@ -12,8 +12,12 @@ export declare function isMemoryRootGitRoot(dir: string): Promise<boolean>;
12
12
  * throws and never pushes: any git failure is logged once and swallowed so an
13
13
  * auto-commit can never break the write that triggered it. Returns `nothing`
14
14
  * when there is nothing to snapshot (no empty commits) and `skipped` on failure.
15
+ *
16
+ * `message` overrides the default snapshot subject so a caller that performs a
17
+ * whole logical pass in one shot (e.g. a sleep apply) can label it as one
18
+ * commit; omitted, the `augment: snapshot …` default is used verbatim.
15
19
  */
16
- export declare function commitMemoryChanges(dir: string): Promise<CommitOutcome>;
20
+ export declare function commitMemoryChanges(dir: string, message?: string): Promise<CommitOutcome>;
17
21
  /** A debounced, single-flight committer for one memory root. */
18
22
  export interface GitCommitter {
19
23
  /** Request a snapshot; bursts coalesce into one commit after the debounce. */
@@ -60,8 +60,12 @@ function commitMessage(files) {
60
60
  * throws and never pushes: any git failure is logged once and swallowed so an
61
61
  * auto-commit can never break the write that triggered it. Returns `nothing`
62
62
  * when there is nothing to snapshot (no empty commits) and `skipped` on failure.
63
+ *
64
+ * `message` overrides the default snapshot subject so a caller that performs a
65
+ * whole logical pass in one shot (e.g. a sleep apply) can label it as one
66
+ * commit; omitted, the `augment: snapshot …` default is used verbatim.
63
67
  */
64
- export async function commitMemoryChanges(dir) {
68
+ export async function commitMemoryChanges(dir, message) {
65
69
  try {
66
70
  await execGit(dir, ["add", "-A", "--", MARKDOWN_PATHSPEC], COMMIT_TIMEOUT_MS);
67
71
  // --quiet exits 0 when nothing is staged, 1 when there are staged changes.
@@ -89,8 +93,8 @@ export async function commitMemoryChanges(dir) {
89
93
  const identityArgs = (await configuredEmail(dir))
90
94
  ? []
91
95
  : ["-c", "user.email=augment@localhost", "-c", "user.name=Augment"];
92
- const message = commitMessage(files);
93
- await execGit(dir, [...identityArgs, "commit", "-m", message, "--", MARKDOWN_PATHSPEC], COMMIT_TIMEOUT_MS);
96
+ const commitMsg = message ?? commitMessage(files);
97
+ await execGit(dir, [...identityArgs, "commit", "-m", commitMsg, "--", MARKDOWN_PATHSPEC], COMMIT_TIMEOUT_MS);
94
98
  return "committed";
95
99
  }
96
100
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/memory/git.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/memory/git.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ /** Reserved pseudo-project whose memories live directly under `.generic/`. */
2
+ export declare const GENERIC_PROJECT_NAME = ".generic";
1
3
  export interface ProjectParts {
2
4
  org: string;
3
5
  repo: string;
@@ -5,4 +7,5 @@ export interface ProjectParts {
5
7
  export declare function parseGitRemote(remote: string): string | undefined;
6
8
  export declare function inferProjectName(cwd?: string): Promise<string>;
7
9
  export declare function projectParts(projectName: string): ProjectParts;
10
+ export declare function isGenericProjectName(projectName: string): boolean;
8
11
  export declare function safeSegment(value: string): string;
@@ -3,6 +3,8 @@ import path from "node:path";
3
3
  import { promisify } from "node:util";
4
4
  import { sha256 } from "../util/hash.js";
5
5
  const execFileAsync = promisify(execFile);
6
+ /** Reserved pseudo-project whose memories live directly under `.generic/`. */
7
+ export const GENERIC_PROJECT_NAME = ".generic";
6
8
  export function parseGitRemote(remote) {
7
9
  const trimmed = remote.trim().replace(/\.git$/, "");
8
10
  const sshMatch = /^git@[^:]+:([^/]+)\/(.+)$/.exec(trimmed);
@@ -38,8 +40,23 @@ export async function inferProjectName(cwd = process.cwd()) {
38
40
  return `local/${safeSegment(basename)}-${hash}`;
39
41
  }
40
42
  export function projectParts(projectName) {
43
+ // Generic memories still use the existing projects table for ownership and
44
+ // CRUD. Duplicate the sentinel into its non-null org/repo columns; their
45
+ // filesystem layout is handled specially by memoryRelativePath.
46
+ if (projectName === GENERIC_PROJECT_NAME) {
47
+ return {
48
+ org: GENERIC_PROJECT_NAME,
49
+ repo: GENERIC_PROJECT_NAME,
50
+ };
51
+ }
41
52
  const [org, ...rest] = projectName.split("/");
42
53
  const repo = rest.join("/");
54
+ // The exact reserved name returned above; any other project whose org segment
55
+ // resolves to `.generic` is rejected so it can never collide with the reserved
56
+ // `.generic/<kind>/<name>.md` layout (safeSegment keeps the leading dot).
57
+ if (safeSegment(org) === GENERIC_PROJECT_NAME) {
58
+ throw new Error(`The "${GENERIC_PROJECT_NAME}" project name is reserved for internal generic memories: ${projectName}`);
59
+ }
43
60
  if (!org || !repo) {
44
61
  throw new Error(`Project name must be org/repo style: ${projectName}`);
45
62
  }
@@ -48,6 +65,9 @@ export function projectParts(projectName) {
48
65
  repo: safeSegment(repo),
49
66
  };
50
67
  }
68
+ export function isGenericProjectName(projectName) {
69
+ return projectName === GENERIC_PROJECT_NAME;
70
+ }
51
71
  export function safeSegment(value) {
52
72
  const safe = value.trim().replace(/\.md$/i, "").replace(/[^a-zA-Z0-9._-]+/g, "-").replace(/^-+|-+$/g, "");
53
73
  return safe || "untitled";
@@ -1 +1 @@
1
- {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/memory/project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/memory/project.ts"],"names":[],"mappings":"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"}
@@ -42,9 +42,17 @@ interface AugmentClient {
42
42
  link(input: unknown): Promise<unknown>;
43
43
  listLinks(memoryId: number): Promise<unknown>;
44
44
  unlink(id: number): Promise<unknown>;
45
- tally(input: unknown): Promise<unknown>;
46
- tallySummary(): Promise<unknown>;
45
+ decoctionGlean(input: unknown): Promise<unknown>;
46
+ decoctionCleanup(input: unknown): Promise<unknown>;
47
47
  sleepCandidates(input: unknown): Promise<unknown>;
48
+ sleepPropose(input: unknown): Promise<unknown>;
49
+ sleepProposals(status?: string): Promise<unknown>;
50
+ sleepApply(input: unknown): Promise<unknown>;
51
+ sleepReject(input: unknown): Promise<unknown>;
52
+ dreamPropose(input: unknown): Promise<unknown>;
53
+ dreamProposals(status?: string): Promise<unknown>;
54
+ dreamApply(input: unknown): Promise<unknown>;
55
+ dreamReject(input: unknown): Promise<unknown>;
48
56
  projectGraph(projectId: number): Promise<unknown>;
49
57
  }
50
58
  export interface AugmentPiDeps {