@cleocode/cleo 2026.3.20 → 2026.3.22

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.
Files changed (150) hide show
  1. package/dist/cli/index.js +39394 -38817
  2. package/dist/cli/index.js.map +4 -4
  3. package/dist/mcp/index.js +35841 -36702
  4. package/dist/mcp/index.js.map +4 -4
  5. package/drizzle-brain.config.ts +7 -0
  6. package/drizzle-nexus.config.ts +7 -0
  7. package/drizzle-tasks.config.ts +7 -0
  8. package/migrations/drizzle-brain/20260301230215_workable_spitfire/migration.sql +68 -0
  9. package/migrations/drizzle-brain/20260301230215_workable_spitfire/snapshot.json +651 -0
  10. package/migrations/drizzle-brain/20260302050325_unknown_justin_hammer/migration.sql +23 -0
  11. package/migrations/drizzle-brain/20260302050325_unknown_justin_hammer/snapshot.json +884 -0
  12. package/migrations/drizzle-brain/20260302061755_unusual_jamie_braddock/migration.sql +2 -0
  13. package/migrations/drizzle-brain/20260302061755_unusual_jamie_braddock/snapshot.json +908 -0
  14. package/migrations/drizzle-brain/20260302193548_luxuriant_glorian/migration.sql +20 -0
  15. package/migrations/drizzle-brain/20260302193548_luxuriant_glorian/snapshot.json +1078 -0
  16. package/migrations/drizzle-brain/20260304045002_white_thunderbolt_ross/migration.sql +16 -0
  17. package/migrations/drizzle-brain/20260304045002_white_thunderbolt_ross/snapshot.json +1233 -0
  18. package/migrations/drizzle-nexus/20260305070805_quick_ted_forrester/migration.sql +46 -0
  19. package/migrations/drizzle-nexus/20260305070805_quick_ted_forrester/snapshot.json +461 -0
  20. package/migrations/drizzle-tasks/20260308024513_oval_king_bedlam/migration.sql +32 -0
  21. package/migrations/drizzle-tasks/20260308024513_oval_king_bedlam/snapshot.json +3727 -0
  22. package/package.json +14 -4
  23. package/packages/ct-skills/skills/ct-cleo/SKILL.md +344 -81
  24. package/packages/ct-skills/skills/ct-grade/SKILL.md +20 -4
  25. package/packages/ct-skills/skills/ct-grade/agents/analysis-reporter.md +203 -0
  26. package/packages/ct-skills/skills/ct-grade/agents/blind-comparator.md +157 -0
  27. package/packages/ct-skills/skills/ct-grade/agents/scenario-runner.md +134 -0
  28. package/packages/ct-skills/skills/ct-grade/eval-viewer/generate_grade_review.py +1138 -0
  29. package/packages/ct-skills/skills/ct-grade/eval-viewer/generate_grade_viewer.py +544 -0
  30. package/packages/ct-skills/skills/ct-grade/eval-viewer/generate_review.py +283 -0
  31. package/packages/ct-skills/skills/ct-grade/eval-viewer/grade-review.html +1574 -0
  32. package/packages/ct-skills/skills/ct-grade/eval-viewer/viewer.html +219 -0
  33. package/packages/ct-skills/skills/ct-grade/evals/evals.json +94 -0
  34. package/packages/ct-skills/skills/ct-grade/references/ab-test-methodology.md +150 -0
  35. package/packages/ct-skills/skills/ct-grade/references/domains.md +137 -0
  36. package/packages/ct-skills/skills/ct-grade/references/grade-spec.md +236 -0
  37. package/packages/ct-skills/skills/ct-grade/references/scenario-playbook.md +234 -0
  38. package/packages/ct-skills/skills/ct-grade/references/token-tracking.md +120 -0
  39. package/packages/ct-skills/skills/ct-grade/scripts/audit_analyzer.py +279 -0
  40. package/packages/ct-skills/skills/ct-grade/scripts/generate_report.py +283 -0
  41. package/packages/ct-skills/skills/ct-grade/scripts/run_ab_test.py +504 -0
  42. package/packages/ct-skills/skills/ct-grade/scripts/run_all.py +287 -0
  43. package/packages/ct-skills/skills/ct-grade/scripts/setup_run.py +183 -0
  44. package/packages/ct-skills/skills/ct-grade/scripts/token_tracker.py +630 -0
  45. package/packages/ct-skills/skills/ct-grade-v2-1/SKILL.md +237 -0
  46. package/packages/ct-skills/skills/ct-grade-v2-1/agents/analysis-reporter.md +203 -0
  47. package/packages/ct-skills/skills/ct-grade-v2-1/agents/blind-comparator.md +157 -0
  48. package/packages/ct-skills/skills/ct-grade-v2-1/agents/scenario-runner.md +179 -0
  49. package/packages/ct-skills/skills/ct-grade-v2-1/evals/evals.json +74 -0
  50. package/packages/ct-skills/skills/ct-grade-v2-1/grade-viewer/build_op_stats.py +174 -0
  51. package/packages/ct-skills/skills/ct-grade-v2-1/grade-viewer/eval-analysis.json +41 -0
  52. package/packages/ct-skills/skills/ct-grade-v2-1/grade-viewer/eval-report.md +34 -0
  53. package/packages/ct-skills/skills/ct-grade-v2-1/grade-viewer/generate_grade_review.py +1023 -0
  54. package/packages/ct-skills/skills/ct-grade-v2-1/grade-viewer/generate_grade_viewer.py +548 -0
  55. package/packages/ct-skills/skills/ct-grade-v2-1/grade-viewer/grade-review-eval.html +613 -0
  56. package/packages/ct-skills/skills/ct-grade-v2-1/grade-viewer/grade-review.html +1532 -0
  57. package/packages/ct-skills/skills/ct-grade-v2-1/grade-viewer/viewer.html +620 -0
  58. package/packages/ct-skills/skills/ct-grade-v2-1/manifest-entry.json +31 -0
  59. package/packages/ct-skills/skills/ct-grade-v2-1/references/ab-testing.md +233 -0
  60. package/packages/ct-skills/skills/ct-grade-v2-1/references/domains-ssot.md +156 -0
  61. package/packages/ct-skills/skills/ct-grade-v2-1/references/grade-spec-v2.md +167 -0
  62. package/packages/ct-skills/skills/ct-grade-v2-1/references/playbook-v2.md +393 -0
  63. package/packages/ct-skills/skills/ct-grade-v2-1/references/token-tracking.md +202 -0
  64. package/packages/ct-skills/skills/ct-grade-v2-1/scripts/generate_report.py +419 -0
  65. package/packages/ct-skills/skills/ct-grade-v2-1/scripts/run_ab_test.py +493 -0
  66. package/packages/ct-skills/skills/ct-grade-v2-1/scripts/run_scenario.py +396 -0
  67. package/packages/ct-skills/skills/ct-grade-v2-1/scripts/setup_run.py +207 -0
  68. package/packages/ct-skills/skills/ct-grade-v2-1/scripts/token_tracker.py +175 -0
  69. package/packages/ct-skills/skills/ct-orchestrator/SKILL.md +1 -29
  70. package/packages/ct-skills/skills/ct-orchestrator/manifest-entry.json +19 -0
  71. package/packages/ct-skills/skills/ct-skill-creator/SKILL.md +0 -12
  72. package/packages/ct-skills/skills/ct-skill-creator/agents/analyzer.md +276 -0
  73. package/packages/ct-skills/skills/ct-skill-creator/agents/comparator.md +204 -0
  74. package/packages/ct-skills/skills/ct-skill-creator/agents/grader.md +225 -0
  75. package/packages/ct-skills/skills/ct-skill-creator/assets/eval_review.html +146 -0
  76. package/packages/ct-skills/skills/ct-skill-creator/eval-viewer/generate_review.py +471 -0
  77. package/packages/ct-skills/skills/ct-skill-creator/eval-viewer/viewer.html +1325 -0
  78. package/packages/ct-skills/skills/ct-skill-creator/manifest-entry.json +17 -0
  79. package/packages/ct-skills/skills/ct-skill-creator/references/dynamic-context.md +228 -0
  80. package/packages/ct-skills/skills/ct-skill-creator/references/frontmatter.md +83 -0
  81. package/packages/ct-skills/skills/ct-skill-creator/references/invocation-control.md +165 -0
  82. package/packages/ct-skills/skills/ct-skill-creator/references/provider-deployment.md +175 -0
  83. package/packages/ct-skills/skills/ct-skill-creator/references/schemas.md +430 -0
  84. package/packages/ct-skills/skills/ct-skill-creator/scripts/__init__.py +1 -0
  85. package/packages/ct-skills/skills/ct-skill-creator/scripts/aggregate_benchmark.py +401 -0
  86. package/packages/ct-skills/skills/ct-skill-creator/scripts/generate_report.py +326 -0
  87. package/packages/ct-skills/skills/ct-skill-creator/scripts/improve_description.py +247 -0
  88. package/packages/ct-skills/skills/ct-skill-creator/scripts/run_eval.py +310 -0
  89. package/packages/ct-skills/skills/ct-skill-creator/scripts/run_loop.py +328 -0
  90. package/packages/ct-skills/skills/ct-skill-creator/scripts/utils.py +47 -0
  91. package/packages/ct-skills/skills/ct-skill-validator/SKILL.md +178 -0
  92. package/packages/ct-skills/skills/ct-skill-validator/agents/ecosystem-checker.md +151 -0
  93. package/packages/ct-skills/skills/ct-skill-validator/assets/valid-skill-example.md +13 -0
  94. package/packages/ct-skills/skills/ct-skill-validator/evals/eval_set.json +14 -0
  95. package/packages/ct-skills/skills/ct-skill-validator/evals/evals.json +52 -0
  96. package/packages/ct-skills/skills/ct-skill-validator/manifest-entry.json +20 -0
  97. package/packages/ct-skills/skills/ct-skill-validator/references/cleo-ecosystem-rules.md +163 -0
  98. package/packages/ct-skills/skills/ct-skill-validator/references/validation-rules.md +168 -0
  99. package/packages/ct-skills/skills/ct-skill-validator/scripts/__init__.py +0 -0
  100. package/packages/ct-skills/skills/ct-skill-validator/scripts/audit_body.py +242 -0
  101. package/packages/ct-skills/skills/ct-skill-validator/scripts/check_ecosystem.py +169 -0
  102. package/packages/ct-skills/skills/ct-skill-validator/scripts/check_manifest.py +172 -0
  103. package/packages/ct-skills/skills/ct-skill-validator/scripts/generate_validation_report.py +442 -0
  104. package/packages/ct-skills/skills/ct-skill-validator/scripts/validate.py +422 -0
  105. /package/{drizzle → migrations/drizzle-tasks}/20260224040019_baseline/migration.sql +0 -0
  106. /package/{drizzle → migrations/drizzle-tasks}/20260224040019_baseline/snapshot.json +0 -0
  107. /package/{drizzle → migrations/drizzle-tasks}/20260224040238_add-audit-log/migration.sql +0 -0
  108. /package/{drizzle → migrations/drizzle-tasks}/20260224040238_add-audit-log/snapshot.json +0 -0
  109. /package/{drizzle → migrations/drizzle-tasks}/20260224144602_closed_grim_reaper/migration.sql +0 -0
  110. /package/{drizzle → migrations/drizzle-tasks}/20260224144602_closed_grim_reaper/snapshot.json +0 -0
  111. /package/{drizzle → migrations/drizzle-tasks}/20260225024442_sync-lifecycle-enums-and-arch-decisions/migration.sql +0 -0
  112. /package/{drizzle → migrations/drizzle-tasks}/20260225024442_sync-lifecycle-enums-and-arch-decisions/snapshot.json +0 -0
  113. /package/{drizzle → migrations/drizzle-tasks}/20260227014821_adr-system-and-status-registry/migration.sql +0 -0
  114. /package/{drizzle → migrations/drizzle-tasks}/20260227014821_adr-system-and-status-registry/snapshot.json +0 -0
  115. /package/{drizzle → migrations/drizzle-tasks}/20260227021231_add-cancelled-pipeline-status/migration.sql +0 -0
  116. /package/{drizzle → migrations/drizzle-tasks}/20260227021231_add-cancelled-pipeline-status/snapshot.json +0 -0
  117. /package/{drizzle → migrations/drizzle-tasks}/20260227022417_adr-cognitive-search-fields/migration.sql +0 -0
  118. /package/{drizzle → migrations/drizzle-tasks}/20260227022417_adr-cognitive-search-fields/snapshot.json +0 -0
  119. /package/{drizzle → migrations/drizzle-tasks}/20260227172236_freezing_grey_gargoyle/migration.sql +0 -0
  120. /package/{drizzle → migrations/drizzle-tasks}/20260227172236_freezing_grey_gargoyle/snapshot.json +0 -0
  121. /package/{drizzle → migrations/drizzle-tasks}/20260227183444_fix-orphaned-parent-ids/migration.sql +0 -0
  122. /package/{drizzle → migrations/drizzle-tasks}/20260227183444_fix-orphaned-parent-ids/snapshot.json +0 -0
  123. /package/{drizzle → migrations/drizzle-tasks}/20260227183521_parent-id-on-delete-set-null/migration.sql +0 -0
  124. /package/{drizzle → migrations/drizzle-tasks}/20260227183521_parent-id-on-delete-set-null/snapshot.json +0 -0
  125. /package/{drizzle → migrations/drizzle-tasks}/20260227200430_numerous_mysterio/migration.sql +0 -0
  126. /package/{drizzle → migrations/drizzle-tasks}/20260227200430_numerous_mysterio/snapshot.json +0 -0
  127. /package/{drizzle → migrations/drizzle-tasks}/20260227235745_add-audit-log-dispatch-columns/migration.sql +0 -0
  128. /package/{drizzle → migrations/drizzle-tasks}/20260227235745_add-audit-log-dispatch-columns/snapshot.json +0 -0
  129. /package/{drizzle → migrations/drizzle-tasks}/20260301053344_careless_changeling/migration.sql +0 -0
  130. /package/{drizzle → migrations/drizzle-tasks}/20260301053344_careless_changeling/snapshot.json +0 -0
  131. /package/{drizzle → migrations/drizzle-tasks}/20260301175940_futuristic_eternity/migration.sql +0 -0
  132. /package/{drizzle → migrations/drizzle-tasks}/20260301175940_futuristic_eternity/snapshot.json +0 -0
  133. /package/{drizzle → migrations/drizzle-tasks}/20260301180528_update-task-relations-check-constraint/migration.sql +0 -0
  134. /package/{drizzle → migrations/drizzle-tasks}/20260301180528_update-task-relations-check-constraint/snapshot.json +0 -0
  135. /package/{drizzle → migrations/drizzle-tasks}/20260302163443_free_silk_fever/migration.sql +0 -0
  136. /package/{drizzle → migrations/drizzle-tasks}/20260302163443_free_silk_fever/snapshot.json +0 -0
  137. /package/{drizzle → migrations/drizzle-tasks}/20260302163457_robust_johnny_storm/migration.sql +0 -0
  138. /package/{drizzle → migrations/drizzle-tasks}/20260302163457_robust_johnny_storm/snapshot.json +0 -0
  139. /package/{drizzle → migrations/drizzle-tasks}/20260302163511_late_sphinx/migration.sql +0 -0
  140. /package/{drizzle → migrations/drizzle-tasks}/20260302163511_late_sphinx/snapshot.json +0 -0
  141. /package/{drizzle → migrations/drizzle-tasks}/20260305011924_cheerful_mongu/migration.sql +0 -0
  142. /package/{drizzle → migrations/drizzle-tasks}/20260305011924_cheerful_mongu/snapshot.json +0 -0
  143. /package/{drizzle → migrations/drizzle-tasks}/20260305203927_demonic_storm/migration.sql +0 -0
  144. /package/{drizzle → migrations/drizzle-tasks}/20260305203927_demonic_storm/snapshot.json +0 -0
  145. /package/{drizzle → migrations/drizzle-tasks}/20260306001243_spooky_rage/migration.sql +0 -0
  146. /package/{drizzle → migrations/drizzle-tasks}/20260306001243_spooky_rage/snapshot.json +0 -0
  147. /package/{drizzle → migrations/drizzle-tasks}/20260306193138_young_morbius/migration.sql +0 -0
  148. /package/{drizzle → migrations/drizzle-tasks}/20260306193138_young_morbius/snapshot.json +0 -0
  149. /package/{drizzle → migrations/drizzle-tasks}/20260306194959_sticky_captain_flint/migration.sql +0 -0
  150. /package/{drizzle → migrations/drizzle-tasks}/20260306194959_sticky_captain_flint/snapshot.json +0 -0
@@ -0,0 +1,46 @@
1
+ CREATE TABLE `nexus_audit_log` (
2
+ `id` text PRIMARY KEY,
3
+ `timestamp` text DEFAULT (datetime('now')) NOT NULL,
4
+ `action` text NOT NULL,
5
+ `project_hash` text,
6
+ `project_id` text,
7
+ `domain` text,
8
+ `operation` text,
9
+ `session_id` text,
10
+ `request_id` text,
11
+ `source` text,
12
+ `gateway` text,
13
+ `success` integer,
14
+ `duration_ms` integer,
15
+ `details_json` text DEFAULT '{}',
16
+ `error_message` text
17
+ );
18
+ --> statement-breakpoint
19
+ CREATE TABLE `nexus_schema_meta` (
20
+ `key` text PRIMARY KEY,
21
+ `value` text NOT NULL
22
+ );
23
+ --> statement-breakpoint
24
+ CREATE TABLE `project_registry` (
25
+ `project_id` text PRIMARY KEY,
26
+ `project_hash` text NOT NULL,
27
+ `project_path` text NOT NULL UNIQUE,
28
+ `name` text NOT NULL,
29
+ `registered_at` text DEFAULT (datetime('now')) NOT NULL,
30
+ `last_seen` text DEFAULT (datetime('now')) NOT NULL,
31
+ `health_status` text DEFAULT 'unknown' NOT NULL,
32
+ `health_last_check` text,
33
+ `permissions` text DEFAULT 'read' NOT NULL,
34
+ `last_sync` text DEFAULT (datetime('now')) NOT NULL,
35
+ `task_count` integer DEFAULT 0 NOT NULL,
36
+ `labels_json` text DEFAULT '[]' NOT NULL
37
+ );
38
+ --> statement-breakpoint
39
+ CREATE INDEX `idx_nexus_audit_timestamp` ON `nexus_audit_log` (`timestamp`);--> statement-breakpoint
40
+ CREATE INDEX `idx_nexus_audit_action` ON `nexus_audit_log` (`action`);--> statement-breakpoint
41
+ CREATE INDEX `idx_nexus_audit_project_hash` ON `nexus_audit_log` (`project_hash`);--> statement-breakpoint
42
+ CREATE INDEX `idx_nexus_audit_project_id` ON `nexus_audit_log` (`project_id`);--> statement-breakpoint
43
+ CREATE INDEX `idx_nexus_audit_session` ON `nexus_audit_log` (`session_id`);--> statement-breakpoint
44
+ CREATE INDEX `idx_project_registry_hash` ON `project_registry` (`project_hash`);--> statement-breakpoint
45
+ CREATE INDEX `idx_project_registry_health` ON `project_registry` (`health_status`);--> statement-breakpoint
46
+ CREATE INDEX `idx_project_registry_name` ON `project_registry` (`name`);
@@ -0,0 +1,461 @@
1
+ {
2
+ "version": "7",
3
+ "dialect": "sqlite",
4
+ "id": "0bd403db-eed5-4060-b495-69c07a376216",
5
+ "prevIds": [
6
+ "00000000-0000-0000-0000-000000000000"
7
+ ],
8
+ "ddl": [
9
+ {
10
+ "name": "nexus_audit_log",
11
+ "entityType": "tables"
12
+ },
13
+ {
14
+ "name": "nexus_schema_meta",
15
+ "entityType": "tables"
16
+ },
17
+ {
18
+ "name": "project_registry",
19
+ "entityType": "tables"
20
+ },
21
+ {
22
+ "type": "text",
23
+ "notNull": false,
24
+ "autoincrement": false,
25
+ "default": null,
26
+ "generated": null,
27
+ "name": "id",
28
+ "entityType": "columns",
29
+ "table": "nexus_audit_log"
30
+ },
31
+ {
32
+ "type": "text",
33
+ "notNull": true,
34
+ "autoincrement": false,
35
+ "default": "(datetime('now'))",
36
+ "generated": null,
37
+ "name": "timestamp",
38
+ "entityType": "columns",
39
+ "table": "nexus_audit_log"
40
+ },
41
+ {
42
+ "type": "text",
43
+ "notNull": true,
44
+ "autoincrement": false,
45
+ "default": null,
46
+ "generated": null,
47
+ "name": "action",
48
+ "entityType": "columns",
49
+ "table": "nexus_audit_log"
50
+ },
51
+ {
52
+ "type": "text",
53
+ "notNull": false,
54
+ "autoincrement": false,
55
+ "default": null,
56
+ "generated": null,
57
+ "name": "project_hash",
58
+ "entityType": "columns",
59
+ "table": "nexus_audit_log"
60
+ },
61
+ {
62
+ "type": "text",
63
+ "notNull": false,
64
+ "autoincrement": false,
65
+ "default": null,
66
+ "generated": null,
67
+ "name": "project_id",
68
+ "entityType": "columns",
69
+ "table": "nexus_audit_log"
70
+ },
71
+ {
72
+ "type": "text",
73
+ "notNull": false,
74
+ "autoincrement": false,
75
+ "default": null,
76
+ "generated": null,
77
+ "name": "domain",
78
+ "entityType": "columns",
79
+ "table": "nexus_audit_log"
80
+ },
81
+ {
82
+ "type": "text",
83
+ "notNull": false,
84
+ "autoincrement": false,
85
+ "default": null,
86
+ "generated": null,
87
+ "name": "operation",
88
+ "entityType": "columns",
89
+ "table": "nexus_audit_log"
90
+ },
91
+ {
92
+ "type": "text",
93
+ "notNull": false,
94
+ "autoincrement": false,
95
+ "default": null,
96
+ "generated": null,
97
+ "name": "session_id",
98
+ "entityType": "columns",
99
+ "table": "nexus_audit_log"
100
+ },
101
+ {
102
+ "type": "text",
103
+ "notNull": false,
104
+ "autoincrement": false,
105
+ "default": null,
106
+ "generated": null,
107
+ "name": "request_id",
108
+ "entityType": "columns",
109
+ "table": "nexus_audit_log"
110
+ },
111
+ {
112
+ "type": "text",
113
+ "notNull": false,
114
+ "autoincrement": false,
115
+ "default": null,
116
+ "generated": null,
117
+ "name": "source",
118
+ "entityType": "columns",
119
+ "table": "nexus_audit_log"
120
+ },
121
+ {
122
+ "type": "text",
123
+ "notNull": false,
124
+ "autoincrement": false,
125
+ "default": null,
126
+ "generated": null,
127
+ "name": "gateway",
128
+ "entityType": "columns",
129
+ "table": "nexus_audit_log"
130
+ },
131
+ {
132
+ "type": "integer",
133
+ "notNull": false,
134
+ "autoincrement": false,
135
+ "default": null,
136
+ "generated": null,
137
+ "name": "success",
138
+ "entityType": "columns",
139
+ "table": "nexus_audit_log"
140
+ },
141
+ {
142
+ "type": "integer",
143
+ "notNull": false,
144
+ "autoincrement": false,
145
+ "default": null,
146
+ "generated": null,
147
+ "name": "duration_ms",
148
+ "entityType": "columns",
149
+ "table": "nexus_audit_log"
150
+ },
151
+ {
152
+ "type": "text",
153
+ "notNull": false,
154
+ "autoincrement": false,
155
+ "default": "'{}'",
156
+ "generated": null,
157
+ "name": "details_json",
158
+ "entityType": "columns",
159
+ "table": "nexus_audit_log"
160
+ },
161
+ {
162
+ "type": "text",
163
+ "notNull": false,
164
+ "autoincrement": false,
165
+ "default": null,
166
+ "generated": null,
167
+ "name": "error_message",
168
+ "entityType": "columns",
169
+ "table": "nexus_audit_log"
170
+ },
171
+ {
172
+ "type": "text",
173
+ "notNull": false,
174
+ "autoincrement": false,
175
+ "default": null,
176
+ "generated": null,
177
+ "name": "key",
178
+ "entityType": "columns",
179
+ "table": "nexus_schema_meta"
180
+ },
181
+ {
182
+ "type": "text",
183
+ "notNull": true,
184
+ "autoincrement": false,
185
+ "default": null,
186
+ "generated": null,
187
+ "name": "value",
188
+ "entityType": "columns",
189
+ "table": "nexus_schema_meta"
190
+ },
191
+ {
192
+ "type": "text",
193
+ "notNull": false,
194
+ "autoincrement": false,
195
+ "default": null,
196
+ "generated": null,
197
+ "name": "project_id",
198
+ "entityType": "columns",
199
+ "table": "project_registry"
200
+ },
201
+ {
202
+ "type": "text",
203
+ "notNull": true,
204
+ "autoincrement": false,
205
+ "default": null,
206
+ "generated": null,
207
+ "name": "project_hash",
208
+ "entityType": "columns",
209
+ "table": "project_registry"
210
+ },
211
+ {
212
+ "type": "text",
213
+ "notNull": true,
214
+ "autoincrement": false,
215
+ "default": null,
216
+ "generated": null,
217
+ "name": "project_path",
218
+ "entityType": "columns",
219
+ "table": "project_registry"
220
+ },
221
+ {
222
+ "type": "text",
223
+ "notNull": true,
224
+ "autoincrement": false,
225
+ "default": null,
226
+ "generated": null,
227
+ "name": "name",
228
+ "entityType": "columns",
229
+ "table": "project_registry"
230
+ },
231
+ {
232
+ "type": "text",
233
+ "notNull": true,
234
+ "autoincrement": false,
235
+ "default": "(datetime('now'))",
236
+ "generated": null,
237
+ "name": "registered_at",
238
+ "entityType": "columns",
239
+ "table": "project_registry"
240
+ },
241
+ {
242
+ "type": "text",
243
+ "notNull": true,
244
+ "autoincrement": false,
245
+ "default": "(datetime('now'))",
246
+ "generated": null,
247
+ "name": "last_seen",
248
+ "entityType": "columns",
249
+ "table": "project_registry"
250
+ },
251
+ {
252
+ "type": "text",
253
+ "notNull": true,
254
+ "autoincrement": false,
255
+ "default": "'unknown'",
256
+ "generated": null,
257
+ "name": "health_status",
258
+ "entityType": "columns",
259
+ "table": "project_registry"
260
+ },
261
+ {
262
+ "type": "text",
263
+ "notNull": false,
264
+ "autoincrement": false,
265
+ "default": null,
266
+ "generated": null,
267
+ "name": "health_last_check",
268
+ "entityType": "columns",
269
+ "table": "project_registry"
270
+ },
271
+ {
272
+ "type": "text",
273
+ "notNull": true,
274
+ "autoincrement": false,
275
+ "default": "'read'",
276
+ "generated": null,
277
+ "name": "permissions",
278
+ "entityType": "columns",
279
+ "table": "project_registry"
280
+ },
281
+ {
282
+ "type": "text",
283
+ "notNull": true,
284
+ "autoincrement": false,
285
+ "default": "(datetime('now'))",
286
+ "generated": null,
287
+ "name": "last_sync",
288
+ "entityType": "columns",
289
+ "table": "project_registry"
290
+ },
291
+ {
292
+ "type": "integer",
293
+ "notNull": true,
294
+ "autoincrement": false,
295
+ "default": "0",
296
+ "generated": null,
297
+ "name": "task_count",
298
+ "entityType": "columns",
299
+ "table": "project_registry"
300
+ },
301
+ {
302
+ "type": "text",
303
+ "notNull": true,
304
+ "autoincrement": false,
305
+ "default": "'[]'",
306
+ "generated": null,
307
+ "name": "labels_json",
308
+ "entityType": "columns",
309
+ "table": "project_registry"
310
+ },
311
+ {
312
+ "columns": [
313
+ "id"
314
+ ],
315
+ "nameExplicit": false,
316
+ "name": "nexus_audit_log_pk",
317
+ "table": "nexus_audit_log",
318
+ "entityType": "pks"
319
+ },
320
+ {
321
+ "columns": [
322
+ "key"
323
+ ],
324
+ "nameExplicit": false,
325
+ "name": "nexus_schema_meta_pk",
326
+ "table": "nexus_schema_meta",
327
+ "entityType": "pks"
328
+ },
329
+ {
330
+ "columns": [
331
+ "project_id"
332
+ ],
333
+ "nameExplicit": false,
334
+ "name": "project_registry_pk",
335
+ "table": "project_registry",
336
+ "entityType": "pks"
337
+ },
338
+ {
339
+ "columns": [
340
+ {
341
+ "value": "timestamp",
342
+ "isExpression": false
343
+ }
344
+ ],
345
+ "isUnique": false,
346
+ "where": null,
347
+ "origin": "manual",
348
+ "name": "idx_nexus_audit_timestamp",
349
+ "entityType": "indexes",
350
+ "table": "nexus_audit_log"
351
+ },
352
+ {
353
+ "columns": [
354
+ {
355
+ "value": "action",
356
+ "isExpression": false
357
+ }
358
+ ],
359
+ "isUnique": false,
360
+ "where": null,
361
+ "origin": "manual",
362
+ "name": "idx_nexus_audit_action",
363
+ "entityType": "indexes",
364
+ "table": "nexus_audit_log"
365
+ },
366
+ {
367
+ "columns": [
368
+ {
369
+ "value": "project_hash",
370
+ "isExpression": false
371
+ }
372
+ ],
373
+ "isUnique": false,
374
+ "where": null,
375
+ "origin": "manual",
376
+ "name": "idx_nexus_audit_project_hash",
377
+ "entityType": "indexes",
378
+ "table": "nexus_audit_log"
379
+ },
380
+ {
381
+ "columns": [
382
+ {
383
+ "value": "project_id",
384
+ "isExpression": false
385
+ }
386
+ ],
387
+ "isUnique": false,
388
+ "where": null,
389
+ "origin": "manual",
390
+ "name": "idx_nexus_audit_project_id",
391
+ "entityType": "indexes",
392
+ "table": "nexus_audit_log"
393
+ },
394
+ {
395
+ "columns": [
396
+ {
397
+ "value": "session_id",
398
+ "isExpression": false
399
+ }
400
+ ],
401
+ "isUnique": false,
402
+ "where": null,
403
+ "origin": "manual",
404
+ "name": "idx_nexus_audit_session",
405
+ "entityType": "indexes",
406
+ "table": "nexus_audit_log"
407
+ },
408
+ {
409
+ "columns": [
410
+ {
411
+ "value": "project_hash",
412
+ "isExpression": false
413
+ }
414
+ ],
415
+ "isUnique": false,
416
+ "where": null,
417
+ "origin": "manual",
418
+ "name": "idx_project_registry_hash",
419
+ "entityType": "indexes",
420
+ "table": "project_registry"
421
+ },
422
+ {
423
+ "columns": [
424
+ {
425
+ "value": "health_status",
426
+ "isExpression": false
427
+ }
428
+ ],
429
+ "isUnique": false,
430
+ "where": null,
431
+ "origin": "manual",
432
+ "name": "idx_project_registry_health",
433
+ "entityType": "indexes",
434
+ "table": "project_registry"
435
+ },
436
+ {
437
+ "columns": [
438
+ {
439
+ "value": "name",
440
+ "isExpression": false
441
+ }
442
+ ],
443
+ "isUnique": false,
444
+ "where": null,
445
+ "origin": "manual",
446
+ "name": "idx_project_registry_name",
447
+ "entityType": "indexes",
448
+ "table": "project_registry"
449
+ },
450
+ {
451
+ "columns": [
452
+ "project_path"
453
+ ],
454
+ "nameExplicit": false,
455
+ "name": "project_registry_project_path_unique",
456
+ "entityType": "uniques",
457
+ "table": "project_registry"
458
+ }
459
+ ],
460
+ "renames": []
461
+ }
@@ -0,0 +1,32 @@
1
+ CREATE TABLE `token_usage` (
2
+ `id` text PRIMARY KEY,
3
+ `created_at` text DEFAULT (datetime('now')) NOT NULL,
4
+ `provider` text DEFAULT 'unknown' NOT NULL,
5
+ `model` text,
6
+ `transport` text DEFAULT 'unknown' NOT NULL,
7
+ `gateway` text,
8
+ `domain` text,
9
+ `operation` text,
10
+ `session_id` text,
11
+ `task_id` text,
12
+ `request_id` text,
13
+ `input_chars` integer DEFAULT 0 NOT NULL,
14
+ `output_chars` integer DEFAULT 0 NOT NULL,
15
+ `input_tokens` integer DEFAULT 0 NOT NULL,
16
+ `output_tokens` integer DEFAULT 0 NOT NULL,
17
+ `total_tokens` integer DEFAULT 0 NOT NULL,
18
+ `method` text DEFAULT 'heuristic' NOT NULL,
19
+ `confidence` text DEFAULT 'coarse' NOT NULL,
20
+ `request_hash` text,
21
+ `response_hash` text,
22
+ `metadata_json` text DEFAULT '{}' NOT NULL
23
+ );
24
+ --> statement-breakpoint
25
+ CREATE INDEX `idx_token_usage_created_at` ON `token_usage` (`created_at`);--> statement-breakpoint
26
+ CREATE INDEX `idx_token_usage_request_id` ON `token_usage` (`request_id`);--> statement-breakpoint
27
+ CREATE INDEX `idx_token_usage_session_id` ON `token_usage` (`session_id`);--> statement-breakpoint
28
+ CREATE INDEX `idx_token_usage_task_id` ON `token_usage` (`task_id`);--> statement-breakpoint
29
+ CREATE INDEX `idx_token_usage_provider` ON `token_usage` (`provider`);--> statement-breakpoint
30
+ CREATE INDEX `idx_token_usage_transport` ON `token_usage` (`transport`);--> statement-breakpoint
31
+ CREATE INDEX `idx_token_usage_domain_operation` ON `token_usage` (`domain`,`operation`);--> statement-breakpoint
32
+ CREATE INDEX `idx_token_usage_method` ON `token_usage` (`method`);