agor-live 0.22.0 → 0.23.1

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 (905) hide show
  1. package/dist/cli/commands/admin/add-to-branch-group.d.ts +2 -13
  2. package/dist/cli/commands/admin/add-to-branch-group.d.ts.map +1 -1
  3. package/dist/cli/commands/admin/add-to-branch-group.js +133 -33
  4. package/dist/cli/commands/admin/create-branch-group.d.ts +2 -13
  5. package/dist/cli/commands/admin/create-branch-group.d.ts.map +1 -1
  6. package/dist/cli/commands/admin/create-branch-group.js +132 -38
  7. package/dist/cli/commands/admin/create-symlink.d.ts +2 -14
  8. package/dist/cli/commands/admin/create-symlink.d.ts.map +1 -1
  9. package/dist/cli/commands/admin/create-symlink.js +138 -61
  10. package/dist/cli/commands/admin/delete-branch-group.d.ts +2 -13
  11. package/dist/cli/commands/admin/delete-branch-group.d.ts.map +1 -1
  12. package/dist/cli/commands/admin/delete-branch-group.js +132 -28
  13. package/dist/cli/commands/admin/delete-user.d.ts +2 -13
  14. package/dist/cli/commands/admin/delete-user.d.ts.map +1 -1
  15. package/dist/cli/commands/admin/delete-user.js +132 -38
  16. package/dist/cli/commands/admin/ensure-user.d.ts +2 -14
  17. package/dist/cli/commands/admin/ensure-user.d.ts.map +1 -1
  18. package/dist/cli/commands/admin/ensure-user.js +131 -46
  19. package/dist/cli/commands/admin/remove-from-branch-group.d.ts +2 -13
  20. package/dist/cli/commands/admin/remove-from-branch-group.d.ts.map +1 -1
  21. package/dist/cli/commands/admin/remove-from-branch-group.js +133 -33
  22. package/dist/cli/commands/admin/remove-symlink.d.ts +2 -14
  23. package/dist/cli/commands/admin/remove-symlink.d.ts.map +1 -1
  24. package/dist/cli/commands/admin/remove-symlink.js +136 -49
  25. package/dist/cli/commands/admin/scrub-git-remotes.d.ts +2 -2
  26. package/dist/cli/commands/admin/scrub-git-remotes.d.ts.map +1 -1
  27. package/dist/cli/commands/admin/scrub-git-remotes.js +128 -86
  28. package/dist/cli/commands/admin/sync-user-symlinks.d.ts +2 -14
  29. package/dist/cli/commands/admin/sync-user-symlinks.d.ts.map +1 -1
  30. package/dist/cli/commands/admin/sync-user-symlinks.js +132 -43
  31. package/dist/cli/commands/auth/whoami.d.ts.map +1 -1
  32. package/dist/cli/commands/auth/whoami.js +2 -1
  33. package/dist/cli/commands/branch/env/request.test.d.ts +2 -0
  34. package/dist/cli/commands/branch/env/request.test.d.ts.map +1 -0
  35. package/dist/cli/commands/branch/env/request.test.js +17723 -0
  36. package/dist/cli/commands/branch/env/restart.d.ts.map +1 -1
  37. package/dist/cli/commands/branch/env/restart.js +7 -1
  38. package/dist/cli/commands/branch/env/start.d.ts.map +1 -1
  39. package/dist/cli/commands/branch/env/start.js +7 -1
  40. package/dist/cli/commands/branch/env/stop.d.ts.map +1 -1
  41. package/dist/cli/commands/branch/env/stop.js +7 -1
  42. package/dist/cli/commands/daemon/status.d.ts.map +1 -1
  43. package/dist/cli/commands/daemon/status.js +2 -1
  44. package/dist/cli/commands/init.d.ts +6 -0
  45. package/dist/cli/commands/init.d.ts.map +1 -1
  46. package/dist/cli/commands/init.js +140 -2
  47. package/dist/cli/commands/local/add-to-branch-group.d.ts +13 -0
  48. package/dist/cli/commands/local/add-to-branch-group.d.ts.map +1 -0
  49. package/dist/cli/commands/local/add-to-branch-group.js +37 -0
  50. package/dist/cli/commands/local/create-branch-group.d.ts +12 -0
  51. package/dist/cli/commands/local/create-branch-group.d.ts.map +1 -0
  52. package/dist/cli/commands/local/create-branch-group.js +35 -0
  53. package/dist/cli/commands/local/create-symlink.d.ts +14 -0
  54. package/dist/cli/commands/local/create-symlink.d.ts.map +1 -0
  55. package/dist/cli/commands/local/create-symlink.js +45 -0
  56. package/dist/cli/commands/{daemon → local/daemon}/sync.d.ts +1 -1
  57. package/dist/cli/commands/local/daemon/sync.d.ts.map +1 -0
  58. package/dist/cli/commands/{daemon → local/daemon}/sync.js +7 -6
  59. package/dist/cli/commands/local/delete-branch-group.d.ts +12 -0
  60. package/dist/cli/commands/local/delete-branch-group.d.ts.map +1 -0
  61. package/dist/cli/commands/local/delete-branch-group.js +35 -0
  62. package/dist/cli/commands/local/delete-user.d.ts +12 -0
  63. package/dist/cli/commands/local/delete-user.d.ts.map +1 -0
  64. package/dist/cli/commands/local/delete-user.js +36 -0
  65. package/dist/cli/commands/local/ensure-user.d.ts +12 -0
  66. package/dist/cli/commands/local/ensure-user.d.ts.map +1 -0
  67. package/dist/cli/commands/local/ensure-user.js +41 -0
  68. package/dist/cli/commands/local/remove-from-branch-group.d.ts +13 -0
  69. package/dist/cli/commands/local/remove-from-branch-group.d.ts.map +1 -0
  70. package/dist/cli/commands/local/remove-from-branch-group.js +37 -0
  71. package/dist/cli/commands/local/remove-symlink.d.ts +13 -0
  72. package/dist/cli/commands/local/remove-symlink.d.ts.map +1 -0
  73. package/dist/cli/commands/local/remove-symlink.js +39 -0
  74. package/dist/cli/commands/local/scrub-git-remotes.d.ts +9 -0
  75. package/dist/cli/commands/local/scrub-git-remotes.d.ts.map +1 -0
  76. package/dist/cli/commands/local/scrub-git-remotes.js +23 -0
  77. package/dist/cli/commands/{admin → local}/sync-unix.d.ts.map +1 -1
  78. package/dist/cli/commands/{admin → local}/sync-unix.js +3 -3
  79. package/dist/cli/commands/local/sync-user-symlinks.d.ts +12 -0
  80. package/dist/cli/commands/local/sync-user-symlinks.d.ts.map +1 -0
  81. package/dist/cli/commands/local/sync-user-symlinks.js +37 -0
  82. package/dist/cli/commands/telemetry/index.d.ts +7 -0
  83. package/dist/cli/commands/telemetry/index.d.ts.map +1 -0
  84. package/dist/cli/commands/telemetry/index.js +40 -0
  85. package/dist/cli/commands/telemetry/off.d.ts +6 -0
  86. package/dist/cli/commands/telemetry/off.d.ts.map +1 -0
  87. package/dist/cli/commands/telemetry/off.js +35 -0
  88. package/dist/cli/commands/telemetry/on.d.ts +6 -0
  89. package/dist/cli/commands/telemetry/on.d.ts.map +1 -0
  90. package/dist/cli/commands/telemetry/on.js +37 -0
  91. package/dist/cli/commands/telemetry/test.d.ts +6 -0
  92. package/dist/cli/commands/telemetry/test.d.ts.map +1 -0
  93. package/dist/cli/commands/telemetry/test.js +56 -0
  94. package/dist/cli/commands/user/create-admin.d.ts.map +1 -1
  95. package/dist/cli/commands/user/create-admin.js +81 -72
  96. package/dist/cli/commands/user/list.d.ts.map +1 -1
  97. package/dist/cli/commands/user/list.js +1 -0
  98. package/dist/cli/commands/whoami.js +2 -1
  99. package/dist/cli/lib/branch-environment-action.d.ts +21 -0
  100. package/dist/cli/lib/branch-environment-action.d.ts.map +1 -0
  101. package/dist/cli/lib/branch-environment-action.js +8 -0
  102. package/dist/core/api/index.cjs +7 -2
  103. package/dist/core/api/index.d.ts +13 -4
  104. package/dist/core/api/index.d.ts.map +1 -1
  105. package/dist/core/api/index.js +7 -2
  106. package/dist/core/claude/index.cjs +482 -77
  107. package/dist/core/claude/index.js +479 -76
  108. package/dist/core/claude-cli/index.cjs +11 -0
  109. package/dist/core/claude-cli/index.js +11 -0
  110. package/dist/core/claude-cli/pricing.d.ts.map +1 -1
  111. package/dist/core/client/index.cjs +35 -7
  112. package/dist/core/client/index.js +32 -7
  113. package/dist/core/config/browser.cjs +3 -5
  114. package/dist/core/config/browser.js +3 -5
  115. package/dist/core/config/config-manager.d.ts +33 -13
  116. package/dist/core/config/config-manager.d.ts.map +1 -1
  117. package/dist/core/config/index.cjs +4259 -4527
  118. package/dist/core/config/index.d.ts +1 -0
  119. package/dist/core/config/index.d.ts.map +1 -1
  120. package/dist/core/config/index.js +4295 -4583
  121. package/dist/core/config/key-resolver.d.ts.map +1 -1
  122. package/dist/core/config/multitenancy.d.ts +33 -0
  123. package/dist/core/config/multitenancy.d.ts.map +1 -0
  124. package/dist/core/config/security-resolver.d.ts +1 -0
  125. package/dist/core/config/security-resolver.d.ts.map +1 -1
  126. package/dist/core/config/types.d.ts +67 -4
  127. package/dist/core/config/types.d.ts.map +1 -1
  128. package/dist/core/db/client.d.ts +34 -2
  129. package/dist/core/db/client.d.ts.map +1 -1
  130. package/dist/core/db/database-wrapper.d.ts.map +1 -1
  131. package/dist/core/db/first-run-bootstrap.d.ts.map +1 -1
  132. package/dist/core/db/index.cjs +2422 -1084
  133. package/dist/core/db/index.d.ts +2 -1
  134. package/dist/core/db/index.d.ts.map +1 -1
  135. package/dist/core/db/index.js +2162 -852
  136. package/dist/core/db/migrate.d.ts.map +1 -1
  137. package/dist/core/db/repositories/artifacts.d.ts +27 -2
  138. package/dist/core/db/repositories/artifacts.d.ts.map +1 -1
  139. package/dist/core/db/repositories/base.d.ts +18 -0
  140. package/dist/core/db/repositories/base.d.ts.map +1 -1
  141. package/dist/core/db/repositories/board-comments.d.ts +17 -1
  142. package/dist/core/db/repositories/board-comments.d.ts.map +1 -1
  143. package/dist/core/db/repositories/board-objects.d.ts.map +1 -1
  144. package/dist/core/db/repositories/boards.d.ts +28 -4
  145. package/dist/core/db/repositories/boards.d.ts.map +1 -1
  146. package/dist/core/db/repositories/branch-access.d.ts +32 -0
  147. package/dist/core/db/repositories/branch-access.d.ts.map +1 -1
  148. package/dist/core/db/repositories/branches.d.ts +41 -1
  149. package/dist/core/db/repositories/branches.d.ts.map +1 -1
  150. package/dist/core/db/repositories/cards.d.ts +15 -1
  151. package/dist/core/db/repositories/cards.d.ts.map +1 -1
  152. package/dist/core/db/repositories/gateway-channels.d.ts.map +1 -1
  153. package/dist/core/db/repositories/gateway-outbound-messages.d.ts +19 -0
  154. package/dist/core/db/repositories/gateway-outbound-messages.d.ts.map +1 -0
  155. package/dist/core/db/repositories/index.d.ts +2 -0
  156. package/dist/core/db/repositories/index.d.ts.map +1 -1
  157. package/dist/core/db/repositories/messages.d.ts +9 -2
  158. package/dist/core/db/repositories/messages.d.ts.map +1 -1
  159. package/dist/core/db/repositories/repos.d.ts.map +1 -1
  160. package/dist/core/db/repositories/schedules.d.ts +12 -1
  161. package/dist/core/db/repositories/schedules.d.ts.map +1 -1
  162. package/dist/core/db/repositories/sessions.d.ts +49 -5
  163. package/dist/core/db/repositories/sessions.d.ts.map +1 -1
  164. package/dist/core/db/repositories/tasks.d.ts +7 -2
  165. package/dist/core/db/repositories/tasks.d.ts.map +1 -1
  166. package/dist/core/db/repositories/user-api-keys.d.ts +10 -1
  167. package/dist/core/db/repositories/user-api-keys.d.ts.map +1 -1
  168. package/dist/core/db/repositories/users.d.ts +8 -8
  169. package/dist/core/db/repositories/users.d.ts.map +1 -1
  170. package/dist/core/db/schema.d.ts +1460 -38
  171. package/dist/core/db/schema.d.ts.map +1 -1
  172. package/dist/core/db/schema.postgres.d.ts +1082 -37
  173. package/dist/core/db/schema.postgres.d.ts.map +1 -1
  174. package/dist/core/db/schema.sqlite.d.ts +397 -1
  175. package/dist/core/db/schema.sqlite.d.ts.map +1 -1
  176. package/dist/core/db/tenant-context.d.ts +26 -0
  177. package/dist/core/db/tenant-context.d.ts.map +1 -0
  178. package/dist/core/db/tenant-scope.d.ts +31 -0
  179. package/dist/core/db/tenant-scope.d.ts.map +1 -0
  180. package/dist/core/db/user-utils.d.ts +2 -2
  181. package/dist/core/db/user-utils.d.ts.map +1 -1
  182. package/dist/core/drizzle/postgres/0052_gateway_outbound_messages.sql +45 -0
  183. package/dist/core/drizzle/postgres/0053_user_token_invalidation.sql +1 -0
  184. package/dist/core/drizzle/postgres/0054_app_level_multitenancy.sql +219 -0
  185. package/dist/core/drizzle/postgres/0055_app_level_multitenancy_rls.sql +411 -0
  186. package/dist/core/drizzle/postgres/0056_composite_indexes.sql +15 -0
  187. package/dist/core/drizzle/postgres/0057_message_timestamp_indexes.sql +3 -0
  188. package/dist/core/drizzle/postgres/meta/_journal.json +42 -0
  189. package/dist/core/drizzle/sqlite/0061_gateway_outbound_messages.sql +38 -0
  190. package/dist/core/drizzle/sqlite/0062_user_token_invalidation.sql +1 -0
  191. package/dist/core/drizzle/sqlite/0063_composite_indexes.sql +10 -0
  192. package/dist/core/drizzle/sqlite/0064_message_timestamp_indexes.sql +2 -0
  193. package/dist/core/drizzle/sqlite/meta/_journal.json +28 -0
  194. package/dist/core/environment/render-snapshot.cjs +1 -4
  195. package/dist/core/environment/render-snapshot.js +1 -4
  196. package/dist/core/environment/webhook.cjs +1 -4
  197. package/dist/core/environment/webhook.js +1 -4
  198. package/dist/core/gateway/connector.d.ts +10 -1
  199. package/dist/core/gateway/connector.d.ts.map +1 -1
  200. package/dist/core/gateway/connectors/slack-manifest.cjs +108 -0
  201. package/dist/core/gateway/connectors/slack-manifest.d.ts +85 -0
  202. package/dist/core/gateway/connectors/slack-manifest.d.ts.map +1 -0
  203. package/dist/core/gateway/connectors/slack-manifest.js +81 -0
  204. package/dist/core/gateway/connectors/slack.d.ts +101 -4
  205. package/dist/core/gateway/connectors/slack.d.ts.map +1 -1
  206. package/dist/core/gateway/index.cjs +495 -29
  207. package/dist/core/gateway/index.d.ts +4 -1
  208. package/dist/core/gateway/index.d.ts.map +1 -1
  209. package/dist/core/gateway/index.js +490 -28
  210. package/dist/core/gateway/system-message.d.ts.map +1 -1
  211. package/dist/core/git/exec.cjs +24 -0
  212. package/dist/core/git/exec.d.ts +6 -4
  213. package/dist/core/git/exec.d.ts.map +1 -1
  214. package/dist/core/git/exec.js +2 -0
  215. package/dist/core/git/index.cjs +3 -1363
  216. package/dist/core/git/index.d.ts +4 -614
  217. package/dist/core/git/index.d.ts.map +1 -1
  218. package/dist/core/git/index.js +1 -1304
  219. package/dist/core/git/pure.cjs +24 -0
  220. package/dist/core/git/pure.d.ts +2 -27
  221. package/dist/core/git/pure.d.ts.map +1 -1
  222. package/dist/core/git/pure.js +2 -0
  223. package/dist/core/index.cjs +11137 -10604
  224. package/dist/core/index.d.ts +2 -0
  225. package/dist/core/index.d.ts.map +1 -1
  226. package/dist/core/index.js +11673 -10630
  227. package/dist/core/lib/feathers-validation.cjs +6 -1
  228. package/dist/core/lib/feathers-validation.d.ts +1 -0
  229. package/dist/core/lib/feathers-validation.d.ts.map +1 -1
  230. package/dist/core/lib/feathers-validation.js +6 -1
  231. package/dist/core/local-actions/git-remotes.d.ts +7 -0
  232. package/dist/core/local-actions/git-remotes.d.ts.map +1 -0
  233. package/dist/core/local-actions/index.cjs +7941 -0
  234. package/dist/core/local-actions/index.d.ts +6 -0
  235. package/dist/core/local-actions/index.d.ts.map +1 -0
  236. package/dist/core/local-actions/index.js +7943 -0
  237. package/dist/core/local-actions/symlinks.d.ts +20 -0
  238. package/dist/core/local-actions/symlinks.d.ts.map +1 -0
  239. package/dist/core/local-actions/types.d.ts +14 -0
  240. package/dist/core/local-actions/types.d.ts.map +1 -0
  241. package/dist/core/local-actions/unix-groups.d.ts +16 -0
  242. package/dist/core/local-actions/unix-groups.d.ts.map +1 -0
  243. package/dist/core/local-actions/unix-users.d.ts +12 -0
  244. package/dist/core/local-actions/unix-users.d.ts.map +1 -0
  245. package/dist/core/mcp/index.cjs +352 -25
  246. package/dist/core/mcp/index.js +351 -24
  247. package/dist/core/models/browser.cjs +148 -25
  248. package/dist/core/models/browser.js +144 -25
  249. package/dist/core/models/claude.d.ts +2 -2
  250. package/dist/core/models/claude.d.ts.map +1 -1
  251. package/dist/core/models/codex.d.ts +205 -21
  252. package/dist/core/models/codex.d.ts.map +1 -1
  253. package/dist/core/models/index.cjs +148 -25
  254. package/dist/core/models/index.js +144 -25
  255. package/dist/core/package.json +24 -0
  256. package/dist/core/seed/demo-fixtures.d.ts +87 -0
  257. package/dist/core/seed/demo-fixtures.d.ts.map +1 -0
  258. package/dist/core/seed/dev-fixtures.d.ts.map +1 -1
  259. package/dist/core/seed/index.cjs +8410 -5504
  260. package/dist/core/seed/index.d.ts +1 -0
  261. package/dist/core/seed/index.d.ts.map +1 -1
  262. package/dist/core/seed/index.js +8434 -5533
  263. package/dist/core/sessions/index.cjs +110 -24
  264. package/dist/core/sessions/index.js +110 -24
  265. package/dist/core/telemetry/index.cjs +361 -0
  266. package/dist/core/telemetry/index.d.ts +5 -0
  267. package/dist/core/telemetry/index.d.ts.map +1 -0
  268. package/dist/core/telemetry/index.js +315 -0
  269. package/dist/core/telemetry/logger.d.ts +44 -0
  270. package/dist/core/telemetry/logger.d.ts.map +1 -0
  271. package/dist/core/telemetry/model-normalization.d.ts +3 -0
  272. package/dist/core/telemetry/model-normalization.d.ts.map +1 -0
  273. package/dist/core/telemetry/types.d.ts +47 -0
  274. package/dist/core/telemetry/types.d.ts.map +1 -0
  275. package/dist/core/telemetry/version.d.ts +9 -0
  276. package/dist/core/telemetry/version.d.ts.map +1 -0
  277. package/dist/core/templates/agor-system-prompt.md +1 -0
  278. package/dist/core/tools/mcp/oauth-refresh.cjs +532 -102
  279. package/dist/core/tools/mcp/oauth-refresh.js +530 -103
  280. package/dist/core/types/board.d.ts +2 -0
  281. package/dist/core/types/board.d.ts.map +1 -1
  282. package/dist/core/types/branch.d.ts +13 -0
  283. package/dist/core/types/branch.d.ts.map +1 -1
  284. package/dist/core/types/config-services.d.ts.map +1 -1
  285. package/dist/core/types/feathers.d.ts +6 -0
  286. package/dist/core/types/feathers.d.ts.map +1 -1
  287. package/dist/core/types/gateway.d.ts +76 -1
  288. package/dist/core/types/gateway.d.ts.map +1 -1
  289. package/dist/core/types/index.cjs +25 -0
  290. package/dist/core/types/index.d.ts +1 -0
  291. package/dist/core/types/index.d.ts.map +1 -1
  292. package/dist/core/types/index.js +22 -0
  293. package/dist/core/types/schedule.d.ts +4 -3
  294. package/dist/core/types/schedule.d.ts.map +1 -1
  295. package/dist/core/types/session.d.ts +7 -1
  296. package/dist/core/types/session.d.ts.map +1 -1
  297. package/dist/core/types/tenant.d.ts +15 -0
  298. package/dist/core/types/tenant.d.ts.map +1 -0
  299. package/dist/core/types/user.d.ts +61 -0
  300. package/dist/core/types/user.d.ts.map +1 -1
  301. package/dist/core/unix/index.cjs +1056 -674
  302. package/dist/core/unix/index.js +1003 -623
  303. package/dist/core/utils/emoji-shortcodes.d.ts +13 -0
  304. package/dist/core/utils/emoji-shortcodes.d.ts.map +1 -0
  305. package/dist/core/yaml/index.cjs +8 -8
  306. package/dist/core/yaml/index.d.ts +1 -1
  307. package/dist/core/yaml/index.d.ts.map +1 -1
  308. package/dist/core/yaml/index.js +7 -7
  309. package/dist/daemon/adapters/drizzle.d.ts +26 -4
  310. package/dist/daemon/adapters/drizzle.d.ts.map +1 -1
  311. package/dist/daemon/adapters/drizzle.js +68 -7
  312. package/dist/daemon/auth/api-key-strategy.js +1 -1
  313. package/dist/daemon/auth/executor-runtime-scope.d.ts.map +1 -1
  314. package/dist/daemon/auth/executor-runtime-scope.js +19 -5
  315. package/dist/daemon/auth/launch-auth.d.ts +5 -4
  316. package/dist/daemon/auth/launch-auth.d.ts.map +1 -1
  317. package/dist/daemon/auth/launch-auth.js +123 -39
  318. package/dist/daemon/auth/refresh-token-service.d.ts +22 -0
  319. package/dist/daemon/auth/refresh-token-service.d.ts.map +1 -0
  320. package/dist/daemon/auth/refresh-token-service.js +133 -0
  321. package/dist/daemon/auth/runtime-tokens.d.ts +3 -1
  322. package/dist/daemon/auth/runtime-tokens.d.ts.map +1 -1
  323. package/dist/daemon/auth/runtime-tokens.js +17 -4
  324. package/dist/daemon/auth/service-jwt-strategy.d.ts +2 -1
  325. package/dist/daemon/auth/service-jwt-strategy.d.ts.map +1 -1
  326. package/dist/daemon/auth/service-jwt-strategy.js +127 -1
  327. package/dist/daemon/auth/token-invalidation.d.ts +11 -0
  328. package/dist/daemon/auth/token-invalidation.d.ts.map +1 -0
  329. package/dist/daemon/auth/token-invalidation.js +38 -0
  330. package/dist/daemon/auth/user-redaction.d.ts +12 -0
  331. package/dist/daemon/auth/user-redaction.d.ts.map +1 -0
  332. package/dist/daemon/auth/user-redaction.js +13 -0
  333. package/dist/daemon/declarations.d.ts +4 -4
  334. package/dist/daemon/declarations.d.ts.map +1 -1
  335. package/dist/daemon/hooks/gateway-route.d.ts.map +1 -1
  336. package/dist/daemon/hooks/gateway-route.js +23 -13
  337. package/dist/daemon/index.d.ts.map +1 -1
  338. package/dist/daemon/index.js +7234 -2866
  339. package/dist/daemon/knowledge/pgvector.d.ts +3 -3
  340. package/dist/daemon/knowledge/pgvector.d.ts.map +1 -1
  341. package/dist/daemon/knowledge/pgvector.js +24 -0
  342. package/dist/daemon/knowledge/units.d.ts +2 -2
  343. package/dist/daemon/knowledge/units.d.ts.map +1 -1
  344. package/dist/daemon/main.js +7234 -2866
  345. package/dist/daemon/mcp/server.d.ts +3 -3
  346. package/dist/daemon/mcp/server.d.ts.map +1 -1
  347. package/dist/daemon/mcp/server.js +1467 -71
  348. package/dist/daemon/mcp/tokens.d.ts +2 -2
  349. package/dist/daemon/mcp/tokens.d.ts.map +1 -1
  350. package/dist/daemon/mcp/tokens.js +5 -1
  351. package/dist/daemon/mcp/tool-registry.d.ts.map +1 -1
  352. package/dist/daemon/mcp/tool-registry.js +1 -0
  353. package/dist/daemon/mcp/tools/analytics.d.ts.map +1 -1
  354. package/dist/daemon/mcp/tools/analytics.js +548 -23
  355. package/dist/daemon/mcp/tools/artifacts.js +510 -19
  356. package/dist/daemon/mcp/tools/boards.d.ts.map +1 -1
  357. package/dist/daemon/mcp/tools/boards.js +517 -20
  358. package/dist/daemon/mcp/tools/branches.d.ts.map +1 -1
  359. package/dist/daemon/mcp/tools/branches.js +574 -49
  360. package/dist/daemon/mcp/tools/card-types.js +508 -17
  361. package/dist/daemon/mcp/tools/cards.js +508 -17
  362. package/dist/daemon/mcp/tools/environment.js +516 -17
  363. package/dist/daemon/mcp/tools/gateway-channels.d.ts +4 -0
  364. package/dist/daemon/mcp/tools/gateway-channels.d.ts.map +1 -0
  365. package/dist/daemon/mcp/tools/gateway-channels.js +16035 -0
  366. package/dist/daemon/mcp/tools/knowledge.js +508 -17
  367. package/dist/daemon/mcp/tools/mcp-servers.d.ts.map +1 -1
  368. package/dist/daemon/mcp/tools/mcp-servers.js +843 -17
  369. package/dist/daemon/mcp/tools/messages.d.ts.map +1 -1
  370. package/dist/daemon/mcp/tools/messages.js +568 -31
  371. package/dist/daemon/mcp/tools/proxies.js +518 -19
  372. package/dist/daemon/mcp/tools/repos.js +508 -17
  373. package/dist/daemon/mcp/tools/schedules.d.ts.map +1 -1
  374. package/dist/daemon/mcp/tools/schedules.js +511 -18
  375. package/dist/daemon/mcp/tools/search.js +508 -17
  376. package/dist/daemon/mcp/tools/sessions.d.ts.map +1 -1
  377. package/dist/daemon/mcp/tools/sessions.js +521 -23
  378. package/dist/daemon/mcp/tools/tasks.js +508 -17
  379. package/dist/daemon/mcp/tools/users.d.ts.map +1 -1
  380. package/dist/daemon/mcp/tools/users.js +527 -22
  381. package/dist/daemon/mcp/tools/widgets.d.ts.map +1 -1
  382. package/dist/daemon/mcp/tools/widgets.js +536 -18
  383. package/dist/daemon/register-hooks.d.ts +3 -2
  384. package/dist/daemon/register-hooks.d.ts.map +1 -1
  385. package/dist/daemon/register-hooks.js +894 -582
  386. package/dist/daemon/register-routes.d.ts +3 -2
  387. package/dist/daemon/register-routes.d.ts.map +1 -1
  388. package/dist/daemon/register-routes.js +2715 -816
  389. package/dist/daemon/register-services.d.ts +2 -2
  390. package/dist/daemon/register-services.d.ts.map +1 -1
  391. package/dist/daemon/register-services.js +2445 -633
  392. package/dist/daemon/services/artifacts.d.ts +34 -6
  393. package/dist/daemon/services/artifacts.d.ts.map +1 -1
  394. package/dist/daemon/services/artifacts.js +109 -8
  395. package/dist/daemon/services/assistant-knowledge.d.ts +2 -2
  396. package/dist/daemon/services/assistant-knowledge.d.ts.map +1 -1
  397. package/dist/daemon/services/board-comments.d.ts +8 -5
  398. package/dist/daemon/services/board-comments.d.ts.map +1 -1
  399. package/dist/daemon/services/board-comments.js +78 -13
  400. package/dist/daemon/services/board-objects.d.ts +8 -5
  401. package/dist/daemon/services/board-objects.d.ts.map +1 -1
  402. package/dist/daemon/services/board-objects.js +14 -4
  403. package/dist/daemon/services/boards.d.ts +34 -5
  404. package/dist/daemon/services/boards.d.ts.map +1 -1
  405. package/dist/daemon/services/boards.js +116 -8
  406. package/dist/daemon/services/branch-owners.d.ts +3 -1
  407. package/dist/daemon/services/branch-owners.d.ts.map +1 -1
  408. package/dist/daemon/services/branch-owners.js +31 -4
  409. package/dist/daemon/services/branches.d.ts +31 -8
  410. package/dist/daemon/services/branches.d.ts.map +1 -1
  411. package/dist/daemon/services/branches.js +242 -35
  412. package/dist/daemon/services/card-types.d.ts +3 -3
  413. package/dist/daemon/services/card-types.d.ts.map +1 -1
  414. package/dist/daemon/services/card-types.js +68 -7
  415. package/dist/daemon/services/cards.d.ts +19 -4
  416. package/dist/daemon/services/cards.d.ts.map +1 -1
  417. package/dist/daemon/services/cards.js +92 -8
  418. package/dist/daemon/services/check-auth.d.ts +2 -2
  419. package/dist/daemon/services/check-auth.d.ts.map +1 -1
  420. package/dist/daemon/services/claude-cli-integration.d.ts +4 -1
  421. package/dist/daemon/services/claude-cli-integration.d.ts.map +1 -1
  422. package/dist/daemon/services/claude-cli-integration.js +117 -65
  423. package/dist/daemon/services/claude-models.d.ts +3 -3
  424. package/dist/daemon/services/claude-models.d.ts.map +1 -1
  425. package/dist/daemon/services/claude-models.js +383 -272
  426. package/dist/daemon/services/config.d.ts +12 -4
  427. package/dist/daemon/services/config.d.ts.map +1 -1
  428. package/dist/daemon/services/config.js +39 -3
  429. package/dist/daemon/services/copilot-models.d.ts +3 -3
  430. package/dist/daemon/services/copilot-models.d.ts.map +1 -1
  431. package/dist/daemon/services/cursor-models.d.ts +3 -3
  432. package/dist/daemon/services/cursor-models.d.ts.map +1 -1
  433. package/dist/daemon/services/files.d.ts +3 -3
  434. package/dist/daemon/services/files.d.ts.map +1 -1
  435. package/dist/daemon/services/files.js +24 -5
  436. package/dist/daemon/services/gateway-channels-test.d.ts +24 -0
  437. package/dist/daemon/services/gateway-channels-test.d.ts.map +1 -0
  438. package/dist/daemon/services/gateway-channels-test.js +66 -0
  439. package/dist/daemon/services/gateway-channels.d.ts +3 -3
  440. package/dist/daemon/services/gateway-channels.d.ts.map +1 -1
  441. package/dist/daemon/services/gateway-channels.js +68 -7
  442. package/dist/daemon/services/gateway.d.ts +48 -3
  443. package/dist/daemon/services/gateway.d.ts.map +1 -1
  444. package/dist/daemon/services/gateway.js +606 -60
  445. package/dist/daemon/services/github-app-setup.d.ts +3 -3
  446. package/dist/daemon/services/github-app-setup.d.ts.map +1 -1
  447. package/dist/daemon/services/groups.d.ts +5 -5
  448. package/dist/daemon/services/groups.d.ts.map +1 -1
  449. package/dist/daemon/services/health-monitor.d.ts +34 -2
  450. package/dist/daemon/services/health-monitor.d.ts.map +1 -1
  451. package/dist/daemon/services/health-monitor.js +145 -23
  452. package/dist/daemon/services/knowledge-document-edits.d.ts +3 -3
  453. package/dist/daemon/services/knowledge-document-edits.d.ts.map +1 -1
  454. package/dist/daemon/services/knowledge-documents.d.ts +3 -3
  455. package/dist/daemon/services/knowledge-documents.d.ts.map +1 -1
  456. package/dist/daemon/services/knowledge-documents.js +92 -7
  457. package/dist/daemon/services/knowledge-embedding-indexer.d.ts +7 -2
  458. package/dist/daemon/services/knowledge-embedding-indexer.d.ts.map +1 -1
  459. package/dist/daemon/services/knowledge-embedding-indexer.js +37 -3
  460. package/dist/daemon/services/knowledge-graph.d.ts +3 -3
  461. package/dist/daemon/services/knowledge-graph.d.ts.map +1 -1
  462. package/dist/daemon/services/knowledge-indexing.d.ts +3 -3
  463. package/dist/daemon/services/knowledge-indexing.d.ts.map +1 -1
  464. package/dist/daemon/services/knowledge-namespaces.d.ts +3 -3
  465. package/dist/daemon/services/knowledge-namespaces.d.ts.map +1 -1
  466. package/dist/daemon/services/knowledge-namespaces.js +72 -8
  467. package/dist/daemon/services/knowledge-reindex.d.ts +3 -3
  468. package/dist/daemon/services/knowledge-reindex.d.ts.map +1 -1
  469. package/dist/daemon/services/knowledge-reindex.js +28 -1
  470. package/dist/daemon/services/knowledge-search.d.ts +3 -3
  471. package/dist/daemon/services/knowledge-search.d.ts.map +1 -1
  472. package/dist/daemon/services/knowledge-settings.d.ts +3 -3
  473. package/dist/daemon/services/knowledge-settings.d.ts.map +1 -1
  474. package/dist/daemon/services/knowledge-settings.js +24 -0
  475. package/dist/daemon/services/knowledge-versions.d.ts +3 -3
  476. package/dist/daemon/services/knowledge-versions.d.ts.map +1 -1
  477. package/dist/daemon/services/knowledge-versions.js +68 -7
  478. package/dist/daemon/services/leaderboard.d.ts +14 -6
  479. package/dist/daemon/services/leaderboard.d.ts.map +1 -1
  480. package/dist/daemon/services/leaderboard.js +74 -15
  481. package/dist/daemon/services/local-actions.d.ts +13 -0
  482. package/dist/daemon/services/local-actions.d.ts.map +1 -0
  483. package/dist/daemon/services/local-actions.js +120 -0
  484. package/dist/daemon/services/mcp-servers.d.ts +3 -3
  485. package/dist/daemon/services/mcp-servers.d.ts.map +1 -1
  486. package/dist/daemon/services/mcp-servers.js +68 -7
  487. package/dist/daemon/services/messages.d.ts +10 -6
  488. package/dist/daemon/services/messages.d.ts.map +1 -1
  489. package/dist/daemon/services/messages.js +87 -7
  490. package/dist/daemon/services/repos.d.ts +6 -6
  491. package/dist/daemon/services/repos.d.ts.map +1 -1
  492. package/dist/daemon/services/repos.js +131 -32
  493. package/dist/daemon/services/scheduler.d.ts +23 -27
  494. package/dist/daemon/services/scheduler.d.ts.map +1 -1
  495. package/dist/daemon/services/scheduler.js +55 -28
  496. package/dist/daemon/services/schedules.d.ts +3 -3
  497. package/dist/daemon/services/schedules.d.ts.map +1 -1
  498. package/dist/daemon/services/schedules.js +68 -7
  499. package/dist/daemon/services/session-env-selections.d.ts +3 -3
  500. package/dist/daemon/services/session-env-selections.d.ts.map +1 -1
  501. package/dist/daemon/services/session-mcp-servers.d.ts +3 -3
  502. package/dist/daemon/services/session-mcp-servers.d.ts.map +1 -1
  503. package/dist/daemon/services/session-token-service.d.ts.map +1 -1
  504. package/dist/daemon/services/session-token-service.js +3 -0
  505. package/dist/daemon/services/sessions.d.ts +9 -5
  506. package/dist/daemon/services/sessions.d.ts.map +1 -1
  507. package/dist/daemon/services/sessions.js +143 -10
  508. package/dist/daemon/services/tasks.d.ts +11 -5
  509. package/dist/daemon/services/tasks.d.ts.map +1 -1
  510. package/dist/daemon/services/tasks.js +199 -39
  511. package/dist/daemon/services/terminals.d.ts +21 -3
  512. package/dist/daemon/services/terminals.d.ts.map +1 -1
  513. package/dist/daemon/services/terminals.js +81 -25
  514. package/dist/daemon/services/thread-session-map.d.ts +3 -3
  515. package/dist/daemon/services/thread-session-map.d.ts.map +1 -1
  516. package/dist/daemon/services/thread-session-map.js +68 -7
  517. package/dist/daemon/services/user-avatar-sync.d.ts +21 -0
  518. package/dist/daemon/services/user-avatar-sync.d.ts.map +1 -0
  519. package/dist/daemon/services/user-avatar-sync.js +267 -0
  520. package/dist/daemon/services/users.d.ts +29 -9
  521. package/dist/daemon/services/users.d.ts.map +1 -1
  522. package/dist/daemon/services/users.js +383 -30
  523. package/dist/daemon/services/zone-trigger.d.ts.map +1 -1
  524. package/dist/daemon/services/zone-trigger.js +17 -4
  525. package/dist/daemon/setup/build-info.d.ts +1 -1
  526. package/dist/daemon/setup/build-info.d.ts.map +1 -1
  527. package/dist/daemon/setup/build-info.js +5 -1
  528. package/dist/daemon/setup/database.d.ts +8 -3
  529. package/dist/daemon/setup/database.d.ts.map +1 -1
  530. package/dist/daemon/setup/database.js +26 -6
  531. package/dist/daemon/setup/first-run-admin.d.ts +2 -2
  532. package/dist/daemon/setup/first-run-admin.d.ts.map +1 -1
  533. package/dist/daemon/setup/index.js +97 -17
  534. package/dist/daemon/setup/socketio.d.ts +10 -1
  535. package/dist/daemon/setup/socketio.d.ts.map +1 -1
  536. package/dist/daemon/setup/socketio.js +68 -10
  537. package/dist/daemon/startup.d.ts +13 -2
  538. package/dist/daemon/startup.d.ts.map +1 -1
  539. package/dist/daemon/startup.js +348 -86
  540. package/dist/daemon/utils/append-system-message.d.ts +2 -2
  541. package/dist/daemon/utils/append-system-message.d.ts.map +1 -1
  542. package/dist/daemon/utils/apply-session-config-defaults.d.ts.map +1 -1
  543. package/dist/daemon/utils/apply-session-config-defaults.js +12 -1
  544. package/dist/daemon/utils/authorization.d.ts +3 -1
  545. package/dist/daemon/utils/authorization.d.ts.map +1 -1
  546. package/dist/daemon/utils/authorization.js +21 -6
  547. package/dist/daemon/utils/branch-authorization.d.ts +30 -0
  548. package/dist/daemon/utils/branch-authorization.d.ts.map +1 -1
  549. package/dist/daemon/utils/branch-authorization.js +63 -5
  550. package/dist/daemon/utils/branch-inspect.d.ts +1 -0
  551. package/dist/daemon/utils/branch-inspect.d.ts.map +1 -1
  552. package/dist/daemon/utils/branch-inspect.js +11 -3
  553. package/dist/daemon/utils/executor-read-impersonation.d.ts +2 -2
  554. package/dist/daemon/utils/executor-read-impersonation.d.ts.map +1 -1
  555. package/dist/daemon/utils/git-impersonation.d.ts +10 -10
  556. package/dist/daemon/utils/git-impersonation.d.ts.map +1 -1
  557. package/dist/daemon/utils/git-remote-credential-scan.d.ts +3 -3
  558. package/dist/daemon/utils/git-remote-credential-scan.d.ts.map +1 -1
  559. package/dist/daemon/utils/git-remote-credential-scan.js +6 -2
  560. package/dist/daemon/utils/mcp-token-authorization.d.ts +18 -13
  561. package/dist/daemon/utils/mcp-token-authorization.d.ts.map +1 -1
  562. package/dist/daemon/utils/mcp-token-authorization.js +11 -5
  563. package/dist/daemon/utils/open-source-telemetry-config.d.ts +6 -0
  564. package/dist/daemon/utils/open-source-telemetry-config.d.ts.map +1 -0
  565. package/dist/daemon/utils/open-source-telemetry-config.js +21 -0
  566. package/dist/daemon/utils/open-source-telemetry-heartbeat.d.ts +7 -0
  567. package/dist/daemon/utils/open-source-telemetry-heartbeat.d.ts.map +1 -0
  568. package/dist/daemon/utils/open-source-telemetry-heartbeat.js +15 -0
  569. package/dist/daemon/utils/open-source-telemetry-usage.d.ts +9 -0
  570. package/dist/daemon/utils/open-source-telemetry-usage.d.ts.map +1 -0
  571. package/dist/daemon/utils/open-source-telemetry-usage.js +121 -0
  572. package/dist/daemon/utils/realign-repo-origin.d.ts +3 -3
  573. package/dist/daemon/utils/realign-repo-origin.d.ts.map +1 -1
  574. package/dist/daemon/utils/realign-repo-origin.js +47 -16
  575. package/dist/daemon/utils/realtime-publish.d.ts +2 -0
  576. package/dist/daemon/utils/realtime-publish.d.ts.map +1 -1
  577. package/dist/daemon/utils/realtime-publish.js +51 -10
  578. package/dist/daemon/utils/session-state-hooks.d.ts +3 -3
  579. package/dist/daemon/utils/session-state-hooks.d.ts.map +1 -1
  580. package/dist/daemon/utils/session-turn-lock.d.ts +8 -1
  581. package/dist/daemon/utils/session-turn-lock.d.ts.map +1 -1
  582. package/dist/daemon/utils/session-turn-lock.js +25 -2
  583. package/dist/daemon/utils/spawn-executor.d.ts +23 -1
  584. package/dist/daemon/utils/spawn-executor.d.ts.map +1 -1
  585. package/dist/daemon/utils/spawn-executor.js +34 -4
  586. package/dist/daemon/utils/tenant-db-scope.d.ts +20 -0
  587. package/dist/daemon/utils/tenant-db-scope.d.ts.map +1 -0
  588. package/dist/daemon/utils/tenant-db-scope.js +114 -0
  589. package/dist/daemon/utils/unix-group-init.d.ts +3 -3
  590. package/dist/daemon/utils/unix-group-init.d.ts.map +1 -1
  591. package/dist/daemon/utils/upload.d.ts +6 -9
  592. package/dist/daemon/utils/upload.d.ts.map +1 -1
  593. package/dist/daemon/utils/upload.js +30 -37
  594. package/dist/daemon/widgets/env-vars/index.d.ts +26 -1
  595. package/dist/daemon/widgets/env-vars/index.d.ts.map +1 -1
  596. package/dist/daemon/widgets/env-vars/index.js +145 -21
  597. package/dist/daemon/widgets/index.js +137 -21
  598. package/dist/executor/commands/environment.d.ts.map +1 -1
  599. package/dist/executor/commands/environment.js +9 -5
  600. package/dist/executor/commands/git.js +1 -1
  601. package/dist/executor/git/index.d.ts +8 -0
  602. package/dist/executor/git/index.d.ts.map +1 -0
  603. package/dist/executor/git/index.js +7 -0
  604. package/dist/executor/handlers/sdk/base-executor.d.ts.map +1 -1
  605. package/dist/executor/handlers/sdk/base-executor.js +4 -1
  606. package/dist/executor/handlers/sdk/git-safe-directory.d.ts.map +1 -1
  607. package/dist/executor/handlers/sdk/git-safe-directory.js +1 -1
  608. package/dist/executor/sdk-handlers/base/diff-enrichment.js +1 -1
  609. package/dist/executor/sdk-handlers/codex/codex-tool.d.ts +6 -10
  610. package/dist/executor/sdk-handlers/codex/codex-tool.d.ts.map +1 -1
  611. package/dist/executor/sdk-handlers/codex/codex-tool.js +12 -15
  612. package/dist/executor/sdk-handlers/codex/normalizer.d.ts.map +1 -1
  613. package/dist/executor/sdk-handlers/codex/normalizer.js +11 -1
  614. package/dist/executor/sdk-handlers/codex/pricing/litellm-openai-model-prices.json +3663 -0
  615. package/dist/executor/sdk-handlers/codex/pricing/litellm-pricing.d.ts +31 -0
  616. package/dist/executor/sdk-handlers/codex/pricing/litellm-pricing.d.ts.map +1 -0
  617. package/dist/executor/sdk-handlers/codex/pricing/litellm-pricing.js +46 -0
  618. package/dist/executor/sdk-handlers/codex/prompt-service.d.ts.map +1 -1
  619. package/dist/executor/sdk-handlers/codex/prompt-service.js +61 -6
  620. package/dist/executor/sdk-handlers/codex/usage.d.ts +14 -23
  621. package/dist/executor/sdk-handlers/codex/usage.d.ts.map +1 -1
  622. package/dist/executor/sdk-handlers/codex/usage.js +18 -33
  623. package/dist/executor/services/feathers-client.js +5 -5
  624. package/dist/git/index.cjs +1101 -0
  625. package/dist/git/index.d.ts +533 -0
  626. package/dist/git/index.d.ts.map +1 -0
  627. package/dist/git/index.js +1022 -0
  628. package/dist/git/package.json +21 -0
  629. package/dist/git/pure.cjs +185 -0
  630. package/dist/git/pure.d.ts +39 -0
  631. package/dist/git/pure.d.ts.map +1 -0
  632. package/dist/git/pure.js +139 -0
  633. package/dist/ui/assets/AgorEmojiPickerInner-DQjr8M3_.js +1 -0
  634. package/dist/ui/assets/App-hJtcOxHv.js +5 -0
  635. package/dist/ui/assets/App-hJtcOxHv.js.gz +0 -0
  636. package/dist/ui/assets/AppNode-BhuMpn8O.js +1 -0
  637. package/dist/ui/assets/AppNode-BhuMpn8O.js.gz +0 -0
  638. package/dist/ui/assets/ArtifactConsentModal-oMMzRn8L.js +1 -0
  639. package/dist/ui/assets/ArtifactConsentModal-oMMzRn8L.js.gz +0 -0
  640. package/dist/ui/assets/ArtifactFullscreenPage-B3wT8t8f.js +9 -0
  641. package/dist/ui/assets/ArtifactFullscreenPage-B3wT8t8f.js.gz +0 -0
  642. package/dist/ui/assets/ArtifactNode-BzQcrwFS.js +9 -0
  643. package/dist/ui/assets/ArtifactNode-BzQcrwFS.js.gz +0 -0
  644. package/dist/ui/assets/AutocompleteTextarea-Dau-V_30.js +19 -0
  645. package/dist/ui/assets/AutocompleteTextarea-Dau-V_30.js.gz +0 -0
  646. package/dist/ui/assets/BoardObjectNodes-DdKWv_ZT.js +34 -0
  647. package/dist/ui/assets/BoardObjectNodes-DdKWv_ZT.js.gz +0 -0
  648. package/dist/ui/assets/CodeEditor.inner-Cuj6RuLL.js +7 -0
  649. package/dist/ui/assets/CodeEditor.inner-Cuj6RuLL.js.gz +0 -0
  650. package/dist/ui/assets/ConversationView-9-3ma1u-.js +1 -0
  651. package/dist/ui/assets/ConversationView-9-3ma1u-.js.gz +0 -0
  652. package/dist/ui/assets/EmbeddedTerminal-Lx5I9EOJ.js +2 -0
  653. package/dist/ui/assets/EmbeddedTerminal-Lx5I9EOJ.js.gz +0 -0
  654. package/dist/ui/assets/KnowledgePage-Dz8YAMYC.js +24 -0
  655. package/dist/ui/assets/KnowledgePage-Dz8YAMYC.js.gz +0 -0
  656. package/dist/ui/assets/{MarketingScreenshotPage-zv5RUCuV.js → MarketingScreenshotPage-CmDPBHOl.js} +2 -2
  657. package/dist/ui/assets/MarketingScreenshotPage-CmDPBHOl.js.gz +0 -0
  658. package/dist/ui/assets/MobileApp-BpgSG_gz.js +1 -0
  659. package/dist/ui/assets/MobileApp-BpgSG_gz.js.gz +0 -0
  660. package/dist/ui/assets/SessionCanvas-B6_mtlxK.js +13 -0
  661. package/dist/ui/assets/SessionCanvas-B6_mtlxK.js.gz +0 -0
  662. package/dist/ui/assets/{SessionCanvas-mEmYGZhC.css → SessionCanvas-Bh7Yg5dZ.css} +1 -1
  663. package/dist/ui/assets/SessionCanvas-Bh7Yg5dZ.css.gz +0 -0
  664. package/dist/ui/assets/{StreamdownDemoPage-wzWaqWwr.js → StreamdownDemoPage-okKKR2QH.js} +2 -2
  665. package/dist/ui/assets/StreamdownDemoPage-okKKR2QH.js.gz +0 -0
  666. package/dist/ui/assets/TerminalModal-D9jMGZXv.js +2 -0
  667. package/dist/ui/assets/TerminalModal-D9jMGZXv.js.gz +0 -0
  668. package/dist/ui/assets/ThemeSwitcher-D9HgT37l.js +1 -0
  669. package/dist/ui/assets/ThemeSwitcher-D9HgT37l.js.gz +0 -0
  670. package/dist/ui/assets/ThemedSyntaxHighlighter.inner-C1FdIHn0.js +1 -0
  671. package/dist/ui/assets/{antd-CfbbHJOz.js → antd-DT5ackd0.js} +5 -5
  672. package/dist/ui/assets/{antd-CfbbHJOz.js.gz → antd-DT5ackd0.js.gz} +0 -0
  673. package/dist/ui/assets/architecture-U656AL7Q-DMnxkQRZ.js +1 -0
  674. package/dist/ui/assets/architectureDiagram-VXUJARFQ-DwTJGGoj.js +36 -0
  675. package/dist/ui/assets/architectureDiagram-VXUJARFQ-DwTJGGoj.js.gz +0 -0
  676. package/dist/ui/assets/{blockDiagram-VD42YOAC-BhZaEN19.js → blockDiagram-VD42YOAC-Dh1_TVW2.js} +4 -4
  677. package/dist/ui/assets/blockDiagram-VD42YOAC-Dh1_TVW2.js.gz +0 -0
  678. package/dist/ui/assets/{c4Diagram-YG6GDRKO-Dk_UH-sY.js → c4Diagram-YG6GDRKO-B1e96AcB.js} +2 -2
  679. package/dist/ui/assets/c4Diagram-YG6GDRKO-B1e96AcB.js.gz +0 -0
  680. package/dist/ui/assets/channel-Jv4dT4S5.js +1 -0
  681. package/dist/ui/assets/{chunk-4BX2VUAB-XprbG2TG.js → chunk-4BX2VUAB-BODpCjJx.js} +1 -1
  682. package/dist/ui/assets/chunk-55IACEB6-lJXvUquf.js +1 -0
  683. package/dist/ui/assets/{chunk-ABZYJK2D-BJcrryHK.js → chunk-ABZYJK2D-DCTXWSzV.js} +3 -3
  684. package/dist/ui/assets/chunk-ABZYJK2D-DCTXWSzV.js.gz +0 -0
  685. package/dist/ui/assets/{chunk-AGHRB4JF-DvxmfbM0.js → chunk-AGHRB4JF-CbNphBjE.js} +1 -1
  686. package/dist/ui/assets/chunk-AGHRB4JF-CbNphBjE.js.gz +0 -0
  687. package/dist/ui/assets/{chunk-ATLVNIR6-DbeJ0OrR.js → chunk-ATLVNIR6-rWg3qxof.js} +1 -1
  688. package/dist/ui/assets/chunk-ATLVNIR6-rWg3qxof.js.gz +0 -0
  689. package/dist/ui/assets/{chunk-B4BG7PRW-C53q2ggf.js → chunk-B4BG7PRW-CgtLCbpE.js} +3 -3
  690. package/dist/ui/assets/chunk-B4BG7PRW-CgtLCbpE.js.gz +0 -0
  691. package/dist/ui/assets/{chunk-CVBHYZKI-B3EBSlb3.js → chunk-CVBHYZKI-DTL6Zgr0.js} +1 -1
  692. package/dist/ui/assets/{chunk-DI55MBZ5-vIyNEQN-.js → chunk-DI55MBZ5-Dwvx2Kva.js} +1 -1
  693. package/dist/ui/assets/chunk-DI55MBZ5-Dwvx2Kva.js.gz +0 -0
  694. package/dist/ui/assets/chunk-EXTU4WIE-DHyaqTsP.js +1 -0
  695. package/dist/ui/assets/{chunk-FMBD7UC4-rddmfK-Z.js → chunk-FMBD7UC4-BogA_9CV.js} +1 -1
  696. package/dist/ui/assets/{chunk-HN2XXSSU-Dttqcg3b.js → chunk-HN2XXSSU-2blQO3Gb.js} +1 -1
  697. package/dist/ui/assets/chunk-HN2XXSSU-2blQO3Gb.js.gz +0 -0
  698. package/dist/ui/assets/chunk-JA3XYJ7Z-Cr1rmOui.js +11 -0
  699. package/dist/ui/assets/chunk-JA3XYJ7Z-Cr1rmOui.js.gz +0 -0
  700. package/dist/ui/assets/{chunk-JZLCHNYA-EUmx2y4H.js → chunk-JZLCHNYA-BsgZ79Fa.js} +5 -5
  701. package/dist/ui/assets/chunk-JZLCHNYA-BsgZ79Fa.js.gz +0 -0
  702. package/dist/ui/assets/{chunk-MI3HLSF2-65n9Mkyc.js → chunk-MI3HLSF2-dwYeUy5S.js} +1 -1
  703. package/dist/ui/assets/chunk-MI3HLSF2-dwYeUy5S.js.gz +0 -0
  704. package/dist/ui/assets/chunk-N4CR4FBY-DEMgSRVe.js +2 -0
  705. package/dist/ui/assets/chunk-N4CR4FBY-DEMgSRVe.js.gz +0 -0
  706. package/dist/ui/assets/{chunk-QN33PNHL-DsRKK6NR.js → chunk-QN33PNHL-DxdIDCAa.js} +1 -1
  707. package/dist/ui/assets/{chunk-QXUST7PY-BCYnMiS3.js → chunk-QXUST7PY-BCK2V0i-.js} +2 -2
  708. package/dist/ui/assets/chunk-QXUST7PY-BCK2V0i-.js.gz +0 -0
  709. package/dist/ui/assets/chunk-QZHKN3VN-CALjGrEE.js +1 -0
  710. package/dist/ui/assets/chunk-S3R3BYOJ-GP3zIxrB.js +2 -0
  711. package/dist/ui/assets/chunk-S3R3BYOJ-GP3zIxrB.js.gz +0 -0
  712. package/dist/ui/assets/{chunk-TZMSLE5B-BuQUQcTr.js → chunk-TZMSLE5B-dX5RaM6g.js} +1 -1
  713. package/dist/ui/assets/chunk-TZMSLE5B-dX5RaM6g.js.gz +0 -0
  714. package/dist/ui/assets/classDiagram-2ON5EDUG-C3_RVP70.js +1 -0
  715. package/dist/ui/assets/classDiagram-v2-WZHVMYZB-C3_RVP70.js +1 -0
  716. package/dist/ui/assets/constants-GjIDNVyt.js +1 -0
  717. package/dist/ui/assets/{cose-bilkent-S5V4N54A-CnPB3ARO.js → cose-bilkent-S5V4N54A-Dx0BJVDl.js} +1 -1
  718. package/dist/ui/assets/cose-bilkent-S5V4N54A-Dx0BJVDl.js.gz +0 -0
  719. package/dist/ui/assets/{dagre-6UL2VRFP-DhS-k_Se.js → dagre-6UL2VRFP-DiQSUxqN.js} +1 -1
  720. package/dist/ui/assets/dagre-6UL2VRFP-DiQSUxqN.js.gz +0 -0
  721. package/dist/ui/assets/{dagre-KgLoHEuy.js → dagre-Bekd9Vdj.js} +1 -1
  722. package/dist/ui/assets/dagre-Bekd9Vdj.js.gz +0 -0
  723. package/dist/ui/assets/diagram-PSM6KHXK-DtJnDQjc.js +24 -0
  724. package/dist/ui/assets/diagram-PSM6KHXK-DtJnDQjc.js.gz +0 -0
  725. package/dist/ui/assets/{diagram-QEK2KX5R-BPCitvbo.js → diagram-QEK2KX5R-CobkCRdj.js} +1 -1
  726. package/dist/ui/assets/diagram-QEK2KX5R-CobkCRdj.js.gz +0 -0
  727. package/dist/ui/assets/{diagram-S2PKOQOG-NW4uK6sx.js → diagram-S2PKOQOG-DHEZYivc.js} +1 -1
  728. package/dist/ui/assets/diagram-S2PKOQOG-DHEZYivc.js.gz +0 -0
  729. package/dist/ui/assets/editor-DQIG-JYZ.js +43 -0
  730. package/dist/ui/assets/editor-DQIG-JYZ.js.gz +0 -0
  731. package/dist/ui/assets/emoji-B0hLmSLZ.js +3 -0
  732. package/dist/ui/assets/emoji-B0hLmSLZ.js.gz +0 -0
  733. package/dist/ui/assets/{erDiagram-Q2GNP2WA-me1fboaf.js → erDiagram-Q2GNP2WA-BVNeTZPQ.js} +2 -2
  734. package/dist/ui/assets/erDiagram-Q2GNP2WA-BVNeTZPQ.js.gz +0 -0
  735. package/dist/ui/assets/flowDiagram-NV44I4VS-C73VFdyk.js +162 -0
  736. package/dist/ui/assets/flowDiagram-NV44I4VS-C73VFdyk.js.gz +0 -0
  737. package/dist/ui/assets/ganttDiagram-LVOFAZNH-B_RosuD1.js +267 -0
  738. package/dist/ui/assets/ganttDiagram-LVOFAZNH-B_RosuD1.js.gz +0 -0
  739. package/dist/ui/assets/{gitGraph-F6HP7TQM-CfFE_uAC.js → gitGraph-F6HP7TQM-DMFIqn4h.js} +1 -1
  740. package/dist/ui/assets/gitGraphDiagram-NY62KEGX-hxbgwNA1.js +65 -0
  741. package/dist/ui/assets/gitGraphDiagram-NY62KEGX-hxbgwNA1.js.gz +0 -0
  742. package/dist/ui/assets/index-DTz1Dif6.js +64 -0
  743. package/dist/ui/assets/index-DTz1Dif6.js.gz +0 -0
  744. package/dist/ui/assets/{index-DxuPq13l.css → index-qkT7Qqm2.css} +1 -1
  745. package/dist/ui/assets/index-qkT7Qqm2.css.gz +0 -0
  746. package/dist/ui/assets/{info-NVLQJR56-i_xHYg3f.js → info-NVLQJR56-DZ3K-w48.js} +1 -1
  747. package/dist/ui/assets/{infoDiagram-ER5ION4S-2NL93b78.js → infoDiagram-ER5ION4S-CxnBJQu6.js} +1 -1
  748. package/dist/ui/assets/{journeyDiagram-XKPGCS4Q-CZF-2DHU.js → journeyDiagram-XKPGCS4Q-CHYNj-f8.js} +3 -3
  749. package/dist/ui/assets/journeyDiagram-XKPGCS4Q-CHYNj-f8.js.gz +0 -0
  750. package/dist/ui/assets/{kanban-definition-3W4ZIXB7-CfvJIOny.js → kanban-definition-3W4ZIXB7-DQPCCsj2.js} +1 -1
  751. package/dist/ui/assets/kanban-definition-3W4ZIXB7-DQPCCsj2.js.gz +0 -0
  752. package/dist/ui/assets/{line-DDv8kOJk.js → line-DBRjKmfa.js} +1 -1
  753. package/dist/ui/assets/{linear-Daef-l29.js → linear-DFao5Wyp.js} +1 -1
  754. package/dist/ui/assets/linear-DFao5Wyp.js.gz +0 -0
  755. package/dist/ui/assets/{mermaid-parser.core-CdK9QgYV.js → mermaid-parser.core-DYCfacHj.js} +2 -2
  756. package/dist/ui/assets/mermaid-parser.core-DYCfacHj.js.gz +0 -0
  757. package/dist/ui/assets/mermaid.core-C6xGFSdE.js +11 -0
  758. package/dist/ui/assets/mermaid.core-C6xGFSdE.js.gz +0 -0
  759. package/dist/ui/assets/{mindmap-definition-VGOIOE7T-Cb3QMflX.js → mindmap-definition-VGOIOE7T-L3Pw-YM7.js} +1 -1
  760. package/dist/ui/assets/mindmap-definition-VGOIOE7T-L3Pw-YM7.js.gz +0 -0
  761. package/dist/ui/assets/{packet-BFZMPI3H-Bm2uwz4i.js → packet-BFZMPI3H-CpL6iNoa.js} +1 -1
  762. package/dist/ui/assets/{particles-DsJFOarW.js → particles-CT8hcJOA.js} +1 -1
  763. package/dist/ui/assets/particles-CT8hcJOA.js.gz +0 -0
  764. package/dist/ui/assets/{pie-7BOR55EZ-5i17tVnF.js → pie-7BOR55EZ-hTqChbTo.js} +1 -1
  765. package/dist/ui/assets/{pieDiagram-ADFJNKIX-BxIwQWvw.js → pieDiagram-ADFJNKIX-Bf4Nou75.js} +1 -1
  766. package/dist/ui/assets/pieDiagram-ADFJNKIX-Bf4Nou75.js.gz +0 -0
  767. package/dist/ui/assets/{quadrantDiagram-AYHSOK5B-B5HPe4ga.js → quadrantDiagram-AYHSOK5B-DpjUTLB1.js} +3 -3
  768. package/dist/ui/assets/quadrantDiagram-AYHSOK5B-DpjUTLB1.js.gz +0 -0
  769. package/dist/ui/assets/{radar-NHE76QYJ-BTn-tq0k.js → radar-NHE76QYJ-myy7OENC.js} +1 -1
  770. package/dist/ui/assets/reactflow-Cubtnk8i.js +2 -0
  771. package/dist/ui/assets/reactflow-Cubtnk8i.js.gz +0 -0
  772. package/dist/ui/assets/{requirementDiagram-UZGBJVZJ-YfI6llkX.js → requirementDiagram-UZGBJVZJ-Bfrfh-0-.js} +1 -1
  773. package/dist/ui/assets/requirementDiagram-UZGBJVZJ-Bfrfh-0-.js.gz +0 -0
  774. package/dist/ui/assets/{sandpack-D7koO5op.js → sandpack-C58bwfIS.js} +38 -38
  775. package/dist/ui/assets/sandpack-C58bwfIS.js.gz +0 -0
  776. package/dist/ui/assets/sandpackDefaults-Bkga8XAE.js +1 -0
  777. package/dist/ui/assets/sankeyDiagram-TZEHDZUN-ClZAZ6va.js +10 -0
  778. package/dist/ui/assets/sankeyDiagram-TZEHDZUN-ClZAZ6va.js.gz +0 -0
  779. package/dist/ui/assets/{sequenceDiagram-WL72ISMW-DAe4Um17.js → sequenceDiagram-WL72ISMW-CNgly63p.js} +6 -6
  780. package/dist/ui/assets/sequenceDiagram-WL72ISMW-CNgly63p.js.gz +0 -0
  781. package/dist/ui/assets/src-DAeyG22O.js +34 -0
  782. package/dist/ui/assets/src-DAeyG22O.js.gz +0 -0
  783. package/dist/ui/assets/stateDiagram-FKZM4ZOC-BrEAoDpE.js +1 -0
  784. package/dist/ui/assets/stateDiagram-FKZM4ZOC-BrEAoDpE.js.gz +0 -0
  785. package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-BNL52_oN.js +1 -0
  786. package/dist/ui/assets/streamdown-BdAVfkeF.js +521 -0
  787. package/dist/ui/assets/streamdown-BdAVfkeF.js.gz +0 -0
  788. package/dist/ui/assets/syntax-BOfTnQiy.js +9 -0
  789. package/dist/ui/assets/syntax-BOfTnQiy.js.gz +0 -0
  790. package/dist/ui/assets/{timeline-definition-IT6M3QCI-D6P5txjT.js → timeline-definition-IT6M3QCI-CaRH3k4l.js} +16 -16
  791. package/dist/ui/assets/timeline-definition-IT6M3QCI-CaRH3k4l.js.gz +0 -0
  792. package/dist/ui/assets/{treemap-KMMF4GRG-Bitm3gy4.js → treemap-KMMF4GRG-CUaLOV_B.js} +1 -1
  793. package/dist/ui/assets/{useUserLocalStorage-Ckb8HsIw.js → useUserLocalStorage-C8sgXgXR.js} +1 -1
  794. package/dist/ui/assets/useUserLocalStorage-C8sgXgXR.js.gz +0 -0
  795. package/dist/ui/assets/{xychartDiagram-PRI3JC2R-CsybjUbd.js → xychartDiagram-PRI3JC2R-BlhkI9T_.js} +1 -1
  796. package/dist/ui/assets/xychartDiagram-PRI3JC2R-BlhkI9T_.js.gz +0 -0
  797. package/dist/ui/index.html +10 -11
  798. package/dist/ui/index.html.gz +0 -0
  799. package/package.json +6 -5
  800. package/scripts/postinstall.js +27 -19
  801. package/dist/cli/commands/daemon/sync.d.ts.map +0 -1
  802. package/dist/ui/assets/App-DcEY8Ota.js +0 -3
  803. package/dist/ui/assets/App-DcEY8Ota.js.gz +0 -0
  804. package/dist/ui/assets/ArtifactConsentModal-CiCbK9iv.js +0 -1
  805. package/dist/ui/assets/ArtifactConsentModal-CiCbK9iv.js.gz +0 -0
  806. package/dist/ui/assets/ArtifactFullscreenPage-CfsTEGKd.js +0 -9
  807. package/dist/ui/assets/ArtifactFullscreenPage-CfsTEGKd.js.gz +0 -0
  808. package/dist/ui/assets/AutocompleteTextarea-BAFFH_5e.js +0 -18
  809. package/dist/ui/assets/AutocompleteTextarea-BAFFH_5e.js.gz +0 -0
  810. package/dist/ui/assets/BoardObjectNodes-D-O6bZIG.js +0 -34
  811. package/dist/ui/assets/BoardObjectNodes-D-O6bZIG.js.gz +0 -0
  812. package/dist/ui/assets/CodeEditor.inner-DBgsP4tn.js +0 -8
  813. package/dist/ui/assets/CodeEditor.inner-DBgsP4tn.js.gz +0 -0
  814. package/dist/ui/assets/ConversationView-CUWR0gR6.js +0 -1
  815. package/dist/ui/assets/ConversationView-CUWR0gR6.js.gz +0 -0
  816. package/dist/ui/assets/KnowledgePage-B2bzlXfn.js +0 -24
  817. package/dist/ui/assets/KnowledgePage-B2bzlXfn.js.gz +0 -0
  818. package/dist/ui/assets/MarketingScreenshotPage-zv5RUCuV.js.gz +0 -0
  819. package/dist/ui/assets/MobileApp-VgVnsnsN.js +0 -1
  820. package/dist/ui/assets/MobileApp-VgVnsnsN.js.gz +0 -0
  821. package/dist/ui/assets/SessionCanvas-f1-1Gbcw.js +0 -20
  822. package/dist/ui/assets/SessionCanvas-f1-1Gbcw.js.gz +0 -0
  823. package/dist/ui/assets/SessionCanvas-mEmYGZhC.css.gz +0 -0
  824. package/dist/ui/assets/StreamdownDemoPage-wzWaqWwr.js.gz +0 -0
  825. package/dist/ui/assets/ThemeSwitcher-Dly2y9pi.js +0 -1
  826. package/dist/ui/assets/ThemeSwitcher-Dly2y9pi.js.gz +0 -0
  827. package/dist/ui/assets/architecture-U656AL7Q-CykGFbQU.js +0 -1
  828. package/dist/ui/assets/architectureDiagram-VXUJARFQ-C8HXAenz.js +0 -36
  829. package/dist/ui/assets/architectureDiagram-VXUJARFQ-C8HXAenz.js.gz +0 -0
  830. package/dist/ui/assets/blockDiagram-VD42YOAC-BhZaEN19.js.gz +0 -0
  831. package/dist/ui/assets/c4Diagram-YG6GDRKO-Dk_UH-sY.js.gz +0 -0
  832. package/dist/ui/assets/channel-D6_nUWlW.js +0 -1
  833. package/dist/ui/assets/chunk-55IACEB6-ByzqIgSb.js +0 -1
  834. package/dist/ui/assets/chunk-ABZYJK2D-BJcrryHK.js.gz +0 -0
  835. package/dist/ui/assets/chunk-AGHRB4JF-DvxmfbM0.js.gz +0 -0
  836. package/dist/ui/assets/chunk-ATLVNIR6-DbeJ0OrR.js.gz +0 -0
  837. package/dist/ui/assets/chunk-B4BG7PRW-C53q2ggf.js.gz +0 -0
  838. package/dist/ui/assets/chunk-DI55MBZ5-vIyNEQN-.js.gz +0 -0
  839. package/dist/ui/assets/chunk-EXTU4WIE-B3ObkuOm.js +0 -1
  840. package/dist/ui/assets/chunk-HN2XXSSU-Dttqcg3b.js.gz +0 -0
  841. package/dist/ui/assets/chunk-JA3XYJ7Z-DbNDev3D.js +0 -11
  842. package/dist/ui/assets/chunk-JA3XYJ7Z-DbNDev3D.js.gz +0 -0
  843. package/dist/ui/assets/chunk-JZLCHNYA-EUmx2y4H.js.gz +0 -0
  844. package/dist/ui/assets/chunk-MI3HLSF2-65n9Mkyc.js.gz +0 -0
  845. package/dist/ui/assets/chunk-N4CR4FBY-mv5koXqW.js +0 -2
  846. package/dist/ui/assets/chunk-N4CR4FBY-mv5koXqW.js.gz +0 -0
  847. package/dist/ui/assets/chunk-QXUST7PY-BCYnMiS3.js.gz +0 -0
  848. package/dist/ui/assets/chunk-QZHKN3VN-HucAw4xW.js +0 -1
  849. package/dist/ui/assets/chunk-S3R3BYOJ-CWMEa9Dc.js +0 -2
  850. package/dist/ui/assets/chunk-S3R3BYOJ-CWMEa9Dc.js.gz +0 -0
  851. package/dist/ui/assets/chunk-TZMSLE5B-BuQUQcTr.js.gz +0 -0
  852. package/dist/ui/assets/classDiagram-2ON5EDUG-CUT3rPTB.js +0 -1
  853. package/dist/ui/assets/classDiagram-v2-WZHVMYZB-CUT3rPTB.js +0 -1
  854. package/dist/ui/assets/cose-bilkent-S5V4N54A-CnPB3ARO.js.gz +0 -0
  855. package/dist/ui/assets/dagre-6UL2VRFP-DhS-k_Se.js.gz +0 -0
  856. package/dist/ui/assets/dagre-KgLoHEuy.js.gz +0 -0
  857. package/dist/ui/assets/diagram-PSM6KHXK-BZg3MJmb.js +0 -24
  858. package/dist/ui/assets/diagram-PSM6KHXK-BZg3MJmb.js.gz +0 -0
  859. package/dist/ui/assets/diagram-QEK2KX5R-BPCitvbo.js.gz +0 -0
  860. package/dist/ui/assets/diagram-S2PKOQOG-NW4uK6sx.js.gz +0 -0
  861. package/dist/ui/assets/editor-CzFWIUw2.js +0 -39
  862. package/dist/ui/assets/editor-CzFWIUw2.js.gz +0 -0
  863. package/dist/ui/assets/emoji-Dkz4Zzv_.js +0 -3
  864. package/dist/ui/assets/emoji-Dkz4Zzv_.js.gz +0 -0
  865. package/dist/ui/assets/erDiagram-Q2GNP2WA-me1fboaf.js.gz +0 -0
  866. package/dist/ui/assets/flowDiagram-NV44I4VS-DzE8dGsh.js +0 -162
  867. package/dist/ui/assets/flowDiagram-NV44I4VS-DzE8dGsh.js.gz +0 -0
  868. package/dist/ui/assets/ganttDiagram-LVOFAZNH-CFQD09Mi.js +0 -267
  869. package/dist/ui/assets/ganttDiagram-LVOFAZNH-CFQD09Mi.js.gz +0 -0
  870. package/dist/ui/assets/gitGraphDiagram-NY62KEGX-CaVoxU4C.js +0 -65
  871. package/dist/ui/assets/gitGraphDiagram-NY62KEGX-CaVoxU4C.js.gz +0 -0
  872. package/dist/ui/assets/index-BN5_Qq7R.js +0 -324
  873. package/dist/ui/assets/index-BN5_Qq7R.js.gz +0 -0
  874. package/dist/ui/assets/index-DxuPq13l.css.gz +0 -0
  875. package/dist/ui/assets/journeyDiagram-XKPGCS4Q-CZF-2DHU.js.gz +0 -0
  876. package/dist/ui/assets/kanban-definition-3W4ZIXB7-CfvJIOny.js.gz +0 -0
  877. package/dist/ui/assets/katex-CamJ39w1.js +0 -257
  878. package/dist/ui/assets/katex-CamJ39w1.js.gz +0 -0
  879. package/dist/ui/assets/linear-Daef-l29.js.gz +0 -0
  880. package/dist/ui/assets/mermaid-parser.core-CdK9QgYV.js.gz +0 -0
  881. package/dist/ui/assets/mermaid.core-D6GS9mU-.js +0 -11
  882. package/dist/ui/assets/mermaid.core-D6GS9mU-.js.gz +0 -0
  883. package/dist/ui/assets/message-SqLqNYcv.js +0 -36
  884. package/dist/ui/assets/message-SqLqNYcv.js.gz +0 -0
  885. package/dist/ui/assets/mindmap-definition-VGOIOE7T-Cb3QMflX.js.gz +0 -0
  886. package/dist/ui/assets/particles-DsJFOarW.js.gz +0 -0
  887. package/dist/ui/assets/pieDiagram-ADFJNKIX-BxIwQWvw.js.gz +0 -0
  888. package/dist/ui/assets/quadrantDiagram-AYHSOK5B-B5HPe4ga.js.gz +0 -0
  889. package/dist/ui/assets/reactflow-Bf74ngoo.js +0 -2
  890. package/dist/ui/assets/reactflow-Bf74ngoo.js.gz +0 -0
  891. package/dist/ui/assets/requirementDiagram-UZGBJVZJ-YfI6llkX.js.gz +0 -0
  892. package/dist/ui/assets/sandpack-D7koO5op.js.gz +0 -0
  893. package/dist/ui/assets/sankeyDiagram-TZEHDZUN-DOk_B10B.js +0 -10
  894. package/dist/ui/assets/sankeyDiagram-TZEHDZUN-DOk_B10B.js.gz +0 -0
  895. package/dist/ui/assets/sequenceDiagram-WL72ISMW-DAe4Um17.js.gz +0 -0
  896. package/dist/ui/assets/stateDiagram-FKZM4ZOC-CCesDu_C.js +0 -1
  897. package/dist/ui/assets/stateDiagram-FKZM4ZOC-CCesDu_C.js.gz +0 -0
  898. package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-CMlIrsoO.js +0 -1
  899. package/dist/ui/assets/syntax-C-M-8jOU.js +0 -10
  900. package/dist/ui/assets/syntax-C-M-8jOU.js.gz +0 -0
  901. package/dist/ui/assets/theme-BQZdiqwv.js +0 -1
  902. package/dist/ui/assets/timeline-definition-IT6M3QCI-D6P5txjT.js.gz +0 -0
  903. package/dist/ui/assets/useUserLocalStorage-Ckb8HsIw.js.gz +0 -0
  904. package/dist/ui/assets/xychartDiagram-PRI3JC2R-CsybjUbd.js.gz +0 -0
  905. /package/dist/cli/commands/{admin → local}/sync-unix.d.ts +0 -0
@@ -43,6 +43,10 @@ var import_drizzle_orm5 = require("drizzle-orm");
43
43
  // src/db/database-wrapper.ts
44
44
  var import_drizzle_orm = require("drizzle-orm");
45
45
 
46
+ // src/db/tenant-context.ts
47
+ var import_node_async_hooks = require("async_hooks");
48
+ var tenantDatabaseScope = new import_node_async_hooks.AsyncLocalStorage();
49
+
46
50
  // src/db/encryption.ts
47
51
  var import_node_crypto = require("crypto");
48
52
 
@@ -67,6 +71,7 @@ __export(schema_postgres_exports, {
67
71
  cardTypes: () => cardTypes,
68
72
  cards: () => cards,
69
73
  gatewayChannels: () => gatewayChannels,
74
+ gatewayOutboundMessages: () => gatewayOutboundMessages,
70
75
  groupMemberships: () => groupMemberships,
71
76
  groups: () => groups,
72
77
  kbDocumentUnits: () => kbDocumentUnits,
@@ -196,6 +201,7 @@ var t = {
196
201
  var sessions = (0, import_pg_core.pgTable)(
197
202
  "sessions",
198
203
  {
204
+ tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
199
205
  // Primary identity
200
206
  session_id: (0, import_pg_core.varchar)("session_id", { length: 36 }).primaryKey(),
201
207
  created_at: t.timestamp("created_at").notNull(),
@@ -255,7 +261,9 @@ var sessions = (0, import_pg_core.pgTable)(
255
261
  data: t.json("data").$type().notNull()
256
262
  },
257
263
  (table) => ({
264
+ tenantIdx: (0, import_pg_core.index)("sessions_tenant_id_idx").on(table.tenant_id),
258
265
  statusIdx: (0, import_pg_core.index)("sessions_status_idx").on(table.status),
266
+ statusReadyIdx: (0, import_pg_core.index)("sessions_status_ready_idx").on(table.status, table.ready_for_prompt),
259
267
  agenticToolIdx: (0, import_pg_core.index)("sessions_agentic_tool_idx").on(table.agentic_tool),
260
268
  boardIdx: (0, import_pg_core.index)("sessions_board_idx").on(table.board_id),
261
269
  branchIdx: (0, import_pg_core.index)("sessions_branch_idx").on(table.branch_id),
@@ -267,12 +275,13 @@ var sessions = (0, import_pg_core.pgTable)(
267
275
  // Partial unique index — covering for the scheduler's dedup lookup
268
276
  // AND serves as the DB-level guard against check-then-create races
269
277
  // in spawnScheduledSession.
270
- scheduleRunUnique: (0, import_pg_core.uniqueIndex)("sessions_schedule_run_unique").on(table.schedule_id, table.scheduled_run_at).where(import_drizzle_orm2.sql`${table.schedule_id} IS NOT NULL AND ${table.scheduled_run_at} IS NOT NULL`)
278
+ scheduleRunUnique: (0, import_pg_core.uniqueIndex)("sessions_schedule_run_unique").on(table.tenant_id, table.schedule_id, table.scheduled_run_at).where(import_drizzle_orm2.sql`${table.schedule_id} IS NOT NULL AND ${table.scheduled_run_at} IS NOT NULL`)
271
279
  })
272
280
  );
273
281
  var sessionRelationships = (0, import_pg_core.pgTable)(
274
282
  "session_relationships",
275
283
  {
284
+ tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
276
285
  relationship_id: (0, import_pg_core.varchar)("relationship_id", { length: 36 }).primaryKey(),
277
286
  source_session_id: (0, import_pg_core.varchar)("source_session_id", { length: 36 }).notNull().references(() => sessions.session_id, { onDelete: "cascade" }),
278
287
  target_session_id: (0, import_pg_core.varchar)("target_session_id", { length: 36 }).notNull().references(() => sessions.session_id, { onDelete: "cascade" }),
@@ -290,10 +299,23 @@ var sessionRelationships = (0, import_pg_core.pgTable)(
290
299
  data: t.json("data")
291
300
  },
292
301
  (table) => ({
302
+ tenantIdx: (0, import_pg_core.index)("session_relationships_tenant_id_idx").on(table.tenant_id),
293
303
  sourceIdx: (0, import_pg_core.index)("session_relationships_source_idx").on(table.source_session_id),
294
304
  targetIdx: (0, import_pg_core.index)("session_relationships_target_idx").on(table.target_session_id),
295
305
  callbackIdx: (0, import_pg_core.index)("session_relationships_callback_idx").on(table.callback_session_id),
306
+ // Composite indexes so the OR predicate in dispatchCompletionCallbacks
307
+ // (WHERE source_session_id = $1 OR target_session_id = $2) uses BitmapOr
308
+ // over these instead of a full tenant table scan via tenant_id_idx.
309
+ tenantSourceIdx: (0, import_pg_core.index)("session_relationships_tenant_source_idx").on(
310
+ table.tenant_id,
311
+ table.source_session_id
312
+ ),
313
+ tenantTargetIdx: (0, import_pg_core.index)("session_relationships_tenant_target_idx").on(
314
+ table.tenant_id,
315
+ table.target_session_id
316
+ ),
296
317
  sourceTargetTypeUnique: (0, import_pg_core.uniqueIndex)("session_relationships_source_target_type_unique").on(
318
+ table.tenant_id,
297
319
  table.source_session_id,
298
320
  table.target_session_id,
299
321
  table.relationship_type
@@ -303,6 +325,7 @@ var sessionRelationships = (0, import_pg_core.pgTable)(
303
325
  var tasks = (0, import_pg_core.pgTable)(
304
326
  "tasks",
305
327
  {
328
+ tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
306
329
  task_id: (0, import_pg_core.varchar)("task_id", { length: 36 }).primaryKey(),
307
330
  session_id: (0, import_pg_core.varchar)("session_id", { length: 36 }).notNull().references(() => sessions.session_id, { onDelete: "cascade" }),
308
331
  created_at: t.timestamp("created_at").notNull(),
@@ -332,19 +355,23 @@ var tasks = (0, import_pg_core.pgTable)(
332
355
  data: t.json("data").$type().notNull()
333
356
  },
334
357
  (table) => ({
358
+ tenantIdx: (0, import_pg_core.index)("tasks_tenant_id_idx").on(table.tenant_id),
335
359
  sessionIdx: (0, import_pg_core.index)("tasks_session_idx").on(table.session_id),
336
360
  statusIdx: (0, import_pg_core.index)("tasks_status_idx").on(table.status),
337
361
  createdIdx: (0, import_pg_core.index)("tasks_created_idx").on(table.created_at),
362
+ // Composite for "latest task for session" queries (ORDER BY created_at DESC LIMIT 1).
363
+ sessionCreatedIdx: (0, import_pg_core.index)("tasks_session_created_idx").on(table.session_id, table.created_at),
338
364
  queueIdx: (0, import_pg_core.index)("tasks_queue_idx").on(table.session_id, table.status, table.queue_position),
339
365
  // Partial unique index — defense-in-depth for `tasks.createPending` race
340
366
  // serialization. Only QUEUED rows are constrained; CREATED/RUNNING/done
341
367
  // rows have NULL queue_position and are unaffected.
342
- queuedPositionUnique: (0, import_pg_core.uniqueIndex)("tasks_queued_position_unique").on(table.session_id, table.queue_position).where(import_drizzle_orm2.sql`${table.status} = 'queued'`)
368
+ queuedPositionUnique: (0, import_pg_core.uniqueIndex)("tasks_queued_position_unique").on(table.tenant_id, table.session_id, table.queue_position).where(import_drizzle_orm2.sql`${table.status} = 'queued'`)
343
369
  })
344
370
  );
345
371
  var serializedSessions = (0, import_pg_core.pgTable)(
346
372
  "serialized_sessions",
347
373
  {
374
+ tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
348
375
  id: (0, import_pg_core.varchar)("id", { length: 36 }).primaryKey(),
349
376
  session_id: (0, import_pg_core.varchar)("session_id", { length: 36 }).notNull().references(() => sessions.session_id, { onDelete: "cascade" }),
350
377
  branch_id: (0, import_pg_core.varchar)("branch_id", { length: 36 }).notNull().references(() => branches.branch_id, { onDelete: "cascade" }),
@@ -360,6 +387,7 @@ var serializedSessions = (0, import_pg_core.pgTable)(
360
387
  // gzipped; NULL while status='processing'
361
388
  },
362
389
  (table) => ({
390
+ tenantIdx: (0, import_pg_core.index)("serialized_sessions_tenant_id_idx").on(table.tenant_id),
363
391
  sessionTurnIdx: (0, import_pg_core.index)("serialized_sessions_session_turn_idx").on(
364
392
  table.session_id,
365
393
  table.turn_index
@@ -370,6 +398,7 @@ var serializedSessions = (0, import_pg_core.pgTable)(
370
398
  var messages = (0, import_pg_core.pgTable)(
371
399
  "messages",
372
400
  {
401
+ tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
373
402
  // Primary identity
374
403
  message_id: (0, import_pg_core.varchar)("message_id", { length: 36 }).primaryKey(),
375
404
  created_at: t.timestamp("created_at").notNull(),
@@ -409,15 +438,23 @@ var messages = (0, import_pg_core.pgTable)(
409
438
  data: t.json("data").$type().notNull()
410
439
  },
411
440
  (table) => ({
441
+ tenantIdx: (0, import_pg_core.index)("messages_tenant_id_idx").on(table.tenant_id),
442
+ tenantTimestampIdx: (0, import_pg_core.index)("messages_tenant_timestamp_idx").on(table.tenant_id, table.timestamp),
412
443
  // Indexes for efficient lookups
413
444
  sessionIdx: (0, import_pg_core.index)("messages_session_id_idx").on(table.session_id),
414
445
  taskIdx: (0, import_pg_core.index)("messages_task_id_idx").on(table.task_id),
415
- sessionIndexIdx: (0, import_pg_core.index)("messages_session_index_idx").on(table.session_id, table.index)
446
+ sessionIndexIdx: (0, import_pg_core.index)("messages_session_index_idx").on(table.session_id, table.index),
447
+ timestampIdx: (0, import_pg_core.index)("messages_timestamp_idx").on(table.timestamp),
448
+ sessionTimestampIdx: (0, import_pg_core.index)("messages_session_timestamp_idx").on(
449
+ table.session_id,
450
+ table.timestamp
451
+ )
416
452
  })
417
453
  );
418
454
  var boards = (0, import_pg_core.pgTable)(
419
455
  "boards",
420
456
  {
457
+ tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
421
458
  board_id: (0, import_pg_core.varchar)("board_id", { length: 36 }).primaryKey(),
422
459
  created_at: t.timestamp("created_at").notNull(),
423
460
  updated_at: t.timestamp("updated_at"),
@@ -425,7 +462,7 @@ var boards = (0, import_pg_core.pgTable)(
425
462
  created_by: (0, import_pg_core.varchar)("created_by", { length: 36 }).notNull(),
426
463
  // Materialized for lookups
427
464
  name: (0, import_pg_core.text)("name").notNull(),
428
- slug: (0, import_pg_core.text)("slug").unique(),
465
+ slug: (0, import_pg_core.text)("slug"),
429
466
  primary_assistant_id: (0, import_pg_core.varchar)("primary_assistant_id", { length: 36 }).references(
430
467
  () => branches.branch_id,
431
468
  {
@@ -440,18 +477,21 @@ var boards = (0, import_pg_core.pgTable)(
440
477
  archived_by: (0, import_pg_core.varchar)("archived_by", { length: 36 })
441
478
  },
442
479
  (table) => ({
480
+ tenantIdx: (0, import_pg_core.index)("boards_tenant_id_idx").on(table.tenant_id),
443
481
  nameIdx: (0, import_pg_core.index)("boards_name_idx").on(table.name),
444
- slugIdx: (0, import_pg_core.index)("boards_slug_idx").on(table.slug)
482
+ slugIdx: (0, import_pg_core.index)("boards_slug_idx").on(table.slug),
483
+ slugTenantUnique: (0, import_pg_core.uniqueIndex)("boards_tenant_slug_unique").on(table.tenant_id, table.slug)
445
484
  })
446
485
  );
447
486
  var repos = (0, import_pg_core.pgTable)(
448
487
  "repos",
449
488
  {
489
+ tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
450
490
  repo_id: (0, import_pg_core.varchar)("repo_id", { length: 36 }).primaryKey(),
451
491
  created_at: t.timestamp("created_at").notNull(),
452
492
  updated_at: t.timestamp("updated_at"),
453
493
  // Materialized for querying
454
- slug: (0, import_pg_core.text)("slug").notNull().unique(),
494
+ slug: (0, import_pg_core.text)("slug").notNull(),
455
495
  repo_type: (0, import_pg_core.text)("repo_type", { enum: ["remote", "local"] }).notNull().default("remote"),
456
496
  // Unix group for repo-level git access (agor_rp_<short-id>)
457
497
  // Users who have access to ANY branch in this repo get added to this group.
@@ -462,12 +502,15 @@ var repos = (0, import_pg_core.pgTable)(
462
502
  data: t.json("data").$type().notNull()
463
503
  },
464
504
  (table) => ({
465
- slugIdx: (0, import_pg_core.index)("repos_slug_idx").on(table.slug)
505
+ tenantIdx: (0, import_pg_core.index)("repos_tenant_id_idx").on(table.tenant_id),
506
+ slugIdx: (0, import_pg_core.index)("repos_slug_idx").on(table.slug),
507
+ slugTenantUnique: (0, import_pg_core.uniqueIndex)("repos_tenant_slug_unique").on(table.tenant_id, table.slug)
466
508
  })
467
509
  );
468
510
  var branches = (0, import_pg_core.pgTable)(
469
511
  "branches",
470
512
  {
513
+ tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
471
514
  // Primary identity
472
515
  branch_id: (0, import_pg_core.varchar)("branch_id", { length: 36 }).primaryKey(),
473
516
  repo_id: (0, import_pg_core.varchar)("repo_id", { length: 36 }).notNull().references(() => repos.repo_id, { onDelete: "cascade" }),
@@ -542,6 +585,7 @@ var branches = (0, import_pg_core.pgTable)(
542
585
  data: t.json("data").$type().notNull()
543
586
  },
544
587
  (table) => ({
588
+ tenantIdx: (0, import_pg_core.index)("branches_tenant_id_idx").on(table.tenant_id),
545
589
  repoIdx: (0, import_pg_core.index)("branches_repo_idx").on(table.repo_id),
546
590
  nameIdx: (0, import_pg_core.index)("branches_name_idx").on(table.name),
547
591
  refIdx: (0, import_pg_core.index)("branches_ref_idx").on(table.ref),
@@ -555,22 +599,26 @@ var branches = (0, import_pg_core.pgTable)(
555
599
  var branchOwners = (0, import_pg_core.pgTable)(
556
600
  "branch_owners",
557
601
  {
602
+ tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
558
603
  branch_id: (0, import_pg_core.varchar)("branch_id", { length: 36 }).notNull().references(() => branches.branch_id, { onDelete: "cascade" }),
559
604
  user_id: (0, import_pg_core.varchar)("user_id", { length: 36 }).notNull().references(() => users.user_id, { onDelete: "cascade" }),
560
605
  created_at: t.timestamp("created_at").defaultNow()
561
606
  },
562
607
  (table) => ({
608
+ tenantIdx: (0, import_pg_core.index)("branch_owners_tenant_id_idx").on(table.tenant_id),
563
609
  pk: (0, import_pg_core.primaryKey)({ columns: [table.branch_id, table.user_id] })
564
610
  })
565
611
  );
566
612
  var boardOwners = (0, import_pg_core.pgTable)(
567
613
  "board_owners",
568
614
  {
615
+ tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
569
616
  board_id: (0, import_pg_core.varchar)("board_id", { length: 36 }).notNull().references(() => boards.board_id, { onDelete: "cascade" }),
570
617
  user_id: (0, import_pg_core.varchar)("user_id", { length: 36 }).notNull().references(() => users.user_id, { onDelete: "cascade" }),
571
618
  created_at: t.timestamp("created_at")
572
619
  },
573
620
  (table) => ({
621
+ tenantIdx: (0, import_pg_core.index)("board_owners_tenant_id_idx").on(table.tenant_id),
574
622
  pk: (0, import_pg_core.primaryKey)({ columns: [table.board_id, table.user_id] }),
575
623
  userIdx: (0, import_pg_core.index)("board_owners_user_idx").on(table.user_id)
576
624
  })
@@ -578,6 +626,7 @@ var boardOwners = (0, import_pg_core.pgTable)(
578
626
  var schedules = (0, import_pg_core.pgTable)(
579
627
  "schedules",
580
628
  {
629
+ tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
581
630
  schedule_id: (0, import_pg_core.varchar)("schedule_id", { length: 36 }).primaryKey(),
582
631
  branch_id: (0, import_pg_core.varchar)("branch_id", { length: 36 }).notNull().references(() => branches.branch_id, { onDelete: "cascade" }),
583
632
  name: (0, import_pg_core.text)("name").notNull(),
@@ -601,6 +650,7 @@ var schedules = (0, import_pg_core.pgTable)(
601
650
  created_by: (0, import_pg_core.varchar)("created_by", { length: 36 }).notNull().references(() => users.user_id)
602
651
  },
603
652
  (table) => ({
653
+ tenantIdx: (0, import_pg_core.index)("schedules_tenant_id_idx").on(table.tenant_id),
604
654
  enabledNextRunIdx: (0, import_pg_core.index)("schedules_enabled_next_run_idx").on(table.enabled, table.next_run_at),
605
655
  branchIdx: (0, import_pg_core.index)("schedules_branch_idx").on(table.branch_id),
606
656
  createdByIdx: (0, import_pg_core.index)("schedules_created_by_idx").on(table.created_by)
@@ -609,12 +659,13 @@ var schedules = (0, import_pg_core.pgTable)(
609
659
  var users = (0, import_pg_core.pgTable)(
610
660
  "users",
611
661
  {
662
+ tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
612
663
  // Primary identity
613
664
  user_id: (0, import_pg_core.varchar)("user_id", { length: 36 }).primaryKey(),
614
665
  created_at: t.timestamp("created_at").notNull(),
615
666
  updated_at: t.timestamp("updated_at"),
616
667
  // Materialized for auth lookups
617
- email: (0, import_pg_core.text)("email").unique().notNull(),
668
+ email: (0, import_pg_core.text)("email").notNull(),
618
669
  password: (0, import_pg_core.text)("password").notNull(),
619
670
  // bcrypt hashed
620
671
  // Basic profile (materialized for display)
@@ -630,16 +681,22 @@ var users = (0, import_pg_core.pgTable)(
630
681
  onboarding_completed: t.bool("onboarding_completed").notNull().default(false),
631
682
  // Force password change flag (admin-settable, auto-cleared on password change)
632
683
  must_change_password: t.bool("must_change_password").notNull().default(false),
684
+ // Auth invalidation marker. Password changes set this timestamp so any
685
+ // previously issued browser access or refresh token is rejected.
686
+ tokens_valid_after: t.timestamp("tokens_valid_after"),
633
687
  // JSON blob for profile/preferences
634
688
  data: t.json("data").$type().notNull()
635
689
  },
636
690
  (table) => ({
637
- emailIdx: (0, import_pg_core.index)("users_email_idx").on(table.email)
691
+ tenantIdx: (0, import_pg_core.index)("users_tenant_id_idx").on(table.tenant_id),
692
+ emailIdx: (0, import_pg_core.index)("users_email_idx").on(table.email),
693
+ emailTenantUnique: (0, import_pg_core.uniqueIndex)("users_tenant_email_unique").on(table.tenant_id, table.email)
638
694
  })
639
695
  );
640
696
  var groups = (0, import_pg_core.pgTable)(
641
697
  "groups",
642
698
  {
699
+ tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
643
700
  group_id: (0, import_pg_core.varchar)("group_id", { length: 36 }).primaryKey(),
644
701
  name: (0, import_pg_core.text)("name").notNull(),
645
702
  slug: (0, import_pg_core.text)("slug").notNull(),
@@ -652,13 +709,15 @@ var groups = (0, import_pg_core.pgTable)(
652
709
  updated_at: t.timestamp("updated_at")
653
710
  },
654
711
  (table) => ({
655
- slugIdx: (0, import_pg_core.uniqueIndex)("groups_slug_idx").on(table.slug),
712
+ tenantIdx: (0, import_pg_core.index)("groups_tenant_id_idx").on(table.tenant_id),
713
+ slugIdx: (0, import_pg_core.uniqueIndex)("groups_tenant_slug_unique").on(table.tenant_id, table.slug),
656
714
  archivedIdx: (0, import_pg_core.index)("groups_archived_idx").on(table.archived)
657
715
  })
658
716
  );
659
717
  var groupMemberships = (0, import_pg_core.pgTable)(
660
718
  "group_memberships",
661
719
  {
720
+ tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
662
721
  group_id: (0, import_pg_core.varchar)("group_id", { length: 36 }).notNull().references(() => groups.group_id, { onDelete: "cascade" }),
663
722
  user_id: (0, import_pg_core.varchar)("user_id", { length: 36 }).notNull().references(() => users.user_id, { onDelete: "cascade" }),
664
723
  added_by: (0, import_pg_core.varchar)("added_by", { length: 36 }).references(() => users.user_id, {
@@ -667,6 +726,7 @@ var groupMemberships = (0, import_pg_core.pgTable)(
667
726
  created_at: t.timestamp("created_at").notNull()
668
727
  },
669
728
  (table) => ({
729
+ tenantIdx: (0, import_pg_core.index)("group_memberships_tenant_id_idx").on(table.tenant_id),
670
730
  pk: (0, import_pg_core.primaryKey)({ columns: [table.group_id, table.user_id] }),
671
731
  userIdx: (0, import_pg_core.index)("group_memberships_user_idx").on(table.user_id)
672
732
  })
@@ -674,6 +734,7 @@ var groupMemberships = (0, import_pg_core.pgTable)(
674
734
  var branchGroupGrants = (0, import_pg_core.pgTable)(
675
735
  "branch_group_grants",
676
736
  {
737
+ tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
677
738
  branch_id: (0, import_pg_core.varchar)("branch_id", { length: 36 }).notNull().references(() => branches.branch_id, { onDelete: "cascade" }),
678
739
  group_id: (0, import_pg_core.varchar)("group_id", { length: 36 }).notNull().references(() => groups.group_id, { onDelete: "cascade" }),
679
740
  can: (0, import_pg_core.text)("can", { enum: [...BRANCH_PERMISSION_LEVELS] }).notNull().default("view"),
@@ -685,6 +746,7 @@ var branchGroupGrants = (0, import_pg_core.pgTable)(
685
746
  updated_at: t.timestamp("updated_at")
686
747
  },
687
748
  (table) => ({
749
+ tenantIdx: (0, import_pg_core.index)("branch_group_grants_tenant_id_idx").on(table.tenant_id),
688
750
  pk: (0, import_pg_core.primaryKey)({ columns: [table.branch_id, table.group_id] }),
689
751
  groupIdx: (0, import_pg_core.index)("branch_group_grants_group_idx").on(table.group_id)
690
752
  })
@@ -692,6 +754,7 @@ var branchGroupGrants = (0, import_pg_core.pgTable)(
692
754
  var boardGroupGrants = (0, import_pg_core.pgTable)(
693
755
  "board_group_grants",
694
756
  {
757
+ tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
695
758
  board_id: (0, import_pg_core.varchar)("board_id", { length: 36 }).notNull().references(() => boards.board_id, { onDelete: "cascade" }),
696
759
  group_id: (0, import_pg_core.varchar)("group_id", { length: 36 }).notNull().references(() => groups.group_id, { onDelete: "cascade" }),
697
760
  can: (0, import_pg_core.text)("can", { enum: [...BRANCH_PERMISSION_LEVELS] }).notNull().default("view"),
@@ -703,6 +766,7 @@ var boardGroupGrants = (0, import_pg_core.pgTable)(
703
766
  updated_at: t.timestamp("updated_at")
704
767
  },
705
768
  (table) => ({
769
+ tenantIdx: (0, import_pg_core.index)("board_group_grants_tenant_id_idx").on(table.tenant_id),
706
770
  pk: (0, import_pg_core.primaryKey)({ columns: [table.board_id, table.group_id] }),
707
771
  groupIdx: (0, import_pg_core.index)("board_group_grants_group_idx").on(table.group_id)
708
772
  })
@@ -710,6 +774,7 @@ var boardGroupGrants = (0, import_pg_core.pgTable)(
710
774
  var appVariables = (0, import_pg_core.pgTable)(
711
775
  "app_variables",
712
776
  {
777
+ tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
713
778
  variable_id: (0, import_pg_core.varchar)("variable_id", { length: 36 }).primaryKey(),
714
779
  namespace: (0, import_pg_core.text)("namespace").notNull(),
715
780
  key: (0, import_pg_core.text)("key").notNull(),
@@ -725,13 +790,19 @@ var appVariables = (0, import_pg_core.pgTable)(
725
790
  updated_at: t.timestamp("updated_at").notNull()
726
791
  },
727
792
  (table) => ({
728
- namespaceKeyIdx: (0, import_pg_core.uniqueIndex)("app_variables_namespace_key_idx").on(table.namespace, table.key),
793
+ tenantIdx: (0, import_pg_core.index)("app_variables_tenant_id_idx").on(table.tenant_id),
794
+ namespaceKeyIdx: (0, import_pg_core.uniqueIndex)("app_variables_tenant_namespace_key_unique").on(
795
+ table.tenant_id,
796
+ table.namespace,
797
+ table.key
798
+ ),
729
799
  namespaceIdx: (0, import_pg_core.index)("app_variables_namespace_idx").on(table.namespace)
730
800
  })
731
801
  );
732
802
  var userApiKeys = (0, import_pg_core.pgTable)(
733
803
  "user_api_keys",
734
804
  {
805
+ tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
735
806
  id: (0, import_pg_core.varchar)("id", { length: 36 }).primaryKey(),
736
807
  user_id: (0, import_pg_core.varchar)("user_id", { length: 36 }).notNull().references(() => users.user_id, { onDelete: "cascade" }),
737
808
  name: (0, import_pg_core.text)("name").notNull(),
@@ -743,6 +814,7 @@ var userApiKeys = (0, import_pg_core.pgTable)(
743
814
  last_used_at: t.timestamp("last_used_at")
744
815
  },
745
816
  (table) => ({
817
+ tenantIdx: (0, import_pg_core.index)("user_api_keys_tenant_id_idx").on(table.tenant_id),
746
818
  userIdx: (0, import_pg_core.index)("user_api_keys_user_idx").on(table.user_id),
747
819
  prefixIdx: (0, import_pg_core.index)("user_api_keys_prefix_idx").on(table.prefix)
748
820
  })
@@ -750,6 +822,7 @@ var userApiKeys = (0, import_pg_core.pgTable)(
750
822
  var mcpServers = (0, import_pg_core.pgTable)(
751
823
  "mcp_servers",
752
824
  {
825
+ tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
753
826
  // Primary identity
754
827
  mcp_server_id: (0, import_pg_core.varchar)("mcp_server_id", { length: 36 }).primaryKey(),
755
828
  created_at: t.timestamp("created_at").notNull(),
@@ -776,6 +849,7 @@ var mcpServers = (0, import_pg_core.pgTable)(
776
849
  data: t.json("data").$type().notNull()
777
850
  },
778
851
  (table) => ({
852
+ tenantIdx: (0, import_pg_core.index)("mcp_servers_tenant_id_idx").on(table.tenant_id),
779
853
  nameIdx: (0, import_pg_core.index)("mcp_servers_name_idx").on(table.name),
780
854
  scopeIdx: (0, import_pg_core.index)("mcp_servers_scope_idx").on(table.scope),
781
855
  ownerIdx: (0, import_pg_core.index)("mcp_servers_owner_idx").on(table.owner_user_id),
@@ -785,6 +859,7 @@ var mcpServers = (0, import_pg_core.pgTable)(
785
859
  var cardTypes = (0, import_pg_core.pgTable)(
786
860
  "card_types",
787
861
  {
862
+ tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
788
863
  card_type_id: (0, import_pg_core.varchar)("card_type_id", { length: 36 }).primaryKey(),
789
864
  name: (0, import_pg_core.text)("name").notNull(),
790
865
  emoji: (0, import_pg_core.text)("emoji"),
@@ -796,12 +871,14 @@ var cardTypes = (0, import_pg_core.pgTable)(
796
871
  updated_at: t.timestamp("updated_at").notNull()
797
872
  },
798
873
  (table) => ({
874
+ tenantIdx: (0, import_pg_core.index)("card_types_tenant_id_idx").on(table.tenant_id),
799
875
  nameIdx: (0, import_pg_core.index)("card_types_name_idx").on(table.name)
800
876
  })
801
877
  );
802
878
  var cards = (0, import_pg_core.pgTable)(
803
879
  "cards",
804
880
  {
881
+ tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
805
882
  card_id: (0, import_pg_core.varchar)("card_id", { length: 36 }).primaryKey(),
806
883
  board_id: (0, import_pg_core.varchar)("board_id", { length: 36 }).notNull().references(() => boards.board_id, { onDelete: "cascade" }),
807
884
  card_type_id: (0, import_pg_core.varchar)("card_type_id", { length: 36 }).references(() => cardTypes.card_type_id, {
@@ -822,6 +899,7 @@ var cards = (0, import_pg_core.pgTable)(
822
899
  archived_at: t.timestamp("archived_at")
823
900
  },
824
901
  (table) => ({
902
+ tenantIdx: (0, import_pg_core.index)("cards_tenant_id_idx").on(table.tenant_id),
825
903
  boardIdx: (0, import_pg_core.index)("cards_board_idx").on(table.board_id),
826
904
  cardTypeIdx: (0, import_pg_core.index)("cards_card_type_idx").on(table.card_type_id),
827
905
  titleIdx: (0, import_pg_core.index)("cards_title_idx").on(table.title),
@@ -832,6 +910,7 @@ var cards = (0, import_pg_core.pgTable)(
832
910
  var artifacts = (0, import_pg_core.pgTable)(
833
911
  "artifacts",
834
912
  {
913
+ tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
835
914
  artifact_id: (0, import_pg_core.varchar)("artifact_id", { length: 36 }).primaryKey(),
836
915
  branch_id: (0, import_pg_core.varchar)("branch_id", { length: 36 }).references(() => branches.branch_id, {
837
916
  onDelete: "set null"
@@ -867,6 +946,7 @@ var artifacts = (0, import_pg_core.pgTable)(
867
946
  archived_at: t.timestamp("archived_at")
868
947
  },
869
948
  (table) => ({
949
+ tenantIdx: (0, import_pg_core.index)("artifacts_tenant_id_idx").on(table.tenant_id),
870
950
  branchIdx: (0, import_pg_core.index)("artifacts_branch_idx").on(table.branch_id),
871
951
  sourceSessionIdx: (0, import_pg_core.index)("artifacts_source_session_idx").on(table.source_session_id),
872
952
  boardIdx: (0, import_pg_core.index)("artifacts_board_idx").on(table.board_id),
@@ -877,6 +957,7 @@ var artifacts = (0, import_pg_core.pgTable)(
877
957
  var artifactTrustGrants = (0, import_pg_core.pgTable)(
878
958
  "artifact_trust_grants",
879
959
  {
960
+ tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
880
961
  grant_id: (0, import_pg_core.varchar)("grant_id", { length: 36 }).primaryKey(),
881
962
  user_id: (0, import_pg_core.varchar)("user_id", { length: 36 }).notNull(),
882
963
  scope_type: (0, import_pg_core.text)("scope_type").notNull(),
@@ -887,6 +968,7 @@ var artifactTrustGrants = (0, import_pg_core.pgTable)(
887
968
  revoked_at: t.timestamp("revoked_at")
888
969
  },
889
970
  (table) => ({
971
+ tenantIdx: (0, import_pg_core.index)("artifact_trust_grants_tenant_id_idx").on(table.tenant_id),
890
972
  userIdx: (0, import_pg_core.index)("artifact_trust_grants_user_idx").on(table.user_id),
891
973
  scopeIdx: (0, import_pg_core.index)("artifact_trust_grants_scope_idx").on(table.scope_type, table.scope_value)
892
974
  })
@@ -894,6 +976,7 @@ var artifactTrustGrants = (0, import_pg_core.pgTable)(
894
976
  var boardObjects = (0, import_pg_core.pgTable)(
895
977
  "board_objects",
896
978
  {
979
+ tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
897
980
  // Primary identity
898
981
  object_id: (0, import_pg_core.varchar)("object_id", { length: 36 }).primaryKey(),
899
982
  board_id: (0, import_pg_core.varchar)("board_id", { length: 36 }).notNull().references(() => boards.board_id, { onDelete: "cascade" }),
@@ -909,6 +992,7 @@ var boardObjects = (0, import_pg_core.pgTable)(
909
992
  data: t.json("data").$type().notNull()
910
993
  },
911
994
  (table) => ({
995
+ tenantIdx: (0, import_pg_core.index)("board_objects_tenant_id_idx").on(table.tenant_id),
912
996
  boardIdx: (0, import_pg_core.index)("board_objects_board_idx").on(table.board_id),
913
997
  branchIdx: (0, import_pg_core.index)("board_objects_branch_idx").on(table.branch_id),
914
998
  cardIdx: (0, import_pg_core.index)("board_objects_card_idx").on(table.card_id)
@@ -917,12 +1001,14 @@ var boardObjects = (0, import_pg_core.pgTable)(
917
1001
  var sessionMcpServers = (0, import_pg_core.pgTable)(
918
1002
  "session_mcp_servers",
919
1003
  {
1004
+ tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
920
1005
  session_id: (0, import_pg_core.varchar)("session_id", { length: 36 }).notNull().references(() => sessions.session_id, { onDelete: "cascade" }),
921
1006
  mcp_server_id: (0, import_pg_core.varchar)("mcp_server_id", { length: 36 }).notNull().references(() => mcpServers.mcp_server_id, { onDelete: "cascade" }),
922
1007
  enabled: t.bool("enabled").notNull().default(true),
923
1008
  added_at: t.timestamp("added_at").notNull()
924
1009
  },
925
1010
  (table) => ({
1011
+ tenantIdx: (0, import_pg_core.index)("session_mcp_servers_tenant_id_idx").on(table.tenant_id),
926
1012
  // Composite primary key
927
1013
  pk: (0, import_pg_core.index)("session_mcp_servers_pk").on(table.session_id, table.mcp_server_id),
928
1014
  // Indexes for queries
@@ -934,6 +1020,7 @@ var sessionMcpServers = (0, import_pg_core.pgTable)(
934
1020
  var userMcpOauthTokens = (0, import_pg_core.pgTable)(
935
1021
  "user_mcp_oauth_tokens",
936
1022
  {
1023
+ tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
937
1024
  // NULL = shared-mode token (one per mcp_server_id)
938
1025
  user_id: (0, import_pg_core.varchar)("user_id", { length: 36 }).references(() => users.user_id, {
939
1026
  onDelete: "cascade"
@@ -951,6 +1038,7 @@ var userMcpOauthTokens = (0, import_pg_core.pgTable)(
951
1038
  updated_at: t.timestamp("updated_at")
952
1039
  },
953
1040
  (table) => ({
1041
+ tenantIdx: (0, import_pg_core.index)("user_mcp_oauth_tokens_tenant_id_idx").on(table.tenant_id),
954
1042
  // Composite lookup indexes. Uniqueness enforced via partial unique indexes
955
1043
  // created in the migration (one for per-user rows, one for the shared row).
956
1044
  pk: (0, import_pg_core.index)("user_mcp_oauth_tokens_pk").on(table.user_id, table.mcp_server_id),
@@ -961,6 +1049,7 @@ var userMcpOauthTokens = (0, import_pg_core.pgTable)(
961
1049
  var boardComments = (0, import_pg_core.pgTable)(
962
1050
  "board_comments",
963
1051
  {
1052
+ tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
964
1053
  // Primary identity
965
1054
  comment_id: (0, import_pg_core.varchar)("comment_id", { length: 36 }).primaryKey(),
966
1055
  created_at: t.timestamp("created_at").notNull(),
@@ -1002,6 +1091,7 @@ var boardComments = (0, import_pg_core.pgTable)(
1002
1091
  data: t.json("data").$type().notNull()
1003
1092
  },
1004
1093
  (table) => ({
1094
+ tenantIdx: (0, import_pg_core.index)("board_comments_tenant_id_idx").on(table.tenant_id),
1005
1095
  boardIdx: (0, import_pg_core.index)("board_comments_board_idx").on(table.board_id),
1006
1096
  sessionIdx: (0, import_pg_core.index)("board_comments_session_idx").on(table.session_id),
1007
1097
  taskIdx: (0, import_pg_core.index)("board_comments_task_idx").on(table.task_id),
@@ -1016,6 +1106,7 @@ var boardComments = (0, import_pg_core.pgTable)(
1016
1106
  var gatewayChannels = (0, import_pg_core.pgTable)(
1017
1107
  "gateway_channels",
1018
1108
  {
1109
+ tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
1019
1110
  // Primary identity
1020
1111
  id: (0, import_pg_core.varchar)("id", { length: 36 }).primaryKey(),
1021
1112
  created_at: t.timestamp("created_at").notNull(),
@@ -1029,7 +1120,7 @@ var gatewayChannels = (0, import_pg_core.pgTable)(
1029
1120
  }).notNull(),
1030
1121
  target_branch_id: (0, import_pg_core.varchar)("target_branch_id", { length: 36 }).notNull().references(() => branches.branch_id, { onDelete: "cascade" }),
1031
1122
  agor_user_id: (0, import_pg_core.varchar)("agor_user_id", { length: 36 }).notNull(),
1032
- channel_key: (0, import_pg_core.text)("channel_key").notNull().unique(),
1123
+ channel_key: (0, import_pg_core.text)("channel_key").notNull(),
1033
1124
  enabled: t.bool("enabled").notNull().default(true),
1034
1125
  last_message_at: t.timestamp("last_message_at"),
1035
1126
  // JSON blob for platform credentials (encrypted at rest)
@@ -1038,13 +1129,19 @@ var gatewayChannels = (0, import_pg_core.pgTable)(
1038
1129
  agentic_config: t.json("agentic_config")
1039
1130
  },
1040
1131
  (table) => ({
1132
+ tenantIdx: (0, import_pg_core.index)("gateway_channels_tenant_id_idx").on(table.tenant_id),
1041
1133
  channelKeyIdx: (0, import_pg_core.index)("idx_gateway_channel_key").on(table.channel_key),
1134
+ channelKeyTenantUnique: (0, import_pg_core.uniqueIndex)("gateway_channels_tenant_channel_key_unique").on(
1135
+ table.tenant_id,
1136
+ table.channel_key
1137
+ ),
1042
1138
  enabledTypeIdx: (0, import_pg_core.index)("idx_gateway_enabled_type").on(table.enabled, table.channel_type)
1043
1139
  })
1044
1140
  );
1045
1141
  var threadSessionMap = (0, import_pg_core.pgTable)(
1046
1142
  "thread_session_map",
1047
1143
  {
1144
+ tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
1048
1145
  // Primary identity
1049
1146
  id: (0, import_pg_core.varchar)("id", { length: 36 }).primaryKey(),
1050
1147
  created_at: t.timestamp("created_at").notNull(),
@@ -1062,7 +1159,9 @@ var threadSessionMap = (0, import_pg_core.pgTable)(
1062
1159
  metadata: t.json("metadata")
1063
1160
  },
1064
1161
  (table) => ({
1065
- uniqueChannelThread: (0, import_pg_core.uniqueIndex)("uniq_thread_map_channel_thread").on(
1162
+ tenantIdx: (0, import_pg_core.index)("thread_session_map_tenant_id_idx").on(table.tenant_id),
1163
+ uniqueChannelThread: (0, import_pg_core.uniqueIndex)("uniq_thread_map_tenant_channel_thread").on(
1164
+ table.tenant_id,
1066
1165
  table.channel_id,
1067
1166
  table.thread_id
1068
1167
  ),
@@ -1071,14 +1170,82 @@ var threadSessionMap = (0, import_pg_core.pgTable)(
1071
1170
  channelStatusIdx: (0, import_pg_core.index)("idx_thread_map_channel_status").on(table.channel_id, table.status)
1072
1171
  })
1073
1172
  );
1173
+ var gatewayOutboundMessages = (0, import_pg_core.pgTable)(
1174
+ "gateway_outbound_messages",
1175
+ {
1176
+ tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
1177
+ id: (0, import_pg_core.varchar)("id", { length: 36 }).primaryKey(),
1178
+ created_at: t.timestamp("created_at").notNull(),
1179
+ updated_at: t.timestamp("updated_at").notNull(),
1180
+ gateway_channel_id: (0, import_pg_core.varchar)("gateway_channel_id", { length: 36 }).notNull().references(() => gatewayChannels.id, { onDelete: "cascade" }),
1181
+ channel_type: (0, import_pg_core.text)("channel_type", {
1182
+ enum: ["slack", "discord", "whatsapp", "telegram", "github", "teams"]
1183
+ }).notNull(),
1184
+ platform_channel_id: (0, import_pg_core.text)("platform_channel_id").notNull(),
1185
+ platform_message_id: (0, import_pg_core.text)("platform_message_id").notNull(),
1186
+ platform_thread_id: (0, import_pg_core.text)("platform_thread_id").notNull(),
1187
+ platform_permalink: (0, import_pg_core.text)("platform_permalink"),
1188
+ target_branch_id: (0, import_pg_core.varchar)("target_branch_id", { length: 36 }).notNull().references(() => branches.branch_id),
1189
+ emitted_by_user_id: (0, import_pg_core.varchar)("emitted_by_user_id", { length: 36 }).notNull().references(() => users.user_id),
1190
+ emitted_by_session_id: (0, import_pg_core.varchar)("emitted_by_session_id", { length: 36 }).references(
1191
+ () => sessions.session_id,
1192
+ {
1193
+ onDelete: "set null"
1194
+ }
1195
+ ),
1196
+ emitted_by_task_id: (0, import_pg_core.varchar)("emitted_by_task_id", { length: 36 }).references(
1197
+ () => tasks.task_id,
1198
+ {
1199
+ onDelete: "set null"
1200
+ }
1201
+ ),
1202
+ emitted_by_schedule_id: (0, import_pg_core.varchar)("emitted_by_schedule_id", { length: 36 }).references(
1203
+ () => schedules.schedule_id,
1204
+ {
1205
+ onDelete: "set null"
1206
+ }
1207
+ ),
1208
+ message_text: (0, import_pg_core.text)("message_text").notNull(),
1209
+ message_preview: (0, import_pg_core.text)("message_preview").notNull(),
1210
+ metadata: t.json("metadata"),
1211
+ consumed_by_session_id: (0, import_pg_core.varchar)("consumed_by_session_id", { length: 36 }).references(
1212
+ () => sessions.session_id,
1213
+ {
1214
+ onDelete: "set null"
1215
+ }
1216
+ ),
1217
+ consumed_at: t.timestamp("consumed_at")
1218
+ },
1219
+ (table) => ({
1220
+ tenantIdx: (0, import_pg_core.index)("gateway_outbound_messages_tenant_id_idx").on(table.tenant_id),
1221
+ uniqueChannelThread: (0, import_pg_core.uniqueIndex)("uniq_gateway_outbound_tenant_channel_thread").on(
1222
+ table.tenant_id,
1223
+ table.gateway_channel_id,
1224
+ table.platform_thread_id
1225
+ ),
1226
+ emittedSessionIdx: (0, import_pg_core.index)("idx_gateway_outbound_emitted_session").on(
1227
+ table.emitted_by_session_id
1228
+ ),
1229
+ emittedScheduleIdx: (0, import_pg_core.index)("idx_gateway_outbound_emitted_schedule").on(
1230
+ table.emitted_by_schedule_id
1231
+ ),
1232
+ targetBranchCreatedIdx: (0, import_pg_core.index)("idx_gateway_outbound_branch_created").on(
1233
+ table.target_branch_id,
1234
+ table.created_at
1235
+ ),
1236
+ consumedIdx: (0, import_pg_core.index)("idx_gateway_outbound_consumed").on(table.consumed_at)
1237
+ })
1238
+ );
1074
1239
  var sessionEnvSelections = (0, import_pg_core.pgTable)(
1075
1240
  "session_env_selections",
1076
1241
  {
1242
+ tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
1077
1243
  session_id: (0, import_pg_core.varchar)("session_id", { length: 36 }).notNull().references(() => sessions.session_id, { onDelete: "cascade" }),
1078
1244
  env_var_name: (0, import_pg_core.text)("env_var_name").notNull(),
1079
1245
  created_at: t.timestamp("created_at").notNull()
1080
1246
  },
1081
1247
  (table) => ({
1248
+ tenantIdx: (0, import_pg_core.index)("session_env_selections_tenant_id_idx").on(table.tenant_id),
1082
1249
  pk: (0, import_pg_core.primaryKey)({ columns: [table.session_id, table.env_var_name] }),
1083
1250
  sessionIdx: (0, import_pg_core.index)("session_env_selections_session_idx").on(table.session_id)
1084
1251
  })
@@ -1086,6 +1253,7 @@ var sessionEnvSelections = (0, import_pg_core.pgTable)(
1086
1253
  var kbNamespaces = (0, import_pg_core.pgTable)(
1087
1254
  "kb_namespaces",
1088
1255
  {
1256
+ tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
1089
1257
  namespace_id: (0, import_pg_core.varchar)("namespace_id", { length: 36 }).primaryKey(),
1090
1258
  slug: (0, import_pg_core.text)("slug").notNull(),
1091
1259
  display_name: (0, import_pg_core.text)("display_name").notNull(),
@@ -1112,7 +1280,8 @@ var kbNamespaces = (0, import_pg_core.pgTable)(
1112
1280
  archived_at: t.timestamp("archived_at")
1113
1281
  },
1114
1282
  (table) => ({
1115
- slugIdx: (0, import_pg_core.uniqueIndex)("kb_namespaces_slug_idx").on(table.slug).where(import_drizzle_orm2.sql`${table.archived} = false`),
1283
+ tenantIdx: (0, import_pg_core.index)("kb_namespaces_tenant_id_idx").on(table.tenant_id),
1284
+ slugIdx: (0, import_pg_core.uniqueIndex)("kb_namespaces_tenant_slug_unique").on(table.tenant_id, table.slug).where(import_drizzle_orm2.sql`${table.archived} = false`),
1116
1285
  kindIdx: (0, import_pg_core.index)("kb_namespaces_kind_idx").on(table.kind),
1117
1286
  ownerIdx: (0, import_pg_core.index)("kb_namespaces_owner_idx").on(table.owner_user_id),
1118
1287
  repoIdx: (0, import_pg_core.index)("kb_namespaces_repo_idx").on(table.repo_id),
@@ -1123,6 +1292,7 @@ var kbNamespaces = (0, import_pg_core.pgTable)(
1123
1292
  var kbNamespaceAcl = (0, import_pg_core.pgTable)(
1124
1293
  "kb_namespace_acl",
1125
1294
  {
1295
+ tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
1126
1296
  namespace_acl_id: (0, import_pg_core.varchar)("namespace_acl_id", { length: 36 }).primaryKey(),
1127
1297
  namespace_id: (0, import_pg_core.varchar)("namespace_id", { length: 36 }).notNull().references(() => kbNamespaces.namespace_id, { onDelete: "cascade" }),
1128
1298
  subject_type: (0, import_pg_core.text)("subject_type", { enum: ["user", "group"] }).notNull(),
@@ -1135,9 +1305,11 @@ var kbNamespaceAcl = (0, import_pg_core.pgTable)(
1135
1305
  updated_at: t.timestamp("updated_at")
1136
1306
  },
1137
1307
  (table) => ({
1308
+ tenantIdx: (0, import_pg_core.index)("kb_namespace_acl_tenant_id_idx").on(table.tenant_id),
1138
1309
  namespaceIdx: (0, import_pg_core.index)("kb_namespace_acl_namespace_idx").on(table.namespace_id),
1139
1310
  subjectIdx: (0, import_pg_core.index)("kb_namespace_acl_subject_idx").on(table.subject_type, table.subject_id),
1140
- namespaceSubjectIdx: (0, import_pg_core.uniqueIndex)("kb_namespace_acl_namespace_subject_idx").on(
1311
+ namespaceSubjectIdx: (0, import_pg_core.uniqueIndex)("kb_namespace_acl_tenant_namespace_subject_unique").on(
1312
+ table.tenant_id,
1141
1313
  table.namespace_id,
1142
1314
  table.subject_type,
1143
1315
  table.subject_id
@@ -1147,6 +1319,7 @@ var kbNamespaceAcl = (0, import_pg_core.pgTable)(
1147
1319
  var kbDocuments = (0, import_pg_core.pgTable)(
1148
1320
  "kb_documents",
1149
1321
  {
1322
+ tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
1150
1323
  document_id: (0, import_pg_core.varchar)("document_id", { length: 36 }).primaryKey(),
1151
1324
  namespace_id: (0, import_pg_core.varchar)("namespace_id", { length: 36 }).notNull().references(() => kbNamespaces.namespace_id, { onDelete: "cascade" }),
1152
1325
  path: (0, import_pg_core.text)("path").notNull(),
@@ -1174,8 +1347,9 @@ var kbDocuments = (0, import_pg_core.pgTable)(
1174
1347
  archived_at: t.timestamp("archived_at")
1175
1348
  },
1176
1349
  (table) => ({
1177
- namespacePathIdx: (0, import_pg_core.uniqueIndex)("kb_documents_namespace_path_idx").on(table.namespace_id, table.path).where(import_drizzle_orm2.sql`${table.archived} = false`),
1178
- uriIdx: (0, import_pg_core.uniqueIndex)("kb_documents_uri_idx").on(table.uri).where(import_drizzle_orm2.sql`${table.archived} = false`),
1350
+ tenantIdx: (0, import_pg_core.index)("kb_documents_tenant_id_idx").on(table.tenant_id),
1351
+ namespacePathIdx: (0, import_pg_core.uniqueIndex)("kb_documents_tenant_namespace_path_unique").on(table.tenant_id, table.namespace_id, table.path).where(import_drizzle_orm2.sql`${table.archived} = false`),
1352
+ uriIdx: (0, import_pg_core.uniqueIndex)("kb_documents_tenant_uri_unique").on(table.tenant_id, table.uri).where(import_drizzle_orm2.sql`${table.archived} = false`),
1179
1353
  namespaceIdx: (0, import_pg_core.index)("kb_documents_namespace_idx").on(table.namespace_id),
1180
1354
  kindIdx: (0, import_pg_core.index)("kb_documents_kind_idx").on(table.kind),
1181
1355
  visibilityIdx: (0, import_pg_core.index)("kb_documents_visibility_idx").on(table.visibility),
@@ -1188,6 +1362,7 @@ var kbDocuments = (0, import_pg_core.pgTable)(
1188
1362
  var kbDocumentVersions = (0, import_pg_core.pgTable)(
1189
1363
  "kb_document_versions",
1190
1364
  {
1365
+ tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
1191
1366
  version_id: (0, import_pg_core.varchar)("version_id", { length: 36 }).primaryKey(),
1192
1367
  document_id: (0, import_pg_core.varchar)("document_id", { length: 36 }).notNull().references(() => kbDocuments.document_id, { onDelete: "cascade" }),
1193
1368
  version_number: (0, import_pg_core.integer)("version_number").notNull(),
@@ -1207,7 +1382,9 @@ var kbDocumentVersions = (0, import_pg_core.pgTable)(
1207
1382
  created_at: t.timestamp("created_at").notNull()
1208
1383
  },
1209
1384
  (table) => ({
1210
- documentVersionIdx: (0, import_pg_core.uniqueIndex)("kb_document_versions_document_version_idx").on(
1385
+ tenantIdx: (0, import_pg_core.index)("kb_document_versions_tenant_id_idx").on(table.tenant_id),
1386
+ documentVersionIdx: (0, import_pg_core.uniqueIndex)("kb_document_versions_tenant_document_version_unique").on(
1387
+ table.tenant_id,
1211
1388
  table.document_id,
1212
1389
  table.version_number
1213
1390
  ),
@@ -1219,6 +1396,7 @@ var kbDocumentVersions = (0, import_pg_core.pgTable)(
1219
1396
  var kbDocumentUnits = (0, import_pg_core.pgTable)(
1220
1397
  "kb_document_units",
1221
1398
  {
1399
+ tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
1222
1400
  unit_id: (0, import_pg_core.varchar)("unit_id", { length: 36 }).primaryKey(),
1223
1401
  document_id: (0, import_pg_core.varchar)("document_id", { length: 36 }).notNull().references(() => kbDocuments.document_id, { onDelete: "cascade" }),
1224
1402
  version_id: (0, import_pg_core.varchar)("version_id", { length: 36 }).notNull().references(() => kbDocumentVersions.version_id, { onDelete: "cascade" }),
@@ -1243,6 +1421,7 @@ var kbDocumentUnits = (0, import_pg_core.pgTable)(
1243
1421
  updated_at: t.timestamp("updated_at")
1244
1422
  },
1245
1423
  (table) => ({
1424
+ tenantIdx: (0, import_pg_core.index)("kb_document_units_tenant_id_idx").on(table.tenant_id),
1246
1425
  documentIdx: (0, import_pg_core.index)("kb_document_units_document_idx").on(table.document_id),
1247
1426
  versionIdx: (0, import_pg_core.index)("kb_document_units_version_idx").on(table.version_id),
1248
1427
  versionOrdinalIdx: (0, import_pg_core.index)("kb_document_units_version_ordinal_idx").on(
@@ -1256,6 +1435,7 @@ var kbDocumentUnits = (0, import_pg_core.pgTable)(
1256
1435
  var kbEmbeddingSpaces = (0, import_pg_core.pgTable)(
1257
1436
  "kb_embedding_spaces",
1258
1437
  {
1438
+ tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
1259
1439
  embedding_space_id: (0, import_pg_core.varchar)("embedding_space_id", { length: 36 }).primaryKey(),
1260
1440
  provider: (0, import_pg_core.text)("provider").notNull(),
1261
1441
  model: (0, import_pg_core.text)("model").notNull(),
@@ -1268,7 +1448,9 @@ var kbEmbeddingSpaces = (0, import_pg_core.pgTable)(
1268
1448
  updated_at: t.timestamp("updated_at")
1269
1449
  },
1270
1450
  (table) => ({
1271
- providerModelIdx: (0, import_pg_core.uniqueIndex)("kb_embedding_spaces_provider_model_idx").on(
1451
+ tenantIdx: (0, import_pg_core.index)("kb_embedding_spaces_tenant_id_idx").on(table.tenant_id),
1452
+ providerModelIdx: (0, import_pg_core.uniqueIndex)("kb_embedding_spaces_tenant_provider_model_unique").on(
1453
+ table.tenant_id,
1272
1454
  table.provider,
1273
1455
  table.model,
1274
1456
  table.dimensions,
@@ -1281,6 +1463,7 @@ var kbEmbeddingSpaces = (0, import_pg_core.pgTable)(
1281
1463
  var kbGraphNodes = (0, import_pg_core.pgTable)(
1282
1464
  "kb_graph_nodes",
1283
1465
  {
1466
+ tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
1284
1467
  node_id: (0, import_pg_core.varchar)("node_id", { length: 36 }).primaryKey(),
1285
1468
  node_type: (0, import_pg_core.text)("node_type", {
1286
1469
  enum: [
@@ -1346,7 +1529,8 @@ var kbGraphNodes = (0, import_pg_core.pgTable)(
1346
1529
  archived_at: t.timestamp("archived_at")
1347
1530
  },
1348
1531
  (table) => ({
1349
- uriIdx: (0, import_pg_core.uniqueIndex)("kb_graph_nodes_uri_idx").on(table.uri).where(import_drizzle_orm2.sql`${table.archived} = false`),
1532
+ tenantIdx: (0, import_pg_core.index)("kb_graph_nodes_tenant_id_idx").on(table.tenant_id),
1533
+ uriIdx: (0, import_pg_core.uniqueIndex)("kb_graph_nodes_tenant_uri_unique").on(table.tenant_id, table.uri).where(import_drizzle_orm2.sql`${table.archived} = false`),
1350
1534
  typeIdx: (0, import_pg_core.index)("kb_graph_nodes_type_idx").on(table.node_type),
1351
1535
  namespaceIdx: (0, import_pg_core.index)("kb_graph_nodes_namespace_idx").on(table.namespace_id),
1352
1536
  documentIdx: (0, import_pg_core.index)("kb_graph_nodes_document_idx").on(table.document_id),
@@ -1366,6 +1550,7 @@ var kbGraphNodes = (0, import_pg_core.pgTable)(
1366
1550
  var kbGraphEdges = (0, import_pg_core.pgTable)(
1367
1551
  "kb_graph_edges",
1368
1552
  {
1553
+ tenant_id: (0, import_pg_core.text)("tenant_id").notNull().default("default"),
1369
1554
  edge_id: (0, import_pg_core.varchar)("edge_id", { length: 36 }).primaryKey(),
1370
1555
  source_node_id: (0, import_pg_core.varchar)("source_node_id", { length: 36 }).notNull().references(() => kbGraphNodes.node_id, { onDelete: "cascade" }),
1371
1556
  target_node_id: (0, import_pg_core.varchar)("target_node_id", { length: 36 }).notNull().references(() => kbGraphNodes.node_id, { onDelete: "cascade" }),
@@ -1394,6 +1579,7 @@ var kbGraphEdges = (0, import_pg_core.pgTable)(
1394
1579
  archived_at: t.timestamp("archived_at")
1395
1580
  },
1396
1581
  (table) => ({
1582
+ tenantIdx: (0, import_pg_core.index)("kb_graph_edges_tenant_id_idx").on(table.tenant_id),
1397
1583
  sourceIdx: (0, import_pg_core.index)("kb_graph_edges_source_idx").on(table.source_node_id),
1398
1584
  targetIdx: (0, import_pg_core.index)("kb_graph_edges_target_idx").on(table.target_node_id),
1399
1585
  typeIdx: (0, import_pg_core.index)("kb_graph_edges_type_idx").on(table.edge_type),
@@ -1405,7 +1591,7 @@ var kbGraphEdges = (0, import_pg_core.pgTable)(
1405
1591
  table.target_node_id,
1406
1592
  table.edge_type
1407
1593
  ),
1408
- sourceTargetTypeIdx: (0, import_pg_core.uniqueIndex)("kb_graph_edges_source_target_type_idx").on(table.source_node_id, table.target_node_id, table.edge_type).where(import_drizzle_orm2.sql`${table.archived} = false`),
1594
+ sourceTargetTypeIdx: (0, import_pg_core.uniqueIndex)("kb_graph_edges_tenant_source_target_type_unique").on(table.tenant_id, table.source_node_id, table.target_node_id, table.edge_type).where(import_drizzle_orm2.sql`${table.archived} = false`),
1409
1595
  archivedIdx: (0, import_pg_core.index)("kb_graph_edges_archived_idx").on(table.archived)
1410
1596
  })
1411
1597
  );
@@ -1467,6 +1653,7 @@ __export(schema_sqlite_exports, {
1467
1653
  cardTypes: () => cardTypes2,
1468
1654
  cards: () => cards2,
1469
1655
  gatewayChannels: () => gatewayChannels2,
1656
+ gatewayOutboundMessages: () => gatewayOutboundMessages2,
1470
1657
  groupMemberships: () => groupMemberships2,
1471
1658
  groups: () => groups2,
1472
1659
  kbDocumentUnits: () => kbDocumentUnits2,
@@ -1565,6 +1752,7 @@ var sessions2 = (0, import_sqlite_core.sqliteTable)(
1565
1752
  },
1566
1753
  (table) => ({
1567
1754
  statusIdx: (0, import_sqlite_core.index)("sessions_status_idx").on(table.status),
1755
+ statusReadyIdx: (0, import_sqlite_core.index)("sessions_status_ready_idx").on(table.status, table.ready_for_prompt),
1568
1756
  agenticToolIdx: (0, import_sqlite_core.index)("sessions_agentic_tool_idx").on(table.agentic_tool),
1569
1757
  boardIdx: (0, import_sqlite_core.index)("sessions_board_idx").on(table.board_id),
1570
1758
  branchIdx: (0, import_sqlite_core.index)("sessions_branch_idx").on(table.branch_id),
@@ -1604,6 +1792,9 @@ var sessionRelationships2 = (0, import_sqlite_core.sqliteTable)(
1604
1792
  sourceIdx: (0, import_sqlite_core.index)("session_relationships_source_idx").on(table.source_session_id),
1605
1793
  targetIdx: (0, import_sqlite_core.index)("session_relationships_target_idx").on(table.target_session_id),
1606
1794
  callbackIdx: (0, import_sqlite_core.index)("session_relationships_callback_idx").on(table.callback_session_id),
1795
+ // Note: no tenant_source/tenant_target composite indexes here — SQLite schema
1796
+ // has no tenant column on this table (RLS is Postgres-only). The standalone
1797
+ // source/target indexes above are sufficient for SQLite.
1607
1798
  sourceTargetTypeUnique: (0, import_sqlite_core.uniqueIndex)("session_relationships_source_target_type_unique").on(
1608
1799
  table.source_session_id,
1609
1800
  table.target_session_id,
@@ -1723,7 +1914,12 @@ var messages2 = (0, import_sqlite_core.sqliteTable)(
1723
1914
  // Indexes for efficient lookups
1724
1915
  sessionIdx: (0, import_sqlite_core.index)("messages_session_id_idx").on(table.session_id),
1725
1916
  taskIdx: (0, import_sqlite_core.index)("messages_task_id_idx").on(table.task_id),
1726
- sessionIndexIdx: (0, import_sqlite_core.index)("messages_session_index_idx").on(table.session_id, table.index)
1917
+ sessionIndexIdx: (0, import_sqlite_core.index)("messages_session_index_idx").on(table.session_id, table.index),
1918
+ timestampIdx: (0, import_sqlite_core.index)("messages_timestamp_idx").on(table.timestamp),
1919
+ sessionTimestampIdx: (0, import_sqlite_core.index)("messages_session_timestamp_idx").on(
1920
+ table.session_id,
1921
+ table.timestamp
1922
+ )
1727
1923
  })
1728
1924
  );
1729
1925
  var boards2 = (0, import_sqlite_core.sqliteTable)(
@@ -1949,6 +2145,9 @@ var users2 = (0, import_sqlite_core.sqliteTable)(
1949
2145
  onboarding_completed: t2.bool("onboarding_completed").notNull().default(false),
1950
2146
  // Force password change flag (admin-settable, auto-cleared on password change)
1951
2147
  must_change_password: t2.bool("must_change_password").notNull().default(false),
2148
+ // Auth invalidation marker. Password changes set this timestamp so any
2149
+ // previously issued browser access or refresh token is rejected.
2150
+ tokens_valid_after: t2.timestamp("tokens_valid_after"),
1952
2151
  // JSON blob for profile/preferences
1953
2152
  data: t2.json("data").$type().notNull()
1954
2153
  },
@@ -2392,6 +2591,66 @@ var threadSessionMap2 = (0, import_sqlite_core.sqliteTable)(
2392
2591
  channelStatusIdx: (0, import_sqlite_core.index)("idx_thread_map_channel_status").on(table.channel_id, table.status)
2393
2592
  })
2394
2593
  );
2594
+ var gatewayOutboundMessages2 = (0, import_sqlite_core.sqliteTable)(
2595
+ "gateway_outbound_messages",
2596
+ {
2597
+ id: (0, import_sqlite_core.text)("id", { length: 36 }).primaryKey(),
2598
+ created_at: t2.timestamp("created_at").notNull(),
2599
+ updated_at: t2.timestamp("updated_at").notNull(),
2600
+ gateway_channel_id: (0, import_sqlite_core.text)("gateway_channel_id", { length: 36 }).notNull().references(() => gatewayChannels2.id, { onDelete: "cascade" }),
2601
+ channel_type: (0, import_sqlite_core.text)("channel_type", {
2602
+ enum: ["slack", "discord", "whatsapp", "telegram", "github", "teams"]
2603
+ }).notNull(),
2604
+ platform_channel_id: (0, import_sqlite_core.text)("platform_channel_id").notNull(),
2605
+ platform_message_id: (0, import_sqlite_core.text)("platform_message_id").notNull(),
2606
+ platform_thread_id: (0, import_sqlite_core.text)("platform_thread_id").notNull(),
2607
+ platform_permalink: (0, import_sqlite_core.text)("platform_permalink"),
2608
+ target_branch_id: (0, import_sqlite_core.text)("target_branch_id", { length: 36 }).notNull().references(() => branches2.branch_id),
2609
+ emitted_by_user_id: (0, import_sqlite_core.text)("emitted_by_user_id", { length: 36 }).notNull().references(() => users2.user_id),
2610
+ emitted_by_session_id: (0, import_sqlite_core.text)("emitted_by_session_id", { length: 36 }).references(
2611
+ () => sessions2.session_id,
2612
+ {
2613
+ onDelete: "set null"
2614
+ }
2615
+ ),
2616
+ emitted_by_task_id: (0, import_sqlite_core.text)("emitted_by_task_id", { length: 36 }).references(() => tasks2.task_id, {
2617
+ onDelete: "set null"
2618
+ }),
2619
+ emitted_by_schedule_id: (0, import_sqlite_core.text)("emitted_by_schedule_id", { length: 36 }).references(
2620
+ () => schedules2.schedule_id,
2621
+ {
2622
+ onDelete: "set null"
2623
+ }
2624
+ ),
2625
+ message_text: (0, import_sqlite_core.text)("message_text").notNull(),
2626
+ message_preview: (0, import_sqlite_core.text)("message_preview").notNull(),
2627
+ metadata: t2.json("metadata"),
2628
+ consumed_by_session_id: (0, import_sqlite_core.text)("consumed_by_session_id", { length: 36 }).references(
2629
+ () => sessions2.session_id,
2630
+ {
2631
+ onDelete: "set null"
2632
+ }
2633
+ ),
2634
+ consumed_at: t2.timestamp("consumed_at")
2635
+ },
2636
+ (table) => ({
2637
+ uniqueChannelThread: (0, import_sqlite_core.uniqueIndex)("uniq_gateway_outbound_channel_thread").on(
2638
+ table.gateway_channel_id,
2639
+ table.platform_thread_id
2640
+ ),
2641
+ emittedSessionIdx: (0, import_sqlite_core.index)("idx_gateway_outbound_emitted_session").on(
2642
+ table.emitted_by_session_id
2643
+ ),
2644
+ emittedScheduleIdx: (0, import_sqlite_core.index)("idx_gateway_outbound_emitted_schedule").on(
2645
+ table.emitted_by_schedule_id
2646
+ ),
2647
+ targetBranchCreatedIdx: (0, import_sqlite_core.index)("idx_gateway_outbound_branch_created").on(
2648
+ table.target_branch_id,
2649
+ table.created_at
2650
+ ),
2651
+ consumedIdx: (0, import_sqlite_core.index)("idx_gateway_outbound_consumed").on(table.consumed_at)
2652
+ })
2653
+ );
2395
2654
  var sessionEnvSelections2 = (0, import_sqlite_core.sqliteTable)(
2396
2655
  "session_env_selections",
2397
2656
  {
@@ -2774,7 +3033,7 @@ var import_node_fs = require("fs");
2774
3033
  var import_promises = __toESM(require("fs/promises"), 1);
2775
3034
  var import_node_os = __toESM(require("os"), 1);
2776
3035
  var import_node_path = __toESM(require("path"), 1);
2777
- var import_js_yaml = __toESM(require("js-yaml"), 1);
3036
+ var yaml = __toESM(require("js-yaml"), 1);
2778
3037
 
2779
3038
  // src/config/analytics-defaults.ts
2780
3039
  function getDefaultAnalyticsConfig() {
@@ -2875,6 +3134,64 @@ function resolveExecutorHeartbeatConfig(execution) {
2875
3134
  };
2876
3135
  }
2877
3136
 
3137
+ // src/config/multitenancy.ts
3138
+ var DEFAULT_STATIC_TENANT_ID = "default";
3139
+ var RESERVED_AUTH_CLAIMS = /* @__PURE__ */ new Set(["aud", "exp", "iat", "iss", "jti", "nbf", "sub", "type"]);
3140
+ function detectPostgresUrl(url) {
3141
+ if (!url) return false;
3142
+ const lower = url.toLowerCase();
3143
+ return lower.startsWith("postgresql://") || lower.startsWith("postgres://") || lower.startsWith("pg://");
3144
+ }
3145
+ function resolveMultiTenancyDatabaseDialect(config = {}) {
3146
+ if (process.env.AGOR_DB_DIALECT === "postgresql" || process.env.AGOR_DB_DIALECT === "sqlite") {
3147
+ return process.env.AGOR_DB_DIALECT;
3148
+ }
3149
+ if (detectPostgresUrl(process.env.DATABASE_URL)) return "postgresql";
3150
+ if (config.database?.dialect === "postgresql" || config.database?.dialect === "sqlite") {
3151
+ return config.database.dialect;
3152
+ }
3153
+ if (detectPostgresUrl(config.database?.postgresql?.url) || config.database?.postgresql?.host) {
3154
+ return "postgresql";
3155
+ }
3156
+ return "sqlite";
3157
+ }
3158
+ function resolveMultiTenancyConfig(config) {
3159
+ const raw = config.multi_tenancy ?? {};
3160
+ const mode = raw.mode ?? "static";
3161
+ return {
3162
+ mode,
3163
+ static_tenant_id: raw.static_tenant_id?.trim() || DEFAULT_STATIC_TENANT_ID,
3164
+ ...raw.auth_claim ? { auth_claim: raw.auth_claim } : {},
3165
+ ...raw.trusted_header ? { trusted_header: raw.trusted_header } : {}
3166
+ };
3167
+ }
3168
+ function assertValidMultiTenancyConfig(config) {
3169
+ const resolved = resolveMultiTenancyConfig(config);
3170
+ if (resolved.mode !== "static" && resolved.mode !== "required_from_auth") {
3171
+ throw new Error("Config error: multi_tenancy.mode must be one of: static, required_from_auth");
3172
+ }
3173
+ if (!resolved.static_tenant_id) {
3174
+ throw new Error("Config error: multi_tenancy.static_tenant_id must not be empty");
3175
+ }
3176
+ if (resolved.auth_claim && RESERVED_AUTH_CLAIMS.has(resolved.auth_claim)) {
3177
+ throw new Error(
3178
+ `Config error: multi_tenancy.auth_claim cannot be reserved JWT claim '${resolved.auth_claim}'`
3179
+ );
3180
+ }
3181
+ if (resolved.mode === "required_from_auth") {
3182
+ if (resolveMultiTenancyDatabaseDialect(config) !== "postgresql") {
3183
+ throw new Error(
3184
+ "Config error: multi_tenancy.required_from_auth requires database.dialect: postgresql"
3185
+ );
3186
+ }
3187
+ if (!resolved.auth_claim && !resolved.trusted_header) {
3188
+ throw new Error(
3189
+ "Config error: multi_tenancy.required_from_auth requires multi_tenancy.auth_claim or multi_tenancy.trusted_header"
3190
+ );
3191
+ }
3192
+ }
3193
+ }
3194
+
2878
3195
  // src/config/config-manager.ts
2879
3196
  var NO_FILE = -1;
2880
3197
  var NO_FILE_KEY = { mtimeMs: NO_FILE, size: 0 };
@@ -2907,7 +3224,10 @@ function writeCachedConfig(configPath, config, key) {
2907
3224
  cachedEntry = { path: configPath, config: structuredClone(config), key };
2908
3225
  }
2909
3226
  function parseAndValidateConfig(content) {
2910
- const parsed = import_js_yaml.default.load(content);
3227
+ if (content.trim() === "") {
3228
+ return {};
3229
+ }
3230
+ const parsed = yaml.load(content);
2911
3231
  const finalConfig = parsed || {};
2912
3232
  validateConfig(finalConfig);
2913
3233
  return finalConfig;
@@ -2936,6 +3256,7 @@ To update: agor config set execution.unix_user_mode insulated`
2936
3256
  `Config error: execution.managed_envs_execution_mode must be one of: hybrid, webhook-only`
2937
3257
  );
2938
3258
  }
3259
+ assertValidMultiTenancyConfig(config);
2939
3260
  validateOptionalHttpUrl(
2940
3261
  config.external_launch,
2941
3262
  "login_redirect_url",
@@ -2996,7 +3317,12 @@ function getDefaultConfig() {
2996
3317
  // Default: sync passwords to Unix
2997
3318
  executor_heartbeat: resolveExecutorHeartbeatConfig()
2998
3319
  },
2999
- analytics: getDefaultAnalyticsConfig()
3320
+ analytics: getDefaultAnalyticsConfig(),
3321
+ telemetry: {},
3322
+ multi_tenancy: {
3323
+ mode: "static",
3324
+ static_tenant_id: "default"
3325
+ }
3000
3326
  };
3001
3327
  }
3002
3328
  function loadConfigSync() {
@@ -3110,6 +3436,7 @@ var userMcpOauthTokens3 = schema.userMcpOauthTokens;
3110
3436
  var boardComments3 = schema.boardComments;
3111
3437
  var gatewayChannels3 = schema.gatewayChannels;
3112
3438
  var threadSessionMap3 = schema.threadSessionMap;
3439
+ var gatewayOutboundMessages3 = schema.gatewayOutboundMessages;
3113
3440
  var userApiKeys3 = schema.userApiKeys;
3114
3441
  var serializedSessions3 = schema.serializedSessions;
3115
3442
  var kbNamespaces3 = schema.kbNamespaces;