@bevel-software/platform-core-backend 0.22.0 → 0.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (466) hide show
  1. package/dist/core/core-ports.d.ts +11 -1
  2. package/dist/core/core-ports.d.ts.map +1 -1
  3. package/dist/core/core-ports.js.map +1 -1
  4. package/dist/core/create-core-server.d.ts +3 -3
  5. package/dist/core/create-core-server.d.ts.map +1 -1
  6. package/dist/core/create-core-server.js +46 -13
  7. package/dist/core/create-core-server.js.map +1 -1
  8. package/dist/core/create-core-services.d.ts +12 -2
  9. package/dist/core/create-core-services.d.ts.map +1 -1
  10. package/dist/core/create-core-services.js +137 -24
  11. package/dist/core/create-core-services.js.map +1 -1
  12. package/dist/core/lifecycle.d.ts +46 -1
  13. package/dist/core/lifecycle.d.ts.map +1 -1
  14. package/dist/core/lifecycle.js +99 -13
  15. package/dist/core/lifecycle.js.map +1 -1
  16. package/dist/core-config.d.ts +16 -12
  17. package/dist/core-config.d.ts.map +1 -1
  18. package/dist/core-config.js +28 -13
  19. package/dist/core-config.js.map +1 -1
  20. package/dist/index.d.ts +6 -4
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +12 -3
  23. package/dist/index.js.map +1 -1
  24. package/dist/modules/access/access-control.interface.d.ts +42 -12
  25. package/dist/modules/access/access-control.interface.d.ts.map +1 -1
  26. package/dist/modules/access/access-control.service.d.ts +67 -10
  27. package/dist/modules/access/access-control.service.d.ts.map +1 -1
  28. package/dist/modules/access/access-control.service.js +214 -35
  29. package/dist/modules/access/access-control.service.js.map +1 -1
  30. package/dist/modules/access/access.routes.d.ts.map +1 -1
  31. package/dist/modules/access/access.routes.js +17 -16
  32. package/dist/modules/access/access.routes.js.map +1 -1
  33. package/dist/modules/access/directory-sync-bot.d.ts.map +1 -1
  34. package/dist/modules/access/directory-sync-bot.js +7 -3
  35. package/dist/modules/access/directory-sync-bot.js.map +1 -1
  36. package/dist/modules/agent-instructions/agent-instructions.routes.d.ts +8 -1
  37. package/dist/modules/agent-instructions/agent-instructions.routes.d.ts.map +1 -1
  38. package/dist/modules/agent-instructions/agent-instructions.routes.js +8 -2
  39. package/dist/modules/agent-instructions/agent-instructions.routes.js.map +1 -1
  40. package/dist/modules/agent-instructions/compose.d.ts +38 -6
  41. package/dist/modules/agent-instructions/compose.d.ts.map +1 -1
  42. package/dist/modules/agent-instructions/compose.js +39 -6
  43. package/dist/modules/agent-instructions/compose.js.map +1 -1
  44. package/dist/modules/agent-instructions/index.d.ts +2 -1
  45. package/dist/modules/agent-instructions/index.d.ts.map +1 -1
  46. package/dist/modules/agent-instructions/index.js +2 -1
  47. package/dist/modules/agent-instructions/index.js.map +1 -1
  48. package/dist/modules/agent-instructions/shared-file-rules.d.ts +115 -0
  49. package/dist/modules/agent-instructions/shared-file-rules.d.ts.map +1 -0
  50. package/dist/modules/agent-instructions/shared-file-rules.js +272 -0
  51. package/dist/modules/agent-instructions/shared-file-rules.js.map +1 -0
  52. package/dist/modules/audit/agent-audit.service.d.ts.map +1 -1
  53. package/dist/modules/audit/agent-audit.service.js +4 -2
  54. package/dist/modules/audit/agent-audit.service.js.map +1 -1
  55. package/dist/modules/auth/account-admission.d.ts +58 -7
  56. package/dist/modules/auth/account-admission.d.ts.map +1 -1
  57. package/dist/modules/auth/account-admission.js +44 -1
  58. package/dist/modules/auth/account-admission.js.map +1 -1
  59. package/dist/modules/auth/account-erasure.service.d.ts.map +1 -1
  60. package/dist/modules/auth/account-erasure.service.js +57 -16
  61. package/dist/modules/auth/account-erasure.service.js.map +1 -1
  62. package/dist/modules/auth/account.routes.d.ts +1 -1
  63. package/dist/modules/auth/account.routes.d.ts.map +1 -1
  64. package/dist/modules/auth/account.routes.js +61 -5
  65. package/dist/modules/auth/account.routes.js.map +1 -1
  66. package/dist/modules/auth/auth.middleware.d.ts +1 -1
  67. package/dist/modules/auth/auth.middleware.d.ts.map +1 -1
  68. package/dist/modules/auth/auth.middleware.js +18 -7
  69. package/dist/modules/auth/auth.middleware.js.map +1 -1
  70. package/dist/modules/auth/auth.routes.d.ts.map +1 -1
  71. package/dist/modules/auth/auth.routes.js +8 -0
  72. package/dist/modules/auth/auth.routes.js.map +1 -1
  73. package/dist/modules/auth/auth.service.d.ts +70 -2
  74. package/dist/modules/auth/auth.service.d.ts.map +1 -1
  75. package/dist/modules/auth/auth.service.js +197 -18
  76. package/dist/modules/auth/auth.service.js.map +1 -1
  77. package/dist/modules/auth/oidc-auth-provider.d.ts.map +1 -1
  78. package/dist/modules/auth/oidc-auth-provider.js +7 -2
  79. package/dist/modules/auth/oidc-auth-provider.js.map +1 -1
  80. package/dist/modules/code-mode/code-mode.tool.d.ts +20 -2
  81. package/dist/modules/code-mode/code-mode.tool.d.ts.map +1 -1
  82. package/dist/modules/code-mode/code-mode.tool.js +66 -35
  83. package/dist/modules/code-mode/code-mode.tool.js.map +1 -1
  84. package/dist/modules/database/connection.d.ts +16 -0
  85. package/dist/modules/database/connection.d.ts.map +1 -1
  86. package/dist/modules/database/connection.js +117 -0
  87. package/dist/modules/database/connection.js.map +1 -1
  88. package/dist/modules/database/core-schema.d.ts +337 -120
  89. package/dist/modules/database/core-schema.d.ts.map +1 -1
  90. package/dist/modules/database/core-schema.js +116 -58
  91. package/dist/modules/database/core-schema.js.map +1 -1
  92. package/dist/modules/database/migrate.d.ts +8 -0
  93. package/dist/modules/database/migrate.d.ts.map +1 -1
  94. package/dist/modules/database/migrate.js +271 -1
  95. package/dist/modules/database/migrate.js.map +1 -1
  96. package/dist/modules/kb-fs/branch-name.d.ts.map +1 -1
  97. package/dist/modules/kb-fs/branch-name.js +12 -2
  98. package/dist/modules/kb-fs/branch-name.js.map +1 -1
  99. package/dist/modules/kb-fs/repo-path.d.ts +11 -16
  100. package/dist/modules/kb-fs/repo-path.d.ts.map +1 -1
  101. package/dist/modules/kb-fs/repo-path.js +79 -0
  102. package/dist/modules/kb-fs/repo-path.js.map +1 -1
  103. package/dist/modules/kb-sync/kb-sync.routes.d.ts +2 -2
  104. package/dist/modules/kb-sync/kb-sync.routes.d.ts.map +1 -1
  105. package/dist/modules/kb-sync/kb-sync.routes.js +14 -3
  106. package/dist/modules/kb-sync/kb-sync.routes.js.map +1 -1
  107. package/dist/modules/kb-sync/sync-auth.d.ts +3 -1
  108. package/dist/modules/kb-sync/sync-auth.d.ts.map +1 -1
  109. package/dist/modules/kb-sync/sync-auth.js +1 -1
  110. package/dist/modules/kb-sync/sync-auth.js.map +1 -1
  111. package/dist/modules/mcp/mcp-auth.middleware.d.ts.map +1 -1
  112. package/dist/modules/mcp/mcp-auth.middleware.js +21 -6
  113. package/dist/modules/mcp/mcp-auth.middleware.js.map +1 -1
  114. package/dist/modules/mcp/mcp.service.d.ts +8 -0
  115. package/dist/modules/mcp/mcp.service.d.ts.map +1 -1
  116. package/dist/modules/mcp/mcp.service.js +38 -8
  117. package/dist/modules/mcp/mcp.service.js.map +1 -1
  118. package/dist/modules/mcp/oauth/bevel-oauth-provider.d.ts.map +1 -1
  119. package/dist/modules/mcp/oauth/bevel-oauth-provider.js +3 -2
  120. package/dist/modules/mcp/oauth/bevel-oauth-provider.js.map +1 -1
  121. package/dist/modules/plugins/join-request-records.store.d.ts.map +1 -1
  122. package/dist/modules/plugins/join-request-records.store.js +7 -4
  123. package/dist/modules/plugins/join-request-records.store.js.map +1 -1
  124. package/dist/modules/settings/deployment-settings.service.d.ts.map +1 -1
  125. package/dist/modules/settings/deployment-settings.service.js +8 -3
  126. package/dist/modules/settings/deployment-settings.service.js.map +1 -1
  127. package/dist/modules/settings/setup.routes.d.ts +52 -1
  128. package/dist/modules/settings/setup.routes.d.ts.map +1 -1
  129. package/dist/modules/settings/setup.routes.js +207 -19
  130. package/dist/modules/settings/setup.routes.js.map +1 -1
  131. package/dist/modules/skills/skills.contract.d.ts +90 -18
  132. package/dist/modules/skills/skills.contract.d.ts.map +1 -1
  133. package/dist/modules/skills/skills.contract.js +4 -1
  134. package/dist/modules/skills/skills.contract.js.map +1 -1
  135. package/dist/modules/skills/skills.service.d.ts +98 -9
  136. package/dist/modules/skills/skills.service.d.ts.map +1 -1
  137. package/dist/modules/skills/skills.service.js +239 -37
  138. package/dist/modules/skills/skills.service.js.map +1 -1
  139. package/dist/modules/skills/skills.tools.d.ts +7 -0
  140. package/dist/modules/skills/skills.tools.d.ts.map +1 -1
  141. package/dist/modules/skills/skills.tools.js +71 -7
  142. package/dist/modules/skills/skills.tools.js.map +1 -1
  143. package/dist/modules/tool-auth/external-api-key.service.d.ts.map +1 -1
  144. package/dist/modules/tool-auth/external-api-key.service.js +12 -4
  145. package/dist/modules/tool-auth/external-api-key.service.js.map +1 -1
  146. package/dist/modules/tool-auth/internal-token.service.d.ts +3 -3
  147. package/dist/modules/tool-auth/tool-auth.middleware.d.ts +16 -7
  148. package/dist/modules/tool-auth/tool-auth.middleware.d.ts.map +1 -1
  149. package/dist/modules/tool-auth/tool-auth.middleware.js +34 -12
  150. package/dist/modules/tool-auth/tool-auth.middleware.js.map +1 -1
  151. package/dist/modules/tool-helpers/tool-handler.d.ts +2 -1
  152. package/dist/modules/tool-helpers/tool-handler.d.ts.map +1 -1
  153. package/dist/modules/tool-helpers/tool-handler.js +25 -4
  154. package/dist/modules/tool-helpers/tool-handler.js.map +1 -1
  155. package/dist/modules/tool-helpers/tool.contract.d.ts +3 -2
  156. package/dist/modules/tool-helpers/tool.contract.d.ts.map +1 -1
  157. package/dist/modules/tool-helpers/tool.contract.js.map +1 -1
  158. package/dist/modules/tool-helpers/validate-token.js +1 -1
  159. package/dist/modules/tool-helpers/validate-token.js.map +1 -1
  160. package/dist/modules/tool-manuals/tool-manuals.tools.d.ts.map +1 -1
  161. package/dist/modules/tool-manuals/tool-manuals.tools.js +42 -31
  162. package/dist/modules/tool-manuals/tool-manuals.tools.js.map +1 -1
  163. package/dist/modules/tool-registry/description-length.d.ts +80 -0
  164. package/dist/modules/tool-registry/description-length.d.ts.map +1 -0
  165. package/dist/modules/tool-registry/description-length.js +108 -0
  166. package/dist/modules/tool-registry/description-length.js.map +1 -0
  167. package/dist/modules/workflow/agent-tools/change-request-summary.d.ts +98 -0
  168. package/dist/modules/workflow/agent-tools/change-request-summary.d.ts.map +1 -0
  169. package/dist/modules/workflow/agent-tools/change-request-summary.js +81 -0
  170. package/dist/modules/workflow/agent-tools/change-request-summary.js.map +1 -0
  171. package/dist/modules/workflow/agent-tools/workflow.tools.d.ts.map +1 -1
  172. package/dist/modules/workflow/agent-tools/workflow.tools.js +75 -35
  173. package/dist/modules/workflow/agent-tools/workflow.tools.js.map +1 -1
  174. package/dist/modules/workflow/file-lock.service.d.ts +24 -0
  175. package/dist/modules/workflow/file-lock.service.d.ts.map +1 -1
  176. package/dist/modules/workflow/file-lock.service.js +30 -0
  177. package/dist/modules/workflow/file-lock.service.js.map +1 -1
  178. package/dist/modules/workflow/git/git.service.d.ts +94 -0
  179. package/dist/modules/workflow/git/git.service.d.ts.map +1 -1
  180. package/dist/modules/workflow/git/git.service.js +193 -3
  181. package/dist/modules/workflow/git/git.service.js.map +1 -1
  182. package/dist/modules/workflow/pending-commits.service.d.ts +38 -0
  183. package/dist/modules/workflow/pending-commits.service.d.ts.map +1 -1
  184. package/dist/modules/workflow/pending-commits.service.js +60 -1
  185. package/dist/modules/workflow/pending-commits.service.js.map +1 -1
  186. package/dist/modules/workflow/recovery-bot.d.ts.map +1 -1
  187. package/dist/modules/workflow/recovery-bot.js +7 -3
  188. package/dist/modules/workflow/recovery-bot.js.map +1 -1
  189. package/dist/modules/workflow/review-workflow/review-workflow.service.d.ts.map +1 -1
  190. package/dist/modules/workflow/review-workflow/review-workflow.service.js +12 -3
  191. package/dist/modules/workflow/review-workflow/review-workflow.service.js.map +1 -1
  192. package/dist/modules/workflow/workflow-hooks.d.ts +54 -32
  193. package/dist/modules/workflow/workflow-hooks.d.ts.map +1 -1
  194. package/dist/modules/workflow/workflow-hooks.js +16 -1
  195. package/dist/modules/workflow/workflow-hooks.js.map +1 -1
  196. package/dist/modules/workflow/workflow.service.d.ts +60 -6
  197. package/dist/modules/workflow/workflow.service.d.ts.map +1 -1
  198. package/dist/modules/workflow/workflow.service.js +115 -5
  199. package/dist/modules/workflow/workflow.service.js.map +1 -1
  200. package/dist/modules/workspace/agent-access.gate.d.ts +94 -0
  201. package/dist/modules/workspace/agent-access.gate.d.ts.map +1 -0
  202. package/dist/modules/workspace/agent-access.gate.js +123 -0
  203. package/dist/modules/workspace/agent-access.gate.js.map +1 -0
  204. package/dist/modules/workspace/agent-upload.routes.d.ts +77 -0
  205. package/dist/modules/workspace/agent-upload.routes.d.ts.map +1 -0
  206. package/dist/modules/workspace/agent-upload.routes.js +210 -0
  207. package/dist/modules/workspace/agent-upload.routes.js.map +1 -0
  208. package/dist/modules/workspace/agent-upload.store.d.ts +284 -0
  209. package/dist/modules/workspace/agent-upload.store.d.ts.map +1 -0
  210. package/dist/modules/workspace/agent-upload.store.js +553 -0
  211. package/dist/modules/workspace/agent-upload.store.js.map +1 -0
  212. package/dist/modules/workspace/routine-write-policy.d.ts +5 -6
  213. package/dist/modules/workspace/routine-write-policy.d.ts.map +1 -1
  214. package/dist/modules/workspace/routine-write-policy.js +5 -6
  215. package/dist/modules/workspace/routine-write-policy.js.map +1 -1
  216. package/dist/modules/workspace/session-sink.d.ts +5 -5
  217. package/dist/modules/workspace/set-aside-clone.d.ts +46 -0
  218. package/dist/modules/workspace/set-aside-clone.d.ts.map +1 -0
  219. package/dist/modules/workspace/set-aside-clone.js +92 -0
  220. package/dist/modules/workspace/set-aside-clone.js.map +1 -0
  221. package/dist/modules/workspace/startup/kb-startup-runner.d.ts +59 -9
  222. package/dist/modules/workspace/startup/kb-startup-runner.d.ts.map +1 -1
  223. package/dist/modules/workspace/startup/kb-startup-runner.js +65 -24
  224. package/dist/modules/workspace/startup/kb-startup-runner.js.map +1 -1
  225. package/dist/modules/workspace/startup/steps/seed-tree.d.ts.map +1 -1
  226. package/dist/modules/workspace/startup/steps/seed-tree.js +3 -3
  227. package/dist/modules/workspace/startup/steps/seed-tree.js.map +1 -1
  228. package/dist/modules/workspace/startup/steps/template-source.d.ts +40 -0
  229. package/dist/modules/workspace/startup/steps/template-source.d.ts.map +1 -1
  230. package/dist/modules/workspace/startup/steps/template-source.js +46 -4
  231. package/dist/modules/workspace/startup/steps/template-source.js.map +1 -1
  232. package/dist/modules/workspace/upload-limits.d.ts +13 -0
  233. package/dist/modules/workspace/upload-limits.d.ts.map +1 -0
  234. package/dist/modules/workspace/upload-limits.js +13 -0
  235. package/dist/modules/workspace/upload-limits.js.map +1 -0
  236. package/dist/modules/workspace/workspace.routes.d.ts.map +1 -1
  237. package/dist/modules/workspace/workspace.routes.js +93 -4
  238. package/dist/modules/workspace/workspace.routes.js.map +1 -1
  239. package/dist/modules/workspace/workspace.service.d.ts +128 -5
  240. package/dist/modules/workspace/workspace.service.d.ts.map +1 -1
  241. package/dist/modules/workspace/workspace.service.js +316 -58
  242. package/dist/modules/workspace/workspace.service.js.map +1 -1
  243. package/dist/modules/workspace/workspace.tools.d.ts +13 -11
  244. package/dist/modules/workspace/workspace.tools.d.ts.map +1 -1
  245. package/dist/modules/workspace/workspace.tools.js +791 -198
  246. package/dist/modules/workspace/workspace.tools.js.map +1 -1
  247. package/dist/modules/workspace/write-denial.d.ts +0 -6
  248. package/dist/modules/workspace/write-denial.d.ts.map +1 -1
  249. package/dist/modules/workspace/write-denial.js +0 -6
  250. package/dist/modules/workspace/write-denial.js.map +1 -1
  251. package/dist/modules/workspace/zip-entry-rules.d.ts +114 -0
  252. package/dist/modules/workspace/zip-entry-rules.d.ts.map +1 -0
  253. package/dist/modules/workspace/zip-entry-rules.js +154 -0
  254. package/dist/modules/workspace/zip-entry-rules.js.map +1 -0
  255. package/dist/modules/write-access/write-access.d.ts +60 -0
  256. package/dist/modules/write-access/write-access.d.ts.map +1 -0
  257. package/dist/modules/write-access/write-access.js +129 -0
  258. package/dist/modules/write-access/write-access.js.map +1 -0
  259. package/dist/shared/column-crypto.d.ts +194 -0
  260. package/dist/shared/column-crypto.d.ts.map +1 -0
  261. package/dist/shared/column-crypto.js +144 -0
  262. package/dist/shared/column-crypto.js.map +1 -0
  263. package/dist/shared/domain-errors.d.ts +25 -0
  264. package/dist/shared/domain-errors.d.ts.map +1 -1
  265. package/dist/shared/domain-errors.js +28 -0
  266. package/dist/shared/domain-errors.js.map +1 -1
  267. package/dist/shared/git.contract.d.ts +20 -0
  268. package/dist/shared/git.contract.d.ts.map +1 -1
  269. package/dist/shared/git.contract.js +26 -0
  270. package/dist/shared/git.contract.js.map +1 -1
  271. package/dist/shared/token-crypto.d.ts.map +1 -1
  272. package/dist/shared/token-crypto.js +25 -1
  273. package/dist/shared/token-crypto.js.map +1 -1
  274. package/dist/tenancy/static-tenant-source.d.ts +0 -1
  275. package/dist/tenancy/static-tenant-source.d.ts.map +1 -1
  276. package/dist/tenancy/static-tenant-source.js +1 -2
  277. package/dist/tenancy/static-tenant-source.js.map +1 -1
  278. package/dist/tenancy/tenant-secrets.d.ts +5 -1
  279. package/dist/tenancy/tenant-secrets.d.ts.map +1 -1
  280. package/dist/tenancy/tenant-secrets.js +4 -0
  281. package/dist/tenancy/tenant-secrets.js.map +1 -1
  282. package/kb-template/AGENTS.md +2 -0
  283. package/migrations/0014_change_request_closed_reason.sql +1 -0
  284. package/migrations/0015_account_deactivation.sql +3 -0
  285. package/migrations/0016_pii_encryption.sql +20 -0
  286. package/migrations/meta/0014_snapshot.json +2265 -0
  287. package/migrations/meta/0015_snapshot.json +2271 -0
  288. package/migrations/meta/0016_snapshot.json +2327 -0
  289. package/migrations/meta/_journal.json +21 -0
  290. package/package.json +3 -3
  291. package/src/__tests__/kb-layout-config.test.ts +0 -2
  292. package/src/__tests__/retired-settings.test.ts +96 -0
  293. package/src/core/__tests__/gated-boot.test.ts +132 -0
  294. package/src/core/__tests__/lifecycle.test.ts +241 -5
  295. package/src/core/__tests__/set-aside-root-is-one-place.test.ts +63 -0
  296. package/src/core/core-ports.ts +11 -1
  297. package/src/core/create-core-server.ts +52 -16
  298. package/src/core/create-core-services.ts +156 -24
  299. package/src/core/lifecycle.ts +117 -13
  300. package/src/core-config.ts +31 -14
  301. package/src/index.ts +30 -1
  302. package/src/modules/access/__tests__/access-control.preview-relocation.test.ts +385 -0
  303. package/src/modules/access/__tests__/access-control.prospective.test.ts +94 -18
  304. package/src/modules/access/__tests__/access.routes.prospective.test.ts +6 -7
  305. package/src/modules/access/__tests__/users-db-double.ts +21 -12
  306. package/src/modules/access/access-control.interface.ts +43 -12
  307. package/src/modules/access/access-control.service.ts +234 -36
  308. package/src/modules/access/access.routes.ts +17 -16
  309. package/src/modules/access/directory-sync-bot.ts +7 -3
  310. package/src/modules/agent-instructions/__tests__/agent-instructions.route.test.ts +11 -5
  311. package/src/modules/agent-instructions/__tests__/compose.test.ts +19 -10
  312. package/src/modules/agent-instructions/__tests__/shared-file-rules.test.ts +238 -0
  313. package/src/modules/agent-instructions/agent-instructions.routes.ts +12 -2
  314. package/src/modules/agent-instructions/compose.ts +50 -7
  315. package/src/modules/agent-instructions/index.ts +12 -0
  316. package/src/modules/agent-instructions/shared-file-rules.ts +314 -0
  317. package/src/modules/audit/agent-audit.service.ts +4 -2
  318. package/src/modules/auth/__tests__/account-deactivation.test.ts +253 -0
  319. package/src/modules/auth/__tests__/account-erasure.approval-gate.test.ts +6 -2
  320. package/src/modules/auth/__tests__/account.routes.test.ts +87 -6
  321. package/src/modules/auth/__tests__/auth.middleware.test.ts +45 -22
  322. package/src/modules/auth/__tests__/auth.service.test.ts +4 -2
  323. package/src/modules/auth/account-admission.ts +78 -9
  324. package/src/modules/auth/account-erasure.service.ts +69 -18
  325. package/src/modules/auth/account.routes.ts +63 -7
  326. package/src/modules/auth/auth.middleware.ts +19 -8
  327. package/src/modules/auth/auth.routes.ts +8 -0
  328. package/src/modules/auth/auth.service.ts +206 -23
  329. package/src/modules/auth/oidc-auth-provider.ts +7 -2
  330. package/src/modules/code-mode/__tests__/chain-runtime.e2e.test.ts +335 -0
  331. package/src/modules/code-mode/__tests__/code-mode.tool.test.ts +46 -2
  332. package/src/modules/code-mode/code-mode.tool.ts +80 -34
  333. package/src/modules/database/__tests__/connection.test.ts +12 -0
  334. package/src/modules/database/__tests__/pii-backfill.pg.test.ts +561 -0
  335. package/src/modules/database/connection.ts +117 -0
  336. package/src/modules/database/core-schema.ts +116 -58
  337. package/src/modules/database/migrate.ts +353 -1
  338. package/src/modules/kb-fs/__tests__/branch-name.test.ts +10 -0
  339. package/src/modules/kb-fs/__tests__/repo-path.test.ts +123 -0
  340. package/src/modules/kb-fs/branch-name.ts +14 -1
  341. package/src/modules/kb-fs/repo-path.ts +85 -0
  342. package/src/modules/kb-sync/__tests__/kb-sync.routes.test.ts +26 -1
  343. package/src/modules/kb-sync/kb-sync.routes.ts +14 -4
  344. package/src/modules/kb-sync/sync-auth.ts +2 -2
  345. package/src/modules/mcp/__tests__/mcp-auth.middleware.test.ts +60 -3
  346. package/src/modules/mcp/__tests__/mcp.e2e.test.ts +4 -3
  347. package/src/modules/mcp/__tests__/mcp.service.test.ts +115 -13
  348. package/src/modules/mcp/mcp-auth.middleware.ts +20 -6
  349. package/src/modules/mcp/mcp.service.ts +46 -7
  350. package/src/modules/mcp/oauth/bevel-oauth-provider.ts +3 -1
  351. package/src/modules/plugins/__tests__/plugins.tools.test.ts +2 -1
  352. package/src/modules/plugins/join-request-records.store.ts +7 -4
  353. package/src/modules/settings/__tests__/deployment-settings.service.test.ts +16 -0
  354. package/src/modules/settings/__tests__/setup.routes.git-mode.test.ts +91 -58
  355. package/src/modules/settings/__tests__/setup.routes.github-app.test.ts +25 -8
  356. package/src/modules/settings/__tests__/setup.routes.managed-phase.test.ts +14 -11
  357. package/src/modules/settings/__tests__/setup.routes.repository-change.test.ts +390 -0
  358. package/src/modules/settings/__tests__/setup.routes.test.ts +3 -0
  359. package/src/modules/settings/deployment-settings.service.ts +8 -3
  360. package/src/modules/settings/setup.routes.ts +263 -19
  361. package/src/modules/skills/__tests__/allowed-tools-warn.tools.test.ts +2 -1
  362. package/src/modules/skills/__tests__/branch-skills.tools.test.ts +218 -0
  363. package/src/modules/skills/__tests__/skills.service.test.ts +229 -5
  364. package/src/modules/skills/skills.contract.ts +91 -18
  365. package/src/modules/skills/skills.service.ts +278 -41
  366. package/src/modules/skills/skills.tools.ts +80 -8
  367. package/src/modules/tool-auth/__tests__/manual-auth.middleware.test.ts +14 -1
  368. package/src/modules/tool-auth/external-api-key.service.ts +12 -4
  369. package/src/modules/tool-auth/internal-token.service.ts +3 -3
  370. package/src/modules/tool-auth/tool-auth.middleware.ts +34 -11
  371. package/src/modules/tool-helpers/__tests__/agent-roles-write.test.ts +5 -3
  372. package/src/modules/tool-helpers/__tests__/phase4-tools.test.ts +3 -3
  373. package/src/modules/tool-helpers/__tests__/validate-token.test.ts +11 -1
  374. package/src/modules/tool-helpers/tool-handler.ts +24 -4
  375. package/src/modules/tool-helpers/tool.contract.ts +3 -2
  376. package/src/modules/tool-helpers/validate-token.ts +1 -1
  377. package/src/modules/tool-manuals/tool-manuals.tools.ts +44 -31
  378. package/src/modules/tool-registry/__tests__/tool-description-length.test.ts +378 -0
  379. package/src/modules/tool-registry/description-length.ts +111 -0
  380. package/src/modules/workflow/__tests__/pending-commits.repository-replaced.test.ts +111 -0
  381. package/src/modules/workflow/__tests__/workflow.routes.history-read-gate.test.ts +25 -0
  382. package/src/modules/workflow/__tests__/workflow.service.repository-replaced.test.ts +249 -0
  383. package/src/modules/workflow/agent-tools/__tests__/workflow.tools.test.ts +264 -6
  384. package/src/modules/workflow/agent-tools/change-request-summary.ts +182 -0
  385. package/src/modules/workflow/agent-tools/workflow.tools.ts +86 -35
  386. package/src/modules/workflow/file-lock.service.ts +31 -0
  387. package/src/modules/workflow/git/__tests__/git.service.fileBytesAtCommit.test.ts +260 -0
  388. package/src/modules/workflow/git/__tests__/git.service.prFetchFailure.test.ts +170 -0
  389. package/src/modules/workflow/git/git.service.ts +215 -1
  390. package/src/modules/workflow/pending-commits.service.ts +64 -2
  391. package/src/modules/workflow/recovery-bot.ts +7 -3
  392. package/src/modules/workflow/review-workflow/__tests__/carry-approvals-forward.test.ts +4 -0
  393. package/src/modules/workflow/review-workflow/__tests__/erase-approver.test.ts +25 -3
  394. package/src/modules/workflow/review-workflow/review-workflow.service.ts +12 -3
  395. package/src/modules/workflow/workflow-hooks.ts +64 -26
  396. package/src/modules/workflow/workflow.service.ts +125 -5
  397. package/src/modules/workspace/__tests__/agent-access.gate.test.ts +208 -0
  398. package/src/modules/workspace/__tests__/agent-uploads.test.ts +1604 -0
  399. package/src/modules/workspace/__tests__/escape-sequences.routes.test.ts +394 -0
  400. package/src/modules/workspace/__tests__/file-stat-access.test.ts +2 -1
  401. package/src/modules/workspace/__tests__/git-internals.security.test.ts +2 -1
  402. package/src/modules/workspace/__tests__/set-aside-clone.test.ts +52 -0
  403. package/src/modules/workspace/__tests__/workspace.routes.at-ref.test.ts +305 -0
  404. package/src/modules/workspace/__tests__/workspace.routes.download.test.ts +2 -0
  405. package/src/modules/workspace/__tests__/workspace.service.any-workspace-credentials.test.ts +156 -0
  406. package/src/modules/workspace/__tests__/workspace.service.forget-clone-races.test.ts +147 -0
  407. package/src/modules/workspace/__tests__/workspace.service.replaced-repository.test.ts +402 -0
  408. package/src/modules/workspace/__tests__/workspace.service.test.ts +77 -9
  409. package/src/modules/workspace/__tests__/workspace.tools.agents-file.test.ts +41 -39
  410. package/src/modules/workspace/__tests__/workspace.tools.branch-errors.test.ts +2 -3
  411. package/src/modules/workspace/__tests__/workspace.tools.test.ts +766 -56
  412. package/src/modules/workspace/agent-access.gate.ts +164 -0
  413. package/src/modules/workspace/agent-upload.routes.ts +214 -0
  414. package/src/modules/workspace/agent-upload.store.ts +668 -0
  415. package/src/modules/workspace/routine-write-policy.ts +5 -6
  416. package/src/modules/workspace/session-sink.ts +5 -5
  417. package/src/modules/workspace/set-aside-clone.ts +96 -0
  418. package/src/modules/workspace/startup/__tests__/kb-startup-runner.test.ts +86 -0
  419. package/src/modules/workspace/startup/kb-startup-runner.ts +115 -34
  420. package/src/modules/workspace/startup/steps/__tests__/steps.test.ts +9 -9
  421. package/src/modules/workspace/startup/steps/seed-tree.ts +3 -6
  422. package/src/modules/workspace/startup/steps/template-source.ts +53 -5
  423. package/src/modules/workspace/upload-limits.ts +12 -0
  424. package/src/modules/workspace/workspace.routes.ts +96 -5
  425. package/src/modules/workspace/workspace.service.ts +319 -61
  426. package/src/modules/workspace/workspace.tools.ts +894 -214
  427. package/src/modules/workspace/write-denial.ts +0 -8
  428. package/src/modules/workspace/zip-entry-rules.ts +173 -0
  429. package/src/modules/write-access/__tests__/write-access.test.ts +248 -0
  430. package/src/modules/write-access/write-access.ts +153 -0
  431. package/src/shared/__tests__/column-crypto.test.ts +217 -0
  432. package/src/shared/column-crypto.ts +218 -0
  433. package/src/shared/domain-errors.ts +31 -0
  434. package/src/shared/git.contract.ts +27 -0
  435. package/src/shared/token-crypto.ts +28 -1
  436. package/src/tenancy/__tests__/static-tenant-source.test.ts +4 -1
  437. package/src/tenancy/static-tenant-source.ts +1 -3
  438. package/src/tenancy/tenant-secrets.ts +5 -1
  439. package/dist/modules/workflow/session-ontology.policy.d.ts +0 -52
  440. package/dist/modules/workflow/session-ontology.policy.d.ts.map +0 -1
  441. package/dist/modules/workflow/session-ontology.policy.js +0 -62
  442. package/dist/modules/workflow/session-ontology.policy.js.map +0 -1
  443. package/dist/modules/workflow/session-ontology.service.d.ts +0 -105
  444. package/dist/modules/workflow/session-ontology.service.d.ts.map +0 -1
  445. package/dist/modules/workflow/session-ontology.service.js +0 -147
  446. package/dist/modules/workflow/session-ontology.service.js.map +0 -1
  447. package/dist/modules/workspace/session-ontology.gate.d.ts +0 -114
  448. package/dist/modules/workspace/session-ontology.gate.d.ts.map +0 -1
  449. package/dist/modules/workspace/session-ontology.gate.js +0 -161
  450. package/dist/modules/workspace/session-ontology.gate.js.map +0 -1
  451. package/dist/shared/kb-layout.d.ts +0 -39
  452. package/dist/shared/kb-layout.d.ts.map +0 -1
  453. package/dist/shared/kb-layout.js +0 -103
  454. package/dist/shared/kb-layout.js.map +0 -1
  455. package/dist/shared/kb-layout.test.d.ts +0 -2
  456. package/dist/shared/kb-layout.test.d.ts.map +0 -1
  457. package/dist/shared/kb-layout.test.js +0 -75
  458. package/dist/shared/kb-layout.test.js.map +0 -1
  459. package/src/modules/workflow/__tests__/session-ontology.policy.test.ts +0 -62
  460. package/src/modules/workflow/__tests__/session-ontology.service.test.ts +0 -201
  461. package/src/modules/workflow/session-ontology.policy.ts +0 -70
  462. package/src/modules/workflow/session-ontology.service.ts +0 -183
  463. package/src/modules/workspace/__tests__/session-ontology.gate.test.ts +0 -239
  464. package/src/modules/workspace/session-ontology.gate.ts +0 -191
  465. package/src/shared/kb-layout.test.ts +0 -98
  466. package/src/shared/kb-layout.ts +0 -102
@@ -22,8 +22,8 @@ export declare const users: import("drizzle-orm/pg-core").PgTableWithColumns<{
22
22
  email: import("drizzle-orm/pg-core").PgColumn<{
23
23
  name: "email";
24
24
  tableName: "users";
25
- dataType: "string";
26
- columnType: "PgText";
25
+ dataType: "custom";
26
+ columnType: "PgCustomColumn";
27
27
  data: string;
28
28
  driverParam: string;
29
29
  notNull: true;
@@ -31,16 +31,37 @@ export declare const users: import("drizzle-orm/pg-core").PgTableWithColumns<{
31
31
  isPrimaryKey: false;
32
32
  isAutoincrement: false;
33
33
  hasRuntimeDefault: false;
34
- enumValues: [string, ...string[]];
34
+ enumValues: undefined;
35
35
  baseColumn: never;
36
36
  identity: undefined;
37
37
  generated: undefined;
38
- }, {}, {}>;
38
+ }, {}, {
39
+ pgColumnBuilderBrand: "PgCustomColumnBuilderBrand";
40
+ }>;
41
+ emailBidx: import("drizzle-orm/pg-core").PgColumn<{
42
+ name: "email_bidx";
43
+ tableName: "users";
44
+ dataType: "custom";
45
+ columnType: "PgCustomColumn";
46
+ data: string;
47
+ driverParam: string;
48
+ notNull: true;
49
+ hasDefault: false;
50
+ isPrimaryKey: false;
51
+ isAutoincrement: false;
52
+ hasRuntimeDefault: false;
53
+ enumValues: undefined;
54
+ baseColumn: never;
55
+ identity: undefined;
56
+ generated: undefined;
57
+ }, {}, {
58
+ pgColumnBuilderBrand: "PgCustomColumnBuilderBrand";
59
+ }>;
39
60
  name: import("drizzle-orm/pg-core").PgColumn<{
40
61
  name: "name";
41
62
  tableName: "users";
42
- dataType: "string";
43
- columnType: "PgText";
63
+ dataType: "custom";
64
+ columnType: "PgCustomColumn";
44
65
  data: string;
45
66
  driverParam: string;
46
67
  notNull: true;
@@ -48,16 +69,18 @@ export declare const users: import("drizzle-orm/pg-core").PgTableWithColumns<{
48
69
  isPrimaryKey: false;
49
70
  isAutoincrement: false;
50
71
  hasRuntimeDefault: false;
51
- enumValues: [string, ...string[]];
72
+ enumValues: undefined;
52
73
  baseColumn: never;
53
74
  identity: undefined;
54
75
  generated: undefined;
55
- }, {}, {}>;
76
+ }, {}, {
77
+ pgColumnBuilderBrand: "PgCustomColumnBuilderBrand";
78
+ }>;
56
79
  avatarUrl: import("drizzle-orm/pg-core").PgColumn<{
57
80
  name: "avatar_url";
58
81
  tableName: "users";
59
- dataType: "string";
60
- columnType: "PgText";
82
+ dataType: "custom";
83
+ columnType: "PgCustomColumn";
61
84
  data: string;
62
85
  driverParam: string;
63
86
  notNull: false;
@@ -65,11 +88,13 @@ export declare const users: import("drizzle-orm/pg-core").PgTableWithColumns<{
65
88
  isPrimaryKey: false;
66
89
  isAutoincrement: false;
67
90
  hasRuntimeDefault: false;
68
- enumValues: [string, ...string[]];
91
+ enumValues: undefined;
69
92
  baseColumn: never;
70
93
  identity: undefined;
71
94
  generated: undefined;
72
- }, {}, {}>;
95
+ }, {}, {
96
+ pgColumnBuilderBrand: "PgCustomColumnBuilderBrand";
97
+ }>;
73
98
  passwordHash: import("drizzle-orm/pg-core").PgColumn<{
74
99
  name: "password_hash";
75
100
  tableName: "users";
@@ -104,6 +129,23 @@ export declare const users: import("drizzle-orm/pg-core").PgTableWithColumns<{
104
129
  identity: undefined;
105
130
  generated: undefined;
106
131
  }, {}, {}>;
132
+ deactivatedAt: import("drizzle-orm/pg-core").PgColumn<{
133
+ name: "deactivated_at";
134
+ tableName: "users";
135
+ dataType: "date";
136
+ columnType: "PgTimestamp";
137
+ data: Date;
138
+ driverParam: string;
139
+ notNull: false;
140
+ hasDefault: false;
141
+ isPrimaryKey: false;
142
+ isAutoincrement: false;
143
+ hasRuntimeDefault: false;
144
+ enumValues: undefined;
145
+ baseColumn: never;
146
+ identity: undefined;
147
+ generated: undefined;
148
+ }, {}, {}>;
107
149
  createdAt: import("drizzle-orm/pg-core").PgColumn<{
108
150
  name: "created_at";
109
151
  tableName: "users";
@@ -210,8 +252,8 @@ export declare const prFileApprovals: import("drizzle-orm/pg-core").PgTableWithC
210
252
  approverEmail: import("drizzle-orm/pg-core").PgColumn<{
211
253
  name: "approver_email";
212
254
  tableName: "pr_file_approvals";
213
- dataType: "string";
214
- columnType: "PgText";
255
+ dataType: "custom";
256
+ columnType: "PgCustomColumn";
215
257
  data: string;
216
258
  driverParam: string;
217
259
  notNull: true;
@@ -219,16 +261,37 @@ export declare const prFileApprovals: import("drizzle-orm/pg-core").PgTableWithC
219
261
  isPrimaryKey: false;
220
262
  isAutoincrement: false;
221
263
  hasRuntimeDefault: false;
222
- enumValues: [string, ...string[]];
264
+ enumValues: undefined;
223
265
  baseColumn: never;
224
266
  identity: undefined;
225
267
  generated: undefined;
226
- }, {}, {}>;
268
+ }, {}, {
269
+ pgColumnBuilderBrand: "PgCustomColumnBuilderBrand";
270
+ }>;
271
+ approverEmailBidx: import("drizzle-orm/pg-core").PgColumn<{
272
+ name: "approver_email_bidx";
273
+ tableName: "pr_file_approvals";
274
+ dataType: "custom";
275
+ columnType: "PgCustomColumn";
276
+ data: string;
277
+ driverParam: string;
278
+ notNull: true;
279
+ hasDefault: false;
280
+ isPrimaryKey: false;
281
+ isAutoincrement: false;
282
+ hasRuntimeDefault: false;
283
+ enumValues: undefined;
284
+ baseColumn: never;
285
+ identity: undefined;
286
+ generated: undefined;
287
+ }, {}, {
288
+ pgColumnBuilderBrand: "PgCustomColumnBuilderBrand";
289
+ }>;
227
290
  approverName: import("drizzle-orm/pg-core").PgColumn<{
228
291
  name: "approver_name";
229
292
  tableName: "pr_file_approvals";
230
- dataType: "string";
231
- columnType: "PgText";
293
+ dataType: "custom";
294
+ columnType: "PgCustomColumn";
232
295
  data: string;
233
296
  driverParam: string;
234
297
  notNull: true;
@@ -236,11 +299,13 @@ export declare const prFileApprovals: import("drizzle-orm/pg-core").PgTableWithC
236
299
  isPrimaryKey: false;
237
300
  isAutoincrement: false;
238
301
  hasRuntimeDefault: false;
239
- enumValues: [string, ...string[]];
302
+ enumValues: undefined;
240
303
  baseColumn: never;
241
304
  identity: undefined;
242
305
  generated: undefined;
243
- }, {}, {}>;
306
+ }, {}, {
307
+ pgColumnBuilderBrand: "PgCustomColumnBuilderBrand";
308
+ }>;
244
309
  headSha: import("drizzle-orm/pg-core").PgColumn<{
245
310
  name: "head_sha";
246
311
  tableName: "pr_file_approvals";
@@ -326,8 +391,8 @@ export declare const prMergeLog: import("drizzle-orm/pg-core").PgTableWithColumn
326
391
  triggeredByEmail: import("drizzle-orm/pg-core").PgColumn<{
327
392
  name: "triggered_by_email";
328
393
  tableName: "pr_merge_log";
329
- dataType: "string";
330
- columnType: "PgText";
394
+ dataType: "custom";
395
+ columnType: "PgCustomColumn";
331
396
  data: string;
332
397
  driverParam: string;
333
398
  notNull: true;
@@ -335,16 +400,37 @@ export declare const prMergeLog: import("drizzle-orm/pg-core").PgTableWithColumn
335
400
  isPrimaryKey: false;
336
401
  isAutoincrement: false;
337
402
  hasRuntimeDefault: false;
338
- enumValues: [string, ...string[]];
403
+ enumValues: undefined;
339
404
  baseColumn: never;
340
405
  identity: undefined;
341
406
  generated: undefined;
342
- }, {}, {}>;
407
+ }, {}, {
408
+ pgColumnBuilderBrand: "PgCustomColumnBuilderBrand";
409
+ }>;
410
+ triggeredByEmailBidx: import("drizzle-orm/pg-core").PgColumn<{
411
+ name: "triggered_by_email_bidx";
412
+ tableName: "pr_merge_log";
413
+ dataType: "custom";
414
+ columnType: "PgCustomColumn";
415
+ data: string;
416
+ driverParam: string;
417
+ notNull: true;
418
+ hasDefault: false;
419
+ isPrimaryKey: false;
420
+ isAutoincrement: false;
421
+ hasRuntimeDefault: false;
422
+ enumValues: undefined;
423
+ baseColumn: never;
424
+ identity: undefined;
425
+ generated: undefined;
426
+ }, {}, {
427
+ pgColumnBuilderBrand: "PgCustomColumnBuilderBrand";
428
+ }>;
343
429
  triggeredByName: import("drizzle-orm/pg-core").PgColumn<{
344
430
  name: "triggered_by_name";
345
431
  tableName: "pr_merge_log";
346
- dataType: "string";
347
- columnType: "PgText";
432
+ dataType: "custom";
433
+ columnType: "PgCustomColumn";
348
434
  data: string;
349
435
  driverParam: string;
350
436
  notNull: true;
@@ -352,11 +438,13 @@ export declare const prMergeLog: import("drizzle-orm/pg-core").PgTableWithColumn
352
438
  isPrimaryKey: false;
353
439
  isAutoincrement: false;
354
440
  hasRuntimeDefault: false;
355
- enumValues: [string, ...string[]];
441
+ enumValues: undefined;
356
442
  baseColumn: never;
357
443
  identity: undefined;
358
444
  generated: undefined;
359
- }, {}, {}>;
445
+ }, {}, {
446
+ pgColumnBuilderBrand: "PgCustomColumnBuilderBrand";
447
+ }>;
360
448
  headShaAtMerge: import("drizzle-orm/pg-core").PgColumn<{
361
449
  name: "head_sha_at_merge";
362
450
  tableName: "pr_merge_log";
@@ -411,8 +499,8 @@ export declare const prMergeLog: import("drizzle-orm/pg-core").PgTableWithColumn
411
499
  error: import("drizzle-orm/pg-core").PgColumn<{
412
500
  name: "error";
413
501
  tableName: "pr_merge_log";
414
- dataType: "string";
415
- columnType: "PgText";
502
+ dataType: "custom";
503
+ columnType: "PgCustomColumn";
416
504
  data: string;
417
505
  driverParam: string;
418
506
  notNull: false;
@@ -420,11 +508,13 @@ export declare const prMergeLog: import("drizzle-orm/pg-core").PgTableWithColumn
420
508
  isPrimaryKey: false;
421
509
  isAutoincrement: false;
422
510
  hasRuntimeDefault: false;
423
- enumValues: [string, ...string[]];
511
+ enumValues: undefined;
424
512
  baseColumn: never;
425
513
  identity: undefined;
426
514
  generated: undefined;
427
- }, {}, {}>;
515
+ }, {}, {
516
+ pgColumnBuilderBrand: "PgCustomColumnBuilderBrand";
517
+ }>;
428
518
  startedAt: import("drizzle-orm/pg-core").PgColumn<{
429
519
  name: "started_at";
430
520
  tableName: "pr_merge_log";
@@ -517,8 +607,8 @@ export declare const prComments: import("drizzle-orm/pg-core").PgTableWithColumn
517
607
  authorEmail: import("drizzle-orm/pg-core").PgColumn<{
518
608
  name: "author_email";
519
609
  tableName: "pr_comments";
520
- dataType: "string";
521
- columnType: "PgText";
610
+ dataType: "custom";
611
+ columnType: "PgCustomColumn";
522
612
  data: string;
523
613
  driverParam: string;
524
614
  notNull: true;
@@ -526,16 +616,37 @@ export declare const prComments: import("drizzle-orm/pg-core").PgTableWithColumn
526
616
  isPrimaryKey: false;
527
617
  isAutoincrement: false;
528
618
  hasRuntimeDefault: false;
529
- enumValues: [string, ...string[]];
619
+ enumValues: undefined;
530
620
  baseColumn: never;
531
621
  identity: undefined;
532
622
  generated: undefined;
533
- }, {}, {}>;
623
+ }, {}, {
624
+ pgColumnBuilderBrand: "PgCustomColumnBuilderBrand";
625
+ }>;
626
+ authorEmailBidx: import("drizzle-orm/pg-core").PgColumn<{
627
+ name: "author_email_bidx";
628
+ tableName: "pr_comments";
629
+ dataType: "custom";
630
+ columnType: "PgCustomColumn";
631
+ data: string;
632
+ driverParam: string;
633
+ notNull: true;
634
+ hasDefault: false;
635
+ isPrimaryKey: false;
636
+ isAutoincrement: false;
637
+ hasRuntimeDefault: false;
638
+ enumValues: undefined;
639
+ baseColumn: never;
640
+ identity: undefined;
641
+ generated: undefined;
642
+ }, {}, {
643
+ pgColumnBuilderBrand: "PgCustomColumnBuilderBrand";
644
+ }>;
534
645
  authorName: import("drizzle-orm/pg-core").PgColumn<{
535
646
  name: "author_name";
536
647
  tableName: "pr_comments";
537
- dataType: "string";
538
- columnType: "PgText";
648
+ dataType: "custom";
649
+ columnType: "PgCustomColumn";
539
650
  data: string;
540
651
  driverParam: string;
541
652
  notNull: true;
@@ -543,11 +654,13 @@ export declare const prComments: import("drizzle-orm/pg-core").PgTableWithColumn
543
654
  isPrimaryKey: false;
544
655
  isAutoincrement: false;
545
656
  hasRuntimeDefault: false;
546
- enumValues: [string, ...string[]];
657
+ enumValues: undefined;
547
658
  baseColumn: never;
548
659
  identity: undefined;
549
660
  generated: undefined;
550
- }, {}, {}>;
661
+ }, {}, {
662
+ pgColumnBuilderBrand: "PgCustomColumnBuilderBrand";
663
+ }>;
551
664
  path: import("drizzle-orm/pg-core").PgColumn<{
552
665
  name: "path";
553
666
  tableName: "pr_comments";
@@ -602,8 +715,8 @@ export declare const prComments: import("drizzle-orm/pg-core").PgTableWithColumn
602
715
  body: import("drizzle-orm/pg-core").PgColumn<{
603
716
  name: "body";
604
717
  tableName: "pr_comments";
605
- dataType: "string";
606
- columnType: "PgText";
718
+ dataType: "custom";
719
+ columnType: "PgCustomColumn";
607
720
  data: string;
608
721
  driverParam: string;
609
722
  notNull: true;
@@ -611,11 +724,13 @@ export declare const prComments: import("drizzle-orm/pg-core").PgTableWithColumn
611
724
  isPrimaryKey: false;
612
725
  isAutoincrement: false;
613
726
  hasRuntimeDefault: false;
614
- enumValues: [string, ...string[]];
727
+ enumValues: undefined;
615
728
  baseColumn: never;
616
729
  identity: undefined;
617
730
  generated: undefined;
618
- }, {}, {}>;
731
+ }, {}, {
732
+ pgColumnBuilderBrand: "PgCustomColumnBuilderBrand";
733
+ }>;
619
734
  parentId: import("drizzle-orm/pg-core").PgColumn<{
620
735
  name: "parent_id";
621
736
  tableName: "pr_comments";
@@ -760,8 +875,8 @@ export declare const changeRequests: import("drizzle-orm/pg-core").PgTableWithCo
760
875
  title: import("drizzle-orm/pg-core").PgColumn<{
761
876
  name: "title";
762
877
  tableName: "change_requests";
763
- dataType: "string";
764
- columnType: "PgText";
878
+ dataType: "custom";
879
+ columnType: "PgCustomColumn";
765
880
  data: string;
766
881
  driverParam: string;
767
882
  notNull: true;
@@ -769,16 +884,18 @@ export declare const changeRequests: import("drizzle-orm/pg-core").PgTableWithCo
769
884
  isPrimaryKey: false;
770
885
  isAutoincrement: false;
771
886
  hasRuntimeDefault: false;
772
- enumValues: [string, ...string[]];
887
+ enumValues: undefined;
773
888
  baseColumn: never;
774
889
  identity: undefined;
775
890
  generated: undefined;
776
- }, {}, {}>;
891
+ }, {}, {
892
+ pgColumnBuilderBrand: "PgCustomColumnBuilderBrand";
893
+ }>;
777
894
  body: import("drizzle-orm/pg-core").PgColumn<{
778
895
  name: "body";
779
896
  tableName: "change_requests";
780
- dataType: "string";
781
- columnType: "PgText";
897
+ dataType: "custom";
898
+ columnType: "PgCustomColumn";
782
899
  data: string;
783
900
  driverParam: string;
784
901
  notNull: true;
@@ -786,16 +903,18 @@ export declare const changeRequests: import("drizzle-orm/pg-core").PgTableWithCo
786
903
  isPrimaryKey: false;
787
904
  isAutoincrement: false;
788
905
  hasRuntimeDefault: false;
789
- enumValues: [string, ...string[]];
906
+ enumValues: undefined;
790
907
  baseColumn: never;
791
908
  identity: undefined;
792
909
  generated: undefined;
793
- }, {}, {}>;
910
+ }, {}, {
911
+ pgColumnBuilderBrand: "PgCustomColumnBuilderBrand";
912
+ }>;
794
913
  authorEmail: import("drizzle-orm/pg-core").PgColumn<{
795
914
  name: "author_email";
796
915
  tableName: "change_requests";
797
- dataType: "string";
798
- columnType: "PgText";
916
+ dataType: "custom";
917
+ columnType: "PgCustomColumn";
799
918
  data: string;
800
919
  driverParam: string;
801
920
  notNull: true;
@@ -803,16 +922,37 @@ export declare const changeRequests: import("drizzle-orm/pg-core").PgTableWithCo
803
922
  isPrimaryKey: false;
804
923
  isAutoincrement: false;
805
924
  hasRuntimeDefault: false;
806
- enumValues: [string, ...string[]];
925
+ enumValues: undefined;
807
926
  baseColumn: never;
808
927
  identity: undefined;
809
928
  generated: undefined;
810
- }, {}, {}>;
929
+ }, {}, {
930
+ pgColumnBuilderBrand: "PgCustomColumnBuilderBrand";
931
+ }>;
932
+ authorEmailBidx: import("drizzle-orm/pg-core").PgColumn<{
933
+ name: "author_email_bidx";
934
+ tableName: "change_requests";
935
+ dataType: "custom";
936
+ columnType: "PgCustomColumn";
937
+ data: string;
938
+ driverParam: string;
939
+ notNull: true;
940
+ hasDefault: false;
941
+ isPrimaryKey: false;
942
+ isAutoincrement: false;
943
+ hasRuntimeDefault: false;
944
+ enumValues: undefined;
945
+ baseColumn: never;
946
+ identity: undefined;
947
+ generated: undefined;
948
+ }, {}, {
949
+ pgColumnBuilderBrand: "PgCustomColumnBuilderBrand";
950
+ }>;
811
951
  authorName: import("drizzle-orm/pg-core").PgColumn<{
812
952
  name: "author_name";
813
953
  tableName: "change_requests";
814
- dataType: "string";
815
- columnType: "PgText";
954
+ dataType: "custom";
955
+ columnType: "PgCustomColumn";
816
956
  data: string;
817
957
  driverParam: string;
818
958
  notNull: true;
@@ -820,11 +960,13 @@ export declare const changeRequests: import("drizzle-orm/pg-core").PgTableWithCo
820
960
  isPrimaryKey: false;
821
961
  isAutoincrement: false;
822
962
  hasRuntimeDefault: false;
823
- enumValues: [string, ...string[]];
963
+ enumValues: undefined;
824
964
  baseColumn: never;
825
965
  identity: undefined;
826
966
  generated: undefined;
827
- }, {}, {}>;
967
+ }, {}, {
968
+ pgColumnBuilderBrand: "PgCustomColumnBuilderBrand";
969
+ }>;
828
970
  state: import("drizzle-orm/pg-core").PgColumn<{
829
971
  name: "state";
830
972
  tableName: "change_requests";
@@ -862,8 +1004,8 @@ export declare const changeRequests: import("drizzle-orm/pg-core").PgTableWithCo
862
1004
  applyFailureReason: import("drizzle-orm/pg-core").PgColumn<{
863
1005
  name: "apply_failure_reason";
864
1006
  tableName: "change_requests";
865
- dataType: "string";
866
- columnType: "PgText";
1007
+ dataType: "custom";
1008
+ columnType: "PgCustomColumn";
867
1009
  data: string;
868
1010
  driverParam: string;
869
1011
  notNull: false;
@@ -871,11 +1013,13 @@ export declare const changeRequests: import("drizzle-orm/pg-core").PgTableWithCo
871
1013
  isPrimaryKey: false;
872
1014
  isAutoincrement: false;
873
1015
  hasRuntimeDefault: false;
874
- enumValues: [string, ...string[]];
1016
+ enumValues: undefined;
875
1017
  baseColumn: never;
876
1018
  identity: undefined;
877
1019
  generated: undefined;
878
- }, {}, {}>;
1020
+ }, {}, {
1021
+ pgColumnBuilderBrand: "PgCustomColumnBuilderBrand";
1022
+ }>;
879
1023
  applyFailureConflicts: import("drizzle-orm/pg-core").PgColumn<{
880
1024
  name: "apply_failure_conflicts";
881
1025
  tableName: "change_requests";
@@ -913,8 +1057,8 @@ export declare const changeRequests: import("drizzle-orm/pg-core").PgTableWithCo
913
1057
  applyFailedByName: import("drizzle-orm/pg-core").PgColumn<{
914
1058
  name: "apply_failed_by_name";
915
1059
  tableName: "change_requests";
916
- dataType: "string";
917
- columnType: "PgText";
1060
+ dataType: "custom";
1061
+ columnType: "PgCustomColumn";
918
1062
  data: string;
919
1063
  driverParam: string;
920
1064
  notNull: false;
@@ -922,11 +1066,32 @@ export declare const changeRequests: import("drizzle-orm/pg-core").PgTableWithCo
922
1066
  isPrimaryKey: false;
923
1067
  isAutoincrement: false;
924
1068
  hasRuntimeDefault: false;
925
- enumValues: [string, ...string[]];
1069
+ enumValues: undefined;
926
1070
  baseColumn: never;
927
1071
  identity: undefined;
928
1072
  generated: undefined;
929
- }, {}, {}>;
1073
+ }, {}, {
1074
+ pgColumnBuilderBrand: "PgCustomColumnBuilderBrand";
1075
+ }>;
1076
+ applyFailedByEmailBidx: import("drizzle-orm/pg-core").PgColumn<{
1077
+ name: "apply_failed_by_email_bidx";
1078
+ tableName: "change_requests";
1079
+ dataType: "custom";
1080
+ columnType: "PgCustomColumn";
1081
+ data: string;
1082
+ driverParam: string;
1083
+ notNull: false;
1084
+ hasDefault: false;
1085
+ isPrimaryKey: false;
1086
+ isAutoincrement: false;
1087
+ hasRuntimeDefault: false;
1088
+ enumValues: undefined;
1089
+ baseColumn: never;
1090
+ identity: undefined;
1091
+ generated: undefined;
1092
+ }, {}, {
1093
+ pgColumnBuilderBrand: "PgCustomColumnBuilderBrand";
1094
+ }>;
930
1095
  applyFailureKind: import("drizzle-orm/pg-core").PgColumn<{
931
1096
  name: "apply_failure_kind";
932
1097
  tableName: "change_requests";
@@ -995,6 +1160,23 @@ export declare const changeRequests: import("drizzle-orm/pg-core").PgTableWithCo
995
1160
  identity: undefined;
996
1161
  generated: undefined;
997
1162
  }, {}, {}>;
1163
+ closedReason: import("drizzle-orm/pg-core").PgColumn<{
1164
+ name: "closed_reason";
1165
+ tableName: "change_requests";
1166
+ dataType: "string";
1167
+ columnType: "PgText";
1168
+ data: string;
1169
+ driverParam: string;
1170
+ notNull: false;
1171
+ hasDefault: false;
1172
+ isPrimaryKey: false;
1173
+ isAutoincrement: false;
1174
+ hasRuntimeDefault: false;
1175
+ enumValues: [string, ...string[]];
1176
+ baseColumn: never;
1177
+ identity: undefined;
1178
+ generated: undefined;
1179
+ }, {}, {}>;
998
1180
  };
999
1181
  dialect: "pg";
1000
1182
  }>;
@@ -1278,8 +1460,8 @@ export declare const fileLocks: import("drizzle-orm/pg-core").PgTableWithColumns
1278
1460
  holderName: import("drizzle-orm/pg-core").PgColumn<{
1279
1461
  name: "holder_name";
1280
1462
  tableName: "file_locks";
1281
- dataType: "string";
1282
- columnType: "PgText";
1463
+ dataType: "custom";
1464
+ columnType: "PgCustomColumn";
1283
1465
  data: string;
1284
1466
  driverParam: string;
1285
1467
  notNull: true;
@@ -1287,11 +1469,13 @@ export declare const fileLocks: import("drizzle-orm/pg-core").PgTableWithColumns
1287
1469
  isPrimaryKey: false;
1288
1470
  isAutoincrement: false;
1289
1471
  hasRuntimeDefault: false;
1290
- enumValues: [string, ...string[]];
1472
+ enumValues: undefined;
1291
1473
  baseColumn: never;
1292
1474
  identity: undefined;
1293
1475
  generated: undefined;
1294
- }, {}, {}>;
1476
+ }, {}, {
1477
+ pgColumnBuilderBrand: "PgCustomColumnBuilderBrand";
1478
+ }>;
1295
1479
  mode: import("drizzle-orm/pg-core").PgColumn<{
1296
1480
  name: "mode";
1297
1481
  tableName: "file_locks";
@@ -1470,8 +1654,8 @@ export declare const pendingCommits: import("drizzle-orm/pg-core").PgTableWithCo
1470
1654
  authorEmail: import("drizzle-orm/pg-core").PgColumn<{
1471
1655
  name: "author_email";
1472
1656
  tableName: "pending_commits";
1473
- dataType: "string";
1474
- columnType: "PgText";
1657
+ dataType: "custom";
1658
+ columnType: "PgCustomColumn";
1475
1659
  data: string;
1476
1660
  driverParam: string;
1477
1661
  notNull: true;
@@ -1479,16 +1663,37 @@ export declare const pendingCommits: import("drizzle-orm/pg-core").PgTableWithCo
1479
1663
  isPrimaryKey: false;
1480
1664
  isAutoincrement: false;
1481
1665
  hasRuntimeDefault: false;
1482
- enumValues: [string, ...string[]];
1666
+ enumValues: undefined;
1483
1667
  baseColumn: never;
1484
1668
  identity: undefined;
1485
1669
  generated: undefined;
1486
- }, {}, {}>;
1670
+ }, {}, {
1671
+ pgColumnBuilderBrand: "PgCustomColumnBuilderBrand";
1672
+ }>;
1673
+ authorEmailBidx: import("drizzle-orm/pg-core").PgColumn<{
1674
+ name: "author_email_bidx";
1675
+ tableName: "pending_commits";
1676
+ dataType: "custom";
1677
+ columnType: "PgCustomColumn";
1678
+ data: string;
1679
+ driverParam: string;
1680
+ notNull: true;
1681
+ hasDefault: false;
1682
+ isPrimaryKey: false;
1683
+ isAutoincrement: false;
1684
+ hasRuntimeDefault: false;
1685
+ enumValues: undefined;
1686
+ baseColumn: never;
1687
+ identity: undefined;
1688
+ generated: undefined;
1689
+ }, {}, {
1690
+ pgColumnBuilderBrand: "PgCustomColumnBuilderBrand";
1691
+ }>;
1487
1692
  authorName: import("drizzle-orm/pg-core").PgColumn<{
1488
1693
  name: "author_name";
1489
1694
  tableName: "pending_commits";
1490
- dataType: "string";
1491
- columnType: "PgText";
1695
+ dataType: "custom";
1696
+ columnType: "PgCustomColumn";
1492
1697
  data: string;
1493
1698
  driverParam: string;
1494
1699
  notNull: true;
@@ -1496,11 +1701,13 @@ export declare const pendingCommits: import("drizzle-orm/pg-core").PgTableWithCo
1496
1701
  isPrimaryKey: false;
1497
1702
  isAutoincrement: false;
1498
1703
  hasRuntimeDefault: false;
1499
- enumValues: [string, ...string[]];
1704
+ enumValues: undefined;
1500
1705
  baseColumn: never;
1501
1706
  identity: undefined;
1502
1707
  generated: undefined;
1503
- }, {}, {}>;
1708
+ }, {}, {
1709
+ pgColumnBuilderBrand: "PgCustomColumnBuilderBrand";
1710
+ }>;
1504
1711
  queuedAt: import("drizzle-orm/pg-core").PgColumn<{
1505
1712
  name: "queued_at";
1506
1713
  tableName: "pending_commits";
@@ -1589,8 +1796,8 @@ export declare const pendingCommits: import("drizzle-orm/pg-core").PgTableWithCo
1589
1796
  lastError: import("drizzle-orm/pg-core").PgColumn<{
1590
1797
  name: "last_error";
1591
1798
  tableName: "pending_commits";
1592
- dataType: "string";
1593
- columnType: "PgText";
1799
+ dataType: "custom";
1800
+ columnType: "PgCustomColumn";
1594
1801
  data: string;
1595
1802
  driverParam: string;
1596
1803
  notNull: false;
@@ -1598,11 +1805,13 @@ export declare const pendingCommits: import("drizzle-orm/pg-core").PgTableWithCo
1598
1805
  isPrimaryKey: false;
1599
1806
  isAutoincrement: false;
1600
1807
  hasRuntimeDefault: false;
1601
- enumValues: [string, ...string[]];
1808
+ enumValues: undefined;
1602
1809
  baseColumn: never;
1603
1810
  identity: undefined;
1604
1811
  generated: undefined;
1605
- }, {}, {}>;
1812
+ }, {}, {
1813
+ pgColumnBuilderBrand: "PgCustomColumnBuilderBrand";
1814
+ }>;
1606
1815
  };
1607
1816
  dialect: "pg";
1608
1817
  }>;
@@ -1794,30 +2003,6 @@ export declare const secrets: import("drizzle-orm/pg-core").PgTableWithColumns<{
1794
2003
  };
1795
2004
  dialect: "pg";
1796
2005
  }>;
1797
- /**
1798
- * Ontology-session boundary — the per-session log of which named ontologies a
1799
- * run has TOUCHED (one row per `(session_id, ontology)`). Each agent operation
1800
- * that resolves to a named ontology records a row here (idempotent on the PK).
1801
- *
1802
- * The rule the gate enforces from this set:
1803
- * - READS are always allowed; they just record the ontology they touched.
1804
- * - WRITES are allowed only while the session's touched set is a SINGLE named
1805
- * ontology equal to the write target. Once a session has touched two or
1806
- * more ontologies (e.g. by reading across them), every write is blocked —
1807
- * "read across ontologies → you can't write anymore at all."
1808
- *
1809
- * Postgres is the durable source of truth so the boundary holds across a
1810
- * backend restart (an in-memory set would reset and silently un-poison a run).
1811
- * A write-through in-process cache fronts this table for the chatty read path;
1812
- * a cache miss falls back here.
1813
- *
1814
- * - PK is `(session_id, ontology)` — a set, idempotent on repeat touches.
1815
- * - `ontology` is the resolved ontology id (e.g. `KnowledgeBase/Product`).
1816
- * Neutral touches don't record, so they never write a row.
1817
- * - `touched_at` drives the abandoned-run `sweepOlderThan` backstop; the
1818
- * primary reclamation is an explicit delete of all of a session's rows at
1819
- * run end.
1820
- */
1821
2006
  /**
1822
2007
  * OAuth clients dynamically registered by MCP clients (RFC 7591 DCR). When an
1823
2008
  * MCP client (claude.ai, Claude Code) connects to `/api/mcp` without a
@@ -2796,6 +2981,13 @@ export declare const agentEvents: import("drizzle-orm/pg-core").PgTableWithColum
2796
2981
  };
2797
2982
  dialect: "pg";
2798
2983
  }>;
2984
+ /**
2985
+ * UNUSED IN THIS RELEASE. It backed the per-session boundary that a deployment
2986
+ * now owns for itself, behind the agent read/write hooks; nothing in this
2987
+ * package reads or writes it any more. The definition stays for ONE release so
2988
+ * that no deployment runs a version in which neither side has the table, and
2989
+ * the NEXT release drops it (see `TODOS.md`). Do not build on it.
2990
+ */
2799
2991
  export declare const sessionOntologyTouches: import("drizzle-orm/pg-core").PgTableWithColumns<{
2800
2992
  name: "session_ontology_touches";
2801
2993
  schema: undefined;
@@ -3344,8 +3536,8 @@ export declare const pluginJoinRequests: import("drizzle-orm/pg-core").PgTableWi
3344
3536
  requesterEmail: import("drizzle-orm/pg-core").PgColumn<{
3345
3537
  name: "requester_email";
3346
3538
  tableName: "plugin_join_requests";
3347
- dataType: "string";
3348
- columnType: "PgText";
3539
+ dataType: "custom";
3540
+ columnType: "PgCustomColumn";
3349
3541
  data: string;
3350
3542
  driverParam: string;
3351
3543
  notNull: true;
@@ -3353,16 +3545,37 @@ export declare const pluginJoinRequests: import("drizzle-orm/pg-core").PgTableWi
3353
3545
  isPrimaryKey: false;
3354
3546
  isAutoincrement: false;
3355
3547
  hasRuntimeDefault: false;
3356
- enumValues: [string, ...string[]];
3548
+ enumValues: undefined;
3357
3549
  baseColumn: never;
3358
3550
  identity: undefined;
3359
3551
  generated: undefined;
3360
- }, {}, {}>;
3552
+ }, {}, {
3553
+ pgColumnBuilderBrand: "PgCustomColumnBuilderBrand";
3554
+ }>;
3555
+ requesterEmailBidx: import("drizzle-orm/pg-core").PgColumn<{
3556
+ name: "requester_email_bidx";
3557
+ tableName: "plugin_join_requests";
3558
+ dataType: "custom";
3559
+ columnType: "PgCustomColumn";
3560
+ data: string;
3561
+ driverParam: string;
3562
+ notNull: true;
3563
+ hasDefault: false;
3564
+ isPrimaryKey: false;
3565
+ isAutoincrement: false;
3566
+ hasRuntimeDefault: false;
3567
+ enumValues: undefined;
3568
+ baseColumn: never;
3569
+ identity: undefined;
3570
+ generated: undefined;
3571
+ }, {}, {
3572
+ pgColumnBuilderBrand: "PgCustomColumnBuilderBrand";
3573
+ }>;
3361
3574
  requesterName: import("drizzle-orm/pg-core").PgColumn<{
3362
3575
  name: "requester_name";
3363
3576
  tableName: "plugin_join_requests";
3364
- dataType: "string";
3365
- columnType: "PgText";
3577
+ dataType: "custom";
3578
+ columnType: "PgCustomColumn";
3366
3579
  data: string;
3367
3580
  driverParam: string;
3368
3581
  notNull: true;
@@ -3370,11 +3583,13 @@ export declare const pluginJoinRequests: import("drizzle-orm/pg-core").PgTableWi
3370
3583
  isPrimaryKey: false;
3371
3584
  isAutoincrement: false;
3372
3585
  hasRuntimeDefault: false;
3373
- enumValues: [string, ...string[]];
3586
+ enumValues: undefined;
3374
3587
  baseColumn: never;
3375
3588
  identity: undefined;
3376
3589
  generated: undefined;
3377
- }, {}, {}>;
3590
+ }, {}, {
3591
+ pgColumnBuilderBrand: "PgCustomColumnBuilderBrand";
3592
+ }>;
3378
3593
  pluginKey: import("drizzle-orm/pg-core").PgColumn<{
3379
3594
  name: "plugin_key";
3380
3595
  tableName: "plugin_join_requests";
@@ -3412,8 +3627,8 @@ export declare const pluginJoinRequests: import("drizzle-orm/pg-core").PgTableWi
3412
3627
  failureReason: import("drizzle-orm/pg-core").PgColumn<{
3413
3628
  name: "failure_reason";
3414
3629
  tableName: "plugin_join_requests";
3415
- dataType: "string";
3416
- columnType: "PgText";
3630
+ dataType: "custom";
3631
+ columnType: "PgCustomColumn";
3417
3632
  data: string;
3418
3633
  driverParam: string;
3419
3634
  notNull: false;
@@ -3421,11 +3636,13 @@ export declare const pluginJoinRequests: import("drizzle-orm/pg-core").PgTableWi
3421
3636
  isPrimaryKey: false;
3422
3637
  isAutoincrement: false;
3423
3638
  hasRuntimeDefault: false;
3424
- enumValues: [string, ...string[]];
3639
+ enumValues: undefined;
3425
3640
  baseColumn: never;
3426
3641
  identity: undefined;
3427
3642
  generated: undefined;
3428
- }, {}, {}>;
3643
+ }, {}, {
3644
+ pgColumnBuilderBrand: "PgCustomColumnBuilderBrand";
3645
+ }>;
3429
3646
  changeRequestNumber: import("drizzle-orm/pg-core").PgColumn<{
3430
3647
  name: "change_request_number";
3431
3648
  tableName: "plugin_join_requests";