@coreyuan/vector-mind 1.1.0 → 1.1.3

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 (49) hide show
  1. package/README.md +25 -1
  2. package/dist/builtin-conventions.js +6 -1
  3. package/dist/builtin-conventions.js.map +1 -1
  4. package/dist/builtin-instructions.d.ts +1 -1
  5. package/dist/builtin-instructions.js +1 -1
  6. package/dist/builtin-instructions.js.map +1 -1
  7. package/dist/config.d.ts +1 -1
  8. package/dist/config.js +1 -1
  9. package/dist/context-governance.d.ts +7 -0
  10. package/dist/context-governance.js +41 -1
  11. package/dist/context-governance.js.map +1 -1
  12. package/dist/file-indexing.js +6 -2
  13. package/dist/file-indexing.js.map +1 -1
  14. package/dist/memory-recall.d.ts +6 -0
  15. package/dist/memory-recall.js +73 -102
  16. package/dist/memory-recall.js.map +1 -1
  17. package/dist/memory-safety.d.ts +17 -0
  18. package/dist/memory-safety.js +61 -0
  19. package/dist/memory-safety.js.map +1 -0
  20. package/dist/operation-scope.d.ts +6 -2
  21. package/dist/operation-scope.js +19 -1
  22. package/dist/operation-scope.js.map +1 -1
  23. package/dist/security-signals.d.ts +33 -0
  24. package/dist/security-signals.js +239 -0
  25. package/dist/security-signals.js.map +1 -0
  26. package/dist/server-instructions.js +8 -7
  27. package/dist/server-instructions.js.map +1 -1
  28. package/dist/tool-catalog.js +3 -3
  29. package/dist/tool-catalog.js.map +1 -1
  30. package/dist/tool-handlers/files.js +13 -1
  31. package/dist/tool-handlers/files.js.map +1 -1
  32. package/dist/tool-handlers/memory.js +75 -6
  33. package/dist/tool-handlers/memory.js.map +1 -1
  34. package/dist/tool-handlers/notes-decisions.js +27 -7
  35. package/dist/tool-handlers/notes-decisions.js.map +1 -1
  36. package/dist/tool-handlers/operations.js +7 -1
  37. package/dist/tool-handlers/operations.js.map +1 -1
  38. package/dist/tool-handlers/requirements.js +71 -14
  39. package/dist/tool-handlers/requirements.js.map +1 -1
  40. package/dist/tool-handlers.js +52 -6
  41. package/dist/tool-handlers.js.map +1 -1
  42. package/dist/tool-output.d.ts +38 -0
  43. package/dist/tool-output.js +31 -5
  44. package/dist/tool-output.js.map +1 -1
  45. package/dist/tool-schemas.d.ts +4 -0
  46. package/dist/tool-schemas.js +4 -0
  47. package/dist/tool-schemas.js.map +1 -1
  48. package/docs/capability-matrix.md +2 -0
  49. package/package.json +1 -1
@@ -9,7 +9,8 @@ import { BOOTSTRAP_DEFAULT_CONTEXT_KINDS, getConventionPreviews, getCurrentConte
9
9
  import { logActivity } from "../activity-log.js";
10
10
  import { compactBootstrapText, compactBrainDumpText, compactSemanticSearchText, toolJson } from "../tool-output.js";
11
11
  import { collectCurrentConstraintsForBootstrap } from "./operations.js";
12
- import { boundCompactContext, detectOperationIntent, filterFocusedSemanticResult, focusedTextIsRelevant, isObviouslyCorruptedText, resolveBootstrapContextPolicy, } from "../context-governance.js";
12
+ import { scanUntrustedContent, scanUntrustedFragment } from "../security-signals.js";
13
+ import { boundCompactContext, detectOperationIntent, focusedTextIsRelevant, isObviouslyCorruptedText, resolveBootstrapContextPolicy, } from "../context-governance.js";
13
14
  function focusedRequirementRelevanceScore(query, requirement) {
14
15
  const normalize = (value) => (value ?? "").normalize("NFKC").toLocaleLowerCase().replace(/\s+/g, " ").trim();
15
16
  const normalizedQuery = normalize(query);
@@ -81,6 +82,34 @@ function getActiveLargeFilePlanPreviews(db, reqId, limit, previewChars, contentM
81
82
  LIMIT ?`).all(reqId, limit);
82
83
  return rows.map((row) => toMemoryItemPreview(row, false, previewChars, contentMaxChars));
83
84
  }
85
+ function getFocusedSemanticRequirementContext(db, semantic, includeContent, previewChars, contentMaxChars, changesLimit, excludedReqIds) {
86
+ const reqIds = [...new Set((semantic?.matches ?? [])
87
+ .map((match) => match.item.req_id)
88
+ .filter((reqId) => typeof reqId === "number" && Number.isInteger(reqId) && reqId > 0 && !excludedReqIds.has(reqId)))].slice(0, 8);
89
+ if (!reqIds.length)
90
+ return [];
91
+ const placeholders = reqIds.map(() => "?").join(", ");
92
+ const requirements = db.prepare(`SELECT id, title, status, context_data, goal_key, created_at
93
+ FROM requirements
94
+ WHERE id IN (${placeholders})
95
+ ORDER BY updated_at DESC, id DESC`).all(...reqIds);
96
+ const requirementById = new Map(requirements.map((requirement) => [requirement.id, requirement]));
97
+ const listChanges = db.prepare(`SELECT id, req_id, file_path, intent_summary, files_json, file_count, timestamp
98
+ FROM change_logs
99
+ WHERE req_id = ?
100
+ ORDER BY timestamp DESC, id DESC
101
+ LIMIT ?`);
102
+ return reqIds.flatMap((reqId) => {
103
+ const requirement = requirementById.get(reqId);
104
+ if (!requirement)
105
+ return [];
106
+ return [{
107
+ requirement: toRequirementPreview(requirement, includeContent, previewChars, contentMaxChars),
108
+ recent_changes: listChanges.all(requirement.id, changesLimit)
109
+ .map((change) => toChangeLogPreview(change, includeContent, previewChars, contentMaxChars)),
110
+ }];
111
+ });
112
+ }
84
113
  export async function handleBootstrapContext(rawArgs, context) {
85
114
  const projectRoot = context.getProjectRoot();
86
115
  const rootSource = context.getRootSource();
@@ -124,7 +153,11 @@ export async function handleBootstrapContext(rawArgs, context) {
124
153
  ? focusedActiveRequirements.slice(0, requirementsLimit)
125
154
  : activeRequirement
126
155
  ? [activeRequirement]
127
- : [];
156
+ : db.prepare(`SELECT id, title, status, context_data, goal_key, created_at
157
+ FROM requirements
158
+ WHERE status = 'completed'
159
+ ORDER BY updated_at DESC, created_at DESC, id DESC
160
+ LIMIT ?`).all(requirementsLimit);
128
161
  let items = recent.map((req) => {
129
162
  const changes = listChangeLogsForRequirementStmt.all(req.id, changesLimit);
130
163
  return {
@@ -184,6 +217,10 @@ export async function handleBootstrapContext(rawArgs, context) {
184
217
  includeContent,
185
218
  previewChars,
186
219
  contentMaxChars,
220
+ matchFilter: contextPolicy.mode === "focused"
221
+ ? (item) => focusedTextIsRelevant(q, item.title, item.content, item.file_path)
222
+ : undefined,
223
+ dedupeByRequirement: contextPolicy.mode === "focused",
187
224
  }),
188
225
  new Promise((resolve) => setTimeout(resolve, BOOTSTRAP_SEMANTIC_TIMEOUT_MS, null)),
189
226
  ]).catch((err) => {
@@ -198,9 +235,14 @@ export async function handleBootstrapContext(rawArgs, context) {
198
235
  !["resolved", "deferred", "abandoned"].includes(metadataStatus(match.item))),
199
236
  }
200
237
  : semanticRaw;
201
- const semantic = contextPolicy.mode === "focused"
202
- ? filterFocusedSemanticResult(q, semanticWithoutInactiveDefaultPlans)
203
- : semanticWithoutInactiveDefaultPlans;
238
+ const semanticCandidates = semanticWithoutInactiveDefaultPlans;
239
+ const semantic = semanticCandidates
240
+ ? { ...semanticCandidates, focused_no_match: semanticCandidates.matches.length === 0 }
241
+ : null;
242
+ const anchorRequirementIds = new Set(items.map((item) => item.requirement.id));
243
+ const recalled_context = contextPolicy.mode === "focused"
244
+ ? getFocusedSemanticRequirementContext(db, semantic, includeContent, previewChars, contentMaxChars, changesLimit, anchorRequirementIds)
245
+ : [];
204
246
  const semanticSearchStatus = !q
205
247
  ? "skipped_no_query"
206
248
  : semanticRaw == null
@@ -263,6 +305,25 @@ export async function handleBootstrapContext(rawArgs, context) {
263
305
  max_output_chars: contextPolicy.max_output_chars,
264
306
  compact_truncated: false,
265
307
  current_anchor_included: items.length > 0,
308
+ current_anchor_source: activeRequirement
309
+ ? "active"
310
+ : items.length
311
+ ? "recent_completed"
312
+ : "none",
313
+ },
314
+ recall_coverage: {
315
+ mode: contextPolicy.mode,
316
+ filtered: contextPolicy.mode === "focused",
317
+ memory_store_scope: (contextPolicy.mode === "focused" ? "relevance_filtered" : "bounded_full"),
318
+ output_bounded: true,
319
+ repository_covered: false,
320
+ runtime_covered: false,
321
+ recent_history_included: contextPolicy.include_recent,
322
+ pending_changes_included: contextPolicy.include_pending,
323
+ absence_interpretation: contextPolicy.mode === "focused"
324
+ ? "A missing match means only that no stored item passed focused relevance and output limits; it does not prove the fact was never stored or does not exist in the project/runtime."
325
+ : "A missing match covers the queried memory store and selected kinds, but does not prove the fact does not exist in repository files, credential stores, or live runtime state.",
326
+ next_steps: ["read_memory_item", "semantic_search", "inspect_repository_or_runtime"],
266
327
  },
267
328
  operation_preflight: {
268
329
  detected: operationIntent.detected,
@@ -300,8 +361,10 @@ export async function handleBootstrapContext(rawArgs, context) {
300
361
  development_warnings,
301
362
  quality_signals,
302
363
  items,
364
+ recalled_context,
303
365
  current_constraints,
304
366
  semantic,
367
+ security_scan: scanUntrustedContent(JSON.stringify({ project_summary, decisions, conventions, current_context, recent_notes, pending_changes, items, recalled_context, current_constraints, semantic })),
305
368
  };
306
369
  const compactOutput = boundCompactContext(compactBootstrapText(outputValue), contextPolicy.max_output_chars);
307
370
  outputValue.context_policy = {
@@ -412,6 +475,7 @@ export async function handleGetBrainDump(rawArgs, context) {
412
475
  items,
413
476
  current_constraints,
414
477
  semantic: null,
478
+ security_scan: scanUntrustedContent(JSON.stringify({ project_summary, decisions, conventions, current_context, recent_notes, pending_changes, items, current_constraints })),
415
479
  };
416
480
  return {
417
481
  content: [
@@ -456,6 +520,7 @@ export async function handleReadMemoryItem(rawArgs, context) {
456
520
  offset,
457
521
  limit,
458
522
  truncated,
523
+ security_scan: offset === 0 && !truncated ? scanUntrustedContent(row.content) : scanUntrustedFragment(chunk),
459
524
  content: chunk,
460
525
  }),
461
526
  },
@@ -484,7 +549,11 @@ export async function handleSemanticSearch(rawArgs, _context) {
484
549
  score: m.score,
485
550
  })),
486
551
  });
487
- const outputValue = { ok: true, ...result };
552
+ const outputValue = {
553
+ ok: true,
554
+ ...result,
555
+ security_scan: scanUntrustedContent(JSON.stringify(result)),
556
+ };
488
557
  return {
489
558
  content: [
490
559
  {
@@ -1 +1 @@
1
- {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/tool-handlers/memory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/tool-handlers/memory.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC5I,OAAO,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAC/F,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,6BAA6B,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAC/F,OAAO,EAAE,+BAA+B,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,cAAc,EAAE,4BAA4B,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACrR,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACpH,OAAO,EAAE,qCAAqC,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACrF,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,wBAAwB,EACxB,6BAA6B,GAC9B,MAAM,0BAA0B,CAAC;AAElC,SAAS,gCAAgC,CAAC,KAAa,EAAE,WAA2B;IAClF,MAAM,SAAS,GAAG,CAAC,KAAgC,EAAE,EAAE,CACrD,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAClF,MAAM,eAAe,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,GAAG,KAAK,KAAK,OAAO,KAAK,OAAO,EAAE,CAAC;IACpD,IAAI,eAAe,IAAI,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC;QAAE,OAAO,SAAS,CAAC;IAE5E,MAAM,WAAW,GAAG,eAAe,CAAC,KAAK,CAAC,oCAAoC,CAAC,IAAI,EAAE,CAAC;IACtF,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC/C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9E,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;IACnG,CAAC,CAAC,CAAC;IACH,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,OAAO,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACjF,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,KAAK,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QACzD,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,KAAK,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3D,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IACzD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,4BAA4B,CACnC,EAAqB,EACrB,KAAa,EACb,cAAuB,EACvB,YAAoB,EACpB,eAAuB;IAEvB,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IAC1B,MAAM,QAAQ,GAAG,GAAG,CAAC;IACrB,MAAM,OAAO,GAAG,MAAM,CAAC;IACvB,MAAM,wBAAwB,GAAG,EAAE,CAAC,OAAO,CACzC;;;;sBAIkB,CACnB,CAAC;IACF,IAAI,OAAO,GAAoB,EAAE,CAAC;IAClC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,wBAAwB,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAoB,CAAC;QAC/E,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM;QACxB,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACnD,IAAI,OAAO,CAAC,MAAM,IAAI,KAAK;gBAAE,MAAM;QACrC,CAAC;QACD,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;QACtB,IAAI,OAAO,CAAC,MAAM,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,GAAG,QAAQ,IAAI,MAAM,IAAI,OAAO;YAAE,MAAM;IACpF,CAAC;IACD,OAAO,OAAO;SACX,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;SACf,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC;AACvF,CAAC;AAED,SAAS,8BAA8B,CACrC,EAAqB,EACrB,KAAa,EACb,KAAa,EACb,YAAoB,EACpB,eAAuB;IAEvB,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IAC1B,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CACrB;;;;;;;;;cASU,CACX,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAoB,CAAC;IACvC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,CAAC,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC;AAC3F,CAAC;AAED,SAAS,oCAAoC,CAC3C,EAAqB,EACrB,QAAwE,EACxE,cAAuB,EACvB,YAAoB,EACpB,eAAuB,EACvB,YAAoB,EACpB,cAA2B;IAE3B,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CACxB,CAAC,QAAQ,EAAE,OAAO,IAAI,EAAE,CAAC;aACtB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;aACjC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CACjC,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAChG,CACJ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACf,IAAI,CAAC,MAAM,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAE9B,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,MAAM,YAAY,GAAG,EAAE,CAAC,OAAO,CAC7B;;qBAEiB,YAAY;wCACO,CACrC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAqB,CAAC;IACrC,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IAClG,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAC5B;;;;cAIU,CACX,CAAC;IACF,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC9B,MAAM,WAAW,GAAG,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW;YAAE,OAAO,EAAE,CAAC;QAC5B,OAAO,CAAC;gBACN,WAAW,EAAE,oBAAoB,CAAC,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,CAAC;gBAC7F,cAAc,EAAG,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,EAAE,YAAY,CAAoB;qBAC9E,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,kBAAkB,CAAC,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;aAC9F,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,OAAgC,EAChC,OAA2B;IAE3B,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAC7C,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IACnC,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAC3B,MAAM,cAAc,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAClD,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAC9C,MAAM,EACJ,wBAAwB,EACxB,0BAA0B,EAC1B,sBAAsB,EACtB,qBAAqB,EACrB,0BAA0B,EAC1B,gCAAgC,GACjC,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAE5B,MAAM,IAAI,GAAG,0BAA0B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACvD,MAAM,aAAa,GAAG,6BAA6B,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACnE,wBAAwB,EAAE,CAAC;IAC3B,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAEnC,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC;IACxC,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC;IAC5C,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC;IAC/C,MAAM,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC;IAClD,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC;IACxC,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;IACpC,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC;IAChD,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC;IAC5C,MAAM,mBAAmB,GAAG,IAAI,CAAC,qBAAqB,CAAC;IAEvD,MAAM,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,iBAAiB,CAAC,CAAC;IAC7D,MAAM,kBAAkB,GAAG,0BAA0B,CAAC,GAAG,CAAC,oBAAoB,CAAqB,CAAC;IACpG,MAAM,oBAAoB,GAAG,aAAa,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC;QAChE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,OAAO,CACrB;8EACsE,CACvE,CAAC,GAAG,CAAC,CAAC,CAA+B;QACxC,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,0BAA0B,GAAG,aAAa,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC;QACtE,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CACxC,qBAAqB,CAAC,CAAC,EAAE,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,YAAY,EAAE,WAAW,CAAC,QAAQ,CAAC,CAC5F,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACrB,gCAAgC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,gCAAgC,CAAC,CAAC,EAAE,IAAI,CAAC;YACtF,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CACnB;QACH,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;IACnD,MAAM,yBAAyB,GAAG,oBAAoB;QACpD,CAAC,CAAC,CAAC,oBAAoB,EAAE,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,KAAK,oBAAoB,CAAC,EAAE,CAAC,CAAC;QAC3H,CAAC,CAAC,0BAA0B,CAAC;IAC/B,MAAM,iBAAiB,GAAG,yBAAyB,CAAC,CAAC,CAAC;WACjD,kBAAkB,CAAC,CAAC,CAAC;WACrB,wBAAwB,CAAC,GAAG,EAAgC,CAAC;IAClE,MAAM,MAAM,GAAG,aAAa,CAAC,cAAc;QACzC,CAAC,CAAC,0BAA0B,CAAC,GAAG,CAAC,iBAAiB,CAAqB;QACvE,CAAC,CAAC,yBAAyB,CAAC,MAAM;YAChC,CAAC,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC;YACvD,CAAC,CAAC,iBAAiB;gBACjB,CAAC,CAAC,CAAC,iBAAiB,CAAC;gBACrB,CAAC,CAAC,EAAE,CAAC,OAAO,CACR;;;;sBAIU,CACX,CAAC,GAAG,CAAC,iBAAiB,CAAqB,CAAC;IACrD,IAAI,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QAC7B,MAAM,OAAO,GAAG,gCAAgC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,YAAY,CAAmB,CAAC;QAC7F,OAAO;YACL,WAAW,EAAE,oBAAoB,CAAC,GAAG,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,CAAC;YACrF,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;SACzG,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,GAAG,EAA+B,CAAC;IACnF,IAAI,eAAe,GAAG,iBAAiB;QACrC,CAAC,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,CAAC;QACvF,CAAC,CAAC,IAAI,CAAC;IACT,IAAI,YAAY,GAAG,aAAa,CAAC,cAAc;QAC7C,CAAC,CAAC,4BAA4B,CAAC,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,CAAC;QAC7F,CAAC,CAAC,EAAE,CAAC;IACP,IAAI,SAAS,GAAG,mBAAmB,CACjC,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,EAC3E,YAAY,EACZ,eAAe,CAChB,CAAC;IACF,IAAI,WAAW,GAAG,aAAa,CAAC,cAAc;QAC5C,CAAC,CAAC,qBAAqB,CAAC,gBAAgB,EAAE,YAAY,EAAE,eAAe,CAAC;QACxE,CAAC,CAAC,EAAE,CAAC;IACP,IAAI,eAAe,GAAG,aAAa,CAAC,cAAc;QAChD,CAAC,CAAC,yBAAyB,CAAC,mBAAmB,EAAE,YAAY,EAAE,eAAe,CAAC;QAC/E,CAAC,CAAC,iBAAiB;YACjB,CAAC,CAAC,8BAA8B,CAAC,EAAE,EAAE,iBAAiB,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,mBAAmB,CAAC,EAAE,YAAY,EAAE,eAAe,CAAC;YAC3H,CAAC,CAAC,EAAE,CAAC;IACT,IAAI,mBAAmB,GAAG,qCAAqC,CAC7D,OAAO,EACP,aAAa,CAAC,cAAc;QAC1B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,mBAAmB,GAAG,cAAc,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC,EACL,YAAY,CACb,CAAC;IACF,MAAM,cAAc,GAAG,iBAAiB,CAAC;IACzC,MAAM,mBAAmB,GAAG,0BAA0B,CAAC,OAAO,EAAE;QAC9D,MAAM,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;QACxB,KAAK,EAAE,EAAE;QACT,WAAW,EAAE,cAAc,IAAI,IAAI;QACnC,KAAK,EAAE,CAAC;KACT,CAAC,CAAC;IACH,MAAM,eAAe,GAAG,6BAA6B,CAAC,mBAAmB,CAAC,CAAC;IAC3E,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;IAC3C,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;IACzC,MAAM,aAAa,GAAG,aAAa,CAAC,eAAe;QACjD,CAAC,CAAC,mBAAmB,CACjB,sBAAsB,CAAC,GAAG,EAIxB,EACF,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,EAAE,CACjD;QACH,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAC7C,MAAM,aAAa,GAAG,aAAa,CAAC,KAAK,CAAC;IAC1C,IAAI,iBAAiB,GAAG,aAAa,CAAC,SAAS,CAAC;IAChD,IAAI,eAAe,GAAG,aAAa,CAAC,IAAI,CAAC;IACzC,IAAI,oBAAoB,GAAG;QACzB,GAAG,wBAAwB,CAAC,eAAe,CAAC;QAC5C,GAAG,CAAC,cAAc;YAChB,CAAC,CAAC,uBAAuB,CAAC,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;YAClF,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;IAEF,MAAM,eAAe,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACjD,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,+BAA+B,CAAC;IACxF,MAAM,WAAW,GACf,CAAC;QACC,CAAC,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC;YACjB,4BAA4B,CAAC;gBAC3B,KAAK,EAAE,CAAC;gBACR,IAAI,EAAE,IAAI,CAAC,KAAK;gBAChB,KAAK,EAAE,aAAa;gBACpB,cAAc;gBACd,YAAY;gBACZ,eAAe;gBACf,WAAW,EAAE,aAAa,CAAC,IAAI,KAAK,SAAS;oBAC3C,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,qBAAqB,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;oBAC9E,CAAC,CAAC,SAAS;gBACb,mBAAmB,EAAE,aAAa,CAAC,IAAI,KAAK,SAAS;aACtD,CAAC;YACF,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,6BAA6B,EAAE,IAAI,CAAC,CAAC;SACzF,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACf,OAAO,CAAC,KAAK,CAAC,gDAAgD,EAAE,GAAG,CAAC,CAAC;YACrE,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QACJ,CAAC,CAAC,IAAI,CAAC;IACX,MAAM,mCAAmC,GAAG,WAAW,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM;QAC5E,CAAC,CAAC;YACE,GAAG,WAAW;YACd,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAC5C,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,uBAAuB;gBAC3C,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAC5E;SACF;QACH,CAAC,CAAC,WAAW,CAAC;IAChB,MAAM,kBAAkB,GAAG,mCAAmC,CAAC;IAC/D,MAAM,QAAQ,GAAG,kBAAkB;QACjC,CAAC,CAAC,EAAE,GAAG,kBAAkB,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACtF,CAAC,CAAC,IAAI,CAAC;IACT,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/E,MAAM,gBAAgB,GAAG,aAAa,CAAC,IAAI,KAAK,SAAS;QACvD,CAAC,CAAC,oCAAoC,CAClC,EAAE,EACF,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,oBAAoB,CACrB;QACH,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,oBAAoB,GAAG,CAAC,CAAC;QAC7B,CAAC,CAAC,kBAAkB;QACpB,CAAC,CAAC,WAAW,IAAI,IAAI;YACnB,CAAC,CAAC,wBAAwB;YAC1B,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM;gBACzB,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,YAAY,CAAC;IAErB,MAAM,cAAc,GAAG,CAAC,IAAmF,EAAE,EAAE,CAC7G,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACtE,IAAI,eAAe,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC;QAAE,eAAe,GAAG,IAAI,CAAC;IAChF,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAC5B,CAAC,wBAAwB,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CACpF,CAAC;IACF,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACnD,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAC7C,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACjD,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACzD,mBAAmB,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAC9D,CAAC,wBAAwB,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAChE,CAAC;IACF,IAAI,aAAa,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;QACtE,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACpC,qBAAqB,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CACnE,CAAC;QACF,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAChD,qBAAqB,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CACnE,CAAC;QACF,mBAAmB,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAC9D,qBAAqB,CAAC,CAAC,EAAE,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAC/D,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;QACnC,eAAe,GAAG,EAAE,CAAC;QACrB,iBAAiB,GAAG,aAAa,GAAG,CAAC,CAAC;QACtC,oBAAoB,GAAG,EAAE,CAAC;IAC5B,CAAC;IAED,WAAW,CAAC,mBAAmB,EAAE;QAC/B,KAAK,EAAE,CAAC,IAAI,IAAI;QAChB,aAAa;QACb,gBAAgB,EAAE,eAAe,CAAC,MAAM;QACxC,qBAAqB,EAAE,KAAK,CAAC,MAAM;QACnC,kBAAkB,EAAE,SAAS,CAAC,MAAM;QACpC,wBAAwB,EAAE,eAAe,CAAC,MAAM;QAChD,oBAAoB,EAAE,WAAW,CAAC,MAAM;QACxC,aAAa,EAAE,QAAQ,EAAE,IAAI,IAAI,IAAI;QACrC,gBAAgB,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;QAChD,YAAY,EAAE,aAAa,CAAC,IAAI;QAChC,gBAAgB,EAAE,aAAa,CAAC,eAAe;QAC/C,eAAe,EAAE,aAAa,CAAC,cAAc;QAC7C,yBAAyB,EAAE,eAAe,CAAC,QAAQ;QACnD,sBAAsB,EAAE,eAAe,CAAC,aAAa;KACtD,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG;QAClB,EAAE,EAAE,IAAI;QACR,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACtC,YAAY,EAAE,WAAW;QACzB,WAAW,EAAE,UAAU;QACvB,OAAO,EAAE,MAAM;QACf,eAAe,EAAE,cAAc;QAC/B,aAAa,EAAE,YAAY;QAC3B,WAAW,EAAE;YACX,OAAO,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;YACrE,aAAa,EAAE,OAAO,CAAC,cAAc,EAAE;YACvC,eAAe,EAAE,oBAAoB;SACtC;QACD,cAAc,EAAE;YACd,IAAI,EAAE,aAAa,CAAC,IAAI;YACxB,eAAe,EAAE,aAAa,CAAC,eAAe;YAC9C,cAAc,EAAE,aAAa,CAAC,cAAc;YAC5C,gBAAgB,EAAE,aAAa,CAAC,gBAAgB;YAChD,iBAAiB,EAAE,KAAK;YACxB,uBAAuB,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC;YACzC,qBAAqB,EAAE,iBAAiB;gBACtC,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,KAAK,CAAC,MAAM;oBACZ,CAAC,CAAC,kBAAkB;oBACpB,CAAC,CAAC,MAAM;SACb;QACD,eAAe,EAAE;YACf,IAAI,EAAE,aAAa,CAAC,IAAI;YACxB,QAAQ,EAAE,aAAa,CAAC,IAAI,KAAK,SAAS;YAC1C,kBAAkB,EAAE,CAAC,aAAa,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,cAAc,CAA0C;YACvI,cAAc,EAAE,IAAI;YACpB,kBAAkB,EAAE,KAAK;YACzB,eAAe,EAAE,KAAK;YACtB,uBAAuB,EAAE,aAAa,CAAC,cAAc;YACrD,wBAAwB,EAAE,aAAa,CAAC,eAAe;YACvD,sBAAsB,EAAE,aAAa,CAAC,IAAI,KAAK,SAAS;gBACtD,CAAC,CAAC,kLAAkL;gBACpL,CAAC,CAAC,+KAA+K;YACnL,UAAU,EAAE,CAAC,kBAAkB,EAAE,iBAAiB,EAAE,+BAA+B,CAAC;SACrF;QACD,mBAAmB,EAAE;YACnB,QAAQ,EAAE,eAAe,CAAC,QAAQ;YAClC,wBAAwB,EAAE,eAAe,CAAC,QAAQ;YAClD,IAAI,EAAE,2BAA2B;YACjC,oCAAoC,EAAE,IAAI;YAC1C,aAAa,EAAE,eAAe,CAAC,aAAa;YAC5C,MAAM,EAAE,eAAe,CAAC,QAAQ;gBAC9B,CAAC,CAAC,gKAAgK;gBAClK,CAAC,CAAC,IAAI;SACT;QACD,MAAM,EAAE;YACN,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,eAAe,EAAE,cAAc;YAC/B,aAAa,EAAE,YAAY;YAC3B,iBAAiB,EAAE,eAAe;YAClC,kBAAkB,EAAE,iBAAiB;YACrC,aAAa,EAAE,YAAY;YAC3B,WAAW,EAAE,UAAU;YACvB,eAAe,EAAE,cAAc;YAC/B,qBAAqB,EAAE,mBAAmB;YAC1C,iBAAiB,EAAE,gBAAgB;SACpC;QACD,eAAe;QACf,SAAS;QACT,WAAW;QACX,eAAe;QACf,YAAY;QACZ,aAAa;QACb,gBAAgB,EAAE,aAAa,CAAC,eAAe;QAC/C,cAAc;QACd,aAAa;QACb,iBAAiB;QACjB,eAAe;QACf,oBAAoB;QACpB,eAAe;QACf,KAAK;QACL,gBAAgB;QAChB,mBAAmB;QACnB,QAAQ;QACR,aAAa,EAAE,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,QAAQ,EAAE,CAAC,CAAC;KACzM,CAAC;IAEF,MAAM,aAAa,GAAG,mBAAmB,CACvC,oBAAoB,CAAC,WAAW,CAAC,EACjC,aAAa,CAAC,gBAAgB,CAC/B,CAAC;IACF,WAAW,CAAC,cAAc,GAAG;QAC3B,GAAG,WAAW,CAAC,cAAc;QAC7B,iBAAiB,EAAE,aAAa,CAAC,SAAS;KAC3C,CAAC;IAEF,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,QAAQ,CAAC,mBAAmB,EAAE,WAAW,EAAE,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;aAClF;SACF;KACF,CAAC;AACJ,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAgC,EAChC,OAA2B;IAE3B,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAC7C,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IACnC,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAC3B,MAAM,cAAc,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAClD,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAC9C,MAAM,EACJ,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,0BAA0B,EAC1B,gCAAgC,GACjC,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAE5B,MAAM,IAAI,GAAG,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACnD,wBAAwB,EAAE,CAAC;IAC3B,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC;IACxC,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC;IAC5C,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC;IAC/C,MAAM,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC;IAClD,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC;IACxC,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;IACpC,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC;IAChD,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC;IAC5C,MAAM,mBAAmB,GAAG,IAAI,CAAC,qBAAqB,CAAC;IAEvD,MAAM,MAAM,GAAG,0BAA0B,CAAC,GAAG,CAAC,iBAAiB,CAAqB,CAAC;IACrF,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QAC/B,MAAM,OAAO,GAAG,gCAAgC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,YAAY,CAAmB,CAAC;QAC7F,OAAO;YACL,WAAW,EAAE,oBAAoB,CAAC,GAAG,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,CAAC;YACrF,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;SACzG,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,GAAG,EAA+B,CAAC;IACnF,MAAM,eAAe,GAAG,iBAAiB;QACvC,CAAC,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,CAAC;QACvF,CAAC,CAAC,IAAI,CAAC;IACT,MAAM,YAAY,GAAG,4BAA4B,CAC/C,EAAE,EACF,UAAU,EACV,cAAc,EACd,YAAY,EACZ,eAAe,CAChB,CAAC;IACF,MAAM,SAAS,GAAG,mBAAmB,CAAC,cAAc,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;IACrF,MAAM,WAAW,GAAG,qBAAqB,CAAC,gBAAgB,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;IAC3F,MAAM,eAAe,GAAG,yBAAyB,CAAC,mBAAmB,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;IACtG,MAAM,mBAAmB,GAAG,qCAAqC,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,mBAAmB,GAAG,cAAc,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IAC1J,MAAM,eAAe,GAAG,6BAA6B,CAAC,EAAE,CAAC,CAAC;IAC1D,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;IAC3C,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;IACzC,MAAM,aAAa,GAAG,sBAAsB,CAAC,GAAG,EAI9C,CAAC;IACH,MAAM,aAAa,GAAG,mBAAmB,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;IAC3G,MAAM,aAAa,GAAG,aAAa,CAAC,KAAK,CAAC;IAC1C,MAAM,iBAAiB,GAAG,aAAa,CAAC,SAAS,CAAC;IAClD,MAAM,eAAe,GAAG,aAAa,CAAC,IAAI,CAAC;IAC3C,MAAM,cAAc,GAAG,wBAAwB,CAAC,GAAG,EAAgC,CAAC;IACpF,MAAM,oBAAoB,GAAG;QAC3B,GAAG,wBAAwB,CAAC,eAAe,CAAC;QAC5C,GAAG,CAAC,cAAc;YAChB,CAAC,CAAC,uBAAuB,CAAC,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;YAClF,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;IAEF,WAAW,CAAC,gBAAgB,EAAE;QAC5B,aAAa;QACb,gBAAgB,EAAE,eAAe,CAAC,MAAM;QACxC,qBAAqB,EAAE,KAAK,CAAC,MAAM;QACnC,cAAc,EAAE,YAAY,CAAC,MAAM;QACnC,kBAAkB,EAAE,SAAS,CAAC,MAAM;QACpC,wBAAwB,EAAE,eAAe,CAAC,MAAM;QAChD,oBAAoB,EAAE,WAAW,CAAC,MAAM;KACzC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG;QAClB,EAAE,EAAE,IAAI;QACR,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACtC,YAAY,EAAE,WAAW;QACzB,WAAW,EAAE,UAAU;QACvB,OAAO,EAAE,MAAM;QACf,eAAe,EAAE,cAAc;QAC/B,aAAa,EAAE,YAAY;QAC3B,MAAM,EAAE;YACN,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,eAAe,EAAE,cAAc;YAC/B,aAAa,EAAE,YAAY;YAC3B,iBAAiB,EAAE,eAAe;YAClC,kBAAkB,EAAE,iBAAiB;YACrC,aAAa,EAAE,YAAY;YAC3B,WAAW,EAAE,UAAU;YACvB,eAAe,EAAE,cAAc;YAC/B,qBAAqB,EAAE,mBAAmB;YAC1C,iBAAiB,EAAE,gBAAgB;SACpC;QACD,eAAe;QACf,SAAS;QACT,WAAW;QACX,eAAe;QACf,YAAY;QACZ,aAAa;QACb,cAAc;QACd,aAAa;QACb,iBAAiB;QACjB,eAAe;QACf,oBAAoB;QACpB,eAAe;QACf,KAAK;QACL,mBAAmB;QACnB,QAAQ,EAAE,IAAI;QACd,aAAa,EAAE,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;KAC7K,CAAC;IAEF,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,QAAQ,CAAC,gBAAgB,EAAE,WAAW,EAAE,oBAAoB,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;aAC9F;SACF;KACF,CAAC;AACJ,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAAgC,EAChC,OAA2B;IAE3B,MAAM,EAAE,qBAAqB,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAE1D,MAAM,IAAI,GAAG,wBAAwB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrD,wBAAwB,EAAE,CAAC;IAC3B,MAAM,GAAG,GAAG,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAA8B,CAAC;IAC5E,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IAC3G,CAAC;IAED,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;IACjC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACzB,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;IAEzC,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,QAAQ,CAAC;oBACb,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE;wBACJ,EAAE,EAAE,GAAG,CAAC,EAAE;wBACV,IAAI,EAAE,GAAG,CAAC,IAAI;wBACd,KAAK,EAAE,GAAG,CAAC,KAAK;wBAChB,SAAS,EAAE,GAAG,CAAC,SAAS;wBACxB,UAAU,EAAE,GAAG,CAAC,UAAU;wBAC1B,QAAQ,EAAE,GAAG,CAAC,QAAQ;wBACtB,MAAM,EAAE,GAAG,CAAC,MAAM;wBAClB,aAAa,EAAE,GAAG,CAAC,aAAa;wBAChC,UAAU,EAAE,GAAG,CAAC,UAAU;qBAC3B;oBACD,WAAW,EAAE,KAAK;oBAClB,MAAM;oBACN,KAAK;oBACL,SAAS;oBACT,aAAa,EAAE,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,KAAK,CAAC;oBAC5G,OAAO,EAAE,KAAK;iBACf,CAAC;aACH;SACF;KACF,CAAC;AACJ,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAAgC,EAChC,QAA4B;IAE5B,MAAM,IAAI,GAAG,wBAAwB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,MAAM,4BAA4B,CAAC;QAChD,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,IAAI,EAAE,IAAI,CAAC,KAAK;QAChB,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;QAC7C,cAAc,EAAE,IAAI,CAAC,eAAe;QACpC,YAAY,EAAE,IAAI,CAAC,aAAa;QAChC,eAAe,EAAE,IAAI,CAAC,iBAAiB;KACxC,CAAC,CAAC;IAEH,WAAW,CAAC,iBAAiB,EAAE;QAC7B,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM;QAC9B,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9C,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE;YACb,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI;YACjB,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS;YAC3B,KAAK,EAAE,CAAC,CAAC,KAAK;SACf,CAAC,CAAC;KACJ,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG;QAClB,EAAE,EAAE,IAAI;QACR,GAAG,MAAM;QACT,aAAa,EAAE,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;KAC5D,CAAC;IAEF,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,iBAAiB,CAAC,iBAAiB,EAAE,WAAW,EAAE,yBAAyB,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;aAC7G;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -3,11 +3,13 @@ import { supersedeMemoryItemIds, supersedeRequirementIds } from "../memory-mutat
3
3
  import { makePreviewText } from "../memory-recall.js";
4
4
  import { logActivity } from "../activity-log.js";
5
5
  import { safeJson, toolJson } from "../tool-output.js";
6
+ import { sanitizePersistentMemoryText } from "../memory-safety.js";
6
7
  export async function handleUpsertProjectSummary(rawArgs, context) {
7
8
  const sha256Hex = context.sha256Hex;
8
9
  const { getProjectSummaryStmt, upsertProjectSummaryStmt } = context.getStatements();
9
10
  const args = UpsertProjectSummaryArgsSchema.parse(rawArgs);
10
- const summary = args.summary.trim();
11
+ const sanitized = sanitizePersistentMemoryText(args.summary.trim());
12
+ const summary = sanitized.text;
11
13
  const contentHash = sha256Hex(summary);
12
14
  upsertProjectSummaryStmt.run(summary, safeJson({ source: "assistant" }), contentHash);
13
15
  const row = getProjectSummaryStmt.get();
@@ -18,6 +20,7 @@ export async function handleUpsertProjectSummary(rawArgs, context) {
18
20
  text: toolJson({
19
21
  ok: true,
20
22
  project_summary: row ? { id: row.id, updated_at: row.updated_at } : null,
23
+ redaction: { applied: sanitized.redacted, categories: sanitized.categories },
21
24
  }),
22
25
  },
23
26
  ],
@@ -27,15 +30,24 @@ export async function handleAddNote(rawArgs, context) {
27
30
  const sha256Hex = context.sha256Hex;
28
31
  const { insertMemoryItemStmt } = context.getStatements();
29
32
  const args = AddNoteArgsSchema.parse(rawArgs);
30
- const title = args.title?.trim() ?? "";
31
- const content = args.content.trim();
33
+ const sanitizedTitle = sanitizePersistentMemoryText(args.title?.trim() ?? "");
34
+ const sanitizedContent = sanitizePersistentMemoryText(args.content.trim());
35
+ const title = sanitizedTitle.text;
36
+ const content = sanitizedContent.text;
32
37
  const info = insertMemoryItemStmt.run("note", title || null, content, null, null, null, null, safeJson({ tags: args.tags ?? [] }), sha256Hex(content));
33
38
  const id = Number(info.lastInsertRowid);
34
39
  return {
35
40
  content: [
36
41
  {
37
42
  type: "text",
38
- text: toolJson({ ok: true, note: { id } }),
43
+ text: toolJson({
44
+ ok: true,
45
+ note: { id },
46
+ redaction: {
47
+ applied: sanitizedTitle.redacted || sanitizedContent.redacted,
48
+ categories: [...new Set([...sanitizedTitle.categories, ...sanitizedContent.categories])].sort(),
49
+ },
50
+ }),
39
51
  },
40
52
  ],
41
53
  };
@@ -46,8 +58,10 @@ export async function handleUpsertDecision(rawArgs, context) {
46
58
  const { upsertDecisionStmt, getDecisionByKeyStmt } = context.getStatements();
47
59
  const args = UpsertDecisionArgsSchema.parse(rawArgs);
48
60
  const key = args.key.trim();
49
- const title = args.title.trim() || key;
50
- const content = args.content.trim();
61
+ const sanitizedTitle = sanitizePersistentMemoryText(args.title.trim() || key);
62
+ const sanitizedContent = sanitizePersistentMemoryText(args.content.trim());
63
+ const title = sanitizedTitle.text;
64
+ const content = sanitizedContent.text;
51
65
  const meta = {
52
66
  status: "current",
53
67
  key,
@@ -82,6 +96,10 @@ export async function handleUpsertDecision(rawArgs, context) {
82
96
  decision: row ? { id: row.id, key, updated_at: row.updated_at } : null,
83
97
  superseded_requirements,
84
98
  superseded_memory_items,
99
+ redaction: {
100
+ applied: sanitizedTitle.redacted || sanitizedContent.redacted,
101
+ categories: [...new Set([...sanitizedTitle.categories, ...sanitizedContent.categories])].sort(),
102
+ },
85
103
  }),
86
104
  },
87
105
  ],
@@ -135,7 +153,8 @@ export async function handleUpsertConvention(rawArgs, context) {
135
153
  const { getConventionByKeyStmt, insertConventionStmt, updateConventionByIdStmt } = context.getStatements();
136
154
  const args = UpsertConventionArgsSchema.parse(rawArgs);
137
155
  const key = args.key.trim();
138
- const content = args.content.trim();
156
+ const sanitized = sanitizePersistentMemoryText(args.content.trim());
157
+ const content = sanitized.text;
139
158
  const contentHash = sha256Hex(content);
140
159
  const meta = safeJson({ tags: args.tags ?? [] });
141
160
  const existing = getConventionByKeyStmt.get(key);
@@ -161,6 +180,7 @@ export async function handleUpsertConvention(rawArgs, context) {
161
180
  preview: makePreviewText(row.content, DEFAULT_PREVIEW_CHARS),
162
181
  }
163
182
  : null,
183
+ redaction: { applied: sanitized.redacted, categories: sanitized.categories },
164
184
  }),
165
185
  },
166
186
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"notes-decisions.js","sourceRoot":"","sources":["../../src/tool-handlers/notes-decisions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notes-decisions.js","sourceRoot":"","sources":["../../src/tool-handlers/notes-decisions.ts"],"names":[],"mappings":"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"}
@@ -49,7 +49,12 @@ export async function handlePreflightOperationScope(rawArgs, context) {
49
49
  targets: args.targets,
50
50
  script_hints: args.script_hints,
51
51
  };
52
- const result = evaluateOperationScope(plan, allCurrentConstraints);
52
+ const result = evaluateOperationScope(plan, allCurrentConstraints, {
53
+ acknowledged: args.security_acknowledged,
54
+ reason: args.security_override_reason,
55
+ allowed_hosts: args.security_allowed_hosts,
56
+ authorization_token: args.security_authorization_token,
57
+ });
53
58
  const operationQuery = [
54
59
  args.operation,
55
60
  args.intent,
@@ -71,6 +76,7 @@ export async function handlePreflightOperationScope(rawArgs, context) {
71
76
  constraints_returned: result.current_constraints.length,
72
77
  });
73
78
  return {
79
+ isError: !result.ok,
74
80
  content: [
75
81
  {
76
82
  type: "text",
@@ -1 +1 @@
1
- {"version":3,"file":"operations.js","sourceRoot":"","sources":["../../src/tool-handlers/operations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operations.js","sourceRoot":"","sources":["../../src/tool-handlers/operations.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,8 @@ import { makePreviewText, parseMetadataJson } from "../memory-recall.js";
11
11
  import { logActivity } from "../activity-log.js";
12
12
  import { compactPreflightChangeScopeText, safeJson, toolJson } from "../tool-output.js";
13
13
  import { normalizeRequirementGoalIdentity, sameRequirement } from "../context-governance.js";
14
+ import { requirementOverlapScore } from "../context-governance.js";
15
+ import { sanitizePersistentMemoryStrings, sanitizePersistentMemoryText, sanitizePersistentMemoryValue } from "../memory-safety.js";
14
16
  import { DEVELOPMENT_HUGE_FILE_LINES } from "../config.js";
15
17
  import { hashFileContentStreaming } from "../large-file-split.js";
16
18
  import { resolvePathWithinRoot } from "../path-containment.js";
@@ -220,32 +222,45 @@ export async function handleStartRequirement(rawArgs, context) {
220
222
  const args = StartRequirementArgsSchema.parse(rawArgs);
221
223
  const shouldClosePrevious = args.close_previous || args.previous_req_id != null;
222
224
  flushPendingChangeBuffer();
225
+ const sanitizedTitle = sanitizePersistentMemoryText(args.title.trim());
226
+ const sanitizedBackground = sanitizePersistentMemoryText(args.background?.trim() ?? "");
227
+ const sanitizedItems = sanitizePersistentMemoryStrings(args.requirement_items);
228
+ const persistentArgs = {
229
+ ...args,
230
+ title: sanitizedTitle.text,
231
+ background: sanitizedBackground.text,
232
+ requirement_items: sanitizedItems.values,
233
+ };
223
234
  const scope_contract = buildRequirementScopeContract({
224
- title: args.title,
225
- background: args.background,
235
+ title: persistentArgs.title,
236
+ background: persistentArgs.background,
226
237
  scope_allow: args.scope_allow,
227
238
  scope_deny: args.scope_deny,
228
239
  allowed_paths: args.allowed_paths,
229
240
  denied_paths: args.denied_paths,
230
241
  });
231
- const requirement_items = normalizeRequirementItems(args.requirement_items);
242
+ const requirement_items = normalizeRequirementItems(persistentArgs.requirement_items);
232
243
  const development_warnings = buildRequirementStartWarnings({
233
- title: args.title,
234
- background: args.background,
244
+ title: persistentArgs.title,
245
+ background: persistentArgs.background,
235
246
  close_previous: shouldClosePrevious,
236
247
  });
248
+ const redaction = {
249
+ applied: sanitizedTitle.redacted || sanitizedBackground.redacted || sanitizedItems.redacted,
250
+ categories: [...new Set([...sanitizedTitle.categories, ...sanitizedBackground.categories, ...sanitizedItems.categories])].sort(),
251
+ };
237
252
  const explicitGoalKey = args.goal_key?.trim() ?? "";
238
253
  const goalKey = explicitGoalKey ||
239
- `auto:${sha256Hex(normalizeRequirementGoalIdentity(args.title, args.background)).slice(0, 24)}`;
240
- const background = args.background?.trim() ?? "";
241
- const content = background ? `${args.title}\n\n${background}` : args.title;
254
+ `auto:${sha256Hex(normalizeRequirementGoalIdentity(persistentArgs.title, persistentArgs.background)).slice(0, 24)}`;
255
+ const background = persistentArgs.background;
256
+ const content = background ? `${persistentArgs.title}\n\n${background}` : persistentArgs.title;
242
257
  let writeOutcome;
243
258
  try {
244
259
  const writeTransaction = context.getDb().transaction(() => {
245
260
  const currentByGoalKey = getActiveRequirementByGoalKeyStmt.get(goalKey);
246
261
  const currentActiveCandidates = listActiveRequirementsStmt.all(50);
247
262
  const currentExactActive = !explicitGoalKey
248
- ? currentActiveCandidates.find((candidate) => sameRequirement(candidate, { ...args, goal_key: goalKey }))
263
+ ? currentActiveCandidates.find((candidate) => sameRequirement(candidate, { ...persistentArgs, goal_key: goalKey }))
249
264
  : undefined;
250
265
  const currentActive = currentByGoalKey ?? currentExactActive;
251
266
  const currentReuseReason = currentByGoalKey
@@ -261,6 +276,19 @@ export async function handleStartRequirement(rawArgs, context) {
261
276
  closedPrevious: false,
262
277
  };
263
278
  }
279
+ if (shouldClosePrevious && !explicitGoalKey && !args.previous_req_id && currentActiveCandidates.length === 1) {
280
+ const overlapScore = requirementOverlapScore(currentActiveCandidates[0], persistentArgs);
281
+ if (overlapScore >= 0.55) {
282
+ return {
283
+ kind: "error",
284
+ code: "POSSIBLE_REQUIREMENT_OVERLAP",
285
+ error: "The new requirement strongly overlaps the active requirement. Reuse its goal_key to continue it, or pass previous_req_id explicitly to confirm replacement.",
286
+ activeRequirements: currentActiveCandidates,
287
+ activeCount: 1,
288
+ overlapScore,
289
+ };
290
+ }
291
+ }
264
292
  if (shouldClosePrevious && !args.previous_req_id && currentActiveCandidates.length > 1) {
265
293
  return {
266
294
  kind: "error",
@@ -293,7 +321,7 @@ export async function handleStartRequirement(rawArgs, context) {
293
321
  }
294
322
  let id;
295
323
  try {
296
- const info = insertRequirementStmt.run(args.title, args.background || null, goalKey);
324
+ const info = insertRequirementStmt.run(persistentArgs.title, persistentArgs.background || null, goalKey);
297
325
  id = Number(info.lastInsertRowid);
298
326
  }
299
327
  catch (err) {
@@ -307,7 +335,7 @@ export async function handleStartRequirement(rawArgs, context) {
307
335
  closedPrevious,
308
336
  };
309
337
  }
310
- const memoryInfo = insertMemoryItemStmt.run("requirement", args.title, content, null, null, null, id, safeJson({ status: "active", goal_key: goalKey, scope_contract, requirement_items }), sha256Hex(content));
338
+ const memoryInfo = insertMemoryItemStmt.run("requirement", persistentArgs.title, content, null, null, null, id, safeJson({ status: "active", goal_key: goalKey, scope_contract, requirement_items }), sha256Hex(content));
311
339
  return {
312
340
  kind: "created",
313
341
  id,
@@ -333,7 +361,9 @@ export async function handleStartRequirement(rawArgs, context) {
333
361
  type: "text",
334
362
  text: toolJson({
335
363
  ok: false,
364
+ code: writeOutcome.code,
336
365
  error: writeOutcome.error,
366
+ overlap_score: writeOutcome.overlapScore,
337
367
  ...(writeOutcome.activeRequirements
338
368
  ? {
339
369
  active_count: writeOutcome.activeCount ?? writeOutcome.activeRequirements.length,
@@ -342,6 +372,9 @@ export async function handleStartRequirement(rawArgs, context) {
342
372
  title: candidate.title,
343
373
  goal_key: candidate.goal_key,
344
374
  })),
375
+ recovery: writeOutcome.code === "POSSIBLE_REQUIREMENT_OVERLAP"
376
+ ? { action: "reuse_or_explicitly_replace", reuse_goal_key: writeOutcome.activeRequirements[0]?.goal_key, replace_with_previous_req_id: writeOutcome.activeRequirements[0]?.id }
377
+ : undefined,
345
378
  }
346
379
  : {}),
347
380
  }),
@@ -371,13 +404,14 @@ export async function handleStartRequirement(rawArgs, context) {
371
404
  scope_contract: activeScopeContract,
372
405
  requirement_items: activeRequirementItems,
373
406
  development_warnings: [],
407
+ redaction,
374
408
  }),
375
409
  }],
376
410
  };
377
411
  }
378
412
  logActivity("start_requirement", {
379
413
  req_id: writeOutcome.id,
380
- title: args.title,
414
+ title: persistentArgs.title,
381
415
  closed_previous: writeOutcome.closedPrevious,
382
416
  scope_contract,
383
417
  requirement_items,
@@ -389,7 +423,7 @@ export async function handleStartRequirement(rawArgs, context) {
389
423
  type: "text",
390
424
  text: toolJson({
391
425
  ok: true,
392
- requirement: { id: writeOutcome.id, title: args.title },
426
+ requirement: { id: writeOutcome.id, title: persistentArgs.title },
393
427
  goal_key: goalKey,
394
428
  memory_item: { id: writeOutcome.memoryId },
395
429
  closed_previous: writeOutcome.closedPrevious,
@@ -397,6 +431,7 @@ export async function handleStartRequirement(rawArgs, context) {
397
431
  scope_contract,
398
432
  requirement_items,
399
433
  development_warnings,
434
+ redaction,
400
435
  }),
401
436
  },
402
437
  ],
@@ -583,7 +618,27 @@ export async function handleSyncChangeIntent(rawArgs, context) {
583
618
  const sha256Hex = context.sha256Hex;
584
619
  const getFileStateHash = context.getFileStateHash;
585
620
  const { insertChangeLogStmt, upsertSyncedFileStateStmt, insertMemoryItemStmt, listPendingChangesStmt, deletePendingChangeStmt, } = context.getStatements();
586
- const args = SyncChangeIntentArgsSchema.parse(rawArgs);
621
+ const parsedArgs = SyncChangeIntentArgsSchema.parse(rawArgs);
622
+ const sanitizedIntent = sanitizePersistentMemoryText(parsedArgs.intent);
623
+ const sanitizedVerification = sanitizePersistentMemoryStrings(parsedArgs.verification);
624
+ const sanitizedVerificationGaps = sanitizePersistentMemoryStrings(parsedArgs.verification_gaps);
625
+ const sanitizedFixPattern = sanitizePersistentMemoryValue(parsedArgs.fix_pattern);
626
+ const args = {
627
+ ...parsedArgs,
628
+ intent: sanitizedIntent.text,
629
+ verification: sanitizedVerification.values,
630
+ verification_gaps: sanitizedVerificationGaps.values,
631
+ fix_pattern: sanitizedFixPattern.value,
632
+ };
633
+ const syncRedaction = {
634
+ applied: sanitizedIntent.redacted || sanitizedVerification.redacted || sanitizedVerificationGaps.redacted || sanitizedFixPattern.redacted,
635
+ categories: [...new Set([
636
+ ...sanitizedIntent.categories,
637
+ ...sanitizedVerification.categories,
638
+ ...sanitizedVerificationGaps.categories,
639
+ ...sanitizedFixPattern.categories,
640
+ ])].sort(),
641
+ };
587
642
  const explicitFixPattern = args.fix_pattern
588
643
  ? normalizeFixPattern({
589
644
  ...args.fix_pattern,
@@ -910,6 +965,7 @@ export async function handleSyncChangeIntent(rawArgs, context) {
910
965
  request_fingerprint: requestFingerprint,
911
966
  pending_batch: pendingBatch,
912
967
  complete_requirement: args.complete_requirement,
968
+ redaction: syncRedaction,
913
969
  });
914
970
  const memoryInfo = insertMemoryItemStmt.run("change_intent", active.title, args.intent, concreteFileStates.length === 1 ? concreteFileStates[0].file_path : null, null, null, active.id, memoryMetadata, sha256Hex(`${args.intent}\n${concreteFileStates.map((f) => f.file_path).join("\n")}`));
915
971
  const memory_item_id = Number(memoryInfo.lastInsertRowid);
@@ -1026,6 +1082,7 @@ export async function handleSyncChangeIntent(rawArgs, context) {
1026
1082
  development_warnings: boundedWarnings.page,
1027
1083
  development_warnings_total: boundedWarnings.total,
1028
1084
  development_warnings_truncated: boundedWarnings.truncated,
1085
+ redaction: syncRedaction,
1029
1086
  }),
1030
1087
  },
1031
1088
  ],