agentfootprint 10.2.0 → 10.3.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 +1 -0
- package/dist/adapters/llm/AnthropicProvider.js +11 -2
- package/dist/adapters/llm/AnthropicProvider.js.map +1 -1
- package/dist/adapters/llm/BrowserAnthropicProvider.js +11 -2
- package/dist/adapters/llm/BrowserAnthropicProvider.js.map +1 -1
- package/dist/adapters/llm/MockProvider.js +11 -1
- package/dist/adapters/llm/MockProvider.js.map +1 -1
- package/dist/adapters/llm/anthropicMessagesWire.js +19 -0
- package/dist/adapters/llm/anthropicMessagesWire.js.map +1 -1
- package/dist/adapters/llm/anthropicModels.js +48 -14
- package/dist/adapters/llm/anthropicModels.js.map +1 -1
- package/dist/adapters/llm/wireManifest.js +8 -2
- package/dist/adapters/llm/wireManifest.js.map +1 -1
- package/dist/adapters/nativeOutputSchema.js +80 -0
- package/dist/adapters/nativeOutputSchema.js.map +1 -0
- package/dist/adapters/requestRefusal.js +2 -0
- package/dist/adapters/requestRefusal.js.map +1 -1
- package/dist/adapters/types.js.map +1 -1
- package/dist/core/Agent.js +74 -22
- package/dist/core/Agent.js.map +1 -1
- package/dist/core/agent/AgentBuilder.js +23 -0
- package/dist/core/agent/AgentBuilder.js.map +1 -1
- package/dist/core/agent/buildDynamicAgentChart.js +5 -0
- package/dist/core/agent/buildDynamicAgentChart.js.map +1 -1
- package/dist/core/agent/findings/reserved.js +50 -1
- package/dist/core/agent/findings/reserved.js.map +1 -1
- package/dist/core/agent/nativeOutputFormat.js +389 -0
- package/dist/core/agent/nativeOutputFormat.js.map +1 -0
- package/dist/core/agent/outputEnforcement.js +35 -1
- package/dist/core/agent/outputEnforcement.js.map +1 -1
- package/dist/core/agent/stages/answerValidation.js +14 -4
- package/dist/core/agent/stages/answerValidation.js.map +1 -1
- package/dist/core/agent/stages/callLLM.js +24 -0
- package/dist/core/agent/stages/callLLM.js.map +1 -1
- package/dist/core/agent/stages/outputRetry.js +1 -0
- package/dist/core/agent/stages/outputRetry.js.map +1 -1
- package/dist/core/agent/stages/route.js +33 -10
- package/dist/core/agent/stages/route.js.map +1 -1
- package/dist/core/outputSchema.js.map +1 -1
- package/dist/esm/adapters/llm/AnthropicProvider.d.ts +3 -0
- package/dist/esm/adapters/llm/AnthropicProvider.js +12 -3
- package/dist/esm/adapters/llm/AnthropicProvider.js.map +1 -1
- package/dist/esm/adapters/llm/BrowserAnthropicProvider.d.ts +3 -0
- package/dist/esm/adapters/llm/BrowserAnthropicProvider.js +12 -3
- package/dist/esm/adapters/llm/BrowserAnthropicProvider.js.map +1 -1
- package/dist/esm/adapters/llm/MockProvider.d.ts +7 -0
- package/dist/esm/adapters/llm/MockProvider.js +11 -1
- package/dist/esm/adapters/llm/MockProvider.js.map +1 -1
- package/dist/esm/adapters/llm/anthropicMessagesWire.d.ts +13 -0
- package/dist/esm/adapters/llm/anthropicMessagesWire.js +19 -0
- package/dist/esm/adapters/llm/anthropicMessagesWire.js.map +1 -1
- package/dist/esm/adapters/llm/anthropicModels.d.ts +36 -3
- package/dist/esm/adapters/llm/anthropicModels.js +46 -13
- package/dist/esm/adapters/llm/anthropicModels.js.map +1 -1
- package/dist/esm/adapters/llm/wireManifest.d.ts +9 -1
- package/dist/esm/adapters/llm/wireManifest.js +8 -2
- package/dist/esm/adapters/llm/wireManifest.js.map +1 -1
- package/dist/esm/adapters/nativeOutputSchema.d.ts +66 -0
- package/dist/esm/adapters/nativeOutputSchema.js +75 -0
- package/dist/esm/adapters/nativeOutputSchema.js.map +1 -0
- package/dist/esm/adapters/requestRefusal.js +2 -0
- package/dist/esm/adapters/requestRefusal.js.map +1 -1
- package/dist/esm/adapters/types.d.ts +40 -0
- package/dist/esm/adapters/types.js.map +1 -1
- package/dist/esm/core/Agent.d.ts +16 -0
- package/dist/esm/core/Agent.js +74 -22
- package/dist/esm/core/Agent.js.map +1 -1
- package/dist/esm/core/agent/AgentBuilder.js +23 -0
- package/dist/esm/core/agent/AgentBuilder.js.map +1 -1
- package/dist/esm/core/agent/buildDynamicAgentChart.js +5 -0
- package/dist/esm/core/agent/buildDynamicAgentChart.js.map +1 -1
- package/dist/esm/core/agent/findings/reserved.d.ts +16 -0
- package/dist/esm/core/agent/findings/reserved.js +48 -0
- package/dist/esm/core/agent/findings/reserved.js.map +1 -1
- package/dist/esm/core/agent/nativeOutputFormat.d.ts +85 -0
- package/dist/esm/core/agent/nativeOutputFormat.js +384 -0
- package/dist/esm/core/agent/nativeOutputFormat.js.map +1 -0
- package/dist/esm/core/agent/outputEnforcement.d.ts +33 -1
- package/dist/esm/core/agent/outputEnforcement.js +33 -0
- package/dist/esm/core/agent/outputEnforcement.js.map +1 -1
- package/dist/esm/core/agent/stages/answerValidation.d.ts +1 -1
- package/dist/esm/core/agent/stages/answerValidation.js +14 -4
- package/dist/esm/core/agent/stages/answerValidation.js.map +1 -1
- package/dist/esm/core/agent/stages/callLLM.d.ts +9 -1
- package/dist/esm/core/agent/stages/callLLM.js +24 -0
- package/dist/esm/core/agent/stages/callLLM.js.map +1 -1
- package/dist/esm/core/agent/stages/outputRetry.js +1 -0
- package/dist/esm/core/agent/stages/outputRetry.js.map +1 -1
- package/dist/esm/core/agent/stages/route.js +34 -11
- package/dist/esm/core/agent/stages/route.js.map +1 -1
- package/dist/esm/core/agent/types.d.ts +19 -3
- package/dist/esm/core/outputSchema.d.ts +30 -3
- package/dist/esm/core/outputSchema.js.map +1 -1
- package/dist/esm/lib/time-travel/receipt.d.ts +11 -0
- package/dist/esm/lib/time-travel/receipt.js +8 -2
- package/dist/esm/lib/time-travel/receipt.js.map +1 -1
- package/dist/esm/providers.d.ts +1 -0
- package/dist/esm/providers.js +1 -0
- package/dist/esm/providers.js.map +1 -1
- package/dist/esm/resilience/withCircuitBreaker.js +7 -0
- package/dist/esm/resilience/withCircuitBreaker.js.map +1 -1
- package/dist/esm/resilience/withFallback.js +10 -0
- package/dist/esm/resilience/withFallback.js.map +1 -1
- package/dist/esm/resilience/withRetry.js +8 -0
- package/dist/esm/resilience/withRetry.js.map +1 -1
- package/dist/lib/time-travel/receipt.js +8 -2
- package/dist/lib/time-travel/receipt.js.map +1 -1
- package/dist/providers.js +4 -1
- package/dist/providers.js.map +1 -1
- package/dist/resilience/withCircuitBreaker.js +7 -0
- package/dist/resilience/withCircuitBreaker.js.map +1 -1
- package/dist/resilience/withFallback.js +10 -0
- package/dist/resilience/withFallback.js.map +1 -1
- package/dist/resilience/withRetry.js +8 -0
- package/dist/resilience/withRetry.js.map +1 -1
- package/dist/types/adapters/llm/AnthropicProvider.d.ts +3 -0
- package/dist/types/adapters/llm/AnthropicProvider.d.ts.map +1 -1
- package/dist/types/adapters/llm/BrowserAnthropicProvider.d.ts +3 -0
- package/dist/types/adapters/llm/BrowserAnthropicProvider.d.ts.map +1 -1
- package/dist/types/adapters/llm/MockProvider.d.ts +7 -0
- package/dist/types/adapters/llm/MockProvider.d.ts.map +1 -1
- package/dist/types/adapters/llm/anthropicMessagesWire.d.ts +13 -0
- package/dist/types/adapters/llm/anthropicMessagesWire.d.ts.map +1 -1
- package/dist/types/adapters/llm/anthropicModels.d.ts +36 -3
- package/dist/types/adapters/llm/anthropicModels.d.ts.map +1 -1
- package/dist/types/adapters/llm/wireManifest.d.ts +9 -1
- package/dist/types/adapters/llm/wireManifest.d.ts.map +1 -1
- package/dist/types/adapters/nativeOutputSchema.d.ts +67 -0
- package/dist/types/adapters/nativeOutputSchema.d.ts.map +1 -0
- package/dist/types/adapters/requestRefusal.d.ts.map +1 -1
- package/dist/types/adapters/types.d.ts +40 -0
- package/dist/types/adapters/types.d.ts.map +1 -1
- package/dist/types/core/Agent.d.ts +16 -0
- package/dist/types/core/Agent.d.ts.map +1 -1
- package/dist/types/core/agent/AgentBuilder.d.ts.map +1 -1
- package/dist/types/core/agent/buildDynamicAgentChart.d.ts.map +1 -1
- package/dist/types/core/agent/findings/reserved.d.ts +16 -0
- package/dist/types/core/agent/findings/reserved.d.ts.map +1 -1
- package/dist/types/core/agent/nativeOutputFormat.d.ts +86 -0
- package/dist/types/core/agent/nativeOutputFormat.d.ts.map +1 -0
- package/dist/types/core/agent/outputEnforcement.d.ts +33 -1
- package/dist/types/core/agent/outputEnforcement.d.ts.map +1 -1
- package/dist/types/core/agent/stages/answerValidation.d.ts +1 -1
- package/dist/types/core/agent/stages/answerValidation.d.ts.map +1 -1
- package/dist/types/core/agent/stages/callLLM.d.ts +9 -1
- package/dist/types/core/agent/stages/callLLM.d.ts.map +1 -1
- package/dist/types/core/agent/stages/outputRetry.d.ts.map +1 -1
- package/dist/types/core/agent/stages/route.d.ts.map +1 -1
- package/dist/types/core/agent/types.d.ts +19 -3
- package/dist/types/core/agent/types.d.ts.map +1 -1
- package/dist/types/core/outputSchema.d.ts +30 -3
- package/dist/types/core/outputSchema.d.ts.map +1 -1
- package/dist/types/lib/time-travel/receipt.d.ts +11 -0
- package/dist/types/lib/time-travel/receipt.d.ts.map +1 -1
- package/dist/types/providers.d.ts +1 -0
- package/dist/types/providers.d.ts.map +1 -1
- package/dist/types/resilience/withCircuitBreaker.d.ts.map +1 -1
- package/dist/types/resilience/withFallback.d.ts.map +1 -1
- package/dist/types/resilience/withRetry.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAkOH;;;;GAIG;AACU,QAAA,2BAA2B,GAAwB,MAAM,CAAC,MAAM,CAAC;IAC5E,MAAM;IACN,WAAW;CACZ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAkOH;;;;GAIG;AACU,QAAA,2BAA2B,GAAwB,MAAM,CAAC,MAAM,CAAC;IAC5E,MAAM;IACN,WAAW;CACZ,CAAC,CAAC;AA6rBH;;;;;;GAMG;AACH,SAAgB,cAAc,CAC5B,OAAsC,EACtC,UAAgC;IAEhC,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3B,IAAI,UAAU,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAC5C,OAAO,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;AACxD,CAAC;AAPD,wCAOC;AAqID;;;;;;;;;GASG;AACU,QAAA,iBAAiB,GAAG,kBAAkB,CAAC;AAgGpD;uDACuD;AACvD,SAAgB,kBAAkB,CAChC,OAAoB;IAEpB,OAAO,OAAO,OAAO,CAAC,WAAW,KAAK,UAAU,CAAC;AACnD,CAAC;AAJD,gDAIC"}
|
package/dist/core/Agent.js
CHANGED
|
@@ -46,6 +46,7 @@ const PolicyHaltError_js_1 = require("../security/PolicyHaltError.js");
|
|
|
46
46
|
const CacheGateDecider_js_1 = require("../cache/CacheGateDecider.js");
|
|
47
47
|
const cacheStrategyFor_js_1 = require("../cache/cacheStrategyFor.js");
|
|
48
48
|
const forcedToolChoice_js_1 = require("../adapters/forcedToolChoice.js");
|
|
49
|
+
const nativeOutputSchema_js_1 = require("../adapters/nativeOutputSchema.js");
|
|
49
50
|
const requestRefusal_js_1 = require("../adapters/requestRefusal.js");
|
|
50
51
|
const assistantReplay_js_1 = require("./agent/assistantReplay.js");
|
|
51
52
|
const skillBrains_js_1 = require("./agent/skillBrains.js");
|
|
@@ -1449,29 +1450,38 @@ class Agent extends RunnerBase_js_1.RunnerBase {
|
|
|
1449
1450
|
return (0, outputSchema_js_1.applyOutputSchema)(raw, parser);
|
|
1450
1451
|
}
|
|
1451
1452
|
catch (err) {
|
|
1452
|
-
|
|
1453
|
-
throw err;
|
|
1454
|
-
// Engage the 3-tier fallback. The dispatcher gives us the
|
|
1455
|
-
// typed-event entry; we synthesize a minimal event shape since
|
|
1456
|
-
// these events have no per-stage anchor.
|
|
1457
|
-
// Typed via `OutputFallbackEmit`, so the registry — not a grep — is what
|
|
1458
|
-
// decides these two names are real. The cast is now only the envelope
|
|
1459
|
-
// assembly (type + payload are already checked against the event map).
|
|
1460
|
-
const emit = (eventType, payload) => {
|
|
1461
|
-
try {
|
|
1462
|
-
this.dispatcher.dispatch({
|
|
1463
|
-
type: eventType,
|
|
1464
|
-
timestamp: Date.now(),
|
|
1465
|
-
payload,
|
|
1466
|
-
});
|
|
1467
|
-
}
|
|
1468
|
-
catch {
|
|
1469
|
-
/* observability errors must not poison the fallback path */
|
|
1470
|
-
}
|
|
1471
|
-
};
|
|
1472
|
-
return (0, outputFallback_js_1.applyOutputFallback)(raw, parser, this.outputFallbackCfg, emit, err, this.lastRunRetriesSpent());
|
|
1453
|
+
return this.settleTypedFailure(raw, err);
|
|
1473
1454
|
}
|
|
1474
1455
|
}
|
|
1456
|
+
/**
|
|
1457
|
+
* A typed answer that failed: rethrow, or — with `.outputFallback()` and an
|
|
1458
|
+
* `OutputSchemaError` — hand it to the 3-tier fallback. The one settle for
|
|
1459
|
+
* `parseOutputAsync`'s parse failure and `runTyped`'s native stop failure.
|
|
1460
|
+
*/
|
|
1461
|
+
async settleTypedFailure(raw, err) {
|
|
1462
|
+
const parser = this.outputSchemaParser;
|
|
1463
|
+
if (!this.outputFallbackCfg || !(err instanceof outputSchema_js_1.OutputSchemaError))
|
|
1464
|
+
throw err;
|
|
1465
|
+
// Engage the 3-tier fallback. The dispatcher gives us the
|
|
1466
|
+
// typed-event entry; we synthesize a minimal event shape since
|
|
1467
|
+
// these events have no per-stage anchor.
|
|
1468
|
+
// Typed via `OutputFallbackEmit`, so the registry — not a grep — is what
|
|
1469
|
+
// decides these two names are real. The cast is now only the envelope
|
|
1470
|
+
// assembly (type + payload are already checked against the event map).
|
|
1471
|
+
const emit = (eventType, payload) => {
|
|
1472
|
+
try {
|
|
1473
|
+
this.dispatcher.dispatch({
|
|
1474
|
+
type: eventType,
|
|
1475
|
+
timestamp: Date.now(),
|
|
1476
|
+
payload,
|
|
1477
|
+
});
|
|
1478
|
+
}
|
|
1479
|
+
catch {
|
|
1480
|
+
/* observability errors must not poison the fallback path */
|
|
1481
|
+
}
|
|
1482
|
+
};
|
|
1483
|
+
return (0, outputFallback_js_1.applyOutputFallback)(raw, parser, this.outputFallbackCfg, emit, err, this.lastRunRetriesSpent());
|
|
1484
|
+
}
|
|
1475
1485
|
/**
|
|
1476
1486
|
* Corrective re-asks the agent's LAST run paid for, read off its own ledger.
|
|
1477
1487
|
*
|
|
@@ -1510,6 +1520,15 @@ class Agent extends RunnerBase_js_1.RunnerBase {
|
|
|
1510
1520
|
throw new Error('Agent.runTyped: run paused — typed mode does not support pauses. ' +
|
|
1511
1521
|
'Use agent.run() + agent.parseOutput(...) after resume.');
|
|
1512
1522
|
}
|
|
1523
|
+
// `strategy: 'native'`: an answer whose last attempt failed on a refusal
|
|
1524
|
+
// or truncation stop is refused here even when its text parses — the
|
|
1525
|
+
// format did not hold for it (outputEnforcement.ts · nativeStopFailure).
|
|
1526
|
+
// FIRST, before any delivery path. It takes the same path a parse failure
|
|
1527
|
+
// takes, `.outputFallback()` included.
|
|
1528
|
+
const stopped = this.outputEnforcement?.outputFormat !== undefined ? this.outputContractUnmet() : undefined;
|
|
1529
|
+
if (stopped?.stopReason !== undefined) {
|
|
1530
|
+
return this.settleTypedFailure(out, new outputSchema_js_1.OutputSchemaError(stopped.error, { rawOutput: out, stage: stopped.stage }));
|
|
1531
|
+
}
|
|
1513
1532
|
if (this.answerValidationConfig !== undefined) {
|
|
1514
1533
|
// The validator judged the schema's JSON output. Do not run a transforming
|
|
1515
1534
|
// or stateful parser again and hand back a value the validator never saw.
|
|
@@ -3017,9 +3036,38 @@ class Agent extends RunnerBase_js_1.RunnerBase {
|
|
|
3017
3036
|
`{ strategy: 'instruct', retries: N } on this provider — it works on every wire — or ` +
|
|
3018
3037
|
`run the forced strategy on a provider that declares the capability.`);
|
|
3019
3038
|
}
|
|
3039
|
+
/**
|
|
3040
|
+
* Refuse, at run start, a `'native'` output strategy on a provider that
|
|
3041
|
+
* does not put a structured-output format on its wire, or on a model that
|
|
3042
|
+
* does not take one — the `assertForcedToolChoiceSupported` twin, for the
|
|
3043
|
+
* same reasons: run start because a decorated provider is only what it is
|
|
3044
|
+
* once composed; a refusal because `'instruct'` asks in prose for what this
|
|
3045
|
+
* strategy constrains at decoding, and a quiet swap would be config that
|
|
3046
|
+
* lies.
|
|
3047
|
+
*/
|
|
3048
|
+
assertNativeOutputSchemaSupported() {
|
|
3049
|
+
if (this.outputEnforcement?.outputFormat === undefined)
|
|
3050
|
+
return;
|
|
3051
|
+
const first = this.reliabilityConfig?.providers?.[0];
|
|
3052
|
+
const provider = first?.provider ?? this.provider;
|
|
3053
|
+
const model = first?.model ?? this.model;
|
|
3054
|
+
if (provider.carriesNativeOutputSchema === true) {
|
|
3055
|
+
// A configured agent resolves its model at seed; callLLM judges it there.
|
|
3056
|
+
if ((first === undefined && this.runConfigFn !== undefined) ||
|
|
3057
|
+
(0, nativeOutputSchema_js_1.nativeOutputSchemaFor)(provider, model))
|
|
3058
|
+
return;
|
|
3059
|
+
throw new nativeOutputSchema_js_1.UnsupportedNativeOutputError({ provider: provider.name, model });
|
|
3060
|
+
}
|
|
3061
|
+
throw new Error(`Agent: .outputSchema(parser, { strategy: 'native' }) needs a provider that puts a ` +
|
|
3062
|
+
`structured-output format on its wire, and '${provider.name}' does not declare one. ` +
|
|
3063
|
+
`anthropic(), browserAnthropic() and the mock do; the Bedrock and gateway adapters do ` +
|
|
3064
|
+
`not in this release. Use { strategy: 'instruct', retries: N } on this provider — it ` +
|
|
3065
|
+
`works on every wire — or run the native strategy on a provider that declares it.`);
|
|
3066
|
+
}
|
|
3020
3067
|
createExecutor(runOptions) {
|
|
3021
3068
|
this.assertDeliverableRoles();
|
|
3022
3069
|
this.assertForcedToolChoiceSupported();
|
|
3070
|
+
this.assertNativeOutputSchemaSupported();
|
|
3023
3071
|
const correlationId = runOptions?.correlationId;
|
|
3024
3072
|
const traceId = runOptions?.traceId ?? runOptions?.env?.traceId;
|
|
3025
3073
|
const sessionId = runOptions?.sessionId;
|
|
@@ -4646,6 +4694,10 @@ class Agent extends RunnerBase_js_1.RunnerBase {
|
|
|
4646
4694
|
...(this.outputEnforcement?.schemaTool !== undefined && {
|
|
4647
4695
|
schemaTool: this.outputEnforcement.schemaTool,
|
|
4648
4696
|
}),
|
|
4697
|
+
// The structured-output format, under `strategy: 'native'` only.
|
|
4698
|
+
...(this.outputEnforcement?.outputFormat !== undefined && {
|
|
4699
|
+
outputFormat: this.outputEnforcement.outputFormat,
|
|
4700
|
+
}),
|
|
4649
4701
|
...(this.thinkingBudget !== undefined && { thinkingBudget: this.thinkingBudget }),
|
|
4650
4702
|
// Only a configured agent reads `scope.resolvedModel` — see the dep's
|
|
4651
4703
|
// JSDoc for why this is a build-time flag and not a runtime fallback.
|
|
@@ -4777,7 +4829,7 @@ class Agent extends RunnerBase_js_1.RunnerBase {
|
|
|
4777
4829
|
answerArmed ? true : undefined);
|
|
4778
4830
|
const routeDecider = this.answerValidationConfig === undefined
|
|
4779
4831
|
? baseRouteDecider
|
|
4780
|
-
: (0, answerValidation_js_1.withAnswerValidation)(baseRouteDecider, this.answerValidationConfig, this.outputSchemaParser, artifactStore, () => this.consentOutstanding.size > 0);
|
|
4832
|
+
: (0, answerValidation_js_1.withAnswerValidation)(baseRouteDecider, this.answerValidationConfig, this.outputSchemaParser, artifactStore, () => this.consentOutstanding.size > 0, this.outputEnforcement?.outputFormat !== undefined);
|
|
4781
4833
|
// `.limitsTravelWithTheAnswer()` on a TYPED answer — decided once, here.
|
|
4782
4834
|
// An output schema makes the answer JSON, and the appended block would
|
|
4783
4835
|
// make it JSON followed by prose, which `runTyped()` cannot parse. So the
|