bonecode 1.4.2 → 1.4.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.
@@ -56,6 +56,12 @@ export interface BuildState {
56
56
  error?: string;
57
57
  /** Set after probe: whether the model can emit OpenAI-format tool calls. */
58
58
  tool_capable?: boolean;
59
+ /** Files written so far in this build, with todo that produced each. */
60
+ written_files?: Record<string, {
61
+ todo_id: string;
62
+ size: number;
63
+ written_at: number;
64
+ }>;
59
65
  }
60
66
  export interface VerificationResult {
61
67
  requirement: string;
@@ -348,13 +348,22 @@ async function stageExecute(state, input) {
348
348
  let errorMsg = "";
349
349
  if (state.tool_capable) {
350
350
  // ── Tool-calling path ────────────────────────────────────────────────
351
+ const knownFilesNote = Object.keys(state.written_files || {}).length > 0
352
+ ? `\nFILES ALREADY WRITTEN (do NOT recreate or rewrite these — they're done):\n` +
353
+ Object.keys(state.written_files || {}).map((p) => ` - ${p}`).join("\n")
354
+ : "";
351
355
  const focusedPrompt = [
352
356
  `<build-task>`,
357
+ `You are doing ONE task in a larger build that's already in progress.`,
358
+ `IGNORE earlier conversation context — those questions are already answered.`,
359
+ `DO NOT ask clarifying questions. The plan is locked. Just do this task.`,
360
+ ``,
353
361
  `Title: ${next.title}`,
354
362
  `Description: ${next.description}`,
363
+ knownFilesNote,
355
364
  ``,
356
- `This is one task in a larger build. Complete this task NOW by calling the appropriate tools.`,
357
- `Do not describe what you would do call the tools.`,
365
+ `Output ONE OR MORE concrete tool calls (write/edit/bash) for THIS task.`,
366
+ `Do NOT respond with prose. Do NOT explain. Call the tools NOW.`,
358
367
  `</build-task>`,
359
368
  ].join("\n");
360
369
  const taskMsgId = (0, uuid_1.v4)();
@@ -434,6 +443,29 @@ async function countToolCallsSince(session_id, since_message_id) {
434
443
  return 0;
435
444
  }
436
445
  }
446
+ /**
447
+ * Like countToolCallsSince, but excludes calls synthesized from leaked tool-call
448
+ * markers. Used by the probe so we know whether the model can actually emit
449
+ * native tool calls — not just leak text we recovered. Models that only ever
450
+ * leak should be routed through the JSON-manifest fallback.
451
+ *
452
+ * Uses LIKE on the serialized tool_input JSON instead of jsonb operators so
453
+ * the same query works in both Postgres (real JSONB) and the SQLite fallback
454
+ * (TEXT column with stripped JSON operators).
455
+ */
456
+ async function countNativeToolCallsSince(session_id, since_message_id) {
457
+ try {
458
+ const r = await db_1.pool.query(`SELECT COUNT(*) AS n FROM tool_calls
459
+ WHERE session_id = $1
460
+ AND created_at >= (SELECT created_at FROM messages WHERE id = $2)
461
+ AND CAST(tool_input AS TEXT) NOT LIKE '%__synthesized%'`, [session_id, since_message_id]);
462
+ const raw = r.rows[0]?.n;
463
+ return typeof raw === "string" ? parseInt(raw, 10) || 0 : raw || 0;
464
+ }
465
+ catch {
466
+ return 0;
467
+ }
468
+ }
437
469
  // ─── Tool-capability probe & JSON-manifest fallback ───────────────────────────
438
470
  /**
439
471
  * Detect whether the model can produce a structured tool call. Honors the
@@ -474,7 +506,11 @@ async function probeToolCapability(input) {
474
506
  provider_id: input.provider_id,
475
507
  agent_name: "build",
476
508
  });
477
- const calls = await countToolCallsSince(input.session_id, probeMsgId);
509
+ // Only count NATIVE tool calls. Calls synthesized from leaked tool-marker
510
+ // text don't count — those are unreliable in real builds (the model needs
511
+ // to format the leak perfectly every time, which it usually doesn't).
512
+ // If the model only ever leaks, we want JSON-manifest fallback instead.
513
+ const calls = await countNativeToolCallsSince(input.session_id, probeMsgId);
478
514
  return calls > 0;
479
515
  }
480
516
  catch {
@@ -513,24 +549,56 @@ async function executeFallback(state, todo, input) {
513
549
  .filter((t) => t.status === "completed" && t.evidence)
514
550
  .map((t) => `- ${t.title}`)
515
551
  .join("\n");
552
+ // Build a manifest of files already written so the model doesn't blindly
553
+ // overwrite them. We include the first ~30 lines of each file so the model
554
+ // can see what's there and decide whether to extend or leave alone.
555
+ state.written_files = state.written_files || {};
556
+ const existingPaths = Object.keys(state.written_files);
557
+ const existingFilesSnippets = [];
558
+ for (const p of existingPaths) {
559
+ try {
560
+ const target = path.resolve(worktree, p);
561
+ const content = await fs.readFile(target, "utf-8").catch(() => "");
562
+ const snippet = content.split("\n").slice(0, 30).join("\n");
563
+ const truncated = content.split("\n").length > 30 ? "\n... (truncated)" : "";
564
+ existingFilesSnippets.push(`${p} (${state.written_files[p].size} bytes):\n${snippet}${truncated}`);
565
+ }
566
+ catch { }
567
+ }
516
568
  const result = await askJson({
517
569
  model_id: input.model_id,
518
570
  provider_id: input.provider_id,
519
571
  system: [
520
- "You are completing one task in a project build. Produce a JSON manifest of the files to create or update and shell commands to run for THIS task only.",
572
+ "You are completing one task in an incremental project build. The project already has files from earlier tasks; THIS task adds the next layer.",
521
573
  "",
522
- "RULES:",
523
- "- Output a single JSON object: { \"files\": [...], \"commands\": [...] }",
574
+ "PRODUCE A JSON MANIFEST of files to create OR commands to run for THIS task only.",
575
+ "",
576
+ "CRITICAL RULES:",
577
+ `- Output a single JSON object: { "files": [...], "commands": [...] }`,
524
578
  "- Each file must have a relative `path` and full `content`. Do not abbreviate file content.",
525
579
  "- File paths must be relative to the project root (no leading slash, no '..').",
526
- "- Commands run in the project root. Use them only for compilation, package install, or migrations.",
580
+ "",
581
+ "FILE OVERWRITE POLICY:",
582
+ "- If a file already exists (listed under <existing-files>), DO NOT include it in your manifest unless this task is specifically about modifying it.",
583
+ "- If you must update an existing file, you MUST include the COMPLETE new content (including everything from the existing version that you want to keep). Partial content will overwrite and destroy whatever is there.",
584
+ "- For NEW files, just provide the new content.",
585
+ "- Prefer adding NEW files over modifying existing ones whenever possible.",
586
+ "",
587
+ "OUTPUT FORMAT:",
527
588
  "- Do not include explanatory prose. The JSON IS the entire response.",
589
+ "- Do not wrap in markdown code fences.",
528
590
  ].join("\n"),
529
591
  user: [
530
592
  `<design>`,
531
593
  designContext,
532
594
  `</design>`,
533
595
  ``,
596
+ `<existing-files>`,
597
+ existingFilesSnippets.length
598
+ ? existingFilesSnippets.join("\n\n---\n\n")
599
+ : "(no files written yet)",
600
+ `</existing-files>`,
601
+ ``,
534
602
  `<completed-tasks>`,
535
603
  completedFiles || "(none yet)",
536
604
  `</completed-tasks>`,
@@ -539,6 +607,8 @@ async function executeFallback(state, todo, input) {
539
607
  `Title: ${todo.title}`,
540
608
  `Description: ${todo.description}`,
541
609
  `</current-task>`,
610
+ ``,
611
+ `Produce the JSON manifest for the current task. Do NOT re-emit existing files unless this task explicitly modifies them.`,
542
612
  ].join("\n"),
543
613
  schema_hint: `{ "files": [{ "path": string, "content": string }], "commands": string[] }`,
544
614
  });
@@ -561,10 +631,33 @@ async function executeFallback(state, todo, input) {
561
631
  errors.push(`refused path outside worktree: ${f.path}`);
562
632
  continue;
563
633
  }
634
+ // OVERWRITE GUARD: if the file was written by an earlier todo and this
635
+ // todo's title doesn't suggest it's specifically about this file, refuse
636
+ // and force the model to think harder. Always allow overwrite if the new
637
+ // content is larger (model is appending) or the path appears in the todo.
638
+ const existing = state.written_files[f.path];
639
+ if (existing && existing.todo_id !== todo.id) {
640
+ const oldContent = await fs.readFile(target, "utf-8").catch(() => "");
641
+ const newSize = Buffer.byteLength(f.content, "utf-8");
642
+ const titleMentionsPath = todo.title.toLowerCase().includes(f.path.toLowerCase()) ||
643
+ todo.description.toLowerCase().includes(f.path.toLowerCase());
644
+ const isStrictShrink = newSize < oldContent.length * 0.5; // shrunk by >50% = clobber
645
+ if (isStrictShrink && !titleMentionsPath) {
646
+ errors.push(`refused overwrite: ${f.path} would shrink from ${oldContent.length} to ${newSize} bytes ` +
647
+ `(model likely truncating). Skipping.`);
648
+ continue;
649
+ }
650
+ }
564
651
  try {
565
652
  await fs.mkdir(path.dirname(target), { recursive: true });
566
653
  await fs.writeFile(target, f.content, "utf-8");
567
654
  filesWritten++;
655
+ // Track in state
656
+ state.written_files[f.path] = {
657
+ todo_id: todo.id,
658
+ size: Buffer.byteLength(f.content, "utf-8"),
659
+ written_at: Date.now(),
660
+ };
568
661
  // Surface a tool.completed event so the TUI shows an Edit/Write line
569
662
  const callId = `fallback-${(0, uuid_1.v4)()}`;
570
663
  const broadcastModule = await Promise.resolve().then(() => __importStar(require("../../../bone/output/session/src/websocket")));
@@ -572,14 +665,14 @@ async function executeFallback(state, todo, input) {
572
665
  type: "tool.requested",
573
666
  session_id: input.session_id,
574
667
  tool_call_id: callId,
575
- tool_name: "write",
668
+ tool_name: existing ? "edit" : "write",
576
669
  tool_input: { path: f.path, content: f.content.slice(0, 200) },
577
670
  });
578
671
  broadcastModule.broadcastToChannel("part_stream", {
579
672
  type: "tool.completed",
580
673
  session_id: input.session_id,
581
674
  tool_call_id: callId,
582
- tool_name: "write",
675
+ tool_name: existing ? "edit" : "write",
583
676
  tool_input: { path: f.path },
584
677
  duration_ms: 0,
585
678
  });
@@ -712,15 +805,39 @@ async function stageVerify(state, input) {
712
805
  return state;
713
806
  }
714
807
  // ─── Driver ───────────────────────────────────────────────────────────────────
715
- async function runBuildMode(input) {
716
- let state = (await loadState(input.session_id)) ?? {
808
+ /**
809
+ * Start a fresh BuildState for the given prompt. Centralized so we don't
810
+ * accidentally drift between the lazy-init path in `runBuildMode` and the
811
+ * restart path used after a previous build is already `done` or `failed`.
812
+ */
813
+ function freshState(prompt) {
814
+ return {
717
815
  stage: "clarify",
718
- original_prompt: input.prompt,
816
+ original_prompt: prompt,
719
817
  design: null,
720
818
  todos: [],
721
819
  iteration: 0,
722
820
  max_iterations: 30,
821
+ written_files: {},
723
822
  };
823
+ }
824
+ async function runBuildMode(input) {
825
+ let state = (await loadState(input.session_id)) ?? freshState(input.prompt);
826
+ // If the previous build is already done/failed, and the user is asking for
827
+ // something new (different prompt), start a fresh build rather than no-op.
828
+ // Without this, follow-up "build me X" prompts after a completed build
829
+ // silently do nothing because the loop sees state.stage === "done" and
830
+ // exits immediately.
831
+ if ((state.stage === "done" || state.stage === "failed") &&
832
+ input.prompt &&
833
+ input.prompt !== state.original_prompt) {
834
+ emit(input.session_id, "build.restart", {
835
+ previous_stage: state.stage,
836
+ previous_prompt: state.original_prompt,
837
+ });
838
+ state = freshState(input.prompt);
839
+ await saveState(input.session_id, state);
840
+ }
724
841
  // Resume from saved state if applicable. If the user is sending a new prompt
725
842
  // and we're already in clarify with pending questions, treat the prompt as
726
843
  // the answer and continue.
@@ -1 +1 @@
1
- {"version":3,"file":"build_mode.js","sourceRoot":"","sources":["../../../../src/engine/session/build_mode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build_mode.js","sourceRoot":"","sources":["../../../../src/engine/session/build_mode.ts"],"names":[],"mappings":"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"}
@@ -88,6 +88,10 @@ async function runAgentLoop(input) {
88
88
  let turn = 0;
89
89
  let lazyReminderSent = false;
90
90
  let lastFinishReason = "unknown";
91
+ // Track the last 2 assistant texts so we can detect when the model is
92
+ // stuck producing identical output. Some local models repeat the same
93
+ // response when they're confused about whether to call a tool or speak.
94
+ const recentResponses = [];
91
95
  try {
92
96
  // ── Main multi-turn loop ──────────────────────────────────────────────────
93
97
  while (turn < MAX_TURNS) {
@@ -148,6 +152,27 @@ async function runAgentLoop(input) {
148
152
  // 3. "content-filter" = blocked — stop
149
153
  // 4. "tool-calls" with no actual tool calls = model confused — stop
150
154
  const terminalReasons = new Set(["stop", "length", "content-filter", "end-turn"]);
155
+ // Identical-response detector: small models sometimes emit the same
156
+ // response twice in a row when confused about tool calls. We capture
157
+ // a fingerprint and bail out before producing 3-4 copies.
158
+ const fingerprint = await assistantTextFingerprint(session_id, assistantMsgId);
159
+ if (fingerprint && recentResponses.includes(fingerprint)) {
160
+ logger_1.logger.warn("identical_response_detected", {
161
+ event: "stuck_loop",
162
+ metadata: { session_id, turn, fingerprint: fingerprint.slice(0, 80) },
163
+ });
164
+ (0, websocket_1.broadcastToChannel)("session_events", {
165
+ type: "session.warning",
166
+ session_id,
167
+ message: "Model produced an identical response — exiting to avoid an infinite loop. Try rephrasing or switching models.",
168
+ });
169
+ break;
170
+ }
171
+ if (fingerprint) {
172
+ recentResponses.push(fingerprint);
173
+ if (recentResponses.length > 2)
174
+ recentResponses.shift();
175
+ }
151
176
  // Detect "lazy assistant" — the model claims it's editing/creating files
152
177
  // in prose but never actually called a tool. Common with non-tool-tuned
153
178
  // local models. Once per session, push a synthetic reminder and re-run.
@@ -465,6 +490,27 @@ async function runCompaction(session_id, agentId, model_id, provider_id, message
465
490
  }
466
491
  }
467
492
  // ─── Message History Builder ──────────────────────────────────────────────────
493
+ // Compute a stable fingerprint of the assistant's most recent text so we can
494
+ // detect when the model is producing identical responses turn after turn.
495
+ // We hash a normalized version (whitespace collapsed, lowercased) of the
496
+ // concatenated text parts to avoid spurious mismatches from minor whitespace.
497
+ async function assistantTextFingerprint(session_id, messageId) {
498
+ try {
499
+ const r = await db_1.pool.query(`SELECT data FROM parts WHERE message_id = $1 AND part_type = 'text' ORDER BY order_index ASC`, [messageId]);
500
+ const text = r.rows.map((row) => row.data?.text || "").join(" ").trim();
501
+ if (!text || text.length < 80)
502
+ return null; // too short to fingerprint reliably
503
+ const normalized = text.toLowerCase().replace(/\s+/g, " ").trim();
504
+ // Hash the first 1000 chars — enough to detect duplicates without being
505
+ // confused by minor changes in the middle.
506
+ const sample = normalized.slice(0, 1000);
507
+ const crypto = require("crypto");
508
+ return crypto.createHash("sha1").update(sample).digest("hex");
509
+ }
510
+ catch {
511
+ return null;
512
+ }
513
+ }
468
514
  // Detect a "lazy" response — assistant text says it will edit/create files
469
515
  // but no tool was actually invoked. Common with non-tool-tuned local models.
470
516
  async function wasLazyResponse(session_id, messageId) {
@@ -726,9 +772,14 @@ async function executeSynthesizedToolCall(input) {
726
772
  return;
727
773
  }
728
774
  const callId = (0, uuid_1.v4)();
729
- // Persist the tool call record
775
+ // Persist the tool call record. We tag it as "synthesized" so the
776
+ // tool-capability probe in build_mode can tell the model didn't really
777
+ // emit a native tool call — it just leaked tool-marker text that we
778
+ // recovered. Models that always need recovery should be treated as
779
+ // tool-incapable so we route them through the JSON-manifest fallback
780
+ // (which is more reliable than counting on every prompt to leak cleanly).
730
781
  try {
731
- await db_1.pool.query(`INSERT INTO tool_calls (id, session_id, agent_id, tool_name, tool_input, state) VALUES ($1, $2, $3, $4, $5, 'running')`, [callId, session_id, agentId, resolvedName, JSON.stringify(toolInput)]);
782
+ await db_1.pool.query(`INSERT INTO tool_calls (id, session_id, agent_id, tool_name, tool_input, state) VALUES ($1, $2, $3, $4, $5, 'running')`, [callId, session_id, agentId, resolvedName, JSON.stringify({ ...toolInput, __synthesized: true })]);
732
783
  }
733
784
  catch { }
734
785
  // Broadcast tool.requested so the TUI shows "← Edit foo.bone"
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../../src/engine/session/prompt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../../src/engine/session/prompt.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,2BAA2C;AAC3C,iDAAoD;AACpD,2CAA8C;AAC9C,2CAA0D;AAC1D,+BAAkC;AAClC,4DAA2D;AAC3D,oEAAmE;AACnE,oEAAiE;AACjE,sEAAmE;AACnE,0EAAgF;AAEhF,wEAA0D;AAC1D,+CAA+D;AAC/D,qDAA8C;AAC9C,yDAA4D;AAC5D,mDAAkD;AAClD,6DAA4D;AAC5D,mDAAoD;AACpD,yDAA2D;AAyB3D,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAC9B,MAAM,SAAS,GAAG,EAAE,CAAC,CAAC,gDAAgD;AAEtE,iFAAiF;AAE1E,KAAK,UAAU,YAAY,CAAC,KAAkB;IACnD,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,GAAG,OAAO,EAAE,GAAG,KAAK,CAAC;IAEtF,iCAAiC;IACjC,MAAM,UAAU,GAAG,MAAM,SAAI,CAAC,KAAK,CACjC,sGAAsG,EACtG,CAAC,UAAU,CAAC,CACb,CAAC;IACF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,UAAU,EAAE,CAAC,CAAC;IAC7E,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEnC,iCAAiC;IACjC,MAAM,OAAO,GAAG,IAAA,SAAI,GAAE,CAAC;IACvB,MAAM,SAAI,CAAC,KAAK,CACd;gEAC4D,EAC5D,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAC7E,CAAC;IAEF,6BAA6B;IAC7B,MAAM,SAAI,CAAC,KAAK,CAAC,sEAAsE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IACvG,MAAM,iBAAQ,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;IAE9J,MAAM,KAAK,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IACzE,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,IAAI,gBAAgB,GAAG,SAAS,CAAC;IACjC,sEAAsE;IACtE,sEAAsE;IACtE,wEAAwE;IACxE,MAAM,eAAe,GAAa,EAAE,CAAC;IAErC,IAAI,CAAC;QACH,6EAA6E;QAC7E,OAAO,IAAI,GAAG,SAAS,EAAE,CAAC;YACxB,IAAI,EAAE,CAAC;YACP,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,eAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;gBACvG,MAAM;YACR,CAAC;YAED,4BAA4B;YAC5B,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,UAAU,CAAC,CAAC;YAEtD,qDAAqD;YACrD,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChF,mFAAmF;YACnF,MAAM,eAAe,GAAG,aAAa,EAAE,YAAY;gBACjD,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,CAAC,aAAa,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;gBACzH,CAAC,CAAC,CAAC,GAAG,EAAE;oBACJ,oCAAoC;oBACpC,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;wBAC5C,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;wBAC5B,OAAO,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,CAAM,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBACvF,CAAC,EAAE,CAAC,CAAC,CAAC;oBACN,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3H,CAAC,CAAC,EAAE,CAAC;YACT,IAAI,IAAA,2BAAU,EAAC,eAAe,EAAE,QAAQ,CAAC,EAAE,CAAC;gBAC1C,eAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;gBAClG,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;gBAC5F,IAAI,CAAC,SAAS;oBAAE,MAAM,CAAC,yBAAyB;gBAChD,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;gBACvB,SAAS,CAAC,sCAAsC;YAClD,CAAC;YAED,wBAAwB;YACxB,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAEzE,wCAAwC;YACxC,MAAM,YAAY,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;YAC/C,MAAM,YAAY,GAAG,MAAM,wBAAwB,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;YAEnI,yEAAyE;YACzE,MAAM,QAAQ,GAAG,MAAM,IAAA,iCAAiB,EAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;YAChF,0DAA0D;YAC1D,MAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YAEtD,qBAAqB;YACrB,MAAM,aAAa,GAAG,gBAAgB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAE9D,0BAA0B;YAC1B,MAAM,cAAc,GAAG,IAAA,SAAI,GAAE,CAAC;YAC9B,MAAM,SAAI,CAAC,KAAK,CACd,yGAAyG,EACzG,CAAC,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,CAAC,CACpD,CAAC;YACF,MAAM,iBAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;YAEvJ,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;gBACnC,UAAU,EAAE,OAAO,EAAE,cAAc;gBACnC,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK;gBAC9C,QAAQ,EAAE,WAAW,EAAE,KAAK;aAC7B,CAAC,CAAC;YAEH,gBAAgB,GAAG,MAAM,CAAC,aAAa,CAAC;YAExC,8BAA8B;YAC9B,MAAM,SAAI,CAAC,KAAK,CACd,qLAAqL,EACrL,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,CAC5D,CAAC;YAEF,gCAAgC;YAChC,0DAA0D;YAC1D,uEAAuE;YACvE,uCAAuC;YACvC,oEAAoE;YACpE,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,UAAU,CAAC,CAAC,CAAC;YAElF,oEAAoE;YACpE,qEAAqE;YACrE,0DAA0D;YAC1D,MAAM,WAAW,GAAG,MAAM,wBAAwB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;YAC/E,IAAI,WAAW,IAAI,eAAe,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBACzD,eAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE;oBACzC,KAAK,EAAE,YAAY;oBACnB,QAAQ,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;iBACtE,CAAC,CAAC;gBACH,IAAA,8BAAkB,EAAC,gBAAgB,EAAE;oBACnC,IAAI,EAAE,iBAAiB;oBACvB,UAAU;oBACV,OAAO,EAAE,+GAA+G;iBACzH,CAAC,CAAC;gBACH,MAAM;YACR,CAAC;YACD,IAAI,WAAW,EAAE,CAAC;gBAChB,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAClC,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC;oBAAE,eAAe,CAAC,KAAK,EAAE,CAAC;YAC1D,CAAC;YAED,yEAAyE;YACzE,wEAAwE;YACxE,wEAAwE;YACxE,MAAM,aAAa,GAAG,CAAC,MAAM,CAAC,cAAc;gBAC1C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC;gBAC7B,CAAC,gBAAgB;gBACjB,MAAM,eAAe,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;YAEpD,IAAI,aAAa,EAAE,CAAC;gBAClB,gBAAgB,GAAG,IAAI,CAAC;gBACxB,IAAA,8BAAkB,EAAC,gBAAgB,EAAE;oBACnC,IAAI,EAAE,iBAAiB;oBACvB,UAAU;oBACV,OAAO,EAAE,sGAAsG;iBAChH,CAAC,CAAC;gBACH,4DAA4D;gBAC5D,MAAM,aAAa,GAAG,IAAA,SAAI,GAAE,CAAC;gBAC7B,MAAM,SAAI,CAAC,KAAK,CACd,qEAAqE,EACrE,CAAC,aAAa,EAAE,UAAU,CAAC,CAC5B,CAAC;gBACF,MAAM,cAAc,GAAG,IAAA,SAAI,GAAE,CAAC;gBAC9B,MAAM,SAAI,CAAC,KAAK,CACd,iHAAiH,EACjH,CAAC,cAAc,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC;wBACzD,IAAI,EAAE,0TAA0T;wBAChU,SAAS,EAAE,IAAI;qBAChB,CAAC,CAAC,CACJ,CAAC;gBACF,SAAS,CAAC,6CAA6C;YACzD,CAAC;YAED,IAAI,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;gBACxE,MAAM;YACR,CAAC;YAED,iFAAiF;YACjF,gFAAgF;YAChF,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;gBAC3B,MAAM;YACR,CAAC;QACH,CAAC;QAED,2BAA2B;QAC3B,MAAM,SAAI,CAAC,KAAK,CAAC,6EAA6E,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3G,MAAM,SAAI,CAAC,KAAK,CAAC,wEAAwE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QACzG,MAAM,iBAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE;YACvC,QAAQ,EAAE,OAAO,EAAE,UAAU;YAC7B,cAAc,EAAE,KAAK,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,CAAC,SAAS,EAAE,gBAAgB,EAAE,KAAK,CAAC,UAAU;YAChG,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACvC,EAAE,WAAW,CAAC,CAAC;QAEhB,IAAA,iBAAO,EAAC,sBAAsB,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjG,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAAE,KAAK,CAAC,SAAS,EAAE,gBAAgB,EAAE,KAAK,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;IAEjL,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,MAAM,SAAI,CAAC,KAAK,CAAC,+EAA+E,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7G,MAAM,SAAI,CAAC,KAAK,CAAC,wEAAwE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QACzG,MAAM,iBAAQ,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;QAC7I,eAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACvG,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,CAAC,SAAS,EAAE,gBAAgB,EAAE,KAAK,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;IAC3L,CAAC;AACH,CAAC;AAhMD,oCAgMC;AAED,iFAAiF;AAEjF,KAAK,UAAU,eAAe,CAAC,GAK9B;IACC,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,MAAM,WAAW,GAAG,CAAC,CAAC;IACtB,IAAI,UAAU,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;IAE5B,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC;YACH,OAAO,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,uEAAuE;YACvE,sEAAsE;YACtE,2CAA2C;YAC3C,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;gBACpG,eAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE;oBACtC,KAAK,EAAE,gBAAgB;oBACvB,QAAQ,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;iBAC/E,CAAC,CAAC;gBACH,IAAA,8BAAkB,EAAC,gBAAgB,EAAE;oBACnC,IAAI,EAAE,iBAAiB;oBACvB,UAAU,EAAE,GAAG,CAAC,UAAU;oBAC1B,OAAO,EAAE,SAAS,GAAG,CAAC,QAAQ,oKAAoK;iBACnM,CAAC,CAAC;gBACH,UAAU,GAAG,EAAE,GAAG,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;gBAC1C,OAAO,EAAE,CAAC;gBACV,SAAS;YACX,CAAC;YAED,MAAM,SAAS,GAAG,IAAA,uBAAS,EAAC,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;YAChD,IAAI,CAAC,SAAS,IAAI,OAAO,IAAI,WAAW;gBAAE,MAAM,CAAC,CAAC;YAElD,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACtC,eAAM,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAChH,IAAA,8BAAkB,EAAC,gBAAgB,EAAE;gBACnC,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM;aAClH,CAAC,CAAC;YACH,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;YAC9C,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;AACH,CAAC;AAED,iFAAiF;AAEjF,KAAK,UAAU,UAAU,CAAC,GAKzB;IACC,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC;IAElH,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,OAAO,CACnD,UAAU,EACV,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,aAAa,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAS,EACxG,EAAE,CACM,CAAC;IAEX,IAAI,iBAAiB,GAAkB,IAAI,CAAC;IAC5C,IAAI,kBAAkB,GAAG,EAAE,CAAC;IAC5B,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,IAAI,YAAY,GAAG,SAAS,CAAC;IAC7B,MAAM,iBAAiB,GAAoD,EAAE,CAAC;IAE9E,MAAM,MAAM,GAAG,IAAA,eAAU,EAAC;QACxB,KAAK,EAAE,aAAa;QACpB,MAAM,EAAE,YAAY;QACpB,QAAQ,EAAE,UAAmB;QAC7B,KAAK;QACL,UAAU,EAAE,CAAC;QACb,WAAW,EAAE,iBAAiB,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAS,CAAC,IAAI,GAAG;QACnG,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAS,CAAC;QAC9E,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAS,CAAC;QAC9E,iEAAiE;QACjE,sDAAsD;QACtD,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,MAAM,CAAC;QACrD,2BAA2B,EAAE,KAAK,EAAE,MAAW,EAAE,EAAE;YACjD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YACrD,IAAI,KAAK,KAAK,MAAM,CAAC,QAAQ,CAAC,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvD,OAAO,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;YACjD,CAAC;YACD,OAAO,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;QAC7I,CAAC;KACF,CAAC,CAAC;IAEH,qBAAqB;IACrB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QAC5C,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,MAAM,IAAI,GAAI,KAAa,CAAC,SAAS,IAAK,KAAa,CAAC,IAAI,IAAI,EAAE,CAAC;gBACnE,IAAI,CAAC,IAAI;oBAAE,MAAM;gBAEjB,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBACvB,uCAAuC;oBACvC,iBAAiB,GAAG,IAAA,SAAI,GAAE,CAAC;oBAC3B,kBAAkB,GAAG,EAAE,CAAC;oBACxB,MAAM,SAAI,CAAC,KAAK,CACd,iHAAiH,EACjH,CAAC,iBAAiB,EAAE,cAAc,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAC9E,CAAC;gBACJ,CAAC;gBAED,kBAAkB,IAAI,IAAI,CAAC;gBAE3B,qEAAqE;gBACrE,mEAAmE;gBACnE,uEAAuE;gBACvE,iDAAiD;gBACjD,MAAM,IAAI,GAAG,IAAA,wCAAqB,EAAC,kBAAkB,CAAC,CAAC;gBACvD,IAAI,IAAI,EAAE,CAAC;oBACT,wDAAwD;oBACxD,kBAAkB,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC;wBAC/D,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC1C,MAAM,SAAI,CAAC,KAAK,CACd,8DAA8D,EAC9D,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAClE,CAAC;oBAEF,8DAA8D;oBAC9D,MAAM,0BAA0B,CAAC;wBAC/B,UAAU;wBACV,OAAO,EAAE,GAAG,CAAC,OAAO;wBACpB,cAAc;wBACd,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,SAAS,EAAE,IAAI,CAAC,SAAS;wBACzB,KAAK;qBACN,CAAC,CAAC;oBAEH,2DAA2D;oBAC3D,YAAY,GAAG,IAAI,CAAC;oBACpB,MAAM;gBACR,CAAC;gBAED,8DAA8D;gBAC9D,IAAA,8BAAkB,EAAC,aAAa,EAAE;oBAChC,IAAI,EAAE,YAAY;oBAClB,UAAU;oBACV,UAAU,EAAE,cAAc;oBAC1B,OAAO,EAAE,iBAAiB;oBAC1B,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;iBAC9B,CAAC,CAAC;gBACH,MAAM;YACR,CAAC;YAED,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,oCAAoC;gBACpC,IAAI,iBAAiB,EAAE,CAAC;oBACtB,MAAM,SAAI,CAAC,KAAK,CACd,8DAA8D,EAC9D,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAClE,CAAC;oBACF,MAAM,iBAAQ,CAAC,OAAO,CAAC,aAAa,EAAE;wBACpC,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,iBAAiB;wBAClE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;qBACxD,EAAE,WAAW,CAAC,CAAC;oBAChB,iBAAiB,GAAG,IAAI,CAAC;oBACzB,kBAAkB,GAAG,EAAE,CAAC;gBAC1B,CAAC;gBAED,YAAY,GAAG,IAAI,CAAC;gBACpB,MAAM,QAAQ,GAAI,KAAa,CAAC,IAAI,IAAK,KAAa,CAAC,KAAK,IAAI,EAAE,CAAC;gBACnE,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAExF,yBAAyB;gBACzB,MAAM,YAAY,GAAG,IAAA,SAAI,GAAE,CAAC;gBAC5B,MAAM,SAAI,CAAC,KAAK,CACd,wHAAwH,EACxH,CAAC,YAAY,EAAE,UAAU,EAAE,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAClF,CAAC;gBAEF,iBAAiB;gBACjB,MAAM,UAAU,GAAG,IAAA,SAAI,GAAE,CAAC;gBAC1B,MAAM,SAAI,CAAC,KAAK,CACd,4HAA4H,EAC5H,CAAC,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAC1J,CAAC;gBAEF,MAAM,iBAAQ,CAAC,OAAO,CAAC,mBAAmB,EAAE;oBAC1C,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,CAAC,OAAO;oBAC7D,SAAS,EAAE,KAAK,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACxF,EAAE,WAAW,CAAC,CAAC;gBAEhB,mEAAmE;gBACnE,uDAAuD;gBACvD,IAAA,8BAAkB,EAAC,aAAa,EAAE;oBAChC,IAAI,EAAE,gBAAgB;oBACtB,UAAU;oBACV,YAAY,EAAE,YAAY;oBAC1B,SAAS,EAAE,KAAK,CAAC,QAAQ;oBACzB,UAAU,EAAE,QAAQ;iBACrB,CAAC,CAAC;gBAEH,0DAA0D;gBAC1D,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,CACzC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAC1F,CAAC;gBACF,IAAI,UAAU,CAAC,MAAM,IAAI,mBAAmB,EAAE,CAAC;oBAC7C,eAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;oBAC3G,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,CAAC,QAAQ,YAAY,mBAAmB,6BAA6B,CAAC,CAAC;gBAC3H,CAAC;gBACD,MAAM;YACR,CAAC;YAED,KAAK,aAAa,CAAC,CAAC,CAAC;gBACnB,0BAA0B;gBAC1B,IAAI,iBAAiB,EAAE,CAAC;oBACtB,MAAM,SAAI,CAAC,KAAK,CACd,8DAA8D,EAC9D,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAClE,CAAC;oBACF,MAAM,iBAAQ,CAAC,OAAO,CAAC,aAAa,EAAE;wBACpC,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,iBAAiB;wBAClE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;qBACxD,EAAE,WAAW,CAAC,CAAC;oBAChB,iBAAiB,GAAG,IAAI,CAAC;oBACzB,kBAAkB,GAAG,EAAE,CAAC;gBAC1B,CAAC;gBAED,MAAM,KAAK,GAAI,KAAa,CAAC,KAAK,CAAC;gBACnC,MAAM,QAAQ,GAAG,KAAK,EAAE,YAAY,IAAI,CAAC,CAAC;gBAC1C,MAAM,SAAS,GAAG,KAAK,EAAE,gBAAgB,IAAI,CAAC,CAAC;gBAC/C,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,QAAQ,CAAC;gBAChC,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,SAAS,CAAC;gBAElC,MAAM,SAAI,CAAC,KAAK,CACd,6FAA6F,EAC7F,CAAC,cAAc,EAAE,QAAQ,EAAE,SAAS,CAAC,CACtC,CAAC;gBACF,MAAM;YACR,CAAC;YAED,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,YAAY,GAAI,KAAa,CAAC,YAAY,IAAI,MAAM,CAAC;gBACrD,MAAM;YACR,CAAC;YAED,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAO,KAAa,CAAC,KAAK,CAAC;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IAED,sDAAsD;IACtD,IAAI,iBAAiB,IAAI,kBAAkB,EAAE,CAAC;QAC5C,MAAM,SAAI,CAAC,KAAK,CACd,8DAA8D,EAC9D,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAClE,CAAC;QACF,MAAM,iBAAQ,CAAC,OAAO,CAAC,aAAa,EAAE;YACpC,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,iBAAiB;YAClE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACxD,EAAE,WAAW,CAAC,CAAC;QAChB,iBAAiB,GAAG,IAAI,CAAC;QACzB,kBAAkB,GAAG,EAAE,CAAC;IAC1B,CAAC;IAED,sBAAsB;IACtB,IAAI,QAAQ,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC;IAChC,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;QACtC,QAAQ,GAAG,UAAU,EAAE,YAAY,IAAI,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;QAC3D,SAAS,GAAG,UAAU,EAAE,gBAAgB,IAAI,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;QAC/B,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC;IACnC,CAAC;IAED,2EAA2E;IAC3E,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YACnC,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;gBAChC,MAAM,cAAc,GAAG,IAAA,SAAI,GAAE,CAAC;gBAC9B,MAAM,SAAI,CAAC,KAAK,CACd,iHAAiH,EACjH,CAAC,cAAc,EAAE,cAAc,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CACjF,CAAC;gBACF,MAAM,iBAAQ,CAAC,OAAO,CAAC,aAAa,EAAE;oBACpC,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc;oBAC/D,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACxD,EAAE,WAAW,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO;QACL,aAAa,EAAE,YAAY;QAC3B,SAAS,EAAE,QAAQ;QACnB,UAAU,EAAE,SAAS;QACrB,IAAI,EAAE,CAAC;QACP,cAAc,EAAE,YAAY;KAC7B,CAAC;AACJ,CAAC;AAED,iFAAiF;AAEjF,KAAK,UAAU,aAAa,CAC1B,UAAkB,EAClB,OAAe,EACf,QAAgB,EAChB,WAAmB,EACnB,QAAe;IAEf,IAAI,CAAC;QACH,mCAAmC;QACnC,MAAM,SAAI,CAAC,KAAK,CAAC,4EAA4E,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QAC7G,MAAM,iBAAQ,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;QAE7J,kEAAkE;QAClE,MAAM,OAAO,GAAG,MAAM,IAAA,yCAAsB,EAAC;YAC3C,QAAQ;YACR,QAAQ;YACR,WAAW;YACX,UAAU;SACX,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAE3B,+CAA+C;QAC/C,MAAM,YAAY,GAAG,IAAA,SAAI,GAAE,CAAC;QAC5B,MAAM,SAAI,CAAC,KAAK,CACd,yGAAyG,EACzG,CAAC,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,CAAC,CAClD,CAAC;QACF,MAAM,aAAa,GAAG,IAAA,SAAI,GAAE,CAAC;QAC7B,MAAM,SAAI,CAAC,KAAK,CACd,iHAAiH,EACjH,CAAC,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAC,CAC1G,CAAC;QAEF,0BAA0B;QAC1B,MAAM,SAAI,CAAC,KAAK,CAAC,sEAAsE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QACvG,MAAM,iBAAQ,CAAC,OAAO,CAAC,kBAAkB,EAAE;YACzC,UAAU,EAAE,aAAa,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACtF,EAAE,WAAW,CAAC,CAAC;QAEhB,IAAA,8BAAkB,EAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,CAAC,CAAC;QAChF,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,eAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC7G,MAAM,SAAI,CAAC,KAAK,CAAC,sEAAsE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QACvG,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,iFAAiF;AAEjF,6EAA6E;AAC7E,0EAA0E;AAC1E,yEAAyE;AACzE,8EAA8E;AAC9E,KAAK,UAAU,wBAAwB,CAAC,UAAkB,EAAE,SAAiB;IAC3E,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,SAAI,CAAC,KAAK,CACxB,8FAA8F,EAC9F,CAAC,SAAS,CAAC,CACZ,CAAC;QACF,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7E,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE;YAAE,OAAO,IAAI,CAAC,CAAC,oCAAoC;QAChF,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAClE,wEAAwE;QACxE,2CAA2C;QAC3C,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjC,OAAO,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAChE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,2EAA2E;AAC3E,6EAA6E;AAC7E,KAAK,UAAU,eAAe,CAAC,UAAkB,EAAE,SAAiB;IAClE,MAAM,CAAC,GAAG,MAAM,SAAI,CAAC,KAAK,CACxB,8FAA8F,EAC9F,CAAC,SAAS,CAAC,CACZ,CAAC;IACF,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IACpF,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE;QAAE,OAAO,KAAK,CAAC;IAC5C,2EAA2E;IAC3E,MAAM,kBAAkB,GAAG;QACzB,wEAAwE;QACxE,2FAA2F;QAC3F,qFAAqF;QACrF,kFAAkF;QAClF,qDAAqD;QACrD,uEAAuE;QACvE,4GAA4G;QAC5G,4GAA4G;KAC7G,CAAC;IACF,OAAO,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACtD,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,UAAkB;IAClD,MAAM,MAAM,GAAG,MAAM,SAAI,CAAC,KAAK,CAC7B;;;;;6CAKyC,EACzC,CAAC,UAAU,CAAC,CACb,CAAC;IACF,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,UAAkB,EAAE,QAAe,EAAE,QAAgB;IAClF,MAAM,UAAU,GAAU,EAAE,CAAC;IAE7B,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;QAE9B,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACxB,MAAM,OAAO,GAAU,EAAE,CAAC;YAC1B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,IAAI,CAAC,CAAC,SAAS,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;oBAC3C,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBACpD,CAAC;qBAAM,IAAI,CAAC,CAAC,SAAS,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC;oBACjD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,YAAY,EAAE,CAAC,CAAC;gBAC1F,CAAC;YACH,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;gBAAE,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QAErE,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACpC,MAAM,OAAO,GAAU,EAAE,CAAC;YAC1B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,IAAI,CAAC,CAAC,SAAS,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;oBAC3C,iEAAiE;oBACjE,IAAI,CAAC,CAAC,IAAI,CAAC,qBAAqB;wBAAE,SAAS;oBAC3C,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBACpD,CAAC;qBAAM,IAAI,CAAC,CAAC,SAAS,KAAK,iBAAiB,IAAI,CAAC,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC;oBACrE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC5H,CAAC;YACH,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;gBAAE,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;QAE1E,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAU,EAAE,CAAC;YAC1B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,IAAI,CAAC,CAAC,SAAS,KAAK,aAAa,IAAI,CAAC,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC;oBAC1D,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC5H,CAAC;YACH,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;gBAAE,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,eAAe,CAAC,QAAe;IACtC,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC;SAC1C,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;SACnC,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED,iFAAiF;AAEjF,KAAK,UAAU,wBAAwB,CACrC,UAAkB,EAClB,QAAgB,EAChB,QAAgB,EAChB,WAAmB,EACnB,UAAkB,EAClB,QAAgB;IAEhB,wDAAwD;IACxD,MAAM,IAAI,GAAG,IAAA,+BAAe,EAAC,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IAEhE,wEAAwE;IACxE,mEAAmE;IACnE,sDAAsD;IACtD,MAAM,gBAAgB,GAAG,oBAAoB,EAAE,CAAC;IAEhD,sBAAsB;IACtB,MAAM,UAAU,GAAG;QACjB,sBAAsB,QAAQ,EAAE;QAChC,aAAa,OAAO,CAAC,QAAQ,EAAE;QAC/B,iBAAiB,IAAI,IAAI,EAAE,CAAC,YAAY,EAAE,EAAE;KAC7C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,iDAAiD;IACjD,MAAM,YAAY,GAAG,MAAM,IAAA,yCAAoB,EAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAE1E,yCAAyC;IACzC,0EAA0E;IAC1E,IAAI,eAAe,GAAG,EAAE,CAAC;IACzB,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,EAAE,YAAY,EAAE,sBAAsB,EAAE,GAAG,wDAAa,uBAAuB,GAAC,CAAC;YACvF,MAAM,UAAU,GAAG,MAAM,SAAI,CAAC,KAAK,CACjC,+CAA+C,EAC/C,CAAC,UAAU,CAAC,CACb,CAAC;YACF,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,IAAI,EAAE,CAAC;YACxD,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,2CAA2C;gBAC3C,OAAO,CAAC,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzF,CAAC;YAED,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC;gBACnC,UAAU;gBACV,UAAU;gBACV,QAAQ;gBACR,KAAK,EAAE,QAAQ;gBACf,UAAU,EAAE,EAAE;gBACd,SAAS,EAAE,KAAM;aAClB,CAAC,CAAC;YAEH,eAAe,GAAG,sBAAsB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC9D,IAAI,SAAS,CAAC,OAAO,KAAK,2BAA2B,EAAE,CAAC;gBACtD,eAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAClG,CAAC;QAAI,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACvB,eAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC;IAED,OAAO,CAAC,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC1G,CAAC;AAED,iFAAiF;AAEjF,IAAI,iBAAiB,GAAkB,IAAI,CAAC;AAC5C,SAAS,oBAAoB;IAC3B,IAAI,iBAAiB,KAAK,IAAI;QAAE,OAAO,iBAAiB,CAAC;IACzD,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACzB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7B,4EAA4E;QAC5E,6EAA6E;QAC7E,iEAAiE;QACjE,MAAM,UAAU,GAAG;YACjB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,gBAAgB,CAAC;YAChD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,CAAC;SAC/F,CAAC;QACF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7B,iBAAiB,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBACxD,OAAO,iBAAiB,IAAI,EAAE,CAAC;YACjC,CAAC;QACH,CAAC;QACD,iBAAiB,GAAG,EAAE,CAAC;QACvB,OAAO,EAAE,CAAC;IACZ,CAAC;IAAC,MAAM,CAAC;QACP,iBAAiB,GAAG,EAAE,CAAC;QACvB,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,iFAAiF;AAEjF,SAAS,gBAAgB,CAAC,WAAmB,EAAE,QAAgB;IAC7D,MAAM,GAAG,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;IAEtC,wCAAwC;IACxC,MAAM,gBAAgB,GAAG,GAAG,KAAK,OAAO;QACtC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,mBAAmB,CAAC,CAAC,WAAW,EAAE;QACrE,CAAC,CAAC,GAAG,CAAC;IACR,MAAM,aAAa,GAAG,GAAG,KAAK,OAAO;QACnC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,QAAQ,CAAC;QACzC,CAAC,CAAC,QAAQ,CAAC;IAEb,MAAM,MAAM,GAAG,CACb,OAAO,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC,WAAW,EAAE,UAAU,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,cAAc;QAC1B,YAAY,CACb,CAAC;IACF,MAAM,OAAO,GAAG,CACd,OAAO,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC,WAAW,EAAE,WAAW,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,eAAe,CAC5B,CAAC;IAEF,QAAQ,gBAAgB,EAAE,CAAC;QACzB,KAAK,WAAW;YACd,OAAO,IAAA,2BAAe,EAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC;QAEtE,KAAK,QAAQ;YACX,OAAO,IAAA,iCAAwB,EAAC,EAAE,MAAM,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC;QAE7D,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;YAC/C,OAAO,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,MAAM,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC;QACnF,CAAC;QAED,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;YACvD,OAAO,cAAc,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,MAAM,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC;QAC3F,CAAC;QAED,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,gCAAgC;YAChC,OAAO,IAAA,qBAAY,EAAC;gBAClB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,MAAM;gBAC9C,OAAO,EAAE,6BAA6B;aACvC,CAAC,CAAC,aAAa,CAAC,CAAC;QACpB,CAAC;QAED,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,MAAM,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC;YACpE,OAAO,gBAAgB,CAAC;gBACtB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,MAAM;aACjD,CAAC,CAAC,aAAa,CAAC,CAAC;QACpB,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,iDAAiD;YACjD,OAAO,IAAA,qBAAY,EAAC;gBAClB,MAAM,EAAE,QAAQ;gBAChB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,2BAA2B;aACpE,CAAC,CAAC,aAAa,CAAC,CAAC;QACpB,CAAC;QAED,KAAK,QAAQ;YACX,OAAO,IAAA,qBAAY,EAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC;QAEnE,KAAK,mBAAmB,CAAC;QACzB;YACE,OAAO,IAAA,qBAAY,EAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC;IACrE,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,WAAmB;IACxC,MAAM,GAAG,GAA2B;QAClC,SAAS,EAAE,mBAAmB;QAC9B,MAAM,EAAE,gBAAgB;QACxB,MAAM,EAAE,gBAAgB;QACxB,iBAAiB,EAAE,2BAA2B;KAC/C,CAAC;IACF,OAAO,GAAG,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,IAAI,2BAA2B,CAAC;AACvE,CAAC;AAED,SAAS,aAAa,CAAC,QAAgB;IACrC,MAAM,EAAE,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IAClC,6CAA6C;IAC7C,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IACvF,oDAAoD;IACpD,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAC7D,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IAC/D,yDAAyD;IACzD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,iFAAiF;AAEjF;;;;GAIG;AACH,KAAK,UAAU,0BAA0B,CAAC,KAOzC;IACC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IAElF,kEAAkE;IAClE,MAAM,OAAO,GAA2B;QACtC,UAAU,EAAE,OAAO;QACnB,SAAS,EAAE,MAAM;QACjB,SAAS,EAAE,MAAM;QACjB,WAAW,EAAE,MAAM;QACnB,KAAK,EAAE,MAAM;QACb,YAAY,EAAE,MAAM;KACrB,CAAC;IACF,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC;IACnD,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;IACjC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAC3B,eAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;QACjG,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,SAAI,GAAE,CAAC;IACtB,kEAAkE;IAClE,uEAAuE;IACvE,oEAAoE;IACpE,mEAAmE;IACnE,qEAAqE;IACrE,0EAA0E;IAC1E,IAAI,CAAC;QACH,MAAM,SAAI,CAAC,KAAK,CACd,wHAAwH,EACxH,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CACnG,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IAEV,8DAA8D;IAC9D,IAAA,8BAAkB,EAAC,aAAa,EAAE;QAChC,IAAI,EAAE,gBAAgB;QACtB,UAAU;QACV,YAAY,EAAE,MAAM;QACpB,SAAS,EAAE,YAAY;QACvB,UAAU,EAAE,SAAS;KACtB,CAAC,CAAC;IAEH,6DAA6D;IAC7D,MAAM,MAAM,GAAG,IAAA,SAAI,GAAE,CAAC;IACtB,MAAM,SAAI,CAAC,KAAK,CACd,4HAA4H,EAC5H,CAAC,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAC3I,CAAC;IAEF,0EAA0E;IAC1E,2BAA2B;IAC3B,MAAM,iBAAQ,CAAC,OAAO,CAAC,mBAAmB,EAAE;QAC1C,YAAY,EAAE,MAAM;QACpB,UAAU;QACV,QAAQ,EAAE,OAAO;QACjB,SAAS,EAAE,YAAY;QACvB,UAAU,EAAE,SAAS;QACrB,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACvC,EAAE,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAEhC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;QACrE,MAAM,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;IACxE,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,OAAO,GAAG,KAAK,CAAC;QAChB,MAAM,GAAG,CAAC,EAAE,OAAO,IAAI,uBAAuB,CAAC;IACjD,CAAC;IAED,kCAAkC;IAClC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,SAAI,CAAC,KAAK,CACd,8DAA8D,EAC9D,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;gBACtB,YAAY,EAAE,MAAM;gBACpB,SAAS,EAAE,YAAY;gBACvB,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;gBAClC,MAAM;aACP,CAAC,CAAC,CACJ,CAAC;QACF,MAAM,SAAI,CAAC,KAAK,CACd,wGAAwG,EACxG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,CAAC,CAC9E,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IAEV,uBAAuB;IACvB,IAAA,8BAAkB,EAAC,aAAa,EAAE;QAChC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,aAAa;QAChD,UAAU;QACV,YAAY,EAAE,MAAM;QACpB,SAAS,EAAE,YAAY;QACvB,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,UAAU;QACvB,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;KACtC,CAAC,CAAC;IAEH,MAAM,iBAAQ,CAAC,OAAO,CAAC,mBAAmB,EAAE;QAC1C,YAAY,EAAE,MAAM;QACpB,UAAU;QACV,SAAS,EAAE,YAAY;QACvB,WAAW,EAAE,UAAU;QACvB,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACvC,EAAE,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AAClC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bonecode",
3
- "version": "1.4.2",
3
+ "version": "1.4.3",
4
4
  "private": false,
5
5
  "description": "BoneCode — a production-grade AI coding agent with BoneScript-generated backend and pgvector RAG",
6
6
  "keywords": [
@@ -290,6 +290,138 @@ const { extractBalanced } = helpers;
290
290
  else fail("unbalanced", `got "${r}"`);
291
291
  })();
292
292
 
293
+ // ─── freshState / re-engagement on new prompt ─────────────────────────────────
294
+
295
+ header("[5] freshState — clean BuildState for new build");
296
+
297
+ (() => {
298
+ // Verify the freshState function exists and returns a clean shape.
299
+ // We can't safely eval through stripTs because the function body has
300
+ // object literal `original_prompt: prompt` which the strip regex would
301
+ // mistake for a type annotation. So we check the source statically.
302
+ const fn = extractFunc("freshState");
303
+ if (!fn) { fail("freshState", "function missing — re-engagement after done won't work"); return; }
304
+
305
+ if (/stage:\s*["']clarify["']/.test(fn)) ok("freshState starts at clarify stage");
306
+ else fail("clarify start", "freshState should reset stage to clarify");
307
+
308
+ if (/original_prompt:\s*prompt/.test(fn)) ok("freshState binds original_prompt to input");
309
+ else fail("original_prompt", "freshState should set original_prompt: prompt");
310
+
311
+ if (/todos:\s*\[\s*\]/.test(fn)) ok("freshState resets todos to []");
312
+ else fail("todos reset", "freshState should clear todos");
313
+
314
+ if (/iteration:\s*0/.test(fn)) ok("freshState resets iteration to 0");
315
+ else fail("iteration reset", "freshState should reset iteration");
316
+
317
+ if (/written_files:\s*\{\s*\}/.test(fn)) ok("freshState initializes empty written_files map");
318
+ else fail("written_files reset", "freshState should reset written_files");
319
+
320
+ if (/max_iterations:\s*30/.test(fn)) ok("freshState sets max_iterations to 30");
321
+ else fail("max_iterations", "freshState should set max_iterations: 30");
322
+ })();
323
+
324
+ // ─── runBuildMode re-engagement on new prompt after done ─────────────────────
325
+
326
+ header("[6] runBuildMode — restart on new prompt after done/failed");
327
+
328
+ (() => {
329
+ // Verify the runBuildMode source contains the restart logic.
330
+ // We can't run it (needs DB pool), so we statically check that the
331
+ // restart branch was added.
332
+ const runSrc = extractFunc("runBuildMode");
333
+ if (!runSrc) { fail("runBuildMode", "function missing"); return; }
334
+ const hasRestartCheck =
335
+ /state\.stage\s*===\s*["']done["']|state\.stage\s*===\s*["']failed["']/.test(runSrc) &&
336
+ /input\.prompt\s*!==\s*state\.original_prompt/.test(runSrc) &&
337
+ /freshState\s*\(/.test(runSrc);
338
+ if (hasRestartCheck) ok("runBuildMode resets state when prompt differs from original after done/failed");
339
+ else fail("restart check", "runBuildMode missing the done/failed → freshState branch");
340
+ })();
341
+
342
+ // ─── written_files tracking & overwrite guard ────────────────────────────────
343
+
344
+ header("[7] BuildState — written_files tracking field");
345
+
346
+ (() => {
347
+ // Verify the BuildState interface declares written_files
348
+ const ifaceMatch = src.match(/export\s+interface\s+BuildState\s*\{([\s\S]*?)\n\}/);
349
+ if (!ifaceMatch) { fail("BuildState interface", "not found"); return; }
350
+ const body = ifaceMatch[1];
351
+ if (/written_files\s*\?\s*:/.test(body)) ok("BuildState declares written_files");
352
+ else fail("written_files", "missing from BuildState");
353
+ })();
354
+
355
+ (() => {
356
+ // Verify executeFallback contains the overwrite guard logic
357
+ const fnSrc = extractFunc("executeFallback");
358
+ if (!fnSrc) { fail("executeFallback", "missing"); return; }
359
+ const hasGuard =
360
+ /isStrictShrink|shrunk|titleMentionsPath|refused overwrite/.test(fnSrc) &&
361
+ /existing\.todo_id\s*!==\s*todo\.id/.test(fnSrc);
362
+ if (hasGuard) ok("executeFallback contains overwrite guard");
363
+ else fail("overwrite guard", "missing from executeFallback");
364
+ })();
365
+
366
+ (() => {
367
+ // Verify executeFallback shows existing-files snippets in prompt
368
+ const fnSrc = extractFunc("executeFallback");
369
+ if (!fnSrc) return;
370
+ if (/existing-files|existingFilesSnippets/.test(fnSrc)) {
371
+ ok("executeFallback shows existing files in prompt");
372
+ } else {
373
+ fail("existing-files prompt", "missing");
374
+ }
375
+ })();
376
+
377
+ // ─── Native tool-call probe filter ───────────────────────────────────────────
378
+
379
+ header("[8] countNativeToolCallsSince — excludes synthesized leaks");
380
+
381
+ (() => {
382
+ const fnSrc = extractFunc("countNativeToolCallsSince");
383
+ if (!fnSrc) { fail("countNativeToolCallsSince", "missing"); return; }
384
+ // Should be portable across pg/sqlite — uses CAST + LIKE, not jsonb operators
385
+ if (/__synthesized/.test(fnSrc)) ok("filters by __synthesized marker");
386
+ else fail("__synthesized filter", "marker check missing");
387
+
388
+ if (/CAST\s*\(\s*tool_input\s+AS\s+TEXT\s*\)|tool_input.*LIKE/i.test(fnSrc)) {
389
+ ok("uses portable CAST + LIKE (works on sqlite + postgres)");
390
+ } else {
391
+ fail("portable query", "should not use jsonb -> operators");
392
+ }
393
+ })();
394
+
395
+ (() => {
396
+ // Verify probeToolCapability now uses the native counter, not the all counter
397
+ const probeSrc = extractFunc("probeToolCapability");
398
+ if (!probeSrc) { fail("probeToolCapability", "missing"); return; }
399
+ if (/countNativeToolCallsSince/.test(probeSrc)) {
400
+ ok("probeToolCapability counts native calls only");
401
+ } else {
402
+ fail("probe filter", "still counts synthesized leaks → false positives");
403
+ }
404
+ })();
405
+
406
+ // ─── Build task prompt isolation ─────────────────────────────────────────────
407
+
408
+ header("[9] stageExecute — isolated task prompt");
409
+
410
+ (() => {
411
+ const fnSrc = extractFunc("stageExecute");
412
+ if (!fnSrc) { fail("stageExecute", "missing"); return; }
413
+ if (/IGNORE earlier conversation context|DO NOT ask clarifying questions/.test(fnSrc)) {
414
+ ok("stageExecute prompt tells model to ignore prior context");
415
+ } else {
416
+ fail("isolated prompt", "stageExecute should warn against re-asking clarifications");
417
+ }
418
+ if (/FILES ALREADY WRITTEN|knownFilesNote/.test(fnSrc)) {
419
+ ok("stageExecute prompt lists already-written files");
420
+ } else {
421
+ fail("known-files note", "tool-calling path should list completed files");
422
+ }
423
+ })();
424
+
293
425
  console.log();
294
426
  if (failed === 0) {
295
427
  console.log(`${G}${B}✓ All ${passed} tests passed${N}`);
@@ -0,0 +1,129 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Unit tests for the identical-response loop detector in prompt.ts.
4
+ *
5
+ * The detector exists because small/local models sometimes emit the same
6
+ * assistant message turn after turn when they're confused about whether to
7
+ * call a tool. Without bailout, the loop keeps re-issuing the same prompt
8
+ * and getting the same prose back forever.
9
+ *
10
+ * We can't easily run runAgentLoop (needs DB + provider), but we can verify
11
+ * the helper functions exist and the loop reads/updates the recentResponses
12
+ * tracking array.
13
+ */
14
+
15
+ "use strict";
16
+ const fs = require("fs");
17
+ const path = require("path");
18
+ const crypto = require("crypto");
19
+
20
+ const G = "\x1b[32m"; const R = "\x1b[31m"; const C = "\x1b[36m";
21
+ const B = "\x1b[1m"; const D = "\x1b[2m"; const N = "\x1b[0m";
22
+
23
+ let passed = 0;
24
+ let failed = 0;
25
+ const failures = [];
26
+
27
+ function ok(name, info = "") { passed++; console.log(` ${G}✓${N} ${name}${info ? ` ${D}${info}${N}` : ""}`); }
28
+ function fail(name, msg) { failed++; failures.push(`${name}: ${msg}`); console.log(` ${R}✗${N} ${name} ${R}${msg}${N}`); }
29
+ function header(s) { console.log(`\n${C}${B}${s}${N}`); }
30
+
31
+ const ROOT = path.resolve(__dirname, "..");
32
+ const promptSrc = fs.readFileSync(path.join(ROOT, "src", "engine", "session", "prompt.ts"), "utf-8");
33
+
34
+ // ─── [1] Helpers exist ────────────────────────────────────────────────────────
35
+
36
+ header("[1] Identical-response detector — helper functions exist");
37
+
38
+ (() => {
39
+ if (/async function assistantTextFingerprint/.test(promptSrc)) ok("assistantTextFingerprint function defined");
40
+ else fail("assistantTextFingerprint", "missing from prompt.ts");
41
+ })();
42
+
43
+ (() => {
44
+ // The fingerprint should normalize whitespace and use SHA1
45
+ const fnMatch = promptSrc.match(/async function assistantTextFingerprint[\s\S]*?\n\}/);
46
+ if (!fnMatch) { fail("assistantTextFingerprint body", "function not extracted"); return; }
47
+ const body = fnMatch[0];
48
+ if (/createHash\(['"]sha1['"]\)/.test(body)) ok("uses SHA1 hashing");
49
+ else fail("hashing", "fingerprint should use SHA1");
50
+ if (/toLowerCase\(\)|replace\(\/\\\s\+\/g/.test(body)) ok("normalizes whitespace + case");
51
+ else fail("normalization", "fingerprint should normalize before hashing");
52
+ if (/\.length\s*<\s*\d+/.test(body)) ok("rejects short strings (low entropy)");
53
+ else fail("min length", "fingerprint should skip short strings");
54
+ })();
55
+
56
+ // ─── [2] Loop has recentResponses tracking ───────────────────────────────────
57
+
58
+ header("[2] Agent loop — recentResponses tracking");
59
+
60
+ (() => {
61
+ if (/const recentResponses\s*:\s*string\[\]\s*=\s*\[\]/.test(promptSrc)) ok("recentResponses array declared");
62
+ else fail("recentResponses", "missing in prompt.ts");
63
+ })();
64
+
65
+ (() => {
66
+ // Should push fingerprint and shift after threshold
67
+ if (/recentResponses\.push\(fingerprint\)/.test(promptSrc)) ok("pushes fingerprint each turn");
68
+ else fail("push", "fingerprint not pushed");
69
+
70
+ if (/recentResponses\.shift\(\)/.test(promptSrc)) ok("shifts old fingerprints");
71
+ else fail("shift", "no rolling window");
72
+ })();
73
+
74
+ (() => {
75
+ // Should break loop on duplicate
76
+ if (/recentResponses\.includes\(fingerprint\)/.test(promptSrc)) ok("checks for duplicate fingerprint");
77
+ else fail("duplicate check", "missing");
78
+ })();
79
+
80
+ (() => {
81
+ if (/identical_response_detected/.test(promptSrc)) ok("logs identical_response_detected");
82
+ else fail("log event", "no diagnostic log");
83
+
84
+ if (/Model produced an identical response/.test(promptSrc)) ok("user-facing warning emitted");
85
+ else fail("warning", "no session.warning broadcast");
86
+ })();
87
+
88
+ // ─── [3] Fingerprint behavior — manual reproduction ──────────────────────────
89
+
90
+ header("[3] Fingerprint algorithm — reproduces same hash for normalized input");
91
+
92
+ (() => {
93
+ // Re-implement the fingerprint logic in pure JS and verify it produces
94
+ // matching hashes for whitespace-equivalent inputs.
95
+ function fp(text) {
96
+ if (!text || text.length < 80) return null;
97
+ const normalized = text.toLowerCase().replace(/\s+/g, " ").trim();
98
+ const sample = normalized.slice(0, 1000);
99
+ return crypto.createHash("sha1").update(sample).digest("hex");
100
+ }
101
+
102
+ const a = "I'll start by creating a structure for the medieval market in BoneScript and then we will iterate.";
103
+ const b = "I'll start by creating a structure for the medieval market in BoneScript and then we will iterate.";
104
+ const c = "i'll start by creating a structure for the medieval market in bonescript and then we will iterate.";
105
+ if (fp(a) === fp(b)) ok("whitespace differences ignored");
106
+ else fail("whitespace", `${fp(a)} ≠ ${fp(b)}`);
107
+ if (fp(a) === fp(c)) ok("case differences ignored");
108
+ else fail("case", `${fp(a)} ≠ ${fp(c)}`);
109
+
110
+ const d = "totally different text that is long enough to fingerprint without colliding";
111
+ if (fp(a) !== fp(d)) ok("different text → different fingerprint");
112
+ else fail("collision", "different inputs have same fingerprint");
113
+
114
+ const short = "too short";
115
+ if (fp(short) === null) ok("short input returns null");
116
+ else fail("short", "should not fingerprint short text");
117
+ })();
118
+
119
+ // ─── Summary ─────────────────────────────────────────────────────────────────
120
+
121
+ console.log();
122
+ if (failed === 0) {
123
+ console.log(`${G}${B}✓ All ${passed} tests passed${N}`);
124
+ process.exit(0);
125
+ } else {
126
+ console.log(`${R}${B}✗ ${failed} failed, ${passed} passed${N}`);
127
+ for (const f of failures) console.log(` ${R}- ${f}${N}`);
128
+ process.exit(1);
129
+ }
@@ -69,6 +69,8 @@ export interface BuildState {
69
69
  error?: string;
70
70
  /** Set after probe: whether the model can emit OpenAI-format tool calls. */
71
71
  tool_capable?: boolean;
72
+ /** Files written so far in this build, with todo that produced each. */
73
+ written_files?: Record<string, { todo_id: string; size: number; written_at: number }>;
72
74
  }
73
75
 
74
76
  export interface VerificationResult {
@@ -402,13 +404,24 @@ async function stageExecute(state: BuildState, input: BuildModeInput): Promise<B
402
404
 
403
405
  if (state.tool_capable) {
404
406
  // ── Tool-calling path ────────────────────────────────────────────────
407
+ const knownFilesNote =
408
+ Object.keys(state.written_files || {}).length > 0
409
+ ? `\nFILES ALREADY WRITTEN (do NOT recreate or rewrite these — they're done):\n` +
410
+ Object.keys(state.written_files || {}).map((p) => ` - ${p}`).join("\n")
411
+ : "";
412
+
405
413
  const focusedPrompt = [
406
414
  `<build-task>`,
415
+ `You are doing ONE task in a larger build that's already in progress.`,
416
+ `IGNORE earlier conversation context — those questions are already answered.`,
417
+ `DO NOT ask clarifying questions. The plan is locked. Just do this task.`,
418
+ ``,
407
419
  `Title: ${next.title}`,
408
420
  `Description: ${next.description}`,
421
+ knownFilesNote,
409
422
  ``,
410
- `This is one task in a larger build. Complete this task NOW by calling the appropriate tools.`,
411
- `Do not describe what you would do call the tools.`,
423
+ `Output ONE OR MORE concrete tool calls (write/edit/bash) for THIS task.`,
424
+ `Do NOT respond with prose. Do NOT explain. Call the tools NOW.`,
412
425
  `</build-task>`,
413
426
  ].join("\n");
414
427
 
@@ -503,6 +516,32 @@ async function countToolCallsSince(session_id: string, since_message_id: string)
503
516
  }
504
517
  }
505
518
 
519
+ /**
520
+ * Like countToolCallsSince, but excludes calls synthesized from leaked tool-call
521
+ * markers. Used by the probe so we know whether the model can actually emit
522
+ * native tool calls — not just leak text we recovered. Models that only ever
523
+ * leak should be routed through the JSON-manifest fallback.
524
+ *
525
+ * Uses LIKE on the serialized tool_input JSON instead of jsonb operators so
526
+ * the same query works in both Postgres (real JSONB) and the SQLite fallback
527
+ * (TEXT column with stripped JSON operators).
528
+ */
529
+ async function countNativeToolCallsSince(session_id: string, since_message_id: string): Promise<number> {
530
+ try {
531
+ const r = await pool.query(
532
+ `SELECT COUNT(*) AS n FROM tool_calls
533
+ WHERE session_id = $1
534
+ AND created_at >= (SELECT created_at FROM messages WHERE id = $2)
535
+ AND CAST(tool_input AS TEXT) NOT LIKE '%__synthesized%'`,
536
+ [session_id, since_message_id]
537
+ );
538
+ const raw = r.rows[0]?.n;
539
+ return typeof raw === "string" ? parseInt(raw, 10) || 0 : raw || 0;
540
+ } catch {
541
+ return 0;
542
+ }
543
+ }
544
+
506
545
  // ─── Tool-capability probe & JSON-manifest fallback ───────────────────────────
507
546
 
508
547
  /**
@@ -553,7 +592,11 @@ async function probeToolCapability(input: BuildModeInput): Promise<boolean> {
553
592
  agent_name: "build",
554
593
  });
555
594
 
556
- const calls = await countToolCallsSince(input.session_id, probeMsgId);
595
+ // Only count NATIVE tool calls. Calls synthesized from leaked tool-marker
596
+ // text don't count — those are unreliable in real builds (the model needs
597
+ // to format the leak perfectly every time, which it usually doesn't).
598
+ // If the model only ever leaks, we want JSON-manifest fallback instead.
599
+ const calls = await countNativeToolCallsSince(input.session_id, probeMsgId);
557
600
  return calls > 0;
558
601
  } catch {
559
602
  return false;
@@ -610,6 +653,22 @@ async function executeFallback(
610
653
  .map((t) => `- ${t.title}`)
611
654
  .join("\n");
612
655
 
656
+ // Build a manifest of files already written so the model doesn't blindly
657
+ // overwrite them. We include the first ~30 lines of each file so the model
658
+ // can see what's there and decide whether to extend or leave alone.
659
+ state.written_files = state.written_files || {};
660
+ const existingPaths = Object.keys(state.written_files);
661
+ const existingFilesSnippets: string[] = [];
662
+ for (const p of existingPaths) {
663
+ try {
664
+ const target = path.resolve(worktree, p);
665
+ const content = await fs.readFile(target, "utf-8").catch(() => "");
666
+ const snippet = content.split("\n").slice(0, 30).join("\n");
667
+ const truncated = content.split("\n").length > 30 ? "\n... (truncated)" : "";
668
+ existingFilesSnippets.push(`${p} (${state.written_files[p].size} bytes):\n${snippet}${truncated}`);
669
+ } catch {}
670
+ }
671
+
613
672
  const result = await askJson<{
614
673
  files?: Array<{ path: string; content: string }>;
615
674
  commands?: string[];
@@ -617,20 +676,36 @@ async function executeFallback(
617
676
  model_id: input.model_id,
618
677
  provider_id: input.provider_id,
619
678
  system: [
620
- "You are completing one task in a project build. Produce a JSON manifest of the files to create or update and shell commands to run for THIS task only.",
679
+ "You are completing one task in an incremental project build. The project already has files from earlier tasks; THIS task adds the next layer.",
621
680
  "",
622
- "RULES:",
623
- "- Output a single JSON object: { \"files\": [...], \"commands\": [...] }",
681
+ "PRODUCE A JSON MANIFEST of files to create OR commands to run for THIS task only.",
682
+ "",
683
+ "CRITICAL RULES:",
684
+ `- Output a single JSON object: { "files": [...], "commands": [...] }`,
624
685
  "- Each file must have a relative `path` and full `content`. Do not abbreviate file content.",
625
686
  "- File paths must be relative to the project root (no leading slash, no '..').",
626
- "- Commands run in the project root. Use them only for compilation, package install, or migrations.",
687
+ "",
688
+ "FILE OVERWRITE POLICY:",
689
+ "- If a file already exists (listed under <existing-files>), DO NOT include it in your manifest unless this task is specifically about modifying it.",
690
+ "- If you must update an existing file, you MUST include the COMPLETE new content (including everything from the existing version that you want to keep). Partial content will overwrite and destroy whatever is there.",
691
+ "- For NEW files, just provide the new content.",
692
+ "- Prefer adding NEW files over modifying existing ones whenever possible.",
693
+ "",
694
+ "OUTPUT FORMAT:",
627
695
  "- Do not include explanatory prose. The JSON IS the entire response.",
696
+ "- Do not wrap in markdown code fences.",
628
697
  ].join("\n"),
629
698
  user: [
630
699
  `<design>`,
631
700
  designContext,
632
701
  `</design>`,
633
702
  ``,
703
+ `<existing-files>`,
704
+ existingFilesSnippets.length
705
+ ? existingFilesSnippets.join("\n\n---\n\n")
706
+ : "(no files written yet)",
707
+ `</existing-files>`,
708
+ ``,
634
709
  `<completed-tasks>`,
635
710
  completedFiles || "(none yet)",
636
711
  `</completed-tasks>`,
@@ -639,6 +714,8 @@ async function executeFallback(
639
714
  `Title: ${todo.title}`,
640
715
  `Description: ${todo.description}`,
641
716
  `</current-task>`,
717
+ ``,
718
+ `Produce the JSON manifest for the current task. Do NOT re-emit existing files unless this task explicitly modifies them.`,
642
719
  ].join("\n"),
643
720
  schema_hint: `{ "files": [{ "path": string, "content": string }], "commands": string[] }`,
644
721
  });
@@ -663,10 +740,38 @@ async function executeFallback(
663
740
  errors.push(`refused path outside worktree: ${f.path}`);
664
741
  continue;
665
742
  }
743
+
744
+ // OVERWRITE GUARD: if the file was written by an earlier todo and this
745
+ // todo's title doesn't suggest it's specifically about this file, refuse
746
+ // and force the model to think harder. Always allow overwrite if the new
747
+ // content is larger (model is appending) or the path appears in the todo.
748
+ const existing = state.written_files[f.path];
749
+ if (existing && existing.todo_id !== todo.id) {
750
+ const oldContent = await fs.readFile(target, "utf-8").catch(() => "");
751
+ const newSize = Buffer.byteLength(f.content, "utf-8");
752
+ const titleMentionsPath = todo.title.toLowerCase().includes(f.path.toLowerCase()) ||
753
+ todo.description.toLowerCase().includes(f.path.toLowerCase());
754
+ const isStrictShrink = newSize < oldContent.length * 0.5; // shrunk by >50% = clobber
755
+
756
+ if (isStrictShrink && !titleMentionsPath) {
757
+ errors.push(
758
+ `refused overwrite: ${f.path} would shrink from ${oldContent.length} to ${newSize} bytes ` +
759
+ `(model likely truncating). Skipping.`
760
+ );
761
+ continue;
762
+ }
763
+ }
764
+
666
765
  try {
667
766
  await fs.mkdir(path.dirname(target), { recursive: true });
668
767
  await fs.writeFile(target, f.content, "utf-8");
669
768
  filesWritten++;
769
+ // Track in state
770
+ state.written_files[f.path] = {
771
+ todo_id: todo.id,
772
+ size: Buffer.byteLength(f.content, "utf-8"),
773
+ written_at: Date.now(),
774
+ };
670
775
  // Surface a tool.completed event so the TUI shows an Edit/Write line
671
776
  const callId = `fallback-${uuid()}`;
672
777
  const broadcastModule = await import("../../../bone/output/session/src/websocket");
@@ -674,14 +779,14 @@ async function executeFallback(
674
779
  type: "tool.requested",
675
780
  session_id: input.session_id,
676
781
  tool_call_id: callId,
677
- tool_name: "write",
782
+ tool_name: existing ? "edit" : "write",
678
783
  tool_input: { path: f.path, content: f.content.slice(0, 200) },
679
784
  });
680
785
  broadcastModule.broadcastToChannel("part_stream", {
681
786
  type: "tool.completed",
682
787
  session_id: input.session_id,
683
788
  tool_call_id: callId,
684
- tool_name: "write",
789
+ tool_name: existing ? "edit" : "write",
685
790
  tool_input: { path: f.path },
686
791
  duration_ms: 0,
687
792
  });
@@ -821,15 +926,43 @@ async function stageVerify(state: BuildState, input: BuildModeInput): Promise<Bu
821
926
 
822
927
  // ─── Driver ───────────────────────────────────────────────────────────────────
823
928
 
824
- export async function runBuildMode(input: BuildModeInput): Promise<BuildState> {
825
- let state: BuildState = (await loadState(input.session_id)) ?? {
929
+ /**
930
+ * Start a fresh BuildState for the given prompt. Centralized so we don't
931
+ * accidentally drift between the lazy-init path in `runBuildMode` and the
932
+ * restart path used after a previous build is already `done` or `failed`.
933
+ */
934
+ function freshState(prompt: string): BuildState {
935
+ return {
826
936
  stage: "clarify",
827
- original_prompt: input.prompt,
937
+ original_prompt: prompt,
828
938
  design: null,
829
939
  todos: [],
830
940
  iteration: 0,
831
941
  max_iterations: 30,
942
+ written_files: {},
832
943
  };
944
+ }
945
+
946
+ export async function runBuildMode(input: BuildModeInput): Promise<BuildState> {
947
+ let state: BuildState = (await loadState(input.session_id)) ?? freshState(input.prompt);
948
+
949
+ // If the previous build is already done/failed, and the user is asking for
950
+ // something new (different prompt), start a fresh build rather than no-op.
951
+ // Without this, follow-up "build me X" prompts after a completed build
952
+ // silently do nothing because the loop sees state.stage === "done" and
953
+ // exits immediately.
954
+ if (
955
+ (state.stage === "done" || state.stage === "failed") &&
956
+ input.prompt &&
957
+ input.prompt !== state.original_prompt
958
+ ) {
959
+ emit(input.session_id, "build.restart", {
960
+ previous_stage: state.stage,
961
+ previous_prompt: state.original_prompt,
962
+ });
963
+ state = freshState(input.prompt);
964
+ await saveState(input.session_id, state);
965
+ }
833
966
 
834
967
  // Resume from saved state if applicable. If the user is sending a new prompt
835
968
  // and we're already in clarify with pending questions, treat the prompt as
@@ -99,6 +99,10 @@ export async function runAgentLoop(input: PromptInput): Promise<LoopResult> {
99
99
  let turn = 0;
100
100
  let lazyReminderSent = false;
101
101
  let lastFinishReason = "unknown";
102
+ // Track the last 2 assistant texts so we can detect when the model is
103
+ // stuck producing identical output. Some local models repeat the same
104
+ // response when they're confused about whether to call a tool or speak.
105
+ const recentResponses: string[] = [];
102
106
 
103
107
  try {
104
108
  // ── Main multi-turn loop ──────────────────────────────────────────────────
@@ -177,6 +181,27 @@ export async function runAgentLoop(input: PromptInput): Promise<LoopResult> {
177
181
  // 4. "tool-calls" with no actual tool calls = model confused — stop
178
182
  const terminalReasons = new Set(["stop", "length", "content-filter", "end-turn"]);
179
183
 
184
+ // Identical-response detector: small models sometimes emit the same
185
+ // response twice in a row when confused about tool calls. We capture
186
+ // a fingerprint and bail out before producing 3-4 copies.
187
+ const fingerprint = await assistantTextFingerprint(session_id, assistantMsgId);
188
+ if (fingerprint && recentResponses.includes(fingerprint)) {
189
+ logger.warn("identical_response_detected", {
190
+ event: "stuck_loop",
191
+ metadata: { session_id, turn, fingerprint: fingerprint.slice(0, 80) },
192
+ });
193
+ broadcastToChannel("session_events", {
194
+ type: "session.warning",
195
+ session_id,
196
+ message: "Model produced an identical response — exiting to avoid an infinite loop. Try rephrasing or switching models.",
197
+ });
198
+ break;
199
+ }
200
+ if (fingerprint) {
201
+ recentResponses.push(fingerprint);
202
+ if (recentResponses.length > 2) recentResponses.shift();
203
+ }
204
+
180
205
  // Detect "lazy assistant" — the model claims it's editing/creating files
181
206
  // in prose but never actually called a tool. Common with non-tool-tuned
182
207
  // local models. Once per session, push a synthetic reminder and re-run.
@@ -594,6 +619,29 @@ async function runCompaction(
594
619
 
595
620
  // ─── Message History Builder ──────────────────────────────────────────────────
596
621
 
622
+ // Compute a stable fingerprint of the assistant's most recent text so we can
623
+ // detect when the model is producing identical responses turn after turn.
624
+ // We hash a normalized version (whitespace collapsed, lowercased) of the
625
+ // concatenated text parts to avoid spurious mismatches from minor whitespace.
626
+ async function assistantTextFingerprint(session_id: string, messageId: string): Promise<string | null> {
627
+ try {
628
+ const r = await pool.query(
629
+ `SELECT data FROM parts WHERE message_id = $1 AND part_type = 'text' ORDER BY order_index ASC`,
630
+ [messageId]
631
+ );
632
+ const text = r.rows.map((row: any) => row.data?.text || "").join(" ").trim();
633
+ if (!text || text.length < 80) return null; // too short to fingerprint reliably
634
+ const normalized = text.toLowerCase().replace(/\s+/g, " ").trim();
635
+ // Hash the first 1000 chars — enough to detect duplicates without being
636
+ // confused by minor changes in the middle.
637
+ const sample = normalized.slice(0, 1000);
638
+ const crypto = require("crypto");
639
+ return crypto.createHash("sha1").update(sample).digest("hex");
640
+ } catch {
641
+ return null;
642
+ }
643
+ }
644
+
597
645
  // Detect a "lazy" response — assistant text says it will edit/create files
598
646
  // but no tool was actually invoked. Common with non-tool-tuned local models.
599
647
  async function wasLazyResponse(session_id: string, messageId: string): Promise<boolean> {
@@ -903,11 +951,16 @@ async function executeSynthesizedToolCall(input: {
903
951
  }
904
952
 
905
953
  const callId = uuid();
906
- // Persist the tool call record
954
+ // Persist the tool call record. We tag it as "synthesized" so the
955
+ // tool-capability probe in build_mode can tell the model didn't really
956
+ // emit a native tool call — it just leaked tool-marker text that we
957
+ // recovered. Models that always need recovery should be treated as
958
+ // tool-incapable so we route them through the JSON-manifest fallback
959
+ // (which is more reliable than counting on every prompt to leak cleanly).
907
960
  try {
908
961
  await pool.query(
909
962
  `INSERT INTO tool_calls (id, session_id, agent_id, tool_name, tool_input, state) VALUES ($1, $2, $3, $4, $5, 'running')`,
910
- [callId, session_id, agentId, resolvedName, JSON.stringify(toolInput)]
963
+ [callId, session_id, agentId, resolvedName, JSON.stringify({ ...toolInput, __synthesized: true })]
911
964
  );
912
965
  } catch {}
913
966