agentfit 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 (107) hide show
  1. package/.claude/settings.local.json +26 -0
  2. package/.prettierignore +7 -0
  3. package/.prettierrc +11 -0
  4. package/CONTRIBUTING.md +209 -0
  5. package/LICENSE +21 -0
  6. package/README.md +109 -0
  7. package/app/(dashboard)/coach/page.tsx +11 -0
  8. package/app/(dashboard)/commands/page.tsx +7 -0
  9. package/app/(dashboard)/community/[slug]/page.tsx +23 -0
  10. package/app/(dashboard)/community/page.tsx +71 -0
  11. package/app/(dashboard)/daily/page.tsx +19 -0
  12. package/app/(dashboard)/images/page.tsx +5 -0
  13. package/app/(dashboard)/layout.tsx +12 -0
  14. package/app/(dashboard)/page.tsx +23 -0
  15. package/app/(dashboard)/personality/page.tsx +11 -0
  16. package/app/(dashboard)/projects/page.tsx +11 -0
  17. package/app/(dashboard)/sessions/page.tsx +11 -0
  18. package/app/(dashboard)/tokens/page.tsx +11 -0
  19. package/app/(dashboard)/tools/page.tsx +11 -0
  20. package/app/api/check/route.ts +13 -0
  21. package/app/api/commands/route.ts +16 -0
  22. package/app/api/images/[...path]/route.ts +33 -0
  23. package/app/api/images-analysis/route.ts +177 -0
  24. package/app/api/sync/route.ts +14 -0
  25. package/app/api/usage/route.ts +117 -0
  26. package/app/favicon.ico +0 -0
  27. package/app/globals.css +144 -0
  28. package/app/icon.svg +3 -0
  29. package/app/layout.tsx +35 -0
  30. package/bin/agentfit.mjs +69 -0
  31. package/components/.gitkeep +0 -0
  32. package/components/agent-coach.tsx +248 -0
  33. package/components/app-sidebar.tsx +161 -0
  34. package/components/command-usage.tsx +294 -0
  35. package/components/daily-chart.tsx +118 -0
  36. package/components/daily-table.tsx +115 -0
  37. package/components/dashboard-shell.tsx +149 -0
  38. package/components/data-provider.tsx +213 -0
  39. package/components/fitness-score.tsx +95 -0
  40. package/components/overview-cards.tsx +198 -0
  41. package/components/pagination-controls.tsx +104 -0
  42. package/components/personality-fit.tsx +446 -0
  43. package/components/projects-table.tsx +70 -0
  44. package/components/screenshots-analysis.tsx +359 -0
  45. package/components/sessions-table.tsx +97 -0
  46. package/components/theme-provider.tsx +71 -0
  47. package/components/token-breakdown.tsx +179 -0
  48. package/components/tool-usage-chart.tsx +63 -0
  49. package/components/ui/badge.tsx +52 -0
  50. package/components/ui/button.tsx +60 -0
  51. package/components/ui/card.tsx +103 -0
  52. package/components/ui/chart.tsx +373 -0
  53. package/components/ui/dialog.tsx +160 -0
  54. package/components/ui/input.tsx +20 -0
  55. package/components/ui/scroll-area.tsx +55 -0
  56. package/components/ui/select.tsx +201 -0
  57. package/components/ui/separator.tsx +25 -0
  58. package/components/ui/sheet.tsx +138 -0
  59. package/components/ui/sidebar.tsx +723 -0
  60. package/components/ui/skeleton.tsx +13 -0
  61. package/components/ui/table.tsx +116 -0
  62. package/components/ui/tabs.tsx +82 -0
  63. package/components/ui/tooltip.tsx +66 -0
  64. package/components.json +25 -0
  65. package/generated/prisma/browser.ts +34 -0
  66. package/generated/prisma/client.ts +58 -0
  67. package/generated/prisma/commonInputTypes.ts +237 -0
  68. package/generated/prisma/enums.ts +15 -0
  69. package/generated/prisma/internal/class.ts +224 -0
  70. package/generated/prisma/internal/prismaNamespace.ts +920 -0
  71. package/generated/prisma/internal/prismaNamespaceBrowser.ts +130 -0
  72. package/generated/prisma/models/Image.ts +1310 -0
  73. package/generated/prisma/models/Session.ts +1695 -0
  74. package/generated/prisma/models/SyncLog.ts +1203 -0
  75. package/generated/prisma/models.ts +14 -0
  76. package/hooks/.gitkeep +0 -0
  77. package/hooks/use-mobile.ts +19 -0
  78. package/hooks/use-pagination.ts +60 -0
  79. package/lib/.gitkeep +0 -0
  80. package/lib/coach.ts +425 -0
  81. package/lib/commands.ts +239 -0
  82. package/lib/db.ts +15 -0
  83. package/lib/format.ts +26 -0
  84. package/lib/parse-codex.ts +201 -0
  85. package/lib/parse-logs.ts +369 -0
  86. package/lib/personality.ts +481 -0
  87. package/lib/plugins.ts +107 -0
  88. package/lib/pricing.ts +112 -0
  89. package/lib/queries-codex.ts +130 -0
  90. package/lib/queries.ts +154 -0
  91. package/lib/resolve-icon.ts +12 -0
  92. package/lib/sync.ts +335 -0
  93. package/lib/utils.ts +6 -0
  94. package/next.config.mjs +4 -0
  95. package/package.json +73 -0
  96. package/plugins/cost-heatmap/component.test.tsx +52 -0
  97. package/plugins/cost-heatmap/component.tsx +227 -0
  98. package/plugins/cost-heatmap/manifest.ts +13 -0
  99. package/plugins/index.ts +18 -0
  100. package/prisma/migrations/20260328152517_init/migration.sql +41 -0
  101. package/prisma/migrations/20260328153801_add_image_model/migration.sql +18 -0
  102. package/prisma/migrations/migration_lock.toml +3 -0
  103. package/prisma/schema.prisma +57 -0
  104. package/prisma.config.ts +14 -0
  105. package/public/.gitkeep +0 -0
  106. package/public/logo.svg +3 -0
  107. package/setup.sh +73 -0
@@ -0,0 +1,224 @@
1
+
2
+ /* !!! This is code generated by Prisma. Do not edit directly. !!! */
3
+ /* eslint-disable */
4
+ // biome-ignore-all lint: generated file
5
+ // @ts-nocheck
6
+ /*
7
+ * WARNING: This is an internal file that is subject to change!
8
+ *
9
+ * 🛑 Under no circumstances should you import this file directly! 🛑
10
+ *
11
+ * Please import the `PrismaClient` class from the `client.ts` file instead.
12
+ */
13
+
14
+ import * as runtime from "@prisma/client/runtime/client"
15
+ import type * as Prisma from "./prismaNamespace"
16
+
17
+
18
+ const config: runtime.GetPrismaClientConfig = {
19
+ "previewFeatures": [],
20
+ "clientVersion": "7.6.0",
21
+ "engineVersion": "75cbdc1eb7150937890ad5465d861175c6624711",
22
+ "activeProvider": "sqlite",
23
+ "inlineSchema": "generator client {\n provider = \"prisma-client\"\n output = \"../generated/prisma\"\n}\n\ndatasource db {\n provider = \"sqlite\"\n}\n\nmodel Session {\n id String @id @default(cuid())\n sessionId String @unique\n project String\n projectPath String\n startTime DateTime\n endTime DateTime\n durationMinutes Float\n userMessages Int\n assistantMessages Int\n totalMessages Int\n inputTokens Int\n outputTokens Int\n cacheCreationTokens Int\n cacheReadTokens Int\n totalTokens Int\n costUSD Float\n model String\n toolCallsTotal Int\n toolCallsJson String // JSON string of Record<string, number>\n createdAt DateTime @default(now())\n\n @@index([project])\n @@index([startTime])\n}\n\nmodel Image {\n id String @id @default(cuid())\n sessionId String\n messageId String // uuid of the message containing the image\n filename String // relative path under data/images/\n mediaType String // e.g. image/png\n sizeBytes Int\n timestamp DateTime\n role String // user or assistant\n createdAt DateTime @default(now())\n\n @@unique([sessionId, messageId, filename])\n @@index([sessionId])\n}\n\nmodel SyncLog {\n id String @id @default(cuid())\n syncedAt DateTime @default(now())\n filesProcessed Int\n sessionsAdded Int\n sessionsSkipped Int\n}\n",
24
+ "runtimeDataModel": {
25
+ "models": {},
26
+ "enums": {},
27
+ "types": {}
28
+ },
29
+ "parameterizationSchema": {
30
+ "strings": [],
31
+ "graph": ""
32
+ }
33
+ }
34
+
35
+ config.runtimeDataModel = JSON.parse("{\"models\":{\"Session\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sessionId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"project\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"projectPath\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"startTime\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"endTime\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"durationMinutes\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"userMessages\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"assistantMessages\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"totalMessages\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"inputTokens\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"outputTokens\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"cacheCreationTokens\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"cacheReadTokens\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"totalTokens\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"costUSD\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"model\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"toolCallsTotal\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"toolCallsJson\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"Image\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sessionId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"messageId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"filename\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"mediaType\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sizeBytes\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"timestamp\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"role\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"SyncLog\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"syncedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"filesProcessed\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"sessionsAdded\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"sessionsSkipped\",\"kind\":\"scalar\",\"type\":\"Int\"}],\"dbName\":null}},\"enums\":{},\"types\":{}}")
36
+ config.parameterizationSchema = {
37
+ strings: JSON.parse("[\"where\",\"Session.findUnique\",\"Session.findUniqueOrThrow\",\"orderBy\",\"cursor\",\"Session.findFirst\",\"Session.findFirstOrThrow\",\"Session.findMany\",\"data\",\"Session.createOne\",\"Session.createMany\",\"Session.createManyAndReturn\",\"Session.updateOne\",\"Session.updateMany\",\"Session.updateManyAndReturn\",\"create\",\"update\",\"Session.upsertOne\",\"Session.deleteOne\",\"Session.deleteMany\",\"having\",\"_count\",\"_avg\",\"_sum\",\"_min\",\"_max\",\"Session.groupBy\",\"Session.aggregate\",\"Image.findUnique\",\"Image.findUniqueOrThrow\",\"Image.findFirst\",\"Image.findFirstOrThrow\",\"Image.findMany\",\"Image.createOne\",\"Image.createMany\",\"Image.createManyAndReturn\",\"Image.updateOne\",\"Image.updateMany\",\"Image.updateManyAndReturn\",\"Image.upsertOne\",\"Image.deleteOne\",\"Image.deleteMany\",\"Image.groupBy\",\"Image.aggregate\",\"SyncLog.findUnique\",\"SyncLog.findUniqueOrThrow\",\"SyncLog.findFirst\",\"SyncLog.findFirstOrThrow\",\"SyncLog.findMany\",\"SyncLog.createOne\",\"SyncLog.createMany\",\"SyncLog.createManyAndReturn\",\"SyncLog.updateOne\",\"SyncLog.updateMany\",\"SyncLog.updateManyAndReturn\",\"SyncLog.upsertOne\",\"SyncLog.deleteOne\",\"SyncLog.deleteMany\",\"SyncLog.groupBy\",\"SyncLog.aggregate\",\"AND\",\"OR\",\"NOT\",\"id\",\"syncedAt\",\"filesProcessed\",\"sessionsAdded\",\"sessionsSkipped\",\"equals\",\"in\",\"notIn\",\"lt\",\"lte\",\"gt\",\"gte\",\"not\",\"contains\",\"startsWith\",\"endsWith\",\"sessionId\",\"messageId\",\"filename\",\"mediaType\",\"sizeBytes\",\"timestamp\",\"role\",\"createdAt\",\"sessionId_messageId_filename\",\"project\",\"projectPath\",\"startTime\",\"endTime\",\"durationMinutes\",\"userMessages\",\"assistantMessages\",\"totalMessages\",\"inputTokens\",\"outputTokens\",\"cacheCreationTokens\",\"cacheReadTokens\",\"totalTokens\",\"costUSD\",\"model\",\"toolCallsTotal\",\"toolCallsJson\",\"set\",\"increment\",\"decrement\",\"multiply\",\"divide\"]"),
38
+ graph: "dR8wFzwAAGEAMD0AAAQAED4AAGEAMD8BAAAAAU8BAAAAAVZAAFkAIVgBAFgAIVkBAFgAIVpAAFkAIVtAAFkAIVwIAGIAIV0CAFoAIV4CAFoAIV8CAFoAIWACAFoAIWECAFoAIWICAFoAIWMCAFoAIWQCAFoAIWUIAGIAIWYBAFgAIWcCAFoAIWgBAFgAIQEAAAABACABAAAAAQAgFzwAAGEAMD0AAAQAED4AAGEAMD8BAFgAIU8BAFgAIVZAAFkAIVgBAFgAIVkBAFgAIVpAAFkAIVtAAFkAIVwIAGIAIV0CAFoAIV4CAFoAIV8CAFoAIWACAFoAIWECAFoAIWICAFoAIWMCAFoAIWQCAFoAIWUIAGIAIWYBAFgAIWcCAFoAIWgBAFgAIQADAAAABAAgAwAABQAwBAAAAQAgAwAAAAQAIAMAAAUAMAQAAAEAIAMAAAAEACADAAAFADAEAAABACAUPwEAAAABTwEAAAABVkAAAAABWAEAAAABWQEAAAABWkAAAAABW0AAAAABXAgAAAABXQIAAAABXgIAAAABXwIAAAABYAIAAAABYQIAAAABYgIAAAABYwIAAAABZAIAAAABZQgAAAABZgEAAAABZwIAAAABaAEAAAABAQgAAAkAIBQ_AQAAAAFPAQAAAAFWQAAAAAFYAQAAAAFZAQAAAAFaQAAAAAFbQAAAAAFcCAAAAAFdAgAAAAFeAgAAAAFfAgAAAAFgAgAAAAFhAgAAAAFiAgAAAAFjAgAAAAFkAgAAAAFlCAAAAAFmAQAAAAFnAgAAAAFoAQAAAAEBCAAACwAwAQgAAAsAMBQ_AQBoACFPAQBoACFWQABpACFYAQBoACFZAQBoACFaQABpACFbQABpACFcCAB1ACFdAgBqACFeAgBqACFfAgBqACFgAgBqACFhAgBqACFiAgBqACFjAgBqACFkAgBqACFlCAB1ACFmAQBoACFnAgBqACFoAQBoACECAAAAAQAgCAAADgAgFD8BAGgAIU8BAGgAIVZAAGkAIVgBAGgAIVkBAGgAIVpAAGkAIVtAAGkAIVwIAHUAIV0CAGoAIV4CAGoAIV8CAGoAIWACAGoAIWECAGoAIWICAGoAIWMCAGoAIWQCAGoAIWUIAHUAIWYBAGgAIWcCAGoAIWgBAGgAIQIAAAAEACAIAAAQACACAAAABAAgCAAAEAAgAwAAAAEAIA8AAAkAIBAAAA4AIAEAAAABACABAAAABAAgBRUAAHAAIBYAAHEAIBcAAHQAIBgAAHMAIBkAAHIAIBc8AABeADA9AAAXABA-AABeADA_AQBNACFPAQBNACFWQABOACFYAQBNACFZAQBNACFaQABOACFbQABOACFcCABfACFdAgBPACFeAgBPACFfAgBPACFgAgBPACFhAgBPACFiAgBPACFjAgBPACFkAgBPACFlCABfACFmAQBNACFnAgBPACFoAQBNACEDAAAABAAgAwAAFgAwFAAAFwAgAwAAAAQAIAMAAAUAMAQAAAEAIA08AABcADA9AAAdABA-AABcADA_AQAAAAFPAQBYACFQAQBYACFRAQBYACFSAQBYACFTAgBaACFUQABZACFVAQBYACFWQABZACFXAABdACABAAAAGgAgAQAAABoAIAw8AABcADA9AAAdABA-AABcADA_AQBYACFPAQBYACFQAQBYACFRAQBYACFSAQBYACFTAgBaACFUQABZACFVAQBYACFWQABZACEAAwAAAB0AIAMAAB4AMAQAABoAIAMAAAAdACADAAAeADAEAAAaACADAAAAHQAgAwAAHgAwBAAAGgAgCT8BAAAAAU8BAAAAAVABAAAAAVEBAAAAAVIBAAAAAVMCAAAAAVRAAAAAAVUBAAAAAVZAAAAAAQEIAAAiACAJPwEAAAABTwEAAAABUAEAAAABUQEAAAABUgEAAAABUwIAAAABVEAAAAABVQEAAAABVkAAAAABAQgAACQAMAEIAAAkADAJPwEAaAAhTwEAaAAhUAEAaAAhUQEAaAAhUgEAaAAhUwIAagAhVEAAaQAhVQEAaAAhVkAAaQAhAgAAABoAIAgAACcAIAk_AQBoACFPAQBoACFQAQBoACFRAQBoACFSAQBoACFTAgBqACFUQABpACFVAQBoACFWQABpACECAAAAHQAgCAAAKQAgAgAAAB0AIAgAACkAIAMAAAAaACAPAAAiACAQAAAnACABAAAAGgAgAQAAAB0AIAUVAABrACAWAABsACAXAABvACAYAABuACAZAABtACAMPAAAWwAwPQAAMAAQPgAAWwAwPwEATQAhTwEATQAhUAEATQAhUQEATQAhUgEATQAhUwIATwAhVEAATgAhVQEATQAhVkAATgAhAwAAAB0AIAMAAC8AMBQAADAAIAMAAAAdACADAAAeADAEAAAaACAIPAAAVwAwPQAANgAQPgAAVwAwPwEAAAABQEAAWQAhQQIAWgAhQgIAWgAhQwIAWgAhAQAAADMAIAEAAAAzACAIPAAAVwAwPQAANgAQPgAAVwAwPwEAWAAhQEAAWQAhQQIAWgAhQgIAWgAhQwIAWgAhAAMAAAA2ACADAAA3ADAEAAAzACADAAAANgAgAwAANwAwBAAAMwAgAwAAADYAIAMAADcAMAQAADMAIAU_AQAAAAFAQAAAAAFBAgAAAAFCAgAAAAFDAgAAAAEBCAAAOwAgBT8BAAAAAUBAAAAAAUECAAAAAUICAAAAAUMCAAAAAQEIAAA9ADABCAAAPQAwBT8BAGgAIUBAAGkAIUECAGoAIUICAGoAIUMCAGoAIQIAAAAzACAIAABAACAFPwEAaAAhQEAAaQAhQQIAagAhQgIAagAhQwIAagAhAgAAADYAIAgAAEIAIAIAAAA2ACAIAABCACADAAAAMwAgDwAAOwAgEAAAQAAgAQAAADMAIAEAAAA2ACAFFQAAYwAgFgAAZAAgFwAAZwAgGAAAZgAgGQAAZQAgCDwAAEwAMD0AAEkAED4AAEwAMD8BAE0AIUBAAE4AIUECAE8AIUICAE8AIUMCAE8AIQMAAAA2ACADAABIADAUAABJACADAAAANgAgAwAANwAwBAAAMwAgCDwAAEwAMD0AAEkAED4AAEwAMD8BAE0AIUBAAE4AIUECAE8AIUICAE8AIUMCAE8AIQ4VAABRACAYAABWACAZAABWACBEAQAAAAFFAQAAAARGAQAAAARHAQAAAAFIAQAAAAFJAQAAAAFKAQAAAAFLAQBVACFMAQAAAAFNAQAAAAFOAQAAAAELFQAAUQAgGAAAVAAgGQAAVAAgREAAAAABRUAAAAAERkAAAAAER0AAAAABSEAAAAABSUAAAAABSkAAAAABS0AAUwAhDRUAAFEAIBYAAFIAIBcAAFEAIBgAAFEAIBkAAFEAIEQCAAAAAUUCAAAABEYCAAAABEcCAAAAAUgCAAAAAUkCAAAAAUoCAAAAAUsCAFAAIQ0VAABRACAWAABSACAXAABRACAYAABRACAZAABRACBEAgAAAAFFAgAAAARGAgAAAARHAgAAAAFIAgAAAAFJAgAAAAFKAgAAAAFLAgBQACEIRAIAAAABRQIAAAAERgIAAAAERwIAAAABSAIAAAABSQIAAAABSgIAAAABSwIAUQAhCEQIAAAAAUUIAAAABEYIAAAABEcIAAAAAUgIAAAAAUkIAAAAAUoIAAAAAUsIAFIAIQsVAABRACAYAABUACAZAABUACBEQAAAAAFFQAAAAARGQAAAAARHQAAAAAFIQAAAAAFJQAAAAAFKQAAAAAFLQABTACEIREAAAAABRUAAAAAERkAAAAAER0AAAAABSEAAAAABSUAAAAABSkAAAAABS0AAVAAhDhUAAFEAIBgAAFYAIBkAAFYAIEQBAAAAAUUBAAAABEYBAAAABEcBAAAAAUgBAAAAAUkBAAAAAUoBAAAAAUsBAFUAIUwBAAAAAU0BAAAAAU4BAAAAAQtEAQAAAAFFAQAAAARGAQAAAARHAQAAAAFIAQAAAAFJAQAAAAFKAQAAAAFLAQBWACFMAQAAAAFNAQAAAAFOAQAAAAEIPAAAVwAwPQAANgAQPgAAVwAwPwEAWAAhQEAAWQAhQQIAWgAhQgIAWgAhQwIAWgAhC0QBAAAAAUUBAAAABEYBAAAABEcBAAAAAUgBAAAAAUkBAAAAAUoBAAAAAUsBAFYAIUwBAAAAAU0BAAAAAU4BAAAAAQhEQAAAAAFFQAAAAARGQAAAAARHQAAAAAFIQAAAAAFJQAAAAAFKQAAAAAFLQABUACEIRAIAAAABRQIAAAAERgIAAAAERwIAAAABSAIAAAABSQIAAAABSgIAAAABSwIAUQAhDDwAAFsAMD0AADAAED4AAFsAMD8BAE0AIU8BAE0AIVABAE0AIVEBAE0AIVIBAE0AIVMCAE8AIVRAAE4AIVUBAE0AIVZAAE4AIQw8AABcADA9AAAdABA-AABcADA_AQBYACFPAQBYACFQAQBYACFRAQBYACFSAQBYACFTAgBaACFUQABZACFVAQBYACFWQABZACEDTwEAAAABUAEAAAABUQEAAAABFzwAAF4AMD0AABcAED4AAF4AMD8BAE0AIU8BAE0AIVZAAE4AIVgBAE0AIVkBAE0AIVpAAE4AIVtAAE4AIVwIAF8AIV0CAE8AIV4CAE8AIV8CAE8AIWACAE8AIWECAE8AIWICAE8AIWMCAE8AIWQCAE8AIWUIAF8AIWYBAE0AIWcCAE8AIWgBAE0AIQ0VAABRACAWAABSACAXAABSACAYAABSACAZAABSACBECAAAAAFFCAAAAARGCAAAAARHCAAAAAFICAAAAAFJCAAAAAFKCAAAAAFLCABgACENFQAAUQAgFgAAUgAgFwAAUgAgGAAAUgAgGQAAUgAgRAgAAAABRQgAAAAERggAAAAERwgAAAABSAgAAAABSQgAAAABSggAAAABSwgAYAAhFzwAAGEAMD0AAAQAED4AAGEAMD8BAFgAIU8BAFgAIVZAAFkAIVgBAFgAIVkBAFgAIVpAAFkAIVtAAFkAIVwIAGIAIV0CAFoAIV4CAFoAIV8CAFoAIWACAFoAIWECAFoAIWICAFoAIWMCAFoAIWQCAFoAIWUIAGIAIWYBAFgAIWcCAFoAIWgBAFgAIQhECAAAAAFFCAAAAARGCAAAAARHCAAAAAFICAAAAAFJCAAAAAFKCAAAAAFLCABSACEAAAAAAAFpAQAAAAEBaUAAAAABBWkCAAAAAWoCAAAAAWsCAAAAAWwCAAAAAW0CAAAAAQAAAAAAAAAAAAAFaQgAAAABaggAAAABawgAAAABbAgAAAABbQgAAAABAAAAAAUVAAYWAAcXAAgYAAkZAAoAAAAAAAUVAAYWAAcXAAgYAAkZAAoAAAAFFQAQFgARFwASGAATGQAUAAAAAAAFFQAQFgARFwASGAATGQAUAAAABRUAGhYAGxcAHBgAHRkAHgAAAAAABRUAGhYAGxcAHBgAHRkAHgECAQIDAQUGAQYHAQcIAQkKAQoMAgsNAwwPAQ0RAg4SBBETARIUARMVAhoYBRsZCxwbDB0cDB4fDB8gDCAhDCEjDCIlAiMmDSQoDCUqAiYrDicsDCgtDCkuAioxDysyFSw0Fi01Fi44Fi85FjA6FjE8FjI-AjM_FzRBFjVDAjZEGDdFFjhGFjlHAjpKGTtLHw"
39
+ }
40
+
41
+ async function decodeBase64AsWasm(wasmBase64: string): Promise<WebAssembly.Module> {
42
+ const { Buffer } = await import('node:buffer')
43
+ const wasmArray = Buffer.from(wasmBase64, 'base64')
44
+ return new WebAssembly.Module(wasmArray)
45
+ }
46
+
47
+ config.compilerWasm = {
48
+ getRuntime: async () => await import("@prisma/client/runtime/query_compiler_fast_bg.sqlite.mjs"),
49
+
50
+ getQueryCompilerWasmModule: async () => {
51
+ const { wasm } = await import("@prisma/client/runtime/query_compiler_fast_bg.sqlite.wasm-base64.mjs")
52
+ return await decodeBase64AsWasm(wasm)
53
+ },
54
+
55
+ importName: "./query_compiler_fast_bg.js"
56
+ }
57
+
58
+
59
+
60
+ export type LogOptions<ClientOptions extends Prisma.PrismaClientOptions> =
61
+ 'log' extends keyof ClientOptions ? ClientOptions['log'] extends Array<Prisma.LogLevel | Prisma.LogDefinition> ? Prisma.GetEvents<ClientOptions['log']> : never : never
62
+
63
+ export interface PrismaClientConstructor {
64
+ /**
65
+ * ## Prisma Client
66
+ *
67
+ * Type-safe database client for TypeScript
68
+ * @example
69
+ * ```
70
+ * const prisma = new PrismaClient({
71
+ * adapter: new PrismaPg({ connectionString: process.env.DATABASE_URL })
72
+ * })
73
+ * // Fetch zero or more Sessions
74
+ * const sessions = await prisma.session.findMany()
75
+ * ```
76
+ *
77
+ * Read more in our [docs](https://pris.ly/d/client).
78
+ */
79
+
80
+ new <
81
+ Options extends Prisma.PrismaClientOptions = Prisma.PrismaClientOptions,
82
+ LogOpts extends LogOptions<Options> = LogOptions<Options>,
83
+ OmitOpts extends Prisma.PrismaClientOptions['omit'] = Options extends { omit: infer U } ? U : Prisma.PrismaClientOptions['omit'],
84
+ ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs
85
+ >(options: Prisma.Subset<Options, Prisma.PrismaClientOptions> ): PrismaClient<LogOpts, OmitOpts, ExtArgs>
86
+ }
87
+
88
+ /**
89
+ * ## Prisma Client
90
+ *
91
+ * Type-safe database client for TypeScript
92
+ * @example
93
+ * ```
94
+ * const prisma = new PrismaClient({
95
+ * adapter: new PrismaPg({ connectionString: process.env.DATABASE_URL })
96
+ * })
97
+ * // Fetch zero or more Sessions
98
+ * const sessions = await prisma.session.findMany()
99
+ * ```
100
+ *
101
+ * Read more in our [docs](https://pris.ly/d/client).
102
+ */
103
+
104
+ export interface PrismaClient<
105
+ in LogOpts extends Prisma.LogLevel = never,
106
+ in out OmitOpts extends Prisma.PrismaClientOptions['omit'] = undefined,
107
+ in out ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs
108
+ > {
109
+ [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['other'] }
110
+
111
+ $on<V extends LogOpts>(eventType: V, callback: (event: V extends 'query' ? Prisma.QueryEvent : Prisma.LogEvent) => void): PrismaClient;
112
+
113
+ /**
114
+ * Connect with the database
115
+ */
116
+ $connect(): runtime.Types.Utils.JsPromise<void>;
117
+
118
+ /**
119
+ * Disconnect from the database
120
+ */
121
+ $disconnect(): runtime.Types.Utils.JsPromise<void>;
122
+
123
+ /**
124
+ * Executes a prepared raw query and returns the number of affected rows.
125
+ * @example
126
+ * ```
127
+ * const result = await prisma.$executeRaw`UPDATE User SET cool = ${true} WHERE email = ${'user@email.com'};`
128
+ * ```
129
+ *
130
+ * Read more in our [docs](https://pris.ly/d/raw-queries).
131
+ */
132
+ $executeRaw<T = unknown>(query: TemplateStringsArray | Prisma.Sql, ...values: any[]): Prisma.PrismaPromise<number>;
133
+
134
+ /**
135
+ * Executes a raw query and returns the number of affected rows.
136
+ * Susceptible to SQL injections, see documentation.
137
+ * @example
138
+ * ```
139
+ * const result = await prisma.$executeRawUnsafe('UPDATE User SET cool = $1 WHERE email = $2 ;', true, 'user@email.com')
140
+ * ```
141
+ *
142
+ * Read more in our [docs](https://pris.ly/d/raw-queries).
143
+ */
144
+ $executeRawUnsafe<T = unknown>(query: string, ...values: any[]): Prisma.PrismaPromise<number>;
145
+
146
+ /**
147
+ * Performs a prepared raw query and returns the `SELECT` data.
148
+ * @example
149
+ * ```
150
+ * const result = await prisma.$queryRaw`SELECT * FROM User WHERE id = ${1} OR email = ${'user@email.com'};`
151
+ * ```
152
+ *
153
+ * Read more in our [docs](https://pris.ly/d/raw-queries).
154
+ */
155
+ $queryRaw<T = unknown>(query: TemplateStringsArray | Prisma.Sql, ...values: any[]): Prisma.PrismaPromise<T>;
156
+
157
+ /**
158
+ * Performs a raw query and returns the `SELECT` data.
159
+ * Susceptible to SQL injections, see documentation.
160
+ * @example
161
+ * ```
162
+ * const result = await prisma.$queryRawUnsafe('SELECT * FROM User WHERE id = $1 OR email = $2;', 1, 'user@email.com')
163
+ * ```
164
+ *
165
+ * Read more in our [docs](https://pris.ly/d/raw-queries).
166
+ */
167
+ $queryRawUnsafe<T = unknown>(query: string, ...values: any[]): Prisma.PrismaPromise<T>;
168
+
169
+
170
+ /**
171
+ * Allows the running of a sequence of read/write operations that are guaranteed to either succeed or fail as a whole.
172
+ * @example
173
+ * ```
174
+ * const [george, bob, alice] = await prisma.$transaction([
175
+ * prisma.user.create({ data: { name: 'George' } }),
176
+ * prisma.user.create({ data: { name: 'Bob' } }),
177
+ * prisma.user.create({ data: { name: 'Alice' } }),
178
+ * ])
179
+ * ```
180
+ *
181
+ * Read more in our [docs](https://www.prisma.io/docs/orm/prisma-client/queries/transactions).
182
+ */
183
+ $transaction<P extends Prisma.PrismaPromise<any>[]>(arg: [...P], options?: { isolationLevel?: Prisma.TransactionIsolationLevel }): runtime.Types.Utils.JsPromise<runtime.Types.Utils.UnwrapTuple<P>>
184
+
185
+ $transaction<R>(fn: (prisma: Omit<PrismaClient, runtime.ITXClientDenyList>) => runtime.Types.Utils.JsPromise<R>, options?: { maxWait?: number, timeout?: number, isolationLevel?: Prisma.TransactionIsolationLevel }): runtime.Types.Utils.JsPromise<R>
186
+
187
+ $extends: runtime.Types.Extensions.ExtendsHook<"extends", Prisma.TypeMapCb<OmitOpts>, ExtArgs, runtime.Types.Utils.Call<Prisma.TypeMapCb<OmitOpts>, {
188
+ extArgs: ExtArgs
189
+ }>>
190
+
191
+ /**
192
+ * `prisma.session`: Exposes CRUD operations for the **Session** model.
193
+ * Example usage:
194
+ * ```ts
195
+ * // Fetch zero or more Sessions
196
+ * const sessions = await prisma.session.findMany()
197
+ * ```
198
+ */
199
+ get session(): Prisma.SessionDelegate<ExtArgs, { omit: OmitOpts }>;
200
+
201
+ /**
202
+ * `prisma.image`: Exposes CRUD operations for the **Image** model.
203
+ * Example usage:
204
+ * ```ts
205
+ * // Fetch zero or more Images
206
+ * const images = await prisma.image.findMany()
207
+ * ```
208
+ */
209
+ get image(): Prisma.ImageDelegate<ExtArgs, { omit: OmitOpts }>;
210
+
211
+ /**
212
+ * `prisma.syncLog`: Exposes CRUD operations for the **SyncLog** model.
213
+ * Example usage:
214
+ * ```ts
215
+ * // Fetch zero or more SyncLogs
216
+ * const syncLogs = await prisma.syncLog.findMany()
217
+ * ```
218
+ */
219
+ get syncLog(): Prisma.SyncLogDelegate<ExtArgs, { omit: OmitOpts }>;
220
+ }
221
+
222
+ export function getPrismaClientClass(): PrismaClientConstructor {
223
+ return runtime.getPrismaClient(config) as unknown as PrismaClientConstructor
224
+ }