import type { Hooks } from "@opencode-ai/plugin"; import type { RuntimeContextSection } from "./runtime-context.js"; import type { EffectiveProfileLayer } from "./effective-profile.js"; export type FileRole = "controller" | "service" | "repository" | "entity" | "domain" | "request-dto" | "response-dto" | "exception" | "test" | "java-common" | "project-bootstrap" | "requirements-bootstrap" | "gradle-bootstrap" | "typescript" | "frontend" | "infra" | "shared-skill"; export type SelectedSharedSkill = { readonly name: string; readonly domain: string; readonly path: string; readonly reason: string; }; export type SelectedPolicyOverlay = { readonly enabled: boolean; readonly sources: readonly ("company" | "personal")[]; readonly diagnostics: readonly string[]; }; export type PendingInjection = { readonly targetFile: string; readonly fileRole: FileRole; readonly selectedHarnessConfigDiagnostics: readonly SelectedHarnessConfigDiagnostic[]; readonly selectedRules: string[]; readonly selectedRuleMetadata: SelectedRuleMetadata[]; readonly selectedSharedSkills: readonly SelectedSharedSkill[]; readonly selectedPolicyOverlay: SelectedPolicyOverlay; readonly policies: string[]; readonly block: string; readonly semanticSections: readonly RuntimeContextSection[]; readonly contextDigest: string; readonly selectedProfileRuleIds?: readonly string[]; readonly selectedProfileSources?: readonly EffectiveProfileLayer[]; readonly profileSelectionReasons?: readonly string[]; }; export type SelectedHarnessConfigDiagnostic = { readonly code: string; readonly message: string; readonly path: string; }; export type SelectedRuleMetadata = { readonly path: string; readonly id: string; readonly source?: string; readonly domain?: string; readonly topic?: string; readonly severity?: string; }; type HookHandler = NonNullable; export type ToolBeforeInput = Parameters>[0]; export type ToolBeforeOutput = Parameters>[1]; export type ToolAfterInput = Parameters>[0]; export type ToolAfterOutput = Parameters>[1]; export type EventInput = Parameters>[0]; export type TransformMessagesOutput = Parameters>[1]; export type TransformSystemInput = Parameters>[0]; export type TransformSystemOutput = Parameters>[1]; export type TextCompleteInput = Parameters>[0]; export type TextCompleteOutput = Parameters>[1]; export {};