paqad-ai
Version:
Spec-driven development framework — AI agents that think before they type
70 lines (64 loc) • 2.87 kB
TypeScript
import { DatabaseImpact, ApiImpact, ClassificationResult, Lane } from '../index.js';
import { F as FeatureChangeKind } from '../types-Byd5d27z.js';
import { S as StageLane } from '../types-BjFhfj7e.js';
import '../domain-LGu-EIZE.js';
import '../introspection-QzYkdEo0.js';
declare const ROUTED_WORKFLOWS: readonly ["feature-development", "project-question", "documentation-update", "module-documentation", "pentest", "design-test", "codebase-health", "site-map", "rules-analyze", "root-cause-analysis", "discovery", "rules-discovery", "no-workflow"];
type RoutedWorkflow = (typeof ROUTED_WORKFLOWS)[number];
interface PendingImpact {
database_impact: DatabaseImpact;
api_impact: ApiImpact;
}
interface WorkflowEntry {
workflow: RoutedWorkflow;
changeKey?: string;
lane?: StageLane;
specId?: string;
discoveryRunId?: string;
reason?: string;
}
declare const SYSTEM_NOTIFICATION_ELEMENTS: readonly string[];
declare const SYSTEM_NOTIFICATION_BANNER = "[system notification - not user input]";
declare const STOP_HOOK_FEEDBACK_PREFIX = "stop hook feedback:";
declare const SUBAGENT_HANDBACK_MARKERS: {
readonly element: "agent-message";
readonly label: "[subagent hand-back]";
};
declare const BARE_TICKET_FILLER: ReadonlySet<string>;
declare function isBareTicketPrompt(prompt: string): boolean;
declare function isSystemNotificationPrompt(prompt: string): boolean;
declare const SLASH_COMMAND_ROUTES: Readonly<Record<string, RoutedWorkflow>>;
declare function slashCommandName(prompt: string): string | null;
interface PromptRouteDeps {
classify?: (input: {
request: string;
}) => Promise<ClassificationResult>;
route?: (classification: ClassificationResult) => {
lane: Lane | null;
};
now?: () => Date;
}
interface PromptRouteResult {
routed: RoutedWorkflow;
lane: Lane | null;
reason: string;
kind?: FeatureChangeKind;
impact?: PendingImpact;
}
declare function resolvePromptRoute(projectRoot: string, request: string, deps?: PromptRouteDeps): Promise<PromptRouteResult>;
interface PromptRouteSeamInput {
projectRoot: string;
request: string;
sessionId: string | null;
adapter: string;
}
interface PromptRouteSeamResult {
routed: RoutedWorkflow;
lane: Lane | null;
resumed: WorkflowEntry | null;
narration: string | null;
notification?: true;
}
declare function runPromptRouteSeam(input: PromptRouteSeamInput, deps?: PromptRouteDeps): Promise<PromptRouteSeamResult>;
export { BARE_TICKET_FILLER, SLASH_COMMAND_ROUTES, STOP_HOOK_FEEDBACK_PREFIX, SUBAGENT_HANDBACK_MARKERS, SYSTEM_NOTIFICATION_BANNER, SYSTEM_NOTIFICATION_ELEMENTS, isBareTicketPrompt, isSystemNotificationPrompt, resolvePromptRoute, runPromptRouteSeam, slashCommandName };
export type { PromptRouteDeps, PromptRouteResult, PromptRouteSeamInput, PromptRouteSeamResult };