import type { AuthorizationEvidence, IdentitySubject, StudioAuthorizationEvidence, StudioAuthorizationVerifier } from '../policy/types.js'; import type { AuthenticatedOutcomeEnvelope } from '../evidence/types.js'; import type { ProjectAction } from '../canonical/permissions.js'; import { type ProjectStore } from '../project-store/types.js'; import type { ContextOmission, QueryProfile, RetrievalDependencies } from './types.js'; export interface AgentContextRequest { readonly agentId: string; readonly query: string; readonly projectId: string; readonly requestId: string; readonly subject: IdentitySubject; readonly authorizationEvidence: AuthorizationEvidence; readonly projectAction?: ProjectAction; readonly bindingDigest?: string; readonly contextSnapshot: AgentContextSnapshot; } export interface AgentContextDependencies extends RetrievalDependencies { readonly projectStore?: ProjectStore; readonly canonicalBundle: unknown; } export interface StudioAgentContextRequest { readonly agentId: string; readonly query: string; readonly requestId: string; readonly subject: IdentitySubject; readonly studioAction: 'improve'; readonly authorizationEvidence: StudioAuthorizationEvidence; readonly bindingDigest?: string; readonly contextSnapshot: AgentContextSnapshot; } export interface StudioAgentContextDependencies extends RetrievalDependencies { readonly canonicalBundle: unknown; readonly authorizationVerifier: StudioAuthorizationVerifier; readonly outcomeSource?: StudioOutcomeSource; } export interface StudioOutcomeSource { readonly readAcceptedOutcomes: (request: { readonly action: 'improve'; readonly requestId: string; }) => Promise; } export interface AgentContextSnapshotExpectation { readonly agentId: string; readonly permissionDigest: string; readonly queryProfileId: string; readonly queryProfileSha256: string; } export interface AgentContextSnapshot extends AgentContextSnapshotExpectation { readonly profileContent: string; readonly profile: QueryProfile; readonly k2Prompt: string; readonly k2Sha256: string; readonly snapshotDigest: string; readonly resourceRoots: KnowledgeResourceRoots; } export interface KnowledgeResourceRoots { readonly layoutRoot: string; readonly canonicalRoot: string; readonly knowledgeRoot: string; } export declare const PROJECT_DOCUMENT_ALLOWLIST: readonly ["brief.md", "requirements.md", "decisions.md", "context.md", "ds-guide.md", "ds-status.md"]; export declare const PROJECT_EVIDENCE_CATEGORY_ALLOWLIST: readonly ["calls", "emails", "slack", "figma", "mobbin"]; export declare const MAX_STUDIO_CONTEXT_OUTCOMES = 8; /** Resolve exactly one supported immutable resource layout: source tree or installed package. */ export declare function resolveKnowledgeResourceRoots(layoutRootValue: string): KnowledgeResourceRoots; export declare function createAgentContextSnapshot(repoRootValue: string, canonicalBundle: unknown, expected: AgentContextSnapshotExpectation): Promise; export declare function verifyAgentContextSnapshot(repoRootValue: string, canonicalBundle: unknown, snapshot: AgentContextSnapshot): Promise; export declare function buildAgentContextManifest(repoRootValue: string, request: AgentContextRequest, dependencies: AgentContextDependencies): Promise<{ snapshotGeneration?: string; queryId: string; workflowId: string; projectId?: string; authorization?: import("../policy/types.js").AuthorizationEvidenceReference; tokenBudget: number; tokensUsed: number; items: import("./types.js").ContextItem[]; omitted: ContextOmission[]; }>; /** Build a studio-only manifest without consulting project storage or selecting K3/K4. */ export declare function buildStudioAgentContextManifest(repoRootValue: string, request: StudioAgentContextRequest, dependencies: StudioAgentContextDependencies): Promise<{ acceptedOutcomes: Record[]; queryId: string; workflowId: string; projectId?: string; authorization?: import("../policy/types.js").AuthorizationEvidenceReference; snapshotGeneration?: string; tokenBudget: number; tokensUsed: number; items: import("./types.js").ContextItem[]; omitted: ContextOmission[]; }>;