import { doctorCommand, printPiPluginsDoctorWarn } from "./doctor.js"; type InitPiPluginInstallDeps = { doctorCommand?: typeof doctorCommand; printPiPluginsDoctorWarn?: typeof printPiPluginsDoctorWarn; }; /** * Apply init's Pi package policy without coupling it to the legacy `--pi` flag. * Dry-run is detect-only; all non-dry-run paths are best-effort and delegated to * the doctor command so package failures never block workspace projection. */ export declare function installPiPluginsForInit(options: { dryRun?: boolean; pi?: boolean; installPiPlugins?: boolean; noPiPlugins?: boolean; workspaceRoot: string; }, deps?: InitPiPluginInstallDeps): Promise; export declare function initCommand(options: { targetPath: string; templateId: string; pi?: boolean; dryRun?: boolean; installPiPlugins?: boolean; noPiPlugins?: boolean; noSkills?: boolean; yes?: boolean; noInteract?: boolean; noCodegraph?: boolean; }): Promise; /** * Hard dependency: ensure a codegraph semantic index exists at the workspace * root (`.codegraph/codegraph.db`, @colbymchenry/codegraph). When missing, run * `codegraph init` to build it. When the CLI is unavailable, print an explicit * error with install guidance (never silently skip); `--no-codegraph` opts out * explicitly. */ export declare function ensureCodegraphIndex(workspaceRoot: string, options?: { noCodegraph?: boolean; }): Promise<{ initialized: boolean; skipped: boolean; }>; export declare const PI_SKELETON_OM_CONFIG: { readonly observeAfterTokens: 20000; readonly reflectAfterTokens: 40000; readonly compactAfterTokens: 120000; readonly passive: false; }; /** * Directory-style ws-* workflow skills that used to be mirrored from the spec * template's `.agents/skills//` into `.pi/skills//`. * * Since Pi (>=0.84) auto-discovers project `.agents/skills/` directly, these * names are NO LONGER mirrored (see `syncPiSkillDirectories` guard); the list * is kept only to document the intended exposure set for Pi. ws-plan / ws-dev / * ws-review / ws-finish are NOT listed because their flat `.prompt.md` stubs * are generated inline and cleaned when a complete `.agents/skills/` version * exists. */ export declare const PI_WS_WORKFLOW_SKILLS: readonly ["ws-intake", "ws-dev-lite", "ws-handoff", "ws-preflight", "ws-rule", "ws-bugfix", "ws-bugfix-batch", "ws-req-change", "ws-req-review", "ws-req-contract-sync", "ws-req-contract-validate", "ws-req-flow-sync", "ws-spec-review", "ws-quality-review", "ws-analyze", "ws-auto", "ws-autonomy", "ws-delegate", "ws-frontend-design"]; /** * 参考型技能:模板存在才镜像(幂等),缺失自动跳过。 */ export declare const PI_REFERENCE_SKILLS: readonly ["using-aiws", "writing-for-agents", "e2e-playwright"]; /** * Apple-ish Dark theme for Pi agent. * Written to the global Pi themes dir (~/.pi/agent/themes/) so every * workspace using the Pi integration gets a consistent look without * committing the theme into each workspace's git history. */ export declare const PI_THEME_APPLE_ISH_DARK: { readonly $schema: "https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json"; readonly name: "apple-ish-dark"; readonly vars: { readonly cyan: "#64D2FF"; readonly blue: "#0A84FF"; readonly green: "#30D158"; readonly red: "#FF453A"; readonly yellow: "#FFD60A"; readonly orange: "#FF9F0A"; readonly purple: "#BF5AF2"; readonly pink: "#FF375F"; readonly text: "#F2F2F7"; readonly gray: "#98989D"; readonly dimGray: "#6E6E73"; readonly darkGray: "#48484A"; readonly accent: "#30D158"; readonly selectedBg: "#2C2C2E"; readonly userMsgBg: "#1C1C1E"; readonly toolPendingBg: "#232326"; readonly toolSuccessBg: "#1E2B22"; readonly toolErrorBg: "#2B1E1E"; readonly customMsgBg: "#232328"; }; readonly colors: { readonly accent: "accent"; readonly border: "darkGray"; readonly borderAccent: "accent"; readonly borderMuted: "dimGray"; readonly success: "green"; readonly error: "red"; readonly warning: "orange"; readonly muted: "gray"; readonly dim: "dimGray"; readonly text: "text"; readonly thinkingText: "gray"; readonly selectedBg: "selectedBg"; readonly userMessageBg: "userMsgBg"; readonly userMessageText: "text"; readonly customMessageBg: "customMsgBg"; readonly customMessageText: "text"; readonly customMessageLabel: "purple"; readonly toolPendingBg: "toolPendingBg"; readonly toolSuccessBg: "toolSuccessBg"; readonly toolErrorBg: "toolErrorBg"; readonly toolTitle: "text"; readonly toolOutput: "gray"; readonly mdHeading: "green"; readonly mdLink: "accent"; readonly mdLinkUrl: "dimGray"; readonly mdCode: "cyan"; readonly mdCodeBlock: "green"; readonly mdCodeBlockBorder: "dimGray"; readonly mdQuote: "gray"; readonly mdQuoteBorder: "dimGray"; readonly mdHr: "dimGray"; readonly mdListBullet: "accent"; readonly toolDiffAdded: "green"; readonly toolDiffRemoved: "red"; readonly toolDiffContext: "gray"; readonly syntaxComment: "#7A7A80"; readonly syntaxKeyword: "#FF375F"; readonly syntaxFunction: "#BF5AF2"; readonly syntaxVariable: "#F2F2F7"; readonly syntaxString: "#30D158"; readonly syntaxNumber: "#FFD60A"; readonly syntaxType: "#64D2FF"; readonly syntaxOperator: "#F2F2F7"; readonly syntaxPunctuation: "#98989D"; readonly thinkingOff: "darkGray"; readonly thinkingMinimal: "#6E6E73"; readonly thinkingLow: "#64D2FF"; readonly thinkingMedium: "#30D158"; readonly thinkingHigh: "#BF5AF2"; readonly thinkingXhigh: "#FF375F"; readonly thinkingMax: "#FF9F0A"; readonly bashMode: "green"; }; readonly export: { readonly pageBg: "#1C1C1E"; readonly cardBg: "#2C2C2E"; readonly infoBg: "#232328"; }; }; export type PiSkeletonFlatSkillDefinition = { rel: string; name: string; description: string; canonicalContent: string; legacyContent: string; }; /** * Flat Pi workflow skills generated by AIWS. The legacy bytes are retained so * update can migrate only files whose contents are known to be AIWS-owned. */ export declare const PI_SKELETON_FLAT_SKILLS: readonly PiSkeletonFlatSkillDefinition[]; export type PiFlatSkillContentClassification = "canonical" | "known-legacy" | "custom" | "unparsable"; export declare function classifyPiFlatSkillContent(content: string, definition: PiSkeletonFlatSkillDefinition): PiFlatSkillContentClassification; export declare function generatePiSkeleton(workspaceRoot: string, dryRun?: boolean, piGlobalThemesDir?: string, templateDir?: string, /** * Controls the default skill surface only (flat `.pi/skills/*.prompt.md` * stubs, ws-* reference skill mirrors, and stale-skill pruning). Project-level * `.pi/extensions/*.ts`, `settings.json`, prompts and the theme skeleton are * always synced so `--no-skills` never skips the retry observer extension. */ syncSkills?: boolean): Promise; export {};