@rarebit-one/harness-kernel 0.18.0 → 0.19.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 (99) hide show
  1. package/README.md +255 -16
  2. package/dist/agent.d.ts +24 -0
  3. package/dist/agent.d.ts.map +1 -1
  4. package/dist/agent.js +138 -30
  5. package/dist/agent.js.map +1 -1
  6. package/dist/connectors/auth.d.ts +32 -0
  7. package/dist/connectors/auth.d.ts.map +1 -0
  8. package/dist/connectors/auth.js +85 -0
  9. package/dist/connectors/auth.js.map +1 -0
  10. package/dist/connectors/mcpClient.d.ts +14 -4
  11. package/dist/connectors/mcpClient.d.ts.map +1 -1
  12. package/dist/connectors/mcpClient.js +32 -11
  13. package/dist/connectors/mcpClient.js.map +1 -1
  14. package/dist/engines/acp.d.ts.map +1 -1
  15. package/dist/engines/acp.js +2 -1
  16. package/dist/engines/acp.js.map +1 -1
  17. package/dist/engines/capability.d.ts +1 -1
  18. package/dist/engines/capability.js +1 -1
  19. package/dist/engines/claudeCode.d.ts.map +1 -1
  20. package/dist/engines/claudeCode.js +2 -1
  21. package/dist/engines/claudeCode.js.map +1 -1
  22. package/dist/engines/claudeCodeDriver.d.ts.map +1 -1
  23. package/dist/engines/claudeCodeDriver.js +4 -3
  24. package/dist/engines/claudeCodeDriver.js.map +1 -1
  25. package/dist/engines/codex.d.ts +4 -4
  26. package/dist/engines/codex.d.ts.map +1 -1
  27. package/dist/engines/codex.js +6 -5
  28. package/dist/engines/codex.js.map +1 -1
  29. package/dist/engines/codexDriver.d.ts +1 -1
  30. package/dist/engines/codexDriver.js +1 -1
  31. package/dist/engines/connectorMcp.d.ts +13 -0
  32. package/dist/engines/connectorMcp.d.ts.map +1 -1
  33. package/dist/engines/connectorMcp.js +23 -0
  34. package/dist/engines/connectorMcp.js.map +1 -1
  35. package/dist/engines/gateway.d.ts +5 -2
  36. package/dist/engines/gateway.d.ts.map +1 -1
  37. package/dist/engines/gateway.js +7 -2
  38. package/dist/engines/gateway.js.map +1 -1
  39. package/dist/engines/native.d.ts.map +1 -1
  40. package/dist/engines/native.js +10 -3
  41. package/dist/engines/native.js.map +1 -1
  42. package/dist/engines/types.d.ts +10 -1
  43. package/dist/engines/types.d.ts.map +1 -1
  44. package/dist/events.d.ts +22 -8
  45. package/dist/events.d.ts.map +1 -1
  46. package/dist/events.js.map +1 -1
  47. package/dist/index.d.ts +10 -2
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +5 -1
  50. package/dist/index.js.map +1 -1
  51. package/dist/loop.d.ts +23 -0
  52. package/dist/loop.d.ts.map +1 -1
  53. package/dist/loop.js +1 -0
  54. package/dist/loop.js.map +1 -1
  55. package/dist/models/chat.d.ts +12 -6
  56. package/dist/models/chat.d.ts.map +1 -1
  57. package/dist/models/chat.js +11 -6
  58. package/dist/models/chat.js.map +1 -1
  59. package/dist/models/retry.d.ts +252 -0
  60. package/dist/models/retry.d.ts.map +1 -0
  61. package/dist/models/retry.js +400 -0
  62. package/dist/models/retry.js.map +1 -0
  63. package/dist/models/types.d.ts +7 -0
  64. package/dist/models/types.d.ts.map +1 -1
  65. package/dist/models/types.js.map +1 -1
  66. package/dist/private.d.ts.map +1 -1
  67. package/dist/private.js +12 -2
  68. package/dist/private.js.map +1 -1
  69. package/dist/secrets.d.ts +17 -7
  70. package/dist/secrets.d.ts.map +1 -1
  71. package/dist/secrets.js +38 -24
  72. package/dist/secrets.js.map +1 -1
  73. package/dist/tools/concurrency.d.ts +48 -0
  74. package/dist/tools/concurrency.d.ts.map +1 -0
  75. package/dist/tools/concurrency.js +64 -0
  76. package/dist/tools/concurrency.js.map +1 -0
  77. package/dist/tools/metadata.d.ts +18 -3
  78. package/dist/tools/metadata.d.ts.map +1 -1
  79. package/dist/tools/metadata.js +7 -0
  80. package/dist/tools/metadata.js.map +1 -1
  81. package/dist/tools/registry.d.ts +6 -4
  82. package/dist/tools/registry.d.ts.map +1 -1
  83. package/dist/tools/registry.js +5 -3
  84. package/dist/tools/registry.js.map +1 -1
  85. package/dist/tools/terminal.d.ts +8 -6
  86. package/dist/tools/terminal.d.ts.map +1 -1
  87. package/dist/tools/terminal.js +8 -6
  88. package/dist/tools/terminal.js.map +1 -1
  89. package/dist/tools/validate.d.ts +49 -0
  90. package/dist/tools/validate.d.ts.map +1 -0
  91. package/dist/tools/validate.js +346 -0
  92. package/dist/tools/validate.js.map +1 -0
  93. package/dist/transcript.d.ts +53 -0
  94. package/dist/transcript.d.ts.map +1 -0
  95. package/dist/transcript.js +104 -0
  96. package/dist/transcript.js.map +1 -0
  97. package/dist/types.d.ts +44 -5
  98. package/dist/types.d.ts.map +1 -1
  99. package/package.json +3 -3
package/dist/agent.js CHANGED
@@ -4,6 +4,8 @@ import { asChatModel, chatRequest } from "./models/chat.js";
4
4
  import { deadlineSignal, isAbortError } from "./signals.js";
5
5
  import { executeTool } from "./tools/registry.js";
6
6
  import { toToolSpecs, toolDispatch } from "./tools/metadata.js";
7
+ import { assertToolConcurrency, runInSegments } from "./tools/concurrency.js";
8
+ import { invalidInputRefusal } from "./tools/validate.js";
7
9
  const DEFAULT_MAX_STEPS = 12;
8
10
  const FALLBACK_MAX_DURATION_MS = 10 * 60 * 1000;
9
11
  /** Resolve the wall-clock run budget from env, falling back to 10 minutes. */
@@ -21,9 +23,17 @@ const FALLBACK_MAX_TOOL_RESULT_BYTES = 64 * 1024;
21
23
  * kernel ships. `runAgent`, `runConversation` and `NativeEngine` all come here.
22
24
  */
23
25
  export function resolveLoopLimits(limits) {
26
+ const maxCostUsd = limits?.maxCostUsd;
27
+ // No default: a cost budget exists only when the caller set one. A NaN or a
28
+ // negative would make the comparison never (or always) fire, so it is
29
+ // refused rather than run as a limit that silently is not one.
30
+ if (maxCostUsd !== undefined && !(maxCostUsd >= 0)) {
31
+ throw new RangeError(`maxCostUsd must be a non-negative number, got ${maxCostUsd}`);
32
+ }
24
33
  return {
25
34
  maxSteps: limits?.maxSteps ?? DEFAULT_MAX_STEPS,
26
35
  maxDurationMs: limits?.maxDurationMs ?? defaultMaxDurationMs(),
36
+ ...(maxCostUsd !== undefined ? { maxCostUsd } : {}),
27
37
  ...(limits?.budgetVisible ? { budgetVisible: true } : {}),
28
38
  };
29
39
  }
@@ -45,6 +55,14 @@ export function remainingLimits(limits, consumed) {
45
55
  return {
46
56
  maxSteps: Math.max(RESUME_MIN_STEPS, limits.maxSteps - consumed.steps),
47
57
  maxDurationMs: Math.max(RESUME_MIN_DURATION_MS, limits.maxDurationMs - consumed.durationMs),
58
+ // No floor is needed: the loop checks cost after a turn, so a resumed run's
59
+ // first step runs even on a zero budget. Only reported cost was counted, so
60
+ // only reported cost is subtracted.
61
+ ...(limits.maxCostUsd !== undefined
62
+ ? {
63
+ maxCostUsd: Math.max(0, limits.maxCostUsd - (consumed.usage?.reportedCost?.amount ?? 0)),
64
+ }
65
+ : {}),
48
66
  ...(limits.budgetVisible ? { budgetVisible: true } : {}),
49
67
  };
50
68
  }
@@ -242,14 +260,25 @@ function answeredExternalCalls(messages, byName) {
242
260
  function notAnswered(callId, why) {
243
261
  return { toolCallId: callId, content: `not run: ${why}`, isError: true };
244
262
  }
245
- /** The one ephemeral line the model sees when `budgetVisible` is on. */
246
- function budgetLine(stepsLeft, maxSteps, msLeft) {
263
+ /**
264
+ * The one ephemeral line the model sees when `budgetVisible` is on. The cost
265
+ * clause appears only under a cost limit, so a run without one sees exactly
266
+ * the line it always did.
267
+ */
268
+ function budgetLine(stepsLeft, maxSteps, msLeft, costLeft) {
247
269
  const seconds = Math.max(0, Math.round(msLeft / 1000));
270
+ const left = costLeft === undefined
271
+ ? `${stepsLeft} of ${maxSteps} step(s) and ${seconds}s`
272
+ : `${stepsLeft} of ${maxSteps} step(s), ${seconds}s and $${costLeft.toFixed(4)} of cost`;
248
273
  return {
249
274
  role: "user",
250
- text: `[budget] ${stepsLeft} of ${maxSteps} step(s) and ${seconds}s remain. Plan to finish within them.`,
275
+ text: `[budget] ${left} remain. Plan to finish within them.`,
251
276
  };
252
277
  }
278
+ /** The cost a call reported, when it reported one. */
279
+ function reportedAmount(usage) {
280
+ return usage && !("units" in usage) ? usage.reportedCost?.amount : undefined;
281
+ }
253
282
  /** The finer reason a custom loop's bare outcome implies, when it reported none. */
254
283
  function stopReasonFor(outcome) {
255
284
  return outcome === "completed" ? "end_turn" : outcome;
@@ -297,10 +326,12 @@ export async function runAgent(options) {
297
326
  });
298
327
  // `stopReason: "length"` is the plain case; a budget summary cut at the cap
299
328
  // ends `steps_exhausted` with `finishReason: "length"`, and its text is just
300
- // as partial. A canceled or timed-out run is not judged here: the
301
- // cancellation contract is that it resolves with its note, never rejects,
302
- // even when the last turn to land before the stop happened to be cut.
303
- const stopped = result.outcome === "canceled" || result.outcome === "timed_out";
329
+ // as partial. A canceled, timed-out or cost-stopped run is not judged here:
330
+ // the cancellation contract is that it resolves with its note, never
331
+ // rejects, even when the last turn to land before the stop happened to be cut.
332
+ const stopped = result.outcome === "canceled" ||
333
+ result.outcome === "timed_out" ||
334
+ result.outcome === "cost_exhausted";
304
335
  if (!stopped && (result.stopReason === "length" || result.finishReason === "length")) {
305
336
  throw new TruncatedAnswerError(result);
306
337
  }
@@ -358,6 +389,8 @@ export async function runConversation(options) {
358
389
  tools: options.tools,
359
390
  limits: resolveLoopLimits(options),
360
391
  ...(options.providerOptions ? { providerOptions: options.providerOptions } : {}),
392
+ ...(options.toolConcurrency ? { toolConcurrency: options.toolConcurrency } : {}),
393
+ ...(options.validateToolInput ? { validateToolInput: true } : {}),
361
394
  }, {
362
395
  log,
363
396
  events: runEventEmitter(sink, log),
@@ -396,23 +429,38 @@ export async function runConversation(options) {
396
429
  */
397
430
  export async function runNativeLoop(req, loopCtx) {
398
431
  const { model, system, tools, providerOptions } = req;
399
- const { maxSteps, maxDurationMs } = req.limits;
432
+ const { maxSteps, maxDurationMs, maxCostUsd } = req.limits;
400
433
  const log = loopCtx.log;
401
434
  // Checked before the first model call: a bad seed is a configuration error,
402
435
  // and the cheapest failure is the one that spends no tokens.
403
436
  assertSeed(req.messages);
437
+ assertToolConcurrency(req.toolConcurrency);
404
438
  // One signal for the whole run: the caller's cancel merged with the run's own
405
439
  // deadline. It reaches every model call (through `InvokeContext.signal`, down
406
440
  // to the provider's HTTP request) and every tool (through `ToolContext`), so
407
441
  // neither a cancel nor the deadline has to wait for an in-flight step to end.
408
442
  const deadline = deadlineSignal(maxDurationMs);
409
443
  const signal = loopCtx.signal ? AbortSignal.any([loopCtx.signal, deadline]) : deadline;
410
- const ctx = { log, signal, budget: { maxDurationMs } };
444
+ const ctx = {
445
+ log,
446
+ signal,
447
+ budget: { maxDurationMs, deadlineAt: Date.now() + maxDurationMs },
448
+ };
411
449
  // The emitter is the caller's: `seq` is per RUN, not per loop, so a loop that
412
450
  // made its own would restart the numbering mid-stream.
413
451
  const events = loopCtx.events;
414
452
  const byName = new Map(tools.map((t) => [t.spec.name, t]));
415
453
  const specs = toToolSpecs(tools);
454
+ // The run's opt-in, applied per call. A call to a tool this run lacks is
455
+ // never safe: it runs alone, and is refused there as unknown.
456
+ const concurrency = req.toolConcurrency;
457
+ const segments = concurrency && {
458
+ maxConcurrent: concurrency.maxConcurrent,
459
+ safe: (call) => {
460
+ const tool = byName.get(call.name);
461
+ return tool !== undefined && concurrency.concurrencySafe(tool);
462
+ },
463
+ };
416
464
  /** Close a parked call this run will not hand to the caller after all. */
417
465
  const closePending = (call, why) => {
418
466
  // Closed here, so no longer parked: the mark comes off the transcript's
@@ -438,7 +486,12 @@ export async function runNativeLoop(req, loopCtx) {
438
486
  // transcript must not fill up with the loop's own bookkeeping, and the
439
487
  // trailing position keeps the cached prefix (system, tools, history) intact.
440
488
  const request = (toolSpecs, stepsLeft) => chatRequest(system, req.limits.budgetVisible && stepsLeft !== undefined
441
- ? [...messages, budgetLine(stepsLeft, maxSteps, deadlineAt - Date.now())]
489
+ ? [
490
+ ...messages,
491
+ budgetLine(stepsLeft, maxSteps, deadlineAt - Date.now(), maxCostUsd !== undefined
492
+ ? Math.max(0, maxCostUsd - (usage?.reportedCost?.amount ?? 0))
493
+ : undefined),
494
+ ]
442
495
  : messages, toolSpecs, undefined, providerOptions);
443
496
  const provider = model.id;
444
497
  let finalText = "";
@@ -453,6 +506,7 @@ export async function runNativeLoop(req, loopCtx) {
453
506
  let terminal;
454
507
  let lastFinish;
455
508
  let cutOff = false;
509
+ let unpricedNoted = false;
456
510
  const responseIds = [];
457
511
  let pending = [];
458
512
  /** Everything a result carries besides the three the caller decides per path. */
@@ -583,6 +637,29 @@ export async function runNativeLoop(req, loopCtx) {
583
637
  }
584
638
  return stopped();
585
639
  }
640
+ // The cost budget, checked once the turn's cost is known. Only what the
641
+ // calls reported counts: an unpriced turn is unknown, not free, and not
642
+ // a number either, so it is noted once and the limit runs on what was
643
+ // reported. A turn that answered in prose finishes the run as usual
644
+ // (nothing more would be spent); a turn that asked for tools is stopped
645
+ // before any of them start, like a stop that lands after the turn, and
646
+ // without the summary call the step budget gets — that call would spend
647
+ // past a limit that is already reached.
648
+ if (maxCostUsd !== undefined) {
649
+ if (reportedAmount(turnResult.usage) === undefined && !unpricedNoted) {
650
+ unpricedNoted = true;
651
+ log(`step ${step} reported no cost; the ${maxCostUsd} USD cost budget counts reported cost only`);
652
+ }
653
+ const spent = usage?.reportedCost?.amount;
654
+ if (calls.length > 0 && spent !== undefined && spent >= maxCostUsd) {
655
+ messages.push({ role: "tool", results: calls.map((c) => notRun(c.id)) });
656
+ log(`reached cost budget (${maxCostUsd} USD, ${spent} reported) after step ${step}`);
657
+ events.emit({ type: "run.budget_exhausted", kind: "cost", step });
658
+ const accumulated = lastAssistantText || "(no output before the run was stopped)";
659
+ const text = `${accumulated}\n\n[run stopped: cost budget of ${maxCostUsd} USD reached]`;
660
+ return result(text, "cost_exhausted", "cost_exhausted");
661
+ }
662
+ }
586
663
  if (calls.length === 0) {
587
664
  finalText = turn.text;
588
665
  // A prose answer the output cap cut short. The run still completes,
@@ -591,22 +668,21 @@ export async function runNativeLoop(req, loopCtx) {
591
668
  cutOff = turn.finishReason === "length";
592
669
  break;
593
670
  }
594
- const results = [];
595
- for (const call of calls) {
671
+ // Everything one call goes through, from the stop check to its closing
672
+ // event, in one place: the serial and the parallel path both run each
673
+ // call through here, so no check can apply to one and not the other.
674
+ // No result means the call was parked; a terminal call that succeeded
675
+ // also hands back its answer.
676
+ const dispatchCall = async (call) => {
596
677
  // Never START a tool once the run is stopping: a side effect begun
597
678
  // after a cancel is the one thing a cancel must prevent. The call is
598
679
  // answered as not run rather than skipped, so the turn still closes.
599
- if (signal.aborted) {
600
- results.push(notRun(call.id));
601
- continue;
602
- }
680
+ // Checked when the call starts, so a call queued behind a parallel
681
+ // batch is caught too.
682
+ if (signal.aborted)
683
+ return { result: notRun(call.id) };
603
684
  const tool = byName.get(call.name);
604
685
  if (!tool) {
605
- results.push({
606
- toolCallId: call.id,
607
- content: `unknown tool: ${call.name}`,
608
- isError: true,
609
- });
610
686
  log(`tool ${call.name} (unknown)`);
611
687
  events.emit({
612
688
  type: "tool.failed",
@@ -616,7 +692,9 @@ export async function runNativeLoop(req, loopCtx) {
616
692
  reason: "unknown_tool",
617
693
  error: `unknown tool: ${call.name}`,
618
694
  });
619
- continue;
695
+ return {
696
+ result: { toolCallId: call.id, content: `unknown tool: ${call.name}`, isError: true },
697
+ };
620
698
  }
621
699
  // A call the output cap cut off is never run and never an answer. A
622
700
  // terminal call on a `length` turn is refused even when its arguments
@@ -636,7 +714,6 @@ export async function runNativeLoop(req, loopCtx) {
636
714
  "the call was not run. Call again, more briefly."
637
715
  : undefined;
638
716
  if (refusal !== undefined) {
639
- results.push({ toolCallId: call.id, content: refusal, isError: true });
640
717
  log(`tool ${call.name} refused: truncated`);
641
718
  events.emit({
642
719
  type: "tool.failed",
@@ -646,7 +723,24 @@ export async function runNativeLoop(req, loopCtx) {
646
723
  reason: "truncated",
647
724
  error: refusal,
648
725
  });
649
- continue;
726
+ return { result: { toolCallId: call.id, content: refusal, isError: true } };
727
+ }
728
+ // A whole call that does not fit its tool's schema, on a run that asked
729
+ // for the check. Refused like a cut-off call, before it can run or park:
730
+ // the model is told what to fix and answers again within its budgets,
731
+ // and no retry is the loop's. A terminal call refused here is no answer.
732
+ const invalid = req.validateToolInput ? invalidInputRefusal(tool, call.input) : undefined;
733
+ if (invalid !== undefined) {
734
+ log(`tool ${call.name} refused: invalid input`);
735
+ events.emit({
736
+ type: "tool.failed",
737
+ step,
738
+ callId: call.id,
739
+ name: call.name,
740
+ reason: "invalid_input",
741
+ error: invalid,
742
+ });
743
+ return { result: { toolCallId: call.id, content: invalid, isError: true } };
650
744
  }
651
745
  // An external tool is the caller's to run. The call is parked, not
652
746
  // executed, and the run ends `suspended` once this step's server-side
@@ -666,7 +760,7 @@ export async function runNativeLoop(req, loopCtx) {
666
760
  name: call.name,
667
761
  input: detach(call.input),
668
762
  });
669
- continue;
763
+ return {};
670
764
  }
671
765
  // Emitted BEFORE execution: a process that dies mid-tool still leaves
672
766
  // evidence that the effect may have started, which is the one case a
@@ -689,11 +783,11 @@ export async function runNativeLoop(req, loopCtx) {
689
783
  callId: call.id,
690
784
  ...(loopCtx.runId !== undefined ? { runId: loopCtx.runId } : {}),
691
785
  });
692
- results.push({
786
+ const result = {
693
787
  toolCallId: call.id,
694
788
  content: truncate(output.content),
695
789
  ...(output.structured !== undefined ? { structured: output.structured } : {}),
696
- });
790
+ };
697
791
  log(`tool ${call.name} ok (${output.content.length} bytes)`);
698
792
  // Reversibility is copied from the tool's own metadata at call time —
699
793
  // the tool set can differ per run, so a consumer reading the stream
@@ -710,13 +804,16 @@ export async function runNativeLoop(req, loopCtx) {
710
804
  // ran like any other (a throw above is an ordinary tool error the
711
805
  // model gets to correct), and the rest of this turn's calls still
712
806
  // get their results so the transcript stays whole.
713
- if (!terminal && toolDispatch(tool) === "terminal") {
714
- terminal = { callId: call.id, name: call.name, input: call.input, output };
807
+ if (toolDispatch(tool) === "terminal") {
808
+ return {
809
+ result,
810
+ terminal: { callId: call.id, name: call.name, input: call.input, output },
811
+ };
715
812
  }
813
+ return { result };
716
814
  }
717
815
  catch (err) {
718
816
  const message = err instanceof Error ? err.message : String(err);
719
- results.push({ toolCallId: call.id, content: message, isError: true });
720
817
  log(`tool ${call.name} error: ${message}`);
721
818
  // Recorded even when the run is stopping: `tool.called` is already in
722
819
  // the stream, and a call with no closing event looks like a crash.
@@ -730,7 +827,18 @@ export async function runNativeLoop(req, loopCtx) {
730
827
  reason: isAbortError(err, signal) ? "aborted" : "threw",
731
828
  error: message,
732
829
  });
830
+ return { result: { toolCallId: call.id, content: message, isError: true } };
733
831
  }
832
+ };
833
+ // In series unless the run opted in; either way the results come back
834
+ // in the model's order, and so does the choice of answer: the first
835
+ // terminal call the model issued that succeeded, not the first to finish.
836
+ const results = [];
837
+ for (const outcome of await runInSegments(calls, dispatchCall, segments)) {
838
+ if (outcome.result)
839
+ results.push(outcome.result);
840
+ if (!terminal && outcome.terminal)
841
+ terminal = outcome.terminal;
734
842
  }
735
843
  if (pending.length > 0) {
736
844
  // A parked call outlives this run only when the run is actually
package/dist/agent.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { FetchLike } from "@modelcontextprotocol/sdk/shared/transport.js";
2
+ import type { ConnectorAuthHeaders } from "../types.js";
3
+ /**
4
+ * A connector's auth headers function threw or returned something unusable.
5
+ * The message names the connector and never the function's error, which can
6
+ * quote the credential it failed to produce; that error is the `cause`, for
7
+ * the caller's own code and never sent to the model.
8
+ */
9
+ export declare class ConnectorAuthError extends Error {
10
+ constructor(connector: string, detail: string, cause?: unknown);
11
+ }
12
+ /**
13
+ * Hand every secret part of a header value to `onSecret`: the whole value, and
14
+ * the credential after an auth scheme (`Bearer abc` also yields `abc`), so a
15
+ * server or tool echoing the bare token is masked too.
16
+ */
17
+ export declare function reportCredential(value: string, onSecret: (value: string) => void): void;
18
+ /**
19
+ * A fetch that sets `resolve`'s headers on every request, so a credential that
20
+ * rotates during a run is picked up by the next request. A 401 asks `resolve`
21
+ * again with `refresh: true` and sends the request once more; a second 401 is
22
+ * returned as it is, for the transport to fail on. A request whose body cannot
23
+ * be sent twice (a stream) is not retried.
24
+ *
25
+ * Redirects are not followed here: unless the transport asks otherwise, the
26
+ * request goes out with `redirect: "manual"`, so a 3xx comes back to the
27
+ * transport, which follows only a same-origin one. A credential header that is
28
+ * not `Authorization` (which fetch strips on a cross-origin hop) would
29
+ * otherwise be forwarded to whatever origin the server names.
30
+ */
31
+ export declare function authHeadersFetch(connector: string, resolve: ConnectorAuthHeaders, onSecret: (value: string) => void, base?: FetchLike): FetchLike;
32
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/connectors/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAA;AAC9E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAEvD;;;;;GAKG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAI/D;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAIvF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EACjC,IAAI,GAAE,SAAiB,GACtB,SAAS,CAiDX"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * A connector's auth headers function threw or returned something unusable.
3
+ * The message names the connector and never the function's error, which can
4
+ * quote the credential it failed to produce; that error is the `cause`, for
5
+ * the caller's own code and never sent to the model.
6
+ */
7
+ export class ConnectorAuthError extends Error {
8
+ constructor(connector, detail, cause) {
9
+ super(`connector ${connector}: auth headers ${detail}`, cause ? { cause } : undefined);
10
+ this.name = "ConnectorAuthError";
11
+ }
12
+ }
13
+ /**
14
+ * Hand every secret part of a header value to `onSecret`: the whole value, and
15
+ * the credential after an auth scheme (`Bearer abc` also yields `abc`), so a
16
+ * server or tool echoing the bare token is masked too.
17
+ */
18
+ export function reportCredential(value, onSecret) {
19
+ onSecret(value);
20
+ const scheme = /^[A-Za-z][\w.+-]*\s+(\S.*)$/.exec(value);
21
+ if (scheme?.[1])
22
+ onSecret(scheme[1]);
23
+ }
24
+ /**
25
+ * A fetch that sets `resolve`'s headers on every request, so a credential that
26
+ * rotates during a run is picked up by the next request. A 401 asks `resolve`
27
+ * again with `refresh: true` and sends the request once more; a second 401 is
28
+ * returned as it is, for the transport to fail on. A request whose body cannot
29
+ * be sent twice (a stream) is not retried.
30
+ *
31
+ * Redirects are not followed here: unless the transport asks otherwise, the
32
+ * request goes out with `redirect: "manual"`, so a 3xx comes back to the
33
+ * transport, which follows only a same-origin one. A credential header that is
34
+ * not `Authorization` (which fetch strips on a cross-origin hop) would
35
+ * otherwise be forwarded to whatever origin the server names.
36
+ */
37
+ export function authHeadersFetch(connector, resolve, onSecret, base = fetch) {
38
+ const headersFor = async (refresh, signal) => {
39
+ let resolved;
40
+ try {
41
+ resolved = await resolve({ connector, refresh, ...(signal ? { signal } : {}) });
42
+ }
43
+ catch (err) {
44
+ throw new ConnectorAuthError(connector, "function failed", err);
45
+ }
46
+ if (!resolved || typeof resolved !== "object" || Array.isArray(resolved)) {
47
+ throw new ConnectorAuthError(connector, "function returned no headers object");
48
+ }
49
+ // Nothing is reported until every value checks out, so a bad return names
50
+ // only the header, never a value. `Headers` rejects a value holding a line
51
+ // break or NUL with a TypeError that quotes it, so that error is replaced
52
+ // and not kept as the cause.
53
+ const headers = new Headers();
54
+ for (const [key, value] of Object.entries(resolved)) {
55
+ if (typeof value !== "string") {
56
+ throw new ConnectorAuthError(connector, `function returned a non-string ${key} header`);
57
+ }
58
+ try {
59
+ headers.set(key, value);
60
+ }
61
+ catch {
62
+ throw new ConnectorAuthError(connector, `function returned an invalid ${key} header`);
63
+ }
64
+ }
65
+ // What is reported is what goes on the wire: `Headers` trims the value, and
66
+ // an echo of the trimmed credential must still be masked.
67
+ headers.forEach((value) => reportCredential(value, onSecret));
68
+ return headers;
69
+ };
70
+ const send = async (url, init, refresh) => {
71
+ const headers = new Headers(init?.headers);
72
+ (await headersFor(refresh, init?.signal)).forEach((value, key) => headers.set(key, value));
73
+ return base(url, { ...init, headers, redirect: init?.redirect ?? "manual" });
74
+ };
75
+ return async (url, init) => {
76
+ const first = await send(url, init, false);
77
+ const body = init?.body;
78
+ const replayable = body === undefined || body === null || typeof body === "string";
79
+ if (first.status !== 401 || !replayable)
80
+ return first;
81
+ await first.body?.cancel().catch(() => { });
82
+ return send(url, init, true);
83
+ };
84
+ }
85
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/connectors/auth.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,20 @@
1
1
  import type { Transport } from "@modelcontextprotocol/sdk/shared/transport.js";
2
2
  import type { ConnectorConfig } from "../types.js";
3
3
  /**
4
- * The client identity announced to every MCP server we connect to, suffixed
5
- * with the connector's own name. Servers use it for logging and telemetry.
4
+ * The default client identity announced to an MCP server, suffixed with the
5
+ * connector's own name; `ConnectorConfig.clientInfo` replaces it. Servers use
6
+ * it for logging and telemetry.
6
7
  */
7
8
  export declare const MCP_CLIENT_NAME = "harness-kernel";
9
+ /** Options for {@link connectMcp}. */
10
+ export interface ConnectMcpOptions {
11
+ /**
12
+ * Called with each credential the connection sends (a static token, or every
13
+ * value an `auth.headers` function returns, as it returns it), so the caller
14
+ * can mask it in what the run's tools hand back.
15
+ */
16
+ onSecret?: (value: string) => void;
17
+ }
8
18
  /** Per-call options for {@link McpConnection.callTool}. */
9
19
  export interface McpCallOptions {
10
20
  /** Aborts the request; the SDK notifies the server that the call was cancelled. */
@@ -17,11 +27,11 @@ export interface McpConnection {
17
27
  close(): Promise<void>;
18
28
  }
19
29
  /** Connect to an MCP connector using the transport implied by its config. */
20
- export declare function connectMcp(config: ConnectorConfig): Promise<McpConnection>;
30
+ export declare function connectMcp(config: ConnectorConfig, opts?: ConnectMcpOptions): Promise<McpConnection>;
21
31
  /**
22
32
  * Connect over an arbitrary transport. Exposed so tests (and future callers) can
23
33
  * supply an in-memory transport pair without spawning a process or hitting the
24
34
  * network.
25
35
  */
26
- export declare function connectWithTransport(name: string, transport: Transport): Promise<McpConnection>;
36
+ export declare function connectWithTransport(name: string, transport: Transport, clientInfo?: ConnectorConfig["clientInfo"]): Promise<McpConnection>;
27
37
  //# sourceMappingURL=mcpClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcpClient.d.ts","sourceRoot":"","sources":["../../src/connectors/mcpClient.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAA;AAC9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAElD;;;GAGG;AACH,eAAO,MAAM,eAAe,mBAAmB,CAAA;AAE/C,2DAA2D;AAC3D,MAAM,WAAW,cAAc;IAC7B,mFAAmF;IACnF,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED,uEAAuE;AACvE,MAAM,WAAW,aAAa;IAC5B,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/F,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACvB;AAwCD,6EAA6E;AAC7E,wBAAsB,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC,CAEhF;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,aAAa,CAAC,CAcxB"}
1
+ {"version":3,"file":"mcpClient.d.ts","sourceRoot":"","sources":["../../src/connectors/mcpClient.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAa,SAAS,EAAE,MAAM,+CAA+C,CAAA;AACzF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAGlD;;;;GAIG;AACH,eAAO,MAAM,eAAe,mBAAmB,CAAA;AAE/C,sCAAsC;AACtC,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CACnC;AAED,2DAA2D;AAC3D,MAAM,WAAW,cAAc;IAC7B,mFAAmF;IACnF,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED,uEAAuE;AACvE,MAAM,WAAW,aAAa;IAC5B,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/F,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACvB;AAyDD,6EAA6E;AAC7E,wBAAsB,UAAU,CAC9B,MAAM,EAAE,eAAe,EACvB,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC,aAAa,CAAC,CAMxB;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,SAAS,EACpB,UAAU,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC,GACzC,OAAO,CAAC,aAAa,CAAC,CAiBxB"}