agor-live 0.22.0 → 0.23.2

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