pi-agent-flow 2.3.3 → 2.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/dist/batch/batch-bash.d.ts.map +1 -1
  2. package/dist/batch/batch-bash.js +23 -0
  3. package/dist/batch/batch-bash.js.map +1 -1
  4. package/dist/batch/execute.d.ts +3 -0
  5. package/dist/batch/execute.d.ts.map +1 -1
  6. package/dist/batch/execute.js +147 -17
  7. package/dist/batch/execute.js.map +1 -1
  8. package/dist/config/config.d.ts +6 -0
  9. package/dist/config/config.d.ts.map +1 -1
  10. package/dist/config/config.js +71 -21
  11. package/dist/config/config.js.map +1 -1
  12. package/dist/config/thinking-level-map.d.ts +20 -0
  13. package/dist/config/thinking-level-map.d.ts.map +1 -0
  14. package/dist/config/thinking-level-map.js +68 -0
  15. package/dist/config/thinking-level-map.js.map +1 -0
  16. package/dist/core2/snapshot.d.ts +9 -1
  17. package/dist/core2/snapshot.d.ts.map +1 -1
  18. package/dist/core2/snapshot.js +62 -74
  19. package/dist/core2/snapshot.js.map +1 -1
  20. package/dist/flow/command.d.ts.map +1 -1
  21. package/dist/flow/command.js +6 -0
  22. package/dist/flow/command.js.map +1 -1
  23. package/dist/flow/continuation.d.ts +10 -0
  24. package/dist/flow/continuation.d.ts.map +1 -1
  25. package/dist/flow/continuation.js +18 -0
  26. package/dist/flow/continuation.js.map +1 -1
  27. package/dist/flow/dump-io.d.ts +2 -2
  28. package/dist/flow/dump-io.d.ts.map +1 -1
  29. package/dist/flow/dump-io.js +16 -12
  30. package/dist/flow/dump-io.js.map +1 -1
  31. package/dist/flow/flow-args.d.ts.map +1 -1
  32. package/dist/flow/flow-args.js +8 -3
  33. package/dist/flow/flow-args.js.map +1 -1
  34. package/dist/flow/index.d.ts +2 -2
  35. package/dist/flow/index.d.ts.map +1 -1
  36. package/dist/flow/index.js +2 -2
  37. package/dist/flow/index.js.map +1 -1
  38. package/dist/flow/runner.d.ts.map +1 -1
  39. package/dist/flow/runner.js +45 -12
  40. package/dist/flow/runner.js.map +1 -1
  41. package/dist/flow/store.d.ts +14 -0
  42. package/dist/flow/store.d.ts.map +1 -1
  43. package/dist/flow/store.js +138 -8
  44. package/dist/flow/store.js.map +1 -1
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +11 -3
  47. package/dist/index.js.map +1 -1
  48. package/dist/io/atomic-write.d.ts +7 -0
  49. package/dist/io/atomic-write.d.ts.map +1 -1
  50. package/dist/io/atomic-write.js +25 -0
  51. package/dist/io/atomic-write.js.map +1 -1
  52. package/dist/notify/notify.d.ts.map +1 -1
  53. package/dist/notify/notify.js +14 -2
  54. package/dist/notify/notify.js.map +1 -1
  55. package/dist/snapshot/runner-events.d.ts.map +1 -1
  56. package/dist/snapshot/runner-events.js +29 -2
  57. package/dist/snapshot/runner-events.js.map +1 -1
  58. package/dist/snapshot/structured-output.d.ts.map +1 -1
  59. package/dist/snapshot/structured-output.js +19 -7
  60. package/dist/snapshot/structured-output.js.map +1 -1
  61. package/package.json +1 -1
@@ -11,7 +11,7 @@ import { parseComplexity } from "../flow/complexity.js";
11
11
  import { logWarn } from "./log.js";
12
12
  import { resolveModelContextWindow as resolveModelContextWindowFromModels } from "./models.js";
13
13
  import { getAgentDir, hasAgentDirOverride } from "./paths.js";
14
- import { atomicWriteFileSync } from "../io/atomic-write.js";
14
+ import { atomicWriteFileSync, atomicWriteJsonAsync } from "../io/atomic-write.js";
15
15
  const BUILTIN_FLOW_MODEL_CONFIGS = {
16
16
  default: {},
17
17
  };
@@ -19,16 +19,71 @@ const FLOW_TIERS = ["lite", "flash", "full"];
19
19
  function isPlainObject(value) {
20
20
  return Boolean(value) && typeof value === "object" && !Array.isArray(value);
21
21
  }
22
+ // Fix P17: Cache settings in memory with async flush
23
+ const _settingsCache = new Map();
24
+ const _settingsFlushScheduled = new Set();
22
25
  function readSettingsJson(filePath) {
26
+ const cached = _settingsCache.get(filePath);
27
+ if (cached)
28
+ return cached;
23
29
  try {
24
30
  const content = fs.readFileSync(filePath, "utf-8");
25
- return JSON.parse(content);
31
+ const parsed = JSON.parse(content);
32
+ _settingsCache.set(filePath, parsed);
33
+ return parsed;
26
34
  }
27
35
  catch (e) {
28
36
  logWarn(`[pi-agent-flow] Failed to read settings JSON from ${filePath}: ${e}`);
29
37
  return null;
30
38
  }
31
39
  }
40
+ function scheduleSettingsFlush(filePath) {
41
+ if (!_settingsFlushScheduled.has(filePath)) {
42
+ _settingsFlushScheduled.add(filePath);
43
+ setImmediate(() => flushSettings(filePath));
44
+ }
45
+ }
46
+ async function flushSettings(filePath) {
47
+ _settingsFlushScheduled.delete(filePath);
48
+ const settings = _settingsCache.get(filePath);
49
+ if (!settings)
50
+ return;
51
+ try {
52
+ await atomicWriteJsonAsync(filePath, settings);
53
+ }
54
+ catch (err) {
55
+ logWarn(`[pi-agent-flow] Async flush failed for settings ${filePath}: ${err instanceof Error ? err.message : String(err)}`);
56
+ }
57
+ }
58
+ /** Synchronous flush of all cached settings entries. For tests or graceful shutdown. */
59
+ export function flushAllSettingsCachesSync() {
60
+ for (const filePath of Array.from(_settingsCache.keys())) {
61
+ const settings = _settingsCache.get(filePath);
62
+ if (!settings)
63
+ continue;
64
+ try {
65
+ atomicWriteFileSync(filePath, `${JSON.stringify(settings, null, 2)}\n`);
66
+ }
67
+ catch (err) {
68
+ logWarn(`[pi-agent-flow] Sync flush failed for settings ${filePath}: ${err instanceof Error ? err.message : String(err)}`);
69
+ }
70
+ }
71
+ }
72
+ /** Invalidate settings cache. For session_start or tests. */
73
+ export function invalidateSettingsCache(filePath) {
74
+ if (filePath) {
75
+ _settingsCache.delete(filePath);
76
+ _settingsFlushScheduled.delete(filePath);
77
+ }
78
+ else {
79
+ _settingsCache.clear();
80
+ _settingsFlushScheduled.clear();
81
+ }
82
+ }
83
+ /** Clear the in-memory settings cache. For tests. */
84
+ export function _clearSettingsCache() {
85
+ invalidateSettingsCache();
86
+ }
32
87
  export function getGlobalSettingsPath() {
33
88
  const agentDir = getAgentDir();
34
89
  const defaultPath = path.join(agentDir, "settings.json");
@@ -64,11 +119,8 @@ export function writeGlobalFlowMode(mode) {
64
119
  const filePath = getGlobalSettingsPath();
65
120
  let settings = {};
66
121
  if (fs.existsSync(filePath)) {
67
- let parsed;
68
- try {
69
- parsed = JSON.parse(fs.readFileSync(filePath, "utf-8"));
70
- }
71
- catch (error) {
122
+ const parsed = readSettingsJson(filePath);
123
+ if (!parsed) {
72
124
  throw new Error(`Cannot update flow mode because ${filePath} contains invalid JSON.`);
73
125
  }
74
126
  if (!isPlainObject(parsed)) {
@@ -78,7 +130,8 @@ export function writeGlobalFlowMode(mode) {
78
130
  }
79
131
  const previous = extractSelectedFlowModelConfigName(settings);
80
132
  settings.flowModelConfig = normalized;
81
- atomicWriteFileSync(filePath, `${JSON.stringify(settings, null, 2)}\n`);
133
+ _settingsCache.set(filePath, settings);
134
+ scheduleSettingsFlush(filePath);
82
135
  return {
83
136
  path: filePath,
84
137
  ...(previous !== undefined ? { previous } : {}),
@@ -295,11 +348,8 @@ export function writeFlowSetting(cwd, keyPath, value) {
295
348
  const filePath = getProjectSettingsPath(cwd);
296
349
  let settings = {};
297
350
  if (fs.existsSync(filePath)) {
298
- let parsed;
299
- try {
300
- parsed = JSON.parse(fs.readFileSync(filePath, "utf-8"));
301
- }
302
- catch (error) {
351
+ const parsed = readSettingsJson(filePath);
352
+ if (!parsed) {
303
353
  throw new Error(`Cannot update flow setting because ${filePath} contains invalid JSON.`);
304
354
  }
305
355
  if (!isPlainObject(parsed)) {
@@ -315,7 +365,8 @@ export function writeFlowSetting(cwd, keyPath, value) {
315
365
  // Reset the entire flowSettings object when keyPath is empty
316
366
  const previous = { ...flowSettings };
317
367
  settings.flowSettings = value;
318
- atomicWriteFileSync(filePath, `${JSON.stringify(settings, null, 2)}\n`);
368
+ _settingsCache.set(filePath, settings);
369
+ scheduleSettingsFlush(filePath);
319
370
  return { path: filePath, previous };
320
371
  }
321
372
  const keys = keyPath.split(".");
@@ -330,7 +381,8 @@ export function writeFlowSetting(cwd, keyPath, value) {
330
381
  const leafKey = keys[keys.length - 1];
331
382
  const previous = target[leafKey];
332
383
  target[leafKey] = value;
333
- atomicWriteFileSync(filePath, `${JSON.stringify(settings, null, 2)}\n`);
384
+ _settingsCache.set(filePath, settings);
385
+ scheduleSettingsFlush(filePath);
334
386
  return { path: filePath, previous };
335
387
  }
336
388
  export function selectFlowModelStrategy(configs, requestedName) {
@@ -469,11 +521,8 @@ export function writeFlowModelConfig(cwd, strategyName, tier, updates) {
469
521
  const filePath = getProjectSettingsPath(cwd);
470
522
  let settings = {};
471
523
  if (fs.existsSync(filePath)) {
472
- let parsed;
473
- try {
474
- parsed = JSON.parse(fs.readFileSync(filePath, "utf-8"));
475
- }
476
- catch (error) {
524
+ const parsed = readSettingsJson(filePath);
525
+ if (!parsed) {
477
526
  throw new Error(`Cannot update flow model config because ${filePath} contains invalid JSON.`);
478
527
  }
479
528
  if (!isPlainObject(parsed)) {
@@ -515,6 +564,7 @@ export function writeFlowModelConfig(cwd, strategyName, tier, updates) {
515
564
  if (Object.keys(strategy).length === 0) {
516
565
  delete configs[strategyName];
517
566
  }
518
- atomicWriteFileSync(filePath, `${JSON.stringify(settings, null, 2)}\n`);
567
+ _settingsCache.set(filePath, settings);
568
+ scheduleSettingsFlush(filePath);
519
569
  }
520
570
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,eAAe,EAAmB,MAAM,uBAAuB,CAAC;AAEzE,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,yBAAyB,IAAI,mCAAmC,EAAE,MAAM,aAAa,CAAC;AAC/F,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAqE5D,MAAM,0BAA0B,GAAqB;IACpD,OAAO,EAAE,EAAE;CACX,CAAC;AAEF,MAAM,UAAU,GAAe,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAEzD,SAAS,aAAa,CAAC,KAAc;IACpC,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAgB;IACzC,IAAI,CAAC;QACJ,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAA4B,CAAC;IACvD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,OAAO,CAAC,qDAAqD,QAAQ,KAAK,CAAC,EAAE,CAAC,CAAC;QAC/E,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAED,MAAM,UAAU,qBAAqB;IACpC,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IACzD,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;QACjE,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,QAAQ,CAAC;IAC9C,CAAC;IACD,OAAO,WAAW,CAAC;AACpB,CAAC;AAED,SAAS,sBAAsB,CAAC,GAAW;IAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAc;IACnD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAChC,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC;AAED,SAAS,kCAAkC,CAAC,QAAwC;IACnF,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAC;IAC/C,OAAO,qBAAqB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,GAAW;IACzD,OAAO,kCAAkC,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC1F,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC/C,MAAM,UAAU,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAC/C,IAAI,CAAC,UAAU,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM,QAAQ,GAAG,qBAAqB,EAAE,CAAC;IACzC,IAAI,QAAQ,GAA4B,EAAE,CAAC;IAE3C,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACJ,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QACzD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,mCAAmC,QAAQ,yBAAyB,CAAC,CAAC;QACvF,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,mCAAmC,QAAQ,8BAA8B,CAAC,CAAC;QAC5F,CAAC;QACD,QAAQ,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IAC1B,CAAC;IAED,MAAM,QAAQ,GAAG,kCAAkC,CAAC,QAAQ,CAAC,CAAC;IAC9D,QAAQ,CAAC,eAAe,GAAG,UAAU,CAAC;IAEtC,mBAAmB,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAExE,OAAO;QACN,IAAI,EAAE,QAAQ;QACd,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/C,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAC7B,KAAc,EACd,WAAmB,EACnB,YAAoB,EACpB,IAAc;IAEd,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,CACN,oCAAoC,WAAW,qBAAqB,YAAY,IAAI,IAAI,0CAA0C,CAClI,CAAC;QACF,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,CACN,sDAAsD,WAAW,qBAAqB,YAAY,IAAI,IAAI,sBAAsB,CAChI,CAAC;YACF,SAAS;QACV,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,CAAC,UAAU;YAAE,SAAS;QAC1B,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,uBAAuB,CAAC,QAAwC,EAAE,WAAmB;IAC7F,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IACxC,MAAM,UAAU,GAAG,QAAQ,CAAC,gBAAgB,CAAC;IAC7C,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACxC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC;QAChC,OAAO,CACN,oCAAoC,WAAW,8DAA8D,CAC7G,CAAC;QACF,OAAO,EAAE,CAAC;IACX,CAAC;IAED,MAAM,MAAM,GAAqB,EAAE,CAAC;IACpC,KAAK,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,OAAO,CACN,mDAAmD,WAAW,oBAAoB,CAClF,CAAC;YACF,SAAS;QACV,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;YACjC,OAAO,CACN,oCAAoC,WAAW,qBAAqB,IAAI,kDAAkD,CAC1H,CAAC;YACF,SAAS;QACV,CAAC;QAED,MAAM,QAAQ,GAAsB,EAAE,CAAC;QACvC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,OAAO,KAAK,SAAS;gBAAE,SAAS;YACpC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7B,OAAO,CACN,oCAAoC,WAAW,qBAAqB,IAAI,IAAI,IAAI,uDAAuD,CACvI,CAAC;gBACF,SAAS;YACV,CAAC;YAED,MAAM,UAAU,GAAwB,EAAE,CAAC;YAC3C,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACzC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACvC,IAAI,OAAO;oBAAE,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;YAC3C,CAAC;iBAAM,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1C,OAAO,CACN,oCAAoC,WAAW,qBAAqB,IAAI,IAAI,IAAI,8BAA8B,CAC9G,CAAC;YACH,CAAC;YAED,MAAM,QAAQ,GAAG,qBAAqB,CAAC,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAClF,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC5B,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAChC,CAAC;YAED,IAAI,UAAU,CAAC,OAAO,KAAK,SAAS,IAAI,UAAU,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3E,QAAQ,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;YAC7B,CAAC;QACF,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;IACzB,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAwC;IACpE,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1E,OAAO,EAAE,CAAC;IACX,CAAC;IACD,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;IAC3C,IAAI,CAAC,YAAY,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QACtF,OAAO,EAAE,CAAC;IACX,CAAC;IACD,MAAM,GAAG,GAAG,YAAuC,CAAC;IACpD,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,IAAI,OAAO,GAAG,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QAC3C,MAAM,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC;IACxC,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;QAC/C,MAAM,CAAC,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,CAAC;IAChD,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,cAAc,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,GAAG,CAAC,cAAc,IAAI,CAAC,EAAE,CAAC;QACnH,MAAM,CAAC,cAAc,GAAG,GAAG,CAAC,cAAc,CAAC;IAC5C,CAAC;IAED,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACnD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;IAChC,CAAC;IAED,iCAAiC;IACjC,IAAI,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjC,MAAM,QAAQ,GAA6B,EAAE,CAAC;QAC9C,IAAI,OAAO,GAAG,CAAC,QAAQ,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC/C,QAAQ,CAAC,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC;QACzC,CAAC;QACD,IAAI,OAAO,GAAG,CAAC,QAAQ,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;YACnD,QAAQ,CAAC,YAAY,GAAG,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC;QACnD,CAAC;QACD,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAED,kCAAkC;IAClC,IAAI,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAClC,MAAM,SAAS,GAA8B,EAAE,CAAC;QAChD,IAAI,OAAO,GAAG,CAAC,SAAS,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAChD,SAAS,CAAC,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC;QAC3C,CAAC;QACD,IAAI,OAAO,GAAG,CAAC,SAAS,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC/C,SAAS,CAAC,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC;QACzC,CAAC;QACD,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;IAC9B,CAAC;IAED,gCAAgC;IAChC,IAAI,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,MAAM,OAAO,GAA4B,EAAE,CAAC;QAC5C,IAAI,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC9C,OAAO,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC;QACvC,CAAC;QACD,IAAI,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;YACtH,OAAO,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC;QACvC,CAAC;QACD,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,+BAA+B;IAC/B,IAAI,OAAO,GAAG,CAAC,aAAa,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,aAAa,KAAK,MAAM,IAAI,GAAG,CAAC,aAAa,KAAK,MAAM,CAAC,EAAE,CAAC;QAC7G,MAAM,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC;IAC1C,CAAC;IAED,6BAA6B;IAC7B,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAyB,EAAE,CAAC;QACtC,IAAI,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC3C,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;QACjC,CAAC;QACD,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,2BAA2B;IAC3B,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACxC,MAAM,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;IAClC,CAAC;IAED,8BAA8B;IAC9B,IAAI,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,KAAK,GAA0B,EAAE,CAAC;QACxC,IAAI,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC1C,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;QAC/B,CAAC;QACD,IAAI,OAAO,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAC9C,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;QACvC,CAAC;QACD,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,oCAAoC;IACpC,IACC,OAAO,GAAG,CAAC,kBAAkB,KAAK,QAAQ;QAC1C,CAAC,GAAG,CAAC,kBAAkB,KAAK,MAAM,IAAI,GAAG,CAAC,kBAAkB,KAAK,OAAO,IAAI,GAAG,CAAC,kBAAkB,KAAK,QAAQ,IAAI,GAAG,CAAC,kBAAkB,KAAK,YAAY,CAAC,EAC1J,CAAC;QACF,MAAM,CAAC,kBAAkB,GAAG,GAAG,CAAC,kBAAkB,CAAC;IACpD,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,yBAAyB,CACjC,IAAqC,EACrC,QAAyC;IAEzC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IACzC,OAAO;QACN,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,GAAG,CAAC,IAAI,EAAE,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,GAAG,CAAC,QAAQ,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,GAAG,CAAC,QAAQ,EAAE,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5E,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAChC,IAAmC,EACnC,QAAuC;IAEvC,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,yBAAyB,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QACzE,IAAI,MAAM;YAAE,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;IACnC,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,qBAAqB,CAAC,GAAG,OAA2B;IAC5D,MAAM,MAAM,GAAqB,EAAE,CAAC;IACpC,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC;QACjC,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1D,MAAM,CAAC,IAAI,CAAC,GAAG,wBAAwB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;QACjE,CAAC;IACF,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC3C,MAAM,cAAc,GAAG,gBAAgB,CAAC,qBAAqB,EAAE,CAAC,CAAC;IACjE,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,cAAc,CAAC,CAAC;IAE/D,MAAM,eAAe,GAAG,gBAAgB,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC;IACtE,MAAM,mBAAmB,GAAG,mBAAmB,CAAC,eAAe,CAAC,CAAC;IAEjE,OAAO;QACN,GAAG,kBAAkB;QACrB,GAAG,mBAAmB;KACtB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAW,EAAE,OAAe,EAAE,KAAc;IAC5E,MAAM,QAAQ,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAC7C,IAAI,QAAQ,GAA4B,EAAE,CAAC;IAE3C,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACJ,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QACzD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,sCAAsC,QAAQ,yBAAyB,CAAC,CAAC;QAC1F,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,sCAAsC,QAAQ,8BAA8B,CAAC,CAAC;QAC/F,CAAC;QACD,QAAQ,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IAC1B,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,YAAY,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QACrE,QAAQ,CAAC,YAAY,GAAG,EAAE,CAAC;IAC5B,CAAC;IACD,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAuC,CAAC;IAEtE,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,6DAA6D;QAC7D,MAAM,QAAQ,GAAG,EAAE,GAAG,YAAY,EAAE,CAAC;QACrC,QAAQ,CAAC,YAAY,GAAG,KAAK,CAAC;QAC9B,mBAAmB,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACxE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrC,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,MAAM,GAA4B,YAAY,CAAC;IACnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7C,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;QACD,MAAM,GAAG,MAAM,CAAC,CAAC,CAA4B,CAAC;IAC/C,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IACjC,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;IAExB,mBAAmB,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAExE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,uBAAuB,CACtC,OAAyB,EACzB,aAAsB;IAEtB,MAAM,mBAAmB,GAAG,qBAAqB,CAAC,aAAa,CAAC,IAAI,SAAS,CAAC;IAC9E,MAAM,QAAQ,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC9C,IAAI,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IACjE,CAAC;IAED,IAAI,mBAAmB,KAAK,SAAS,EAAE,CAAC;QACvC,OAAO,CACN,sCAAsC,mBAAmB,yCAAyC,CAClG,CAAC;IACH,CAAC;IACD,OAAO;QACN,YAAY,EAAE,SAAS;QACvB,OAAO;QACP,QAAQ,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;KAC/B,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAW;IAC/C,MAAM,cAAc,GAAG,gBAAgB,CAAC,qBAAqB,EAAE,CAAC,CAAC;IACjE,MAAM,aAAa,GAAG,uBAAuB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IAExE,MAAM,eAAe,GAAG,gBAAgB,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC;IACtE,MAAM,cAAc,GAAG,uBAAuB,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;IAE3E,MAAM,OAAO,GAAG,qBAAqB,CAAC,0BAA0B,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;IACjG,MAAM,aAAa,GAClB,kCAAkC,CAAC,eAAe,CAAC;QACnD,kCAAkC,CAAC,cAAc,CAAC;QAClD,SAAS,CAAC;IAEX,OAAO,uBAAuB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,IAM1C;IACA,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,MAAM,GAAG,GAAG,CAAC,KAAyB,EAAE,EAAE;QACzC,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAChC,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;YAAE,OAAO;QAClD,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACvB,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACpB,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpB,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;IAC/C,CAAC;IAED,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;QAC1B,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC1B,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;IAC/C,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACzB,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,QAAQ,IAAI,EAAE;QAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IAC3D,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAExB,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,QAAgB,EAAE,QAA2B;IACpF,MAAM,KAAK,GAAe,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACpD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC5C,MAAM,WAAW,GAAG,MAAM,EAAE,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QACnE,IAAI,KAAa,CAAC;QAClB,IAAI,UAAU,EAAE,CAAC;YAChB,KAAK,GAAG,MAAO,CAAC,OAAQ,CAAC;QAC1B,CAAC;aAAM,IAAI,WAAW,EAAE,CAAC;YACxB,KAAK,GAAG,aAAa,MAAO,CAAC,QAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACrD,CAAC;aAAM,CAAC;YACP,KAAK,GAAG,WAAW,CAAC;QACrB,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,SAAS,QAAQ,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,KAAc;IACvD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,yEAAyE;IACzE,MAAM,UAAU,GAAG,mCAAmC,CAAC,KAAK,CAAC,CAAC;IAC9D,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,UAAU,CAAC;IAChD,mFAAmF;IACnF,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAC9B,SAAS;IACT,IAAI,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAAE,OAAO,OAAO,CAAC;IACpD,IAAI,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAAE,OAAO,OAAO,CAAC;IACpD,IAAI,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC;QAAE,OAAO,OAAO,CAAC;IAChD,IAAI,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAAE,OAAO,OAAO,CAAC;IAClD,IAAI,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAAE,OAAO,OAAO,CAAC;IACjD,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,OAAO,CAAC;IACzC,SAAS;IACT,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,OAAO,CAAC;IACzC,IAAI,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;QAAE,OAAO,OAAO,CAAC;IAC9C,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IACrE,IAAI,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC;QAAE,OAAO,MAAM,CAAC;IAC/C,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC;IACzD,SAAS;IACT,IAAI,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAAE,OAAO,SAAS,CAAC;IACnD,IAAI,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAAE,OAAO,SAAS,CAAC;IACrD,IAAI,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAAE,OAAO,MAAM,CAAC;IAChD,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAC;IAC3C,WAAW;IACX,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,MAAM,CAAC;IAC1C,QAAQ;IACR,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,OAAO,CAAC;IACtE,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,OAAO,CAAC;IACtE,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IACtC,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,oBAAoB,CACnC,GAAW,EACX,YAAoB,EACpB,IAAc,EACd,OAAgE;IAEhE,MAAM,QAAQ,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAC7C,IAAI,QAAQ,GAA4B,EAAE,CAAC;IAE3C,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACJ,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QACzD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,2CAA2C,QAAQ,yBAAyB,CAAC,CAAC;QAC/F,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,2CAA2C,QAAQ,8BAA8B,CAAC,CAAC;QACpG,CAAC;QACD,QAAQ,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IAC1B,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,gBAAgB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC7E,QAAQ,CAAC,gBAAgB,GAAG,EAAE,CAAC;IAChC,CAAC;IACD,MAAM,OAAO,GAAG,QAAQ,CAAC,gBAA2C,CAAC;IAErE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;QACrE,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;IAC5B,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAA4B,CAAC;IAElE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACvD,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;IACrB,CAAC;IACD,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAA4B,CAAC;IAE7D,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACnC,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC9B,OAAO,UAAU,CAAC,OAAO,CAAC;QAC3B,CAAC;aAAM,CAAC;YACP,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QACtC,CAAC;IACF,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACpC,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC/B,OAAO,UAAU,CAAC,QAAQ,CAAC;QAC5B,CAAC;aAAM,CAAC;YACP,UAAU,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACxC,CAAC;IACF,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1C,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxC,OAAO,OAAO,CAAC,YAAY,CAAC,CAAC;IAC9B,CAAC;IAED,mBAAmB,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACzE,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Adaptive thinking level mapping.
3
+ *
4
+ * Maps unsupported / provider-specific thinking levels to the closest
5
+ * valid value for child pi processes. Falls back to a static nearest-
6
+ * neighbour map when provider-specific model info is unavailable.
7
+ */
8
+ /** Canonical thinking levels accepted by the majority of providers. */
9
+ export declare const CANONICAL_THINKING_LEVELS: readonly ["low", "medium", "high"];
10
+ export type CanonicalThinkingLevel = (typeof CANONICAL_THINKING_LEVELS)[number];
11
+ /**
12
+ * Map a thinking level string to a canonical value.
13
+ *
14
+ * @param level Raw thinking level (e.g. "minimal").
15
+ * @param modelThinkingLevelMap Optional provider-specific map from the
16
+ * model definition (e.g. models.json).
17
+ * @returns Canonical level, or `null` when the value is unmappable.
18
+ */
19
+ export declare function mapThinkingLevel(level: string, modelThinkingLevelMap?: Record<string, string>): CanonicalThinkingLevel | null;
20
+ //# sourceMappingURL=thinking-level-map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thinking-level-map.d.ts","sourceRoot":"","sources":["../../src/config/thinking-level-map.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,uEAAuE;AACvE,eAAO,MAAM,yBAAyB,oCAAqC,CAAC;AAE5E,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;AA0BhF;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC/B,KAAK,EAAE,MAAM,EACb,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5C,sBAAsB,GAAG,IAAI,CAiC/B"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Adaptive thinking level mapping.
3
+ *
4
+ * Maps unsupported / provider-specific thinking levels to the closest
5
+ * valid value for child pi processes. Falls back to a static nearest-
6
+ * neighbour map when provider-specific model info is unavailable.
7
+ */
8
+ import { logWarn } from "./log.js";
9
+ /** Canonical thinking levels accepted by the majority of providers. */
10
+ export const CANONICAL_THINKING_LEVELS = ["low", "medium", "high"];
11
+ /**
12
+ * Static nearest-neighbour mapping for known non-canonical values.
13
+ */
14
+ const STATIC_THINKING_LEVEL_MAP = {
15
+ // Mappings to "low"
16
+ none: "low",
17
+ off: "low",
18
+ minimal: "low",
19
+ light: "low",
20
+ small: "low",
21
+ basic: "low",
22
+ // Mappings to "medium"
23
+ moderate: "medium",
24
+ standard: "medium",
25
+ normal: "medium",
26
+ // Mappings to "high"
27
+ heavy: "high",
28
+ max: "high",
29
+ maximum: "high",
30
+ deep: "high",
31
+ aggressive: "high",
32
+ intense: "high",
33
+ };
34
+ /**
35
+ * Map a thinking level string to a canonical value.
36
+ *
37
+ * @param level Raw thinking level (e.g. "minimal").
38
+ * @param modelThinkingLevelMap Optional provider-specific map from the
39
+ * model definition (e.g. models.json).
40
+ * @returns Canonical level, or `null` when the value is unmappable.
41
+ */
42
+ export function mapThinkingLevel(level, modelThinkingLevelMap) {
43
+ const normalized = level.trim().toLowerCase();
44
+ // Already canonical — pass through unchanged.
45
+ if (CANONICAL_THINKING_LEVELS.includes(normalized)) {
46
+ return normalized;
47
+ }
48
+ // Provider-aware mapping (e.g. models.json thinkingLevelMap).
49
+ if (modelThinkingLevelMap) {
50
+ const providerMapped = modelThinkingLevelMap[normalized];
51
+ if (providerMapped) {
52
+ const canonical = providerMapped.trim().toLowerCase();
53
+ if (CANONICAL_THINKING_LEVELS.includes(canonical)) {
54
+ return canonical;
55
+ }
56
+ }
57
+ }
58
+ // Static nearest-neighbour fallback.
59
+ const staticMapped = STATIC_THINKING_LEVEL_MAP[normalized];
60
+ if (staticMapped) {
61
+ logWarn(`[pi-agent-flow] Thinking level "${level}" is not supported. Mapped to nearest neighbour "${staticMapped}".`);
62
+ return staticMapped;
63
+ }
64
+ // Unmappable — return null so the caller can omit the flag.
65
+ logWarn(`[pi-agent-flow] Thinking level "${level}" is not supported and has no known mapping. Omitting --thinking.`);
66
+ return null;
67
+ }
68
+ //# sourceMappingURL=thinking-level-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thinking-level-map.js","sourceRoot":"","sources":["../../src/config/thinking-level-map.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,uEAAuE;AACvE,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAU,CAAC;AAI5E;;GAEG;AACH,MAAM,yBAAyB,GAA2C;IACzE,oBAAoB;IACpB,IAAI,EAAE,KAAK;IACX,GAAG,EAAE,KAAK;IACV,OAAO,EAAE,KAAK;IACd,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,uBAAuB;IACvB,QAAQ,EAAE,QAAQ;IAClB,QAAQ,EAAE,QAAQ;IAClB,MAAM,EAAE,QAAQ;IAChB,qBAAqB;IACrB,KAAK,EAAE,MAAM;IACb,GAAG,EAAE,MAAM;IACX,OAAO,EAAE,MAAM;IACf,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,MAAM;CACf,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAC/B,KAAa,EACb,qBAA8C;IAE9C,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAE9C,8CAA8C;IAC9C,IAAI,yBAAyB,CAAC,QAAQ,CAAC,UAAoC,CAAC,EAAE,CAAC;QAC9E,OAAO,UAAoC,CAAC;IAC7C,CAAC;IAED,8DAA8D;IAC9D,IAAI,qBAAqB,EAAE,CAAC;QAC3B,MAAM,cAAc,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;QACzD,IAAI,cAAc,EAAE,CAAC;YACpB,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACtD,IAAI,yBAAyB,CAAC,QAAQ,CAAC,SAAmC,CAAC,EAAE,CAAC;gBAC7E,OAAO,SAAmC,CAAC;YAC5C,CAAC;QACF,CAAC;IACF,CAAC;IAED,qCAAqC;IACrC,MAAM,YAAY,GAAG,yBAAyB,CAAC,UAAU,CAAC,CAAC;IAC3D,IAAI,YAAY,EAAE,CAAC;QAClB,OAAO,CACN,mCAAmC,KAAK,oDAAoD,YAAY,IAAI,CAC5G,CAAC;QACF,OAAO,YAAY,CAAC;IACrB,CAAC;IAED,4DAA4D;IAC5D,OAAO,CACN,mCAAmC,KAAK,mEAAmE,CAC3G,CAAC;IACF,OAAO,IAAI,CAAC;AACb,CAAC"}
@@ -5,7 +5,7 @@
5
5
  * orientation) and preserves all other conversation verbatim in
6
6
  * chronological order.
7
7
  */
8
- import type { FlowTier, ContextProfile } from "../flow/agents.js";
8
+ import type { FlowTier, ContextProfile, ToolResultCategory } from "../flow/agents.js";
9
9
  export type CompressionLevel = "none" | "light" | "medium" | "aggressive";
10
10
  export interface CompressionStats {
11
11
  preBytes: number;
@@ -42,7 +42,15 @@ export interface BuildCore2SnapshotOptions {
42
42
  }
43
43
  /** Rough token estimate for a snapshot string (1 token ≈ 4 chars). */
44
44
  export declare function estimateTotalContextTokens(snapshotJsonl: string): number;
45
+ /** Classify a tool/toolResult message into a category for profile-aware compression. */
46
+ export declare function classifyToolResult(entry: unknown): ToolResultCategory;
45
47
  export declare function buildCore2Snapshot(sessionManager: SessionSnapshotSource, options?: BuildCore2SnapshotOptions): string | null;
48
+ export interface CompressionResult {
49
+ entries: unknown[];
50
+ droppedCount: number;
51
+ syntheticSummary?: string;
52
+ }
53
+ export declare function applyContextCompression(entries: unknown[], level: CompressionLevel | undefined, profile?: ContextProfile): CompressionResult;
46
54
  export interface SharedContext {
47
55
  messageCount: number;
48
56
  userMessageCount: number;
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../src/core2/snapshot.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAsB,MAAM,mBAAmB,CAAC;AAGtF,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,YAAY,CAAC;AAE1E,MAAM,WAAW,gBAAgB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,gBAAgB,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC3C,cAAc,EAAE,qBAAqB,EACrC,OAAO,CAAC,EAAE,yBAAyB,EACnC,gBAAgB,CAAC,EAAE,MAAM,GACvB;IAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,gBAAgB,CAAA;CAAE,CAiGvD;AAED,MAAM,WAAW,qBAAqB;IACrC,SAAS,EAAE,MAAM,OAAO,CAAC;IACzB,SAAS,EAAE,MAAM,OAAO,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,yBAAyB;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,kBAAkB,CAAC,EAAE,cAAc,CAAC;IACpC,mFAAmF;IACnF,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACpC;AAqBD,sEAAsE;AACtE,wBAAgB,0BAA0B,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAExE;AAyHD,wBAAgB,kBAAkB,CACjC,cAAc,EAAE,qBAAqB,EACrC,OAAO,CAAC,EAAE,yBAAyB,GACjC,MAAM,GAAG,IAAI,CA8Ff;AA8lCD,MAAM,WAAW,aAAa;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,aAAa,GAAG,SAAS,CAsG1F"}
1
+ {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../src/core2/snapshot.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAGtF,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,YAAY,CAAC;AAE1E,MAAM,WAAW,gBAAgB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,gBAAgB,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC3C,cAAc,EAAE,qBAAqB,EACrC,OAAO,CAAC,EAAE,yBAAyB,EACnC,gBAAgB,CAAC,EAAE,MAAM,GACvB;IAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,gBAAgB,CAAA;CAAE,CAiGvD;AAED,MAAM,WAAW,qBAAqB;IACrC,SAAS,EAAE,MAAM,OAAO,CAAC;IACzB,SAAS,EAAE,MAAM,OAAO,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,yBAAyB;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,kBAAkB,CAAC,EAAE,cAAc,CAAC;IACpC,mFAAmF;IACnF,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACpC;AAqBD,sEAAsE;AACtE,wBAAgB,0BAA0B,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAExE;AAgBD,wFAAwF;AACxF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,CAuDrE;AA0BD,wBAAgB,kBAAkB,CACjC,cAAc,EAAE,qBAAqB,EACrC,OAAO,CAAC,EAAE,yBAAyB,GACjC,MAAM,GAAG,IAAI,CA8Ff;AAmxBD,MAAM,WAAW,iBAAiB;IACjC,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,uBAAuB,CACtC,OAAO,EAAE,OAAO,EAAE,EAClB,KAAK,EAAE,gBAAgB,GAAG,SAAS,EACnC,OAAO,CAAC,EAAE,cAAc,GACtB,iBAAiB,CA+GnB;AAqND,MAAM,WAAW,aAAa;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,aAAa,GAAG,SAAS,CAsG1F"}
@@ -140,7 +140,7 @@ function extractMessageText(msg) {
140
140
  return "";
141
141
  }
142
142
  /** Classify a tool/toolResult message into a category for profile-aware compression. */
143
- function classifyToolResult(entry) {
143
+ export function classifyToolResult(entry) {
144
144
  if (!entry || typeof entry !== "object")
145
145
  return "other";
146
146
  const e = entry;
@@ -151,16 +151,9 @@ function classifyToolResult(entry) {
151
151
  return "other";
152
152
  const text = extractMessageText(msg);
153
153
  const toolName = typeof msg.toolName === "string" ? msg.toolName : typeof msg.name === "string" ? msg.name : "";
154
+ // Fix P16: Replace multiple includes() with regex-based matching
154
155
  // Error / stack-trace heuristics
155
- if (text.includes("Error:") ||
156
- text.includes("error:") ||
157
- text.includes("FAIL") ||
158
- text.includes("failed") ||
159
- text.includes("Exception") ||
160
- text.includes("exception") ||
161
- text.includes("AssertionError") ||
162
- text.includes("TypeError") ||
163
- text.includes("ReferenceError")) {
156
+ if (/Error:|error:|FAIL|failed|Exception|exception|AssertionError|TypeError|ReferenceError/.test(text)) {
164
157
  // Stack trace detection: lines starting with " at " or " at "
165
158
  const stackPattern = /^\s+at\s+\S+/gm;
166
159
  if (stackPattern.test(text))
@@ -168,39 +161,27 @@ function classifyToolResult(entry) {
168
161
  return "error";
169
162
  }
170
163
  // Test failure
171
- if (text.includes("Test failed") ||
172
- text.includes("test failure") ||
173
- text.includes("Assertion failed") ||
174
- text.includes("expected") && text.includes("received") ||
175
- text.includes("✕") ||
176
- text.includes("FAIL") && text.includes("test")) {
164
+ if (/Test failed|test failure|Assertion failed|✕/.test(text) ||
165
+ (text.includes("expected") && text.includes("received")) ||
166
+ (text.includes("FAIL") && text.includes("test"))) {
177
167
  return "testFailure";
178
168
  }
179
169
  // Git diff
180
- if (text.includes("diff --git") ||
181
- text.includes("--- a/") ||
182
- text.includes("+++ b/") ||
183
- text.includes("@@ -")) {
170
+ if (/diff --git|--- a\/|\+\+\+ b\/|@@ -/.test(text)) {
184
171
  return "gitDiff";
185
172
  }
186
173
  // Batch file operations (read / write / edit)
187
- if (text.includes("--- read:") ||
188
- text.includes("--- write:") ||
189
- text.includes("--- edit:") ||
190
- text.includes("--- delete:") ||
174
+ if (/--- read:|--- write:|--- edit:|--- delete:/.test(text) ||
191
175
  (text.includes("✔") && (text.includes("read") || text.includes("write") || text.includes("edit")))) {
192
176
  return "fileContent";
193
177
  }
194
178
  // Grep / find / ls results
195
- if (text.includes("--- rg:") ||
196
- text.includes("--- find:") ||
197
- text.includes("--- ls:") ||
198
- text.includes("grep results") ||
179
+ if (/--- rg:|--- find:|--- ls:|grep results/.test(text) ||
199
180
  /^[^\n]+:\d+:.+/m.test(text)) {
200
181
  return "grepResult";
201
182
  }
202
183
  // Bash success
203
- if (toolName === "bash" || text.includes("--- bash [") || text.includes("--- [") && text.includes("exit")) {
184
+ if (toolName === "bash" || /--- bash \[/.test(text) || (text.includes("--- [") && text.includes("exit"))) {
204
185
  return "bashSuccess";
205
186
  }
206
187
  return "other";
@@ -294,10 +275,10 @@ export function buildCore2Snapshot(sessionManager, options) {
294
275
  const compressedResult = applyContextCompression(finalEntries, options?.compressionLevel, options?.compressionProfile);
295
276
  const entriesWithMap = insertContextMap(compressedResult.entries);
296
277
  for (const entry of entriesWithMap) {
297
- const line = JSON.stringify(entry);
298
- // Strip batch read/write/edit bodies from tool result messages
299
- const processed = maybeStripBatchBodies(line, options?.compressionLevel);
300
- lines.push(processed);
278
+ // Fix P1: Eliminate double JSON.stringify by operating on objects before serialization
279
+ const processedEntry = stripBatchBodiesFromEntry(entry, options?.compressionLevel);
280
+ const line = JSON.stringify(processedEntry);
281
+ lines.push(line);
301
282
  }
302
283
  const snapshot = `${lines.join("\n")}\n`;
303
284
  if (options?.compressionStats) {
@@ -1090,7 +1071,7 @@ function generateSyntheticSummary(droppedEntries) {
1090
1071
  }
1091
1072
  return parts.join("\n");
1092
1073
  }
1093
- function applyContextCompression(entries, level, profile) {
1074
+ export function applyContextCompression(entries, level, profile) {
1094
1075
  if (!level || level === "none") {
1095
1076
  return { entries, droppedCount: 0 };
1096
1077
  }
@@ -1133,30 +1114,47 @@ function applyContextCompression(entries, level, profile) {
1133
1114
  }
1134
1115
  const headers = entries.slice(0, headerEnd);
1135
1116
  const rest = entries.slice(headerEnd);
1136
- const scored = rest.map((entry, idx) => ({
1137
- entry,
1138
- originalIndex: headerEnd + idx,
1139
- score: scoreMessageForProfile(entry, profile),
1140
- isMessage: entry && typeof entry === "object" && entry.type === "message",
1141
- }));
1142
- // Separate messages from non-messages (e.g. compaction events, etc.)
1143
- const messageScored = scored.filter((s) => s.isMessage);
1144
- const nonMessageScored = scored.filter((s) => !s.isMessage);
1117
+ // Fix P7: Reduce applyContextCompression from 5-6 passes to 2 passes
1118
+ // Pass 1: Score all entries in a single pass, collecting message tuples separately
1119
+ const messageTuples = [];
1120
+ const restLength = rest.length;
1121
+ for (let i = 0; i < restLength; i++) {
1122
+ const entry = rest[i];
1123
+ const isMessage = entry && typeof entry === "object" && entry.type === "message";
1124
+ if (isMessage) {
1125
+ messageTuples.push({
1126
+ entry,
1127
+ originalIndex: headerEnd + i,
1128
+ score: scoreMessageForProfile(entry, profile),
1129
+ });
1130
+ }
1131
+ }
1145
1132
  // Sort messages by score desc, then originalIndex desc (prefer newer)
1146
- messageScored.sort((a, b) => {
1133
+ messageTuples.sort((a, b) => {
1147
1134
  if (b.score !== a.score)
1148
1135
  return b.score - a.score;
1149
1136
  return b.originalIndex - a.originalIndex;
1150
1137
  });
1151
- // Keep top N messages
1152
- const keptMessages = messageScored.slice(0, targetMessageCount);
1153
- const droppedMessages = messageScored.slice(targetMessageCount);
1154
- // Combine kept messages with all non-messages, sort by original index
1155
- const combined = [...nonMessageScored, ...keptMessages];
1156
- combined.sort((a, b) => a.originalIndex - b.originalIndex);
1157
- const droppedEntries = droppedMessages.map((d) => d.entry);
1138
+ // Take top N messages; build a Set of their original indices for O(1) lookup
1139
+ const keptMessageIndices = new Set();
1140
+ for (let i = 0; i < targetMessageCount && i < messageTuples.length; i++) {
1141
+ keptMessageIndices.add(messageTuples[i].originalIndex);
1142
+ }
1143
+ // Pass 2: Single pass to reconstruct in original order, keeping all non-messages and top-N messages
1144
+ let result = [...headers];
1145
+ const droppedEntries = [];
1146
+ for (let i = 0; i < restLength; i++) {
1147
+ const entry = rest[i];
1148
+ const originalIndex = headerEnd + i;
1149
+ const isMessage = entry && typeof entry === "object" && entry.type === "message";
1150
+ if (!isMessage || keptMessageIndices.has(originalIndex)) {
1151
+ result.push(entry);
1152
+ }
1153
+ else {
1154
+ droppedEntries.push(entry);
1155
+ }
1156
+ }
1158
1157
  const syntheticSummaryText = generateSyntheticSummary(droppedEntries);
1159
- let result = [...headers, ...combined.map((c) => c.entry)];
1160
1158
  if (level === "medium" || level === "aggressive") {
1161
1159
  result = stripOldSystemMessages(result, profile);
1162
1160
  }
@@ -1173,7 +1171,7 @@ function applyContextCompression(entries, level, profile) {
1173
1171
  }
1174
1172
  return {
1175
1173
  entries: result,
1176
- droppedCount: droppedMessages.length,
1174
+ droppedCount: droppedEntries.length,
1177
1175
  syntheticSummary: syntheticSummaryText,
1178
1176
  };
1179
1177
  }
@@ -1290,26 +1288,16 @@ function stripBatchBodies(text, level) {
1290
1288
  }
1291
1289
  return out.join("\n");
1292
1290
  }
1293
- /** If the JSONL line is a tool/toolResult message, strip batch bodies from its text. */
1294
- function maybeStripBatchBodies(line, level) {
1295
- // Fast path: skip non-tool messages without parsing JSON.
1296
- if (!line.includes('"role":"tool"') && !line.includes('"role":"toolResult"')) {
1297
- return line;
1298
- }
1299
- let entry;
1300
- try {
1301
- entry = JSON.parse(line);
1302
- }
1303
- catch (e) {
1304
- logWarn(`[pi-agent-flow] Failed to parse JSONL line in snapshot: ${e}`);
1305
- return line;
1306
- }
1291
+ /** If the entry is a tool/toolResult message, strip batch bodies from its text.
1292
+ * Fix P1: Operates on the parsed object directly to eliminate double JSON.stringify/parse.
1293
+ */
1294
+ function stripBatchBodiesFromEntry(entry, level) {
1307
1295
  if (entry.type !== "message" || !entry.message) {
1308
- return line;
1296
+ return entry;
1309
1297
  }
1310
1298
  const message = entry.message;
1311
1299
  if (message.role !== "tool" && message.role !== "toolResult") {
1312
- return line;
1300
+ return entry;
1313
1301
  }
1314
1302
  // Extract text content (string or first text part in array)
1315
1303
  let text;
@@ -1329,15 +1317,15 @@ function maybeStripBatchBodies(line, level) {
1329
1317
  }
1330
1318
  // Fast path: no batch section headers or directive/hint markers present
1331
1319
  if (!text || (!text.includes("\n--- ") && !text.includes("[Directive:") && !text.includes("[Hint:"))) {
1332
- return line;
1320
+ return entry;
1333
1321
  }
1334
1322
  const stripped = stripBatchBodies(text, level);
1335
1323
  const cleaned = stripDirectives(stripped);
1336
1324
  if (cleaned === text) {
1337
- return line;
1325
+ return entry;
1338
1326
  }
1339
1327
  if (typeof message.content === "string") {
1340
- entry = {
1328
+ return {
1341
1329
  ...entry,
1342
1330
  message: { ...message, content: cleaned },
1343
1331
  };
@@ -1349,12 +1337,12 @@ function maybeStripBatchBodies(line, level) {
1349
1337
  }
1350
1338
  return part;
1351
1339
  });
1352
- entry = {
1340
+ return {
1353
1341
  ...entry,
1354
1342
  message: { ...message, content: newContent },
1355
1343
  };
1356
1344
  }
1357
- return JSON.stringify(entry);
1345
+ return entry;
1358
1346
  }
1359
1347
  /**
1360
1348
  * Filter out the active tool call from assistant messages in snapshot.