{"version":3,"file":"mission-request.d.ts","sourceRoot":"","sources":["../../../src/core/mission-domain/mission-request.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * First-Class Mission Request (2.3.0).\n *\n * The immutable declared work contract needed to launch a mission. It is\n * executor-independent and provider-independent: a request does not mention a\n * process, a CLI, or a transport. A child mission knows its parent through\n * explicit structured identity (`parentMissionId` + derived `depth`), never\n * through PID, prompt text, or ephemeral process state.\n */\n\nimport { randomUUID } from \"node:crypto\";\nimport type { VerificationSpec } from \"../reliability/types.js\";\n\n// =============================================================================\n// Component types\n// =============================================================================\n\n/**\n * Execution mode. Provider/executor-independent. These values intentionally\n * align with the subagent configuration layer (`SubagentExecutionMode`) without\n * importing that layer: the domain primitive must not depend on agent config.\n */\nexport type MissionExecutionMode = \"observe\" | \"plan\" | \"execute\";\n\nexport interface MissionAcceptanceCriterion {\n\t/** Stable criterion id, unique within the request. */\n\tid: string;\n\tdescription: string;\n\t/**\n\t * Deterministic verification for this criterion. When present the criterion\n\t * can be satisfied only by authoritative evidence (Reliability Kernel).\n\t * When absent the criterion is descriptive and cannot yet be mapped to a\n\t * MissionRuntime contract (mapping is rejected explicitly, never fabricated).\n\t */\n\tverification?: VerificationSpec;\n}\n\nexport interface MissionWorkspaceScope {\n\t/** Absolute working directory that bounds the mission. */\n\tcwd: string;\n\t/** Optional explicit allowed relative paths (defense in depth). */\n\tallowedPaths?: readonly string[];\n}\n\nexport interface MissionBudget {\n\tmaxModelTurns?: number;\n\tmaxToolCalls?: number;\n\tmaxWallTimeMs?: number;\n\tmaxInputTokens?: number;\n\tmaxOutputTokens?: number;\n\tmaxCostUsd?: number;\n\tmaxAffectedFiles?: number;\n}\n\nexport interface MissionModelPolicy {\n\tprovider: string;\n\tmodel: string;\n}\n\nexport type MissionWorkspaceAccess = \"READ_ONLY\" | \"WRITE\";\nexport type MissionOrchestrationNodeKind = \"DIRECT\" | \"CHILD\" | \"SYNTHESIS\" | \"REVIEW\" | \"VERIFICATION\";\nexport type MissionOrchestrationNodeRequirement = \"REQUIRED\" | \"OPTIONAL\" | \"VERIFICATION_GATING\";\n\n/** Durable provenance for a mission materialized from an orchestration plan. */\nexport interface MissionOrchestrationMetadata {\n\torchestrationId: string;\n\tplanRevision: number;\n\tnodeId: string;\n\trole: string;\n\tnodeKind: MissionOrchestrationNodeKind;\n\trequirement: MissionOrchestrationNodeRequirement;\n\tworkspaceAccess: MissionWorkspaceAccess;\n\tindependenceReason?: string;\n\t/** Scheduler-facing dependency criticality derived from the plan DAG. */\n\tdependencyCriticality?: number;\n\tpriority?: number;\n\tverification?: boolean;\n}\n\n/**\n * Typed parent orchestration execution contract.\n *\n * Present only on a mission that OWNS an orchestration plan it must drive to\n * completion (the parent side; `orchestration` above is the child side). It\n * is executor-independent and provider-independent, like the rest of the\n * request: it names the plan identity and the child execution authority,\n * never a process, a port instance, or a PID. The durable request names the\n * authority; the runtime (orchestration layer) resolves the name to an\n * `OrchestrationChildExecutionPort` instance.\n */\nexport interface MissionOrchestrationExecution {\n\t/** Identity of the orchestration plan this mission owns and must execute. */\n\torchestrationId: string;\n\t/**\n\t * Stable identity of the child execution authority for this orchestration.\n\t * Required: a parent orchestration execution without a named child\n\t * execution authority is rejected, never defaulted.\n\t */\n\tchildExecutionAuthority: string;\n}\n\n// =============================================================================\n// MissionRequest\n// =============================================================================\n\nexport interface MissionRequest {\n\t/** Stable canonical mission identity. Never derived from PID. */\n\treadonly missionId: string;\n\t/** Explicit structured parent identity; absent only for a root mission. */\n\treadonly parentMissionId?: string;\n\t/** Structural recursion depth: 0 for root, parentDepth + 1 for a child. */\n\treadonly depth: number;\n\t/** Declared objective (work contract). */\n\treadonly objective: string;\n\t/** Canonical agent/role policy reference (e.g. \"worker\", \"cavecrew-builder\"). */\n\treadonly agent: string;\n\treadonly executionMode: MissionExecutionMode;\n\t/** Acceptance criteria. Required for a governed mission. */\n\treadonly acceptanceCriteria: readonly MissionAcceptanceCriterion[];\n\treadonly workspaceScope?: MissionWorkspaceScope;\n\treadonly budget?: MissionBudget;\n\treadonly capabilities?: readonly string[];\n\treadonly modelPolicy?: MissionModelPolicy;\n\t/**\n\t * Optional idempotency/deduplication identity. When present it is a stable\n\t * caller-supplied key independent of the generated `missionId`.\n\t */\n\treadonly idempotencyKey?: string;\n\t/**\n\t * Durable child AgentSession identity. Allocated BEFORE external execution\n\t * and immutable for the life of the mission. A delegated child mission binds\n\t * to exactly one AgentSession; explicit resume restores this exact session\n\t * rather than allocating a replacement. Never PID-derived.\n\t */\n\treadonly childSessionId?: string;\n\t/**\n\t * Inherited operational constraints (parent + user policy). Durable so an\n\t * interrupted + resumed child retains its guardrails without reconstructing\n\t * them from prompt prose.\n\t */\n\treadonly constraints?: readonly string[];\n\t/** Immutable reference/context package for the mission. */\n\treadonly context?: Readonly<Record<string, unknown>>;\n\t/** Orchestration metadata for a child mission; execution remains owned by Mission/Scheduler. */\n\treadonly orchestration?: MissionOrchestrationMetadata;\n\t/**\n\t * Typed parent orchestration execution contract. Present only on a mission\n\t * that owns an orchestration plan it must drive; names the plan identity\n\t * and the child execution authority. Absent for children and for missions\n\t * without orchestration.\n\t */\n\treadonly orchestrationExecution?: MissionOrchestrationExecution;\n\treadonly createdAtMs: number;\n}\n\n// =============================================================================\n// Factory\n// =============================================================================\n\nexport interface CreateMissionRequestInput {\n\tmissionId?: string;\n\t/** Parent identity used to derive `parentMissionId` and `depth` structurally. */\n\tparent?: { missionId: string; depth: number };\n\tobjective: string;\n\tagent: string;\n\texecutionMode: MissionExecutionMode;\n\tacceptanceCriteria: readonly MissionAcceptanceCriterion[];\n\tworkspaceScope?: MissionWorkspaceScope;\n\tbudget?: MissionBudget;\n\tcapabilities?: readonly string[];\n\tmodelPolicy?: MissionModelPolicy;\n\tidempotencyKey?: string;\n\tchildSessionId?: string;\n\tconstraints?: readonly string[];\n\tcontext?: Readonly<Record<string, unknown>>;\n\torchestration?: MissionOrchestrationMetadata;\n\torchestrationExecution?: MissionOrchestrationExecution;\n\t/** Timestamp override for deterministic construction (defaults to now). */\n\tnow?: number;\n}\n\n/**\n * Build a canonical MissionRequest. If no `missionId` is supplied a stable\n * UUID-based id is generated (never PID-derived). Depth is derived from the\n * parent's depth so parenthood cannot be forged independently of depth.\n */\nexport function createMissionRequest(input: CreateMissionRequestInput): MissionRequest {\n\tconst missionId = input.missionId ?? newMissionId();\n\tconst parentMissionId = input.parent?.missionId;\n\tconst depth = input.parent ? input.parent.depth + 1 : 0;\n\n\treturn Object.freeze({\n\t\tmissionId,\n\t\tparentMissionId,\n\t\tdepth,\n\t\tobjective: input.objective,\n\t\tagent: input.agent,\n\t\texecutionMode: input.executionMode,\n\t\tacceptanceCriteria: Object.freeze([...input.acceptanceCriteria]),\n\t\tworkspaceScope: input.workspaceScope ? Object.freeze({ ...input.workspaceScope }) : undefined,\n\t\tbudget: input.budget ? Object.freeze({ ...input.budget }) : undefined,\n\t\tcapabilities: input.capabilities ? Object.freeze([...input.capabilities]) : undefined,\n\t\tmodelPolicy: input.modelPolicy ? Object.freeze({ ...input.modelPolicy }) : undefined,\n\t\tidempotencyKey: input.idempotencyKey,\n\t\tchildSessionId: input.childSessionId,\n\t\tconstraints: input.constraints ? Object.freeze([...input.constraints]) : undefined,\n\t\tcontext: input.context ? Object.freeze({ ...input.context }) : undefined,\n\t\torchestration: input.orchestration ? Object.freeze({ ...input.orchestration }) : undefined,\n\t\torchestrationExecution: input.orchestrationExecution\n\t\t\t? Object.freeze({ ...input.orchestrationExecution })\n\t\t\t: undefined,\n\t\tcreatedAtMs: input.now ?? Date.now(),\n\t});\n}\n\n/** Stable canonical mission id. UUID-based, never PID-derived. */\nexport function newMissionId(): string {\n\treturn `mission_${randomUUID()}`;\n}\n\n/** Stable durable child AgentSession id. UUID-based, never PID-derived. */\nexport function newChildSessionId(): string {\n\treturn `child_${randomUUID()}`;\n}\n\n/** A child session id is an opaque path-safe identity (used as a session header id). */\nexport function isSafeChildSessionId(value: string): boolean {\n\treturn /^[A-Za-z0-9._-]+$/u.test(value) && value !== \".\" && value !== \"..\";\n}\n\n// =============================================================================\n// Validation\n// =============================================================================\n\nexport type MissionRequestValidationError =\n\t| \"MISSING_MISSION_ID\"\n\t| \"UNTRIMMED_MISSION_ID\"\n\t| \"NEGATIVE_DEPTH\"\n\t| \"PARENT_WITHOUT_DEPTH\"\n\t| \"ROOT_DEPTH_MISMATCH\"\n\t| \"MISSING_OBJECTIVE\"\n\t| \"MISSING_AGENT\"\n\t| \"INVALID_EXECUTION_MODE\"\n\t| \"DUPLICATE_CRITERION_ID\"\n\t| \"UNSAFE_CHILD_SESSION_ID\"\n\t| \"INVALID_CONSTRAINTS\"\n\t| \"INVALID_ORCHESTRATION_METADATA\"\n\t| \"INVALID_ORCHESTRATION_EXECUTION\";\n\nexport type MissionRequestValidationResult =\n\t| { valid: true; request: MissionRequest }\n\t| { valid: false; errors: MissionRequestValidationError[] };\n\nconst EXECUTION_MODES: ReadonlySet<string> = new Set<MissionExecutionMode>([\"observe\", \"plan\", \"execute\"]);\n\n/**\n * Validate a MissionRequest against the domain invariants. Rejects malformed\n * requests explicitly; never derives identity from anything except structured\n * fields.\n */\nexport function validateMissionRequest(request: MissionRequest): MissionRequestValidationResult {\n\tconst errors: MissionRequestValidationError[] = [];\n\n\tif (typeof request.missionId !== \"string\" || request.missionId.trim().length === 0) {\n\t\terrors.push(\"MISSING_MISSION_ID\");\n\t} else if (request.missionId !== request.missionId.trim()) {\n\t\terrors.push(\"UNTRIMMED_MISSION_ID\");\n\t}\n\n\tif (!Number.isSafeInteger(request.depth) || request.depth < 0) {\n\t\terrors.push(\"NEGATIVE_DEPTH\");\n\t}\n\n\tif (request.parentMissionId !== undefined) {\n\t\tif (request.depth < 1) errors.push(\"PARENT_WITHOUT_DEPTH\");\n\t} else if (request.depth !== 0) {\n\t\terrors.push(\"ROOT_DEPTH_MISMATCH\");\n\t}\n\n\tif (typeof request.objective !== \"string\" || request.objective.trim().length === 0) {\n\t\terrors.push(\"MISSING_OBJECTIVE\");\n\t}\n\n\tif (typeof request.agent !== \"string\" || request.agent.trim().length === 0) {\n\t\terrors.push(\"MISSING_AGENT\");\n\t}\n\n\tif (!EXECUTION_MODES.has(request.executionMode)) {\n\t\terrors.push(\"INVALID_EXECUTION_MODE\");\n\t}\n\n\tif (Array.isArray(request.acceptanceCriteria)) {\n\t\tconst seen = new Set<string>();\n\t\tfor (const criterion of request.acceptanceCriteria) {\n\t\t\tif (typeof criterion.id === \"string\" && seen.has(criterion.id)) {\n\t\t\t\terrors.push(\"DUPLICATE_CRITERION_ID\");\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (typeof criterion.id === \"string\") seen.add(criterion.id);\n\t\t}\n\t}\n\n\tif (request.childSessionId !== undefined) {\n\t\tif (typeof request.childSessionId !== \"string\" || !isSafeChildSessionId(request.childSessionId)) {\n\t\t\terrors.push(\"UNSAFE_CHILD_SESSION_ID\");\n\t\t}\n\t}\n\n\tif (\n\t\trequest.constraints !== undefined &&\n\t\t(!Array.isArray(request.constraints) || request.constraints.some((c) => typeof c !== \"string\"))\n\t) {\n\t\terrors.push(\"INVALID_CONSTRAINTS\");\n\t}\n\n\tif (request.orchestration !== undefined) {\n\t\tconst metadata = request.orchestration;\n\t\tif (\n\t\t\ttypeof metadata !== \"object\" ||\n\t\t\tmetadata === null ||\n\t\t\ttypeof metadata.orchestrationId !== \"string\" ||\n\t\t\ttypeof metadata.planRevision !== \"number\" ||\n\t\t\t!Number.isSafeInteger(metadata.planRevision) ||\n\t\t\tmetadata.planRevision < 1 ||\n\t\t\ttypeof metadata.nodeId !== \"string\" ||\n\t\t\ttypeof metadata.role !== \"string\" ||\n\t\t\t!([\"DIRECT\", \"CHILD\", \"SYNTHESIS\", \"REVIEW\", \"VERIFICATION\"] as const).includes(metadata.nodeKind) ||\n\t\t\t!([\"REQUIRED\", \"OPTIONAL\", \"VERIFICATION_GATING\"] as const).includes(metadata.requirement) ||\n\t\t\t!([\"READ_ONLY\", \"WRITE\"] as const).includes(metadata.workspaceAccess) ||\n\t\t\t(metadata.independenceReason !== undefined && typeof metadata.independenceReason !== \"string\") ||\n\t\t\t(metadata.dependencyCriticality !== undefined &&\n\t\t\t\t(!Number.isSafeInteger(metadata.dependencyCriticality) || metadata.dependencyCriticality < 0)) ||\n\t\t\t(metadata.priority !== undefined && (!Number.isSafeInteger(metadata.priority) || metadata.priority < 0)) ||\n\t\t\t(metadata.verification !== undefined && typeof metadata.verification !== \"boolean\")\n\t\t) {\n\t\t\terrors.push(\"INVALID_ORCHESTRATION_METADATA\");\n\t\t}\n\t}\n\n\tif (request.orchestrationExecution !== undefined) {\n\t\tconst execution = request.orchestrationExecution;\n\t\tif (\n\t\t\ttypeof execution !== \"object\" ||\n\t\t\texecution === null ||\n\t\t\ttypeof execution.orchestrationId !== \"string\" ||\n\t\t\texecution.orchestrationId.trim().length === 0 ||\n\t\t\ttypeof execution.childExecutionAuthority !== \"string\" ||\n\t\t\texecution.childExecutionAuthority.trim().length === 0\n\t\t) {\n\t\t\terrors.push(\"INVALID_ORCHESTRATION_EXECUTION\");\n\t\t}\n\t}\n\n\tif (errors.length > 0) return { valid: false, errors };\n\treturn { valid: true, request };\n}\n"]}