UNPKG

aiwg

Version:

Deployment tool and support utility for AI context. Copies agents, skills, commands, rules, and behaviors into the paths each AI platform reads (Claude Code, Codex, Copilot, Cursor, Warp, OpenClaw, and 6 more) so one source of truth works across 10 platfo

55 lines 2.43 kB
/** * Heuristic Project-Type Inference * * Fallback used by `project-status` (and any other `kind: status` aggregator) * when contributor discovery returns zero in-use contributors. Detects what * kind of project this is from cheap local signals — manifest files, file * extensions, basic git presence — so the report still says something useful * for projects that have not opted into AIWG contributors. * * Local-only by design: no network calls, no `npm outdated`, no GitHub API. * The whole inference returns in O(few hundred ms) on a typical repo because * it only checks a small number of well-known paths and runs a handful of * bounded globs. * * @architecture @.aiwg/architecture/decisions/ADR-023-contributor-discovery-convention.md * @issue #941 */ /** * Discriminator for the kind of dimension a heuristic detected. Future * dimensions register by adding a string here without breaking consumers. */ export type HeuristicDimensionKind = 'code' | 'docs' | 'assets' | 'mixed' | string; /** * One dimension of the inferred project type. A project may have several — * a code repo with a docs/ subdir surfaces both `code` and `docs`. The * `confidence` field is a coarse signal-strength indicator the caller can * surface in the report ("(high confidence)"). */ export interface HeuristicDimension { kind: HeuristicDimensionKind; /** Coarse confidence: 'high' = strong signal, 'medium' = present but mixed, 'low' = weak */ confidence: 'high' | 'medium' | 'low'; /** Human-readable summary line for the dimension. */ summary: string; /** Structured detail rows for verbose output / --json. */ details: Array<{ label: string; value: string; }>; } export interface HeuristicReport { /** Always 'heuristic' so callers can stamp `origin: heuristic` on the block. */ origin: 'heuristic'; /** Dimensions in priority order: code, docs, assets, then anything else. */ dimensions: HeuristicDimension[]; /** True when no signals fired and the report has nothing to show. */ empty: boolean; } /** * Run all heuristic detectors and return a unified report. The caller * decides whether to surface this to the user — typically only when * `discoverContributors()` returns zero in-use contributors. */ export declare function inferProjectType(projectRoot: string): Promise<HeuristicReport>; //# sourceMappingURL=heuristic.d.ts.map