agentfootprint 10.7.0 → 10.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CAPABILITIES.md +3 -0
- package/dist/adapters/llm/BedrockProvider.js +18 -3
- package/dist/adapters/llm/BedrockProvider.js.map +1 -1
- package/dist/adapters/llm/BrowserOpenAIProvider.js.map +1 -1
- package/dist/adapters/llm/OpenAIProvider.js.map +1 -1
- package/dist/adapters/llm/bedrockCacheWire.js +92 -0
- package/dist/adapters/llm/bedrockCacheWire.js.map +1 -0
- package/dist/adapters/llm/bedrockModels.js +72 -0
- package/dist/adapters/llm/bedrockModels.js.map +1 -0
- package/dist/cache/applyCachePolicy.js +12 -3
- package/dist/cache/applyCachePolicy.js.map +1 -1
- package/dist/cache/cacheRecorder.js +4 -1
- package/dist/cache/cacheRecorder.js.map +1 -1
- package/dist/cache/cacheStrategyFor.js +41 -5
- package/dist/cache/cacheStrategyFor.js.map +1 -1
- package/dist/cache/index.js +4 -3
- package/dist/cache/index.js.map +1 -1
- package/dist/cache/strategies/BreakpointCacheStrategy.js +5 -2
- package/dist/cache/strategies/BreakpointCacheStrategy.js.map +1 -1
- package/dist/cache/strategies/NoOpCacheStrategy.js +2 -2
- package/dist/cache/strategies/NoOpCacheStrategy.js.map +1 -1
- package/dist/core/Agent.js +22 -2
- package/dist/core/Agent.js.map +1 -1
- package/dist/core/agent/AgentBuilder.js +3 -1
- package/dist/core/agent/AgentBuilder.js.map +1 -1
- package/dist/core/agent/cacheSupport.js +43 -0
- package/dist/core/agent/cacheSupport.js.map +1 -0
- package/dist/core/agent/evidence/extract.js +70 -13
- package/dist/core/agent/evidence/extract.js.map +1 -1
- package/dist/core/agent/evidence/figureUnits.js +24 -0
- package/dist/core/agent/evidence/figureUnits.js.map +1 -0
- package/dist/core/agent/evidence/figures.js +90 -49
- package/dist/core/agent/evidence/figures.js.map +1 -1
- package/dist/core/agent/evidence/gate.js +15 -4
- package/dist/core/agent/evidence/gate.js.map +1 -1
- package/dist/core/agent/evidence/numberPrecision.js +57 -0
- package/dist/core/agent/evidence/numberPrecision.js.map +1 -0
- package/dist/core/agent/evidence/numericRanges.js +33 -0
- package/dist/core/agent/evidence/numericRanges.js.map +1 -0
- package/dist/core/agent/findings/contingent.js +1 -1
- package/dist/core/agent/findings/contingent.js.map +1 -1
- package/dist/core/agent/runManifest.js +7 -0
- package/dist/core/agent/runManifest.js.map +1 -1
- package/dist/core/agent/skillBrains.js +13 -5
- package/dist/core/agent/skillBrains.js.map +1 -1
- package/dist/core/agent/stages/callLLM.js +9 -1
- package/dist/core/agent/stages/callLLM.js.map +1 -1
- package/dist/core/agent/stages/route.js +4 -3
- package/dist/core/agent/stages/route.js.map +1 -1
- package/dist/esm/adapters/llm/BedrockProvider.d.ts +6 -7
- package/dist/esm/adapters/llm/BedrockProvider.js +18 -3
- package/dist/esm/adapters/llm/BedrockProvider.js.map +1 -1
- package/dist/esm/adapters/llm/BrowserOpenAIProvider.d.ts +2 -3
- package/dist/esm/adapters/llm/BrowserOpenAIProvider.js.map +1 -1
- package/dist/esm/adapters/llm/OpenAIProvider.d.ts +1 -2
- package/dist/esm/adapters/llm/OpenAIProvider.js.map +1 -1
- package/dist/esm/adapters/llm/bedrockCacheWire.d.ts +46 -0
- package/dist/esm/adapters/llm/bedrockCacheWire.js +86 -0
- package/dist/esm/adapters/llm/bedrockCacheWire.js.map +1 -0
- package/dist/esm/adapters/llm/bedrockModels.d.ts +19 -0
- package/dist/esm/adapters/llm/bedrockModels.js +68 -0
- package/dist/esm/adapters/llm/bedrockModels.js.map +1 -0
- package/dist/esm/cache/applyCachePolicy.d.ts +8 -2
- package/dist/esm/cache/applyCachePolicy.js +10 -2
- package/dist/esm/cache/applyCachePolicy.js.map +1 -1
- package/dist/esm/cache/cacheRecorder.js +4 -1
- package/dist/esm/cache/cacheRecorder.js.map +1 -1
- package/dist/esm/cache/cacheStrategyFor.d.ts +21 -3
- package/dist/esm/cache/cacheStrategyFor.js +39 -4
- package/dist/esm/cache/cacheStrategyFor.js.map +1 -1
- package/dist/esm/cache/index.d.ts +3 -3
- package/dist/esm/cache/index.js +3 -3
- package/dist/esm/cache/index.js.map +1 -1
- package/dist/esm/cache/strategies/BreakpointCacheStrategy.d.ts +1 -0
- package/dist/esm/cache/strategies/BreakpointCacheStrategy.js +5 -2
- package/dist/esm/cache/strategies/BreakpointCacheStrategy.js.map +1 -1
- package/dist/esm/cache/strategies/NoOpCacheStrategy.d.ts +1 -1
- package/dist/esm/cache/strategies/NoOpCacheStrategy.js +2 -2
- package/dist/esm/cache/strategies/NoOpCacheStrategy.js.map +1 -1
- package/dist/esm/cache/types.d.ts +3 -0
- package/dist/esm/core/Agent.d.ts +3 -1
- package/dist/esm/core/Agent.js +22 -2
- package/dist/esm/core/Agent.js.map +1 -1
- package/dist/esm/core/agent/AgentBuilder.d.ts +1 -0
- package/dist/esm/core/agent/AgentBuilder.js +3 -1
- package/dist/esm/core/agent/AgentBuilder.js.map +1 -1
- package/dist/esm/core/agent/cacheSupport.d.ts +12 -0
- package/dist/esm/core/agent/cacheSupport.js +39 -0
- package/dist/esm/core/agent/cacheSupport.js.map +1 -0
- package/dist/esm/core/agent/evidence/extract.d.ts +12 -3
- package/dist/esm/core/agent/evidence/extract.js +71 -14
- package/dist/esm/core/agent/evidence/extract.js.map +1 -1
- package/dist/esm/core/agent/evidence/figureUnits.d.ts +2 -0
- package/dist/esm/core/agent/evidence/figureUnits.js +21 -0
- package/dist/esm/core/agent/evidence/figureUnits.js.map +1 -0
- package/dist/esm/core/agent/evidence/figures.d.ts +26 -7
- package/dist/esm/core/agent/evidence/figures.js +81 -42
- package/dist/esm/core/agent/evidence/figures.js.map +1 -1
- package/dist/esm/core/agent/evidence/gate.js +15 -4
- package/dist/esm/core/agent/evidence/gate.js.map +1 -1
- package/dist/esm/core/agent/evidence/numberPrecision.d.ts +13 -0
- package/dist/esm/core/agent/evidence/numberPrecision.js +52 -0
- package/dist/esm/core/agent/evidence/numberPrecision.js.map +1 -0
- package/dist/esm/core/agent/evidence/numericRanges.d.ts +8 -0
- package/dist/esm/core/agent/evidence/numericRanges.js +28 -0
- package/dist/esm/core/agent/evidence/numericRanges.js.map +1 -0
- package/dist/esm/core/agent/evidence/types.d.ts +14 -4
- package/dist/esm/core/agent/findings/contingent.js +1 -1
- package/dist/esm/core/agent/findings/contingent.js.map +1 -1
- package/dist/esm/core/agent/runManifest.d.ts +3 -0
- package/dist/esm/core/agent/runManifest.js +7 -0
- package/dist/esm/core/agent/runManifest.js.map +1 -1
- package/dist/esm/core/agent/skillBrains.d.ts +4 -0
- package/dist/esm/core/agent/skillBrains.js +13 -5
- package/dist/esm/core/agent/skillBrains.js.map +1 -1
- package/dist/esm/core/agent/stages/callLLM.d.ts +2 -0
- package/dist/esm/core/agent/stages/callLLM.js +9 -1
- package/dist/esm/core/agent/stages/callLLM.js.map +1 -1
- package/dist/esm/core/agent/stages/route.js +5 -3
- package/dist/esm/core/agent/stages/route.js.map +1 -1
- package/dist/esm/events/payloads.d.ts +7 -0
- package/dist/esm/injection-engine/factories/defineFact.js +3 -3
- package/dist/esm/injection-engine/factories/defineFact.js.map +1 -1
- package/dist/esm/injection-engine/factories/defineInstruction.js +3 -3
- package/dist/esm/injection-engine/factories/defineInstruction.js.map +1 -1
- package/dist/esm/injection-engine/factories/defineSkill.js +2 -2
- package/dist/esm/injection-engine/factories/defineSkill.js.map +1 -1
- package/dist/esm/injection-engine/factories/defineSteering.js +3 -3
- package/dist/esm/injection-engine/factories/defineSteering.js.map +1 -1
- package/dist/esm/provider-contract/types.d.ts +4 -1
- package/dist/esm/provider-contract/types.js.map +1 -1
- package/dist/esm/redaction/knownStrings.js +2 -0
- package/dist/esm/redaction/knownStrings.js.map +1 -1
- package/dist/esm/resilience/withFallback.js +17 -6
- package/dist/esm/resilience/withFallback.js.map +1 -1
- package/dist/esm/tools/normalize.d.ts +7 -5
- package/dist/esm/tools/normalize.js +26 -2
- package/dist/esm/tools/normalize.js.map +1 -1
- package/dist/injection-engine/factories/defineFact.js +2 -2
- package/dist/injection-engine/factories/defineFact.js.map +1 -1
- package/dist/injection-engine/factories/defineInstruction.js +2 -2
- package/dist/injection-engine/factories/defineInstruction.js.map +1 -1
- package/dist/injection-engine/factories/defineSkill.js +1 -1
- package/dist/injection-engine/factories/defineSkill.js.map +1 -1
- package/dist/injection-engine/factories/defineSteering.js +2 -2
- package/dist/injection-engine/factories/defineSteering.js.map +1 -1
- package/dist/provider-contract/types.js.map +1 -1
- package/dist/redaction/knownStrings.js +2 -0
- package/dist/redaction/knownStrings.js.map +1 -1
- package/dist/resilience/withFallback.js +17 -6
- package/dist/resilience/withFallback.js.map +1 -1
- package/dist/tools/normalize.js +28 -3
- package/dist/tools/normalize.js.map +1 -1
- package/dist/types/adapters/llm/BedrockProvider.d.ts +6 -7
- package/dist/types/adapters/llm/BedrockProvider.d.ts.map +1 -1
- package/dist/types/adapters/llm/BrowserOpenAIProvider.d.ts +2 -3
- package/dist/types/adapters/llm/BrowserOpenAIProvider.d.ts.map +1 -1
- package/dist/types/adapters/llm/OpenAIProvider.d.ts +1 -2
- package/dist/types/adapters/llm/OpenAIProvider.d.ts.map +1 -1
- package/dist/types/adapters/llm/bedrockCacheWire.d.ts +47 -0
- package/dist/types/adapters/llm/bedrockCacheWire.d.ts.map +1 -0
- package/dist/types/adapters/llm/bedrockModels.d.ts +20 -0
- package/dist/types/adapters/llm/bedrockModels.d.ts.map +1 -0
- package/dist/types/cache/applyCachePolicy.d.ts +8 -2
- package/dist/types/cache/applyCachePolicy.d.ts.map +1 -1
- package/dist/types/cache/cacheRecorder.d.ts.map +1 -1
- package/dist/types/cache/cacheStrategyFor.d.ts +21 -3
- package/dist/types/cache/cacheStrategyFor.d.ts.map +1 -1
- package/dist/types/cache/index.d.ts +3 -3
- package/dist/types/cache/index.d.ts.map +1 -1
- package/dist/types/cache/strategies/BreakpointCacheStrategy.d.ts +1 -0
- package/dist/types/cache/strategies/BreakpointCacheStrategy.d.ts.map +1 -1
- package/dist/types/cache/strategies/NoOpCacheStrategy.d.ts +1 -1
- package/dist/types/cache/types.d.ts +3 -0
- package/dist/types/cache/types.d.ts.map +1 -1
- package/dist/types/core/Agent.d.ts +3 -1
- package/dist/types/core/Agent.d.ts.map +1 -1
- package/dist/types/core/agent/AgentBuilder.d.ts +1 -0
- package/dist/types/core/agent/AgentBuilder.d.ts.map +1 -1
- package/dist/types/core/agent/cacheSupport.d.ts +13 -0
- package/dist/types/core/agent/cacheSupport.d.ts.map +1 -0
- package/dist/types/core/agent/evidence/extract.d.ts +12 -3
- package/dist/types/core/agent/evidence/extract.d.ts.map +1 -1
- package/dist/types/core/agent/evidence/figureUnits.d.ts +3 -0
- package/dist/types/core/agent/evidence/figureUnits.d.ts.map +1 -0
- package/dist/types/core/agent/evidence/figures.d.ts +26 -7
- package/dist/types/core/agent/evidence/figures.d.ts.map +1 -1
- package/dist/types/core/agent/evidence/gate.d.ts.map +1 -1
- package/dist/types/core/agent/evidence/numberPrecision.d.ts +14 -0
- package/dist/types/core/agent/evidence/numberPrecision.d.ts.map +1 -0
- package/dist/types/core/agent/evidence/numericRanges.d.ts +9 -0
- package/dist/types/core/agent/evidence/numericRanges.d.ts.map +1 -0
- package/dist/types/core/agent/evidence/types.d.ts +14 -4
- package/dist/types/core/agent/evidence/types.d.ts.map +1 -1
- package/dist/types/core/agent/runManifest.d.ts +3 -0
- package/dist/types/core/agent/runManifest.d.ts.map +1 -1
- package/dist/types/core/agent/skillBrains.d.ts +4 -0
- package/dist/types/core/agent/skillBrains.d.ts.map +1 -1
- package/dist/types/core/agent/stages/callLLM.d.ts +2 -0
- package/dist/types/core/agent/stages/callLLM.d.ts.map +1 -1
- package/dist/types/core/agent/stages/route.d.ts.map +1 -1
- package/dist/types/events/payloads.d.ts +7 -0
- package/dist/types/events/payloads.d.ts.map +1 -1
- package/dist/types/provider-contract/types.d.ts +4 -1
- package/dist/types/provider-contract/types.d.ts.map +1 -1
- package/dist/types/redaction/knownStrings.d.ts.map +1 -1
- package/dist/types/resilience/withFallback.d.ts.map +1 -1
- package/dist/types/tools/normalize.d.ts +7 -5
- package/dist/types/tools/normalize.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -34,7 +34,10 @@ import { NoOpCacheStrategy } from './strategies/NoOpCacheStrategy.js';
|
|
|
34
34
|
/** One shared instance: the no-op strategy holds no state. */
|
|
35
35
|
const NO_CACHING = new NoOpCacheStrategy();
|
|
36
36
|
/**
|
|
37
|
-
* The strategy that serves `provider`'s declared prompt caching
|
|
37
|
+
* The strategy that serves `provider`'s declared prompt caching for `model`.
|
|
38
|
+
* Static declarations keep the one-argument form. For a model-aware adapter,
|
|
39
|
+
* pass its model (including its own supported shorthand); omitting it selects
|
|
40
|
+
* no caching rather than guessing a model.
|
|
38
41
|
*
|
|
39
42
|
* @throws TypeError when the declaration is malformed (an unknown `mode`, a
|
|
40
43
|
* `maxBreakpoints` that is not a positive integer, a non-boolean
|
|
@@ -42,16 +45,40 @@ const NO_CACHING = new NoOpCacheStrategy();
|
|
|
42
45
|
* quietly fell back to "no caching" would be the very failure this
|
|
43
46
|
* function exists to end.
|
|
44
47
|
*/
|
|
45
|
-
export function cacheStrategyFor(provider) {
|
|
46
|
-
const declared = provider
|
|
48
|
+
export function cacheStrategyFor(provider, model) {
|
|
49
|
+
const declared = promptCachingFor(provider, model);
|
|
47
50
|
if (declared === undefined)
|
|
48
51
|
return NO_CACHING;
|
|
49
52
|
const who = `the '${provider.name}' provider`;
|
|
50
|
-
assertDeclaration(declared, who);
|
|
51
53
|
return declared.mode === 'breakpoints'
|
|
52
54
|
? new BreakpointCacheStrategy(declared, who)
|
|
53
55
|
: new AutomaticCacheStrategy(declared, who);
|
|
54
56
|
}
|
|
57
|
+
/** Resolve the provider's one declaration for this model. An omitted model
|
|
58
|
+
* cannot establish a model-aware capability, so it fails closed. Static
|
|
59
|
+
* declarations retain the existing one-argument behavior.
|
|
60
|
+
*
|
|
61
|
+
* Use this reader instead of accessing `provider.promptCaching.mode`: the
|
|
62
|
+
* port also permits a model function. No resolver is duplicated in adapters.
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* ```ts
|
|
66
|
+
* import { promptCachingFor } from 'agentfootprint/cache';
|
|
67
|
+
* const declaration = promptCachingFor(provider, model);
|
|
68
|
+
* if (declaration?.mode === 'breakpoints') console.log(declaration.maxBreakpoints);
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
71
|
+
export function promptCachingFor(provider, model) {
|
|
72
|
+
const declaration = provider.promptCaching;
|
|
73
|
+
const declared = typeof declaration === 'function'
|
|
74
|
+
? model === undefined
|
|
75
|
+
? undefined
|
|
76
|
+
: declaration(model)
|
|
77
|
+
: declaration;
|
|
78
|
+
if (declared !== undefined)
|
|
79
|
+
assertDeclaration(declared, `the '${provider.name}' provider`);
|
|
80
|
+
return declared;
|
|
81
|
+
}
|
|
55
82
|
function assertDeclaration(declared, who) {
|
|
56
83
|
const shape = declared;
|
|
57
84
|
const refuse = (what) => {
|
|
@@ -69,5 +96,13 @@ function assertDeclaration(declared, who) {
|
|
|
69
96
|
if (typeof shape.reportsUsage !== 'boolean') {
|
|
70
97
|
refuse(`with reportsUsage ${JSON.stringify(shape.reportsUsage)} (true or false)`);
|
|
71
98
|
}
|
|
99
|
+
if (shape.fields !== undefined &&
|
|
100
|
+
(!Array.isArray(shape.fields) ||
|
|
101
|
+
shape.fields.length === 0 ||
|
|
102
|
+
shape.fields.length > 3 ||
|
|
103
|
+
shape.fields.some((field) => !['system', 'tools', 'messages'].includes(field)) ||
|
|
104
|
+
new Set(shape.fields).size !== shape.fields.length)) {
|
|
105
|
+
refuse('with fields other than a nonempty unique subset of system, tools, messages');
|
|
106
|
+
}
|
|
72
107
|
}
|
|
73
108
|
//# sourceMappingURL=cacheStrategyFor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cacheStrategyFor.js","sourceRoot":"","sources":["../../../src/cache/cacheStrategyFor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAIH,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,8DAA8D;AAC9D,MAAM,UAAU,GAAG,IAAI,iBAAiB,EAAE,CAAC;AAE3C
|
|
1
|
+
{"version":3,"file":"cacheStrategyFor.js","sourceRoot":"","sources":["../../../src/cache/cacheStrategyFor.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
*
|
|
4
4
|
* The strategy an agent runs is chosen by CAPABILITY: the provider adapter
|
|
5
5
|
* declares how its wire caches (`LLMProvider.promptCaching`) and
|
|
6
|
-
* `cacheStrategyFor(provider)` returns the
|
|
6
|
+
* `cacheStrategyFor(provider, model?)` returns the strategy that serves it —
|
|
7
7
|
* - `BreakpointCacheStrategy` — `mode: 'breakpoints'` (Anthropic's
|
|
8
8
|
* `cache_control`; `anthropic()`, `browserAnthropic()`);
|
|
9
9
|
* - `AutomaticCacheStrategy` — `mode: 'automatic'` (OpenAI and Azure
|
|
10
10
|
* OpenAI cache on their own);
|
|
11
|
-
* - `NoOpCacheStrategy` — nothing declared (Mock, Ollama,
|
|
11
|
+
* - `NoOpCacheStrategy` — nothing declared for the model (Mock, Ollama,
|
|
12
12
|
* Gemini, any adapter that has not said).
|
|
13
13
|
* Nothing registers at module load and nothing is keyed by provider name, so
|
|
14
14
|
* a decorator that renames its provider keeps caching by forwarding the
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
*/
|
|
22
22
|
export type { CachePolicy, CachePolicyContext, CacheMarker, CacheStrategy, CacheStrategyContext, CacheMetrics, CacheUsage, PromptCaching, } from './types.js';
|
|
23
23
|
export { known, unknown, notApplicable, isKnown, valueOr, describeClaim, type Claim, } from '../lib/claim/claim.js';
|
|
24
|
-
export { cacheStrategyFor } from './cacheStrategyFor.js';
|
|
24
|
+
export { cacheStrategyFor, promptCachingFor } from './cacheStrategyFor.js';
|
|
25
25
|
export { NoOpCacheStrategy } from './strategies/NoOpCacheStrategy.js';
|
|
26
26
|
export { BreakpointCacheStrategy } from './strategies/BreakpointCacheStrategy.js';
|
|
27
27
|
export { AutomaticCacheStrategy } from './strategies/AutomaticCacheStrategy.js';
|
package/dist/esm/cache/index.js
CHANGED
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
*
|
|
4
4
|
* The strategy an agent runs is chosen by CAPABILITY: the provider adapter
|
|
5
5
|
* declares how its wire caches (`LLMProvider.promptCaching`) and
|
|
6
|
-
* `cacheStrategyFor(provider)` returns the
|
|
6
|
+
* `cacheStrategyFor(provider, model?)` returns the strategy that serves it —
|
|
7
7
|
* - `BreakpointCacheStrategy` — `mode: 'breakpoints'` (Anthropic's
|
|
8
8
|
* `cache_control`; `anthropic()`, `browserAnthropic()`);
|
|
9
9
|
* - `AutomaticCacheStrategy` — `mode: 'automatic'` (OpenAI and Azure
|
|
10
10
|
* OpenAI cache on their own);
|
|
11
|
-
* - `NoOpCacheStrategy` — nothing declared (Mock, Ollama,
|
|
11
|
+
* - `NoOpCacheStrategy` — nothing declared for the model (Mock, Ollama,
|
|
12
12
|
* Gemini, any adapter that has not said).
|
|
13
13
|
* Nothing registers at module load and nothing is keyed by provider name, so
|
|
14
14
|
* a decorator that renames its provider keeps caching by forwarding the
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
// `agentfootprint/maps` exports, so `known` from either door is one function.
|
|
25
25
|
export { known, unknown, notApplicable, isKnown, valueOr, describeClaim, } from '../lib/claim/claim.js';
|
|
26
26
|
// Strategy selection — by the provider's declared capability, never its name
|
|
27
|
-
export { cacheStrategyFor } from './cacheStrategyFor.js';
|
|
27
|
+
export { cacheStrategyFor, promptCachingFor } from './cacheStrategyFor.js';
|
|
28
28
|
// Built-in strategy classes (for consumers who want explicit overrides via
|
|
29
29
|
// `Agent.create({ cacheStrategy })`)
|
|
30
30
|
export { NoOpCacheStrategy } from './strategies/NoOpCacheStrategy.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cache/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAeH,oEAAoE;AACpE,2DAA2D;AAC3D,8EAA8E;AAC9E,OAAO,EACL,KAAK,EACL,OAAO,EACP,aAAa,EACb,OAAO,EACP,OAAO,EACP,aAAa,GAEd,MAAM,uBAAuB,CAAC;AAE/B,6EAA6E;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cache/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAeH,oEAAoE;AACpE,2DAA2D;AAC3D,8EAA8E;AAC9E,OAAO,EACL,KAAK,EACL,OAAO,EACP,aAAa,EACb,OAAO,EACP,OAAO,EACP,aAAa,GAEd,MAAM,uBAAuB,CAAC;AAE/B,6EAA6E;AAC7E,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE3E,2EAA2E;AAC3E,qCAAqC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAClF,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAEhF,WAAW;AACX,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -24,6 +24,7 @@ export declare class BreakpointCacheStrategy implements CacheStrategy {
|
|
|
24
24
|
private readonly maxBreakpoints;
|
|
25
25
|
private readonly reportsUsage;
|
|
26
26
|
private readonly who;
|
|
27
|
+
private readonly fields?;
|
|
27
28
|
/**
|
|
28
29
|
* @param declared the provider's `promptCaching` declaration
|
|
29
30
|
* @param who names the adapter in the meter's evidence sentences,
|
|
@@ -23,6 +23,7 @@ export class BreakpointCacheStrategy {
|
|
|
23
23
|
maxBreakpoints;
|
|
24
24
|
reportsUsage;
|
|
25
25
|
who;
|
|
26
|
+
fields;
|
|
26
27
|
/**
|
|
27
28
|
* @param declared the provider's `promptCaching` declaration
|
|
28
29
|
* @param who names the adapter in the meter's evidence sentences,
|
|
@@ -32,6 +33,7 @@ export class BreakpointCacheStrategy {
|
|
|
32
33
|
this.maxBreakpoints = declared.maxBreakpoints;
|
|
33
34
|
this.reportsUsage = declared.reportsUsage;
|
|
34
35
|
this.who = who;
|
|
36
|
+
this.fields = declared.fields;
|
|
35
37
|
}
|
|
36
38
|
async prepareRequest(req, candidates, ctx) {
|
|
37
39
|
// The agent-side kill switch, honoured here too: the CacheGate should
|
|
@@ -40,9 +42,10 @@ export class BreakpointCacheStrategy {
|
|
|
40
42
|
if (ctx.cachingDisabled || candidates.length === 0) {
|
|
41
43
|
return { request: req, markersApplied: [] };
|
|
42
44
|
}
|
|
43
|
-
const
|
|
45
|
+
const supported = this.fields === undefined
|
|
44
46
|
? candidates
|
|
45
|
-
: candidates.
|
|
47
|
+
: candidates.filter((marker) => this.fields?.includes(marker.field));
|
|
48
|
+
const markersApplied = supported.length <= this.maxBreakpoints ? supported : supported.slice(0, this.maxBreakpoints);
|
|
46
49
|
return { request: { ...req, cacheMarkers: markersApplied }, markersApplied };
|
|
47
50
|
}
|
|
48
51
|
extractMetrics(usage) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BreakpointCacheStrategy.js","sourceRoot":"","sources":["../../../../src/cache/strategies/BreakpointCacheStrategy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAUH,OAAO,EAAE,aAAa,EAAc,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGrD,MAAM,OAAO,uBAAuB;IACzB,IAAI,GAAG,aAAa,CAAC;IACb,cAAc,CAAS;IACvB,YAAY,CAAU;IACtB,GAAG,CAAS;
|
|
1
|
+
{"version":3,"file":"BreakpointCacheStrategy.js","sourceRoot":"","sources":["../../../../src/cache/strategies/BreakpointCacheStrategy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAUH,OAAO,EAAE,aAAa,EAAc,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGrD,MAAM,OAAO,uBAAuB;IACzB,IAAI,GAAG,aAAa,CAAC;IACb,cAAc,CAAS;IACvB,YAAY,CAAU;IACtB,GAAG,CAAS;IACZ,MAAM,CAAmC;IAE1D;;;;OAIG;IACH,YAAY,QAAyD,EAAE,GAAG,GAAG,cAAc;QACzF,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC;QAC9C,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;QAC1C,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,GAAe,EACf,UAAkC,EAClC,GAAyB;QAKzB,sEAAsE;QACtE,yEAAyE;QACzE,6DAA6D;QAC7D,IAAI,GAAG,CAAC,eAAe,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnD,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;QAC9C,CAAC;QACD,MAAM,SAAS,GACb,IAAI,CAAC,MAAM,KAAK,SAAS;YACvB,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACzE,MAAM,cAAc,GAClB,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAChG,OAAO,EAAE,OAAO,EAAE,EAAE,GAAG,GAAG,EAAE,YAAY,EAAE,cAAc,EAAE,EAAE,cAAc,EAAE,CAAC;IAC/E,CAAC;IAED,cAAc,CAAC,KAA6B;QAC1C,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,OAAO,aAAa,CAClB,GAAG,IAAI,CAAC,GAAG,uDAAuD;gBAChE,qCAAqC,CACxC,CAAC;QACJ,CAAC;QACD,OAAO,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7C,CAAC;CACF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* NoOpCacheStrategy — for a provider that declares no prompt caching
|
|
3
|
-
* (`LLMProvider.promptCaching` absent): Mock, Ollama,
|
|
3
|
+
* (`LLMProvider.promptCaching` absent or undefined for this model): Mock, Ollama,
|
|
4
4
|
* any adapter that has not said, or an intentional opt-out.
|
|
5
5
|
*
|
|
6
6
|
* Returns the request unchanged and reports *not applicable* — never a zero.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* NoOpCacheStrategy — for a provider that declares no prompt caching
|
|
3
|
-
* (`LLMProvider.promptCaching` absent): Mock, Ollama,
|
|
3
|
+
* (`LLMProvider.promptCaching` absent or undefined for this model): Mock, Ollama,
|
|
4
4
|
* any adapter that has not said, or an intentional opt-out.
|
|
5
5
|
*
|
|
6
6
|
* Returns the request unchanged and reports *not applicable* — never a zero.
|
|
@@ -14,7 +14,7 @@ export class NoOpCacheStrategy {
|
|
|
14
14
|
return { request: req, markersApplied: [] };
|
|
15
15
|
}
|
|
16
16
|
extractMetrics(_usage) {
|
|
17
|
-
return notApplicable('the provider declares no prompt caching (LLMProvider.promptCaching is absent), so no ' +
|
|
17
|
+
return notApplicable('the provider declares no prompt caching for this model (LLMProvider.promptCaching is absent or resolves to undefined), so no ' +
|
|
18
18
|
'cache traffic is driven or reported');
|
|
19
19
|
}
|
|
20
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NoOpCacheStrategy.js","sourceRoot":"","sources":["../../../../src/cache/strategies/NoOpCacheStrategy.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AASH,OAAO,EAAE,aAAa,EAAc,MAAM,0BAA0B,CAAC;AAGrE,MAAM,OAAO,iBAAiB;IACnB,IAAI,GAAG,MAAM,CAAC;IAEvB,KAAK,CAAC,cAAc,CAClB,GAAe,EACf,WAAmC,EACnC,IAA0B;QAK1B,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;IAC9C,CAAC;IAED,cAAc,CAAC,MAA8B;QAC3C,OAAO,aAAa,CAClB
|
|
1
|
+
{"version":3,"file":"NoOpCacheStrategy.js","sourceRoot":"","sources":["../../../../src/cache/strategies/NoOpCacheStrategy.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AASH,OAAO,EAAE,aAAa,EAAc,MAAM,0BAA0B,CAAC;AAGrE,MAAM,OAAO,iBAAiB;IACnB,IAAI,GAAG,MAAM,CAAC;IAEvB,KAAK,CAAC,cAAc,CAClB,GAAe,EACf,WAAmC,EACnC,IAA0B;QAK1B,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;IAC9C,CAAC;IAED,cAAc,CAAC,MAA8B;QAC3C,OAAO,aAAa,CAClB,+HAA+H;YAC7H,qCAAqC,CACxC,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -180,6 +180,9 @@ export type PromptCaching = {
|
|
|
180
180
|
/** Breakpoints the wire honours on one request (Anthropic: 4). */
|
|
181
181
|
readonly maxBreakpoints: number;
|
|
182
182
|
readonly reportsUsage: boolean;
|
|
183
|
+
/** Optional wire-supported fields. Absent means all marker fields;
|
|
184
|
+
* models such as Bedrock Nova accept system/messages but not tools. */
|
|
185
|
+
readonly fields?: readonly CacheMarker['field'][];
|
|
183
186
|
} | {
|
|
184
187
|
readonly mode: 'automatic';
|
|
185
188
|
readonly reportsUsage: boolean;
|
package/dist/esm/core/Agent.d.ts
CHANGED
|
@@ -169,6 +169,8 @@ export declare class Agent extends RunnerBase<AgentInput, AgentOutput> {
|
|
|
169
169
|
* consumer passes one explicitly.
|
|
170
170
|
*/
|
|
171
171
|
private readonly cacheStrategy;
|
|
172
|
+
private readonly cacheStrategyIsOverride;
|
|
173
|
+
private readonly cacheUnsupported;
|
|
172
174
|
private readonly registry;
|
|
173
175
|
/**
|
|
174
176
|
* The Injection list — Skills, Steering, Instructions, Facts (and
|
|
@@ -653,7 +655,7 @@ export declare class Agent extends RunnerBase<AgentInput, AgentOutput> {
|
|
|
653
655
|
readonly strictness: 'assist' | 'guard' | 'rails';
|
|
654
656
|
readonly continuity: 'turn' | 'conversation';
|
|
655
657
|
readonly nodeIds: ReadonlySet<string>;
|
|
656
|
-
}, skillBrains?: import('./agent/skillBrains.js').FoldedSkillBrains, evidenceGate?: ResolvedEvidenceGate, limitsTravelWithTheAnswer?: boolean, recipes?: readonly AppliedRecipe[], skillGraphDeclared?: SkillGraphDeclaredMap, mapsPlan?: import('../maps/engagement/types.js').EngagementPlan, claimContract?: readonly import('../integrity/unsupported-claim/check.js').DeclaredClaim[], answerValidationConfig?: ResolvedAnswerValidation);
|
|
658
|
+
}, skillBrains?: import('./agent/skillBrains.js').FoldedSkillBrains, evidenceGate?: ResolvedEvidenceGate, limitsTravelWithTheAnswer?: boolean, recipes?: readonly AppliedRecipe[], skillGraphDeclared?: SkillGraphDeclaredMap, mapsPlan?: import('../maps/engagement/types.js').EngagementPlan, claimContract?: readonly import('../integrity/unsupported-claim/check.js').DeclaredClaim[], answerValidationConfig?: ResolvedAnswerValidation, systemPromptCacheExplicit?: boolean);
|
|
657
659
|
static create(opts: AgentOptions): AgentBuilder;
|
|
658
660
|
/**
|
|
659
661
|
* Cache policy for the base system prompt. Read by the CacheDecision
|
package/dist/esm/core/Agent.js
CHANGED
|
@@ -19,6 +19,7 @@ import { extractSequence } from '../security/extractSequence.js';
|
|
|
19
19
|
import { PolicyHaltError } from '../security/PolicyHaltError.js';
|
|
20
20
|
import { updateSkillHistory as updateSkillHistoryStage } from '../cache/CacheGateDecider.js';
|
|
21
21
|
import { cacheStrategyFor } from '../cache/cacheStrategyFor.js';
|
|
22
|
+
import { cacheRequestedWithoutSupport } from './agent/cacheSupport.js';
|
|
22
23
|
import { forcedToolChoiceFor, UnsupportedToolChoiceError, } from '../provider-contract/forcedToolChoice.js';
|
|
23
24
|
import { nativeOutputSchemaFor, UnsupportedNativeOutputError, } from '../provider-contract/nativeOutputSchema.js';
|
|
24
25
|
import { isRequestRefusal } from '../provider-contract/requestRefusal.js';
|
|
@@ -235,6 +236,8 @@ export class Agent extends RunnerBase {
|
|
|
235
236
|
* consumer passes one explicitly.
|
|
236
237
|
*/
|
|
237
238
|
cacheStrategy;
|
|
239
|
+
cacheStrategyIsOverride;
|
|
240
|
+
cacheUnsupported;
|
|
238
241
|
registry;
|
|
239
242
|
/**
|
|
240
243
|
* The Injection list — Skills, Steering, Instructions, Facts (and
|
|
@@ -726,7 +729,7 @@ export class Agent extends RunnerBase {
|
|
|
726
729
|
* rebinding itself to each run id (`core/agent/receipt/receiptDigests.ts`). */
|
|
727
730
|
receiptDigests = createReceiptDigests();
|
|
728
731
|
answerValidationConfig;
|
|
729
|
-
constructor(opts, systemPromptValue, registry, voice, injections = [], memories = [], outputSchemaParser, toolProvider, systemPromptCachePolicy = 'always', cachingDisabled = false, cacheStrategy, outputFallbackCfg, reliabilityConfig, thinkingHandlerValue, thinkingBudgetValue, skillGraphNextSkill, skillGraphReachable, skillGraphScoreEntries, checkInOptions, runConfigFn, windowStrategy, toolMiddleware, messageMiddleware, outputEnforcement, skillGraphEdgeTargets, skillGraphExplainNextSkill, skillGraphIsTree, skillGraphSupersededEntries, skillGraphCascade, skillBrains, evidenceGate, limitsTravelWithTheAnswer, recipes, skillGraphDeclared, mapsPlan, claimContract, answerValidationConfig) {
|
|
732
|
+
constructor(opts, systemPromptValue, registry, voice, injections = [], memories = [], outputSchemaParser, toolProvider, systemPromptCachePolicy = 'always', cachingDisabled = false, cacheStrategy, outputFallbackCfg, reliabilityConfig, thinkingHandlerValue, thinkingBudgetValue, skillGraphNextSkill, skillGraphReachable, skillGraphScoreEntries, checkInOptions, runConfigFn, windowStrategy, toolMiddleware, messageMiddleware, outputEnforcement, skillGraphEdgeTargets, skillGraphExplainNextSkill, skillGraphIsTree, skillGraphSupersededEntries, skillGraphCascade, skillBrains, evidenceGate, limitsTravelWithTheAnswer, recipes, skillGraphDeclared, mapsPlan, claimContract, answerValidationConfig, systemPromptCacheExplicit = false) {
|
|
730
733
|
super();
|
|
731
734
|
// Which conversation this instance's self-explain evidence belongs to —
|
|
732
735
|
// held in a module registry, not on the class, so it is not public API
|
|
@@ -756,7 +759,20 @@ export class Agent extends RunnerBase {
|
|
|
756
759
|
// caller overrides it — never one looked up by `provider.name`, which a
|
|
757
760
|
// renaming decorator (`withRetry`, an app's own wrapper) rewrites. A
|
|
758
761
|
// provider that declares nothing gets the no-op strategy.
|
|
759
|
-
this.cacheStrategy = cacheStrategy ?? cacheStrategyFor(opts.provider);
|
|
762
|
+
this.cacheStrategy = cacheStrategy ?? cacheStrategyFor(opts.provider, opts.model);
|
|
763
|
+
this.cacheStrategyIsOverride = cacheStrategy !== undefined;
|
|
764
|
+
this.cacheUnsupported = cacheRequestedWithoutSupport({
|
|
765
|
+
strategy: this.cacheStrategy,
|
|
766
|
+
providerName: opts.provider.name,
|
|
767
|
+
systemPrompt: systemPromptValue,
|
|
768
|
+
systemPolicy: systemPromptCachePolicy,
|
|
769
|
+
systemExplicit: systemPromptCacheExplicit,
|
|
770
|
+
modelAwareUnavailable: cacheStrategy === undefined &&
|
|
771
|
+
typeof opts.provider.promptCaching === 'function' &&
|
|
772
|
+
this.cacheStrategy.name === 'none',
|
|
773
|
+
injections,
|
|
774
|
+
disabled: cachingDisabled,
|
|
775
|
+
});
|
|
760
776
|
this.registry = registry;
|
|
761
777
|
this.injections = injections;
|
|
762
778
|
this.skillGraphNextSkill = skillGraphNextSkill;
|
|
@@ -3485,6 +3501,7 @@ export class Agent extends RunnerBase {
|
|
|
3485
3501
|
model: this.model,
|
|
3486
3502
|
hasRunConfig: this.runConfigFn !== undefined,
|
|
3487
3503
|
hasSkillBrains: this.skillBrains !== undefined,
|
|
3504
|
+
...(this.cacheUnsupported !== undefined && { cacheUnsupported: this.cacheUnsupported }),
|
|
3488
3505
|
reactMode: this.reactMode,
|
|
3489
3506
|
memories: this.memories,
|
|
3490
3507
|
...(this.windowStrategy !== undefined && {
|
|
@@ -4707,6 +4724,7 @@ export class Agent extends RunnerBase {
|
|
|
4707
4724
|
...(costBudget !== undefined && { costBudget }),
|
|
4708
4725
|
maxIterations,
|
|
4709
4726
|
cacheStrategy,
|
|
4727
|
+
...(this.cacheStrategyIsOverride && { cacheStrategyIsOverride: true }),
|
|
4710
4728
|
get toolSchemas() {
|
|
4711
4729
|
return toolSchemasResolved;
|
|
4712
4730
|
},
|
|
@@ -4764,6 +4782,8 @@ export class Agent extends RunnerBase {
|
|
|
4764
4782
|
brains: this.skillBrains,
|
|
4765
4783
|
agentProvider: provider,
|
|
4766
4784
|
agentCacheStrategy: cacheStrategy,
|
|
4785
|
+
agentModel: model,
|
|
4786
|
+
...(this.cacheStrategyIsOverride && { agentCacheStrategyIsOverride: true }),
|
|
4767
4787
|
}),
|
|
4768
4788
|
}),
|
|
4769
4789
|
});
|