cognova 0.1.0

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 (205) hide show
  1. package/.env.example +58 -0
  2. package/Claude/CLAUDE.md +92 -0
  3. package/Claude/hooks/lib/__init__.py +1 -0
  4. package/Claude/hooks/lib/hook_client.py +207 -0
  5. package/Claude/hooks/log-event.py +97 -0
  6. package/Claude/hooks/pre-compact.py +46 -0
  7. package/Claude/hooks/session-end.py +26 -0
  8. package/Claude/hooks/session-start.py +35 -0
  9. package/Claude/hooks/stop-extract.py +40 -0
  10. package/Claude/rules/frontmatter.md +54 -0
  11. package/Claude/rules/markdown.md +43 -0
  12. package/Claude/rules/note-organization.md +33 -0
  13. package/Claude/settings.json +54 -0
  14. package/Claude/skills/README.md +136 -0
  15. package/Claude/skills/_lib/__init__.py +1 -0
  16. package/Claude/skills/_lib/api.py +164 -0
  17. package/Claude/skills/_lib/output.py +95 -0
  18. package/Claude/skills/environment/SKILL.md +73 -0
  19. package/Claude/skills/environment/environment.py +239 -0
  20. package/Claude/skills/memory/SKILL.md +153 -0
  21. package/Claude/skills/memory/memory.py +270 -0
  22. package/Claude/skills/project/SKILL.md +105 -0
  23. package/Claude/skills/project/project.py +203 -0
  24. package/Claude/skills/skill-creator/SKILL.md +261 -0
  25. package/Claude/skills/task/SKILL.md +135 -0
  26. package/Claude/skills/task/task.py +310 -0
  27. package/LICENSE +21 -0
  28. package/README.md +176 -0
  29. package/app/app.config.ts +8 -0
  30. package/app/app.vue +39 -0
  31. package/app/assets/css/main.css +10 -0
  32. package/app/components/AppLogo.vue +40 -0
  33. package/app/components/AssistantPanel.client.vue +518 -0
  34. package/app/components/ConfirmModal.vue +84 -0
  35. package/app/components/TemplateMenu.vue +49 -0
  36. package/app/components/agents/AgentActivityChart.client.vue +105 -0
  37. package/app/components/agents/AgentActivityChart.server.vue +25 -0
  38. package/app/components/agents/AgentForm.vue +304 -0
  39. package/app/components/agents/AgentRunModal.vue +154 -0
  40. package/app/components/agents/AgentStatsCards.vue +98 -0
  41. package/app/components/chat/ChatInput.vue +85 -0
  42. package/app/components/chat/ConversationList.vue +78 -0
  43. package/app/components/chat/MessageBubble.vue +81 -0
  44. package/app/components/chat/StreamingMessage.vue +36 -0
  45. package/app/components/chat/ToolCallBlock.vue +77 -0
  46. package/app/components/editor/CodeEditor.client.vue +212 -0
  47. package/app/components/editor/CodeEditorFallback.vue +12 -0
  48. package/app/components/editor/DocumentEditor.vue +326 -0
  49. package/app/components/editor/DocumentMetadata.vue +140 -0
  50. package/app/components/editor/MarkdownEditor.vue +146 -0
  51. package/app/components/files/FileTree.vue +436 -0
  52. package/app/components/hooks/HookActivityChart.client.vue +117 -0
  53. package/app/components/hooks/HookActivityChart.server.vue +25 -0
  54. package/app/components/hooks/HookStatsCards.vue +63 -0
  55. package/app/components/hooks/RecentEventsTable.vue +123 -0
  56. package/app/components/hooks/ToolBreakdownTable.vue +72 -0
  57. package/app/components/search/DashboardSearch.vue +122 -0
  58. package/app/components/tasks/ProjectSelect.vue +35 -0
  59. package/app/components/tasks/TaskCard.vue +182 -0
  60. package/app/components/tasks/TaskDetail.vue +160 -0
  61. package/app/components/tasks/TaskForm.vue +280 -0
  62. package/app/components/tasks/TaskList.vue +69 -0
  63. package/app/components/view/ViewToc.vue +85 -0
  64. package/app/composables/useAgents.ts +153 -0
  65. package/app/composables/useAuth.ts +73 -0
  66. package/app/composables/useChat.ts +298 -0
  67. package/app/composables/useDocument.ts +141 -0
  68. package/app/composables/useEditor.ts +100 -0
  69. package/app/composables/useFileTree.ts +220 -0
  70. package/app/composables/useHookEvents.ts +68 -0
  71. package/app/composables/useMemories.ts +83 -0
  72. package/app/composables/useNotificationBus.ts +154 -0
  73. package/app/composables/usePreferences.ts +131 -0
  74. package/app/composables/useProjects.ts +97 -0
  75. package/app/composables/useSearch.ts +52 -0
  76. package/app/composables/useTasks.ts +201 -0
  77. package/app/composables/useTerminal.ts +135 -0
  78. package/app/layouts/auth.vue +20 -0
  79. package/app/layouts/dashboard.vue +186 -0
  80. package/app/layouts/view.vue +60 -0
  81. package/app/middleware/auth.ts +9 -0
  82. package/app/pages/agents/[id].vue +602 -0
  83. package/app/pages/agents/index.vue +412 -0
  84. package/app/pages/chat.vue +146 -0
  85. package/app/pages/dashboard.vue +80 -0
  86. package/app/pages/docs.vue +131 -0
  87. package/app/pages/hooks.vue +163 -0
  88. package/app/pages/index.vue +249 -0
  89. package/app/pages/login.vue +60 -0
  90. package/app/pages/memories.vue +282 -0
  91. package/app/pages/settings.vue +625 -0
  92. package/app/pages/tasks.vue +312 -0
  93. package/app/pages/view/[uuid].vue +376 -0
  94. package/dist/cli/index.js +2711 -0
  95. package/drizzle.config.ts +10 -0
  96. package/nuxt.config.ts +98 -0
  97. package/package.json +107 -0
  98. package/server/api/agents/[id]/cancel.post.ts +27 -0
  99. package/server/api/agents/[id]/run.post.ts +34 -0
  100. package/server/api/agents/[id]/runs.get.ts +45 -0
  101. package/server/api/agents/[id]/stats.get.ts +94 -0
  102. package/server/api/agents/[id].delete.ts +29 -0
  103. package/server/api/agents/[id].get.ts +25 -0
  104. package/server/api/agents/[id].patch.ts +55 -0
  105. package/server/api/agents/index.get.ts +15 -0
  106. package/server/api/agents/index.post.ts +48 -0
  107. package/server/api/agents/stats.get.ts +86 -0
  108. package/server/api/auth/[...all].ts +5 -0
  109. package/server/api/conversations/[id].delete.ts +16 -0
  110. package/server/api/conversations/[id].get.ts +34 -0
  111. package/server/api/conversations/index.get.ts +17 -0
  112. package/server/api/documents/[id]/index.delete.ts +47 -0
  113. package/server/api/documents/[id]/index.put.ts +102 -0
  114. package/server/api/documents/[id]/public.get.ts +60 -0
  115. package/server/api/documents/[id]/restore.post.ts +65 -0
  116. package/server/api/documents/by-path.post.ts +168 -0
  117. package/server/api/documents/index.get.ts +48 -0
  118. package/server/api/fs/delete.post.ts +41 -0
  119. package/server/api/fs/list.get.ts +99 -0
  120. package/server/api/fs/mkdir.post.ts +44 -0
  121. package/server/api/fs/move.post.ts +68 -0
  122. package/server/api/fs/read.post.ts +48 -0
  123. package/server/api/fs/rename.post.ts +55 -0
  124. package/server/api/fs/write.post.ts +51 -0
  125. package/server/api/health.get.ts +40 -0
  126. package/server/api/home.get.ts +26 -0
  127. package/server/api/hooks/events/index.get.ts +56 -0
  128. package/server/api/hooks/events/index.post.ts +36 -0
  129. package/server/api/hooks/stats.get.ts +99 -0
  130. package/server/api/memory/[id].delete.ts +26 -0
  131. package/server/api/memory/context.get.ts +83 -0
  132. package/server/api/memory/extract.post.ts +42 -0
  133. package/server/api/memory/search.get.ts +70 -0
  134. package/server/api/memory/store.post.ts +31 -0
  135. package/server/api/projects/[id]/index.delete.ts +40 -0
  136. package/server/api/projects/[id]/index.get.ts +25 -0
  137. package/server/api/projects/[id]/index.put.ts +50 -0
  138. package/server/api/projects/index.get.ts +20 -0
  139. package/server/api/projects/index.post.ts +34 -0
  140. package/server/api/secrets/[key].delete.ts +31 -0
  141. package/server/api/secrets/[key].get.ts +30 -0
  142. package/server/api/secrets/[key].put.ts +52 -0
  143. package/server/api/secrets/index.get.ts +20 -0
  144. package/server/api/secrets/index.post.ts +58 -0
  145. package/server/api/tasks/[id]/index.delete.ts +46 -0
  146. package/server/api/tasks/[id]/index.get.ts +24 -0
  147. package/server/api/tasks/[id]/index.put.ts +70 -0
  148. package/server/api/tasks/[id]/restore.post.ts +49 -0
  149. package/server/api/tasks/index.get.ts +53 -0
  150. package/server/api/tasks/index.post.ts +47 -0
  151. package/server/api/tasks/tags.get.ts +21 -0
  152. package/server/api/user/email.patch.ts +56 -0
  153. package/server/db/index.ts +76 -0
  154. package/server/db/migrate.ts +41 -0
  155. package/server/db/schema.ts +345 -0
  156. package/server/db/seed.ts +46 -0
  157. package/server/db/types.ts +28 -0
  158. package/server/drizzle/migrations/0000_brown_george_stacy.sql +34 -0
  159. package/server/drizzle/migrations/0001_stormy_pyro.sql +16 -0
  160. package/server/drizzle/migrations/0002_clean_colossus.sql +50 -0
  161. package/server/drizzle/migrations/0003_fine_joystick.sql +12 -0
  162. package/server/drizzle/migrations/0004_tan_groot.sql +26 -0
  163. package/server/drizzle/migrations/0005_cloudy_lilith.sql +33 -0
  164. package/server/drizzle/migrations/0006_ordinary_retro_girl.sql +13 -0
  165. package/server/drizzle/migrations/0007_flowery_venus.sql +15 -0
  166. package/server/drizzle/migrations/0008_talented_zombie.sql +13 -0
  167. package/server/drizzle/migrations/0009_gray_shen.sql +15 -0
  168. package/server/drizzle/migrations/meta/0000_snapshot.json +230 -0
  169. package/server/drizzle/migrations/meta/0001_snapshot.json +306 -0
  170. package/server/drizzle/migrations/meta/0002_snapshot.json +615 -0
  171. package/server/drizzle/migrations/meta/0003_snapshot.json +730 -0
  172. package/server/drizzle/migrations/meta/0004_snapshot.json +916 -0
  173. package/server/drizzle/migrations/meta/0005_snapshot.json +1127 -0
  174. package/server/drizzle/migrations/meta/0006_snapshot.json +1213 -0
  175. package/server/drizzle/migrations/meta/0007_snapshot.json +1307 -0
  176. package/server/drizzle/migrations/meta/0008_snapshot.json +1390 -0
  177. package/server/drizzle/migrations/meta/0009_snapshot.json +1487 -0
  178. package/server/drizzle/migrations/meta/_journal.json +76 -0
  179. package/server/middleware/auth.ts +79 -0
  180. package/server/plugins/00.env-validate.ts +38 -0
  181. package/server/plugins/01.api-token.ts +31 -0
  182. package/server/plugins/02.database.ts +54 -0
  183. package/server/plugins/03.file-watcher.ts +65 -0
  184. package/server/plugins/04.cron-agents.ts +26 -0
  185. package/server/routes/_ws/chat.ts +252 -0
  186. package/server/routes/notifications.ts +47 -0
  187. package/server/routes/terminal.ts +98 -0
  188. package/server/services/agent-executor.ts +218 -0
  189. package/server/services/cron-scheduler.ts +78 -0
  190. package/server/services/memory-extractor.ts +120 -0
  191. package/server/utils/agent-cleanup.ts +91 -0
  192. package/server/utils/agent-registry.ts +95 -0
  193. package/server/utils/auth.ts +33 -0
  194. package/server/utils/chat-session-manager.ts +59 -0
  195. package/server/utils/crypto.ts +40 -0
  196. package/server/utils/db-guard.ts +12 -0
  197. package/server/utils/db-state.ts +63 -0
  198. package/server/utils/document-sync.ts +207 -0
  199. package/server/utils/frontmatter.ts +84 -0
  200. package/server/utils/notification-bus.ts +60 -0
  201. package/server/utils/path-validator.ts +55 -0
  202. package/server/utils/pty-manager.ts +130 -0
  203. package/shared/types/index.ts +604 -0
  204. package/shared/utils/language-detection.ts +87 -0
  205. package/tsconfig.json +10 -0
@@ -0,0 +1,615 @@
1
+ {
2
+ "id": "097697a4-1a5a-4f50-ab44-7a9fefdda249",
3
+ "prevId": "501d5c15-0d95-4c0d-9296-5b09e794c263",
4
+ "version": "7",
5
+ "dialect": "postgresql",
6
+ "tables": {
7
+ "public.account": {
8
+ "name": "account",
9
+ "schema": "",
10
+ "columns": {
11
+ "id": {
12
+ "name": "id",
13
+ "type": "text",
14
+ "primaryKey": true,
15
+ "notNull": true
16
+ },
17
+ "user_id": {
18
+ "name": "user_id",
19
+ "type": "text",
20
+ "primaryKey": false,
21
+ "notNull": true
22
+ },
23
+ "account_id": {
24
+ "name": "account_id",
25
+ "type": "text",
26
+ "primaryKey": false,
27
+ "notNull": true
28
+ },
29
+ "provider_id": {
30
+ "name": "provider_id",
31
+ "type": "text",
32
+ "primaryKey": false,
33
+ "notNull": true
34
+ },
35
+ "access_token": {
36
+ "name": "access_token",
37
+ "type": "text",
38
+ "primaryKey": false,
39
+ "notNull": false
40
+ },
41
+ "refresh_token": {
42
+ "name": "refresh_token",
43
+ "type": "text",
44
+ "primaryKey": false,
45
+ "notNull": false
46
+ },
47
+ "access_token_expires_at": {
48
+ "name": "access_token_expires_at",
49
+ "type": "timestamp with time zone",
50
+ "primaryKey": false,
51
+ "notNull": false
52
+ },
53
+ "refresh_token_expires_at": {
54
+ "name": "refresh_token_expires_at",
55
+ "type": "timestamp with time zone",
56
+ "primaryKey": false,
57
+ "notNull": false
58
+ },
59
+ "scope": {
60
+ "name": "scope",
61
+ "type": "text",
62
+ "primaryKey": false,
63
+ "notNull": false
64
+ },
65
+ "id_token": {
66
+ "name": "id_token",
67
+ "type": "text",
68
+ "primaryKey": false,
69
+ "notNull": false
70
+ },
71
+ "password": {
72
+ "name": "password",
73
+ "type": "text",
74
+ "primaryKey": false,
75
+ "notNull": false
76
+ },
77
+ "created_at": {
78
+ "name": "created_at",
79
+ "type": "timestamp with time zone",
80
+ "primaryKey": false,
81
+ "notNull": true,
82
+ "default": "now()"
83
+ },
84
+ "updated_at": {
85
+ "name": "updated_at",
86
+ "type": "timestamp with time zone",
87
+ "primaryKey": false,
88
+ "notNull": true,
89
+ "default": "now()"
90
+ }
91
+ },
92
+ "indexes": {},
93
+ "foreignKeys": {
94
+ "account_user_id_user_id_fk": {
95
+ "name": "account_user_id_user_id_fk",
96
+ "tableFrom": "account",
97
+ "tableTo": "user",
98
+ "columnsFrom": [
99
+ "user_id"
100
+ ],
101
+ "columnsTo": [
102
+ "id"
103
+ ],
104
+ "onDelete": "cascade",
105
+ "onUpdate": "no action"
106
+ }
107
+ },
108
+ "compositePrimaryKeys": {},
109
+ "uniqueConstraints": {},
110
+ "policies": {},
111
+ "checkConstraints": {},
112
+ "isRLSEnabled": false
113
+ },
114
+ "public.conversations": {
115
+ "name": "conversations",
116
+ "schema": "",
117
+ "columns": {
118
+ "id": {
119
+ "name": "id",
120
+ "type": "uuid",
121
+ "primaryKey": true,
122
+ "notNull": true,
123
+ "default": "gen_random_uuid()"
124
+ },
125
+ "session_id": {
126
+ "name": "session_id",
127
+ "type": "text",
128
+ "primaryKey": false,
129
+ "notNull": true
130
+ },
131
+ "summary": {
132
+ "name": "summary",
133
+ "type": "text",
134
+ "primaryKey": false,
135
+ "notNull": false
136
+ },
137
+ "started_at": {
138
+ "name": "started_at",
139
+ "type": "timestamp with time zone",
140
+ "primaryKey": false,
141
+ "notNull": true,
142
+ "default": "now()"
143
+ },
144
+ "ended_at": {
145
+ "name": "ended_at",
146
+ "type": "timestamp with time zone",
147
+ "primaryKey": false,
148
+ "notNull": false
149
+ },
150
+ "message_count": {
151
+ "name": "message_count",
152
+ "type": "integer",
153
+ "primaryKey": false,
154
+ "notNull": true,
155
+ "default": 0
156
+ }
157
+ },
158
+ "indexes": {},
159
+ "foreignKeys": {},
160
+ "compositePrimaryKeys": {},
161
+ "uniqueConstraints": {
162
+ "conversations_session_id_unique": {
163
+ "name": "conversations_session_id_unique",
164
+ "nullsNotDistinct": false,
165
+ "columns": [
166
+ "session_id"
167
+ ]
168
+ }
169
+ },
170
+ "policies": {},
171
+ "checkConstraints": {},
172
+ "isRLSEnabled": false
173
+ },
174
+ "public.projects": {
175
+ "name": "projects",
176
+ "schema": "",
177
+ "columns": {
178
+ "id": {
179
+ "name": "id",
180
+ "type": "uuid",
181
+ "primaryKey": true,
182
+ "notNull": true,
183
+ "default": "gen_random_uuid()"
184
+ },
185
+ "name": {
186
+ "name": "name",
187
+ "type": "text",
188
+ "primaryKey": false,
189
+ "notNull": true
190
+ },
191
+ "color": {
192
+ "name": "color",
193
+ "type": "text",
194
+ "primaryKey": false,
195
+ "notNull": true
196
+ },
197
+ "description": {
198
+ "name": "description",
199
+ "type": "text",
200
+ "primaryKey": false,
201
+ "notNull": false
202
+ },
203
+ "created_at": {
204
+ "name": "created_at",
205
+ "type": "timestamp with time zone",
206
+ "primaryKey": false,
207
+ "notNull": true,
208
+ "default": "now()"
209
+ },
210
+ "modified_at": {
211
+ "name": "modified_at",
212
+ "type": "timestamp with time zone",
213
+ "primaryKey": false,
214
+ "notNull": false
215
+ },
216
+ "deleted_at": {
217
+ "name": "deleted_at",
218
+ "type": "timestamp with time zone",
219
+ "primaryKey": false,
220
+ "notNull": false
221
+ }
222
+ },
223
+ "indexes": {},
224
+ "foreignKeys": {},
225
+ "compositePrimaryKeys": {},
226
+ "uniqueConstraints": {},
227
+ "policies": {},
228
+ "checkConstraints": {},
229
+ "isRLSEnabled": false
230
+ },
231
+ "public.reminders": {
232
+ "name": "reminders",
233
+ "schema": "",
234
+ "columns": {
235
+ "id": {
236
+ "name": "id",
237
+ "type": "uuid",
238
+ "primaryKey": true,
239
+ "notNull": true,
240
+ "default": "gen_random_uuid()"
241
+ },
242
+ "task_id": {
243
+ "name": "task_id",
244
+ "type": "uuid",
245
+ "primaryKey": false,
246
+ "notNull": false
247
+ },
248
+ "message": {
249
+ "name": "message",
250
+ "type": "text",
251
+ "primaryKey": false,
252
+ "notNull": true
253
+ },
254
+ "remind_at": {
255
+ "name": "remind_at",
256
+ "type": "timestamp with time zone",
257
+ "primaryKey": false,
258
+ "notNull": true
259
+ },
260
+ "notified": {
261
+ "name": "notified",
262
+ "type": "boolean",
263
+ "primaryKey": false,
264
+ "notNull": true,
265
+ "default": false
266
+ },
267
+ "created_at": {
268
+ "name": "created_at",
269
+ "type": "timestamp with time zone",
270
+ "primaryKey": false,
271
+ "notNull": true,
272
+ "default": "now()"
273
+ }
274
+ },
275
+ "indexes": {},
276
+ "foreignKeys": {
277
+ "reminders_task_id_tasks_id_fk": {
278
+ "name": "reminders_task_id_tasks_id_fk",
279
+ "tableFrom": "reminders",
280
+ "tableTo": "tasks",
281
+ "columnsFrom": [
282
+ "task_id"
283
+ ],
284
+ "columnsTo": [
285
+ "id"
286
+ ],
287
+ "onDelete": "cascade",
288
+ "onUpdate": "no action"
289
+ }
290
+ },
291
+ "compositePrimaryKeys": {},
292
+ "uniqueConstraints": {},
293
+ "policies": {},
294
+ "checkConstraints": {},
295
+ "isRLSEnabled": false
296
+ },
297
+ "public.session": {
298
+ "name": "session",
299
+ "schema": "",
300
+ "columns": {
301
+ "id": {
302
+ "name": "id",
303
+ "type": "text",
304
+ "primaryKey": true,
305
+ "notNull": true
306
+ },
307
+ "user_id": {
308
+ "name": "user_id",
309
+ "type": "text",
310
+ "primaryKey": false,
311
+ "notNull": true
312
+ },
313
+ "token": {
314
+ "name": "token",
315
+ "type": "text",
316
+ "primaryKey": false,
317
+ "notNull": true
318
+ },
319
+ "expires_at": {
320
+ "name": "expires_at",
321
+ "type": "timestamp with time zone",
322
+ "primaryKey": false,
323
+ "notNull": true
324
+ },
325
+ "ip_address": {
326
+ "name": "ip_address",
327
+ "type": "text",
328
+ "primaryKey": false,
329
+ "notNull": false
330
+ },
331
+ "user_agent": {
332
+ "name": "user_agent",
333
+ "type": "text",
334
+ "primaryKey": false,
335
+ "notNull": false
336
+ },
337
+ "created_at": {
338
+ "name": "created_at",
339
+ "type": "timestamp with time zone",
340
+ "primaryKey": false,
341
+ "notNull": true,
342
+ "default": "now()"
343
+ },
344
+ "updated_at": {
345
+ "name": "updated_at",
346
+ "type": "timestamp with time zone",
347
+ "primaryKey": false,
348
+ "notNull": true,
349
+ "default": "now()"
350
+ }
351
+ },
352
+ "indexes": {},
353
+ "foreignKeys": {
354
+ "session_user_id_user_id_fk": {
355
+ "name": "session_user_id_user_id_fk",
356
+ "tableFrom": "session",
357
+ "tableTo": "user",
358
+ "columnsFrom": [
359
+ "user_id"
360
+ ],
361
+ "columnsTo": [
362
+ "id"
363
+ ],
364
+ "onDelete": "cascade",
365
+ "onUpdate": "no action"
366
+ }
367
+ },
368
+ "compositePrimaryKeys": {},
369
+ "uniqueConstraints": {
370
+ "session_token_unique": {
371
+ "name": "session_token_unique",
372
+ "nullsNotDistinct": false,
373
+ "columns": [
374
+ "token"
375
+ ]
376
+ }
377
+ },
378
+ "policies": {},
379
+ "checkConstraints": {},
380
+ "isRLSEnabled": false
381
+ },
382
+ "public.tasks": {
383
+ "name": "tasks",
384
+ "schema": "",
385
+ "columns": {
386
+ "id": {
387
+ "name": "id",
388
+ "type": "uuid",
389
+ "primaryKey": true,
390
+ "notNull": true,
391
+ "default": "gen_random_uuid()"
392
+ },
393
+ "title": {
394
+ "name": "title",
395
+ "type": "text",
396
+ "primaryKey": false,
397
+ "notNull": true
398
+ },
399
+ "description": {
400
+ "name": "description",
401
+ "type": "text",
402
+ "primaryKey": false,
403
+ "notNull": false
404
+ },
405
+ "status": {
406
+ "name": "status",
407
+ "type": "text",
408
+ "primaryKey": false,
409
+ "notNull": true,
410
+ "default": "'todo'"
411
+ },
412
+ "priority": {
413
+ "name": "priority",
414
+ "type": "integer",
415
+ "primaryKey": false,
416
+ "notNull": true,
417
+ "default": 2
418
+ },
419
+ "project_id": {
420
+ "name": "project_id",
421
+ "type": "uuid",
422
+ "primaryKey": false,
423
+ "notNull": false
424
+ },
425
+ "due_date": {
426
+ "name": "due_date",
427
+ "type": "timestamp with time zone",
428
+ "primaryKey": false,
429
+ "notNull": false
430
+ },
431
+ "tags": {
432
+ "name": "tags",
433
+ "type": "text[]",
434
+ "primaryKey": false,
435
+ "notNull": false,
436
+ "default": "'{}'"
437
+ },
438
+ "created_at": {
439
+ "name": "created_at",
440
+ "type": "timestamp with time zone",
441
+ "primaryKey": false,
442
+ "notNull": true,
443
+ "default": "now()"
444
+ },
445
+ "modified_at": {
446
+ "name": "modified_at",
447
+ "type": "timestamp with time zone",
448
+ "primaryKey": false,
449
+ "notNull": false
450
+ },
451
+ "completed_at": {
452
+ "name": "completed_at",
453
+ "type": "timestamp with time zone",
454
+ "primaryKey": false,
455
+ "notNull": false
456
+ },
457
+ "deleted_at": {
458
+ "name": "deleted_at",
459
+ "type": "timestamp with time zone",
460
+ "primaryKey": false,
461
+ "notNull": false
462
+ }
463
+ },
464
+ "indexes": {},
465
+ "foreignKeys": {
466
+ "tasks_project_id_projects_id_fk": {
467
+ "name": "tasks_project_id_projects_id_fk",
468
+ "tableFrom": "tasks",
469
+ "tableTo": "projects",
470
+ "columnsFrom": [
471
+ "project_id"
472
+ ],
473
+ "columnsTo": [
474
+ "id"
475
+ ],
476
+ "onDelete": "set null",
477
+ "onUpdate": "no action"
478
+ }
479
+ },
480
+ "compositePrimaryKeys": {},
481
+ "uniqueConstraints": {},
482
+ "policies": {},
483
+ "checkConstraints": {},
484
+ "isRLSEnabled": false
485
+ },
486
+ "public.user": {
487
+ "name": "user",
488
+ "schema": "",
489
+ "columns": {
490
+ "id": {
491
+ "name": "id",
492
+ "type": "text",
493
+ "primaryKey": true,
494
+ "notNull": true
495
+ },
496
+ "name": {
497
+ "name": "name",
498
+ "type": "text",
499
+ "primaryKey": false,
500
+ "notNull": true
501
+ },
502
+ "email": {
503
+ "name": "email",
504
+ "type": "text",
505
+ "primaryKey": false,
506
+ "notNull": true
507
+ },
508
+ "email_verified": {
509
+ "name": "email_verified",
510
+ "type": "boolean",
511
+ "primaryKey": false,
512
+ "notNull": true,
513
+ "default": false
514
+ },
515
+ "image": {
516
+ "name": "image",
517
+ "type": "text",
518
+ "primaryKey": false,
519
+ "notNull": false
520
+ },
521
+ "created_at": {
522
+ "name": "created_at",
523
+ "type": "timestamp with time zone",
524
+ "primaryKey": false,
525
+ "notNull": true,
526
+ "default": "now()"
527
+ },
528
+ "updated_at": {
529
+ "name": "updated_at",
530
+ "type": "timestamp with time zone",
531
+ "primaryKey": false,
532
+ "notNull": true,
533
+ "default": "now()"
534
+ }
535
+ },
536
+ "indexes": {},
537
+ "foreignKeys": {},
538
+ "compositePrimaryKeys": {},
539
+ "uniqueConstraints": {
540
+ "user_email_unique": {
541
+ "name": "user_email_unique",
542
+ "nullsNotDistinct": false,
543
+ "columns": [
544
+ "email"
545
+ ]
546
+ }
547
+ },
548
+ "policies": {},
549
+ "checkConstraints": {},
550
+ "isRLSEnabled": false
551
+ },
552
+ "public.verification": {
553
+ "name": "verification",
554
+ "schema": "",
555
+ "columns": {
556
+ "id": {
557
+ "name": "id",
558
+ "type": "text",
559
+ "primaryKey": true,
560
+ "notNull": true
561
+ },
562
+ "identifier": {
563
+ "name": "identifier",
564
+ "type": "text",
565
+ "primaryKey": false,
566
+ "notNull": true
567
+ },
568
+ "value": {
569
+ "name": "value",
570
+ "type": "text",
571
+ "primaryKey": false,
572
+ "notNull": true
573
+ },
574
+ "expires_at": {
575
+ "name": "expires_at",
576
+ "type": "timestamp with time zone",
577
+ "primaryKey": false,
578
+ "notNull": true
579
+ },
580
+ "created_at": {
581
+ "name": "created_at",
582
+ "type": "timestamp with time zone",
583
+ "primaryKey": false,
584
+ "notNull": true,
585
+ "default": "now()"
586
+ },
587
+ "updated_at": {
588
+ "name": "updated_at",
589
+ "type": "timestamp with time zone",
590
+ "primaryKey": false,
591
+ "notNull": true,
592
+ "default": "now()"
593
+ }
594
+ },
595
+ "indexes": {},
596
+ "foreignKeys": {},
597
+ "compositePrimaryKeys": {},
598
+ "uniqueConstraints": {},
599
+ "policies": {},
600
+ "checkConstraints": {},
601
+ "isRLSEnabled": false
602
+ }
603
+ },
604
+ "enums": {},
605
+ "schemas": {},
606
+ "sequences": {},
607
+ "roles": {},
608
+ "policies": {},
609
+ "views": {},
610
+ "_meta": {
611
+ "columns": {},
612
+ "schemas": {},
613
+ "tables": {}
614
+ }
615
+ }