@cleocode/core 2026.4.48 → 2026.4.50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -12,7 +12,7 @@ export { type DiscoverResult, discoverRelated, extractKeywords, type NexusDiscov
12
12
  export { generateProjectHash } from './hash.js';
13
13
  export { canExecute, canRead, canWrite, checkPermission, checkPermissionDetail, getPermission, type PermissionCheckResult, permissionLevel, requirePermission, setPermission, } from './permissions.js';
14
14
  export { getCurrentProject, getProjectFromQuery, type NexusParsedQuery, type NexusResolvedTask, parseQuery, resolveProjectPath, resolveTask, validateSyntax, } from './query.js';
15
- export { getNexusCacheDir, getNexusHome, type NexusHealthStatus, type NexusPermissionLevel, type NexusProject, type NexusRegistryFile, nexusGetProject, nexusInit, nexusList, nexusProjectExists, nexusReconcile, nexusRegister, nexusSetPermission, nexusSync, nexusSyncAll, nexusUnregister, readRegistry, readRegistryRequired, resetNexusDbState, } from './registry.js';
15
+ export { getNexusCacheDir, getNexusHome, type NexusHealthStatus, type NexusPermissionLevel, type NexusProject, type NexusProjectStats, type NexusRegistryFile, nexusGetProject, nexusInit, nexusList, nexusProjectExists, nexusReconcile, nexusRegister, nexusSetPermission, nexusSync, nexusSyncAll, nexusUnregister, nexusUpdateIndexStats, readRegistry, readRegistryRequired, resetNexusDbState, } from './registry.js';
16
16
  export { getSharingStatus, type SharingStatus, syncGitignore, } from './sharing/index.js';
17
17
  export { executeTransfer, previewTransfer } from './transfer.js';
18
18
  export type { ImportFromPackageOptions, ImportFromPackageResult, TransferManifest, TransferManifestEntry, TransferMode, TransferOnConflict, TransferOnMissingDep, TransferParams, TransferResult, TransferScope, } from './transfer-types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/nexus/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EACL,KAAK,sBAAsB,EAC3B,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,kBAAkB,EACvB,YAAY,EACZ,KAAK,SAAS,EACd,KAAK,UAAU,EAEf,oBAAoB,EACpB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,SAAS,EACT,KAAK,WAAW,EAChB,eAAe,EACf,gBAAgB,GACjB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,KAAK,cAAc,EACnB,eAAe,EACf,eAAe,EACf,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,oBAAoB,GACrB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEhD,OAAO,EACL,UAAU,EACV,OAAO,EACP,QAAQ,EACR,eAAe,EACf,qBAAqB,EACrB,aAAa,EACb,KAAK,qBAAqB,EAE1B,eAAe,EACf,iBAAiB,EACjB,aAAa,GACd,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,UAAU,EACV,kBAAkB,EAClB,WAAW,EAEX,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,gBAAgB,EAEhB,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EAEzB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,eAAe,EACf,SAAS,EACT,SAAS,EACT,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,SAAS,EACT,YAAY,EACZ,eAAe,EAEf,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAEL,gBAAgB,EAEhB,KAAK,aAAa,EAClB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACjE,YAAY,EACV,wBAAwB,EACxB,uBAAuB,EACvB,gBAAgB,EAChB,qBAAqB,EACrB,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,cAAc,EACd,aAAa,GACd,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,eAAe,EACf,UAAU,EACV,WAAW,EACX,cAAc,EACd,uBAAuB,EACvB,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,cAAc,EACd,cAAc,EACd,eAAe,EACf,eAAe,GAChB,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/nexus/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EACL,KAAK,sBAAsB,EAC3B,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,kBAAkB,EACvB,YAAY,EACZ,KAAK,SAAS,EACd,KAAK,UAAU,EAEf,oBAAoB,EACpB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,SAAS,EACT,KAAK,WAAW,EAChB,eAAe,EACf,gBAAgB,GACjB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,KAAK,cAAc,EACnB,eAAe,EACf,eAAe,EACf,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,oBAAoB,GACrB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEhD,OAAO,EACL,UAAU,EACV,OAAO,EACP,QAAQ,EACR,eAAe,EACf,qBAAqB,EACrB,aAAa,EACb,KAAK,qBAAqB,EAE1B,eAAe,EACf,iBAAiB,EACjB,aAAa,GACd,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,UAAU,EACV,kBAAkB,EAClB,WAAW,EAEX,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,gBAAgB,EAEhB,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EAEzB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,eAAe,EACf,SAAS,EACT,SAAS,EACT,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,SAAS,EACT,YAAY,EACZ,eAAe,EACf,qBAAqB,EAErB,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAEL,gBAAgB,EAEhB,KAAK,aAAa,EAClB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACjE,YAAY,EACV,wBAAwB,EACxB,uBAAuB,EACvB,gBAAgB,EAChB,qBAAqB,EACrB,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,cAAc,EACd,aAAa,GACd,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,eAAe,EACf,UAAU,EACV,WAAW,EACX,cAAc,EACd,uBAAuB,EACvB,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,cAAc,EACd,cAAc,EACd,eAAe,EACf,eAAe,GAChB,MAAM,gBAAgB,CAAC"}
@@ -13,6 +13,12 @@
13
13
  import { resetNexusDbState } from '../store/nexus-sqlite.js';
14
14
  export type NexusPermissionLevel = 'read' | 'write' | 'execute';
15
15
  export type NexusHealthStatus = 'unknown' | 'healthy' | 'degraded' | 'unreachable';
16
+ /** Per-project code intelligence statistics stored in stats_json. */
17
+ export interface NexusProjectStats {
18
+ nodeCount: number;
19
+ relationCount: number;
20
+ fileCount: number;
21
+ }
16
22
  /** Domain representation of a registered Nexus project. */
17
23
  export interface NexusProject {
18
24
  hash: string;
@@ -27,6 +33,14 @@ export interface NexusProject {
27
33
  lastSync: string;
28
34
  taskCount: number;
29
35
  labels: string[];
36
+ /** Absolute path to the project's brain.db. Null if not yet populated. */
37
+ brainDbPath: string | null;
38
+ /** Absolute path to the project's tasks.db. Null if not yet populated. */
39
+ tasksDbPath: string | null;
40
+ /** ISO 8601 timestamp of the last code intelligence index run. Null if never indexed. */
41
+ lastIndexed: string | null;
42
+ /** Code intelligence stats from the last index run. */
43
+ stats: NexusProjectStats;
30
44
  }
31
45
  /** Legacy registry file shape (pre-SQLite). Retained for migration compatibility. */
32
46
  export interface NexusRegistryFile {
@@ -94,6 +108,17 @@ export declare function nexusSyncAll(): Promise<{
94
108
  synced: number;
95
109
  failed: number;
96
110
  }>;
111
+ /**
112
+ * Update code intelligence index stats for a registered project.
113
+ *
114
+ * Called after a successful `cleo nexus analyze` run to record the
115
+ * latest node/relation/file counts and the indexed timestamp.
116
+ *
117
+ * @param projectPath - Absolute path to the project root.
118
+ * @param stats - Results from the pipeline run.
119
+ * @task T622
120
+ */
121
+ export declare function nexusUpdateIndexStats(projectPath: string, stats: NexusProjectStats): Promise<void>;
97
122
  /**
98
123
  * Update a project's permission level in the registry.
99
124
  * Used by permissions.ts to avoid direct JSON file writes.
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/nexus/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/nexus/registry.ts"],"names":[],"mappings":"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"}
@@ -206,6 +206,70 @@ export declare const projectRegistry: import("drizzle-orm/sqlite-core").SQLiteTa
206
206
  identity: undefined;
207
207
  generated: undefined;
208
208
  }, {}>;
209
+ brainDbPath: import("drizzle-orm/sqlite-core").SQLiteColumn<{
210
+ name: string;
211
+ tableName: "project_registry";
212
+ dataType: "string";
213
+ data: string;
214
+ driverParam: string;
215
+ notNull: false;
216
+ hasDefault: false;
217
+ isPrimaryKey: false;
218
+ isAutoincrement: false;
219
+ hasRuntimeDefault: false;
220
+ enumValues: [string, ...string[]];
221
+ baseColumn: never;
222
+ identity: undefined;
223
+ generated: undefined;
224
+ }, {}>;
225
+ tasksDbPath: import("drizzle-orm/sqlite-core").SQLiteColumn<{
226
+ name: string;
227
+ tableName: "project_registry";
228
+ dataType: "string";
229
+ data: string;
230
+ driverParam: string;
231
+ notNull: false;
232
+ hasDefault: false;
233
+ isPrimaryKey: false;
234
+ isAutoincrement: false;
235
+ hasRuntimeDefault: false;
236
+ enumValues: [string, ...string[]];
237
+ baseColumn: never;
238
+ identity: undefined;
239
+ generated: undefined;
240
+ }, {}>;
241
+ lastIndexed: import("drizzle-orm/sqlite-core").SQLiteColumn<{
242
+ name: string;
243
+ tableName: "project_registry";
244
+ dataType: "string";
245
+ data: string;
246
+ driverParam: string;
247
+ notNull: false;
248
+ hasDefault: false;
249
+ isPrimaryKey: false;
250
+ isAutoincrement: false;
251
+ hasRuntimeDefault: false;
252
+ enumValues: [string, ...string[]];
253
+ baseColumn: never;
254
+ identity: undefined;
255
+ generated: undefined;
256
+ }, {}>;
257
+ statsJson: import("drizzle-orm/sqlite-core").SQLiteColumn<{
258
+ name: string;
259
+ tableName: "project_registry";
260
+ dataType: "string";
261
+ data: string;
262
+ driverParam: string;
263
+ notNull: true;
264
+ hasDefault: true;
265
+ isPrimaryKey: false;
266
+ isAutoincrement: false;
267
+ hasRuntimeDefault: false;
268
+ enumValues: [string, ...string[]];
269
+ baseColumn: never;
270
+ identity: undefined;
271
+ generated: undefined;
272
+ }, {}>;
209
273
  };
210
274
  dialect: "sqlite";
211
275
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"nexus-schema.d.ts","sourceRoot":"","sources":["../../src/store/nexus-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,gEAAgE;AAChE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqB3B,CAAC;AAIF,sEAAsE;AACtE,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BzB,CAAC;AAIF,mEAAmE;AACnE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG1B,CAAC;AAIH;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,2WA2CnB,CAAC;AAEX,qDAAqD;AACrD,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4EtB,CAAC;AAIF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,+SAiCvB,CAAC;AAEX,yDAAyD;AACzD,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtE;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0C1B,CAAC;AAIF,MAAM,MAAM,kBAAkB,GAAG,OAAO,eAAe,CAAC,YAAY,CAAC;AACrE,MAAM,MAAM,qBAAqB,GAAG,OAAO,eAAe,CAAC,YAAY,CAAC;AACxE,MAAM,MAAM,gBAAgB,GAAG,OAAO,aAAa,CAAC,YAAY,CAAC;AACjE,MAAM,MAAM,mBAAmB,GAAG,OAAO,aAAa,CAAC,YAAY,CAAC;AACpE,MAAM,MAAM,kBAAkB,GAAG,OAAO,eAAe,CAAC,YAAY,CAAC;AACrE,MAAM,MAAM,qBAAqB,GAAG,OAAO,eAAe,CAAC,YAAY,CAAC;AACxE,MAAM,MAAM,YAAY,GAAG,OAAO,UAAU,CAAC,YAAY,CAAC;AAC1D,MAAM,MAAM,eAAe,GAAG,OAAO,UAAU,CAAC,YAAY,CAAC;AAC7D,MAAM,MAAM,gBAAgB,GAAG,OAAO,cAAc,CAAC,YAAY,CAAC;AAClE,MAAM,MAAM,mBAAmB,GAAG,OAAO,cAAc,CAAC,YAAY,CAAC"}
1
+ {"version":3,"file":"nexus-schema.d.ts","sourceRoot":"","sources":["../../src/store/nexus-schema.ts"],"names":[],"mappings":"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"}
@@ -206,6 +206,70 @@ export declare const insertProjectRegistrySchema: import("drizzle-orm/zod").Buil
206
206
  identity: undefined;
207
207
  generated: undefined;
208
208
  }, {}>;
209
+ brainDbPath: import("drizzle-orm/sqlite-core").SQLiteColumn<{
210
+ name: string;
211
+ tableName: "project_registry";
212
+ dataType: "string";
213
+ data: string;
214
+ driverParam: string;
215
+ notNull: false;
216
+ hasDefault: false;
217
+ isPrimaryKey: false;
218
+ isAutoincrement: false;
219
+ hasRuntimeDefault: false;
220
+ enumValues: [string, ...string[]];
221
+ baseColumn: never;
222
+ identity: undefined;
223
+ generated: undefined;
224
+ }, {}>;
225
+ tasksDbPath: import("drizzle-orm/sqlite-core").SQLiteColumn<{
226
+ name: string;
227
+ tableName: "project_registry";
228
+ dataType: "string";
229
+ data: string;
230
+ driverParam: string;
231
+ notNull: false;
232
+ hasDefault: false;
233
+ isPrimaryKey: false;
234
+ isAutoincrement: false;
235
+ hasRuntimeDefault: false;
236
+ enumValues: [string, ...string[]];
237
+ baseColumn: never;
238
+ identity: undefined;
239
+ generated: undefined;
240
+ }, {}>;
241
+ lastIndexed: import("drizzle-orm/sqlite-core").SQLiteColumn<{
242
+ name: string;
243
+ tableName: "project_registry";
244
+ dataType: "string";
245
+ data: string;
246
+ driverParam: string;
247
+ notNull: false;
248
+ hasDefault: false;
249
+ isPrimaryKey: false;
250
+ isAutoincrement: false;
251
+ hasRuntimeDefault: false;
252
+ enumValues: [string, ...string[]];
253
+ baseColumn: never;
254
+ identity: undefined;
255
+ generated: undefined;
256
+ }, {}>;
257
+ statsJson: import("drizzle-orm/sqlite-core").SQLiteColumn<{
258
+ name: string;
259
+ tableName: "project_registry";
260
+ dataType: "string";
261
+ data: string;
262
+ driverParam: string;
263
+ notNull: true;
264
+ hasDefault: true;
265
+ isPrimaryKey: false;
266
+ isAutoincrement: false;
267
+ hasRuntimeDefault: false;
268
+ enumValues: [string, ...string[]];
269
+ baseColumn: never;
270
+ identity: undefined;
271
+ generated: undefined;
272
+ }, {}>;
209
273
  }, {
210
274
  projectId: (s: z.ZodString) => z.ZodString;
211
275
  projectHash: (s: z.ZodString) => z.ZodString;
@@ -405,6 +469,70 @@ export declare const selectProjectRegistrySchema: import("drizzle-orm/zod").Buil
405
469
  identity: undefined;
406
470
  generated: undefined;
407
471
  }, {}>;
472
+ brainDbPath: import("drizzle-orm/sqlite-core").SQLiteColumn<{
473
+ name: string;
474
+ tableName: "project_registry";
475
+ dataType: "string";
476
+ data: string;
477
+ driverParam: string;
478
+ notNull: false;
479
+ hasDefault: false;
480
+ isPrimaryKey: false;
481
+ isAutoincrement: false;
482
+ hasRuntimeDefault: false;
483
+ enumValues: [string, ...string[]];
484
+ baseColumn: never;
485
+ identity: undefined;
486
+ generated: undefined;
487
+ }, {}>;
488
+ tasksDbPath: import("drizzle-orm/sqlite-core").SQLiteColumn<{
489
+ name: string;
490
+ tableName: "project_registry";
491
+ dataType: "string";
492
+ data: string;
493
+ driverParam: string;
494
+ notNull: false;
495
+ hasDefault: false;
496
+ isPrimaryKey: false;
497
+ isAutoincrement: false;
498
+ hasRuntimeDefault: false;
499
+ enumValues: [string, ...string[]];
500
+ baseColumn: never;
501
+ identity: undefined;
502
+ generated: undefined;
503
+ }, {}>;
504
+ lastIndexed: import("drizzle-orm/sqlite-core").SQLiteColumn<{
505
+ name: string;
506
+ tableName: "project_registry";
507
+ dataType: "string";
508
+ data: string;
509
+ driverParam: string;
510
+ notNull: false;
511
+ hasDefault: false;
512
+ isPrimaryKey: false;
513
+ isAutoincrement: false;
514
+ hasRuntimeDefault: false;
515
+ enumValues: [string, ...string[]];
516
+ baseColumn: never;
517
+ identity: undefined;
518
+ generated: undefined;
519
+ }, {}>;
520
+ statsJson: import("drizzle-orm/sqlite-core").SQLiteColumn<{
521
+ name: string;
522
+ tableName: "project_registry";
523
+ dataType: "string";
524
+ data: string;
525
+ driverParam: string;
526
+ notNull: true;
527
+ hasDefault: true;
528
+ isPrimaryKey: false;
529
+ isAutoincrement: false;
530
+ hasRuntimeDefault: false;
531
+ enumValues: [string, ...string[]];
532
+ baseColumn: never;
533
+ identity: undefined;
534
+ generated: undefined;
535
+ }, {}>;
408
536
  }, undefined, import("drizzle-orm/zod").CoerceOptions>;
409
537
  export declare const insertNexusAuditLogSchema: import("drizzle-orm/zod").BuildSchema<"insert", {
410
538
  id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
@@ -1 +1 @@
1
- {"version":3,"file":"nexus-validation-schemas.d.ts","sourceRoot":"","sources":["../../src/store/nexus-validation-schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAcxB,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBACvB,CAAC,CAAC,SAAS;qBACT,CAAC,CAAC,SAAS;qBACX,CAAC,CAAC,SAAS;cAClB,CAAC,CAAC,SAAS;2CACrB,CAAC;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sDAAsC,CAAC;AAI/E,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAC5B,CAAC,CAAC,SAAS;gBACP,CAAC,CAAC,SAAS;2CACvB,CAAC;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sDAAoC,CAAC;AAI3E,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sDAAsC,CAAC;AAC/E,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sDAAsC,CAAC;AAI/E,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAChF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAChF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC"}
1
+ {"version":3,"file":"nexus-validation-schemas.d.ts","sourceRoot":"","sources":["../../src/store/nexus-validation-schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAcxB,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBACvB,CAAC,CAAC,SAAS;qBACT,CAAC,CAAC,SAAS;qBACX,CAAC,CAAC,SAAS;cAClB,CAAC,CAAC,SAAS;2CACrB,CAAC;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sDAAsC,CAAC;AAI/E,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAC5B,CAAC,CAAC,SAAS;gBACP,CAAC,CAAC,SAAS;2CACvB,CAAC;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sDAAoC,CAAC;AAI3E,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sDAAsC,CAAC;AAC/E,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sDAAsC,CAAC;AAI/E,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAChF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAChF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Telemetry module — opt-in command telemetry for CLEO self-improvement.
3
+ *
4
+ * Entry point for all telemetry operations:
5
+ * - Recording events (fire-and-forget)
6
+ * - Querying patterns for `cleo diagnostics analyze`
7
+ * - Managing the anonymous ID and opt-in state
8
+ * - Emitting BRAIN observations from high-signal patterns
9
+ *
10
+ * Telemetry is DISABLED by default. Enable with `cleo diagnostics enable`.
11
+ *
12
+ * @task T624
13
+ */
14
+ /** A single telemetry event to record. */
15
+ export interface TelemetryEvent {
16
+ /** Canonical domain (e.g. "tasks", "session"). */
17
+ domain: string;
18
+ /** CQRS gateway. */
19
+ gateway: 'query' | 'mutate';
20
+ /** Operation name (e.g. "show", "add"). */
21
+ operation: string;
22
+ /** Wall-clock duration in milliseconds. */
23
+ durationMs: number;
24
+ /** LAFS exit code (0 = success). */
25
+ exitCode: number;
26
+ /** Machine-readable error code (null on success). */
27
+ errorCode?: string | null;
28
+ }
29
+ /** Aggregated stats for a single command. */
30
+ export interface CommandStats {
31
+ /** Composed "{domain}.{operation}" command name. */
32
+ command: string;
33
+ /** Total invocation count. */
34
+ count: number;
35
+ /** Count of invocations that returned exitCode != 0. */
36
+ failureCount: number;
37
+ /** Failure rate as a fraction (0..1). */
38
+ failureRate: number;
39
+ /** Mean duration in milliseconds. */
40
+ avgDurationMs: number;
41
+ /** Max duration in milliseconds. */
42
+ maxDurationMs: number;
43
+ /** Most frequent error code, or null if no failures. */
44
+ topErrorCode: string | null;
45
+ }
46
+ /** Aggregated diagnostics summary. */
47
+ export interface DiagnosticsReport {
48
+ /** Period analyzed (ISO-8601 start and end). */
49
+ period: {
50
+ from: string;
51
+ to: string;
52
+ };
53
+ /** Total events in period. */
54
+ totalEvents: number;
55
+ /** Top 10 commands by failure rate (min 5 invocations). */
56
+ topFailing: CommandStats[];
57
+ /** Top 10 slowest commands by average duration. */
58
+ topSlow: CommandStats[];
59
+ /** Commands invoked exactly once (potential dead ends). */
60
+ rareCommands: string[];
61
+ /** High-signal observations suitable for BRAIN storage. */
62
+ observations: string[];
63
+ }
64
+ /** Global telemetry config stored in ~/.local/share/cleo/telemetry-config.json */
65
+ export interface TelemetryConfig {
66
+ /** Whether telemetry collection is enabled. */
67
+ enabled: boolean;
68
+ /** Anonymous UUID stable across invocations. Generated on first enable. */
69
+ anonymousId: string;
70
+ }
71
+ /** Return the path to the telemetry config JSON file. */
72
+ export declare function getTelemetryConfigPath(): string;
73
+ /** Load telemetry config from disk. Returns default (disabled) config if absent. */
74
+ export declare function loadTelemetryConfig(): TelemetryConfig;
75
+ /** Persist telemetry config to disk. */
76
+ export declare function saveTelemetryConfig(config: TelemetryConfig): void;
77
+ /** Return true if telemetry collection is currently enabled. */
78
+ export declare function isTelemetryEnabled(): boolean;
79
+ /**
80
+ * Enable telemetry and generate a stable anonymous ID.
81
+ * Idempotent — calling again preserves the existing anonymousId.
82
+ */
83
+ export declare function enableTelemetry(): TelemetryConfig;
84
+ /**
85
+ * Disable telemetry collection.
86
+ * Existing data in telemetry.db is not deleted.
87
+ */
88
+ export declare function disableTelemetry(): TelemetryConfig;
89
+ /**
90
+ * Record one telemetry event.
91
+ * Fire-and-forget — errors are swallowed; never blocks the calling command.
92
+ * No-op when telemetry is disabled.
93
+ */
94
+ export declare function recordTelemetryEvent(event: TelemetryEvent): Promise<void>;
95
+ /**
96
+ * Build a diagnostics report over the last `days` days (default 30).
97
+ * Requires telemetry to be enabled; returns null if disabled or no data.
98
+ */
99
+ export declare function buildDiagnosticsReport(days?: number): Promise<DiagnosticsReport | null>;
100
+ /**
101
+ * Export all telemetry events as a JSON array.
102
+ * Returns empty array when telemetry is disabled or DB is empty.
103
+ */
104
+ export declare function exportTelemetryEvents(days?: number): Promise<TelemetryEvent[]>;
105
+ export * from './schema.js';
106
+ export { getTelemetryDb, getTelemetryDbPath } from './sqlite.js';
107
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/telemetry/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAcH,0CAA0C;AAC1C,MAAM,WAAW,cAAc;IAC7B,kDAAkD;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,oBAAoB;IACpB,OAAO,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC5B,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,6CAA6C;AAC7C,MAAM,WAAW,YAAY;IAC3B,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,YAAY,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,oCAAoC;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,wDAAwD;IACxD,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,sCAAsC;AACtC,MAAM,WAAW,iBAAiB;IAChC,gDAAgD;IAChD,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACrC,8BAA8B;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,mDAAmD;IACnD,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,2DAA2D;IAC3D,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,2DAA2D;IAC3D,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,kFAAkF;AAClF,MAAM,WAAW,eAAe;IAC9B,+CAA+C;IAC/C,OAAO,EAAE,OAAO,CAAC;IACjB,2EAA2E;IAC3E,WAAW,EAAE,MAAM,CAAC;CACrB;AAQD,yDAAyD;AACzD,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AAED,oFAAoF;AACpF,wBAAgB,mBAAmB,IAAI,eAAe,CAUrD;AAED,wCAAwC;AACxC,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAIjE;AAED,gEAAgE;AAChE,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,eAAe,CAQjD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,eAAe,CAKlD;AAMD;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAyB/E;AAaD;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,SAAK,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CA6GzF;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAsBpF;AAMD,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,228 @@
1
+ /**
2
+ * Drizzle ORM schema for CLEO telemetry.db (SQLite via node:sqlite + sqlite-proxy).
3
+ *
4
+ * Tables: telemetry_events, telemetry_schema_meta
5
+ *
6
+ * Stores anonymous, opt-in command telemetry for self-improvement analysis.
7
+ * Tracks which commands run, how fast they are, and whether they succeed.
8
+ * Telemetry is DISABLED by default; users must run `cleo diagnostics enable`.
9
+ *
10
+ * @task T624
11
+ */
12
+ /**
13
+ * One row per command invocation captured by the telemetry middleware.
14
+ *
15
+ * Fields are intentionally minimal — no params, no output, no user data.
16
+ * Only the shape of what was invoked and its outcome are stored.
17
+ */
18
+ export declare const telemetryEvents: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
19
+ name: "telemetry_events";
20
+ schema: undefined;
21
+ columns: {
22
+ id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
23
+ name: string;
24
+ tableName: "telemetry_events";
25
+ dataType: "string";
26
+ data: string;
27
+ driverParam: string;
28
+ notNull: true;
29
+ hasDefault: false;
30
+ isPrimaryKey: true;
31
+ isAutoincrement: false;
32
+ hasRuntimeDefault: false;
33
+ enumValues: [string, ...string[]];
34
+ baseColumn: never;
35
+ identity: undefined;
36
+ generated: undefined;
37
+ }, {}>;
38
+ anonymousId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
39
+ name: string;
40
+ tableName: "telemetry_events";
41
+ dataType: "string";
42
+ data: string;
43
+ driverParam: string;
44
+ notNull: true;
45
+ hasDefault: false;
46
+ isPrimaryKey: false;
47
+ isAutoincrement: false;
48
+ hasRuntimeDefault: false;
49
+ enumValues: [string, ...string[]];
50
+ baseColumn: never;
51
+ identity: undefined;
52
+ generated: undefined;
53
+ }, {}>;
54
+ domain: import("drizzle-orm/sqlite-core").SQLiteColumn<{
55
+ name: string;
56
+ tableName: "telemetry_events";
57
+ dataType: "string";
58
+ data: string;
59
+ driverParam: string;
60
+ notNull: true;
61
+ hasDefault: false;
62
+ isPrimaryKey: false;
63
+ isAutoincrement: false;
64
+ hasRuntimeDefault: false;
65
+ enumValues: [string, ...string[]];
66
+ baseColumn: never;
67
+ identity: undefined;
68
+ generated: undefined;
69
+ }, {}>;
70
+ gateway: import("drizzle-orm/sqlite-core").SQLiteColumn<{
71
+ name: string;
72
+ tableName: "telemetry_events";
73
+ dataType: "string";
74
+ data: string;
75
+ driverParam: string;
76
+ notNull: true;
77
+ hasDefault: false;
78
+ isPrimaryKey: false;
79
+ isAutoincrement: false;
80
+ hasRuntimeDefault: false;
81
+ enumValues: [string, ...string[]];
82
+ baseColumn: never;
83
+ identity: undefined;
84
+ generated: undefined;
85
+ }, {}>;
86
+ operation: import("drizzle-orm/sqlite-core").SQLiteColumn<{
87
+ name: string;
88
+ tableName: "telemetry_events";
89
+ dataType: "string";
90
+ data: string;
91
+ driverParam: string;
92
+ notNull: true;
93
+ hasDefault: false;
94
+ isPrimaryKey: false;
95
+ isAutoincrement: false;
96
+ hasRuntimeDefault: false;
97
+ enumValues: [string, ...string[]];
98
+ baseColumn: never;
99
+ identity: undefined;
100
+ generated: undefined;
101
+ }, {}>;
102
+ command: import("drizzle-orm/sqlite-core").SQLiteColumn<{
103
+ name: string;
104
+ tableName: "telemetry_events";
105
+ dataType: "string";
106
+ data: string;
107
+ driverParam: string;
108
+ notNull: true;
109
+ hasDefault: false;
110
+ isPrimaryKey: false;
111
+ isAutoincrement: false;
112
+ hasRuntimeDefault: false;
113
+ enumValues: [string, ...string[]];
114
+ baseColumn: never;
115
+ identity: undefined;
116
+ generated: undefined;
117
+ }, {}>;
118
+ exitCode: import("drizzle-orm/sqlite-core").SQLiteColumn<{
119
+ name: string;
120
+ tableName: "telemetry_events";
121
+ dataType: "number int53";
122
+ data: number;
123
+ driverParam: number;
124
+ notNull: true;
125
+ hasDefault: true;
126
+ isPrimaryKey: false;
127
+ isAutoincrement: false;
128
+ hasRuntimeDefault: false;
129
+ enumValues: undefined;
130
+ baseColumn: never;
131
+ identity: undefined;
132
+ generated: undefined;
133
+ }, {}>;
134
+ durationMs: import("drizzle-orm/sqlite-core").SQLiteColumn<{
135
+ name: string;
136
+ tableName: "telemetry_events";
137
+ dataType: "number int53";
138
+ data: number;
139
+ driverParam: number;
140
+ notNull: true;
141
+ hasDefault: false;
142
+ isPrimaryKey: false;
143
+ isAutoincrement: false;
144
+ hasRuntimeDefault: false;
145
+ enumValues: undefined;
146
+ baseColumn: never;
147
+ identity: undefined;
148
+ generated: undefined;
149
+ }, {}>;
150
+ errorCode: import("drizzle-orm/sqlite-core").SQLiteColumn<{
151
+ name: string;
152
+ tableName: "telemetry_events";
153
+ dataType: "string";
154
+ data: string;
155
+ driverParam: string;
156
+ notNull: false;
157
+ hasDefault: false;
158
+ isPrimaryKey: false;
159
+ isAutoincrement: false;
160
+ hasRuntimeDefault: false;
161
+ enumValues: [string, ...string[]];
162
+ baseColumn: never;
163
+ identity: undefined;
164
+ generated: undefined;
165
+ }, {}>;
166
+ timestamp: import("drizzle-orm/sqlite-core").SQLiteColumn<{
167
+ name: string;
168
+ tableName: "telemetry_events";
169
+ dataType: "string";
170
+ data: string;
171
+ driverParam: string;
172
+ notNull: true;
173
+ hasDefault: true;
174
+ isPrimaryKey: false;
175
+ isAutoincrement: false;
176
+ hasRuntimeDefault: false;
177
+ enumValues: [string, ...string[]];
178
+ baseColumn: never;
179
+ identity: undefined;
180
+ generated: undefined;
181
+ }, {}>;
182
+ };
183
+ dialect: "sqlite";
184
+ }>;
185
+ /**
186
+ * Key-value store for schema version tracking.
187
+ * Single row with key='schema_version' on first migration.
188
+ */
189
+ export declare const telemetrySchemaMeta: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
190
+ name: "telemetry_schema_meta";
191
+ schema: undefined;
192
+ columns: {
193
+ key: import("drizzle-orm/sqlite-core").SQLiteColumn<{
194
+ name: string;
195
+ tableName: "telemetry_schema_meta";
196
+ dataType: "string";
197
+ data: string;
198
+ driverParam: string;
199
+ notNull: true;
200
+ hasDefault: false;
201
+ isPrimaryKey: true;
202
+ isAutoincrement: false;
203
+ hasRuntimeDefault: false;
204
+ enumValues: [string, ...string[]];
205
+ baseColumn: never;
206
+ identity: undefined;
207
+ generated: undefined;
208
+ }, {}>;
209
+ value: import("drizzle-orm/sqlite-core").SQLiteColumn<{
210
+ name: string;
211
+ tableName: "telemetry_schema_meta";
212
+ dataType: "string";
213
+ data: string;
214
+ driverParam: string;
215
+ notNull: true;
216
+ hasDefault: false;
217
+ isPrimaryKey: false;
218
+ isAutoincrement: false;
219
+ hasRuntimeDefault: false;
220
+ enumValues: [string, ...string[]];
221
+ baseColumn: never;
222
+ identity: undefined;
223
+ generated: undefined;
224
+ }, {}>;
225
+ };
226
+ dialect: "sqlite";
227
+ }>;
228
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/telemetry/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH;;;;;GAKG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+B3B,CAAC;AAIF;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK9B,CAAC"}