/** * Global-scope `cleo.db` — consolidated **skills** domain (4 tables). * * Part of the consolidated GLOBAL-scope `cleo.db` target shape authored for * SG-DB-SUBSTRATE-V2 (saga T11242, epic T11245/E2, task T11361). Target-shape * authoring only — physical names carry the `skills_` domain prefix. The live * runtime module `schema/skills-schema.ts` keeps its UNPREFIXED names * (`skills`, `skill_usage`, …) until the exodus migration (T11248) swaps the * substrate. * * ## Idempotent prefixer (AC1) * * All four source tables are bare and gain the `skills_` prefix at exodus: * `skills` → `skills_skills` · `skill_usage` → `skills_skill_usage` · * `skill_reviews` → `skills_skill_reviews` · `skill_patches` → * `skills_skill_patches`. * * ## E10 typing applied * * The skills source is already E10-clean — no non-conformers to remediate: * - **§5a enums:** `source_type` / `lifecycle_state` / `outcome` / `status` * already declare `text({ enum })` from in-module named const arrays * ({@link SKILL_SOURCE_TYPES} / {@link SKILL_LIFECYCLE_STATES} / * {@link SKILL_REVIEW_OUTCOMES} / {@link SKILL_PATCH_STATUSES}); the * matching `CHECK (col IN (...))` ships at exodus. * - **§3a booleans:** `skills.pinned` / `skills.is_agent_created` already * declare `{ mode:'boolean' }`. * - **§4 timestamps:** every timestamp is already canonical TEXT ISO8601 * (`installed_at`, `observed_at`, `reviewed_at`, `proposed_at`, …) — no * epoch/Date non-conformer in this domain. * * ## FK reconciliation to single-file Pattern A (AC4) * * The skills source declares all relationships as LOGICAL (denormalized * `skill_name` / `review_id` columns, no enforced `.references()`), so nothing * crossed a file boundary. `skill_usage.task_id` is a cross-domain reference to * the PROJECT-scope `cleo.db` and therefore stays a plain `text` soft FK * (resolved by the skill-telemetry accessor; no ATTACH). * * @task T11361 * @epic T11245 * @saga T11242 * @see docs/migration/sqlite-schema-canonical.md §1 (D1″ · global counts) · §3a · §5a * @see docs/migration/sqlite-schema-columns.json (per-column affinity SSoT) * @see ../skills-schema.ts (the runtime source module) */ /** * Provenance of a skill row (Sphere A canonical vs Sphere B authored). * * @architecture SG-CLEO-SKILLS v3 §4 `source_type` enum * @task T11361 (target shape) · T9651 (original) */ export declare const SKILL_SOURCE_TYPES: readonly ["canonical", "user", "community", "agent-created"]; /** TypeScript union derived from {@link SKILL_SOURCE_TYPES}. */ export type SkillSourceType = (typeof SKILL_SOURCE_TYPES)[number]; /** * Lifecycle state of a skill row. * * @architecture SG-CLEO-SKILLS v3 §4 `lifecycle_state` enum * @task T11361 (target shape) · T9651 (original) */ export declare const SKILL_LIFECYCLE_STATES: readonly ["active", "stale", "archived"]; /** TypeScript union derived from {@link SKILL_LIFECYCLE_STATES}. */ export type SkillLifecycleState = (typeof SKILL_LIFECYCLE_STATES)[number]; /** * Skill review outcome (council and/or grade pipelines). * * @architecture SG-CLEO-SKILLS v3 §6/§7 (auto-improve) * @task T11361 (target shape) · T9651 (original) */ export declare const SKILL_REVIEW_OUTCOMES: readonly ["approved", "rejected", "needs-changes"]; /** TypeScript union derived from {@link SKILL_REVIEW_OUTCOMES}. */ export type SkillReviewOutcome = (typeof SKILL_REVIEW_OUTCOMES)[number]; /** * Skill patch application state. * * @architecture SG-CLEO-SKILLS v3 §6/§7 (auto-improve) * @task T11361 (target shape) · T9651 (original) */ export declare const SKILL_PATCH_STATUSES: readonly ["proposed", "applied", "reverted", "rejected"]; /** TypeScript union derived from {@link SKILL_PATCH_STATUSES}. */ export type SkillPatchStatus = (typeof SKILL_PATCH_STATUSES)[number]; /** * `skills_skills` — per-user registry of installed skills (one row per name). * Bare `skills` → `skills_skills` under the AC1 idempotent prefixer. * * @task T11361 (target shape) · T9651 (original) */ export declare const skillsSkills: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{ name: "skills_skills"; schema: undefined; columns: { id: import("drizzle-orm/sqlite-core").SQLiteColumn<{ name: string; tableName: "skills_skills"; dataType: "number int53"; data: number; driverParam: number; notNull: true; hasDefault: true; isPrimaryKey: true; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; name: import("drizzle-orm/sqlite-core").SQLiteColumn<{ name: string; tableName: "skills_skills"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; version: import("drizzle-orm/sqlite-core").SQLiteColumn<{ name: string; tableName: "skills_skills"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; sourceType: import("drizzle-orm/sqlite-core").SQLiteColumn<{ name: string; tableName: "skills_skills"; dataType: "string enum"; data: "community" | "user" | "canonical" | "agent-created"; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: ["canonical", "user", "community", "agent-created"]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; sourceUrl: import("drizzle-orm/sqlite-core").SQLiteColumn<{ name: string; tableName: "skills_skills"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; installPath: import("drizzle-orm/sqlite-core").SQLiteColumn<{ name: string; tableName: "skills_skills"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; canonicalPath: import("drizzle-orm/sqlite-core").SQLiteColumn<{ name: string; tableName: "skills_skills"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; installedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{ name: string; tableName: "skills_skills"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; lastUpdatedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{ name: string; tableName: "skills_skills"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; lifecycleState: import("drizzle-orm/sqlite-core").SQLiteColumn<{ name: string; tableName: "skills_skills"; dataType: "string enum"; data: "active" | "archived" | "stale"; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: ["active", "stale", "archived"]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; pinned: import("drizzle-orm/sqlite-core").SQLiteColumn<{ name: string; tableName: "skills_skills"; dataType: "boolean"; data: boolean; driverParam: number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; isAgentCreated: import("drizzle-orm/sqlite-core").SQLiteColumn<{ name: string; tableName: "skills_skills"; dataType: "boolean"; data: boolean; driverParam: number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; archivedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{ name: string; tableName: "skills_skills"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; archivedFromPath: import("drizzle-orm/sqlite-core").SQLiteColumn<{ name: string; tableName: "skills_skills"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; }; dialect: "sqlite"; }>; /** * `skills_skill_usage` — per-event telemetry row (load / invoke / error). Bare * `skill_usage` → `skills_skill_usage`. * * @task T11361 (target shape) · T9651 (original) */ export declare const skillsSkillUsage: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{ name: "skills_skill_usage"; schema: undefined; columns: { id: import("drizzle-orm/sqlite-core").SQLiteColumn<{ name: string; tableName: "skills_skill_usage"; dataType: "number int53"; data: number; driverParam: number; notNull: true; hasDefault: true; isPrimaryKey: true; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; skillName: import("drizzle-orm/sqlite-core").SQLiteColumn<{ name: string; tableName: "skills_skill_usage"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; observedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{ name: string; tableName: "skills_skill_usage"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; eventKind: import("drizzle-orm/sqlite-core").SQLiteColumn<{ name: string; tableName: "skills_skill_usage"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; taskId: import("drizzle-orm/sqlite-core").SQLiteColumn<{ name: string; tableName: "skills_skill_usage"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; projectId: import("drizzle-orm/sqlite-core").SQLiteColumn<{ name: string; tableName: "skills_skill_usage"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; modelId: import("drizzle-orm/sqlite-core").SQLiteColumn<{ name: string; tableName: "skills_skill_usage"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; metadata: import("drizzle-orm/sqlite-core").SQLiteColumn<{ name: string; tableName: "skills_skill_usage"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; }; dialect: "sqlite"; }>; /** * `skills_skill_reviews` — council + grade review outcomes (auto-improve quality * gate). Bare `skill_reviews` → `skills_skill_reviews`. * * @task T11361 (target shape) · T9651 (original) */ export declare const skillsSkillReviews: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{ name: "skills_skill_reviews"; schema: undefined; columns: { id: import("drizzle-orm/sqlite-core").SQLiteColumn<{ name: string; tableName: "skills_skill_reviews"; dataType: "number int53"; data: number; driverParam: number; notNull: true; hasDefault: true; isPrimaryKey: true; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; skillName: import("drizzle-orm/sqlite-core").SQLiteColumn<{ name: string; tableName: "skills_skill_reviews"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; reviewedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{ name: string; tableName: "skills_skill_reviews"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; outcome: import("drizzle-orm/sqlite-core").SQLiteColumn<{ name: string; tableName: "skills_skill_reviews"; dataType: "string enum"; data: "approved" | "rejected" | "needs-changes"; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: ["approved", "rejected", "needs-changes"]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; score: import("drizzle-orm/sqlite-core").SQLiteColumn<{ name: string; tableName: "skills_skill_reviews"; dataType: "number int53"; data: number; driverParam: number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; reviewRunId: import("drizzle-orm/sqlite-core").SQLiteColumn<{ name: string; tableName: "skills_skill_reviews"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; summary: import("drizzle-orm/sqlite-core").SQLiteColumn<{ name: string; tableName: "skills_skill_reviews"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; }; dialect: "sqlite"; }>; /** * `skills_skill_patches` — auto-improve patch payload (unified diff). Bare * `skill_patches` → `skills_skill_patches`. * * @task T11361 (target shape) · T9651 (original) */ export declare const skillsSkillPatches: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{ name: "skills_skill_patches"; schema: undefined; columns: { id: import("drizzle-orm/sqlite-core").SQLiteColumn<{ name: string; tableName: "skills_skill_patches"; dataType: "number int53"; data: number; driverParam: number; notNull: true; hasDefault: true; isPrimaryKey: true; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; skillName: import("drizzle-orm/sqlite-core").SQLiteColumn<{ name: string; tableName: "skills_skill_patches"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; proposedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{ name: string; tableName: "skills_skill_patches"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; appliedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{ name: string; tableName: "skills_skill_patches"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; reviewId: import("drizzle-orm/sqlite-core").SQLiteColumn<{ name: string; tableName: "skills_skill_patches"; dataType: "number int53"; data: number; driverParam: number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; diff: import("drizzle-orm/sqlite-core").SQLiteColumn<{ name: string; tableName: "skills_skill_patches"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; status: import("drizzle-orm/sqlite-core").SQLiteColumn<{ name: string; tableName: "skills_skill_patches"; dataType: "string enum"; data: "proposed" | "applied" | "rejected" | "reverted"; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: ["proposed", "applied", "reverted", "rejected"]; baseColumn: never; identity: undefined; generated: undefined; }, {}>; revertedByPatchId: import("drizzle-orm/sqlite-core").SQLiteColumn<{ name: string; tableName: "skills_skill_patches"; dataType: "number int53"; data: number; driverParam: number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}>; }; dialect: "sqlite"; }>; /** Row type for `skills_skills` SELECT (target shape). */ export type SkillRow = typeof skillsSkills.$inferSelect; /** Row type for `skills_skills` INSERT (target shape). */ export type NewSkillRow = typeof skillsSkills.$inferInsert; /** Row type for `skills_skill_usage` SELECT (target shape). */ export type SkillUsageRow = typeof skillsSkillUsage.$inferSelect; /** Row type for `skills_skill_usage` INSERT (target shape). */ export type NewSkillUsageRow = typeof skillsSkillUsage.$inferInsert; /** Row type for `skills_skill_reviews` SELECT (target shape). */ export type SkillReviewRow = typeof skillsSkillReviews.$inferSelect; /** Row type for `skills_skill_reviews` INSERT (target shape). */ export type NewSkillReviewRow = typeof skillsSkillReviews.$inferInsert; /** Row type for `skills_skill_patches` SELECT (target shape). */ export type SkillPatchRow = typeof skillsSkillPatches.$inferSelect; /** Row type for `skills_skill_patches` INSERT (target shape). */ export type NewSkillPatchRow = typeof skillsSkillPatches.$inferInsert; //# sourceMappingURL=skills.d.ts.map