@yan162/changewayguard 6.8.25

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 (285) hide show
  1. package/LICENSE +21 -0
  2. package/OpenClaw-linux_Mac-Guide-zh.md +89 -0
  3. package/dashboard-dist/api/122.index.js +95 -0
  4. package/dashboard-dist/api/122.index.js.map +1 -0
  5. package/dashboard-dist/api/143.index.js +2734 -0
  6. package/dashboard-dist/api/143.index.js.map +1 -0
  7. package/dashboard-dist/api/154.index.js +4151 -0
  8. package/dashboard-dist/api/154.index.js.map +1 -0
  9. package/dashboard-dist/api/173.index.js +24112 -0
  10. package/dashboard-dist/api/173.index.js.map +1 -0
  11. package/dashboard-dist/api/217.index.js +44 -0
  12. package/dashboard-dist/api/217.index.js.map +1 -0
  13. package/dashboard-dist/api/222.index.js +90 -0
  14. package/dashboard-dist/api/222.index.js.map +1 -0
  15. package/dashboard-dist/api/280.index.js +213 -0
  16. package/dashboard-dist/api/280.index.js.map +1 -0
  17. package/dashboard-dist/api/369.index.js +115 -0
  18. package/dashboard-dist/api/369.index.js.map +1 -0
  19. package/dashboard-dist/api/374.index.js +1896 -0
  20. package/dashboard-dist/api/374.index.js.map +1 -0
  21. package/dashboard-dist/api/424.index.js +135 -0
  22. package/dashboard-dist/api/424.index.js.map +1 -0
  23. package/dashboard-dist/api/445.index.js +3562 -0
  24. package/dashboard-dist/api/445.index.js.map +1 -0
  25. package/dashboard-dist/api/555.index.js +496 -0
  26. package/dashboard-dist/api/555.index.js.map +1 -0
  27. package/dashboard-dist/api/573.index.js +806 -0
  28. package/dashboard-dist/api/573.index.js.map +1 -0
  29. package/dashboard-dist/api/580.index.js +1420 -0
  30. package/dashboard-dist/api/580.index.js.map +1 -0
  31. package/dashboard-dist/api/581.index.js +67 -0
  32. package/dashboard-dist/api/581.index.js.map +1 -0
  33. package/dashboard-dist/api/598.index.js +328 -0
  34. package/dashboard-dist/api/598.index.js.map +1 -0
  35. package/dashboard-dist/api/720.index.js +105 -0
  36. package/dashboard-dist/api/720.index.js.map +1 -0
  37. package/dashboard-dist/api/744.index.js +333 -0
  38. package/dashboard-dist/api/744.index.js.map +1 -0
  39. package/dashboard-dist/api/818.index.js +374 -0
  40. package/dashboard-dist/api/818.index.js.map +1 -0
  41. package/dashboard-dist/api/831.index.js +99 -0
  42. package/dashboard-dist/api/831.index.js.map +1 -0
  43. package/dashboard-dist/api/84.index.js +64 -0
  44. package/dashboard-dist/api/84.index.js.map +1 -0
  45. package/dashboard-dist/api/900.index.js +81 -0
  46. package/dashboard-dist/api/900.index.js.map +1 -0
  47. package/dashboard-dist/api/917.index.js +88 -0
  48. package/dashboard-dist/api/917.index.js.map +1 -0
  49. package/dashboard-dist/api/927.index.js +4250 -0
  50. package/dashboard-dist/api/927.index.js.map +1 -0
  51. package/dashboard-dist/api/948.index.js +64 -0
  52. package/dashboard-dist/api/948.index.js.map +1 -0
  53. package/dashboard-dist/api/982.index.js +67 -0
  54. package/dashboard-dist/api/982.index.js.map +1 -0
  55. package/dashboard-dist/api/99.index.js +1176 -0
  56. package/dashboard-dist/api/99.index.js.map +1 -0
  57. package/dashboard-dist/api/drizzle/sqlite/0000_short_captain_stacy.sql +70 -0
  58. package/dashboard-dist/api/drizzle/sqlite/0001_closed_magus.sql +10 -0
  59. package/dashboard-dist/api/drizzle/sqlite/0002_agent_capability_observation.sql +38 -0
  60. package/dashboard-dist/api/drizzle/sqlite/0003_auth_magic_link.sql +28 -0
  61. package/dashboard-dist/api/drizzle/sqlite/0004_static_scan_fields.sql +8 -0
  62. package/dashboard-dist/api/drizzle/sqlite/0005_gateway_activity.sql +24 -0
  63. package/dashboard-dist/api/drizzle/sqlite/0006_sour_marauders.sql +41 -0
  64. package/dashboard-dist/api/drizzle/sqlite/meta/0000_snapshot.json +460 -0
  65. package/dashboard-dist/api/drizzle/sqlite/meta/0001_snapshot.json +536 -0
  66. package/dashboard-dist/api/drizzle/sqlite/meta/0006_snapshot.json +1249 -0
  67. package/dashboard-dist/api/drizzle/sqlite/meta/_journal.json +55 -0
  68. package/dashboard-dist/api/index.js +28482 -0
  69. package/dashboard-dist/api/index.js.map +1 -0
  70. package/dashboard-dist/api/package.json +16 -0
  71. package/dashboard-dist/api/sourcemap-register.cjs +1 -0
  72. package/dashboard-dist/web/assets/index-BKUfzbIg.js +148 -0
  73. package/dashboard-dist/web/assets/index-rHRH99IQ.css +1 -0
  74. package/dashboard-dist/web/changeway-logo.png +0 -0
  75. package/dashboard-dist/web/favicon.svg +29 -0
  76. package/dashboard-dist/web/index.html +15 -0
  77. package/dashboard-dist/web/logo.svg +16 -0
  78. package/dist/agent/activation.d.ts +21 -0
  79. package/dist/agent/activation.d.ts.map +1 -0
  80. package/dist/agent/activation.js +94 -0
  81. package/dist/agent/activation.js.map +1 -0
  82. package/dist/agent/auth.d.ts +73 -0
  83. package/dist/agent/auth.d.ts.map +1 -0
  84. package/dist/agent/auth.js +363 -0
  85. package/dist/agent/auth.js.map +1 -0
  86. package/dist/agent/behavior-detector.d.ts +150 -0
  87. package/dist/agent/behavior-detector.d.ts.map +1 -0
  88. package/dist/agent/behavior-detector.js +559 -0
  89. package/dist/agent/behavior-detector.js.map +1 -0
  90. package/dist/agent/business-reporter.d.ts +114 -0
  91. package/dist/agent/business-reporter.d.ts.map +1 -0
  92. package/dist/agent/business-reporter.js +359 -0
  93. package/dist/agent/business-reporter.js.map +1 -0
  94. package/dist/agent/config-sync.d.ts +70 -0
  95. package/dist/agent/config-sync.d.ts.map +1 -0
  96. package/dist/agent/config-sync.js +133 -0
  97. package/dist/agent/config-sync.js.map +1 -0
  98. package/dist/agent/config.d.ts +98 -0
  99. package/dist/agent/config.d.ts.map +1 -0
  100. package/dist/agent/config.js +348 -0
  101. package/dist/agent/config.js.map +1 -0
  102. package/dist/agent/content-injection-scanner.d.ts +35 -0
  103. package/dist/agent/content-injection-scanner.d.ts.map +1 -0
  104. package/dist/agent/content-injection-scanner.js +270 -0
  105. package/dist/agent/content-injection-scanner.js.map +1 -0
  106. package/dist/agent/engine-log-writer.d.ts +6 -0
  107. package/dist/agent/engine-log-writer.d.ts.map +1 -0
  108. package/dist/agent/engine-log-writer.js +18 -0
  109. package/dist/agent/engine-log-writer.js.map +1 -0
  110. package/dist/agent/env.d.ts +19 -0
  111. package/dist/agent/env.d.ts.map +1 -0
  112. package/dist/agent/env.js +44 -0
  113. package/dist/agent/env.js.map +1 -0
  114. package/dist/agent/event-reporter.d.ts +87 -0
  115. package/dist/agent/event-reporter.d.ts.map +1 -0
  116. package/dist/agent/event-reporter.js +306 -0
  117. package/dist/agent/event-reporter.js.map +1 -0
  118. package/dist/agent/file-watcher.d.ts +50 -0
  119. package/dist/agent/file-watcher.d.ts.map +1 -0
  120. package/dist/agent/file-watcher.js +135 -0
  121. package/dist/agent/file-watcher.js.map +1 -0
  122. package/dist/agent/fs-utils.d.ts +22 -0
  123. package/dist/agent/fs-utils.d.ts.map +1 -0
  124. package/dist/agent/fs-utils.js +41 -0
  125. package/dist/agent/fs-utils.js.map +1 -0
  126. package/dist/agent/gateway-manager.d.ts +59 -0
  127. package/dist/agent/gateway-manager.d.ts.map +1 -0
  128. package/dist/agent/gateway-manager.js +583 -0
  129. package/dist/agent/gateway-manager.js.map +1 -0
  130. package/dist/agent/hook-types.d.ts +276 -0
  131. package/dist/agent/hook-types.d.ts.map +1 -0
  132. package/dist/agent/hook-types.js +51 -0
  133. package/dist/agent/hook-types.js.map +1 -0
  134. package/dist/agent/http-client.d.ts +19 -0
  135. package/dist/agent/http-client.d.ts.map +1 -0
  136. package/dist/agent/http-client.js +37 -0
  137. package/dist/agent/http-client.js.map +1 -0
  138. package/dist/agent/index.d.ts +8 -0
  139. package/dist/agent/index.d.ts.map +1 -0
  140. package/dist/agent/index.js +8 -0
  141. package/dist/agent/index.js.map +1 -0
  142. package/dist/agent/openclaw-hybrid-audit-changeway.js +1447 -0
  143. package/dist/agent/prompt-gate.d.ts +16 -0
  144. package/dist/agent/prompt-gate.d.ts.map +1 -0
  145. package/dist/agent/prompt-gate.js +58 -0
  146. package/dist/agent/prompt-gate.js.map +1 -0
  147. package/dist/agent/prompt-input.d.ts +9 -0
  148. package/dist/agent/prompt-input.d.ts.map +1 -0
  149. package/dist/agent/prompt-input.js +173 -0
  150. package/dist/agent/prompt-input.js.map +1 -0
  151. package/dist/agent/prompt-output.d.ts +4 -0
  152. package/dist/agent/prompt-output.d.ts.map +1 -0
  153. package/dist/agent/prompt-output.js +19 -0
  154. package/dist/agent/prompt-output.js.map +1 -0
  155. package/dist/agent/runner.d.ts +23 -0
  156. package/dist/agent/runner.d.ts.map +1 -0
  157. package/dist/agent/runner.js +165 -0
  158. package/dist/agent/runner.js.map +1 -0
  159. package/dist/agent/runtime-mode.d.ts +10 -0
  160. package/dist/agent/runtime-mode.d.ts.map +1 -0
  161. package/dist/agent/runtime-mode.js +19 -0
  162. package/dist/agent/runtime-mode.js.map +1 -0
  163. package/dist/agent/sanitizer.d.ts +10 -0
  164. package/dist/agent/sanitizer.d.ts.map +1 -0
  165. package/dist/agent/sanitizer.js +175 -0
  166. package/dist/agent/sanitizer.js.map +1 -0
  167. package/dist/agent/scan-activity.d.ts +19 -0
  168. package/dist/agent/scan-activity.d.ts.map +1 -0
  169. package/dist/agent/scan-activity.js +34 -0
  170. package/dist/agent/scan-activity.js.map +1 -0
  171. package/dist/agent/types.d.ts +177 -0
  172. package/dist/agent/types.d.ts.map +1 -0
  173. package/dist/agent/types.js +5 -0
  174. package/dist/agent/types.js.map +1 -0
  175. package/dist/agent/workspace-scanner.d.ts +35 -0
  176. package/dist/agent/workspace-scanner.d.ts.map +1 -0
  177. package/dist/agent/workspace-scanner.js +137 -0
  178. package/dist/agent/workspace-scanner.js.map +1 -0
  179. package/dist/dashboard-launcher.d.ts +52 -0
  180. package/dist/dashboard-launcher.d.ts.map +1 -0
  181. package/dist/dashboard-launcher.js +363 -0
  182. package/dist/dashboard-launcher.js.map +1 -0
  183. package/dist/gateway/activity.d.ts +52 -0
  184. package/dist/gateway/activity.d.ts.map +1 -0
  185. package/dist/gateway/activity.js +111 -0
  186. package/dist/gateway/activity.js.map +1 -0
  187. package/dist/gateway/config.d.ts +50 -0
  188. package/dist/gateway/config.d.ts.map +1 -0
  189. package/dist/gateway/config.js +200 -0
  190. package/dist/gateway/config.js.map +1 -0
  191. package/dist/gateway/handlers/anthropic.d.ts +12 -0
  192. package/dist/gateway/handlers/anthropic.d.ts.map +1 -0
  193. package/dist/gateway/handlers/anthropic.js +254 -0
  194. package/dist/gateway/handlers/anthropic.js.map +1 -0
  195. package/dist/gateway/handlers/gemini.d.ts +12 -0
  196. package/dist/gateway/handlers/gemini.d.ts.map +1 -0
  197. package/dist/gateway/handlers/gemini.js +101 -0
  198. package/dist/gateway/handlers/gemini.js.map +1 -0
  199. package/dist/gateway/handlers/models.d.ts +4 -0
  200. package/dist/gateway/handlers/models.d.ts.map +1 -0
  201. package/dist/gateway/handlers/models.js +36 -0
  202. package/dist/gateway/handlers/models.js.map +1 -0
  203. package/dist/gateway/handlers/openai.d.ts +16 -0
  204. package/dist/gateway/handlers/openai.d.ts.map +1 -0
  205. package/dist/gateway/handlers/openai.js +254 -0
  206. package/dist/gateway/handlers/openai.js.map +1 -0
  207. package/dist/gateway/index.d.ts +27 -0
  208. package/dist/gateway/index.d.ts.map +1 -0
  209. package/dist/gateway/index.js +290 -0
  210. package/dist/gateway/index.js.map +1 -0
  211. package/dist/gateway/mapping-store.d.ts +38 -0
  212. package/dist/gateway/mapping-store.d.ts.map +1 -0
  213. package/dist/gateway/mapping-store.js +74 -0
  214. package/dist/gateway/mapping-store.js.map +1 -0
  215. package/dist/gateway/restorer.d.ts +63 -0
  216. package/dist/gateway/restorer.d.ts.map +1 -0
  217. package/dist/gateway/restorer.js +284 -0
  218. package/dist/gateway/restorer.js.map +1 -0
  219. package/dist/gateway/sanitizer.d.ts +17 -0
  220. package/dist/gateway/sanitizer.d.ts.map +1 -0
  221. package/dist/gateway/sanitizer.js +228 -0
  222. package/dist/gateway/sanitizer.js.map +1 -0
  223. package/dist/gateway/types.d.ts +53 -0
  224. package/dist/gateway/types.d.ts.map +1 -0
  225. package/dist/gateway/types.js +5 -0
  226. package/dist/gateway/types.js.map +1 -0
  227. package/dist/index.d.ts +19 -0
  228. package/dist/index.d.ts.map +1 -0
  229. package/dist/index.js +2990 -0
  230. package/dist/index.js.map +1 -0
  231. package/dist/memory/index.d.ts +5 -0
  232. package/dist/memory/index.d.ts.map +1 -0
  233. package/dist/memory/index.js +5 -0
  234. package/dist/memory/index.js.map +1 -0
  235. package/dist/memory/store.d.ts +82 -0
  236. package/dist/memory/store.d.ts.map +1 -0
  237. package/dist/memory/store.js +194 -0
  238. package/dist/memory/store.js.map +1 -0
  239. package/dist/platform-client/index.d.ts +63 -0
  240. package/dist/platform-client/index.d.ts.map +1 -0
  241. package/dist/platform-client/index.js +294 -0
  242. package/dist/platform-client/index.js.map +1 -0
  243. package/dist/platform-client/types.d.ts +109 -0
  244. package/dist/platform-client/types.d.ts.map +1 -0
  245. package/dist/platform-client/types.js +3 -0
  246. package/dist/platform-client/types.js.map +1 -0
  247. package/dist/workspace-agents-guide.d.ts +22 -0
  248. package/dist/workspace-agents-guide.d.ts.map +1 -0
  249. package/dist/workspace-agents-guide.js +92 -0
  250. package/dist/workspace-agents-guide.js.map +1 -0
  251. package/dist/workspace-agents-sync.d.ts +24 -0
  252. package/dist/workspace-agents-sync.d.ts.map +1 -0
  253. package/dist/workspace-agents-sync.js +41 -0
  254. package/dist/workspace-agents-sync.js.map +1 -0
  255. package/dist/workspace-agents-watcher.d.ts +23 -0
  256. package/dist/workspace-agents-watcher.d.ts.map +1 -0
  257. package/dist/workspace-agents-watcher.js +152 -0
  258. package/dist/workspace-agents-watcher.js.map +1 -0
  259. package/dist/workspace-discovery.d.ts +11 -0
  260. package/dist/workspace-discovery.d.ts.map +1 -0
  261. package/dist/workspace-discovery.js +116 -0
  262. package/dist/workspace-discovery.js.map +1 -0
  263. package/gateway/package-lock.json +597 -0
  264. package/gateway/package.json +57 -0
  265. package/gateway/pnpm-lock.yaml +342 -0
  266. package/gateway/src/activity.ts +142 -0
  267. package/gateway/src/config.ts +246 -0
  268. package/gateway/src/handlers/anthropic.ts +328 -0
  269. package/gateway/src/handlers/gemini.ts +122 -0
  270. package/gateway/src/handlers/models.ts +45 -0
  271. package/gateway/src/handlers/openai.ts +333 -0
  272. package/gateway/src/index.ts +344 -0
  273. package/gateway/src/mapping-store.ts +88 -0
  274. package/gateway/src/restorer.ts +322 -0
  275. package/gateway/src/sanitizer.ts +298 -0
  276. package/gateway/src/types.ts +73 -0
  277. package/gateway/tsconfig.json +20 -0
  278. package/openclaw.plugin.json +86 -0
  279. package/package.json +74 -0
  280. package/samples/Untitled +1 -0
  281. package/samples/clean-email.txt +20 -0
  282. package/samples/test-document.md +53 -0
  283. package/samples/test-email-popup.txt +44 -0
  284. package/samples/test-email.txt +32 -0
  285. package/samples/test-webpage.html +51 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"99.index.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;;AC5EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;AACA;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;;;;;;;;;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAYA;AACA;;;;;;;;;;;;;AC5HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASA;AACA;;ACrFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AACA;;;;;;;;;;;;;;;;;;;;;;;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAWA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;AACA;;;;;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["../../../node_modules/.pnpm/drizzle-orm@0.36.4_@libsql+client@0.14.0_mysql2@3.22.3_postgres@3.4.9/node_modules/drizzle-orm/sqlite-core/foreign-keys.js","../../../node_modules/.pnpm/drizzle-orm@0.36.4_@libsql+client@0.14.0_mysql2@3.22.3_postgres@3.4.9/node_modules/drizzle-orm/sqlite-core/unique-constraint.js","../../../node_modules/.pnpm/drizzle-orm@0.36.4_@libsql+client@0.14.0_mysql2@3.22.3_postgres@3.4.9/node_modules/drizzle-orm/sqlite-core/columns/common.js","../../../node_modules/.pnpm/drizzle-orm@0.36.4_@libsql+client@0.14.0_mysql2@3.22.3_postgres@3.4.9/node_modules/drizzle-orm/sqlite-core/columns/integer.js","../../../node_modules/.pnpm/drizzle-orm@0.36.4_@libsql+client@0.14.0_mysql2@3.22.3_postgres@3.4.9/node_modules/drizzle-orm/sqlite-core/columns/real.js","../../../node_modules/.pnpm/drizzle-orm@0.36.4_@libsql+client@0.14.0_mysql2@3.22.3_postgres@3.4.9/node_modules/drizzle-orm/sqlite-core/columns/text.js","../../../node_modules/.pnpm/drizzle-orm@0.36.4_@libsql+client@0.14.0_mysql2@3.22.3_postgres@3.4.9/node_modules/drizzle-orm/sqlite-core/columns/blob.js","../../../node_modules/.pnpm/drizzle-orm@0.36.4_@libsql+client@0.14.0_mysql2@3.22.3_postgres@3.4.9/node_modules/drizzle-orm/sqlite-core/columns/custom.js","../../../node_modules/.pnpm/drizzle-orm@0.36.4_@libsql+client@0.14.0_mysql2@3.22.3_postgres@3.4.9/node_modules/drizzle-orm/sqlite-core/columns/numeric.js","../../../node_modules/.pnpm/drizzle-orm@0.36.4_@libsql+client@0.14.0_mysql2@3.22.3_postgres@3.4.9/node_modules/drizzle-orm/sqlite-core/columns/all.js","../../../node_modules/.pnpm/drizzle-orm@0.36.4_@libsql+client@0.14.0_mysql2@3.22.3_postgres@3.4.9/node_modules/drizzle-orm/sqlite-core/table.js","../../../node_modules/.pnpm/drizzle-orm@0.36.4_@libsql+client@0.14.0_mysql2@3.22.3_postgres@3.4.9/node_modules/drizzle-orm/utils.js","../../../node_modules/.pnpm/drizzle-orm@0.36.4_@libsql+client@0.14.0_mysql2@3.22.3_postgres@3.4.9/node_modules/drizzle-orm/sqlite-core/indexes.js","../../../packages/db/dist/schema/sqlite.js"],"sourcesContent":["import { entityKind } from \"../entity.js\";\nimport { TableName } from \"../table.utils.js\";\nclass ForeignKeyBuilder {\n static [entityKind] = \"SQLiteForeignKeyBuilder\";\n /** @internal */\n reference;\n /** @internal */\n _onUpdate;\n /** @internal */\n _onDelete;\n constructor(config, actions) {\n this.reference = () => {\n const { name, columns, foreignColumns } = config();\n return { name, columns, foreignTable: foreignColumns[0].table, foreignColumns };\n };\n if (actions) {\n this._onUpdate = actions.onUpdate;\n this._onDelete = actions.onDelete;\n }\n }\n onUpdate(action) {\n this._onUpdate = action;\n return this;\n }\n onDelete(action) {\n this._onDelete = action;\n return this;\n }\n /** @internal */\n build(table) {\n return new ForeignKey(table, this);\n }\n}\nclass ForeignKey {\n constructor(table, builder) {\n this.table = table;\n this.reference = builder.reference;\n this.onUpdate = builder._onUpdate;\n this.onDelete = builder._onDelete;\n }\n static [entityKind] = \"SQLiteForeignKey\";\n reference;\n onUpdate;\n onDelete;\n getName() {\n const { name, columns, foreignColumns } = this.reference();\n const columnNames = columns.map((column) => column.name);\n const foreignColumnNames = foreignColumns.map((column) => column.name);\n const chunks = [\n this.table[TableName],\n ...columnNames,\n foreignColumns[0].table[TableName],\n ...foreignColumnNames\n ];\n return name ?? `${chunks.join(\"_\")}_fk`;\n }\n}\nfunction foreignKey(config) {\n function mappedConfig() {\n if (typeof config === \"function\") {\n const { name, columns, foreignColumns } = config();\n return {\n name,\n columns,\n foreignColumns\n };\n }\n return config;\n }\n return new ForeignKeyBuilder(mappedConfig);\n}\nexport {\n ForeignKey,\n ForeignKeyBuilder,\n foreignKey\n};\n//# sourceMappingURL=foreign-keys.js.map","import { entityKind } from \"../entity.js\";\nimport { TableName } from \"../table.utils.js\";\nfunction uniqueKeyName(table, columns) {\n return `${table[TableName]}_${columns.join(\"_\")}_unique`;\n}\nfunction unique(name) {\n return new UniqueOnConstraintBuilder(name);\n}\nclass UniqueConstraintBuilder {\n constructor(columns, name) {\n this.name = name;\n this.columns = columns;\n }\n static [entityKind] = \"SQLiteUniqueConstraintBuilder\";\n /** @internal */\n columns;\n /** @internal */\n build(table) {\n return new UniqueConstraint(table, this.columns, this.name);\n }\n}\nclass UniqueOnConstraintBuilder {\n static [entityKind] = \"SQLiteUniqueOnConstraintBuilder\";\n /** @internal */\n name;\n constructor(name) {\n this.name = name;\n }\n on(...columns) {\n return new UniqueConstraintBuilder(columns, this.name);\n }\n}\nclass UniqueConstraint {\n constructor(table, columns, name) {\n this.table = table;\n this.columns = columns;\n this.name = name ?? uniqueKeyName(this.table, this.columns.map((column) => column.name));\n }\n static [entityKind] = \"SQLiteUniqueConstraint\";\n columns;\n name;\n getName() {\n return this.name;\n }\n}\nexport {\n UniqueConstraint,\n UniqueConstraintBuilder,\n UniqueOnConstraintBuilder,\n unique,\n uniqueKeyName\n};\n//# sourceMappingURL=unique-constraint.js.map","import { ColumnBuilder } from \"../../column-builder.js\";\nimport { Column } from \"../../column.js\";\nimport { entityKind } from \"../../entity.js\";\nimport { ForeignKeyBuilder } from \"../foreign-keys.js\";\nimport { uniqueKeyName } from \"../unique-constraint.js\";\nclass SQLiteColumnBuilder extends ColumnBuilder {\n static [entityKind] = \"SQLiteColumnBuilder\";\n foreignKeyConfigs = [];\n references(ref, actions = {}) {\n this.foreignKeyConfigs.push({ ref, actions });\n return this;\n }\n unique(name) {\n this.config.isUnique = true;\n this.config.uniqueName = name;\n return this;\n }\n generatedAlwaysAs(as, config) {\n this.config.generated = {\n as,\n type: \"always\",\n mode: config?.mode ?? \"virtual\"\n };\n return this;\n }\n /** @internal */\n buildForeignKeys(column, table) {\n return this.foreignKeyConfigs.map(({ ref, actions }) => {\n return ((ref2, actions2) => {\n const builder = new ForeignKeyBuilder(() => {\n const foreignColumn = ref2();\n return { columns: [column], foreignColumns: [foreignColumn] };\n });\n if (actions2.onUpdate) {\n builder.onUpdate(actions2.onUpdate);\n }\n if (actions2.onDelete) {\n builder.onDelete(actions2.onDelete);\n }\n return builder.build(table);\n })(ref, actions);\n });\n }\n}\nclass SQLiteColumn extends Column {\n constructor(table, config) {\n if (!config.uniqueName) {\n config.uniqueName = uniqueKeyName(table, [config.name]);\n }\n super(table, config);\n this.table = table;\n }\n static [entityKind] = \"SQLiteColumn\";\n}\nexport {\n SQLiteColumn,\n SQLiteColumnBuilder\n};\n//# sourceMappingURL=common.js.map","import { entityKind } from \"../../entity.js\";\nimport { sql } from \"../../sql/sql.js\";\nimport { getColumnNameAndConfig } from \"../../utils.js\";\nimport { SQLiteColumn, SQLiteColumnBuilder } from \"./common.js\";\nclass SQLiteBaseIntegerBuilder extends SQLiteColumnBuilder {\n static [entityKind] = \"SQLiteBaseIntegerBuilder\";\n constructor(name, dataType, columnType) {\n super(name, dataType, columnType);\n this.config.autoIncrement = false;\n }\n primaryKey(config) {\n if (config?.autoIncrement) {\n this.config.autoIncrement = true;\n }\n this.config.hasDefault = true;\n return super.primaryKey();\n }\n}\nclass SQLiteBaseInteger extends SQLiteColumn {\n static [entityKind] = \"SQLiteBaseInteger\";\n autoIncrement = this.config.autoIncrement;\n getSQLType() {\n return \"integer\";\n }\n}\nclass SQLiteIntegerBuilder extends SQLiteBaseIntegerBuilder {\n static [entityKind] = \"SQLiteIntegerBuilder\";\n constructor(name) {\n super(name, \"number\", \"SQLiteInteger\");\n }\n build(table) {\n return new SQLiteInteger(\n table,\n this.config\n );\n }\n}\nclass SQLiteInteger extends SQLiteBaseInteger {\n static [entityKind] = \"SQLiteInteger\";\n}\nclass SQLiteTimestampBuilder extends SQLiteBaseIntegerBuilder {\n static [entityKind] = \"SQLiteTimestampBuilder\";\n constructor(name, mode) {\n super(name, \"date\", \"SQLiteTimestamp\");\n this.config.mode = mode;\n }\n /**\n * @deprecated Use `default()` with your own expression instead.\n *\n * Adds `DEFAULT (cast((julianday('now') - 2440587.5)*86400000 as integer))` to the column, which is the current epoch timestamp in milliseconds.\n */\n defaultNow() {\n return this.default(sql`(cast((julianday('now') - 2440587.5)*86400000 as integer))`);\n }\n build(table) {\n return new SQLiteTimestamp(\n table,\n this.config\n );\n }\n}\nclass SQLiteTimestamp extends SQLiteBaseInteger {\n static [entityKind] = \"SQLiteTimestamp\";\n mode = this.config.mode;\n mapFromDriverValue(value) {\n if (this.config.mode === \"timestamp\") {\n return new Date(value * 1e3);\n }\n return new Date(value);\n }\n mapToDriverValue(value) {\n const unix = value.getTime();\n if (this.config.mode === \"timestamp\") {\n return Math.floor(unix / 1e3);\n }\n return unix;\n }\n}\nclass SQLiteBooleanBuilder extends SQLiteBaseIntegerBuilder {\n static [entityKind] = \"SQLiteBooleanBuilder\";\n constructor(name, mode) {\n super(name, \"boolean\", \"SQLiteBoolean\");\n this.config.mode = mode;\n }\n build(table) {\n return new SQLiteBoolean(\n table,\n this.config\n );\n }\n}\nclass SQLiteBoolean extends SQLiteBaseInteger {\n static [entityKind] = \"SQLiteBoolean\";\n mode = this.config.mode;\n mapFromDriverValue(value) {\n return Number(value) === 1;\n }\n mapToDriverValue(value) {\n return value ? 1 : 0;\n }\n}\nfunction integer(a, b) {\n const { name, config } = getColumnNameAndConfig(a, b);\n if (config?.mode === \"timestamp\" || config?.mode === \"timestamp_ms\") {\n return new SQLiteTimestampBuilder(name, config.mode);\n }\n if (config?.mode === \"boolean\") {\n return new SQLiteBooleanBuilder(name, config.mode);\n }\n return new SQLiteIntegerBuilder(name);\n}\nconst int = integer;\nexport {\n SQLiteBaseInteger,\n SQLiteBaseIntegerBuilder,\n SQLiteBoolean,\n SQLiteBooleanBuilder,\n SQLiteInteger,\n SQLiteIntegerBuilder,\n SQLiteTimestamp,\n SQLiteTimestampBuilder,\n int,\n integer\n};\n//# sourceMappingURL=integer.js.map","import { entityKind } from \"../../entity.js\";\nimport { SQLiteColumn, SQLiteColumnBuilder } from \"./common.js\";\nclass SQLiteRealBuilder extends SQLiteColumnBuilder {\n static [entityKind] = \"SQLiteRealBuilder\";\n constructor(name) {\n super(name, \"number\", \"SQLiteReal\");\n }\n /** @internal */\n build(table) {\n return new SQLiteReal(table, this.config);\n }\n}\nclass SQLiteReal extends SQLiteColumn {\n static [entityKind] = \"SQLiteReal\";\n getSQLType() {\n return \"real\";\n }\n}\nfunction real(name) {\n return new SQLiteRealBuilder(name ?? \"\");\n}\nexport {\n SQLiteReal,\n SQLiteRealBuilder,\n real\n};\n//# sourceMappingURL=real.js.map","import { entityKind } from \"../../entity.js\";\nimport { getColumnNameAndConfig } from \"../../utils.js\";\nimport { SQLiteColumn, SQLiteColumnBuilder } from \"./common.js\";\nclass SQLiteTextBuilder extends SQLiteColumnBuilder {\n static [entityKind] = \"SQLiteTextBuilder\";\n constructor(name, config) {\n super(name, \"string\", \"SQLiteText\");\n this.config.enumValues = config.enum;\n this.config.length = config.length;\n }\n /** @internal */\n build(table) {\n return new SQLiteText(table, this.config);\n }\n}\nclass SQLiteText extends SQLiteColumn {\n static [entityKind] = \"SQLiteText\";\n enumValues = this.config.enumValues;\n length = this.config.length;\n constructor(table, config) {\n super(table, config);\n }\n getSQLType() {\n return `text${this.config.length ? `(${this.config.length})` : \"\"}`;\n }\n}\nclass SQLiteTextJsonBuilder extends SQLiteColumnBuilder {\n static [entityKind] = \"SQLiteTextJsonBuilder\";\n constructor(name) {\n super(name, \"json\", \"SQLiteTextJson\");\n }\n /** @internal */\n build(table) {\n return new SQLiteTextJson(\n table,\n this.config\n );\n }\n}\nclass SQLiteTextJson extends SQLiteColumn {\n static [entityKind] = \"SQLiteTextJson\";\n getSQLType() {\n return \"text\";\n }\n mapFromDriverValue(value) {\n return JSON.parse(value);\n }\n mapToDriverValue(value) {\n return JSON.stringify(value);\n }\n}\nfunction text(a, b = {}) {\n const { name, config } = getColumnNameAndConfig(a, b);\n if (config.mode === \"json\") {\n return new SQLiteTextJsonBuilder(name);\n }\n return new SQLiteTextBuilder(name, config);\n}\nexport {\n SQLiteText,\n SQLiteTextBuilder,\n SQLiteTextJson,\n SQLiteTextJsonBuilder,\n text\n};\n//# sourceMappingURL=text.js.map","import { entityKind } from \"../../entity.js\";\nimport { getColumnNameAndConfig } from \"../../utils.js\";\nimport { SQLiteColumn, SQLiteColumnBuilder } from \"./common.js\";\nclass SQLiteBigIntBuilder extends SQLiteColumnBuilder {\n static [entityKind] = \"SQLiteBigIntBuilder\";\n constructor(name) {\n super(name, \"bigint\", \"SQLiteBigInt\");\n }\n /** @internal */\n build(table) {\n return new SQLiteBigInt(table, this.config);\n }\n}\nclass SQLiteBigInt extends SQLiteColumn {\n static [entityKind] = \"SQLiteBigInt\";\n getSQLType() {\n return \"blob\";\n }\n mapFromDriverValue(value) {\n return BigInt(Buffer.isBuffer(value) ? value.toString() : String.fromCodePoint(...value));\n }\n mapToDriverValue(value) {\n return Buffer.from(value.toString());\n }\n}\nclass SQLiteBlobJsonBuilder extends SQLiteColumnBuilder {\n static [entityKind] = \"SQLiteBlobJsonBuilder\";\n constructor(name) {\n super(name, \"json\", \"SQLiteBlobJson\");\n }\n /** @internal */\n build(table) {\n return new SQLiteBlobJson(\n table,\n this.config\n );\n }\n}\nclass SQLiteBlobJson extends SQLiteColumn {\n static [entityKind] = \"SQLiteBlobJson\";\n getSQLType() {\n return \"blob\";\n }\n mapFromDriverValue(value) {\n return JSON.parse(Buffer.isBuffer(value) ? value.toString() : String.fromCodePoint(...value));\n }\n mapToDriverValue(value) {\n return Buffer.from(JSON.stringify(value));\n }\n}\nclass SQLiteBlobBufferBuilder extends SQLiteColumnBuilder {\n static [entityKind] = \"SQLiteBlobBufferBuilder\";\n constructor(name) {\n super(name, \"buffer\", \"SQLiteBlobBuffer\");\n }\n /** @internal */\n build(table) {\n return new SQLiteBlobBuffer(table, this.config);\n }\n}\nclass SQLiteBlobBuffer extends SQLiteColumn {\n static [entityKind] = \"SQLiteBlobBuffer\";\n getSQLType() {\n return \"blob\";\n }\n}\nfunction blob(a, b) {\n const { name, config } = getColumnNameAndConfig(a, b);\n if (config?.mode === \"json\") {\n return new SQLiteBlobJsonBuilder(name);\n }\n if (config?.mode === \"bigint\") {\n return new SQLiteBigIntBuilder(name);\n }\n return new SQLiteBlobBufferBuilder(name);\n}\nexport {\n SQLiteBigInt,\n SQLiteBigIntBuilder,\n SQLiteBlobBuffer,\n SQLiteBlobBufferBuilder,\n SQLiteBlobJson,\n SQLiteBlobJsonBuilder,\n blob\n};\n//# sourceMappingURL=blob.js.map","import { entityKind } from \"../../entity.js\";\nimport { getColumnNameAndConfig } from \"../../utils.js\";\nimport { SQLiteColumn, SQLiteColumnBuilder } from \"./common.js\";\nclass SQLiteCustomColumnBuilder extends SQLiteColumnBuilder {\n static [entityKind] = \"SQLiteCustomColumnBuilder\";\n constructor(name, fieldConfig, customTypeParams) {\n super(name, \"custom\", \"SQLiteCustomColumn\");\n this.config.fieldConfig = fieldConfig;\n this.config.customTypeParams = customTypeParams;\n }\n /** @internal */\n build(table) {\n return new SQLiteCustomColumn(\n table,\n this.config\n );\n }\n}\nclass SQLiteCustomColumn extends SQLiteColumn {\n static [entityKind] = \"SQLiteCustomColumn\";\n sqlName;\n mapTo;\n mapFrom;\n constructor(table, config) {\n super(table, config);\n this.sqlName = config.customTypeParams.dataType(config.fieldConfig);\n this.mapTo = config.customTypeParams.toDriver;\n this.mapFrom = config.customTypeParams.fromDriver;\n }\n getSQLType() {\n return this.sqlName;\n }\n mapFromDriverValue(value) {\n return typeof this.mapFrom === \"function\" ? this.mapFrom(value) : value;\n }\n mapToDriverValue(value) {\n return typeof this.mapTo === \"function\" ? this.mapTo(value) : value;\n }\n}\nfunction customType(customTypeParams) {\n return (a, b) => {\n const { name, config } = getColumnNameAndConfig(a, b);\n return new SQLiteCustomColumnBuilder(\n name,\n config,\n customTypeParams\n );\n };\n}\nexport {\n SQLiteCustomColumn,\n SQLiteCustomColumnBuilder,\n customType\n};\n//# sourceMappingURL=custom.js.map","import { entityKind } from \"../../entity.js\";\nimport { SQLiteColumn, SQLiteColumnBuilder } from \"./common.js\";\nclass SQLiteNumericBuilder extends SQLiteColumnBuilder {\n static [entityKind] = \"SQLiteNumericBuilder\";\n constructor(name) {\n super(name, \"string\", \"SQLiteNumeric\");\n }\n /** @internal */\n build(table) {\n return new SQLiteNumeric(\n table,\n this.config\n );\n }\n}\nclass SQLiteNumeric extends SQLiteColumn {\n static [entityKind] = \"SQLiteNumeric\";\n getSQLType() {\n return \"numeric\";\n }\n}\nfunction numeric(name) {\n return new SQLiteNumericBuilder(name ?? \"\");\n}\nexport {\n SQLiteNumeric,\n SQLiteNumericBuilder,\n numeric\n};\n//# sourceMappingURL=numeric.js.map","import { blob } from \"./blob.js\";\nimport { customType } from \"./custom.js\";\nimport { integer } from \"./integer.js\";\nimport { numeric } from \"./numeric.js\";\nimport { real } from \"./real.js\";\nimport { text } from \"./text.js\";\nfunction getSQLiteColumnBuilders() {\n return {\n blob,\n customType,\n integer,\n numeric,\n real,\n text\n };\n}\nexport {\n getSQLiteColumnBuilders\n};\n//# sourceMappingURL=all.js.map","import { entityKind } from \"../entity.js\";\nimport { Table } from \"../table.js\";\nimport { getSQLiteColumnBuilders } from \"./columns/all.js\";\nconst InlineForeignKeys = Symbol.for(\"drizzle:SQLiteInlineForeignKeys\");\nclass SQLiteTable extends Table {\n static [entityKind] = \"SQLiteTable\";\n /** @internal */\n static Symbol = Object.assign({}, Table.Symbol, {\n InlineForeignKeys\n });\n /** @internal */\n [Table.Symbol.Columns];\n /** @internal */\n [InlineForeignKeys] = [];\n /** @internal */\n [Table.Symbol.ExtraConfigBuilder] = void 0;\n}\nfunction sqliteTableBase(name, columns, extraConfig, schema, baseName = name) {\n const rawTable = new SQLiteTable(name, schema, baseName);\n const parsedColumns = typeof columns === \"function\" ? columns(getSQLiteColumnBuilders()) : columns;\n const builtColumns = Object.fromEntries(\n Object.entries(parsedColumns).map(([name2, colBuilderBase]) => {\n const colBuilder = colBuilderBase;\n colBuilder.setName(name2);\n const column = colBuilder.build(rawTable);\n rawTable[InlineForeignKeys].push(...colBuilder.buildForeignKeys(column, rawTable));\n return [name2, column];\n })\n );\n const table = Object.assign(rawTable, builtColumns);\n table[Table.Symbol.Columns] = builtColumns;\n table[Table.Symbol.ExtraConfigColumns] = builtColumns;\n if (extraConfig) {\n table[SQLiteTable.Symbol.ExtraConfigBuilder] = extraConfig;\n }\n return table;\n}\nconst sqliteTable = (name, columns, extraConfig) => {\n return sqliteTableBase(name, columns, extraConfig);\n};\nfunction sqliteTableCreator(customizeTableName) {\n return (name, columns, extraConfig) => {\n return sqliteTableBase(customizeTableName(name), columns, extraConfig, void 0, name);\n };\n}\nexport {\n InlineForeignKeys,\n SQLiteTable,\n sqliteTable,\n sqliteTableCreator\n};\n//# sourceMappingURL=table.js.map","import { Column } from \"./column.js\";\nimport { is } from \"./entity.js\";\nimport { Param, SQL, View } from \"./sql/sql.js\";\nimport { Subquery } from \"./subquery.js\";\nimport { getTableName, Table } from \"./table.js\";\nimport { ViewBaseConfig } from \"./view-common.js\";\nfunction mapResultRow(columns, row, joinsNotNullableMap) {\n const nullifyMap = {};\n const result = columns.reduce(\n (result2, { path, field }, columnIndex) => {\n let decoder;\n if (is(field, Column)) {\n decoder = field;\n } else if (is(field, SQL)) {\n decoder = field.decoder;\n } else {\n decoder = field.sql.decoder;\n }\n let node = result2;\n for (const [pathChunkIndex, pathChunk] of path.entries()) {\n if (pathChunkIndex < path.length - 1) {\n if (!(pathChunk in node)) {\n node[pathChunk] = {};\n }\n node = node[pathChunk];\n } else {\n const rawValue = row[columnIndex];\n const value = node[pathChunk] = rawValue === null ? null : decoder.mapFromDriverValue(rawValue);\n if (joinsNotNullableMap && is(field, Column) && path.length === 2) {\n const objectName = path[0];\n if (!(objectName in nullifyMap)) {\n nullifyMap[objectName] = value === null ? getTableName(field.table) : false;\n } else if (typeof nullifyMap[objectName] === \"string\" && nullifyMap[objectName] !== getTableName(field.table)) {\n nullifyMap[objectName] = false;\n }\n }\n }\n }\n return result2;\n },\n {}\n );\n if (joinsNotNullableMap && Object.keys(nullifyMap).length > 0) {\n for (const [objectName, tableName] of Object.entries(nullifyMap)) {\n if (typeof tableName === \"string\" && !joinsNotNullableMap[tableName]) {\n result[objectName] = null;\n }\n }\n }\n return result;\n}\nfunction orderSelectedFields(fields, pathPrefix) {\n return Object.entries(fields).reduce((result, [name, field]) => {\n if (typeof name !== \"string\") {\n return result;\n }\n const newPath = pathPrefix ? [...pathPrefix, name] : [name];\n if (is(field, Column) || is(field, SQL) || is(field, SQL.Aliased)) {\n result.push({ path: newPath, field });\n } else if (is(field, Table)) {\n result.push(...orderSelectedFields(field[Table.Symbol.Columns], newPath));\n } else {\n result.push(...orderSelectedFields(field, newPath));\n }\n return result;\n }, []);\n}\nfunction haveSameKeys(left, right) {\n const leftKeys = Object.keys(left);\n const rightKeys = Object.keys(right);\n if (leftKeys.length !== rightKeys.length) {\n return false;\n }\n for (const [index, key] of leftKeys.entries()) {\n if (key !== rightKeys[index]) {\n return false;\n }\n }\n return true;\n}\nfunction mapUpdateSet(table, values) {\n const entries = Object.entries(values).filter(([, value]) => value !== void 0).map(([key, value]) => {\n if (is(value, SQL) || is(value, Column)) {\n return [key, value];\n } else {\n return [key, new Param(value, table[Table.Symbol.Columns][key])];\n }\n });\n if (entries.length === 0) {\n throw new Error(\"No values to set\");\n }\n return Object.fromEntries(entries);\n}\nfunction applyMixins(baseClass, extendedClasses) {\n for (const extendedClass of extendedClasses) {\n for (const name of Object.getOwnPropertyNames(extendedClass.prototype)) {\n if (name === \"constructor\")\n continue;\n Object.defineProperty(\n baseClass.prototype,\n name,\n Object.getOwnPropertyDescriptor(extendedClass.prototype, name) || /* @__PURE__ */ Object.create(null)\n );\n }\n }\n}\nfunction getTableColumns(table) {\n return table[Table.Symbol.Columns];\n}\nfunction getTableLikeName(table) {\n return is(table, Subquery) ? table._.alias : is(table, View) ? table[ViewBaseConfig].name : is(table, SQL) ? void 0 : table[Table.Symbol.IsAlias] ? table[Table.Symbol.Name] : table[Table.Symbol.BaseName];\n}\nfunction getColumnNameAndConfig(a, b) {\n return {\n name: typeof a === \"string\" && a.length > 0 ? a : \"\",\n config: typeof a === \"object\" ? a : b\n };\n}\nconst _ = {};\nconst __ = {};\nfunction isConfig(data) {\n if (typeof data !== \"object\" || data === null)\n return false;\n if (data.constructor.name !== \"Object\")\n return false;\n if (\"logger\" in data) {\n const type = typeof data[\"logger\"];\n if (type !== \"boolean\" && (type !== \"object\" || typeof data[\"logger\"][\"logQuery\"] !== \"function\") && type !== \"undefined\")\n return false;\n return true;\n }\n if (\"schema\" in data) {\n const type = typeof data[\"logger\"];\n if (type !== \"object\" && type !== \"undefined\")\n return false;\n return true;\n }\n if (\"casing\" in data) {\n const type = typeof data[\"logger\"];\n if (type !== \"string\" && type !== \"undefined\")\n return false;\n return true;\n }\n if (\"mode\" in data) {\n if (data[\"mode\"] !== \"default\" || data[\"mode\"] !== \"planetscale\" || data[\"mode\"] !== void 0)\n return false;\n return true;\n }\n if (\"connection\" in data) {\n const type = typeof data[\"connection\"];\n if (type !== \"string\" && type !== \"object\" && type !== \"undefined\")\n return false;\n return true;\n }\n if (\"client\" in data) {\n const type = typeof data[\"client\"];\n if (type !== \"object\" && type !== \"function\" && type !== \"undefined\")\n return false;\n return true;\n }\n if (Object.keys(data).length === 0)\n return true;\n return false;\n}\nexport {\n applyMixins,\n getColumnNameAndConfig,\n getTableColumns,\n getTableLikeName,\n haveSameKeys,\n isConfig,\n mapResultRow,\n mapUpdateSet,\n orderSelectedFields\n};\n//# sourceMappingURL=utils.js.map","import { entityKind } from \"../entity.js\";\nclass IndexBuilderOn {\n constructor(name, unique) {\n this.name = name;\n this.unique = unique;\n }\n static [entityKind] = \"SQLiteIndexBuilderOn\";\n on(...columns) {\n return new IndexBuilder(this.name, columns, this.unique);\n }\n}\nclass IndexBuilder {\n static [entityKind] = \"SQLiteIndexBuilder\";\n /** @internal */\n config;\n constructor(name, columns, unique) {\n this.config = {\n name,\n columns,\n unique,\n where: void 0\n };\n }\n /**\n * Condition for partial index.\n */\n where(condition) {\n this.config.where = condition;\n return this;\n }\n /** @internal */\n build(table) {\n return new Index(this.config, table);\n }\n}\nclass Index {\n static [entityKind] = \"SQLiteIndex\";\n config;\n constructor(config, table) {\n this.config = { ...config, table };\n }\n}\nfunction index(name) {\n return new IndexBuilderOn(name, false);\n}\nfunction uniqueIndex(name) {\n return new IndexBuilderOn(name, true);\n}\nexport {\n Index,\n IndexBuilder,\n IndexBuilderOn,\n index,\n uniqueIndex\n};\n//# sourceMappingURL=indexes.js.map","import { sqliteTable, text, integer, real, index } from \"drizzle-orm/sqlite-core\";\n// ─── Settings ─────────────────────────────────────────────────\nexport const settings = sqliteTable(\"settings\", {\n key: text(\"key\").primaryKey(),\n value: text(\"value\").notNull(),\n updatedAt: text(\"updated_at\").notNull().$defaultFn(() => new Date().toISOString()),\n});\n// ─── Agents ─────────────────────────────────────────────────────\nexport const agents = sqliteTable(\"agents\", {\n id: text(\"id\").primaryKey().$defaultFn(() => crypto.randomUUID()),\n tenantId: text(\"tenant_id\").notNull().default(\"default\"),\n name: text(\"name\").notNull(),\n description: text(\"description\"),\n provider: text(\"provider\").notNull().default(\"custom\"),\n status: text(\"status\").notNull().default(\"inactive\"),\n lastSeenAt: text(\"last_seen_at\"),\n metadata: text(\"metadata\", { mode: \"json\" }).notNull().default({}),\n createdAt: text(\"created_at\").notNull().$defaultFn(() => new Date().toISOString()),\n updatedAt: text(\"updated_at\").notNull().$defaultFn(() => new Date().toISOString()),\n}, (table) => ({\n statusIdx: index(\"idx_agents_status\").on(table.status),\n tenantIdIdx: index(\"idx_agents_tenant_id\").on(table.tenantId),\n}));\n// ─── Scanner Definitions ────────────────────────────────────────\nexport const scannerDefinitions = sqliteTable(\"scanner_definitions\", {\n id: text(\"id\").primaryKey().$defaultFn(() => crypto.randomUUID()),\n tenantId: text(\"tenant_id\").notNull().default(\"default\"),\n scannerId: text(\"scanner_id\").notNull(),\n name: text(\"name\").notNull(),\n description: text(\"description\").notNull(),\n config: text(\"config\", { mode: \"json\" }).notNull().default({}),\n isEnabled: integer(\"is_enabled\", { mode: \"boolean\" }).notNull().default(true),\n isDefault: integer(\"is_default\", { mode: \"boolean\" }).notNull().default(false),\n}, (table) => ({\n scannerIdIdx: index(\"idx_scanner_defs_scanner_id\").on(table.scannerId),\n tenantIdIdx: index(\"idx_scanner_defs_tenant_id\").on(table.tenantId),\n}));\n// ─── Policies ───────────────────────────────────────────────────\nexport const policies = sqliteTable(\"policies\", {\n id: text(\"id\").primaryKey().$defaultFn(() => crypto.randomUUID()),\n tenantId: text(\"tenant_id\").notNull().default(\"default\"),\n name: text(\"name\").notNull(),\n description: text(\"description\"),\n scannerIds: text(\"scanner_ids\", { mode: \"json\" }).notNull().default([]),\n action: text(\"action\").notNull().default(\"log\"),\n sensitivityThreshold: real(\"sensitivity_threshold\").notNull().default(0.5),\n isEnabled: integer(\"is_enabled\", { mode: \"boolean\" }).notNull().default(true),\n createdAt: text(\"created_at\").notNull().$defaultFn(() => new Date().toISOString()),\n updatedAt: text(\"updated_at\").notNull().$defaultFn(() => new Date().toISOString()),\n}, (table) => ({\n tenantIdIdx: index(\"idx_policies_tenant_id\").on(table.tenantId),\n}));\n// ─── Usage Logs ─────────────────────────────────────────────────\nexport const usageLogs = sqliteTable(\"usage_logs\", {\n id: text(\"id\").primaryKey().$defaultFn(() => crypto.randomUUID()),\n tenantId: text(\"tenant_id\").notNull().default(\"default\"),\n agentId: text(\"agent_id\"),\n endpoint: text(\"endpoint\").notNull(),\n statusCode: integer(\"status_code\").notNull(),\n responseSafe: integer(\"response_safe\", { mode: \"boolean\" }),\n categories: text(\"categories\", { mode: \"json\" }).notNull().default([]),\n latencyMs: integer(\"latency_ms\").notNull(),\n requestId: text(\"request_id\").notNull(),\n createdAt: text(\"created_at\").notNull().$defaultFn(() => new Date().toISOString()),\n}, (table) => ({\n agentIdIdx: index(\"idx_usage_logs_agent_id\").on(table.agentId),\n createdAtIdx: index(\"idx_usage_logs_created_at\").on(table.createdAt),\n tenantIdIdx: index(\"idx_usage_logs_tenant_id\").on(table.tenantId),\n}));\n// ─── Detection Results ──────────────────────────────────────────\nexport const detectionResults = sqliteTable(\"detection_results\", {\n id: text(\"id\").primaryKey().$defaultFn(() => crypto.randomUUID()),\n tenantId: text(\"tenant_id\").notNull().default(\"default\"),\n agentId: text(\"agent_id\"),\n safe: integer(\"safe\", { mode: \"boolean\" }).notNull(),\n categories: text(\"categories\", { mode: \"json\" }).notNull().default([]),\n sensitivityScore: real(\"sensitivity_score\").notNull().default(0),\n findings: text(\"findings\", { mode: \"json\" }).notNull().default([]),\n latencyMs: integer(\"latency_ms\").notNull(),\n requestId: text(\"request_id\").notNull(),\n // Static scan fields\n scanType: text(\"scan_type\").notNull().default(\"dynamic\"), // \"static\" or \"dynamic\"\n filePath: text(\"file_path\"), // Relative path from workspace for static scans\n fileType: text(\"file_type\"), // \"soul\", \"agent\", \"memory\", \"task\", \"skill\", \"plugin\", \"other\"\n createdAt: text(\"created_at\").notNull().$defaultFn(() => new Date().toISOString()),\n}, (table) => ({\n agentIdIdx: index(\"idx_detection_results_agent_id\").on(table.agentId),\n createdAtIdx: index(\"idx_detection_results_created_at\").on(table.createdAt),\n tenantIdIdx: index(\"idx_detection_results_tenant_id\").on(table.tenantId),\n scanTypeIdx: index(\"idx_detection_results_scan_type\").on(table.scanType),\n}));\n// ─── Tool Call Observations ─────────────────────────────────────\nexport const toolCallObservations = sqliteTable(\"tool_call_observations\", {\n id: text(\"id\").primaryKey().$defaultFn(() => crypto.randomUUID()),\n tenantId: text(\"tenant_id\").notNull().default(\"default\"),\n agentId: text(\"agent_id\").notNull(),\n sessionKey: text(\"session_key\"),\n toolName: text(\"tool_name\").notNull(),\n category: text(\"category\"),\n accessPattern: text(\"access_pattern\"),\n paramsJson: text(\"params_json\", { mode: \"json\" }),\n phase: text(\"phase\").notNull(),\n resultJson: text(\"result_json\", { mode: \"json\" }),\n error: text(\"error\"),\n durationMs: integer(\"duration_ms\"),\n blocked: integer(\"blocked\", { mode: \"boolean\" }).notNull().default(false),\n blockReason: text(\"block_reason\"),\n timestamp: text(\"timestamp\").notNull().$defaultFn(() => new Date().toISOString()),\n}, (table) => ({\n agentIdIdx: index(\"idx_tool_obs_agent_id\").on(table.agentId),\n toolNameIdx: index(\"idx_tool_obs_tool_name\").on(table.toolName),\n timestampIdx: index(\"idx_tool_obs_timestamp\").on(table.timestamp),\n tenantIdIdx: index(\"idx_tool_obs_tenant_id\").on(table.tenantId),\n}));\n// ─── Magic Links ─────────────────────────────────────────────\n// One-time login tokens sent via email (15-min TTL)\nexport const magicLinks = sqliteTable(\"magic_links\", {\n id: text(\"id\").primaryKey().$defaultFn(() => crypto.randomUUID()),\n email: text(\"email\").notNull(),\n token: text(\"token\").notNull().unique(),\n expiresAt: text(\"expires_at\").notNull(),\n usedAt: text(\"used_at\"),\n createdAt: text(\"created_at\").notNull().$defaultFn(() => new Date().toISOString()),\n}, (table) => ({\n tokenIdx: index(\"idx_magic_links_token\").on(table.token),\n emailIdx: index(\"idx_magic_links_email\").on(table.email),\n}));\n// ─── User Sessions ────────────────────────────────────────────\n// Persistent sessions created after magic link verification (30-day TTL)\nexport const userSessions = sqliteTable(\"user_sessions\", {\n id: text(\"id\").primaryKey().$defaultFn(() => crypto.randomUUID()),\n email: text(\"email\").notNull(),\n token: text(\"token\").notNull().unique(),\n expiresAt: text(\"expires_at\").notNull(),\n createdAt: text(\"created_at\").notNull().$defaultFn(() => new Date().toISOString()),\n}, (table) => ({\n tokenIdx: index(\"idx_user_sessions_token\").on(table.token),\n emailIdx: index(\"idx_user_sessions_email\").on(table.email),\n}));\n// ─── Gateway Activity ─────────────────────────────────────────\n// Records of gateway sanitization and restoration events\nexport const gatewayActivity = sqliteTable(\"gateway_activity\", {\n id: text(\"id\").primaryKey().$defaultFn(() => crypto.randomUUID()),\n tenantId: text(\"tenant_id\").notNull().default(\"default\"),\n eventId: text(\"event_id\").notNull(), // From gateway: gw-timestamp-counter-type\n requestId: text(\"request_id\").notNull(), // gw-timestamp-counter\n timestamp: text(\"timestamp\").notNull(),\n type: text(\"type\").notNull(), // \"sanitize\" or \"restore\"\n direction: text(\"direction\").notNull(), // \"request\" or \"response\"\n backend: text(\"backend\").notNull(), // \"openai\", \"anthropic\", \"gemini\"\n endpoint: text(\"endpoint\").notNull(), // e.g., \"/v1/chat/completions\"\n model: text(\"model\"),\n redactionCount: integer(\"redaction_count\").notNull().default(0),\n categories: text(\"categories\", { mode: \"json\" }).notNull().default({}), // { email: 2, secret: 1 }\n durationMs: integer(\"duration_ms\"),\n createdAt: text(\"created_at\").notNull().$defaultFn(() => new Date().toISOString()),\n}, (table) => ({\n requestIdIdx: index(\"idx_gateway_activity_request_id\").on(table.requestId),\n timestampIdx: index(\"idx_gateway_activity_timestamp\").on(table.timestamp),\n typeIdx: index(\"idx_gateway_activity_type\").on(table.type),\n tenantIdIdx: index(\"idx_gateway_activity_tenant_id\").on(table.tenantId),\n}));\n// ─── Agent Permissions ────────────────────────────────────────\nexport const agentPermissions = sqliteTable(\"agent_permissions\", {\n id: text(\"id\").primaryKey().$defaultFn(() => crypto.randomUUID()),\n tenantId: text(\"tenant_id\").notNull().default(\"default\"),\n agentId: text(\"agent_id\").notNull(),\n toolName: text(\"tool_name\").notNull(),\n category: text(\"category\"),\n accessPattern: text(\"access_pattern\"),\n targetsJson: text(\"targets_json\", { mode: \"json\" }).notNull().default([]),\n callCount: integer(\"call_count\").notNull().default(0),\n errorCount: integer(\"error_count\").notNull().default(0),\n firstSeen: text(\"first_seen\").notNull().$defaultFn(() => new Date().toISOString()),\n lastSeen: text(\"last_seen\").notNull().$defaultFn(() => new Date().toISOString()),\n}, (table) => ({\n agentIdIdx: index(\"idx_agent_perms_agent_id\").on(table.agentId),\n toolNameIdx: index(\"idx_agent_perms_tool_name\").on(table.toolName),\n tenantIdIdx: index(\"idx_agent_perms_tenant_id\").on(table.tenantId),\n uniqueAgentTool: index(\"idx_agent_perms_unique\").on(table.tenantId, table.agentId, table.toolName),\n}));\n// ─── Agentic Hours ──────────────────────────────────────────────\n// Daily aggregated duration metrics per agent\nexport const agenticHoursLocal = sqliteTable(\"agentic_hours_local\", {\n id: text(\"id\").primaryKey().$defaultFn(() => crypto.randomUUID()),\n tenantId: text(\"tenant_id\").notNull().default(\"default\"),\n agentId: text(\"agent_id\").notNull(),\n date: text(\"date\").notNull(), // YYYY-MM-DD\n toolCallDurationMs: integer(\"tool_call_duration_ms\").notNull().default(0),\n llmDurationMs: integer(\"llm_duration_ms\").notNull().default(0),\n totalDurationMs: integer(\"total_duration_ms\").notNull().default(0),\n toolCallCount: integer(\"tool_call_count\").notNull().default(0),\n llmCallCount: integer(\"llm_call_count\").notNull().default(0),\n sessionCount: integer(\"session_count\").notNull().default(0),\n blockCount: integer(\"block_count\").notNull().default(0),\n riskEventCount: integer(\"risk_event_count\").notNull().default(0),\n createdAt: text(\"created_at\").notNull().$defaultFn(() => new Date().toISOString()),\n updatedAt: text(\"updated_at\").notNull().$defaultFn(() => new Date().toISOString()),\n}, (table) => ({\n agentDateIdx: index(\"idx_agentic_hours_agent_date\").on(table.tenantId, table.agentId, table.date),\n tenantDateIdx: index(\"idx_agentic_hours_tenant_date\").on(table.tenantId, table.date),\n}));\n//# sourceMappingURL=sqlite.js.map"],"names":[],"sourceRoot":""}
@@ -0,0 +1,70 @@
1
+ CREATE TABLE `agents` (
2
+ `id` text PRIMARY KEY NOT NULL,
3
+ `name` text NOT NULL,
4
+ `description` text,
5
+ `provider` text DEFAULT 'custom' NOT NULL,
6
+ `status` text DEFAULT 'inactive' NOT NULL,
7
+ `last_seen_at` text,
8
+ `metadata` text DEFAULT '{}' NOT NULL,
9
+ `created_at` text NOT NULL,
10
+ `updated_at` text NOT NULL
11
+ );
12
+ --> statement-breakpoint
13
+ CREATE INDEX `idx_agents_status` ON `agents` (`status`);--> statement-breakpoint
14
+ CREATE TABLE `detection_results` (
15
+ `id` text PRIMARY KEY NOT NULL,
16
+ `agent_id` text,
17
+ `safe` integer NOT NULL,
18
+ `categories` text DEFAULT '[]' NOT NULL,
19
+ `sensitivity_score` real DEFAULT 0 NOT NULL,
20
+ `findings` text DEFAULT '[]' NOT NULL,
21
+ `latency_ms` integer NOT NULL,
22
+ `request_id` text NOT NULL,
23
+ `created_at` text NOT NULL
24
+ );
25
+ --> statement-breakpoint
26
+ CREATE INDEX `idx_detection_results_agent_id` ON `detection_results` (`agent_id`);--> statement-breakpoint
27
+ CREATE INDEX `idx_detection_results_created_at` ON `detection_results` (`created_at`);--> statement-breakpoint
28
+ CREATE TABLE `policies` (
29
+ `id` text PRIMARY KEY NOT NULL,
30
+ `name` text NOT NULL,
31
+ `description` text,
32
+ `scanner_ids` text DEFAULT '[]' NOT NULL,
33
+ `action` text DEFAULT 'log' NOT NULL,
34
+ `sensitivity_threshold` real DEFAULT 0.5 NOT NULL,
35
+ `is_enabled` integer DEFAULT true NOT NULL,
36
+ `created_at` text NOT NULL,
37
+ `updated_at` text NOT NULL
38
+ );
39
+ --> statement-breakpoint
40
+ CREATE TABLE `scanner_definitions` (
41
+ `id` text PRIMARY KEY NOT NULL,
42
+ `scanner_id` text NOT NULL,
43
+ `name` text NOT NULL,
44
+ `description` text NOT NULL,
45
+ `config` text DEFAULT '{}' NOT NULL,
46
+ `is_enabled` integer DEFAULT true NOT NULL,
47
+ `is_default` integer DEFAULT false NOT NULL
48
+ );
49
+ --> statement-breakpoint
50
+ CREATE INDEX `idx_scanner_defs_scanner_id` ON `scanner_definitions` (`scanner_id`);--> statement-breakpoint
51
+ CREATE TABLE `settings` (
52
+ `key` text PRIMARY KEY NOT NULL,
53
+ `value` text NOT NULL,
54
+ `updated_at` text NOT NULL
55
+ );
56
+ --> statement-breakpoint
57
+ CREATE TABLE `usage_logs` (
58
+ `id` text PRIMARY KEY NOT NULL,
59
+ `agent_id` text,
60
+ `endpoint` text NOT NULL,
61
+ `status_code` integer NOT NULL,
62
+ `response_safe` integer,
63
+ `categories` text DEFAULT '[]' NOT NULL,
64
+ `latency_ms` integer NOT NULL,
65
+ `request_id` text NOT NULL,
66
+ `created_at` text NOT NULL
67
+ );
68
+ --> statement-breakpoint
69
+ CREATE INDEX `idx_usage_logs_agent_id` ON `usage_logs` (`agent_id`);--> statement-breakpoint
70
+ CREATE INDEX `idx_usage_logs_created_at` ON `usage_logs` (`created_at`);
@@ -0,0 +1,10 @@
1
+ ALTER TABLE `agents` ADD `tenant_id` text DEFAULT 'default' NOT NULL;--> statement-breakpoint
2
+ CREATE INDEX `idx_agents_tenant_id` ON `agents` (`tenant_id`);--> statement-breakpoint
3
+ ALTER TABLE `detection_results` ADD `tenant_id` text DEFAULT 'default' NOT NULL;--> statement-breakpoint
4
+ CREATE INDEX `idx_detection_results_tenant_id` ON `detection_results` (`tenant_id`);--> statement-breakpoint
5
+ ALTER TABLE `policies` ADD `tenant_id` text DEFAULT 'default' NOT NULL;--> statement-breakpoint
6
+ CREATE INDEX `idx_policies_tenant_id` ON `policies` (`tenant_id`);--> statement-breakpoint
7
+ ALTER TABLE `scanner_definitions` ADD `tenant_id` text DEFAULT 'default' NOT NULL;--> statement-breakpoint
8
+ CREATE INDEX `idx_scanner_defs_tenant_id` ON `scanner_definitions` (`tenant_id`);--> statement-breakpoint
9
+ ALTER TABLE `usage_logs` ADD `tenant_id` text DEFAULT 'default' NOT NULL;--> statement-breakpoint
10
+ CREATE INDEX `idx_usage_logs_tenant_id` ON `usage_logs` (`tenant_id`);
@@ -0,0 +1,38 @@
1
+ CREATE TABLE `tool_call_observations` (
2
+ `id` text PRIMARY KEY NOT NULL,
3
+ `tenant_id` text DEFAULT 'default' NOT NULL,
4
+ `agent_id` text NOT NULL,
5
+ `session_key` text,
6
+ `tool_name` text NOT NULL,
7
+ `category` text,
8
+ `access_pattern` text,
9
+ `params_json` text,
10
+ `phase` text NOT NULL,
11
+ `result_json` text,
12
+ `error` text,
13
+ `duration_ms` integer,
14
+ `blocked` integer DEFAULT false NOT NULL,
15
+ `block_reason` text,
16
+ `timestamp` text NOT NULL
17
+ );--> statement-breakpoint
18
+ CREATE INDEX `idx_tool_obs_agent_id` ON `tool_call_observations` (`agent_id`);--> statement-breakpoint
19
+ CREATE INDEX `idx_tool_obs_tool_name` ON `tool_call_observations` (`tool_name`);--> statement-breakpoint
20
+ CREATE INDEX `idx_tool_obs_timestamp` ON `tool_call_observations` (`timestamp`);--> statement-breakpoint
21
+ CREATE INDEX `idx_tool_obs_tenant_id` ON `tool_call_observations` (`tenant_id`);--> statement-breakpoint
22
+ CREATE TABLE `agent_permissions` (
23
+ `id` text PRIMARY KEY NOT NULL,
24
+ `tenant_id` text DEFAULT 'default' NOT NULL,
25
+ `agent_id` text NOT NULL,
26
+ `tool_name` text NOT NULL,
27
+ `category` text,
28
+ `access_pattern` text,
29
+ `targets_json` text DEFAULT '[]' NOT NULL,
30
+ `call_count` integer DEFAULT 0 NOT NULL,
31
+ `error_count` integer DEFAULT 0 NOT NULL,
32
+ `first_seen` text NOT NULL,
33
+ `last_seen` text NOT NULL
34
+ );--> statement-breakpoint
35
+ CREATE INDEX `idx_agent_perms_agent_id` ON `agent_permissions` (`agent_id`);--> statement-breakpoint
36
+ CREATE INDEX `idx_agent_perms_tool_name` ON `agent_permissions` (`tool_name`);--> statement-breakpoint
37
+ CREATE INDEX `idx_agent_perms_tenant_id` ON `agent_permissions` (`tenant_id`);--> statement-breakpoint
38
+ CREATE INDEX `idx_agent_perms_unique` ON `agent_permissions` (`tenant_id`, `agent_id`, `tool_name`);
@@ -0,0 +1,28 @@
1
+ CREATE TABLE `magic_links` (
2
+ `id` text PRIMARY KEY NOT NULL,
3
+ `email` text NOT NULL,
4
+ `token` text NOT NULL,
5
+ `expires_at` text NOT NULL,
6
+ `used_at` text,
7
+ `created_at` text NOT NULL
8
+ );
9
+ --> statement-breakpoint
10
+ CREATE UNIQUE INDEX `magic_links_token_unique` ON `magic_links` (`token`);
11
+ --> statement-breakpoint
12
+ CREATE INDEX `idx_magic_links_token` ON `magic_links` (`token`);
13
+ --> statement-breakpoint
14
+ CREATE INDEX `idx_magic_links_email` ON `magic_links` (`email`);
15
+ --> statement-breakpoint
16
+ CREATE TABLE `user_sessions` (
17
+ `id` text PRIMARY KEY NOT NULL,
18
+ `email` text NOT NULL,
19
+ `token` text NOT NULL,
20
+ `expires_at` text NOT NULL,
21
+ `created_at` text NOT NULL
22
+ );
23
+ --> statement-breakpoint
24
+ CREATE UNIQUE INDEX `user_sessions_token_unique` ON `user_sessions` (`token`);
25
+ --> statement-breakpoint
26
+ CREATE INDEX `idx_user_sessions_token` ON `user_sessions` (`token`);
27
+ --> statement-breakpoint
28
+ CREATE INDEX `idx_user_sessions_email` ON `user_sessions` (`email`);
@@ -0,0 +1,8 @@
1
+ -- Add static scan fields to detection_results table
2
+ ALTER TABLE `detection_results` ADD `scan_type` text DEFAULT 'dynamic' NOT NULL;
3
+ --> statement-breakpoint
4
+ ALTER TABLE `detection_results` ADD `file_path` text;
5
+ --> statement-breakpoint
6
+ ALTER TABLE `detection_results` ADD `file_type` text;
7
+ --> statement-breakpoint
8
+ CREATE INDEX `idx_detection_results_scan_type` ON `detection_results` (`scan_type`);
@@ -0,0 +1,24 @@
1
+ -- Gateway Activity Table
2
+ -- Records of gateway sanitization and restoration events
3
+
4
+ CREATE TABLE IF NOT EXISTS `gateway_activity` (
5
+ `id` text PRIMARY KEY NOT NULL,
6
+ `tenant_id` text NOT NULL DEFAULT 'default',
7
+ `event_id` text NOT NULL,
8
+ `request_id` text NOT NULL,
9
+ `timestamp` text NOT NULL,
10
+ `type` text NOT NULL,
11
+ `direction` text NOT NULL,
12
+ `backend` text NOT NULL,
13
+ `endpoint` text NOT NULL,
14
+ `model` text,
15
+ `redaction_count` integer NOT NULL DEFAULT 0,
16
+ `categories` text DEFAULT '{}' NOT NULL,
17
+ `duration_ms` integer,
18
+ `created_at` text NOT NULL
19
+ );
20
+
21
+ CREATE INDEX IF NOT EXISTS `idx_gateway_activity_request_id` ON `gateway_activity` (`request_id`);
22
+ CREATE INDEX IF NOT EXISTS `idx_gateway_activity_timestamp` ON `gateway_activity` (`timestamp`);
23
+ CREATE INDEX IF NOT EXISTS `idx_gateway_activity_type` ON `gateway_activity` (`type`);
24
+ CREATE INDEX IF NOT EXISTS `idx_gateway_activity_tenant_id` ON `gateway_activity` (`tenant_id`);
@@ -0,0 +1,41 @@
1
+ CREATE TABLE IF NOT EXISTS `agentic_hours_local` (
2
+ `id` text PRIMARY KEY NOT NULL,
3
+ `tenant_id` text DEFAULT 'default' NOT NULL,
4
+ `agent_id` text NOT NULL,
5
+ `date` text NOT NULL,
6
+ `tool_call_duration_ms` integer DEFAULT 0 NOT NULL,
7
+ `llm_duration_ms` integer DEFAULT 0 NOT NULL,
8
+ `total_duration_ms` integer DEFAULT 0 NOT NULL,
9
+ `tool_call_count` integer DEFAULT 0 NOT NULL,
10
+ `llm_call_count` integer DEFAULT 0 NOT NULL,
11
+ `session_count` integer DEFAULT 0 NOT NULL,
12
+ `block_count` integer DEFAULT 0 NOT NULL,
13
+ `risk_event_count` integer DEFAULT 0 NOT NULL,
14
+ `created_at` text NOT NULL,
15
+ `updated_at` text NOT NULL
16
+ );
17
+ --> statement-breakpoint
18
+ CREATE INDEX IF NOT EXISTS `idx_agentic_hours_agent_date` ON `agentic_hours_local` (`tenant_id`,`agent_id`,`date`);--> statement-breakpoint
19
+ CREATE INDEX IF NOT EXISTS `idx_agentic_hours_tenant_date` ON `agentic_hours_local` (`tenant_id`,`date`);--> statement-breakpoint
20
+ CREATE TABLE IF NOT EXISTS `tool_call_observations` (
21
+ `id` text PRIMARY KEY NOT NULL,
22
+ `tenant_id` text DEFAULT 'default' NOT NULL,
23
+ `agent_id` text NOT NULL,
24
+ `session_key` text,
25
+ `tool_name` text NOT NULL,
26
+ `category` text,
27
+ `access_pattern` text,
28
+ `params_json` text,
29
+ `phase` text NOT NULL,
30
+ `result_json` text,
31
+ `error` text,
32
+ `duration_ms` integer,
33
+ `blocked` integer DEFAULT false NOT NULL,
34
+ `block_reason` text,
35
+ `timestamp` text NOT NULL
36
+ );
37
+ --> statement-breakpoint
38
+ CREATE INDEX IF NOT EXISTS `idx_tool_obs_agent_id` ON `tool_call_observations` (`agent_id`);--> statement-breakpoint
39
+ CREATE INDEX IF NOT EXISTS `idx_tool_obs_tool_name` ON `tool_call_observations` (`tool_name`);--> statement-breakpoint
40
+ CREATE INDEX IF NOT EXISTS `idx_tool_obs_timestamp` ON `tool_call_observations` (`timestamp`);--> statement-breakpoint
41
+ CREATE INDEX IF NOT EXISTS `idx_tool_obs_tenant_id` ON `tool_call_observations` (`tenant_id`);