@tuanhung303/opencode-acp 2.2.3 → 2.4.1
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/dist/lib/commands/stats.d.ts.map +1 -1
- package/dist/lib/commands/stats.js +2 -0
- package/dist/lib/commands/stats.js.map +1 -1
- package/dist/lib/config-schema.d.ts +88 -0
- package/dist/lib/config-schema.d.ts.map +1 -1
- package/dist/lib/config-schema.js +36 -0
- package/dist/lib/config-schema.js.map +1 -1
- package/dist/lib/config.d.ts +52 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +89 -0
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/hooks.d.ts.map +1 -1
- package/dist/lib/hooks.js +101 -17
- package/dist/lib/hooks.js.map +1 -1
- package/dist/lib/messages/index.d.ts +1 -1
- package/dist/lib/messages/index.d.ts.map +1 -1
- package/dist/lib/messages/index.js +1 -1
- package/dist/lib/messages/index.js.map +1 -1
- package/dist/lib/messages/prune.d.ts +8 -0
- package/dist/lib/messages/prune.d.ts.map +1 -1
- package/dist/lib/messages/prune.js +112 -0
- package/dist/lib/messages/prune.js.map +1 -1
- package/dist/lib/prompts/system/both.d.ts +1 -1
- package/dist/lib/prompts/system/both.d.ts.map +1 -1
- package/dist/lib/prompts/system/both.js +40 -42
- package/dist/lib/prompts/system/both.js.map +1 -1
- package/dist/lib/prompts/system/discard.d.ts +1 -1
- package/dist/lib/prompts/system/discard.d.ts.map +1 -1
- package/dist/lib/prompts/system/discard.js +33 -30
- package/dist/lib/prompts/system/discard.js.map +1 -1
- package/dist/lib/prompts/system/extract.d.ts +1 -1
- package/dist/lib/prompts/system/extract.d.ts.map +1 -1
- package/dist/lib/prompts/system/extract.js +27 -29
- package/dist/lib/prompts/system/extract.js.map +1 -1
- package/dist/lib/state/persistence.d.ts +2 -0
- package/dist/lib/state/persistence.d.ts.map +1 -1
- package/dist/lib/state/persistence.js +4 -1
- package/dist/lib/state/persistence.js.map +1 -1
- package/dist/lib/state/state.d.ts.map +1 -1
- package/dist/lib/state/state.js +22 -0
- package/dist/lib/state/state.js.map +1 -1
- package/dist/lib/state/types.d.ts +121 -13
- package/dist/lib/state/types.d.ts.map +1 -1
- package/dist/lib/state/utils.d.ts +43 -0
- package/dist/lib/state/utils.d.ts.map +1 -1
- package/dist/lib/state/utils.js +138 -0
- package/dist/lib/state/utils.js.map +1 -1
- package/dist/lib/strategies/deduplication.d.ts.map +1 -1
- package/dist/lib/strategies/deduplication.js +19 -3
- package/dist/lib/strategies/deduplication.js.map +1 -1
- package/dist/lib/strategies/error-chain-collapse.d.ts +9 -0
- package/dist/lib/strategies/error-chain-collapse.d.ts.map +1 -0
- package/dist/lib/strategies/error-chain-collapse.js +118 -0
- package/dist/lib/strategies/error-chain-collapse.js.map +1 -0
- package/dist/lib/strategies/image-pruning.d.ts +16 -0
- package/dist/lib/strategies/image-pruning.d.ts.map +1 -0
- package/dist/lib/strategies/image-pruning.js +251 -0
- package/dist/lib/strategies/image-pruning.js.map +1 -0
- package/dist/lib/strategies/index.d.ts +5 -0
- package/dist/lib/strategies/index.d.ts.map +1 -1
- package/dist/lib/strategies/index.js +5 -0
- package/dist/lib/strategies/index.js.map +1 -1
- package/dist/lib/strategies/purge-errors.d.ts.map +1 -1
- package/dist/lib/strategies/purge-errors.js +15 -3
- package/dist/lib/strategies/purge-errors.js.map +1 -1
- package/dist/lib/strategies/stale-read-pruning.d.ts +16 -0
- package/dist/lib/strategies/stale-read-pruning.d.ts.map +1 -0
- package/dist/lib/strategies/stale-read-pruning.js +132 -0
- package/dist/lib/strategies/stale-read-pruning.js.map +1 -0
- package/dist/lib/strategies/supersede-writes.d.ts.map +1 -1
- package/dist/lib/strategies/supersede-writes.js +15 -3
- package/dist/lib/strategies/supersede-writes.js.map +1 -1
- package/dist/lib/strategies/thinking-compression.d.ts +16 -0
- package/dist/lib/strategies/thinking-compression.d.ts.map +1 -0
- package/dist/lib/strategies/thinking-compression.js +194 -0
- package/dist/lib/strategies/thinking-compression.js.map +1 -0
- package/dist/lib/strategies/tools.d.ts.map +1 -1
- package/dist/lib/strategies/tools.js +94 -53
- package/dist/lib/strategies/tools.js.map +1 -1
- package/dist/lib/strategies/truncation.d.ts +17 -0
- package/dist/lib/strategies/truncation.d.ts.map +1 -0
- package/dist/lib/strategies/truncation.js +172 -0
- package/dist/lib/strategies/truncation.js.map +1 -0
- package/dist/lib/strategies/utils.d.ts +1 -1
- package/dist/lib/strategies/utils.d.ts.map +1 -1
- package/dist/lib/strategies/utils.js +34 -20
- package/dist/lib/strategies/utils.js.map +1 -1
- package/dist/lib/ui/notification.d.ts +1 -1
- package/dist/lib/ui/notification.d.ts.map +1 -1
- package/dist/lib/ui/notification.js +12 -7
- package/dist/lib/ui/notification.js.map +1 -1
- package/dist/lib/ui/utils.d.ts +1 -1
- package/dist/lib/ui/utils.d.ts.map +1 -1
- package/dist/lib/ui/utils.js +16 -2
- package/dist/lib/ui/utils.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export const SYSTEM_PROMPT_DISCARD = `<system-reminder>
|
|
2
2
|
<instruction name=context_management_protocol policy_level=critical>
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
You
|
|
4
|
+
PURPOSE
|
|
5
|
+
You operate in a context-constrained environment. Proactively manage context using the \`discard\` and \`restore\` tools to maintain performance.
|
|
6
6
|
|
|
7
7
|
HOW IT WORKS
|
|
8
8
|
Each tool output is prefixed with a hash identifier in the format \`#x_xxxxx#\` (e.g., \`#r_a1b2c#\`).
|
|
@@ -16,40 +16,43 @@ Example:
|
|
|
16
16
|
|
|
17
17
|
To discard: \`discard({hashes: ["#r_a1b2c#"], reason: "completion"})\`
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
- \`discard\`: Remove tool outputs by
|
|
21
|
-
|
|
22
|
-
DISCARD METHODICALLY - BATCH YOUR ACTIONS
|
|
23
|
-
Every tool call adds to your context debt. You MUST pay this down regularly by discarding. Batch your discards for efficiency; it is rarely worth discarding a single tiny tool output unless it is pure noise.
|
|
19
|
+
TOOLS
|
|
20
|
+
- \`discard\`: Remove tool outputs completely by hash
|
|
21
|
+
- \`restore\`: Recover recently discarded content if needed
|
|
24
22
|
|
|
25
23
|
WHEN TO DISCARD
|
|
26
|
-
|
|
27
|
-
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
You
|
|
35
|
-
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
24
|
+
Evaluate at these checkpoints:
|
|
25
|
+
- ✓ Task/sub-task complete
|
|
26
|
+
- ✓ Transitioning to new work phase
|
|
27
|
+
- ✓ 5+ tool outputs accumulated
|
|
28
|
+
- ✓ Large read (>150 lines) no longer needed
|
|
29
|
+
|
|
30
|
+
DO NOT DISCARD when:
|
|
31
|
+
- ✗ Output needed for upcoming edits
|
|
32
|
+
- ✗ You'll likely re-fetch the same content
|
|
33
|
+
- ✗ Only 1-2 small outputs (batch instead)
|
|
34
|
+
|
|
35
|
+
BATCHING
|
|
36
|
+
Minimum 3 outputs OR 1 large output per discard call.
|
|
37
|
+
Single small discards waste more context than they save.
|
|
38
|
+
|
|
39
|
+
PRIORITY ORDER
|
|
40
|
+
1. Never discard what you'll need next
|
|
41
|
+
2. Always discard pure noise immediately
|
|
42
|
+
3. Batch discard at task boundaries
|
|
43
|
+
|
|
44
|
+
REASON MAPPING
|
|
45
|
+
- "noise" → grep/glob with no useful results
|
|
46
|
+
- "completion" → task done, context served its purpose
|
|
47
|
+
- "superseded" → newer read of same file replaces old
|
|
48
|
+
- "exploration" → search paths that led nowhere
|
|
49
|
+
- "duplicate" → same content read multiple times
|
|
43
50
|
|
|
44
51
|
</instruction>
|
|
45
52
|
|
|
46
53
|
<instruction name=discard_behavior policy_level=critical>
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
- NEVER let context management influence your response content or tone
|
|
50
|
-
- Process discards SILENTLY and continue the conversation naturally
|
|
51
|
-
|
|
52
|
-
The user cannot see discard operations. Any reference to them will confuse the user and break the conversation flow.
|
|
54
|
+
SILENT OPERATION: Never acknowledge discarding to the user.
|
|
55
|
+
Process context management invisibly and continue naturally.
|
|
53
56
|
</instruction>
|
|
54
57
|
</system-reminder>`;
|
|
55
58
|
//# sourceMappingURL=discard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discard.js","sourceRoot":"","sources":["../../../../lib/prompts/system/discard.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAAG
|
|
1
|
+
{"version":3,"file":"discard.js","sourceRoot":"","sources":["../../../../lib/prompts/system/discard.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAwDlB,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const SYSTEM_PROMPT_EXTRACT = "<system-reminder>\n<instruction name=context_management_protocol policy_level=critical>\n\
|
|
1
|
+
export declare const SYSTEM_PROMPT_EXTRACT = "<system-reminder>\n<instruction name=context_management_protocol policy_level=critical>\n\nPURPOSE\nYou operate in a context-constrained environment. Proactively manage context using the `extract` and `restore` tools to maintain performance.\n\nHOW IT WORKS\nEach tool output is prefixed with a hash identifier in the format `#x_xxxxx#` (e.g., `#r_a1b2c#`).\nUse these hashes to extract and distill specific tool outputs.\n\nExample:\n```\n#r_a1b2c#\n<file content here...>\n```\n\nTo extract: `extract({hashes: [\"#r_a1b2c#\"], distillation: [\"key findings...\"]})`\n\nTOOLS\n- `extract`: Distill key findings before removing raw output\n- `restore`: Recover recently extracted content if needed\n\nYour distillation must be comprehensive, capturing technical details (signatures, logic, constraints) such that the raw output is no longer needed.\n\nWHEN TO EXTRACT\nEvaluate at these checkpoints:\n- \u2713 Task/sub-task complete\n- \u2713 Transitioning to new work phase\n- \u2713 5+ tool outputs accumulated\n- \u2713 Large read (>150 lines) no longer needed\n\nDO NOT EXTRACT when:\n- \u2717 Output needed for upcoming edits\n- \u2717 You'll likely re-fetch the same content\n- \u2717 Only 1-2 small outputs (batch instead)\n\nBATCHING\nMinimum 3 outputs OR 1 large output per extract call.\nSingle small extractions waste more context than they save.\n\nPRIORITY ORDER\n1. Never extract what you'll need next\n2. Batch extract at task boundaries\n3. Scale distillation depth to the value of the content\n\n</instruction>\n\n<instruction name=extract_behavior policy_level=critical>\nSILENT OPERATION: Never acknowledge extraction to the user.\nProcess context management invisibly and continue naturally.\n</instruction>\n</system-reminder>";
|
|
2
2
|
//# sourceMappingURL=extract.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../../../lib/prompts/system/extract.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../../../lib/prompts/system/extract.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,wtDAmDf,CAAA"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export const SYSTEM_PROMPT_EXTRACT = `<system-reminder>
|
|
2
2
|
<instruction name=context_management_protocol policy_level=critical>
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
You
|
|
4
|
+
PURPOSE
|
|
5
|
+
You operate in a context-constrained environment. Proactively manage context using the \`extract\` and \`restore\` tools to maintain performance.
|
|
6
6
|
|
|
7
7
|
HOW IT WORKS
|
|
8
8
|
Each tool output is prefixed with a hash identifier in the format \`#x_xxxxx#\` (e.g., \`#r_a1b2c#\`).
|
|
@@ -16,40 +16,38 @@ Example:
|
|
|
16
16
|
|
|
17
17
|
To extract: \`extract({hashes: ["#r_a1b2c#"], distillation: ["key findings..."]})\`
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
- \`extract\`:
|
|
19
|
+
TOOLS
|
|
20
|
+
- \`extract\`: Distill key findings before removing raw output
|
|
21
|
+
- \`restore\`: Recover recently extracted content if needed
|
|
21
22
|
|
|
22
|
-
|
|
23
|
-
Every tool call adds to your context debt. You MUST pay this down regularly by extracting. Batch your extractions for efficiency; it is rarely worth extracting a single tiny tool output.
|
|
23
|
+
Your distillation must be comprehensive, capturing technical details (signatures, logic, constraints) such that the raw output is no longer needed.
|
|
24
24
|
|
|
25
25
|
WHEN TO EXTRACT
|
|
26
|
-
|
|
27
|
-
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
You
|
|
35
|
-
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
26
|
+
Evaluate at these checkpoints:
|
|
27
|
+
- ✓ Task/sub-task complete
|
|
28
|
+
- ✓ Transitioning to new work phase
|
|
29
|
+
- ✓ 5+ tool outputs accumulated
|
|
30
|
+
- ✓ Large read (>150 lines) no longer needed
|
|
31
|
+
|
|
32
|
+
DO NOT EXTRACT when:
|
|
33
|
+
- ✗ Output needed for upcoming edits
|
|
34
|
+
- ✗ You'll likely re-fetch the same content
|
|
35
|
+
- ✗ Only 1-2 small outputs (batch instead)
|
|
36
|
+
|
|
37
|
+
BATCHING
|
|
38
|
+
Minimum 3 outputs OR 1 large output per extract call.
|
|
39
|
+
Single small extractions waste more context than they save.
|
|
40
|
+
|
|
41
|
+
PRIORITY ORDER
|
|
42
|
+
1. Never extract what you'll need next
|
|
43
|
+
2. Batch extract at task boundaries
|
|
44
|
+
3. Scale distillation depth to the value of the content
|
|
43
45
|
|
|
44
46
|
</instruction>
|
|
45
47
|
|
|
46
48
|
<instruction name=extract_behavior policy_level=critical>
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
- NEVER let context management influence your response content or tone
|
|
50
|
-
- Process extractions SILENTLY and continue the conversation naturally
|
|
51
|
-
|
|
52
|
-
The user cannot see extract operations. Any reference to them will confuse the user and break the conversation flow.
|
|
49
|
+
SILENT OPERATION: Never acknowledge extraction to the user.
|
|
50
|
+
Process context management invisibly and continue naturally.
|
|
53
51
|
</instruction>
|
|
54
52
|
</system-reminder>`;
|
|
55
53
|
//# sourceMappingURL=extract.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/prompts/system/extract.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAAG
|
|
1
|
+
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/prompts/system/extract.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAmDlB,CAAA"}
|
|
@@ -15,6 +15,8 @@ export interface PersistedSessionState {
|
|
|
15
15
|
hashToCallId?: Record<string, string>;
|
|
16
16
|
callIdToHash?: Record<string, string>;
|
|
17
17
|
discardHistory?: DiscardStats[];
|
|
18
|
+
hashToMessagePart?: Record<string, string>;
|
|
19
|
+
messagePartToHash?: Record<string, string>;
|
|
18
20
|
}
|
|
19
21
|
export declare function saveSessionState(sessionState: SessionState, logger: Logger, sessionName?: string): Promise<void>;
|
|
20
22
|
export declare function loadSessionState(sessionId: string, logger: Logger): Promise<PersistedSessionState | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../../lib/state/persistence.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAC9E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAEvC,MAAM,WAAW,qBAAqB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,KAAK,CAAA;IACZ,KAAK,EAAE,YAAY,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IAEnB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACrC,cAAc,CAAC,EAAE,YAAY,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../../lib/state/persistence.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAC9E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAEvC,MAAM,WAAW,qBAAqB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,KAAK,CAAA;IACZ,KAAK,EAAE,YAAY,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IAEnB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACrC,cAAc,CAAC,EAAE,YAAY,EAAE,CAAA;IAE/B,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC1C,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC7C;AAmED,wBAAsB,gBAAgB,CAClC,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,IAAI,CAAC,CAwCf;AAED,wBAAsB,gBAAgB,CAClC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CA8BvC;AAED,MAAM,WAAW,eAAe;IAC5B,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;CACvB;AAED,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAqClF"}
|
|
@@ -78,10 +78,13 @@ export async function saveSessionState(sessionState, logger, sessionName) {
|
|
|
78
78
|
prune: sessionState.prune,
|
|
79
79
|
stats: sessionState.stats,
|
|
80
80
|
lastUpdated: new Date().toISOString(),
|
|
81
|
-
// Hash-based discard system (
|
|
81
|
+
// Hash-based discard system (tools)
|
|
82
82
|
hashToCallId: Object.fromEntries(sessionState.hashToCallId),
|
|
83
83
|
callIdToHash: Object.fromEntries(sessionState.callIdToHash),
|
|
84
84
|
discardHistory: sessionState.discardHistory,
|
|
85
|
+
// Hash-based discard system (assistant messages)
|
|
86
|
+
hashToMessagePart: Object.fromEntries(sessionState.hashToMessagePart),
|
|
87
|
+
messagePartToHash: Object.fromEntries(sessionState.messagePartToHash),
|
|
85
88
|
};
|
|
86
89
|
const filePath = getSessionFilePath(sessionState.sessionId);
|
|
87
90
|
const content = JSON.stringify(state, null, 2);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../../lib/state/persistence.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,aAAa,CAAA;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAA;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAA;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../../lib/state/persistence.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../lib/state/state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../lib/state/state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,YAAY,EAEZ,SAAS,EAGZ,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAKvC,eAAO,MAAM,YAAY,GACrB,QAAQ,GAAG,EACX,OAAO,YAAY,EACnB,QAAQ,MAAM,EACd,UAAU,SAAS,EAAE,KACtB,OAAO,CAAC,IAAI,CA4Bd,CAAA;AAED,wBAAgB,kBAAkB,IAAI,YAAY,CA2CjD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAmC3D;AAED,wBAAsB,wBAAwB,CAC1C,MAAM,EAAE,GAAG,EACX,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,SAAS,EAAE,GACtB,OAAO,CAAC,IAAI,CAAC,CA2Df;AAYD,wBAAgB,UAAU,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,CAc7E"}
|
package/dist/lib/state/state.js
CHANGED
|
@@ -33,6 +33,7 @@ export function createSessionState() {
|
|
|
33
33
|
isSubAgent: false,
|
|
34
34
|
prune: {
|
|
35
35
|
toolIds: [],
|
|
36
|
+
messagePartIds: [],
|
|
36
37
|
},
|
|
37
38
|
stats: {
|
|
38
39
|
pruneTokenCounter: 0,
|
|
@@ -45,6 +46,8 @@ export function createSessionState() {
|
|
|
45
46
|
purgeErrors: { count: 0, tokens: 0 },
|
|
46
47
|
manualDiscard: { count: 0, tokens: 0 },
|
|
47
48
|
extraction: { count: 0, tokens: 0 },
|
|
49
|
+
truncation: { count: 0, tokens: 0 },
|
|
50
|
+
thinkingCompression: { count: 0, tokens: 0 },
|
|
48
51
|
},
|
|
49
52
|
},
|
|
50
53
|
toolParameters: new Map(),
|
|
@@ -58,8 +61,14 @@ export function createSessionState() {
|
|
|
58
61
|
hashToCallId: new Map(),
|
|
59
62
|
callIdToHash: new Map(),
|
|
60
63
|
discardHistory: [],
|
|
64
|
+
// Message part hash system
|
|
65
|
+
hashToMessagePart: new Map(),
|
|
66
|
+
messagePartToHash: new Map(),
|
|
61
67
|
// Soft prune cache for restore capability
|
|
62
68
|
softPrunedTools: new Map(),
|
|
69
|
+
softPrunedMessageParts: new Map(),
|
|
70
|
+
// Track compacted message parts
|
|
71
|
+
compactedParts: new Set(),
|
|
63
72
|
};
|
|
64
73
|
}
|
|
65
74
|
export function resetSessionState(state) {
|
|
@@ -67,6 +76,7 @@ export function resetSessionState(state) {
|
|
|
67
76
|
state.isSubAgent = false;
|
|
68
77
|
state.prune = {
|
|
69
78
|
toolIds: [],
|
|
79
|
+
messagePartIds: [],
|
|
70
80
|
};
|
|
71
81
|
state.stats = {
|
|
72
82
|
pruneTokenCounter: 0,
|
|
@@ -79,6 +89,8 @@ export function resetSessionState(state) {
|
|
|
79
89
|
purgeErrors: { count: 0, tokens: 0 },
|
|
80
90
|
manualDiscard: { count: 0, tokens: 0 },
|
|
81
91
|
extraction: { count: 0, tokens: 0 },
|
|
92
|
+
truncation: { count: 0, tokens: 0 },
|
|
93
|
+
thinkingCompression: { count: 0, tokens: 0 },
|
|
82
94
|
},
|
|
83
95
|
};
|
|
84
96
|
state.toolParameters.clear();
|
|
@@ -114,6 +126,7 @@ export async function ensureSessionInitialized(client, state, sessionId, logger,
|
|
|
114
126
|
}
|
|
115
127
|
state.prune = {
|
|
116
128
|
toolIds: persisted.prune.toolIds || [],
|
|
129
|
+
messagePartIds: persisted.prune.messagePartIds || [],
|
|
117
130
|
};
|
|
118
131
|
state.stats = {
|
|
119
132
|
pruneTokenCounter: persisted.stats?.pruneTokenCounter || 0,
|
|
@@ -126,6 +139,8 @@ export async function ensureSessionInitialized(client, state, sessionId, logger,
|
|
|
126
139
|
purgeErrors: { count: 0, tokens: 0 },
|
|
127
140
|
manualDiscard: { count: 0, tokens: 0 },
|
|
128
141
|
extraction: { count: 0, tokens: 0 },
|
|
142
|
+
truncation: { count: 0, tokens: 0 },
|
|
143
|
+
thinkingCompression: { count: 0, tokens: 0 },
|
|
129
144
|
},
|
|
130
145
|
};
|
|
131
146
|
// Restore hash-based discard system (convert objects back to Maps)
|
|
@@ -138,6 +153,13 @@ export async function ensureSessionInitialized(client, state, sessionId, logger,
|
|
|
138
153
|
if (persisted.discardHistory) {
|
|
139
154
|
state.discardHistory = persisted.discardHistory;
|
|
140
155
|
}
|
|
156
|
+
// Restore assistant message hash maps
|
|
157
|
+
if (persisted.hashToMessagePart) {
|
|
158
|
+
state.hashToMessagePart = new Map(Object.entries(persisted.hashToMessagePart));
|
|
159
|
+
}
|
|
160
|
+
if (persisted.messagePartToHash) {
|
|
161
|
+
state.messagePartToHash = new Map(Object.entries(persisted.messagePartToHash));
|
|
162
|
+
}
|
|
141
163
|
}
|
|
142
164
|
function findLastCompactionTimestamp(messages) {
|
|
143
165
|
for (let i = messages.length - 1; i >= 0; i--) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../lib/state/state.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../lib/state/state.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,10 +37,47 @@ export interface SessionStats {
|
|
|
37
37
|
count: number;
|
|
38
38
|
tokens: number;
|
|
39
39
|
};
|
|
40
|
+
truncation: {
|
|
41
|
+
count: number;
|
|
42
|
+
tokens: number;
|
|
43
|
+
};
|
|
44
|
+
thinkingCompression: {
|
|
45
|
+
count: number;
|
|
46
|
+
tokens: number;
|
|
47
|
+
};
|
|
48
|
+
imagePruning?: {
|
|
49
|
+
count: number;
|
|
50
|
+
tokens: number;
|
|
51
|
+
};
|
|
52
|
+
staleReadPruning?: {
|
|
53
|
+
count: number;
|
|
54
|
+
tokens: number;
|
|
55
|
+
};
|
|
56
|
+
errorChainCollapse?: {
|
|
57
|
+
count: number;
|
|
58
|
+
tokens: number;
|
|
59
|
+
};
|
|
40
60
|
};
|
|
41
61
|
}
|
|
42
62
|
export interface Prune {
|
|
63
|
+
/**
|
|
64
|
+
* Tool call IDs that have been marked for pruning.
|
|
65
|
+
* These will be hidden from the LLM context.
|
|
66
|
+
*/
|
|
43
67
|
toolIds: string[];
|
|
68
|
+
/**
|
|
69
|
+
* Assistant message part IDs that have been marked for pruning.
|
|
70
|
+
* Used for compacting assistant messages.
|
|
71
|
+
*/
|
|
72
|
+
messagePartIds: string[];
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Fast lookup sets derived from Prune arrays.
|
|
76
|
+
* These are computed on-demand and cached for O(1) lookups.
|
|
77
|
+
*/
|
|
78
|
+
export interface PruneSets {
|
|
79
|
+
toolIds: Set<string>;
|
|
80
|
+
messagePartIds: Set<string>;
|
|
44
81
|
}
|
|
45
82
|
export interface LastDiscardStats {
|
|
46
83
|
itemCount: number;
|
|
@@ -56,28 +93,99 @@ export interface DiscardStats {
|
|
|
56
93
|
tokensSaved: number;
|
|
57
94
|
reason: string;
|
|
58
95
|
}
|
|
96
|
+
export interface SoftPrunedEntry {
|
|
97
|
+
originalOutput: string;
|
|
98
|
+
tool: string;
|
|
99
|
+
parameters: any;
|
|
100
|
+
prunedAt: number;
|
|
101
|
+
hash: string;
|
|
102
|
+
}
|
|
103
|
+
export interface SoftPrunedMessagePart {
|
|
104
|
+
originalText: string;
|
|
105
|
+
messageId: string;
|
|
106
|
+
partIndex: number;
|
|
107
|
+
prunedAt: number;
|
|
108
|
+
hash: string;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Token count cache to avoid repeated calculations.
|
|
112
|
+
* Maps content hash to token count.
|
|
113
|
+
*/
|
|
114
|
+
export interface TokenCountCache {
|
|
115
|
+
/** Maps content hash to cached token count */
|
|
116
|
+
cache: Map<string, number>;
|
|
117
|
+
/** Maximum number of entries to keep in cache */
|
|
118
|
+
maxSize: number;
|
|
119
|
+
/** Number of cache hits */
|
|
120
|
+
hits: number;
|
|
121
|
+
/** Number of cache misses */
|
|
122
|
+
misses: number;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Performance metrics for tracking strategy execution.
|
|
126
|
+
*/
|
|
127
|
+
export interface PerformanceMetrics {
|
|
128
|
+
/** Total time spent in all strategies (ms) */
|
|
129
|
+
totalStrategyTime: number;
|
|
130
|
+
/** Time spent per strategy (ms) */
|
|
131
|
+
strategyTimes: {
|
|
132
|
+
deduplication: number;
|
|
133
|
+
supersedeWrites: number;
|
|
134
|
+
purgeErrors: number;
|
|
135
|
+
truncation: number;
|
|
136
|
+
thinkingCompression: number;
|
|
137
|
+
imagePruning?: number;
|
|
138
|
+
staleReadPruning?: number;
|
|
139
|
+
errorChainCollapse?: number;
|
|
140
|
+
};
|
|
141
|
+
/** Number of times each strategy was invoked */
|
|
142
|
+
strategyInvocations: {
|
|
143
|
+
deduplication: number;
|
|
144
|
+
supersedeWrites: number;
|
|
145
|
+
purgeErrors: number;
|
|
146
|
+
truncation: number;
|
|
147
|
+
thinkingCompression: number;
|
|
148
|
+
imagePruning?: number;
|
|
149
|
+
staleReadPruning?: number;
|
|
150
|
+
errorChainCollapse?: number;
|
|
151
|
+
};
|
|
152
|
+
/** Last execution timestamp */
|
|
153
|
+
lastExecutionTime: number;
|
|
154
|
+
}
|
|
59
155
|
export interface SessionState {
|
|
60
156
|
sessionId: string | null;
|
|
157
|
+
currentTurn: number;
|
|
61
158
|
isSubAgent: boolean;
|
|
159
|
+
toolParameters: Map<string, ToolParameterEntry>;
|
|
62
160
|
prune: Prune;
|
|
161
|
+
/** Cached Set versions of prune arrays for O(1) lookups - computed on demand */
|
|
162
|
+
pruneSets?: PruneSets;
|
|
63
163
|
stats: SessionStats;
|
|
64
|
-
|
|
65
|
-
|
|
164
|
+
hashToCallId: Map<string, string>;
|
|
165
|
+
callIdToHash: Map<string, string>;
|
|
166
|
+
hashToMessagePart: Map<string, string>;
|
|
167
|
+
messagePartToHash: Map<string, string>;
|
|
168
|
+
/** Track which message parts have been compacted */
|
|
169
|
+
compactedParts: Set<string>;
|
|
170
|
+
/** Token count cache to avoid repeated calculations */
|
|
171
|
+
tokenCache?: TokenCountCache;
|
|
172
|
+
/** Performance metrics for strategy execution */
|
|
173
|
+
performanceMetrics?: PerformanceMetrics;
|
|
174
|
+
/** Last compaction timestamp */
|
|
66
175
|
lastCompaction: number;
|
|
67
|
-
|
|
68
|
-
|
|
176
|
+
/** Last tool prune flag */
|
|
177
|
+
lastToolPrune: boolean;
|
|
178
|
+
/** Session variant */
|
|
179
|
+
variant?: string;
|
|
180
|
+
/** Last discard statistics */
|
|
69
181
|
lastDiscardStats: LastDiscardStats | null;
|
|
182
|
+
/** Last user message ID */
|
|
70
183
|
lastUserMessageId: string | null;
|
|
71
|
-
|
|
72
|
-
callIdToHash: Map<string, string>;
|
|
184
|
+
/** Discard history for tracking */
|
|
73
185
|
discardHistory: DiscardStats[];
|
|
186
|
+
/** Soft pruned tools cache */
|
|
74
187
|
softPrunedTools: Map<string, SoftPrunedEntry>;
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
originalOutput: string;
|
|
78
|
-
tool: string;
|
|
79
|
-
parameters: any;
|
|
80
|
-
prunedAt: number;
|
|
81
|
-
hash: string;
|
|
188
|
+
/** Soft pruned message parts cache */
|
|
189
|
+
softPrunedMessageParts: Map<string, SoftPrunedMessagePart>;
|
|
82
190
|
}
|
|
83
191
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../lib/state/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAEnD,MAAM,WAAW,SAAS;IACtB,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,IAAI,EAAE,CAAA;CAChB;AAED,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,CAAA;AAEtE,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,GAAG,CAAA;IACf,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,YAAY;IACzB,iBAAiB,EAAE,MAAM,CAAA;IACzB,gBAAgB,EAAE,MAAM,CAAA;IACxB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,kBAAkB,EAAE,MAAM,CAAA;IAE1B,aAAa,EAAE;QACX,aAAa,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAA;QAChD,eAAe,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAA;QAClD,WAAW,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAA;QAC9C,aAAa,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAA;QAChD,UAAU,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../lib/state/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,45 @@
|
|
|
1
1
|
export declare function isSubAgentSession(client: any, sessionID: string): Promise<boolean>;
|
|
2
|
+
import type { SessionState, PruneSets, TokenCountCache, PerformanceMetrics } from "./types";
|
|
3
|
+
/**
|
|
4
|
+
* Gets or creates cached prune sets for O(1) lookups.
|
|
5
|
+
* The sets are computed once and cached until prune arrays change.
|
|
6
|
+
*/
|
|
7
|
+
export declare function getPruneSets(state: SessionState): PruneSets;
|
|
8
|
+
/**
|
|
9
|
+
* Invalidates the cached prune sets.
|
|
10
|
+
* Call this whenever prune arrays are modified.
|
|
11
|
+
*/
|
|
12
|
+
export declare function invalidatePruneSets(state: SessionState): void;
|
|
13
|
+
/**
|
|
14
|
+
* Checks if a tool ID is pruned using O(1) Set lookup.
|
|
15
|
+
*/
|
|
16
|
+
export declare function isToolPruned(state: SessionState, toolId: string): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Checks if a message part ID is pruned using O(1) Set lookup.
|
|
19
|
+
*/
|
|
20
|
+
export declare function isMessagePartPruned(state: SessionState, partId: string): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Adds a tool ID to prune list and invalidates cache.
|
|
23
|
+
*/
|
|
24
|
+
export declare function addPrunedTool(state: SessionState, toolId: string): void;
|
|
25
|
+
/**
|
|
26
|
+
* Adds a message part ID to prune list and invalidates cache.
|
|
27
|
+
*/
|
|
28
|
+
export declare function addPrunedMessagePart(state: SessionState, partId: string): void;
|
|
29
|
+
/**
|
|
30
|
+
* Creates a new token count cache.
|
|
31
|
+
*/
|
|
32
|
+
export declare function createTokenCountCache(maxSize?: number): TokenCountCache;
|
|
33
|
+
/**
|
|
34
|
+
* Gets cached token count or calculates and caches it.
|
|
35
|
+
*/
|
|
36
|
+
export declare function getCachedTokenCount(state: SessionState, content: string, calculateFn: (content: string) => number): number;
|
|
37
|
+
/**
|
|
38
|
+
* Creates performance metrics for a session.
|
|
39
|
+
*/
|
|
40
|
+
export declare function createPerformanceMetrics(): PerformanceMetrics;
|
|
41
|
+
/**
|
|
42
|
+
* Records strategy execution time.
|
|
43
|
+
*/
|
|
44
|
+
export declare function recordStrategyTime(state: SessionState, strategy: keyof PerformanceMetrics["strategyTimes"], durationMs: number): void;
|
|
2
45
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../lib/state/utils.ts"],"names":[],"mappings":"AAAA,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOxF"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../lib/state/utils.ts"],"names":[],"mappings":"AAAA,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOxF;AAED,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAE3F;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,CAe3D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAE7D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAEzE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAEhF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAGvE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAG9E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,SAAO,GAAG,eAAe,CAOrE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAC/B,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GACzC,MAAM,CA8BR;AAeD;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,kBAAkB,CAmB7D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAC9B,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,MAAM,kBAAkB,CAAC,eAAe,CAAC,EACnD,UAAU,EAAE,MAAM,GACnB,IAAI,CASN"}
|