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
@@ -71,12 +71,13 @@ import {
71
71
  asc,
72
72
  desc,
73
73
  eq,
74
- inArray,
74
+ gte,
75
+ lte,
75
76
  messages as messagesTable,
76
77
  or,
77
- SessionRepository as SessionRepository3,
78
78
  select,
79
- sql
79
+ sql,
80
+ visibleSessionReferenceAccessExists
80
81
  } from "@agor/core/db";
81
82
 
82
83
  // ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/external.js
@@ -14629,6 +14630,11 @@ function mcpOptionalString(fieldName, description) {
14629
14630
  error: `${fieldName} must be a string when provided.`
14630
14631
  }).optional().describe(description);
14631
14632
  }
14633
+ function mcpOptionalNonEmptyString(fieldName, description) {
14634
+ return external_exports.string({
14635
+ error: `${fieldName} must be a string when provided.`
14636
+ }).min(1, `${fieldName} cannot be empty when provided.`).optional().describe(description);
14637
+ }
14632
14638
  function mcpOptionalNonBlankString(fieldName, description) {
14633
14639
  return external_exports.string({
14634
14640
  error: `${fieldName} must be a string when provided.`
@@ -14680,7 +14686,11 @@ import { ListToolsRequestSchema } from "@modelcontextprotocol/sdk/types.js";
14680
14686
 
14681
14687
  // src/mcp/tokens.ts
14682
14688
  import { MCP_TOKEN } from "@agor/core/config";
14683
- import { generateId, SessionRepository, shortId as shortId2 } from "@agor/core/db";
14689
+ import {
14690
+ generateId,
14691
+ SessionRepository,
14692
+ shortId as shortId2
14693
+ } from "@agor/core/db";
14684
14694
  import {
14685
14695
  MCP_TOKEN_AUDIENCE,
14686
14696
  MCP_TOKEN_ISSUER
@@ -14701,6 +14711,7 @@ var DOMAIN_DESCRIPTIONS = {
14701
14711
  users: "User accounts, profiles, preferences, and administration",
14702
14712
  analytics: "Usage and cost tracking leaderboard",
14703
14713
  "mcp-servers": "External MCP server configuration and OAuth management",
14714
+ gateway: "Gateway channels for Slack, GitHub, Teams, and other message integrations",
14704
14715
  proxies: "Configured HTTP proxies for third-party APIs (Shortcut, Linear, Jira, etc.)",
14705
14716
  widgets: "In-conversation interactive widgets \u2014 agents render small forms/buttons inline in the transcript to capture user input that never enters the LLM context",
14706
14717
  knowledge: "DB-backed markdown knowledge documents, version history, search, and graph links",
@@ -14758,7 +14769,7 @@ var AgorRuntimeSchema = external_exports.object({
14758
14769
 
14759
14770
  // src/mcp/tools/branches.ts
14760
14771
  import { existsSync } from "fs";
14761
- import { isBranchRbacEnabled } from "@agor/core/config";
14772
+ import { isBranchRbacEnabled, loadConfig } from "@agor/core/config";
14762
14773
  import { BranchRepository as BranchRepository2, shortId as shortId3 } from "@agor/core/db";
14763
14774
  import { BRANCH_PERMISSION_LEVELS as BRANCH_PERMISSION_LEVELS2, getAssistantConfig, isAssistant } from "@agor/core/types";
14764
14775
  import { computeZoneRelativePosition } from "@agor/core/utils/board-placement";
@@ -14767,12 +14778,211 @@ import { normalizeOptionalHttpUrl } from "@agor/core/utils/url";
14767
14778
  // src/mcp/tools/cards.ts
14768
14779
  import { BoardObjectRepository } from "@agor/core/db";
14769
14780
 
14781
+ // src/mcp/tools/gateway-channels.ts
14782
+ import {
14783
+ BranchRepository as BranchRepository3,
14784
+ GatewayChannelRepository,
14785
+ SessionRepository as SessionRepository2,
14786
+ ThreadSessionMapRepository
14787
+ } from "@agor/core/db";
14788
+ import {
14789
+ buildSlackManifest,
14790
+ getConnector,
14791
+ requiredBotEvents,
14792
+ requiredBotScopes
14793
+ } from "@agor/core/gateway";
14794
+ import {
14795
+ GATEWAY_REDACTED_SENTINEL,
14796
+ GATEWAY_SENSITIVE_CONFIG_FIELDS,
14797
+ getRequiredSecretFields,
14798
+ hasMinimumRole as hasMinimumRole2,
14799
+ ROLES as ROLES2
14800
+ } from "@agor/core/types";
14801
+ var configSchema = external_exports.record(external_exports.string(), external_exports.unknown()).describe(
14802
+ "Platform-specific gateway configuration. Secrets are stored encrypted and returned redacted. Prefer env/template references for shared credentials where the connector supports them."
14803
+ );
14804
+ var outboundTargetSchema = external_exports.string().trim().regex(
14805
+ /^(channel:[^:\s]+|channel_name:[^\s]+|#[^\s]+|(?:email:|user_email:)?[^@\s]+@[^@\s]+\.[^@\s]+)$/
14806
+ ).describe(
14807
+ "Slack outbound target for v0: channel:C123, #project-updates, channel_name:project-updates, or user@example.com. Thread targets are intentionally not supported."
14808
+ );
14809
+ var envVarSchema = external_exports.strictObject({
14810
+ key: mcpRequiredString("agenticConfig.envVars[].key", "Environment variable name"),
14811
+ value: mcpRequiredString(
14812
+ "agenticConfig.envVars[].value",
14813
+ `Environment variable value. Prefer references/templates over raw secrets. Existing redacted values may be passed as '${GATEWAY_REDACTED_SENTINEL}' on update to preserve them.`
14814
+ ),
14815
+ forceOverride: external_exports.boolean().optional().describe("When true, channel value wins over user env vars. Defaults to false.")
14816
+ });
14817
+ var agenticConfigSchema = external_exports.strictObject({
14818
+ agent: external_exports.enum(["claude-code", "claude-code-cli", "codex", "gemini", "opencode", "copilot", "cursor"]).describe("Agent used for sessions created from this gateway channel."),
14819
+ permissionMode: external_exports.enum([
14820
+ "default",
14821
+ "acceptEdits",
14822
+ "bypassPermissions",
14823
+ "plan",
14824
+ "dontAsk",
14825
+ "autoEdit",
14826
+ "yolo",
14827
+ "ask",
14828
+ "auto",
14829
+ "on-failure",
14830
+ "allow-all"
14831
+ ]).optional().describe("Permission mode for spawned sessions."),
14832
+ modelConfig: external_exports.record(external_exports.string(), external_exports.unknown()).optional().describe("Agent model configuration."),
14833
+ mcpServerIds: external_exports.array(external_exports.string().min(1)).optional().describe("MCP server IDs to attach to gateway-created sessions."),
14834
+ codexSandboxMode: external_exports.enum(["read-only", "workspace-write", "danger-full-access"]).optional().describe("Codex sandbox mode for Codex gateway sessions."),
14835
+ codexApprovalPolicy: external_exports.enum(["untrusted", "on-failure", "on-request", "never"]).optional().describe("Codex approval policy for Codex gateway sessions."),
14836
+ codexNetworkAccess: external_exports.boolean().optional().describe("Allow Codex network access."),
14837
+ envVars: external_exports.array(envVarSchema).optional().describe("Gateway-level env vars. Values are redacted in responses.")
14838
+ }).describe("Agent/session defaults for conversations created through this gateway channel.");
14839
+ var gatewayChannelCreateSchema = external_exports.strictObject({
14840
+ name: mcpRequiredString("name", 'Human-readable channel name, e.g. "Engineering Slack".'),
14841
+ channelType: external_exports.enum(["slack", "github", "teams", "discord", "whatsapp", "telegram"]).default("slack").describe("Gateway platform type. Current active connectors are slack, github, and teams."),
14842
+ targetBranchId: mcpRequiredId(
14843
+ "targetBranchId",
14844
+ "Branch",
14845
+ "Branch/worktree ID that this gateway channel prompts."
14846
+ ),
14847
+ agorUserId: mcpOptionalId(
14848
+ "agorUserId",
14849
+ "User",
14850
+ "Agor user ID whose identity is used when platform-user alignment is disabled."
14851
+ ),
14852
+ enabled: external_exports.boolean().optional().describe("Whether the channel is active. Defaults to true."),
14853
+ config: configSchema,
14854
+ agenticConfig: agenticConfigSchema.optional()
14855
+ }).superRefine((value, issue2) => {
14856
+ const config2 = value.config ?? {};
14857
+ if (value.enabled !== false) {
14858
+ const requiredSecretMessages = {
14859
+ bot_token: "config.bot_token is required for Slack. Prefer a bot token stored outside the transcript when possible.",
14860
+ app_token: "config.app_token is required for Slack Socket Mode.",
14861
+ private_key: "config.private_key is required for GitHub gateway channels.",
14862
+ app_password: "config.app_password is required for Teams gateway channels."
14863
+ };
14864
+ for (const field of getRequiredSecretFields(value.channelType, config2)) {
14865
+ if (!config2[field]) {
14866
+ issue2.addIssue({
14867
+ code: "custom",
14868
+ path: ["config", field],
14869
+ message: requiredSecretMessages[field] ?? `config.${field} is required for ${value.channelType} gateway channels.`
14870
+ });
14871
+ }
14872
+ }
14873
+ }
14874
+ if (value.channelType === "github") {
14875
+ for (const field of ["app_id", "installation_id", "watch_repos"]) {
14876
+ if (!config2[field]) {
14877
+ issue2.addIssue({
14878
+ code: "custom",
14879
+ path: ["config", field],
14880
+ message: `config.${field} is required for GitHub gateway channels.`
14881
+ });
14882
+ }
14883
+ }
14884
+ }
14885
+ if (value.channelType === "teams" && !config2.app_id) {
14886
+ issue2.addIssue({
14887
+ code: "custom",
14888
+ path: ["config", "app_id"],
14889
+ message: "config.app_id is required for Teams gateway channels."
14890
+ });
14891
+ }
14892
+ if (value.channelType === "slack" && config2.align_slack_users !== true && !value.agorUserId) {
14893
+ issue2.addIssue({
14894
+ code: "custom",
14895
+ path: ["agorUserId"],
14896
+ message: "Run-as-selected-user needs agorUserId \u2014 set config.align_slack_users:true to align by email, or pass agorUserId."
14897
+ });
14898
+ }
14899
+ });
14900
+ var slackThreadHistorySchema = external_exports.strictObject({
14901
+ sessionId: mcpOptionalId(
14902
+ "sessionId",
14903
+ "Session",
14904
+ "Preferred: resolve the Slack thread mapping from an accessible Agor session ID (UUIDv7 or short ID). If provided, gatewayChannelId/threadId are ignored."
14905
+ ),
14906
+ gatewayChannelId: mcpOptionalId(
14907
+ "gatewayChannelId",
14908
+ "Gateway channel",
14909
+ "Explicit Slack gateway channel ID (UUIDv7 or short ID). Required when sessionId is omitted."
14910
+ ),
14911
+ threadId: mcpOptionalNonEmptyString(
14912
+ "threadId",
14913
+ "Explicit Slack thread ID in Agor gateway format, e.g. C123-171234.000100. Required when sessionId is omitted."
14914
+ ),
14915
+ oldestTs: mcpOptionalNonEmptyString(
14916
+ "oldestTs",
14917
+ "Optional Slack oldest timestamp bound, e.g. 171234.000100."
14918
+ ),
14919
+ latestTs: mcpOptionalNonEmptyString(
14920
+ "latestTs",
14921
+ "Optional Slack latest timestamp bound, e.g. 171235.000200."
14922
+ ),
14923
+ inclusive: external_exports.boolean().optional().describe("Whether Slack should include messages exactly at oldest/latest bounds."),
14924
+ limit: mcpLimit(50).describe("Maximum Slack messages to request (default: 50, max: 200)."),
14925
+ includeBotMessages: external_exports.boolean().optional().describe("Include Slack bot messages in the returned history. Defaults to false."),
14926
+ format: external_exports.enum(["messages", "markdown"]).optional().describe(
14927
+ 'Response body format. "messages" returns normalized JSON; "markdown" returns a transcript string.'
14928
+ )
14929
+ }).superRefine((value, issue2) => {
14930
+ if (value.sessionId) return;
14931
+ if (!value.gatewayChannelId) {
14932
+ issue2.addIssue({
14933
+ code: "custom",
14934
+ path: ["gatewayChannelId"],
14935
+ message: "gatewayChannelId is required when sessionId is omitted."
14936
+ });
14937
+ }
14938
+ if (!value.threadId) {
14939
+ issue2.addIssue({
14940
+ code: "custom",
14941
+ path: ["threadId"],
14942
+ message: "threadId is required when sessionId is omitted."
14943
+ });
14944
+ }
14945
+ });
14946
+ var gatewayChannelUpdateSchema = external_exports.strictObject({
14947
+ gatewayChannelId: mcpRequiredId(
14948
+ "gatewayChannelId",
14949
+ "Gateway channel",
14950
+ "Gateway channel ID (UUIDv7 or short ID)"
14951
+ ),
14952
+ name: mcpOptionalNonEmptyString("name", "New human-readable channel name."),
14953
+ channelType: external_exports.enum(["slack", "github", "teams", "discord", "whatsapp", "telegram"]).optional().describe("Gateway platform type. Changing this should include compatible config."),
14954
+ targetBranchId: mcpOptionalId("targetBranchId", "Branch", "New target branch/worktree ID."),
14955
+ agorUserId: mcpOptionalId("agorUserId", "User", "New run-as Agor user ID."),
14956
+ enabled: external_exports.boolean().optional().describe("Enable/disable the channel."),
14957
+ config: configSchema.optional().describe(
14958
+ `Partial platform config to merge. Send '${GATEWAY_REDACTED_SENTINEL}' or omit sensitive fields to preserve existing secrets; send a new value to rotate.`
14959
+ ),
14960
+ agenticConfig: agenticConfigSchema.nullable().optional().describe("Replace agent/session defaults. null clears the gateway agentic config.")
14961
+ });
14962
+ var slackManifestGenerateSchema = external_exports.strictObject({
14963
+ appName: mcpRequiredString("appName", 'Slack app display name, e.g. "Agor".'),
14964
+ botDisplayName: mcpOptionalNonEmptyString(
14965
+ "botDisplayName",
14966
+ "Bot user display name. Defaults to appName."
14967
+ ),
14968
+ publicChannels: external_exports.boolean().default(false).describe("Listen in public channels (#channel) via @mention."),
14969
+ privateChannels: external_exports.boolean().default(false).describe("Listen in private channels (groups) via @mention."),
14970
+ groupDms: external_exports.boolean().default(false).describe("Listen in group DMs (multi-person IMs) via @mention."),
14971
+ alignUsers: external_exports.boolean().default(true).describe(
14972
+ "Resolve Slack user email \u2192 Agor user (adds the users:read.email scope). Defaults to true: each Slack user runs as their matched Agor account and unmatched users are rejected, so no fixed run-as user is needed. Set false to run every message as one fixed Agor user (then pass agorUserId to agor_gateway_channels_create)."
14973
+ ),
14974
+ outbound: external_exports.boolean().default(false).describe("Proactive outbound: post to channels by name and DM users by email."),
14975
+ restrictToChannelIds: external_exports.array(external_exports.string().min(1)).optional().describe(
14976
+ "Slack channel ID whitelist. Maps to config.allowed_channel_ids when you call agor_gateway_channels_create; it does NOT change the manifest scopes or events."
14977
+ )
14978
+ });
14979
+
14770
14980
  // src/mcp/tools/knowledge.ts
14771
14981
  import { createHash, randomUUID } from "crypto";
14772
14982
  import fs2 from "fs";
14773
14983
  import { mkdir, readFile, writeFile } from "fs/promises";
14774
14984
  import path3 from "path";
14775
- import { BranchRepository as BranchRepository4, KnowledgeNamespaceRepository as KnowledgeNamespaceRepository2 } from "@agor/core/db";
14985
+ import { BranchRepository as BranchRepository5, KnowledgeNamespaceRepository as KnowledgeNamespaceRepository2 } from "@agor/core/db";
14776
14986
  import { NotFound as NotFound2 } from "@agor/core/feathers";
14777
14987
  import {
14778
14988
  buildKnowledgeDocumentUri,
@@ -14798,14 +15008,14 @@ import { unified } from "unified";
14798
15008
 
14799
15009
  // src/services/assistant-knowledge.ts
14800
15010
  import {
14801
- BranchRepository as BranchRepository3,
15011
+ BranchRepository as BranchRepository4,
14802
15012
  KnowledgeNamespaceRepository,
14803
15013
  shortId as shortId4
14804
15014
  } from "@agor/core/db";
14805
15015
  import { getAssistantConfig as getAssistantConfig2, isAssistant as isAssistant2 } from "@agor/core/types";
14806
15016
 
14807
15017
  // src/services/knowledge-access.ts
14808
- import { hasMinimumRole as hasMinimumRole2, ROLES as ROLES2 } from "@agor/core/types";
15018
+ import { hasMinimumRole as hasMinimumRole3, ROLES as ROLES3 } from "@agor/core/types";
14809
15019
 
14810
15020
  // src/utils/branch-workspace-path.ts
14811
15021
  import fs from "fs";
@@ -14947,8 +15157,263 @@ var KnowledgeNodeRefSchema = external_exports.object(
14947
15157
  "Reference to an existing or creatable knowledge graph node. Prefer nodeId or uri; use typed IDs for links to Agor core objects."
14948
15158
  );
14949
15159
 
15160
+ // src/mcp/tools/mcp-servers.ts
15161
+ import {
15162
+ isReservedMCPCustomHeaderName,
15163
+ isValidMCPHeaderName
15164
+ } from "@agor/core/tools/mcp/http-headers";
15165
+ var mcpNameSchema = external_exports.string({
15166
+ error: 'name is required and must be a string. Example: { "name": "context7" }'
15167
+ }).regex(
15168
+ /^[a-z][a-z0-9_-]{0,63}$/,
15169
+ 'name must start with a lowercase letter and contain only lowercase letters, digits, "_" or "-" (max 64 chars).'
15170
+ ).describe('Stable internal ID, e.g. "context7", "github", "datadog". Cannot be changed later.');
15171
+ var stringMapSchema = external_exports.record(external_exports.string(), external_exports.string()).describe(
15172
+ "JSON object of string keys/values. Values may use templates like {{ user.env.API_TOKEN }}."
15173
+ );
15174
+ var mcpAuthInputSchema = external_exports.strictObject({
15175
+ type: external_exports.enum(["none", "bearer", "jwt", "oauth"]).describe(
15176
+ "Authentication mode. OAuth tip: start with { type: 'oauth' } plus the MCP server URL; only add endpoint/client fields if discovery/DCR fails."
15177
+ ),
15178
+ token: mcpOptionalString(
15179
+ "auth.token",
15180
+ "Bearer token. Prefer {{ user.env.MCP_TOKEN }} templates; raw secrets will be stored redacted but are still visible in this MCP call transcript."
15181
+ ),
15182
+ api_url: mcpOptionalString("auth.api_url", "JWT auth API URL."),
15183
+ api_token: mcpOptionalString(
15184
+ "auth.api_token",
15185
+ "JWT API token. Prefer {{ user.env.JWT_TOKEN }} templates."
15186
+ ),
15187
+ api_secret: mcpOptionalString(
15188
+ "auth.api_secret",
15189
+ "JWT API secret. Prefer {{ user.env.JWT_SECRET }} templates."
15190
+ ),
15191
+ oauth_authorization_url: mcpOptionalString(
15192
+ "auth.oauth_authorization_url",
15193
+ "Optional OAuth authorization endpoint override. Leave blank for discovery."
15194
+ ),
15195
+ oauth_token_url: mcpOptionalString(
15196
+ "auth.oauth_token_url",
15197
+ "Optional OAuth token endpoint override. Leave blank for discovery."
15198
+ ),
15199
+ oauth_client_id: mcpOptionalString(
15200
+ "auth.oauth_client_id",
15201
+ "Optional OAuth client ID for providers that require a pre-registered app. Leave blank for Dynamic Client Registration where supported."
15202
+ ),
15203
+ oauth_client_secret: mcpOptionalString(
15204
+ "auth.oauth_client_secret",
15205
+ "Optional OAuth client secret. Prefer {{ user.env.OAUTH_CLIENT_SECRET }} templates; raw secrets are not returned by this tool."
15206
+ ),
15207
+ oauth_scope: mcpOptionalString("auth.oauth_scope", "Optional OAuth scopes, space-separated."),
15208
+ oauth_grant_type: external_exports.enum(["client_credentials", "authorization_code"]).optional().describe(
15209
+ "OAuth grant type hint. Defaults to 'client_credentials' for legacy token testing; browser OAuth uses authorization code with PKCE."
15210
+ ),
15211
+ oauth_mode: external_exports.enum(["per_user", "shared"]).optional().describe("OAuth token ownership. Defaults to 'per_user' (recommended)."),
15212
+ insecure: external_exports.boolean().optional().describe("Allow insecure auth behavior if supported.")
15213
+ }).superRefine((auth, issue2) => {
15214
+ if (auth.type === "bearer" && !auth.token) {
15215
+ issue2.addIssue({
15216
+ code: "custom",
15217
+ path: ["token"],
15218
+ message: "auth.token is required when auth.type is 'bearer'."
15219
+ });
15220
+ }
15221
+ const fieldsByType = {
15222
+ none: [],
15223
+ bearer: ["token"],
15224
+ jwt: ["api_url", "api_token", "api_secret"],
15225
+ oauth: [
15226
+ "oauth_authorization_url",
15227
+ "oauth_token_url",
15228
+ "oauth_client_id",
15229
+ "oauth_client_secret",
15230
+ "oauth_scope",
15231
+ "oauth_grant_type",
15232
+ "oauth_mode",
15233
+ "insecure"
15234
+ ]
15235
+ };
15236
+ const allowed = /* @__PURE__ */ new Set(["type", ...fieldsByType[auth.type]]);
15237
+ for (const key of Object.keys(auth)) {
15238
+ if (!allowed.has(key)) {
15239
+ issue2.addIssue({
15240
+ code: "custom",
15241
+ path: [key],
15242
+ message: `auth.${key} does not apply when auth.type is '${auth.type}'.`
15243
+ });
15244
+ }
15245
+ }
15246
+ if (auth.type === "jwt") {
15247
+ for (const field of ["api_url", "api_token", "api_secret"]) {
15248
+ if (!auth[field]) {
15249
+ issue2.addIssue({
15250
+ code: "custom",
15251
+ path: [field],
15252
+ message: `auth.${field} is required when auth.type is 'jwt'.`
15253
+ });
15254
+ }
15255
+ }
15256
+ }
15257
+ }).describe(
15258
+ "Auth config. Common OAuth path: { type: 'oauth' } plus url; leave OAuth URLs/client fields blank first so metadata discovery/DCR can do the work."
15259
+ );
15260
+ var toolPermissionsSchema = external_exports.record(external_exports.string(), external_exports.enum(["ask", "allow", "deny"])).describe("Optional per-tool permissions, e.g. { 'list_files': 'allow', 'write_file': 'ask' }.");
15261
+ var mcpServerCreateSchema = external_exports.strictObject({
15262
+ name: mcpNameSchema,
15263
+ displayName: mcpOptionalNonEmptyString(
15264
+ "displayName",
15265
+ 'Human-friendly display name, e.g. "Context7 MCP".'
15266
+ ),
15267
+ description: mcpOptionalString("description", "Optional description."),
15268
+ transport: external_exports.enum(["stdio", "http", "sse"]).optional().describe(
15269
+ "Transport. Defaults to 'http' when url is provided, otherwise 'stdio'. Most remote OAuth MCP servers use 'http'."
15270
+ ),
15271
+ url: mcpOptionalString(
15272
+ "url",
15273
+ "Remote MCP server URL for http/sse transports. Supports templates like {{ user.env.MCP_URL }}."
15274
+ ),
15275
+ command: mcpOptionalString("command", 'Local command for stdio transport, e.g. "npx".'),
15276
+ args: external_exports.array(external_exports.string()).optional().describe(
15277
+ 'Arguments for stdio command, e.g. ["-y", "@modelcontextprotocol/server-filesystem"].'
15278
+ ),
15279
+ headers: stringMapSchema.optional().describe(
15280
+ "Custom HTTP headers for http/sse transports. Do not include Authorization; use auth instead. Prefer templates for secret values."
15281
+ ),
15282
+ env: stringMapSchema.optional().describe(
15283
+ "Environment variables for the MCP process/config. Prefer {{ user.env.VAR }} templates for secrets."
15284
+ ),
15285
+ auth: mcpAuthInputSchema.optional(),
15286
+ scope: external_exports.enum(["global", "session"]).optional().describe(
15287
+ "Scope. Defaults to 'global' so it appears in agor_mcp_servers_list. 'session' is only for explicit session attachment workflows."
15288
+ ),
15289
+ enabled: external_exports.boolean().optional().describe("Whether the server is enabled. Defaults to true."),
15290
+ attachToCurrentSession: external_exports.boolean().optional().describe(
15291
+ `If true, also add a session-specific link after creating. Mostly useful for scope:"session" servers; global enabled servers are already in each session's effective MCP set.`
15292
+ ),
15293
+ attachToSessionId: mcpOptionalId(
15294
+ "attachToSessionId",
15295
+ "Session",
15296
+ "Optional session ID (UUIDv7 or short ID) to attach after creating. Overrides attachToCurrentSession."
15297
+ )
15298
+ }).superRefine((value, issue2) => validateMcpServerConfig(value, issue2, false));
15299
+ var mcpServerUpdateSchema = external_exports.strictObject({
15300
+ mcpServerId: mcpRequiredId(
15301
+ "mcpServerId",
15302
+ "MCP server",
15303
+ "MCP server ID to update (UUIDv7 or short ID)"
15304
+ ),
15305
+ displayName: mcpOptionalNonEmptyString("displayName", "New human-friendly display name."),
15306
+ description: mcpOptionalString(
15307
+ "description",
15308
+ "New description. Pass an empty string to clear."
15309
+ ),
15310
+ transport: external_exports.enum(["stdio", "http", "sse"]).optional().describe("Transport to set."),
15311
+ url: mcpOptionalString("url", "Remote MCP URL for http/sse transports."),
15312
+ command: mcpOptionalString("command", "Local command for stdio transport."),
15313
+ args: external_exports.array(external_exports.string()).optional().describe("Arguments for stdio command."),
15314
+ headers: stringMapSchema.optional().describe(
15315
+ "Replace custom HTTP headers. Redacted existing header values may be passed back unchanged by the UI; this tool should normally pass real template values or omit headers."
15316
+ ),
15317
+ env: stringMapSchema.optional().describe("Replace environment variables."),
15318
+ auth: mcpAuthInputSchema.optional().describe(
15319
+ "Replace auth config. Existing redacted secrets are preserved if their redacted placeholders are passed back; prefer omitting auth unless changing it. Use { type: 'none' } to clear auth."
15320
+ ),
15321
+ scope: external_exports.enum(["global", "session"]).optional().describe("Scope to set."),
15322
+ enabled: external_exports.boolean().optional().describe("Enabled flag."),
15323
+ toolPermissions: toolPermissionsSchema.optional()
15324
+ }).superRefine((value, issue2) => validateMcpServerConfig(value, issue2, true));
15325
+ function validateHeaders(headers, issue2) {
15326
+ if (!headers) return;
15327
+ for (const [key, value] of Object.entries(headers)) {
15328
+ const name = key.trim();
15329
+ if (!name) {
15330
+ issue2.addIssue({
15331
+ code: "custom",
15332
+ path: ["headers", key],
15333
+ message: "Header names cannot be empty."
15334
+ });
15335
+ } else if (!isValidMCPHeaderName(name)) {
15336
+ issue2.addIssue({
15337
+ code: "custom",
15338
+ path: ["headers", key],
15339
+ message: `Invalid HTTP header name: ${key}`
15340
+ });
15341
+ } else if (isReservedMCPCustomHeaderName(name)) {
15342
+ issue2.addIssue({
15343
+ code: "custom",
15344
+ path: ["headers", key],
15345
+ message: `Header ${name} is reserved; configure Authorization through auth instead.`
15346
+ });
15347
+ }
15348
+ if (typeof value !== "string") {
15349
+ issue2.addIssue({
15350
+ code: "custom",
15351
+ path: ["headers", key],
15352
+ message: "Header values must be strings."
15353
+ });
15354
+ }
15355
+ }
15356
+ }
15357
+ function validateMcpServerConfig(value, issue2, partial2) {
15358
+ const transport = value.transport ?? (value.url ? "http" : "stdio");
15359
+ validateHeaders(value.headers, issue2);
15360
+ if (!partial2 || value.transport !== void 0 || value.url !== void 0 || value.command !== void 0) {
15361
+ if (transport === "stdio") {
15362
+ if (!partial2 && !value.command) {
15363
+ issue2.addIssue({
15364
+ code: "custom",
15365
+ path: ["command"],
15366
+ message: "command is required for stdio transport."
15367
+ });
15368
+ }
15369
+ if (value.url) {
15370
+ issue2.addIssue({
15371
+ code: "custom",
15372
+ path: ["url"],
15373
+ message: "url only applies to http/sse transports, not stdio."
15374
+ });
15375
+ }
15376
+ if (value.headers) {
15377
+ issue2.addIssue({
15378
+ code: "custom",
15379
+ path: ["headers"],
15380
+ message: "headers only apply to http/sse transports, not stdio."
15381
+ });
15382
+ }
15383
+ if (value.auth && value.auth.type !== "none") {
15384
+ issue2.addIssue({
15385
+ code: "custom",
15386
+ path: ["auth", "type"],
15387
+ message: "Authentication config only applies to http/sse transports."
15388
+ });
15389
+ }
15390
+ } else if (!partial2 && !value.url) {
15391
+ issue2.addIssue({
15392
+ code: "custom",
15393
+ path: ["url"],
15394
+ message: `url is required for ${transport} transport.`
15395
+ });
15396
+ } else {
15397
+ if (value.command) {
15398
+ issue2.addIssue({
15399
+ code: "custom",
15400
+ path: ["command"],
15401
+ message: "command only applies to stdio transport, not http/sse."
15402
+ });
15403
+ }
15404
+ if (value.args && value.args.length > 0) {
15405
+ issue2.addIssue({
15406
+ code: "custom",
15407
+ path: ["args"],
15408
+ message: "args only apply to stdio transport, not http/sse."
15409
+ });
15410
+ }
15411
+ }
15412
+ }
15413
+ }
15414
+
14950
15415
  // src/mcp/tools/proxies.ts
14951
- import { getBaseUrl, loadConfig, resolveProxies } from "@agor/core/config";
15416
+ import { getBaseUrl, loadConfig as loadConfig2, resolveProxies } from "@agor/core/config";
14952
15417
 
14953
15418
  // src/mcp/tools/repos.ts
14954
15419
  import { extractSlugFromUrl, isValidGitUrl, isValidSlug } from "@agor/core/config";
@@ -14960,7 +15425,7 @@ var agenticToolConfigSchema = external_exports.object({
14960
15425
  model_config: external_exports.object({
14961
15426
  mode: external_exports.enum(["alias", "exact"]).optional(),
14962
15427
  model: mcpOptionalString("model_config.model", "Model name override."),
14963
- effort: external_exports.enum(["low", "medium", "high", "max"]).optional(),
15428
+ effort: external_exports.enum(["low", "medium", "high", "xhigh", "max"]).optional(),
14964
15429
  advisorModel: mcpOptionalString(
14965
15430
  "model_config.advisorModel",
14966
15431
  "Claude Code advisor model override (e.g. 'opus', 'sonnet', 'fable')."
@@ -14976,7 +15441,7 @@ var agenticToolConfigSchema = external_exports.object({
14976
15441
 
14977
15442
  // src/mcp/tools/sessions.ts
14978
15443
  import {
14979
- BranchRepository as BranchRepository5,
15444
+ BranchRepository as BranchRepository6,
14980
15445
  SessionRelationshipRepository,
14981
15446
  shortId as shortId5
14982
15447
  } from "@agor/core/db";
@@ -14999,6 +15464,7 @@ import {
14999
15464
  } from "@agor/core/types";
15000
15465
  init_branch_inspect();
15001
15466
  init_executor_read_impersonation();
15467
+ init_spawn_executor();
15002
15468
  var modelConfigObjectSchema = external_exports.object({
15003
15469
  mode: external_exports.enum(["alias", "exact"]).optional().describe("Model selection mode (default: 'alias')"),
15004
15470
  // .min(1): reject empty-string model explicitly so callers don't silently
@@ -15007,7 +15473,7 @@ var modelConfigObjectSchema = external_exports.object({
15007
15473
  "modelConfig.model",
15008
15474
  "Model identifier (e.g. 'claude-opus-4-6', 'claude-sonnet-4-6')"
15009
15475
  ),
15010
- effort: external_exports.enum(["low", "medium", "high", "max"]).optional().describe("Reasoning effort level (default: high)"),
15476
+ effort: external_exports.enum(["low", "medium", "high", "xhigh", "max"]).optional().describe("Reasoning effort level (default: high)"),
15011
15477
  advisorModel: mcpOptionalString(
15012
15478
  "modelConfig.advisorModel",
15013
15479
  "Claude Code advisor model override (e.g. 'opus', 'sonnet', 'fable', or a full model ID)."
@@ -15028,22 +15494,33 @@ var modelConfigInputSchema = external_exports.union([
15028
15494
  );
15029
15495
 
15030
15496
  // src/mcp/tools/users.ts
15031
- import { ROLES as ROLES3 } from "@agor/core/types";
15497
+ import { ROLES as ROLES4 } from "@agor/core/types";
15032
15498
 
15033
15499
  // src/mcp/tools/widgets.ts
15034
- import { MessageRole as MessageRole2 } from "@agor/core/types";
15500
+ import { getRequiredSecretFields as getRequiredSecretFields2, hasMinimumRole as hasMinimumRole5, MessageRole as MessageRole2, ROLES as ROLES6 } from "@agor/core/types";
15035
15501
 
15036
15502
  // src/utils/append-system-message.ts
15037
- import { generateId as generateId2, SessionRepository as SessionRepository2 } from "@agor/core/db";
15503
+ import { generateId as generateId2, SessionRepository as SessionRepository3 } from "@agor/core/db";
15038
15504
  import { MessageRole } from "@agor/core/types";
15039
15505
 
15040
15506
  // src/utils/session-tasks.ts
15041
15507
  import { EXECUTING_TASK_STATUSES, isTaskExecuting } from "@agor/core/types";
15042
15508
 
15043
15509
  // src/widgets/env-vars/index.ts
15044
- import { ENV_VAR_CONSTRAINTS, isEnvVarAllowed, validateEnvVar } from "@agor/core/config";
15510
+ import {
15511
+ ENV_VAR_CONSTRAINTS,
15512
+ isEnvVarAllowed,
15513
+ validateEnvVar
15514
+ } from "@agor/core/config";
15515
+ import { SessionEnvSelectionRepository } from "@agor/core/db";
15045
15516
  import { BadRequest } from "@agor/core/feathers";
15046
15517
  var ENV_VAR_NAME_REGEX = ENV_VAR_CONSTRAINTS.NAME_PATTERN;
15518
+ var envVarFieldMetadataSchema = external_exports.object({
15519
+ description: external_exports.string().max(200).optional(),
15520
+ placeholder: external_exports.string().max(120).optional(),
15521
+ format_hint: external_exports.string().max(80).optional(),
15522
+ input_type: external_exports.enum(["password", "text", "textarea"]).default("password").optional()
15523
+ }).strict();
15047
15524
  var envVarsParamsSchema = external_exports.object({
15048
15525
  names: external_exports.array(external_exports.string().regex(ENV_VAR_NAME_REGEX)).min(1).max(10).refine((names) => new Set(names).size === names.length, {
15049
15526
  message: "Env var names must be unique"
@@ -15051,20 +15528,82 @@ var envVarsParamsSchema = external_exports.object({
15051
15528
  reason: external_exports.string().min(1).max(200).describe(
15052
15529
  "One sentence explaining why you need the value(s). Keep it tight \u2014 this renders in a small muted line under the input. NOT a place to restate what the widget does."
15053
15530
  ),
15531
+ variable_metadata: external_exports.record(external_exports.string().regex(ENV_VAR_NAME_REGEX), envVarFieldMetadataSchema).optional().describe(
15532
+ "Optional per-variable display metadata keyed by requested name. Allowed keys per variable: description, placeholder, format_hint, input_type (password|text|textarea). Do not include values, defaults, examples containing secrets, or anything secret-like."
15533
+ ),
15054
15534
  auto_resume: external_exports.boolean().default(true).describe(
15055
15535
  "When true (default), a system-authored prompt is auto-queued back into the agent on submit/dismiss."
15056
15536
  )
15537
+ }).superRefine((params, ctx) => {
15538
+ const requested = new Set(params.names);
15539
+ for (const key of Object.keys(params.variable_metadata ?? {})) {
15540
+ if (!requested.has(key)) {
15541
+ ctx.addIssue({
15542
+ code: external_exports.ZodIssueCode.custom,
15543
+ path: ["variable_metadata", key],
15544
+ message: `Metadata key ${key} must match a requested env var name`
15545
+ });
15546
+ }
15547
+ }
15057
15548
  });
15058
15549
  var envVarsSubmitSchema = external_exports.object({
15059
15550
  values: external_exports.record(
15060
15551
  external_exports.string().regex(ENV_VAR_NAME_REGEX),
15061
15552
  external_exports.string().min(1).max(ENV_VAR_CONSTRAINTS.MAX_VALUE_LENGTH)
15062
- ).refine((v) => Object.keys(v).length >= 1 && Object.keys(v).length <= 10, {
15063
- message: "Must submit between 1 and 10 env vars"
15064
- }),
15553
+ ).default({}),
15554
+ use_existing: external_exports.array(external_exports.string().regex(ENV_VAR_NAME_REGEX)).max(10).default([]).describe("Requested names whose already-saved global values should be used."),
15065
15555
  scope: external_exports.enum(["global", "session"])
15556
+ }).superRefine((submit, ctx) => {
15557
+ const valueNames = Object.keys(submit.values);
15558
+ const existingNames = submit.use_existing;
15559
+ const total = valueNames.length + existingNames.length;
15560
+ if (total < 1 || total > 10) {
15561
+ ctx.addIssue({
15562
+ code: external_exports.ZodIssueCode.custom,
15563
+ message: "Must submit between 1 and 10 env vars"
15564
+ });
15565
+ }
15566
+ const duplicates = existingNames.filter((name) => valueNames.includes(name));
15567
+ for (const name of duplicates) {
15568
+ ctx.addIssue({
15569
+ code: external_exports.ZodIssueCode.custom,
15570
+ path: ["use_existing"],
15571
+ message: `Cannot both submit and use existing value for ${name}`
15572
+ });
15573
+ }
15574
+ if (new Set(existingNames).size !== existingNames.length) {
15575
+ ctx.addIssue({
15576
+ code: external_exports.ZodIssueCode.custom,
15577
+ path: ["use_existing"],
15578
+ message: "use_existing names must be unique"
15579
+ });
15580
+ }
15066
15581
  });
15067
15582
 
15583
+ // src/widgets/gateway-token/index.ts
15584
+ import { Forbidden as Forbidden2 } from "@agor/core/feathers";
15585
+ import {
15586
+ GATEWAY_SENSITIVE_CONFIG_FIELDS as GATEWAY_SENSITIVE_CONFIG_FIELDS2,
15587
+ hasMinimumRole as hasMinimumRole4,
15588
+ ROLES as ROLES5
15589
+ } from "@agor/core/types";
15590
+ var MAX_TOKEN_LENGTH = 8192;
15591
+ var gatewayTokenParamsSchema = external_exports.object({
15592
+ gatewayChannelId: external_exports.string().min(1).describe("Gateway channel whose credentials are being set."),
15593
+ channelType: external_exports.enum(["slack", "discord", "whatsapp", "telegram", "github", "teams"]).describe("Platform type of the channel; drives per-field placeholders."),
15594
+ channelName: external_exports.string().min(1).max(200).describe("Human-readable channel name for the form heading and prompts."),
15595
+ fields: external_exports.array(external_exports.enum(GATEWAY_SENSITIVE_CONFIG_FIELDS2)).min(1).max(GATEWAY_SENSITIVE_CONFIG_FIELDS2.length).refine((fields) => new Set(fields).size === fields.length, {
15596
+ message: "Token field names must be unique"
15597
+ }).describe("Secret config field names to collect (subset of the sensitive fields)."),
15598
+ reason: external_exports.string().min(1).max(200).describe("One sentence explaining why the tokens are needed. Renders as a muted line.")
15599
+ }).strict();
15600
+ var gatewayTokenSubmitSchema = external_exports.object({
15601
+ tokens: external_exports.partialRecord(
15602
+ external_exports.enum(GATEWAY_SENSITIVE_CONFIG_FIELDS2),
15603
+ external_exports.string().min(1).max(MAX_TOKEN_LENGTH)
15604
+ ).describe("Map of sensitive field name \u2192 credential value.")
15605
+ }).strict();
15606
+
15068
15607
  // src/mcp/server.ts
15069
15608
  var DEBUG_MCP_REQUESTS = process.env.AGOR_DEBUG_MCP_REQUESTS === "1" || process.env.DEBUG?.includes("mcp-requests");
15070
15609
  function coerceString(value) {
@@ -15105,6 +15644,21 @@ Continue or fork an existing session:
15105
15644
  Discover tools: search domains/summaries \u2192 get details for one tool \u2192 execute`;
15106
15645
 
15107
15646
  // src/mcp/tools/messages.ts
15647
+ var BROAD_SEARCH_GUIDANCE = 'Broad cross-session message search must be scoped to sessionId/taskId or bounded with createdAfter. Use a window of 31 days or less; add createdBefore for historical searches. Example: { "search": "SEO", "createdAfter": "2026-06-01T00:00:00Z", "createdBefore": "2026-06-15T00:00:00Z" }. This prevents full-table scans on large message databases.';
15648
+ var MAX_CROSS_SESSION_SEARCH_WINDOW_MS = 31 * 24 * 60 * 60 * 1e3;
15649
+ function parseDateArg(name, value) {
15650
+ if (value === void 0 || value === null || value === "") return void 0;
15651
+ if (typeof value !== "string") {
15652
+ throw new Error(`${name} must be an ISO-8601 date string, for example "2026-06-01T00:00:00Z".`);
15653
+ }
15654
+ const date5 = new Date(value);
15655
+ if (Number.isNaN(date5.getTime())) {
15656
+ throw new Error(
15657
+ `${name} must be a valid ISO-8601 date string, for example "2026-06-01" or "2026-06-01T00:00:00Z".`
15658
+ );
15659
+ }
15660
+ return date5;
15661
+ }
15108
15662
  function registerMessageTools(server, ctx) {
15109
15663
  server.registerTool(
15110
15664
  "agor_messages_list",
@@ -15120,7 +15674,15 @@ function registerMessageTools(server, ctx) {
15120
15674
  taskId: mcpOptionalId("taskId", "Task", "Task ID to scope messages to (optional)"),
15121
15675
  search: mcpOptionalString(
15122
15676
  "search",
15123
- `Keyword search across message content. Space-separated terms are AND'd, pipe (|) for OR. Example: "OAuth middleware" requires both; "OAuth | JWT" matches either.`
15677
+ `Keyword search across message content. Space-separated terms are AND'd, pipe (|) for OR. Example: "OAuth middleware" requires both; "OAuth | JWT" matches either. Cross-session search must include sessionId/taskId or a createdAfter-bounded window of 31 days or less.`
15678
+ ),
15679
+ createdAfter: mcpOptionalString(
15680
+ "createdAfter",
15681
+ 'Only include messages at or after this message timestamp. ISO-8601 date/time, e.g. "2026-06-01" or "2026-06-01T00:00:00Z". Recommended for broad searches.'
15682
+ ),
15683
+ createdBefore: mcpOptionalString(
15684
+ "createdBefore",
15685
+ 'Only include messages before or at this message timestamp. ISO-8601 date/time, e.g. "2026-06-28T23:59:59Z". Use with createdAfter for historical cross-session searches.'
15124
15686
  ),
15125
15687
  includeToolCalls: external_exports.boolean().optional().describe(
15126
15688
  "Include tool call messages and tool_use content blocks (default: false). When false, strips tool noise for cleaner output."
@@ -15140,11 +15702,25 @@ function registerMessageTools(server, ctx) {
15140
15702
  const sessionIdRaw = coerceString(args.sessionId);
15141
15703
  const taskIdRaw = coerceString(args.taskId);
15142
15704
  const search = coerceString(args.search);
15705
+ const createdAfter = parseDateArg("createdAfter", args.createdAfter);
15706
+ const createdBefore = parseDateArg("createdBefore", args.createdBefore);
15707
+ if (createdAfter && createdBefore && createdAfter.getTime() > createdBefore.getTime()) {
15708
+ throw new Error("createdAfter must be earlier than or equal to createdBefore.");
15709
+ }
15143
15710
  if (!sessionIdRaw && !taskIdRaw && !search) {
15144
15711
  throw new Error(
15145
- 'At least one of sessionId, taskId, or search must be provided as a non-empty string. Example: { "sessionId": "01abcdef" } or { "search": "OAuth middleware" }.'
15712
+ 'At least one of sessionId, taskId, or search must be provided as a non-empty string. Example: { "sessionId": "01abcdef" } or { "search": "OAuth middleware", "createdAfter": "2026-06-01T00:00:00Z" }.'
15146
15713
  );
15147
15714
  }
15715
+ if (search && !sessionIdRaw && !taskIdRaw) {
15716
+ if (!createdAfter) {
15717
+ throw new Error(BROAD_SEARCH_GUIDANCE);
15718
+ }
15719
+ const effectiveCreatedBefore = createdBefore ?? /* @__PURE__ */ new Date();
15720
+ if (effectiveCreatedBefore.getTime() - createdAfter.getTime() > MAX_CROSS_SESSION_SEARCH_WINDOW_MS) {
15721
+ throw new Error(BROAD_SEARCH_GUIDANCE);
15722
+ }
15723
+ }
15148
15724
  const sessionId = sessionIdRaw ? await resolveSessionId(ctx, sessionIdRaw) : void 0;
15149
15725
  const taskId = taskIdRaw ? await resolveTaskId(ctx, taskIdRaw) : void 0;
15150
15726
  const includeToolCalls = args.includeToolCalls === true;
@@ -15159,6 +15735,8 @@ function registerMessageTools(server, ctx) {
15159
15735
  if (sessionId) conditions.push(eq(messagesTable.session_id, sessionId));
15160
15736
  if (taskId) conditions.push(eq(messagesTable.task_id, taskId));
15161
15737
  if (role) conditions.push(eq(messagesTable.role, role));
15738
+ if (createdAfter) conditions.push(gte(messagesTable.timestamp, createdAfter));
15739
+ if (createdBefore) conditions.push(lte(messagesTable.timestamp, createdBefore));
15162
15740
  if (!includeToolCalls) {
15163
15741
  conditions.push(
15164
15742
  sql`${messagesTable.type} NOT IN ('file-history-snapshot', 'permission_request', 'input_request')`
@@ -15177,20 +15755,20 @@ function registerMessageTools(server, ctx) {
15177
15755
  if (isBranchRbacEnabled2()) {
15178
15756
  const userRole = ctx.authenticatedUser?.role;
15179
15757
  if (!isSuperAdmin(userRole)) {
15180
- const sessionRepo = new SessionRepository3(ctx.db);
15181
- const accessibleSessions = await sessionRepo.findAccessibleSessions(ctx.userId);
15182
- const accessibleIds = accessibleSessions.map((s) => s.session_id);
15183
- if (accessibleIds.length === 0) {
15184
- return textResult({ messages: [], total: 0, offset, limit });
15185
- }
15186
- conditions.push(inArray(messagesTable.session_id, accessibleIds));
15758
+ conditions.push(
15759
+ visibleSessionReferenceAccessExists(ctx.db, ctx.userId, messagesTable.session_id)
15760
+ );
15187
15761
  }
15188
15762
  }
15189
15763
  const orderCol = sessionId ? messagesTable.index : messagesTable.timestamp;
15190
15764
  const orderBy = order === "desc" ? desc(orderCol) : asc(orderCol);
15191
- const allRows = await select(ctx.db).from(messagesTable).where(conditions.length > 0 ? and(...conditions) : void 0).orderBy(orderBy).all();
15765
+ const fetchLimit = Math.min(limit + 100, 200);
15766
+ const allRows = await select(ctx.db).from(messagesTable).where(conditions.length > 0 ? and(...conditions) : void 0).orderBy(orderBy).limit(fetchLimit).offset(offset).all();
15192
15767
  const processed = [];
15768
+ let consumedRows = 0;
15193
15769
  for (const row of allRows) {
15770
+ if (processed.length >= limit) break;
15771
+ consumedRows++;
15194
15772
  const data = row.data;
15195
15773
  const content = data?.content;
15196
15774
  if (!includeToolCalls && row.role === "user" && Array.isArray(content)) {
@@ -15241,9 +15819,17 @@ function registerMessageTools(server, ctx) {
15241
15819
  if (toolCallCount > 0) msg.tool_call_count = toolCallCount;
15242
15820
  processed.push(msg);
15243
15821
  }
15244
- const total = processed.length;
15245
- const paged = processed.slice(offset, offset + limit);
15246
- return textResult({ messages: paged, total, offset, limit });
15822
+ const hasMore = allRows.length > consumedRows || allRows.length === fetchLimit;
15823
+ return textResult({
15824
+ messages: processed,
15825
+ returned: processed.length,
15826
+ offset,
15827
+ limit,
15828
+ scanned: allRows.length,
15829
+ scan_limit: fetchLimit,
15830
+ has_more: hasMore,
15831
+ next_offset: hasMore ? offset + consumedRows : void 0
15832
+ });
15247
15833
  }
15248
15834
  );
15249
15835
  }