@tokensize/agent-router 0.3.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +9 -0
- package/dist/index.cjs +777 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +1464 -0
- package/dist/index.d.ts +1464 -0
- package/dist/index.js +717 -0
- package/dist/index.js.map +1 -0
- package/package.json +40 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/contracts.ts","../src/featurize.ts","../src/route.ts","../src/run.ts"],"sourcesContent":["export * from \"./contracts\";\nexport * from \"./featurize\";\nexport * from \"./route\";\nexport * from \"./run\";\n","import { z } from \"zod\";\n\nexport const AGENT_ROUTER_SCHEMA_VERSION = 2 as const;\nexport const AGENT_ROUTER_VERSION = \"2026-07-20-allowance-aware-v2\";\n\nexport const harnessIdSchema = z.enum([\"codex\", \"claude\", \"copilot\", \"cursor\", \"opencode\", \"custom\"]);\nexport const readinessSchema = z.enum([\n\t\"installed\",\n\t\"auth-ready\",\n\t\"model-listed\",\n\t\"invocation-compatible\",\n\t\"live-confirmed\",\n]);\nexport const permissionProfileSchema = z.enum([\"inspect\", \"edit\", \"test\", \"network\"]);\nexport const taskRoleSchema = z.enum([\"inspect\", \"plan\", \"implement\", \"review\", \"test\"]);\nexport const taskTypeSchema = z.enum([\n\t\"bug\",\n\t\"feature\",\n\t\"refactor\",\n\t\"migration\",\n\t\"review\",\n\t\"research\",\n\t\"docs\",\n\t\"test\",\n\t\"unknown\",\n]);\nexport const routingObjectiveSchema = z.enum([\"quality\", \"balanced\", \"tokens\", \"latency\"]);\nexport const clientSurfaceSchema = z.enum([\"cli\", \"skill\", \"codex-plugin\", \"opencode-plugin\"]);\n\n/**\n * A privacy-safe, point-in-time view of a local harness allowance. Clients\n * derive this through the harness's supported status interface and discard the\n * raw account response. It is routing metadata, never a credential or bill.\n */\nexport const allowanceSchema = z.object({\n\tstatus: z.enum([\"available\", \"low\", \"exhausted\", \"unmetered\", \"unknown\"]),\n\tremainingFraction: z.number().min(0).max(1).optional(),\n\tresetsAt: z.iso.datetime().optional(),\n\tobservedAt: z.iso.datetime(),\n\tsource: z.enum([\"runtime-reported\", \"credential-free\", \"unavailable\"]),\n});\n\nexport const agentModelSchema = z.object({\n\tid: z.string().min(1).max(256),\n\tharness: harnessIdSchema,\n\tnativeModelId: z.string().min(1).max(200),\n\tdisplayName: z.string().min(1).max(200),\n\treadiness: readinessSchema,\n\tauthMode: z.enum([\"subscription\", \"api-key\", \"cloud-provider\", \"local\", \"unknown\"]),\n\tproductUseApproved: z.boolean(),\n\tcapabilities: z.object({\n\t\ttools: z.boolean(),\n\t\tvision: z.boolean(),\n\t\tstructuredOutput: z.enum([\"none\", \"json\", \"jsonl\", \"schema\"]),\n\t\tsessions: z.enum([\"none\", \"resume\", \"continue\"]),\n\t\tpermissions: z.array(permissionProfileSchema).min(1),\n\t}),\n\tidentityProof: z.enum([\"requested\", \"runtime-reported\", \"unavailable\"]),\n\tqualityPrior: z.number().min(0).max(1),\n\ttokenEfficiencyPrior: z.number().min(0).max(1),\n\tlatencyPrior: z.number().min(0).max(1),\n\tallowance: allowanceSchema.optional(),\n\tlocalHistory: z\n\t\t.object({\n\t\t\tverifiedRuns: z.number().int().nonnegative(),\n\t\t\tsuccessRate: z.number().min(0).max(1),\n\t\t\tmedianTokens: z.number().nonnegative().optional(),\n\t\t})\n\t\t.optional(),\n});\n\nexport const agentTaskFeaturesSchema = z.object({\n\trole: taskRoleSchema,\n\ttype: taskTypeSchema,\n\tcomplexity: z.number().min(0).max(1),\n\tscopeBreadth: z.number().min(0).max(1),\n\tcontextTokens: z.number().int().nonnegative(),\n\toracleStrength: z.number().min(0).max(1),\n\tcodeDensity: z.number().min(0).max(1),\n\trisk: z.enum([\"low\", \"medium\", \"high\", \"critical\"]),\n\tlanguages: z.array(z.string().min(1).max(50)).max(20),\n\trequiredTools: z.array(z.string().min(1).max(80)).max(30),\n\trequiresVision: z.boolean(),\n\trequiresNetwork: z.boolean(),\n\tcacheHit: z.boolean(),\n});\n\nexport const agentRouteRequestSchema = z.object({\n\tschemaVersion: z.literal(AGENT_ROUTER_SCHEMA_VERSION),\n\tclient: z.object({\n\t\tsurface: clientSurfaceSchema,\n\t\tversion: z.string().min(1).max(100),\n\t}),\n\trequestId: z.uuid(),\n\tinstallationId: z.string().min(8).max(128),\n\trouterMode: z.enum([\"metadata-only\", \"prompt-assisted\"]),\n\ttask: agentTaskFeaturesSchema,\n\tprompt: z.string().min(1).max(12_000).optional(),\n\tcandidates: z.array(agentModelSchema).max(100),\n\troot: z.object({\n\t\tharness: harnessIdSchema,\n\t\tactive: z.boolean(),\n\t\tmodelId: z.string().min(1).max(200).optional(),\n\t\tqualityPrior: z.number().min(0).max(1).default(0.9),\n\t\tallowance: allowanceSchema.optional(),\n\t}),\n\tpolicy: z.object({\n\t\tobjective: routingObjectiveSchema,\n\t\tmaxDelegationDepth: z.number().int().min(0).max(3),\n\t\tdelegationDepth: z.number().int().min(0).max(10),\n\t\tallowedHarnesses: z.array(harnessIdSchema).max(10).optional(),\n\t\tpermissionCeiling: permissionProfileSchema,\n\t\ttokenBudget: z.number().int().positive().max(10_000_000).optional(),\n\t\twallTimeBudgetMs: z.number().int().positive().max(86_400_000).optional(),\n\t}),\n});\n\nexport const workflowSchema = z.enum([\n\t\"root-only\",\n\t\"single-inspector\",\n\t\"single-implementer\",\n\t\"implementer-deterministic-verify\",\n\t\"implementer-independent-review\",\n]);\n\nexport const executionPlanSchema = z.object({\n\tworkflow: workflowSchema,\n\ttargetId: z.string().min(1).max(256).nullable(),\n\tpermissionProfile: permissionProfileSchema,\n\tmaxWallMs: z.number().int().positive(),\n\tmaxTurns: z.number().int().positive().max(100),\n\trequiresWorktree: z.boolean(),\n});\n\nexport const agentRouteResponseSchema = z.object({\n\tschemaVersion: z.literal(AGENT_ROUTER_SCHEMA_VERSION),\n\trequestId: z.uuid(),\n\trouteId: z.uuid(),\n\trouterVersion: z.string().min(1),\n\texpiresAt: z.iso.datetime(),\n\tplan: executionPlanSchema,\n\tfallback: executionPlanSchema,\n\tconfidence: z.number().min(0).max(1),\n\treasonCodes: z.array(z.string().min(1)).max(20),\n\texpected: z.object({\n\t\tverifiedSuccess: z.number().min(0).max(1),\n\t\tcontextTokens: z.number().int().nonnegative(),\n\t\twallTimeMs: z.number().int().nonnegative(),\n\t}),\n\tfeedbackToken: z.string().min(16).max(200),\n});\n\nexport const agentFeedbackSchema = z.object({\n\tschemaVersion: z.literal(AGENT_ROUTER_SCHEMA_VERSION),\n\trouteId: z.uuid(),\n\tfeedbackToken: z.string().min(16).max(200),\n\tidempotencyKey: z.string().min(1).max(200),\n\tstatus: z.enum([\"completed\", \"verified\", \"failed\", \"blocked\", \"cancelled\"]),\n\tconfirmedTargetId: z.string().min(1).max(256).nullable(),\n\tidentityConfirmed: z.boolean(),\n\tchecksPassed: z.number().int().nonnegative(),\n\tchecksFailed: z.number().int().nonnegative(),\n\tretries: z.number().int().nonnegative().max(100),\n\tusage: z.object({\n\t\tinputTokens: z.number().int().nonnegative().optional(),\n\t\toutputTokens: z.number().int().nonnegative().optional(),\n\t\tcontextTokensEstimated: z.number().int().nonnegative(),\n\t\tsource: z.enum([\"reported\", \"estimated\", \"unknown\"]),\n\t}),\n\ttimings: z.object({\n\t\ttotalMs: z.number().int().nonnegative(),\n\t\troutingMs: z.number().int().nonnegative(),\n\t\texecutionMs: z.number().int().nonnegative(),\n\t\tverificationMs: z.number().int().nonnegative(),\n\t}),\n\tfailureCode: z.string().min(1).max(100).optional(),\n});\n\nexport type HarnessId = z.infer<typeof harnessIdSchema>;\nexport type ClientSurface = z.infer<typeof clientSurfaceSchema>;\nexport type Readiness = z.infer<typeof readinessSchema>;\nexport type PermissionProfile = z.infer<typeof permissionProfileSchema>;\nexport type TaskRole = z.infer<typeof taskRoleSchema>;\nexport type RoutingObjective = z.infer<typeof routingObjectiveSchema>;\nexport type Allowance = z.infer<typeof allowanceSchema>;\nexport type AgentModel = z.infer<typeof agentModelSchema>;\nexport type AgentTaskFeatures = z.infer<typeof agentTaskFeaturesSchema>;\nexport type AgentRouteRequest = z.infer<typeof agentRouteRequestSchema>;\nexport type ExecutionPlan = z.infer<typeof executionPlanSchema>;\nexport type AgentRouteResponse = z.infer<typeof agentRouteResponseSchema>;\nexport type AgentFeedback = z.infer<typeof agentFeedbackSchema>;\n","import type { AgentTaskFeatures } from \"./contracts\";\n\nexport interface FeaturizeAgentTaskInput {\n\ttask: string;\n\trole?: AgentTaskFeatures[\"role\"];\n\tpermissionProfile?: \"inspect\" | \"edit\" | \"test\" | \"network\";\n\tlanguages?: string[];\n\trequiredTools?: string[];\n\tcontextTokens?: number;\n\tscopePaths?: string[];\n\tacceptance?: string[];\n}\n\nfunction has(text: string, pattern: RegExp): boolean {\n\treturn pattern.test(text);\n}\n\nfunction clamp(value: number): number {\n\treturn Math.max(0, Math.min(1, value));\n}\n\nexport function featurizeAgentTask(input: FeaturizeAgentTaskInput): AgentTaskFeatures {\n\tconst text = input.task.trim();\n\tconst lower = text.toLowerCase();\n\tconst role = input.role ?? (input.permissionProfile === \"inspect\" ? \"inspect\" : \"implement\");\n\tlet type: AgentTaskFeatures[\"type\"] = \"unknown\";\n\tif (has(lower, /\\b(bug|fix|broken|regression|error|crash)\\b/)) type = \"bug\";\n\telse if (has(lower, /\\b(refactor|cleanup|restructure|simplif)\\w*\\b/)) type = \"refactor\";\n\telse if (has(lower, /\\b(migrat|upgrade|port)\\w*\\b/)) type = \"migration\";\n\telse if (has(lower, /\\b(review|audit|analyse|analyze|inspect)\\b/)) type = \"review\";\n\telse if (has(lower, /\\b(test|coverage|spec)\\b/)) type = \"test\";\n\telse if (has(lower, /\\b(document|readme|docs|guide)\\b/)) type = \"docs\";\n\telse if (has(lower, /\\b(research|investigate|compare)\\b/)) type = \"research\";\n\telse if (has(lower, /\\b(add|build|create|implement|ship)\\b/)) type = \"feature\";\n\n\tconst codeMatches = text.match(/```|\\b(function|class|interface|const|let|SELECT|CREATE TABLE|npm|git)\\b/g) ?? [];\n\tconst codeDensity = clamp(codeMatches.length / Math.max(4, text.split(/\\s+/).length / 8));\n\tconst scopeBreadth = clamp(((input.scopePaths?.length ?? 1) - 1) / 12 + (has(lower, /\\b(repo|workspace|all|across)\\b/) ? 0.25 : 0));\n\tconst acceptanceCount = input.acceptance?.length ?? 0;\n\tconst complexity = clamp(\n\t\t0.16 +\n\t\t\tMath.min(text.length / 3_000, 0.3) +\n\t\t\tscopeBreadth * 0.25 +\n\t\t\tMath.min(acceptanceCount * 0.04, 0.16) +\n\t\t\t(has(lower, /\\b(security|migration|concurrency|distributed|architecture|production)\\b/) ? 0.2 : 0),\n\t);\n\tconst risk: AgentTaskFeatures[\"risk\"] = has(lower, /\\b(secret|credential|payment|production deploy|delete data)\\b/)\n\t\t? \"critical\"\n\t\t: has(lower, /\\b(auth|security|migration|database|deploy|billing)\\b/)\n\t\t\t? \"high\"\n\t\t\t: complexity > 0.65\n\t\t\t\t? \"medium\"\n\t\t\t\t: \"low\";\n\tconst oracleStrength = clamp(\n\t\t(type === \"test\" || has(lower, /\\b(test|typecheck|lint|build|benchmark|acceptance)\\b/) ? 0.65 : 0.2) +\n\t\t\tMath.min(acceptanceCount * 0.05, 0.25),\n\t);\n\n\treturn {\n\t\trole,\n\t\ttype,\n\t\tcomplexity,\n\t\tscopeBreadth,\n\t\tcontextTokens: Math.max(0, Math.round(input.contextTokens ?? text.length / 4)),\n\t\toracleStrength,\n\t\tcodeDensity,\n\t\trisk,\n\t\tlanguages: [...new Set(input.languages ?? [])].slice(0, 20),\n\t\trequiredTools: [...new Set(input.requiredTools ?? [])].slice(0, 30),\n\t\trequiresVision: has(lower, /\\b(image|screenshot|visual|design|browser)\\b/),\n\t\trequiresNetwork: input.permissionProfile === \"network\" || has(lower, /\\b(web|internet|latest|browse|api docs)\\b/),\n\t\tcacheHit: false,\n\t};\n}\n","import type {\n\tAllowance,\n\tAgentModel,\n\tAgentRouteRequest,\n\tExecutionPlan,\n\tPermissionProfile,\n} from \"./contracts\";\n\n// Quota is deliberately only a tie-breaker inside the router's uncertainty\n// band. It must never make a materially weaker model eligible.\nconst QUALITY_EQUIVALENCE_MARGIN = 0.005;\nconst LOW_ALLOWANCE_THRESHOLD = 0.15;\n\nexport interface RouteSelection {\n\tplan: ExecutionPlan;\n\tfallback: ExecutionPlan;\n\tconfidence: number;\n\treasonCodes: string[];\n\texpected: { verifiedSuccess: number; contextTokens: number; wallTimeMs: number };\n}\n\nconst permissionRank: Record<PermissionProfile, number> = {\n\tinspect: 0,\n\tedit: 1,\n\ttest: 2,\n\tnetwork: 3,\n};\n\nfunction rootPlan(): ExecutionPlan {\n\treturn {\n\t\tworkflow: \"root-only\",\n\t\ttargetId: null,\n\t\tpermissionProfile: \"inspect\",\n\t\tmaxWallMs: 300_000,\n\t\tmaxTurns: 1,\n\t\trequiresWorktree: false,\n\t};\n}\n\nfunction requiredPermission(request: AgentRouteRequest): PermissionProfile {\n\tif (request.task.requiresNetwork) return \"network\";\n\tif (request.task.role === \"test\") return \"test\";\n\tif (request.task.role === \"implement\") return \"edit\";\n\treturn \"inspect\";\n}\n\nfunction readinessScore(model: AgentModel): number {\n\treturn {\n\t\tinstalled: 0,\n\t\t\"auth-ready\": 0.25,\n\t\t\"model-listed\": 0.6,\n\t\t\"invocation-compatible\": 0.85,\n\t\t\"live-confirmed\": 1,\n\t}[model.readiness];\n}\n\nfunction candidateQuality(request: AgentRouteRequest, model: AgentModel): number {\n\tconst history = model.localHistory;\n\tconst historyQuality = history && history.verifiedRuns >= 3 ? history.successRate : model.qualityPrior;\n\tlet quality = model.qualityPrior * 0.7 + historyQuality * 0.3;\n\tif (request.task.codeDensity > 0.2 && model.capabilities.tools) quality += 0.03;\n\tif (request.task.requiresVision && model.capabilities.vision) quality += 0.04;\n\treturn quality * (0.8 + readinessScore(model) * 0.2);\n}\n\nfunction candidateScore(request: AgentRouteRequest, model: AgentModel): number {\n\tconst quality = candidateQuality(request, model);\n\n\tswitch (request.policy.objective) {\n\t\tcase \"quality\":\n\t\t\treturn quality;\n\t\tcase \"tokens\":\n\t\t\treturn quality * 0.65 + model.tokenEfficiencyPrior * 0.35;\n\t\tcase \"latency\":\n\t\t\treturn quality * 0.65 + model.latencyPrior * 0.35;\n\t\tcase \"balanced\":\n\t\t\treturn quality * 0.7 + model.tokenEfficiencyPrior * 0.2 + model.latencyPrior * 0.1;\n\t}\n}\n\nfunction allowanceScore(allowance: Allowance | undefined): number {\n\tif (!allowance || allowance.status === \"unknown\") return 2;\n\tif (allowance.status === \"unmetered\") return 4;\n\tif (allowance.status === \"exhausted\") return -1;\n\tif (allowance.status === \"available\") return 3 + (allowance.remainingFraction ?? 0);\n\treturn 1 + (allowance.remainingFraction ?? 0);\n}\n\nfunction allowanceConstrained(allowance: Allowance | undefined): boolean {\n\treturn allowance?.status === \"exhausted\"\n\t\t|| allowance?.status === \"low\"\n\t\t|| (allowance?.remainingFraction !== undefined && allowance.remainingFraction <= LOW_ALLOWANCE_THRESHOLD);\n}\n\nfunction workflowFor(request: AgentRouteRequest): ExecutionPlan[\"workflow\"] {\n\tif (request.task.role === \"inspect\" || request.task.role === \"plan\" || request.task.role === \"review\") {\n\t\treturn \"single-inspector\";\n\t}\n\tif (request.task.role === \"implement\" && request.task.oracleStrength >= 0.4) {\n\t\treturn \"implementer-deterministic-verify\";\n\t}\n\tif (request.task.role === \"implement\" && (request.task.risk === \"high\" || request.task.risk === \"critical\")) {\n\t\treturn \"implementer-independent-review\";\n\t}\n\treturn \"single-implementer\";\n}\n\nexport function selectAgentRoute(request: AgentRouteRequest): RouteSelection {\n\tconst fallback = rootPlan();\n\tconst permission = requiredPermission(request);\n\tconst reasons: string[] = [];\n\tif (permissionRank[permission] > permissionRank[request.policy.permissionCeiling]) {\n\t\treturn {\n\t\t\tplan: fallback,\n\t\t\tfallback,\n\t\t\tconfidence: 1,\n\t\t\treasonCodes: [\"PERMISSION_CEILING_EXCEEDED\"],\n\t\t\texpected: { verifiedSuccess: request.root.qualityPrior, contextTokens: request.task.contextTokens, wallTimeMs: 0 },\n\t\t};\n\t}\n\tif (request.policy.delegationDepth >= request.policy.maxDelegationDepth) {\n\t\treturn {\n\t\t\tplan: fallback,\n\t\t\tfallback,\n\t\t\tconfidence: 1,\n\t\t\treasonCodes: [\"DELEGATION_DEPTH_LIMIT\"],\n\t\t\texpected: { verifiedSuccess: request.root.qualityPrior, contextTokens: request.task.contextTokens, wallTimeMs: 0 },\n\t\t};\n\t}\n\tconst capabilityEligible = request.candidates.filter((candidate) => {\n\t\tif (!candidate.productUseApproved) return false;\n\t\tif (readinessScore(candidate) < 0.6) return false;\n\t\tif (!candidate.capabilities.permissions.includes(permission)) return false;\n\t\tif (request.policy.allowedHarnesses && !request.policy.allowedHarnesses.includes(candidate.harness)) return false;\n\t\t// Embedded clients must never spawn another copy of the harness that is\n\t\t// currently hosting TokenSize. This applies at depth zero as well as to\n\t\t// nested children; otherwise a Codex/OpenCode plugin can recurse into\n\t\t// itself before the depth limit is reached.\n\t\tif (request.root.active && candidate.harness === request.root.harness) return false;\n\t\tif (request.task.requiresVision && !candidate.capabilities.vision) return false;\n\t\treturn true;\n\t});\n\tif (capabilityEligible.length === 0) {\n\t\treturn {\n\t\t\tplan: fallback,\n\t\t\tfallback,\n\t\t\tconfidence: 1,\n\t\t\treasonCodes: [\"NO_ELIGIBLE_LOCAL_TARGET\"],\n\t\t\texpected: { verifiedSuccess: request.root.qualityPrior, contextTokens: request.task.contextTokens, wallTimeMs: 0 },\n\t\t};\n\t}\n\tconst eligible = capabilityEligible.filter((candidate) => candidate.allowance?.status !== \"exhausted\");\n\tif (eligible.length === 0) {\n\t\treturn {\n\t\t\tplan: fallback,\n\t\t\tfallback,\n\t\t\tconfidence: 1,\n\t\t\treasonCodes: [\"LOCAL_ALLOWANCE_EXHAUSTED\"],\n\t\t\texpected: { verifiedSuccess: request.root.qualityPrior, contextTokens: request.task.contextTokens, wallTimeMs: 0 },\n\t\t};\n\t}\n\n\tconst ranked = eligible.map((candidate) => ({\n\t\tcandidate,\n\t\tquality: candidateQuality(request, candidate),\n\t\tscore: candidateScore(request, candidate),\n\t\tallowance: allowanceScore(candidate.allowance),\n\t}));\n\tconst qualityCeiling = Math.max(...ranked.map((item) => item.quality));\n\tconst qualityPeers = ranked.filter((item) => item.quality >= qualityCeiling - QUALITY_EQUIVALENCE_MARGIN);\n\tconst allowancePeers = [...qualityPeers].sort((a, b) => b.allowance - a.allowance || b.score - a.score || a.candidate.id.localeCompare(b.candidate.id));\n\tconst rankedByUtility = [...qualityPeers].sort((a, b) => b.score - a.score || a.candidate.id.localeCompare(b.candidate.id));\n\tconst best = allowancePeers[0];\n\tconst second = [...allowancePeers, ...ranked.filter((item) => !allowancePeers.includes(item))]\n\t\t.filter((item) => item !== best)\n\t\t.sort((a, b) => b.score - a.score)[0];\n\tconst rootIsConstrained = allowanceConstrained(request.root.allowance);\n\tconst targetHasHealthierAllowance = best.allowance > allowanceScore(request.root.allowance);\n\tconst quotaReliefIsQualitySafe = rootIsConstrained\n\t\t&& targetHasHealthierAllowance\n\t\t&& best.quality >= request.root.qualityPrior - QUALITY_EQUIVALENCE_MARGIN;\n\tif (request.task.complexity < 0.24 && request.task.scopeBreadth < 0.2 && !quotaReliefIsQualitySafe) {\n\t\treturn {\n\t\t\tplan: fallback,\n\t\t\tfallback,\n\t\t\tconfidence: 0.9,\n\t\t\treasonCodes: [\"ROOT_MORE_EFFICIENT_FOR_SMALL_TASK\"],\n\t\t\texpected: { verifiedSuccess: request.root.qualityPrior, contextTokens: request.task.contextTokens, wallTimeMs: 0 },\n\t\t};\n\t}\n\tconst delegationMargin = best.score - request.root.qualityPrior;\n\tif (delegationMargin < -0.08 && request.task.complexity < 0.7 && !quotaReliefIsQualitySafe) {\n\t\treturn {\n\t\t\tplan: fallback,\n\t\t\tfallback,\n\t\t\tconfidence: Math.min(1, Math.abs(delegationMargin) + 0.75),\n\t\t\treasonCodes: [\"ROOT_EXPECTED_UTILITY_HIGHER\"],\n\t\t\texpected: { verifiedSuccess: request.root.qualityPrior, contextTokens: request.task.contextTokens, wallTimeMs: 0 },\n\t\t};\n\t}\n\n\treasons.push(\"QUALITY_SAFE_LOCAL_TARGET\");\n\tif (rootIsConstrained) reasons.push(\"ROOT_ALLOWANCE_LOW\");\n\tif (targetHasHealthierAllowance) reasons.push(\"TARGET_ALLOWANCE_HEALTHIER\");\n\tif (best.candidate.id !== rankedByUtility[0]?.candidate.id) reasons.push(\"ALLOWANCE_BALANCED_WITHIN_QUALITY_TIER\");\n\tif (request.policy.objective === \"tokens\") reasons.push(\"TOKEN_EFFICIENCY_OBJECTIVE\");\n\tif (request.task.oracleStrength >= 0.4) reasons.push(\"DETERMINISTIC_VERIFICATION_AVAILABLE\");\n\tconst workflow = workflowFor(request);\n\tconst maxWallMs = Math.min(request.policy.wallTimeBudgetMs ?? 900_000, 3_600_000);\n\tconst plan: ExecutionPlan = {\n\t\tworkflow,\n\t\ttargetId: best.candidate.id,\n\t\tpermissionProfile: permission,\n\t\tmaxWallMs,\n\t\tmaxTurns: Math.max(3, Math.min(30, Math.round(5 + request.task.complexity * 15))),\n\t\trequiresWorktree: permissionRank[permission] >= permissionRank.edit,\n\t};\n\tconst estimatedContext = Math.round(\n\t\trequest.task.contextTokens * (request.task.cacheHit ? 0.18 : 0.32) + 600 + request.task.scopeBreadth * 1_200,\n\t);\n\treturn {\n\t\tplan,\n\t\tfallback,\n\t\tconfidence: Math.max(0.5, Math.min(0.99, 0.72 + (best.score - (second?.score ?? request.root.qualityPrior)) * 0.8)),\n\t\treasonCodes: reasons,\n\t\texpected: {\n\t\t\tverifiedSuccess: Math.max(0, Math.min(1, best.score)),\n\t\t\tcontextTokens: estimatedContext,\n\t\t\twallTimeMs: Math.round(60_000 + request.task.complexity * 420_000),\n\t\t},\n\t};\n}\n","import { z } from \"zod\";\nimport {\n\tagentTaskFeaturesSchema,\n\tclientSurfaceSchema,\n\texecutionPlanSchema,\n\tharnessIdSchema,\n\tpermissionProfileSchema,\n\troutingObjectiveSchema,\n\ttype PermissionProfile,\n} from \"./contracts\";\n\n/**\n * The Run document: one durable, addressable record per routed task. The Run\n * owns the run — chat transcripts, CLI output, and dashboards are views. Every\n * hand (router, root agent, delegate harness, human) appends typed events; the\n * status is derived from the event log, never stored independently.\n *\n * Content rule: no prompt text, code, diffs, model output, repository paths,\n * or raw installation identifiers may enter a Run. Every payload field is an\n * enum, number, boolean, identifier, or bounded machine-generated code, and\n * every object is strict so an unexpected free-text field is a schema error.\n */\nexport const RUN_SCHEMA_VERSION = 3 as const;\n\nexport const runStatusSchema = z.enum([\n\t\"planned\",\n\t\"awaiting-approval\",\n\t\"executing\",\n\t\"verifying\",\n\t\"completed\",\n\t\"failed\",\n\t\"cancelled\",\n\t\"expired\",\n]);\n\nexport const runActorSchema = z.enum([\"router\", \"root-agent\", \"delegate\", \"human\", \"system\"]);\nexport const approvalKindSchema = z.enum([\"subscription-use\", \"execute\", \"share-prompt\"]);\nexport const approvalSurfaceSchema = z.enum([\"local-cli\", \"web\"]);\n\nconst usageSchema = z.strictObject({\n\tinputTokens: z.number().int().nonnegative().optional(),\n\toutputTokens: z.number().int().nonnegative().optional(),\n\tcontextTokensEstimated: z.number().int().nonnegative(),\n\tsource: z.enum([\"reported\", \"estimated\", \"unknown\"]),\n});\n\nconst failureCode = z.string().min(1).max(100);\nconst reasonCode = z.string().min(1).max(100);\n\nconst eventBase = {\n\tseq: z.number().int().nonnegative(),\n\tat: z.iso.datetime(),\n\tactor: runActorSchema,\n};\n\nexport const runEventSchema = z.discriminatedUnion(\"type\", [\n\tz.strictObject({\n\t\t...eventBase,\n\t\ttype: z.literal(\"created\"),\n\t\tdata: z.strictObject({\n\t\t\tsurface: clientSurfaceSchema,\n\t\t\trouterMode: z.enum([\"metadata-only\", \"prompt-assisted\"]),\n\t\t}),\n\t}),\n\tz.strictObject({\n\t\t...eventBase,\n\t\ttype: z.literal(\"routed\"),\n\t\tdata: z.strictObject({\n\t\t\ttargetId: z.string().min(1).max(256).nullable(),\n\t\t\tworkflow: executionPlanSchema.shape.workflow,\n\t\t\tconfidence: z.number().min(0).max(1),\n\t\t\treasonCodes: z.array(reasonCode).max(20),\n\t\t}),\n\t}),\n\tz.strictObject({\n\t\t...eventBase,\n\t\ttype: z.literal(\"approval-requested\"),\n\t\tdata: z.strictObject({\n\t\t\tkind: approvalKindSchema,\n\t\t\tharness: harnessIdSchema.optional(),\n\t\t}),\n\t}),\n\tz.strictObject({\n\t\t...eventBase,\n\t\ttype: z.literal(\"approval-granted\"),\n\t\tdata: z.strictObject({\n\t\t\tkind: approvalKindSchema,\n\t\t\tgrantedBy: approvalSurfaceSchema,\n\t\t}),\n\t}),\n\tz.strictObject({\n\t\t...eventBase,\n\t\ttype: z.literal(\"approval-denied\"),\n\t\tdata: z.strictObject({\n\t\t\tkind: approvalKindSchema,\n\t\t\tdeniedBy: approvalSurfaceSchema,\n\t\t}),\n\t}),\n\tz.strictObject({\n\t\t...eventBase,\n\t\ttype: z.literal(\"execution-started\"),\n\t\tdata: z.strictObject({\n\t\t\ttargetId: z.string().min(1).max(256),\n\t\t\tpermissionProfile: permissionProfileSchema,\n\t\t\tworktree: z.boolean(),\n\t\t}),\n\t}),\n\tz.strictObject({\n\t\t...eventBase,\n\t\ttype: z.literal(\"execution-progress\"),\n\t\tdata: z.strictObject({\n\t\t\tturn: z.number().int().nonnegative(),\n\t\t\telapsedMs: z.number().int().nonnegative(),\n\t\t}),\n\t}),\n\tz.strictObject({\n\t\t...eventBase,\n\t\ttype: z.literal(\"execution-finished\"),\n\t\tdata: z.strictObject({\n\t\t\toutcome: z.enum([\"success\", \"failure\", \"timeout\"]),\n\t\t\tfailureCode: failureCode.optional(),\n\t\t\telapsedMs: z.number().int().nonnegative(),\n\t\t\tusage: usageSchema.optional(),\n\t\t}),\n\t}),\n\tz.strictObject({\n\t\t...eventBase,\n\t\ttype: z.literal(\"verification-started\"),\n\t\tdata: z.strictObject({}),\n\t}),\n\tz.strictObject({\n\t\t...eventBase,\n\t\ttype: z.literal(\"verification-finished\"),\n\t\tdata: z.strictObject({\n\t\t\tpassed: z.boolean(),\n\t\t\tchecksPassed: z.number().int().nonnegative(),\n\t\t\tchecksFailed: z.number().int().nonnegative(),\n\t\t}),\n\t}),\n\tz.strictObject({\n\t\t...eventBase,\n\t\ttype: z.literal(\"feedback\"),\n\t\tdata: z.strictObject({\n\t\t\tstatus: z.enum([\"completed\", \"verified\", \"failed\", \"blocked\", \"cancelled\"]),\n\t\t\trating: z.number().int().min(1).max(5).optional(),\n\t\t\tmodelChoice: z.enum([\"right\", \"acceptable\", \"wrong\"]).optional(),\n\t\t\twouldUseAgain: z.boolean().optional(),\n\t\t}),\n\t}),\n\tz.strictObject({\n\t\t...eventBase,\n\t\ttype: z.literal(\"cancelled\"),\n\t\tdata: z.strictObject({\n\t\t\tby: runActorSchema,\n\t\t}),\n\t}),\n\tz.strictObject({\n\t\t...eventBase,\n\t\ttype: z.literal(\"expired\"),\n\t\tdata: z.strictObject({}),\n\t}),\n]);\n\nexport type RunStatus = z.infer<typeof runStatusSchema>;\nexport type RunActor = z.infer<typeof runActorSchema>;\nexport type RunEvent = z.infer<typeof runEventSchema>;\nexport type RunEventType = RunEvent[\"type\"];\nexport type ApprovalKind = z.infer<typeof approvalKindSchema>;\n\n/** Candidate snapshot persisted with a Run: capability metadata only, never allowance or local history. */\nexport const runCandidateSchema = z.strictObject({\n\tid: z.string().min(1).max(256),\n\tharness: harnessIdSchema,\n\tnativeModelId: z.string().min(1).max(200),\n\treadiness: z.enum([\"installed\", \"auth-ready\", \"model-listed\", \"invocation-compatible\", \"live-confirmed\"]),\n\tauthMode: z.enum([\"subscription\", \"api-key\", \"cloud-provider\", \"local\", \"unknown\"]),\n\tproductUseApproved: z.boolean(),\n\tcapabilities: z.object({\n\t\ttools: z.boolean(),\n\t\tvision: z.boolean(),\n\t\tstructuredOutput: z.enum([\"none\", \"json\", \"jsonl\", \"schema\"]),\n\t\tsessions: z.enum([\"none\", \"resume\", \"continue\"]),\n\t\tpermissions: z.array(permissionProfileSchema).min(1),\n\t}),\n\tidentityProof: z.enum([\"requested\", \"runtime-reported\", \"unavailable\"]),\n\tqualityPrior: z.number().min(0).max(1),\n\ttokenEfficiencyPrior: z.number().min(0).max(1),\n\tlatencyPrior: z.number().min(0).max(1),\n});\n\nexport const effectivePolicySchema = z.strictObject({\n\tobjective: routingObjectiveSchema,\n\tmaxDelegationDepth: z.number().int().min(0).max(3),\n\tpermissionCeiling: permissionProfileSchema,\n\tallowedHarnesses: z.array(harnessIdSchema).max(10).optional(),\n\ttokenBudget: z.number().int().positive().max(10_000_000).optional(),\n\twallTimeBudgetMs: z.number().int().positive().max(86_400_000).optional(),\n});\n\nexport const runApprovalSchema = z.strictObject({\n\tkind: approvalKindSchema,\n\tstate: z.enum([\"pending\", \"granted\", \"denied\"]),\n\tsurface: approvalSurfaceSchema.optional(),\n\tat: z.iso.datetime(),\n});\n\nexport const runDocumentSchema = z.strictObject({\n\tschemaVersion: z.literal(RUN_SCHEMA_VERSION),\n\trunId: z.uuid(),\n\tcreatedAt: z.iso.datetime(),\n\texpiresAt: z.iso.datetime(),\n\torigin: z.strictObject({\n\t\tsurface: clientSurfaceSchema,\n\t\tclientVersion: z.string().min(1).max(100),\n\t}),\n\ttask: agentTaskFeaturesSchema,\n\tcandidatesSnapshot: z.array(runCandidateSchema).max(100),\n\tdecision: z.strictObject({\n\t\tplan: executionPlanSchema,\n\t\tfallback: executionPlanSchema,\n\t\tconfidence: z.number().min(0).max(1),\n\t\treasonCodes: z.array(reasonCode).max(20),\n\t\texpected: z.strictObject({\n\t\t\tverifiedSuccess: z.number().min(0).max(1),\n\t\t\tcontextTokens: z.number().int().nonnegative(),\n\t\t\twallTimeMs: z.number().int().nonnegative(),\n\t\t}),\n\t\trouterVersion: z.string().min(1).max(100),\n\t}),\n\tpolicy: effectivePolicySchema,\n\tapprovals: z.array(runApprovalSchema).max(20),\n\tevents: z.array(runEventSchema).max(500),\n\tstatus: runStatusSchema,\n\tusage: usageSchema.optional(),\n});\n\nexport type RunDocument = z.infer<typeof runDocumentSchema>;\nexport type EffectivePolicy = z.infer<typeof effectivePolicySchema>;\nexport type RunCandidate = z.infer<typeof runCandidateSchema>;\nexport type RunApproval = z.infer<typeof runApprovalSchema>;\n\nconst TERMINAL: ReadonlySet<RunStatus> = new Set([\"cancelled\", \"expired\"]);\n\n/** Events accepted from each derived status. `null` keys the empty log. */\nconst ALLOWED: Record<RunStatus | \"none\", readonly RunEventType[]> = {\n\tnone: [\"created\"],\n\tplanned: [\"routed\", \"approval-requested\", \"execution-started\", \"cancelled\", \"expired\"],\n\t\"awaiting-approval\": [\"approval-granted\", \"approval-denied\", \"cancelled\", \"expired\"],\n\texecuting: [\"execution-progress\", \"execution-finished\", \"cancelled\", \"expired\"],\n\tverifying: [\"verification-finished\", \"cancelled\", \"expired\"],\n\tcompleted: [\"verification-started\", \"feedback\", \"expired\"],\n\tfailed: [\"verification-started\", \"feedback\", \"expired\"],\n\tcancelled: [\"feedback\"],\n\texpired: [],\n};\n\nfunction apply(status: RunStatus | \"none\", event: RunEvent): RunStatus {\n\tswitch (event.type) {\n\t\tcase \"created\":\n\t\t\treturn \"planned\";\n\t\tcase \"routed\":\n\t\t\treturn \"planned\";\n\t\tcase \"approval-requested\":\n\t\t\treturn \"awaiting-approval\";\n\t\tcase \"approval-granted\":\n\t\t\treturn \"planned\";\n\t\tcase \"approval-denied\":\n\t\t\treturn \"cancelled\";\n\t\tcase \"execution-started\":\n\t\tcase \"execution-progress\":\n\t\t\treturn \"executing\";\n\t\tcase \"execution-finished\":\n\t\t\treturn event.data.outcome === \"success\" ? \"completed\" : \"failed\";\n\t\tcase \"verification-started\":\n\t\t\treturn \"verifying\";\n\t\tcase \"verification-finished\":\n\t\t\treturn event.data.passed ? \"completed\" : \"failed\";\n\t\tcase \"feedback\":\n\t\t\treturn status === \"none\" ? \"planned\" : status;\n\t\tcase \"cancelled\":\n\t\t\treturn \"cancelled\";\n\t\tcase \"expired\":\n\t\t\treturn \"expired\";\n\t}\n}\n\n/** True when `event` may be appended to a run whose derived status is `status`. */\nexport function validateTransition(status: RunStatus | \"none\", event: Pick<RunEvent, \"type\">): boolean {\n\treturn ALLOWED[status].includes(event.type);\n}\n\n/**\n * Derive the run status from the full event log. Pure and total: any event\n * list produces a status; invalid sequences should be rejected at append time\n * with {@link validateTransition} or {@link appendRunEvent}.\n */\nexport function deriveRunStatus(events: readonly RunEvent[]): RunStatus | \"none\" {\n\tlet status: RunStatus | \"none\" = \"none\";\n\tfor (const event of events) status = apply(status, event);\n\treturn status;\n}\n\n/**\n * Validate and append one event: enforces schema strictness, monotonic `seq`,\n * and the transition table. Shared by the hosted coordinator and the local\n * client so both sides agree on what a legal Run history is.\n */\nexport function appendRunEvent(events: readonly RunEvent[], candidate: RunEvent): RunEvent[] {\n\tconst parsed = runEventSchema.parse(candidate);\n\tconst expectedSeq = events.length === 0 ? 0 : events[events.length - 1].seq + 1;\n\tif (parsed.seq !== expectedSeq) throw new Error(`RUN_EVENT_SEQ: expected seq ${expectedSeq}, received ${parsed.seq}`);\n\tconst status = deriveRunStatus(events);\n\tif (!validateTransition(status, parsed)) {\n\t\tthrow new Error(`RUN_EVENT_TRANSITION: ${parsed.type} is not valid from ${status}`);\n\t}\n\treturn [...events, parsed];\n}\n\nexport function isTerminalRunStatus(status: RunStatus): boolean {\n\treturn TERMINAL.has(status) || status === \"completed\" || status === \"failed\";\n}\n\nconst permissionRank: Record<PermissionProfile, number> = { inspect: 0, edit: 1, test: 2, network: 3 };\n\nfunction lowerPermission(a: PermissionProfile, b: PermissionProfile): PermissionProfile {\n\treturn permissionRank[a] <= permissionRank[b] ? a : b;\n}\n\n/**\n * Merge local and hosted policy into the effective policy stamped on a Run.\n * The hosted side can only narrow: ceilings combine by minimum, budgets by\n * minimum, harness allowlists by intersection. The objective is a preference,\n * so the local value wins when both are present. A hosted policy therefore can\n * never raise a local permission ceiling — a tampered or malicious hosted\n * response is inert.\n */\nexport function mergePolicy(local: Partial<EffectivePolicy>, hosted: Partial<EffectivePolicy> = {}): EffectivePolicy {\n\tconst allowedHarnesses = local.allowedHarnesses && hosted.allowedHarnesses\n\t\t? local.allowedHarnesses.filter((harness) => hosted.allowedHarnesses?.includes(harness))\n\t\t: local.allowedHarnesses ?? hosted.allowedHarnesses;\n\tconst tokenBudget = local.tokenBudget !== undefined && hosted.tokenBudget !== undefined\n\t\t? Math.min(local.tokenBudget, hosted.tokenBudget)\n\t\t: local.tokenBudget ?? hosted.tokenBudget;\n\tconst wallTimeBudgetMs = local.wallTimeBudgetMs !== undefined && hosted.wallTimeBudgetMs !== undefined\n\t\t? Math.min(local.wallTimeBudgetMs, hosted.wallTimeBudgetMs)\n\t\t: local.wallTimeBudgetMs ?? hosted.wallTimeBudgetMs;\n\treturn effectivePolicySchema.parse({\n\t\tobjective: local.objective ?? hosted.objective ?? \"balanced\",\n\t\tmaxDelegationDepth: Math.min(local.maxDelegationDepth ?? 1, hosted.maxDelegationDepth ?? 3),\n\t\tpermissionCeiling: lowerPermission(local.permissionCeiling ?? \"inspect\", hosted.permissionCeiling ?? \"network\"),\n\t\t...(allowedHarnesses === undefined ? {} : { allowedHarnesses }),\n\t\t...(tokenBudget === undefined ? {} : { tokenBudget }),\n\t\t...(wallTimeBudgetMs === undefined ? {} : { wallTimeBudgetMs }),\n\t});\n}\n"],"mappings":"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","names":["import_zod","permissionRank"]}
|