import type { RetrievalTaskAction } from './memory.js'; import type { CanonicalTaskIntent } from './task-context-envelope.js'; import type { CanonicalTaskIdentity } from './task-semantic-control.js'; import type { ActionAuthority, SemanticFacts } from './semantic-claims.js'; export type DomainObjectKind = 'component' | 'page' | 'hook' | 'api' | 'dependency' | 'configuration' | 'performance' | 'unknown'; export type DomainTargetState = 'missing' | 'existing' | 'either' | 'unknown'; export interface TargetStateEvidenceV1 { schemaVersion: 'target-state-evidence.v1'; taskRevisionHash: string; semanticContextHash: string; targetAnchor: string; state: 'missing' | 'existing' | 'ambiguous' | 'unavailable'; authority: 'host_exact_path' | 'repository_inventory' | 'compiler_binding' | 'code_receipt'; evidenceIds: string[]; evidenceHash: string; } export interface DomainToolDefinitionV1 { tool: string; activeSkills: string[]; operations: RetrievalTaskAction[]; intents: CanonicalTaskIntent[]; objectKinds: DomainObjectKind[]; targetState: DomainTargetState; requiredCapabilities: string[]; requiredInputs: string[]; verification: Array<{ kind: 'formatter' | 'lint' | 'typecheck' | 'test' | 'build' | 'generated_files'; required: boolean; mode?: 'check' | 'write'; }>; registryPriority: number; } export interface DomainToolRegistryV1 { schemaVersion: 'domain-tool-registry.v1'; version: string; tools: DomainToolDefinitionV1[]; registryHash: string; } export interface DomainActionCandidateV1 { tool: string; specificity: number; registryPriority: number; requiredPreconditions: string[]; satisfiedPreconditions: string[]; evidenceIds: string[]; } export interface DomainActionPlanV1 { schemaVersion: 'domain-action-plan.v1'; taskRevisionHash: string; semanticContextHash: string; taskDefinitionHash?: string; registryHash: string; actionAuthorityHash: string; mutation: ActionAuthority['mutation']; phase: 'proposal' | 'final'; supersedesPlanHash?: string; targetStateEvidenceHash?: string; status: 'selected' | 'needs_target_evidence' | 'needs_condition_evidence' | 'abstained' | 'conflicted' | 'unavailable'; candidates: DomainActionCandidateV1[]; selectedTool?: string; reasonCode: string; planHash: string; } export interface DomainActionPlannerInputV1 { identity: CanonicalTaskIdentity; taskRevisionHash: string; semanticContextHash: string; taskDefinitionHash?: string; facts: Pick; actionAuthority: ActionAuthority; objectKind?: DomainObjectKind; activeSkill?: string; capabilities?: ReadonlySet; registry: DomainToolRegistryV1; targetStateEvidence?: TargetStateEvidenceV1[]; phase?: 'proposal' | 'final'; supersedesPlanHash?: string; now?: number; } //# sourceMappingURL=domain-action.d.ts.map