@tangle-network/agent-runtime 3.0.1 → 3.0.5
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/dist/{activation-kREPGozZ.d.ts → activation-9DSd88oJ.d.ts} +2 -2
- package/dist/{activation-BE0duxMf.js → activation-gF3BVniy.js} +4 -4
- package/dist/{activation-BE0duxMf.js.map → activation-gF3BVniy.js.map} +1 -1
- package/dist/agent.d.ts +1 -1
- package/dist/agent.js +3 -3
- package/dist/{bundle-ZHO7QFZw.js → bundle-DYwJ3alD.js} +2 -2
- package/dist/{bundle-ZHO7QFZw.js.map → bundle-DYwJ3alD.js.map} +1 -1
- package/dist/candidate-execution/index.d.ts +2 -2
- package/dist/candidate-execution/index.js +4 -4
- package/dist/{coordination-manager-B9goecNC.js → coordination-manager-BFq5nNuG.js} +4 -4
- package/dist/{coordination-manager-B9goecNC.js.map → coordination-manager-BFq5nNuG.js.map} +1 -1
- package/dist/{delegate-C-wmgWCF.js → delegate-DdYbk0h0.js} +2 -2
- package/dist/{delegate-C-wmgWCF.js.map → delegate-DdYbk0h0.js.map} +1 -1
- package/dist/durable.d.ts +1 -1
- package/dist/durable.js +8 -8
- package/dist/{graph-C_564r0C.js → graph-D3XNAf_e.js} +5 -5
- package/dist/{graph-C_564r0C.js.map → graph-D3XNAf_e.js.map} +1 -1
- package/dist/{improve-BZdFdcUC.js → improve-B1ia9UsD.js} +7 -7
- package/dist/{improve-BZdFdcUC.js.map → improve-B1ia9UsD.js.map} +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.js +10 -10
- package/dist/intelligence.d.ts +4 -4
- package/dist/intelligence.js +7 -7
- package/dist/kernel.d.ts +2 -2
- package/dist/kernel.js +11 -11
- package/dist/{loop-runner-D8NZLPE5.d.ts → loop-runner-Bdbshmhl.d.ts} +2 -2
- package/dist/{loop-runner-_9_GtzO5.js → loop-runner-DFtwGqAJ.js} +2 -2
- package/dist/{loop-runner-_9_GtzO5.js.map → loop-runner-DFtwGqAJ.js.map} +1 -1
- package/dist/loop-runner-bin.d.ts +1 -1
- package/dist/loop-runner-bin.js +1 -1
- package/dist/mcp/bin.js +3 -3
- package/dist/mcp/index.d.ts +1 -1
- package/dist/mcp/index.js +6 -6
- package/dist/{prepare-CU0LM1_X.js → prepare-CNEupQW-.js} +3 -3
- package/dist/{prepare-CU0LM1_X.js.map → prepare-CNEupQW-.js.map} +1 -1
- package/dist/{profile-By6JkIQi.js → profile-Bx7E1YqJ.js} +7 -5
- package/dist/profile-Bx7E1YqJ.js.map +1 -0
- package/dist/profiles.d.ts +1 -1
- package/dist/{protected-model-port-BBsYuEY0.d.ts → protected-model-port-DEsNIYi1.d.ts} +2 -2
- package/dist/{provision-supervisor-DX4fd6Ib.js → provision-supervisor-BaVWgFww.js} +5 -5
- package/dist/{provision-supervisor-DX4fd6Ib.js.map → provision-supervisor-BaVWgFww.js.map} +1 -1
- package/dist/{run-cancellation-BTjyVpVW.js → run-cancellation-BO3M3tSr.js} +2 -2
- package/dist/{run-cancellation-BTjyVpVW.js.map → run-cancellation-BO3M3tSr.js.map} +1 -1
- package/dist/{runtime-DsH0QnW0.js → runtime-ZLDCDsau.js} +12 -12
- package/dist/{runtime-DsH0QnW0.js.map → runtime-ZLDCDsau.js.map} +1 -1
- package/dist/{sandbox-profile-compat-DxegoIK5.js → sandbox-profile-compat-oFGWESLn.js} +2 -7
- package/dist/sandbox-profile-compat-oFGWESLn.js.map +1 -0
- package/dist/{scope-BeI3tmVX.js → scope-C4ZapleE.js} +19 -34
- package/dist/scope-C4ZapleE.js.map +1 -0
- package/dist/{search-executor-C-E-umcI.js → search-executor-CFj-FOsr.js} +4 -4
- package/dist/{search-executor-C-E-umcI.js.map → search-executor-CFj-FOsr.js.map} +1 -1
- package/dist/{server-DAYqKU6o.js → server-BAmIED0S.js} +4 -4
- package/dist/{server-DAYqKU6o.js.map → server-BAmIED0S.js.map} +1 -1
- package/dist/{structural-rollout-DHdmB9MR.js → structural-rollout-9ZCuN_UE.js} +4 -4
- package/dist/{structural-rollout-DHdmB9MR.js.map → structural-rollout-9ZCuN_UE.js.map} +1 -1
- package/dist/{supervise-QzwZc6K2.js → supervise-Dvx3o587.js} +6 -6
- package/dist/{supervise-QzwZc6K2.js.map → supervise-Dvx3o587.js.map} +1 -1
- package/dist/{supervision-discovery-CyvJVbTM.js → supervision-discovery-C6WodLl8.js} +3 -3
- package/dist/{supervision-discovery-CyvJVbTM.js.map → supervision-discovery-C6WodLl8.js.map} +1 -1
- package/dist/{supervisor-REUnT7iX.js → supervisor-B5pZlE1s.js} +21 -13
- package/dist/supervisor-B5pZlE1s.js.map +1 -0
- package/dist/testing.d.ts +1 -1
- package/dist/testing.js +13 -13
- package/dist/{top-web-DRfER2jW.js → top-web-CWktzf9f.js} +4 -4
- package/dist/{top-web-DRfER2jW.js.map → top-web-CWktzf9f.js.map} +1 -1
- package/dist/tui/bin.js +3 -3
- package/dist/tui/index.d.ts +2 -2
- package/dist/tui/index.js +2 -2
- package/dist/{types-Bm4xC_e-.d.ts → types-Bn1qbOZi.d.ts} +5 -8
- package/dist/{workspace-streams-BSEkDu3H.js → workspace-streams-COSTjQLW.js} +17 -20
- package/dist/workspace-streams-COSTjQLW.js.map +1 -0
- package/dist/{workspace-streams-BdZsd12p.d.ts → workspace-streams-DbKiDOWA.d.ts} +3 -2
- package/package.json +6 -6
- package/dist/profile-By6JkIQi.js.map +0 -1
- package/dist/sandbox-profile-compat-DxegoIK5.js.map +0 -1
- package/dist/scope-BeI3tmVX.js.map +0 -1
- package/dist/supervisor-REUnT7iX.js.map +0 -1
- package/dist/workspace-streams-BSEkDu3H.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Hd as WorkerSlots, Rm as SharedBoxPlacement, Tf as BudgetPool, fo as AgentTurnUsage, fv as OtelExportConfig, hm as ExecutorConfig, po as CollectedAgentTurn, zm as SharedBoxPlacementOptions } from "./types-
|
|
1
|
+
import { Hd as WorkerSlots, Rm as SharedBoxPlacement, Tf as BudgetPool, fo as AgentTurnUsage, fv as OtelExportConfig, hm as ExecutorConfig, po as CollectedAgentTurn, zm as SharedBoxPlacementOptions } from "./types-Bn1qbOZi.js";
|
|
2
2
|
import { AgentCandidateBundle, AgentCandidateExperiment, AgentImprovementActivation, AgentImprovementActivationIntent, AgentImprovementActivationOutcome, AgentImprovementActivationResult, AgentImprovementActivationTarget, AgentImprovementEvaluation, AgentImprovementProposal, AgentImprovementReview, AgentImprovementReviewDecision, AgentImprovementSurface, AgentProfile, AgentProfileDiff, AgentProfileImprovementChange, AgentProfileImprovementExecutionRef, AgentProfileImprovementExperiment, AgentTrainingReceipt, HarnessType, ReasoningEffort, Sha256Digest } from "@tangle-network/agent-interface";
|
|
3
3
|
import { CostLedgerHandle, CostReceiptInput, MaximumCharge, PairedPromotionDecision, PendingCostCallView, ProposalFinding, RunRecord } from "@tangle-network/agent-eval";
|
|
4
4
|
import { ProposalFinding as ProposalFinding$1 } from "@tangle-network/agent-eval/analyst";
|
|
@@ -1059,4 +1059,4 @@ declare function verifyAgentImprovementActivation(input: {
|
|
|
1059
1059
|
activation: unknown;
|
|
1060
1060
|
}): AgentImprovementActivation;
|
|
1061
1061
|
export { ImproveCodeBaseOptions as $, CandidateGenerator as $t, AgentProfileMeasuredSurface as A, SearchPromotion as At, DecideSearchImprovementOptions as B, sharedBoxLane as Bt, verifyAgentImprovementProposal as C, ImproveSearchOptions as Ct, AgentImprovementActivationTargetIdentity as D, ImprovementCodeCandidate as Dt, AGENT_PROFILE_MEASURED_SURFACES as E, ImproveSurface as Et, isAgentImprovementProfileSurface as F, SearchLaneOptions as Ft, ImproveTrainingOptions as G, AgenticGeneratorOptions as Gt, decideSearchImprovement as H, DeepReadonly as Ht, isAgentProfileMeasuredSurface as I, SearchTraceOptions as It, ProfileTrainerRequest as J, AgenticGeneratorShotReceipt as Jt, ImproveTrainingResult as K, AgenticGeneratorShotDisposition as Kt, improve as L, SharedBoxSearchLane as Lt, agentImprovementProfileSurfaceDigest as M, SearchEnvironmentFault as Mt, agentImprovementProfileSurfaceInput as N, SearchLane$1 as Nt, AgentImprovementProfileSurface as O, ImprovementProfileCandidate as Ot, agentImprovementTargetProfileDiffs as P, SearchLaneKind as Pt, ImproveCandidateValidator as Q, commandVerifier as Qt, SearchMethodOptions as R, dedicatedLane as Rt, verifyAgentImprovementActivationResult as S, ImproveSearchMethod as St, AGENT_IMPROVEMENT_PROFILE_SURFACES as T, ImproveSkillsOptions as Tt, CheckpointServingPort as U, ReadonlyAgentProfile as Ut, SearchImprovementDecision as V, subscriptionLane as Vt, ControlledTrainingCommand as W, AgenticGeneratorExecutorForWorktree as Wt, createCommandProfileTrainer as X, VerifyResult as Xt, TrainingBoundaryResult as Y, Verifier as Yt, ImproveCandidateValidationInput as Z, agenticGenerator as Zt, createAgentImprovementActivationResult as _, ImproveResult as _t, AgentImprovementActivationTransitionInput as a, ImproveLineage as at, reviewAgentImprovementProposal as b, ImproveSearchAgent as bt, CreateAgentImprovementActivationOptions as c, ImproveMethodLineage as ct, ExecuteAgentImprovementActivationInput as d, ImproveMethodSource as dt, ImproveCodeOptions as et, ExecuteAgentImprovementActivationOptions as f, ImproveOptimizationRunOptions as ft, createAgentImprovementActivation as g, ImproveProfileSurface as gt, SealedCandidateActivationTransitionInput as h, ImproveProfileComponents as ht, AgentImprovementActivationTransition as i, ImproveCustomCodeGeneratorOptions as it, agentImprovementProfileDiffs as j, SearchCellContext as jt, AgentImprovementTargetProfileDiffOptions as k, SearchDispatchContext as kt, CreateAgentImprovementActivationResultOptions as l, ImproveMethodOptions as lt, ReviewAgentImprovementInput as m, ImproveProfileAgent as mt, AgentImprovementActivationResultStore as n, ImproveCodeRunOptions as nt, AgentProfileImprovementActivationOperation as o, ImproveMethodContext as ot, ProfileImprovementActivationTransitionInput as p, ImproveOptions as pt, ProfileTrainer as q, AgenticGeneratorShotExecution as qt, AgentImprovementActivationTargetPlan as r, ImproveCost as rt, AgentProfileImprovementActivationTargetPlan as s, ImproveMethodFactory as st, AgentImprovementActivationReconciliation as t, ImproveCodeResult as tt, CreateAgentImprovementProposalOptions as u, ImproveMethodResult as ut, createAgentImprovementProposal as v, ImproveRuntimeCodeGeneratorOptions as vt, verifyAgentImprovementReview as w, ImproveSearchResult as wt, verifyAgentImprovementActivation as x, ImproveSearchIdentity as xt, executeAgentImprovementActivation as y, ImproveScenarioPartitions as yt, searchMethod as z, routerLane as zt };
|
|
1062
|
-
//# sourceMappingURL=activation-
|
|
1062
|
+
//# sourceMappingURL=activation-9DSd88oJ.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { a as defaultStructuralRolloutPolicy } from "./structural-rollout-
|
|
2
|
-
import { B as verifyCanonicalCandidateDocument, L as immutableCandidateValue, N as canonicalCandidateDigest$1, P as canonicalCandidateDocument, R as omitTopLevelDigest } from "./workspace-streams-
|
|
3
|
-
import { a as applyExactAgentProfileDiff, g as omitUndefinedObjectFields, i as agentCandidateProfileAsAgentProfile, v as parseExactAgentProfile } from "./profile-
|
|
1
|
+
import { a as defaultStructuralRolloutPolicy } from "./structural-rollout-9ZCuN_UE.js";
|
|
2
|
+
import { B as verifyCanonicalCandidateDocument, L as immutableCandidateValue, N as canonicalCandidateDigest$1, P as canonicalCandidateDocument, R as omitTopLevelDigest } from "./workspace-streams-COSTjQLW.js";
|
|
3
|
+
import { a as applyExactAgentProfileDiff, g as omitUndefinedObjectFields, i as agentCandidateProfileAsAgentProfile, v as parseExactAgentProfile } from "./profile-Bx7E1YqJ.js";
|
|
4
4
|
import { agentImprovementActivationResultSchema, agentImprovementActivationSchema, agentImprovementProposalSchema, agentImprovementReviewSchema, agentProfileDiffSchema, agentProfileImprovementExecutionRefSchema, agentProfileImprovementExperimentSchema, agentProfileModelHintsSchema, agentProfileSchema, canonicalAgentProfileDigest, changedProfileImprovementSurfaces, defineAgentProfileDiff, diffAgentProfiles } from "@tangle-network/agent-interface";
|
|
5
5
|
import { assertProposalFindings } from "@tangle-network/agent-eval/analyst";
|
|
6
6
|
import { campaignSplitDigestFromIdentities } from "@tangle-network/agent-eval/campaign";
|
|
@@ -871,4 +871,4 @@ function sameOrderedValues(left, right) {
|
|
|
871
871
|
}
|
|
872
872
|
export { serializeRolloutPolicy as C, normalizeRolloutPolicy as S, agentImprovementTargetProfileDiffs as _, reviewAgentImprovementProposal as a, isAgentProfileMeasuredSurface as b, verifyAgentImprovementProposal as c, attachOptimizationActivationReceipt as d, createOptimizationActivationReceipt as f, agentImprovementProfileSurfaceInput as g, agentImprovementProfileSurfaceDigest as h, executeAgentImprovementActivation as i, verifyAgentImprovementReview as l, agentImprovementProfileDiffs as m, createAgentImprovementActivationResult as n, verifyAgentImprovementActivation as o, optimizationActivationReceiptFromMetadata as p, createAgentImprovementProposal as r, verifyAgentImprovementActivationResult as s, createAgentImprovementActivation as t, assertNoCallerOptimizationReceipt as u, assertProfileImprovementTargetsShareIdentity as v, structuralRolloutPolicyFromProfile as w, applyRolloutPolicyToProfile as x, isAgentImprovementProfileSurface as y };
|
|
873
873
|
|
|
874
|
-
//# sourceMappingURL=activation-
|
|
874
|
+
//# sourceMappingURL=activation-gF3BVniy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activation-BE0duxMf.js","names":["canonicalCandidateDigest","canonicalCandidateDigest","canonicalCandidateDigest"],"sources":["../src/improvement/rollout-policy.ts","../src/intelligence/improvement-surfaces.ts","../src/intelligence/optimization-receipt.ts","../src/intelligence/activation.ts"],"sourcesContent":["/** Serialize and apply Runtime's structural rollout profile coordinate. */\n\nimport type { MutableSurface } from '@tangle-network/agent-eval/contract'\nimport type { AgentProfile } from '@tangle-network/agent-interface'\nimport {\n defaultStructuralRolloutPolicy,\n type StructuralRolloutPolicy,\n} from '../runtime/structural-rollout'\nimport type { ReadonlyAgentProfile } from './profile-types'\n\n/** The profile extensions namespace the policy persists under. */\nexport const ROLLOUT_POLICY_EXTENSION = 'structural-rollout'\n\nconst isBoundedInt = (v: unknown, min: number): v is number =>\n typeof v === 'number' && Number.isInteger(v) && v >= min\n\n/** Parse a serialized policy surface. Returns `undefined` for non-strings,\n * malformed JSON, or values outside the policy invariants. Unknown fields are\n * dropped; supported optional fields are preserved. */\nexport function parseRolloutPolicy(surface: MutableSurface): StructuralRolloutPolicy | undefined {\n if (typeof surface !== 'string' || surface.trim().length === 0) return undefined\n let raw: unknown\n try {\n raw = JSON.parse(surface)\n } catch {\n return undefined\n }\n return normalizeRolloutPolicy(raw)\n}\n\n/** Normalize an untyped policy bag (a parsed surface or a profile extension) into\n * a full `StructuralRolloutPolicy`, defaults merged. Returns `undefined` when any\n * present dial violates the policy invariants (mirrors `resolvePolicy`: integer\n * k ≥ 1, repairRounds ≥ 0, testgen ≥ 0) — a corrupt config must read as \"not\n * configured\", never as a fabricated recipe. */\nexport function normalizeRolloutPolicy(raw: unknown): StructuralRolloutPolicy | undefined {\n if (typeof raw !== 'object' || raw === null || Array.isArray(raw)) return undefined\n const bag = raw as Record<string, unknown>\n const k = bag.k ?? defaultStructuralRolloutPolicy.k\n const repairRounds = bag.repairRounds ?? defaultStructuralRolloutPolicy.repairRounds\n const testgen = bag.testgen ?? defaultStructuralRolloutPolicy.testgen\n if (!isBoundedInt(k, 1) || !isBoundedInt(repairRounds, 0) || !isBoundedInt(testgen, 0)) {\n return undefined\n }\n return {\n k,\n repairRounds,\n testgen,\n ...(typeof bag.diverse === 'boolean' ? { diverse: bag.diverse } : {}),\n }\n}\n\n/** Stable serialization with fixed field order. */\nexport function serializeRolloutPolicy(policy: StructuralRolloutPolicy): string {\n return JSON.stringify({\n k: policy.k,\n repairRounds: policy.repairRounds,\n testgen: policy.testgen,\n ...(policy.diverse !== undefined ? { diverse: policy.diverse } : {}),\n })\n}\n\n/** Read the persisted policy off the profile. `undefined` when the profile does\n * not opt into structural rollout. */\nexport function structuralRolloutPolicyFromProfile(\n profile: ReadonlyAgentProfile,\n): StructuralRolloutPolicy | undefined {\n const bag = profile.extensions?.[ROLLOUT_POLICY_EXTENSION]\n if (bag === undefined) return undefined\n return normalizeRolloutPolicy(bag)\n}\n\n/** Persist a detached policy under the profile extension without mutating the input. */\nexport function applyRolloutPolicyToProfile(\n profile: ReadonlyAgentProfile,\n policy: StructuralRolloutPolicy,\n): AgentProfile {\n const candidate = structuredClone(profile) as AgentProfile\n const bag: Record<string, unknown> = {\n k: policy.k,\n repairRounds: policy.repairRounds,\n testgen: policy.testgen,\n ...(policy.diverse !== undefined ? { diverse: policy.diverse } : {}),\n }\n return {\n ...candidate,\n extensions: { ...candidate.extensions, [ROLLOUT_POLICY_EXTENSION]: bag },\n }\n}\n","import {\n type AgentCandidateBundle,\n type AgentCandidateExperiment,\n type AgentImprovementActivationIntent,\n type AgentImprovementActivationTarget,\n type AgentImprovementEvaluation,\n type AgentImprovementSurface,\n type AgentProfile,\n type AgentProfileDiff,\n type AgentProfileDiffRemoval,\n type AgentProfileImprovementChange,\n type AgentProfileImprovementExperiment,\n agentProfileDiffSchema,\n agentProfileSchema,\n canonicalAgentProfileDigest,\n changedProfileImprovementSurfaces,\n defineAgentProfileDiff,\n diffAgentProfiles,\n type Sha256Digest,\n} from '@tangle-network/agent-interface'\n\nimport { canonicalCandidateDigest, immutableCandidateValue } from '../candidate-execution/digest'\nimport {\n agentCandidateProfileAsAgentProfile,\n applyExactAgentProfileDiff,\n omitUndefinedObjectFields,\n parseExactAgentProfile,\n} from '../candidate-execution/profile'\nimport {\n ROLLOUT_POLICY_EXTENSION,\n structuralRolloutPolicyFromProfile,\n} from '../improvement/rollout-policy'\n\nconst changedSurfaceOrder: readonly AgentImprovementSurface[] = [\n 'prompt',\n 'skills',\n 'tools',\n 'mcp',\n 'hooks',\n 'subagents',\n 'agent-profile',\n 'memory',\n 'code',\n 'knowledge',\n 'rollout-policy',\n]\n\n/** Agent improvement surfaces delivered as exact `AgentProfileDiff` replacements. */\nexport const AGENT_IMPROVEMENT_PROFILE_SURFACES = [\n 'prompt',\n 'skills',\n 'tools',\n 'mcp',\n 'hooks',\n 'subagents',\n] as const satisfies readonly AgentImprovementSurface[]\n\nexport type AgentImprovementProfileSurface = (typeof AGENT_IMPROVEMENT_PROFILE_SURFACES)[number]\n\n/**\n * Profile changes eligible for the product-owned measured comparison path.\n * The six directly deliverable profile surfaces retain their granular labels;\n * any residual profile axis also adds the complete `agent-profile` surface.\n */\nexport const AGENT_PROFILE_MEASURED_SURFACES = [\n ...AGENT_IMPROVEMENT_PROFILE_SURFACES,\n 'agent-profile',\n] as const satisfies readonly AgentImprovementSurface[]\n\nexport type AgentProfileMeasuredSurface = (typeof AGENT_PROFILE_MEASURED_SURFACES)[number]\n\nexport interface AgentImprovementTargetProfileDiffOptions {\n id: string\n source?: AgentProfileDiff['source']\n metadata?: Record<string, unknown>\n}\n\nexport type AgentImprovementActivationTargetIdentity = Pick<\n AgentImprovementActivationTarget,\n 'surface' | 'identity'\n>\n\nexport function deriveChangedSurfaces(\n baselineBundle: AgentCandidateBundle,\n candidateBundle: AgentCandidateBundle,\n): [AgentImprovementSurface, ...AgentImprovementSurface[]] {\n if (baselineBundle.knowledge || candidateBundle.knowledge) {\n assertKnowledgeCandidatePair(baselineBundle, candidateBundle)\n }\n assertCodeCandidatePair(baselineBundle, candidateBundle)\n const baseline = improvementSurfaceValues(baselineBundle)\n const candidate = improvementSurfaceValues(candidateBundle)\n const changed = changedSurfaceOrder.filter(\n (surface) =>\n canonicalCandidateDigest(baseline[surface]) !== canonicalCandidateDigest(candidate[surface]),\n )\n if (changed.length === 0) throw new Error('candidate experiment does not change an agent surface')\n return changed as [AgentImprovementSurface, ...AgentImprovementSurface[]]\n}\n\nexport function assertAgentImprovementActivationTargets(\n surfaces: readonly AgentImprovementSurface[],\n experiment: AgentImprovementEvaluation['experiment'],\n intent: AgentImprovementActivationIntent,\n targets: readonly AgentImprovementActivationTarget[],\n): void {\n if (isProfileImprovementExperiment(experiment)) {\n assertProfileImprovementTargetsShareIdentity(targets)\n }\n const expected = new Set(surfaces)\n const actual = new Set(targets.map((target) => target.surface))\n const sourceArm = intent === 'activate-candidate' ? 'baseline' : 'candidate'\n if (\n !(isProfileImprovementExperiment(experiment)\n ? sameAgentImprovementSurfaceSet(surfaces, activationExperimentChangedSurfaces(experiment))\n : sameOrderedSurfaces(surfaces, activationExperimentChangedSurfaces(experiment))) ||\n targets.some((target) => !target.identity.trim()) ||\n targets.some(\n (target) =>\n target.expectedBaseDigest !== activationTargetDigest(experiment, sourceArm, target.surface),\n ) ||\n targets.length !== surfaces.length ||\n expected.size !== actual.size ||\n [...expected].some((surface) => !actual.has(surface))\n ) {\n throw new Error('agent improvement activation targets must cover exactly the changed surfaces')\n }\n}\n\n/** One opaque profile-state transition can change only one complete profile record. */\nexport function assertProfileImprovementTargetsShareIdentity(\n targets: readonly Pick<AgentImprovementActivationTarget, 'identity'>[],\n): void {\n if (new Set(targets.map((target) => target.identity)).size !== 1) {\n throw new Error('profile improvement activation targets must name one profile identity')\n }\n}\n\n/** Bind caller-owned target identities to the exact source state Runtime measured. */\nexport function buildAgentImprovementActivationTargets(\n surfaces: readonly AgentImprovementSurface[],\n experiment: AgentImprovementEvaluation['experiment'],\n intent: AgentImprovementActivationIntent,\n identities: readonly AgentImprovementActivationTargetIdentity[],\n): [AgentImprovementActivationTarget, ...AgentImprovementActivationTarget[]] {\n const sourceArm = intent === 'activate-candidate' ? 'baseline' : 'candidate'\n const targets = identities.map((target) => ({\n ...target,\n expectedBaseDigest: activationTargetDigest(experiment, sourceArm, target.surface),\n }))\n assertAgentImprovementActivationTargets(surfaces, experiment, intent, targets)\n return targets as [AgentImprovementActivationTarget, ...AgentImprovementActivationTarget[]]\n}\n\n/** Exact host-owned profile state for every changed profile surface. */\nexport function agentProfileImprovementStateDigest(\n experiment: AgentProfileImprovementExperiment,\n arm: 'baseline' | 'candidate',\n): Sha256Digest {\n return experiment[arm].stateDigest\n}\n\n/** Map Interface's current profile-improvement contract to Runtime-deliverable surfaces. */\nexport function profileImprovementChangedSurfaces(\n change: AgentProfileImprovementChange,\n): [AgentProfileMeasuredSurface, ...AgentProfileMeasuredSurface[]] {\n const surfaces = changedProfileImprovementSurfaces(change)\n if (\n surfaces.length === 0 ||\n !surfaces.every((surface): surface is AgentProfileMeasuredSurface =>\n isAgentProfileMeasuredSurface(surface),\n )\n ) {\n throw new Error('profile improvement experiment does not change a supported surface')\n }\n return surfaces as [AgentProfileMeasuredSurface, ...AgentProfileMeasuredSurface[]]\n}\n\nexport function agentImprovementTargetDigest(\n experiment: AgentCandidateExperiment,\n arm: 'baseline' | 'candidate',\n surface: AgentImprovementSurface,\n): Sha256Digest {\n if (surface === 'knowledge') {\n const knowledge = assertKnowledgeCandidatePair(experiment.baseline, experiment.candidate)\n return arm === 'baseline' ? knowledge.candidate.baseHash : knowledge.candidate.candidateHash\n }\n if (surface === 'code') assertCodeCandidatePair(experiment.baseline, experiment.candidate)\n return canonicalCandidateDigest(improvementSurfaceValues(experiment[arm])[surface])\n}\n\nexport function agentImprovementTargetInput(\n bundle: AgentCandidateBundle,\n surface: AgentImprovementSurface,\n): unknown {\n return improvementSurfaceValues(bundle)[surface]\n}\n\nfunction activationTargetDigest(\n experiment: AgentImprovementEvaluation['experiment'],\n arm: 'baseline' | 'candidate',\n surface: AgentImprovementSurface,\n): Sha256Digest {\n if (isProfileImprovementExperiment(experiment)) {\n if (!activationExperimentChangedSurfaces(experiment).includes(surface)) {\n throw new Error('profile improvement activation targets an unchanged surface')\n }\n return agentProfileImprovementStateDigest(experiment, arm)\n }\n return agentImprovementTargetDigest(experiment, arm, surface)\n}\n\nfunction activationExperimentChangedSurfaces(\n experiment: AgentImprovementEvaluation['experiment'],\n): [AgentImprovementSurface, ...AgentImprovementSurface[]] {\n if (!isProfileImprovementExperiment(experiment)) {\n return deriveChangedSurfaces(experiment.baseline, experiment.candidate)\n }\n return profileImprovementChangedSurfaces(experiment.change)\n}\n\nfunction isProfileImprovementExperiment(\n experiment: AgentImprovementEvaluation['experiment'],\n): experiment is AgentProfileImprovementExperiment {\n return experiment.kind === 'agent-profile-improvement-experiment'\n}\n\nfunction sameOrderedSurfaces(\n left: readonly AgentImprovementSurface[],\n right: readonly AgentImprovementSurface[],\n): boolean {\n return left.length === right.length && left.every((surface, index) => surface === right[index])\n}\n\n/** Profile-change surface order is presentation only; its measured contract is set-based. */\nexport function sameAgentImprovementSurfaceSet(\n left: readonly AgentImprovementSurface[],\n right: readonly AgentImprovementSurface[],\n): boolean {\n return left.length === right.length && left.every((surface) => right.includes(surface))\n}\n\n/** Return whether a measured surface can be delivered through an agent profile. */\nexport function isAgentImprovementProfileSurface(\n surface: AgentImprovementSurface,\n): surface is AgentImprovementProfileSurface {\n return (AGENT_IMPROVEMENT_PROFILE_SURFACES as readonly string[]).includes(surface)\n}\n\n/** Return whether a surface is eligible for shared profile measurement. */\nexport function isAgentProfileMeasuredSurface(\n surface: string,\n): surface is AgentProfileMeasuredSurface {\n return (AGENT_PROFILE_MEASURED_SURFACES as readonly string[]).includes(surface)\n}\n\n/**\n * Return the canonical current-state input for one profile-deliverable improvement target.\n * Missing slots become `null`; tools and subagents include both their direct and resource slots.\n * Unrelated profile fields are excluded. The result matches `agentImprovementTargetInput` for the\n * same profile inside a candidate bundle.\n */\nexport function agentImprovementProfileSurfaceInput(\n profile: AgentProfile,\n surface: AgentImprovementProfileSurface,\n): unknown {\n const parsed = parseExactAgentProfile(\n omitUndefinedObjectFields(profile, 'agent improvement profile'),\n 'agent improvement profile',\n )\n return immutableCandidateValue(profileSurfaceInput(parsed, surface))\n}\n\nfunction profileSurfaceInput(\n profile: AgentProfile,\n surface: AgentImprovementProfileSurface,\n): unknown {\n switch (surface) {\n case 'prompt':\n return { prompt: profile.prompt ?? null }\n case 'skills':\n return profile.resources?.skills ?? null\n case 'tools':\n return {\n tools: profile.tools ?? null,\n resources: profile.resources?.tools ?? null,\n }\n case 'mcp':\n return profile.mcp ?? null\n case 'hooks':\n return profile.hooks ?? null\n case 'subagents':\n return {\n subagents: profile.subagents ?? null,\n resources: profile.resources?.agents ?? null,\n }\n }\n}\n\n/** Return the `Sha256Digest` of one profile surface using Runtime's canonical candidate digest. */\nexport function agentImprovementProfileSurfaceDigest(\n profile: AgentProfile,\n surface: AgentImprovementProfileSurface,\n): Sha256Digest {\n return canonicalCandidateDigest(agentImprovementProfileSurfaceInput(profile, surface))\n}\n\n/**\n * Replace one measured profile surface exactly, including array-valued resources.\n * Apply the returned diffs in order: a diff applies its set before its removal,\n * so exact replacement requires a reset record followed by a set record.\n */\nexport function agentImprovementTargetProfileDiffs(\n target: {\n surface: AgentImprovementProfileSurface\n desiredInput: unknown\n },\n options: AgentImprovementTargetProfileDiffOptions,\n): [AgentProfileDiff, ...AgentProfileDiff[]] {\n const { remove, set } = improvementSurfaceReplacement(target)\n const common = {\n kind: 'agent-profile-diff' as const,\n ...(options.source ? { source: options.source } : {}),\n metadata: {\n ...(options.metadata ?? {}),\n surface: target.surface,\n },\n }\n const reset = agentProfileDiffSchema.parse(\n defineAgentProfileDiff({\n ...common,\n id: `${options.id}:${target.surface}:reset`,\n title: `Replace active ${target.surface}`,\n remove,\n }),\n ) as AgentProfileDiff\n if (!set) return [reset]\n const replacement = agentProfileDiffSchema.parse(\n defineAgentProfileDiff({\n ...common,\n id: `${options.id}:${target.surface}:set`,\n title: `Activate measured ${target.surface}`,\n set,\n }),\n ) as AgentProfileDiff\n return [reset, replacement]\n}\n\n/**\n * Derive the ordered profile patch that changes one executable profile into\n * another, then prove the patch preserves the complete candidate state.\n */\nexport function agentImprovementProfileDiffs(\n baselineInput: AgentProfile,\n candidateInput: AgentProfile,\n options: AgentImprovementTargetProfileDiffOptions,\n): [AgentProfileDiff, ...AgentProfileDiff[]] {\n const baseline = parseExactAgentProfile(\n omitUndefinedObjectFields(baselineInput, 'profile improvement baseline'),\n 'profile improvement baseline',\n )\n const candidate = parseExactAgentProfile(\n omitUndefinedObjectFields(candidateInput, 'profile improvement candidate'),\n 'profile improvement candidate',\n )\n if (canonicalAgentProfileDigest(baseline) === canonicalAgentProfileDigest(candidate)) {\n throw new Error('profile improvement candidate does not change the profile')\n }\n const completeChanges = completeAgentProfileReplacementDiffs(baseline, candidate, options)\n const applied = completeChanges.reduce(\n (profile, change) =>\n applyExactAgentProfileDiff(profile, change, 'complete profile improvement candidate change'),\n baseline,\n )\n if (canonicalAgentProfileDigest(applied) !== canonicalAgentProfileDigest(candidate)) {\n throw new Error('complete profile improvement change did not reproduce the candidate')\n }\n return completeChanges\n}\n\nfunction completeAgentProfileReplacementDiffs(\n baseline: AgentProfile,\n candidate: AgentProfile,\n options: AgentImprovementTargetProfileDiffOptions,\n): [AgentProfileDiff, ...AgentProfileDiff[]] {\n const [first, ...rest] = diffAgentProfiles(baseline, candidate).map((change) => {\n const reset = change.remove !== undefined\n return agentProfileDiffSchema.parse({\n ...change,\n ...(options.source ? { source: options.source } : {}),\n metadata: {\n ...(options.metadata ?? {}),\n surface: 'agent-profile',\n },\n id: `${options.id}:agent-profile:${reset ? 'reset' : 'set'}`,\n title: reset ? 'Reset changed agent profile fields' : 'Set changed agent profile fields',\n }) as AgentProfileDiff\n })\n if (!first) throw new Error('complete profile differ found no changed fields')\n return [first, ...rest]\n}\n\nfunction improvementSurfaceReplacement(target: {\n surface: AgentImprovementProfileSurface\n desiredInput: unknown\n}): { remove: AgentProfileDiffRemoval; set?: AgentProfile } {\n const value = target.desiredInput\n switch (target.surface) {\n case 'prompt': {\n const prompt = exactObject(value, ['prompt'], 'prompt activation input').prompt\n assertDefined(prompt, 'prompt activation input.prompt')\n return {\n remove: { prompt: true },\n ...(prompt === null ? {} : { set: parseProfileSet({ prompt }) }),\n }\n }\n case 'skills':\n assertDefined(value, 'skills activation input')\n return {\n remove: { resources: { skills: true } },\n ...(value === null ? {} : { set: parseProfileSet({ resources: { skills: value } }) }),\n }\n case 'tools': {\n const parsed = exactObject(value, ['tools', 'resources'], 'tools activation input')\n assertDefined(parsed.tools, 'tools activation input.tools')\n assertDefined(parsed.resources, 'tools activation input.resources')\n const set = {\n ...(parsed.tools === null ? {} : { tools: parsed.tools }),\n ...(parsed.resources === null ? {} : { resources: { tools: parsed.resources } }),\n }\n return {\n remove: { tools: true, resources: { tools: true } },\n ...(Object.keys(set).length === 0 ? {} : { set: parseProfileSet(set) }),\n }\n }\n case 'mcp':\n assertDefined(value, 'mcp activation input')\n return {\n remove: { mcp: true },\n ...(value === null ? {} : { set: parseProfileSet({ mcp: value }) }),\n }\n case 'hooks':\n assertDefined(value, 'hooks activation input')\n return {\n remove: { hooks: true },\n ...(value === null ? {} : { set: parseProfileSet({ hooks: value }) }),\n }\n case 'subagents': {\n const parsed = exactObject(value, ['subagents', 'resources'], 'subagents activation input')\n assertDefined(parsed.subagents, 'subagents activation input.subagents')\n assertDefined(parsed.resources, 'subagents activation input.resources')\n const set = {\n ...(parsed.subagents === null ? {} : { subagents: parsed.subagents }),\n ...(parsed.resources === null ? {} : { resources: { agents: parsed.resources } }),\n }\n return {\n remove: { subagents: true, resources: { agents: true } },\n ...(Object.keys(set).length === 0 ? {} : { set: parseProfileSet(set) }),\n }\n }\n }\n}\n\nfunction assertDefined(value: unknown, label: string): void {\n if (value === undefined) throw new Error(`${label} must not be undefined`)\n}\n\nfunction exactObject(\n value: unknown,\n keys: readonly string[],\n label: string,\n): Record<string, unknown> {\n if (!value || typeof value !== 'object' || Array.isArray(value)) {\n throw new Error(`${label} must be an object`)\n }\n const record = value as Record<string, unknown>\n const actual = Object.keys(record).sort()\n const expected = [...keys].sort()\n if (actual.length !== expected.length || actual.some((key, index) => key !== expected[index])) {\n throw new Error(`${label} must contain exactly: ${expected.join(', ')}`)\n }\n return record\n}\n\nfunction parseProfileSet(value: unknown): AgentProfile {\n return agentProfileSchema.parse(value) as AgentProfile\n}\n\nfunction assertKnowledgeCandidatePair(\n baselineBundle: AgentCandidateBundle,\n candidateBundle: AgentCandidateBundle,\n): NonNullable<AgentCandidateBundle['knowledge']> {\n const baseline = baselineBundle.knowledge\n const candidate = candidateBundle.knowledge\n if (!baseline && !candidate) {\n throw new Error('knowledge candidate pair is not present')\n }\n if (\n !baseline ||\n !candidate ||\n canonicalCandidateDigest({ candidate: baseline.candidate, evaluation: baseline.evaluation }) !==\n canonicalCandidateDigest({ candidate: candidate.candidate, evaluation: candidate.evaluation })\n ) {\n throw new Error(\n 'knowledge experiment arms must share one measured candidate and evaluation identity',\n )\n }\n return candidate\n}\n\nfunction assertCodeCandidatePair(\n baselineBundle: AgentCandidateBundle,\n candidateBundle: AgentCandidateBundle,\n): void {\n const baseline = baselineBundle.code\n const candidate = candidateBundle.code\n if (\n canonicalCandidateDigest(baseline) === canonicalCandidateDigest(candidate) ||\n candidate.kind !== 'git-patch'\n ) {\n return\n }\n const baselineTree =\n baseline.kind === 'no-op'\n ? baseline.baseTree\n : baseline.kind === 'git-patch'\n ? baseline.candidateTree\n : undefined\n const baselineRepository = baseline.kind === 'disabled' ? undefined : baseline.repository\n if (\n baselineTree !== candidate.baseTree ||\n !baselineRepository ||\n canonicalCandidateDigest(baselineRepository) !== canonicalCandidateDigest(candidate.repository)\n ) {\n throw new Error(\n 'code candidate must be based on the exact repository tree measured by the baseline arm',\n )\n }\n}\n\nfunction improvementSurfaceValues(\n bundle: AgentCandidateBundle,\n): Record<AgentImprovementSurface, unknown> {\n const profile = agentCandidateProfileAsAgentProfile(bundle.profile)\n return {\n prompt: agentImprovementProfileSurfaceInput(profile, 'prompt'),\n skills: agentImprovementProfileSurfaceInput(profile, 'skills'),\n tools: agentImprovementProfileSurfaceInput(profile, 'tools'),\n mcp: agentImprovementProfileSurfaceInput(profile, 'mcp'),\n hooks: agentImprovementProfileSurfaceInput(profile, 'hooks'),\n subagents: agentImprovementProfileSurfaceInput(profile, 'subagents'),\n 'agent-profile': { profile: opaqueProfileSlice(profile), execution: bundle.execution },\n memory: {\n instructions: profile.resources?.instructions ?? null,\n executionPolicy: bundle.memory,\n },\n code: bundle.code,\n knowledge: bundle.knowledge ?? null,\n 'rollout-policy': structuralRolloutPolicyFromProfile(profile) ?? null,\n }\n}\n\nfunction opaqueProfileSlice(profile: AgentProfile): unknown {\n const {\n prompt: _prompt,\n tools: _tools,\n mcp: _mcp,\n hooks: _hooks,\n subagents: _subagents,\n extensions,\n resources,\n ...opaqueProfile\n } = profile\n // The rollout policy is its own surface, so it must not also ride in this slice: one edit to it\n // would otherwise report two changed surfaces.\n const { [ROLLOUT_POLICY_EXTENSION]: _rolloutPolicy, ...opaqueExtensions } = extensions ?? {}\n const {\n instructions: _instructions,\n skills: _skills,\n tools: _resourceTools,\n agents: _agents,\n ...opaqueResources\n } = resources ?? {}\n return {\n ...opaqueProfile,\n ...(Object.keys(opaqueExtensions).length > 0 ? { extensions: opaqueExtensions } : {}),\n ...(Object.keys(opaqueResources).length > 0 ? { resources: opaqueResources } : {}),\n }\n}\n","import type {\n CampaignScenarioIdentity,\n OptimizationMethodComparison,\n OptimizationPackageSource,\n OptimizationTokenUsage,\n} from '@tangle-network/agent-eval/campaign'\nimport { campaignSplitDigestFromIdentities } from '@tangle-network/agent-eval/campaign'\nimport {\n type AgentCandidateJsonValue,\n type AgentImprovementMeasuredComparison,\n type AgentProfile,\n agentProfileModelHintsSchema,\n type Sha256Digest,\n} from '@tangle-network/agent-interface'\n\nimport {\n canonicalCandidateDigest,\n canonicalCandidateDocument,\n immutableCandidateValue,\n omitTopLevelDigest,\n} from '../candidate-execution/digest'\nimport type { ImproveMethodResult, ImproveScenarioPartitions } from '../improvement/improve'\n\ntype OptimizationProvenance = NonNullable<OptimizationMethodComparison['best']['provenance']>\n\nexport interface OptimizationActivationReceipt {\n kind: 'optimization-activation-receipt'\n method: string\n source: OptimizationPackageSource\n bridge?: OptimizationPackageSource\n modules?: OptimizationProvenance['modules']\n python?: OptimizationProvenance['python']\n models?: {\n candidate?: NonNullable<AgentProfile['model']>\n optimizer?: string\n }\n usage: {\n optimizerEvaluations: number\n optimizerTokens?: OptimizationTokenUsage\n }\n cost: {\n optimization: OptimizationReceiptCost\n finalTest: OptimizationReceiptCost\n total: OptimizationReceiptCost\n }\n invocation: {\n runtimeInvocationId: string\n optimizerRunId: string\n compatibleOptimizerRunId?: string\n resumed: boolean\n artifactDir: string\n }\n developmentDataDigest: Sha256Digest\n finalTestDataDigest: Sha256Digest\n scenarioPartitions: ImproveScenarioPartitions\n digest: Sha256Digest\n}\n\nexport interface OptimizationReceiptCost {\n totalUsd: number\n accountingComplete: boolean\n incompleteReasons: string[]\n}\n\nexport const optimizationReceiptMetadataKey = 'optimizationReceipt'\n\n/** Build a detached receipt only for methods backed by an identified external optimizer. */\nexport function createOptimizationActivationReceipt(\n improvement: ImproveMethodResult,\n): OptimizationActivationReceipt | undefined {\n const provenance = improvement.provenance\n if (!provenance) return undefined\n const finalTestDataDigest = improvement.lineage.finalTestSplitDigest\n if (!finalTestDataDigest) {\n throw new Error('method improvement does not retain its final-test split digest')\n }\n const optimizerModel = provenance.optimizerModel\n const candidateModel = improvement.candidate.profile.model\n\n return canonicalCandidateDocument<OptimizationActivationReceipt>({\n kind: 'optimization-activation-receipt',\n method: improvement.method,\n source: provenance.source,\n ...(provenance.bridge ? { bridge: provenance.bridge } : {}),\n ...(provenance.modules ? { modules: provenance.modules } : {}),\n ...(provenance.python ? { python: provenance.python } : {}),\n ...(candidateModel || optimizerModel\n ? {\n models: {\n ...(candidateModel ? { candidate: candidateModel } : {}),\n ...(optimizerModel ? { optimizer: optimizerModel } : {}),\n },\n }\n : {}),\n usage: {\n optimizerEvaluations: provenance.evaluationCount,\n ...(provenance.tokenUsage ? { optimizerTokens: provenance.tokenUsage } : {}),\n },\n cost: {\n optimization: receiptCost(improvement.raw.optimizationCost),\n finalTest: receiptCost(improvement.raw.testCost),\n total: receiptCost(improvement.raw.totalCost),\n },\n invocation: {\n runtimeInvocationId: improvement.lineage.invocationId,\n optimizerRunId: provenance.runId,\n ...(provenance.compatibleRunId\n ? { compatibleOptimizerRunId: provenance.compatibleRunId }\n : {}),\n resumed: provenance.resumed,\n artifactDir: provenance.artifactDir,\n },\n developmentDataDigest: improvement.lineage.developmentSplitDigest,\n finalTestDataDigest,\n scenarioPartitions: improvement.lineage.scenarioPartitions,\n }).value\n}\n\n/** Add Runtime-owned optimizer evidence without aliasing caller metadata. */\nexport function attachOptimizationActivationReceipt(\n metadata: AgentImprovementMeasuredComparison['metadata'],\n receipt: OptimizationActivationReceipt,\n): NonNullable<AgentImprovementMeasuredComparison['metadata']> {\n assertNoCallerOptimizationReceipt(metadata)\n return immutableCandidateValue({\n ...(metadata ?? {}),\n [optimizationReceiptMetadataKey]: receipt as unknown as AgentCandidateJsonValue,\n })\n}\n\nexport function assertNoCallerOptimizationReceipt(\n metadata: AgentImprovementMeasuredComparison['metadata'],\n): void {\n if (metadata && Object.hasOwn(metadata, optimizationReceiptMetadataKey)) {\n throw new Error(`candidate metadata reserves '${optimizationReceiptMetadataKey}' for Runtime`)\n }\n}\n\n/** Read and verify the optimizer evidence carried by a measured proposal. */\nexport function optimizationActivationReceiptFromMetadata(\n metadata: AgentImprovementMeasuredComparison['metadata'],\n): OptimizationActivationReceipt | undefined {\n const value = metadata?.[optimizationReceiptMetadataKey]\n if (value === undefined) return undefined\n return immutableCandidateValue(parseOptimizationActivationReceipt(value))\n}\n\nfunction parseOptimizationActivationReceipt(\n value: AgentCandidateJsonValue,\n): OptimizationActivationReceipt {\n if (!isRecord(value) || value.kind !== 'optimization-activation-receipt') {\n throw new Error('optimization receipt must be an optimization-activation-receipt')\n }\n if (\n !isNonEmptyString(value.method) ||\n !isPackageSource(value.source) ||\n (value.bridge !== undefined && !isPackageSource(value.bridge)) ||\n !isModules(value.modules) ||\n !isPythonRuntime(value.python) ||\n !isModels(value.models) ||\n !isUsage(value.usage) ||\n !isCost(value.cost) ||\n !isInvocation(value.invocation) ||\n !isSha256Digest(value.developmentDataDigest) ||\n !isSha256Digest(value.finalTestDataDigest) ||\n !isScenarioPartitions(value.scenarioPartitions) ||\n !isSha256Digest(value.digest)\n ) {\n throw new Error('optimization receipt contains invalid evidence')\n }\n const receipt = value as unknown as OptimizationActivationReceipt\n if (!hasMatchingScenarioPartitionDigests(receipt)) {\n throw new Error('optimization receipt task identities do not match its split digests')\n }\n if (canonicalCandidateDigest(omitTopLevelDigest(receipt)) !== receipt.digest) {\n throw new Error('optimization receipt digest does not match its evidence')\n }\n return receipt\n}\n\nfunction isScenarioPartitions(value: unknown): value is ImproveScenarioPartitions {\n if (!isRecord(value)) return false\n return (\n isScenarioIdentityList(value.train) &&\n isScenarioIdentityList(value.selection) &&\n isScenarioIdentityList(value.finalTest) &&\n isPositiveSafeInteger(value.optimizationReps) &&\n isPositiveSafeInteger(value.finalTestReps)\n )\n}\n\nfunction isScenarioIdentityList(value: unknown): value is CampaignScenarioIdentity[] {\n return (\n Array.isArray(value) &&\n value.every(\n (scenario) =>\n isRecord(scenario) &&\n isNonEmptyString(scenario.id) &&\n isNonEmptyString(scenario.kind) &&\n isSha256Digest(scenario.scenarioDigest),\n )\n )\n}\n\nfunction hasMatchingScenarioPartitionDigests(receipt: OptimizationActivationReceipt): boolean {\n try {\n const { scenarioPartitions } = receipt\n const developmentDataDigest = canonicalCandidateDigest({\n train: campaignSplitDigestFromIdentities(\n scenarioPartitions.train,\n scenarioPartitions.optimizationReps,\n ),\n selection: campaignSplitDigestFromIdentities(\n scenarioPartitions.selection,\n scenarioPartitions.optimizationReps,\n ),\n })\n const finalTestDataDigest = campaignSplitDigestFromIdentities(\n scenarioPartitions.finalTest,\n scenarioPartitions.finalTestReps,\n )\n return (\n receipt.developmentDataDigest === developmentDataDigest &&\n receipt.finalTestDataDigest === finalTestDataDigest\n )\n } catch {\n return false\n }\n}\n\nfunction isPackageSource(value: unknown): value is OptimizationPackageSource {\n if (\n !isRecord(value) ||\n value.kind !== 'package' ||\n (value.evidence !== 'observed' && value.evidence !== 'declared') ||\n !isNonEmptyString(value.package) ||\n !isNonEmptyString(value.version)\n ) {\n return false\n }\n return (\n isOptionalNonEmptyString(value.sourceUrl) &&\n isOptionalNonEmptyString(value.revision) &&\n (value.sourceSha256 === undefined ||\n (typeof value.sourceSha256 === 'string' && /^[0-9a-f]{64}$/.test(value.sourceSha256)))\n )\n}\n\nfunction isModules(value: unknown): boolean {\n return (\n value === undefined ||\n (Array.isArray(value) &&\n value.every(\n (module) =>\n isRecord(module) &&\n isNonEmptyString(module.module) &&\n typeof module.sourceSha256 === 'string' &&\n /^[0-9a-f]{64}$/.test(module.sourceSha256),\n ))\n )\n}\n\nfunction isPythonRuntime(value: unknown): boolean {\n return (\n value === undefined ||\n (isRecord(value) && isNonEmptyString(value.implementation) && isNonEmptyString(value.version))\n )\n}\n\nfunction isModels(value: unknown): boolean {\n return (\n value === undefined ||\n (isRecord(value) &&\n (value.candidate === undefined ||\n agentProfileModelHintsSchema.safeParse(value.candidate).success) &&\n isOptionalNonEmptyString(value.optimizer) &&\n (value.candidate !== undefined || value.optimizer !== undefined))\n )\n}\n\nfunction isUsage(value: unknown): boolean {\n if (!isRecord(value) || !isNonNegativeInteger(value.optimizerEvaluations)) return false\n if (value.optimizerTokens === undefined) return true\n const tokens = value.optimizerTokens\n if (!isRecord(tokens)) return false\n const inputTokens = tokens.inputTokens\n const outputTokens = tokens.outputTokens\n const totalTokens = tokens.totalTokens\n const calls = tokens.calls\n if (\n !isNonNegativeInteger(inputTokens) ||\n !isNonNegativeInteger(outputTokens) ||\n !isNonNegativeInteger(totalTokens) ||\n !isNonNegativeInteger(calls)\n ) {\n return false\n }\n if (\n !isOptionalNonNegativeInteger(tokens.cachedInputTokens) ||\n !isOptionalNonNegativeInteger(tokens.cacheWriteInputTokens) ||\n !isOptionalNonNegativeInteger(tokens.reasoningTokens)\n ) {\n return false\n }\n const cachedInputTokens =\n typeof tokens.cachedInputTokens === 'number' ? tokens.cachedInputTokens : 0\n const cacheWriteInputTokens =\n typeof tokens.cacheWriteInputTokens === 'number' ? tokens.cacheWriteInputTokens : 0\n const reasoningTokens = typeof tokens.reasoningTokens === 'number' ? tokens.reasoningTokens : 0\n return (\n totalTokens === inputTokens + outputTokens &&\n cachedInputTokens + cacheWriteInputTokens <= inputTokens &&\n reasoningTokens <= outputTokens &&\n (totalTokens === 0 || calls > 0)\n )\n}\n\nfunction isCost(value: unknown): boolean {\n if (\n !isRecord(value) ||\n !isCostPart(value.optimization) ||\n !isCostPart(value.finalTest) ||\n !isCostPart(value.total)\n ) {\n return false\n }\n const optimization = value.optimization as unknown as OptimizationReceiptCost\n const finalTest = value.finalTest as unknown as OptimizationReceiptCost\n const total = value.total as unknown as OptimizationReceiptCost\n return (\n approximatelyEqual(total.totalUsd, optimization.totalUsd + finalTest.totalUsd) &&\n total.accountingComplete === (optimization.accountingComplete && finalTest.accountingComplete)\n )\n}\n\nfunction isCostPart(value: unknown): boolean {\n return (\n isRecord(value) &&\n typeof value.totalUsd === 'number' &&\n Number.isFinite(value.totalUsd) &&\n value.totalUsd >= 0 &&\n typeof value.accountingComplete === 'boolean' &&\n Array.isArray(value.incompleteReasons) &&\n value.incompleteReasons.every((reason) => typeof reason === 'string')\n )\n}\n\nfunction receiptCost(value: {\n totalCostUsd: number\n accountingComplete: boolean\n incompleteReasons: string[]\n}): OptimizationReceiptCost {\n return {\n totalUsd: value.totalCostUsd,\n accountingComplete: value.accountingComplete,\n incompleteReasons: [...value.incompleteReasons],\n }\n}\n\nfunction approximatelyEqual(left: number, right: number): boolean {\n const tolerance = Number.EPSILON * Math.max(1, Math.abs(left), Math.abs(right)) * 8\n return Math.abs(left - right) <= tolerance\n}\n\nfunction isInvocation(value: unknown): boolean {\n return (\n isRecord(value) &&\n isNonEmptyString(value.runtimeInvocationId) &&\n isNonEmptyString(value.optimizerRunId) &&\n isOptionalNonEmptyString(value.compatibleOptimizerRunId) &&\n typeof value.resumed === 'boolean' &&\n isNonEmptyString(value.artifactDir)\n )\n}\n\nfunction isRecord(value: unknown): value is Record<string, AgentCandidateJsonValue> {\n return value !== null && typeof value === 'object' && !Array.isArray(value)\n}\n\nfunction isNonEmptyString(value: unknown): value is string {\n return typeof value === 'string' && value.trim().length > 0\n}\n\nfunction isOptionalNonEmptyString(value: unknown): boolean {\n return value === undefined || isNonEmptyString(value)\n}\n\nfunction isNonNegativeInteger(value: unknown): value is number {\n return typeof value === 'number' && Number.isSafeInteger(value) && value >= 0\n}\n\nfunction isPositiveSafeInteger(value: unknown): value is number {\n return typeof value === 'number' && Number.isSafeInteger(value) && value > 0\n}\n\nfunction isOptionalNonNegativeInteger(value: unknown): boolean {\n return value === undefined || isNonNegativeInteger(value)\n}\n\nfunction isSha256Digest(value: unknown): value is Sha256Digest {\n return typeof value === 'string' && /^sha256:[0-9a-f]{64}$/.test(value)\n}\n","import { assertProposalFindings, type ProposalFinding } from '@tangle-network/agent-eval/analyst'\nimport {\n verifyAgentProfileImprovementExperimentComparison,\n verifyCandidateExperimentComparison,\n} from '@tangle-network/agent-eval/contract'\nimport type {\n AgentCandidateBundle,\n AgentCandidateExperiment,\n AgentImprovementActivation,\n AgentImprovementActivationIntent,\n AgentImprovementActivationOutcome,\n AgentImprovementActivationResult,\n AgentImprovementActivationTarget,\n AgentImprovementEvaluation,\n AgentImprovementProposal,\n AgentImprovementReview,\n AgentImprovementReviewDecision,\n AgentImprovementSurface,\n AgentProfileImprovementChange,\n AgentProfileImprovementExecutionRef,\n AgentProfileImprovementExperiment,\n Sha256Digest,\n} from '@tangle-network/agent-interface'\nimport {\n agentImprovementActivationResultSchema,\n agentImprovementActivationSchema,\n agentImprovementProposalSchema,\n agentImprovementReviewSchema,\n agentProfileImprovementExecutionRefSchema,\n agentProfileImprovementExperimentSchema,\n} from '@tangle-network/agent-interface'\n\nimport {\n canonicalCandidateDigest,\n canonicalCandidateDocument,\n immutableCandidateValue,\n verifyCanonicalCandidateDocument,\n} from '../candidate-execution/digest'\nimport {\n type AgentImprovementActivationTargetIdentity,\n agentImprovementTargetDigest,\n agentImprovementTargetInput,\n agentProfileImprovementStateDigest,\n assertAgentImprovementActivationTargets,\n buildAgentImprovementActivationTargets,\n deriveChangedSurfaces,\n profileImprovementChangedSurfaces,\n sameAgentImprovementSurfaceSet,\n} from './improvement-surfaces'\nimport { optimizationActivationReceiptFromMetadata } from './optimization-receipt'\n\nexport interface CreateAgentImprovementActivationResultOptions {\n completedAt: string\n outcome: AgentImprovementActivationOutcome\n}\n\nexport interface AgentImprovementActivationTargetPlan extends AgentImprovementActivationTarget {\n desiredDigest: Sha256Digest\n /**\n * Exact measured input the product must apply to reach `desiredDigest`.\n * Transition surfaces such as code and knowledge are applied operations, so\n * their resulting state digest is not the digest of this input document.\n */\n desiredInput: unknown\n}\n\nexport type AgentProfileImprovementActivationOperation =\n | {\n kind: 'apply-change'\n changes: AgentProfileImprovementChange\n }\n | {\n /** The product must load its own saved state at `desiredStateDigest`. */\n kind: 'restore-state'\n }\n\nexport interface AgentProfileImprovementActivationTargetPlan\n extends AgentImprovementActivationTarget {\n desiredDigest: Sha256Digest\n desiredInput: AgentProfileImprovementActivationOperation\n}\n\nexport interface SealedCandidateActivationTransitionInput {\n kind: 'sealed-candidate'\n activation: AgentImprovementActivation\n candidateBundle: AgentCandidateBundle\n bundle: AgentCandidateBundle\n targets: [AgentImprovementActivationTargetPlan, ...AgentImprovementActivationTargetPlan[]]\n attemptedAt: string\n expired: boolean\n}\n\n/**\n * A measured profile change without raw profile bytes.\n * The product owns the private state lookup and atomic write.\n */\nexport interface ProfileImprovementActivationTransitionInput {\n kind: 'profile-improvement'\n activation: AgentImprovementActivation\n experiment: AgentProfileImprovementExperiment\n sourceStateDigest: Sha256Digest\n desiredStateDigest: Sha256Digest\n operation: AgentProfileImprovementActivationOperation\n targets: [\n AgentProfileImprovementActivationTargetPlan,\n ...AgentProfileImprovementActivationTargetPlan[],\n ]\n attemptedAt: string\n expired: boolean\n}\n\nexport type AgentImprovementActivationTransitionInput =\n | SealedCandidateActivationTransitionInput\n | ProfileImprovementActivationTransitionInput\n\nexport interface AgentImprovementActivationResultStore {\n load(idempotencyKey: Sha256Digest): Promise<unknown | undefined>\n putIfAbsent(result: AgentImprovementActivationResult): Promise<unknown>\n}\n\n/**\n * Product-owned or Runtime-composed transition.\n *\n * Implementations resolve a stored result for `activation.digest`, compare\n * every target, and make the write durably idempotent. Co-located targets store\n * the all-or-none write with its result. Other targets throw when result\n * storage fails so a retry can reconcile it. Runtime never invokes this write\n * function after authorization expires.\n */\nexport type AgentImprovementActivationTransition = (\n input: AgentImprovementActivationTransitionInput,\n) => Promise<unknown>\n\n/**\n * Target-read-only check for a prior exact write.\n * It may persist recovered result metadata, but must not change an activation target.\n * Return undefined only when no target write can have committed.\n */\nexport type AgentImprovementActivationReconciliation = (\n input: AgentImprovementActivationTransitionInput,\n) => Promise<unknown | undefined>\n\nexport interface ExecuteAgentImprovementActivationInput {\n proposal: AgentImprovementProposal\n review: AgentImprovementReview\n activation: AgentImprovementActivation\n}\n\nexport interface ExecuteAgentImprovementActivationOptions {\n transition: AgentImprovementActivationTransition\n reconcile?: AgentImprovementActivationReconciliation\n now?: () => Date\n}\n\n/** Create the exact result a product stores in the same transaction as its target write. */\nexport function createAgentImprovementActivationResult(\n transition: AgentImprovementActivationTransitionInput,\n options: CreateAgentImprovementActivationResultOptions,\n): AgentImprovementActivationResult {\n const activation = verifyCanonicalCandidateDocument(\n agentImprovementActivationSchema.parse(transition.activation),\n 'agent improvement activation',\n )\n assertTransitionInput(activation, transition)\n const result = agentImprovementActivationResultSchema.parse(\n canonicalCandidateDocument<AgentImprovementActivationResult>({\n kind: 'agent-improvement-activation-result',\n idempotencyKey: activation.digest,\n attemptedAt: transition.attemptedAt,\n completedAt: options.completedAt,\n outcome: options.outcome,\n }).value,\n )\n assertResultAgainstActivation(activation, result)\n assertOutcomeDesiredState(\n activation,\n result,\n new Map(transition.targets.map((target) => [targetIdentity(target), target.desiredDigest])),\n )\n return immutableCandidateValue(result)\n}\n\n/**\n * Recompute one historical activation result against the exact measured proposal and authority.\n * The result records that attempt; it is not a query of the target's current state.\n */\nexport function verifyAgentImprovementActivationResult(input: {\n proposal: unknown\n review: unknown\n activation: unknown\n result: unknown\n}): AgentImprovementActivationResult {\n const proposal = verifyAgentImprovementProposal(input.proposal)\n const activation = verifyAgentImprovementActivation(input)\n const result = verifyCanonicalCandidateDocument(\n agentImprovementActivationResultSchema.parse(input.result),\n 'agent improvement activation result',\n )\n assertResultAgainstActivation(activation, result)\n assertResultDesiredState(proposal, activation, result)\n return result\n}\n\n/** Validate and execute one product-owned activation transition. */\nexport async function executeAgentImprovementActivation(\n input: ExecuteAgentImprovementActivationInput,\n options: ExecuteAgentImprovementActivationOptions,\n): Promise<AgentImprovementActivationResult> {\n const proposal = verifyAgentImprovementProposal(input.proposal)\n const activation = verifyAgentImprovementActivation(input)\n const observedAt = (options.now ?? (() => new Date()))().toISOString()\n const attemptedAt =\n Date.parse(observedAt) < Date.parse(activation.authorizedAt)\n ? activation.authorizedAt\n : observedAt\n const expired = Date.parse(attemptedAt) >= Date.parse(activation.expiresAt)\n const transition = immutableCandidateValue<AgentImprovementActivationTransitionInput>(\n proposal.evaluation.kind === 'agent-improvement-measured-comparison'\n ? sealedCandidateTransition(proposal.evaluation.experiment, activation, attemptedAt, expired)\n : profileImprovementTransition(\n proposal.evaluation.experiment,\n activation,\n attemptedAt,\n expired,\n ),\n )\n\n if (transition.expired) {\n if (!options.reconcile) {\n return uncertainActivationResult(transition, 'RECONCILIATION_UNAVAILABLE')\n }\n let reconciled: unknown\n try {\n reconciled = await options.reconcile(transition)\n } catch {\n return uncertainActivationResult(transition, 'RECONCILIATION_THROW')\n }\n if (reconciled === undefined) {\n return createAgentImprovementActivationResult(transition, {\n completedAt: transition.attemptedAt,\n outcome: { status: 'expired' },\n })\n }\n try {\n return verifyAgentImprovementActivationResult({ ...input, result: reconciled })\n } catch {\n return uncertainActivationResult(transition, 'INVALID_RECONCILIATION')\n }\n }\n\n let rawResult: unknown\n try {\n rawResult = await options.transition(transition)\n } catch {\n return uncertainActivationResult(transition, 'TRANSITION_THROW')\n }\n try {\n return verifyAgentImprovementActivationResult({ ...input, result: rawResult })\n } catch {\n return uncertainActivationResult(transition, 'INVALID_RESULT')\n }\n}\n\nfunction sealedCandidateTransition(\n experiment: AgentCandidateExperiment,\n activation: AgentImprovementActivation,\n attemptedAt: string,\n expired: boolean,\n): SealedCandidateActivationTransitionInput {\n const targetArm = activation.intent === 'activate-candidate' ? 'candidate' : 'baseline'\n return {\n kind: 'sealed-candidate',\n activation,\n candidateBundle: experiment.candidate,\n bundle: experiment[targetArm],\n targets: activation.targets.map((target) => ({\n ...target,\n desiredDigest: agentImprovementTargetDigest(experiment, targetArm, target.surface),\n desiredInput: agentImprovementTargetInput(experiment[targetArm], target.surface),\n })) as SealedCandidateActivationTransitionInput['targets'],\n attemptedAt,\n expired,\n }\n}\n\nfunction profileImprovementTransition(\n experiment: AgentProfileImprovementExperiment,\n activation: AgentImprovementActivation,\n attemptedAt: string,\n expired: boolean,\n): ProfileImprovementActivationTransitionInput {\n const sourceArm = activation.intent === 'activate-candidate' ? 'baseline' : 'candidate'\n const targetArm = activation.intent === 'activate-candidate' ? 'candidate' : 'baseline'\n const operation = profileImprovementOperation(experiment, activation.intent)\n return {\n kind: 'profile-improvement',\n activation,\n experiment,\n sourceStateDigest: agentProfileImprovementStateDigest(experiment, sourceArm),\n desiredStateDigest: agentProfileImprovementStateDigest(experiment, targetArm),\n operation,\n targets: activation.targets.map((target) => ({\n ...target,\n desiredDigest: agentProfileImprovementStateDigest(experiment, targetArm),\n desiredInput: operation,\n })) as ProfileImprovementActivationTransitionInput['targets'],\n attemptedAt,\n expired,\n }\n}\n\nfunction profileImprovementOperation(\n experiment: AgentProfileImprovementExperiment,\n intent: AgentImprovementActivation['intent'],\n): AgentProfileImprovementActivationOperation {\n return intent === 'activate-candidate'\n ? { kind: 'apply-change', changes: experiment.change }\n : { kind: 'restore-state' }\n}\n\nfunction uncertainActivationResult(\n transition: AgentImprovementActivationTransitionInput,\n code: string,\n): AgentImprovementActivationResult {\n return createAgentImprovementActivationResult(transition, {\n completedAt: transition.attemptedAt,\n outcome: {\n status: 'indeterminate',\n code,\n message: 'The product transition did not return a trustworthy commit result.',\n },\n })\n}\n\nfunction assertTransitionInput(\n activation: AgentImprovementActivation,\n transition: AgentImprovementActivationTransitionInput,\n): void {\n if (transition.kind === 'sealed-candidate') {\n assertSealedCandidateTransitionInput(activation, transition)\n return\n }\n assertProfileImprovementTransitionInput(activation, transition)\n}\n\nfunction assertSealedCandidateTransitionInput(\n activation: AgentImprovementActivation,\n transition: SealedCandidateActivationTransitionInput,\n): void {\n assertAuthorizedTransitionTargets(activation, transition.targets)\n const desiredInputsMatch = transition.targets.every(\n (target) =>\n canonicalCandidateDigest(target.desiredInput) ===\n canonicalCandidateDigest(agentImprovementTargetInput(transition.bundle, target.surface)),\n )\n if (\n transition.expired !== Date.parse(transition.attemptedAt) >= Date.parse(activation.expiresAt) ||\n transition.candidateBundle.digest !== activation.candidateDigest ||\n !desiredInputsMatch ||\n (activation.intent === 'activate-candidate' &&\n transition.bundle.digest !== transition.candidateBundle.digest)\n ) {\n throw new Error('activation transition does not match its authorization')\n }\n}\n\nfunction assertProfileImprovementTransitionInput(\n activation: AgentImprovementActivation,\n transition: ProfileImprovementActivationTransitionInput,\n): void {\n assertAuthorizedTransitionTargets(activation, transition.targets)\n const targetsAgentProfile = activation.targets.some(\n (target) => target.surface === 'agent-profile',\n )\n const experiment = agentProfileImprovementExperimentSchema.parse(transition.experiment)\n const sourceArm = activation.intent === 'activate-candidate' ? 'baseline' : 'candidate'\n const targetArm = activation.intent === 'activate-candidate' ? 'candidate' : 'baseline'\n const sourceStateDigest = agentProfileImprovementStateDigest(experiment, sourceArm)\n const desiredStateDigest = agentProfileImprovementStateDigest(experiment, targetArm)\n const operation = profileImprovementOperation(experiment, activation.intent)\n const targetsMatch = transition.targets.every(\n (target) =>\n target.expectedBaseDigest === sourceStateDigest &&\n target.desiredDigest === desiredStateDigest &&\n canonicalCandidateDigest(target.desiredInput) === canonicalCandidateDigest(operation),\n )\n if (\n transition.expired !== Date.parse(transition.attemptedAt) >= Date.parse(activation.expiresAt) ||\n experiment.digest !== activation.experimentDigest ||\n experiment.candidate.stateDigest !== activation.candidateDigest ||\n (targetsAgentProfile &&\n (activation.executionRef === undefined ||\n canonicalCandidateDigest(activation.executionRef) !==\n canonicalCandidateDigest(experiment.executionRef))) ||\n transition.sourceStateDigest !== sourceStateDigest ||\n transition.desiredStateDigest !== desiredStateDigest ||\n canonicalCandidateDigest(transition.operation) !== canonicalCandidateDigest(operation) ||\n !targetsMatch\n ) {\n throw new Error('activation transition does not match its authorization')\n }\n}\n\nfunction assertAuthorizedTransitionTargets(\n activation: AgentImprovementActivation,\n targets: readonly AgentImprovementActivationTargetPlan[],\n): void {\n const authorized = targetMap(activation.targets)\n const planned = targetMap(targets)\n if (\n authorized.size !== planned.size ||\n [...authorized.entries()].some(\n ([identity, target]) =>\n planned.get(identity)?.expectedBaseDigest !== target.expectedBaseDigest,\n )\n ) {\n throw new Error('activation transition does not match its authorization')\n }\n}\n\nfunction assertResultAgainstActivation(\n activation: AgentImprovementActivation,\n result: AgentImprovementActivationResult,\n): void {\n const attemptedAt = Date.parse(result.attemptedAt)\n const completedAt = Date.parse(result.completedAt)\n const expiresAt = Date.parse(activation.expiresAt)\n if (\n result.idempotencyKey !== activation.digest ||\n attemptedAt < Date.parse(activation.authorizedAt) ||\n completedAt < attemptedAt\n ) {\n throw new Error('activation result does not bind its authorization')\n }\n const expired = attemptedAt >= expiresAt\n if (\n (result.outcome.status === 'expired' && !expired) ||\n (expired && !['expired', 'indeterminate', 'already-applied'].includes(result.outcome.status))\n ) {\n throw new Error('activation result does not honor its authorization expiry')\n }\n if (!('targets' in result.outcome)) return\n const authorized = targetMap(activation.targets)\n const observed = new Set(result.outcome.targets.map(targetIdentity))\n if (\n authorized.size !== observed.size ||\n [...authorized.keys()].some((identity) => !observed.has(identity))\n ) {\n throw new Error('activation result must cover every authorized target exactly once')\n }\n if (\n result.outcome.status === 'applied' &&\n result.outcome.targets.some(\n (target) =>\n target.beforeDigest !== authorized.get(targetIdentity(target))?.expectedBaseDigest,\n )\n ) {\n throw new Error('applied activation did not start from its authorized base state')\n }\n}\n\nfunction assertResultDesiredState(\n proposal: AgentImprovementProposal,\n activation: AgentImprovementActivation,\n result: AgentImprovementActivationResult,\n): void {\n if (!('targets' in result.outcome)) return\n const targetArm = activation.intent === 'activate-candidate' ? 'candidate' : 'baseline'\n const desiredStateDigest =\n proposal.evaluation.kind === 'agent-profile-improvement-measured-comparison'\n ? agentProfileImprovementStateDigest(proposal.evaluation.experiment, targetArm)\n : undefined\n const desired = new Map(\n activation.targets.map((target) => [\n targetIdentity(target),\n desiredStateDigest ??\n agentImprovementTargetDigest(\n requireSealedCandidateExperiment(proposal),\n targetArm,\n target.surface,\n ),\n ]),\n )\n assertOutcomeDesiredState(activation, result, desired)\n}\n\nfunction assertOutcomeDesiredState(\n activation: AgentImprovementActivation,\n result: AgentImprovementActivationResult,\n desired: ReadonlyMap<string, Sha256Digest>,\n): void {\n if (!('targets' in result.outcome)) return\n if (result.outcome.status === 'applied') {\n if (\n result.outcome.targets.some(\n (target) => target.afterDigest !== desired.get(targetIdentity(target)),\n )\n ) {\n throw new Error('applied activation does not match the requested bundle')\n }\n return\n }\n const allDesired = result.outcome.targets.every(\n (target) => target.currentDigest === desired.get(targetIdentity(target)),\n )\n if (result.outcome.status === 'already-applied') {\n if (!allDesired) throw new Error('already-applied activation is not at the requested state')\n return\n }\n const authorized = targetMap(activation.targets)\n const hasStaleTarget = result.outcome.targets.some(\n (target) => target.currentDigest !== authorized.get(targetIdentity(target))?.expectedBaseDigest,\n )\n if (allDesired || !hasStaleTarget) {\n throw new Error('activation conflict does not identify stale target state')\n }\n}\n\nfunction targetMap<T extends { surface: AgentImprovementSurface; identity: string }>(\n targets: readonly T[],\n): Map<string, T> {\n return new Map(targets.map((target) => [targetIdentity(target), target]))\n}\n\nfunction targetIdentity(target: { surface: AgentImprovementSurface; identity: string }): string {\n return `${target.surface}\\u0000${target.identity}`\n}\n\nexport interface CreateAgentImprovementProposalOptions {\n runId: string\n findings: readonly ProposalFinding[]\n evaluation: AgentImprovementEvaluation\n now?: () => Date\n}\n\nexport interface ReviewAgentImprovementInput {\n decision: AgentImprovementReviewDecision\n reviewedBy: string\n reason: string\n feedback?: string\n now?: () => Date\n}\n\nexport interface CreateAgentImprovementActivationOptions {\n intent: AgentImprovementActivationIntent\n /** Runtime derives each exact source digest; callers identify only the records to change. */\n targets: [AgentImprovementActivationTargetIdentity, ...AgentImprovementActivationTargetIdentity[]]\n fundingOwner: string\n authorizedBy: string\n expiresAt: string\n /** Required only when an activation targets the complete `agent-profile` surface. */\n executionRef?: AgentProfileImprovementExecutionRef\n now?: () => Date\n}\n\ntype ProposalFindingImprovementProposal = Omit<AgentImprovementProposal, 'findings'> & {\n findings: ProposalFinding[]\n}\n\n/** Create the reviewable record only from a complete, recomputable experiment result. */\nexport function createAgentImprovementProposal(\n options: CreateAgentImprovementProposalOptions,\n): AgentImprovementProposal {\n const findings = assertProposalFindings(\n options.findings,\n 'createAgentImprovementProposal findings',\n )\n const { evaluation, changedSurfaces } = validateShippableAgentImprovementEvaluation(\n options.evaluation,\n options.runId,\n 'agent improvement proposal',\n )\n return agentImprovementProposalSchema.parse(\n canonicalCandidateDocument<ProposalFindingImprovementProposal>({\n kind: 'agent-improvement-proposal',\n runId: options.runId,\n changedSurfaces,\n proposedAt: (options.now ?? (() => new Date()))().toISOString(),\n findings: [...findings],\n evaluation,\n }).value,\n )\n}\n\n/** Persist a human or tenant-policy decision bound to one exact proposal. */\nexport function reviewAgentImprovementProposal(\n inputProposal: AgentImprovementProposal,\n input: ReviewAgentImprovementInput,\n): AgentImprovementReview {\n const proposal = verifyAgentImprovementProposal(inputProposal)\n if (!input.reviewedBy.trim()) throw new Error('candidate review requires reviewedBy')\n if (!input.reason.trim()) throw new Error('candidate review requires a reason')\n if (input.decision === 'approve' && proposal.evaluation.decision.outcome !== 'ship') {\n throw new Error('candidate cannot be approved without a passing experiment')\n }\n const reviewedAt = (input.now ?? (() => new Date()))().toISOString()\n if (Date.parse(reviewedAt) < Date.parse(proposal.proposedAt)) {\n throw new Error('candidate review cannot predate its proposal')\n }\n return agentImprovementReviewSchema.parse(\n canonicalCandidateDocument<AgentImprovementReview>({\n kind: 'agent-improvement-review',\n proposalDigest: proposal.digest,\n decision: input.decision,\n reviewedBy: input.reviewedBy,\n reviewedAt,\n reason: input.reason,\n ...(input.feedback === undefined ? {} : { feedback: input.feedback }),\n }).value,\n )\n}\n\n/** Authorize product-owned writes only after the exact candidate was measured and approved. */\nexport function createAgentImprovementActivation(\n inputProposal: AgentImprovementProposal,\n inputReview: AgentImprovementReview,\n options: CreateAgentImprovementActivationOptions,\n): AgentImprovementActivation {\n const proposal = verifyAgentImprovementProposal(inputProposal)\n const review = verifyAgentImprovementReview(inputReview)\n if (review.decision !== 'approve' || review.proposalDigest !== proposal.digest) {\n throw new Error('candidate activation requires an approval for the exact proposal')\n }\n if (!options.fundingOwner.trim() || !options.authorizedBy.trim()) {\n throw new Error('candidate activation authority must be non-empty')\n }\n const experiment = proposal.evaluation.experiment\n const authorizedAt = (options.now ?? (() => new Date()))().toISOString()\n if (Date.parse(authorizedAt) < Date.parse(review.reviewedAt)) {\n throw new Error('candidate activation cannot predate its approval')\n }\n const targets = buildAgentImprovementActivationTargets(\n proposal.changedSurfaces,\n experiment,\n options.intent,\n options.targets,\n )\n const executionRef = profileActivationExecutionRef(experiment, targets, options.executionRef)\n return agentImprovementActivationSchema.parse(\n canonicalCandidateDocument<AgentImprovementActivation>({\n kind: 'agent-improvement-activation',\n proposalDigest: proposal.digest,\n reviewDigest: review.digest,\n experimentDigest: experiment.digest,\n candidateDigest: measuredCandidateDigest(proposal),\n ...(executionRef ? { executionRef } : {}),\n intent: options.intent,\n targets,\n fundingOwner: options.fundingOwner,\n authorizedBy: options.authorizedBy,\n authorizedAt,\n expiresAt: options.expiresAt,\n }).value,\n )\n}\n\n/** Validate a proposal and recompute every binding to its measured experiment. */\nexport function verifyAgentImprovementProposal(input: unknown): AgentImprovementProposal {\n const proposal = verifyCanonicalCandidateDocument(\n agentImprovementProposalSchema.parse(input),\n 'agent improvement proposal',\n )\n const { changedSurfaces } = validateShippableAgentImprovementEvaluation(\n proposal.evaluation,\n proposal.runId,\n 'agent improvement proposal',\n )\n const changedSurfacesMatch =\n proposal.evaluation.kind === 'agent-profile-improvement-measured-comparison'\n ? sameAgentImprovementSurfaceSet(proposal.changedSurfaces, changedSurfaces)\n : sameOrderedValues(proposal.changedSurfaces, changedSurfaces)\n if (!changedSurfacesMatch) {\n throw new Error('proposal changed surfaces do not match its exact experiment')\n }\n assertProposalFindings(proposal.findings, 'agent improvement proposal findings')\n return proposal\n}\n\n/** Return a sealed bundle experiment; ordinary profile changes need a product-owned executor. */\nfunction requireSealedCandidateExperiment(\n proposal: AgentImprovementProposal,\n): AgentCandidateExperiment {\n if (proposal.evaluation.kind !== 'agent-improvement-measured-comparison') {\n throw new Error(\n 'agent profile improvement activation requires a product profile-diff executor, not a sealed candidate bundle',\n )\n }\n return proposal.evaluation.experiment\n}\n\nfunction measuredCandidateDigest(proposal: AgentImprovementProposal): Sha256Digest {\n return proposal.evaluation.kind === 'agent-profile-improvement-measured-comparison'\n ? proposal.evaluation.experiment.candidate.stateDigest\n : proposal.evaluation.experiment.candidate.digest\n}\n\nfunction profileActivationExecutionRef(\n experiment: AgentImprovementEvaluation['experiment'],\n targets: AgentImprovementActivation['targets'],\n executionRef: AgentProfileImprovementExecutionRef | undefined,\n): AgentProfileImprovementExecutionRef | undefined {\n const targetsAgentProfile = targets.some((target) => target.surface === 'agent-profile')\n if (!targetsAgentProfile) {\n if (executionRef !== undefined) {\n throw new Error('profile activation executionRef is valid only for agent-profile targets')\n }\n return undefined\n }\n if (experiment.kind !== 'agent-profile-improvement-experiment') {\n throw new Error('agent-profile activation requires a measured profile experiment')\n }\n if (executionRef === undefined) {\n throw new Error('profile improvement activation requires the measured executor')\n }\n const parsed = agentProfileImprovementExecutionRefSchema.parse(executionRef)\n if (canonicalCandidateDigest(parsed) !== canonicalCandidateDigest(experiment.executionRef)) {\n throw new Error('profile improvement activation executor does not match the measurement')\n }\n return parsed\n}\n\nfunction validateShippableAgentImprovementEvaluation(\n input: unknown,\n runId: string,\n subject: string,\n): {\n evaluation: AgentImprovementEvaluation\n changedSurfaces: AgentImprovementProposal['changedSurfaces']\n} {\n const evaluation = verifyAgentImprovementEvaluation(input)\n if (evaluation.decision.outcome !== 'ship') {\n throw new Error(`${subject} requires a passing experiment`)\n }\n if (runId !== evaluation.provenance.runId) {\n throw new Error('proposal runId does not match its measured experiment')\n }\n const changedSurfaces =\n evaluation.kind === 'agent-profile-improvement-measured-comparison'\n ? profileImprovementChangedSurfaces(evaluation.experiment.change)\n : deriveChangedSurfaces(evaluation.experiment.baseline, evaluation.experiment.candidate)\n return { evaluation, changedSurfaces }\n}\n\n/** Use each owning package's complete measurement validator before a proposal is persisted. */\nfunction verifyAgentImprovementEvaluation(input: unknown): AgentImprovementEvaluation {\n if (\n typeof input === 'object' &&\n input !== null &&\n 'kind' in input &&\n input.kind === 'agent-profile-improvement-measured-comparison'\n ) {\n const evaluation = verifyAgentProfileImprovementExperimentComparison(input)\n optimizationActivationReceiptFromMetadata(evaluation.metadata)\n return evaluation\n }\n const evaluation = verifyCandidateExperimentComparison(input)\n optimizationActivationReceiptFromMetadata(evaluation.metadata)\n return evaluation\n}\n\n/** Validate the canonical identity and wire shape of an improvement review. */\nexport function verifyAgentImprovementReview(input: unknown): AgentImprovementReview {\n return verifyCanonicalCandidateDocument(\n agentImprovementReviewSchema.parse(input),\n 'agent improvement review',\n )\n}\n\n/** Validate activation authority against the exact proposal, review, experiment, and base state. */\nexport function verifyAgentImprovementActivation(input: {\n proposal: unknown\n review: unknown\n activation: unknown\n}): AgentImprovementActivation {\n const proposal = verifyAgentImprovementProposal(input.proposal)\n const review = verifyAgentImprovementReview(input.review)\n const activation = verifyCanonicalCandidateDocument(\n agentImprovementActivationSchema.parse(input.activation),\n 'agent improvement activation',\n )\n const experiment = proposal.evaluation.experiment\n if (\n review.decision !== 'approve' ||\n review.proposalDigest !== proposal.digest ||\n activation.proposalDigest !== proposal.digest ||\n activation.reviewDigest !== review.digest ||\n activation.experimentDigest !== experiment.digest ||\n activation.candidateDigest !== measuredCandidateDigest(proposal) ||\n Date.parse(review.reviewedAt) < Date.parse(proposal.proposedAt) ||\n Date.parse(activation.authorizedAt) < Date.parse(review.reviewedAt)\n ) {\n throw new Error('candidate activation does not bind the measured and approved candidate')\n }\n if (\n activation.targets.some((target) => target.surface === 'agent-profile') &&\n (proposal.evaluation.kind !== 'agent-profile-improvement-measured-comparison' ||\n activation.executionRef === undefined ||\n canonicalCandidateDigest(activation.executionRef) !==\n canonicalCandidateDigest(proposal.evaluation.experiment.executionRef))\n ) {\n throw new Error('profile activation does not bind the measured executor')\n }\n assertAgentImprovementActivationTargets(\n proposal.changedSurfaces,\n experiment,\n activation.intent,\n activation.targets,\n )\n return activation\n}\n\nfunction sameOrderedValues<T>(left: readonly T[], right: readonly T[]): boolean {\n return left.length === right.length && left.every((value, index) => value === right[index])\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"activation-gF3BVniy.js","names":["canonicalCandidateDigest","canonicalCandidateDigest","canonicalCandidateDigest"],"sources":["../src/improvement/rollout-policy.ts","../src/intelligence/improvement-surfaces.ts","../src/intelligence/optimization-receipt.ts","../src/intelligence/activation.ts"],"sourcesContent":["/** Serialize and apply Runtime's structural rollout profile coordinate. */\n\nimport type { MutableSurface } from '@tangle-network/agent-eval/contract'\nimport type { AgentProfile } from '@tangle-network/agent-interface'\nimport {\n defaultStructuralRolloutPolicy,\n type StructuralRolloutPolicy,\n} from '../runtime/structural-rollout'\nimport type { ReadonlyAgentProfile } from './profile-types'\n\n/** The profile extensions namespace the policy persists under. */\nexport const ROLLOUT_POLICY_EXTENSION = 'structural-rollout'\n\nconst isBoundedInt = (v: unknown, min: number): v is number =>\n typeof v === 'number' && Number.isInteger(v) && v >= min\n\n/** Parse a serialized policy surface. Returns `undefined` for non-strings,\n * malformed JSON, or values outside the policy invariants. Unknown fields are\n * dropped; supported optional fields are preserved. */\nexport function parseRolloutPolicy(surface: MutableSurface): StructuralRolloutPolicy | undefined {\n if (typeof surface !== 'string' || surface.trim().length === 0) return undefined\n let raw: unknown\n try {\n raw = JSON.parse(surface)\n } catch {\n return undefined\n }\n return normalizeRolloutPolicy(raw)\n}\n\n/** Normalize an untyped policy bag (a parsed surface or a profile extension) into\n * a full `StructuralRolloutPolicy`, defaults merged. Returns `undefined` when any\n * present dial violates the policy invariants (mirrors `resolvePolicy`: integer\n * k ≥ 1, repairRounds ≥ 0, testgen ≥ 0) — a corrupt config must read as \"not\n * configured\", never as a fabricated recipe. */\nexport function normalizeRolloutPolicy(raw: unknown): StructuralRolloutPolicy | undefined {\n if (typeof raw !== 'object' || raw === null || Array.isArray(raw)) return undefined\n const bag = raw as Record<string, unknown>\n const k = bag.k ?? defaultStructuralRolloutPolicy.k\n const repairRounds = bag.repairRounds ?? defaultStructuralRolloutPolicy.repairRounds\n const testgen = bag.testgen ?? defaultStructuralRolloutPolicy.testgen\n if (!isBoundedInt(k, 1) || !isBoundedInt(repairRounds, 0) || !isBoundedInt(testgen, 0)) {\n return undefined\n }\n return {\n k,\n repairRounds,\n testgen,\n ...(typeof bag.diverse === 'boolean' ? { diverse: bag.diverse } : {}),\n }\n}\n\n/** Stable serialization with fixed field order. */\nexport function serializeRolloutPolicy(policy: StructuralRolloutPolicy): string {\n return JSON.stringify({\n k: policy.k,\n repairRounds: policy.repairRounds,\n testgen: policy.testgen,\n ...(policy.diverse !== undefined ? { diverse: policy.diverse } : {}),\n })\n}\n\n/** Read the persisted policy off the profile. `undefined` when the profile does\n * not opt into structural rollout. */\nexport function structuralRolloutPolicyFromProfile(\n profile: ReadonlyAgentProfile,\n): StructuralRolloutPolicy | undefined {\n const bag = profile.extensions?.[ROLLOUT_POLICY_EXTENSION]\n if (bag === undefined) return undefined\n return normalizeRolloutPolicy(bag)\n}\n\n/** Persist a detached policy under the profile extension without mutating the input. */\nexport function applyRolloutPolicyToProfile(\n profile: ReadonlyAgentProfile,\n policy: StructuralRolloutPolicy,\n): AgentProfile {\n const candidate = structuredClone(profile) as AgentProfile\n const bag: Record<string, unknown> = {\n k: policy.k,\n repairRounds: policy.repairRounds,\n testgen: policy.testgen,\n ...(policy.diverse !== undefined ? { diverse: policy.diverse } : {}),\n }\n return {\n ...candidate,\n extensions: { ...candidate.extensions, [ROLLOUT_POLICY_EXTENSION]: bag },\n }\n}\n","import {\n type AgentCandidateBundle,\n type AgentCandidateExperiment,\n type AgentImprovementActivationIntent,\n type AgentImprovementActivationTarget,\n type AgentImprovementEvaluation,\n type AgentImprovementSurface,\n type AgentProfile,\n type AgentProfileDiff,\n type AgentProfileDiffRemoval,\n type AgentProfileImprovementChange,\n type AgentProfileImprovementExperiment,\n agentProfileDiffSchema,\n agentProfileSchema,\n canonicalAgentProfileDigest,\n changedProfileImprovementSurfaces,\n defineAgentProfileDiff,\n diffAgentProfiles,\n type Sha256Digest,\n} from '@tangle-network/agent-interface'\n\nimport { canonicalCandidateDigest, immutableCandidateValue } from '../candidate-execution/digest'\nimport {\n agentCandidateProfileAsAgentProfile,\n applyExactAgentProfileDiff,\n omitUndefinedObjectFields,\n parseExactAgentProfile,\n} from '../candidate-execution/profile'\nimport {\n ROLLOUT_POLICY_EXTENSION,\n structuralRolloutPolicyFromProfile,\n} from '../improvement/rollout-policy'\n\nconst changedSurfaceOrder: readonly AgentImprovementSurface[] = [\n 'prompt',\n 'skills',\n 'tools',\n 'mcp',\n 'hooks',\n 'subagents',\n 'agent-profile',\n 'memory',\n 'code',\n 'knowledge',\n 'rollout-policy',\n]\n\n/** Agent improvement surfaces delivered as exact `AgentProfileDiff` replacements. */\nexport const AGENT_IMPROVEMENT_PROFILE_SURFACES = [\n 'prompt',\n 'skills',\n 'tools',\n 'mcp',\n 'hooks',\n 'subagents',\n] as const satisfies readonly AgentImprovementSurface[]\n\nexport type AgentImprovementProfileSurface = (typeof AGENT_IMPROVEMENT_PROFILE_SURFACES)[number]\n\n/**\n * Profile changes eligible for the product-owned measured comparison path.\n * The six directly deliverable profile surfaces retain their granular labels;\n * any residual profile axis also adds the complete `agent-profile` surface.\n */\nexport const AGENT_PROFILE_MEASURED_SURFACES = [\n ...AGENT_IMPROVEMENT_PROFILE_SURFACES,\n 'agent-profile',\n] as const satisfies readonly AgentImprovementSurface[]\n\nexport type AgentProfileMeasuredSurface = (typeof AGENT_PROFILE_MEASURED_SURFACES)[number]\n\nexport interface AgentImprovementTargetProfileDiffOptions {\n id: string\n source?: AgentProfileDiff['source']\n metadata?: Record<string, unknown>\n}\n\nexport type AgentImprovementActivationTargetIdentity = Pick<\n AgentImprovementActivationTarget,\n 'surface' | 'identity'\n>\n\nexport function deriveChangedSurfaces(\n baselineBundle: AgentCandidateBundle,\n candidateBundle: AgentCandidateBundle,\n): [AgentImprovementSurface, ...AgentImprovementSurface[]] {\n if (baselineBundle.knowledge || candidateBundle.knowledge) {\n assertKnowledgeCandidatePair(baselineBundle, candidateBundle)\n }\n assertCodeCandidatePair(baselineBundle, candidateBundle)\n const baseline = improvementSurfaceValues(baselineBundle)\n const candidate = improvementSurfaceValues(candidateBundle)\n const changed = changedSurfaceOrder.filter(\n (surface) =>\n canonicalCandidateDigest(baseline[surface]) !== canonicalCandidateDigest(candidate[surface]),\n )\n if (changed.length === 0) throw new Error('candidate experiment does not change an agent surface')\n return changed as [AgentImprovementSurface, ...AgentImprovementSurface[]]\n}\n\nexport function assertAgentImprovementActivationTargets(\n surfaces: readonly AgentImprovementSurface[],\n experiment: AgentImprovementEvaluation['experiment'],\n intent: AgentImprovementActivationIntent,\n targets: readonly AgentImprovementActivationTarget[],\n): void {\n if (isProfileImprovementExperiment(experiment)) {\n assertProfileImprovementTargetsShareIdentity(targets)\n }\n const expected = new Set(surfaces)\n const actual = new Set(targets.map((target) => target.surface))\n const sourceArm = intent === 'activate-candidate' ? 'baseline' : 'candidate'\n if (\n !(isProfileImprovementExperiment(experiment)\n ? sameAgentImprovementSurfaceSet(surfaces, activationExperimentChangedSurfaces(experiment))\n : sameOrderedSurfaces(surfaces, activationExperimentChangedSurfaces(experiment))) ||\n targets.some((target) => !target.identity.trim()) ||\n targets.some(\n (target) =>\n target.expectedBaseDigest !== activationTargetDigest(experiment, sourceArm, target.surface),\n ) ||\n targets.length !== surfaces.length ||\n expected.size !== actual.size ||\n [...expected].some((surface) => !actual.has(surface))\n ) {\n throw new Error('agent improvement activation targets must cover exactly the changed surfaces')\n }\n}\n\n/** One opaque profile-state transition can change only one complete profile record. */\nexport function assertProfileImprovementTargetsShareIdentity(\n targets: readonly Pick<AgentImprovementActivationTarget, 'identity'>[],\n): void {\n if (new Set(targets.map((target) => target.identity)).size !== 1) {\n throw new Error('profile improvement activation targets must name one profile identity')\n }\n}\n\n/** Bind caller-owned target identities to the exact source state Runtime measured. */\nexport function buildAgentImprovementActivationTargets(\n surfaces: readonly AgentImprovementSurface[],\n experiment: AgentImprovementEvaluation['experiment'],\n intent: AgentImprovementActivationIntent,\n identities: readonly AgentImprovementActivationTargetIdentity[],\n): [AgentImprovementActivationTarget, ...AgentImprovementActivationTarget[]] {\n const sourceArm = intent === 'activate-candidate' ? 'baseline' : 'candidate'\n const targets = identities.map((target) => ({\n ...target,\n expectedBaseDigest: activationTargetDigest(experiment, sourceArm, target.surface),\n }))\n assertAgentImprovementActivationTargets(surfaces, experiment, intent, targets)\n return targets as [AgentImprovementActivationTarget, ...AgentImprovementActivationTarget[]]\n}\n\n/** Exact host-owned profile state for every changed profile surface. */\nexport function agentProfileImprovementStateDigest(\n experiment: AgentProfileImprovementExperiment,\n arm: 'baseline' | 'candidate',\n): Sha256Digest {\n return experiment[arm].stateDigest\n}\n\n/** Map Interface's current profile-improvement contract to Runtime-deliverable surfaces. */\nexport function profileImprovementChangedSurfaces(\n change: AgentProfileImprovementChange,\n): [AgentProfileMeasuredSurface, ...AgentProfileMeasuredSurface[]] {\n const surfaces = changedProfileImprovementSurfaces(change)\n if (\n surfaces.length === 0 ||\n !surfaces.every((surface): surface is AgentProfileMeasuredSurface =>\n isAgentProfileMeasuredSurface(surface),\n )\n ) {\n throw new Error('profile improvement experiment does not change a supported surface')\n }\n return surfaces as [AgentProfileMeasuredSurface, ...AgentProfileMeasuredSurface[]]\n}\n\nexport function agentImprovementTargetDigest(\n experiment: AgentCandidateExperiment,\n arm: 'baseline' | 'candidate',\n surface: AgentImprovementSurface,\n): Sha256Digest {\n if (surface === 'knowledge') {\n const knowledge = assertKnowledgeCandidatePair(experiment.baseline, experiment.candidate)\n return arm === 'baseline' ? knowledge.candidate.baseHash : knowledge.candidate.candidateHash\n }\n if (surface === 'code') assertCodeCandidatePair(experiment.baseline, experiment.candidate)\n return canonicalCandidateDigest(improvementSurfaceValues(experiment[arm])[surface])\n}\n\nexport function agentImprovementTargetInput(\n bundle: AgentCandidateBundle,\n surface: AgentImprovementSurface,\n): unknown {\n return improvementSurfaceValues(bundle)[surface]\n}\n\nfunction activationTargetDigest(\n experiment: AgentImprovementEvaluation['experiment'],\n arm: 'baseline' | 'candidate',\n surface: AgentImprovementSurface,\n): Sha256Digest {\n if (isProfileImprovementExperiment(experiment)) {\n if (!activationExperimentChangedSurfaces(experiment).includes(surface)) {\n throw new Error('profile improvement activation targets an unchanged surface')\n }\n return agentProfileImprovementStateDigest(experiment, arm)\n }\n return agentImprovementTargetDigest(experiment, arm, surface)\n}\n\nfunction activationExperimentChangedSurfaces(\n experiment: AgentImprovementEvaluation['experiment'],\n): [AgentImprovementSurface, ...AgentImprovementSurface[]] {\n if (!isProfileImprovementExperiment(experiment)) {\n return deriveChangedSurfaces(experiment.baseline, experiment.candidate)\n }\n return profileImprovementChangedSurfaces(experiment.change)\n}\n\nfunction isProfileImprovementExperiment(\n experiment: AgentImprovementEvaluation['experiment'],\n): experiment is AgentProfileImprovementExperiment {\n return experiment.kind === 'agent-profile-improvement-experiment'\n}\n\nfunction sameOrderedSurfaces(\n left: readonly AgentImprovementSurface[],\n right: readonly AgentImprovementSurface[],\n): boolean {\n return left.length === right.length && left.every((surface, index) => surface === right[index])\n}\n\n/** Profile-change surface order is presentation only; its measured contract is set-based. */\nexport function sameAgentImprovementSurfaceSet(\n left: readonly AgentImprovementSurface[],\n right: readonly AgentImprovementSurface[],\n): boolean {\n return left.length === right.length && left.every((surface) => right.includes(surface))\n}\n\n/** Return whether a measured surface can be delivered through an agent profile. */\nexport function isAgentImprovementProfileSurface(\n surface: AgentImprovementSurface,\n): surface is AgentImprovementProfileSurface {\n return (AGENT_IMPROVEMENT_PROFILE_SURFACES as readonly string[]).includes(surface)\n}\n\n/** Return whether a surface is eligible for shared profile measurement. */\nexport function isAgentProfileMeasuredSurface(\n surface: string,\n): surface is AgentProfileMeasuredSurface {\n return (AGENT_PROFILE_MEASURED_SURFACES as readonly string[]).includes(surface)\n}\n\n/**\n * Return the canonical current-state input for one profile-deliverable improvement target.\n * Missing slots become `null`; tools and subagents include both their direct and resource slots.\n * Unrelated profile fields are excluded. The result matches `agentImprovementTargetInput` for the\n * same profile inside a candidate bundle.\n */\nexport function agentImprovementProfileSurfaceInput(\n profile: AgentProfile,\n surface: AgentImprovementProfileSurface,\n): unknown {\n const parsed = parseExactAgentProfile(\n omitUndefinedObjectFields(profile, 'agent improvement profile'),\n 'agent improvement profile',\n )\n return immutableCandidateValue(profileSurfaceInput(parsed, surface))\n}\n\nfunction profileSurfaceInput(\n profile: AgentProfile,\n surface: AgentImprovementProfileSurface,\n): unknown {\n switch (surface) {\n case 'prompt':\n return { prompt: profile.prompt ?? null }\n case 'skills':\n return profile.resources?.skills ?? null\n case 'tools':\n return {\n tools: profile.tools ?? null,\n resources: profile.resources?.tools ?? null,\n }\n case 'mcp':\n return profile.mcp ?? null\n case 'hooks':\n return profile.hooks ?? null\n case 'subagents':\n return {\n subagents: profile.subagents ?? null,\n resources: profile.resources?.agents ?? null,\n }\n }\n}\n\n/** Return the `Sha256Digest` of one profile surface using Runtime's canonical candidate digest. */\nexport function agentImprovementProfileSurfaceDigest(\n profile: AgentProfile,\n surface: AgentImprovementProfileSurface,\n): Sha256Digest {\n return canonicalCandidateDigest(agentImprovementProfileSurfaceInput(profile, surface))\n}\n\n/**\n * Replace one measured profile surface exactly, including array-valued resources.\n * Apply the returned diffs in order: a diff applies its set before its removal,\n * so exact replacement requires a reset record followed by a set record.\n */\nexport function agentImprovementTargetProfileDiffs(\n target: {\n surface: AgentImprovementProfileSurface\n desiredInput: unknown\n },\n options: AgentImprovementTargetProfileDiffOptions,\n): [AgentProfileDiff, ...AgentProfileDiff[]] {\n const { remove, set } = improvementSurfaceReplacement(target)\n const common = {\n kind: 'agent-profile-diff' as const,\n ...(options.source ? { source: options.source } : {}),\n metadata: {\n ...(options.metadata ?? {}),\n surface: target.surface,\n },\n }\n const reset = agentProfileDiffSchema.parse(\n defineAgentProfileDiff({\n ...common,\n id: `${options.id}:${target.surface}:reset`,\n title: `Replace active ${target.surface}`,\n remove,\n }),\n ) as AgentProfileDiff\n if (!set) return [reset]\n const replacement = agentProfileDiffSchema.parse(\n defineAgentProfileDiff({\n ...common,\n id: `${options.id}:${target.surface}:set`,\n title: `Activate measured ${target.surface}`,\n set,\n }),\n ) as AgentProfileDiff\n return [reset, replacement]\n}\n\n/**\n * Derive the ordered profile patch that changes one executable profile into\n * another, then prove the patch preserves the complete candidate state.\n */\nexport function agentImprovementProfileDiffs(\n baselineInput: AgentProfile,\n candidateInput: AgentProfile,\n options: AgentImprovementTargetProfileDiffOptions,\n): [AgentProfileDiff, ...AgentProfileDiff[]] {\n const baseline = parseExactAgentProfile(\n omitUndefinedObjectFields(baselineInput, 'profile improvement baseline'),\n 'profile improvement baseline',\n )\n const candidate = parseExactAgentProfile(\n omitUndefinedObjectFields(candidateInput, 'profile improvement candidate'),\n 'profile improvement candidate',\n )\n if (canonicalAgentProfileDigest(baseline) === canonicalAgentProfileDigest(candidate)) {\n throw new Error('profile improvement candidate does not change the profile')\n }\n const completeChanges = completeAgentProfileReplacementDiffs(baseline, candidate, options)\n const applied = completeChanges.reduce(\n (profile, change) =>\n applyExactAgentProfileDiff(profile, change, 'complete profile improvement candidate change'),\n baseline,\n )\n if (canonicalAgentProfileDigest(applied) !== canonicalAgentProfileDigest(candidate)) {\n throw new Error('complete profile improvement change did not reproduce the candidate')\n }\n return completeChanges\n}\n\nfunction completeAgentProfileReplacementDiffs(\n baseline: AgentProfile,\n candidate: AgentProfile,\n options: AgentImprovementTargetProfileDiffOptions,\n): [AgentProfileDiff, ...AgentProfileDiff[]] {\n const [first, ...rest] = diffAgentProfiles(baseline, candidate).map((change) => {\n const reset = change.remove !== undefined\n return agentProfileDiffSchema.parse({\n ...change,\n ...(options.source ? { source: options.source } : {}),\n metadata: {\n ...(options.metadata ?? {}),\n surface: 'agent-profile',\n },\n id: `${options.id}:agent-profile:${reset ? 'reset' : 'set'}`,\n title: reset ? 'Reset changed agent profile fields' : 'Set changed agent profile fields',\n }) as AgentProfileDiff\n })\n if (!first) throw new Error('complete profile differ found no changed fields')\n return [first, ...rest]\n}\n\nfunction improvementSurfaceReplacement(target: {\n surface: AgentImprovementProfileSurface\n desiredInput: unknown\n}): { remove: AgentProfileDiffRemoval; set?: AgentProfile } {\n const value = target.desiredInput\n switch (target.surface) {\n case 'prompt': {\n const prompt = exactObject(value, ['prompt'], 'prompt activation input').prompt\n assertDefined(prompt, 'prompt activation input.prompt')\n return {\n remove: { prompt: true },\n ...(prompt === null ? {} : { set: parseProfileSet({ prompt }) }),\n }\n }\n case 'skills':\n assertDefined(value, 'skills activation input')\n return {\n remove: { resources: { skills: true } },\n ...(value === null ? {} : { set: parseProfileSet({ resources: { skills: value } }) }),\n }\n case 'tools': {\n const parsed = exactObject(value, ['tools', 'resources'], 'tools activation input')\n assertDefined(parsed.tools, 'tools activation input.tools')\n assertDefined(parsed.resources, 'tools activation input.resources')\n const set = {\n ...(parsed.tools === null ? {} : { tools: parsed.tools }),\n ...(parsed.resources === null ? {} : { resources: { tools: parsed.resources } }),\n }\n return {\n remove: { tools: true, resources: { tools: true } },\n ...(Object.keys(set).length === 0 ? {} : { set: parseProfileSet(set) }),\n }\n }\n case 'mcp':\n assertDefined(value, 'mcp activation input')\n return {\n remove: { mcp: true },\n ...(value === null ? {} : { set: parseProfileSet({ mcp: value }) }),\n }\n case 'hooks':\n assertDefined(value, 'hooks activation input')\n return {\n remove: { hooks: true },\n ...(value === null ? {} : { set: parseProfileSet({ hooks: value }) }),\n }\n case 'subagents': {\n const parsed = exactObject(value, ['subagents', 'resources'], 'subagents activation input')\n assertDefined(parsed.subagents, 'subagents activation input.subagents')\n assertDefined(parsed.resources, 'subagents activation input.resources')\n const set = {\n ...(parsed.subagents === null ? {} : { subagents: parsed.subagents }),\n ...(parsed.resources === null ? {} : { resources: { agents: parsed.resources } }),\n }\n return {\n remove: { subagents: true, resources: { agents: true } },\n ...(Object.keys(set).length === 0 ? {} : { set: parseProfileSet(set) }),\n }\n }\n }\n}\n\nfunction assertDefined(value: unknown, label: string): void {\n if (value === undefined) throw new Error(`${label} must not be undefined`)\n}\n\nfunction exactObject(\n value: unknown,\n keys: readonly string[],\n label: string,\n): Record<string, unknown> {\n if (!value || typeof value !== 'object' || Array.isArray(value)) {\n throw new Error(`${label} must be an object`)\n }\n const record = value as Record<string, unknown>\n const actual = Object.keys(record).sort()\n const expected = [...keys].sort()\n if (actual.length !== expected.length || actual.some((key, index) => key !== expected[index])) {\n throw new Error(`${label} must contain exactly: ${expected.join(', ')}`)\n }\n return record\n}\n\nfunction parseProfileSet(value: unknown): AgentProfile {\n return agentProfileSchema.parse(value) as AgentProfile\n}\n\nfunction assertKnowledgeCandidatePair(\n baselineBundle: AgentCandidateBundle,\n candidateBundle: AgentCandidateBundle,\n): NonNullable<AgentCandidateBundle['knowledge']> {\n const baseline = baselineBundle.knowledge\n const candidate = candidateBundle.knowledge\n if (!baseline && !candidate) {\n throw new Error('knowledge candidate pair is not present')\n }\n if (\n !baseline ||\n !candidate ||\n canonicalCandidateDigest({ candidate: baseline.candidate, evaluation: baseline.evaluation }) !==\n canonicalCandidateDigest({ candidate: candidate.candidate, evaluation: candidate.evaluation })\n ) {\n throw new Error(\n 'knowledge experiment arms must share one measured candidate and evaluation identity',\n )\n }\n return candidate\n}\n\nfunction assertCodeCandidatePair(\n baselineBundle: AgentCandidateBundle,\n candidateBundle: AgentCandidateBundle,\n): void {\n const baseline = baselineBundle.code\n const candidate = candidateBundle.code\n if (\n canonicalCandidateDigest(baseline) === canonicalCandidateDigest(candidate) ||\n candidate.kind !== 'git-patch'\n ) {\n return\n }\n const baselineTree =\n baseline.kind === 'no-op'\n ? baseline.baseTree\n : baseline.kind === 'git-patch'\n ? baseline.candidateTree\n : undefined\n const baselineRepository = baseline.kind === 'disabled' ? undefined : baseline.repository\n if (\n baselineTree !== candidate.baseTree ||\n !baselineRepository ||\n canonicalCandidateDigest(baselineRepository) !== canonicalCandidateDigest(candidate.repository)\n ) {\n throw new Error(\n 'code candidate must be based on the exact repository tree measured by the baseline arm',\n )\n }\n}\n\nfunction improvementSurfaceValues(\n bundle: AgentCandidateBundle,\n): Record<AgentImprovementSurface, unknown> {\n const profile = agentCandidateProfileAsAgentProfile(bundle.profile)\n return {\n prompt: agentImprovementProfileSurfaceInput(profile, 'prompt'),\n skills: agentImprovementProfileSurfaceInput(profile, 'skills'),\n tools: agentImprovementProfileSurfaceInput(profile, 'tools'),\n mcp: agentImprovementProfileSurfaceInput(profile, 'mcp'),\n hooks: agentImprovementProfileSurfaceInput(profile, 'hooks'),\n subagents: agentImprovementProfileSurfaceInput(profile, 'subagents'),\n 'agent-profile': { profile: opaqueProfileSlice(profile), execution: bundle.execution },\n memory: {\n instructions: profile.resources?.instructions ?? null,\n executionPolicy: bundle.memory,\n },\n code: bundle.code,\n knowledge: bundle.knowledge ?? null,\n 'rollout-policy': structuralRolloutPolicyFromProfile(profile) ?? null,\n }\n}\n\nfunction opaqueProfileSlice(profile: AgentProfile): unknown {\n const {\n prompt: _prompt,\n tools: _tools,\n mcp: _mcp,\n hooks: _hooks,\n subagents: _subagents,\n extensions,\n resources,\n ...opaqueProfile\n } = profile\n // The rollout policy is its own surface, so it must not also ride in this slice: one edit to it\n // would otherwise report two changed surfaces.\n const { [ROLLOUT_POLICY_EXTENSION]: _rolloutPolicy, ...opaqueExtensions } = extensions ?? {}\n const {\n instructions: _instructions,\n skills: _skills,\n tools: _resourceTools,\n agents: _agents,\n ...opaqueResources\n } = resources ?? {}\n return {\n ...opaqueProfile,\n ...(Object.keys(opaqueExtensions).length > 0 ? { extensions: opaqueExtensions } : {}),\n ...(Object.keys(opaqueResources).length > 0 ? { resources: opaqueResources } : {}),\n }\n}\n","import type {\n CampaignScenarioIdentity,\n OptimizationMethodComparison,\n OptimizationPackageSource,\n OptimizationTokenUsage,\n} from '@tangle-network/agent-eval/campaign'\nimport { campaignSplitDigestFromIdentities } from '@tangle-network/agent-eval/campaign'\nimport {\n type AgentCandidateJsonValue,\n type AgentImprovementMeasuredComparison,\n type AgentProfile,\n agentProfileModelHintsSchema,\n type Sha256Digest,\n} from '@tangle-network/agent-interface'\n\nimport {\n canonicalCandidateDigest,\n canonicalCandidateDocument,\n immutableCandidateValue,\n omitTopLevelDigest,\n} from '../candidate-execution/digest'\nimport type { ImproveMethodResult, ImproveScenarioPartitions } from '../improvement/improve'\n\ntype OptimizationProvenance = NonNullable<OptimizationMethodComparison['best']['provenance']>\n\nexport interface OptimizationActivationReceipt {\n kind: 'optimization-activation-receipt'\n method: string\n source: OptimizationPackageSource\n bridge?: OptimizationPackageSource\n modules?: OptimizationProvenance['modules']\n python?: OptimizationProvenance['python']\n models?: {\n candidate?: NonNullable<AgentProfile['model']>\n optimizer?: string\n }\n usage: {\n optimizerEvaluations: number\n optimizerTokens?: OptimizationTokenUsage\n }\n cost: {\n optimization: OptimizationReceiptCost\n finalTest: OptimizationReceiptCost\n total: OptimizationReceiptCost\n }\n invocation: {\n runtimeInvocationId: string\n optimizerRunId: string\n compatibleOptimizerRunId?: string\n resumed: boolean\n artifactDir: string\n }\n developmentDataDigest: Sha256Digest\n finalTestDataDigest: Sha256Digest\n scenarioPartitions: ImproveScenarioPartitions\n digest: Sha256Digest\n}\n\nexport interface OptimizationReceiptCost {\n totalUsd: number\n accountingComplete: boolean\n incompleteReasons: string[]\n}\n\nexport const optimizationReceiptMetadataKey = 'optimizationReceipt'\n\n/** Build a detached receipt only for methods backed by an identified external optimizer. */\nexport function createOptimizationActivationReceipt(\n improvement: ImproveMethodResult,\n): OptimizationActivationReceipt | undefined {\n const provenance = improvement.provenance\n if (!provenance) return undefined\n const finalTestDataDigest = improvement.lineage.finalTestSplitDigest\n if (!finalTestDataDigest) {\n throw new Error('method improvement does not retain its final-test split digest')\n }\n const optimizerModel = provenance.optimizerModel\n const candidateModel = improvement.candidate.profile.model\n\n return canonicalCandidateDocument<OptimizationActivationReceipt>({\n kind: 'optimization-activation-receipt',\n method: improvement.method,\n source: provenance.source,\n ...(provenance.bridge ? { bridge: provenance.bridge } : {}),\n ...(provenance.modules ? { modules: provenance.modules } : {}),\n ...(provenance.python ? { python: provenance.python } : {}),\n ...(candidateModel || optimizerModel\n ? {\n models: {\n ...(candidateModel ? { candidate: candidateModel } : {}),\n ...(optimizerModel ? { optimizer: optimizerModel } : {}),\n },\n }\n : {}),\n usage: {\n optimizerEvaluations: provenance.evaluationCount,\n ...(provenance.tokenUsage ? { optimizerTokens: provenance.tokenUsage } : {}),\n },\n cost: {\n optimization: receiptCost(improvement.raw.optimizationCost),\n finalTest: receiptCost(improvement.raw.testCost),\n total: receiptCost(improvement.raw.totalCost),\n },\n invocation: {\n runtimeInvocationId: improvement.lineage.invocationId,\n optimizerRunId: provenance.runId,\n ...(provenance.compatibleRunId\n ? { compatibleOptimizerRunId: provenance.compatibleRunId }\n : {}),\n resumed: provenance.resumed,\n artifactDir: provenance.artifactDir,\n },\n developmentDataDigest: improvement.lineage.developmentSplitDigest,\n finalTestDataDigest,\n scenarioPartitions: improvement.lineage.scenarioPartitions,\n }).value\n}\n\n/** Add Runtime-owned optimizer evidence without aliasing caller metadata. */\nexport function attachOptimizationActivationReceipt(\n metadata: AgentImprovementMeasuredComparison['metadata'],\n receipt: OptimizationActivationReceipt,\n): NonNullable<AgentImprovementMeasuredComparison['metadata']> {\n assertNoCallerOptimizationReceipt(metadata)\n return immutableCandidateValue({\n ...(metadata ?? {}),\n [optimizationReceiptMetadataKey]: receipt as unknown as AgentCandidateJsonValue,\n })\n}\n\nexport function assertNoCallerOptimizationReceipt(\n metadata: AgentImprovementMeasuredComparison['metadata'],\n): void {\n if (metadata && Object.hasOwn(metadata, optimizationReceiptMetadataKey)) {\n throw new Error(`candidate metadata reserves '${optimizationReceiptMetadataKey}' for Runtime`)\n }\n}\n\n/** Read and verify the optimizer evidence carried by a measured proposal. */\nexport function optimizationActivationReceiptFromMetadata(\n metadata: AgentImprovementMeasuredComparison['metadata'],\n): OptimizationActivationReceipt | undefined {\n const value = metadata?.[optimizationReceiptMetadataKey]\n if (value === undefined) return undefined\n return immutableCandidateValue(parseOptimizationActivationReceipt(value))\n}\n\nfunction parseOptimizationActivationReceipt(\n value: AgentCandidateJsonValue,\n): OptimizationActivationReceipt {\n if (!isRecord(value) || value.kind !== 'optimization-activation-receipt') {\n throw new Error('optimization receipt must be an optimization-activation-receipt')\n }\n if (\n !isNonEmptyString(value.method) ||\n !isPackageSource(value.source) ||\n (value.bridge !== undefined && !isPackageSource(value.bridge)) ||\n !isModules(value.modules) ||\n !isPythonRuntime(value.python) ||\n !isModels(value.models) ||\n !isUsage(value.usage) ||\n !isCost(value.cost) ||\n !isInvocation(value.invocation) ||\n !isSha256Digest(value.developmentDataDigest) ||\n !isSha256Digest(value.finalTestDataDigest) ||\n !isScenarioPartitions(value.scenarioPartitions) ||\n !isSha256Digest(value.digest)\n ) {\n throw new Error('optimization receipt contains invalid evidence')\n }\n const receipt = value as unknown as OptimizationActivationReceipt\n if (!hasMatchingScenarioPartitionDigests(receipt)) {\n throw new Error('optimization receipt task identities do not match its split digests')\n }\n if (canonicalCandidateDigest(omitTopLevelDigest(receipt)) !== receipt.digest) {\n throw new Error('optimization receipt digest does not match its evidence')\n }\n return receipt\n}\n\nfunction isScenarioPartitions(value: unknown): value is ImproveScenarioPartitions {\n if (!isRecord(value)) return false\n return (\n isScenarioIdentityList(value.train) &&\n isScenarioIdentityList(value.selection) &&\n isScenarioIdentityList(value.finalTest) &&\n isPositiveSafeInteger(value.optimizationReps) &&\n isPositiveSafeInteger(value.finalTestReps)\n )\n}\n\nfunction isScenarioIdentityList(value: unknown): value is CampaignScenarioIdentity[] {\n return (\n Array.isArray(value) &&\n value.every(\n (scenario) =>\n isRecord(scenario) &&\n isNonEmptyString(scenario.id) &&\n isNonEmptyString(scenario.kind) &&\n isSha256Digest(scenario.scenarioDigest),\n )\n )\n}\n\nfunction hasMatchingScenarioPartitionDigests(receipt: OptimizationActivationReceipt): boolean {\n try {\n const { scenarioPartitions } = receipt\n const developmentDataDigest = canonicalCandidateDigest({\n train: campaignSplitDigestFromIdentities(\n scenarioPartitions.train,\n scenarioPartitions.optimizationReps,\n ),\n selection: campaignSplitDigestFromIdentities(\n scenarioPartitions.selection,\n scenarioPartitions.optimizationReps,\n ),\n })\n const finalTestDataDigest = campaignSplitDigestFromIdentities(\n scenarioPartitions.finalTest,\n scenarioPartitions.finalTestReps,\n )\n return (\n receipt.developmentDataDigest === developmentDataDigest &&\n receipt.finalTestDataDigest === finalTestDataDigest\n )\n } catch {\n return false\n }\n}\n\nfunction isPackageSource(value: unknown): value is OptimizationPackageSource {\n if (\n !isRecord(value) ||\n value.kind !== 'package' ||\n (value.evidence !== 'observed' && value.evidence !== 'declared') ||\n !isNonEmptyString(value.package) ||\n !isNonEmptyString(value.version)\n ) {\n return false\n }\n return (\n isOptionalNonEmptyString(value.sourceUrl) &&\n isOptionalNonEmptyString(value.revision) &&\n (value.sourceSha256 === undefined ||\n (typeof value.sourceSha256 === 'string' && /^[0-9a-f]{64}$/.test(value.sourceSha256)))\n )\n}\n\nfunction isModules(value: unknown): boolean {\n return (\n value === undefined ||\n (Array.isArray(value) &&\n value.every(\n (module) =>\n isRecord(module) &&\n isNonEmptyString(module.module) &&\n typeof module.sourceSha256 === 'string' &&\n /^[0-9a-f]{64}$/.test(module.sourceSha256),\n ))\n )\n}\n\nfunction isPythonRuntime(value: unknown): boolean {\n return (\n value === undefined ||\n (isRecord(value) && isNonEmptyString(value.implementation) && isNonEmptyString(value.version))\n )\n}\n\nfunction isModels(value: unknown): boolean {\n return (\n value === undefined ||\n (isRecord(value) &&\n (value.candidate === undefined ||\n agentProfileModelHintsSchema.safeParse(value.candidate).success) &&\n isOptionalNonEmptyString(value.optimizer) &&\n (value.candidate !== undefined || value.optimizer !== undefined))\n )\n}\n\nfunction isUsage(value: unknown): boolean {\n if (!isRecord(value) || !isNonNegativeInteger(value.optimizerEvaluations)) return false\n if (value.optimizerTokens === undefined) return true\n const tokens = value.optimizerTokens\n if (!isRecord(tokens)) return false\n const inputTokens = tokens.inputTokens\n const outputTokens = tokens.outputTokens\n const totalTokens = tokens.totalTokens\n const calls = tokens.calls\n if (\n !isNonNegativeInteger(inputTokens) ||\n !isNonNegativeInteger(outputTokens) ||\n !isNonNegativeInteger(totalTokens) ||\n !isNonNegativeInteger(calls)\n ) {\n return false\n }\n if (\n !isOptionalNonNegativeInteger(tokens.cachedInputTokens) ||\n !isOptionalNonNegativeInteger(tokens.cacheWriteInputTokens) ||\n !isOptionalNonNegativeInteger(tokens.reasoningTokens)\n ) {\n return false\n }\n const cachedInputTokens =\n typeof tokens.cachedInputTokens === 'number' ? tokens.cachedInputTokens : 0\n const cacheWriteInputTokens =\n typeof tokens.cacheWriteInputTokens === 'number' ? tokens.cacheWriteInputTokens : 0\n const reasoningTokens = typeof tokens.reasoningTokens === 'number' ? tokens.reasoningTokens : 0\n return (\n totalTokens === inputTokens + outputTokens &&\n cachedInputTokens + cacheWriteInputTokens <= inputTokens &&\n reasoningTokens <= outputTokens &&\n (totalTokens === 0 || calls > 0)\n )\n}\n\nfunction isCost(value: unknown): boolean {\n if (\n !isRecord(value) ||\n !isCostPart(value.optimization) ||\n !isCostPart(value.finalTest) ||\n !isCostPart(value.total)\n ) {\n return false\n }\n const optimization = value.optimization as unknown as OptimizationReceiptCost\n const finalTest = value.finalTest as unknown as OptimizationReceiptCost\n const total = value.total as unknown as OptimizationReceiptCost\n return (\n approximatelyEqual(total.totalUsd, optimization.totalUsd + finalTest.totalUsd) &&\n total.accountingComplete === (optimization.accountingComplete && finalTest.accountingComplete)\n )\n}\n\nfunction isCostPart(value: unknown): boolean {\n return (\n isRecord(value) &&\n typeof value.totalUsd === 'number' &&\n Number.isFinite(value.totalUsd) &&\n value.totalUsd >= 0 &&\n typeof value.accountingComplete === 'boolean' &&\n Array.isArray(value.incompleteReasons) &&\n value.incompleteReasons.every((reason) => typeof reason === 'string')\n )\n}\n\nfunction receiptCost(value: {\n totalCostUsd: number\n accountingComplete: boolean\n incompleteReasons: string[]\n}): OptimizationReceiptCost {\n return {\n totalUsd: value.totalCostUsd,\n accountingComplete: value.accountingComplete,\n incompleteReasons: [...value.incompleteReasons],\n }\n}\n\nfunction approximatelyEqual(left: number, right: number): boolean {\n const tolerance = Number.EPSILON * Math.max(1, Math.abs(left), Math.abs(right)) * 8\n return Math.abs(left - right) <= tolerance\n}\n\nfunction isInvocation(value: unknown): boolean {\n return (\n isRecord(value) &&\n isNonEmptyString(value.runtimeInvocationId) &&\n isNonEmptyString(value.optimizerRunId) &&\n isOptionalNonEmptyString(value.compatibleOptimizerRunId) &&\n typeof value.resumed === 'boolean' &&\n isNonEmptyString(value.artifactDir)\n )\n}\n\nfunction isRecord(value: unknown): value is Record<string, AgentCandidateJsonValue> {\n return value !== null && typeof value === 'object' && !Array.isArray(value)\n}\n\nfunction isNonEmptyString(value: unknown): value is string {\n return typeof value === 'string' && value.trim().length > 0\n}\n\nfunction isOptionalNonEmptyString(value: unknown): boolean {\n return value === undefined || isNonEmptyString(value)\n}\n\nfunction isNonNegativeInteger(value: unknown): value is number {\n return typeof value === 'number' && Number.isSafeInteger(value) && value >= 0\n}\n\nfunction isPositiveSafeInteger(value: unknown): value is number {\n return typeof value === 'number' && Number.isSafeInteger(value) && value > 0\n}\n\nfunction isOptionalNonNegativeInteger(value: unknown): boolean {\n return value === undefined || isNonNegativeInteger(value)\n}\n\nfunction isSha256Digest(value: unknown): value is Sha256Digest {\n return typeof value === 'string' && /^sha256:[0-9a-f]{64}$/.test(value)\n}\n","import { assertProposalFindings, type ProposalFinding } from '@tangle-network/agent-eval/analyst'\nimport {\n verifyAgentProfileImprovementExperimentComparison,\n verifyCandidateExperimentComparison,\n} from '@tangle-network/agent-eval/contract'\nimport type {\n AgentCandidateBundle,\n AgentCandidateExperiment,\n AgentImprovementActivation,\n AgentImprovementActivationIntent,\n AgentImprovementActivationOutcome,\n AgentImprovementActivationResult,\n AgentImprovementActivationTarget,\n AgentImprovementEvaluation,\n AgentImprovementProposal,\n AgentImprovementReview,\n AgentImprovementReviewDecision,\n AgentImprovementSurface,\n AgentProfileImprovementChange,\n AgentProfileImprovementExecutionRef,\n AgentProfileImprovementExperiment,\n Sha256Digest,\n} from '@tangle-network/agent-interface'\nimport {\n agentImprovementActivationResultSchema,\n agentImprovementActivationSchema,\n agentImprovementProposalSchema,\n agentImprovementReviewSchema,\n agentProfileImprovementExecutionRefSchema,\n agentProfileImprovementExperimentSchema,\n} from '@tangle-network/agent-interface'\n\nimport {\n canonicalCandidateDigest,\n canonicalCandidateDocument,\n immutableCandidateValue,\n verifyCanonicalCandidateDocument,\n} from '../candidate-execution/digest'\nimport {\n type AgentImprovementActivationTargetIdentity,\n agentImprovementTargetDigest,\n agentImprovementTargetInput,\n agentProfileImprovementStateDigest,\n assertAgentImprovementActivationTargets,\n buildAgentImprovementActivationTargets,\n deriveChangedSurfaces,\n profileImprovementChangedSurfaces,\n sameAgentImprovementSurfaceSet,\n} from './improvement-surfaces'\nimport { optimizationActivationReceiptFromMetadata } from './optimization-receipt'\n\nexport interface CreateAgentImprovementActivationResultOptions {\n completedAt: string\n outcome: AgentImprovementActivationOutcome\n}\n\nexport interface AgentImprovementActivationTargetPlan extends AgentImprovementActivationTarget {\n desiredDigest: Sha256Digest\n /**\n * Exact measured input the product must apply to reach `desiredDigest`.\n * Transition surfaces such as code and knowledge are applied operations, so\n * their resulting state digest is not the digest of this input document.\n */\n desiredInput: unknown\n}\n\nexport type AgentProfileImprovementActivationOperation =\n | {\n kind: 'apply-change'\n changes: AgentProfileImprovementChange\n }\n | {\n /** The product must load its own saved state at `desiredStateDigest`. */\n kind: 'restore-state'\n }\n\nexport interface AgentProfileImprovementActivationTargetPlan\n extends AgentImprovementActivationTarget {\n desiredDigest: Sha256Digest\n desiredInput: AgentProfileImprovementActivationOperation\n}\n\nexport interface SealedCandidateActivationTransitionInput {\n kind: 'sealed-candidate'\n activation: AgentImprovementActivation\n candidateBundle: AgentCandidateBundle\n bundle: AgentCandidateBundle\n targets: [AgentImprovementActivationTargetPlan, ...AgentImprovementActivationTargetPlan[]]\n attemptedAt: string\n expired: boolean\n}\n\n/**\n * A measured profile change without raw profile bytes.\n * The product owns the private state lookup and atomic write.\n */\nexport interface ProfileImprovementActivationTransitionInput {\n kind: 'profile-improvement'\n activation: AgentImprovementActivation\n experiment: AgentProfileImprovementExperiment\n sourceStateDigest: Sha256Digest\n desiredStateDigest: Sha256Digest\n operation: AgentProfileImprovementActivationOperation\n targets: [\n AgentProfileImprovementActivationTargetPlan,\n ...AgentProfileImprovementActivationTargetPlan[],\n ]\n attemptedAt: string\n expired: boolean\n}\n\nexport type AgentImprovementActivationTransitionInput =\n | SealedCandidateActivationTransitionInput\n | ProfileImprovementActivationTransitionInput\n\nexport interface AgentImprovementActivationResultStore {\n load(idempotencyKey: Sha256Digest): Promise<unknown | undefined>\n putIfAbsent(result: AgentImprovementActivationResult): Promise<unknown>\n}\n\n/**\n * Product-owned or Runtime-composed transition.\n *\n * Implementations resolve a stored result for `activation.digest`, compare\n * every target, and make the write durably idempotent. Co-located targets store\n * the all-or-none write with its result. Other targets throw when result\n * storage fails so a retry can reconcile it. Runtime never invokes this write\n * function after authorization expires.\n */\nexport type AgentImprovementActivationTransition = (\n input: AgentImprovementActivationTransitionInput,\n) => Promise<unknown>\n\n/**\n * Target-read-only check for a prior exact write.\n * It may persist recovered result metadata, but must not change an activation target.\n * Return undefined only when no target write can have committed.\n */\nexport type AgentImprovementActivationReconciliation = (\n input: AgentImprovementActivationTransitionInput,\n) => Promise<unknown | undefined>\n\nexport interface ExecuteAgentImprovementActivationInput {\n proposal: AgentImprovementProposal\n review: AgentImprovementReview\n activation: AgentImprovementActivation\n}\n\nexport interface ExecuteAgentImprovementActivationOptions {\n transition: AgentImprovementActivationTransition\n reconcile?: AgentImprovementActivationReconciliation\n now?: () => Date\n}\n\n/** Create the exact result a product stores in the same transaction as its target write. */\nexport function createAgentImprovementActivationResult(\n transition: AgentImprovementActivationTransitionInput,\n options: CreateAgentImprovementActivationResultOptions,\n): AgentImprovementActivationResult {\n const activation = verifyCanonicalCandidateDocument(\n agentImprovementActivationSchema.parse(transition.activation),\n 'agent improvement activation',\n )\n assertTransitionInput(activation, transition)\n const result = agentImprovementActivationResultSchema.parse(\n canonicalCandidateDocument<AgentImprovementActivationResult>({\n kind: 'agent-improvement-activation-result',\n idempotencyKey: activation.digest,\n attemptedAt: transition.attemptedAt,\n completedAt: options.completedAt,\n outcome: options.outcome,\n }).value,\n )\n assertResultAgainstActivation(activation, result)\n assertOutcomeDesiredState(\n activation,\n result,\n new Map(transition.targets.map((target) => [targetIdentity(target), target.desiredDigest])),\n )\n return immutableCandidateValue(result)\n}\n\n/**\n * Recompute one historical activation result against the exact measured proposal and authority.\n * The result records that attempt; it is not a query of the target's current state.\n */\nexport function verifyAgentImprovementActivationResult(input: {\n proposal: unknown\n review: unknown\n activation: unknown\n result: unknown\n}): AgentImprovementActivationResult {\n const proposal = verifyAgentImprovementProposal(input.proposal)\n const activation = verifyAgentImprovementActivation(input)\n const result = verifyCanonicalCandidateDocument(\n agentImprovementActivationResultSchema.parse(input.result),\n 'agent improvement activation result',\n )\n assertResultAgainstActivation(activation, result)\n assertResultDesiredState(proposal, activation, result)\n return result\n}\n\n/** Validate and execute one product-owned activation transition. */\nexport async function executeAgentImprovementActivation(\n input: ExecuteAgentImprovementActivationInput,\n options: ExecuteAgentImprovementActivationOptions,\n): Promise<AgentImprovementActivationResult> {\n const proposal = verifyAgentImprovementProposal(input.proposal)\n const activation = verifyAgentImprovementActivation(input)\n const observedAt = (options.now ?? (() => new Date()))().toISOString()\n const attemptedAt =\n Date.parse(observedAt) < Date.parse(activation.authorizedAt)\n ? activation.authorizedAt\n : observedAt\n const expired = Date.parse(attemptedAt) >= Date.parse(activation.expiresAt)\n const transition = immutableCandidateValue<AgentImprovementActivationTransitionInput>(\n proposal.evaluation.kind === 'agent-improvement-measured-comparison'\n ? sealedCandidateTransition(proposal.evaluation.experiment, activation, attemptedAt, expired)\n : profileImprovementTransition(\n proposal.evaluation.experiment,\n activation,\n attemptedAt,\n expired,\n ),\n )\n\n if (transition.expired) {\n if (!options.reconcile) {\n return uncertainActivationResult(transition, 'RECONCILIATION_UNAVAILABLE')\n }\n let reconciled: unknown\n try {\n reconciled = await options.reconcile(transition)\n } catch {\n return uncertainActivationResult(transition, 'RECONCILIATION_THROW')\n }\n if (reconciled === undefined) {\n return createAgentImprovementActivationResult(transition, {\n completedAt: transition.attemptedAt,\n outcome: { status: 'expired' },\n })\n }\n try {\n return verifyAgentImprovementActivationResult({ ...input, result: reconciled })\n } catch {\n return uncertainActivationResult(transition, 'INVALID_RECONCILIATION')\n }\n }\n\n let rawResult: unknown\n try {\n rawResult = await options.transition(transition)\n } catch {\n return uncertainActivationResult(transition, 'TRANSITION_THROW')\n }\n try {\n return verifyAgentImprovementActivationResult({ ...input, result: rawResult })\n } catch {\n return uncertainActivationResult(transition, 'INVALID_RESULT')\n }\n}\n\nfunction sealedCandidateTransition(\n experiment: AgentCandidateExperiment,\n activation: AgentImprovementActivation,\n attemptedAt: string,\n expired: boolean,\n): SealedCandidateActivationTransitionInput {\n const targetArm = activation.intent === 'activate-candidate' ? 'candidate' : 'baseline'\n return {\n kind: 'sealed-candidate',\n activation,\n candidateBundle: experiment.candidate,\n bundle: experiment[targetArm],\n targets: activation.targets.map((target) => ({\n ...target,\n desiredDigest: agentImprovementTargetDigest(experiment, targetArm, target.surface),\n desiredInput: agentImprovementTargetInput(experiment[targetArm], target.surface),\n })) as SealedCandidateActivationTransitionInput['targets'],\n attemptedAt,\n expired,\n }\n}\n\nfunction profileImprovementTransition(\n experiment: AgentProfileImprovementExperiment,\n activation: AgentImprovementActivation,\n attemptedAt: string,\n expired: boolean,\n): ProfileImprovementActivationTransitionInput {\n const sourceArm = activation.intent === 'activate-candidate' ? 'baseline' : 'candidate'\n const targetArm = activation.intent === 'activate-candidate' ? 'candidate' : 'baseline'\n const operation = profileImprovementOperation(experiment, activation.intent)\n return {\n kind: 'profile-improvement',\n activation,\n experiment,\n sourceStateDigest: agentProfileImprovementStateDigest(experiment, sourceArm),\n desiredStateDigest: agentProfileImprovementStateDigest(experiment, targetArm),\n operation,\n targets: activation.targets.map((target) => ({\n ...target,\n desiredDigest: agentProfileImprovementStateDigest(experiment, targetArm),\n desiredInput: operation,\n })) as ProfileImprovementActivationTransitionInput['targets'],\n attemptedAt,\n expired,\n }\n}\n\nfunction profileImprovementOperation(\n experiment: AgentProfileImprovementExperiment,\n intent: AgentImprovementActivation['intent'],\n): AgentProfileImprovementActivationOperation {\n return intent === 'activate-candidate'\n ? { kind: 'apply-change', changes: experiment.change }\n : { kind: 'restore-state' }\n}\n\nfunction uncertainActivationResult(\n transition: AgentImprovementActivationTransitionInput,\n code: string,\n): AgentImprovementActivationResult {\n return createAgentImprovementActivationResult(transition, {\n completedAt: transition.attemptedAt,\n outcome: {\n status: 'indeterminate',\n code,\n message: 'The product transition did not return a trustworthy commit result.',\n },\n })\n}\n\nfunction assertTransitionInput(\n activation: AgentImprovementActivation,\n transition: AgentImprovementActivationTransitionInput,\n): void {\n if (transition.kind === 'sealed-candidate') {\n assertSealedCandidateTransitionInput(activation, transition)\n return\n }\n assertProfileImprovementTransitionInput(activation, transition)\n}\n\nfunction assertSealedCandidateTransitionInput(\n activation: AgentImprovementActivation,\n transition: SealedCandidateActivationTransitionInput,\n): void {\n assertAuthorizedTransitionTargets(activation, transition.targets)\n const desiredInputsMatch = transition.targets.every(\n (target) =>\n canonicalCandidateDigest(target.desiredInput) ===\n canonicalCandidateDigest(agentImprovementTargetInput(transition.bundle, target.surface)),\n )\n if (\n transition.expired !== Date.parse(transition.attemptedAt) >= Date.parse(activation.expiresAt) ||\n transition.candidateBundle.digest !== activation.candidateDigest ||\n !desiredInputsMatch ||\n (activation.intent === 'activate-candidate' &&\n transition.bundle.digest !== transition.candidateBundle.digest)\n ) {\n throw new Error('activation transition does not match its authorization')\n }\n}\n\nfunction assertProfileImprovementTransitionInput(\n activation: AgentImprovementActivation,\n transition: ProfileImprovementActivationTransitionInput,\n): void {\n assertAuthorizedTransitionTargets(activation, transition.targets)\n const targetsAgentProfile = activation.targets.some(\n (target) => target.surface === 'agent-profile',\n )\n const experiment = agentProfileImprovementExperimentSchema.parse(transition.experiment)\n const sourceArm = activation.intent === 'activate-candidate' ? 'baseline' : 'candidate'\n const targetArm = activation.intent === 'activate-candidate' ? 'candidate' : 'baseline'\n const sourceStateDigest = agentProfileImprovementStateDigest(experiment, sourceArm)\n const desiredStateDigest = agentProfileImprovementStateDigest(experiment, targetArm)\n const operation = profileImprovementOperation(experiment, activation.intent)\n const targetsMatch = transition.targets.every(\n (target) =>\n target.expectedBaseDigest === sourceStateDigest &&\n target.desiredDigest === desiredStateDigest &&\n canonicalCandidateDigest(target.desiredInput) === canonicalCandidateDigest(operation),\n )\n if (\n transition.expired !== Date.parse(transition.attemptedAt) >= Date.parse(activation.expiresAt) ||\n experiment.digest !== activation.experimentDigest ||\n experiment.candidate.stateDigest !== activation.candidateDigest ||\n (targetsAgentProfile &&\n (activation.executionRef === undefined ||\n canonicalCandidateDigest(activation.executionRef) !==\n canonicalCandidateDigest(experiment.executionRef))) ||\n transition.sourceStateDigest !== sourceStateDigest ||\n transition.desiredStateDigest !== desiredStateDigest ||\n canonicalCandidateDigest(transition.operation) !== canonicalCandidateDigest(operation) ||\n !targetsMatch\n ) {\n throw new Error('activation transition does not match its authorization')\n }\n}\n\nfunction assertAuthorizedTransitionTargets(\n activation: AgentImprovementActivation,\n targets: readonly AgentImprovementActivationTargetPlan[],\n): void {\n const authorized = targetMap(activation.targets)\n const planned = targetMap(targets)\n if (\n authorized.size !== planned.size ||\n [...authorized.entries()].some(\n ([identity, target]) =>\n planned.get(identity)?.expectedBaseDigest !== target.expectedBaseDigest,\n )\n ) {\n throw new Error('activation transition does not match its authorization')\n }\n}\n\nfunction assertResultAgainstActivation(\n activation: AgentImprovementActivation,\n result: AgentImprovementActivationResult,\n): void {\n const attemptedAt = Date.parse(result.attemptedAt)\n const completedAt = Date.parse(result.completedAt)\n const expiresAt = Date.parse(activation.expiresAt)\n if (\n result.idempotencyKey !== activation.digest ||\n attemptedAt < Date.parse(activation.authorizedAt) ||\n completedAt < attemptedAt\n ) {\n throw new Error('activation result does not bind its authorization')\n }\n const expired = attemptedAt >= expiresAt\n if (\n (result.outcome.status === 'expired' && !expired) ||\n (expired && !['expired', 'indeterminate', 'already-applied'].includes(result.outcome.status))\n ) {\n throw new Error('activation result does not honor its authorization expiry')\n }\n if (!('targets' in result.outcome)) return\n const authorized = targetMap(activation.targets)\n const observed = new Set(result.outcome.targets.map(targetIdentity))\n if (\n authorized.size !== observed.size ||\n [...authorized.keys()].some((identity) => !observed.has(identity))\n ) {\n throw new Error('activation result must cover every authorized target exactly once')\n }\n if (\n result.outcome.status === 'applied' &&\n result.outcome.targets.some(\n (target) =>\n target.beforeDigest !== authorized.get(targetIdentity(target))?.expectedBaseDigest,\n )\n ) {\n throw new Error('applied activation did not start from its authorized base state')\n }\n}\n\nfunction assertResultDesiredState(\n proposal: AgentImprovementProposal,\n activation: AgentImprovementActivation,\n result: AgentImprovementActivationResult,\n): void {\n if (!('targets' in result.outcome)) return\n const targetArm = activation.intent === 'activate-candidate' ? 'candidate' : 'baseline'\n const desiredStateDigest =\n proposal.evaluation.kind === 'agent-profile-improvement-measured-comparison'\n ? agentProfileImprovementStateDigest(proposal.evaluation.experiment, targetArm)\n : undefined\n const desired = new Map(\n activation.targets.map((target) => [\n targetIdentity(target),\n desiredStateDigest ??\n agentImprovementTargetDigest(\n requireSealedCandidateExperiment(proposal),\n targetArm,\n target.surface,\n ),\n ]),\n )\n assertOutcomeDesiredState(activation, result, desired)\n}\n\nfunction assertOutcomeDesiredState(\n activation: AgentImprovementActivation,\n result: AgentImprovementActivationResult,\n desired: ReadonlyMap<string, Sha256Digest>,\n): void {\n if (!('targets' in result.outcome)) return\n if (result.outcome.status === 'applied') {\n if (\n result.outcome.targets.some(\n (target) => target.afterDigest !== desired.get(targetIdentity(target)),\n )\n ) {\n throw new Error('applied activation does not match the requested bundle')\n }\n return\n }\n const allDesired = result.outcome.targets.every(\n (target) => target.currentDigest === desired.get(targetIdentity(target)),\n )\n if (result.outcome.status === 'already-applied') {\n if (!allDesired) throw new Error('already-applied activation is not at the requested state')\n return\n }\n const authorized = targetMap(activation.targets)\n const hasStaleTarget = result.outcome.targets.some(\n (target) => target.currentDigest !== authorized.get(targetIdentity(target))?.expectedBaseDigest,\n )\n if (allDesired || !hasStaleTarget) {\n throw new Error('activation conflict does not identify stale target state')\n }\n}\n\nfunction targetMap<T extends { surface: AgentImprovementSurface; identity: string }>(\n targets: readonly T[],\n): Map<string, T> {\n return new Map(targets.map((target) => [targetIdentity(target), target]))\n}\n\nfunction targetIdentity(target: { surface: AgentImprovementSurface; identity: string }): string {\n return `${target.surface}\\u0000${target.identity}`\n}\n\nexport interface CreateAgentImprovementProposalOptions {\n runId: string\n findings: readonly ProposalFinding[]\n evaluation: AgentImprovementEvaluation\n now?: () => Date\n}\n\nexport interface ReviewAgentImprovementInput {\n decision: AgentImprovementReviewDecision\n reviewedBy: string\n reason: string\n feedback?: string\n now?: () => Date\n}\n\nexport interface CreateAgentImprovementActivationOptions {\n intent: AgentImprovementActivationIntent\n /** Runtime derives each exact source digest; callers identify only the records to change. */\n targets: [AgentImprovementActivationTargetIdentity, ...AgentImprovementActivationTargetIdentity[]]\n fundingOwner: string\n authorizedBy: string\n expiresAt: string\n /** Required only when an activation targets the complete `agent-profile` surface. */\n executionRef?: AgentProfileImprovementExecutionRef\n now?: () => Date\n}\n\ntype ProposalFindingImprovementProposal = Omit<AgentImprovementProposal, 'findings'> & {\n findings: ProposalFinding[]\n}\n\n/** Create the reviewable record only from a complete, recomputable experiment result. */\nexport function createAgentImprovementProposal(\n options: CreateAgentImprovementProposalOptions,\n): AgentImprovementProposal {\n const findings = assertProposalFindings(\n options.findings,\n 'createAgentImprovementProposal findings',\n )\n const { evaluation, changedSurfaces } = validateShippableAgentImprovementEvaluation(\n options.evaluation,\n options.runId,\n 'agent improvement proposal',\n )\n return agentImprovementProposalSchema.parse(\n canonicalCandidateDocument<ProposalFindingImprovementProposal>({\n kind: 'agent-improvement-proposal',\n runId: options.runId,\n changedSurfaces,\n proposedAt: (options.now ?? (() => new Date()))().toISOString(),\n findings: [...findings],\n evaluation,\n }).value,\n )\n}\n\n/** Persist a human or tenant-policy decision bound to one exact proposal. */\nexport function reviewAgentImprovementProposal(\n inputProposal: AgentImprovementProposal,\n input: ReviewAgentImprovementInput,\n): AgentImprovementReview {\n const proposal = verifyAgentImprovementProposal(inputProposal)\n if (!input.reviewedBy.trim()) throw new Error('candidate review requires reviewedBy')\n if (!input.reason.trim()) throw new Error('candidate review requires a reason')\n if (input.decision === 'approve' && proposal.evaluation.decision.outcome !== 'ship') {\n throw new Error('candidate cannot be approved without a passing experiment')\n }\n const reviewedAt = (input.now ?? (() => new Date()))().toISOString()\n if (Date.parse(reviewedAt) < Date.parse(proposal.proposedAt)) {\n throw new Error('candidate review cannot predate its proposal')\n }\n return agentImprovementReviewSchema.parse(\n canonicalCandidateDocument<AgentImprovementReview>({\n kind: 'agent-improvement-review',\n proposalDigest: proposal.digest,\n decision: input.decision,\n reviewedBy: input.reviewedBy,\n reviewedAt,\n reason: input.reason,\n ...(input.feedback === undefined ? {} : { feedback: input.feedback }),\n }).value,\n )\n}\n\n/** Authorize product-owned writes only after the exact candidate was measured and approved. */\nexport function createAgentImprovementActivation(\n inputProposal: AgentImprovementProposal,\n inputReview: AgentImprovementReview,\n options: CreateAgentImprovementActivationOptions,\n): AgentImprovementActivation {\n const proposal = verifyAgentImprovementProposal(inputProposal)\n const review = verifyAgentImprovementReview(inputReview)\n if (review.decision !== 'approve' || review.proposalDigest !== proposal.digest) {\n throw new Error('candidate activation requires an approval for the exact proposal')\n }\n if (!options.fundingOwner.trim() || !options.authorizedBy.trim()) {\n throw new Error('candidate activation authority must be non-empty')\n }\n const experiment = proposal.evaluation.experiment\n const authorizedAt = (options.now ?? (() => new Date()))().toISOString()\n if (Date.parse(authorizedAt) < Date.parse(review.reviewedAt)) {\n throw new Error('candidate activation cannot predate its approval')\n }\n const targets = buildAgentImprovementActivationTargets(\n proposal.changedSurfaces,\n experiment,\n options.intent,\n options.targets,\n )\n const executionRef = profileActivationExecutionRef(experiment, targets, options.executionRef)\n return agentImprovementActivationSchema.parse(\n canonicalCandidateDocument<AgentImprovementActivation>({\n kind: 'agent-improvement-activation',\n proposalDigest: proposal.digest,\n reviewDigest: review.digest,\n experimentDigest: experiment.digest,\n candidateDigest: measuredCandidateDigest(proposal),\n ...(executionRef ? { executionRef } : {}),\n intent: options.intent,\n targets,\n fundingOwner: options.fundingOwner,\n authorizedBy: options.authorizedBy,\n authorizedAt,\n expiresAt: options.expiresAt,\n }).value,\n )\n}\n\n/** Validate a proposal and recompute every binding to its measured experiment. */\nexport function verifyAgentImprovementProposal(input: unknown): AgentImprovementProposal {\n const proposal = verifyCanonicalCandidateDocument(\n agentImprovementProposalSchema.parse(input),\n 'agent improvement proposal',\n )\n const { changedSurfaces } = validateShippableAgentImprovementEvaluation(\n proposal.evaluation,\n proposal.runId,\n 'agent improvement proposal',\n )\n const changedSurfacesMatch =\n proposal.evaluation.kind === 'agent-profile-improvement-measured-comparison'\n ? sameAgentImprovementSurfaceSet(proposal.changedSurfaces, changedSurfaces)\n : sameOrderedValues(proposal.changedSurfaces, changedSurfaces)\n if (!changedSurfacesMatch) {\n throw new Error('proposal changed surfaces do not match its exact experiment')\n }\n assertProposalFindings(proposal.findings, 'agent improvement proposal findings')\n return proposal\n}\n\n/** Return a sealed bundle experiment; ordinary profile changes need a product-owned executor. */\nfunction requireSealedCandidateExperiment(\n proposal: AgentImprovementProposal,\n): AgentCandidateExperiment {\n if (proposal.evaluation.kind !== 'agent-improvement-measured-comparison') {\n throw new Error(\n 'agent profile improvement activation requires a product profile-diff executor, not a sealed candidate bundle',\n )\n }\n return proposal.evaluation.experiment\n}\n\nfunction measuredCandidateDigest(proposal: AgentImprovementProposal): Sha256Digest {\n return proposal.evaluation.kind === 'agent-profile-improvement-measured-comparison'\n ? proposal.evaluation.experiment.candidate.stateDigest\n : proposal.evaluation.experiment.candidate.digest\n}\n\nfunction profileActivationExecutionRef(\n experiment: AgentImprovementEvaluation['experiment'],\n targets: AgentImprovementActivation['targets'],\n executionRef: AgentProfileImprovementExecutionRef | undefined,\n): AgentProfileImprovementExecutionRef | undefined {\n const targetsAgentProfile = targets.some((target) => target.surface === 'agent-profile')\n if (!targetsAgentProfile) {\n if (executionRef !== undefined) {\n throw new Error('profile activation executionRef is valid only for agent-profile targets')\n }\n return undefined\n }\n if (experiment.kind !== 'agent-profile-improvement-experiment') {\n throw new Error('agent-profile activation requires a measured profile experiment')\n }\n if (executionRef === undefined) {\n throw new Error('profile improvement activation requires the measured executor')\n }\n const parsed = agentProfileImprovementExecutionRefSchema.parse(executionRef)\n if (canonicalCandidateDigest(parsed) !== canonicalCandidateDigest(experiment.executionRef)) {\n throw new Error('profile improvement activation executor does not match the measurement')\n }\n return parsed\n}\n\nfunction validateShippableAgentImprovementEvaluation(\n input: unknown,\n runId: string,\n subject: string,\n): {\n evaluation: AgentImprovementEvaluation\n changedSurfaces: AgentImprovementProposal['changedSurfaces']\n} {\n const evaluation = verifyAgentImprovementEvaluation(input)\n if (evaluation.decision.outcome !== 'ship') {\n throw new Error(`${subject} requires a passing experiment`)\n }\n if (runId !== evaluation.provenance.runId) {\n throw new Error('proposal runId does not match its measured experiment')\n }\n const changedSurfaces =\n evaluation.kind === 'agent-profile-improvement-measured-comparison'\n ? profileImprovementChangedSurfaces(evaluation.experiment.change)\n : deriveChangedSurfaces(evaluation.experiment.baseline, evaluation.experiment.candidate)\n return { evaluation, changedSurfaces }\n}\n\n/** Use each owning package's complete measurement validator before a proposal is persisted. */\nfunction verifyAgentImprovementEvaluation(input: unknown): AgentImprovementEvaluation {\n if (\n typeof input === 'object' &&\n input !== null &&\n 'kind' in input &&\n input.kind === 'agent-profile-improvement-measured-comparison'\n ) {\n const evaluation = verifyAgentProfileImprovementExperimentComparison(input)\n optimizationActivationReceiptFromMetadata(evaluation.metadata)\n return evaluation\n }\n const evaluation = verifyCandidateExperimentComparison(input)\n optimizationActivationReceiptFromMetadata(evaluation.metadata)\n return evaluation\n}\n\n/** Validate the canonical identity and wire shape of an improvement review. */\nexport function verifyAgentImprovementReview(input: unknown): AgentImprovementReview {\n return verifyCanonicalCandidateDocument(\n agentImprovementReviewSchema.parse(input),\n 'agent improvement review',\n )\n}\n\n/** Validate activation authority against the exact proposal, review, experiment, and base state. */\nexport function verifyAgentImprovementActivation(input: {\n proposal: unknown\n review: unknown\n activation: unknown\n}): AgentImprovementActivation {\n const proposal = verifyAgentImprovementProposal(input.proposal)\n const review = verifyAgentImprovementReview(input.review)\n const activation = verifyCanonicalCandidateDocument(\n agentImprovementActivationSchema.parse(input.activation),\n 'agent improvement activation',\n )\n const experiment = proposal.evaluation.experiment\n if (\n review.decision !== 'approve' ||\n review.proposalDigest !== proposal.digest ||\n activation.proposalDigest !== proposal.digest ||\n activation.reviewDigest !== review.digest ||\n activation.experimentDigest !== experiment.digest ||\n activation.candidateDigest !== measuredCandidateDigest(proposal) ||\n Date.parse(review.reviewedAt) < Date.parse(proposal.proposedAt) ||\n Date.parse(activation.authorizedAt) < Date.parse(review.reviewedAt)\n ) {\n throw new Error('candidate activation does not bind the measured and approved candidate')\n }\n if (\n activation.targets.some((target) => target.surface === 'agent-profile') &&\n (proposal.evaluation.kind !== 'agent-profile-improvement-measured-comparison' ||\n activation.executionRef === undefined ||\n canonicalCandidateDigest(activation.executionRef) !==\n canonicalCandidateDigest(proposal.evaluation.experiment.executionRef))\n ) {\n throw new Error('profile activation does not bind the measured executor')\n }\n assertAgentImprovementActivationTargets(\n proposal.changedSurfaces,\n experiment,\n activation.intent,\n activation.targets,\n )\n return activation\n}\n\nfunction sameOrderedValues<T>(left: readonly T[], right: readonly T[]): boolean {\n return left.length === right.length && left.every((value, index) => value === right[index])\n}\n"],"mappings":"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"}
|
package/dist/agent.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { JS as OutputAdapter, S as RuntimeStreamEvent, TS as AgentRunSpec, XS as SandboxClient } from "./types-
|
|
1
|
+
import { JS as OutputAdapter, S as RuntimeStreamEvent, TS as AgentRunSpec, XS as SandboxClient } from "./types-Bn1qbOZi.js";
|
|
2
2
|
import { a as ProfileMaterializationContract, c as assertProfileMaterializes, n as AssertProfileMaterializationOptions, o as ProfileMaterializationIssue, r as DefineProfileMaterializationContractOptions, s as ValidateProfileMaterializationOptions, t as AgentProfileMaterializationAxis } from "./profile-materialization-BRY22Oh8.js";
|
|
3
3
|
import { a as createSurfaceImprovementProposer, c as SurfaceValidationIssue, i as SurfaceImprovementEdit, l as renderSurfaceIssues, n as DraftPatchInput, o as AgentSurfaces, r as DraftPatchOutput, s as ResolvedSurface, t as CreateSurfaceImprovementProposerOptions, u as validateSurfaces } from "./improvement-adapter-D5GRU1eY.js";
|
|
4
4
|
import { AgentProfile, AgentProfileFileMount, AgentProfileMcpServer } from "@tangle-network/agent-interface";
|
package/dist/agent.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Ai as mapSandboxEvent } from "./scope-
|
|
1
|
+
import { Ai as mapSandboxEvent } from "./scope-C4ZapleE.js";
|
|
2
2
|
import { l as sha256 } from "./jsonl-file-BBP9Dz9w.js";
|
|
3
|
-
import { $t as sandboxActProfileMaterialization, A as createSandboxForSpec, Gt as assertProfileMaterializes, Wt as assertProfileMaterialization } from "./supervisor-
|
|
4
|
-
import "./runtime-
|
|
3
|
+
import { $t as sandboxActProfileMaterialization, A as createSandboxForSpec, Gt as assertProfileMaterializes, Wt as assertProfileMaterialization } from "./supervisor-B5pZlE1s.js";
|
|
4
|
+
import "./runtime-ZLDCDsau.js";
|
|
5
5
|
import { existsSync, readFileSync, statSync } from "node:fs";
|
|
6
6
|
import { isAbsolute, join, relative, resolve, sep } from "node:path";
|
|
7
7
|
import { parseFindingSubject } from "@tangle-network/agent-eval/analyst";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { L as immutableCandidateValue, N as canonicalCandidateDigest$1, R as omitTopLevelDigest } from "./workspace-streams-
|
|
1
|
+
import { L as immutableCandidateValue, N as canonicalCandidateDigest$1, R as omitTopLevelDigest } from "./workspace-streams-COSTjQLW.js";
|
|
2
2
|
import { agentCandidateBundleSchema } from "@tangle-network/agent-interface";
|
|
3
3
|
// src/candidate-execution/bundle.ts
|
|
4
4
|
/** Validate and content-address a candidate bundle before it crosses an approval boundary. */
|
|
@@ -13,4 +13,4 @@ function sealAgentCandidateBundle(input) {
|
|
|
13
13
|
}
|
|
14
14
|
export { sealAgentCandidateBundle as t };
|
|
15
15
|
|
|
16
|
-
//# sourceMappingURL=bundle-
|
|
16
|
+
//# sourceMappingURL=bundle-DYwJ3alD.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle-
|
|
1
|
+
{"version":3,"file":"bundle-DYwJ3alD.js","names":["canonicalCandidateDigest"],"sources":["../src/candidate-execution/bundle.ts"],"sourcesContent":["import type { AgentCandidateBundle } from '@tangle-network/agent-interface'\nimport { agentCandidateBundleSchema } from '@tangle-network/agent-interface'\n\nimport { canonicalCandidateDigest, immutableCandidateValue, omitTopLevelDigest } from './digest'\n\n/** Exact candidate wire shape before the runtime computes its canonical digest. */\nexport type AgentCandidateBundleInput = Omit<AgentCandidateBundle, 'digest'>\n\n/** Validate and content-address a candidate bundle before it crosses an approval boundary. */\nexport function sealAgentCandidateBundle(input: AgentCandidateBundleInput): AgentCandidateBundle {\n const digest = canonicalCandidateDigest(input)\n const parsed = agentCandidateBundleSchema.parse({ ...input, digest })\n const parsedDigest = canonicalCandidateDigest(omitTopLevelDigest(parsed))\n if (parsedDigest !== digest) {\n throw new Error('candidate bundle changed while validating its canonical wire shape')\n }\n return immutableCandidateValue(parsed)\n}\n"],"mappings":";;;;AASA,SAAgB,yBAAyB,OAAwD;CAC/F,MAAM,SAASA,2BAAyB,KAAK;CAC7C,MAAM,SAAS,2BAA2B,MAAM;EAAE,GAAG;EAAO;CAAO,CAAC;CAEpE,IADqBA,2BAAyB,mBAAmB,MAAM,CACxD,MAAM,QACnB,MAAM,IAAI,MAAM,oEAAoE;CAEtF,OAAO,wBAAwB,MAAM;AACvC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { $ as ResolvedAgentCandidateContainer, A as AgentCandidateMemoryPort, B as AgentCandidateProtectedRunCapture, C as AgentCandidateExecutorPort, D as AgentCandidateExecutorTaskOutcomeCapture, E as AgentCandidateExecutorStopRequest, F as AgentCandidateOutputPurpose, G as AgentCandidateWorkspacePort, H as AgentCandidateRunFinalization, I as AgentCandidateProtectedModelActivation, J as PreparedAgentCandidateExecution, K as CanonicalCandidateDocument, L as AgentCandidateProtectedModelReservation, M as AgentCandidateModelLimits, N as AgentCandidateModelPort, O as AgentCandidateExecutorWorkspaceFile, P as AgentCandidateOutputArtifactPort, Q as PreparedAgentCandidateTrace, R as AgentCandidateProtectedModelSettlement, S as AgentCandidateExecutorMemoryCapture, T as AgentCandidateExecutorRequest, U as AgentCandidateTaskExecution, V as AgentCandidateRepositoryPort, W as AgentCandidateVerificationPorts, X as PreparedAgentCandidateKnowledge, Y as PreparedAgentCandidateInstruction, Z as PreparedAgentCandidateLaunch, _ as AgentCandidateArtifactPort, a as captureAgentCandidateWorkspaceTreeToArtifacts, b as AgentCandidateExecutionPorts, c as verifyAgentCandidateWorkspaceArtifacts, d as CapturedAgentCandidateWorkspace, et as VerifiedAgentCandidate, f as captureAgentCandidateWorkspaceFiles, g as createAgentCandidateWorkspacePort, h as captureAgentCandidateWorkspace, i as captureAgentCandidateWorkspaceToArtifacts, j as AgentCandidateMemoryResetResult, k as AgentCandidateExecutorWorkspaceInput, l as verifyAgentCandidateWorkspaceTree, m as CreateAgentCandidateWorkspacePortOptions, n as AgentCandidateWorkspaceTree, nt as AgentCandidateExecutionRoots, o as materializeAgentCandidateWorkspaceFromArtifacts, p as CaptureAgentCandidateWorkspaceOptions, q as PersistedTaskOutcomeEvidence, r as CaptureAgentCandidateWorkspaceToArtifactsOptions, s as readAgentCandidateWorkspaceArtifactFiles, t as AgentCandidateWorkspaceArtifactsOptions, tt as VerifiedAgentCandidateTaskOutcome, u as AgentCandidateWorkspaceArchiveLimits, v as AgentCandidateBenchmarkGraderPort, w as AgentCandidateExecutorProfileFile, x as AgentCandidateExecutorFinalCapture, y as AgentCandidateContainerPort, z as AgentCandidateProtectedModelSettlementCall } from "../workspace-streams-
|
|
2
|
-
import { A as AgentCandidateExecutionTerminalResult, C as AgentCandidateExecutionFinishResult, D as AgentCandidateExecutionRecoveryEvidence, E as AgentCandidateExecutionPhaseResult, M as AgentCandidatePreparationEvidence, O as AgentCandidateExecutionStageResult, S as AgentCandidateExecutionFailureClass, T as AgentCandidateExecutionPhase, _ as AgentCandidateExecutionAttemptRef, a as createProtectedAgentCandidateModelPort, b as AgentCandidateExecutionClaimStore, c as assertCandidateProfileBinding, d as parseExactAgentProfileDiff, g as AgentCandidateExecutionAttemptRecord, h as executePreparedAgentCandidate, i as CreateProtectedAgentCandidateModelPortOptions, j as AgentCandidateRetryRejection, k as AgentCandidateExecutionTerminalRecord, l as freezeGenericAgentCandidateProfile, m as ExecutePreparedAgentCandidateOptions, n as AgentCandidateModelGrantClient, o as agentCandidateProfileAsAgentProfile, p as prepareAgentCandidateExecution, r as AgentCandidateModelGrantReserveInput, s as applyExactAgentProfileDiff, t as AgentCandidateModelGrantActivateInput, v as AgentCandidateExecutionClaim, w as AgentCandidateExecutionLease, x as AgentCandidateExecutionCleanupHandles, y as AgentCandidateExecutionClaimResult } from "../protected-model-port-
|
|
1
|
+
import { $ as ResolvedAgentCandidateContainer, A as AgentCandidateMemoryPort, B as AgentCandidateProtectedRunCapture, C as AgentCandidateExecutorPort, D as AgentCandidateExecutorTaskOutcomeCapture, E as AgentCandidateExecutorStopRequest, F as AgentCandidateOutputPurpose, G as AgentCandidateWorkspacePort, H as AgentCandidateRunFinalization, I as AgentCandidateProtectedModelActivation, J as PreparedAgentCandidateExecution, K as CanonicalCandidateDocument, L as AgentCandidateProtectedModelReservation, M as AgentCandidateModelLimits, N as AgentCandidateModelPort, O as AgentCandidateExecutorWorkspaceFile, P as AgentCandidateOutputArtifactPort, Q as PreparedAgentCandidateTrace, R as AgentCandidateProtectedModelSettlement, S as AgentCandidateExecutorMemoryCapture, T as AgentCandidateExecutorRequest, U as AgentCandidateTaskExecution, V as AgentCandidateRepositoryPort, W as AgentCandidateVerificationPorts, X as PreparedAgentCandidateKnowledge, Y as PreparedAgentCandidateInstruction, Z as PreparedAgentCandidateLaunch, _ as AgentCandidateArtifactPort, a as captureAgentCandidateWorkspaceTreeToArtifacts, b as AgentCandidateExecutionPorts, c as verifyAgentCandidateWorkspaceArtifacts, d as CapturedAgentCandidateWorkspace, et as VerifiedAgentCandidate, f as captureAgentCandidateWorkspaceFiles, g as createAgentCandidateWorkspacePort, h as captureAgentCandidateWorkspace, i as captureAgentCandidateWorkspaceToArtifacts, j as AgentCandidateMemoryResetResult, k as AgentCandidateExecutorWorkspaceInput, l as verifyAgentCandidateWorkspaceTree, m as CreateAgentCandidateWorkspacePortOptions, n as AgentCandidateWorkspaceTree, nt as AgentCandidateExecutionRoots, o as materializeAgentCandidateWorkspaceFromArtifacts, p as CaptureAgentCandidateWorkspaceOptions, q as PersistedTaskOutcomeEvidence, r as CaptureAgentCandidateWorkspaceToArtifactsOptions, s as readAgentCandidateWorkspaceArtifactFiles, t as AgentCandidateWorkspaceArtifactsOptions, tt as VerifiedAgentCandidateTaskOutcome, u as AgentCandidateWorkspaceArchiveLimits, v as AgentCandidateBenchmarkGraderPort, w as AgentCandidateExecutorProfileFile, x as AgentCandidateExecutorFinalCapture, y as AgentCandidateContainerPort, z as AgentCandidateProtectedModelSettlementCall } from "../workspace-streams-DbKiDOWA.js";
|
|
2
|
+
import { A as AgentCandidateExecutionTerminalResult, C as AgentCandidateExecutionFinishResult, D as AgentCandidateExecutionRecoveryEvidence, E as AgentCandidateExecutionPhaseResult, M as AgentCandidatePreparationEvidence, O as AgentCandidateExecutionStageResult, S as AgentCandidateExecutionFailureClass, T as AgentCandidateExecutionPhase, _ as AgentCandidateExecutionAttemptRef, a as createProtectedAgentCandidateModelPort, b as AgentCandidateExecutionClaimStore, c as assertCandidateProfileBinding, d as parseExactAgentProfileDiff, g as AgentCandidateExecutionAttemptRecord, h as executePreparedAgentCandidate, i as CreateProtectedAgentCandidateModelPortOptions, j as AgentCandidateRetryRejection, k as AgentCandidateExecutionTerminalRecord, l as freezeGenericAgentCandidateProfile, m as ExecutePreparedAgentCandidateOptions, n as AgentCandidateModelGrantClient, o as agentCandidateProfileAsAgentProfile, p as prepareAgentCandidateExecution, r as AgentCandidateModelGrantReserveInput, s as applyExactAgentProfileDiff, t as AgentCandidateModelGrantActivateInput, v as AgentCandidateExecutionClaim, w as AgentCandidateExecutionLease, x as AgentCandidateExecutionCleanupHandles, y as AgentCandidateExecutionClaimResult } from "../protected-model-port-DEsNIYi1.js";
|
|
3
3
|
import { AgentCandidateArtifactRef, AgentCandidateBundle, AgentCandidateCapturedArtifact, AgentCandidateCodeDisabled, AgentCandidateCodeNoOp, AgentCandidateExecution, AgentCandidateGitHubRepository, AgentCandidateKnowledge, AgentCandidateMemoryPolicy, AgentCandidateProfile, AgentCandidateResolvedModel, AgentCandidateWorkspaceManifestMaterial, AgentCandidateWorkspaceSnapshotEvidence, AgentProfile, AgentProfileDiff, Sha256Digest } from "@tangle-network/agent-interface";
|
|
4
4
|
import { CodeSurface } from "@tangle-network/agent-eval/campaign";
|
|
5
5
|
import { AgentEnvironmentProvider, AgentExactProcessResources } from "@tangle-network/agent-interface/environment-provider";
|