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
@@ -125,6 +125,13 @@ function generateTaskId() {
125
125
  return Array.from(bytes).map((b) => b.toString(16).padStart(2, "0")).join("");
126
126
  }
127
127
  function findExecutorPath() {
128
+ const configuredPath = process.env.AGOR_EXECUTOR_PATH;
129
+ if (configuredPath) {
130
+ if (!existsSync(configuredPath)) {
131
+ throw new Error(`Configured AGOR_EXECUTOR_PATH does not exist: ${configuredPath}`);
132
+ }
133
+ return configuredPath;
134
+ }
128
135
  const dirname = typeof __dirname !== "undefined" ? __dirname : path4.dirname(fileURLToPath(import.meta.url));
129
136
  const possiblePaths = [
130
137
  path4.join(dirname, "../executor/cli.js"),
@@ -423,12 +430,16 @@ function createServiceToken(jwtSecret, expiresIn, scope = {}) {
423
430
  expiresIn || "5m"
424
431
  );
425
432
  }
426
- function generateSessionToken(app) {
433
+ function serviceTokenScopeForParams(params) {
434
+ const tenantId = params?.tenant?.tenant_id ?? params?.tenant_id ?? params?.user?.tenant_id;
435
+ return tenantId ? { tenant_id: tenantId } : {};
436
+ }
437
+ function generateSessionToken(app, scope = {}) {
427
438
  const jwtSecret = app.settings.authentication?.secret;
428
439
  if (!jwtSecret) {
429
440
  throw new Error("JWT secret not configured in app settings");
430
441
  }
431
- return createServiceToken(jwtSecret);
442
+ return createServiceToken(jwtSecret, void 0, scope);
432
443
  }
433
444
  var configuredDaemonUrl, configuredExecutorDefaults, EXECUTOR_RESULT_PREFIX;
434
445
  var init_spawn_executor = __esm({
@@ -448,7 +459,8 @@ function isBranchInspectResult(value) {
448
459
  }
449
460
  async function inspectBranchViaExecutor(app, branchId, options = {}) {
450
461
  const sessionToken = generateSessionToken(
451
- app
462
+ app,
463
+ options.serviceTokenScope
452
464
  );
453
465
  const result = await runExecutorCommand(
454
466
  {
@@ -545,7 +557,8 @@ async function fireAlwaysNewZoneTrigger(input) {
545
557
  const asUser = db ? await resolveExecutorReadAsUser(db, user) : void 0;
546
558
  const { currentSha, currentRef } = await inspectBranchViaExecutor(app, branch.branch_id, {
547
559
  asUser,
548
- logPrefix: `[zone-trigger ${branch.name}]`
560
+ logPrefix: `[zone-trigger ${branch.name}]`,
561
+ serviceTokenScope: serviceTokenScopeForParams(params)
549
562
  });
550
563
  const newSession = await app.service("sessions").create(
551
564
  {
@@ -588,14 +601,15 @@ var init_zone_trigger = __esm({
588
601
  "use strict";
589
602
  init_branch_inspect();
590
603
  init_executor_read_impersonation();
604
+ init_spawn_executor();
591
605
  VALID_AGENTS = ["claude-code", "codex", "gemini", "opencode"];
592
606
  }
593
607
  });
594
608
 
595
609
  // src/mcp/tools/branches.ts
596
610
  import { existsSync as existsSync2 } from "fs";
597
- import { isBranchRbacEnabled as isBranchRbacEnabled2 } from "@agor/core/config";
598
- import { BranchRepository as BranchRepository5, shortId as shortId6 } from "@agor/core/db";
611
+ import { isBranchRbacEnabled as isBranchRbacEnabled2, loadConfig as loadConfig2 } from "@agor/core/config";
612
+ import { BranchRepository as BranchRepository6, shortId as shortId6 } from "@agor/core/db";
599
613
  import { BRANCH_PERMISSION_LEVELS as BRANCH_PERMISSION_LEVELS2, getAssistantConfig as getAssistantConfig3, isAssistant as isAssistant3 } from "@agor/core/types";
600
614
  import { computeZoneRelativePosition } from "@agor/core/utils/board-placement";
601
615
  import { normalizeOptionalHttpUrl } from "@agor/core/utils/url";
@@ -15114,11 +15128,19 @@ function date4(params) {
15114
15128
  // ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/external.js
15115
15129
  config(en_default());
15116
15130
 
15117
- // src/mcp/resolve-ids.ts
15118
- async function resolveSessionId(ctx, id) {
15119
- const entity = await ctx.app.service("sessions").get(id, ctx.baseServiceParams);
15120
- return entity.session_id;
15131
+ // src/utils/branch-authorization.ts
15132
+ import { shortId } from "@agor/core/db";
15133
+ import { Forbidden, NotAuthenticated, NotFound } from "@agor/core/feathers";
15134
+ import { BRANCH_PERMISSION_LEVELS, hasMinimumRole, ROLES } from "@agor/core/types";
15135
+ function isSuperAdmin(role, allowSuperadmin = true) {
15136
+ if (!allowSuperadmin) return false;
15137
+ return role === ROLES.SUPERADMIN || role === "owner";
15121
15138
  }
15139
+ var PERMISSION_RANK = Object.fromEntries(
15140
+ BRANCH_PERMISSION_LEVELS.map((level, i) => [level, i - 1])
15141
+ );
15142
+
15143
+ // src/mcp/resolve-ids.ts
15122
15144
  async function resolveBranchId(ctx, id) {
15123
15145
  const entity = await ctx.app.service("branches").get(id, ctx.baseServiceParams);
15124
15146
  return entity.branch_id;
@@ -15150,6 +15172,11 @@ function mcpOptionalString(fieldName, description) {
15150
15172
  error: `${fieldName} must be a string when provided.`
15151
15173
  }).optional().describe(description);
15152
15174
  }
15175
+ function mcpOptionalNonEmptyString(fieldName, description) {
15176
+ return external_exports.string({
15177
+ error: `${fieldName} must be a string when provided.`
15178
+ }).min(1, `${fieldName} cannot be empty when provided.`).optional().describe(description);
15179
+ }
15153
15180
  function mcpOptionalNonBlankString(fieldName, description) {
15154
15181
  return external_exports.string({
15155
15182
  error: `${fieldName} must be a string when provided.`
@@ -15195,7 +15222,11 @@ import { ListToolsRequestSchema } from "@modelcontextprotocol/sdk/types.js";
15195
15222
 
15196
15223
  // src/mcp/tokens.ts
15197
15224
  import { MCP_TOKEN } from "@agor/core/config";
15198
- import { generateId, SessionRepository, shortId } from "@agor/core/db";
15225
+ import {
15226
+ generateId,
15227
+ SessionRepository,
15228
+ shortId as shortId2
15229
+ } from "@agor/core/db";
15199
15230
  import {
15200
15231
  MCP_TOKEN_AUDIENCE,
15201
15232
  MCP_TOKEN_ISSUER
@@ -15216,6 +15247,7 @@ var DOMAIN_DESCRIPTIONS = {
15216
15247
  users: "User accounts, profiles, preferences, and administration",
15217
15248
  analytics: "Usage and cost tracking leaderboard",
15218
15249
  "mcp-servers": "External MCP server configuration and OAuth management",
15250
+ gateway: "Gateway channels for Slack, GitHub, Teams, and other message integrations",
15219
15251
  proxies: "Configured HTTP proxies for third-party APIs (Shortcut, Linear, Jira, etc.)",
15220
15252
  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",
15221
15253
  knowledge: "DB-backed markdown knowledge documents, version history, search, and graph links",
@@ -15229,16 +15261,6 @@ function formatDomainDescriptionsForInstructions() {
15229
15261
  import path from "path";
15230
15262
  import { BranchRepository } from "@agor/core/db";
15231
15263
  import { NotFoundError } from "@agor/core/utils/errors";
15232
-
15233
- // src/utils/branch-authorization.ts
15234
- import { shortId as shortId2 } from "@agor/core/db";
15235
- import { Forbidden, NotAuthenticated, NotFound } from "@agor/core/feathers";
15236
- import { BRANCH_PERMISSION_LEVELS, hasMinimumRole, ROLES } from "@agor/core/types";
15237
- var PERMISSION_RANK = Object.fromEntries(
15238
- BRANCH_PERMISSION_LEVELS.map((level, i) => [level, i - 1])
15239
- );
15240
-
15241
- // src/mcp/tools/artifacts.ts
15242
15264
  var SANDPACK_TEMPLATES = [
15243
15265
  "react",
15244
15266
  "react-ts",
@@ -15295,12 +15317,211 @@ function assertValidVariant(repo, variant) {
15295
15317
  }
15296
15318
  }
15297
15319
 
15320
+ // src/mcp/tools/gateway-channels.ts
15321
+ import {
15322
+ BranchRepository as BranchRepository2,
15323
+ GatewayChannelRepository,
15324
+ SessionRepository as SessionRepository2,
15325
+ ThreadSessionMapRepository
15326
+ } from "@agor/core/db";
15327
+ import {
15328
+ buildSlackManifest,
15329
+ getConnector,
15330
+ requiredBotEvents,
15331
+ requiredBotScopes
15332
+ } from "@agor/core/gateway";
15333
+ import {
15334
+ GATEWAY_REDACTED_SENTINEL,
15335
+ GATEWAY_SENSITIVE_CONFIG_FIELDS,
15336
+ getRequiredSecretFields,
15337
+ hasMinimumRole as hasMinimumRole2,
15338
+ ROLES as ROLES2
15339
+ } from "@agor/core/types";
15340
+ var configSchema = external_exports.record(external_exports.string(), external_exports.unknown()).describe(
15341
+ "Platform-specific gateway configuration. Secrets are stored encrypted and returned redacted. Prefer env/template references for shared credentials where the connector supports them."
15342
+ );
15343
+ var outboundTargetSchema = external_exports.string().trim().regex(
15344
+ /^(channel:[^:\s]+|channel_name:[^\s]+|#[^\s]+|(?:email:|user_email:)?[^@\s]+@[^@\s]+\.[^@\s]+)$/
15345
+ ).describe(
15346
+ "Slack outbound target for v0: channel:C123, #project-updates, channel_name:project-updates, or user@example.com. Thread targets are intentionally not supported."
15347
+ );
15348
+ var envVarSchema = external_exports.strictObject({
15349
+ key: mcpRequiredString("agenticConfig.envVars[].key", "Environment variable name"),
15350
+ value: mcpRequiredString(
15351
+ "agenticConfig.envVars[].value",
15352
+ `Environment variable value. Prefer references/templates over raw secrets. Existing redacted values may be passed as '${GATEWAY_REDACTED_SENTINEL}' on update to preserve them.`
15353
+ ),
15354
+ forceOverride: external_exports.boolean().optional().describe("When true, channel value wins over user env vars. Defaults to false.")
15355
+ });
15356
+ var agenticConfigSchema = external_exports.strictObject({
15357
+ agent: external_exports.enum(["claude-code", "claude-code-cli", "codex", "gemini", "opencode", "copilot", "cursor"]).describe("Agent used for sessions created from this gateway channel."),
15358
+ permissionMode: external_exports.enum([
15359
+ "default",
15360
+ "acceptEdits",
15361
+ "bypassPermissions",
15362
+ "plan",
15363
+ "dontAsk",
15364
+ "autoEdit",
15365
+ "yolo",
15366
+ "ask",
15367
+ "auto",
15368
+ "on-failure",
15369
+ "allow-all"
15370
+ ]).optional().describe("Permission mode for spawned sessions."),
15371
+ modelConfig: external_exports.record(external_exports.string(), external_exports.unknown()).optional().describe("Agent model configuration."),
15372
+ mcpServerIds: external_exports.array(external_exports.string().min(1)).optional().describe("MCP server IDs to attach to gateway-created sessions."),
15373
+ codexSandboxMode: external_exports.enum(["read-only", "workspace-write", "danger-full-access"]).optional().describe("Codex sandbox mode for Codex gateway sessions."),
15374
+ codexApprovalPolicy: external_exports.enum(["untrusted", "on-failure", "on-request", "never"]).optional().describe("Codex approval policy for Codex gateway sessions."),
15375
+ codexNetworkAccess: external_exports.boolean().optional().describe("Allow Codex network access."),
15376
+ envVars: external_exports.array(envVarSchema).optional().describe("Gateway-level env vars. Values are redacted in responses.")
15377
+ }).describe("Agent/session defaults for conversations created through this gateway channel.");
15378
+ var gatewayChannelCreateSchema = external_exports.strictObject({
15379
+ name: mcpRequiredString("name", 'Human-readable channel name, e.g. "Engineering Slack".'),
15380
+ channelType: external_exports.enum(["slack", "github", "teams", "discord", "whatsapp", "telegram"]).default("slack").describe("Gateway platform type. Current active connectors are slack, github, and teams."),
15381
+ targetBranchId: mcpRequiredId(
15382
+ "targetBranchId",
15383
+ "Branch",
15384
+ "Branch/worktree ID that this gateway channel prompts."
15385
+ ),
15386
+ agorUserId: mcpOptionalId(
15387
+ "agorUserId",
15388
+ "User",
15389
+ "Agor user ID whose identity is used when platform-user alignment is disabled."
15390
+ ),
15391
+ enabled: external_exports.boolean().optional().describe("Whether the channel is active. Defaults to true."),
15392
+ config: configSchema,
15393
+ agenticConfig: agenticConfigSchema.optional()
15394
+ }).superRefine((value, issue2) => {
15395
+ const config2 = value.config ?? {};
15396
+ if (value.enabled !== false) {
15397
+ const requiredSecretMessages = {
15398
+ bot_token: "config.bot_token is required for Slack. Prefer a bot token stored outside the transcript when possible.",
15399
+ app_token: "config.app_token is required for Slack Socket Mode.",
15400
+ private_key: "config.private_key is required for GitHub gateway channels.",
15401
+ app_password: "config.app_password is required for Teams gateway channels."
15402
+ };
15403
+ for (const field of getRequiredSecretFields(value.channelType, config2)) {
15404
+ if (!config2[field]) {
15405
+ issue2.addIssue({
15406
+ code: "custom",
15407
+ path: ["config", field],
15408
+ message: requiredSecretMessages[field] ?? `config.${field} is required for ${value.channelType} gateway channels.`
15409
+ });
15410
+ }
15411
+ }
15412
+ }
15413
+ if (value.channelType === "github") {
15414
+ for (const field of ["app_id", "installation_id", "watch_repos"]) {
15415
+ if (!config2[field]) {
15416
+ issue2.addIssue({
15417
+ code: "custom",
15418
+ path: ["config", field],
15419
+ message: `config.${field} is required for GitHub gateway channels.`
15420
+ });
15421
+ }
15422
+ }
15423
+ }
15424
+ if (value.channelType === "teams" && !config2.app_id) {
15425
+ issue2.addIssue({
15426
+ code: "custom",
15427
+ path: ["config", "app_id"],
15428
+ message: "config.app_id is required for Teams gateway channels."
15429
+ });
15430
+ }
15431
+ if (value.channelType === "slack" && config2.align_slack_users !== true && !value.agorUserId) {
15432
+ issue2.addIssue({
15433
+ code: "custom",
15434
+ path: ["agorUserId"],
15435
+ message: "Run-as-selected-user needs agorUserId \u2014 set config.align_slack_users:true to align by email, or pass agorUserId."
15436
+ });
15437
+ }
15438
+ });
15439
+ var slackThreadHistorySchema = external_exports.strictObject({
15440
+ sessionId: mcpOptionalId(
15441
+ "sessionId",
15442
+ "Session",
15443
+ "Preferred: resolve the Slack thread mapping from an accessible Agor session ID (UUIDv7 or short ID). If provided, gatewayChannelId/threadId are ignored."
15444
+ ),
15445
+ gatewayChannelId: mcpOptionalId(
15446
+ "gatewayChannelId",
15447
+ "Gateway channel",
15448
+ "Explicit Slack gateway channel ID (UUIDv7 or short ID). Required when sessionId is omitted."
15449
+ ),
15450
+ threadId: mcpOptionalNonEmptyString(
15451
+ "threadId",
15452
+ "Explicit Slack thread ID in Agor gateway format, e.g. C123-171234.000100. Required when sessionId is omitted."
15453
+ ),
15454
+ oldestTs: mcpOptionalNonEmptyString(
15455
+ "oldestTs",
15456
+ "Optional Slack oldest timestamp bound, e.g. 171234.000100."
15457
+ ),
15458
+ latestTs: mcpOptionalNonEmptyString(
15459
+ "latestTs",
15460
+ "Optional Slack latest timestamp bound, e.g. 171235.000200."
15461
+ ),
15462
+ inclusive: external_exports.boolean().optional().describe("Whether Slack should include messages exactly at oldest/latest bounds."),
15463
+ limit: mcpLimit(50).describe("Maximum Slack messages to request (default: 50, max: 200)."),
15464
+ includeBotMessages: external_exports.boolean().optional().describe("Include Slack bot messages in the returned history. Defaults to false."),
15465
+ format: external_exports.enum(["messages", "markdown"]).optional().describe(
15466
+ 'Response body format. "messages" returns normalized JSON; "markdown" returns a transcript string.'
15467
+ )
15468
+ }).superRefine((value, issue2) => {
15469
+ if (value.sessionId) return;
15470
+ if (!value.gatewayChannelId) {
15471
+ issue2.addIssue({
15472
+ code: "custom",
15473
+ path: ["gatewayChannelId"],
15474
+ message: "gatewayChannelId is required when sessionId is omitted."
15475
+ });
15476
+ }
15477
+ if (!value.threadId) {
15478
+ issue2.addIssue({
15479
+ code: "custom",
15480
+ path: ["threadId"],
15481
+ message: "threadId is required when sessionId is omitted."
15482
+ });
15483
+ }
15484
+ });
15485
+ var gatewayChannelUpdateSchema = external_exports.strictObject({
15486
+ gatewayChannelId: mcpRequiredId(
15487
+ "gatewayChannelId",
15488
+ "Gateway channel",
15489
+ "Gateway channel ID (UUIDv7 or short ID)"
15490
+ ),
15491
+ name: mcpOptionalNonEmptyString("name", "New human-readable channel name."),
15492
+ channelType: external_exports.enum(["slack", "github", "teams", "discord", "whatsapp", "telegram"]).optional().describe("Gateway platform type. Changing this should include compatible config."),
15493
+ targetBranchId: mcpOptionalId("targetBranchId", "Branch", "New target branch/worktree ID."),
15494
+ agorUserId: mcpOptionalId("agorUserId", "User", "New run-as Agor user ID."),
15495
+ enabled: external_exports.boolean().optional().describe("Enable/disable the channel."),
15496
+ config: configSchema.optional().describe(
15497
+ `Partial platform config to merge. Send '${GATEWAY_REDACTED_SENTINEL}' or omit sensitive fields to preserve existing secrets; send a new value to rotate.`
15498
+ ),
15499
+ agenticConfig: agenticConfigSchema.nullable().optional().describe("Replace agent/session defaults. null clears the gateway agentic config.")
15500
+ });
15501
+ var slackManifestGenerateSchema = external_exports.strictObject({
15502
+ appName: mcpRequiredString("appName", 'Slack app display name, e.g. "Agor".'),
15503
+ botDisplayName: mcpOptionalNonEmptyString(
15504
+ "botDisplayName",
15505
+ "Bot user display name. Defaults to appName."
15506
+ ),
15507
+ publicChannels: external_exports.boolean().default(false).describe("Listen in public channels (#channel) via @mention."),
15508
+ privateChannels: external_exports.boolean().default(false).describe("Listen in private channels (groups) via @mention."),
15509
+ groupDms: external_exports.boolean().default(false).describe("Listen in group DMs (multi-person IMs) via @mention."),
15510
+ alignUsers: external_exports.boolean().default(true).describe(
15511
+ "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)."
15512
+ ),
15513
+ outbound: external_exports.boolean().default(false).describe("Proactive outbound: post to channels by name and DM users by email."),
15514
+ restrictToChannelIds: external_exports.array(external_exports.string().min(1)).optional().describe(
15515
+ "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."
15516
+ )
15517
+ });
15518
+
15298
15519
  // src/mcp/tools/knowledge.ts
15299
15520
  import { createHash, randomUUID } from "crypto";
15300
15521
  import fs2 from "fs";
15301
15522
  import { mkdir, readFile, writeFile } from "fs/promises";
15302
15523
  import path3 from "path";
15303
- import { BranchRepository as BranchRepository3, KnowledgeNamespaceRepository as KnowledgeNamespaceRepository2 } from "@agor/core/db";
15524
+ import { BranchRepository as BranchRepository4, KnowledgeNamespaceRepository as KnowledgeNamespaceRepository2 } from "@agor/core/db";
15304
15525
  import { NotFound as NotFound2 } from "@agor/core/feathers";
15305
15526
  import {
15306
15527
  buildKnowledgeDocumentUri,
@@ -15326,14 +15547,14 @@ import { unified } from "unified";
15326
15547
 
15327
15548
  // src/services/assistant-knowledge.ts
15328
15549
  import {
15329
- BranchRepository as BranchRepository2,
15550
+ BranchRepository as BranchRepository3,
15330
15551
  KnowledgeNamespaceRepository,
15331
15552
  shortId as shortId3
15332
15553
  } from "@agor/core/db";
15333
15554
  import { getAssistantConfig, isAssistant } from "@agor/core/types";
15334
15555
 
15335
15556
  // src/services/knowledge-access.ts
15336
- import { hasMinimumRole as hasMinimumRole2, ROLES as ROLES2 } from "@agor/core/types";
15557
+ import { hasMinimumRole as hasMinimumRole3, ROLES as ROLES3 } from "@agor/core/types";
15337
15558
 
15338
15559
  // src/utils/branch-workspace-path.ts
15339
15560
  import fs from "fs";
@@ -15475,6 +15696,261 @@ var KnowledgeNodeRefSchema = external_exports.object(
15475
15696
  "Reference to an existing or creatable knowledge graph node. Prefer nodeId or uri; use typed IDs for links to Agor core objects."
15476
15697
  );
15477
15698
 
15699
+ // src/mcp/tools/mcp-servers.ts
15700
+ import {
15701
+ isReservedMCPCustomHeaderName,
15702
+ isValidMCPHeaderName
15703
+ } from "@agor/core/tools/mcp/http-headers";
15704
+ var mcpNameSchema = external_exports.string({
15705
+ error: 'name is required and must be a string. Example: { "name": "context7" }'
15706
+ }).regex(
15707
+ /^[a-z][a-z0-9_-]{0,63}$/,
15708
+ 'name must start with a lowercase letter and contain only lowercase letters, digits, "_" or "-" (max 64 chars).'
15709
+ ).describe('Stable internal ID, e.g. "context7", "github", "datadog". Cannot be changed later.');
15710
+ var stringMapSchema = external_exports.record(external_exports.string(), external_exports.string()).describe(
15711
+ "JSON object of string keys/values. Values may use templates like {{ user.env.API_TOKEN }}."
15712
+ );
15713
+ var mcpAuthInputSchema = external_exports.strictObject({
15714
+ type: external_exports.enum(["none", "bearer", "jwt", "oauth"]).describe(
15715
+ "Authentication mode. OAuth tip: start with { type: 'oauth' } plus the MCP server URL; only add endpoint/client fields if discovery/DCR fails."
15716
+ ),
15717
+ token: mcpOptionalString(
15718
+ "auth.token",
15719
+ "Bearer token. Prefer {{ user.env.MCP_TOKEN }} templates; raw secrets will be stored redacted but are still visible in this MCP call transcript."
15720
+ ),
15721
+ api_url: mcpOptionalString("auth.api_url", "JWT auth API URL."),
15722
+ api_token: mcpOptionalString(
15723
+ "auth.api_token",
15724
+ "JWT API token. Prefer {{ user.env.JWT_TOKEN }} templates."
15725
+ ),
15726
+ api_secret: mcpOptionalString(
15727
+ "auth.api_secret",
15728
+ "JWT API secret. Prefer {{ user.env.JWT_SECRET }} templates."
15729
+ ),
15730
+ oauth_authorization_url: mcpOptionalString(
15731
+ "auth.oauth_authorization_url",
15732
+ "Optional OAuth authorization endpoint override. Leave blank for discovery."
15733
+ ),
15734
+ oauth_token_url: mcpOptionalString(
15735
+ "auth.oauth_token_url",
15736
+ "Optional OAuth token endpoint override. Leave blank for discovery."
15737
+ ),
15738
+ oauth_client_id: mcpOptionalString(
15739
+ "auth.oauth_client_id",
15740
+ "Optional OAuth client ID for providers that require a pre-registered app. Leave blank for Dynamic Client Registration where supported."
15741
+ ),
15742
+ oauth_client_secret: mcpOptionalString(
15743
+ "auth.oauth_client_secret",
15744
+ "Optional OAuth client secret. Prefer {{ user.env.OAUTH_CLIENT_SECRET }} templates; raw secrets are not returned by this tool."
15745
+ ),
15746
+ oauth_scope: mcpOptionalString("auth.oauth_scope", "Optional OAuth scopes, space-separated."),
15747
+ oauth_grant_type: external_exports.enum(["client_credentials", "authorization_code"]).optional().describe(
15748
+ "OAuth grant type hint. Defaults to 'client_credentials' for legacy token testing; browser OAuth uses authorization code with PKCE."
15749
+ ),
15750
+ oauth_mode: external_exports.enum(["per_user", "shared"]).optional().describe("OAuth token ownership. Defaults to 'per_user' (recommended)."),
15751
+ insecure: external_exports.boolean().optional().describe("Allow insecure auth behavior if supported.")
15752
+ }).superRefine((auth, issue2) => {
15753
+ if (auth.type === "bearer" && !auth.token) {
15754
+ issue2.addIssue({
15755
+ code: "custom",
15756
+ path: ["token"],
15757
+ message: "auth.token is required when auth.type is 'bearer'."
15758
+ });
15759
+ }
15760
+ const fieldsByType = {
15761
+ none: [],
15762
+ bearer: ["token"],
15763
+ jwt: ["api_url", "api_token", "api_secret"],
15764
+ oauth: [
15765
+ "oauth_authorization_url",
15766
+ "oauth_token_url",
15767
+ "oauth_client_id",
15768
+ "oauth_client_secret",
15769
+ "oauth_scope",
15770
+ "oauth_grant_type",
15771
+ "oauth_mode",
15772
+ "insecure"
15773
+ ]
15774
+ };
15775
+ const allowed = /* @__PURE__ */ new Set(["type", ...fieldsByType[auth.type]]);
15776
+ for (const key of Object.keys(auth)) {
15777
+ if (!allowed.has(key)) {
15778
+ issue2.addIssue({
15779
+ code: "custom",
15780
+ path: [key],
15781
+ message: `auth.${key} does not apply when auth.type is '${auth.type}'.`
15782
+ });
15783
+ }
15784
+ }
15785
+ if (auth.type === "jwt") {
15786
+ for (const field of ["api_url", "api_token", "api_secret"]) {
15787
+ if (!auth[field]) {
15788
+ issue2.addIssue({
15789
+ code: "custom",
15790
+ path: [field],
15791
+ message: `auth.${field} is required when auth.type is 'jwt'.`
15792
+ });
15793
+ }
15794
+ }
15795
+ }
15796
+ }).describe(
15797
+ "Auth config. Common OAuth path: { type: 'oauth' } plus url; leave OAuth URLs/client fields blank first so metadata discovery/DCR can do the work."
15798
+ );
15799
+ 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' }.");
15800
+ var mcpServerCreateSchema = external_exports.strictObject({
15801
+ name: mcpNameSchema,
15802
+ displayName: mcpOptionalNonEmptyString(
15803
+ "displayName",
15804
+ 'Human-friendly display name, e.g. "Context7 MCP".'
15805
+ ),
15806
+ description: mcpOptionalString("description", "Optional description."),
15807
+ transport: external_exports.enum(["stdio", "http", "sse"]).optional().describe(
15808
+ "Transport. Defaults to 'http' when url is provided, otherwise 'stdio'. Most remote OAuth MCP servers use 'http'."
15809
+ ),
15810
+ url: mcpOptionalString(
15811
+ "url",
15812
+ "Remote MCP server URL for http/sse transports. Supports templates like {{ user.env.MCP_URL }}."
15813
+ ),
15814
+ command: mcpOptionalString("command", 'Local command for stdio transport, e.g. "npx".'),
15815
+ args: external_exports.array(external_exports.string()).optional().describe(
15816
+ 'Arguments for stdio command, e.g. ["-y", "@modelcontextprotocol/server-filesystem"].'
15817
+ ),
15818
+ headers: stringMapSchema.optional().describe(
15819
+ "Custom HTTP headers for http/sse transports. Do not include Authorization; use auth instead. Prefer templates for secret values."
15820
+ ),
15821
+ env: stringMapSchema.optional().describe(
15822
+ "Environment variables for the MCP process/config. Prefer {{ user.env.VAR }} templates for secrets."
15823
+ ),
15824
+ auth: mcpAuthInputSchema.optional(),
15825
+ scope: external_exports.enum(["global", "session"]).optional().describe(
15826
+ "Scope. Defaults to 'global' so it appears in agor_mcp_servers_list. 'session' is only for explicit session attachment workflows."
15827
+ ),
15828
+ enabled: external_exports.boolean().optional().describe("Whether the server is enabled. Defaults to true."),
15829
+ attachToCurrentSession: external_exports.boolean().optional().describe(
15830
+ `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.`
15831
+ ),
15832
+ attachToSessionId: mcpOptionalId(
15833
+ "attachToSessionId",
15834
+ "Session",
15835
+ "Optional session ID (UUIDv7 or short ID) to attach after creating. Overrides attachToCurrentSession."
15836
+ )
15837
+ }).superRefine((value, issue2) => validateMcpServerConfig(value, issue2, false));
15838
+ var mcpServerUpdateSchema = external_exports.strictObject({
15839
+ mcpServerId: mcpRequiredId(
15840
+ "mcpServerId",
15841
+ "MCP server",
15842
+ "MCP server ID to update (UUIDv7 or short ID)"
15843
+ ),
15844
+ displayName: mcpOptionalNonEmptyString("displayName", "New human-friendly display name."),
15845
+ description: mcpOptionalString(
15846
+ "description",
15847
+ "New description. Pass an empty string to clear."
15848
+ ),
15849
+ transport: external_exports.enum(["stdio", "http", "sse"]).optional().describe("Transport to set."),
15850
+ url: mcpOptionalString("url", "Remote MCP URL for http/sse transports."),
15851
+ command: mcpOptionalString("command", "Local command for stdio transport."),
15852
+ args: external_exports.array(external_exports.string()).optional().describe("Arguments for stdio command."),
15853
+ headers: stringMapSchema.optional().describe(
15854
+ "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."
15855
+ ),
15856
+ env: stringMapSchema.optional().describe("Replace environment variables."),
15857
+ auth: mcpAuthInputSchema.optional().describe(
15858
+ "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."
15859
+ ),
15860
+ scope: external_exports.enum(["global", "session"]).optional().describe("Scope to set."),
15861
+ enabled: external_exports.boolean().optional().describe("Enabled flag."),
15862
+ toolPermissions: toolPermissionsSchema.optional()
15863
+ }).superRefine((value, issue2) => validateMcpServerConfig(value, issue2, true));
15864
+ function validateHeaders(headers, issue2) {
15865
+ if (!headers) return;
15866
+ for (const [key, value] of Object.entries(headers)) {
15867
+ const name = key.trim();
15868
+ if (!name) {
15869
+ issue2.addIssue({
15870
+ code: "custom",
15871
+ path: ["headers", key],
15872
+ message: "Header names cannot be empty."
15873
+ });
15874
+ } else if (!isValidMCPHeaderName(name)) {
15875
+ issue2.addIssue({
15876
+ code: "custom",
15877
+ path: ["headers", key],
15878
+ message: `Invalid HTTP header name: ${key}`
15879
+ });
15880
+ } else if (isReservedMCPCustomHeaderName(name)) {
15881
+ issue2.addIssue({
15882
+ code: "custom",
15883
+ path: ["headers", key],
15884
+ message: `Header ${name} is reserved; configure Authorization through auth instead.`
15885
+ });
15886
+ }
15887
+ if (typeof value !== "string") {
15888
+ issue2.addIssue({
15889
+ code: "custom",
15890
+ path: ["headers", key],
15891
+ message: "Header values must be strings."
15892
+ });
15893
+ }
15894
+ }
15895
+ }
15896
+ function validateMcpServerConfig(value, issue2, partial2) {
15897
+ const transport = value.transport ?? (value.url ? "http" : "stdio");
15898
+ validateHeaders(value.headers, issue2);
15899
+ if (!partial2 || value.transport !== void 0 || value.url !== void 0 || value.command !== void 0) {
15900
+ if (transport === "stdio") {
15901
+ if (!partial2 && !value.command) {
15902
+ issue2.addIssue({
15903
+ code: "custom",
15904
+ path: ["command"],
15905
+ message: "command is required for stdio transport."
15906
+ });
15907
+ }
15908
+ if (value.url) {
15909
+ issue2.addIssue({
15910
+ code: "custom",
15911
+ path: ["url"],
15912
+ message: "url only applies to http/sse transports, not stdio."
15913
+ });
15914
+ }
15915
+ if (value.headers) {
15916
+ issue2.addIssue({
15917
+ code: "custom",
15918
+ path: ["headers"],
15919
+ message: "headers only apply to http/sse transports, not stdio."
15920
+ });
15921
+ }
15922
+ if (value.auth && value.auth.type !== "none") {
15923
+ issue2.addIssue({
15924
+ code: "custom",
15925
+ path: ["auth", "type"],
15926
+ message: "Authentication config only applies to http/sse transports."
15927
+ });
15928
+ }
15929
+ } else if (!partial2 && !value.url) {
15930
+ issue2.addIssue({
15931
+ code: "custom",
15932
+ path: ["url"],
15933
+ message: `url is required for ${transport} transport.`
15934
+ });
15935
+ } else {
15936
+ if (value.command) {
15937
+ issue2.addIssue({
15938
+ code: "custom",
15939
+ path: ["command"],
15940
+ message: "command only applies to stdio transport, not http/sse."
15941
+ });
15942
+ }
15943
+ if (value.args && value.args.length > 0) {
15944
+ issue2.addIssue({
15945
+ code: "custom",
15946
+ path: ["args"],
15947
+ message: "args only apply to stdio transport, not http/sse."
15948
+ });
15949
+ }
15950
+ }
15951
+ }
15952
+ }
15953
+
15478
15954
  // src/mcp/tools/messages.ts
15479
15955
  import { isBranchRbacEnabled } from "@agor/core/config";
15480
15956
  import {
@@ -15482,13 +15958,15 @@ import {
15482
15958
  asc,
15483
15959
  desc,
15484
15960
  eq,
15485
- inArray,
15961
+ gte,
15962
+ lte,
15486
15963
  messages as messagesTable,
15487
15964
  or,
15488
- SessionRepository as SessionRepository2,
15489
15965
  select,
15490
- sql
15966
+ sql,
15967
+ visibleSessionReferenceAccessExists
15491
15968
  } from "@agor/core/db";
15969
+ var MAX_CROSS_SESSION_SEARCH_WINDOW_MS = 31 * 24 * 60 * 60 * 1e3;
15492
15970
 
15493
15971
  // src/mcp/tools/proxies.ts
15494
15972
  import { getBaseUrl, loadConfig, resolveProxies } from "@agor/core/config";
@@ -15503,7 +15981,7 @@ var agenticToolConfigSchema = external_exports.object({
15503
15981
  model_config: external_exports.object({
15504
15982
  mode: external_exports.enum(["alias", "exact"]).optional(),
15505
15983
  model: mcpOptionalString("model_config.model", "Model name override."),
15506
- effort: external_exports.enum(["low", "medium", "high", "max"]).optional(),
15984
+ effort: external_exports.enum(["low", "medium", "high", "xhigh", "max"]).optional(),
15507
15985
  advisorModel: mcpOptionalString(
15508
15986
  "model_config.advisorModel",
15509
15987
  "Claude Code advisor model override (e.g. 'opus', 'sonnet', 'fable')."
@@ -15519,7 +15997,7 @@ var agenticToolConfigSchema = external_exports.object({
15519
15997
 
15520
15998
  // src/mcp/tools/sessions.ts
15521
15999
  import {
15522
- BranchRepository as BranchRepository4,
16000
+ BranchRepository as BranchRepository5,
15523
16001
  SessionRelationshipRepository,
15524
16002
  shortId as shortId4
15525
16003
  } from "@agor/core/db";
@@ -15542,6 +16020,7 @@ import {
15542
16020
  } from "@agor/core/types";
15543
16021
  init_branch_inspect();
15544
16022
  init_executor_read_impersonation();
16023
+ init_spawn_executor();
15545
16024
  var modelConfigObjectSchema = external_exports.object({
15546
16025
  mode: external_exports.enum(["alias", "exact"]).optional().describe("Model selection mode (default: 'alias')"),
15547
16026
  // .min(1): reject empty-string model explicitly so callers don't silently
@@ -15550,7 +16029,7 @@ var modelConfigObjectSchema = external_exports.object({
15550
16029
  "modelConfig.model",
15551
16030
  "Model identifier (e.g. 'claude-opus-4-6', 'claude-sonnet-4-6')"
15552
16031
  ),
15553
- effort: external_exports.enum(["low", "medium", "high", "max"]).optional().describe("Reasoning effort level (default: high)"),
16032
+ effort: external_exports.enum(["low", "medium", "high", "xhigh", "max"]).optional().describe("Reasoning effort level (default: high)"),
15554
16033
  advisorModel: mcpOptionalString(
15555
16034
  "modelConfig.advisorModel",
15556
16035
  "Claude Code advisor model override (e.g. 'opus', 'sonnet', 'fable', or a full model ID)."
@@ -15571,10 +16050,10 @@ var modelConfigInputSchema = external_exports.union([
15571
16050
  );
15572
16051
 
15573
16052
  // src/mcp/tools/users.ts
15574
- import { ROLES as ROLES3 } from "@agor/core/types";
16053
+ import { ROLES as ROLES4 } from "@agor/core/types";
15575
16054
 
15576
16055
  // src/mcp/tools/widgets.ts
15577
- import { MessageRole as MessageRole2 } from "@agor/core/types";
16056
+ import { getRequiredSecretFields as getRequiredSecretFields2, hasMinimumRole as hasMinimumRole5, MessageRole as MessageRole2, ROLES as ROLES6 } from "@agor/core/types";
15578
16057
 
15579
16058
  // src/utils/append-system-message.ts
15580
16059
  import { generateId as generateId2, SessionRepository as SessionRepository3 } from "@agor/core/db";
@@ -15584,9 +16063,20 @@ import { MessageRole } from "@agor/core/types";
15584
16063
  import { EXECUTING_TASK_STATUSES, isTaskExecuting } from "@agor/core/types";
15585
16064
 
15586
16065
  // src/widgets/env-vars/index.ts
15587
- import { ENV_VAR_CONSTRAINTS, isEnvVarAllowed, validateEnvVar } from "@agor/core/config";
16066
+ import {
16067
+ ENV_VAR_CONSTRAINTS,
16068
+ isEnvVarAllowed,
16069
+ validateEnvVar
16070
+ } from "@agor/core/config";
16071
+ import { SessionEnvSelectionRepository } from "@agor/core/db";
15588
16072
  import { BadRequest } from "@agor/core/feathers";
15589
16073
  var ENV_VAR_NAME_REGEX = ENV_VAR_CONSTRAINTS.NAME_PATTERN;
16074
+ var envVarFieldMetadataSchema = external_exports.object({
16075
+ description: external_exports.string().max(200).optional(),
16076
+ placeholder: external_exports.string().max(120).optional(),
16077
+ format_hint: external_exports.string().max(80).optional(),
16078
+ input_type: external_exports.enum(["password", "text", "textarea"]).default("password").optional()
16079
+ }).strict();
15590
16080
  var envVarsParamsSchema = external_exports.object({
15591
16081
  names: external_exports.array(external_exports.string().regex(ENV_VAR_NAME_REGEX)).min(1).max(10).refine((names) => new Set(names).size === names.length, {
15592
16082
  message: "Env var names must be unique"
@@ -15594,20 +16084,82 @@ var envVarsParamsSchema = external_exports.object({
15594
16084
  reason: external_exports.string().min(1).max(200).describe(
15595
16085
  "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."
15596
16086
  ),
16087
+ variable_metadata: external_exports.record(external_exports.string().regex(ENV_VAR_NAME_REGEX), envVarFieldMetadataSchema).optional().describe(
16088
+ "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."
16089
+ ),
15597
16090
  auto_resume: external_exports.boolean().default(true).describe(
15598
16091
  "When true (default), a system-authored prompt is auto-queued back into the agent on submit/dismiss."
15599
16092
  )
16093
+ }).superRefine((params, ctx) => {
16094
+ const requested = new Set(params.names);
16095
+ for (const key of Object.keys(params.variable_metadata ?? {})) {
16096
+ if (!requested.has(key)) {
16097
+ ctx.addIssue({
16098
+ code: external_exports.ZodIssueCode.custom,
16099
+ path: ["variable_metadata", key],
16100
+ message: `Metadata key ${key} must match a requested env var name`
16101
+ });
16102
+ }
16103
+ }
15600
16104
  });
15601
16105
  var envVarsSubmitSchema = external_exports.object({
15602
16106
  values: external_exports.record(
15603
16107
  external_exports.string().regex(ENV_VAR_NAME_REGEX),
15604
16108
  external_exports.string().min(1).max(ENV_VAR_CONSTRAINTS.MAX_VALUE_LENGTH)
15605
- ).refine((v) => Object.keys(v).length >= 1 && Object.keys(v).length <= 10, {
15606
- message: "Must submit between 1 and 10 env vars"
15607
- }),
16109
+ ).default({}),
16110
+ 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."),
15608
16111
  scope: external_exports.enum(["global", "session"])
16112
+ }).superRefine((submit, ctx) => {
16113
+ const valueNames = Object.keys(submit.values);
16114
+ const existingNames = submit.use_existing;
16115
+ const total = valueNames.length + existingNames.length;
16116
+ if (total < 1 || total > 10) {
16117
+ ctx.addIssue({
16118
+ code: external_exports.ZodIssueCode.custom,
16119
+ message: "Must submit between 1 and 10 env vars"
16120
+ });
16121
+ }
16122
+ const duplicates = existingNames.filter((name) => valueNames.includes(name));
16123
+ for (const name of duplicates) {
16124
+ ctx.addIssue({
16125
+ code: external_exports.ZodIssueCode.custom,
16126
+ path: ["use_existing"],
16127
+ message: `Cannot both submit and use existing value for ${name}`
16128
+ });
16129
+ }
16130
+ if (new Set(existingNames).size !== existingNames.length) {
16131
+ ctx.addIssue({
16132
+ code: external_exports.ZodIssueCode.custom,
16133
+ path: ["use_existing"],
16134
+ message: "use_existing names must be unique"
16135
+ });
16136
+ }
15609
16137
  });
15610
16138
 
16139
+ // src/widgets/gateway-token/index.ts
16140
+ import { Forbidden as Forbidden2 } from "@agor/core/feathers";
16141
+ import {
16142
+ GATEWAY_SENSITIVE_CONFIG_FIELDS as GATEWAY_SENSITIVE_CONFIG_FIELDS2,
16143
+ hasMinimumRole as hasMinimumRole4,
16144
+ ROLES as ROLES5
16145
+ } from "@agor/core/types";
16146
+ var MAX_TOKEN_LENGTH = 8192;
16147
+ var gatewayTokenParamsSchema = external_exports.object({
16148
+ gatewayChannelId: external_exports.string().min(1).describe("Gateway channel whose credentials are being set."),
16149
+ channelType: external_exports.enum(["slack", "discord", "whatsapp", "telegram", "github", "teams"]).describe("Platform type of the channel; drives per-field placeholders."),
16150
+ channelName: external_exports.string().min(1).max(200).describe("Human-readable channel name for the form heading and prompts."),
16151
+ 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, {
16152
+ message: "Token field names must be unique"
16153
+ }).describe("Secret config field names to collect (subset of the sensitive fields)."),
16154
+ reason: external_exports.string().min(1).max(200).describe("One sentence explaining why the tokens are needed. Renders as a muted line.")
16155
+ }).strict();
16156
+ var gatewayTokenSubmitSchema = external_exports.object({
16157
+ tokens: external_exports.partialRecord(
16158
+ external_exports.enum(GATEWAY_SENSITIVE_CONFIG_FIELDS2),
16159
+ external_exports.string().min(1).max(MAX_TOKEN_LENGTH)
16160
+ ).describe("Map of sensitive field name \u2192 credential value.")
16161
+ }).strict();
16162
+
15611
16163
  // src/mcp/server.ts
15612
16164
  var DEBUG_MCP_REQUESTS = process.env.AGOR_DEBUG_MCP_REQUESTS === "1" || process.env.DEBUG?.includes("mcp-requests");
15613
16165
  function coerceString(value) {
@@ -15720,6 +16272,13 @@ function notesPreview(notes, maxLength = 200) {
15720
16272
  if (singleLine.length <= maxLength) return singleLine;
15721
16273
  return `${singleLine.slice(0, maxLength - 1)}\u2026`;
15722
16274
  }
16275
+ async function shouldScopeAssistantDiscoveryToUser(ctx) {
16276
+ if (!isBranchRbacEnabled2()) return false;
16277
+ if (ctx.authenticatedUser?._isServiceAccount) return false;
16278
+ const config2 = await loadConfig2();
16279
+ const allowSuperadmin = config2.execution?.allow_superadmin === true;
16280
+ return !isSuperAdmin(ctx.authenticatedUser?.role, allowSuperadmin);
16281
+ }
15723
16282
  async function findAllArchivedBranchesForCleanup(ctx, baseQuery) {
15724
16283
  const branches = [];
15725
16284
  let skip = 0;
@@ -16020,7 +16579,7 @@ function registerBranchTools(server, ctx) {
16020
16579
  const variant = coerceString(args.variant);
16021
16580
  if (variant) assertValidVariant(repo, variant);
16022
16581
  if (autoSuffix) {
16023
- const branchRepo = new BranchRepository5(ctx.db);
16582
+ const branchRepo = new BranchRepository6(ctx.db);
16024
16583
  const activeNames = await branchRepo.getActiveNamesByRepo(repoId);
16025
16584
  const existingNames = new Set(activeNames);
16026
16585
  if (existingNames.has(branchName)) {
@@ -16092,7 +16651,7 @@ function registerBranchTools(server, ctx) {
16092
16651
  server.registerTool(
16093
16652
  "agor_branches_update",
16094
16653
  {
16095
- description: "Update metadata for an existing branch (issue/PR URLs, notes, board placement, custom context, RBAC permissions, owners)",
16654
+ description: "Update metadata for an existing branch (issue/PR URLs, notes, board placement, attention state, custom context, RBAC permissions, owners)",
16096
16655
  annotations: { idempotentHint: true },
16097
16656
  inputSchema: external_exports.object({
16098
16657
  branchId: mcpOptionalId(
@@ -16114,6 +16673,9 @@ function registerBranchTools(server, ctx) {
16114
16673
  mcpServerIds: external_exports.array(mcpRequiredId("mcpServerIds[]", "MCP server", "MCP server ID")).nullable().optional().describe(
16115
16674
  "Default MCP server IDs for new sessions in this branch. Sessions inherit these unless they explicitly specify their own. Pass null to clear."
16116
16675
  ),
16676
+ needsAttention: external_exports.boolean({ error: "needsAttention must be a boolean when provided." }).optional().describe(
16677
+ "Branch/card attention highlight state. Pass true to mark the branch as needing attention, or false to clear it."
16678
+ ),
16117
16679
  // RBAC fields (optional, safe to ignore for single-user setups)
16118
16680
  othersCan: external_exports.enum(BRANCH_PERMISSION_LEVELS2).optional().describe(
16119
16681
  `App-layer permission for non-owner users. "none" = no access, "view" = read-only, "session" = can create & prompt own sessions, "prompt" = can prompt ANY session (including other users'), "all" = full access. Always effective regardless of Unix isolation mode. Single-user setups can ignore this.`
@@ -16178,6 +16740,10 @@ function registerBranchTools(server, ctx) {
16178
16740
  fieldsProvided++;
16179
16741
  updates.mcp_server_ids = args.mcpServerIds === null ? [] : await Promise.all(args.mcpServerIds.map((id) => resolveMcpServerId(ctx, id)));
16180
16742
  }
16743
+ if (args.needsAttention !== void 0) {
16744
+ fieldsProvided++;
16745
+ updates.needs_attention = args.needsAttention;
16746
+ }
16181
16747
  if (args.othersCan !== void 0) {
16182
16748
  fieldsProvided++;
16183
16749
  updates.others_can = args.othersCan;
@@ -16279,11 +16845,21 @@ function registerBranchTools(server, ctx) {
16279
16845
  "triggerTemplate and targetSessionId cannot be used when zoneId is null; clearing a zone pin does not run zone triggers."
16280
16846
  );
16281
16847
  }
16282
- const targetSessionId = rawTargetSessionId ? await resolveSessionId(ctx, rawTargetSessionId) : void 0;
16848
+ const targetSession = rawTargetSessionId ? await ctx.app.service("sessions").get(rawTargetSessionId, ctx.baseServiceParams) : void 0;
16849
+ const targetSessionId = targetSession?.session_id;
16283
16850
  console.log(
16284
16851
  zoneId === null ? `\u{1F4CD} MCP clearing zone pin for branch ${shortId6(branchId)}` : `\u{1F4CD} MCP pinning branch ${shortId6(branchId)} to zone ${zoneId}`
16285
16852
  );
16286
16853
  const branch = await ctx.app.service("branches").get(branchId, ctx.baseServiceParams);
16854
+ if (triggerTemplate && targetSession && targetSession.branch_id !== branch.branch_id) {
16855
+ throw new Error(
16856
+ `targetSessionId ${shortId6(targetSession.session_id)} belongs to branch ${shortId6(
16857
+ targetSession.branch_id
16858
+ )}, but agor_branches_set_zone is moving branch ${shortId6(
16859
+ branch.branch_id
16860
+ )}. Use a session in the moved branch or create a branch-local session first.`
16861
+ );
16862
+ }
16287
16863
  const boardObjectsService = ctx.app.service("board-objects");
16288
16864
  if (zoneId === null) {
16289
16865
  const boardObject2 = await boardObjectsService.findByBranchId(
@@ -16347,12 +16923,6 @@ function registerBranchTools(server, ctx) {
16347
16923
  console.log(`\u{1F3AF} Triggering zone prompt template for session ${shortId6(targetSessionId)}`);
16348
16924
  const { renderTemplate: renderTemplate2 } = await import("@agor/core/templates/handlebars-helpers");
16349
16925
  const { buildZoneTriggerContext: buildZoneTriggerContext2 } = await import("@agor/core/templates/zone-trigger-context");
16350
- let targetSession;
16351
- try {
16352
- targetSession = await ctx.app.service("sessions").get(targetSessionId, ctx.baseServiceParams);
16353
- } catch {
16354
- targetSession = void 0;
16355
- }
16356
16926
  const templateContext = buildZoneTriggerContext2({
16357
16927
  branch,
16358
16928
  board,
@@ -16552,11 +17122,15 @@ function registerBranchTools(server, ctx) {
16552
17122
  })
16553
17123
  },
16554
17124
  async (args) => {
16555
- const query = { archived: false, $limit: args.limit || 200 };
16556
- if (args.repoId) query.repo_id = await resolveRepoId(ctx, args.repoId);
16557
- const result = await ctx.app.service("branches").find({ query, ...ctx.baseServiceParams });
16558
- const branches = Array.isArray(result) ? result : result.data;
16559
- const assistants = branches.filter((w) => isAssistant3(w));
17125
+ const limit = args.limit || 200;
17126
+ const repoId = args.repoId ? await resolveRepoId(ctx, args.repoId) : void 0;
17127
+ const branchRepo = new BranchRepository6(ctx.db);
17128
+ const assistants = await branchRepo.findAssistantBranches({
17129
+ archived: false,
17130
+ ...repoId ? { repo_id: repoId } : {},
17131
+ ...await shouldScopeAssistantDiscoveryToUser(ctx) ? { userId: ctx.userId } : {},
17132
+ limit
17133
+ });
16560
17134
  const shaped = assistants.map((w) => {
16561
17135
  const config2 = getAssistantConfig3(w);
16562
17136
  return {