@congzhen/changewayguard 6.8.12

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 (329) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +270 -0
  3. package/dashboard-dist/api/104.index.js +1420 -0
  4. package/dashboard-dist/api/104.index.js.map +1 -0
  5. package/dashboard-dist/api/113.index.js +496 -0
  6. package/dashboard-dist/api/113.index.js.map +1 -0
  7. package/dashboard-dist/api/18.index.js +67 -0
  8. package/dashboard-dist/api/18.index.js.map +1 -0
  9. package/dashboard-dist/api/217.index.js +44 -0
  10. package/dashboard-dist/api/217.index.js.map +1 -0
  11. package/dashboard-dist/api/222.index.js +90 -0
  12. package/dashboard-dist/api/222.index.js.map +1 -0
  13. package/dashboard-dist/api/25.index.js +3562 -0
  14. package/dashboard-dist/api/25.index.js.map +1 -0
  15. package/dashboard-dist/api/280.index.js +206 -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/377.index.js +1176 -0
  20. package/dashboard-dist/api/377.index.js.map +1 -0
  21. package/dashboard-dist/api/411.index.js +4250 -0
  22. package/dashboard-dist/api/411.index.js.map +1 -0
  23. package/dashboard-dist/api/424.index.js +135 -0
  24. package/dashboard-dist/api/424.index.js.map +1 -0
  25. package/dashboard-dist/api/573.index.js +806 -0
  26. package/dashboard-dist/api/573.index.js.map +1 -0
  27. package/dashboard-dist/api/598.index.js +328 -0
  28. package/dashboard-dist/api/598.index.js.map +1 -0
  29. package/dashboard-dist/api/62.index.js +4151 -0
  30. package/dashboard-dist/api/62.index.js.map +1 -0
  31. package/dashboard-dist/api/67.index.js +23383 -0
  32. package/dashboard-dist/api/67.index.js.map +1 -0
  33. package/dashboard-dist/api/678.index.js +2734 -0
  34. package/dashboard-dist/api/678.index.js.map +1 -0
  35. package/dashboard-dist/api/698.index.js +1896 -0
  36. package/dashboard-dist/api/698.index.js.map +1 -0
  37. package/dashboard-dist/api/720.index.js +98 -0
  38. package/dashboard-dist/api/720.index.js.map +1 -0
  39. package/dashboard-dist/api/830.index.js +95 -0
  40. package/dashboard-dist/api/830.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 +65 -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/948.index.js +64 -0
  50. package/dashboard-dist/api/948.index.js.map +1 -0
  51. package/dashboard-dist/api/953.index.js +67 -0
  52. package/dashboard-dist/api/953.index.js.map +1 -0
  53. package/dashboard-dist/api/975.index.js +374 -0
  54. package/dashboard-dist/api/975.index.js.map +1 -0
  55. package/dashboard-dist/api/drizzle/sqlite/0000_short_captain_stacy.sql +70 -0
  56. package/dashboard-dist/api/drizzle/sqlite/0001_closed_magus.sql +10 -0
  57. package/dashboard-dist/api/drizzle/sqlite/0002_agent_capability_observation.sql +38 -0
  58. package/dashboard-dist/api/drizzle/sqlite/0003_auth_magic_link.sql +28 -0
  59. package/dashboard-dist/api/drizzle/sqlite/0004_static_scan_fields.sql +8 -0
  60. package/dashboard-dist/api/drizzle/sqlite/0005_gateway_activity.sql +24 -0
  61. package/dashboard-dist/api/drizzle/sqlite/0006_sour_marauders.sql +41 -0
  62. package/dashboard-dist/api/drizzle/sqlite/meta/0000_snapshot.json +460 -0
  63. package/dashboard-dist/api/drizzle/sqlite/meta/0001_snapshot.json +536 -0
  64. package/dashboard-dist/api/drizzle/sqlite/meta/0006_snapshot.json +1249 -0
  65. package/dashboard-dist/api/drizzle/sqlite/meta/_journal.json +55 -0
  66. package/dashboard-dist/api/index.js +27340 -0
  67. package/dashboard-dist/api/index.js.map +1 -0
  68. package/dashboard-dist/api/package.json +16 -0
  69. package/dashboard-dist/api/sourcemap-register.cjs +1 -0
  70. package/dashboard-dist/web/assets/index-CqWIeBTD.js +158 -0
  71. package/dashboard-dist/web/assets/index-Dw7--9q4.css +1 -0
  72. package/dashboard-dist/web/changeway-logo.png +0 -0
  73. package/dashboard-dist/web/favicon.svg +29 -0
  74. package/dashboard-dist/web/index.html +14 -0
  75. package/dashboard-dist/web/logo.svg +16 -0
  76. package/dist/agent/auth.d.ts +37 -0
  77. package/dist/agent/auth.d.ts.map +1 -0
  78. package/dist/agent/auth.js +151 -0
  79. package/dist/agent/auth.js.map +1 -0
  80. package/dist/agent/behavior-detector.d.ts +150 -0
  81. package/dist/agent/behavior-detector.d.ts.map +1 -0
  82. package/dist/agent/behavior-detector.js +573 -0
  83. package/dist/agent/behavior-detector.js.map +1 -0
  84. package/dist/agent/business-reporter.d.ts +114 -0
  85. package/dist/agent/business-reporter.d.ts.map +1 -0
  86. package/dist/agent/business-reporter.js +359 -0
  87. package/dist/agent/business-reporter.js.map +1 -0
  88. package/dist/agent/config-sync.d.ts +70 -0
  89. package/dist/agent/config-sync.d.ts.map +1 -0
  90. package/dist/agent/config-sync.js +133 -0
  91. package/dist/agent/config-sync.js.map +1 -0
  92. package/dist/agent/config.d.ts +97 -0
  93. package/dist/agent/config.d.ts.map +1 -0
  94. package/dist/agent/config.js +359 -0
  95. package/dist/agent/config.js.map +1 -0
  96. package/dist/agent/content-injection-scanner.d.ts +35 -0
  97. package/dist/agent/content-injection-scanner.d.ts.map +1 -0
  98. package/dist/agent/content-injection-scanner.js +270 -0
  99. package/dist/agent/content-injection-scanner.js.map +1 -0
  100. package/dist/agent/engine-log-writer.d.ts +6 -0
  101. package/dist/agent/engine-log-writer.d.ts.map +1 -0
  102. package/dist/agent/engine-log-writer.js +18 -0
  103. package/dist/agent/engine-log-writer.js.map +1 -0
  104. package/dist/agent/env.d.ts +19 -0
  105. package/dist/agent/env.d.ts.map +1 -0
  106. package/dist/agent/env.js +43 -0
  107. package/dist/agent/env.js.map +1 -0
  108. package/dist/agent/event-reporter.d.ts +87 -0
  109. package/dist/agent/event-reporter.d.ts.map +1 -0
  110. package/dist/agent/event-reporter.js +315 -0
  111. package/dist/agent/event-reporter.js.map +1 -0
  112. package/dist/agent/file-watcher.d.ts +50 -0
  113. package/dist/agent/file-watcher.d.ts.map +1 -0
  114. package/dist/agent/file-watcher.js +135 -0
  115. package/dist/agent/file-watcher.js.map +1 -0
  116. package/dist/agent/fs-utils.d.ts +22 -0
  117. package/dist/agent/fs-utils.d.ts.map +1 -0
  118. package/dist/agent/fs-utils.js +41 -0
  119. package/dist/agent/fs-utils.js.map +1 -0
  120. package/dist/agent/gateway-manager.d.ts +59 -0
  121. package/dist/agent/gateway-manager.d.ts.map +1 -0
  122. package/dist/agent/gateway-manager.js +583 -0
  123. package/dist/agent/gateway-manager.js.map +1 -0
  124. package/dist/agent/hook-types.d.ts +276 -0
  125. package/dist/agent/hook-types.d.ts.map +1 -0
  126. package/dist/agent/hook-types.js +51 -0
  127. package/dist/agent/hook-types.js.map +1 -0
  128. package/dist/agent/index.d.ts +8 -0
  129. package/dist/agent/index.d.ts.map +1 -0
  130. package/dist/agent/index.js +8 -0
  131. package/dist/agent/index.js.map +1 -0
  132. package/dist/agent/prompt-gate.d.ts +13 -0
  133. package/dist/agent/prompt-gate.d.ts.map +1 -0
  134. package/dist/agent/prompt-gate.js +28 -0
  135. package/dist/agent/prompt-gate.js.map +1 -0
  136. package/dist/agent/prompt-input.d.ts +9 -0
  137. package/dist/agent/prompt-input.d.ts.map +1 -0
  138. package/dist/agent/prompt-input.js +158 -0
  139. package/dist/agent/prompt-input.js.map +1 -0
  140. package/dist/agent/prompt-output.d.ts +4 -0
  141. package/dist/agent/prompt-output.d.ts.map +1 -0
  142. package/dist/agent/prompt-output.js +19 -0
  143. package/dist/agent/prompt-output.js.map +1 -0
  144. package/dist/agent/runner.d.ts +23 -0
  145. package/dist/agent/runner.d.ts.map +1 -0
  146. package/dist/agent/runner.js +154 -0
  147. package/dist/agent/runner.js.map +1 -0
  148. package/dist/agent/sanitizer.d.ts +10 -0
  149. package/dist/agent/sanitizer.d.ts.map +1 -0
  150. package/dist/agent/sanitizer.js +175 -0
  151. package/dist/agent/sanitizer.js.map +1 -0
  152. package/dist/agent/scan-activity.d.ts +18 -0
  153. package/dist/agent/scan-activity.d.ts.map +1 -0
  154. package/dist/agent/scan-activity.js +32 -0
  155. package/dist/agent/scan-activity.js.map +1 -0
  156. package/dist/agent/types.d.ts +177 -0
  157. package/dist/agent/types.d.ts.map +1 -0
  158. package/dist/agent/types.js +5 -0
  159. package/dist/agent/types.js.map +1 -0
  160. package/dist/agent/workspace-scanner.d.ts +35 -0
  161. package/dist/agent/workspace-scanner.d.ts.map +1 -0
  162. package/dist/agent/workspace-scanner.js +137 -0
  163. package/dist/agent/workspace-scanner.js.map +1 -0
  164. package/dist/dashboard-launcher.d.ts +52 -0
  165. package/dist/dashboard-launcher.d.ts.map +1 -0
  166. package/dist/dashboard-launcher.js +363 -0
  167. package/dist/dashboard-launcher.js.map +1 -0
  168. package/dist/gateway/activity.d.ts +52 -0
  169. package/dist/gateway/activity.d.ts.map +1 -0
  170. package/dist/gateway/activity.js +111 -0
  171. package/dist/gateway/activity.js.map +1 -0
  172. package/dist/gateway/config.d.ts +50 -0
  173. package/dist/gateway/config.d.ts.map +1 -0
  174. package/dist/gateway/config.js +200 -0
  175. package/dist/gateway/config.js.map +1 -0
  176. package/dist/gateway/gateway/activity.d.ts +52 -0
  177. package/dist/gateway/gateway/activity.d.ts.map +1 -0
  178. package/dist/gateway/gateway/activity.js +111 -0
  179. package/dist/gateway/gateway/activity.js.map +1 -0
  180. package/dist/gateway/gateway/config.d.ts +50 -0
  181. package/dist/gateway/gateway/config.d.ts.map +1 -0
  182. package/dist/gateway/gateway/config.js +200 -0
  183. package/dist/gateway/gateway/config.js.map +1 -0
  184. package/dist/gateway/gateway/handlers/anthropic.d.ts +12 -0
  185. package/dist/gateway/gateway/handlers/anthropic.d.ts.map +1 -0
  186. package/dist/gateway/gateway/handlers/anthropic.js +254 -0
  187. package/dist/gateway/gateway/handlers/anthropic.js.map +1 -0
  188. package/dist/gateway/gateway/handlers/gemini.d.ts +12 -0
  189. package/dist/gateway/gateway/handlers/gemini.d.ts.map +1 -0
  190. package/dist/gateway/gateway/handlers/gemini.js +101 -0
  191. package/dist/gateway/gateway/handlers/gemini.js.map +1 -0
  192. package/dist/gateway/gateway/handlers/models.d.ts +4 -0
  193. package/dist/gateway/gateway/handlers/models.d.ts.map +1 -0
  194. package/dist/gateway/gateway/handlers/models.js +36 -0
  195. package/dist/gateway/gateway/handlers/models.js.map +1 -0
  196. package/dist/gateway/gateway/handlers/openai.d.ts +16 -0
  197. package/dist/gateway/gateway/handlers/openai.d.ts.map +1 -0
  198. package/dist/gateway/gateway/handlers/openai.js +254 -0
  199. package/dist/gateway/gateway/handlers/openai.js.map +1 -0
  200. package/dist/gateway/gateway/index.d.ts +27 -0
  201. package/dist/gateway/gateway/index.d.ts.map +1 -0
  202. package/dist/gateway/gateway/index.js +293 -0
  203. package/dist/gateway/gateway/index.js.map +1 -0
  204. package/dist/gateway/gateway/mapping-store.d.ts +38 -0
  205. package/dist/gateway/gateway/mapping-store.d.ts.map +1 -0
  206. package/dist/gateway/gateway/mapping-store.js +74 -0
  207. package/dist/gateway/gateway/mapping-store.js.map +1 -0
  208. package/dist/gateway/gateway/restorer.d.ts +63 -0
  209. package/dist/gateway/gateway/restorer.d.ts.map +1 -0
  210. package/dist/gateway/gateway/restorer.js +284 -0
  211. package/dist/gateway/gateway/restorer.js.map +1 -0
  212. package/dist/gateway/gateway/sanitizer.d.ts +17 -0
  213. package/dist/gateway/gateway/sanitizer.d.ts.map +1 -0
  214. package/dist/gateway/gateway/sanitizer.js +228 -0
  215. package/dist/gateway/gateway/sanitizer.js.map +1 -0
  216. package/dist/gateway/gateway/types.d.ts +53 -0
  217. package/dist/gateway/gateway/types.d.ts.map +1 -0
  218. package/dist/gateway/gateway/types.js +5 -0
  219. package/dist/gateway/gateway/types.js.map +1 -0
  220. package/dist/gateway/handlers/anthropic.d.ts +12 -0
  221. package/dist/gateway/handlers/anthropic.d.ts.map +1 -0
  222. package/dist/gateway/handlers/anthropic.js +254 -0
  223. package/dist/gateway/handlers/anthropic.js.map +1 -0
  224. package/dist/gateway/handlers/gemini.d.ts +12 -0
  225. package/dist/gateway/handlers/gemini.d.ts.map +1 -0
  226. package/dist/gateway/handlers/gemini.js +101 -0
  227. package/dist/gateway/handlers/gemini.js.map +1 -0
  228. package/dist/gateway/handlers/models.d.ts +4 -0
  229. package/dist/gateway/handlers/models.d.ts.map +1 -0
  230. package/dist/gateway/handlers/models.js +36 -0
  231. package/dist/gateway/handlers/models.js.map +1 -0
  232. package/dist/gateway/handlers/openai.d.ts +16 -0
  233. package/dist/gateway/handlers/openai.d.ts.map +1 -0
  234. package/dist/gateway/handlers/openai.js +254 -0
  235. package/dist/gateway/handlers/openai.js.map +1 -0
  236. package/dist/gateway/index.d.ts +27 -0
  237. package/dist/gateway/index.d.ts.map +1 -0
  238. package/dist/gateway/index.js +293 -0
  239. package/dist/gateway/index.js.map +1 -0
  240. package/dist/gateway/mapping-store.d.ts +38 -0
  241. package/dist/gateway/mapping-store.d.ts.map +1 -0
  242. package/dist/gateway/mapping-store.js +74 -0
  243. package/dist/gateway/mapping-store.js.map +1 -0
  244. package/dist/gateway/restorer.d.ts +63 -0
  245. package/dist/gateway/restorer.d.ts.map +1 -0
  246. package/dist/gateway/restorer.js +284 -0
  247. package/dist/gateway/restorer.js.map +1 -0
  248. package/dist/gateway/sanitizer.d.ts +17 -0
  249. package/dist/gateway/sanitizer.d.ts.map +1 -0
  250. package/dist/gateway/sanitizer.js +228 -0
  251. package/dist/gateway/sanitizer.js.map +1 -0
  252. package/dist/gateway/types.d.ts +53 -0
  253. package/dist/gateway/types.d.ts.map +1 -0
  254. package/dist/gateway/types.js +5 -0
  255. package/dist/gateway/types.js.map +1 -0
  256. package/dist/index.d.ts +19 -0
  257. package/dist/index.d.ts.map +1 -0
  258. package/dist/index.js +2084 -0
  259. package/dist/index.js.map +1 -0
  260. package/dist/memory/index.d.ts +5 -0
  261. package/dist/memory/index.d.ts.map +1 -0
  262. package/dist/memory/index.js +5 -0
  263. package/dist/memory/index.js.map +1 -0
  264. package/dist/memory/store.d.ts +82 -0
  265. package/dist/memory/store.d.ts.map +1 -0
  266. package/dist/memory/store.js +194 -0
  267. package/dist/memory/store.js.map +1 -0
  268. package/dist/platform-client/index.d.ts +63 -0
  269. package/dist/platform-client/index.d.ts.map +1 -0
  270. package/dist/platform-client/index.js +294 -0
  271. package/dist/platform-client/index.js.map +1 -0
  272. package/dist/platform-client/types.d.ts +109 -0
  273. package/dist/platform-client/types.d.ts.map +1 -0
  274. package/dist/platform-client/types.js +3 -0
  275. package/dist/platform-client/types.js.map +1 -0
  276. package/gateway/activity.d.ts +52 -0
  277. package/gateway/activity.d.ts.map +1 -0
  278. package/gateway/activity.js +111 -0
  279. package/gateway/activity.js.map +1 -0
  280. package/gateway/config.d.ts +50 -0
  281. package/gateway/config.d.ts.map +1 -0
  282. package/gateway/config.js +200 -0
  283. package/gateway/config.js.map +1 -0
  284. package/gateway/handlers/anthropic.d.ts +12 -0
  285. package/gateway/handlers/anthropic.d.ts.map +1 -0
  286. package/gateway/handlers/anthropic.js +254 -0
  287. package/gateway/handlers/anthropic.js.map +1 -0
  288. package/gateway/handlers/gemini.d.ts +12 -0
  289. package/gateway/handlers/gemini.d.ts.map +1 -0
  290. package/gateway/handlers/gemini.js +101 -0
  291. package/gateway/handlers/gemini.js.map +1 -0
  292. package/gateway/handlers/models.d.ts +4 -0
  293. package/gateway/handlers/models.d.ts.map +1 -0
  294. package/gateway/handlers/models.js +36 -0
  295. package/gateway/handlers/models.js.map +1 -0
  296. package/gateway/handlers/openai.d.ts +16 -0
  297. package/gateway/handlers/openai.d.ts.map +1 -0
  298. package/gateway/handlers/openai.js +254 -0
  299. package/gateway/handlers/openai.js.map +1 -0
  300. package/gateway/index.d.ts +27 -0
  301. package/gateway/index.d.ts.map +1 -0
  302. package/gateway/index.js +293 -0
  303. package/gateway/index.js.map +1 -0
  304. package/gateway/mapping-store.d.ts +38 -0
  305. package/gateway/mapping-store.d.ts.map +1 -0
  306. package/gateway/mapping-store.js +74 -0
  307. package/gateway/mapping-store.js.map +1 -0
  308. package/gateway/restorer.d.ts +63 -0
  309. package/gateway/restorer.d.ts.map +1 -0
  310. package/gateway/restorer.js +284 -0
  311. package/gateway/restorer.js.map +1 -0
  312. package/gateway/sanitizer.d.ts +17 -0
  313. package/gateway/sanitizer.d.ts.map +1 -0
  314. package/gateway/sanitizer.js +228 -0
  315. package/gateway/sanitizer.js.map +1 -0
  316. package/gateway/types.d.ts +53 -0
  317. package/gateway/types.d.ts.map +1 -0
  318. package/gateway/types.js +5 -0
  319. package/gateway/types.js.map +1 -0
  320. package/openclaw.plugin.json +86 -0
  321. package/package.json +74 -0
  322. package/samples/Untitled +1 -0
  323. package/samples/clean-email.txt +20 -0
  324. package/samples/test-document.md +53 -0
  325. package/samples/test-email-popup.txt +44 -0
  326. package/samples/test-email.txt +32 -0
  327. package/samples/test-webpage.html +51 -0
  328. package/scripts/enterprise-enroll.sh +89 -0
  329. package/scripts/enterprise-unenroll.sh +75 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"975.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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;;;;;;;ACxHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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_@types+better-sqlite3@7.6.13_@types+react@18.3.28_be_bhyfo6jtf7gmzt2fsdpal3g2vq/node_modules/drizzle-orm/pg-core/indexes.js","../../../packages/db/dist/schema/pg.js"],"sourcesContent":["import { SQL } from \"../sql/sql.js\";\nimport { entityKind, is } from \"../entity.js\";\nimport { IndexedColumn } from \"./columns/index.js\";\nclass IndexBuilderOn {\n constructor(unique, name) {\n this.unique = unique;\n this.name = name;\n }\n static [entityKind] = \"PgIndexBuilderOn\";\n on(...columns) {\n return new IndexBuilder(\n columns.map((it) => {\n if (is(it, SQL)) {\n return it;\n }\n it = it;\n const clonedIndexedColumn = new IndexedColumn(it.name, !!it.keyAsName, it.columnType, it.indexConfig);\n it.indexConfig = JSON.parse(JSON.stringify(it.defaultConfig));\n return clonedIndexedColumn;\n }),\n this.unique,\n false,\n this.name\n );\n }\n onOnly(...columns) {\n return new IndexBuilder(\n columns.map((it) => {\n if (is(it, SQL)) {\n return it;\n }\n it = it;\n const clonedIndexedColumn = new IndexedColumn(it.name, !!it.keyAsName, it.columnType, it.indexConfig);\n it.indexConfig = it.defaultConfig;\n return clonedIndexedColumn;\n }),\n this.unique,\n true,\n this.name\n );\n }\n /**\n * Specify what index method to use. Choices are `btree`, `hash`, `gist`, `spgist`, `gin`, `brin`, or user-installed access methods like `bloom`. The default method is `btree.\n *\n * If you have the `pg_vector` extension installed in your database, you can use the `hnsw` and `ivfflat` options, which are predefined types.\n *\n * **You can always specify any string you want in the method, in case Drizzle doesn't have it natively in its types**\n *\n * @param method The name of the index method to be used\n * @param columns\n * @returns\n */\n using(method, ...columns) {\n return new IndexBuilder(\n columns.map((it) => {\n if (is(it, SQL)) {\n return it;\n }\n it = it;\n const clonedIndexedColumn = new IndexedColumn(it.name, !!it.keyAsName, it.columnType, it.indexConfig);\n it.indexConfig = JSON.parse(JSON.stringify(it.defaultConfig));\n return clonedIndexedColumn;\n }),\n this.unique,\n true,\n this.name,\n method\n );\n }\n}\nclass IndexBuilder {\n static [entityKind] = \"PgIndexBuilder\";\n /** @internal */\n config;\n constructor(columns, unique, only, name, method = \"btree\") {\n this.config = {\n name,\n columns,\n unique,\n only,\n method\n };\n }\n concurrently() {\n this.config.concurrently = true;\n return this;\n }\n with(obj) {\n this.config.with = obj;\n return this;\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] = \"PgIndex\";\n config;\n constructor(config, table) {\n this.config = { ...config, table };\n }\n}\nfunction index(name) {\n return new IndexBuilderOn(false, name);\n}\nfunction uniqueIndex(name) {\n return new IndexBuilderOn(true, name);\n}\nexport {\n Index,\n IndexBuilder,\n IndexBuilderOn,\n index,\n uniqueIndex\n};\n//# sourceMappingURL=indexes.js.map","import { pgTable, uuid, varchar, text, boolean, integer, real, timestamp, jsonb, index, } from \"drizzle-orm/pg-core\";\n// ─── Settings ─────────────────────────────────────────────────\nexport const settings = pgTable(\"settings\", {\n key: varchar(\"key\", { length: 255 }).primaryKey(),\n value: text(\"value\").notNull(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n});\n// ─── Agents ─────────────────────────────────────────────────────\nexport const agents = pgTable(\"agents\", {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n tenantId: varchar(\"tenant_id\", { length: 64 }).notNull().default(\"default\"),\n name: varchar(\"name\", { length: 255 }).notNull(),\n description: text(\"description\"),\n provider: varchar(\"provider\", { length: 50 }).notNull().default(\"custom\"),\n status: varchar(\"status\", { length: 50 }).notNull().default(\"inactive\"),\n lastSeenAt: timestamp(\"last_seen_at\", { withTimezone: true }),\n metadata: jsonb(\"metadata\").notNull().default({}),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\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 = pgTable(\"scanner_definitions\", {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n tenantId: varchar(\"tenant_id\", { length: 64 }).notNull().default(\"default\"),\n scannerId: varchar(\"scanner_id\", { length: 10 }).notNull(),\n name: varchar(\"name\", { length: 255 }).notNull(),\n description: text(\"description\").notNull(),\n config: jsonb(\"config\").notNull().default({}),\n isEnabled: boolean(\"is_enabled\").notNull().default(true),\n isDefault: boolean(\"is_default\").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 = pgTable(\"policies\", {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n tenantId: varchar(\"tenant_id\", { length: 64 }).notNull().default(\"default\"),\n name: varchar(\"name\", { length: 255 }).notNull(),\n description: text(\"description\"),\n scannerIds: jsonb(\"scanner_ids\").notNull().default([]),\n action: varchar(\"action\", { length: 50 }).notNull().default(\"log\"),\n sensitivityThreshold: real(\"sensitivity_threshold\").notNull().default(0.5),\n isEnabled: boolean(\"is_enabled\").notNull().default(true),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\n}, (table) => ({\n tenantIdIdx: index(\"idx_policies_tenant_id\").on(table.tenantId),\n}));\n// ─── Usage Logs ─────────────────────────────────────────────────\nexport const usageLogs = pgTable(\"usage_logs\", {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n tenantId: varchar(\"tenant_id\", { length: 64 }).notNull().default(\"default\"),\n agentId: uuid(\"agent_id\"),\n endpoint: varchar(\"endpoint\", { length: 255 }).notNull(),\n statusCode: integer(\"status_code\").notNull(),\n responseSafe: boolean(\"response_safe\"),\n categories: jsonb(\"categories\").notNull().default([]),\n latencyMs: integer(\"latency_ms\").notNull(),\n requestId: varchar(\"request_id\", { length: 64 }).notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\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 = pgTable(\"detection_results\", {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n tenantId: varchar(\"tenant_id\", { length: 64 }).notNull().default(\"default\"),\n agentId: uuid(\"agent_id\"),\n safe: boolean(\"safe\").notNull(),\n categories: jsonb(\"categories\").notNull().default([]),\n sensitivityScore: real(\"sensitivity_score\").notNull().default(0),\n findings: jsonb(\"findings\").notNull().default([]),\n latencyMs: integer(\"latency_ms\").notNull(),\n requestId: varchar(\"request_id\", { length: 64 }).notNull(),\n // Static scan fields\n scanType: varchar(\"scan_type\", { length: 16 }).notNull().default(\"dynamic\"), // \"static\" or \"dynamic\"\n filePath: text(\"file_path\"), // Relative path from workspace for static scans\n fileType: varchar(\"file_type\", { length: 16 }), // \"soul\", \"agent\", \"memory\", \"task\", \"skill\", \"plugin\", \"other\"\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\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 = pgTable(\"tool_call_observations\", {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n tenantId: varchar(\"tenant_id\", { length: 64 }).notNull().default(\"default\"),\n agentId: uuid(\"agent_id\").notNull(),\n sessionKey: varchar(\"session_key\", { length: 255 }),\n toolName: varchar(\"tool_name\", { length: 255 }).notNull(),\n category: varchar(\"category\", { length: 64 }),\n accessPattern: varchar(\"access_pattern\", { length: 32 }),\n paramsJson: jsonb(\"params_json\"),\n phase: varchar(\"phase\", { length: 16 }).notNull(),\n resultJson: jsonb(\"result_json\"),\n error: text(\"error\"),\n durationMs: integer(\"duration_ms\"),\n blocked: boolean(\"blocked\").notNull().default(false),\n blockReason: text(\"block_reason\"),\n timestamp: timestamp(\"timestamp\", { withTimezone: true }).notNull().defaultNow(),\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// ─── Gateway Activity ─────────────────────────────────────────\n// Records of gateway sanitization and restoration events\nexport const gatewayActivity = pgTable(\"gateway_activity\", {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n tenantId: varchar(\"tenant_id\", { length: 64 }).notNull().default(\"default\"),\n eventId: varchar(\"event_id\", { length: 128 }).notNull(), // From gateway: gw-timestamp-counter-type\n requestId: varchar(\"request_id\", { length: 64 }).notNull(), // gw-timestamp-counter\n timestamp: timestamp(\"timestamp\", { withTimezone: true }).notNull(),\n type: varchar(\"type\", { length: 16 }).notNull(), // \"sanitize\" or \"restore\"\n direction: varchar(\"direction\", { length: 16 }).notNull(), // \"request\" or \"response\"\n backend: varchar(\"backend\", { length: 32 }).notNull(), // \"openai\", \"anthropic\", \"gemini\"\n endpoint: varchar(\"endpoint\", { length: 255 }).notNull(), // e.g., \"/v1/chat/completions\"\n model: varchar(\"model\", { length: 128 }),\n redactionCount: integer(\"redaction_count\").notNull().default(0),\n categories: jsonb(\"categories\").notNull().default({}), // { email: 2, secret: 1 }\n durationMs: integer(\"duration_ms\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\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 = pgTable(\"agent_permissions\", {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n tenantId: varchar(\"tenant_id\", { length: 64 }).notNull().default(\"default\"),\n agentId: uuid(\"agent_id\").notNull(),\n toolName: varchar(\"tool_name\", { length: 255 }).notNull(),\n category: varchar(\"category\", { length: 64 }),\n accessPattern: varchar(\"access_pattern\", { length: 32 }),\n targetsJson: jsonb(\"targets_json\").notNull().default([]),\n callCount: integer(\"call_count\").notNull().default(0),\n errorCount: integer(\"error_count\").notNull().default(0),\n firstSeen: timestamp(\"first_seen\", { withTimezone: true }).notNull().defaultNow(),\n lastSeen: timestamp(\"last_seen\", { withTimezone: true }).notNull().defaultNow(),\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// ─── Magic Links ─────────────────────────────────────────────\nexport const magicLinks = pgTable(\"magic_links\", {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n email: varchar(\"email\", { length: 255 }).notNull(),\n token: text(\"token\").notNull().unique(),\n expiresAt: timestamp(\"expires_at\", { withTimezone: true }).notNull(),\n usedAt: timestamp(\"used_at\", { withTimezone: true }),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\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 ────────────────────────────────────────────\nexport const userSessions = pgTable(\"user_sessions\", {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n email: varchar(\"email\", { length: 255 }).notNull(),\n token: text(\"token\").notNull().unique(),\n expiresAt: timestamp(\"expires_at\", { withTimezone: true }).notNull(),\n createdAt: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n}, (table) => ({\n tokenIdx: index(\"idx_user_sessions_token\").on(table.token),\n emailIdx: index(\"idx_user_sessions_email\").on(table.email),\n}));\n// ─── Agentic Hours ──────────────────────────────────────────────\n// Daily aggregated duration metrics per agent\nexport const agenticHoursLocal = pgTable(\"agentic_hours_local\", {\n id: uuid(\"id\").primaryKey().defaultRandom(),\n tenantId: varchar(\"tenant_id\", { length: 64 }).notNull().default(\"default\"),\n agentId: uuid(\"agent_id\").notNull(),\n date: varchar(\"date\", { length: 10 }).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: timestamp(\"created_at\", { withTimezone: true }).notNull().defaultNow(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true }).notNull().defaultNow(),\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=pg.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`);