bonecode 1.4.1 → 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.
@@ -779,9 +896,20 @@ function isBuildPrompt(prompt) {
779
896
  /\bmake\s+(?:a|an|the)\s+(?:full|complete|whole|new)\b/,
780
897
  /\bproject\s+(?:from\s+scratch|to)\b/,
781
898
  /\bsimulation\s+(?:with|using|of)\b/,
782
- /\bbackend\s+(?:for|with|using)\b/,
899
+ /\bbackend\s+(?:for|with|using|service)\b/,
783
900
  /\bspec(?:ification)?\s+(?:for|of)\b/,
784
901
  /\bend[- ]to[- ]end\b/,
902
+ // Verb-led "write/build/code/develop" requests with a noun follow
903
+ /\b(?:write|code|develop|generate|scaffold)\s+(?:me\s+)?(?:a|an|the)\s+\w+/,
904
+ // BoneScript-specific phrases — if they say bonescript at all, treat as build
905
+ /\busing\s+bonescript\b/,
906
+ /\bwith\s+bonescript\b/,
907
+ /\bin\s+bonescript\b/,
908
+ /\bbonescript\s+(?:as|for|backend)\b/,
909
+ // Generic "<adjective> <noun-app>" patterns indicating a system request
910
+ /\b(?:rest|graphql)\s+api\b/,
911
+ /\bweb\s+app(?:lication)?\b/,
912
+ /\bgame\s+(?:simulation|engine|server)\b/,
785
913
  ];
786
914
  return triggers.some((re) => re.test(p));
787
915
  }
@@ -1 +1 @@
1
- {"version":3,"file":"build_mode.js","sourceRoot":"","sources":["../../../../src/engine/session/build_mode.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,2BAAkC;AAClC,+BAAkC;AAClC,4DAA2D;AAC3D,0EAAgF;AAChF,oEAAiE;AACjE,qCAAwC;AAkDxC,iFAAiF;AAEjF,KAAK,UAAU,SAAS,CAAC,UAAkB;IACzC,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,SAAI,CAAC,KAAK,CAAC,gDAAgD,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QAC3F,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC;QACnC,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,UAAkB,EAAE,KAAiB;IAC5D,6EAA6E;IAC7E,mDAAmD;IACnD,IAAI,CAAC;QACH,MAAM,SAAI,CAAC,KAAK,CACd,+EAA+E,EAC/E,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CACpC,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,CAAC;YACH,MAAM,SAAI,CAAC,KAAK,CACd;;;uBAGe,EACf,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CACpC,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,IAAI,CAAC,UAAkB,EAAE,KAAa,EAAE,IAA6B;IAC5E,IAAA,8BAAkB,EAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED,iFAAiF;AAEjF;;;;GAIG;AACH,KAAK,UAAU,OAAO,CAAI,KAMzB;IACC,MAAM,EAAE,gBAAgB,EAAE,GAAG,wDAAa,sBAAsB,GAAC,CAAC;IAClE,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IAElE,MAAM,UAAU,GAAG;QACjB,KAAK,CAAC,MAAM;QACZ,EAAE;QACF,sBAAsB;QACtB,yCAAyC;QACzC,qBAAqB,KAAK,CAAC,WAAW,EAAE;QACxC,sDAAsD;QACtD,wCAAwC;QACxC,gDAAgD;KACjD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAA,iBAAY,EAAC;YAClC,KAAK;YACL,MAAM,EAAE,UAAU;YAClB,MAAM,EAAE,KAAK,CAAC,IAAI;YAClB,WAAW,EAAE,GAAG;YAChB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QACH,OAAO,cAAc,CAAI,IAAI,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,eAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC7F,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,cAAc,CAAI,GAAW;IACpC,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,uEAAuE;IACvE,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,4BAA4B,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7D,oBAAoB;IACpB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACrE,kCAAkC;IAClC,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,iBAAiB;QACjB,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,QAAQ,KAAK,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QACjC,OAAO,QAAQ,CAAI,eAAe,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,QAAQ,CAAI,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,eAAe,CAAC,CAAS,EAAE,KAAa,EAAE,IAAY,EAAE,KAAa;IAC5E,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,IAAI,MAAM,EAAE,CAAC;YAAC,MAAM,GAAG,KAAK,CAAC;YAAC,SAAS;QAAC,CAAC;QACzC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YAAC,MAAM,GAAG,IAAI,CAAC;YAAC,SAAS;QAAC,CAAC;QAC7C,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAAC,KAAK,GAAG,CAAC,KAAK,CAAC;YAAC,SAAS;QAAC,CAAC;QAC7C,IAAI,KAAK;YAAE,SAAS;QACpB,IAAI,EAAE,KAAK,IAAI;YAAE,KAAK,EAAE,CAAC;aACpB,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;YACtB,KAAK,EAAE,CAAC;YACR,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,mCAAmC;AAC5D,CAAC;AAED,SAAS,QAAQ,CAAI,CAAS;IAC5B,IAAI,CAAC;QAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAM,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;AAC3D,CAAC;AAED,iFAAiF;AAEjF,KAAK,UAAU,YAAY,CAAC,KAAiB,EAAE,KAAqB;IAClE,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAE5D,sEAAsE;IACtE,MAAM,MAAM,GAAG,MAAM,OAAO,CAIzB;QACD,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,MAAM,EAAE;YACN,8CAA8C;YAC9C,sEAAsE;YACtE,6CAA6C;YAC7C,oCAAoC;YACpC,EAAE;YACF,QAAQ;YACR,iDAAiD;YACjD,sDAAsD;YACtD,uGAAuG;SACxG,CAAC,IAAI,CAAC,IAAI,CAAC;QACZ,IAAI,EAAE,iBAAiB,KAAK,CAAC,MAAM,EAAE;QACrC,WAAW,EAAE,mKAAmK;KACjL,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,KAAK,CAAC,KAAK,GAAG,sDAAsD,CAAC;QACrE,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC;QACvB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;QAChD,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC;QACtC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,cAAc,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;QAC3E,OAAO,KAAK,CAAC;IACf,CAAC;IAED,6BAA6B;IAC7B,KAAK,CAAC,qBAAqB,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,iBAAiB,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IAC3E,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,0BAA0B,CAC9C,UAAkB,EAClB,WAAmB,EACnB,QAAgB,EAChB,WAAmB;IAEnB,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,UAAU,CAAC,CAAC;IAC1C,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAErD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAY;QACtC,QAAQ;QACR,WAAW;QACX,MAAM,EAAE;YACN,gHAAgH;YAChH,qCAAqC;YACrC,EAAE;YACF,0FAA0F;YAC1F,wEAAwE;SACzE,CAAC,IAAI,CAAC,IAAI,CAAC;QACZ,IAAI,EAAE;YACJ,qBAAqB,KAAK,CAAC,eAAe,EAAE;YAC5C,EAAE;YACF,qBAAqB,KAAK,CAAC,qBAAqB,IAAI,EAAE,EAAE;YACxD,EAAE;YACF,oBAAoB,WAAW,EAAE;SAClC,CAAC,IAAI,CAAC,IAAI,CAAC;QACZ,WAAW,EAAE,8FAA8F;KAC5G,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,KAAK,CAAC,KAAK,GAAG,uDAAuD,CAAC;QACtE,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC;IACzB,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QACtB,KAAK,CAAC,qBAAqB,GAAG,SAAS,CAAC;QACxC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,EAAE,cAAc,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACnC,OAAO,KAAK,CAAC;AACf,CAAC;AAzCD,gEAyCC;AAED,iFAAiF;AAEjF,KAAK,UAAU,SAAS,CAAC,KAAiB,EAAE,KAAqB;IAC/D,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAClB,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC;QACvB,KAAK,CAAC,KAAK,GAAG,yBAAyB,CAAC;QACxC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAEzD,MAAM,MAAM,GAAG,MAAM,OAAO,CAA2D;QACrF,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,MAAM,EAAE;YACN,8DAA8D;YAC9D,EAAE;YACF,QAAQ;YACR,mEAAmE;YACnE,8DAA8D;YAC9D,oFAAoF;YACpF,iDAAiD;YACjD,8CAA8C;YAC9C,0EAA0E;SAC3E,CAAC,IAAI,CAAC,IAAI,CAAC;QACZ,IAAI,EAAE;YACJ,SAAS;YACT,SAAS,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;YAC5B,kBAAkB,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC7E,iBAAiB,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC3E,wBAAwB,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SACjF,CAAC,IAAI,CAAC,IAAI,CAAC;QACZ,WAAW,EAAE,2DAA2D;KACzE,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzE,KAAK,CAAC,KAAK,GAAG,gCAAgC,CAAC;QAC/C,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC;QACvB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACrC,EAAE,EAAE,IAAA,SAAI,GAAE;QACV,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,MAAM,EAAE,SAAS;QACjB,aAAa,EAAE,CAAC;KACjB,CAAC,CAAC,CAAC;IACJ,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC;IACxB,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IAC7D,OAAO,KAAK,CAAC;AACf,CAAC;AAED,iFAAiF;AAEjF,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAE3B,KAAK,UAAU,YAAY,CAAC,KAAiB,EAAE,KAAqB;IAClE,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAE5D,8EAA8E;IAC9E,wEAAwE;IACxE,wEAAwE;IACxE,kDAAkD;IAClD,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACrC,KAAK,CAAC,YAAY,GAAG,MAAM,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACtD,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YACxB,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,iBAAiB,EAAE;gBACxC,OAAO,EAAE,SAAS,KAAK,CAAC,QAAQ,yIAAyI;aAC1K,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,yEAAyE;IACzE,IAAI,4BAA4B,GAAG,CAAC,CAAC;IACrC,MAAM,4BAA4B,GAAG,CAAC,CAAC;IAEvC,OAAO,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;QAC9C,KAAK,CAAC,SAAS,EAAE,CAAC;QAElB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;QAC7D,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,wCAAwC;YACxC,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC;YACvB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,kBAAkB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAE3D,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,IAAI,QAAQ,GAAG,EAAE,CAAC;QAElB,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACvB,wEAAwE;YACxE,MAAM,aAAa,GAAG;gBACpB,cAAc;gBACd,UAAU,IAAI,CAAC,KAAK,EAAE;gBACtB,gBAAgB,IAAI,CAAC,WAAW,EAAE;gBAClC,EAAE;gBACF,8FAA8F;gBAC9F,qDAAqD;gBACrD,eAAe;aAChB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEb,MAAM,SAAS,GAAG,IAAA,SAAI,GAAE,CAAC;YACzB,MAAM,SAAI,CAAC,KAAK,CACd,qEAAqE,EACrE,CAAC,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,CAC9B,CAAC;YACF,MAAM,UAAU,GAAG,IAAA,SAAI,GAAE,CAAC;YAC1B,MAAM,SAAI,CAAC,KAAK,CACd,iHAAiH,EACjH,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAC3G,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,IAAA,qBAAY,EAAC;gBAChC,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,UAAU,EAAE,SAAS;gBACrB,OAAO,EAAE,aAAa;gBACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,UAAU,EAAE,OAAO;aACpB,CAAC,CAAC;YAEH,cAAc,GAAG,MAAM,mBAAmB,CAAC,KAAK,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YACxE,SAAS,GAAG,MAAM,CAAC,EAAE,IAAI,cAAc,GAAG,CAAC,CAAC;YAC5C,QAAQ,GAAG,MAAM,CAAC,KAAK,IAAI,eAAe,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,wEAAwE;YACxE,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAC3D,SAAS,GAAG,QAAQ,CAAC,EAAE,CAAC;YACxB,cAAc,GAAG,QAAQ,CAAC,YAAY,CAAC;YACvC,QAAQ,GAAG,QAAQ,CAAC,KAAK,IAAI,mBAAmB,CAAC;QACnD,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;YAC1B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,YAAY;gBAChC,CAAC,CAAC,GAAG,cAAc,oBAAoB;gBACvC,CAAC,CAAC,GAAG,cAAc,+BAA+B,CAAC;YACrD,4BAA4B,GAAG,CAAC,CAAC;YACjC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,iBAAiB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,IAAI,CAAC,aAAa,IAAI,gBAAgB,EAAE,CAAC;gBAC3C,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;gBACvB,4BAA4B,EAAE,CAAC;gBAC/B,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,mBAAmB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;YAChF,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;gBACxB,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,kBAAkB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;YAC1F,CAAC;QACH,CAAC;QAED,MAAM,SAAS,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAEzC,2EAA2E;QAC3E,4EAA4E;QAC5E,yBAAyB;QACzB,IAAI,4BAA4B,IAAI,4BAA4B,EAAE,CAAC;YACjE,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC;YACvB,KAAK,CAAC,KAAK,GAAG,gBAAgB,4BAA4B,wCACxD,KAAK,CAAC,YAAY;gBAChB,CAAC,CAAC,kEAAkE;gBACpE,CAAC,CAAC,yGACN,EAAE,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,iBAAiB,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;YACpE,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,gCAAgC;IAChC,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC,EAAE,CAAC;QAClF,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC;QACvB,KAAK,CAAC,KAAK,GAAG,wBAAwB,KAAK,CAAC,cAAc,6BAA6B,CAAC;IAC1F,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC;IACzB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,UAAkB,EAAE,gBAAwB;IAC7E,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,SAAI,CAAC,KAAK,CACxB;;2EAEqE,EACrE,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAC/B,CAAC;QACF,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAED,iFAAiF;AAEjF;;;;;;;GAOG;AACH,KAAK,UAAU,mBAAmB,CAAC,KAAqB;IACtD,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,uCAAuC;IACvC,MAAM,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IACxC,IACE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;QACpB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;QACpB,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACrB,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;QACzB,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;QACvB,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,EACvB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,0EAA0E;IAC1E,+DAA+D;IAC/D,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAA,SAAI,GAAE,CAAC;QAC1B,MAAM,SAAI,CAAC,KAAK,CACd,qEAAqE,EACrE,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAC/B,CAAC;QACF,MAAM,WAAW,GAAG,IAAA,SAAI,GAAE,CAAC;QAC3B,MAAM,WAAW,GACf,4JAA4J,CAAC;QAC/J,MAAM,SAAI,CAAC,KAAK,CACd,iHAAiH,EACjH,CAAC,WAAW,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CACpG,CAAC;QAEF,MAAM,IAAA,qBAAY,EAAC;YACjB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,UAAU,EAAE,UAAU;YACtB,OAAO,EAAE,WAAW;YACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,UAAU,EAAE,OAAO;SACpB,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QACtE,OAAO,KAAK,GAAG,CAAC,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAQD;;;;;;;;;GASG;AACH,KAAK,UAAU,eAAe,CAC5B,KAAiB,EACjB,IAAe,EACf,KAAqB;IAErB,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAE9C,oCAAoC;IACpC,MAAM,UAAU,GAAG,MAAM,SAAI,CAAC,KAAK,CACjC;;qBAEiB,EACjB,CAAC,KAAK,CAAC,UAAU,CAAC,CACnB,CAAC;IACF,MAAM,QAAQ,GACZ,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAEjF,yEAAyE;IACzE,wBAAwB;IACxB,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM;QAChC,CAAC,CAAC;YACE,gBAAgB,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;YACnC,gBAAgB,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE;YACjE,uBAAuB,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,eAAe,EAAE;SAC9E,CAAC,IAAI,CAAC,IAAI,CAAC;QACd,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK;SAC/B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,IAAI,CAAC,CAAC,QAAQ,CAAC;SACrD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;SAC1B,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,MAAM,MAAM,GAAG,MAAM,OAAO,CAGzB;QACD,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,MAAM,EAAE;YACN,wJAAwJ;YACxJ,EAAE;YACF,QAAQ;YACR,0EAA0E;YAC1E,6FAA6F;YAC7F,gFAAgF;YAChF,oGAAoG;YACpG,sEAAsE;SACvE,CAAC,IAAI,CAAC,IAAI,CAAC;QACZ,IAAI,EAAE;YACJ,UAAU;YACV,aAAa;YACb,WAAW;YACX,EAAE;YACF,mBAAmB;YACnB,cAAc,IAAI,YAAY;YAC9B,oBAAoB;YACpB,EAAE;YACF,gBAAgB;YAChB,UAAU,IAAI,CAAC,KAAK,EAAE;YACtB,gBAAgB,IAAI,CAAC,WAAW,EAAE;YAClC,iBAAiB;SAClB,CAAC,IAAI,CAAC,IAAI,CAAC;QACZ,WAAW,EAAE,4EAA4E;KAC1F,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QACjF,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,wCAAwC,EAAE,CAAC;IACzF,CAAC;IAED,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,cAAc;IACd,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;QACnC,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ;YAAE,SAAS;QAChF,0CAA0C;QAC1C,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACrD,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9C,SAAS;QACX,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YAC/C,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACxD,SAAS;QACX,CAAC;QACD,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1D,MAAM,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC/C,YAAY,EAAE,CAAC;YACf,qEAAqE;YACrE,MAAM,MAAM,GAAG,YAAY,IAAA,SAAI,GAAE,EAAE,CAAC;YACpC,MAAM,eAAe,GAAG,wDAAa,4CAA4C,GAAC,CAAC;YACnF,eAAe,CAAC,kBAAkB,CAAC,aAAa,EAAE;gBAChD,IAAI,EAAE,gBAAgB;gBACtB,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,YAAY,EAAE,MAAM;gBACpB,SAAS,EAAE,OAAO;gBAClB,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;aAC/D,CAAC,CAAC;YACH,eAAe,CAAC,kBAAkB,CAAC,aAAa,EAAE;gBAChD,IAAI,EAAE,gBAAgB;gBACtB,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,YAAY,EAAE,MAAM;gBACpB,SAAS,EAAE,OAAO;gBAClB,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;gBAC5B,WAAW,EAAE,CAAC;aACf,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,eAAe;IACf,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QACxC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;YAAE,SAAS;QACrD,IAAI,CAAC;YACH,QAAQ,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAM,EAAE,CAAC,CAAC;YACjE,MAAM,MAAM,GAAG,YAAY,IAAA,SAAI,GAAE,EAAE,CAAC;YACpC,MAAM,eAAe,GAAG,wDAAa,4CAA4C,GAAC,CAAC;YACnF,eAAe,CAAC,kBAAkB,CAAC,aAAa,EAAE;gBAChD,IAAI,EAAE,gBAAgB;gBACtB,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,YAAY,EAAE,MAAM;gBACpB,SAAS,EAAE,MAAM;gBACjB,UAAU,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE;aAC7B,CAAC,CAAC;YACH,eAAe,CAAC,kBAAkB,CAAC,aAAa,EAAE;gBAChD,IAAI,EAAE,gBAAgB;gBACtB,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,YAAY,EAAE,MAAM;gBACpB,SAAS,EAAE,MAAM;gBACjB,UAAU,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE;gBAC5B,WAAW,EAAE,CAAC;aACf,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,OAAO;QACL,EAAE,EAAE,YAAY,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;QAC1D,YAAY;QACZ,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;KACrD,CAAC;AACJ,CAAC;AAED,iFAAiF;AAEjF,KAAK,UAAU,WAAW,CAAC,KAAiB,EAAE,KAAqB;IACjE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAClB,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC;QACvB,KAAK,CAAC,KAAK,GAAG,8BAA8B,CAAC;QAC7C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE3D,MAAM,OAAO,GAAyB,EAAE,CAAC;IAEzC,KAAK,MAAM,WAAW,IAAI,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QACpD,sEAAsE;QACtE,MAAM,CAAC,GAAG,MAAM,OAAO,CAA2C;YAChE,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,MAAM,EAAE;gBACN,yFAAyF;gBACzF,EAAE;gBACF,QAAQ;gBACR,uDAAuD;gBACvD,yDAAyD;gBACzD,mFAAmF;gBACnF,sDAAsD;aACvD,CAAC,IAAI,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE;gBACJ,gBAAgB,WAAW,EAAE;gBAC7B,EAAE;gBACF,kBAAkB,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;gBACrC,EAAE;gBACF,wBAAwB,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAChF,EAAE;gBACF,oBAAoB,KAAK,CAAC,KAAK;qBAC5B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC;qBACvC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;qBAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE;aAC5B,CAAC,IAAI,CAAC,IAAI,CAAC;YACZ,WAAW,EAAE,8CAA8C;SAC5D,CAAC,CAAC;QAEH,MAAM,MAAM,GAAuB,CAAC;YAClC,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;YAC/D,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,iCAAiC,EAAE,CAAC;QACnF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrB,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,mBAAmB,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvH,CAAC;IAED,KAAK,CAAC,oBAAoB,GAAG,OAAO,CAAC;IAErC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAChD,IAAI,KAAK,EAAE,CAAC;QACV,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,YAAY,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC;IACnE,CAAC;SAAM,CAAC;QACN,4CAA4C;QAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;YAC5C,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC;YACvB,KAAK,CAAC,KAAK,GAAG,GAAG,QAAQ,CAAC,MAAM,qCAAqC,KAAK,CAAC,cAAc,cAAc,CAAC;QAC1G,CAAC;aAAM,CAAC;YACN,yCAAyC;YACzC,MAAM,OAAO,GAAG,MAAM,OAAO,CAA2D;gBACtF,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,MAAM,EAAE,iFAAiF;gBACzF,IAAI,EAAE;oBACJ,2BAA2B;oBAC3B,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,WAAW,cAAc,CAAC,CAAC,QAAQ,GAAG,CAAC;iBACtE,CAAC,IAAI,CAAC,IAAI,CAAC;gBACZ,WAAW,EAAE,2DAA2D;aACzE,CAAC,CAAC;YAEH,IAAI,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxE,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;oBAC9B,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;wBACf,EAAE,EAAE,IAAA,SAAI,GAAE;wBACV,KAAK,EAAE,CAAC,CAAC,KAAK;wBACd,WAAW,EAAE,CAAC,CAAC,WAAW;wBAC1B,MAAM,EAAE,SAAS;wBACjB,aAAa,EAAE,CAAC;qBACjB,CAAC,CAAC;gBACL,CAAC;gBACD,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC;gBACxB,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;YAC1E,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC;gBACvB,KAAK,CAAC,KAAK,GAAG,oCAAoC,QAAQ,CAAC,MAAM,8BAA8B,CAAC;YAClG,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,iFAAiF;AAE1E,KAAK,UAAU,YAAY,CAAC,KAAqB;IACtD,IAAI,KAAK,GAAe,CAAC,MAAM,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI;QAC7D,KAAK,EAAE,SAAS;QAChB,eAAe,EAAE,KAAK,CAAC,MAAM;QAC7B,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,EAAE;QACT,SAAS,EAAE,CAAC;QACZ,cAAc,EAAE,EAAE;KACnB,CAAC;IAEF,6EAA6E;IAC7E,2EAA2E;IAC3E,2BAA2B;IAC3B,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,qBAAqB,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,eAAe,EAAE,CAAC;QACvG,MAAM,IAAI,GAAG,MAAM,0BAA0B,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;QACjH,IAAI,IAAI;YAAE,KAAK,GAAG,IAAI,CAAC;IACzB,CAAC;IAED,6EAA6E;IAC7E,yEAAyE;IACzE,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,OAAO,KAAK,CAAC,KAAK,KAAK,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,GAAG,EAAE,EAAE,CAAC;QACzE,MAAM,EAAE,CAAC;QACT,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;QAE3B,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC9B,KAAK,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACzC,MAAM,SAAS,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YACzC,kEAAkE;YAClE,IAAI,KAAK,CAAC,qBAAqB;gBAAE,MAAM;QACzC,CAAC;aAAM,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YAClC,KAAK,GAAG,MAAM,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACtC,MAAM,SAAS,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACrC,KAAK,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACzC,MAAM,SAAS,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACpC,KAAK,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACxC,MAAM,SAAS,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM;YAAE,MAAM,CAAC,sBAAsB;IAC3D,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AA7CD,oCA6CC;AAED,iFAAiF;AAEjF;;;;GAIG;AACH,SAAgB,aAAa,CAAC,MAAc;IAC1C,MAAM,CAAC,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IACtC,IAAI,CAAC,CAAC,MAAM,GAAG,EAAE;QAAE,OAAO,KAAK,CAAC;IAChC,MAAM,QAAQ,GAAG;QACf,2BAA2B;QAC3B,0DAA0D;QAC1D,+CAA+C;QAC/C,+CAA+C;QAC/C,wDAAwD;QACxD,uDAAuD;QACvD,qCAAqC;QACrC,oCAAoC;QACpC,kCAAkC;QAClC,qCAAqC;QACrC,sBAAsB;KACvB,CAAC;IACF,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,CAAC;AAjBD,sCAiBC"}
1
+ {"version":3,"file":"build_mode.js","sourceRoot":"","sources":["../../../../src/engine/session/build_mode.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Pure, side-effect-free parser for leaked tool-call markers.
3
+ *
4
+ * Some local models (gemma, qwen, llama variants) emit their internal
5
+ * tool-call markers as raw text instead of producing structured tool_call
6
+ * events. The AI SDK's parser misses these, so the model's prose appears in
7
+ * the output but no tool ever runs.
8
+ *
9
+ * This module recovers the intended call by pattern-matching the leaked text.
10
+ * No DB, no network, no global state — pure functions only, fully testable.
11
+ *
12
+ * Patterns recognized (across multiple template formats):
13
+ * <|tool_call|>{"name":"write","arguments":{...}}<|/tool_call|>
14
+ * <|tool_call>name:write{...args...}<tool_call|>
15
+ * <tool_call>{"name":"write","arguments":{...}}</tool_call>
16
+ * <function_call>{"name":"write","arguments":{...}}</function_call>
17
+ * ```tool_code\nwrite(path="x", content="y")\n```
18
+ * <|python_tag|>write({"path": "x"})<|/python_tag|>
19
+ */
20
+ export interface LeakedToolCall {
21
+ toolName: string;
22
+ toolInput: Record<string, any>;
23
+ startIndex: number;
24
+ endIndex: number;
25
+ }
26
+ export declare function extractLeakedToolCall(text: string): LeakedToolCall | null;
27
+ /**
28
+ * Parse the body of a leaked tool-call block. Tries multiple formats:
29
+ * - JSON: {"name": "write", "arguments": {...}} or {"tool":"write","args":{...}}
30
+ * - Function-call style: write(path="x", content="y")
31
+ * - Pseudo-syntax: call:write{path:"x"}
32
+ */
33
+ export declare function parseLeakedBody(body: string): {
34
+ toolName: string;
35
+ toolInput: Record<string, any>;
36
+ } | null;
37
+ export declare function safeParseJson(s: string): any | null;
38
+ /**
39
+ * Parse Python-style kwargs from a function-call body:
40
+ * path="x", content="y", count=42
41
+ * Strips `<|"|>` style escape markers some templates inject.
42
+ */
43
+ export declare function parseKwargs(s: string): Record<string, any> | null;
44
+ /**
45
+ * Parse a loose key:value object body (no surrounding braces, no enforced
46
+ * JSON quoting). Used for pseudo-syntax fallbacks like:
47
+ * file_path:<|"|>medieval_market.bone<|"|>
48
+ */
49
+ export declare function parseLooseObject(s: string): Record<string, any> | null;
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+ /**
3
+ * Pure, side-effect-free parser for leaked tool-call markers.
4
+ *
5
+ * Some local models (gemma, qwen, llama variants) emit their internal
6
+ * tool-call markers as raw text instead of producing structured tool_call
7
+ * events. The AI SDK's parser misses these, so the model's prose appears in
8
+ * the output but no tool ever runs.
9
+ *
10
+ * This module recovers the intended call by pattern-matching the leaked text.
11
+ * No DB, no network, no global state — pure functions only, fully testable.
12
+ *
13
+ * Patterns recognized (across multiple template formats):
14
+ * <|tool_call|>{"name":"write","arguments":{...}}<|/tool_call|>
15
+ * <|tool_call>name:write{...args...}<tool_call|>
16
+ * <tool_call>{"name":"write","arguments":{...}}</tool_call>
17
+ * <function_call>{"name":"write","arguments":{...}}</function_call>
18
+ * ```tool_code\nwrite(path="x", content="y")\n```
19
+ * <|python_tag|>write({"path": "x"})<|/python_tag|>
20
+ */
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.parseLooseObject = exports.parseKwargs = exports.safeParseJson = exports.parseLeakedBody = exports.extractLeakedToolCall = void 0;
23
+ function extractLeakedToolCall(text) {
24
+ // Pattern 1: <|tool_call|>...<|/tool_call|> or <tool_call>...</tool_call>
25
+ const blockPatterns = [
26
+ /<\|tool_call\|?>([\s\S]*?)<\|?\/?tool_call\|?>/i,
27
+ /<tool_call>([\s\S]*?)<\/?tool_call>/i,
28
+ /<function_call>([\s\S]*?)<\/?function_call>/i,
29
+ /<\|python_tag\|>([\s\S]*?)<\|?\/?python_tag\|?>/i,
30
+ ];
31
+ for (const re of blockPatterns) {
32
+ const m = text.match(re);
33
+ if (!m || m.index === undefined)
34
+ continue;
35
+ const body = m[1];
36
+ const parsed = parseLeakedBody(body);
37
+ if (parsed) {
38
+ return { ...parsed, startIndex: m.index, endIndex: m.index + m[0].length };
39
+ }
40
+ }
41
+ // Pattern 2: ```tool_code ... ```
42
+ const codeBlock = text.match(/```(?:tool_code|tool_call|function|python)\s*\n([\s\S]*?)\n```/i);
43
+ if (codeBlock && codeBlock.index !== undefined) {
44
+ const parsed = parseLeakedBody(codeBlock[1]);
45
+ if (parsed) {
46
+ return { ...parsed, startIndex: codeBlock.index, endIndex: codeBlock.index + codeBlock[0].length };
47
+ }
48
+ }
49
+ return null;
50
+ }
51
+ exports.extractLeakedToolCall = extractLeakedToolCall;
52
+ /**
53
+ * Parse the body of a leaked tool-call block. Tries multiple formats:
54
+ * - JSON: {"name": "write", "arguments": {...}} or {"tool":"write","args":{...}}
55
+ * - Function-call style: write(path="x", content="y")
56
+ * - Pseudo-syntax: call:write{path:"x"}
57
+ */
58
+ function parseLeakedBody(body) {
59
+ if (!body)
60
+ return null;
61
+ const trimmed = body.trim();
62
+ // Try JSON first
63
+ try {
64
+ const json = JSON.parse(trimmed);
65
+ if (json && typeof json === "object") {
66
+ const name = json.name || json.tool || json.tool_name || json.function;
67
+ const args = json.arguments || json.args || json.parameters || json.input || {};
68
+ if (typeof name === "string" && name.length > 0) {
69
+ const parsedArgs = typeof args === "string" ? safeParseJson(args) : args;
70
+ return { toolName: name, toolInput: parsedArgs ?? {} };
71
+ }
72
+ }
73
+ }
74
+ catch { }
75
+ // Try function-call style: name(arg1=val1, arg2="val2")
76
+ const fnMatch = trimmed.match(/^([a-zA-Z_][\w]*)\s*\(([\s\S]*)\)\s*$/);
77
+ if (fnMatch) {
78
+ const toolName = fnMatch[1];
79
+ const argsStr = fnMatch[2];
80
+ // Try JSON-shaped arg first: write({"path": "x"})
81
+ const innerJson = safeParseJson(argsStr);
82
+ if (innerJson && typeof innerJson === "object" && !Array.isArray(innerJson)) {
83
+ return { toolName, toolInput: innerJson };
84
+ }
85
+ const toolInput = parseKwargs(argsStr);
86
+ if (toolInput)
87
+ return { toolName, toolInput };
88
+ }
89
+ // Try pseudo-syntax: call:name{key:"val", ...} or name:foo{...}
90
+ const callMatch = trimmed.match(/(?:call:|name:|tool:|function:)([a-zA-Z_][\w]*)\s*\{([\s\S]*)\}\s*/i);
91
+ if (callMatch) {
92
+ const toolName = callMatch[1];
93
+ const innerJson = "{" + callMatch[2] + "}";
94
+ const toolInput = safeParseJson(innerJson) || parseLooseObject(callMatch[2]);
95
+ if (toolInput)
96
+ return { toolName, toolInput };
97
+ }
98
+ return null;
99
+ }
100
+ exports.parseLeakedBody = parseLeakedBody;
101
+ function safeParseJson(s) {
102
+ try {
103
+ return JSON.parse(s);
104
+ }
105
+ catch {
106
+ return null;
107
+ }
108
+ }
109
+ exports.safeParseJson = safeParseJson;
110
+ /**
111
+ * Parse Python-style kwargs from a function-call body:
112
+ * path="x", content="y", count=42
113
+ * Strips `<|"|>` style escape markers some templates inject.
114
+ */
115
+ function parseKwargs(s) {
116
+ if (!s.trim())
117
+ return {};
118
+ const cleaned = s.replace(/<\|"\|>/g, '"').replace(/<\|'\|>/g, "'");
119
+ const result = {};
120
+ const re = /([a-zA-Z_][\w]*)\s*=\s*("([^"\\]|\\.)*"|'([^'\\]|\\.)*'|-?\d+(?:\.\d+)?|true|false|null)/g;
121
+ let m;
122
+ let matched = false;
123
+ while ((m = re.exec(cleaned)) !== null) {
124
+ matched = true;
125
+ const key = m[1];
126
+ const raw = m[2];
127
+ let value = raw;
128
+ if (raw === "true")
129
+ value = true;
130
+ else if (raw === "false")
131
+ value = false;
132
+ else if (raw === "null")
133
+ value = null;
134
+ else if (/^-?\d/.test(raw))
135
+ value = parseFloat(raw);
136
+ else
137
+ value = raw.slice(1, -1).replace(/\\(.)/g, "$1");
138
+ result[key] = value;
139
+ }
140
+ return matched ? result : null;
141
+ }
142
+ exports.parseKwargs = parseKwargs;
143
+ /**
144
+ * Parse a loose key:value object body (no surrounding braces, no enforced
145
+ * JSON quoting). Used for pseudo-syntax fallbacks like:
146
+ * file_path:<|"|>medieval_market.bone<|"|>
147
+ */
148
+ function parseLooseObject(s) {
149
+ const cleaned = s.replace(/<\|"\|>/g, '"').replace(/<\|'\|>/g, "'");
150
+ const result = {};
151
+ const re = /([a-zA-Z_][\w]*)\s*[:=]\s*("([^"\\]|\\.)*"|'([^'\\]|\\.)*'|-?\d+(?:\.\d+)?|true|false|null|[^\s,}]+)/g;
152
+ let m;
153
+ let matched = false;
154
+ while ((m = re.exec(cleaned)) !== null) {
155
+ matched = true;
156
+ const key = m[1];
157
+ const raw = m[2];
158
+ let value = raw;
159
+ if (raw === "true")
160
+ value = true;
161
+ else if (raw === "false")
162
+ value = false;
163
+ else if (raw === "null")
164
+ value = null;
165
+ else if (/^-?\d/.test(raw))
166
+ value = parseFloat(raw);
167
+ else if (raw.startsWith('"') || raw.startsWith("'"))
168
+ value = raw.slice(1, -1).replace(/\\(.)/g, "$1");
169
+ result[key] = value;
170
+ }
171
+ return matched ? result : null;
172
+ }
173
+ exports.parseLooseObject = parseLooseObject;
174
+ //# sourceMappingURL=leaked_tool_call.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"leaked_tool_call.js","sourceRoot":"","sources":["../../../../src/engine/session/leaked_tool_call.ts"],"names":[],"mappings":"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"}