zelari-code 1.20.0 → 1.22.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/dist/cli/app.js +2 -1
- package/dist/cli/app.js.map +1 -1
- package/dist/cli/budget/historySummary.js +127 -0
- package/dist/cli/budget/historySummary.js.map +1 -0
- package/dist/cli/budget/llmCompact.js +114 -0
- package/dist/cli/budget/llmCompact.js.map +1 -0
- package/dist/cli/budget/tokenBudget.js +111 -24
- package/dist/cli/budget/tokenBudget.js.map +1 -1
- package/dist/cli/components/StatusBar.js +4 -1
- package/dist/cli/components/StatusBar.js.map +1 -1
- package/dist/cli/hooks/conversationContext.js +7 -0
- package/dist/cli/hooks/conversationContext.js.map +1 -1
- package/dist/cli/hooks/historyCompaction.js +77 -14
- package/dist/cli/hooks/historyCompaction.js.map +1 -1
- package/dist/cli/hooks/permissionPicker.js +76 -0
- package/dist/cli/hooks/permissionPicker.js.map +1 -0
- package/dist/cli/hooks/useChatTurn.js +32 -5
- package/dist/cli/hooks/useChatTurn.js.map +1 -1
- package/dist/cli/main.bundled.js +1483 -579
- package/dist/cli/main.bundled.js.map +4 -4
- package/dist/cli/plugins/registry.js +0 -13
- package/dist/cli/plugins/registry.js.map +1 -1
- package/dist/cli/runHeadless.js +30 -1
- package/dist/cli/runHeadless.js.map +1 -1
- package/dist/cli/safety/toolPermissions.js +123 -0
- package/dist/cli/safety/toolPermissions.js.map +1 -0
- package/dist/cli/sessionTodos.js +67 -0
- package/dist/cli/sessionTodos.js.map +1 -0
- package/dist/cli/toolRegistry.js +134 -43
- package/dist/cli/toolRegistry.js.map +1 -1
- package/dist/cli/tools/skillTool.js +78 -0
- package/dist/cli/tools/skillTool.js.map +1 -0
- package/dist/cli/tools/taskTool.js +81 -47
- package/dist/cli/tools/taskTool.js.map +1 -1
- package/dist/cli/tools/todoTools.js +68 -0
- package/dist/cli/tools/todoTools.js.map +1 -0
- package/package.json +2 -2
package/dist/cli/app.js
CHANGED
|
@@ -16,6 +16,7 @@ import { listCodingSkills } from '@zelari/core/skills';
|
|
|
16
16
|
import { useGitChanges } from './hooks/useGitChanges.js';
|
|
17
17
|
import { useExecutionTimer } from './hooks/useExecutionTimer.js';
|
|
18
18
|
import { shortenCwd } from './utils/paths.js';
|
|
19
|
+
import { formatTodoStatusSummary } from './sessionTodos.js';
|
|
19
20
|
import '@zelari/core/skills/builtin/debugging';
|
|
20
21
|
import '@zelari/core/skills/builtin/docs';
|
|
21
22
|
import '@zelari/core/skills/builtin/git-ops';
|
|
@@ -241,7 +242,7 @@ export function App() {
|
|
|
241
242
|
React.createElement(Box, { flexDirection: "column", flexGrow: 1, paddingX: 1 },
|
|
242
243
|
React.createElement(LiveRegion, { live: session.live, busy: busy, elapsedMs: timer.elapsedMs }),
|
|
243
244
|
picker ? (React.createElement(SelectList, { title: picker.title, items: picker.items, onSelect: onPickerSelect, onCancel: onPickerCancel, maxVisible: Math.max(4, Math.min(10, size.rows - 10)) })) : (React.createElement(InputBar, { value: input, onChange: setInput, onSubmit: handleSubmit, disabled: busy })),
|
|
244
|
-
React.createElement(StatusBar, { model: activeModel, provider: activeProviderSpec.id, sessionId: session.sessionId ? session.sessionId.slice(0, 8) : '...', sessionActive: session.sessionActive, queueCount: chatTurn.queueCount, busy: busy, mode: mode, phase: phase, cwd: cwd, elapsedMs: timer.elapsedMs, lastMs: timer.lastMs, costUsd: sessionStats.totalCostUsd, cachedTokens: sessionStats.cachedTokens, cacheHitRate: sessionStats.cacheHitRate || 0, contextUsed: sessionStats.contextTokens || 0, contextLimit: Number(process.env.ZELARI_CONTEXT_LIMIT) || 200_000 })),
|
|
245
|
+
React.createElement(StatusBar, { model: activeModel, provider: activeProviderSpec.id, sessionId: session.sessionId ? session.sessionId.slice(0, 8) : '...', sessionActive: session.sessionActive, queueCount: chatTurn.queueCount, busy: busy, mode: mode, phase: phase, cwd: cwd, elapsedMs: timer.elapsedMs, lastMs: timer.lastMs, costUsd: sessionStats.totalCostUsd, cachedTokens: sessionStats.cachedTokens, cacheHitRate: sessionStats.cacheHitRate || 0, contextUsed: sessionStats.contextTokens || 0, contextLimit: Number(process.env.ZELARI_CONTEXT_LIMIT) || 200_000, todoSummary: formatTodoStatusSummary() })),
|
|
245
246
|
sidebarOpen && (React.createElement(Sidebar, { version: VERSION, changes: gitChanges, rows: size.rows })))));
|
|
246
247
|
}
|
|
247
248
|
// Re-export so legacy imports keep working (Task v0.4.2 audit split).
|
package/dist/cli/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/cli/app.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/cli/app.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
const MAX_SUMMARY_CHARS = 3_500;
|
|
2
|
+
const MAX_LLM_INPUT_CHARS = 24_000;
|
|
3
|
+
/**
|
|
4
|
+
* Build a structured extractive summary of messages that will be dropped from
|
|
5
|
+
* the rolling history. No network — pure heuristics.
|
|
6
|
+
*/
|
|
7
|
+
export function extractiveHistorySummary(dropped, opts) {
|
|
8
|
+
const maxChars = opts?.maxChars ?? MAX_SUMMARY_CHARS;
|
|
9
|
+
if (dropped.length === 0)
|
|
10
|
+
return 'No prior turns.';
|
|
11
|
+
const userGoals = [];
|
|
12
|
+
const assistantNotes = [];
|
|
13
|
+
const tools = new Map();
|
|
14
|
+
const files = new Set();
|
|
15
|
+
let toolResults = 0;
|
|
16
|
+
for (const m of dropped) {
|
|
17
|
+
if (m.role === 'user' && m.content.trim()) {
|
|
18
|
+
userGoals.push(oneLine(m.content, 220));
|
|
19
|
+
}
|
|
20
|
+
else if (m.role === 'assistant') {
|
|
21
|
+
if (m.content.trim()) {
|
|
22
|
+
assistantNotes.push(oneLine(m.content, 180));
|
|
23
|
+
}
|
|
24
|
+
if (m.toolCalls) {
|
|
25
|
+
for (const tc of m.toolCalls) {
|
|
26
|
+
tools.set(tc.name, (tools.get(tc.name) ?? 0) + 1);
|
|
27
|
+
collectPaths(tc.args, files);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
else if (m.role === 'tool') {
|
|
32
|
+
toolResults += 1;
|
|
33
|
+
collectPathsFromText(m.content, files);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
const parts = [
|
|
37
|
+
'[history-summary] Earlier turns were compacted to stay within the context budget.',
|
|
38
|
+
`Dropped ${dropped.length} message(s) (${userGoals.length} user, ${assistantNotes.length} assistant notes, ${toolResults} tool results).`,
|
|
39
|
+
];
|
|
40
|
+
if (userGoals.length) {
|
|
41
|
+
parts.push('## User goals / requests');
|
|
42
|
+
for (const g of userGoals.slice(-6))
|
|
43
|
+
parts.push(`- ${g}`);
|
|
44
|
+
}
|
|
45
|
+
if (assistantNotes.length) {
|
|
46
|
+
parts.push('## Assistant conclusions (truncated)');
|
|
47
|
+
for (const a of assistantNotes.slice(-5))
|
|
48
|
+
parts.push(`- ${a}`);
|
|
49
|
+
}
|
|
50
|
+
if (tools.size) {
|
|
51
|
+
const ranked = [...tools.entries()]
|
|
52
|
+
.sort((a, b) => b[1] - a[1])
|
|
53
|
+
.slice(0, 12)
|
|
54
|
+
.map(([n, c]) => `${n}×${c}`);
|
|
55
|
+
parts.push(`## Tools used: ${ranked.join(', ')}`);
|
|
56
|
+
}
|
|
57
|
+
if (files.size) {
|
|
58
|
+
const list = [...files].slice(0, 24);
|
|
59
|
+
parts.push(`## Paths mentioned: ${list.join(', ')}`);
|
|
60
|
+
}
|
|
61
|
+
parts.push('Continue from the recent messages below; do not re-ask goals already answered above unless the user changes them.');
|
|
62
|
+
let out = parts.join('\n');
|
|
63
|
+
if (out.length > maxChars) {
|
|
64
|
+
out = `${out.slice(0, maxChars - 1)}…`;
|
|
65
|
+
}
|
|
66
|
+
return out;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Compact representation of dropped history for an LLM summarizer (bounded).
|
|
70
|
+
*/
|
|
71
|
+
export function formatDroppedForLlm(dropped) {
|
|
72
|
+
const lines = [];
|
|
73
|
+
for (const m of dropped) {
|
|
74
|
+
if (m.role === 'user') {
|
|
75
|
+
lines.push(`USER: ${oneLine(m.content, 400)}`);
|
|
76
|
+
}
|
|
77
|
+
else if (m.role === 'assistant') {
|
|
78
|
+
const tools = m.toolCalls?.map((t) => t.name).join(',') || '';
|
|
79
|
+
const body = oneLine(m.content, 300);
|
|
80
|
+
lines.push(tools
|
|
81
|
+
? `ASSISTANT(tools=${tools}): ${body}`
|
|
82
|
+
: `ASSISTANT: ${body}`);
|
|
83
|
+
}
|
|
84
|
+
else if (m.role === 'tool') {
|
|
85
|
+
lines.push(`TOOL(${m.toolCallId ?? '?'}): ${oneLine(m.content, 160)}`);
|
|
86
|
+
}
|
|
87
|
+
else if (m.role === 'system') {
|
|
88
|
+
lines.push(`SYSTEM: ${oneLine(m.content, 200)}`);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
let body = lines.join('\n');
|
|
92
|
+
if (body.length > MAX_LLM_INPUT_CHARS) {
|
|
93
|
+
body = body.slice(body.length - MAX_LLM_INPUT_CHARS);
|
|
94
|
+
}
|
|
95
|
+
return body;
|
|
96
|
+
}
|
|
97
|
+
function oneLine(s, max) {
|
|
98
|
+
const t = s.replace(/\s+/g, ' ').trim();
|
|
99
|
+
if (t.length <= max)
|
|
100
|
+
return t;
|
|
101
|
+
return `${t.slice(0, max - 1)}…`;
|
|
102
|
+
}
|
|
103
|
+
function collectPaths(args, out) {
|
|
104
|
+
if (!args || typeof args !== 'object')
|
|
105
|
+
return;
|
|
106
|
+
const obj = args;
|
|
107
|
+
for (const key of ['path', 'file', 'filepath', 'filePath', 'target', 'cwd']) {
|
|
108
|
+
const v = obj[key];
|
|
109
|
+
if (typeof v === 'string' && v.length > 1 && v.length < 260) {
|
|
110
|
+
out.add(v.replace(/\\/g, '/'));
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
// Nested common shapes
|
|
114
|
+
if (typeof obj.file_path === 'string')
|
|
115
|
+
out.add(String(obj.file_path));
|
|
116
|
+
}
|
|
117
|
+
function collectPathsFromText(text, out) {
|
|
118
|
+
// Cheap path-ish tokens (src/foo.ts, packages/core/x.ts)
|
|
119
|
+
const re = /(?:^|[\s"'`])((?:[\w.-]+\/)+[\w.-]+\.\w{1,8})/g;
|
|
120
|
+
let m;
|
|
121
|
+
let n = 0;
|
|
122
|
+
while ((m = re.exec(text)) !== null && n < 8) {
|
|
123
|
+
out.add(m[1]);
|
|
124
|
+
n += 1;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=historySummary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"historySummary.js","sourceRoot":"","sources":["../../../src/cli/budget/historySummary.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Optional LLM pass for history compaction summaries.
|
|
3
|
+
* Falls back to null on any failure so callers use extractive summary.
|
|
4
|
+
*
|
|
5
|
+
* Disable with ZELARI_LLM_COMPACT=0.
|
|
6
|
+
*
|
|
7
|
+
* @since v1.21.0
|
|
8
|
+
*/
|
|
9
|
+
import { getModelForProvider, getProviderConfig, getCustomEndpoint, } from '../providerConfig.js';
|
|
10
|
+
import { resolveApiKeyWithMeta } from '../keyStore.js';
|
|
11
|
+
import { PROVIDER_ENDPOINTS, } from '../provider/openai-compatible.js';
|
|
12
|
+
const COMPACT_SYSTEM = `You compress earlier turns of a coding-agent session into a dense continuity brief.
|
|
13
|
+
Output plain text (no markdown fences) with these sections:
|
|
14
|
+
1) Goal — what the user wants
|
|
15
|
+
2) Decisions — choices already made
|
|
16
|
+
3) Done — completed work / files changed
|
|
17
|
+
4) Open — remaining tasks / blockers
|
|
18
|
+
5) Constraints — important rules the agent must keep
|
|
19
|
+
|
|
20
|
+
Be factual and concise. Max ~400 words. Do not invent work that was not present.`;
|
|
21
|
+
export function isLlmCompactEnabled() {
|
|
22
|
+
const v = process.env.ZELARI_LLM_COMPACT?.trim().toLowerCase();
|
|
23
|
+
if (v === '0' || v === 'false' || v === 'off' || v === 'no')
|
|
24
|
+
return false;
|
|
25
|
+
// default on when env unset
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Ask the active provider for a continuity summary.
|
|
30
|
+
* Returns null if disabled, no key, or request fails.
|
|
31
|
+
*/
|
|
32
|
+
export async function llmSummarizeHistory(input) {
|
|
33
|
+
if (!isLlmCompactEnabled())
|
|
34
|
+
return null;
|
|
35
|
+
if (!input.droppedTranscript.trim())
|
|
36
|
+
return null;
|
|
37
|
+
let config = null;
|
|
38
|
+
try {
|
|
39
|
+
config = await resolveCompactProviderConfig();
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
if (!config)
|
|
45
|
+
return null;
|
|
46
|
+
const model = process.env.ZELARI_COMPACT_MODEL?.trim() || config.model;
|
|
47
|
+
const controller = new AbortController();
|
|
48
|
+
const timeout = setTimeout(() => controller.abort(), 45_000);
|
|
49
|
+
const onOuterAbort = () => controller.abort();
|
|
50
|
+
input.signal?.addEventListener('abort', onOuterAbort, { once: true });
|
|
51
|
+
try {
|
|
52
|
+
const url = `${config.baseUrl.replace(/\/$/, '')}/chat/completions`;
|
|
53
|
+
const res = await fetch(url, {
|
|
54
|
+
method: 'POST',
|
|
55
|
+
signal: controller.signal,
|
|
56
|
+
headers: {
|
|
57
|
+
'content-type': 'application/json',
|
|
58
|
+
authorization: `Bearer ${config.apiKey}`,
|
|
59
|
+
},
|
|
60
|
+
body: JSON.stringify({
|
|
61
|
+
model,
|
|
62
|
+
temperature: 0.1,
|
|
63
|
+
max_tokens: 900,
|
|
64
|
+
stream: false,
|
|
65
|
+
messages: [
|
|
66
|
+
{ role: 'system', content: COMPACT_SYSTEM },
|
|
67
|
+
{
|
|
68
|
+
role: 'user',
|
|
69
|
+
content: `Extractive sketch (may be incomplete):\n${input.extractive.slice(0, 2_500)}\n\n` +
|
|
70
|
+
`Transcript of dropped turns:\n${input.droppedTranscript}`,
|
|
71
|
+
},
|
|
72
|
+
],
|
|
73
|
+
}),
|
|
74
|
+
});
|
|
75
|
+
if (!res.ok)
|
|
76
|
+
return null;
|
|
77
|
+
const json = (await res.json());
|
|
78
|
+
const text = json.choices?.[0]?.message?.content?.trim();
|
|
79
|
+
if (!text)
|
|
80
|
+
return null;
|
|
81
|
+
return ('[history-summary · llm]\n' +
|
|
82
|
+
text +
|
|
83
|
+
'\n\nContinue from the recent messages below; honor decisions already made above.');
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
finally {
|
|
89
|
+
clearTimeout(timeout);
|
|
90
|
+
input.signal?.removeEventListener('abort', onOuterAbort);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
async function resolveCompactProviderConfig() {
|
|
94
|
+
const active = getProviderConfig().activeProviderId;
|
|
95
|
+
const meta = await resolveApiKeyWithMeta(active);
|
|
96
|
+
const apiKey = meta?.apiKey;
|
|
97
|
+
if (!apiKey)
|
|
98
|
+
return null;
|
|
99
|
+
const custom = getCustomEndpoint(active);
|
|
100
|
+
let baseUrl = custom ||
|
|
101
|
+
(active === 'openai-compatible' || active === 'custom'
|
|
102
|
+
? process.env.OPENAI_BASE_URL ?? PROVIDER_ENDPOINTS[active]
|
|
103
|
+
: PROVIDER_ENDPOINTS[active]);
|
|
104
|
+
if (!baseUrl)
|
|
105
|
+
return null;
|
|
106
|
+
const model = getModelForProvider(active);
|
|
107
|
+
return {
|
|
108
|
+
apiKey,
|
|
109
|
+
baseUrl,
|
|
110
|
+
model,
|
|
111
|
+
providerId: active,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=llmCompact.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llmCompact.js","sourceRoot":"","sources":["../../../src/cli/budget/llmCompact.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,16 +3,17 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Estimates occupancy from rolling history + session tokens, then:
|
|
5
5
|
* - soft-warns at 70% of the context limit
|
|
6
|
-
* - forces compactHistory-style trim at 85%
|
|
6
|
+
* - forces compactHistory-style trim at 85% (extractive / optional LLM summary)
|
|
7
7
|
* - hard-trims to a short tail at 95%
|
|
8
8
|
*
|
|
9
9
|
* Also suggests tool-loop / history-turn caps so plan stays cheaper
|
|
10
10
|
* (more thinking, fewer tool rounds) and build spends more on actions.
|
|
11
11
|
*
|
|
12
12
|
* @since v1.8.0
|
|
13
|
+
* @updated v1.21.0 — continuity summaries on compact; async LLM path
|
|
13
14
|
*/
|
|
14
15
|
import { envNumber } from '../utils/envNumber.js';
|
|
15
|
-
import {
|
|
16
|
+
import { compactHistoryAsync, compactHistoryDetailed, } from '../hooks/historyCompaction.js';
|
|
16
17
|
/** Rough chars→tokens (OpenAI-ish). */
|
|
17
18
|
export function estimateTokens(text) {
|
|
18
19
|
if (!text)
|
|
@@ -42,46 +43,130 @@ export function resolveContextLimit() {
|
|
|
42
43
|
max: 2_000_000,
|
|
43
44
|
});
|
|
44
45
|
}
|
|
46
|
+
function phaseKnobs(phase) {
|
|
47
|
+
return {
|
|
48
|
+
historyTurns: phase === 'plan'
|
|
49
|
+
? envNumber(process.env.ZELARI_HISTORY_TURNS, { default: 8, min: 0 })
|
|
50
|
+
: envNumber(process.env.ZELARI_HISTORY_TURNS, { default: 6, min: 0 }),
|
|
51
|
+
maxToolLoopIterations: phase === 'plan'
|
|
52
|
+
? envNumber(process.env.ZELARI_MAX_TOOL_LOOP_ITERATIONS, { default: 60, min: 1 })
|
|
53
|
+
: envNumber(process.env.ZELARI_MAX_TOOL_LOOP_ITERATIONS, {
|
|
54
|
+
default: 120,
|
|
55
|
+
min: 1,
|
|
56
|
+
}),
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
function occupancyOf(hist, sessionExtra, contextLimit) {
|
|
60
|
+
const estimated = estimateHistoryTokens(hist);
|
|
61
|
+
const occupancy = Math.min(1, (estimated + sessionExtra) / contextLimit);
|
|
62
|
+
return { estimated, occupancy };
|
|
63
|
+
}
|
|
45
64
|
/**
|
|
46
|
-
* Apply phase-aware budget policy to rolling history.
|
|
47
|
-
*
|
|
65
|
+
* Apply phase-aware budget policy to rolling history (sync).
|
|
66
|
+
* Uses extractive continuity summaries — no network.
|
|
67
|
+
* Prefer {@link applyBudgetPolicyAsync} when LLM rewrite is desirable.
|
|
48
68
|
*/
|
|
49
69
|
export function applyBudgetPolicy(history, phase, opts) {
|
|
50
70
|
const contextLimit = resolveContextLimit();
|
|
71
|
+
const sessionExtra = opts?.sessionTokens ?? 0;
|
|
51
72
|
const warnings = [];
|
|
52
|
-
|
|
53
|
-
let historyTurns = phase === 'plan'
|
|
54
|
-
? envNumber(process.env.ZELARI_HISTORY_TURNS, { default: 8, min: 0 })
|
|
55
|
-
: envNumber(process.env.ZELARI_HISTORY_TURNS, { default: 6, min: 0 });
|
|
56
|
-
let maxToolLoopIterations = phase === 'plan'
|
|
57
|
-
? envNumber(process.env.ZELARI_MAX_TOOL_LOOP_ITERATIONS, { default: 60, min: 1 })
|
|
58
|
-
: envNumber(process.env.ZELARI_MAX_TOOL_LOOP_ITERATIONS, { default: 120, min: 1 });
|
|
73
|
+
let { historyTurns, maxToolLoopIterations } = phaseKnobs(phase);
|
|
59
74
|
let hist = history;
|
|
60
|
-
let estimated =
|
|
75
|
+
let { estimated, occupancy } = occupancyOf(hist, sessionExtra, contextLimit);
|
|
76
|
+
let compactSummary = '';
|
|
77
|
+
let messagesRemoved = 0;
|
|
78
|
+
if (occupancy >= 0.7 && occupancy < 0.85) {
|
|
79
|
+
warnings.push(`[budget] context ~${Math.round(occupancy * 100)}% full (${estimated + sessionExtra}/${contextLimit} tok est.) — consider /compact or shorter replies.`);
|
|
80
|
+
}
|
|
81
|
+
if (occupancy >= 0.85) {
|
|
82
|
+
const forcedTurns = Math.max(1, Math.floor(historyTurns / 2));
|
|
83
|
+
historyTurns = forcedTurns;
|
|
84
|
+
maxToolLoopIterations = Math.min(maxToolLoopIterations, phase === 'plan' ? 24 : 40);
|
|
85
|
+
const r = compactHistoryDetailed(hist, { maxMessages: forcedTurns * 4 });
|
|
86
|
+
hist = r.messages;
|
|
87
|
+
if (r.compacted) {
|
|
88
|
+
messagesRemoved += r.messagesRemoved;
|
|
89
|
+
if (r.summary)
|
|
90
|
+
compactSummary = r.summary;
|
|
91
|
+
}
|
|
92
|
+
({ estimated, occupancy } = occupancyOf(hist, sessionExtra, contextLimit));
|
|
93
|
+
warnings.push(`[budget] auto-compact at 85% — kept ~${forcedTurns} turns (${estimated} tok history est.` +
|
|
94
|
+
(r.messagesRemoved ? `, removed ${r.messagesRemoved} msgs` : '') +
|
|
95
|
+
`).`);
|
|
96
|
+
}
|
|
97
|
+
if (occupancy >= 0.95) {
|
|
98
|
+
const hard = compactHistoryDetailed(hist, { maxMessages: 8 });
|
|
99
|
+
hist = hard.messages;
|
|
100
|
+
if (hard.compacted) {
|
|
101
|
+
messagesRemoved += hard.messagesRemoved;
|
|
102
|
+
if (hard.summary)
|
|
103
|
+
compactSummary = hard.summary;
|
|
104
|
+
}
|
|
105
|
+
({ estimated, occupancy } = occupancyOf(hist, sessionExtra, contextLimit));
|
|
106
|
+
historyTurns = 2;
|
|
107
|
+
maxToolLoopIterations = Math.min(maxToolLoopIterations, 16);
|
|
108
|
+
warnings.push(`[budget] HARD context pressure (≥95%) — history cut to last ~2 turns with continuity summary. Prefer /clear if quality drops.`);
|
|
109
|
+
}
|
|
110
|
+
return {
|
|
111
|
+
history: hist,
|
|
112
|
+
warnings,
|
|
113
|
+
maxToolLoopIterations,
|
|
114
|
+
historyTurns,
|
|
115
|
+
estimatedHistoryTokens: estimated,
|
|
116
|
+
contextLimit,
|
|
117
|
+
occupancy,
|
|
118
|
+
compactSummary: compactSummary || undefined,
|
|
119
|
+
messagesRemoved: messagesRemoved || undefined,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Async budget policy: at ≥85% occupancy uses optional LLM continuity brief
|
|
124
|
+
* (ZELARI_LLM_COMPACT, default on), falling back to extractive summary.
|
|
125
|
+
*/
|
|
126
|
+
export async function applyBudgetPolicyAsync(history, phase, opts) {
|
|
127
|
+
const contextLimit = resolveContextLimit();
|
|
61
128
|
const sessionExtra = opts?.sessionTokens ?? 0;
|
|
62
|
-
|
|
129
|
+
const warnings = [];
|
|
130
|
+
let { historyTurns, maxToolLoopIterations } = phaseKnobs(phase);
|
|
131
|
+
let hist = history;
|
|
132
|
+
let { estimated, occupancy } = occupancyOf(hist, sessionExtra, contextLimit);
|
|
133
|
+
let compactSummary = '';
|
|
134
|
+
let messagesRemoved = 0;
|
|
63
135
|
if (occupancy >= 0.7 && occupancy < 0.85) {
|
|
64
136
|
warnings.push(`[budget] context ~${Math.round(occupancy * 100)}% full (${estimated + sessionExtra}/${contextLimit} tok est.) — consider /compact or shorter replies.`);
|
|
65
137
|
}
|
|
138
|
+
const fold = (r, label, forcedTurns) => {
|
|
139
|
+
hist = r.messages;
|
|
140
|
+
if (r.compacted) {
|
|
141
|
+
messagesRemoved += r.messagesRemoved;
|
|
142
|
+
if (r.summary)
|
|
143
|
+
compactSummary = r.summary;
|
|
144
|
+
}
|
|
145
|
+
({ estimated, occupancy } = occupancyOf(hist, sessionExtra, contextLimit));
|
|
146
|
+
warnings.push(`[budget] ${label} at ${forcedTurns === 2 ? '95%' : '85%'} — kept ~${forcedTurns} turns (${estimated} tok history est.` +
|
|
147
|
+
(r.messagesRemoved ? `, removed ${r.messagesRemoved} msgs` : '') +
|
|
148
|
+
`).`);
|
|
149
|
+
};
|
|
66
150
|
if (occupancy >= 0.85) {
|
|
67
|
-
// Force aggressive compaction (half the normal turn window).
|
|
68
151
|
const forcedTurns = Math.max(1, Math.floor(historyTurns / 2));
|
|
69
152
|
historyTurns = forcedTurns;
|
|
70
|
-
hist = compactHistory(hist, { maxMessages: forcedTurns * 4 });
|
|
71
|
-
estimated = estimateHistoryTokens(hist);
|
|
72
|
-
occupancy = Math.min(1, (estimated + sessionExtra) / contextLimit);
|
|
73
|
-
warnings.push(`[budget] auto-compact at 85% — kept ~${forcedTurns} turns (${estimated} tok history est.).`);
|
|
74
|
-
// Prefer fewer tool rounds when cramped.
|
|
75
153
|
maxToolLoopIterations = Math.min(maxToolLoopIterations, phase === 'plan' ? 24 : 40);
|
|
154
|
+
const r = await compactHistoryAsync(hist, {
|
|
155
|
+
maxMessages: forcedTurns * 4,
|
|
156
|
+
signal: opts?.signal,
|
|
157
|
+
});
|
|
158
|
+
const label = r.summary.includes('· llm') ? 'llm-compact' : 'auto-compact';
|
|
159
|
+
fold(r, label, forcedTurns);
|
|
76
160
|
}
|
|
77
161
|
if (occupancy >= 0.95) {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
162
|
+
const hard = await compactHistoryAsync(hist, {
|
|
163
|
+
maxMessages: 8,
|
|
164
|
+
signal: opts?.signal,
|
|
165
|
+
});
|
|
166
|
+
fold(hard, hard.summary.includes('· llm') ? 'llm-compact' : 'auto-compact', 2);
|
|
82
167
|
historyTurns = 2;
|
|
83
168
|
maxToolLoopIterations = Math.min(maxToolLoopIterations, 16);
|
|
84
|
-
warnings.push(`[budget] HARD context pressure (≥95%) —
|
|
169
|
+
warnings.push(`[budget] HARD context pressure (≥95%) — prefer /clear or a new session if quality drops.`);
|
|
85
170
|
}
|
|
86
171
|
return {
|
|
87
172
|
history: hist,
|
|
@@ -91,6 +176,8 @@ export function applyBudgetPolicy(history, phase, opts) {
|
|
|
91
176
|
estimatedHistoryTokens: estimated,
|
|
92
177
|
contextLimit,
|
|
93
178
|
occupancy,
|
|
179
|
+
compactSummary: compactSummary || undefined,
|
|
180
|
+
messagesRemoved: messagesRemoved || undefined,
|
|
94
181
|
};
|
|
95
182
|
}
|
|
96
183
|
//# sourceMappingURL=tokenBudget.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenBudget.js","sourceRoot":"","sources":["../../../src/cli/budget/tokenBudget.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"tokenBudget.js","sourceRoot":"","sources":["../../../src/cli/budget/tokenBudget.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,7 +16,7 @@ import { Spinner } from './Spinner.js';
|
|
|
16
16
|
* region as short as possible. A single status line + the input bar + the
|
|
17
17
|
* streaming tail is always well under a screen, so no full repaint.
|
|
18
18
|
*/
|
|
19
|
-
export function StatusBar({ model, provider, sessionId, sessionActive, queueCount = 0, busy = false, mode = 'agent', phase = 'build', cwd, elapsedMs = null, lastMs = null, costUsd = 0, cachedTokens = 0, cacheHitRate = 0, contextUsed = 0, contextLimit = 0, }) {
|
|
19
|
+
export function StatusBar({ model, provider, sessionId, sessionActive, queueCount = 0, busy = false, mode = 'agent', phase = 'build', cwd, elapsedMs = null, lastMs = null, costUsd = 0, cachedTokens = 0, cacheHitRate = 0, contextUsed = 0, contextLimit = 0, todoSummary = null, }) {
|
|
20
20
|
const ctxLabel = contextLimit > 0
|
|
21
21
|
? `${formatTokens(contextUsed)}/${formatTokens(contextLimit)}`
|
|
22
22
|
: contextUsed > 0
|
|
@@ -54,6 +54,9 @@ export function StatusBar({ model, provider, sessionId, sessionActive, queueCoun
|
|
|
54
54
|
"queue ",
|
|
55
55
|
queueCount),
|
|
56
56
|
React.createElement(Text, { dimColor: true }, " \u00B7 "))) : null,
|
|
57
|
+
todoSummary ? (React.createElement(React.Fragment, null,
|
|
58
|
+
React.createElement(Text, { color: "yellow" }, todoSummary),
|
|
59
|
+
React.createElement(Text, { dimColor: true }, " \u00B7 "))) : null,
|
|
57
60
|
ctxLabel ? (React.createElement(React.Fragment, null,
|
|
58
61
|
React.createElement(Text, { color: "cyan" }, ctxLabel),
|
|
59
62
|
React.createElement(Text, { dimColor: true }, " \u00B7 "))) : null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusBar.js","sourceRoot":"","sources":["../../../src/cli/components/StatusBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"StatusBar.js","sourceRoot":"","sources":["../../../src/cli/components/StatusBar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,8 @@
|
|
|
13
13
|
*/
|
|
14
14
|
import { existsSync } from 'node:fs';
|
|
15
15
|
import { join } from 'node:path';
|
|
16
|
+
import { clearSessionPermissionGrants } from '../safety/toolPermissions.js';
|
|
17
|
+
import { clearSessionTodos } from '../sessionTodos.js';
|
|
16
18
|
import { compactHistory } from './historyCompaction.js';
|
|
17
19
|
let history = [];
|
|
18
20
|
let lastClarification = null;
|
|
@@ -39,6 +41,9 @@ export function appendMessages(msgs) {
|
|
|
39
41
|
export function clearHistory() {
|
|
40
42
|
history = [];
|
|
41
43
|
lastClarification = null;
|
|
44
|
+
// Session todos + permission grants are conversation-scoped.
|
|
45
|
+
clearSessionTodos();
|
|
46
|
+
clearSessionPermissionGrants();
|
|
42
47
|
}
|
|
43
48
|
/** Serialize for session sidecar / tests. */
|
|
44
49
|
export function serializeHistory() {
|
|
@@ -259,5 +264,7 @@ function truncate(s, max) {
|
|
|
259
264
|
export function _resetConversationContextForTests() {
|
|
260
265
|
history = [];
|
|
261
266
|
lastClarification = null;
|
|
267
|
+
clearSessionTodos();
|
|
268
|
+
clearSessionPermissionGrants();
|
|
262
269
|
}
|
|
263
270
|
//# sourceMappingURL=conversationContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversationContext.js","sourceRoot":"","sources":["../../../src/cli/hooks/conversationContext.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAUxD,IAAI,OAAO,GAAmB,EAAE,CAAC;AACjC,IAAI,iBAAiB,GAA6B,IAAI,CAAC;AAEvD,0EAA0E;AAC1E,MAAM,UAAU,UAAU;IACxB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,UAAU,CAAC,QAAiC;IAC1D,OAAO,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;AAC1B,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,cAAc,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IACxD,MAAM,mBAAmB,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;IACnF,OAAO,GAAG,cAAc,CAAC,OAAO,EAAE,EAAE,mBAAmB,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,cAAc,CAAC,IAA6B;IAC1D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAC9B,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AAED,wCAAwC;AACxC,MAAM,UAAU,YAAY;IAC1B,OAAO,GAAG,EAAE,CAAC;IACb,iBAAiB,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"conversationContext.js","sourceRoot":"","sources":["../../../src/cli/hooks/conversationContext.ts"],"names":[],"mappings":"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"}
|