@rarebit-one/harness-kernel 0.10.0 → 0.11.0-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +160 -6
- package/dist/agent.d.ts +117 -8
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +332 -25
- package/dist/agent.js.map +1 -1
- package/dist/engines/native.d.ts +5 -0
- package/dist/engines/native.d.ts.map +1 -1
- package/dist/engines/native.js +30 -10
- package/dist/engines/native.js.map +1 -1
- package/dist/engines/types.d.ts +31 -1
- package/dist/engines/types.d.ts.map +1 -1
- package/dist/events.d.ts +30 -2
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js.map +1 -1
- package/dist/index.d.ts +18 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -4
- package/dist/index.js.map +1 -1
- package/dist/loop.d.ts +60 -11
- package/dist/loop.d.ts.map +1 -1
- package/dist/loop.js +7 -5
- package/dist/loop.js.map +1 -1
- package/dist/models/chat.d.ts +2 -1
- package/dist/models/chat.d.ts.map +1 -1
- package/dist/models/chat.js +20 -4
- package/dist/models/chat.js.map +1 -1
- package/dist/models/types.d.ts +16 -0
- package/dist/models/types.d.ts.map +1 -1
- package/dist/models/types.js.map +1 -1
- package/dist/private.d.ts.map +1 -1
- package/dist/private.js +29 -1
- package/dist/private.js.map +1 -1
- package/dist/providers/anthropic.d.ts +30 -4
- package/dist/providers/anthropic.d.ts.map +1 -1
- package/dist/providers/anthropic.js +130 -29
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/index.d.ts +42 -6
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +132 -48
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/mock.d.ts +6 -3
- package/dist/providers/mock.d.ts.map +1 -1
- package/dist/providers/mock.js +9 -4
- package/dist/providers/mock.js.map +1 -1
- package/dist/providers/openai.d.ts +54 -8
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +164 -32
- package/dist/providers/openai.js.map +1 -1
- package/dist/providers/options.d.ts +177 -0
- package/dist/providers/options.d.ts.map +1 -0
- package/dist/providers/options.js +67 -0
- package/dist/providers/options.js.map +1 -0
- package/dist/providers/scripted.d.ts +49 -0
- package/dist/providers/scripted.d.ts.map +1 -0
- package/dist/providers/scripted.js +90 -0
- package/dist/providers/scripted.js.map +1 -0
- package/dist/providers/types.d.ts +60 -0
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/tools/metadata.d.ts +24 -0
- package/dist/tools/metadata.d.ts.map +1 -1
- package/dist/tools/metadata.js +8 -0
- package/dist/tools/metadata.js.map +1 -1
- package/dist/tools/registry.d.ts +10 -3
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +9 -4
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/terminal.d.ts +33 -0
- package/dist/tools/terminal.d.ts.map +1 -0
- package/dist/tools/terminal.js +32 -0
- package/dist/tools/terminal.js.map +1 -0
- package/package.json +4 -3
package/dist/models/chat.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ProviderOptions } from "../providers/options.js";
|
|
1
2
|
import type { AgentMessage, ConverseRequest, ConverseResult, Provider, ToolSpec } from "../providers/types.js";
|
|
2
3
|
import { type ModelCaps, type ModelInvocation } from "./types.js";
|
|
3
4
|
/**
|
|
@@ -65,5 +66,5 @@ export declare function isChatModel(value: Provider | ChatModel): value is ChatM
|
|
|
65
66
|
/** Accept either a `Provider` or a `ChatModel` and always yield a `ChatModel`. */
|
|
66
67
|
export declare function asChatModel(value: Provider | ChatModel): ChatModel;
|
|
67
68
|
/** Build a `chat` request from the loop's working state. */
|
|
68
|
-
export declare function chatRequest(system: string, messages: AgentMessage[], tools: ToolSpec[], parts?: ChatPart[]): ChatRequest;
|
|
69
|
+
export declare function chatRequest(system: string, messages: AgentMessage[], tools: ToolSpec[], parts?: ChatPart[], providerOptions?: ProviderOptions): ChatRequest;
|
|
69
70
|
//# sourceMappingURL=chat.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/models/chat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EACf,cAAc,EACd,QAAQ,EACR,QAAQ,EACT,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,eAAe,EAErB,MAAM,YAAY,CAAA;AAEnB;;;GAGG;AACH,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAA;AAEpD;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAChB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,CAAA;AAEzC;;;;GAIG;AACH,MAAM,WAAW,WAAY,SAAQ,eAAe;IAClD,6EAA6E;IAC7E,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAA;CACnB;AAED,+EAA+E;AAC/E,MAAM,MAAM,YAAY,GAAG,cAAc,CAAA;AAEzC,yCAAyC;AACzC,MAAM,MAAM,SAAS,GAAG,eAAe,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;AAElE,wDAAwD;AACxD,eAAO,MAAM,SAAS,SAAS,CAAA;AAE/B;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,GAAE,OAAO,CAAC,SAAS,CAAM,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/models/chat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EACf,cAAc,EACd,QAAQ,EACR,QAAQ,EACT,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,eAAe,EAErB,MAAM,YAAY,CAAA;AAEnB;;;GAGG;AACH,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAA;AAEpD;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAChB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,CAAA;AAEzC;;;;GAIG;AACH,MAAM,WAAW,WAAY,SAAQ,eAAe;IAClD,6EAA6E;IAC7E,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAA;CACnB;AAED,+EAA+E;AAC/E,MAAM,MAAM,YAAY,GAAG,cAAc,CAAA;AAEzC,yCAAyC;AACzC,MAAM,MAAM,SAAS,GAAG,eAAe,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;AAElE,wDAAwD;AACxD,eAAO,MAAM,SAAS,SAAS,CAAA;AAE/B;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,GAAE,OAAO,CAAC,SAAS,CAAM,GAAG,SAAS,CA6DtF;AAED,qFAAqF;AACrF,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,GAAG,KAAK,IAAI,SAAS,CAE3E;AAED,kFAAkF;AAClF,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,CAElE;AAED,4DAA4D;AAC5D,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,YAAY,EAAE,EACxB,KAAK,EAAE,QAAQ,EAAE,EACjB,KAAK,CAAC,EAAE,QAAQ,EAAE,EAClB,eAAe,CAAC,EAAE,eAAe,GAChC,WAAW,CAQb"}
|
package/dist/models/chat.js
CHANGED
|
@@ -37,13 +37,23 @@ export function chatModel(provider, caps = {}) {
|
|
|
37
37
|
requireCapability({ id: provider.name, kind: CHAT_KIND, caps: resolved }, "tools", "request carries tool definitions");
|
|
38
38
|
}
|
|
39
39
|
ctx.signal?.throwIfAborted();
|
|
40
|
-
const converseReq = {
|
|
40
|
+
const converseReq = {
|
|
41
|
+
system: req.system,
|
|
42
|
+
messages: req.messages,
|
|
43
|
+
tools: req.tools,
|
|
44
|
+
...(req.providerOptions ? { providerOptions: req.providerOptions } : {}),
|
|
45
|
+
};
|
|
41
46
|
// The signal rides through to the provider's HTTP call, so an abort stops
|
|
42
47
|
// the request in flight rather than after it returns. Passed only when
|
|
43
48
|
// present so a provider with a one-argument `converse` sees no change.
|
|
44
|
-
const
|
|
49
|
+
const answered = ctx.signal
|
|
45
50
|
? await provider.converse(converseReq, { signal: ctx.signal })
|
|
46
51
|
: await provider.converse(converseReq);
|
|
52
|
+
// The effective model: what the response named, else what the adapter
|
|
53
|
+
// was configured with. A custom provider that declares neither reports
|
|
54
|
+
// none, which is honest rather than invented.
|
|
55
|
+
const model = answered.model ?? provider.model;
|
|
56
|
+
const value = model !== undefined ? { ...answered, model } : answered;
|
|
47
57
|
return { value, ...(value.usage ? { usage: value.usage } : {}) };
|
|
48
58
|
},
|
|
49
59
|
// The `Provider` interface exposes no health endpoint, so report the honest
|
|
@@ -66,7 +76,13 @@ export function asChatModel(value) {
|
|
|
66
76
|
return isChatModel(value) ? value : chatModel(value);
|
|
67
77
|
}
|
|
68
78
|
/** Build a `chat` request from the loop's working state. */
|
|
69
|
-
export function chatRequest(system, messages, tools, parts) {
|
|
70
|
-
return {
|
|
79
|
+
export function chatRequest(system, messages, tools, parts, providerOptions) {
|
|
80
|
+
return {
|
|
81
|
+
system,
|
|
82
|
+
messages,
|
|
83
|
+
tools,
|
|
84
|
+
...(parts?.length ? { parts } : {}),
|
|
85
|
+
...(providerOptions ? { providerOptions } : {}),
|
|
86
|
+
};
|
|
71
87
|
}
|
|
72
88
|
//# sourceMappingURL=chat.js.map
|
package/dist/models/chat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/models/chat.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/models/chat.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,iBAAiB,GAMlB,MAAM,YAAY,CAAA;AAoCnB,wDAAwD;AACxD,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAA;AAE/B;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,SAAS,CAAC,QAAkB,EAAE,OAA2B,EAAE;IACzE,MAAM,QAAQ,GAAc;QAC1B,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,IAAI;QACX,eAAe,EAAE,KAAK;QACtB,KAAK,EAAE,QAAQ,CAAC,YAAY,KAAK,IAAI;QACrC,GAAG,IAAI;KACR,CAAA;IAED,OAAO;QACL,EAAE,EAAE,QAAQ,CAAC,IAAI;QACjB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,QAAQ;QAEd,KAAK,CAAC,MAAM,CAAC,GAAgB,EAAE,GAAkB;YAC/C,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;gBACtB,iBAAiB,CACf,EAAE,EAAE,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,EACtD,iBAAiB,EACjB,uBAAuB,CACxB,CAAA;YACH,CAAC;YACD,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,iBAAiB,CACf,EAAE,EAAE,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,EACtD,OAAO,EACP,kCAAkC,CACnC,CAAA;YACH,CAAC;YACD,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,CAAA;YAE5B,MAAM,WAAW,GAAoB;gBACnC,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACzE,CAAA;YACD,0EAA0E;YAC1E,uEAAuE;YACvE,uEAAuE;YACvE,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM;gBACzB,CAAC,CAAC,MAAM,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;gBAC9D,CAAC,CAAC,MAAM,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;YACxC,sEAAsE;YACtE,uEAAuE;YACvE,8CAA8C;YAC9C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAA;YAC9C,MAAM,KAAK,GAAiB,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAA;YACnF,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA;QAClE,CAAC;QAED,4EAA4E;QAC5E,4EAA4E;QAC5E,8CAA8C;QAC9C,KAAK;YACH,OAAO,OAAO,CAAC,OAAO,CAAC;gBACrB,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,YAAY,QAAQ,CAAC,IAAI,6BAA6B;aAC/D,CAAC,CAAA;QACJ,CAAC;KACF,CAAA;AACH,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,WAAW,CAAC,KAA2B;IACrD,OAAO,QAAQ,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,CAAA;AAChE,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,WAAW,CAAC,KAA2B;IACrD,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;AACtD,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,WAAW,CACzB,MAAc,EACd,QAAwB,EACxB,KAAiB,EACjB,KAAkB,EAClB,eAAiC;IAEjC,OAAO;QACL,MAAM;QACN,QAAQ;QACR,KAAK;QACL,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChD,CAAA;AACH,CAAC"}
|
package/dist/models/types.d.ts
CHANGED
|
@@ -53,6 +53,22 @@ export interface TokenUsage {
|
|
|
53
53
|
cacheReadTokens?: number;
|
|
54
54
|
/** Input tokens written to a prompt cache — a subset of `inputTokens`. */
|
|
55
55
|
cacheWriteTokens?: number;
|
|
56
|
+
/** Output tokens spent on reasoning — a subset of `outputTokens`, when the provider breaks it out. */
|
|
57
|
+
reasoningTokens?: number;
|
|
58
|
+
/**
|
|
59
|
+
* What the provider or gateway itself billed for the call, when it reports
|
|
60
|
+
* one (OpenRouter `usage.cost`, in US dollars). Absent when the provider does
|
|
61
|
+
* not price the call in its response; a consumer enforcing a cost cap treats
|
|
62
|
+
* absent as "unknown", never as free. Summed across a run by amount; every
|
|
63
|
+
* reporter today bills in USD, and a second currency would be a new value
|
|
64
|
+
* here rather than a silent mix.
|
|
65
|
+
*/
|
|
66
|
+
reportedCost?: ReportedCost;
|
|
67
|
+
}
|
|
68
|
+
/** A cost the provider reported, with its currency named so it is never a bare number. */
|
|
69
|
+
export interface ReportedCost {
|
|
70
|
+
amount: number;
|
|
71
|
+
currency: "USD";
|
|
56
72
|
}
|
|
57
73
|
/**
|
|
58
74
|
* Accounting for kinds that aren't billed per token — frames processed, seconds
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/models/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;;GAIG;AACH,MAAM,MAAM,SAAS,GACnB,MAAM,GAAG,eAAe,GAAG,WAAW,GAAG,qBAAqB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;AAEhF;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,uDAAuD;IACvD,SAAS,EAAE,OAAO,CAAA;IAClB,kFAAkF;IAClF,KAAK,EAAE,OAAO,CAAA;IACd,sDAAsD;IACtD,eAAe,EAAE,OAAO,CAAA;IACxB,yCAAyC;IACzC,KAAK,EAAE,OAAO,CAAA;CACf;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,UAAU;IACzB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,yEAAyE;IACzE,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,0EAA0E;IAC1E,gBAAgB,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/models/types.ts"],"names":[],"mappings":"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"}
|
package/dist/models/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/models/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/models/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AA8HH;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAgB,EAChB,UAAkB,EAClB,QAAgB,EAChB,IAAY;IAEZ,IAAI,CAAC,eAAe,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IAC5C,IAAI,CAAC,eAAe,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;IACxC,IAAI,CAAC,kBAAkB,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;AACvD,CAAC;AA0BD,wDAAwD;AACxD,MAAM,UAAU,aAAa,CAAC,KAAsC;IAClE,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAA;AAC7D,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAC/B,KAAK,CAAe;IACpB,UAAU,CAAiB;IAEpC,YAAY,KAAoB,EAAE,UAA2B,EAAE,MAAe;QAC5E,KAAK,CACH,SAAS,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,qBAAqB,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAChG,CAAA;QACD,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAA;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;CACF;AAED,+EAA+E;AAC/E,MAAM,UAAU,iBAAiB,CAC/B,KAAoB,EACpB,UAA2B,EAC3B,MAAe;IAEf,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,MAAM,IAAI,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,CAAA;AACnF,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAAgC,EAChC,GAAQ,EACR,IAAgB,EAChB,GAAkB;IAElB,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;IACrC,iBAAiB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;IACxC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QACxB,MAAM,IAAI,eAAe,CAAC,QAAQ,EAAE,WAAW,EAAE,4CAA4C,CAAC,CAAA;IAChG,CAAC;IACD,OAAO,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;AAC3C,CAAC"}
|
package/dist/private.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"private.d.ts","sourceRoot":"","sources":["../src/private.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,KAAK,EAAY,YAAY,
|
|
1
|
+
{"version":3,"file":"private.d.ts","sourceRoot":"","sources":["../src/private.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,KAAK,EAAY,YAAY,EAAc,MAAM,aAAa,CAAA;AAIrE,yDAAyD;AACzD,eAAO,MAAM,iBAAiB,eAAe,CAAA;AAK7C;;;;;GAKG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IACxC,oEAAoE;IACpE,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAA;gBAEpB,KAAK,EAAE,OAAO,GAAG,MAAM;CAKpC;AAED,iDAAiD;AACjD,MAAM,WAAW,kBAAkB;IACjC,wEAAwE;IACxE,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3B;;;;OAIG;IACH,IAAI,EAAE,YAAY,CAAA;CACnB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAC3B,IAAI,CAAC,EAAE,YAAY,GAClB,kBAAkB,CAyHpB;AAsGD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,GACtC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAM3C"}
|
package/dist/private.js
CHANGED
|
@@ -99,6 +99,10 @@ export function privateRunChannels(log, sink) {
|
|
|
99
99
|
text: "",
|
|
100
100
|
toolCalls: event.toolCalls.map((c) => ({ id: callId(c.id), name: toolName(c.name) })),
|
|
101
101
|
...(usage ? { usage } : {}),
|
|
102
|
+
// The served model id and upstream are configuration echoed back, not material.
|
|
103
|
+
...(typeof event.model === "string" ? { model: event.model } : {}),
|
|
104
|
+
...(typeof event.upstream === "string" ? { upstream: event.upstream } : {}),
|
|
105
|
+
...(isFinishReason(event.finishReason) ? { finishReason: event.finishReason } : {}),
|
|
102
106
|
};
|
|
103
107
|
}
|
|
104
108
|
case "model.turn.failed":
|
|
@@ -153,6 +157,7 @@ export function privateRunChannels(log, sink) {
|
|
|
153
157
|
...base(event),
|
|
154
158
|
type: event.type,
|
|
155
159
|
outcome: oneOf(event.outcome, OUTCOMES, "failed"),
|
|
160
|
+
...(isStopReason(event.stopReason) ? { stopReason: event.stopReason } : {}),
|
|
156
161
|
...(event.steps !== undefined ? { steps: event.steps } : {}),
|
|
157
162
|
...(event.error !== undefined ? { error: PRIVATE_REDACTION } : {}),
|
|
158
163
|
};
|
|
@@ -167,9 +172,27 @@ export function privateRunChannels(log, sink) {
|
|
|
167
172
|
},
|
|
168
173
|
};
|
|
169
174
|
}
|
|
170
|
-
const FAILURE_REASONS = ["threw", "unknown_tool", "aborted"];
|
|
175
|
+
const FAILURE_REASONS = ["threw", "unknown_tool", "aborted", "truncated"];
|
|
176
|
+
const FINISH_REASONS = ["stop", "tool_calls", "length", "content_filter", "unknown"];
|
|
177
|
+
/** A known finish reason; anything else is dropped. */
|
|
178
|
+
function isFinishReason(value) {
|
|
179
|
+
return typeof value === "string" && FINISH_REASONS.includes(value);
|
|
180
|
+
}
|
|
171
181
|
const BUDGET_KINDS = ["steps", "duration"];
|
|
172
182
|
const OUTCOMES = ["completed", "steps_exhausted", "timed_out", "canceled", "failed"];
|
|
183
|
+
const STOP_REASONS = [
|
|
184
|
+
"end_turn",
|
|
185
|
+
"terminal_tool",
|
|
186
|
+
"length",
|
|
187
|
+
"steps_exhausted",
|
|
188
|
+
"timed_out",
|
|
189
|
+
"canceled",
|
|
190
|
+
"failed",
|
|
191
|
+
];
|
|
192
|
+
/** A known stop reason; anything else (a custom loop's own word) is dropped. */
|
|
193
|
+
function isStopReason(value) {
|
|
194
|
+
return typeof value === "string" && STOP_REASONS.includes(value);
|
|
195
|
+
}
|
|
173
196
|
/** `value` when it is one of `allowed`, else `fallback`. */
|
|
174
197
|
function oneOf(value, allowed, fallback) {
|
|
175
198
|
return allowed.includes(value) ? value : fallback;
|
|
@@ -187,11 +210,16 @@ function redactUsage(usage) {
|
|
|
187
210
|
"totalTokens",
|
|
188
211
|
"cacheReadTokens",
|
|
189
212
|
"cacheWriteTokens",
|
|
213
|
+
"reasoningTokens",
|
|
190
214
|
]) {
|
|
191
215
|
const n = usage[key];
|
|
192
216
|
if (typeof n === "number")
|
|
193
217
|
out[key] = n;
|
|
194
218
|
}
|
|
219
|
+
// A cost is a number with a fixed-vocabulary currency: structural, not material.
|
|
220
|
+
if (usage.reportedCost && typeof usage.reportedCost.amount === "number") {
|
|
221
|
+
out.reportedCost = { amount: usage.reportedCost.amount, currency: "USD" };
|
|
222
|
+
}
|
|
195
223
|
return out;
|
|
196
224
|
}
|
|
197
225
|
/**
|
package/dist/private.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"private.js","sourceRoot":"","sources":["../src/private.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;
|
|
1
|
+
{"version":3,"file":"private.js","sourceRoot":"","sources":["../src/private.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,26 @@
|
|
|
1
1
|
import Anthropic from "@anthropic-ai/sdk";
|
|
2
2
|
import type { TokenUsage } from "../models/types.js";
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
import { type CacheTtl } from "./options.js";
|
|
4
|
+
import type { AgentMessage, CompletionRequest, ConverseOptions, ConverseRequest, ConverseResult, FinishReason, Provider } from "./types.js";
|
|
5
|
+
/** Where to put message breakpoints: how many trailing messages, and the lifetime. */
|
|
6
|
+
export interface AnthropicMessageCache {
|
|
7
|
+
trailingMessages: number;
|
|
8
|
+
ttl?: CacheTtl;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Map provider-neutral messages to Anthropic's message params (pure; tested).
|
|
12
|
+
*
|
|
13
|
+
* With `cache` set, the last content block of each of the trailing N messages
|
|
14
|
+
* carries a `cache_control` breakpoint, so the whole prefix up to and including
|
|
15
|
+
* that message is served from cache on the next call. Messages outside the
|
|
16
|
+
* trailing window keep the compact string form a plain user turn had before
|
|
17
|
+
* caching existed.
|
|
18
|
+
*/
|
|
19
|
+
export declare function toAnthropicMessages(messages: AgentMessage[], cache?: AnthropicMessageCache): Anthropic.MessageParam[];
|
|
6
20
|
/** Reduce an Anthropic response's content blocks to text + tool calls (pure; tested). */
|
|
7
21
|
export declare function parseAnthropicContent(content: Anthropic.ContentBlock[]): ConverseResult;
|
|
22
|
+
/** Map Anthropic's `stop_reason` onto the neutral vocabulary (pure; tested). */
|
|
23
|
+
export declare function anthropicFinishReason(stopReason: Anthropic.StopReason | null | undefined): FinishReason;
|
|
8
24
|
/**
|
|
9
25
|
* Map an Anthropic `usage` block to the kernel's token accounting (pure; tested).
|
|
10
26
|
*
|
|
@@ -13,11 +29,21 @@ export declare function parseAnthropicContent(content: Anthropic.ContentBlock[])
|
|
|
13
29
|
* is what `inputTokens` carries, with the cache split out alongside.
|
|
14
30
|
*/
|
|
15
31
|
export declare function anthropicUsage(usage: Pick<Anthropic.Usage, "input_tokens" | "output_tokens" | "cache_read_input_tokens" | "cache_creation_input_tokens"> | Pick<Anthropic.Usage, "input_tokens" | "output_tokens"> | null | undefined): TokenUsage | undefined;
|
|
32
|
+
/**
|
|
33
|
+
* Build the Messages API request for one conversation step (pure; tested).
|
|
34
|
+
*
|
|
35
|
+
* Prompt caching places up to four breakpoints: the system prompt (sent as one
|
|
36
|
+
* text block so it can carry one), the last tool definition, and the trailing
|
|
37
|
+
* messages. A `responseFormat` or an `openrouter` block is rejected here: the
|
|
38
|
+
* Messages API has neither, and honouring a structured answer means a terminal
|
|
39
|
+
* tool with a schema, not a request flag.
|
|
40
|
+
*/
|
|
41
|
+
export declare function anthropicRequestBody(model: string, req: ConverseRequest, fallbackMaxTokens?: number): Anthropic.MessageCreateParamsNonStreaming;
|
|
16
42
|
export declare class AnthropicProvider implements Provider {
|
|
17
43
|
readonly name = "anthropic";
|
|
18
44
|
readonly reportsUsage = true;
|
|
45
|
+
readonly model: string;
|
|
19
46
|
private client;
|
|
20
|
-
private model;
|
|
21
47
|
constructor(apiKey: string, model?: string);
|
|
22
48
|
complete(req: CompletionRequest): Promise<string>;
|
|
23
49
|
converse(req: ConverseRequest, opts?: ConverseOptions): Promise<ConverseResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAA;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAEpD,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,cAAc,EACd,QAAQ,EAET,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAA;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAEpD,OAAO,EAKL,KAAK,QAAQ,EAGd,MAAM,cAAc,CAAA;AACrB,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,cAAc,EACd,YAAY,EACZ,QAAQ,EAET,MAAM,YAAY,CAAA;AAOnB,sFAAsF;AACtF,MAAM,WAAW,qBAAqB;IACpC,gBAAgB,EAAE,MAAM,CAAA;IACxB,GAAG,CAAC,EAAE,QAAQ,CAAA;CACf;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,YAAY,EAAE,EACxB,KAAK,CAAC,EAAE,qBAAqB,GAC5B,SAAS,CAAC,YAAY,EAAE,CA8B1B;AAWD,yFAAyF;AACzF,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,SAAS,CAAC,YAAY,EAAE,GAAG,cAAc,CAevF;AAED,gFAAgF;AAChF,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,SAAS,CAAC,UAAU,GAAG,IAAI,GAAG,SAAS,GAClD,YAAY,CAgBd;AAUD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EACD,IAAI,CACF,SAAS,CAAC,KAAK,EACf,cAAc,GAAG,eAAe,GAAG,yBAAyB,GAAG,6BAA6B,CAC7F,GACD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,eAAe,CAAC,GACvD,IAAI,GACJ,SAAS,GACZ,UAAU,GAAG,SAAS,CAcxB;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,eAAe,EACpB,iBAAiB,GAAE,MAAoB,GACtC,SAAS,CAAC,+BAA+B,CA0C3C;AAED,qBAAa,iBAAkB,YAAW,QAAQ;IAChD,QAAQ,CAAC,IAAI,eAAc;IAC3B,QAAQ,CAAC,YAAY,QAAO;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,OAAO,CAAC,MAAM,CAAW;gBAEb,MAAM,EAAE,MAAM,EAAE,KAAK,SAAqD;IAYhF,QAAQ,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAcjD,QAAQ,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;CAkBtF"}
|
|
@@ -1,10 +1,30 @@
|
|
|
1
1
|
import Anthropic from "@anthropic-ai/sdk";
|
|
2
2
|
import { maxTokens, providerMaxRetries, providerTimeoutMs } from "./clientOptions.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
import { rejectOption, resolveMaxRetries, resolveMaxTokens, resolvePromptCache, } from "./options.js";
|
|
4
|
+
/** The breakpoint marker placed on a block, with the requested lifetime. */
|
|
5
|
+
function cacheControl(ttl) {
|
|
6
|
+
return { type: "ephemeral", ...(ttl !== undefined ? { ttl } : {}) };
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Map provider-neutral messages to Anthropic's message params (pure; tested).
|
|
10
|
+
*
|
|
11
|
+
* With `cache` set, the last content block of each of the trailing N messages
|
|
12
|
+
* carries a `cache_control` breakpoint, so the whole prefix up to and including
|
|
13
|
+
* that message is served from cache on the next call. Messages outside the
|
|
14
|
+
* trailing window keep the compact string form a plain user turn had before
|
|
15
|
+
* caching existed.
|
|
16
|
+
*/
|
|
17
|
+
export function toAnthropicMessages(messages, cache) {
|
|
18
|
+
const firstCached = cache ? Math.max(0, messages.length - cache.trailingMessages) : Infinity;
|
|
19
|
+
return messages.map((m, index) => {
|
|
20
|
+
const mark = cache !== undefined && index >= firstCached;
|
|
6
21
|
if (m.role === "user") {
|
|
7
|
-
|
|
22
|
+
if (!mark)
|
|
23
|
+
return { role: "user", content: m.text };
|
|
24
|
+
return {
|
|
25
|
+
role: "user",
|
|
26
|
+
content: [{ type: "text", text: m.text, cache_control: cacheControl(cache.ttl) }],
|
|
27
|
+
};
|
|
8
28
|
}
|
|
9
29
|
if (m.role === "assistant") {
|
|
10
30
|
const blocks = [];
|
|
@@ -13,20 +33,28 @@ export function toAnthropicMessages(messages) {
|
|
|
13
33
|
for (const tc of m.toolCalls) {
|
|
14
34
|
blocks.push({ type: "tool_use", id: tc.id, name: tc.name, input: tc.input });
|
|
15
35
|
}
|
|
36
|
+
if (mark)
|
|
37
|
+
markLast(blocks, cache.ttl);
|
|
16
38
|
return { role: "assistant", content: blocks };
|
|
17
39
|
}
|
|
18
40
|
// Tool results are sent back as a user turn of tool_result blocks.
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
};
|
|
41
|
+
const blocks = m.results.map((r) => ({
|
|
42
|
+
type: "tool_result",
|
|
43
|
+
tool_use_id: r.toolCallId,
|
|
44
|
+
content: r.content,
|
|
45
|
+
is_error: r.isError ?? false,
|
|
46
|
+
}));
|
|
47
|
+
if (mark)
|
|
48
|
+
markLast(blocks, cache.ttl);
|
|
49
|
+
return { role: "user", content: blocks };
|
|
28
50
|
});
|
|
29
51
|
}
|
|
52
|
+
/** Attach a breakpoint to the last block, when there is one to attach it to. */
|
|
53
|
+
function markLast(blocks, ttl) {
|
|
54
|
+
const last = blocks[blocks.length - 1];
|
|
55
|
+
if (last)
|
|
56
|
+
last.cache_control = cacheControl(ttl);
|
|
57
|
+
}
|
|
30
58
|
/** Reduce an Anthropic response's content blocks to text + tool calls (pure; tested). */
|
|
31
59
|
export function parseAnthropicContent(content) {
|
|
32
60
|
let text = "";
|
|
@@ -45,6 +73,34 @@ export function parseAnthropicContent(content) {
|
|
|
45
73
|
}
|
|
46
74
|
return { text, toolCalls };
|
|
47
75
|
}
|
|
76
|
+
/** Map Anthropic's `stop_reason` onto the neutral vocabulary (pure; tested). */
|
|
77
|
+
export function anthropicFinishReason(stopReason) {
|
|
78
|
+
switch (stopReason) {
|
|
79
|
+
case "end_turn":
|
|
80
|
+
case "stop_sequence":
|
|
81
|
+
case "pause_turn":
|
|
82
|
+
return "stop";
|
|
83
|
+
case "tool_use":
|
|
84
|
+
return "tool_calls";
|
|
85
|
+
case "max_tokens":
|
|
86
|
+
case "model_context_window_exceeded":
|
|
87
|
+
return "length";
|
|
88
|
+
case "refusal":
|
|
89
|
+
return "content_filter";
|
|
90
|
+
default:
|
|
91
|
+
return "unknown";
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/** Anthropic's `tool_choice` for a neutral {@link ToolChoice}. */
|
|
95
|
+
function anthropicToolChoice(choice) {
|
|
96
|
+
if (choice === "auto")
|
|
97
|
+
return { type: "auto" };
|
|
98
|
+
if (choice === "required")
|
|
99
|
+
return { type: "any" };
|
|
100
|
+
if (choice === "none")
|
|
101
|
+
return { type: "none" };
|
|
102
|
+
return { type: "tool", name: choice.name };
|
|
103
|
+
}
|
|
48
104
|
/**
|
|
49
105
|
* Map an Anthropic `usage` block to the kernel's token accounting (pure; tested).
|
|
50
106
|
*
|
|
@@ -67,11 +123,57 @@ export function anthropicUsage(usage) {
|
|
|
67
123
|
...(cacheWrite > 0 ? { cacheWriteTokens: cacheWrite } : {}),
|
|
68
124
|
};
|
|
69
125
|
}
|
|
126
|
+
/**
|
|
127
|
+
* Build the Messages API request for one conversation step (pure; tested).
|
|
128
|
+
*
|
|
129
|
+
* Prompt caching places up to four breakpoints: the system prompt (sent as one
|
|
130
|
+
* text block so it can carry one), the last tool definition, and the trailing
|
|
131
|
+
* messages. A `responseFormat` or an `openrouter` block is rejected here: the
|
|
132
|
+
* Messages API has neither, and honouring a structured answer means a terminal
|
|
133
|
+
* tool with a schema, not a request flag.
|
|
134
|
+
*/
|
|
135
|
+
export function anthropicRequestBody(model, req, fallbackMaxTokens = maxTokens()) {
|
|
136
|
+
const options = req.providerOptions;
|
|
137
|
+
rejectOption("anthropic", options, "responseFormat", "use a terminal tool with a schema");
|
|
138
|
+
rejectOption("anthropic", options, "openrouter");
|
|
139
|
+
const cache = options?.promptCache
|
|
140
|
+
? resolvePromptCache(options.promptCache)
|
|
141
|
+
: undefined;
|
|
142
|
+
const tools = req.tools.map((t) => ({
|
|
143
|
+
name: t.name,
|
|
144
|
+
description: t.description,
|
|
145
|
+
input_schema: t.inputSchema,
|
|
146
|
+
}));
|
|
147
|
+
if (cache?.tools) {
|
|
148
|
+
const last = tools[tools.length - 1];
|
|
149
|
+
if (last)
|
|
150
|
+
last.cache_control = cacheControl(cache.ttl);
|
|
151
|
+
}
|
|
152
|
+
// An empty system prompt stays a string: Anthropic rejects an empty text block.
|
|
153
|
+
const system = cache?.system && req.system
|
|
154
|
+
? [{ type: "text", text: req.system, cache_control: cacheControl(cache.ttl) }]
|
|
155
|
+
: req.system;
|
|
156
|
+
return {
|
|
157
|
+
model,
|
|
158
|
+
max_tokens: resolveMaxTokens(options, fallbackMaxTokens),
|
|
159
|
+
...(typeof options?.temperature === "number" ? { temperature: options.temperature } : {}),
|
|
160
|
+
// Omitted on a tools-free request: the budget summary call sends the same
|
|
161
|
+
// options with no tools, and a forced choice there is an API error.
|
|
162
|
+
...(options?.toolChoice !== undefined && tools.length > 0
|
|
163
|
+
? { tool_choice: anthropicToolChoice(options.toolChoice) }
|
|
164
|
+
: {}),
|
|
165
|
+
system,
|
|
166
|
+
tools,
|
|
167
|
+
messages: toAnthropicMessages(req.messages, cache && cache.trailingMessages > 0
|
|
168
|
+
? { trailingMessages: cache.trailingMessages, ...(cache.ttl ? { ttl: cache.ttl } : {}) }
|
|
169
|
+
: undefined),
|
|
170
|
+
};
|
|
171
|
+
}
|
|
70
172
|
export class AnthropicProvider {
|
|
71
173
|
name = "anthropic";
|
|
72
174
|
reportsUsage = true;
|
|
73
|
-
client;
|
|
74
175
|
model;
|
|
176
|
+
client;
|
|
75
177
|
constructor(apiKey, model = process.env.ANTHROPIC_MODEL ?? "claude-sonnet-4-6") {
|
|
76
178
|
// The SDK retries transient 429/5xx/network errors with exponential backoff
|
|
77
179
|
// internally, so a blip doesn't fail the whole run; `timeout` bounds each
|
|
@@ -96,22 +198,21 @@ export class AnthropicProvider {
|
|
|
96
198
|
.join("\n");
|
|
97
199
|
}
|
|
98
200
|
async converse(req, opts) {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
input_schema: t.inputSchema,
|
|
107
|
-
})),
|
|
108
|
-
messages: toAnthropicMessages(req.messages),
|
|
109
|
-
},
|
|
110
|
-
// Per-request, so an abort cancels THIS call (retries included) and
|
|
111
|
-
// leaves the shared client untouched.
|
|
112
|
-
opts?.signal ? { signal: opts.signal } : undefined);
|
|
201
|
+
// Per-request options, so an abort cancels THIS call (retries included)
|
|
202
|
+
// and a per-call retry count leaves the shared client untouched.
|
|
203
|
+
const retries = resolveMaxRetries(req.providerOptions);
|
|
204
|
+
const message = await this.client.messages.create(anthropicRequestBody(this.model, req), {
|
|
205
|
+
...(opts?.signal ? { signal: opts.signal } : {}),
|
|
206
|
+
...(retries !== undefined ? { maxRetries: retries } : {}),
|
|
207
|
+
});
|
|
113
208
|
const usage = anthropicUsage(message.usage);
|
|
114
|
-
return {
|
|
209
|
+
return {
|
|
210
|
+
...parseAnthropicContent(message.content),
|
|
211
|
+
...(usage ? { usage } : {}),
|
|
212
|
+
finishReason: anthropicFinishReason(message.stop_reason),
|
|
213
|
+
...(typeof message.model === "string" && message.model ? { model: message.model } : {}),
|
|
214
|
+
...(typeof message.id === "string" && message.id ? { responseId: message.id } : {}),
|
|
215
|
+
};
|
|
115
216
|
}
|
|
116
217
|
}
|
|
117
218
|
//# sourceMappingURL=anthropic.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAA;AAEzC,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,17 +11,53 @@ export interface ProviderSelection {
|
|
|
11
11
|
openrouter?: string;
|
|
12
12
|
local?: string;
|
|
13
13
|
};
|
|
14
|
+
/**
|
|
15
|
+
* Run on the offline mock when no credential resolves, instead of failing.
|
|
16
|
+
* Off by default: a run that silently lands on the mock looks exactly like a
|
|
17
|
+
* run that reached a model, and nothing on the wire tells them apart. Set it
|
|
18
|
+
* for a keyless test rig or a local demo, never in production. An explicit
|
|
19
|
+
* `preferred: "mock"` needs no opt-in; that is a request, not a fallback.
|
|
20
|
+
*/
|
|
21
|
+
allowMockFallback?: boolean;
|
|
14
22
|
}
|
|
23
|
+
/** The outcome of {@link providerAvailability}: mirrors `AgentEngine.supports()`. */
|
|
24
|
+
export type ProviderAvailability = {
|
|
25
|
+
ok: true;
|
|
26
|
+
} | {
|
|
27
|
+
ok: false;
|
|
28
|
+
reason: string;
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Thrown by {@link selectProvider} when the run's provider cannot be resolved:
|
|
32
|
+
* no credential for the one asked for, none configured at all, or a name the
|
|
33
|
+
* kernel does not know. `missing` names what would have satisfied it (the env
|
|
34
|
+
* var and the BYO slot), so the message tells an operator what to set; it is
|
|
35
|
+
* empty for an unknown name, where nothing would.
|
|
36
|
+
*/
|
|
37
|
+
export declare class ProviderCredentialsError extends Error {
|
|
38
|
+
readonly preferred: string | null;
|
|
39
|
+
readonly missing: string[];
|
|
40
|
+
constructor(preferred: string | null | undefined, missing: string[], reason: string);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Whether {@link selectProvider} would succeed, as a reason rather than a
|
|
44
|
+
* throw, so an engine's `supports()` can refuse a run before it starts. Pure:
|
|
45
|
+
* it constructs no client.
|
|
46
|
+
*/
|
|
47
|
+
export declare function providerAvailability(preferred?: string | null, opts?: ProviderSelection): ProviderAvailability;
|
|
15
48
|
/**
|
|
16
49
|
* Resolves a provider from the workflow's preference and the host's
|
|
17
|
-
* environment.
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
50
|
+
* environment.
|
|
51
|
+
*
|
|
52
|
+
* It fails loud: a preferred provider with no credential, or no preference and
|
|
53
|
+
* no credential at all, throws a {@link ProviderCredentialsError} naming what
|
|
54
|
+
* would have satisfied it. The offline mock is reached only on request
|
|
55
|
+
* (`preferred: "mock"`) or by explicit opt-in (`allowMockFallback`), because a
|
|
56
|
+
* run that silently landed on the mock used to be indistinguishable from one
|
|
57
|
+
* that reached a model, and consumers grew prediction code to tell them apart.
|
|
22
58
|
*
|
|
23
59
|
* `opts` carries the per-run model and per-org BYO keys; both fall back to the
|
|
24
|
-
* host's env (model via the provider constructor's env default, keys
|
|
60
|
+
* host's env (model via the provider constructor's env default, keys above).
|
|
25
61
|
*/
|
|
26
62
|
export declare function selectProvider(preferred?: string | null, opts?: ProviderSelection): Provider;
|
|
27
63
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAE1C,YAAY,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE7D,mEAAmE;AACnE,MAAM,WAAW,iBAAiB;IAChC,iFAAiF;IACjF,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,sFAAsF;IACtF,WAAW,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAE1C,YAAY,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE7D,mEAAmE;AACnE,MAAM,WAAW,iBAAiB;IAChC,iFAAiF;IACjF,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,sFAAsF;IACtF,WAAW,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC1F;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED,qFAAqF;AACrF,MAAM,MAAM,oBAAoB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAE/E;;;;;;GAMG;AACH,qBAAa,wBAAyB,SAAQ,KAAK;IACjD,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAA;gBAEd,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM;CAMpF;AA6GD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,EACzB,IAAI,GAAE,iBAAsB,GAC3B,oBAAoB,CAKtB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,GAAE,iBAAsB,GAAG,QAAQ,CA4BhG"}
|