@zelari/core 2.55.0 → 2.57.0
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.
- package/README.md +1 -1
- package/dist/core/hooks/lifecycleHookRunner.d.ts +30 -1
- package/dist/core/hooks/lifecycleHookRunner.d.ts.map +1 -1
- package/dist/core/hooks/lifecycleHookRunner.js +54 -0
- package/dist/core/hooks/lifecycleHookRunner.js.map +1 -1
- package/dist/core/hooks/types.d.ts +143 -5
- package/dist/core/hooks/types.d.ts.map +1 -1
- package/dist/core/hooks/types.js +63 -5
- package/dist/core/hooks/types.js.map +1 -1
- package/dist/core/tools/observationCompactor.d.ts +57 -0
- package/dist/core/tools/observationCompactor.d.ts.map +1 -0
- package/dist/core/tools/observationCompactor.js +129 -0
- package/dist/core/tools/observationCompactor.js.map +1 -0
- package/dist/core/tools/registry.d.ts +18 -23
- package/dist/core/tools/registry.d.ts.map +1 -1
- package/dist/core/tools/registry.js +8 -102
- package/dist/core/tools/registry.js.map +1 -1
- package/dist/memory/index.d.ts +1 -0
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +1 -0
- package/dist/memory/index.js.map +1 -1
- package/dist/memory/relevantWhen.d.ts +8 -0
- package/dist/memory/relevantWhen.d.ts.map +1 -0
- package/dist/memory/relevantWhen.js +73 -0
- package/dist/memory/relevantWhen.js.map +1 -0
- package/dist/memory/schemas.d.ts +2 -0
- package/dist/memory/schemas.d.ts.map +1 -1
- package/dist/memory/schemas.js +3 -0
- package/dist/memory/schemas.js.map +1 -1
- package/dist/memory/scoring.d.ts +1 -0
- package/dist/memory/scoring.d.ts.map +1 -1
- package/dist/memory/scoring.js +11 -1
- package/dist/memory/scoring.js.map +1 -1
- package/dist/memory/service.d.ts +12 -0
- package/dist/memory/service.d.ts.map +1 -1
- package/dist/memory/service.js +59 -0
- package/dist/memory/service.js.map +1 -1
- package/dist/memory/types.d.ts +20 -0
- package/dist/memory/types.d.ts.map +1 -1
- package/dist/session/decisionEvents.d.ts +167 -0
- package/dist/session/decisionEvents.d.ts.map +1 -0
- package/dist/session/decisionEvents.js +206 -0
- package/dist/session/decisionEvents.js.map +1 -0
- package/dist/session/index.d.ts +2 -0
- package/dist/session/index.d.ts.map +1 -1
- package/dist/session/index.js +2 -0
- package/dist/session/index.js.map +1 -1
- package/dist/session/replay.d.ts +33 -0
- package/dist/session/replay.d.ts.map +1 -1
- package/dist/session/replay.js +58 -1
- package/dist/session/replay.js.map +1 -1
- package/dist/session/types.d.ts +7 -1
- package/dist/session/types.d.ts.map +1 -1
- package/dist/session/types.js +20 -0
- package/dist/session/types.js.map +1 -1
- package/dist/session/verifyDebt.d.ts +41 -0
- package/dist/session/verifyDebt.d.ts.map +1 -0
- package/dist/session/verifyDebt.js +40 -0
- package/dist/session/verifyDebt.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* observationCompactor — tool-result truncation extracted from ToolRegistry.
|
|
3
|
+
*
|
|
4
|
+
* S2 (plan): the head+tail truncation + managed-dir spill used to live inline
|
|
5
|
+
* in ToolRegistry.invoke (and, in a cloned form, in the CLI tool-result cache).
|
|
6
|
+
* This module is the single implementation of that mechanism. registry.ts
|
|
7
|
+
* re-exports it for backward compatibility; the CLI cache calls it directly.
|
|
8
|
+
*
|
|
9
|
+
* @since v2.47.0
|
|
10
|
+
*/
|
|
11
|
+
import { spillToolOutput } from './toolOutputSpill.js';
|
|
12
|
+
/**
|
|
13
|
+
* v1.5.3: tool-result truncation. A read_file / show_diff / bash on a large
|
|
14
|
+
* target used to dump the entire output into config.messages verbatim — a
|
|
15
|
+
* 5000-line file is ~100k tokens, re-sent every subsequent provider turn, and
|
|
16
|
+
* a single such call can consume 50–100% of a context window. This truncates
|
|
17
|
+
* tool results to a bounded head + tail with a marker, so the transcript LLM
|
|
18
|
+
* sees stays under control regardless of what a tool returns.
|
|
19
|
+
*
|
|
20
|
+
* Strategy: if the result has more than `cap` lines, keep the first half and
|
|
21
|
+
* the last half of `cap`, with a marker naming the omission. Single-line
|
|
22
|
+
* payloads (e.g. compact JSON) are split on a char budget derived from cap.
|
|
23
|
+
* Results under the cap pass through verbatim — zero overhead on the common
|
|
24
|
+
* case. Errors (ok:false) are never truncated (they're small by nature).
|
|
25
|
+
*
|
|
26
|
+
* Env override: ZELARI_TOOL_RESULT_LINES (default 200). Set higher for
|
|
27
|
+
* sessions that need more file context, lower to save tokens on tight windows.
|
|
28
|
+
*/
|
|
29
|
+
export const TOOL_RESULT_LINE_CAP = (() => {
|
|
30
|
+
const raw = process.env.ZELARI_TOOL_RESULT_LINES;
|
|
31
|
+
const n = raw ? Number.parseInt(raw, 10) : 200;
|
|
32
|
+
return Number.isFinite(n) && n >= 10 ? n : 200;
|
|
33
|
+
})();
|
|
34
|
+
/**
|
|
35
|
+
* Truncate a string result to head + tail with a marker, bounded by line count
|
|
36
|
+
* (and a soft char budget for huge single-line payloads).
|
|
37
|
+
*
|
|
38
|
+
* When the result is truncated and spill is enabled, the **full** text is
|
|
39
|
+
* written under the managed tool-output dir and the marker includes the path
|
|
40
|
+
* so the model can re-open it with read_file if needed.
|
|
41
|
+
*
|
|
42
|
+
* Exported for tests. Returns the original string if under the cap.
|
|
43
|
+
*
|
|
44
|
+
* Overloads:
|
|
45
|
+
* truncateToolResult(text, cap?)
|
|
46
|
+
* truncateToolResult(text, { cap, spill, toolName })
|
|
47
|
+
*/
|
|
48
|
+
export function truncateToolResult(text, capOrOpts = TOOL_RESULT_LINE_CAP) {
|
|
49
|
+
if (text.length === 0)
|
|
50
|
+
return text;
|
|
51
|
+
const opts = typeof capOrOpts === 'number' ? { cap: capOrOpts } : (capOrOpts ?? {});
|
|
52
|
+
const cap = typeof opts.cap === 'number' && Number.isFinite(opts.cap) && opts.cap >= 10
|
|
53
|
+
? opts.cap
|
|
54
|
+
: TOOL_RESULT_LINE_CAP;
|
|
55
|
+
const doSpill = opts.spill !== false;
|
|
56
|
+
const lines = text.split('\n');
|
|
57
|
+
// Soft char budget: ~80 chars/line × cap. Catches single-line megabytes
|
|
58
|
+
// that would otherwise pass the line check.
|
|
59
|
+
const charBudget = cap * 80;
|
|
60
|
+
const overLines = lines.length > cap;
|
|
61
|
+
const overChars = text.length > charBudget && lines.length <= cap;
|
|
62
|
+
if (!overLines && !overChars)
|
|
63
|
+
return text;
|
|
64
|
+
let preview;
|
|
65
|
+
let marker;
|
|
66
|
+
if (overLines) {
|
|
67
|
+
const half = Math.floor(cap / 2);
|
|
68
|
+
const head = lines.slice(0, half);
|
|
69
|
+
const tail = lines.slice(lines.length - half);
|
|
70
|
+
const omitted = lines.length - cap;
|
|
71
|
+
marker = `+${omitted} lines omitted — showing head:${half}, tail:${half} of ${lines.length} total`;
|
|
72
|
+
preview =
|
|
73
|
+
head.join('\n') +
|
|
74
|
+
`\n… [${marker}] …\n` +
|
|
75
|
+
tail.join('\n');
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
// Single (or few) huge lines — keep head + tail chars.
|
|
79
|
+
const half = Math.floor(charBudget / 2);
|
|
80
|
+
const head = text.slice(0, half);
|
|
81
|
+
const tail = text.slice(text.length - half);
|
|
82
|
+
const omitted = text.length - charBudget;
|
|
83
|
+
marker = `+${omitted} chars omitted — showing head/tail of ${text.length} total (line-sparse payload)`;
|
|
84
|
+
preview = `${head}\n… [${marker}] …\n${tail}`;
|
|
85
|
+
}
|
|
86
|
+
if (doSpill) {
|
|
87
|
+
const path = spillToolOutput(text, { toolName: opts.toolName });
|
|
88
|
+
if (path) {
|
|
89
|
+
const spillNote = `\n… [full output spilled to: ${path} — re-read with read_file if you need the complete text] …`;
|
|
90
|
+
// Insert spill note after the omission marker line for visibility.
|
|
91
|
+
if (preview.includes('] …\n')) {
|
|
92
|
+
preview = preview.replace('] …\n', `] …${spillNote}\n`);
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
preview = preview + spillNote;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return preview;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Compact a TypedResult's model-facing payload IN PLACE and return the SAME
|
|
103
|
+
* reference. String values are truncated; object values with a string
|
|
104
|
+
* `content` field have that field truncated on the same object (no clone).
|
|
105
|
+
* Errors (ok:false) and other shapes pass through untouched.
|
|
106
|
+
*
|
|
107
|
+
* spill defaults to true (matches truncateToolResult); the CLI tool-result
|
|
108
|
+
* cache passes spill:false so a cache fill never writes to disk.
|
|
109
|
+
*/
|
|
110
|
+
export function compactToolResult(result, opts = {}) {
|
|
111
|
+
if (!result.ok)
|
|
112
|
+
return result;
|
|
113
|
+
const truncOpts = { toolName: opts.toolName };
|
|
114
|
+
if (opts.cap !== undefined)
|
|
115
|
+
truncOpts.cap = opts.cap;
|
|
116
|
+
if (opts.spill !== undefined)
|
|
117
|
+
truncOpts.spill = opts.spill;
|
|
118
|
+
if (typeof result.value === 'string') {
|
|
119
|
+
result.value = truncateToolResult(result.value, truncOpts);
|
|
120
|
+
}
|
|
121
|
+
else if (result.value && typeof result.value === 'object') {
|
|
122
|
+
const v = result.value;
|
|
123
|
+
if (typeof v.content === 'string') {
|
|
124
|
+
v.content = truncateToolResult(v.content, truncOpts);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return result;
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=observationCompactor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observationCompactor.js","sourceRoot":"","sources":["../../../src/core/tools/observationCompactor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import type { LifecycleHookRunner } from '../hooks/index.js';
|
|
2
2
|
import { type ToolDefinition, type TypedResult } from './toolTypes.js';
|
|
3
|
+
import type { SessionEventInput } from '../../session/types.js';
|
|
3
4
|
import type { ToolFingerprint } from '../../runtime/fingerprints.js';
|
|
4
5
|
export { spillToolOutput, resolveToolOutputDir, isToolSpillEnabled } from './toolOutputSpill.js';
|
|
6
|
+
export { truncateToolResult, compactToolResult, TOOL_RESULT_LINE_CAP, type TruncateToolResultOptions, } from './observationCompactor.js';
|
|
5
7
|
export interface InvokeOptions {
|
|
6
8
|
timeoutMs?: number;
|
|
7
9
|
signal?: AbortSignal;
|
|
@@ -9,14 +11,22 @@ export interface InvokeOptions {
|
|
|
9
11
|
sessionId?: string;
|
|
10
12
|
/** Optional tool name for spill file naming (defaults to invoked name). */
|
|
11
13
|
toolName?: string;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
14
|
+
/**
|
|
15
|
+
* WS7 slice 4b (t139): optional session-spine sink, forwarded verbatim to
|
|
16
|
+
* `ToolContext.emitSessionEvent` for the duration of this ONE call. Additive
|
|
17
|
+
* and optional by contract — omitting it leaves the ctx byte-identical to
|
|
18
|
+
* before, and every consumer of those emitters already treats a missing sink
|
|
19
|
+
* as "record nothing" (file.* telemetry, permission/decision events).
|
|
20
|
+
*
|
|
21
|
+
* WHY an invoke option and not a registry field: the sink is per-turn (one
|
|
22
|
+
* session writer per turn) and travels with the CALL. Hosts that own the
|
|
23
|
+
* dispatch — tests, the Electron/legacy callers, any future non-harness
|
|
24
|
+
* plumbing — hand it in here. The CLI cannot: `AgentHarness` sits between its
|
|
25
|
+
* hosts and `invoke` and forwards no host sink, so the CLI populates this SAME
|
|
26
|
+
* ctx field in its own outermost tool wrapper instead (see
|
|
27
|
+
* `src/cli/safety/sessionSink.ts`).
|
|
28
|
+
*/
|
|
29
|
+
emitSessionEvent?: (input: SessionEventInput) => Promise<unknown>;
|
|
20
30
|
}
|
|
21
31
|
/**
|
|
22
32
|
* t57 (ADR 0022 seams): payload handed to the in-process post-result
|
|
@@ -31,21 +41,6 @@ export interface ToolResultEvent {
|
|
|
31
41
|
}
|
|
32
42
|
/** Same-process observer notified after every tool result. Null unsubscribes. */
|
|
33
43
|
export type ToolResultListener = (event: ToolResultEvent) => void;
|
|
34
|
-
/**
|
|
35
|
-
* Truncate a string result to head + tail with a marker, bounded by line count
|
|
36
|
-
* (and a soft char budget for huge single-line payloads).
|
|
37
|
-
*
|
|
38
|
-
* When the result is truncated and spill is enabled, the **full** text is
|
|
39
|
-
* written under the managed tool-output dir and the marker includes the path
|
|
40
|
-
* so the model can re-open it with read_file if needed.
|
|
41
|
-
*
|
|
42
|
-
* Exported for tests. Returns the original string if under the cap.
|
|
43
|
-
*
|
|
44
|
-
* Overloads:
|
|
45
|
-
* truncateToolResult(text, cap?)
|
|
46
|
-
* truncateToolResult(text, { cap, spill, toolName })
|
|
47
|
-
*/
|
|
48
|
-
export declare function truncateToolResult(text: string, capOrOpts?: number | TruncateToolResultOptions): string;
|
|
49
44
|
export declare class ToolRegistry {
|
|
50
45
|
private tools;
|
|
51
46
|
/** v0.10.0: lifecycle hooks (PreToolUse/PostToolUse). Null = no hooks. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/core/tools/registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,OAAO,EAAY,KAAK,cAAc,EAAoB,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACnG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAErE,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/core/tools/registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,OAAO,EAAY,KAAK,cAAc,EAAoB,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACnG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAErE,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACjG,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,KAAK,yBAAyB,GAC/B,MAAM,2BAA2B,CAAC;AAEnC,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;;;;;;;;OAcG;IACH,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACnE;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,EAAE,EAAE,OAAO,CAAC;CACb;AAED,iFAAiF;AACjF,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;AAmClE,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAqC;IAClD,0EAA0E;IAC1E,OAAO,CAAC,cAAc,CAAoC;IAC1D,0DAA0D;IAC1D,OAAO,CAAC,kBAAkB,CAAmC;IAC7D;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB,CAAkI;IAE1J,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI;IAK/C,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAI7C;;;;OAIG;IACH,iBAAiB,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI,GAAG,IAAI;IAI3D,iBAAiB,IAAI,mBAAmB,GAAG,IAAI;IAI/C;;;;;;OAMG;IACH,qBAAqB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI,GAAG,IAAI;IAIhE,IAAI,IAAI,MAAM,EAAE;IAIhB;;;OAGG;IACH,OAAO,CAAC,UAAU;IAMlB,gFAAgF;IAC1E,MAAM,CAAC,CAAC,EACZ,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,EACjB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAkI1B,gFAAgF;IAChF,aAAa,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,QAAQ,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;SAAE,CAAA;KAAE,CAAC;IAalI,oGAAoG;IACpG,YAAY,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,eAAe,EAAE;CAa3D;AAID,wBAAgB,eAAe,IAAI,YAAY,CAG9C"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { zodToJsonSchema } from './zodBridge.js';
|
|
2
|
-
import {
|
|
2
|
+
import { compactToolResult } from './observationCompactor.js';
|
|
3
3
|
import { typedErr } from './toolTypes.js';
|
|
4
4
|
export { spillToolOutput, resolveToolOutputDir, isToolSpillEnabled } from './toolOutputSpill.js';
|
|
5
|
+
export { truncateToolResult, compactToolResult, TOOL_RESULT_LINE_CAP, } from './observationCompactor.js';
|
|
5
6
|
/**
|
|
6
7
|
* Common hallucinated tool names → canonical registry names. Models trained
|
|
7
8
|
* on other agent stacks routinely call `Read`/`Glob` (Claude Code), `list_dir`
|
|
@@ -34,95 +35,6 @@ const TOOL_NAME_ALIASES = {
|
|
|
34
35
|
run: 'bash',
|
|
35
36
|
exec: 'bash',
|
|
36
37
|
};
|
|
37
|
-
/**
|
|
38
|
-
* v1.5.3: tool-result truncation. A read_file / show_diff / bash on a large
|
|
39
|
-
* target used to dump the entire output into config.messages verbatim — a
|
|
40
|
-
* 5000-line file is ~100k tokens, re-sent every subsequent provider turn, and
|
|
41
|
-
* a single such call can consume 50–100% of a context window. This truncates
|
|
42
|
-
* tool results to a bounded head + tail with a marker, so the transcript LLM
|
|
43
|
-
* sees stays under control regardless of what a tool returns.
|
|
44
|
-
*
|
|
45
|
-
* Strategy: if the result has more than `cap` lines, keep the first half and
|
|
46
|
-
* the last half of `cap`, with a marker naming the omission. Single-line
|
|
47
|
-
* payloads (e.g. compact JSON) are split on a char budget derived from cap.
|
|
48
|
-
* Results under the cap pass through verbatim — zero overhead on the common
|
|
49
|
-
* case. Errors (ok:false) are never truncated (they're small by nature).
|
|
50
|
-
*
|
|
51
|
-
* Env override: ZELARI_TOOL_RESULT_LINES (default 200). Set higher for
|
|
52
|
-
* sessions that need more file context, lower to save tokens on tight windows.
|
|
53
|
-
*/
|
|
54
|
-
const TOOL_RESULT_LINE_CAP = (() => {
|
|
55
|
-
const raw = process.env.ZELARI_TOOL_RESULT_LINES;
|
|
56
|
-
const n = raw ? Number.parseInt(raw, 10) : 200;
|
|
57
|
-
return Number.isFinite(n) && n >= 10 ? n : 200;
|
|
58
|
-
})();
|
|
59
|
-
/**
|
|
60
|
-
* Truncate a string result to head + tail with a marker, bounded by line count
|
|
61
|
-
* (and a soft char budget for huge single-line payloads).
|
|
62
|
-
*
|
|
63
|
-
* When the result is truncated and spill is enabled, the **full** text is
|
|
64
|
-
* written under the managed tool-output dir and the marker includes the path
|
|
65
|
-
* so the model can re-open it with read_file if needed.
|
|
66
|
-
*
|
|
67
|
-
* Exported for tests. Returns the original string if under the cap.
|
|
68
|
-
*
|
|
69
|
-
* Overloads:
|
|
70
|
-
* truncateToolResult(text, cap?)
|
|
71
|
-
* truncateToolResult(text, { cap, spill, toolName })
|
|
72
|
-
*/
|
|
73
|
-
export function truncateToolResult(text, capOrOpts = TOOL_RESULT_LINE_CAP) {
|
|
74
|
-
if (text.length === 0)
|
|
75
|
-
return text;
|
|
76
|
-
const opts = typeof capOrOpts === 'number' ? { cap: capOrOpts } : (capOrOpts ?? {});
|
|
77
|
-
const cap = typeof opts.cap === 'number' && Number.isFinite(opts.cap) && opts.cap >= 10
|
|
78
|
-
? opts.cap
|
|
79
|
-
: TOOL_RESULT_LINE_CAP;
|
|
80
|
-
const doSpill = opts.spill !== false;
|
|
81
|
-
const lines = text.split('\n');
|
|
82
|
-
// Soft char budget: ~80 chars/line × cap. Catches single-line megabytes
|
|
83
|
-
// that would otherwise pass the line check.
|
|
84
|
-
const charBudget = cap * 80;
|
|
85
|
-
const overLines = lines.length > cap;
|
|
86
|
-
const overChars = text.length > charBudget && lines.length <= cap;
|
|
87
|
-
if (!overLines && !overChars)
|
|
88
|
-
return text;
|
|
89
|
-
let preview;
|
|
90
|
-
let marker;
|
|
91
|
-
if (overLines) {
|
|
92
|
-
const half = Math.floor(cap / 2);
|
|
93
|
-
const head = lines.slice(0, half);
|
|
94
|
-
const tail = lines.slice(lines.length - half);
|
|
95
|
-
const omitted = lines.length - cap;
|
|
96
|
-
marker = `+${omitted} lines omitted — showing head:${half}, tail:${half} of ${lines.length} total`;
|
|
97
|
-
preview =
|
|
98
|
-
head.join('\n') +
|
|
99
|
-
`\n… [${marker}] …\n` +
|
|
100
|
-
tail.join('\n');
|
|
101
|
-
}
|
|
102
|
-
else {
|
|
103
|
-
// Single (or few) huge lines — keep head + tail chars.
|
|
104
|
-
const half = Math.floor(charBudget / 2);
|
|
105
|
-
const head = text.slice(0, half);
|
|
106
|
-
const tail = text.slice(text.length - half);
|
|
107
|
-
const omitted = text.length - charBudget;
|
|
108
|
-
marker = `+${omitted} chars omitted — showing head/tail of ${text.length} total (line-sparse payload)`;
|
|
109
|
-
preview = `${head}\n… [${marker}] …\n${tail}`;
|
|
110
|
-
}
|
|
111
|
-
if (doSpill) {
|
|
112
|
-
const path = spillToolOutput(text, { toolName: opts.toolName });
|
|
113
|
-
if (path) {
|
|
114
|
-
const spillNote = `\n… [full output spilled to: ${path} — re-read with read_file if you need the complete text] …`;
|
|
115
|
-
// Insert spill note after the omission marker line for visibility.
|
|
116
|
-
if (preview.includes('] …\n')) {
|
|
117
|
-
preview = preview.replace('] …\n', `] …${spillNote}\n`);
|
|
118
|
-
}
|
|
119
|
-
else {
|
|
120
|
-
preview = preview + spillNote;
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
return preview;
|
|
125
|
-
}
|
|
126
38
|
export class ToolRegistry {
|
|
127
39
|
tools = new Map();
|
|
128
40
|
/** v0.10.0: lifecycle hooks (PreToolUse/PostToolUse). Null = no hooks. */
|
|
@@ -215,6 +127,11 @@ export class ToolRegistry {
|
|
|
215
127
|
cwd: options.cwd ?? process.cwd(),
|
|
216
128
|
audit: () => { },
|
|
217
129
|
sessionId: options.sessionId ?? 'default',
|
|
130
|
+
// WS7 slice 4b (t139): additive-optional. Present ONLY when the caller
|
|
131
|
+
// passed a sink, so an invoke without it produces the exact ctx it always
|
|
132
|
+
// did (field absent, not undefined-valued). Tools and wrappers read it as
|
|
133
|
+
// `ctx.emitSessionEvent` and skip telemetry when it is missing.
|
|
134
|
+
...(options.emitSessionEvent ? { emitSessionEvent: options.emitSessionEvent } : {}),
|
|
218
135
|
};
|
|
219
136
|
// v0.10.0: PreToolUse lifecycle hooks — deny blocks the tool.
|
|
220
137
|
// v2.16 (t22): a THROWING runner follows the runner's failureMode:
|
|
@@ -263,18 +180,7 @@ export class ToolRegistry {
|
|
|
263
180
|
// the post-result listener below must observe EVERY executed result,
|
|
264
181
|
// including truncated string successes.
|
|
265
182
|
if (result.ok) {
|
|
266
|
-
|
|
267
|
-
if (typeof result.value === 'string') {
|
|
268
|
-
result.value = truncateToolResult(result.value, {
|
|
269
|
-
toolName: tName,
|
|
270
|
-
});
|
|
271
|
-
}
|
|
272
|
-
else if (result.value && typeof result.value === 'object') {
|
|
273
|
-
const v = result.value;
|
|
274
|
-
if (typeof v.content === 'string') {
|
|
275
|
-
v.content = truncateToolResult(v.content, { toolName: tName });
|
|
276
|
-
}
|
|
277
|
-
}
|
|
183
|
+
compactToolResult(result, { toolName: options.toolName ?? name });
|
|
278
184
|
}
|
|
279
185
|
// v0.10.0: PostToolUse lifecycle hooks — fail-open, never blocks.
|
|
280
186
|
if (this.lifecycleHooks) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/core/tools/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/core/tools/registry.ts"],"names":[],"mappings":"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"}
|
package/dist/memory/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC"}
|
package/dist/memory/index.js
CHANGED
package/dist/memory/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** Triggers kept by the service (the schema accepts up to 8 host-supplied). */
|
|
2
|
+
export declare const RELEVANT_WHEN_CAP = 3;
|
|
3
|
+
/**
|
|
4
|
+
* Derive up to {@link RELEVANT_WHEN_CAP} associative triggers. Pure and
|
|
5
|
+
* deterministic; the caller applies the secret sanitizer afterwards.
|
|
6
|
+
*/
|
|
7
|
+
export declare function deriveRelevantWhen(content: string, kind: string, tags?: readonly string[]): string[];
|
|
8
|
+
//# sourceMappingURL=relevantWhen.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relevantWhen.d.ts","sourceRoot":"","sources":["../../src/memory/relevantWhen.ts"],"names":[],"mappings":"AAUA,+EAA+E;AAC/E,eAAO,MAAM,iBAAiB,IAAI,CAAC;AAoCnC;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,SAAS,MAAM,EAAO,GAC3B,MAAM,EAAE,CAyBV"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure `relevantWhen` derivation (T-Mem lite, S3).
|
|
3
|
+
*
|
|
4
|
+
* Zero LLM, zero I/O: turns a memory's content / kind / tags into 1–3 short
|
|
5
|
+
* situational trigger phrases describing *when* the memory is likely useful
|
|
6
|
+
* (e.g. `when npm fails with etimedout`). The service sanitizes and caps the
|
|
7
|
+
* result; this module only proposes candidate phrases and never persists them.
|
|
8
|
+
*/
|
|
9
|
+
import { memoryTokens } from './scoring.js';
|
|
10
|
+
/** Triggers kept by the service (the schema accepts up to 8 host-supplied). */
|
|
11
|
+
export const RELEVANT_WHEN_CAP = 3;
|
|
12
|
+
const MAX_PHRASE_LENGTH = 120;
|
|
13
|
+
/** Drop very long tokens so obvious secrets (sk-…, JWTs) never leak in. */
|
|
14
|
+
const MAX_TOKEN_LENGTH = 24;
|
|
15
|
+
const STOPWORDS = new Set([
|
|
16
|
+
'the', 'and', 'for', 'with', 'that', 'this', 'from', 'when', 'into', 'your', 'you', 'are',
|
|
17
|
+
'was', 'were', 'has', 'have', 'had', 'not', 'but', 'its', 'also', 'will', 'can', 'should',
|
|
18
|
+
'must', 'them', 'they', 'our', 'out', 'any', 'all', 'each', 'per', 'via', 'use', 'using',
|
|
19
|
+
'get', 'set', 'new', 'old', 'one', 'two', 'may',
|
|
20
|
+
]);
|
|
21
|
+
const TOOLISH = /(?:npm|pnpm|yarn|node|tsc|vitest|jest|eslint|prettier|docker|git|cargo|rustc|python|pip|go|mvn|gradle|make|curl|http|fetch|sqlite|postgres|redis|deploy|build|test|lint|install|migrate|migration)/i;
|
|
22
|
+
const ERRORISH = /(?:timeout|timedout|etimedout|econn|eaddrinuse|enoent|eacces|enospc|eexist|lock|locked|denied|refused|crash|signal|exhaust|oom|heap|exception|error|traceback|segfault|panic)/i;
|
|
23
|
+
function keyTokens(value) {
|
|
24
|
+
const seen = new Set();
|
|
25
|
+
const out = [];
|
|
26
|
+
for (const token of memoryTokens(value)) {
|
|
27
|
+
if (token.length < 3 || token.length > MAX_TOKEN_LENGTH)
|
|
28
|
+
continue;
|
|
29
|
+
if (STOPWORDS.has(token) || seen.has(token))
|
|
30
|
+
continue;
|
|
31
|
+
seen.add(token);
|
|
32
|
+
out.push(token);
|
|
33
|
+
}
|
|
34
|
+
return out;
|
|
35
|
+
}
|
|
36
|
+
function clip(phrase) {
|
|
37
|
+
const trimmed = phrase.replace(/\s+/g, ' ').trim();
|
|
38
|
+
return trimmed.length <= MAX_PHRASE_LENGTH
|
|
39
|
+
? trimmed
|
|
40
|
+
: `${trimmed.slice(0, MAX_PHRASE_LENGTH - 1).trimEnd()}…`;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Derive up to {@link RELEVANT_WHEN_CAP} associative triggers. Pure and
|
|
44
|
+
* deterministic; the caller applies the secret sanitizer afterwards.
|
|
45
|
+
*/
|
|
46
|
+
export function deriveRelevantWhen(content, kind, tags = []) {
|
|
47
|
+
const tokens = keyTokens(content);
|
|
48
|
+
for (const tag of tags) {
|
|
49
|
+
for (const token of keyTokens(tag)) {
|
|
50
|
+
if (!tokens.includes(token))
|
|
51
|
+
tokens.push(token);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
if (tokens.length === 0)
|
|
55
|
+
return [];
|
|
56
|
+
if (kind === 'failure') {
|
|
57
|
+
const errorClass = tokens.find((token) => ERRORISH.test(token));
|
|
58
|
+
const tool = tokens.find((token) => TOOLISH.test(token) && token !== errorClass) ?? tokens[0];
|
|
59
|
+
return [clip(errorClass ? `when ${tool} fails with ${errorClass}` : `when ${tool} fails`)];
|
|
60
|
+
}
|
|
61
|
+
if (kind === 'procedure') {
|
|
62
|
+
const command = tokens.find((token) => TOOLISH.test(token)) ?? tokens[0];
|
|
63
|
+
return [clip(`when running ${command}`)];
|
|
64
|
+
}
|
|
65
|
+
const phrases = [];
|
|
66
|
+
for (const token of tokens) {
|
|
67
|
+
if (phrases.length >= RELEVANT_WHEN_CAP)
|
|
68
|
+
break;
|
|
69
|
+
phrases.push(clip(`when ${token}`));
|
|
70
|
+
}
|
|
71
|
+
return [...new Set(phrases)];
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=relevantWhen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relevantWhen.js","sourceRoot":"","sources":["../../src/memory/relevantWhen.ts"],"names":[],"mappings":"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"}
|
package/dist/memory/schemas.d.ts
CHANGED
|
@@ -88,6 +88,7 @@ export declare const MemoryNodeInputSchema: z.ZodObject<{
|
|
|
88
88
|
private: "private";
|
|
89
89
|
}>>;
|
|
90
90
|
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
91
|
+
relevantWhen: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
91
92
|
source: z.ZodOptional<z.ZodObject<{
|
|
92
93
|
agent: z.ZodOptional<z.ZodString>;
|
|
93
94
|
sessionId: z.ZodOptional<z.ZodString>;
|
|
@@ -133,6 +134,7 @@ export declare const MemoryNodeSchema: z.ZodObject<{
|
|
|
133
134
|
artifact: "artifact";
|
|
134
135
|
procedure: "procedure";
|
|
135
136
|
}>;
|
|
137
|
+
relevantWhen: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
136
138
|
validFrom: z.ZodOptional<z.ZodString>;
|
|
137
139
|
validUntil: z.ZodOptional<z.ZodString>;
|
|
138
140
|
embeddingRef: z.ZodOptional<z.ZodString>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/memory/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/memory/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAqBxB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;EAAuB,CAAC;AACrD,eAAO,MAAM,kBAAkB;;;;;EAA0B,CAAC;AAC1D,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;EAA2B,CAAC;AAC7D,eAAO,MAAM,sBAAsB;;;EAA8B,CAAC;AAElE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;kBAkBpB,CAAC;AAEZ,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAqBvB,CAAC;AAEZ,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAiBlB,CAAC;AAEZ,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAavB,CAAC;AAEZ,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAMlB,CAAC"}
|
package/dist/memory/schemas.js
CHANGED
|
@@ -10,6 +10,8 @@ const metadata = z.record(z.string(), z.unknown()).refine((value) => {
|
|
|
10
10
|
return false;
|
|
11
11
|
}
|
|
12
12
|
}, 'Memory metadata must be JSON-serializable and no larger than 128 KB.');
|
|
13
|
+
/** Bounded associative triggers: max 8 short phrases, each ≤ 120 chars. */
|
|
14
|
+
const relevantWhen = z.array(z.string().min(1).max(120)).max(8).optional();
|
|
13
15
|
export const MemoryKindSchema = z.enum(MEMORY_KINDS);
|
|
14
16
|
export const MemoryStatusSchema = z.enum(MEMORY_STATUSES);
|
|
15
17
|
export const MemoryRelationSchema = z.enum(MEMORY_RELATIONS);
|
|
@@ -44,6 +46,7 @@ export const MemoryNodeInputSchema = z
|
|
|
44
46
|
status: MemoryStatusSchema.optional(),
|
|
45
47
|
visibility: MemoryVisibilitySchema.optional(),
|
|
46
48
|
tags: z.array(z.string().min(1).max(120)).max(64).optional(),
|
|
49
|
+
relevantWhen,
|
|
47
50
|
source: MemorySourceSchema.optional(),
|
|
48
51
|
createdAt: isoDate.optional(),
|
|
49
52
|
recordedAt: isoDate.optional(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/memory/schemas.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/memory/schemas.ts"],"names":[],"mappings":"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"}
|
package/dist/memory/scoring.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export interface MemoryScoringWeights {
|
|
|
7
7
|
recency: number;
|
|
8
8
|
graphProximity: number;
|
|
9
9
|
verificationBonus: number;
|
|
10
|
+
triggerMatch: number;
|
|
10
11
|
}
|
|
11
12
|
export declare const DEFAULT_MEMORY_SCORING_WEIGHTS: Readonly<MemoryScoringWeights>;
|
|
12
13
|
export declare function memoryTokens(text: string): string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scoring.d.ts","sourceRoot":"","sources":["../../src/memory/scoring.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,UAAU,EACV,YAAY,EAEb,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,oBAAoB;IACnC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"scoring.d.ts","sourceRoot":"","sources":["../../src/memory/scoring.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,UAAU,EACV,YAAY,EAEb,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,oBAAoB;IACnC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,8BAA8B,EAAE,QAAQ,CAAC,oBAAoB,CAWzE,CAAC;AAEF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAMnD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CASxE;AAED,wBAAgB,YAAY,CAC1B,SAAS,EAAE,MAAM,EACjB,GAAG,SAAa,EAChB,YAAY,SAAK,GAChB,MAAM,CAKR;AAMD,uEAAuE;AACvE,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,eAAe,EAC1B,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;IACP,OAAO,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACxC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mBAAmB,CAAC,EAAE,MAAM,CAAC;CACzB,GACL,YAAY,CAkCd;AAED,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,eAAe,EAAE,EAC7B,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAM,GACvD,YAAY,EAAE,CAIhB"}
|