@tangle-network/agent-runtime 0.289.1 → 0.290.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.
Files changed (55) hide show
  1. package/dist/{activation-LtjekQoy.js → activation-BdvuHbTG.js} +2 -2
  2. package/dist/{activation-LtjekQoy.js.map → activation-BdvuHbTG.js.map} +1 -1
  3. package/dist/{activation-BH2oPn09.d.ts → activation-qNAqp9BD.d.ts} +3 -3
  4. package/dist/agent.d.ts +2 -2
  5. package/dist/agent.js +2 -2
  6. package/dist/{coordination-driver-DyiP0EjT.js → coordination-driver-CTw92HIk.js} +2 -2
  7. package/dist/{coordination-driver-DyiP0EjT.js.map → coordination-driver-CTw92HIk.js.map} +1 -1
  8. package/dist/{delegate-DG4mL_CP.js → delegate-DhAvvPIP.js} +2 -2
  9. package/dist/{delegate-DG4mL_CP.js.map → delegate-DhAvvPIP.js.map} +1 -1
  10. package/dist/durable.d.ts +2 -2
  11. package/dist/durable.js +2 -2
  12. package/dist/{graph-C2s81zTq.js → graph-2Iea0PDT.js} +4 -4
  13. package/dist/{graph-C2s81zTq.js.map → graph-2Iea0PDT.js.map} +1 -1
  14. package/dist/{improvement-cycle-CQNxlLeK.js → improvement-cycle-CdT1IClg.js} +3 -3
  15. package/dist/{improvement-cycle-CQNxlLeK.js.map → improvement-cycle-CdT1IClg.js.map} +1 -1
  16. package/dist/{index-w7xjlAcL.d.ts → index-CNHHOhRS.d.ts} +8 -18
  17. package/dist/index.d.ts +7 -7
  18. package/dist/index.js +8 -8
  19. package/dist/intelligence.d.ts +3 -3
  20. package/dist/intelligence.js +4 -4
  21. package/dist/kernel.d.ts +4 -4
  22. package/dist/kernel.js +9 -9
  23. package/dist/{loop-runner-bin-UhqEBk50.js → loop-runner-bin-BuEFaR7Z.js} +3 -3
  24. package/dist/{loop-runner-bin-UhqEBk50.js.map → loop-runner-bin-BuEFaR7Z.js.map} +1 -1
  25. package/dist/{loop-runner-bin-DxZdgqD5.d.ts → loop-runner-bin-liVnm-Gi.d.ts} +3 -3
  26. package/dist/loop-runner-bin.d.ts +1 -1
  27. package/dist/loop-runner-bin.js +1 -1
  28. package/dist/mcp/bin.js +3 -3
  29. package/dist/mcp/index.d.ts +5 -5
  30. package/dist/mcp/index.js +4 -4
  31. package/dist/{openai-tools-CWp4nc4r.d.ts → openai-tools-De6m7S4Y.d.ts} +2 -2
  32. package/dist/profiles.d.ts +2 -2
  33. package/dist/{provision-supervisor-DxylNO_M.js → provision-supervisor-Cm2-dL4F.js} +8 -25
  34. package/dist/provision-supervisor-Cm2-dL4F.js.map +1 -0
  35. package/dist/{runtime-CoIG3eqG.js → runtime-DJ_ISfL-.js} +8 -8
  36. package/dist/{runtime-CoIG3eqG.js.map → runtime-DJ_ISfL-.js.map} +1 -1
  37. package/dist/{search-method-a40Q47iV.js → search-method-Q7X92VD3.js} +86 -48
  38. package/dist/search-method-Q7X92VD3.js.map +1 -0
  39. package/dist/{server-CN3u3vEi.js → server-CRTAzqiD.js} +3 -3
  40. package/dist/{server-CN3u3vEi.js.map → server-CRTAzqiD.js.map} +1 -1
  41. package/dist/{stream-agent-turn-DJqcRoxP.d.ts → stream-agent-turn-kseOD-Ma.d.ts} +5 -48
  42. package/dist/{substrate-C9cGwDJ5.d.ts → substrate-DFWtsdNI.d.ts} +2 -2
  43. package/dist/{supervise-BnFVp7W-.js → supervise-CClk-m6Y.js} +3 -3
  44. package/dist/{supervise-BnFVp7W-.js.map → supervise-CClk-m6Y.js.map} +1 -1
  45. package/dist/{supervisor-CSLiRg5R.js → supervisor-CQFcQhlo.js} +46 -544
  46. package/dist/supervisor-CQFcQhlo.js.map +1 -0
  47. package/dist/testing.d.ts +2 -2
  48. package/dist/testing.js +12 -12
  49. package/dist/tui/index.d.ts +1 -1
  50. package/dist/tui/index.js +1 -1
  51. package/dist/{types-BPO06pPv.d.ts → types-BFcLI8Ge.d.ts} +5 -1
  52. package/package.json +1 -1
  53. package/dist/provision-supervisor-DxylNO_M.js.map +0 -1
  54. package/dist/search-method-a40Q47iV.js.map +0 -1
  55. package/dist/supervisor-CSLiRg5R.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { $i as executableAgentProfileSnapshot, Bi as knownExecutionBindingReceipt, Ha as promptFromAgentTurnInput, In as sandboxClientAsProvider, Jr as padSpanId, Ki as runtimeOwnedExecutorExecutionBinding, Kn as InMemoryResultBlobStore, Kr as generateSpanId, La as awaitAbortable, Li as authoredProfileDigest, Ln as unavailablePauseMs, M as withDriverExecutor, Mt as createExecutor, Nt as createExecutorRegistry, Qi as unknownMaterializationReceipt, Rn as unavailableSignalOfFailure, Ta as sleep, Ua as promptOptionsFromAgentTurnInput, Ur as createOpenInferenceFileExporter, Vi as knownMaterializationReceipt, Wa as providerMessageText, Wr as createOtelExporter, Xr as toOtelAttributes, Yi as runtimeOwnedPendingExecutorMaterialization, Yr as padTraceId, Zi as unknownExecutionBindingReceipt, ca as createSandboxUsageLedger, da as mapSandboxEvent, fa as mapSandboxToolEvent, ia as readSandboxOutcome, jn as LEAF_CONTINUATION_TASK, kn as observedModelMatchesDeclared, kt as captureReusableExecutorConfig, li as harnessInvocation, oa as canonicalStreamEventFromSandboxEvent, q as openSlotGroup, qi as runtimeOwnedExecutorMaterialization, qn as InMemorySpawnJournal, r as createSupervisor, ra as projectSandboxOutcome, sa as createSandboxToolPartState, ua as isSandboxTerminalEvent, za as armDeadlineTimer } from "./supervisor-CSLiRg5R.js";
1
+ import { An as LEAF_CONTINUATION_TASK, Ba as promptFromAgentTurnInput, Ca as sleep, Fa as awaitAbortable, Fi as authoredProfileDigest, Fn as unavailablePauseMs, Gi as runtimeOwnedExecutorMaterialization, Gn as InMemorySpawnJournal, Ha as providerMessageText, Hr as createOtelExporter, In as unavailableSignalOfFailure, Jr as toOtelAttributes, Kr as padSpanId, La as armDeadlineTimer, M as withDriverExecutor, Mt as createExecutor, Nt as createExecutorRegistry, Ri as knownExecutionBindingReceipt, Va as promptOptionsFromAgentTurnInput, Vr as createOpenInferenceFileExporter, Wi as runtimeOwnedExecutorExecutionBinding, Wn as InMemoryResultBlobStore, Wr as generateSpanId, Xi as unknownMaterializationReceipt, Yi as unknownExecutionBindingReceipt, Zi as executableAgentProfileSnapshot, aa as createSandboxToolPartState, ca as isSandboxTerminalEvent, ia as canonicalStreamEventFromSandboxEvent, kn as observedModelMatchesDeclared, kt as captureReusableExecutorConfig, la as mapSandboxEvent, na as readSandboxOutcome, oa as createSandboxUsageLedger, q as openSlotGroup, qi as runtimeOwnedPendingExecutorMaterialization, qr as padTraceId, r as createSupervisor, si as harnessInvocation, ta as projectSandboxOutcome, ua as mapSandboxToolEvent, zi as knownMaterializationReceipt } from "./supervisor-CQFcQhlo.js";
2
2
  import { i as ConfigError, m as ValidationError, p as SessionMismatchError, r as BackendTransportError } from "./errors-DodWX-cb.js";
3
3
  import { a as concreteProfileModel, c as profileModelExecutionSettings, i as concreteModelId, l as profileProviderModel, o as enforceTokenLimits, s as profileBridgeWireModel, t as assertExecutableAgentProfile } from "./model-policy-CA5d1YUP.js";
4
4
  import { O as immutableCandidateValue, w as canonicalCandidateDigest$1 } from "./workspace-archive-MhowMCmp.js";
@@ -14,7 +14,7 @@ import { redact } from "@tangle-network/agent-eval/traces";
14
14
  import { assertProposalFindings } from "@tangle-network/agent-eval/analyst";
15
15
  import { SearchRecorder, aide, asha, campaignCellSearchResult, campaignScenarioIdentity, campaignSplitDigestFromIdentities, createRunCostLedger, fsCampaignStorage, isProposedCandidate, openSearchLedger, renderSearchSummary, resolveRunDir, runCampaign, runSearch, searchClaimReserveUsd, searchNodeId, searchProposalExecution, searchProposerView, searchReceiptAccounting } from "@tangle-network/agent-eval/campaign";
16
16
  import { defineEvaluationClaim, summarizeEvaluationUnits } from "@tangle-network/agent-eval/experiment";
17
- import { harnessSystemPromptIntents as harnessSystemPromptIntents$1 } from "@tangle-network/agent-interface/harness-capabilities";
17
+ import { harnessSystemPromptIntents } from "@tangle-network/agent-interface/harness-capabilities";
18
18
  //#region src/sessions.ts
19
19
  /**
20
20
  *
@@ -3574,6 +3574,7 @@ async function transientRetry(operation, options = {}) {
3574
3574
  * resource the materializer does not lower into the worker's directory.
3575
3575
  */
3576
3576
  function sharedBoxRefusal(profile) {
3577
+ if (profile.model?.metadata?.credentialSource !== void 0) return "model.metadata.credentialSource requires a dedicated provider";
3577
3578
  if (profile.harness !== HARNESS) return `harness ${String(profile.harness)} is not ${HARNESS}`;
3578
3579
  if (concreteProfileModel(profile) === void 0) return "profile names no concrete model";
3579
3580
  if (profile.model?.provider === void 0) return "profile names no model provider";
@@ -3670,26 +3671,31 @@ function sharedBoxPlacement(options) {
3670
3671
  const pool = createBoxPool(options.client, boxOptions, workersPerBox, retryDelayMs);
3671
3672
  const providerFor = (worker = {}) => {
3672
3673
  const clientName = worker.nodeId === void 0 ? void 0 : sharedWorkerClientName(worker.nodeId);
3673
- return sandboxClientAsProvider({ async create(createOptions) {
3674
- const profile = workerProfile(createOptions);
3675
- const refusal = sharedBoxRefusal(profile);
3676
- if (refusal !== void 0) throw new ValidationError(`sharedBoxPlacement: ${refusal}`);
3677
- assertWorkerCreateOptions(createOptions);
3678
- const lease = await pool.acquire();
3679
- try {
3680
- return await createWorker(lease, workerRoot, profile, {
3681
- retryDelayMs,
3682
- clientName,
3683
- unavailablePause: options.unavailablePause ?? {}
3684
- });
3685
- } catch (error) {
3686
- await lease.release();
3687
- throw error;
3688
- }
3689
- } }, {
3674
+ return {
3690
3675
  name: SHARED_PROVIDER_NAME,
3691
- capabilities: sharedBoxCapabilities()
3692
- });
3676
+ capabilities: sharedBoxCapabilities,
3677
+ async create(input) {
3678
+ const profile = workerProfile(input);
3679
+ const refusal = sharedBoxRefusal(profile);
3680
+ if (refusal !== void 0) throw new ValidationError(`sharedBoxPlacement: ${refusal}`);
3681
+ assertWorkerCreateInput(input);
3682
+ input.signal?.throwIfAborted();
3683
+ const lease = await pool.acquire();
3684
+ try {
3685
+ input.signal?.throwIfAborted();
3686
+ return await createWorker(lease, workerRoot, profile, {
3687
+ retryDelayMs,
3688
+ clientName,
3689
+ name: input.name,
3690
+ metadata: input.metadata,
3691
+ unavailablePause: options.unavailablePause ?? {}
3692
+ });
3693
+ } catch (error) {
3694
+ await lease.release();
3695
+ throw error;
3696
+ }
3697
+ }
3698
+ };
3693
3699
  };
3694
3700
  return {
3695
3701
  providerFor,
@@ -3712,7 +3718,7 @@ function sharedBoxCapabilities() {
3712
3718
  profile: {
3713
3719
  namedProfiles: false,
3714
3720
  systemPrompt: {
3715
- ...harnessSystemPromptIntents$1(HARNESS),
3721
+ ...harnessSystemPromptIntents(HARNESS),
3716
3722
  replace: false
3717
3723
  },
3718
3724
  instructions: true,
@@ -3755,9 +3761,8 @@ function sharedBoxCapabilities() {
3755
3761
  confidential: false
3756
3762
  };
3757
3763
  }
3758
- function workerProfile(createOptions) {
3759
- const raw = (createOptions?.backend)?.profile;
3760
- const parsed = agentProfileSchema.safeParse(raw);
3764
+ function workerProfile(input) {
3765
+ const parsed = agentProfileSchema.safeParse(input.profile);
3761
3766
  if (!parsed.success) throw new ValidationError("sharedBoxPlacement: an exact AgentProfile is required at create");
3762
3767
  return parsed.data;
3763
3768
  }
@@ -3767,23 +3772,35 @@ function workerProfile(createOptions) {
3767
3772
  * dropped: a worker that asked for an environment variable, a repository or its own resources
3768
3773
  * would otherwise run without them and report nothing.
3769
3774
  */
3770
- function assertWorkerCreateOptions(createOptions) {
3771
- const options = createOptions ?? {};
3775
+ function assertWorkerCreateInput(input) {
3772
3776
  for (const key of [
3773
- "git",
3774
- "fromSnapshot",
3775
- "fromSandboxId",
3776
- "environment",
3777
- "cwd",
3778
- "resources"
3779
- ]) if (options[key] !== void 0) throw new ValidationError(`sharedBoxPlacement: a shared worker cannot set ${key}`);
3780
- const env = options.env;
3781
- if (env !== void 0 && Object.keys(env).length > 0) throw new ValidationError("sharedBoxPlacement: a shared worker cannot set env");
3782
- const secrets = options.secrets;
3783
- if (Array.isArray(secrets) && secrets.length > 0) throw new ValidationError("sharedBoxPlacement: a shared worker cannot request secrets");
3784
- const backend = options.backend;
3785
- if (backend?.runtimeAttachments !== void 0) throw new ValidationError("sharedBoxPlacement: a shared worker cannot carry runtime attachments");
3786
- if (backend?.type !== void 0 && backend.type !== HARNESS) throw new ValidationError(`sharedBoxPlacement: backend ${String(backend.type)} is not ${HARNESS}`);
3777
+ "idempotencyKey",
3778
+ "workspace",
3779
+ "resources",
3780
+ "runtimeAttachments",
3781
+ "requestedId",
3782
+ "egress",
3783
+ "billingOwner"
3784
+ ]) if (input[key] !== void 0) throw new ValidationError(`sharedBoxPlacement: a shared worker cannot set ${key}`);
3785
+ if (input.env !== void 0 && Object.keys(input.env).length > 0) throw new ValidationError("sharedBoxPlacement: a shared worker cannot set env");
3786
+ if (input.secrets !== void 0 && Object.keys(input.secrets).length > 0) throw new ValidationError("sharedBoxPlacement: a shared worker cannot request secrets");
3787
+ if (input.backend !== void 0 && input.backend !== HARNESS) throw new ValidationError(`sharedBoxPlacement: backend ${input.backend} is not ${HARNESS}`);
3788
+ for (const key of Object.keys(input.providerOptions ?? {})) if (key !== "sandboxCreateOptions") throw new ValidationError(`sharedBoxPlacement: a shared worker cannot set providerOptions.${key}`);
3789
+ const box = input.providerOptions?.sandboxCreateOptions;
3790
+ if (box === void 0) return;
3791
+ if (box === null || typeof box !== "object" || Array.isArray(box)) throw new ValidationError("sharedBoxPlacement: sandboxCreateOptions must be an object");
3792
+ for (const key of Object.keys(box)) if (![
3793
+ "backend",
3794
+ "metadata",
3795
+ "name"
3796
+ ].includes(key)) throw new ValidationError(`sharedBoxPlacement: a shared worker cannot set ${key}`);
3797
+ const projected = box;
3798
+ if (projected.name !== void 0 && projected.name !== input.name) throw new ValidationError("sharedBoxPlacement: projected name must match the worker name");
3799
+ if (projected.metadata !== void 0 && (input.metadata === void 0 || canonicalCandidateDigest(projected.metadata) !== canonicalCandidateDigest(input.metadata))) throw new ValidationError("sharedBoxPlacement: projected metadata must match worker metadata");
3800
+ const backend = projected.backend;
3801
+ if (backend?.type !== void 0 && backend.type !== HARNESS) throw new ValidationError(`sharedBoxPlacement: backend ${backend.type} is not ${HARNESS}`);
3802
+ for (const key of Object.keys(backend ?? {})) if (key !== "type" && key !== "profile") throw new ValidationError(`sharedBoxPlacement: a shared worker cannot set backend.${key}`);
3803
+ if (backend?.profile !== void 0 && canonicalAgentProfileDigest(agentProfileSchema.parse(backend.profile)) !== canonicalAgentProfileDigest(workerProfile(input))) throw new ValidationError("sharedBoxPlacement: projected profile must match the exact worker profile");
3787
3804
  }
3788
3805
  function createBoxPool(client, boxOptions, workersPerBox, retryDelayMs) {
3789
3806
  const poolId = randomUUID();
@@ -4014,14 +4031,23 @@ async function createWorker(lease, root, createProfile, placement) {
4014
4031
  }
4015
4032
  return {
4016
4033
  id: `${box.id}/${workerId}`,
4017
- name: workerId,
4018
- status: "running",
4034
+ provider: SHARED_PROVIDER_NAME,
4035
+ name: placement.name ?? workerId,
4036
+ creation: "created",
4037
+ capabilities: sharedBoxCapabilities(),
4038
+ async status() {
4039
+ return released ? "stopped" : "running";
4040
+ },
4019
4041
  metadata: {
4042
+ ...placement.metadata,
4020
4043
  sharedBoxId: box.id,
4021
4044
  workerId,
4022
4045
  workerDir: paths.dir
4023
4046
  },
4024
- async *streamPrompt(message, options) {
4047
+ async *stream(input) {
4048
+ const message = promptFromAgentTurnInput(input);
4049
+ if (typeof message !== "string") throw new ValidationError("sharedBoxPlacement: a shared worker requires a text prompt");
4050
+ const options = promptOptionsFromAgentTurnInput(input);
4025
4051
  if (released) throw new ValidationError("sharedBoxPlacement: this worker was released");
4026
4052
  if (turnActive) throw new ValidationError("sharedBoxPlacement: a worker runs one turn at a time");
4027
4053
  const turnProfile = options?.backend?.profile === void 0 ? createProfile : agentProfileSchema.parse(options.backend.profile);
@@ -4048,8 +4074,14 @@ async function createWorker(lease, root, createProfile, placement) {
4048
4074
  async write(path, content) {
4049
4075
  await box.fs.write(resolvePath(path), content);
4050
4076
  },
4077
+ async placement() {
4078
+ return {
4079
+ kind: "sandbox",
4080
+ sandboxId: box.id
4081
+ };
4082
+ },
4051
4083
  async refresh() {},
4052
- async delete() {
4084
+ async destroy() {
4053
4085
  if (released) return;
4054
4086
  released = true;
4055
4087
  try {
@@ -4158,7 +4190,7 @@ function lineReader() {
4158
4190
  async function materializeWorker(box, paths, profile, task, turnModel, clientName, continueSession) {
4159
4191
  const refusal = sharedBoxRefusal(profile);
4160
4192
  if (refusal !== void 0) throw new ValidationError(`sharedBoxPlacement: ${refusal}`);
4161
- if (turnModel?.authFiles !== void 0 || turnModel?.authMode === "oauth") throw new ValidationError("sharedBoxPlacement: a shared worker cannot carry auth files");
4193
+ if (turnModel?.cliAuth !== void 0 || turnModel?.authFiles !== void 0 || turnModel?.authMode === "oauth") throw new ValidationError("sharedBoxPlacement: a shared worker cannot carry native credentials");
4162
4194
  const plan = materializeProfile(profile, HARNESS);
4163
4195
  let generated = {};
4164
4196
  for (const file of plan.files) {
@@ -4253,7 +4285,7 @@ function subagentSessionOf(part) {
4253
4285
  }
4254
4286
  }
4255
4287
  /**
4256
- * Translate opencode's JSON event lines into the Sandbox event wire the provider executor reads.
4288
+ * Translate opencode's JSON event lines into events the provider executor reads.
4257
4289
  *
4258
4290
  * Every part becomes `message.part.updated`, which is how the sidecar forwards opencode parts, so
4259
4291
  * the existing trace and progress readers decode them unchanged. Each `step-finish` part also
@@ -4379,6 +4411,12 @@ function stepReceipt(part, model) {
4379
4411
  return {
4380
4412
  type: "llm_call",
4381
4413
  ...typeof part.id === "string" ? { id: part.id } : {},
4414
+ usageMode: "delta",
4415
+ ...known ? { usage: {
4416
+ inputTokens: input + cacheRead + cacheWrite,
4417
+ outputTokens: output + reasoning,
4418
+ ...reasoning > 0 ? { reasoningTokens: reasoning } : {}
4419
+ } } : {},
4382
4420
  data: {
4383
4421
  usageMode: "delta",
4384
4422
  model,
@@ -5637,4 +5675,4 @@ function refusalText(error) {
5637
5675
  //#endregion
5638
5676
  export { sampleThenRefine as $, parseRolloutPolicy as A, officialChecksFromMeta as B, privateValuePaths as C, ROLLOUT_POLICY_EXTENSION as D, isCodeSurface as E, composeCheckSources as F, visibleCheckScore as G, sandboxCheckRunner as H, defaultExtractCandidate as I, defineStrategy as J, adaptiveRefine as K, defaultStructuralRolloutPolicy as L, structuralRolloutPolicyFromProfile as M, canDisplace as N, applyRolloutPolicyToProfile as O, compareCheckOutcomes as P, sample as Q, filterAuthoredAsserts as R, parseExecutionRef as S, assertCandidateSurfaceKind as T, selectBestIndex as U, resolveEntrySymbol as V, structuralRollout as W, refine as X, depthStrategy as Y, runAgentic as Z, sharedBoxRefusal as _, startOrResumeRuntimeSession as _t, SearchEnvironmentFault as a, profileOptimizerModelCall as at, assertCandidateValidator as b, reconcileInterruptedSearchCalls as c, strategyAuthorMethod as ct, sharedBoxLane as d, createIterableBackend as dt, ObservationError as et, subscriptionLane as f, createSandboxPromptBackend as ft, sharedBoxPlacement as g, nowIso as gt, ROUTER_CLIENT_HEADER as h, newRuntimeSession as ht, searchMethod as i, profileChatClient as it, serializeRolloutPolicy as j, normalizeRolloutPolicy as k, routerLane as l, collectAgentTurn as lt, DEFAULT_SHARED_BOX_WORKERS as m, InMemoryRuntimeSessionStore as mt, runSearchImprovement as n, observe as nt, dedicatedLane as o, copyImproveCost as ot, DEFAULT_SHARED_BOX_RESOURCES as p, normalizeBackendStreamEvent as pt, breadthStrategy as q, runtimeShipDecision as r, renderReport as rt, isSearchEnvironmentFault as s, optimizerMethod as st, isImproveSearchMethod as t, defaultAnalystInstruction as tt, searchExecutor as u, streamAgentTurn as ut, sharedWorkerClientName as v, touchSession as vt, validateProfileCandidate as w, assertProfileTrainingIsHeldOut as x, prepareProfileImprovement as y, modelAuthoredChecks as z };
5639
5677
 
5640
- //# sourceMappingURL=search-method-a40Q47iV.js.map
5678
+ //# sourceMappingURL=search-method-Q7X92VD3.js.map