@chendpoc/pi-memory 0.2.0 → 0.2.2

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 (55) hide show
  1. package/README.md +352 -63
  2. package/assets/pi-memory-logo.png +0 -0
  3. package/dist/config/index.d.ts +1 -0
  4. package/dist/config/index.d.ts.map +1 -1
  5. package/dist/config/index.js +1 -0
  6. package/dist/config/index.js.map +1 -1
  7. package/dist/config/preflight.d.ts +8 -0
  8. package/dist/config/preflight.d.ts.map +1 -0
  9. package/dist/config/preflight.js +22 -0
  10. package/dist/config/preflight.js.map +1 -0
  11. package/dist/constants/env.d.ts +3 -0
  12. package/dist/constants/env.d.ts.map +1 -1
  13. package/dist/constants/env.js +3 -0
  14. package/dist/constants/env.js.map +1 -1
  15. package/dist/constants/preflight.d.ts +7 -0
  16. package/dist/constants/preflight.d.ts.map +1 -1
  17. package/dist/constants/preflight.js +7 -0
  18. package/dist/constants/preflight.js.map +1 -1
  19. package/dist/constants/timing.d.ts +2 -0
  20. package/dist/constants/timing.d.ts.map +1 -1
  21. package/dist/constants/timing.js +2 -0
  22. package/dist/constants/timing.js.map +1 -1
  23. package/dist/pi-extension.d.ts.map +1 -1
  24. package/dist/pi-extension.js +21 -2
  25. package/dist/pi-extension.js.map +1 -1
  26. package/dist/preflight/episodic.d.ts +7 -1
  27. package/dist/preflight/episodic.d.ts.map +1 -1
  28. package/dist/preflight/episodic.js +20 -4
  29. package/dist/preflight/episodic.js.map +1 -1
  30. package/dist/preflight/intentCache.d.ts +13 -0
  31. package/dist/preflight/intentCache.d.ts.map +1 -0
  32. package/dist/preflight/intentCache.js +37 -0
  33. package/dist/preflight/intentCache.js.map +1 -0
  34. package/dist/preflight/queryIntent.d.ts +14 -5
  35. package/dist/preflight/queryIntent.d.ts.map +1 -1
  36. package/dist/preflight/queryIntent.js +27 -11
  37. package/dist/preflight/queryIntent.js.map +1 -1
  38. package/dist/sidecar/warmup.d.ts +6 -0
  39. package/dist/sidecar/warmup.d.ts.map +1 -0
  40. package/dist/sidecar/warmup.js +39 -0
  41. package/dist/sidecar/warmup.js.map +1 -0
  42. package/doc/README-zh.md +394 -0
  43. package/doc/ROADMAP-zh.md +52 -0
  44. package/doc/ROADMAP.md +52 -0
  45. package/package.json +5 -1
  46. package/src/config/index.ts +1 -0
  47. package/src/config/preflight.ts +34 -0
  48. package/src/constants/env.ts +3 -0
  49. package/src/constants/preflight.ts +9 -0
  50. package/src/constants/timing.ts +2 -0
  51. package/src/pi-extension.ts +22 -2
  52. package/src/preflight/episodic.ts +28 -4
  53. package/src/preflight/intentCache.ts +44 -0
  54. package/src/preflight/queryIntent.ts +46 -12
  55. package/src/sidecar/warmup.ts +50 -0
@@ -1 +1 @@
1
- {"version":3,"file":"timing.js","sourceRoot":"","sources":["../../src/constants/timing.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAE9C,2BAA2B;AAC3B,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAC9C,MAAM,CAAC,MAAM,6BAA6B,GAAG,OAAO,CAAC;AAErD,2EAA2E;AAC3E,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,CAAC;AAC/C,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAC3C,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,CAAC;AAC7C,8EAA8E;AAC9E,MAAM,CAAC,MAAM,gCAAgC,GAAG,GAAG,CAAC;AAEpD,kDAAkD;AAClD,MAAM,CAAC,MAAM,4BAA4B,GAAG,2BAA2B,CAAC;AAExE,+CAA+C;AAC/C,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAE3C,qDAAqD;AACrD,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,CAAC;AAE/C,uDAAuD;AACvD,MAAM,CAAC,MAAM,+BAA+B,GAAG,KAAK,CAAC;AAErD,sEAAsE;AACtE,MAAM,CAAC,MAAM,qCAAqC,GAAG,UAAU,CAAC;AAEhE,2CAA2C;AAC3C,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC;AACvC,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAEzC,iCAAiC;AACjC,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC;AAC9C,MAAM,CAAC,MAAM,2BAA2B,GAAG,MAAM,CAAC;AAClD,MAAM,CAAC,MAAM,2BAA2B,GAAG,KAAK,CAAC;AAEjD,mCAAmC;AACnC,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,CAAC;AAC7C,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC;AAC9C,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAC;AAEjD,oCAAoC;AACpC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AACrC,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAC9C,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAC"}
1
+ {"version":3,"file":"timing.js","sourceRoot":"","sources":["../../src/constants/timing.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAE9C,2BAA2B;AAC3B,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAC9C,MAAM,CAAC,MAAM,6BAA6B,GAAG,OAAO,CAAC;AAErD,2EAA2E;AAC3E,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,CAAC;AAC/C,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAC3C,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,CAAC;AAC7C,8EAA8E;AAC9E,MAAM,CAAC,MAAM,gCAAgC,GAAG,GAAG,CAAC;AAEpD,kDAAkD;AAClD,MAAM,CAAC,MAAM,4BAA4B,GAAG,2BAA2B,CAAC;AAExE,+CAA+C;AAC/C,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAE3C,qDAAqD;AACrD,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,CAAC;AAE/C,uDAAuD;AACvD,MAAM,CAAC,MAAM,+BAA+B,GAAG,KAAK,CAAC;AAErD,sEAAsE;AACtE,MAAM,CAAC,MAAM,qCAAqC,GAAG,UAAU,CAAC;AAEhE,2CAA2C;AAC3C,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC;AACvC,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAEzC,iCAAiC;AACjC,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC;AAC9C,MAAM,CAAC,MAAM,2BAA2B,GAAG,MAAM,CAAC;AAClD,MAAM,CAAC,MAAM,2BAA2B,GAAG,KAAK,CAAC;AAEjD,mCAAmC;AACnC,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,CAAC;AAC7C,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC;AAC9C,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAC;AACjD,oFAAoF;AACpF,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAAG,CAAC;AAEnD,oCAAoC;AACpC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AACrC,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAC9C,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pi-extension.d.ts","sourceRoot":"","sources":["../src/pi-extension.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,iCAAiC,CAAC;AA8GtF,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CAgKhE;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
1
+ {"version":3,"file":"pi-extension.d.ts","sourceRoot":"","sources":["../src/pi-extension.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,iCAAiC,CAAC;AA0HtF,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CAwKhE;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
@@ -1,10 +1,12 @@
1
1
  import findLastIndex from "lodash/findLastIndex.js";
2
2
  import { createLlmClient } from "./adapters/llm/index.js";
3
3
  import { loadEnv, readPiMemoryEnv, resolveMemoryAgentDir } from "./config/index.js";
4
+ import { readPreflightRuntimeConfig } from "./config/preflight.js";
4
5
  import { createConsolidateScheduler, startConsolidateInterval } from "./consolidate/scheduler.js";
5
6
  import { registerCommands } from "./commands/index.js";
6
7
  import { registerCompactHandlers } from "./compact/register.js";
7
8
  import { runEpisodicPreflight } from "./preflight/episodic.js";
9
+ import { queryIntentCache } from "./preflight/intentCache.js";
8
10
  import { mergePrivateMemoryBlocks, renderMemoryCapPrivateMemory } from "./preflight/render.js";
9
11
  import { isSubagentSession } from "./preflight/session.js";
10
12
  import { injectPrivateMemoryContext } from "./preflight/strip.js";
@@ -12,6 +14,7 @@ import { enqueueShutdownMetadata, readParentSession } from "./shutdown/enqueue.j
12
14
  import { resolveSidecarPaths } from "./sidecar/paths.js";
13
15
  import { formatTimestamp } from "./utils/time.js";
14
16
  import { createReindexScheduler } from "./sidecar/reindexBridge.js";
17
+ import { warmSidecar } from "./sidecar/warmup.js";
15
18
  import { ensureSidecarRunning, stopSidecar } from "./sidecar/sidecarManager.js";
16
19
  import { MemoryStore } from "./store/memoryStore.js";
17
20
  loadEnv();
@@ -25,6 +28,7 @@ let sessionMemoryCap = null;
25
28
  let turnPreflight = null;
26
29
  let isFirstTurn = false;
27
30
  let isSubagent = false;
31
+ let sessionId = null;
28
32
  function getUserMessageText(message) {
29
33
  if (message.role !== "user")
30
34
  return null;
@@ -57,6 +61,14 @@ async function bootstrapSidecar() {
57
61
  socketPath: sidecarPaths.socketPath,
58
62
  dbPath: sidecarPaths.dbPath,
59
63
  });
64
+ if (readPreflightRuntimeConfig().warmSidecar) {
65
+ try {
66
+ await warmSidecar(sidecarPaths.socketPath);
67
+ }
68
+ catch {
69
+ // warm is best-effort
70
+ }
71
+ }
60
72
  reindexScheduler ??= createReindexScheduler({
61
73
  sidecar: sidecarPaths,
62
74
  agentDir: memoryStore.agentDir,
@@ -97,6 +109,7 @@ export default function piMemoryExtension(pi) {
97
109
  isSubagent = isSubagentSession(ctx);
98
110
  isFirstTurn = true;
99
111
  turnPreflight = null;
112
+ sessionId = ctx.sessionManager.getSessionFile() ?? null;
100
113
  await refreshLlm(ctx, pi);
101
114
  try {
102
115
  await bootstrapSidecar();
@@ -118,6 +131,9 @@ export default function piMemoryExtension(pi) {
118
131
  enqueuedAt: formatTimestamp(),
119
132
  }).catch(() => { });
120
133
  }
134
+ if (sessionId) {
135
+ queryIntentCache.clearSession(sessionId);
136
+ }
121
137
  stopConsolidateInterval?.();
122
138
  stopConsolidateInterval = null;
123
139
  consolidateScheduler = null;
@@ -129,6 +145,7 @@ export default function piMemoryExtension(pi) {
129
145
  turnPreflight = null;
130
146
  isFirstTurn = false;
131
147
  isSubagent = false;
148
+ sessionId = null;
132
149
  try {
133
150
  await stopSidecar();
134
151
  }
@@ -166,7 +183,8 @@ export default function piMemoryExtension(pi) {
166
183
  agentDir: memoryStore.agentDir,
167
184
  store: memoryStore,
168
185
  llm: llmClient,
169
- force: forceHelper,
186
+ forceEpisodic: forceHelper,
187
+ sessionId: sessionId ?? undefined,
170
188
  budgetMs: env.preflightBudgetMs,
171
189
  signal: ctx.signal,
172
190
  onProgress: workingUi?.update,
@@ -208,7 +226,8 @@ export default function piMemoryExtension(pi) {
208
226
  agentDir: memoryStore.agentDir,
209
227
  store: memoryStore,
210
228
  llm: llmClient,
211
- force: userTurnCount === 1,
229
+ forceEpisodic: userTurnCount === 1,
230
+ sessionId: sessionId ?? undefined,
212
231
  budgetMs: env.preflightBudgetMs,
213
232
  signal: ctx.signal,
214
233
  });
@@ -1 +1 @@
1
- {"version":3,"file":"pi-extension.js","sourceRoot":"","sources":["../src/pi-extension.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pi-extension.js","sourceRoot":"","sources":["../src/pi-extension.ts"],"names":[],"mappings":"AAEA,OAAO,aAAa,MAAM,yBAAyB,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAkB,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AACpF,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,wBAAwB,EAA6B,MAAM,4BAA4B,CAAC;AAC7H,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AAC/F,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAyB,MAAM,4BAA4B,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAE,CAAC;AAOV,IAAI,WAAW,GAAuB,IAAI,CAAC;AAC3C,IAAI,YAAY,GAAkD,IAAI,CAAC;AACvE,IAAI,gBAAgB,GAA4B,IAAI,CAAC;AACrD,IAAI,oBAAoB,GAAgC,IAAI,CAAC;AAC7D,IAAI,uBAAuB,GAAwB,IAAI,CAAC;AACxD,IAAI,SAAS,GAAqB,IAAI,CAAC;AACvC,IAAI,gBAAgB,GAAkB,IAAI,CAAC;AAC3C,IAAI,aAAa,GAAyB,IAAI,CAAC;AAC/C,IAAI,WAAW,GAAG,KAAK,CAAC;AACxB,IAAI,UAAU,GAAG,KAAK,CAAC;AACvB,IAAI,SAAS,GAAkB,IAAI,CAAC;AAEpC,SAAS,kBAAkB,CAAC,OAAqB;IAC/C,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACzC,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC;IAChE,OAAO,OAAO,CAAC,OAAO;SACnB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC;SACxC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;SAC1B,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAqB,EAAE,IAAY;IAC7D,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,OAAO,CAAC;IAC5C,OAAO,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,IAAI,EAAkB,CAAC;AACvD,CAAC;AAED,SAAS,wBAAwB,CAAC,QAAwB;IACxD,OAAO,aAAa,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;AACvE,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,GAAqB,EAAE,EAAgB;IAC/D,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;IAC9B,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC;IAC9E,SAAS,GAAG,MAAM,eAAe,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,KAAK,UAAU,gBAAgB;IAC7B,IAAI,CAAC,WAAW,IAAI,CAAC,YAAY;QAAE,OAAO;IAE1C,MAAM,WAAW,CAAC,iBAAiB,EAAE,CAAC;IACtC,MAAM,oBAAoB,CAAC;QACzB,UAAU,EAAE,YAAY,CAAC,UAAU;QACnC,MAAM,EAAE,YAAY,CAAC,MAAM;KAC5B,CAAC,CAAC;IAEH,IAAI,0BAA0B,EAAE,CAAC,WAAW,EAAE,CAAC;QAC7C,IAAI,CAAC;YACH,MAAM,WAAW,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAC7C,CAAC;QAAC,MAAM,CAAC;YACP,sBAAsB;QACxB,CAAC;IACH,CAAC;IAED,gBAAgB,KAAK,sBAAsB,CAAC;QAC1C,OAAO,EAAE,YAAY;QACrB,QAAQ,EAAE,WAAW,CAAC,QAAQ;QAC9B,YAAY,EAAE,GAAG,EAAE,CAAC,WAAY,CAAC,cAAc,EAAE;QACjD,UAAU,EAAE,eAAe,EAAE,CAAC,iBAAiB;KAChD,CAAC,CAAC;IAEH,WAAW,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,gBAAgB,EAAE,QAAQ,EAAE,CAAC,CAAC;IAEhE,MAAM,gBAAgB,CAAC,MAAM,EAAE,CAAC;AAClC,CAAC;AAED,SAAS,oBAAoB;IAC3B,IAAI,CAAC,WAAW;QAAE,OAAO;IAEzB,oBAAoB,GAAG,0BAA0B,CAAC;QAChD,QAAQ,EAAE,GAAG,EAAE,CAAC,WAAW;QAC3B,WAAW,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,QAAQ,IAAI,IAAI;QAChD,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS;QACvB,UAAU,EAAE,eAAe,EAAE,CAAC,qBAAqB;QACnD,UAAU,EAAE,uBAAuB;KACpC,CAAC,CAAC;IAEH,WAAW,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,CAAC,CAAC;IAEvE,uBAAuB,EAAE,EAAE,CAAC;IAC5B,uBAAuB,GAAG,wBAAwB,CAAC,GAAG,EAAE;QACtD,KAAK,oBAAoB,EAAE,MAAM,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,KAAK,oBAAoB,CAAC,MAAM,EAAE,CAAC;AACrC,CAAC;AAED,KAAK,UAAU,uBAAuB;IACpC,IAAI,CAAC,WAAW;QAAE,OAAO;IACzB,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,eAAe,EAAE,CAAC;IACrD,gBAAgB,GAAG,4BAA4B,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;AACpE,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EAAgB;IACxD,EAAE,CAAC,EAAE,CAAC,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;QAC3C,MAAM,QAAQ,GAAG,qBAAqB,EAAE,CAAC;QACzC,WAAW,GAAG,IAAI,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC5C,YAAY,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC7C,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACpC,WAAW,GAAG,IAAI,CAAC;QACnB,aAAa,GAAG,IAAI,CAAC;QACrB,SAAS,GAAG,GAAG,CAAC,cAAc,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC;QAExD,MAAM,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAE1B,IAAI,CAAC;YACH,MAAM,gBAAgB,EAAE,CAAC;YACzB,oBAAoB,EAAE,CAAC;YACvB,MAAM,uBAAuB,EAAE,CAAC;QAClC,CAAC;QAAC,MAAM,CAAC;YACP,sDAAsD;QACxD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,EAAE,CAAC,kBAAkB,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAC7C,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,MAAM,GAAG,GAAG,CAAC,cAAc,CAAC,SAAS,EAA+C,CAAC;YAC3F,KAAK,uBAAuB,CAAC,WAAW,CAAC,QAAQ,EAAE;gBACjD,WAAW,EAAE,GAAG,CAAC,cAAc,CAAC,cAAc,EAAE,IAAI,EAAE;gBACtD,aAAa,EAAE,iBAAiB,CAAC,MAAM,CAAC;gBACxC,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,UAAU;gBACV,UAAU,EAAE,eAAe,EAAE;aAC9B,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACrB,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACd,gBAAgB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC3C,CAAC;QAED,uBAAuB,EAAE,EAAE,CAAC;QAC5B,uBAAuB,GAAG,IAAI,CAAC;QAC/B,oBAAoB,GAAG,IAAI,CAAC;QAC5B,gBAAgB,GAAG,IAAI,CAAC;QACxB,WAAW,GAAG,IAAI,CAAC;QACnB,YAAY,GAAG,IAAI,CAAC;QACpB,SAAS,GAAG,IAAI,CAAC;QACjB,gBAAgB,GAAG,IAAI,CAAC;QACxB,aAAa,GAAG,IAAI,CAAC;QACrB,WAAW,GAAG,KAAK,CAAC;QACpB,UAAU,GAAG,KAAK,CAAC;QACnB,SAAS,GAAG,IAAI,CAAC;QAEjB,IAAI,CAAC;YACH,MAAM,WAAW,EAAE,CAAC;QACtB,CAAC;QAAC,MAAM,CAAC;YACP,yBAAyB;QAC3B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,EAAE,CAAC,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;QAC1C,MAAM,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,EAAE,CAAC,oBAAoB,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAC/C,IAAI,CAAC,WAAW,IAAI,CAAC,YAAY;YAAE,OAAO;QAE1C,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACtD,IAAI,CAAC,WAAW;YAAE,OAAO;QAEzB,MAAM,WAAW,GAAG,WAAW,CAAC;QAChC,WAAW,GAAG,KAAK,CAAC;QAEpB,IAAI,UAAU,EAAE,CAAC;YACf,aAAa,GAAG,EAAE,WAAW,EAAE,cAAc,EAAE,gBAAgB,IAAI,EAAE,EAAE,CAAC;YACxE,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK;YACzB,CAAC,CAAC;gBACE,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC;gBACpD,MAAM,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC;gBACtD,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,iBAAiB,EAAE;aACxC;YACH,CAAC,CAAC,IAAI,CAAC;QAET,IAAI,CAAC;YACH,SAAS,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACrC,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,WAAW,EAAE;gBACrD,UAAU,EAAE,YAAY,CAAC,UAAU;gBACnC,QAAQ,EAAE,WAAW,CAAC,QAAQ;gBAC9B,KAAK,EAAE,WAAW;gBAClB,GAAG,EAAE,SAAS;gBACd,aAAa,EAAE,WAAW;gBAC1B,SAAS,EAAE,SAAS,IAAI,SAAS;gBACjC,QAAQ,EAAE,GAAG,CAAC,iBAAiB;gBAC/B,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,UAAU,EAAE,SAAS,EAAE,MAAM;aAC9B,CAAC,CAAC;YAEH,MAAM,eAAe,GAAG,MAAM,EAAE,cAAc,IAAI,IAAI,CAAC;YACvD,MAAM,QAAQ,GAAG,wBAAwB,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;YAC7E,aAAa,GAAG,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,IAAI,EAAE,EAAE,CAAC;QAClE,CAAC;gBAAS,CAAC;YACT,SAAS,EAAE,KAAK,EAAE,CAAC;QACrB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACpC,IAAI,CAAC,WAAW,IAAI,CAAC,YAAY;YAAE,OAAO;QAE1C,MAAM,SAAS,GAAG,wBAAwB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC3D,IAAI,SAAS,GAAG,CAAC;YAAE,OAAO;QAE1B,MAAM,UAAU,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAE,CAAC,CAAC;QAClE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE;YAAE,OAAO;QAEhC,IAAI,cAAkC,CAAC;QACvC,IAAI,WAAmB,CAAC;QAExB,IAAI,aAAa,IAAI,aAAa,CAAC,WAAW,KAAK,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;YACrE,cAAc,GAAG,aAAa,CAAC,cAAc,IAAI,SAAS,CAAC;YAC3D,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;YACzF,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;YAE9B,IAAI,UAAU,EAAE,CAAC;gBACf,cAAc,GAAG,gBAAgB,IAAI,SAAS,CAAC;gBAC/C,WAAW,GAAG,UAAU,CAAC;gBACzB,aAAa,GAAG,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,IAAI,EAAE,EAAE,CAAC;YACpF,CAAC;iBAAM,CAAC;gBACN,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAAC,UAAU,EAAE;oBACvD,UAAU,EAAE,YAAY,CAAC,UAAU;oBACnC,QAAQ,EAAE,WAAW,CAAC,QAAQ;oBAC9B,KAAK,EAAE,WAAW;oBAClB,GAAG,EAAE,SAAS;oBACd,aAAa,EAAE,aAAa,KAAK,CAAC;oBAClC,SAAS,EAAE,SAAS,IAAI,SAAS;oBACjC,QAAQ,EAAE,GAAG,CAAC,iBAAiB;oBAC/B,MAAM,EAAE,GAAG,CAAC,MAAM;iBACnB,CAAC,CAAC;gBACH,cAAc,GAAG,wBAAwB,CACvC,gBAAgB,EAChB,SAAS,EAAE,cAAc,CAC1B,IAAI,SAAS,CAAC;gBACf,WAAW,GAAG,UAAU,CAAC;gBACzB,aAAa,GAAG,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,IAAI,EAAE,EAAE,CAAC;YACpF,CAAC;QACH,CAAC;QAED,IAAI,CAAC,cAAc;YAAE,OAAO;QAE5B,MAAM,YAAY,GAAG,0BAA0B,CAAC,UAAU,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;QACzF,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;QACrC,QAAQ,CAAC,SAAS,CAAC,GAAG,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAE,EAAE,YAAY,CAAC,CAAC;QAC7E,OAAO,EAAE,QAAQ,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,gBAAgB,CAAC,EAAE,EAAE;QACnB,cAAc,EAAE,GAAG,EAAE,CAAC,WAAW;QACjC,YAAY,EAAE,uBAAuB;QACrC,WAAW,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,QAAQ,IAAI,qBAAqB,EAAE;KACpE,CAAC,CAAC;IAEH,uBAAuB,CAAC,EAAE,EAAE;QAC1B,cAAc,EAAE,GAAG,EAAE,CAAC,WAAW;QACjC,YAAY,EAAE,GAAG,EAAE,CAAC,SAAS;QAC7B,oBAAoB,EAAE,uBAAuB;KAC9C,CAAC,CAAC;AACL,CAAC;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
@@ -5,7 +5,13 @@ export type EpisodicPreflightOptions = {
5
5
  agentDir: string;
6
6
  store: MemoryStore;
7
7
  llm?: LlmClient | null;
8
+ /** Force episodic gate (first turn); does not force helper LLM. */
9
+ forceEpisodic?: boolean;
10
+ /** Force helper LLM intent extraction. */
11
+ forceIntent?: boolean;
12
+ /** @deprecated Use forceEpisodic */
8
13
  force?: boolean;
14
+ sessionId?: string;
9
15
  budgetMs?: number;
10
16
  signal?: AbortSignal;
11
17
  onProgress?: (message: string) => void;
@@ -14,7 +20,7 @@ export type EpisodicPreflightResult = {
14
20
  privateContext: string;
15
21
  };
16
22
  /**
17
- * Fail-silent episodic preflight: QueryIntent (Zod) → buildRetrievalQuery → sidecar.query → fallback.
23
+ * Fail-silent episodic preflight: QueryIntent (optional) → buildRetrievalQuery → sidecar.query → fallback.
18
24
  */
19
25
  export declare function runEpisodicPreflight(userInput: string, options: EpisodicPreflightOptions): Promise<EpisodicPreflightResult | null>;
20
26
  //# sourceMappingURL=episodic.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"episodic.d.ts","sourceRoot":"","sources":["../../src/preflight/episodic.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAG1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAa3D,MAAM,MAAM,wBAAwB,GAAG;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,WAAW,CAAC;IACnB,GAAG,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAsCF;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAoFzC"}
1
+ {"version":3,"file":"episodic.d.ts","sourceRoot":"","sources":["../../src/preflight/episodic.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAG1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAa3D,MAAM,MAAM,wBAAwB,GAAG;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,WAAW,CAAC;IACnB,GAAG,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACvB,mEAAmE;IACnE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,0CAA0C;IAC1C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oCAAoC;IACpC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAsCF;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAqGzC"}
@@ -1,3 +1,4 @@
1
+ import { readPreflightRuntimeConfig } from "../config/preflight.js";
1
2
  import { resolvePreflightBudget } from "../config/preflightBudget.js";
2
3
  import { debugMemory } from "../utils/debugLog.js";
3
4
  import { nowMs, remainingMs } from "../utils/time.js";
@@ -31,12 +32,18 @@ async function withTimeout(promise, timeoutMs, signal) {
31
32
  });
32
33
  }
33
34
  /**
34
- * Fail-silent episodic preflight: QueryIntent (Zod) → buildRetrievalQuery → sidecar.query → fallback.
35
+ * Fail-silent episodic preflight: QueryIntent (optional) → buildRetrievalQuery → sidecar.query → fallback.
35
36
  */
36
37
  export async function runEpisodicPreflight(userInput, options) {
37
38
  const startedAt = nowMs();
39
+ const forceEpisodic = options.forceEpisodic ?? options.force ?? false;
40
+ const runtime = readPreflightRuntimeConfig();
38
41
  try {
39
- if (!shouldRunEpisodicPreflight(userInput, options.force)) {
42
+ if (await options.store.isEmpty()) {
43
+ debugMemory("preflight", "skipped", { reason: "empty" });
44
+ return null;
45
+ }
46
+ if (!shouldRunEpisodicPreflight(userInput, forceEpisodic)) {
40
47
  debugMemory("preflight", "skipped", { reason: "gate" });
41
48
  return null;
42
49
  }
@@ -46,11 +53,18 @@ export async function runEpisodicPreflight(userInput, options) {
46
53
  const intentStartedAt = nowMs();
47
54
  const intentBudget = Math.min(budget.intentMs, remainingMs(deadline));
48
55
  let intent;
56
+ let intentSkipped = false;
57
+ let intentCacheHit = false;
49
58
  try {
50
- intent = await withTimeout(extractQueryIntent(userInput, options.llm ?? null, {
51
- force: options.force,
59
+ const extracted = await withTimeout(extractQueryIntent(userInput, options.llm ?? null, {
60
+ forceIntent: options.forceIntent,
52
61
  signal: options.signal,
62
+ sessionId: options.sessionId,
63
+ intentCache: runtime.intentCache,
53
64
  }), intentBudget, options.signal);
65
+ intent = extracted.intent;
66
+ intentSkipped = extracted.skipped;
67
+ intentCacheHit = extracted.cacheHit;
54
68
  }
55
69
  catch {
56
70
  intent = { raw_query: userInput.trim() };
@@ -91,6 +105,8 @@ export async function runEpisodicPreflight(userInput, options) {
91
105
  }
92
106
  debugMemory("preflight", "recall", {
93
107
  intent_ms: intentMs,
108
+ intent_skipped: intentSkipped,
109
+ intent_cache_hit: intentCacheHit,
94
110
  sidecar_ms: sidecarMs,
95
111
  total_ms: nowMs() - startedAt,
96
112
  cache_hit: cacheHit,
@@ -1 +1 @@
1
- {"version":3,"file":"episodic.js","sourceRoot":"","sources":["../../src/preflight/episodic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"episodic.js","sourceRoot":"","sources":["../../src/preflight/episodic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { QueryIntent } from "./queryIntent.js";
2
+ declare class QueryIntentCache {
3
+ private readonly lru;
4
+ get(sessionId: string | undefined, userInput: string): QueryIntent | null;
5
+ set(sessionId: string | undefined, userInput: string, intent: QueryIntent): void;
6
+ clearSession(sessionId: string): void;
7
+ /** @internal test hook */
8
+ resetForTests(): void;
9
+ }
10
+ export declare const queryIntentCache: QueryIntentCache;
11
+ export declare function resetQueryIntentCacheForTests(): void;
12
+ export {};
13
+ //# sourceMappingURL=intentCache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intentCache.d.ts","sourceRoot":"","sources":["../../src/preflight/intentCache.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAUpD,cAAM,gBAAgB;IACpB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAwE;IAE5F,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAKzE,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI;IAKhF,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAOrC,0BAA0B;IAC1B,aAAa,IAAI,IAAI;CAGtB;AAED,eAAO,MAAM,gBAAgB,kBAAyB,CAAC;AAEvD,wBAAgB,6BAA6B,IAAI,IAAI,CAEpD"}
@@ -0,0 +1,37 @@
1
+ import { LRUCache } from "lru-cache";
2
+ import { INTENT_CACHE_MAX_ENTRIES } from "../constants/preflight.js";
3
+ function normalizeInput(input) {
4
+ return input.trim().replace(/\s+/g, " ").toLowerCase();
5
+ }
6
+ function cacheKey(sessionId, userInput) {
7
+ return `${sessionId}\0${normalizeInput(userInput)}`;
8
+ }
9
+ class QueryIntentCache {
10
+ lru = new LRUCache({ max: INTENT_CACHE_MAX_ENTRIES });
11
+ get(sessionId, userInput) {
12
+ if (!sessionId)
13
+ return null;
14
+ return this.lru.get(cacheKey(sessionId, userInput)) ?? null;
15
+ }
16
+ set(sessionId, userInput, intent) {
17
+ if (!sessionId)
18
+ return;
19
+ this.lru.set(cacheKey(sessionId, userInput), intent);
20
+ }
21
+ clearSession(sessionId) {
22
+ const prefix = `${sessionId}\0`;
23
+ for (const key of this.lru.keys()) {
24
+ if (key.startsWith(prefix))
25
+ this.lru.delete(key);
26
+ }
27
+ }
28
+ /** @internal test hook */
29
+ resetForTests() {
30
+ this.lru.clear();
31
+ }
32
+ }
33
+ export const queryIntentCache = new QueryIntentCache();
34
+ export function resetQueryIntentCacheForTests() {
35
+ queryIntentCache.resetForTests();
36
+ }
37
+ //# sourceMappingURL=intentCache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intentCache.js","sourceRoot":"","sources":["../../src/preflight/intentCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAGrE,SAAS,cAAc,CAAC,KAAa;IACnC,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;AACzD,CAAC;AAED,SAAS,QAAQ,CAAC,SAAiB,EAAE,SAAiB;IACpD,OAAO,GAAG,SAAS,KAAK,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;AACtD,CAAC;AAED,MAAM,gBAAgB;IACH,GAAG,GAAG,IAAI,QAAQ,CAAsB,EAAE,GAAG,EAAE,wBAAwB,EAAE,CAAC,CAAC;IAE5F,GAAG,CAAC,SAA6B,EAAE,SAAiB;QAClD,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC;IAC9D,CAAC;IAED,GAAG,CAAC,SAA6B,EAAE,SAAiB,EAAE,MAAmB;QACvE,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC;IAED,YAAY,CAAC,SAAiB;QAC5B,MAAM,MAAM,GAAG,GAAG,SAAS,IAAI,CAAC;QAChC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;YAClC,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC;gBAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,0BAA0B;IAC1B,aAAa;QACX,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;CACF;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAC;AAEvD,MAAM,UAAU,6BAA6B;IAC3C,gBAAgB,CAAC,aAAa,EAAE,CAAC;AACnC,CAAC"}
@@ -9,12 +9,21 @@ export declare const QueryIntentSchema: Type.TObject<{
9
9
  }>;
10
10
  export type QueryIntent = Static<typeof QueryIntentSchema>;
11
11
  export declare function parseQueryIntent(value: unknown): QueryIntent;
12
- export declare function shouldRunEpisodicPreflight(query: string, force?: boolean): boolean;
13
- export declare function shouldExtractIntent(query: string, force?: boolean): boolean;
12
+ export declare function shouldRunEpisodicPreflight(query: string, forceEpisodic?: boolean): boolean;
13
+ export declare function shouldExtractIntent(query: string, forceIntent?: boolean): boolean;
14
14
  /** Pure function: concatenate intent fields into a sidecar query string. */
15
15
  export declare function buildRetrievalQuery(intent: QueryIntent, userInput: string): string;
16
- export declare function extractQueryIntent(userInput: string, llm: LlmClient | null, options?: {
17
- force?: boolean;
16
+ export type ExtractQueryIntentOptions = {
17
+ forceIntent?: boolean;
18
18
  signal?: AbortSignal;
19
- }): Promise<QueryIntent>;
19
+ sessionId?: string;
20
+ intentCache?: boolean;
21
+ intentRetries?: number;
22
+ };
23
+ export type ExtractQueryIntentResult = {
24
+ intent: QueryIntent;
25
+ skipped: boolean;
26
+ cacheHit: boolean;
27
+ };
28
+ export declare function extractQueryIntent(userInput: string, llm: LlmClient | null, options?: ExtractQueryIntentOptions): Promise<ExtractQueryIntentResult>;
20
29
  //# sourceMappingURL=queryIntent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"queryIntent.d.ts","sourceRoot":"","sources":["../../src/preflight/queryIntent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAC;AAQ5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE1D,yFAAyF;AACzF,eAAO,MAAM,iBAAiB;;;;;EAQ7B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE3D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAK5D;AAQD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,OAAO,CAOhF;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,OAAO,CAIzE;AAED,4EAA4E;AAC5E,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAOlF;AAWD,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,SAAS,GAAG,IAAI,EACrB,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAO,GACtD,OAAO,CAAC,WAAW,CAAC,CAgBtB"}
1
+ {"version":3,"file":"queryIntent.d.ts","sourceRoot":"","sources":["../../src/preflight/queryIntent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAC;AAU5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAG1D,yFAAyF;AACzF,eAAO,MAAM,iBAAiB;;;;;EAQ7B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE3D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAK5D;AAQD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,UAAQ,GAAG,OAAO,CAOxF;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,UAAQ,GAAG,OAAO,CAI/E;AAED,4EAA4E;AAC5E,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAOlF;AAWD,MAAM,MAAM,yBAAyB,GAAG;IACtC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,SAAS,GAAG,IAAI,EACrB,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,wBAAwB,CAAC,CAiCnC"}
@@ -1,7 +1,9 @@
1
1
  import compact from "lodash/compact.js";
2
2
  import { Type } from "typebox";
3
3
  import { Value } from "typebox/value";
4
- import { MEMORY_CUE_RE, PREFLIGHT_EXTRACT_MIN_LENGTH, PREFLIGHT_SKIP_MIN_LENGTH, } from "../constants/preflight.js";
4
+ import { readPreflightRuntimeConfig } from "../config/preflight.js";
5
+ import { DEFAULT_INTENT_RETRIES, MEMORY_CUE_RE, PREFLIGHT_EXTRACT_MIN_LENGTH, PREFLIGHT_SKIP_MIN_LENGTH, } from "../constants/preflight.js";
6
+ import { queryIntentCache } from "./intentCache.js";
5
7
  /** Structured intent from helper LLM — simpler than crafting a search query directly. */
6
8
  export const QueryIntentSchema = Type.Object({
7
9
  raw_query: Type.Optional(Type.String()),
@@ -20,11 +22,11 @@ Return ONLY valid JSON with optional keys: raw_query, what, who, where.
20
22
  Use raw_query when the whole message should be searched verbatim.
21
23
  User message:
22
24
  `;
23
- export function shouldRunEpisodicPreflight(query, force = false) {
25
+ export function shouldRunEpisodicPreflight(query, forceEpisodic = false) {
24
26
  const trimmed = query.trim();
25
27
  if (!trimmed)
26
28
  return false;
27
- if (force)
29
+ if (forceEpisodic)
28
30
  return true;
29
31
  if (trimmed.startsWith("/"))
30
32
  return false;
@@ -32,8 +34,8 @@ export function shouldRunEpisodicPreflight(query, force = false) {
32
34
  return false;
33
35
  return MEMORY_CUE_RE.test(trimmed) || trimmed.length >= PREFLIGHT_EXTRACT_MIN_LENGTH;
34
36
  }
35
- export function shouldExtractIntent(query, force = false) {
36
- if (force)
37
+ export function shouldExtractIntent(query, forceIntent = false) {
38
+ if (forceIntent)
37
39
  return true;
38
40
  if (query.trim().length >= PREFLIGHT_EXTRACT_MIN_LENGTH)
39
41
  return true;
@@ -58,18 +60,32 @@ function extractJsonObject(text) {
58
60
  }
59
61
  export async function extractQueryIntent(userInput, llm, options = {}) {
60
62
  const fallback = { raw_query: userInput.trim() };
61
- if (!llm || !shouldExtractIntent(userInput, options.force)) {
62
- return fallback;
63
+ const runtime = readPreflightRuntimeConfig();
64
+ const useCache = options.intentCache ?? runtime.intentCache;
65
+ if (useCache && options.sessionId) {
66
+ const cached = queryIntentCache.get(options.sessionId, userInput);
67
+ if (cached) {
68
+ return { intent: cached, skipped: false, cacheHit: true };
69
+ }
70
+ }
71
+ if (!llm || !shouldExtractIntent(userInput, options.forceIntent)) {
72
+ return { intent: fallback, skipped: true, cacheHit: false };
63
73
  }
64
- for (let attempt = 0; attempt < 2; attempt++) {
74
+ const retries = options.intentRetries ?? runtime.intentRetries ?? DEFAULT_INTENT_RETRIES;
75
+ const maxAttempts = Math.max(1, retries + 1);
76
+ for (let attempt = 0; attempt < maxAttempts; attempt++) {
65
77
  try {
66
78
  const raw = await llm.complete(`${INTENT_PROMPT}${userInput}`, options.signal);
67
- return parseQueryIntent(extractJsonObject(raw));
79
+ const intent = parseQueryIntent(extractJsonObject(raw));
80
+ if (useCache && options.sessionId) {
81
+ queryIntentCache.set(options.sessionId, userInput, intent);
82
+ }
83
+ return { intent, skipped: false, cacheHit: false };
68
84
  }
69
85
  catch {
70
- // one retry, then fallback
86
+ // retry or fallback
71
87
  }
72
88
  }
73
- return fallback;
89
+ return { intent: fallback, skipped: false, cacheHit: false };
74
90
  }
75
91
  //# sourceMappingURL=queryIntent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"queryIntent.js","sourceRoot":"","sources":["../../src/preflight/queryIntent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queryIntent.js","sourceRoot":"","sources":["../../src/preflight/queryIntent.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAe,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,yFAAyF;AACzF,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAC1C;IACE,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IACvC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IAClC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IACjC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;CACpC,EACD,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAChC,CAAC;AAIF,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,aAAa,GAAG;;;;CAIrB,CAAC;AAEF,MAAM,UAAU,0BAA0B,CAAC,KAAa,EAAE,aAAa,GAAG,KAAK;IAC7E,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3B,IAAI,aAAa;QAAE,OAAO,IAAI,CAAC;IAC/B,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,IAAI,OAAO,CAAC,MAAM,GAAG,yBAAyB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7F,OAAO,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,IAAI,4BAA4B,CAAC;AACvF,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAa,EAAE,WAAW,GAAG,KAAK;IACpE,IAAI,WAAW;QAAE,OAAO,IAAI,CAAC;IAC7B,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,IAAI,4BAA4B;QAAE,OAAO,IAAI,CAAC;IACrE,OAAO,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,mBAAmB,CAAC,MAAmB,EAAE,SAAiB;IACxE,IAAI,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE;QAAE,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAE7D,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAE3F,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7C,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC;AAC1B,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY;IACrC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,KAAK,GAAG,CAAC,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAgBD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,SAAiB,EACjB,GAAqB,EACrB,UAAqC,EAAE;IAEvC,MAAM,QAAQ,GAAgB,EAAE,SAAS,EAAE,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;IAC9D,MAAM,OAAO,GAAG,0BAA0B,EAAE,CAAC;IAC7C,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC;IAE5D,IAAI,QAAQ,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAClE,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,IAAI,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACjE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC9D,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,aAAa,IAAI,sBAAsB,CAAC;IACzF,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;IAE7C,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;QACvD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,GAAG,aAAa,GAAG,SAAS,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YAC/E,MAAM,MAAM,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;YACxD,IAAI,QAAQ,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;gBAClC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YAC7D,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QACrD,CAAC;QAAC,MAAM,CAAC;YACP,oBAAoB;QACtB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAC/D,CAAC"}
@@ -0,0 +1,6 @@
1
+ export type WarmSidecarOptions = {
2
+ queryTimeoutMs?: number;
3
+ };
4
+ /** Pre-open sidecar DB and optionally smoke-test embed + vec paths. Fail-silent. */
5
+ export declare function warmSidecar(socketPath: string, options?: WarmSidecarOptions): Promise<void>;
6
+ //# sourceMappingURL=warmup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"warmup.d.ts","sourceRoot":"","sources":["../../src/sidecar/warmup.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,kBAAkB,GAAG;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,oFAAoF;AACpF,wBAAsB,WAAW,CAC/B,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,IAAI,CAAC,CAoCf"}
@@ -0,0 +1,39 @@
1
+ import { fetchIndexStats, ping, query } from "./client.js";
2
+ import { SIDECAR_WARMUP_QUERY_TIMEOUT_MS } from "../constants/timing.js";
3
+ import { debugMemory } from "../utils/debugLog.js";
4
+ import { nowMs } from "../utils/time.js";
5
+ /** Pre-open sidecar DB and optionally smoke-test embed + vec paths. Fail-silent. */
6
+ export async function warmSidecar(socketPath, options = {}) {
7
+ const startedAt = nowMs();
8
+ if (!(await ping(socketPath))) {
9
+ debugMemory("sidecar", "warm", { ok: false, reason: "ping" });
10
+ return;
11
+ }
12
+ const statsStartedAt = nowMs();
13
+ const statsResult = await fetchIndexStats(socketPath);
14
+ const statsMs = nowMs() - statsStartedAt;
15
+ if ("error" in statsResult) {
16
+ debugMemory("sidecar", "warm", { ok: false, stats_ms: statsMs, reason: "stats" });
17
+ return;
18
+ }
19
+ let queryMs = 0;
20
+ if (statsResult.stats.chunk_count > 0) {
21
+ const queryStartedAt = nowMs();
22
+ const queryTimeoutMs = options.queryTimeoutMs ?? SIDECAR_WARMUP_QUERY_TIMEOUT_MS;
23
+ try {
24
+ await query(socketPath, ".", queryTimeoutMs);
25
+ }
26
+ catch {
27
+ // warm query is best-effort
28
+ }
29
+ queryMs = nowMs() - queryStartedAt;
30
+ }
31
+ debugMemory("sidecar", "warm", {
32
+ ok: true,
33
+ stats_ms: statsMs,
34
+ query_ms: queryMs,
35
+ chunks: statsResult.stats.chunk_count,
36
+ total_ms: nowMs() - startedAt,
37
+ });
38
+ }
39
+ //# sourceMappingURL=warmup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"warmup.js","sourceRoot":"","sources":["../../src/sidecar/warmup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,+BAA+B,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAMzC,oFAAoF;AACpF,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,UAAkB,EAClB,UAA8B,EAAE;IAEhC,MAAM,SAAS,GAAG,KAAK,EAAE,CAAC;IAE1B,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QAC9B,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAC9D,OAAO;IACT,CAAC;IAED,MAAM,cAAc,GAAG,KAAK,EAAE,CAAC;IAC/B,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,KAAK,EAAE,GAAG,cAAc,CAAC;IAEzC,IAAI,OAAO,IAAI,WAAW,EAAE,CAAC;QAC3B,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QAClF,OAAO;IACT,CAAC;IAED,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,WAAW,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;QACtC,MAAM,cAAc,GAAG,KAAK,EAAE,CAAC;QAC/B,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,+BAA+B,CAAC;QACjF,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC;YACP,4BAA4B;QAC9B,CAAC;QACD,OAAO,GAAG,KAAK,EAAE,GAAG,cAAc,CAAC;IACrC,CAAC;IAED,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE;QAC7B,EAAE,EAAE,IAAI;QACR,QAAQ,EAAE,OAAO;QACjB,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,WAAW;QACrC,QAAQ,EAAE,KAAK,EAAE,GAAG,SAAS;KAC9B,CAAC,CAAC;AACL,CAAC"}