@roj-ai/sdk 0.1.30 → 0.1.32
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 +5 -1
- package/dist/core/agents/agent.d.ts.map +1 -1
- package/dist/core/agents/agent.js.map +1 -1
- package/dist/core/agents/config.d.ts +5 -1
- package/dist/core/agents/config.d.ts.map +1 -1
- package/dist/core/llm/anthropic.d.ts.map +1 -1
- package/dist/core/llm/anthropic.js +7 -1
- package/dist/core/llm/anthropic.js.map +1 -1
- package/dist/core/llm/cache-breakpoints.d.ts +39 -5
- package/dist/core/llm/cache-breakpoints.d.ts.map +1 -1
- package/dist/core/llm/cache-breakpoints.js +22 -8
- package/dist/core/llm/cache-breakpoints.js.map +1 -1
- package/dist/core/llm/cache-breakpoints.test.js +32 -8
- package/dist/core/llm/cache-breakpoints.test.js.map +1 -1
- package/dist/core/llm/openrouter-mapping.test.js +29 -0
- package/dist/core/llm/openrouter-mapping.test.js.map +1 -1
- package/dist/core/llm/openrouter.d.ts.map +1 -1
- package/dist/core/llm/openrouter.js +28 -8
- package/dist/core/llm/openrouter.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/plugins/agents/agents.integration.test.js +147 -0
- package/dist/plugins/agents/agents.integration.test.js.map +1 -1
- package/dist/plugins/agents/plugin.d.ts.map +1 -1
- package/dist/plugins/agents/plugin.js +35 -2
- package/dist/plugins/agents/plugin.js.map +1 -1
- package/dist/plugins/result-eviction/plugin.d.ts.map +1 -1
- package/dist/plugins/result-eviction/plugin.js +24 -9
- package/dist/plugins/result-eviction/plugin.js.map +1 -1
- package/dist/plugins/result-eviction/result-eviction.integration.test.js +77 -0
- package/dist/plugins/result-eviction/result-eviction.integration.test.js.map +1 -1
- package/package.json +2 -2
- package/src/core/agents/agent.ts +5 -2
- package/src/core/agents/config.ts +5 -1
- package/src/core/llm/anthropic.ts +7 -1
- package/src/core/llm/cache-breakpoints.test.ts +38 -8
- package/src/core/llm/cache-breakpoints.ts +54 -9
- package/src/core/llm/openrouter-mapping.test.ts +37 -1
- package/src/core/llm/openrouter.ts +35 -9
- package/src/index.ts +1 -0
- package/src/plugins/agents/agents.integration.test.ts +168 -0
- package/src/plugins/agents/plugin.ts +39 -2
- package/src/plugins/result-eviction/plugin.ts +26 -11
- package/src/plugins/result-eviction/result-eviction.integration.test.ts +88 -0
|
@@ -344,7 +344,7 @@ export const agentsPlugin = definePlugin('agents')
|
|
|
344
344
|
- **New task** → spawn a new agent using \`start_<agent_name>\`. You will receive the agent's ID in the result — use it with \`send_message\` for follow-up communication.
|
|
345
345
|
- **Follow-up on an existing task** → send a message to the existing agent via \`send_message\` with the agent's ID. Do NOT spawn a new agent for feedback, corrections, or additional instructions on a task already assigned.
|
|
346
346
|
- Spawned agents communicate back to you via \`send_message\`. Check your incoming messages for their results and progress updates.
|
|
347
|
-
- If a child pauses early it sends you a \`<child-paused agent="…">reason</child-paused>\` message (e.g. it hit a cost/limit budget). Decide what to do: resume it
|
|
347
|
+
- If a child pauses early it sends you a \`<child-paused agent="…">reason</child-paused>\` message (e.g. it hit a cost/limit budget). Decide what to do: resume it with \`resume_agent\` **after addressing the cause**, reassign or drop the work, or stop. Resuming does not grant more budget — a child that hit a cost or token limit will stop again immediately, so don't retry it in a loop.`;
|
|
348
348
|
// Only include supervision instructions if supervision is actually enabled
|
|
349
349
|
// for this session — otherwise the section is misleading bloat.
|
|
350
350
|
if (ctx.pluginContext.intervalMs === null)
|
|
@@ -360,7 +360,38 @@ Do NOT act on a supervision tick unless something is genuinely wrong (a child ha
|
|
|
360
360
|
.tools((ctx) => {
|
|
361
361
|
const spawnableAgents = ctx.agentConfig.spawnableAgents;
|
|
362
362
|
const agentDefs = ctx.pluginConfig.agentDefinitions;
|
|
363
|
-
|
|
363
|
+
// The parent is told (see the `<child-paused>` line in the system prompt above) that it
|
|
364
|
+
// may resume a paused child. Without this tool that instruction had nothing behind it:
|
|
365
|
+
// `resume` existed only as a plugin method, reachable from outside the session via
|
|
366
|
+
// `agents.resume`, so a child that paused stayed paused until something external
|
|
367
|
+
// intervened. Only offered to agents that can actually have children.
|
|
368
|
+
const resumeTool = createTool({
|
|
369
|
+
name: 'resume_agent',
|
|
370
|
+
description: 'Resume one of your own child agents after it paused (you receive a <child-paused> message when that happens). '
|
|
371
|
+
+ 'Address the cause first — resuming does not grant more budget, so a child that hit a cost or token limit '
|
|
372
|
+
+ 'will stop again immediately unless the limit itself is raised.',
|
|
373
|
+
input: z.object({
|
|
374
|
+
agentId: agentIdSchema.describe('ID of the paused child agent, as given in the <child-paused> message'),
|
|
375
|
+
}),
|
|
376
|
+
execute: async (input, context) => {
|
|
377
|
+
const target = context.sessionState.agents.get(input.agentId);
|
|
378
|
+
if (!target) {
|
|
379
|
+
return Err({ message: `No agent "${input.agentId}" in this session.`, recoverable: false });
|
|
380
|
+
}
|
|
381
|
+
if (target.parentId !== context.agentId) {
|
|
382
|
+
return Err({ message: `Agent "${input.agentId}" is not your child — you can only resume agents you spawned.`, recoverable: false });
|
|
383
|
+
}
|
|
384
|
+
if (target.status !== 'paused' && target.status !== 'errored') {
|
|
385
|
+
return Err({ message: `Agent "${input.agentId}" is ${target.status}, not paused — nothing to resume.`, recoverable: false });
|
|
386
|
+
}
|
|
387
|
+
const result = await ctx.self.resume({ agentId: input.agentId });
|
|
388
|
+
if (!result.ok) {
|
|
389
|
+
return Err({ message: result.error.message, recoverable: false });
|
|
390
|
+
}
|
|
391
|
+
return Ok(`Agent "${input.agentId}" resumed.`);
|
|
392
|
+
},
|
|
393
|
+
});
|
|
394
|
+
const startTools = spawnableAgents.map((agentName) => {
|
|
364
395
|
const agentInfo = agentDefs.get(agentName) ?? { name: agentName };
|
|
365
396
|
const toolName = `start_${agentInfo.name}`;
|
|
366
397
|
const description = agentInfo.description
|
|
@@ -387,6 +418,8 @@ Do NOT act on a supervision tick unless something is genuinely wrong (a child ha
|
|
|
387
418
|
},
|
|
388
419
|
});
|
|
389
420
|
});
|
|
421
|
+
// An agent with nothing to spawn has no children to resume either.
|
|
422
|
+
return spawnableAgents.length > 0 ? [...startTools, resumeTool] : [];
|
|
390
423
|
})
|
|
391
424
|
.build();
|
|
392
425
|
//# sourceMappingURL=plugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/plugins/agents/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,CAAC,MAAM,QAAQ,CAAA;AACtB,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACjF,OAAO,EAAmB,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACrE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAEvD,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,uBAAuB,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AA8B3D;;;GAGG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAG,OAAO,CAAA;AAY1D;;GAEG;AACH,SAAS,iBAAiB,CAAC,aAAuC,EAAE,QAAiB;IACpF,MAAM,GAAG,GAAiB,EAAE,CAAA;IAC5B,KAAK,MAAM,KAAK,IAAI,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC;QAC5C,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ;YAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACjD,CAAC;IACD,OAAO,GAAG,CAAA;AACX,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,KAAiB;IACxC,IAAI,KAAK,GAAG,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAA;IACzC,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,EAAE,CAAC;QAC3C,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,SAAS;YAAE,KAAK,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAA;IACvE,CAAC;IACD,OAAO,KAAK,CAAA;AACb,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,KAAiB;IACvC,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,EAAE,CAAC;QAC3C,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW;YAAE,KAAK,EAAE,CAAA;IACpC,CAAC;IACD,OAAO,KAAK,CAAA;AACb,CAAC;AAED;;;GAGG;AACH,SAAS,oBAAoB,CAAC,KAAiB,EAAE,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC;IAC5E,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAChE,MAAM,CAAC,GAAG,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAA;QACtC,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW;YAAE,SAAQ;QACpC,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAA;QAC9B,IAAI,CAAC,IAAI;YAAE,SAAQ;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC/B,IAAI,KAAK,CAAC,MAAM,IAAI,SAAS,GAAG,SAAS,GAAG,CAAC;YAAE,OAAO,IAAI,CAAA;QAC1D,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;IACtF,CAAC;IACD,OAAO,IAAI,CAAA;AACZ,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,aAAuC,EAAE,QAAiB;IACtF,MAAM,QAAQ,GAAG,iBAAiB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAA;IAC3D,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAChC,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;QAC/B,MAAM,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;QAC5B,MAAM,IAAI,GAAG,iBAAiB,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAA;QAC1D,MAAM,IAAI,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAA;QAEpC,MAAM,KAAK,GAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAA;QACxC,8EAA8E;QAC9E,kEAAkE;QAClE,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC;YAC7C,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;QAC7D,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAA;QAC5B,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,CAAA;QACxB,IAAI,IAAI,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;QAC/D,IAAI,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;QAE3D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACxB,CAAC,CAAC,CAAA;IAEF,OAAO,sBAAsB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAA;AACpE,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB,CAC/B,aAAkC,EAClC,OAAgB,EAChB,OAAe;IAEf,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAClD,IAAI,QAAQ;QAAE,YAAY,CAAC,QAAQ,CAAC,CAAA;IAEpC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;QAC7B,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACpC,MAAM,OAAO,GAAG,aAAa,CAAC,WAAW,CAAA;QACzC,IAAI,CAAC,OAAO;YAAE,OAAM;QACpB,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YAC9B,aAAa,CAAC,MAAM,EAAE,KAAK,CAC1B,yBAAyB,EACzB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EACtC,EAAE,OAAO,EAAE,CACX,CAAA;QACF,CAAC,CAAC,CAAA;IACH,CAAC,EAAE,OAAO,CAAC,CAAA;IAEX,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;AACzC,CAAC;AAED;;;GAGG;AACH,SAAS,sBAAsB,CAAC,KAAyB;IACxD,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACvB,OAAO,CAAC,CAAC,MAAM,CAAC;YACf,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;YAC9D,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,2BAA2B,CAAC;SAC9D,CAAC,CAAA;IACH,CAAC;IACD,OAAO,CAAC,CAAC,MAAM,CAAC;QACf,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;KAC9D,CAAC,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC;KAChD,YAAY,EAAsB;KAClC,YAAY,CAAC,CAAC,aAAa,CAAC,CAAC;KAC7B,OAAO,CAAC,KAAK,IAAkC,EAAE,CAAC,CAAC;IACnD,MAAM,EAAE,IAAI,GAAG,EAAE;IACjB,WAAW,EAAE,IAAI;IACjB,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,IAAI;CACZ,CAAC,CAAC;KACF,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;IAClB,OAAO,GAAG,CAAC,WAAW,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAA;AAClD,CAAC,CAAC;KACD,MAAM,CAAC,OAAO,EAAE;IAChB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;QAC1B,QAAQ,EAAE,aAAa;QACvB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC9B,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;KAClC,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,OAAO,EAAE,aAAa;KACtB,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QAC7B,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAExC,yBAAyB;QACzB,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5C,OAAO,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;QACnD,CAAC;QAED,6BAA6B;QAC7B,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;YAClE,OAAO,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,+BAA+B,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAA;QAC5F,CAAC;QAED,yCAAyC;QACzC,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,cAAc,EAAE,eAAe,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,CAAA;QAC9G,MAAM,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,eAAe,EAAE;YACvD,OAAO;YACP,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,QAAQ;YACR,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;SACvE,CAAC,CAAC,CAAA;QAEH,qDAAqD;QACrD,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACnB,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;gBAC9C,WAAW,EAAE,QAAQ;gBACrB,SAAS,EAAE,OAAO;gBAClB,OAAO,EAAE,KAAK,CAAC,OAAO;aACtB,CAAC,CAAA;YACF,IAAI,CAAC,UAAU,CAAC,EAAE;gBAAE,OAAO,UAAU,CAAA;QACtC,CAAC;QAED,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE;YACjD,OAAO;YACP,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,QAAQ,EAAE,KAAK,CAAC,QAAQ;SACxB,CAAC,CAAA;QAEF,wEAAwE;QACxE,IAAI,GAAG,CAAC,aAAa,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAC3C,uBAAuB,CAAC,GAAG,CAAC,aAAa,EAAE,QAAQ,EAAE,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QACnF,CAAC;QAED,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;IACvB,CAAC;CACD,CAAC;KACD,MAAM,CAAC,QAAQ,EAAE;IACjB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,OAAO,EAAE,aAAa;KACtB,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACpB,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAEtC,iDAAiD;QACjD,MAAM,UAAU,GAAG,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACvD,IAAI,CAAC,UAAU,EAAE,CAAC;YACjB,OAAO,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAClD,CAAC;QACD,IAAI,UAAU,CAAC,MAAM,KAAK,QAAQ,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACvE,OAAO,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC,CAAA;QACvE,CAAC;QAED,MAAM,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;QACrE,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QAE1B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QAE9E,OAAO,EAAE,CAAC,EAAE,CAAC,CAAA;IACd,CAAC;CACD,CAAC;KACD,MAAM,CAAC,OAAO,EAAE;IAChB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,OAAO,EAAE,aAAa;QACtB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC9B,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACpB,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAEtC,kDAAkD;QAClD,MAAM,UAAU,GAAG,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACvD,IAAI,CAAC,UAAU,EAAE,CAAC;YACjB,OAAO,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAClD,CAAC;QACD,IAAI,UAAU,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACpC,OAAO,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC,CAAA;QAChE,CAAC;QAED,MAAM,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,cAAc,EAAE;YACtD,OAAO;YACP,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,KAAK,CAAC,OAAO;SACtB,CAAC,CAAC,CAAA;QAEH,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QAE5E,OAAO,EAAE,CAAC,EAAE,CAAC,CAAA;IACd,CAAC;CACD,CAAC;KACD,MAAM,CAAC,QAAQ,EAAE;IACjB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,OAAO,EAAE,aAAa;QACtB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KACrC,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACpB,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QACtC,MAAM,UAAU,GAAG,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACvD,IAAI,CAAC,UAAU,EAAE,CAAC;YACjB,OAAO,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAClD,CAAC;QAED,IAAI,KAAK,CAAC,YAAY,IAAI,UAAU,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC;YACjE,OAAO,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC,CAAA;QAClE,CAAC;QAED,MAAM,WAAW,GAAG,UAAU,CAAC,mBAAmB,CAAC,MAAM,GAAG,KAAK,CAAC,YAAY,CAAA;QAE9E,MAAM,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,4BAA4B,EAAE;YACpE,OAAO;YACP,KAAK,EAAE,KAAK,CAAC,YAAY;YACzB,WAAW;SACX,CAAC,CAAC,CAAA;QACH,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QAE1B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAA;QAEhH,OAAO,EAAE,CAAC,EAAE,CAAC,CAAA;IACd,CAAC;CACD,CAAC;KACD,MAAM,CAAC,kBAAkB,EAAE;IAC3B,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;IAC3C,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACpB,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAEtC,6DAA6D;QAC7D,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAA;QAExD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACpE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,6EAA6E;YAC7E,OAAO,EAAE,CAAC,EAAE,CAAC,CAAA;QACd,CAAC;QAED,MAAM,QAAQ,GAAG,mBAAmB,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACtE,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YAC9C,SAAS,EAAE,OAAO;YAClB,OAAO,EAAE,QAAQ;YACjB,cAAc,EAAE,IAAI;SACpB,CAAC,CAAA;QACF,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;YACpB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE;gBACnD,OAAO;gBACP,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,OAAO;aAC/B,CAAC,CAAA;QACH,CAAC;QAED,+CAA+C;QAC/C,IAAI,GAAG,CAAC,aAAa,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAC3C,uBAAuB,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,EAAE,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QAClF,CAAC;QAED,OAAO,EAAE,CAAC,EAAE,CAAC,CAAA;IACd,CAAC;CACD,CAAC;KACD,WAAW,CAAC,gBAAgB,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;IAC5C,MAAM,UAAU,GAAG,GAAG,CAAC,YAAY,CAAC,2BAA2B,CAAA;IAC/D,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC9B,+DAA+D;QAC/D,2DAA2D;QAC3D,GAAG,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAA;QACnC,OAAM;IACP,CAAC;IACD,GAAG,CAAC,aAAa,CAAC,UAAU,GAAG,UAAU,CAAA;IACzC,GAAG,CAAC,aAAa,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAA;IAErC,wEAAwE;IACxE,kDAAkD;IAClD,GAAG,CAAC,aAAa,CAAC,WAAW,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;IAEnF,2EAA2E;IAC3E,4EAA4E;IAC5E,qEAAqE;IACrE,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QACtD,IAAI,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrE,uBAAuB,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,EAAE,EAAE,UAAU,CAAC,CAAA;QACjE,CAAC;IACF,CAAC;AACF,CAAC,CAAC;KACD,WAAW,CAAC,gBAAgB,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;IAC5C,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE;QAAE,YAAY,CAAC,CAAC,CAAC,CAAA;IAClE,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;IAChC,GAAG,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAA;AACrC,CAAC,CAAC;KACD,IAAI,CAAC,gBAAgB,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;IACrC,4EAA4E;IAC5E,8EAA8E;IAC9E,IAAI,GAAG,CAAC,aAAa,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;QAC3C,IAAI,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxE,uBAAuB,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QACtF,CAAC;IACF,CAAC;IACD,OAAO,IAAI,CAAA;AACZ,CAAC,CAAC;KACD,YAAY,CAAC,CAAC,GAAG,EAAE,EAAE;IACrB,MAAM,IAAI,GAAG;;;;;qOAKsN,CAAA;IAEnO,2EAA2E;IAC3E,gEAAgE;IAChE,IAAI,GAAG,CAAC,aAAa,CAAC,UAAU,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAEtD,OAAO,GAAG,IAAI;;;;;;2NAM2M,CAAA;AAC1N,CAAC,CAAC;KACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACd,MAAM,eAAe,GAAG,GAAG,CAAC,WAAW,CAAC,eAAe,CAAA;IACvD,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC,gBAAgB,CAAA;IAEnD,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;QACxC,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;QACjE,MAAM,QAAQ,GAAG,SAAS,SAAS,CAAC,IAAI,EAAE,CAAA;QAC1C,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW;YACxC,CAAC,CAAC,eAAe,SAAS,CAAC,IAAI,WAAW,SAAS,CAAC,WAAW,gLAAgL;YAC/O,CAAC,CAAC,eAAe,SAAS,CAAC,IAAI,iNAAiN,CAAA;QAEjP,OAAO,UAAU,CAAC;YACjB,IAAI,EAAE,QAAQ;YACd,WAAW;YACX,KAAK,EAAE,sBAAsB,CAAC,SAAS,CAAC;YACxC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBACxB,MAAM,UAAU,GAAG,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;gBAC7D,MAAM,cAAc,GAAG,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAA;gBAE5F,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;oBACnC,cAAc,EAAE,SAAS,CAAC,IAAI;oBAC9B,QAAQ,EAAE,GAAG,CAAC,OAAO;oBACrB,OAAO,EAAE,cAAc;oBACvB,GAAG,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,CAAC;iBAC/C,CAAC,CAAA;gBAEF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;oBAChB,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAA;gBAClE,CAAC;gBAED,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAA;gBACtC,OAAO,EAAE,CAAC,UAAU,SAAS,CAAC,IAAI,qBAAqB,SAAS,gCAAgC,SAAS,2BAA2B,CAAC,CAAA;YACtI,CAAC;SACD,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;AACH,CAAC,CAAC;KACD,KAAK,EAAE,CAAA"}
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/plugins/agents/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,CAAC,MAAM,QAAQ,CAAA;AACtB,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACjF,OAAO,EAAmB,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACrE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAEvD,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,uBAAuB,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AA8B3D;;;GAGG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAG,OAAO,CAAA;AAY1D;;GAEG;AACH,SAAS,iBAAiB,CAAC,aAAuC,EAAE,QAAiB;IACpF,MAAM,GAAG,GAAiB,EAAE,CAAA;IAC5B,KAAK,MAAM,KAAK,IAAI,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC;QAC5C,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ;YAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACjD,CAAC;IACD,OAAO,GAAG,CAAA;AACX,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,KAAiB;IACxC,IAAI,KAAK,GAAG,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAA;IACzC,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,EAAE,CAAC;QAC3C,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,SAAS;YAAE,KAAK,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAA;IACvE,CAAC;IACD,OAAO,KAAK,CAAA;AACb,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,KAAiB;IACvC,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,EAAE,CAAC;QAC3C,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW;YAAE,KAAK,EAAE,CAAA;IACpC,CAAC;IACD,OAAO,KAAK,CAAA;AACb,CAAC;AAED;;;GAGG;AACH,SAAS,oBAAoB,CAAC,KAAiB,EAAE,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC;IAC5E,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAChE,MAAM,CAAC,GAAG,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAA;QACtC,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW;YAAE,SAAQ;QACpC,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAA;QAC9B,IAAI,CAAC,IAAI;YAAE,SAAQ;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC/B,IAAI,KAAK,CAAC,MAAM,IAAI,SAAS,GAAG,SAAS,GAAG,CAAC;YAAE,OAAO,IAAI,CAAA;QAC1D,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;IACtF,CAAC;IACD,OAAO,IAAI,CAAA;AACZ,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,aAAuC,EAAE,QAAiB;IACtF,MAAM,QAAQ,GAAG,iBAAiB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAA;IAC3D,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAChC,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;QAC/B,MAAM,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;QAC5B,MAAM,IAAI,GAAG,iBAAiB,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAA;QAC1D,MAAM,IAAI,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAA;QAEpC,MAAM,KAAK,GAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAA;QACxC,8EAA8E;QAC9E,kEAAkE;QAClE,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC;YAC7C,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;QAC7D,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAA;QAC5B,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,CAAA;QACxB,IAAI,IAAI,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;QAC/D,IAAI,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;QAE3D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACxB,CAAC,CAAC,CAAA;IAEF,OAAO,sBAAsB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAA;AACpE,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB,CAC/B,aAAkC,EAClC,OAAgB,EAChB,OAAe;IAEf,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAClD,IAAI,QAAQ;QAAE,YAAY,CAAC,QAAQ,CAAC,CAAA;IAEpC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;QAC7B,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACpC,MAAM,OAAO,GAAG,aAAa,CAAC,WAAW,CAAA;QACzC,IAAI,CAAC,OAAO;YAAE,OAAM;QACpB,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YAC9B,aAAa,CAAC,MAAM,EAAE,KAAK,CAC1B,yBAAyB,EACzB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EACtC,EAAE,OAAO,EAAE,CACX,CAAA;QACF,CAAC,CAAC,CAAA;IACH,CAAC,EAAE,OAAO,CAAC,CAAA;IAEX,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;AACzC,CAAC;AAED;;;GAGG;AACH,SAAS,sBAAsB,CAAC,KAAyB;IACxD,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACvB,OAAO,CAAC,CAAC,MAAM,CAAC;YACf,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;YAC9D,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,2BAA2B,CAAC;SAC9D,CAAC,CAAA;IACH,CAAC;IACD,OAAO,CAAC,CAAC,MAAM,CAAC;QACf,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;KAC9D,CAAC,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC;KAChD,YAAY,EAAsB;KAClC,YAAY,CAAC,CAAC,aAAa,CAAC,CAAC;KAC7B,OAAO,CAAC,KAAK,IAAkC,EAAE,CAAC,CAAC;IACnD,MAAM,EAAE,IAAI,GAAG,EAAE;IACjB,WAAW,EAAE,IAAI;IACjB,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,IAAI;CACZ,CAAC,CAAC;KACF,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;IAClB,OAAO,GAAG,CAAC,WAAW,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAA;AAClD,CAAC,CAAC;KACD,MAAM,CAAC,OAAO,EAAE;IAChB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;QAC1B,QAAQ,EAAE,aAAa;QACvB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC9B,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;KAClC,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,OAAO,EAAE,aAAa;KACtB,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QAC7B,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAExC,yBAAyB;QACzB,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5C,OAAO,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;QACnD,CAAC;QAED,6BAA6B;QAC7B,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;YAClE,OAAO,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,+BAA+B,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAA;QAC5F,CAAC;QAED,yCAAyC;QACzC,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,cAAc,EAAE,eAAe,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,CAAA;QAC9G,MAAM,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,eAAe,EAAE;YACvD,OAAO;YACP,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,QAAQ;YACR,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;SACvE,CAAC,CAAC,CAAA;QAEH,qDAAqD;QACrD,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACnB,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;gBAC9C,WAAW,EAAE,QAAQ;gBACrB,SAAS,EAAE,OAAO;gBAClB,OAAO,EAAE,KAAK,CAAC,OAAO;aACtB,CAAC,CAAA;YACF,IAAI,CAAC,UAAU,CAAC,EAAE;gBAAE,OAAO,UAAU,CAAA;QACtC,CAAC;QAED,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE;YACjD,OAAO;YACP,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,QAAQ,EAAE,KAAK,CAAC,QAAQ;SACxB,CAAC,CAAA;QAEF,wEAAwE;QACxE,IAAI,GAAG,CAAC,aAAa,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAC3C,uBAAuB,CAAC,GAAG,CAAC,aAAa,EAAE,QAAQ,EAAE,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QACnF,CAAC;QAED,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;IACvB,CAAC;CACD,CAAC;KACD,MAAM,CAAC,QAAQ,EAAE;IACjB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,OAAO,EAAE,aAAa;KACtB,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACpB,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAEtC,iDAAiD;QACjD,MAAM,UAAU,GAAG,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACvD,IAAI,CAAC,UAAU,EAAE,CAAC;YACjB,OAAO,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAClD,CAAC;QACD,IAAI,UAAU,CAAC,MAAM,KAAK,QAAQ,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACvE,OAAO,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC,CAAA;QACvE,CAAC;QAED,MAAM,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;QACrE,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QAE1B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QAE9E,OAAO,EAAE,CAAC,EAAE,CAAC,CAAA;IACd,CAAC;CACD,CAAC;KACD,MAAM,CAAC,OAAO,EAAE;IAChB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,OAAO,EAAE,aAAa;QACtB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC9B,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACpB,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAEtC,kDAAkD;QAClD,MAAM,UAAU,GAAG,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACvD,IAAI,CAAC,UAAU,EAAE,CAAC;YACjB,OAAO,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAClD,CAAC;QACD,IAAI,UAAU,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACpC,OAAO,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC,CAAA;QAChE,CAAC;QAED,MAAM,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,cAAc,EAAE;YACtD,OAAO;YACP,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,KAAK,CAAC,OAAO;SACtB,CAAC,CAAC,CAAA;QAEH,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QAE5E,OAAO,EAAE,CAAC,EAAE,CAAC,CAAA;IACd,CAAC;CACD,CAAC;KACD,MAAM,CAAC,QAAQ,EAAE;IACjB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,OAAO,EAAE,aAAa;QACtB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KACrC,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACpB,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QACtC,MAAM,UAAU,GAAG,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACvD,IAAI,CAAC,UAAU,EAAE,CAAC;YACjB,OAAO,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAClD,CAAC;QAED,IAAI,KAAK,CAAC,YAAY,IAAI,UAAU,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC;YACjE,OAAO,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC,CAAA;QAClE,CAAC;QAED,MAAM,WAAW,GAAG,UAAU,CAAC,mBAAmB,CAAC,MAAM,GAAG,KAAK,CAAC,YAAY,CAAA;QAE9E,MAAM,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,4BAA4B,EAAE;YACpE,OAAO;YACP,KAAK,EAAE,KAAK,CAAC,YAAY;YACzB,WAAW;SACX,CAAC,CAAC,CAAA;QACH,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QAE1B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAA;QAEhH,OAAO,EAAE,CAAC,EAAE,CAAC,CAAA;IACd,CAAC;CACD,CAAC;KACD,MAAM,CAAC,kBAAkB,EAAE;IAC3B,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;IAC3C,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACpB,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAEtC,6DAA6D;QAC7D,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAA;QAExD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACpE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,6EAA6E;YAC7E,OAAO,EAAE,CAAC,EAAE,CAAC,CAAA;QACd,CAAC;QAED,MAAM,QAAQ,GAAG,mBAAmB,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACtE,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YAC9C,SAAS,EAAE,OAAO;YAClB,OAAO,EAAE,QAAQ;YACjB,cAAc,EAAE,IAAI;SACpB,CAAC,CAAA;QACF,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;YACpB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE;gBACnD,OAAO;gBACP,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,OAAO;aAC/B,CAAC,CAAA;QACH,CAAC;QAED,+CAA+C;QAC/C,IAAI,GAAG,CAAC,aAAa,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAC3C,uBAAuB,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,EAAE,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QAClF,CAAC;QAED,OAAO,EAAE,CAAC,EAAE,CAAC,CAAA;IACd,CAAC;CACD,CAAC;KACD,WAAW,CAAC,gBAAgB,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;IAC5C,MAAM,UAAU,GAAG,GAAG,CAAC,YAAY,CAAC,2BAA2B,CAAA;IAC/D,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC9B,+DAA+D;QAC/D,2DAA2D;QAC3D,GAAG,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAA;QACnC,OAAM;IACP,CAAC;IACD,GAAG,CAAC,aAAa,CAAC,UAAU,GAAG,UAAU,CAAA;IACzC,GAAG,CAAC,aAAa,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAA;IAErC,wEAAwE;IACxE,kDAAkD;IAClD,GAAG,CAAC,aAAa,CAAC,WAAW,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;IAEnF,2EAA2E;IAC3E,4EAA4E;IAC5E,qEAAqE;IACrE,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QACtD,IAAI,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrE,uBAAuB,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,EAAE,EAAE,UAAU,CAAC,CAAA;QACjE,CAAC;IACF,CAAC;AACF,CAAC,CAAC;KACD,WAAW,CAAC,gBAAgB,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;IAC5C,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE;QAAE,YAAY,CAAC,CAAC,CAAC,CAAA;IAClE,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;IAChC,GAAG,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAA;AACrC,CAAC,CAAC;KACD,IAAI,CAAC,gBAAgB,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;IACrC,4EAA4E;IAC5E,8EAA8E;IAC9E,IAAI,GAAG,CAAC,aAAa,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;QAC3C,IAAI,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxE,uBAAuB,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QACtF,CAAC;IACF,CAAC;IACD,OAAO,IAAI,CAAA;AACZ,CAAC,CAAC;KACD,YAAY,CAAC,CAAC,GAAG,EAAE,EAAE;IACrB,MAAM,IAAI,GAAG;;;;;oYAKqX,CAAA;IAElY,2EAA2E;IAC3E,gEAAgE;IAChE,IAAI,GAAG,CAAC,aAAa,CAAC,UAAU,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAEtD,OAAO,GAAG,IAAI;;;;;;2NAM2M,CAAA;AAC1N,CAAC,CAAC;KACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACd,MAAM,eAAe,GAAG,GAAG,CAAC,WAAW,CAAC,eAAe,CAAA;IACvD,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC,gBAAgB,CAAA;IAEnD,wFAAwF;IACxF,uFAAuF;IACvF,mFAAmF;IACnF,iFAAiF;IACjF,sEAAsE;IACtE,MAAM,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,EAAE,cAAc;QACpB,WAAW,EACV,gHAAgH;cAC9G,2GAA2G;cAC3G,gEAAgE;QACnE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;YACf,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,sEAAsE,CAAC;SACvG,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACjC,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAC7D,IAAI,CAAC,MAAM,EAAE,CAAC;gBACb,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE,aAAa,KAAK,CAAC,OAAO,oBAAoB,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAA;YAC5F,CAAC;YACD,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC;gBACzC,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE,UAAU,KAAK,CAAC,OAAO,+DAA+D,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAA;YACpI,CAAC;YACD,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC/D,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE,UAAU,KAAK,CAAC,OAAO,QAAQ,MAAM,CAAC,MAAM,mCAAmC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAA;YAC7H,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;YAChE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;gBAChB,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAA;YAClE,CAAC;YACD,OAAO,EAAE,CAAC,UAAU,KAAK,CAAC,OAAO,YAAY,CAAC,CAAA;QAC/C,CAAC;KACD,CAAC,CAAA;IAEF,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;QACpD,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;QACjE,MAAM,QAAQ,GAAG,SAAS,SAAS,CAAC,IAAI,EAAE,CAAA;QAC1C,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW;YACxC,CAAC,CAAC,eAAe,SAAS,CAAC,IAAI,WAAW,SAAS,CAAC,WAAW,gLAAgL;YAC/O,CAAC,CAAC,eAAe,SAAS,CAAC,IAAI,iNAAiN,CAAA;QAEjP,OAAO,UAAU,CAAC;YACjB,IAAI,EAAE,QAAQ;YACd,WAAW;YACX,KAAK,EAAE,sBAAsB,CAAC,SAAS,CAAC;YACxC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBACxB,MAAM,UAAU,GAAG,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;gBAC7D,MAAM,cAAc,GAAG,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAA;gBAE5F,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;oBACnC,cAAc,EAAE,SAAS,CAAC,IAAI;oBAC9B,QAAQ,EAAE,GAAG,CAAC,OAAO;oBACrB,OAAO,EAAE,cAAc;oBACvB,GAAG,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,CAAC;iBAC/C,CAAC,CAAA;gBAEF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;oBAChB,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAA;gBAClE,CAAC;gBAED,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAA;gBACtC,OAAO,EAAE,CAAC,UAAU,SAAS,CAAC,IAAI,qBAAqB,SAAS,gCAAgC,SAAS,2BAA2B,CAAC,CAAA;YACtI,CAAC;SACD,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,mEAAmE;IACnE,OAAO,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AACrE,CAAC,CAAC;KACD,KAAK,EAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/result-eviction/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/result-eviction/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,MAAM,WAAW,cAAc;IAC9B,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,mBAAmB;IACnC,wEAAwE;IACxE,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,cAAc,CAAA;CACvB;AAmBD,eAAO,MAAM,oBAAoB,mHAsCxB,CAAA"}
|
|
@@ -5,9 +5,23 @@
|
|
|
5
5
|
* to a file in the session's .results directory, and a truncated preview with
|
|
6
6
|
* head + tail + file path is returned instead.
|
|
7
7
|
*/
|
|
8
|
+
import { contentToString } from '../../core/llm/llm-log-types.js';
|
|
8
9
|
import { truncateByTokens } from '../../core/llm/tokens.js';
|
|
9
10
|
import { definePlugin } from '../../core/plugins/plugin-builder.js';
|
|
10
11
|
const DEFAULT_MAX_TOKENS = 20_000;
|
|
12
|
+
const isImage = (item) => item.type === 'image_url';
|
|
13
|
+
/**
|
|
14
|
+
* Rebuild a multi-part result with its text collapsed to `preview` and every
|
|
15
|
+
* image part preserved in order.
|
|
16
|
+
*
|
|
17
|
+
* Images are kept rather than truncated because there is no partial image — the
|
|
18
|
+
* alternative to keeping it is dropping the observation entirely. Text is the
|
|
19
|
+
* part that both dominates the payload and survives being summarised.
|
|
20
|
+
*/
|
|
21
|
+
const withTextReplaced = (content, preview) => [
|
|
22
|
+
{ type: 'text', text: preview },
|
|
23
|
+
...content.filter(isImage),
|
|
24
|
+
];
|
|
11
25
|
export const resultEvictionPlugin = definePlugin('result-eviction')
|
|
12
26
|
.agentConfig()
|
|
13
27
|
.hook('afterToolCall', async (ctx) => {
|
|
@@ -17,25 +31,26 @@ export const resultEvictionPlugin = definePlugin('result-eviction')
|
|
|
17
31
|
return null;
|
|
18
32
|
}
|
|
19
33
|
const { content } = ctx.result;
|
|
20
|
-
// Only evict string content
|
|
21
|
-
if (typeof content !== 'string') {
|
|
22
|
-
return null;
|
|
23
|
-
}
|
|
24
34
|
const maxTokens = agentConfig?.config?.maxTokens ?? DEFAULT_MAX_TOKENS;
|
|
25
|
-
|
|
35
|
+
// Multi-part results (e.g. a page snapshot returning JSON + a screenshot)
|
|
36
|
+
// used to bail out here, so no threshold could ever evict them however
|
|
37
|
+
// large the text grew. Measure the text, evict the text, keep the images.
|
|
38
|
+
const text = contentToString(content);
|
|
39
|
+
const truncation = truncateByTokens(text, maxTokens);
|
|
26
40
|
if (!truncation) {
|
|
27
41
|
return null;
|
|
28
42
|
}
|
|
29
|
-
// Write full
|
|
43
|
+
// Write full text to file via FileStore
|
|
30
44
|
const fileName = `${ctx.toolCall.id}.txt`;
|
|
31
45
|
const filePath = `.results/${fileName}`;
|
|
32
|
-
await ctx.files.session.write(filePath,
|
|
33
|
-
const
|
|
46
|
+
await ctx.files.session.write(filePath, text);
|
|
47
|
+
const preview = `${truncation.content}\n\n[Full output saved to: ${filePath}]`;
|
|
48
|
+
const evicted = typeof content === 'string' ? preview : withTextReplaced(content, preview);
|
|
34
49
|
return {
|
|
35
50
|
action: 'modify',
|
|
36
51
|
result: {
|
|
37
52
|
isError: false,
|
|
38
|
-
content:
|
|
53
|
+
content: evicted,
|
|
39
54
|
},
|
|
40
55
|
};
|
|
41
56
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/plugins/result-eviction/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAc/D,MAAM,kBAAkB,GAAG,MAAM,CAAA;AAEjC,MAAM,CAAC,MAAM,oBAAoB,GAAG,YAAY,CAAC,iBAAiB,CAAC;KACjE,WAAW,EAAuB;KAClC,IAAI,CAAC,eAAe,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;IACpC,MAAM,WAAW,GAAG,GAAG,CAAC,iBAAiB,CAAA;IACzC,MAAM,OAAO,GAAG,WAAW,EAAE,OAAO,KAAK,KAAK,CAAA;IAE9C,IAAI,CAAC,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpC,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/plugins/result-eviction/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAA+B,eAAe,EAA0B,MAAM,6BAA6B,CAAA;AAClH,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAc/D,MAAM,kBAAkB,GAAG,MAAM,CAAA;AAEjC,MAAM,OAAO,GAAG,CAAC,IAA4B,EAAW,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,CAAA;AAEpF;;;;;;;GAOG;AACH,MAAM,gBAAgB,GAAG,CAAC,OAAiC,EAAE,OAAe,EAA4B,EAAE,CAAC;IAC1G,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;IAC/B,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;CAC1B,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,YAAY,CAAC,iBAAiB,CAAC;KACjE,WAAW,EAAuB;KAClC,IAAI,CAAC,eAAe,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;IACpC,MAAM,WAAW,GAAG,GAAG,CAAC,iBAAiB,CAAA;IACzC,MAAM,OAAO,GAAG,WAAW,EAAE,OAAO,KAAK,KAAK,CAAA;IAE9C,IAAI,CAAC,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpC,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,MAAM,CAAA;IAC9B,MAAM,SAAS,GAAG,WAAW,EAAE,MAAM,EAAE,SAAS,IAAI,kBAAkB,CAAA;IAEtE,0EAA0E;IAC1E,uEAAuE;IACvE,0EAA0E;IAC1E,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;IACrC,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IACpD,IAAI,CAAC,UAAU,EAAE,CAAC;QACjB,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,wCAAwC;IACxC,MAAM,QAAQ,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACzC,MAAM,QAAQ,GAAG,YAAY,QAAQ,EAAE,CAAA;IACvC,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IAE7C,MAAM,OAAO,GAAG,GAAG,UAAU,CAAC,OAAO,8BAA8B,QAAQ,GAAG,CAAA;IAC9E,MAAM,OAAO,GAAsB,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAE7G,OAAO;QACN,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE;YACP,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,OAAO;SAChB;KACD,CAAA;AACF,CAAC,CAAC;KACD,KAAK,EAAE,CAAA"}
|
|
@@ -18,6 +18,17 @@ const bigOutputPlugin = definePlugin('big-output')
|
|
|
18
18
|
input: z.object({ size: z.number() }),
|
|
19
19
|
execute: async (input) => Ok('x'.repeat(input.size)),
|
|
20
20
|
}),
|
|
21
|
+
// Mirrors a page-snapshot style result: a large JSON/text block plus an
|
|
22
|
+
// image part. These used to bypass eviction entirely.
|
|
23
|
+
createTool({
|
|
24
|
+
name: 'generate_snapshot',
|
|
25
|
+
description: 'Generate a text + image result of a given text size',
|
|
26
|
+
input: z.object({ size: z.number() }),
|
|
27
|
+
execute: async (input) => Ok([
|
|
28
|
+
{ type: 'text', text: 'x'.repeat(input.size) },
|
|
29
|
+
{ type: 'image_url', imageUrl: { url: 'data:image/png;base64,AAAA' } },
|
|
30
|
+
]),
|
|
31
|
+
}),
|
|
21
32
|
])
|
|
22
33
|
.build();
|
|
23
34
|
function createEvictionHarness(options) {
|
|
@@ -88,6 +99,72 @@ describe('result-eviction plugin', () => {
|
|
|
88
99
|
expect(toolResultContent.length).toBeLessThan(250_000);
|
|
89
100
|
await harness.shutdown();
|
|
90
101
|
});
|
|
102
|
+
it('large multi-part output → text evicted, image part kept', async () => {
|
|
103
|
+
let toolContent = null;
|
|
104
|
+
const harness = createEvictionHarness({
|
|
105
|
+
presets: [createEvictionPreset()],
|
|
106
|
+
mockHandler: (request) => {
|
|
107
|
+
const callCount = harness.llmProvider.getCallCount();
|
|
108
|
+
if (callCount === 1) {
|
|
109
|
+
return {
|
|
110
|
+
content: null,
|
|
111
|
+
toolCalls: [{ id: ToolCallId('tc1'), name: 'generate_snapshot', input: { size: 250_000 } }],
|
|
112
|
+
finishReason: 'stop',
|
|
113
|
+
metrics: MockLLMProvider.defaultMetrics(),
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
for (const msg of request.messages) {
|
|
117
|
+
if (msg.role === 'tool' && Array.isArray(msg.content)) {
|
|
118
|
+
toolContent = msg.content;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return { content: 'Done', toolCalls: [], finishReason: 'stop', metrics: MockLLMProvider.defaultMetrics() };
|
|
122
|
+
},
|
|
123
|
+
});
|
|
124
|
+
const session = await harness.createSession('test');
|
|
125
|
+
await session.sendAndWaitForIdle('Generate large snapshot');
|
|
126
|
+
expect(Array.isArray(toolContent)).toBe(true);
|
|
127
|
+
const parts = toolContent;
|
|
128
|
+
// Text collapsed to a preview that names the spill file...
|
|
129
|
+
const textParts = parts.filter((p) => p.type === 'text');
|
|
130
|
+
expect(textParts).toHaveLength(1);
|
|
131
|
+
expect(textParts[0].text).toContain('truncated');
|
|
132
|
+
expect(textParts[0].text).toContain('.results/');
|
|
133
|
+
expect(textParts[0].text.length).toBeLessThan(250_000);
|
|
134
|
+
// ...and the image survives, because there is no partial image: the only
|
|
135
|
+
// alternative to keeping it is losing the observation.
|
|
136
|
+
expect(parts.filter((p) => p.type === 'image_url')).toHaveLength(1);
|
|
137
|
+
await harness.shutdown();
|
|
138
|
+
});
|
|
139
|
+
it('small multi-part output → returned unchanged', async () => {
|
|
140
|
+
let toolContent = null;
|
|
141
|
+
const harness = createEvictionHarness({
|
|
142
|
+
presets: [createEvictionPreset()],
|
|
143
|
+
mockHandler: (request) => {
|
|
144
|
+
const callCount = harness.llmProvider.getCallCount();
|
|
145
|
+
if (callCount === 1) {
|
|
146
|
+
return {
|
|
147
|
+
content: null,
|
|
148
|
+
toolCalls: [{ id: ToolCallId('tc1'), name: 'generate_snapshot', input: { size: 100 } }],
|
|
149
|
+
finishReason: 'stop',
|
|
150
|
+
metrics: MockLLMProvider.defaultMetrics(),
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
for (const msg of request.messages) {
|
|
154
|
+
if (msg.role === 'tool' && Array.isArray(msg.content)) {
|
|
155
|
+
toolContent = msg.content;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
return { content: 'Done', toolCalls: [], finishReason: 'stop', metrics: MockLLMProvider.defaultMetrics() };
|
|
159
|
+
},
|
|
160
|
+
});
|
|
161
|
+
const session = await harness.createSession('test');
|
|
162
|
+
await session.sendAndWaitForIdle('Generate small snapshot');
|
|
163
|
+
const parts = toolContent;
|
|
164
|
+
expect(parts.filter((p) => p.type === 'text')[0].text).toBe('x'.repeat(100));
|
|
165
|
+
expect(parts.filter((p) => p.type === 'image_url')).toHaveLength(1);
|
|
166
|
+
await harness.shutdown();
|
|
167
|
+
});
|
|
91
168
|
it('full output saved to .results/<toolCallId>.txt', async () => {
|
|
92
169
|
const harness = createEvictionHarness({
|
|
93
170
|
presets: [createEvictionPreset()],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result-eviction.integration.test.js","sourceRoot":"","sources":["../../../src/plugins/result-eviction/result-eviction.integration.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"result-eviction.integration.test.js","sourceRoot":"","sources":["../../../src/plugins/result-eviction/result-eviction.integration.test.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.32",
|
|
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.32",
|
|
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
|
@@ -14,7 +14,7 @@ import type { AgentState, HandlerResult } from '~/core/agents/state.js'
|
|
|
14
14
|
import { agentEvents } from '~/core/agents/state.js'
|
|
15
15
|
import { withSessionId } from '~/core/events/test-helpers.js'
|
|
16
16
|
import type { FileStore } from '~/core/file-store/types.js'
|
|
17
|
-
import { applyCacheBreakpoint } from '~/core/llm/cache-breakpoints.js'
|
|
17
|
+
import { applyCacheBreakpoint, type CacheTtlConfig } from '~/core/llm/cache-breakpoints.js'
|
|
18
18
|
import type { ToolResultContent } from '~/core/llm/llm-log-types.js'
|
|
19
19
|
import type { InferenceRequest, InferenceResponse, LLMError, LLMMessage, LLMProvider } from '~/core/llm/provider.js'
|
|
20
20
|
import { LLMCallId, ModelId } from '~/core/llm/schema.js'
|
|
@@ -87,8 +87,11 @@ export interface AgentConfig<TInput = unknown> {
|
|
|
87
87
|
* — useful for long-lived agents (e.g. an orchestrator that waits minutes
|
|
88
88
|
* between user turns) where the default 5-minute TTL would expire and force
|
|
89
89
|
* full re-uploads. Omit (or '5m') for the standard tier.
|
|
90
|
+
*
|
|
91
|
+
* A bare tier applies to both breakpoints; `{ prefix, tail }` sets them
|
|
92
|
+
* independently, which usually pays better. See {@link CacheTtlConfig}.
|
|
90
93
|
*/
|
|
91
|
-
cacheTtl?:
|
|
94
|
+
cacheTtl?: CacheTtlConfig
|
|
92
95
|
/** Outer backoff between error-resume cycles (see BaseAgentConfig.errorResumeBackoff). */
|
|
93
96
|
errorResumeBackoff?: { baseDelayMs?: number; maxDelayMs?: number }
|
|
94
97
|
}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
import z from 'zod/v4'
|
|
6
6
|
import type { DebounceCallback } from '~/core/agents/debounce.js'
|
|
7
|
+
import type { CacheTtlConfig } from '~/core/llm/cache-breakpoints.js'
|
|
7
8
|
import type { LLMMiddleware } from '~/core/llm/middleware.js'
|
|
8
9
|
import { ModelId } from '~/core/llm/schema.js'
|
|
9
10
|
import type { AgentPluginConfig } from '~/core/plugins/plugin-builder.js'
|
|
@@ -57,8 +58,11 @@ export interface BaseAgentConfig<TInput = unknown> {
|
|
|
57
58
|
* '1h' opts into Anthropic's extended cache tier for long-lived agents
|
|
58
59
|
* (e.g. an orchestrator that waits minutes between user turns). Defaults
|
|
59
60
|
* to the standard 5-minute tier.
|
|
61
|
+
*
|
|
62
|
+
* A bare tier applies to both breakpoints; `{ prefix, tail }` sets them
|
|
63
|
+
* independently, which usually pays better. See {@link CacheTtlConfig}.
|
|
60
64
|
*/
|
|
61
|
-
cacheTtl?:
|
|
65
|
+
cacheTtl?: CacheTtlConfig
|
|
62
66
|
/**
|
|
63
67
|
* Outer backoff between error-resume cycles after an inference exhausts its
|
|
64
68
|
* LLM retries on a retryable error (the message stays queued and is retried).
|
|
@@ -326,10 +326,16 @@ export class AnthropicProvider implements RoutableLLMProvider {
|
|
|
326
326
|
const mappedMessages = await Promise.all(sanitizedMessages.map((m) => this.mapMessage(m, context)))
|
|
327
327
|
const mergedMessages = this.mergeConsecutiveMessages(mappedMessages)
|
|
328
328
|
|
|
329
|
+
// The system prompt precedes every message and Anthropic requires a longer
|
|
330
|
+
// TTL to come BEFORE a shorter one, so it has to match the longest TTL any
|
|
331
|
+
// breakpoint asks for — otherwise the order is 5m → 1h → 5m.
|
|
332
|
+
const systemCacheControl: AnthropicCacheControl = { type: 'ephemeral' }
|
|
333
|
+
if (sanitizedMessages.some((m) => m.cacheControl?.ttl === '1h')) systemCacheControl.ttl = '1h'
|
|
334
|
+
|
|
329
335
|
const body: AnthropicRequestBody = {
|
|
330
336
|
model: request.model ?? this.defaultModel,
|
|
331
337
|
max_tokens: request.maxTokens ?? 100_000,
|
|
332
|
-
system: [{ type: 'text', text: request.systemPrompt, cache_control:
|
|
338
|
+
system: [{ type: 'text', text: request.systemPrompt, cache_control: systemCacheControl }],
|
|
333
339
|
messages: mergedMessages,
|
|
334
340
|
stream: false,
|
|
335
341
|
}
|
|
@@ -37,14 +37,44 @@ describe('applyCacheBreakpoint', () => {
|
|
|
37
37
|
expect(cachedIndices(result)).toEqual([3])
|
|
38
38
|
})
|
|
39
39
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
40
|
+
// prefix = 1, tail = 5 for userMessages(6) with suffix 0 and cachedPrefixCount 2
|
|
41
|
+
const ttlsOf = (messages: LLMMessage[]) => [1, 5].map((idx) => {
|
|
42
|
+
const m = messages[idx]
|
|
43
|
+
return 'cacheControl' in m && m.cacheControl ? m.cacheControl.ttl : undefined
|
|
44
|
+
})
|
|
45
|
+
|
|
46
|
+
test('a bare tier applies to both breakpoints', () => {
|
|
47
|
+
const result = applyCacheBreakpoint(userMessages(6), 0, '1h', 2)
|
|
48
|
+
expect(ttlsOf(result)).toEqual(['1h', '1h'])
|
|
49
|
+
})
|
|
50
|
+
|
|
51
|
+
test('{ prefix } leaves the tail on the default tier', () => {
|
|
52
|
+
// Usually the paying configuration for an interactive agent: the immutable
|
|
53
|
+
// preamble survives human pauses, the churning tail stays cheap to write.
|
|
54
|
+
const result = applyCacheBreakpoint(userMessages(6), 0, { prefix: '1h' }, 2)
|
|
55
|
+
expect(ttlsOf(result)).toEqual(['1h', undefined])
|
|
56
|
+
})
|
|
57
|
+
|
|
58
|
+
test('{ prefix, tail } sets each breakpoint independently', () => {
|
|
59
|
+
const result = applyCacheBreakpoint(userMessages(6), 0, { prefix: '1h', tail: '5m' }, 2)
|
|
60
|
+
expect(ttlsOf(result)).toEqual(['1h', '5m'])
|
|
61
|
+
})
|
|
62
|
+
|
|
63
|
+
test('{ tail } alone is honoured — the SDK does not second-guess the caller', () => {
|
|
64
|
+
const result = applyCacheBreakpoint(userMessages(6), 0, { tail: '1h' }, 2)
|
|
65
|
+
expect(ttlsOf(result)).toEqual([undefined, '1h'])
|
|
66
|
+
})
|
|
67
|
+
|
|
68
|
+
test('prefixIdx === tailIdx → the single mark covers the preamble, so it takes the prefix ttl', () => {
|
|
69
|
+
const result = applyCacheBreakpoint(userMessages(3), 0, { prefix: '1h' }, 3)
|
|
70
|
+
expect(cachedIndices(result)).toEqual([2])
|
|
71
|
+
const only = result[2]
|
|
72
|
+
expect('cacheControl' in only && only.cacheControl).toEqual({ type: 'ephemeral', ttl: '1h' })
|
|
73
|
+
})
|
|
74
|
+
|
|
75
|
+
test('no ttl → neither breakpoint carries one', () => {
|
|
76
|
+
const result = applyCacheBreakpoint(userMessages(6), 0, undefined, 2)
|
|
77
|
+
expect(ttlsOf(result)).toEqual([undefined, undefined])
|
|
48
78
|
})
|
|
49
79
|
|
|
50
80
|
test('does not mutate the input array', () => {
|
|
@@ -1,5 +1,44 @@
|
|
|
1
1
|
import type { LLMMessage, LLMMessageCacheControl } from '~/core/agents/state.js'
|
|
2
2
|
|
|
3
|
+
/** Anthropic's two ephemeral cache tiers: 5-minute (write 1.25×) and 1-hour (write 2×). Reads are 0.1× on both. */
|
|
4
|
+
export type CacheTtl = '5m' | '1h'
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Per-breakpoint prompt cache TTL.
|
|
8
|
+
*
|
|
9
|
+
* A bare tier applies to both breakpoints. The object form sets them
|
|
10
|
+
* independently, which is usually what you want: the stable prefix and the
|
|
11
|
+
* churning conversation tail have opposite cost profiles.
|
|
12
|
+
*
|
|
13
|
+
* Choosing between them is an economic question about a specific agent's call
|
|
14
|
+
* pattern, so the SDK does not pick for you:
|
|
15
|
+
*
|
|
16
|
+
* - A long TTL on the **prefix** pays off when calls are spread further apart
|
|
17
|
+
* than the short tier survives — an orchestrator waiting on a human.
|
|
18
|
+
* - A long TTL on the **tail** costs 2× on every write while the tail is
|
|
19
|
+
* rewritten turn-to-turn anyway, so it only pays when consecutive calls are
|
|
20
|
+
* themselves minutes apart.
|
|
21
|
+
*
|
|
22
|
+
* Worked example, from a measured 5-week production session: 95% of inferences
|
|
23
|
+
* followed a sub-5-minute gap, so `'1h'` uniformly came out ~2.5% *worse* than
|
|
24
|
+
* the default, while `{ prefix: '1h' }` targeted the 29 rewrites that actually
|
|
25
|
+
* expired. A batch agent called in a tight loop would want the opposite.
|
|
26
|
+
*
|
|
27
|
+
* Constraint: Anthropic requires a longer TTL to precede a shorter one, and the
|
|
28
|
+
* prefix breakpoint always sits before the tail. So `{ prefix: '5m', tail: '1h' }`
|
|
29
|
+
* is invalid at the API and will be rejected — the tail TTL must not exceed the
|
|
30
|
+
* prefix TTL.
|
|
31
|
+
*/
|
|
32
|
+
export type CacheTtlConfig = CacheTtl | { prefix?: CacheTtl; tail?: CacheTtl }
|
|
33
|
+
|
|
34
|
+
const resolveTtls = (config: CacheTtlConfig | undefined): { prefix?: CacheTtl; tail?: CacheTtl } => {
|
|
35
|
+
if (config === undefined) return {}
|
|
36
|
+
if (typeof config === 'string') return { prefix: config, tail: config }
|
|
37
|
+
return config
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
const cacheControl = (ttl: CacheTtl | undefined): LLMMessageCacheControl => ttl ? { type: 'ephemeral', ttl } : { type: 'ephemeral' }
|
|
41
|
+
|
|
3
42
|
/**
|
|
4
43
|
* Mark the prompt cache breakpoints on a message list.
|
|
5
44
|
*
|
|
@@ -26,22 +65,26 @@ import type { LLMMessage, LLMMessageCacheControl } from '~/core/agents/state.js'
|
|
|
26
65
|
* every inference AND compaction call. Anthropic allows up to 4 breakpoints
|
|
27
66
|
* and matches the longest cached prefix, so the two coexist.
|
|
28
67
|
*
|
|
29
|
-
* If the prefix and tail indices coincide, only one breakpoint is set
|
|
68
|
+
* If the prefix and tail indices coincide, only one breakpoint is set — it
|
|
69
|
+
* covers the preamble, so it takes the prefix TTL.
|
|
30
70
|
*
|
|
31
|
-
* `ttl`
|
|
32
|
-
*
|
|
33
|
-
*
|
|
71
|
+
* `ttl` sets the cache tier per breakpoint; see {@link CacheTtlConfig} for how
|
|
72
|
+
* to choose. Providers must additionally give the system block the longest TTL
|
|
73
|
+
* in use, since it precedes every message and Anthropic rejects a longer entry
|
|
74
|
+
* that follows a shorter one.
|
|
34
75
|
*/
|
|
35
76
|
export function applyCacheBreakpoint(
|
|
36
77
|
messages: LLMMessage[],
|
|
37
78
|
uncachedSuffixCount: number,
|
|
38
|
-
ttl?:
|
|
79
|
+
ttl?: CacheTtlConfig,
|
|
39
80
|
cachedPrefixCount = 0,
|
|
40
81
|
): LLMMessage[] {
|
|
41
|
-
const
|
|
82
|
+
const ttls = resolveTtls(ttl)
|
|
83
|
+
const prefixCacheControl = cacheControl(ttls.prefix)
|
|
84
|
+
const tailCacheControl = cacheControl(ttls.tail)
|
|
42
85
|
const result = [...messages]
|
|
43
86
|
|
|
44
|
-
const mark = (idx: number) => {
|
|
87
|
+
const mark = (idx: number, cacheControl: LLMMessageCacheControl) => {
|
|
45
88
|
if (idx < 0 || idx >= result.length) return
|
|
46
89
|
const target = result[idx]
|
|
47
90
|
switch (target.role) {
|
|
@@ -59,7 +102,9 @@ export function applyCacheBreakpoint(
|
|
|
59
102
|
// summary, sliding recent window), so the immutable preamble is read at 0.1×
|
|
60
103
|
// on every inference AND compaction call instead of being re-billed each turn.
|
|
61
104
|
const prefixIdx = cachedPrefixCount - 1
|
|
62
|
-
if (prefixIdx !== tailIdx) mark(prefixIdx)
|
|
63
|
-
|
|
105
|
+
if (prefixIdx !== tailIdx) mark(prefixIdx, prefixCacheControl)
|
|
106
|
+
// When the two coincide there is only one entry to pin, and it covers the
|
|
107
|
+
// preamble — so it takes the prefix TTL.
|
|
108
|
+
mark(tailIdx, prefixIdx === tailIdx ? prefixCacheControl : tailCacheControl)
|
|
64
109
|
return result
|
|
65
110
|
}
|
|
@@ -21,7 +21,7 @@ const createProvider = () =>
|
|
|
21
21
|
defaultModel: 'anthropic/claude-haiku-4.5',
|
|
22
22
|
})
|
|
23
23
|
|
|
24
|
-
type AnyBlock = { type: string; cache_control?: { type: 'ephemeral' }; [key: string]: unknown }
|
|
24
|
+
type AnyBlock = { type: string; cache_control?: { type: 'ephemeral'; ttl?: '5m' | '1h' }; [key: string]: unknown }
|
|
25
25
|
type OpenRouterMessage = {
|
|
26
26
|
role: string
|
|
27
27
|
content: string | AnyBlock[]
|
|
@@ -152,6 +152,42 @@ describe('OpenRouterProvider buildHttpRequest', () => {
|
|
|
152
152
|
expect(last.content).toBe('<session-context>plugin status</session-context>')
|
|
153
153
|
})
|
|
154
154
|
|
|
155
|
+
test('ttl reaches the wire and the system block matches it', async () => {
|
|
156
|
+
// The whole point of the fix: OpenRouter dropped `ttl` on the floor, so a
|
|
157
|
+
// preset asking for the 1-hour tier silently ran on the 5-minute default.
|
|
158
|
+
const messages = applyCacheBreakpoint([
|
|
159
|
+
{ role: 'user', content: 'preamble' },
|
|
160
|
+
{ role: 'assistant', content: 'ok' },
|
|
161
|
+
{ role: 'user', content: 'work' },
|
|
162
|
+
], 0, { prefix: '1h' }, 1)
|
|
163
|
+
|
|
164
|
+
const http = await createProvider().buildHttpRequest(buildRequest(messages))
|
|
165
|
+
const msgs = getBodyMessages(http.body)
|
|
166
|
+
|
|
167
|
+
// System precedes every message, so it must carry the longest TTL in use —
|
|
168
|
+
// Anthropic rejects a longer entry that follows a shorter one.
|
|
169
|
+
const systemBlocks = asBlocks(msgs[0].content)
|
|
170
|
+
expect(systemBlocks[0].cache_control).toEqual({ type: 'ephemeral', ttl: '1h' })
|
|
171
|
+
|
|
172
|
+
// prefix breakpoint (message index 0 → body index 1) carries 1h
|
|
173
|
+
expect(asBlocks(msgs[1].content)[0].cache_control).toEqual({ type: 'ephemeral', ttl: '1h' })
|
|
174
|
+
// tail breakpoint stays on the cheap short tier
|
|
175
|
+
expect(asBlocks(msgs[3].content)[0].cache_control).toEqual({ type: 'ephemeral' })
|
|
176
|
+
})
|
|
177
|
+
|
|
178
|
+
test('no ttl requested: system block stays on the default tier', async () => {
|
|
179
|
+
const messages = applyCacheBreakpoint([
|
|
180
|
+
{ role: 'user', content: 'preamble' },
|
|
181
|
+
{ role: 'user', content: 'work' },
|
|
182
|
+
], 0, undefined, 1)
|
|
183
|
+
|
|
184
|
+
const http = await createProvider().buildHttpRequest(buildRequest(messages))
|
|
185
|
+
const msgs = getBodyMessages(http.body)
|
|
186
|
+
|
|
187
|
+
expect(asBlocks(msgs[0].content)[0].cache_control).toEqual({ type: 'ephemeral' })
|
|
188
|
+
expect(asBlocks(msgs[1].content)[0].cache_control).toEqual({ type: 'ephemeral' })
|
|
189
|
+
})
|
|
190
|
+
|
|
155
191
|
test('no flag on any message: only system has cache_control', async () => {
|
|
156
192
|
const http = await createProvider().buildHttpRequest(buildRequest([
|
|
157
193
|
{ role: 'user', content: 'What is 2+2?' },
|