@rarebit-one/harness-kernel 0.10.0 → 0.11.0-next.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.
Files changed (71) hide show
  1. package/README.md +142 -6
  2. package/dist/agent.d.ts +80 -8
  3. package/dist/agent.d.ts.map +1 -1
  4. package/dist/agent.js +225 -25
  5. package/dist/agent.js.map +1 -1
  6. package/dist/engines/native.d.ts +5 -0
  7. package/dist/engines/native.d.ts.map +1 -1
  8. package/dist/engines/native.js +28 -10
  9. package/dist/engines/native.js.map +1 -1
  10. package/dist/engines/types.d.ts +19 -0
  11. package/dist/engines/types.d.ts.map +1 -1
  12. package/dist/events.d.ts +20 -0
  13. package/dist/events.d.ts.map +1 -1
  14. package/dist/events.js.map +1 -1
  15. package/dist/index.d.ts +17 -11
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +7 -4
  18. package/dist/index.js.map +1 -1
  19. package/dist/loop.d.ts +58 -11
  20. package/dist/loop.d.ts.map +1 -1
  21. package/dist/loop.js +7 -5
  22. package/dist/loop.js.map +1 -1
  23. package/dist/models/chat.d.ts +2 -1
  24. package/dist/models/chat.d.ts.map +1 -1
  25. package/dist/models/chat.js +20 -4
  26. package/dist/models/chat.js.map +1 -1
  27. package/dist/models/types.d.ts +16 -0
  28. package/dist/models/types.d.ts.map +1 -1
  29. package/dist/models/types.js.map +1 -1
  30. package/dist/private.d.ts.map +1 -1
  31. package/dist/private.js +21 -0
  32. package/dist/private.js.map +1 -1
  33. package/dist/providers/anthropic.d.ts +27 -3
  34. package/dist/providers/anthropic.d.ts.map +1 -1
  35. package/dist/providers/anthropic.js +95 -29
  36. package/dist/providers/anthropic.js.map +1 -1
  37. package/dist/providers/index.d.ts +42 -6
  38. package/dist/providers/index.d.ts.map +1 -1
  39. package/dist/providers/index.js +132 -48
  40. package/dist/providers/index.js.map +1 -1
  41. package/dist/providers/mock.d.ts +6 -3
  42. package/dist/providers/mock.d.ts.map +1 -1
  43. package/dist/providers/mock.js +8 -3
  44. package/dist/providers/mock.js.map +1 -1
  45. package/dist/providers/openai.d.ts +51 -7
  46. package/dist/providers/openai.d.ts.map +1 -1
  47. package/dist/providers/openai.js +128 -30
  48. package/dist/providers/openai.js.map +1 -1
  49. package/dist/providers/options.d.ts +162 -0
  50. package/dist/providers/options.d.ts.map +1 -0
  51. package/dist/providers/options.js +67 -0
  52. package/dist/providers/options.js.map +1 -0
  53. package/dist/providers/scripted.d.ts +49 -0
  54. package/dist/providers/scripted.d.ts.map +1 -0
  55. package/dist/providers/scripted.js +90 -0
  56. package/dist/providers/scripted.js.map +1 -0
  57. package/dist/providers/types.d.ts +34 -0
  58. package/dist/providers/types.d.ts.map +1 -1
  59. package/dist/tools/metadata.d.ts +24 -0
  60. package/dist/tools/metadata.d.ts.map +1 -1
  61. package/dist/tools/metadata.js +8 -0
  62. package/dist/tools/metadata.js.map +1 -1
  63. package/dist/tools/registry.d.ts +10 -3
  64. package/dist/tools/registry.d.ts.map +1 -1
  65. package/dist/tools/registry.js +9 -4
  66. package/dist/tools/registry.js.map +1 -1
  67. package/dist/tools/terminal.d.ts +33 -0
  68. package/dist/tools/terminal.d.ts.map +1 -0
  69. package/dist/tools/terminal.js +32 -0
  70. package/dist/tools/terminal.js.map +1 -0
  71. package/package.json +5 -4
package/dist/private.js CHANGED
@@ -99,6 +99,9 @@ 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 } : {}),
102
105
  };
103
106
  }
104
107
  case "model.turn.failed":
@@ -153,6 +156,7 @@ export function privateRunChannels(log, sink) {
153
156
  ...base(event),
154
157
  type: event.type,
155
158
  outcome: oneOf(event.outcome, OUTCOMES, "failed"),
159
+ ...(isStopReason(event.stopReason) ? { stopReason: event.stopReason } : {}),
156
160
  ...(event.steps !== undefined ? { steps: event.steps } : {}),
157
161
  ...(event.error !== undefined ? { error: PRIVATE_REDACTION } : {}),
158
162
  };
@@ -170,6 +174,18 @@ export function privateRunChannels(log, sink) {
170
174
  const FAILURE_REASONS = ["threw", "unknown_tool", "aborted"];
171
175
  const BUDGET_KINDS = ["steps", "duration"];
172
176
  const OUTCOMES = ["completed", "steps_exhausted", "timed_out", "canceled", "failed"];
177
+ const STOP_REASONS = [
178
+ "end_turn",
179
+ "terminal_tool",
180
+ "steps_exhausted",
181
+ "timed_out",
182
+ "canceled",
183
+ "failed",
184
+ ];
185
+ /** A known stop reason; anything else (a custom loop's own word) is dropped. */
186
+ function isStopReason(value) {
187
+ return typeof value === "string" && STOP_REASONS.includes(value);
188
+ }
173
189
  /** `value` when it is one of `allowed`, else `fallback`. */
174
190
  function oneOf(value, allowed, fallback) {
175
191
  return allowed.includes(value) ? value : fallback;
@@ -187,11 +203,16 @@ function redactUsage(usage) {
187
203
  "totalTokens",
188
204
  "cacheReadTokens",
189
205
  "cacheWriteTokens",
206
+ "reasoningTokens",
190
207
  ]) {
191
208
  const n = usage[key];
192
209
  if (typeof n === "number")
193
210
  out[key] = n;
194
211
  }
212
+ // A cost is a number with a fixed-vocabulary currency: structural, not material.
213
+ if (usage.reportedCost && typeof usage.reportedCost.amount === "number") {
214
+ out.reportedCost = { amount: usage.reportedCost.amount, currency: "USD" };
215
+ }
195
216
  return out;
196
217
  }
197
218
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"private.js","sourceRoot":"","sources":["../src/private.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"private.js","sourceRoot":"","sources":["../src/private.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,22 @@
1
1
  import Anthropic from "@anthropic-ai/sdk";
2
2
  import type { TokenUsage } from "../models/types.js";
3
+ import { type CacheTtl } from "./options.js";
3
4
  import type { AgentMessage, CompletionRequest, ConverseOptions, ConverseRequest, ConverseResult, Provider } from "./types.js";
4
- /** Map provider-neutral messages to Anthropic's message params (pure; tested). */
5
- export declare function toAnthropicMessages(messages: AgentMessage[]): Anthropic.MessageParam[];
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;
8
22
  /**
@@ -13,11 +27,21 @@ export declare function parseAnthropicContent(content: Anthropic.ContentBlock[])
13
27
  * is what `inputTokens` carries, with the cache split out alongside.
14
28
  */
15
29
  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;
30
+ /**
31
+ * Build the Messages API request for one conversation step (pure; tested).
32
+ *
33
+ * Prompt caching places up to four breakpoints: the system prompt (sent as one
34
+ * text block so it can carry one), the last tool definition, and the trailing
35
+ * messages. A `responseFormat` or an `openrouter` block is rejected here: the
36
+ * Messages API has neither, and honouring a structured answer means a terminal
37
+ * tool with a schema, not a request flag.
38
+ */
39
+ export declare function anthropicRequestBody(model: string, req: ConverseRequest, fallbackMaxTokens?: number): Anthropic.MessageCreateParamsNonStreaming;
16
40
  export declare class AnthropicProvider implements Provider {
17
41
  readonly name = "anthropic";
18
42
  readonly reportsUsage = true;
43
+ readonly model: string;
19
44
  private client;
20
- private model;
21
45
  constructor(apiKey: string, model?: string);
22
46
  complete(req: CompletionRequest): Promise<string>;
23
47
  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;AAEnB,kFAAkF;AAClF,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,SAAS,CAAC,YAAY,EAAE,CAwBtF;AAED,yFAAyF;AACzF,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,SAAS,CAAC,YAAY,EAAE,GAAG,cAAc,CAevF;AAED;;;;;;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,qBAAa,iBAAkB,YAAW,QAAQ;IAChD,QAAQ,CAAC,IAAI,eAAc;IAC3B,QAAQ,CAAC,YAAY,QAAO;IAC5B,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,KAAK,CAAQ;gBAET,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;CAqBtF"}
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,EAEd,MAAM,cAAc,CAAA;AACrB,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,cAAc,EACd,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;;;;;;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,CAoC3C;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;CAiBtF"}
@@ -1,10 +1,30 @@
1
1
  import Anthropic from "@anthropic-ai/sdk";
2
2
  import { maxTokens, providerMaxRetries, providerTimeoutMs } from "./clientOptions.js";
3
- /** Map provider-neutral messages to Anthropic's message params (pure; tested). */
4
- export function toAnthropicMessages(messages) {
5
- return messages.map((m) => {
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
- return { role: "user", content: m.text };
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
- return {
20
- role: "user",
21
- content: m.results.map((r) => ({
22
- type: "tool_result",
23
- tool_use_id: r.toolCallId,
24
- content: r.content,
25
- is_error: r.isError ?? false,
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 = "";
@@ -67,11 +95,51 @@ export function anthropicUsage(usage) {
67
95
  ...(cacheWrite > 0 ? { cacheWriteTokens: cacheWrite } : {}),
68
96
  };
69
97
  }
98
+ /**
99
+ * Build the Messages API request for one conversation step (pure; tested).
100
+ *
101
+ * Prompt caching places up to four breakpoints: the system prompt (sent as one
102
+ * text block so it can carry one), the last tool definition, and the trailing
103
+ * messages. A `responseFormat` or an `openrouter` block is rejected here: the
104
+ * Messages API has neither, and honouring a structured answer means a terminal
105
+ * tool with a schema, not a request flag.
106
+ */
107
+ export function anthropicRequestBody(model, req, fallbackMaxTokens = maxTokens()) {
108
+ const options = req.providerOptions;
109
+ rejectOption("anthropic", options, "responseFormat", "use a terminal tool with a schema");
110
+ rejectOption("anthropic", options, "openrouter");
111
+ const cache = options?.promptCache
112
+ ? resolvePromptCache(options.promptCache)
113
+ : undefined;
114
+ const tools = req.tools.map((t) => ({
115
+ name: t.name,
116
+ description: t.description,
117
+ input_schema: t.inputSchema,
118
+ }));
119
+ if (cache?.tools) {
120
+ const last = tools[tools.length - 1];
121
+ if (last)
122
+ last.cache_control = cacheControl(cache.ttl);
123
+ }
124
+ // An empty system prompt stays a string: Anthropic rejects an empty text block.
125
+ const system = cache?.system && req.system
126
+ ? [{ type: "text", text: req.system, cache_control: cacheControl(cache.ttl) }]
127
+ : req.system;
128
+ return {
129
+ model,
130
+ max_tokens: resolveMaxTokens(options, fallbackMaxTokens),
131
+ system,
132
+ tools,
133
+ messages: toAnthropicMessages(req.messages, cache && cache.trailingMessages > 0
134
+ ? { trailingMessages: cache.trailingMessages, ...(cache.ttl ? { ttl: cache.ttl } : {}) }
135
+ : undefined),
136
+ };
137
+ }
70
138
  export class AnthropicProvider {
71
139
  name = "anthropic";
72
140
  reportsUsage = true;
73
- client;
74
141
  model;
142
+ client;
75
143
  constructor(apiKey, model = process.env.ANTHROPIC_MODEL ?? "claude-sonnet-4-6") {
76
144
  // The SDK retries transient 429/5xx/network errors with exponential backoff
77
145
  // internally, so a blip doesn't fail the whole run; `timeout` bounds each
@@ -96,22 +164,20 @@ export class AnthropicProvider {
96
164
  .join("\n");
97
165
  }
98
166
  async converse(req, opts) {
99
- const message = await this.client.messages.create({
100
- model: this.model,
101
- max_tokens: maxTokens(),
102
- system: req.system,
103
- tools: req.tools.map((t) => ({
104
- name: t.name,
105
- description: t.description,
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);
167
+ // Per-request options, so an abort cancels THIS call (retries included)
168
+ // and a per-call retry count leaves the shared client untouched.
169
+ const retries = resolveMaxRetries(req.providerOptions);
170
+ const message = await this.client.messages.create(anthropicRequestBody(this.model, req), {
171
+ ...(opts?.signal ? { signal: opts.signal } : {}),
172
+ ...(retries !== undefined ? { maxRetries: retries } : {}),
173
+ });
113
174
  const usage = anthropicUsage(message.usage);
114
- return { ...parseAnthropicContent(message.content), ...(usage ? { usage } : {}) };
175
+ return {
176
+ ...parseAnthropicContent(message.content),
177
+ ...(usage ? { usage } : {}),
178
+ ...(typeof message.model === "string" && message.model ? { model: message.model } : {}),
179
+ ...(typeof message.id === "string" && message.id ? { responseId: message.id } : {}),
180
+ };
115
181
  }
116
182
  }
117
183
  //# sourceMappingURL=anthropic.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"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"}
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. The kernel is provider-agnostic; when the preferred provider has
18
- * no credentials we degrade to the offline mock rather than failing the run,
19
- * which keeps a harness runnable end-to-end without keys. The one exception is
20
- * `local`: it is chosen to keep a run on private inference, so a missing
21
- * LOCAL_MODEL_BASE_URL throws rather than degrading to any other provider.
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 below).
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;CAC3F;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,GAAE,iBAAsB,GAAG,QAAQ,CAmDhG"}
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"}
@@ -3,65 +3,149 @@ import { OpenAIProvider } from "./openai.js";
3
3
  import { OpenRouterProvider } from "./openrouter.js";
4
4
  import { LocalProvider } from "./local.js";
5
5
  import { MockProvider } from "./mock.js";
6
+ /**
7
+ * Thrown by {@link selectProvider} when the run's provider cannot be resolved:
8
+ * no credential for the one asked for, none configured at all, or a name the
9
+ * kernel does not know. `missing` names what would have satisfied it (the env
10
+ * var and the BYO slot), so the message tells an operator what to set; it is
11
+ * empty for an unknown name, where nothing would.
12
+ */
13
+ export class ProviderCredentialsError extends Error {
14
+ preferred;
15
+ missing;
16
+ constructor(preferred, missing, reason) {
17
+ super(reason);
18
+ this.name = "ProviderCredentialsError";
19
+ this.preferred = preferred ?? null;
20
+ this.missing = missing;
21
+ }
22
+ }
23
+ const CLOUD = ["anthropic", "openai", "openrouter"];
24
+ const ENV_KEY = {
25
+ anthropic: "ANTHROPIC_API_KEY",
26
+ openai: "OPENAI_API_KEY",
27
+ openrouter: "OPENROUTER_API_KEY",
28
+ };
29
+ function isCloud(name) {
30
+ return CLOUD.includes(name ?? "");
31
+ }
32
+ /** The resolved key per cloud provider: the org's BYO key, else the host's env key. */
33
+ function resolveKeys(opts) {
34
+ return {
35
+ anthropic: opts.credentials?.anthropic ?? process.env.ANTHROPIC_API_KEY,
36
+ openai: opts.credentials?.openai ?? process.env.OPENAI_API_KEY,
37
+ openrouter: opts.credentials?.openrouter ?? process.env.OPENROUTER_API_KEY,
38
+ };
39
+ }
40
+ /** What satisfies a provider's credential, for the error message. */
41
+ function wouldSatisfy(name) {
42
+ return [ENV_KEY[name], `credentials.${name}`];
43
+ }
44
+ function resolve(preferred, opts) {
45
+ const keys = resolveKeys(opts);
46
+ const missing = (reason, names) => ({
47
+ kind: "missing",
48
+ error: new ProviderCredentialsError(preferred, names, reason),
49
+ });
50
+ if (preferred === "mock")
51
+ return { kind: "mock" };
52
+ if (preferred === "local") {
53
+ // The one provider that was always loud: it is chosen precisely to keep a
54
+ // run on private inference (e.g. a data_class: pii workflow), so running it
55
+ // anywhere else would defeat the point. A key is optional (a local server
56
+ // usually needs none); the base URL is not — without it there is nothing
57
+ // to point at. `allowMockFallback` does not apply here for the same reason.
58
+ const baseURL = process.env.LOCAL_MODEL_BASE_URL;
59
+ if (!baseURL) {
60
+ return missing("provider.preferred is 'local' but LOCAL_MODEL_BASE_URL is not set — " +
61
+ "refusing to run a private-inference workflow on another provider", ["LOCAL_MODEL_BASE_URL"]);
62
+ }
63
+ return { kind: "local", baseURL };
64
+ }
65
+ if (isCloud(preferred)) {
66
+ const key = keys[preferred];
67
+ if (key)
68
+ return { kind: "cloud", name: preferred, key };
69
+ // No falling through to another configured provider: a run that asked for
70
+ // one model and quietly got another is the same failure as one that
71
+ // quietly got the mock.
72
+ if (opts.allowMockFallback)
73
+ return { kind: "mock" };
74
+ const [env, slot] = wouldSatisfy(preferred);
75
+ return missing(`provider "${preferred}" was requested but no credential is configured: ` +
76
+ `set ${env} on the host or pass ${slot} with the run ` +
77
+ "(or set allowMockFallback to run offline on the mock)", wouldSatisfy(preferred));
78
+ }
79
+ // A name the kernel does not know is a typo or a provider this kernel has no
80
+ // adapter for. It is refused rather than read as "no preference": routing a
81
+ // run that asked for "openia" to whichever key happens to be configured is
82
+ // the silent substitution this contract exists to stop. (The mock opt-in is
83
+ // for a missing credential, not a wrong name, so it does not apply.)
84
+ if (typeof preferred === "string" && preferred.trim() !== "") {
85
+ return missing(`provider "${preferred}" is not one this kernel knows; use one of ` +
86
+ `${[...CLOUD, "local", "mock"].join(", ")}, or omit the preference`, []);
87
+ }
88
+ // No preference (absent, null or blank): pick whatever is configured, in a
89
+ // fixed order.
90
+ for (const name of CLOUD) {
91
+ const key = keys[name];
92
+ if (key)
93
+ return { kind: "cloud", name, key };
94
+ }
95
+ if (opts.allowMockFallback)
96
+ return { kind: "mock" };
97
+ return missing("no provider credential is configured: set one of " +
98
+ `${CLOUD.map((n) => ENV_KEY[n]).join(", ")} on the host or pass credentials with the run ` +
99
+ "(or set allowMockFallback to run offline on the mock)", CLOUD.flatMap(wouldSatisfy));
100
+ }
101
+ /**
102
+ * Whether {@link selectProvider} would succeed, as a reason rather than a
103
+ * throw, so an engine's `supports()` can refuse a run before it starts. Pure:
104
+ * it constructs no client.
105
+ */
106
+ export function providerAvailability(preferred, opts = {}) {
107
+ const resolution = resolve(preferred, opts);
108
+ return resolution.kind === "missing"
109
+ ? { ok: false, reason: resolution.error.message }
110
+ : { ok: true };
111
+ }
6
112
  /**
7
113
  * Resolves a provider from the workflow's preference and the host's
8
- * environment. The kernel is provider-agnostic; when the preferred provider has
9
- * no credentials we degrade to the offline mock rather than failing the run,
10
- * which keeps a harness runnable end-to-end without keys. The one exception is
11
- * `local`: it is chosen to keep a run on private inference, so a missing
12
- * LOCAL_MODEL_BASE_URL throws rather than degrading to any other provider.
114
+ * environment.
115
+ *
116
+ * It fails loud: a preferred provider with no credential, or no preference and
117
+ * no credential at all, throws a {@link ProviderCredentialsError} naming what
118
+ * would have satisfied it. The offline mock is reached only on request
119
+ * (`preferred: "mock"`) or by explicit opt-in (`allowMockFallback`), because a
120
+ * run that silently landed on the mock used to be indistinguishable from one
121
+ * that reached a model, and consumers grew prediction code to tell them apart.
13
122
  *
14
123
  * `opts` carries the per-run model and per-org BYO keys; both fall back to the
15
- * host's env (model via the provider constructor's env default, keys below).
124
+ * host's env (model via the provider constructor's env default, keys above).
16
125
  */
17
126
  export function selectProvider(preferred, opts = {}) {
18
- const anthropicKey = opts.credentials?.anthropic ?? process.env.ANTHROPIC_API_KEY;
19
- const openaiKey = opts.credentials?.openai ?? process.env.OPENAI_API_KEY;
20
- const openrouterKey = opts.credentials?.openrouter ?? process.env.OPENROUTER_API_KEY;
21
127
  // undefined → the provider constructor's env-default model kicks in.
22
128
  const model = opts.model ?? undefined;
23
- switch (preferred) {
24
- case "anthropic":
25
- if (anthropicKey)
26
- return new AnthropicProvider(anthropicKey, model);
27
- break;
28
- case "openai":
29
- if (openaiKey)
30
- return new OpenAIProvider(openaiKey, model);
31
- break;
32
- case "openrouter":
33
- if (openrouterKey)
34
- return new OpenRouterProvider(openrouterKey, model);
35
- break;
36
- case "local": {
37
- // The one provider that FAILS LOUD instead of degrading to the mock: it is
38
- // chosen precisely to keep a run on private inference (e.g. a data_class:
39
- // pii workflow), so silently running it anywhere else would defeat the
40
- // point. A key is optional (a local server usually needs none); the base
41
- // URL is not — without it there is nothing to point at.
42
- const baseURL = process.env.LOCAL_MODEL_BASE_URL;
43
- if (!baseURL) {
44
- throw new Error("provider.preferred is 'local' but LOCAL_MODEL_BASE_URL is not set — " +
45
- "refusing to run a private-inference workflow on another provider");
129
+ const resolution = resolve(preferred, opts);
130
+ switch (resolution.kind) {
131
+ case "cloud":
132
+ switch (resolution.name) {
133
+ case "anthropic":
134
+ return new AnthropicProvider(resolution.key, model);
135
+ case "openai":
136
+ return new OpenAIProvider(resolution.key, model);
137
+ case "openrouter":
138
+ return new OpenRouterProvider(resolution.key, model);
46
139
  }
47
- return new LocalProvider(baseURL, opts.credentials?.local ?? process.env.LOCAL_MODEL_API_KEY, model);
48
- }
140
+ // eslint-disable-next-line no-fallthrough -- the inner switch is exhaustive
141
+ case "local":
142
+ return new LocalProvider(resolution.baseURL, opts.credentials?.local ?? process.env.LOCAL_MODEL_API_KEY, model);
49
143
  case "mock":
50
- // An explicit `preferred: mock` always gets the mock, even when a key is
51
- // configured — it's the offline dry-run lens, so honour it deterministically
52
- // rather than silently upgrading to a real provider. Hand it the full
53
- // selection so it can self-document the model + BYO key it WOULD have used.
144
+ // The mock is handed the full selection so it can self-document the
145
+ // model + BYO key a real run WOULD have used.
54
146
  return new MockProvider(opts);
147
+ case "missing":
148
+ throw resolution.error;
55
149
  }
56
- // No explicit (or usable) preference: pick whatever is configured.
57
- if (anthropicKey)
58
- return new AnthropicProvider(anthropicKey, model);
59
- if (openaiKey)
60
- return new OpenAIProvider(openaiKey, model);
61
- if (openrouterKey)
62
- return new OpenRouterProvider(openrouterKey, model);
63
- // The offline fallback still carries the selection, so a keyless run's output
64
- // artifact reports the model (and any BYO key) the caller resolved.
65
- return new MockProvider(opts);
66
150
  }
67
151
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAaxC;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc,CAAC,SAAyB,EAAE,OAA0B,EAAE;IACpF,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAA;IACjF,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAA;IACxE,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAA;IACpF,qEAAqE;IACrE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,SAAS,CAAA;IAErC,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,WAAW;YACd,IAAI,YAAY;gBAAE,OAAO,IAAI,iBAAiB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAA;YACnE,MAAK;QACP,KAAK,QAAQ;YACX,IAAI,SAAS;gBAAE,OAAO,IAAI,cAAc,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;YAC1D,MAAK;QACP,KAAK,YAAY;YACf,IAAI,aAAa;gBAAE,OAAO,IAAI,kBAAkB,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;YACtE,MAAK;QACP,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,2EAA2E;YAC3E,0EAA0E;YAC1E,uEAAuE;YACvE,yEAAyE;YACzE,wDAAwD;YACxD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAA;YAChD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CACb,sEAAsE;oBACpE,kEAAkE,CACrE,CAAA;YACH,CAAC;YACD,OAAO,IAAI,aAAa,CACtB,OAAO,EACP,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAC1D,KAAK,CACN,CAAA;QACH,CAAC;QACD,KAAK,MAAM;YACT,yEAAyE;YACzE,6EAA6E;YAC7E,sEAAsE;YACtE,4EAA4E;YAC5E,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,CAAA;IACjC,CAAC;IAED,mEAAmE;IACnE,IAAI,YAAY;QAAE,OAAO,IAAI,iBAAiB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAA;IACnE,IAAI,SAAS;QAAE,OAAO,IAAI,cAAc,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;IAC1D,IAAI,aAAa;QAAE,OAAO,IAAI,kBAAkB,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;IACtE,8EAA8E;IAC9E,oEAAoE;IACpE,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,CAAA;AAC/B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"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"}