@roj-ai/sdk 0.1.19 → 0.1.21
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/core/agents/agent.d.ts.map +1 -1
- package/dist/core/agents/agent.js +13 -3
- package/dist/core/agents/agent.js.map +1 -1
- package/dist/core/context/state.d.ts +8 -0
- package/dist/core/context/state.d.ts.map +1 -1
- package/dist/core/context/state.js +10 -0
- package/dist/core/context/state.js.map +1 -1
- package/dist/core/events/base-event-store.d.ts.map +1 -1
- package/dist/core/events/base-event-store.js +2 -0
- package/dist/core/events/base-event-store.js.map +1 -1
- package/dist/core/events/metadata-utils.d.ts.map +1 -1
- package/dist/core/events/metadata-utils.js +2 -0
- package/dist/core/events/metadata-utils.js.map +1 -1
- package/dist/core/llm/anthropic.test.js +27 -0
- package/dist/core/llm/anthropic.test.js.map +1 -1
- package/dist/core/llm/cache-breakpoints.d.ts +19 -5
- package/dist/core/llm/cache-breakpoints.d.ts.map +1 -1
- package/dist/core/llm/cache-breakpoints.js +40 -23
- package/dist/core/llm/cache-breakpoints.js.map +1 -1
- package/dist/core/llm/cache-breakpoints.test.d.ts +2 -0
- package/dist/core/llm/cache-breakpoints.test.d.ts.map +1 -0
- package/dist/core/llm/cache-breakpoints.test.js +45 -0
- package/dist/core/llm/cache-breakpoints.test.js.map +1 -0
- package/dist/core/llm/state.d.ts +22 -0
- package/dist/core/llm/state.d.ts.map +1 -1
- package/dist/core/llm/state.js +23 -11
- package/dist/core/llm/state.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/mime.d.ts +1 -1
- package/dist/lib/mime.d.ts.map +1 -1
- package/dist/lib/mime.js +7 -4
- package/dist/lib/mime.js.map +1 -1
- package/dist/plugins/agents/plugin.d.ts.map +1 -1
- package/dist/plugins/agents/plugin.js +7 -1
- package/dist/plugins/agents/plugin.js.map +1 -1
- package/dist/plugins/context-compact/context-compact.integration.test.js +54 -0
- package/dist/plugins/context-compact/context-compact.integration.test.js.map +1 -1
- package/dist/plugins/context-compact/context-compactor.d.ts +2 -0
- package/dist/plugins/context-compact/context-compactor.d.ts.map +1 -1
- package/dist/plugins/context-compact/context-compactor.js +29 -0
- package/dist/plugins/context-compact/context-compactor.js.map +1 -1
- package/dist/plugins/context-compact/context-compactor.test.js +6 -0
- package/dist/plugins/context-compact/context-compactor.test.js.map +1 -1
- package/dist/plugins/limits-guard/config.d.ts +30 -0
- package/dist/plugins/limits-guard/config.d.ts.map +1 -1
- package/dist/plugins/limits-guard/index.d.ts +3 -3
- package/dist/plugins/limits-guard/index.d.ts.map +1 -1
- package/dist/plugins/limits-guard/index.js +1 -1
- package/dist/plugins/limits-guard/index.js.map +1 -1
- package/dist/plugins/limits-guard/limit-guard.d.ts +27 -1
- package/dist/plugins/limits-guard/limit-guard.d.ts.map +1 -1
- package/dist/plugins/limits-guard/limit-guard.js +67 -0
- package/dist/plugins/limits-guard/limit-guard.js.map +1 -1
- package/dist/plugins/limits-guard/limit-guard.test.js +65 -1
- package/dist/plugins/limits-guard/limit-guard.test.js.map +1 -1
- package/dist/plugins/limits-guard/limits-guard.integration.test.js +295 -1
- package/dist/plugins/limits-guard/limits-guard.integration.test.js.map +1 -1
- package/dist/plugins/limits-guard/plugin.d.ts +23 -2
- package/dist/plugins/limits-guard/plugin.d.ts.map +1 -1
- package/dist/plugins/limits-guard/plugin.js +107 -2
- package/dist/plugins/limits-guard/plugin.js.map +1 -1
- package/dist/plugins/mailbox/plugin.d.ts.map +1 -1
- package/dist/plugins/mailbox/plugin.js +18 -0
- package/dist/plugins/mailbox/plugin.js.map +1 -1
- package/dist/plugins/session-stats/plugin.d.ts.map +1 -1
- package/dist/plugins/session-stats/plugin.js +5 -1
- package/dist/plugins/session-stats/plugin.js.map +1 -1
- package/package.json +2 -2
- package/src/core/agents/agent.ts +18 -2
- package/src/core/context/state.ts +10 -0
- package/src/core/events/base-event-store.ts +2 -0
- package/src/core/events/metadata-utils.ts +2 -0
- package/src/core/llm/anthropic.test.ts +34 -0
- package/src/core/llm/cache-breakpoints.test.ts +55 -0
- package/src/core/llm/cache-breakpoints.ts +39 -21
- package/src/core/llm/state.ts +25 -11
- package/src/index.ts +3 -3
- package/src/lib/mime.ts +7 -4
- package/src/plugins/agents/plugin.ts +7 -1
- package/src/plugins/context-compact/context-compact.integration.test.ts +62 -0
- package/src/plugins/context-compact/context-compactor.test.ts +6 -0
- package/src/plugins/context-compact/context-compactor.ts +31 -0
- package/src/plugins/limits-guard/config.ts +35 -0
- package/src/plugins/limits-guard/index.ts +3 -3
- package/src/plugins/limits-guard/limit-guard.test.ts +80 -1
- package/src/plugins/limits-guard/limit-guard.ts +98 -1
- package/src/plugins/limits-guard/limits-guard.integration.test.ts +331 -1
- package/src/plugins/limits-guard/plugin.ts +153 -3
- package/src/plugins/mailbox/plugin.ts +18 -0
- package/src/plugins/session-stats/plugin.ts +5 -1
|
@@ -1,20 +1,34 @@
|
|
|
1
1
|
import { agentEvents } from '../../core/agents/state.js';
|
|
2
|
+
import { contextEvents } from '../../core/context/state.js';
|
|
2
3
|
import { llmEvents } from '../../core/llm/state.js';
|
|
3
4
|
import { definePlugin } from '../../core/plugins/plugin-builder.js';
|
|
4
5
|
import { selectPluginState } from '../../core/sessions/reducer.js';
|
|
5
6
|
import { toolEvents } from '../../core/tools/state.js';
|
|
6
7
|
import { responseFingerprint, toolCallFingerprint } from '../../lib/utils/hash.js';
|
|
7
8
|
import { mailboxEvents } from '../../plugins/mailbox/state.js';
|
|
8
|
-
import { checkLimits, countConsecutiveTailDuplicates, resolveAgentLimits } from './limit-guard.js';
|
|
9
|
+
import { checkBudget, checkLimits, countConsecutiveTailDuplicates, resolveAgentLimits, resolveSessionLimits, } from './limit-guard.js';
|
|
9
10
|
export const createAgentCounters = () => ({
|
|
10
11
|
inferenceCount: 0,
|
|
11
12
|
toolCallCount: 0,
|
|
12
13
|
spawnedAgentCount: 0,
|
|
13
14
|
messagesSentCount: 0,
|
|
15
|
+
compactionCount: 0,
|
|
16
|
+
costSpent: 0,
|
|
17
|
+
tokensUsed: 0,
|
|
14
18
|
consecutiveToolFailures: {},
|
|
15
19
|
recentToolCallHashes: [],
|
|
16
20
|
recentResponseHashes: [],
|
|
17
21
|
});
|
|
22
|
+
/** Sum cost + tokens across all agents in the session (for the session-wide budget). */
|
|
23
|
+
export function sumSessionSpend(limits) {
|
|
24
|
+
let costSpent = 0;
|
|
25
|
+
let tokensUsed = 0;
|
|
26
|
+
for (const counters of limits.values()) {
|
|
27
|
+
costSpent += counters.costSpent;
|
|
28
|
+
tokensUsed += counters.tokensUsed;
|
|
29
|
+
}
|
|
30
|
+
return { costSpent, tokensUsed };
|
|
31
|
+
}
|
|
18
32
|
/**
|
|
19
33
|
* Extract agent counters from session state (for external consumers).
|
|
20
34
|
*/
|
|
@@ -36,6 +50,16 @@ export const limitsEvents = createEventsFactory({
|
|
|
36
50
|
hardLimit: z.number(),
|
|
37
51
|
message: z.string(),
|
|
38
52
|
}),
|
|
53
|
+
budget_exceeded: z.object({
|
|
54
|
+
agentId: agentIdSchema,
|
|
55
|
+
/** Whether the per-agent or the session-wide budget was hit. */
|
|
56
|
+
scope: z.enum(['agent', 'session']),
|
|
57
|
+
/** Which limit tripped: maxCost / maxTokens / maxSessionCost / maxSessionTokens. */
|
|
58
|
+
limitName: z.string(),
|
|
59
|
+
spent: z.number(),
|
|
60
|
+
limit: z.number(),
|
|
61
|
+
message: z.string(),
|
|
62
|
+
}),
|
|
39
63
|
},
|
|
40
64
|
});
|
|
41
65
|
// ============================================================================
|
|
@@ -54,7 +78,8 @@ function resolveToolName(sessionState, agentId, toolCallId) {
|
|
|
54
78
|
?? 'unknown';
|
|
55
79
|
}
|
|
56
80
|
export const limitsGuardPlugin = definePlugin('limits-guard')
|
|
57
|
-
.events([agentEvents, llmEvents, toolEvents, mailboxEvents])
|
|
81
|
+
.events([agentEvents, llmEvents, toolEvents, mailboxEvents, contextEvents, limitsEvents])
|
|
82
|
+
.pluginConfig()
|
|
58
83
|
.state({
|
|
59
84
|
key: 'agentLimits',
|
|
60
85
|
initial: () => new Map(),
|
|
@@ -109,10 +134,38 @@ export const limitsGuardPlugin = definePlugin('limits-guard')
|
|
|
109
134
|
newLimits.set(event.agentId, {
|
|
110
135
|
...counters,
|
|
111
136
|
inferenceCount: counters.inferenceCount + 1,
|
|
137
|
+
costSpent: counters.costSpent + (event.metrics.cost ?? 0),
|
|
138
|
+
tokensUsed: counters.tokensUsed + (event.metrics.totalTokens ?? 0),
|
|
112
139
|
recentResponseHashes: newRecentResponseHashes,
|
|
113
140
|
});
|
|
114
141
|
return newLimits;
|
|
115
142
|
}
|
|
143
|
+
case 'auxiliary_inference_completed': {
|
|
144
|
+
// Side-channel calls (e.g. context compaction) are billed but don't
|
|
145
|
+
// touch conversation state, so they count toward cost/token budgets
|
|
146
|
+
// but NOT toward inferenceCount or the anti-looping response hashes.
|
|
147
|
+
const counters = limits.get(event.agentId);
|
|
148
|
+
if (!counters)
|
|
149
|
+
return limits;
|
|
150
|
+
const newLimits = new Map(limits);
|
|
151
|
+
newLimits.set(event.agentId, {
|
|
152
|
+
...counters,
|
|
153
|
+
costSpent: counters.costSpent + (event.metrics.cost ?? 0),
|
|
154
|
+
tokensUsed: counters.tokensUsed + (event.metrics.totalTokens ?? 0),
|
|
155
|
+
});
|
|
156
|
+
return newLimits;
|
|
157
|
+
}
|
|
158
|
+
case 'context_compacted': {
|
|
159
|
+
const counters = limits.get(event.agentId);
|
|
160
|
+
if (!counters)
|
|
161
|
+
return limits;
|
|
162
|
+
const newLimits = new Map(limits);
|
|
163
|
+
newLimits.set(event.agentId, {
|
|
164
|
+
...counters,
|
|
165
|
+
compactionCount: counters.compactionCount + 1,
|
|
166
|
+
});
|
|
167
|
+
return newLimits;
|
|
168
|
+
}
|
|
116
169
|
case 'tool_started': {
|
|
117
170
|
const counters = limits.get(event.agentId);
|
|
118
171
|
if (!counters)
|
|
@@ -161,6 +214,11 @@ export const limitsGuardPlugin = definePlugin('limits-guard')
|
|
|
161
214
|
const counters = limits.get(event.agentId);
|
|
162
215
|
if (!counters)
|
|
163
216
|
return limits;
|
|
217
|
+
// Reset the anti-looping counters so the agent can make progress
|
|
218
|
+
// again. Budget spend (costSpent/tokensUsed) is deliberately NOT
|
|
219
|
+
// reset — otherwise a per-agent or session cost cap could be bypassed
|
|
220
|
+
// by repeatedly pausing and resuming. To grant more budget, raise the
|
|
221
|
+
// configured limit instead.
|
|
164
222
|
const newLimits = new Map(limits);
|
|
165
223
|
newLimits.set(event.agentId, {
|
|
166
224
|
...counters,
|
|
@@ -168,6 +226,7 @@ export const limitsGuardPlugin = definePlugin('limits-guard')
|
|
|
168
226
|
toolCallCount: 0,
|
|
169
227
|
spawnedAgentCount: 0,
|
|
170
228
|
messagesSentCount: 0,
|
|
229
|
+
compactionCount: 0,
|
|
171
230
|
consecutiveToolFailures: {},
|
|
172
231
|
recentToolCallHashes: [],
|
|
173
232
|
recentResponseHashes: [],
|
|
@@ -180,6 +239,42 @@ export const limitsGuardPlugin = definePlugin('limits-guard')
|
|
|
180
239
|
},
|
|
181
240
|
})
|
|
182
241
|
.agentConfig()
|
|
242
|
+
.hook('beforeInference', async (ctx) => {
|
|
243
|
+
// Budgets are enforced here (before the call) so an exhausted agent is
|
|
244
|
+
// paused before spending more — cost/tokens of a call aren't known until
|
|
245
|
+
// after it returns, so we stop the *next* call once the threshold is hit.
|
|
246
|
+
const counters = ctx.pluginState.get(ctx.agentId);
|
|
247
|
+
if (!counters)
|
|
248
|
+
return null;
|
|
249
|
+
const agentLimits = resolveAgentLimits(ctx.pluginAgentConfig?.limits);
|
|
250
|
+
const agentCheck = checkBudget(counters, agentLimits.maxCost, agentLimits.maxTokens, agentLimits.softLimitRatio, { cost: 'maxCost', tokens: 'maxTokens' });
|
|
251
|
+
if (agentCheck.status === 'hard_limit') {
|
|
252
|
+
await ctx.emitEvent(limitsEvents.create('budget_exceeded', {
|
|
253
|
+
agentId: ctx.agentId,
|
|
254
|
+
scope: 'agent',
|
|
255
|
+
limitName: agentCheck.limitName,
|
|
256
|
+
spent: agentCheck.currentValue,
|
|
257
|
+
limit: agentCheck.hardLimit,
|
|
258
|
+
message: agentCheck.reason,
|
|
259
|
+
}));
|
|
260
|
+
return { action: 'pause', reason: `Agent budget exceeded — ${agentCheck.reason}` };
|
|
261
|
+
}
|
|
262
|
+
const sessionLimits = resolveSessionLimits(ctx.pluginConfig);
|
|
263
|
+
const sessionSpend = sumSessionSpend(ctx.pluginState);
|
|
264
|
+
const sessionCheck = checkBudget(sessionSpend, sessionLimits.maxSessionCost, sessionLimits.maxSessionTokens, sessionLimits.softLimitRatio, { cost: 'maxSessionCost', tokens: 'maxSessionTokens' });
|
|
265
|
+
if (sessionCheck.status === 'hard_limit') {
|
|
266
|
+
await ctx.emitEvent(limitsEvents.create('budget_exceeded', {
|
|
267
|
+
agentId: ctx.agentId,
|
|
268
|
+
scope: 'session',
|
|
269
|
+
limitName: sessionCheck.limitName,
|
|
270
|
+
spent: sessionCheck.currentValue,
|
|
271
|
+
limit: sessionCheck.hardLimit,
|
|
272
|
+
message: sessionCheck.reason,
|
|
273
|
+
}));
|
|
274
|
+
return { action: 'pause', reason: `Session budget exceeded — ${sessionCheck.reason}` };
|
|
275
|
+
}
|
|
276
|
+
return null;
|
|
277
|
+
})
|
|
183
278
|
.hook('afterInference', async (ctx) => {
|
|
184
279
|
const resolvedLimits = resolveAgentLimits(ctx.pluginAgentConfig?.limits);
|
|
185
280
|
const counters = ctx.pluginState.get(ctx.agentId);
|
|
@@ -234,6 +329,16 @@ export const limitsGuardPlugin = definePlugin('limits-guard')
|
|
|
234
329
|
parts.push(`⚠️ Approaching ${limitCheck.limitName} limit: ${limitCheck.currentValue}/${limitCheck.hardLimit}. `
|
|
235
330
|
+ `Wrap up your current task or you will be stopped.`);
|
|
236
331
|
}
|
|
332
|
+
// Budget soft warnings — per-agent spend, then the session-wide budget.
|
|
333
|
+
const agentBudget = checkBudget(counters, resolvedLimits.maxCost, resolvedLimits.maxTokens, resolvedLimits.softLimitRatio, { cost: 'maxCost', tokens: 'maxTokens' });
|
|
334
|
+
if (agentBudget.status === 'soft_warning') {
|
|
335
|
+
parts.push(`⚠️ ${agentBudget.message}. You will be paused when the budget is reached — wrap up.`);
|
|
336
|
+
}
|
|
337
|
+
const sessionLimits = resolveSessionLimits(ctx.pluginConfig);
|
|
338
|
+
const sessionBudget = checkBudget(sumSessionSpend(ctx.pluginState), sessionLimits.maxSessionCost, sessionLimits.maxSessionTokens, sessionLimits.softLimitRatio, { cost: 'maxSessionCost', tokens: 'maxSessionTokens' });
|
|
339
|
+
if (sessionBudget.status === 'soft_warning') {
|
|
340
|
+
parts.push(`⚠️ Session-wide ${sessionBudget.message}.`);
|
|
341
|
+
}
|
|
237
342
|
return parts.length > 0 ? parts.join('\n\n') : null;
|
|
238
343
|
})
|
|
239
344
|
.build();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/plugins/limits-guard/plugin.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/plugins/limits-guard/plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/mailbox/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,CAAC,MAAM,QAAQ,CAAC;AAyBvB;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAErC;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC,wFAAwF;IACxF,qBAAqB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,eAAO,MAAM,aAAa;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/mailbox/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,CAAC,MAAM,QAAQ,CAAC;AAyBvB;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAErC;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC,wFAAwF;IACxF,qBAAqB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,eAAO,MAAM,aAAa;;;;;;;;;;;GAqQjB,CAAC"}
|
|
@@ -167,6 +167,24 @@ export const mailboxPlugin = definePlugin("mailbox")
|
|
|
167
167
|
content: `Agent encountered an error: ${ctx.error}`,
|
|
168
168
|
});
|
|
169
169
|
return null;
|
|
170
|
+
})
|
|
171
|
+
.hook("onPause", async (ctx) => {
|
|
172
|
+
// Notify the parent immediately when a child pauses (budget/limit exhaustion,
|
|
173
|
+
// manual pause, …) so it can react: resume after addressing the cause,
|
|
174
|
+
// reassign the work, or stop. Lives here (not in the agents plugin) because
|
|
175
|
+
// the agents plugin is disabled on leaf agents that can't spawn — but those
|
|
176
|
+
// are exactly the agents that pause and need to report upward. mailbox is
|
|
177
|
+
// enabled on every agent, and self.send wakes the parent. Root agents
|
|
178
|
+
// (no parent) have no one to notify.
|
|
179
|
+
const parentId = ctx.agentState.parentId;
|
|
180
|
+
if (!parentId || !ctx.sessionState.agents.has(parentId))
|
|
181
|
+
return null;
|
|
182
|
+
await ctx.self.send({
|
|
183
|
+
fromAgentId: ctx.agentId,
|
|
184
|
+
toAgentId: parentId,
|
|
185
|
+
content: `<child-paused agent="${ctx.agentId}">${ctx.reason ?? "no reason given"}</child-paused>`,
|
|
186
|
+
});
|
|
187
|
+
return null;
|
|
170
188
|
})
|
|
171
189
|
.systemPrompt((ctx) => {
|
|
172
190
|
const role = getAgentRole(ctx.agentState, ctx.sessionState);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/plugins/mailbox/plugin.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/plugins/mailbox/plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/session-stats/plugin.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAO5D,MAAM,WAAW,aAAa;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,gBAAgB,EAAE,MAAM,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,iBAAiB;IACjC,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,gBAAgB,EAAE,MAAM,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;CACzC;AAmBD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,YAAY,GAAG,iBAAiB,CAEhF;AAMD,eAAO,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/session-stats/plugin.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAO5D,MAAM,WAAW,aAAa;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,gBAAgB,EAAE,MAAM,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,iBAAiB;IACjC,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,gBAAgB,EAAE,MAAM,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;CACzC;AAmBD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,YAAY,GAAG,iBAAiB,CAEhF;AAMD,eAAO,MAAM,kBAAkB,kGA4DtB,CAAA"}
|
|
@@ -43,7 +43,11 @@ export const sessionStatsPlugin = definePlugin('session-stats')
|
|
|
43
43
|
switch (event.type) {
|
|
44
44
|
case 'agent_spawned':
|
|
45
45
|
return withTimestamp({ agentCount: stats.agentCount + 1 });
|
|
46
|
-
|
|
46
|
+
// inference_completed = main agent turns; auxiliary_inference_completed =
|
|
47
|
+
// side-channel calls (e.g. context compaction). Both are billed LLM
|
|
48
|
+
// calls, so both feed the same usage/cost accounting.
|
|
49
|
+
case 'inference_completed':
|
|
50
|
+
case 'auxiliary_inference_completed': {
|
|
47
51
|
const provider = event.metrics.provider;
|
|
48
52
|
const byProvider = provider
|
|
49
53
|
? {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/plugins/session-stats/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAE9D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AA8BlD,MAAM,kBAAkB,GAAG,GAAsB,EAAE,CAAC,CAAC;IACpD,WAAW,EAAE,CAAC;IACd,YAAY,EAAE,CAAC;IACf,gBAAgB,EAAE,CAAC;IACnB,SAAS,EAAE,CAAC;IACZ,QAAQ,EAAE,CAAC;IACX,SAAS,EAAE,CAAC;IACZ,SAAS,EAAE,CAAC;IACZ,UAAU,EAAE,CAAC;IACb,UAAU,EAAE,CAAC;IACb,YAAY,EAAE,IAAI;IAClB,WAAW,EAAE,IAAI;IACjB,UAAU,EAAE,EAAE;CACd,CAAC,CAAA;AAEF,MAAM,gBAAgB,GAAG,cAAc,CAAA;AAEvC;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,YAA0B;IAC5D,OAAO,iBAAiB,CAAoB,YAAY,EAAE,gBAAgB,CAAC,IAAI,kBAAkB,EAAE,CAAA;AACpG,CAAC;AAED,+EAA+E;AAC/E,SAAS;AACT,+EAA+E;AAE/E,MAAM,CAAC,MAAM,kBAAkB,GAAG,YAAY,CAAC,eAAe,CAAC;KAC7D,MAAM,CAAC,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;KAC5C,KAAK,CAAC;IACN,GAAG,EAAE,gBAAgB;IACrB,OAAO,EAAE,kBAAkB;IAC3B,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACxB,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAA;QAC3B,MAAM,aAAa,GAAG,CAAC,OAAmC,EAAqB,EAAE,CAAC,CAAC;YAClF,GAAG,KAAK;YACR,GAAG,OAAO;YACV,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,GAAG;YACvC,WAAW,EAAE,GAAG;SAChB,CAAC,CAAA;QAEF,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,eAAe;gBACnB,OAAO,aAAa,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC,CAAA;YAE3D,KAAK,qBAAqB,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/plugins/session-stats/plugin.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@roj-ai/sdk",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.21",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"exports": {
|
|
@@ -135,7 +135,7 @@
|
|
|
135
135
|
"type-check": "tsc --noEmit"
|
|
136
136
|
},
|
|
137
137
|
"dependencies": {
|
|
138
|
-
"@roj-ai/transport": "^0.1.
|
|
138
|
+
"@roj-ai/transport": "^0.1.21",
|
|
139
139
|
"@hono/zod-validator": "0.7.6",
|
|
140
140
|
"hono": "4.12.5",
|
|
141
141
|
"ignore": "7.0.5",
|
package/src/core/agents/agent.ts
CHANGED
|
@@ -420,7 +420,7 @@ export class Agent {
|
|
|
420
420
|
...pendingToolResultMessages,
|
|
421
421
|
]
|
|
422
422
|
const messages = [...baseMessages, ...extraMessages]
|
|
423
|
-
const cachedMessages = applyCacheBreakpoint(messages, extraMessages.length, this.config.cacheTtl)
|
|
423
|
+
const cachedMessages = applyCacheBreakpoint(messages, extraMessages.length, this.config.cacheTtl, agentState.preamble.length)
|
|
424
424
|
|
|
425
425
|
const request: InferenceRequest = {
|
|
426
426
|
model: this.config.model,
|
|
@@ -429,13 +429,28 @@ export class Agent {
|
|
|
429
429
|
tools: this.tools.size > 0 ? [...this.tools.values()] : undefined,
|
|
430
430
|
}
|
|
431
431
|
|
|
432
|
-
|
|
432
|
+
const result = await this.llmProvider.inference(request, {
|
|
433
433
|
sessionId: this.store.sessionId,
|
|
434
434
|
agentId: this.id,
|
|
435
435
|
signal: this.abortController.signal,
|
|
436
436
|
fileStore: this.fileStore,
|
|
437
437
|
providers: this.llmProviders,
|
|
438
438
|
})
|
|
439
|
+
|
|
440
|
+
// Auxiliary calls don't go through emitInferenceCompleted (that event mutates
|
|
441
|
+
// conversation state), so without this their tokens/cost would be billed but
|
|
442
|
+
// never show up in session stats or metadata. Emit a stats-only event instead.
|
|
443
|
+
if (result.ok) {
|
|
444
|
+
await this.store.emit(withSessionId(
|
|
445
|
+
this.store.sessionId,
|
|
446
|
+
llmEvents.create('auxiliary_inference_completed', {
|
|
447
|
+
agentId: this.id,
|
|
448
|
+
metrics: result.value.metrics,
|
|
449
|
+
}),
|
|
450
|
+
))
|
|
451
|
+
}
|
|
452
|
+
|
|
453
|
+
return result
|
|
439
454
|
}
|
|
440
455
|
|
|
441
456
|
// ============================================================================
|
|
@@ -549,6 +564,7 @@ export class Agent {
|
|
|
549
564
|
messages,
|
|
550
565
|
ephemeralParts.length > 0 ? 1 : 0,
|
|
551
566
|
this.config.cacheTtl,
|
|
567
|
+
agentState.preamble.length,
|
|
552
568
|
)
|
|
553
569
|
|
|
554
570
|
// 5. LLM inference (with retry)
|
|
@@ -23,6 +23,16 @@ export const contextEvents = createEventsFactory({
|
|
|
23
23
|
context_compacted: z4.object({
|
|
24
24
|
agentId: agentIdSchema,
|
|
25
25
|
compactedContent: z4.string(),
|
|
26
|
+
/**
|
|
27
|
+
* Display-only snapshot of the messages that were summarized away (the
|
|
28
|
+
* "input" of the compaction). Not used for conversation reconstruction —
|
|
29
|
+
* that's driven by {@link newConversationHistory}. Optional for backward
|
|
30
|
+
* compatibility with events emitted before this field existed.
|
|
31
|
+
*/
|
|
32
|
+
originalMessages: z4.array(z4.object({
|
|
33
|
+
role: z4.enum(['user', 'assistant', 'system']),
|
|
34
|
+
content: z4.string(),
|
|
35
|
+
})).optional(),
|
|
26
36
|
newConversationHistory: z4.array(z4.object({
|
|
27
37
|
role: z4.enum(['user', 'assistant', 'system']),
|
|
28
38
|
content: z4.string(),
|
|
@@ -198,7 +198,9 @@ export abstract class BaseEventStore implements EventStore {
|
|
|
198
198
|
metrics.totalEvents += 1
|
|
199
199
|
break
|
|
200
200
|
|
|
201
|
+
// Both normal turns and side-channel calls (e.g. compaction) are billed.
|
|
201
202
|
case 'inference_completed':
|
|
203
|
+
case 'auxiliary_inference_completed':
|
|
202
204
|
if (event.metrics) {
|
|
203
205
|
metrics.totalTokens += event.metrics.totalTokens ?? 0
|
|
204
206
|
metrics.inputTokens = (metrics.inputTokens ?? 0) + (event.metrics.promptTokens ?? 0)
|
|
@@ -36,7 +36,9 @@ export function computeMetricsFromEvents(events: DomainEvent[]): SessionMetadata
|
|
|
36
36
|
metrics.totalAgents++
|
|
37
37
|
break
|
|
38
38
|
|
|
39
|
+
// Both normal turns and side-channel calls (e.g. compaction) are billed.
|
|
39
40
|
case 'inference_completed':
|
|
41
|
+
case 'auxiliary_inference_completed':
|
|
40
42
|
if (event.metrics) {
|
|
41
43
|
metrics.totalLLMCalls++
|
|
42
44
|
metrics.totalTokens += event.metrics.totalTokens ?? 0
|
|
@@ -400,6 +400,40 @@ describe('AnthropicProvider buildHttpRequest cache placement', () => {
|
|
|
400
400
|
expect(last.content[1].cache_control).toBeUndefined()
|
|
401
401
|
})
|
|
402
402
|
|
|
403
|
+
test('stable prefix + tail: TWO cache_control blocks survive into the HTTP body', async () => {
|
|
404
|
+
// Mirrors the agent flow: an immutable preamble followed by a churning
|
|
405
|
+
// conversation tail. applyCacheBreakpoint with cachedPrefixCount marks
|
|
406
|
+
// BOTH the last preamble message and the tail — both must reach the wire.
|
|
407
|
+
// Roles alternate so mergeConsecutiveMessages doesn't fold them together.
|
|
408
|
+
const messages = applyCacheBreakpoint(
|
|
409
|
+
[
|
|
410
|
+
{ role: 'user', content: 'preamble part A' },
|
|
411
|
+
{ role: 'assistant', content: 'preamble part B' }, // last preamble msg → prefix breakpoint
|
|
412
|
+
{ role: 'user', content: 'conversation turn' },
|
|
413
|
+
{ role: 'assistant', content: 'tail reply' }, // tail breakpoint
|
|
414
|
+
],
|
|
415
|
+
0, // no uncached suffix → tailIdx = 3
|
|
416
|
+
undefined,
|
|
417
|
+
2, // cachedPrefixCount → prefixIdx = 1
|
|
418
|
+
)
|
|
419
|
+
|
|
420
|
+
const http = await createProvider().buildHttpRequest(buildRequest(messages))
|
|
421
|
+
const msgs = getBodyMessages(http.body)
|
|
422
|
+
|
|
423
|
+
expect(msgs.length).toBe(4)
|
|
424
|
+
// Prefix breakpoint on the last preamble message
|
|
425
|
+
const prefix = msgs[1]
|
|
426
|
+
expect(prefix.role).toBe('assistant')
|
|
427
|
+
expect(prefix.content[prefix.content.length - 1].cache_control).toEqual({ type: 'ephemeral' })
|
|
428
|
+
// Tail breakpoint on the final message
|
|
429
|
+
const tail = msgs[3]
|
|
430
|
+
expect(tail.role).toBe('assistant')
|
|
431
|
+
expect(tail.content[tail.content.length - 1].cache_control).toEqual({ type: 'ephemeral' })
|
|
432
|
+
// Messages between the two breakpoints stay uncached
|
|
433
|
+
expect(msgs[0].content[msgs[0].content.length - 1].cache_control).toBeUndefined()
|
|
434
|
+
expect(msgs[2].content[msgs[2].content.length - 1].cache_control).toBeUndefined()
|
|
435
|
+
})
|
|
436
|
+
|
|
403
437
|
test('no flag on any message: only system prompt has cache_control', async () => {
|
|
404
438
|
const http = await createProvider().buildHttpRequest(buildRequest([
|
|
405
439
|
{ role: 'user', content: 'What is 2+2?' },
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { describe, expect, test } from 'bun:test'
|
|
2
|
+
import type { LLMMessage } from '~/core/agents/state.js'
|
|
3
|
+
import { applyCacheBreakpoint } from './cache-breakpoints.js'
|
|
4
|
+
|
|
5
|
+
const userMessages = (count: number): LLMMessage[] =>
|
|
6
|
+
Array.from({ length: count }, (_, i) => ({ role: 'user', content: `m${i}` }))
|
|
7
|
+
|
|
8
|
+
const cachedIndices = (messages: LLMMessage[]): number[] =>
|
|
9
|
+
messages.flatMap((m, i) => ('cacheControl' in m && m.cacheControl ? [i] : []))
|
|
10
|
+
|
|
11
|
+
describe('applyCacheBreakpoint', () => {
|
|
12
|
+
test('cachedPrefixCount = 0 → single tail breakpoint only (unchanged behaviour)', () => {
|
|
13
|
+
const messages = userMessages(5)
|
|
14
|
+
const result = applyCacheBreakpoint(messages, 1)
|
|
15
|
+
// tail = length - 1 - suffix = 5 - 1 - 1 = 3
|
|
16
|
+
expect(cachedIndices(result)).toEqual([3])
|
|
17
|
+
})
|
|
18
|
+
|
|
19
|
+
test('cachedPrefixCount > 0 → two breakpoints: prefix end and tail', () => {
|
|
20
|
+
const messages = userMessages(10)
|
|
21
|
+
const result = applyCacheBreakpoint(messages, 1, undefined, 3)
|
|
22
|
+
// prefix = 3 - 1 = 2, tail = 10 - 1 - 1 = 8
|
|
23
|
+
expect(cachedIndices(result)).toEqual([2, 8])
|
|
24
|
+
})
|
|
25
|
+
|
|
26
|
+
test('prefixIdx === tailIdx → only one breakpoint, no duplicate', () => {
|
|
27
|
+
// preamble is the whole list, no suffix: tail = 3 - 1 - 0 = 2, prefix = 3 - 1 = 2
|
|
28
|
+
const messages = userMessages(3)
|
|
29
|
+
const result = applyCacheBreakpoint(messages, 0, undefined, 3)
|
|
30
|
+
expect(cachedIndices(result)).toEqual([2])
|
|
31
|
+
})
|
|
32
|
+
|
|
33
|
+
test('cachedPrefixCount larger than messages.length → out-of-range prefix ignored, tail still applied', () => {
|
|
34
|
+
const messages = userMessages(4)
|
|
35
|
+
const result = applyCacheBreakpoint(messages, 0, undefined, 99)
|
|
36
|
+
// prefix = 98 (out of range, ignored), tail = 4 - 1 - 0 = 3
|
|
37
|
+
expect(cachedIndices(result)).toEqual([3])
|
|
38
|
+
})
|
|
39
|
+
|
|
40
|
+
test('ttl is propagated onto the marked messages', () => {
|
|
41
|
+
const messages = userMessages(6)
|
|
42
|
+
const result = applyCacheBreakpoint(messages, 0, '1h', 2)
|
|
43
|
+
// prefix = 1, tail = 5
|
|
44
|
+
for (const idx of [1, 5]) {
|
|
45
|
+
const m = result[idx]
|
|
46
|
+
expect('cacheControl' in m && m.cacheControl).toEqual({ type: 'ephemeral', ttl: '1h' })
|
|
47
|
+
}
|
|
48
|
+
})
|
|
49
|
+
|
|
50
|
+
test('does not mutate the input array', () => {
|
|
51
|
+
const messages = userMessages(5)
|
|
52
|
+
applyCacheBreakpoint(messages, 0, undefined, 2)
|
|
53
|
+
expect(cachedIndices(messages)).toEqual([])
|
|
54
|
+
})
|
|
55
|
+
})
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { LLMMessage, LLMMessageCacheControl } from '~/core/agents/state.js'
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* Mark the prompt cache
|
|
4
|
+
* Mark the prompt cache breakpoints on a message list.
|
|
5
5
|
*
|
|
6
6
|
* Flag-based: the target message gets a `cacheControl` marker. Providers that
|
|
7
7
|
* support ephemeral prompt caching (anthropic, openrouter) react to the flag
|
|
@@ -10,9 +10,23 @@ import type { LLMMessage, LLMMessageCacheControl } from '~/core/agents/state.js'
|
|
|
10
10
|
* (text / tool_use / tool_result / image). This matches the API semantics
|
|
11
11
|
* "cache the prefix up to and including this block".
|
|
12
12
|
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
13
|
+
* Up to two breakpoints are set:
|
|
14
|
+
*
|
|
15
|
+
* 1. **Tail breakpoint** at `messages.length - 1 - uncachedSuffixCount`. The
|
|
16
|
+
* suffix is the tail of messages that must remain fresh (e.g. ephemeral
|
|
17
|
+
* session context rebuilt each inference).
|
|
18
|
+
*
|
|
19
|
+
* 2. **Stable prefix breakpoint** at `cachedPrefixCount - 1` (the last preamble
|
|
20
|
+
* message), set only when `cachedPrefixCount > 0`. The preamble is byte-
|
|
21
|
+
* identical on every call, but the prefix before the tail breakpoint churns
|
|
22
|
+
* turn-to-turn for compacting agents (regenerated summary, sliding recent
|
|
23
|
+
* window), so the tail breakpoint never produces a stable cache entry for
|
|
24
|
+
* the large immutable preamble. Pinning a second breakpoint at the end of
|
|
25
|
+
* the preamble lets Anthropic cache that prefix once and read it at 0.1× on
|
|
26
|
+
* every inference AND compaction call. Anthropic allows up to 4 breakpoints
|
|
27
|
+
* and matches the longest cached prefix, so the two coexist.
|
|
28
|
+
*
|
|
29
|
+
* If the prefix and tail indices coincide, only one breakpoint is set.
|
|
16
30
|
*
|
|
17
31
|
* `ttl` opts into Anthropic's 1-hour cache tier (write cost 2× input, read
|
|
18
32
|
* still 0.1×). Useful for long-lived agents where the default 5-minute TTL
|
|
@@ -22,26 +36,30 @@ export function applyCacheBreakpoint(
|
|
|
22
36
|
messages: LLMMessage[],
|
|
23
37
|
uncachedSuffixCount: number,
|
|
24
38
|
ttl?: '5m' | '1h',
|
|
39
|
+
cachedPrefixCount = 0,
|
|
25
40
|
): LLMMessage[] {
|
|
26
|
-
const idx = messages.length - 1 - uncachedSuffixCount
|
|
27
|
-
if (idx < 0) return messages
|
|
28
|
-
|
|
29
41
|
const cacheControl: LLMMessageCacheControl = ttl ? { type: 'ephemeral', ttl } : { type: 'ephemeral' }
|
|
30
|
-
const target = messages[idx]
|
|
31
42
|
const result = [...messages]
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
result[idx] = { ...target, cacheControl }
|
|
44
|
-
break
|
|
43
|
+
|
|
44
|
+
const mark = (idx: number) => {
|
|
45
|
+
if (idx < 0 || idx >= result.length) return
|
|
46
|
+
const target = result[idx]
|
|
47
|
+
switch (target.role) {
|
|
48
|
+
case 'user':
|
|
49
|
+
case 'assistant':
|
|
50
|
+
case 'system':
|
|
51
|
+
case 'tool':
|
|
52
|
+
result[idx] = { ...target, cacheControl }
|
|
53
|
+
}
|
|
45
54
|
}
|
|
55
|
+
|
|
56
|
+
const tailIdx = messages.length - 1 - uncachedSuffixCount
|
|
57
|
+
// Stable prefix breakpoint at the last preamble message. Pins a cache entry
|
|
58
|
+
// that survives turn-to-turn churn in the conversation tail (regenerated
|
|
59
|
+
// summary, sliding recent window), so the immutable preamble is read at 0.1×
|
|
60
|
+
// on every inference AND compaction call instead of being re-billed each turn.
|
|
61
|
+
const prefixIdx = cachedPrefixCount - 1
|
|
62
|
+
if (prefixIdx !== tailIdx) mark(prefixIdx)
|
|
63
|
+
mark(tailIdx)
|
|
46
64
|
return result
|
|
47
65
|
}
|