zelari-code 1.34.0 → 1.35.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/LICENSE +55 -22
- package/README.md +47 -27
- package/dist/cli/companion/serve.js +2 -1
- package/dist/cli/companion/serve.js.map +1 -1
- package/dist/cli/hooks/streamScrub.js +37 -0
- package/dist/cli/hooks/streamScrub.js.map +1 -0
- package/dist/cli/hooks/useChatTurn.js +145 -53
- package/dist/cli/hooks/useChatTurn.js.map +1 -1
- package/dist/cli/main.bundled.js +1199 -672
- package/dist/cli/main.bundled.js.map +4 -4
- package/dist/cli/provider/anthropic.js +76 -11
- package/dist/cli/provider/anthropic.js.map +1 -1
- package/dist/cli/provider/openai-compatible.js +95 -82
- package/dist/cli/provider/openai-compatible.js.map +1 -1
- package/dist/cli/safety/lifecycleHooks.js +62 -5
- package/dist/cli/safety/lifecycleHooks.js.map +1 -1
- package/dist/cli/skillCache.js +1 -1
- package/dist/cli/toolRegistry.js +6 -3
- package/dist/cli/toolRegistry.js.map +1 -1
- package/dist/cli/toolResultCache.js +173 -0
- package/dist/cli/toolResultCache.js.map +1 -0
- package/package.json +5 -4
|
@@ -1,11 +1,17 @@
|
|
|
1
|
+
import { resolvePromptCacheTtl } from '../hooks/chatStats.js';
|
|
1
2
|
const ANTHROPIC_VERSION = '2023-06-01';
|
|
2
3
|
const ANTHROPIC_BETA = 'oauth-2025-04-20';
|
|
3
|
-
|
|
4
|
+
/** Required to activate the extended (1h) prompt-cache TTL. */
|
|
5
|
+
const ANTHROPIC_BETA_EXTENDED_CACHE_TTL = 'extended-cache-ttl-2025-04-11';
|
|
6
|
+
function authHeaders(apiKey, longCacheTtl) {
|
|
7
|
+
const beta = longCacheTtl
|
|
8
|
+
? `${ANTHROPIC_BETA},${ANTHROPIC_BETA_EXTENDED_CACHE_TTL}`
|
|
9
|
+
: ANTHROPIC_BETA;
|
|
4
10
|
return {
|
|
5
11
|
'Content-Type': 'application/json',
|
|
6
12
|
Accept: 'application/json',
|
|
7
13
|
'anthropic-version': ANTHROPIC_VERSION,
|
|
8
|
-
'anthropic-beta':
|
|
14
|
+
'anthropic-beta': beta,
|
|
9
15
|
Authorization: `Bearer ${apiKey}`,
|
|
10
16
|
'x-api-key': apiKey,
|
|
11
17
|
};
|
|
@@ -49,19 +55,53 @@ function splitMessages(messages) {
|
|
|
49
55
|
}
|
|
50
56
|
rest.push({ role: m.role, content: m.content ?? '' });
|
|
51
57
|
}
|
|
52
|
-
return {
|
|
58
|
+
return { systemParts, rest };
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Tag the last content block of a message with `cache_control` — the
|
|
62
|
+
* rolling conversation breakpoint. Anthropic caches the longest previously
|
|
63
|
+
* seen prefix ending at a breakpoint, so each turn's final message extends
|
|
64
|
+
* the cached prefix instead of re-billing the whole transcript.
|
|
65
|
+
*/
|
|
66
|
+
function withRollingCacheBreakpoint(msg, cacheControl) {
|
|
67
|
+
const content = msg.content;
|
|
68
|
+
if (typeof content === 'string') {
|
|
69
|
+
return { ...msg, content: [{ type: 'text', text: content, cache_control: cacheControl }] };
|
|
70
|
+
}
|
|
71
|
+
if (Array.isArray(content) && content.length > 0) {
|
|
72
|
+
const blocks = content.slice();
|
|
73
|
+
const last = blocks[blocks.length - 1];
|
|
74
|
+
blocks[blocks.length - 1] = { ...last, cache_control: cacheControl };
|
|
75
|
+
return { ...msg, content: blocks };
|
|
76
|
+
}
|
|
77
|
+
return msg;
|
|
53
78
|
}
|
|
54
79
|
export function anthropicMessagesProvider(config) {
|
|
55
80
|
return async function* (params) {
|
|
56
|
-
const {
|
|
81
|
+
const { systemParts, rest } = splitMessages(params.messages);
|
|
82
|
+
// Explicit prompt-cache breakpoints (Anthropic-only mechanism; the
|
|
83
|
+
// OpenAI-compatible path relies on automatic server-side caching).
|
|
84
|
+
// Two breakpoints of the four allowed:
|
|
85
|
+
// 1. last STABLE system block — caches tools + stable prompt prefix.
|
|
86
|
+
// systemMessagesFromSplit emits [stable, volatile?] in that order,
|
|
87
|
+
// so with 2+ system messages the stable boundary is the penultimate.
|
|
88
|
+
// 2. last conversation message — rolling prefix over the transcript.
|
|
89
|
+
const ttlPref = resolvePromptCacheTtl();
|
|
90
|
+
const cacheControl = ttlPref === '1h' ? { type: 'ephemeral', ttl: '1h' } : { type: 'ephemeral' };
|
|
57
91
|
const body = {
|
|
58
92
|
model: params.model,
|
|
59
93
|
max_tokens: 16_384,
|
|
60
|
-
messages: rest
|
|
94
|
+
messages: rest.length > 0
|
|
95
|
+
? rest.map((m, i) => (i === rest.length - 1 ? withRollingCacheBreakpoint(m, cacheControl) : m))
|
|
96
|
+
: rest,
|
|
61
97
|
stream: true,
|
|
62
98
|
};
|
|
63
|
-
if (
|
|
64
|
-
|
|
99
|
+
if (systemParts.length > 0) {
|
|
100
|
+
const stableIdx = systemParts.length >= 2 ? systemParts.length - 2 : 0;
|
|
101
|
+
body.system = systemParts.map((text, i) => i === stableIdx
|
|
102
|
+
? { type: 'text', text, cache_control: cacheControl }
|
|
103
|
+
: { type: 'text', text });
|
|
104
|
+
}
|
|
65
105
|
if (params.tools && params.tools.length > 0) {
|
|
66
106
|
body.tools = params.tools.map((t) => ({
|
|
67
107
|
name: t.name,
|
|
@@ -75,7 +115,7 @@ export function anthropicMessagesProvider(config) {
|
|
|
75
115
|
try {
|
|
76
116
|
response = await fetch(url, {
|
|
77
117
|
method: 'POST',
|
|
78
|
-
headers: authHeaders(config.apiKey),
|
|
118
|
+
headers: authHeaders(config.apiKey, ttlPref === '1h'),
|
|
79
119
|
body: JSON.stringify(body),
|
|
80
120
|
signal: params.signal,
|
|
81
121
|
});
|
|
@@ -97,6 +137,10 @@ export function anthropicMessagesProvider(config) {
|
|
|
97
137
|
let buffer = '';
|
|
98
138
|
let currentTool = null;
|
|
99
139
|
let emittedTool = false;
|
|
140
|
+
// Prompt-side usage arrives on `message_start` (input + cache fields);
|
|
141
|
+
// completion tokens arrive later on `message_delta.usage`. Held here so
|
|
142
|
+
// the single emitted usage delta reports the full picture.
|
|
143
|
+
let startUsage = null;
|
|
100
144
|
const flushTool = function* () {
|
|
101
145
|
if (!currentTool?.name)
|
|
102
146
|
return;
|
|
@@ -165,15 +209,36 @@ export function anthropicMessagesProvider(config) {
|
|
|
165
209
|
else if (type === 'content_block_stop') {
|
|
166
210
|
yield* flushTool();
|
|
167
211
|
}
|
|
212
|
+
else if (type === 'message_start') {
|
|
213
|
+
const usage = ev.message?.usage;
|
|
214
|
+
if (usage) {
|
|
215
|
+
const num = (v) => typeof v === 'number' && Number.isFinite(v) && v >= 0 ? v : 0;
|
|
216
|
+
startUsage = {
|
|
217
|
+
inputTokens: num(usage.input_tokens),
|
|
218
|
+
cacheReadTokens: num(usage.cache_read_input_tokens),
|
|
219
|
+
cacheCreationTokens: num(usage.cache_creation_input_tokens),
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
}
|
|
168
223
|
else if (type === 'message_delta') {
|
|
169
224
|
const usage = (ev.usage ?? ev.delta?.usage);
|
|
170
225
|
if (usage) {
|
|
226
|
+
// Anthropic reports uncached input separately from cache
|
|
227
|
+
// read/creation tokens; promptTokens must include all three to
|
|
228
|
+
// match the OpenAI-compatible path (where prompt_tokens already
|
|
229
|
+
// contains cached tokens) so cost accounting stays consistent.
|
|
230
|
+
const uncachedInput = startUsage?.inputTokens ?? (usage.input_tokens ?? 0);
|
|
231
|
+
const cacheRead = startUsage?.cacheReadTokens ?? 0;
|
|
232
|
+
const cacheCreation = startUsage?.cacheCreationTokens ?? 0;
|
|
233
|
+
const promptTokens = uncachedInput + cacheRead + cacheCreation;
|
|
234
|
+
const completionTokens = usage.output_tokens ?? 0;
|
|
171
235
|
yield {
|
|
172
236
|
kind: 'usage',
|
|
173
237
|
usage: {
|
|
174
|
-
promptTokens
|
|
175
|
-
completionTokens
|
|
176
|
-
totalTokens:
|
|
238
|
+
promptTokens,
|
|
239
|
+
completionTokens,
|
|
240
|
+
totalTokens: promptTokens + completionTokens,
|
|
241
|
+
...(cacheRead > 0 ? { cachedPromptTokens: cacheRead } : {}),
|
|
177
242
|
},
|
|
178
243
|
};
|
|
179
244
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../src/cli/provider/anthropic.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../src/cli/provider/anthropic.ts"],"names":[],"mappings":"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"}
|
|
@@ -247,6 +247,84 @@ export function resolveBaseUrl(providerId) {
|
|
|
247
247
|
}
|
|
248
248
|
return PROVIDER_ENDPOINTS[providerId];
|
|
249
249
|
}
|
|
250
|
+
/**
|
|
251
|
+
* Identity-keyed memo of AgentMessage → OpenAI wire-format mapping.
|
|
252
|
+
* The harness treats messages as append-only within a run (compaction
|
|
253
|
+
* rebuilds arrays with fresh objects), so each message object maps exactly
|
|
254
|
+
* once and every subsequent provider call — one per tool-loop iteration —
|
|
255
|
+
* reuses the cached form instead of re-stringifying every past tool-call's
|
|
256
|
+
* args each time. Image-bearing user messages are excluded because their
|
|
257
|
+
* mapping depends on the per-call vision capability of the active model.
|
|
258
|
+
*/
|
|
259
|
+
const messageMappingCache = new WeakMap();
|
|
260
|
+
function mapAgentMessage(m, vision) {
|
|
261
|
+
if (m.role === 'tool') {
|
|
262
|
+
return {
|
|
263
|
+
role: 'tool',
|
|
264
|
+
tool_call_id: m.toolCallId,
|
|
265
|
+
content: m.content,
|
|
266
|
+
};
|
|
267
|
+
}
|
|
268
|
+
if (m.role === 'assistant' && m.toolCalls && m.toolCalls.length > 0) {
|
|
269
|
+
// DeepSeek thinking mode: when an assistant turn issued tool_calls,
|
|
270
|
+
// `reasoning_content` MUST be echoed on every subsequent request or
|
|
271
|
+
// the API returns HTTP 400. Other providers ignore the extra field.
|
|
272
|
+
const msg = {
|
|
273
|
+
role: 'assistant',
|
|
274
|
+
content: m.content ?? '',
|
|
275
|
+
tool_calls: m.toolCalls.map((tc) => ({
|
|
276
|
+
id: tc.id,
|
|
277
|
+
type: 'function',
|
|
278
|
+
function: {
|
|
279
|
+
name: tc.name,
|
|
280
|
+
arguments: JSON.stringify(tc.args ?? {}),
|
|
281
|
+
},
|
|
282
|
+
})),
|
|
283
|
+
};
|
|
284
|
+
if (m.reasoningContent && m.reasoningContent.length > 0) {
|
|
285
|
+
msg.reasoning_content = m.reasoningContent;
|
|
286
|
+
}
|
|
287
|
+
return msg;
|
|
288
|
+
}
|
|
289
|
+
// Assistant text-only turns may still carry reasoning_content for
|
|
290
|
+
// multi-turn continuity on some providers; include when present.
|
|
291
|
+
if (m.role === 'assistant' &&
|
|
292
|
+
m.reasoningContent &&
|
|
293
|
+
m.reasoningContent.length > 0) {
|
|
294
|
+
return {
|
|
295
|
+
role: 'assistant',
|
|
296
|
+
content: m.content ?? '',
|
|
297
|
+
reasoning_content: m.reasoningContent,
|
|
298
|
+
};
|
|
299
|
+
}
|
|
300
|
+
// Vision: user turns may carry inline images. When the active model is
|
|
301
|
+
// vision-capable we send OpenAI content blocks (image_url data URI) —
|
|
302
|
+
// same provider key, no third-party API. Otherwise keep the text and
|
|
303
|
+
// annotate that pixels were NOT sent.
|
|
304
|
+
if (m.role === 'user' && m.images && m.images.length > 0) {
|
|
305
|
+
if (vision) {
|
|
306
|
+
return {
|
|
307
|
+
role: 'user',
|
|
308
|
+
content: [
|
|
309
|
+
{ type: 'text', text: m.content ?? '' },
|
|
310
|
+
...m.images.map((img) => ({
|
|
311
|
+
type: 'image_url',
|
|
312
|
+
image_url: { url: dataUriFromImage(img) },
|
|
313
|
+
})),
|
|
314
|
+
],
|
|
315
|
+
};
|
|
316
|
+
}
|
|
317
|
+
const notes = m.images
|
|
318
|
+
.map((img) => `[Immagine allegata: ${img.alt ?? img.mime}]`)
|
|
319
|
+
.join('\n');
|
|
320
|
+
return {
|
|
321
|
+
role: 'user',
|
|
322
|
+
content: `${m.content ?? ''}\n\n${notes}\n\n` +
|
|
323
|
+
'(Il modello attivo non supporta input visivi: i pixel non sono stati inviati.)',
|
|
324
|
+
};
|
|
325
|
+
}
|
|
326
|
+
return { role: m.role, content: m.content };
|
|
327
|
+
}
|
|
250
328
|
export function openaiCompatibleProvider(config) {
|
|
251
329
|
return async function* (params) {
|
|
252
330
|
// Map the provider-neutral AgentMessage[] into the OpenAI chat format.
|
|
@@ -255,76 +333,20 @@ export function openaiCompatibleProvider(config) {
|
|
|
255
333
|
// toolCalls: [{id,name,args}] } (see AgentHarness accumulation). Here we
|
|
256
334
|
// translate both into the shape OpenAI expects:
|
|
257
335
|
// - assistant with tool_calls: { role:'assistant', content, tool_calls:[{id,type:'function',function:{name,arguments}}] }
|
|
258
|
-
// - tool result: { role:'tool', tool_call_id, content }
|
|
336
|
+
// - tool result: { role: 'tool', tool_call_id, content }
|
|
259
337
|
// Resolve vision capability once per call (model may vary per call).
|
|
260
338
|
const vision = modelSupportsVision(params.model);
|
|
261
339
|
const messages = params.messages.map((m) => {
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
};
|
|
340
|
+
const cacheable = !(m.role === 'user' && m.images && m.images.length > 0);
|
|
341
|
+
if (cacheable) {
|
|
342
|
+
const cached = messageMappingCache.get(m);
|
|
343
|
+
if (cached)
|
|
344
|
+
return cached;
|
|
268
345
|
}
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
const msg = {
|
|
274
|
-
role: 'assistant',
|
|
275
|
-
content: m.content ?? '',
|
|
276
|
-
tool_calls: m.toolCalls.map((tc) => ({
|
|
277
|
-
id: tc.id,
|
|
278
|
-
type: 'function',
|
|
279
|
-
function: {
|
|
280
|
-
name: tc.name,
|
|
281
|
-
arguments: JSON.stringify(tc.args ?? {}),
|
|
282
|
-
},
|
|
283
|
-
})),
|
|
284
|
-
};
|
|
285
|
-
if (m.reasoningContent && m.reasoningContent.length > 0) {
|
|
286
|
-
msg.reasoning_content = m.reasoningContent;
|
|
287
|
-
}
|
|
288
|
-
return msg;
|
|
289
|
-
}
|
|
290
|
-
// Assistant text-only turns may still carry reasoning_content for
|
|
291
|
-
// multi-turn continuity on some providers; include when present.
|
|
292
|
-
if (m.role === 'assistant' &&
|
|
293
|
-
m.reasoningContent &&
|
|
294
|
-
m.reasoningContent.length > 0) {
|
|
295
|
-
return {
|
|
296
|
-
role: 'assistant',
|
|
297
|
-
content: m.content ?? '',
|
|
298
|
-
reasoning_content: m.reasoningContent,
|
|
299
|
-
};
|
|
300
|
-
}
|
|
301
|
-
// Vision: user turns may carry inline images. When the active model is
|
|
302
|
-
// vision-capable we send OpenAI content blocks (image_url data URI) —
|
|
303
|
-
// same provider key, no third-party API. Otherwise keep the text and
|
|
304
|
-
// annotate that pixels were NOT sent.
|
|
305
|
-
if (m.role === 'user' && m.images && m.images.length > 0) {
|
|
306
|
-
if (vision) {
|
|
307
|
-
return {
|
|
308
|
-
role: 'user',
|
|
309
|
-
content: [
|
|
310
|
-
{ type: 'text', text: m.content ?? '' },
|
|
311
|
-
...m.images.map((img) => ({
|
|
312
|
-
type: 'image_url',
|
|
313
|
-
image_url: { url: dataUriFromImage(img) },
|
|
314
|
-
})),
|
|
315
|
-
],
|
|
316
|
-
};
|
|
317
|
-
}
|
|
318
|
-
const notes = m.images
|
|
319
|
-
.map((img) => `[Immagine allegata: ${img.alt ?? img.mime}]`)
|
|
320
|
-
.join('\n');
|
|
321
|
-
return {
|
|
322
|
-
role: 'user',
|
|
323
|
-
content: `${m.content ?? ''}\n\n${notes}\n\n` +
|
|
324
|
-
'(Il modello attivo non supporta input visivi: i pixel non sono stati inviati.)',
|
|
325
|
-
};
|
|
326
|
-
}
|
|
327
|
-
return { role: m.role, content: m.content };
|
|
346
|
+
const mapped = mapAgentMessage(m, vision);
|
|
347
|
+
if (cacheable)
|
|
348
|
+
messageMappingCache.set(m, mapped);
|
|
349
|
+
return mapped;
|
|
328
350
|
});
|
|
329
351
|
const body = {
|
|
330
352
|
// Use `params.model` (per-call override from AgentHarness, e.g. for
|
|
@@ -620,6 +642,13 @@ export function openaiCompatibleProvider(config) {
|
|
|
620
642
|
// OpenAI tool_calls are streamed incrementally — accumulate args
|
|
621
643
|
// per index and emit a tool_call delta when the args JSON closes.
|
|
622
644
|
if (Array.isArray(delta?.tool_calls)) {
|
|
645
|
+
// Accumulate args fragments only — parsing happens once at
|
|
646
|
+
// flush time (finish_reason / [DONE] / stream end). The old
|
|
647
|
+
// heuristic re-parsed the whole accumulated buffer on every
|
|
648
|
+
// fragment ending in `}`, which is O(n²) for brace-laden
|
|
649
|
+
// args (e.g. write_file content containing JSON). The
|
|
650
|
+
// harness executes tools only on finish, so deferring the
|
|
651
|
+
// parse has no behavioral effect.
|
|
623
652
|
for (const tc of delta.tool_calls) {
|
|
624
653
|
const idx = tc.index ?? 0;
|
|
625
654
|
const existing = toolCallAccumulator.get(idx) ?? {
|
|
@@ -634,22 +663,6 @@ export function openaiCompatibleProvider(config) {
|
|
|
634
663
|
if (tc.function?.arguments)
|
|
635
664
|
existing.argsJson += tc.function.arguments;
|
|
636
665
|
toolCallAccumulator.set(idx, existing);
|
|
637
|
-
// Heuristic: when argsJson parses as a complete JSON object, emit.
|
|
638
|
-
// Do NOT emit on empty args mid-stream (name often arrives first;
|
|
639
|
-
// empty `{}` is flushed on finish/[DONE] instead).
|
|
640
|
-
if (existing.argsJson.trim().endsWith('}')) {
|
|
641
|
-
const parsedArgs = tryParseArgs(existing.argsJson);
|
|
642
|
-
if (parsedArgs !== null && existing.name) {
|
|
643
|
-
toolCallAccumulator.delete(idx);
|
|
644
|
-
emittedToolCall = true;
|
|
645
|
-
yield {
|
|
646
|
-
kind: 'tool_call',
|
|
647
|
-
toolCallId: existing.id || `tc-${idx}`,
|
|
648
|
-
toolName: existing.name,
|
|
649
|
-
args: parsedArgs,
|
|
650
|
-
};
|
|
651
|
-
}
|
|
652
|
-
}
|
|
653
666
|
}
|
|
654
667
|
}
|
|
655
668
|
// Final chunk: flush any leftover complete tool calls, then surface
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-compatible.js","sourceRoot":"","sources":["../../../src/cli/provider/openai-compatible.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"openai-compatible.js","sourceRoot":"","sources":["../../../src/cli/provider/openai-compatible.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
*/
|
|
14
14
|
import { homedir } from 'node:os';
|
|
15
15
|
import { join } from 'node:path';
|
|
16
|
+
import { readdirSync, statSync } from 'node:fs';
|
|
16
17
|
import { LifecycleHookRunner } from '@zelari/core/harness';
|
|
17
18
|
import { isFolderTrusted } from './folderTrust.js';
|
|
18
19
|
/** ~/.zelari-code/hooks — user-global hooks (always active). */
|
|
@@ -23,21 +24,77 @@ export function globalHooksDir() {
|
|
|
23
24
|
export function projectHooksDir(projectRoot) {
|
|
24
25
|
return join(projectRoot, '.zelari', 'hooks');
|
|
25
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Snapshot hook dirs so we reload only when a `*.json` file is added,
|
|
29
|
+
* removed, or rewritten. Directory mtime alone misses in-place edits on
|
|
30
|
+
* Windows; per-file mtime+size is cheap compared to re-reading contents.
|
|
31
|
+
*/
|
|
32
|
+
export function fingerprintHookDirs(dirs) {
|
|
33
|
+
const parts = [];
|
|
34
|
+
for (const dir of dirs) {
|
|
35
|
+
let names;
|
|
36
|
+
try {
|
|
37
|
+
names = readdirSync(dir).filter((f) => f.endsWith('.json')).sort();
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
parts.push(`${dir}:missing`);
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
if (names.length === 0) {
|
|
44
|
+
try {
|
|
45
|
+
parts.push(`${dir}:empty:${statSync(dir).mtimeMs}`);
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
parts.push(`${dir}:empty`);
|
|
49
|
+
}
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
for (const name of names) {
|
|
53
|
+
const full = join(dir, name);
|
|
54
|
+
try {
|
|
55
|
+
const st = statSync(full);
|
|
56
|
+
parts.push(`${full}:${st.mtimeMs}:${st.size}`);
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
parts.push(`${full}:gone`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return parts.join('\0');
|
|
64
|
+
}
|
|
26
65
|
/**
|
|
27
66
|
* Create the runner with the standard dir layout:
|
|
28
67
|
* global hooks always; project hooks only when `projectRoot` is trusted.
|
|
68
|
+
*
|
|
69
|
+
* v1.35: this runs on every user turn and used to readdir+readFile both
|
|
70
|
+
* hook dirs with sync fs each time. The built runner is cached until the
|
|
71
|
+
* hook-file fingerprint changes. Single-slot cache: one cwd per process.
|
|
29
72
|
*/
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
73
|
+
let runnerCache = null;
|
|
74
|
+
/** Build (or reuse) a runner from an explicit dir list. Exported for tests. */
|
|
75
|
+
export function createLifecycleHooksFromDirs(dirs) {
|
|
76
|
+
const fingerprint = fingerprintHookDirs(dirs);
|
|
77
|
+
if (runnerCache && runnerCache.fingerprint === fingerprint) {
|
|
78
|
+
return runnerCache.runner;
|
|
35
79
|
}
|
|
80
|
+
const runner = new LifecycleHookRunner();
|
|
36
81
|
for (const dir of dirs) {
|
|
37
82
|
runner.loadDir(dir);
|
|
38
83
|
}
|
|
84
|
+
runnerCache = { fingerprint, runner };
|
|
39
85
|
return runner;
|
|
40
86
|
}
|
|
87
|
+
export function createDefaultLifecycleHooks(projectRoot = process.cwd()) {
|
|
88
|
+
const dirs = [globalHooksDir()];
|
|
89
|
+
if (isFolderTrusted(projectRoot)) {
|
|
90
|
+
dirs.push(projectHooksDir(projectRoot));
|
|
91
|
+
}
|
|
92
|
+
return createLifecycleHooksFromDirs(dirs);
|
|
93
|
+
}
|
|
94
|
+
/** Drop the cached runner (tests + /hooks reload flows). */
|
|
95
|
+
export function resetLifecycleHookCache() {
|
|
96
|
+
runnerCache = null;
|
|
97
|
+
}
|
|
41
98
|
/**
|
|
42
99
|
* Describe hook sources for /inspect: each dir + whether it is active
|
|
43
100
|
* (global always; project only when trusted).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycleHooks.js","sourceRoot":"","sources":["../../../src/cli/safety/lifecycleHooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,gEAAgE;AAChE,MAAM,UAAU,cAAc;IAC5B,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,eAAe,CAAC,WAAmB;IACjD,OAAO,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"lifecycleHooks.js","sourceRoot":"","sources":["../../../src/cli/safety/lifecycleHooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,gEAAgE;AAChE,MAAM,UAAU,cAAc;IAC5B,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,eAAe,CAAC,WAAmB;IACjD,OAAO,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAuB;IACzD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,KAAe,CAAC;QACpB,IAAI,CAAC;YACH,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACrE,CAAC;QAAC,MAAM,CAAC;YACP,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,CAAC;YAC7B,SAAS;QACX,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC;gBACH,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,UAAU,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACtD,CAAC;YAAC,MAAM,CAAC;gBACP,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC;YAC7B,CAAC;YACD,SAAS;QACX,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC1B,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;YACjD,CAAC;YAAC,MAAM,CAAC;gBACP,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;;;GAOG;AACH,IAAI,WAAW,GAAgE,IAAI,CAAC;AAEpF,+EAA+E;AAC/E,MAAM,UAAU,4BAA4B,CAAC,IAAuB;IAClE,MAAM,WAAW,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,WAAW,IAAI,WAAW,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;QAC3D,OAAO,WAAW,CAAC,MAAM,CAAC;IAC5B,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,mBAAmB,EAAE,CAAC;IACzC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;IACD,WAAW,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;IACtC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,cAAsB,OAAO,CAAC,GAAG,EAAE;IAEnC,MAAM,IAAI,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC;IAChC,IAAI,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,4BAA4B,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,uBAAuB;IACrC,WAAW,GAAG,IAAI,CAAC;AACrB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,cAAsB,OAAO,CAAC,GAAG,EAAE;IAKrE,MAAM,OAAO,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;IAC7C,OAAO;QACL,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE;QACzD,EAAE,IAAI,EAAE,eAAe,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE;KAC1E,CAAC;AACJ,CAAC"}
|
package/dist/cli/skillCache.js
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* reveals user prompts. This matches v3-C's privacy stance for the
|
|
13
13
|
* history log.
|
|
14
14
|
*
|
|
15
|
-
* Storage: `~/.tmp/
|
|
15
|
+
* Storage: `~/.tmp/zelari-code/skill-cache.json` (override via
|
|
16
16
|
* `ANATHEMA_SKILL_CACHE_FILE` env var). Bounded size: callers should
|
|
17
17
|
* purge periodically; the file grows by entry size, no rotation.
|
|
18
18
|
*
|
package/dist/cli/toolRegistry.js
CHANGED
|
@@ -39,6 +39,7 @@ import { providerFromEnv, providerConfigFor, } from './provider/openai-compatibl
|
|
|
39
39
|
import { buildProviderStream } from './provider/resolveStream.js';
|
|
40
40
|
import { defaultPermissionPolicy, resolveToolPermission, } from './safety/toolPermissions.js';
|
|
41
41
|
import { createDefaultLifecycleHooks } from './safety/lifecycleHooks.js';
|
|
42
|
+
import { withResultCache } from './toolResultCache.js';
|
|
42
43
|
import { typedErr } from '@zelari/core/harness/tools/toolTypes';
|
|
43
44
|
import { cliToolToEnhanced, registerCustomTool } from '@zelari/core/skills';
|
|
44
45
|
/**
|
|
@@ -64,11 +65,13 @@ export function createBuiltinToolRegistry(options = {}) {
|
|
|
64
65
|
// the model sees compiler feedback in the same turn (opt out: ZELARI_DIAGNOSTICS=0).
|
|
65
66
|
const diagnosticsOn = options.diagnostics ?? process.env.ZELARI_DIAGNOSTICS !== '0';
|
|
66
67
|
const withDiag = (t) => diagnosticsOn ? wrapWithDiagnostics(t, root, options.diagnosticsRunner) : t;
|
|
67
|
-
|
|
68
|
+
// Cache sits inside the sandbox wrap so permission + path checks still
|
|
69
|
+
// run on every call; only the disk/search work is skipped on a hit.
|
|
70
|
+
const safeReadFile = wrapWithSandbox(withResultCache(readFileTool, { kind: 'stat' }), ['path'], root, audit, sessionId);
|
|
68
71
|
const safeWriteFile = withDiag(wrapWithSandbox(writeFileTool, ['path'], root, audit, sessionId));
|
|
69
72
|
const safeEditFile = withDiag(wrapWithSandbox(editFileTool, ['path'], root, audit, sessionId));
|
|
70
|
-
const safeGrepContent = wrapWithSandbox(grepContentTool, ['path'], root, audit, sessionId);
|
|
71
|
-
const safeListFiles = wrapWithSandbox(listFilesTool, ['path'], root, audit, sessionId);
|
|
73
|
+
const safeGrepContent = wrapWithSandbox(withResultCache(grepContentTool, { kind: 'ttl' }), ['path'], root, audit, sessionId);
|
|
74
|
+
const safeListFiles = wrapWithSandbox(withResultCache(listFilesTool, { kind: 'ttl' }), ['path'], root, audit, sessionId);
|
|
72
75
|
const safeShowDiff = wrapWithSandbox(showDiffTool, ['path'], root, audit, sessionId);
|
|
73
76
|
const safeApplyDiff = withDiag(wrapWithSandbox(applyDiffTool, ['path'], root, audit, sessionId));
|
|
74
77
|
// Wrap bash: shell blocklist + audit.
|