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
@@ -10,6 +10,10 @@ import { eq as eq2 } from "drizzle-orm";
10
10
  // src/db/database-wrapper.ts
11
11
  import { sql } from "drizzle-orm";
12
12
 
13
+ // src/db/tenant-context.ts
14
+ import { AsyncLocalStorage } from "async_hooks";
15
+ var tenantDatabaseScope = new AsyncLocalStorage();
16
+
13
17
  // src/db/encryption.ts
14
18
  import { createCipheriv, createDecipheriv, randomBytes, scryptSync } from "crypto";
15
19
 
@@ -34,6 +38,7 @@ __export(schema_postgres_exports, {
34
38
  cardTypes: () => cardTypes,
35
39
  cards: () => cards,
36
40
  gatewayChannels: () => gatewayChannels,
41
+ gatewayOutboundMessages: () => gatewayOutboundMessages,
37
42
  groupMemberships: () => groupMemberships,
38
43
  groups: () => groups,
39
44
  kbDocumentUnits: () => kbDocumentUnits,
@@ -176,6 +181,7 @@ var t = {
176
181
  var sessions = pgTable(
177
182
  "sessions",
178
183
  {
184
+ tenant_id: text("tenant_id").notNull().default("default"),
179
185
  // Primary identity
180
186
  session_id: varchar("session_id", { length: 36 }).primaryKey(),
181
187
  created_at: t.timestamp("created_at").notNull(),
@@ -235,7 +241,9 @@ var sessions = pgTable(
235
241
  data: t.json("data").$type().notNull()
236
242
  },
237
243
  (table) => ({
244
+ tenantIdx: index("sessions_tenant_id_idx").on(table.tenant_id),
238
245
  statusIdx: index("sessions_status_idx").on(table.status),
246
+ statusReadyIdx: index("sessions_status_ready_idx").on(table.status, table.ready_for_prompt),
239
247
  agenticToolIdx: index("sessions_agentic_tool_idx").on(table.agentic_tool),
240
248
  boardIdx: index("sessions_board_idx").on(table.board_id),
241
249
  branchIdx: index("sessions_branch_idx").on(table.branch_id),
@@ -247,12 +255,13 @@ var sessions = pgTable(
247
255
  // Partial unique index — covering for the scheduler's dedup lookup
248
256
  // AND serves as the DB-level guard against check-then-create races
249
257
  // in spawnScheduledSession.
250
- scheduleRunUnique: uniqueIndex("sessions_schedule_run_unique").on(table.schedule_id, table.scheduled_run_at).where(sql2`${table.schedule_id} IS NOT NULL AND ${table.scheduled_run_at} IS NOT NULL`)
258
+ scheduleRunUnique: uniqueIndex("sessions_schedule_run_unique").on(table.tenant_id, table.schedule_id, table.scheduled_run_at).where(sql2`${table.schedule_id} IS NOT NULL AND ${table.scheduled_run_at} IS NOT NULL`)
251
259
  })
252
260
  );
253
261
  var sessionRelationships = pgTable(
254
262
  "session_relationships",
255
263
  {
264
+ tenant_id: text("tenant_id").notNull().default("default"),
256
265
  relationship_id: varchar("relationship_id", { length: 36 }).primaryKey(),
257
266
  source_session_id: varchar("source_session_id", { length: 36 }).notNull().references(() => sessions.session_id, { onDelete: "cascade" }),
258
267
  target_session_id: varchar("target_session_id", { length: 36 }).notNull().references(() => sessions.session_id, { onDelete: "cascade" }),
@@ -270,10 +279,23 @@ var sessionRelationships = pgTable(
270
279
  data: t.json("data")
271
280
  },
272
281
  (table) => ({
282
+ tenantIdx: index("session_relationships_tenant_id_idx").on(table.tenant_id),
273
283
  sourceIdx: index("session_relationships_source_idx").on(table.source_session_id),
274
284
  targetIdx: index("session_relationships_target_idx").on(table.target_session_id),
275
285
  callbackIdx: index("session_relationships_callback_idx").on(table.callback_session_id),
286
+ // Composite indexes so the OR predicate in dispatchCompletionCallbacks
287
+ // (WHERE source_session_id = $1 OR target_session_id = $2) uses BitmapOr
288
+ // over these instead of a full tenant table scan via tenant_id_idx.
289
+ tenantSourceIdx: index("session_relationships_tenant_source_idx").on(
290
+ table.tenant_id,
291
+ table.source_session_id
292
+ ),
293
+ tenantTargetIdx: index("session_relationships_tenant_target_idx").on(
294
+ table.tenant_id,
295
+ table.target_session_id
296
+ ),
276
297
  sourceTargetTypeUnique: uniqueIndex("session_relationships_source_target_type_unique").on(
298
+ table.tenant_id,
277
299
  table.source_session_id,
278
300
  table.target_session_id,
279
301
  table.relationship_type
@@ -283,6 +305,7 @@ var sessionRelationships = pgTable(
283
305
  var tasks = pgTable(
284
306
  "tasks",
285
307
  {
308
+ tenant_id: text("tenant_id").notNull().default("default"),
286
309
  task_id: varchar("task_id", { length: 36 }).primaryKey(),
287
310
  session_id: varchar("session_id", { length: 36 }).notNull().references(() => sessions.session_id, { onDelete: "cascade" }),
288
311
  created_at: t.timestamp("created_at").notNull(),
@@ -312,19 +335,23 @@ var tasks = pgTable(
312
335
  data: t.json("data").$type().notNull()
313
336
  },
314
337
  (table) => ({
338
+ tenantIdx: index("tasks_tenant_id_idx").on(table.tenant_id),
315
339
  sessionIdx: index("tasks_session_idx").on(table.session_id),
316
340
  statusIdx: index("tasks_status_idx").on(table.status),
317
341
  createdIdx: index("tasks_created_idx").on(table.created_at),
342
+ // Composite for "latest task for session" queries (ORDER BY created_at DESC LIMIT 1).
343
+ sessionCreatedIdx: index("tasks_session_created_idx").on(table.session_id, table.created_at),
318
344
  queueIdx: index("tasks_queue_idx").on(table.session_id, table.status, table.queue_position),
319
345
  // Partial unique index — defense-in-depth for `tasks.createPending` race
320
346
  // serialization. Only QUEUED rows are constrained; CREATED/RUNNING/done
321
347
  // rows have NULL queue_position and are unaffected.
322
- queuedPositionUnique: uniqueIndex("tasks_queued_position_unique").on(table.session_id, table.queue_position).where(sql2`${table.status} = 'queued'`)
348
+ queuedPositionUnique: uniqueIndex("tasks_queued_position_unique").on(table.tenant_id, table.session_id, table.queue_position).where(sql2`${table.status} = 'queued'`)
323
349
  })
324
350
  );
325
351
  var serializedSessions = pgTable(
326
352
  "serialized_sessions",
327
353
  {
354
+ tenant_id: text("tenant_id").notNull().default("default"),
328
355
  id: varchar("id", { length: 36 }).primaryKey(),
329
356
  session_id: varchar("session_id", { length: 36 }).notNull().references(() => sessions.session_id, { onDelete: "cascade" }),
330
357
  branch_id: varchar("branch_id", { length: 36 }).notNull().references(() => branches.branch_id, { onDelete: "cascade" }),
@@ -340,6 +367,7 @@ var serializedSessions = pgTable(
340
367
  // gzipped; NULL while status='processing'
341
368
  },
342
369
  (table) => ({
370
+ tenantIdx: index("serialized_sessions_tenant_id_idx").on(table.tenant_id),
343
371
  sessionTurnIdx: index("serialized_sessions_session_turn_idx").on(
344
372
  table.session_id,
345
373
  table.turn_index
@@ -350,6 +378,7 @@ var serializedSessions = pgTable(
350
378
  var messages = pgTable(
351
379
  "messages",
352
380
  {
381
+ tenant_id: text("tenant_id").notNull().default("default"),
353
382
  // Primary identity
354
383
  message_id: varchar("message_id", { length: 36 }).primaryKey(),
355
384
  created_at: t.timestamp("created_at").notNull(),
@@ -389,15 +418,23 @@ var messages = pgTable(
389
418
  data: t.json("data").$type().notNull()
390
419
  },
391
420
  (table) => ({
421
+ tenantIdx: index("messages_tenant_id_idx").on(table.tenant_id),
422
+ tenantTimestampIdx: index("messages_tenant_timestamp_idx").on(table.tenant_id, table.timestamp),
392
423
  // Indexes for efficient lookups
393
424
  sessionIdx: index("messages_session_id_idx").on(table.session_id),
394
425
  taskIdx: index("messages_task_id_idx").on(table.task_id),
395
- sessionIndexIdx: index("messages_session_index_idx").on(table.session_id, table.index)
426
+ sessionIndexIdx: index("messages_session_index_idx").on(table.session_id, table.index),
427
+ timestampIdx: index("messages_timestamp_idx").on(table.timestamp),
428
+ sessionTimestampIdx: index("messages_session_timestamp_idx").on(
429
+ table.session_id,
430
+ table.timestamp
431
+ )
396
432
  })
397
433
  );
398
434
  var boards = pgTable(
399
435
  "boards",
400
436
  {
437
+ tenant_id: text("tenant_id").notNull().default("default"),
401
438
  board_id: varchar("board_id", { length: 36 }).primaryKey(),
402
439
  created_at: t.timestamp("created_at").notNull(),
403
440
  updated_at: t.timestamp("updated_at"),
@@ -405,7 +442,7 @@ var boards = pgTable(
405
442
  created_by: varchar("created_by", { length: 36 }).notNull(),
406
443
  // Materialized for lookups
407
444
  name: text("name").notNull(),
408
- slug: text("slug").unique(),
445
+ slug: text("slug"),
409
446
  primary_assistant_id: varchar("primary_assistant_id", { length: 36 }).references(
410
447
  () => branches.branch_id,
411
448
  {
@@ -420,18 +457,21 @@ var boards = pgTable(
420
457
  archived_by: varchar("archived_by", { length: 36 })
421
458
  },
422
459
  (table) => ({
460
+ tenantIdx: index("boards_tenant_id_idx").on(table.tenant_id),
423
461
  nameIdx: index("boards_name_idx").on(table.name),
424
- slugIdx: index("boards_slug_idx").on(table.slug)
462
+ slugIdx: index("boards_slug_idx").on(table.slug),
463
+ slugTenantUnique: uniqueIndex("boards_tenant_slug_unique").on(table.tenant_id, table.slug)
425
464
  })
426
465
  );
427
466
  var repos = pgTable(
428
467
  "repos",
429
468
  {
469
+ tenant_id: text("tenant_id").notNull().default("default"),
430
470
  repo_id: varchar("repo_id", { length: 36 }).primaryKey(),
431
471
  created_at: t.timestamp("created_at").notNull(),
432
472
  updated_at: t.timestamp("updated_at"),
433
473
  // Materialized for querying
434
- slug: text("slug").notNull().unique(),
474
+ slug: text("slug").notNull(),
435
475
  repo_type: text("repo_type", { enum: ["remote", "local"] }).notNull().default("remote"),
436
476
  // Unix group for repo-level git access (agor_rp_<short-id>)
437
477
  // Users who have access to ANY branch in this repo get added to this group.
@@ -442,12 +482,15 @@ var repos = pgTable(
442
482
  data: t.json("data").$type().notNull()
443
483
  },
444
484
  (table) => ({
445
- slugIdx: index("repos_slug_idx").on(table.slug)
485
+ tenantIdx: index("repos_tenant_id_idx").on(table.tenant_id),
486
+ slugIdx: index("repos_slug_idx").on(table.slug),
487
+ slugTenantUnique: uniqueIndex("repos_tenant_slug_unique").on(table.tenant_id, table.slug)
446
488
  })
447
489
  );
448
490
  var branches = pgTable(
449
491
  "branches",
450
492
  {
493
+ tenant_id: text("tenant_id").notNull().default("default"),
451
494
  // Primary identity
452
495
  branch_id: varchar("branch_id", { length: 36 }).primaryKey(),
453
496
  repo_id: varchar("repo_id", { length: 36 }).notNull().references(() => repos.repo_id, { onDelete: "cascade" }),
@@ -522,6 +565,7 @@ var branches = pgTable(
522
565
  data: t.json("data").$type().notNull()
523
566
  },
524
567
  (table) => ({
568
+ tenantIdx: index("branches_tenant_id_idx").on(table.tenant_id),
525
569
  repoIdx: index("branches_repo_idx").on(table.repo_id),
526
570
  nameIdx: index("branches_name_idx").on(table.name),
527
571
  refIdx: index("branches_ref_idx").on(table.ref),
@@ -535,22 +579,26 @@ var branches = pgTable(
535
579
  var branchOwners = pgTable(
536
580
  "branch_owners",
537
581
  {
582
+ tenant_id: text("tenant_id").notNull().default("default"),
538
583
  branch_id: varchar("branch_id", { length: 36 }).notNull().references(() => branches.branch_id, { onDelete: "cascade" }),
539
584
  user_id: varchar("user_id", { length: 36 }).notNull().references(() => users.user_id, { onDelete: "cascade" }),
540
585
  created_at: t.timestamp("created_at").defaultNow()
541
586
  },
542
587
  (table) => ({
588
+ tenantIdx: index("branch_owners_tenant_id_idx").on(table.tenant_id),
543
589
  pk: primaryKey({ columns: [table.branch_id, table.user_id] })
544
590
  })
545
591
  );
546
592
  var boardOwners = pgTable(
547
593
  "board_owners",
548
594
  {
595
+ tenant_id: text("tenant_id").notNull().default("default"),
549
596
  board_id: varchar("board_id", { length: 36 }).notNull().references(() => boards.board_id, { onDelete: "cascade" }),
550
597
  user_id: varchar("user_id", { length: 36 }).notNull().references(() => users.user_id, { onDelete: "cascade" }),
551
598
  created_at: t.timestamp("created_at")
552
599
  },
553
600
  (table) => ({
601
+ tenantIdx: index("board_owners_tenant_id_idx").on(table.tenant_id),
554
602
  pk: primaryKey({ columns: [table.board_id, table.user_id] }),
555
603
  userIdx: index("board_owners_user_idx").on(table.user_id)
556
604
  })
@@ -558,6 +606,7 @@ var boardOwners = pgTable(
558
606
  var schedules = pgTable(
559
607
  "schedules",
560
608
  {
609
+ tenant_id: text("tenant_id").notNull().default("default"),
561
610
  schedule_id: varchar("schedule_id", { length: 36 }).primaryKey(),
562
611
  branch_id: varchar("branch_id", { length: 36 }).notNull().references(() => branches.branch_id, { onDelete: "cascade" }),
563
612
  name: text("name").notNull(),
@@ -581,6 +630,7 @@ var schedules = pgTable(
581
630
  created_by: varchar("created_by", { length: 36 }).notNull().references(() => users.user_id)
582
631
  },
583
632
  (table) => ({
633
+ tenantIdx: index("schedules_tenant_id_idx").on(table.tenant_id),
584
634
  enabledNextRunIdx: index("schedules_enabled_next_run_idx").on(table.enabled, table.next_run_at),
585
635
  branchIdx: index("schedules_branch_idx").on(table.branch_id),
586
636
  createdByIdx: index("schedules_created_by_idx").on(table.created_by)
@@ -589,12 +639,13 @@ var schedules = pgTable(
589
639
  var users = pgTable(
590
640
  "users",
591
641
  {
642
+ tenant_id: text("tenant_id").notNull().default("default"),
592
643
  // Primary identity
593
644
  user_id: varchar("user_id", { length: 36 }).primaryKey(),
594
645
  created_at: t.timestamp("created_at").notNull(),
595
646
  updated_at: t.timestamp("updated_at"),
596
647
  // Materialized for auth lookups
597
- email: text("email").unique().notNull(),
648
+ email: text("email").notNull(),
598
649
  password: text("password").notNull(),
599
650
  // bcrypt hashed
600
651
  // Basic profile (materialized for display)
@@ -610,16 +661,22 @@ var users = pgTable(
610
661
  onboarding_completed: t.bool("onboarding_completed").notNull().default(false),
611
662
  // Force password change flag (admin-settable, auto-cleared on password change)
612
663
  must_change_password: t.bool("must_change_password").notNull().default(false),
664
+ // Auth invalidation marker. Password changes set this timestamp so any
665
+ // previously issued browser access or refresh token is rejected.
666
+ tokens_valid_after: t.timestamp("tokens_valid_after"),
613
667
  // JSON blob for profile/preferences
614
668
  data: t.json("data").$type().notNull()
615
669
  },
616
670
  (table) => ({
617
- emailIdx: index("users_email_idx").on(table.email)
671
+ tenantIdx: index("users_tenant_id_idx").on(table.tenant_id),
672
+ emailIdx: index("users_email_idx").on(table.email),
673
+ emailTenantUnique: uniqueIndex("users_tenant_email_unique").on(table.tenant_id, table.email)
618
674
  })
619
675
  );
620
676
  var groups = pgTable(
621
677
  "groups",
622
678
  {
679
+ tenant_id: text("tenant_id").notNull().default("default"),
623
680
  group_id: varchar("group_id", { length: 36 }).primaryKey(),
624
681
  name: text("name").notNull(),
625
682
  slug: text("slug").notNull(),
@@ -632,13 +689,15 @@ var groups = pgTable(
632
689
  updated_at: t.timestamp("updated_at")
633
690
  },
634
691
  (table) => ({
635
- slugIdx: uniqueIndex("groups_slug_idx").on(table.slug),
692
+ tenantIdx: index("groups_tenant_id_idx").on(table.tenant_id),
693
+ slugIdx: uniqueIndex("groups_tenant_slug_unique").on(table.tenant_id, table.slug),
636
694
  archivedIdx: index("groups_archived_idx").on(table.archived)
637
695
  })
638
696
  );
639
697
  var groupMemberships = pgTable(
640
698
  "group_memberships",
641
699
  {
700
+ tenant_id: text("tenant_id").notNull().default("default"),
642
701
  group_id: varchar("group_id", { length: 36 }).notNull().references(() => groups.group_id, { onDelete: "cascade" }),
643
702
  user_id: varchar("user_id", { length: 36 }).notNull().references(() => users.user_id, { onDelete: "cascade" }),
644
703
  added_by: varchar("added_by", { length: 36 }).references(() => users.user_id, {
@@ -647,6 +706,7 @@ var groupMemberships = pgTable(
647
706
  created_at: t.timestamp("created_at").notNull()
648
707
  },
649
708
  (table) => ({
709
+ tenantIdx: index("group_memberships_tenant_id_idx").on(table.tenant_id),
650
710
  pk: primaryKey({ columns: [table.group_id, table.user_id] }),
651
711
  userIdx: index("group_memberships_user_idx").on(table.user_id)
652
712
  })
@@ -654,6 +714,7 @@ var groupMemberships = pgTable(
654
714
  var branchGroupGrants = pgTable(
655
715
  "branch_group_grants",
656
716
  {
717
+ tenant_id: text("tenant_id").notNull().default("default"),
657
718
  branch_id: varchar("branch_id", { length: 36 }).notNull().references(() => branches.branch_id, { onDelete: "cascade" }),
658
719
  group_id: varchar("group_id", { length: 36 }).notNull().references(() => groups.group_id, { onDelete: "cascade" }),
659
720
  can: text("can", { enum: [...BRANCH_PERMISSION_LEVELS] }).notNull().default("view"),
@@ -665,6 +726,7 @@ var branchGroupGrants = pgTable(
665
726
  updated_at: t.timestamp("updated_at")
666
727
  },
667
728
  (table) => ({
729
+ tenantIdx: index("branch_group_grants_tenant_id_idx").on(table.tenant_id),
668
730
  pk: primaryKey({ columns: [table.branch_id, table.group_id] }),
669
731
  groupIdx: index("branch_group_grants_group_idx").on(table.group_id)
670
732
  })
@@ -672,6 +734,7 @@ var branchGroupGrants = pgTable(
672
734
  var boardGroupGrants = pgTable(
673
735
  "board_group_grants",
674
736
  {
737
+ tenant_id: text("tenant_id").notNull().default("default"),
675
738
  board_id: varchar("board_id", { length: 36 }).notNull().references(() => boards.board_id, { onDelete: "cascade" }),
676
739
  group_id: varchar("group_id", { length: 36 }).notNull().references(() => groups.group_id, { onDelete: "cascade" }),
677
740
  can: text("can", { enum: [...BRANCH_PERMISSION_LEVELS] }).notNull().default("view"),
@@ -683,6 +746,7 @@ var boardGroupGrants = pgTable(
683
746
  updated_at: t.timestamp("updated_at")
684
747
  },
685
748
  (table) => ({
749
+ tenantIdx: index("board_group_grants_tenant_id_idx").on(table.tenant_id),
686
750
  pk: primaryKey({ columns: [table.board_id, table.group_id] }),
687
751
  groupIdx: index("board_group_grants_group_idx").on(table.group_id)
688
752
  })
@@ -690,6 +754,7 @@ var boardGroupGrants = pgTable(
690
754
  var appVariables = pgTable(
691
755
  "app_variables",
692
756
  {
757
+ tenant_id: text("tenant_id").notNull().default("default"),
693
758
  variable_id: varchar("variable_id", { length: 36 }).primaryKey(),
694
759
  namespace: text("namespace").notNull(),
695
760
  key: text("key").notNull(),
@@ -705,13 +770,19 @@ var appVariables = pgTable(
705
770
  updated_at: t.timestamp("updated_at").notNull()
706
771
  },
707
772
  (table) => ({
708
- namespaceKeyIdx: uniqueIndex("app_variables_namespace_key_idx").on(table.namespace, table.key),
773
+ tenantIdx: index("app_variables_tenant_id_idx").on(table.tenant_id),
774
+ namespaceKeyIdx: uniqueIndex("app_variables_tenant_namespace_key_unique").on(
775
+ table.tenant_id,
776
+ table.namespace,
777
+ table.key
778
+ ),
709
779
  namespaceIdx: index("app_variables_namespace_idx").on(table.namespace)
710
780
  })
711
781
  );
712
782
  var userApiKeys = pgTable(
713
783
  "user_api_keys",
714
784
  {
785
+ tenant_id: text("tenant_id").notNull().default("default"),
715
786
  id: varchar("id", { length: 36 }).primaryKey(),
716
787
  user_id: varchar("user_id", { length: 36 }).notNull().references(() => users.user_id, { onDelete: "cascade" }),
717
788
  name: text("name").notNull(),
@@ -723,6 +794,7 @@ var userApiKeys = pgTable(
723
794
  last_used_at: t.timestamp("last_used_at")
724
795
  },
725
796
  (table) => ({
797
+ tenantIdx: index("user_api_keys_tenant_id_idx").on(table.tenant_id),
726
798
  userIdx: index("user_api_keys_user_idx").on(table.user_id),
727
799
  prefixIdx: index("user_api_keys_prefix_idx").on(table.prefix)
728
800
  })
@@ -730,6 +802,7 @@ var userApiKeys = pgTable(
730
802
  var mcpServers = pgTable(
731
803
  "mcp_servers",
732
804
  {
805
+ tenant_id: text("tenant_id").notNull().default("default"),
733
806
  // Primary identity
734
807
  mcp_server_id: varchar("mcp_server_id", { length: 36 }).primaryKey(),
735
808
  created_at: t.timestamp("created_at").notNull(),
@@ -756,6 +829,7 @@ var mcpServers = pgTable(
756
829
  data: t.json("data").$type().notNull()
757
830
  },
758
831
  (table) => ({
832
+ tenantIdx: index("mcp_servers_tenant_id_idx").on(table.tenant_id),
759
833
  nameIdx: index("mcp_servers_name_idx").on(table.name),
760
834
  scopeIdx: index("mcp_servers_scope_idx").on(table.scope),
761
835
  ownerIdx: index("mcp_servers_owner_idx").on(table.owner_user_id),
@@ -765,6 +839,7 @@ var mcpServers = pgTable(
765
839
  var cardTypes = pgTable(
766
840
  "card_types",
767
841
  {
842
+ tenant_id: text("tenant_id").notNull().default("default"),
768
843
  card_type_id: varchar("card_type_id", { length: 36 }).primaryKey(),
769
844
  name: text("name").notNull(),
770
845
  emoji: text("emoji"),
@@ -776,12 +851,14 @@ var cardTypes = pgTable(
776
851
  updated_at: t.timestamp("updated_at").notNull()
777
852
  },
778
853
  (table) => ({
854
+ tenantIdx: index("card_types_tenant_id_idx").on(table.tenant_id),
779
855
  nameIdx: index("card_types_name_idx").on(table.name)
780
856
  })
781
857
  );
782
858
  var cards = pgTable(
783
859
  "cards",
784
860
  {
861
+ tenant_id: text("tenant_id").notNull().default("default"),
785
862
  card_id: varchar("card_id", { length: 36 }).primaryKey(),
786
863
  board_id: varchar("board_id", { length: 36 }).notNull().references(() => boards.board_id, { onDelete: "cascade" }),
787
864
  card_type_id: varchar("card_type_id", { length: 36 }).references(() => cardTypes.card_type_id, {
@@ -802,6 +879,7 @@ var cards = pgTable(
802
879
  archived_at: t.timestamp("archived_at")
803
880
  },
804
881
  (table) => ({
882
+ tenantIdx: index("cards_tenant_id_idx").on(table.tenant_id),
805
883
  boardIdx: index("cards_board_idx").on(table.board_id),
806
884
  cardTypeIdx: index("cards_card_type_idx").on(table.card_type_id),
807
885
  titleIdx: index("cards_title_idx").on(table.title),
@@ -812,6 +890,7 @@ var cards = pgTable(
812
890
  var artifacts = pgTable(
813
891
  "artifacts",
814
892
  {
893
+ tenant_id: text("tenant_id").notNull().default("default"),
815
894
  artifact_id: varchar("artifact_id", { length: 36 }).primaryKey(),
816
895
  branch_id: varchar("branch_id", { length: 36 }).references(() => branches.branch_id, {
817
896
  onDelete: "set null"
@@ -847,6 +926,7 @@ var artifacts = pgTable(
847
926
  archived_at: t.timestamp("archived_at")
848
927
  },
849
928
  (table) => ({
929
+ tenantIdx: index("artifacts_tenant_id_idx").on(table.tenant_id),
850
930
  branchIdx: index("artifacts_branch_idx").on(table.branch_id),
851
931
  sourceSessionIdx: index("artifacts_source_session_idx").on(table.source_session_id),
852
932
  boardIdx: index("artifacts_board_idx").on(table.board_id),
@@ -857,6 +937,7 @@ var artifacts = pgTable(
857
937
  var artifactTrustGrants = pgTable(
858
938
  "artifact_trust_grants",
859
939
  {
940
+ tenant_id: text("tenant_id").notNull().default("default"),
860
941
  grant_id: varchar("grant_id", { length: 36 }).primaryKey(),
861
942
  user_id: varchar("user_id", { length: 36 }).notNull(),
862
943
  scope_type: text("scope_type").notNull(),
@@ -867,6 +948,7 @@ var artifactTrustGrants = pgTable(
867
948
  revoked_at: t.timestamp("revoked_at")
868
949
  },
869
950
  (table) => ({
951
+ tenantIdx: index("artifact_trust_grants_tenant_id_idx").on(table.tenant_id),
870
952
  userIdx: index("artifact_trust_grants_user_idx").on(table.user_id),
871
953
  scopeIdx: index("artifact_trust_grants_scope_idx").on(table.scope_type, table.scope_value)
872
954
  })
@@ -874,6 +956,7 @@ var artifactTrustGrants = pgTable(
874
956
  var boardObjects = pgTable(
875
957
  "board_objects",
876
958
  {
959
+ tenant_id: text("tenant_id").notNull().default("default"),
877
960
  // Primary identity
878
961
  object_id: varchar("object_id", { length: 36 }).primaryKey(),
879
962
  board_id: varchar("board_id", { length: 36 }).notNull().references(() => boards.board_id, { onDelete: "cascade" }),
@@ -889,6 +972,7 @@ var boardObjects = pgTable(
889
972
  data: t.json("data").$type().notNull()
890
973
  },
891
974
  (table) => ({
975
+ tenantIdx: index("board_objects_tenant_id_idx").on(table.tenant_id),
892
976
  boardIdx: index("board_objects_board_idx").on(table.board_id),
893
977
  branchIdx: index("board_objects_branch_idx").on(table.branch_id),
894
978
  cardIdx: index("board_objects_card_idx").on(table.card_id)
@@ -897,12 +981,14 @@ var boardObjects = pgTable(
897
981
  var sessionMcpServers = pgTable(
898
982
  "session_mcp_servers",
899
983
  {
984
+ tenant_id: text("tenant_id").notNull().default("default"),
900
985
  session_id: varchar("session_id", { length: 36 }).notNull().references(() => sessions.session_id, { onDelete: "cascade" }),
901
986
  mcp_server_id: varchar("mcp_server_id", { length: 36 }).notNull().references(() => mcpServers.mcp_server_id, { onDelete: "cascade" }),
902
987
  enabled: t.bool("enabled").notNull().default(true),
903
988
  added_at: t.timestamp("added_at").notNull()
904
989
  },
905
990
  (table) => ({
991
+ tenantIdx: index("session_mcp_servers_tenant_id_idx").on(table.tenant_id),
906
992
  // Composite primary key
907
993
  pk: index("session_mcp_servers_pk").on(table.session_id, table.mcp_server_id),
908
994
  // Indexes for queries
@@ -914,6 +1000,7 @@ var sessionMcpServers = pgTable(
914
1000
  var userMcpOauthTokens = pgTable(
915
1001
  "user_mcp_oauth_tokens",
916
1002
  {
1003
+ tenant_id: text("tenant_id").notNull().default("default"),
917
1004
  // NULL = shared-mode token (one per mcp_server_id)
918
1005
  user_id: varchar("user_id", { length: 36 }).references(() => users.user_id, {
919
1006
  onDelete: "cascade"
@@ -931,6 +1018,7 @@ var userMcpOauthTokens = pgTable(
931
1018
  updated_at: t.timestamp("updated_at")
932
1019
  },
933
1020
  (table) => ({
1021
+ tenantIdx: index("user_mcp_oauth_tokens_tenant_id_idx").on(table.tenant_id),
934
1022
  // Composite lookup indexes. Uniqueness enforced via partial unique indexes
935
1023
  // created in the migration (one for per-user rows, one for the shared row).
936
1024
  pk: index("user_mcp_oauth_tokens_pk").on(table.user_id, table.mcp_server_id),
@@ -941,6 +1029,7 @@ var userMcpOauthTokens = pgTable(
941
1029
  var boardComments = pgTable(
942
1030
  "board_comments",
943
1031
  {
1032
+ tenant_id: text("tenant_id").notNull().default("default"),
944
1033
  // Primary identity
945
1034
  comment_id: varchar("comment_id", { length: 36 }).primaryKey(),
946
1035
  created_at: t.timestamp("created_at").notNull(),
@@ -982,6 +1071,7 @@ var boardComments = pgTable(
982
1071
  data: t.json("data").$type().notNull()
983
1072
  },
984
1073
  (table) => ({
1074
+ tenantIdx: index("board_comments_tenant_id_idx").on(table.tenant_id),
985
1075
  boardIdx: index("board_comments_board_idx").on(table.board_id),
986
1076
  sessionIdx: index("board_comments_session_idx").on(table.session_id),
987
1077
  taskIdx: index("board_comments_task_idx").on(table.task_id),
@@ -996,6 +1086,7 @@ var boardComments = pgTable(
996
1086
  var gatewayChannels = pgTable(
997
1087
  "gateway_channels",
998
1088
  {
1089
+ tenant_id: text("tenant_id").notNull().default("default"),
999
1090
  // Primary identity
1000
1091
  id: varchar("id", { length: 36 }).primaryKey(),
1001
1092
  created_at: t.timestamp("created_at").notNull(),
@@ -1009,7 +1100,7 @@ var gatewayChannels = pgTable(
1009
1100
  }).notNull(),
1010
1101
  target_branch_id: varchar("target_branch_id", { length: 36 }).notNull().references(() => branches.branch_id, { onDelete: "cascade" }),
1011
1102
  agor_user_id: varchar("agor_user_id", { length: 36 }).notNull(),
1012
- channel_key: text("channel_key").notNull().unique(),
1103
+ channel_key: text("channel_key").notNull(),
1013
1104
  enabled: t.bool("enabled").notNull().default(true),
1014
1105
  last_message_at: t.timestamp("last_message_at"),
1015
1106
  // JSON blob for platform credentials (encrypted at rest)
@@ -1018,13 +1109,19 @@ var gatewayChannels = pgTable(
1018
1109
  agentic_config: t.json("agentic_config")
1019
1110
  },
1020
1111
  (table) => ({
1112
+ tenantIdx: index("gateway_channels_tenant_id_idx").on(table.tenant_id),
1021
1113
  channelKeyIdx: index("idx_gateway_channel_key").on(table.channel_key),
1114
+ channelKeyTenantUnique: uniqueIndex("gateway_channels_tenant_channel_key_unique").on(
1115
+ table.tenant_id,
1116
+ table.channel_key
1117
+ ),
1022
1118
  enabledTypeIdx: index("idx_gateway_enabled_type").on(table.enabled, table.channel_type)
1023
1119
  })
1024
1120
  );
1025
1121
  var threadSessionMap = pgTable(
1026
1122
  "thread_session_map",
1027
1123
  {
1124
+ tenant_id: text("tenant_id").notNull().default("default"),
1028
1125
  // Primary identity
1029
1126
  id: varchar("id", { length: 36 }).primaryKey(),
1030
1127
  created_at: t.timestamp("created_at").notNull(),
@@ -1042,7 +1139,9 @@ var threadSessionMap = pgTable(
1042
1139
  metadata: t.json("metadata")
1043
1140
  },
1044
1141
  (table) => ({
1045
- uniqueChannelThread: uniqueIndex("uniq_thread_map_channel_thread").on(
1142
+ tenantIdx: index("thread_session_map_tenant_id_idx").on(table.tenant_id),
1143
+ uniqueChannelThread: uniqueIndex("uniq_thread_map_tenant_channel_thread").on(
1144
+ table.tenant_id,
1046
1145
  table.channel_id,
1047
1146
  table.thread_id
1048
1147
  ),
@@ -1051,14 +1150,82 @@ var threadSessionMap = pgTable(
1051
1150
  channelStatusIdx: index("idx_thread_map_channel_status").on(table.channel_id, table.status)
1052
1151
  })
1053
1152
  );
1153
+ var gatewayOutboundMessages = pgTable(
1154
+ "gateway_outbound_messages",
1155
+ {
1156
+ tenant_id: text("tenant_id").notNull().default("default"),
1157
+ id: varchar("id", { length: 36 }).primaryKey(),
1158
+ created_at: t.timestamp("created_at").notNull(),
1159
+ updated_at: t.timestamp("updated_at").notNull(),
1160
+ gateway_channel_id: varchar("gateway_channel_id", { length: 36 }).notNull().references(() => gatewayChannels.id, { onDelete: "cascade" }),
1161
+ channel_type: text("channel_type", {
1162
+ enum: ["slack", "discord", "whatsapp", "telegram", "github", "teams"]
1163
+ }).notNull(),
1164
+ platform_channel_id: text("platform_channel_id").notNull(),
1165
+ platform_message_id: text("platform_message_id").notNull(),
1166
+ platform_thread_id: text("platform_thread_id").notNull(),
1167
+ platform_permalink: text("platform_permalink"),
1168
+ target_branch_id: varchar("target_branch_id", { length: 36 }).notNull().references(() => branches.branch_id),
1169
+ emitted_by_user_id: varchar("emitted_by_user_id", { length: 36 }).notNull().references(() => users.user_id),
1170
+ emitted_by_session_id: varchar("emitted_by_session_id", { length: 36 }).references(
1171
+ () => sessions.session_id,
1172
+ {
1173
+ onDelete: "set null"
1174
+ }
1175
+ ),
1176
+ emitted_by_task_id: varchar("emitted_by_task_id", { length: 36 }).references(
1177
+ () => tasks.task_id,
1178
+ {
1179
+ onDelete: "set null"
1180
+ }
1181
+ ),
1182
+ emitted_by_schedule_id: varchar("emitted_by_schedule_id", { length: 36 }).references(
1183
+ () => schedules.schedule_id,
1184
+ {
1185
+ onDelete: "set null"
1186
+ }
1187
+ ),
1188
+ message_text: text("message_text").notNull(),
1189
+ message_preview: text("message_preview").notNull(),
1190
+ metadata: t.json("metadata"),
1191
+ consumed_by_session_id: varchar("consumed_by_session_id", { length: 36 }).references(
1192
+ () => sessions.session_id,
1193
+ {
1194
+ onDelete: "set null"
1195
+ }
1196
+ ),
1197
+ consumed_at: t.timestamp("consumed_at")
1198
+ },
1199
+ (table) => ({
1200
+ tenantIdx: index("gateway_outbound_messages_tenant_id_idx").on(table.tenant_id),
1201
+ uniqueChannelThread: uniqueIndex("uniq_gateway_outbound_tenant_channel_thread").on(
1202
+ table.tenant_id,
1203
+ table.gateway_channel_id,
1204
+ table.platform_thread_id
1205
+ ),
1206
+ emittedSessionIdx: index("idx_gateway_outbound_emitted_session").on(
1207
+ table.emitted_by_session_id
1208
+ ),
1209
+ emittedScheduleIdx: index("idx_gateway_outbound_emitted_schedule").on(
1210
+ table.emitted_by_schedule_id
1211
+ ),
1212
+ targetBranchCreatedIdx: index("idx_gateway_outbound_branch_created").on(
1213
+ table.target_branch_id,
1214
+ table.created_at
1215
+ ),
1216
+ consumedIdx: index("idx_gateway_outbound_consumed").on(table.consumed_at)
1217
+ })
1218
+ );
1054
1219
  var sessionEnvSelections = pgTable(
1055
1220
  "session_env_selections",
1056
1221
  {
1222
+ tenant_id: text("tenant_id").notNull().default("default"),
1057
1223
  session_id: varchar("session_id", { length: 36 }).notNull().references(() => sessions.session_id, { onDelete: "cascade" }),
1058
1224
  env_var_name: text("env_var_name").notNull(),
1059
1225
  created_at: t.timestamp("created_at").notNull()
1060
1226
  },
1061
1227
  (table) => ({
1228
+ tenantIdx: index("session_env_selections_tenant_id_idx").on(table.tenant_id),
1062
1229
  pk: primaryKey({ columns: [table.session_id, table.env_var_name] }),
1063
1230
  sessionIdx: index("session_env_selections_session_idx").on(table.session_id)
1064
1231
  })
@@ -1066,6 +1233,7 @@ var sessionEnvSelections = pgTable(
1066
1233
  var kbNamespaces = pgTable(
1067
1234
  "kb_namespaces",
1068
1235
  {
1236
+ tenant_id: text("tenant_id").notNull().default("default"),
1069
1237
  namespace_id: varchar("namespace_id", { length: 36 }).primaryKey(),
1070
1238
  slug: text("slug").notNull(),
1071
1239
  display_name: text("display_name").notNull(),
@@ -1092,7 +1260,8 @@ var kbNamespaces = pgTable(
1092
1260
  archived_at: t.timestamp("archived_at")
1093
1261
  },
1094
1262
  (table) => ({
1095
- slugIdx: uniqueIndex("kb_namespaces_slug_idx").on(table.slug).where(sql2`${table.archived} = false`),
1263
+ tenantIdx: index("kb_namespaces_tenant_id_idx").on(table.tenant_id),
1264
+ slugIdx: uniqueIndex("kb_namespaces_tenant_slug_unique").on(table.tenant_id, table.slug).where(sql2`${table.archived} = false`),
1096
1265
  kindIdx: index("kb_namespaces_kind_idx").on(table.kind),
1097
1266
  ownerIdx: index("kb_namespaces_owner_idx").on(table.owner_user_id),
1098
1267
  repoIdx: index("kb_namespaces_repo_idx").on(table.repo_id),
@@ -1103,6 +1272,7 @@ var kbNamespaces = pgTable(
1103
1272
  var kbNamespaceAcl = pgTable(
1104
1273
  "kb_namespace_acl",
1105
1274
  {
1275
+ tenant_id: text("tenant_id").notNull().default("default"),
1106
1276
  namespace_acl_id: varchar("namespace_acl_id", { length: 36 }).primaryKey(),
1107
1277
  namespace_id: varchar("namespace_id", { length: 36 }).notNull().references(() => kbNamespaces.namespace_id, { onDelete: "cascade" }),
1108
1278
  subject_type: text("subject_type", { enum: ["user", "group"] }).notNull(),
@@ -1115,9 +1285,11 @@ var kbNamespaceAcl = pgTable(
1115
1285
  updated_at: t.timestamp("updated_at")
1116
1286
  },
1117
1287
  (table) => ({
1288
+ tenantIdx: index("kb_namespace_acl_tenant_id_idx").on(table.tenant_id),
1118
1289
  namespaceIdx: index("kb_namespace_acl_namespace_idx").on(table.namespace_id),
1119
1290
  subjectIdx: index("kb_namespace_acl_subject_idx").on(table.subject_type, table.subject_id),
1120
- namespaceSubjectIdx: uniqueIndex("kb_namespace_acl_namespace_subject_idx").on(
1291
+ namespaceSubjectIdx: uniqueIndex("kb_namespace_acl_tenant_namespace_subject_unique").on(
1292
+ table.tenant_id,
1121
1293
  table.namespace_id,
1122
1294
  table.subject_type,
1123
1295
  table.subject_id
@@ -1127,6 +1299,7 @@ var kbNamespaceAcl = pgTable(
1127
1299
  var kbDocuments = pgTable(
1128
1300
  "kb_documents",
1129
1301
  {
1302
+ tenant_id: text("tenant_id").notNull().default("default"),
1130
1303
  document_id: varchar("document_id", { length: 36 }).primaryKey(),
1131
1304
  namespace_id: varchar("namespace_id", { length: 36 }).notNull().references(() => kbNamespaces.namespace_id, { onDelete: "cascade" }),
1132
1305
  path: text("path").notNull(),
@@ -1154,8 +1327,9 @@ var kbDocuments = pgTable(
1154
1327
  archived_at: t.timestamp("archived_at")
1155
1328
  },
1156
1329
  (table) => ({
1157
- namespacePathIdx: uniqueIndex("kb_documents_namespace_path_idx").on(table.namespace_id, table.path).where(sql2`${table.archived} = false`),
1158
- uriIdx: uniqueIndex("kb_documents_uri_idx").on(table.uri).where(sql2`${table.archived} = false`),
1330
+ tenantIdx: index("kb_documents_tenant_id_idx").on(table.tenant_id),
1331
+ namespacePathIdx: uniqueIndex("kb_documents_tenant_namespace_path_unique").on(table.tenant_id, table.namespace_id, table.path).where(sql2`${table.archived} = false`),
1332
+ uriIdx: uniqueIndex("kb_documents_tenant_uri_unique").on(table.tenant_id, table.uri).where(sql2`${table.archived} = false`),
1159
1333
  namespaceIdx: index("kb_documents_namespace_idx").on(table.namespace_id),
1160
1334
  kindIdx: index("kb_documents_kind_idx").on(table.kind),
1161
1335
  visibilityIdx: index("kb_documents_visibility_idx").on(table.visibility),
@@ -1168,6 +1342,7 @@ var kbDocuments = pgTable(
1168
1342
  var kbDocumentVersions = pgTable(
1169
1343
  "kb_document_versions",
1170
1344
  {
1345
+ tenant_id: text("tenant_id").notNull().default("default"),
1171
1346
  version_id: varchar("version_id", { length: 36 }).primaryKey(),
1172
1347
  document_id: varchar("document_id", { length: 36 }).notNull().references(() => kbDocuments.document_id, { onDelete: "cascade" }),
1173
1348
  version_number: integer("version_number").notNull(),
@@ -1187,7 +1362,9 @@ var kbDocumentVersions = pgTable(
1187
1362
  created_at: t.timestamp("created_at").notNull()
1188
1363
  },
1189
1364
  (table) => ({
1190
- documentVersionIdx: uniqueIndex("kb_document_versions_document_version_idx").on(
1365
+ tenantIdx: index("kb_document_versions_tenant_id_idx").on(table.tenant_id),
1366
+ documentVersionIdx: uniqueIndex("kb_document_versions_tenant_document_version_unique").on(
1367
+ table.tenant_id,
1191
1368
  table.document_id,
1192
1369
  table.version_number
1193
1370
  ),
@@ -1199,6 +1376,7 @@ var kbDocumentVersions = pgTable(
1199
1376
  var kbDocumentUnits = pgTable(
1200
1377
  "kb_document_units",
1201
1378
  {
1379
+ tenant_id: text("tenant_id").notNull().default("default"),
1202
1380
  unit_id: varchar("unit_id", { length: 36 }).primaryKey(),
1203
1381
  document_id: varchar("document_id", { length: 36 }).notNull().references(() => kbDocuments.document_id, { onDelete: "cascade" }),
1204
1382
  version_id: varchar("version_id", { length: 36 }).notNull().references(() => kbDocumentVersions.version_id, { onDelete: "cascade" }),
@@ -1223,6 +1401,7 @@ var kbDocumentUnits = pgTable(
1223
1401
  updated_at: t.timestamp("updated_at")
1224
1402
  },
1225
1403
  (table) => ({
1404
+ tenantIdx: index("kb_document_units_tenant_id_idx").on(table.tenant_id),
1226
1405
  documentIdx: index("kb_document_units_document_idx").on(table.document_id),
1227
1406
  versionIdx: index("kb_document_units_version_idx").on(table.version_id),
1228
1407
  versionOrdinalIdx: index("kb_document_units_version_ordinal_idx").on(
@@ -1236,6 +1415,7 @@ var kbDocumentUnits = pgTable(
1236
1415
  var kbEmbeddingSpaces = pgTable(
1237
1416
  "kb_embedding_spaces",
1238
1417
  {
1418
+ tenant_id: text("tenant_id").notNull().default("default"),
1239
1419
  embedding_space_id: varchar("embedding_space_id", { length: 36 }).primaryKey(),
1240
1420
  provider: text("provider").notNull(),
1241
1421
  model: text("model").notNull(),
@@ -1248,7 +1428,9 @@ var kbEmbeddingSpaces = pgTable(
1248
1428
  updated_at: t.timestamp("updated_at")
1249
1429
  },
1250
1430
  (table) => ({
1251
- providerModelIdx: uniqueIndex("kb_embedding_spaces_provider_model_idx").on(
1431
+ tenantIdx: index("kb_embedding_spaces_tenant_id_idx").on(table.tenant_id),
1432
+ providerModelIdx: uniqueIndex("kb_embedding_spaces_tenant_provider_model_unique").on(
1433
+ table.tenant_id,
1252
1434
  table.provider,
1253
1435
  table.model,
1254
1436
  table.dimensions,
@@ -1261,6 +1443,7 @@ var kbEmbeddingSpaces = pgTable(
1261
1443
  var kbGraphNodes = pgTable(
1262
1444
  "kb_graph_nodes",
1263
1445
  {
1446
+ tenant_id: text("tenant_id").notNull().default("default"),
1264
1447
  node_id: varchar("node_id", { length: 36 }).primaryKey(),
1265
1448
  node_type: text("node_type", {
1266
1449
  enum: [
@@ -1326,7 +1509,8 @@ var kbGraphNodes = pgTable(
1326
1509
  archived_at: t.timestamp("archived_at")
1327
1510
  },
1328
1511
  (table) => ({
1329
- uriIdx: uniqueIndex("kb_graph_nodes_uri_idx").on(table.uri).where(sql2`${table.archived} = false`),
1512
+ tenantIdx: index("kb_graph_nodes_tenant_id_idx").on(table.tenant_id),
1513
+ uriIdx: uniqueIndex("kb_graph_nodes_tenant_uri_unique").on(table.tenant_id, table.uri).where(sql2`${table.archived} = false`),
1330
1514
  typeIdx: index("kb_graph_nodes_type_idx").on(table.node_type),
1331
1515
  namespaceIdx: index("kb_graph_nodes_namespace_idx").on(table.namespace_id),
1332
1516
  documentIdx: index("kb_graph_nodes_document_idx").on(table.document_id),
@@ -1346,6 +1530,7 @@ var kbGraphNodes = pgTable(
1346
1530
  var kbGraphEdges = pgTable(
1347
1531
  "kb_graph_edges",
1348
1532
  {
1533
+ tenant_id: text("tenant_id").notNull().default("default"),
1349
1534
  edge_id: varchar("edge_id", { length: 36 }).primaryKey(),
1350
1535
  source_node_id: varchar("source_node_id", { length: 36 }).notNull().references(() => kbGraphNodes.node_id, { onDelete: "cascade" }),
1351
1536
  target_node_id: varchar("target_node_id", { length: 36 }).notNull().references(() => kbGraphNodes.node_id, { onDelete: "cascade" }),
@@ -1374,6 +1559,7 @@ var kbGraphEdges = pgTable(
1374
1559
  archived_at: t.timestamp("archived_at")
1375
1560
  },
1376
1561
  (table) => ({
1562
+ tenantIdx: index("kb_graph_edges_tenant_id_idx").on(table.tenant_id),
1377
1563
  sourceIdx: index("kb_graph_edges_source_idx").on(table.source_node_id),
1378
1564
  targetIdx: index("kb_graph_edges_target_idx").on(table.target_node_id),
1379
1565
  typeIdx: index("kb_graph_edges_type_idx").on(table.edge_type),
@@ -1385,7 +1571,7 @@ var kbGraphEdges = pgTable(
1385
1571
  table.target_node_id,
1386
1572
  table.edge_type
1387
1573
  ),
1388
- sourceTargetTypeIdx: uniqueIndex("kb_graph_edges_source_target_type_idx").on(table.source_node_id, table.target_node_id, table.edge_type).where(sql2`${table.archived} = false`),
1574
+ sourceTargetTypeIdx: 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(sql2`${table.archived} = false`),
1389
1575
  archivedIdx: index("kb_graph_edges_archived_idx").on(table.archived)
1390
1576
  })
1391
1577
  );
@@ -1447,6 +1633,7 @@ __export(schema_sqlite_exports, {
1447
1633
  cardTypes: () => cardTypes2,
1448
1634
  cards: () => cards2,
1449
1635
  gatewayChannels: () => gatewayChannels2,
1636
+ gatewayOutboundMessages: () => gatewayOutboundMessages2,
1450
1637
  groupMemberships: () => groupMemberships2,
1451
1638
  groups: () => groups2,
1452
1639
  kbDocumentUnits: () => kbDocumentUnits2,
@@ -1553,6 +1740,7 @@ var sessions2 = sqliteTable(
1553
1740
  },
1554
1741
  (table) => ({
1555
1742
  statusIdx: index2("sessions_status_idx").on(table.status),
1743
+ statusReadyIdx: index2("sessions_status_ready_idx").on(table.status, table.ready_for_prompt),
1556
1744
  agenticToolIdx: index2("sessions_agentic_tool_idx").on(table.agentic_tool),
1557
1745
  boardIdx: index2("sessions_board_idx").on(table.board_id),
1558
1746
  branchIdx: index2("sessions_branch_idx").on(table.branch_id),
@@ -1592,6 +1780,9 @@ var sessionRelationships2 = sqliteTable(
1592
1780
  sourceIdx: index2("session_relationships_source_idx").on(table.source_session_id),
1593
1781
  targetIdx: index2("session_relationships_target_idx").on(table.target_session_id),
1594
1782
  callbackIdx: index2("session_relationships_callback_idx").on(table.callback_session_id),
1783
+ // Note: no tenant_source/tenant_target composite indexes here — SQLite schema
1784
+ // has no tenant column on this table (RLS is Postgres-only). The standalone
1785
+ // source/target indexes above are sufficient for SQLite.
1595
1786
  sourceTargetTypeUnique: uniqueIndex2("session_relationships_source_target_type_unique").on(
1596
1787
  table.source_session_id,
1597
1788
  table.target_session_id,
@@ -1711,7 +1902,12 @@ var messages2 = sqliteTable(
1711
1902
  // Indexes for efficient lookups
1712
1903
  sessionIdx: index2("messages_session_id_idx").on(table.session_id),
1713
1904
  taskIdx: index2("messages_task_id_idx").on(table.task_id),
1714
- sessionIndexIdx: index2("messages_session_index_idx").on(table.session_id, table.index)
1905
+ sessionIndexIdx: index2("messages_session_index_idx").on(table.session_id, table.index),
1906
+ timestampIdx: index2("messages_timestamp_idx").on(table.timestamp),
1907
+ sessionTimestampIdx: index2("messages_session_timestamp_idx").on(
1908
+ table.session_id,
1909
+ table.timestamp
1910
+ )
1715
1911
  })
1716
1912
  );
1717
1913
  var boards2 = sqliteTable(
@@ -1937,6 +2133,9 @@ var users2 = sqliteTable(
1937
2133
  onboarding_completed: t2.bool("onboarding_completed").notNull().default(false),
1938
2134
  // Force password change flag (admin-settable, auto-cleared on password change)
1939
2135
  must_change_password: t2.bool("must_change_password").notNull().default(false),
2136
+ // Auth invalidation marker. Password changes set this timestamp so any
2137
+ // previously issued browser access or refresh token is rejected.
2138
+ tokens_valid_after: t2.timestamp("tokens_valid_after"),
1940
2139
  // JSON blob for profile/preferences
1941
2140
  data: t2.json("data").$type().notNull()
1942
2141
  },
@@ -2380,6 +2579,66 @@ var threadSessionMap2 = sqliteTable(
2380
2579
  channelStatusIdx: index2("idx_thread_map_channel_status").on(table.channel_id, table.status)
2381
2580
  })
2382
2581
  );
2582
+ var gatewayOutboundMessages2 = sqliteTable(
2583
+ "gateway_outbound_messages",
2584
+ {
2585
+ id: text2("id", { length: 36 }).primaryKey(),
2586
+ created_at: t2.timestamp("created_at").notNull(),
2587
+ updated_at: t2.timestamp("updated_at").notNull(),
2588
+ gateway_channel_id: text2("gateway_channel_id", { length: 36 }).notNull().references(() => gatewayChannels2.id, { onDelete: "cascade" }),
2589
+ channel_type: text2("channel_type", {
2590
+ enum: ["slack", "discord", "whatsapp", "telegram", "github", "teams"]
2591
+ }).notNull(),
2592
+ platform_channel_id: text2("platform_channel_id").notNull(),
2593
+ platform_message_id: text2("platform_message_id").notNull(),
2594
+ platform_thread_id: text2("platform_thread_id").notNull(),
2595
+ platform_permalink: text2("platform_permalink"),
2596
+ target_branch_id: text2("target_branch_id", { length: 36 }).notNull().references(() => branches2.branch_id),
2597
+ emitted_by_user_id: text2("emitted_by_user_id", { length: 36 }).notNull().references(() => users2.user_id),
2598
+ emitted_by_session_id: text2("emitted_by_session_id", { length: 36 }).references(
2599
+ () => sessions2.session_id,
2600
+ {
2601
+ onDelete: "set null"
2602
+ }
2603
+ ),
2604
+ emitted_by_task_id: text2("emitted_by_task_id", { length: 36 }).references(() => tasks2.task_id, {
2605
+ onDelete: "set null"
2606
+ }),
2607
+ emitted_by_schedule_id: text2("emitted_by_schedule_id", { length: 36 }).references(
2608
+ () => schedules2.schedule_id,
2609
+ {
2610
+ onDelete: "set null"
2611
+ }
2612
+ ),
2613
+ message_text: text2("message_text").notNull(),
2614
+ message_preview: text2("message_preview").notNull(),
2615
+ metadata: t2.json("metadata"),
2616
+ consumed_by_session_id: text2("consumed_by_session_id", { length: 36 }).references(
2617
+ () => sessions2.session_id,
2618
+ {
2619
+ onDelete: "set null"
2620
+ }
2621
+ ),
2622
+ consumed_at: t2.timestamp("consumed_at")
2623
+ },
2624
+ (table) => ({
2625
+ uniqueChannelThread: uniqueIndex2("uniq_gateway_outbound_channel_thread").on(
2626
+ table.gateway_channel_id,
2627
+ table.platform_thread_id
2628
+ ),
2629
+ emittedSessionIdx: index2("idx_gateway_outbound_emitted_session").on(
2630
+ table.emitted_by_session_id
2631
+ ),
2632
+ emittedScheduleIdx: index2("idx_gateway_outbound_emitted_schedule").on(
2633
+ table.emitted_by_schedule_id
2634
+ ),
2635
+ targetBranchCreatedIdx: index2("idx_gateway_outbound_branch_created").on(
2636
+ table.target_branch_id,
2637
+ table.created_at
2638
+ ),
2639
+ consumedIdx: index2("idx_gateway_outbound_consumed").on(table.consumed_at)
2640
+ })
2641
+ );
2383
2642
  var sessionEnvSelections2 = sqliteTable(
2384
2643
  "session_env_selections",
2385
2644
  {
@@ -2762,7 +3021,7 @@ import { readFileSync, statSync } from "fs";
2762
3021
  import fs from "fs/promises";
2763
3022
  import os from "os";
2764
3023
  import path from "path";
2765
- import yaml from "js-yaml";
3024
+ import * as yaml from "js-yaml";
2766
3025
 
2767
3026
  // src/config/analytics-defaults.ts
2768
3027
  function getDefaultAnalyticsConfig() {
@@ -2863,6 +3122,64 @@ function resolveExecutorHeartbeatConfig(execution) {
2863
3122
  };
2864
3123
  }
2865
3124
 
3125
+ // src/config/multitenancy.ts
3126
+ var DEFAULT_STATIC_TENANT_ID = "default";
3127
+ var RESERVED_AUTH_CLAIMS = /* @__PURE__ */ new Set(["aud", "exp", "iat", "iss", "jti", "nbf", "sub", "type"]);
3128
+ function detectPostgresUrl(url) {
3129
+ if (!url) return false;
3130
+ const lower = url.toLowerCase();
3131
+ return lower.startsWith("postgresql://") || lower.startsWith("postgres://") || lower.startsWith("pg://");
3132
+ }
3133
+ function resolveMultiTenancyDatabaseDialect(config = {}) {
3134
+ if (process.env.AGOR_DB_DIALECT === "postgresql" || process.env.AGOR_DB_DIALECT === "sqlite") {
3135
+ return process.env.AGOR_DB_DIALECT;
3136
+ }
3137
+ if (detectPostgresUrl(process.env.DATABASE_URL)) return "postgresql";
3138
+ if (config.database?.dialect === "postgresql" || config.database?.dialect === "sqlite") {
3139
+ return config.database.dialect;
3140
+ }
3141
+ if (detectPostgresUrl(config.database?.postgresql?.url) || config.database?.postgresql?.host) {
3142
+ return "postgresql";
3143
+ }
3144
+ return "sqlite";
3145
+ }
3146
+ function resolveMultiTenancyConfig(config) {
3147
+ const raw = config.multi_tenancy ?? {};
3148
+ const mode = raw.mode ?? "static";
3149
+ return {
3150
+ mode,
3151
+ static_tenant_id: raw.static_tenant_id?.trim() || DEFAULT_STATIC_TENANT_ID,
3152
+ ...raw.auth_claim ? { auth_claim: raw.auth_claim } : {},
3153
+ ...raw.trusted_header ? { trusted_header: raw.trusted_header } : {}
3154
+ };
3155
+ }
3156
+ function assertValidMultiTenancyConfig(config) {
3157
+ const resolved = resolveMultiTenancyConfig(config);
3158
+ if (resolved.mode !== "static" && resolved.mode !== "required_from_auth") {
3159
+ throw new Error("Config error: multi_tenancy.mode must be one of: static, required_from_auth");
3160
+ }
3161
+ if (!resolved.static_tenant_id) {
3162
+ throw new Error("Config error: multi_tenancy.static_tenant_id must not be empty");
3163
+ }
3164
+ if (resolved.auth_claim && RESERVED_AUTH_CLAIMS.has(resolved.auth_claim)) {
3165
+ throw new Error(
3166
+ `Config error: multi_tenancy.auth_claim cannot be reserved JWT claim '${resolved.auth_claim}'`
3167
+ );
3168
+ }
3169
+ if (resolved.mode === "required_from_auth") {
3170
+ if (resolveMultiTenancyDatabaseDialect(config) !== "postgresql") {
3171
+ throw new Error(
3172
+ "Config error: multi_tenancy.required_from_auth requires database.dialect: postgresql"
3173
+ );
3174
+ }
3175
+ if (!resolved.auth_claim && !resolved.trusted_header) {
3176
+ throw new Error(
3177
+ "Config error: multi_tenancy.required_from_auth requires multi_tenancy.auth_claim or multi_tenancy.trusted_header"
3178
+ );
3179
+ }
3180
+ }
3181
+ }
3182
+
2866
3183
  // src/config/config-manager.ts
2867
3184
  var NO_FILE = -1;
2868
3185
  var NO_FILE_KEY = { mtimeMs: NO_FILE, size: 0 };
@@ -2895,6 +3212,9 @@ function writeCachedConfig(configPath, config, key) {
2895
3212
  cachedEntry = { path: configPath, config: structuredClone(config), key };
2896
3213
  }
2897
3214
  function parseAndValidateConfig(content) {
3215
+ if (content.trim() === "") {
3216
+ return {};
3217
+ }
2898
3218
  const parsed = yaml.load(content);
2899
3219
  const finalConfig = parsed || {};
2900
3220
  validateConfig(finalConfig);
@@ -2924,6 +3244,7 @@ To update: agor config set execution.unix_user_mode insulated`
2924
3244
  `Config error: execution.managed_envs_execution_mode must be one of: hybrid, webhook-only`
2925
3245
  );
2926
3246
  }
3247
+ assertValidMultiTenancyConfig(config);
2927
3248
  validateOptionalHttpUrl(
2928
3249
  config.external_launch,
2929
3250
  "login_redirect_url",
@@ -2984,7 +3305,12 @@ function getDefaultConfig() {
2984
3305
  // Default: sync passwords to Unix
2985
3306
  executor_heartbeat: resolveExecutorHeartbeatConfig()
2986
3307
  },
2987
- analytics: getDefaultAnalyticsConfig()
3308
+ analytics: getDefaultAnalyticsConfig(),
3309
+ telemetry: {},
3310
+ multi_tenancy: {
3311
+ mode: "static",
3312
+ static_tenant_id: "default"
3313
+ }
2988
3314
  };
2989
3315
  }
2990
3316
  function loadConfigSync() {
@@ -3098,6 +3424,7 @@ var userMcpOauthTokens3 = schema.userMcpOauthTokens;
3098
3424
  var boardComments3 = schema.boardComments;
3099
3425
  var gatewayChannels3 = schema.gatewayChannels;
3100
3426
  var threadSessionMap3 = schema.threadSessionMap;
3427
+ var gatewayOutboundMessages3 = schema.gatewayOutboundMessages;
3101
3428
  var userApiKeys3 = schema.userApiKeys;
3102
3429
  var serializedSessions3 = schema.serializedSessions;
3103
3430
  var kbNamespaces3 = schema.kbNamespaces;