{"version":3,"file":"admission-port.d.ts","sourceRoot":"","sources":["../../../src/core/shared-inference/admission-port.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Shared inference admission port (3.0.0 cross-host bridge).\n *\n * The single client-facing seam for requesting, waiting on, renewing, releasing\n * and cancelling an inference slot against ONE authoritative scheduler. Local\n * processes implement the port with the in-process scheduler; remote processes\n * implement it with a structured HTTP client to the local admission service.\n * The remote client NEVER re-implements the scheduling algorithm.\n */\n\nimport type { SharedInferenceScheduler } from \"./scheduler.js\";\nimport type {\n\tAcquireInferenceOutcome,\n\tAdmittedInference,\n\tInferencePriority,\n\tInferenceRequestDependency,\n\tReleaseInferenceOutcome,\n\tSharedInferenceResource,\n} from \"./types.js\";\n\nexport interface InferenceAdmissionInput {\n\tlogicalAgentId: string;\n\tresource: SharedInferenceResource;\n\tmodel: { provider: string; id: string };\n\tinferenceRequestId?: string;\n\tmissionId?: string;\n\tassignmentId?: string;\n\texecutionId?: string;\n\tpriority?: InferencePriority;\n\tdependency?: InferenceRequestDependency;\n\testimatedInputTokens?: number;\n\tmaxOutputTokens?: number;\n}\n\nexport interface ReleaseInferenceInput {\n\tstate: \"COMPLETED\" | \"FAILED\" | \"CANCELLED\" | \"INTERRUPTED\";\n\tusage?: { input?: number; output?: number };\n\terrorMessage?: string;\n}\n\nexport interface SharedInferenceAdmissionPort {\n\treadonly kind: \"local\" | \"remote\";\n\t/** Resolve the shared resource a model targets (undefined = non-shared). */\n\tresourceFor(model: { provider: string; id: string }): SharedInferenceResource | undefined;\n\t/** Request admission, waiting (bounded, abortable) until admitted/cancelled/timeout. */\n\tacquire(\n\t\tinput: InferenceAdmissionInput & { signal?: AbortSignal; queueWaitTimeoutMs?: number },\n\t): Promise<AcquireInferenceOutcome>;\n\t/** Release an admitted lease (fenced by the central authority). */\n\trelease(admitted: AdmittedInference, outcome: ReleaseInferenceInput): Promise<ReleaseInferenceOutcome>;\n\t/** Cancel a queued (or locally-owned running) request. */\n\tcancel(\n\t\tinferenceRequestId: string,\n\t): Promise<{ status: \"cancelled\" | \"not_found\" | \"running\"; inferenceRequestId: string }>;\n}\n\n/**\n * In-process admission client over a local `SharedInferenceScheduler`. This is\n * the zero-network path used by local Jensen processes on Bucephalus; the\n * scheduler's durable ledger remains the shared authority with remote clients.\n */\nexport class LocalSchedulerAdmissionClient implements SharedInferenceAdmissionPort {\n\treadonly kind = \"local\" as const;\n\n\tconstructor(private readonly scheduler: SharedInferenceScheduler) {}\n\n\tresourceFor(model: { provider: string; id: string }): SharedInferenceResource | undefined {\n\t\treturn this.scheduler.resourceFor(model);\n\t}\n\n\tacquire(\n\t\tinput: InferenceAdmissionInput & { signal?: AbortSignal; queueWaitTimeoutMs?: number },\n\t): Promise<AcquireInferenceOutcome> {\n\t\treturn this.scheduler.acquire(input);\n\t}\n\n\trelease(admitted: AdmittedInference, outcome: ReleaseInferenceInput): Promise<ReleaseInferenceOutcome> {\n\t\treturn this.scheduler.release(admitted, outcome);\n\t}\n\n\tcancel(\n\t\tinferenceRequestId: string,\n\t): Promise<{ status: \"cancelled\" | \"not_found\" | \"running\"; inferenceRequestId: string }> {\n\t\treturn this.scheduler.cancel(inferenceRequestId);\n\t}\n}\n"]}