agor-live 0.16.2 → 0.16.3

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 (186) hide show
  1. package/dist/cli/commands/board/add-session.js +4 -8
  2. package/dist/cli/commands/board/list.js +2 -4
  3. package/dist/cli/commands/mcp/list.js +1 -2
  4. package/dist/cli/commands/mcp/remove.js +1 -2
  5. package/dist/cli/commands/mcp/show.js +1 -2
  6. package/dist/cli/commands/repo/rm.js +1 -2
  7. package/dist/cli/commands/session/load-claude.js +1 -2
  8. package/dist/cli/commands/user/delete.js +1 -2
  9. package/dist/cli/commands/user/update.js +1 -2
  10. package/dist/cli/commands/worktree/add.js +1 -2
  11. package/dist/cli/commands/worktree/archive.js +1 -2
  12. package/dist/cli/commands/worktree/list.js +3 -6
  13. package/dist/cli/commands/worktree/rm.js +1 -2
  14. package/dist/cli/commands/worktree/show.js +1 -2
  15. package/dist/cli/commands/worktree/unarchive.js +1 -2
  16. package/dist/core/api/index.cjs +87 -2
  17. package/dist/core/api/index.d.cts +53 -10
  18. package/dist/core/api/index.d.ts +53 -10
  19. package/dist/core/api/index.js +85 -1
  20. package/dist/core/{feathers-CzuSOZgY.d.ts → feathers-CKfl55ut.d.ts} +10 -2
  21. package/dist/core/{feathers-CYAHFZ05.d.cts → feathers-NY8lH6YZ.d.cts} +10 -2
  22. package/dist/core/index.cjs +85 -0
  23. package/dist/core/index.d.cts +2 -2
  24. package/dist/core/index.d.ts +2 -2
  25. package/dist/core/index.js +84 -0
  26. package/dist/core/types/index.d.cts +1 -1
  27. package/dist/core/types/index.d.ts +1 -1
  28. package/dist/daemon/index.js +18 -1
  29. package/dist/daemon/register-routes.js +15 -0
  30. package/dist/daemon/register-services.js +3 -1
  31. package/dist/daemon/services/mcp-servers.d.ts +7 -2
  32. package/dist/executor/db/feathers-repositories.d.ts +1 -0
  33. package/dist/executor/db/feathers-repositories.d.ts.map +1 -1
  34. package/dist/executor/db/feathers-repositories.js +1 -0
  35. package/dist/executor/handlers/sdk/claude.d.ts.map +1 -1
  36. package/dist/executor/handlers/sdk/claude.js +1 -1
  37. package/dist/executor/handlers/sdk/codex.d.ts.map +1 -1
  38. package/dist/executor/handlers/sdk/codex.js +1 -1
  39. package/dist/executor/sdk-handlers/base/diff-enrichment.d.ts +4 -1
  40. package/dist/executor/sdk-handlers/base/diff-enrichment.d.ts.map +1 -1
  41. package/dist/executor/sdk-handlers/base/diff-enrichment.js +97 -24
  42. package/dist/executor/sdk-handlers/claude/claude-tool.d.ts +9 -1
  43. package/dist/executor/sdk-handlers/claude/claude-tool.d.ts.map +1 -1
  44. package/dist/executor/sdk-handlers/claude/claude-tool.js +17 -7
  45. package/dist/executor/sdk-handlers/codex/codex-tool.d.ts +5 -2
  46. package/dist/executor/sdk-handlers/codex/codex-tool.d.ts.map +1 -1
  47. package/dist/executor/sdk-handlers/codex/codex-tool.js +122 -24
  48. package/dist/executor/sdk-handlers/codex/prompt-service.d.ts +7 -1
  49. package/dist/executor/sdk-handlers/codex/prompt-service.d.ts.map +1 -1
  50. package/dist/executor/sdk-handlers/codex/prompt-service.js +111 -17
  51. package/dist/ui/assets/{_basePickBy-By_woBZB.js → _basePickBy-CM6p9_3C.js} +1 -1
  52. package/dist/ui/assets/_basePickBy-CM6p9_3C.js.gz +0 -0
  53. package/dist/ui/assets/{_baseUniq-C2jLj-Al.js → _baseUniq-CHMdQkaA.js} +1 -1
  54. package/dist/ui/assets/_baseUniq-CHMdQkaA.js.gz +0 -0
  55. package/dist/ui/assets/{arc-DADMFVbt.js → arc-Czp_Gn_m.js} +1 -1
  56. package/dist/ui/assets/arc-Czp_Gn_m.js.gz +0 -0
  57. package/dist/ui/assets/{architectureDiagram-VXUJARFQ-rNJ5lYJQ.js → architectureDiagram-VXUJARFQ-Cz-z2R4z.js} +1 -1
  58. package/dist/ui/assets/architectureDiagram-VXUJARFQ-Cz-z2R4z.js.gz +0 -0
  59. package/dist/ui/assets/{base-80a1f760-BVsv_T1S.js → base-80a1f760-DL2sFXEh.js} +1 -1
  60. package/dist/ui/assets/{blockDiagram-VD42YOAC-CezN66iB.js → blockDiagram-VD42YOAC-C62DfRc6.js} +1 -1
  61. package/dist/ui/assets/blockDiagram-VD42YOAC-C62DfRc6.js.gz +0 -0
  62. package/dist/ui/assets/{c4Diagram-YG6GDRKO-Dze59YuK.js → c4Diagram-YG6GDRKO-DGSWKqxL.js} +1 -1
  63. package/dist/ui/assets/c4Diagram-YG6GDRKO-DGSWKqxL.js.gz +0 -0
  64. package/dist/ui/assets/channel-CmfC29hp.js +1 -0
  65. package/dist/ui/assets/{chunk-4BX2VUAB-CXL-V_XA.js → chunk-4BX2VUAB-CuJEBfIh.js} +1 -1
  66. package/dist/ui/assets/{chunk-55IACEB6-CI3h0xTl.js → chunk-55IACEB6-DYgjRl-z.js} +1 -1
  67. package/dist/ui/assets/{chunk-B4BG7PRW-CFohiEqO.js → chunk-B4BG7PRW-rqPu7wjt.js} +1 -1
  68. package/dist/ui/assets/chunk-B4BG7PRW-rqPu7wjt.js.gz +0 -0
  69. package/dist/ui/assets/{chunk-DI55MBZ5-BbF4fGKj.js → chunk-DI55MBZ5-D7PtpA49.js} +1 -1
  70. package/dist/ui/assets/chunk-DI55MBZ5-D7PtpA49.js.gz +0 -0
  71. package/dist/ui/assets/{chunk-FMBD7UC4-C5x6cpDg.js → chunk-FMBD7UC4-1R4kh4IH.js} +1 -1
  72. package/dist/ui/assets/{chunk-QN33PNHL-CEDiC29y.js → chunk-QN33PNHL-qNBgj7JQ.js} +1 -1
  73. package/dist/ui/assets/{chunk-QZHKN3VN-DPo28cCF.js → chunk-QZHKN3VN-JUwZqL5s.js} +1 -1
  74. package/dist/ui/assets/{chunk-TZMSLE5B-C94jSlIG.js → chunk-TZMSLE5B-Bk4l2qq1.js} +1 -1
  75. package/dist/ui/assets/chunk-TZMSLE5B-Bk4l2qq1.js.gz +0 -0
  76. package/dist/ui/assets/classDiagram-2ON5EDUG-LD317OSr.js +1 -0
  77. package/dist/ui/assets/classDiagram-v2-WZHVMYZB-LD317OSr.js +1 -0
  78. package/dist/ui/assets/clone-iT69LzXk.js +1 -0
  79. package/dist/ui/assets/{consoleHook-59e792cb-cpS6JVM4.js → consoleHook-59e792cb-BjB_4eqO.js} +1 -1
  80. package/dist/ui/assets/consoleHook-59e792cb-BjB_4eqO.js.gz +0 -0
  81. package/dist/ui/assets/{cose-bilkent-S5V4N54A-CcoEg_Ct.js → cose-bilkent-S5V4N54A-Db3GpSRP.js} +1 -1
  82. package/dist/ui/assets/cose-bilkent-S5V4N54A-Db3GpSRP.js.gz +0 -0
  83. package/dist/ui/assets/{dagre-6UL2VRFP-DWAyqs2B.js → dagre-6UL2VRFP-D9RUH_36.js} +1 -1
  84. package/dist/ui/assets/dagre-6UL2VRFP-D9RUH_36.js.gz +0 -0
  85. package/dist/ui/assets/{diagram-PSM6KHXK-C7J2MNfc.js → diagram-PSM6KHXK-C51S0t1m.js} +1 -1
  86. package/dist/ui/assets/diagram-PSM6KHXK-C51S0t1m.js.gz +0 -0
  87. package/dist/ui/assets/{diagram-QEK2KX5R-6KZjqziN.js → diagram-QEK2KX5R-Bl99kj4s.js} +1 -1
  88. package/dist/ui/assets/diagram-QEK2KX5R-Bl99kj4s.js.gz +0 -0
  89. package/dist/ui/assets/{diagram-S2PKOQOG-DIL01325.js → diagram-S2PKOQOG-Dm52PeWx.js} +1 -1
  90. package/dist/ui/assets/diagram-S2PKOQOG-Dm52PeWx.js.gz +0 -0
  91. package/dist/ui/assets/{erDiagram-Q2GNP2WA-D5j4CetG.js → erDiagram-Q2GNP2WA-K5D_GKDZ.js} +1 -1
  92. package/dist/ui/assets/erDiagram-Q2GNP2WA-K5D_GKDZ.js.gz +0 -0
  93. package/dist/ui/assets/{flowDiagram-NV44I4VS-Bxx2iEi-.js → flowDiagram-NV44I4VS-D7fCREXV.js} +1 -1
  94. package/dist/ui/assets/flowDiagram-NV44I4VS-D7fCREXV.js.gz +0 -0
  95. package/dist/ui/assets/{ganttDiagram-LVOFAZNH-BtBi1ZfT.js → ganttDiagram-LVOFAZNH-CNW9D2UF.js} +1 -1
  96. package/dist/ui/assets/ganttDiagram-LVOFAZNH-CNW9D2UF.js.gz +0 -0
  97. package/dist/ui/assets/{gitGraphDiagram-NY62KEGX-CY1TKvzA.js → gitGraphDiagram-NY62KEGX-CzSHwK4S.js} +1 -1
  98. package/dist/ui/assets/gitGraphDiagram-NY62KEGX-CzSHwK4S.js.gz +0 -0
  99. package/dist/ui/assets/{graph-DC6eH7AX.js → graph-iZG1PujV.js} +1 -1
  100. package/dist/ui/assets/graph-iZG1PujV.js.gz +0 -0
  101. package/dist/ui/assets/{index-599aeaf7-Dh_oObwY.js → index-599aeaf7-BSVvtdOR.js} +1 -1
  102. package/dist/ui/assets/index-599aeaf7-BSVvtdOR.js.gz +0 -0
  103. package/dist/ui/assets/{index-CxWOjjRu.js → index-Bv9iC_mb.js} +1 -1
  104. package/dist/ui/assets/index-Bv9iC_mb.js.gz +0 -0
  105. package/dist/ui/assets/{index-DJLnZ-9H.js → index-CmhCTwYo.js} +255 -257
  106. package/dist/ui/assets/index-CmhCTwYo.js.gz +0 -0
  107. package/dist/ui/assets/{index-DQn7RJ8z.js → index-DX9HbDkF.js} +1 -1
  108. package/dist/ui/assets/index-DX9HbDkF.js.gz +0 -0
  109. package/dist/ui/assets/{infoDiagram-ER5ION4S-COpJ37pc.js → infoDiagram-ER5ION4S-7UpJXgGv.js} +1 -1
  110. package/dist/ui/assets/{journeyDiagram-XKPGCS4Q-CpODBkng.js → journeyDiagram-XKPGCS4Q-B_u-rXxp.js} +1 -1
  111. package/dist/ui/assets/journeyDiagram-XKPGCS4Q-B_u-rXxp.js.gz +0 -0
  112. package/dist/ui/assets/{kanban-definition-3W4ZIXB7-DWShJ5Su.js → kanban-definition-3W4ZIXB7-C60Ys_tG.js} +1 -1
  113. package/dist/ui/assets/kanban-definition-3W4ZIXB7-C60Ys_tG.js.gz +0 -0
  114. package/dist/ui/assets/{layout-ttMTfXMb.js → layout-2nOBwYEK.js} +1 -1
  115. package/dist/ui/assets/layout-2nOBwYEK.js.gz +0 -0
  116. package/dist/ui/assets/{linear-DD8VTncp.js → linear-BBfmsNEf.js} +1 -1
  117. package/dist/ui/assets/linear-BBfmsNEf.js.gz +0 -0
  118. package/dist/ui/assets/{mermaid.core-BlvxruUX.js → mermaid.core-BMmc28YS.js} +5 -5
  119. package/dist/ui/assets/mermaid.core-BMmc28YS.js.gz +0 -0
  120. package/dist/ui/assets/{mindmap-definition-VGOIOE7T-CR0ESdqM.js → mindmap-definition-VGOIOE7T-CUOfncA2.js} +1 -1
  121. package/dist/ui/assets/mindmap-definition-VGOIOE7T-CUOfncA2.js.gz +0 -0
  122. package/dist/ui/assets/{pieDiagram-ADFJNKIX-B94eVYhY.js → pieDiagram-ADFJNKIX-CYt5K7tI.js} +1 -1
  123. package/dist/ui/assets/pieDiagram-ADFJNKIX-CYt5K7tI.js.gz +0 -0
  124. package/dist/ui/assets/{quadrantDiagram-AYHSOK5B-C4tNKfCm.js → quadrantDiagram-AYHSOK5B-D3z7FGdo.js} +1 -1
  125. package/dist/ui/assets/quadrantDiagram-AYHSOK5B-D3z7FGdo.js.gz +0 -0
  126. package/dist/ui/assets/{requirementDiagram-UZGBJVZJ-CuG3A95Q.js → requirementDiagram-UZGBJVZJ-DSmK1rXj.js} +1 -1
  127. package/dist/ui/assets/requirementDiagram-UZGBJVZJ-DSmK1rXj.js.gz +0 -0
  128. package/dist/ui/assets/{sankeyDiagram-TZEHDZUN-BCfc7mLC.js → sankeyDiagram-TZEHDZUN-BVudlnpo.js} +1 -1
  129. package/dist/ui/assets/sankeyDiagram-TZEHDZUN-BVudlnpo.js.gz +0 -0
  130. package/dist/ui/assets/{sequenceDiagram-WL72ISMW-D8tVuIkx.js → sequenceDiagram-WL72ISMW-DShMajjv.js} +1 -1
  131. package/dist/ui/assets/sequenceDiagram-WL72ISMW-DShMajjv.js.gz +0 -0
  132. package/dist/ui/assets/{stateDiagram-FKZM4ZOC-DvM8so2A.js → stateDiagram-FKZM4ZOC-9zK0uo4t.js} +1 -1
  133. package/dist/ui/assets/stateDiagram-FKZM4ZOC-9zK0uo4t.js.gz +0 -0
  134. package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-BZEgBfav.js +1 -0
  135. package/dist/ui/assets/{timeline-definition-IT6M3QCI-CP2O8vqw.js → timeline-definition-IT6M3QCI-DQ4HYAMD.js} +1 -1
  136. package/dist/ui/assets/timeline-definition-IT6M3QCI-DQ4HYAMD.js.gz +0 -0
  137. package/dist/ui/assets/{treemap-KMMF4GRG-SGJAEegj.js → treemap-KMMF4GRG-Curv75AA.js} +1 -1
  138. package/dist/ui/assets/treemap-KMMF4GRG-Curv75AA.js.gz +0 -0
  139. package/dist/ui/assets/{xychartDiagram-PRI3JC2R-CpwYBSmP.js → xychartDiagram-PRI3JC2R-BJdTipk8.js} +1 -1
  140. package/dist/ui/assets/xychartDiagram-PRI3JC2R-BJdTipk8.js.gz +0 -0
  141. package/dist/ui/index.html +1 -1
  142. package/package.json +1 -1
  143. package/dist/ui/assets/_basePickBy-By_woBZB.js.gz +0 -0
  144. package/dist/ui/assets/_baseUniq-C2jLj-Al.js.gz +0 -0
  145. package/dist/ui/assets/arc-DADMFVbt.js.gz +0 -0
  146. package/dist/ui/assets/architectureDiagram-VXUJARFQ-rNJ5lYJQ.js.gz +0 -0
  147. package/dist/ui/assets/blockDiagram-VD42YOAC-CezN66iB.js.gz +0 -0
  148. package/dist/ui/assets/c4Diagram-YG6GDRKO-Dze59YuK.js.gz +0 -0
  149. package/dist/ui/assets/channel-B2nSdT47.js +0 -1
  150. package/dist/ui/assets/chunk-B4BG7PRW-CFohiEqO.js.gz +0 -0
  151. package/dist/ui/assets/chunk-DI55MBZ5-BbF4fGKj.js.gz +0 -0
  152. package/dist/ui/assets/chunk-TZMSLE5B-C94jSlIG.js.gz +0 -0
  153. package/dist/ui/assets/classDiagram-2ON5EDUG-lwQJA5v0.js +0 -1
  154. package/dist/ui/assets/classDiagram-v2-WZHVMYZB-lwQJA5v0.js +0 -1
  155. package/dist/ui/assets/clone-DmZ98vg9.js +0 -1
  156. package/dist/ui/assets/consoleHook-59e792cb-cpS6JVM4.js.gz +0 -0
  157. package/dist/ui/assets/cose-bilkent-S5V4N54A-CcoEg_Ct.js.gz +0 -0
  158. package/dist/ui/assets/dagre-6UL2VRFP-DWAyqs2B.js.gz +0 -0
  159. package/dist/ui/assets/diagram-PSM6KHXK-C7J2MNfc.js.gz +0 -0
  160. package/dist/ui/assets/diagram-QEK2KX5R-6KZjqziN.js.gz +0 -0
  161. package/dist/ui/assets/diagram-S2PKOQOG-DIL01325.js.gz +0 -0
  162. package/dist/ui/assets/erDiagram-Q2GNP2WA-D5j4CetG.js.gz +0 -0
  163. package/dist/ui/assets/flowDiagram-NV44I4VS-Bxx2iEi-.js.gz +0 -0
  164. package/dist/ui/assets/ganttDiagram-LVOFAZNH-BtBi1ZfT.js.gz +0 -0
  165. package/dist/ui/assets/gitGraphDiagram-NY62KEGX-CY1TKvzA.js.gz +0 -0
  166. package/dist/ui/assets/graph-DC6eH7AX.js.gz +0 -0
  167. package/dist/ui/assets/index-599aeaf7-Dh_oObwY.js.gz +0 -0
  168. package/dist/ui/assets/index-CxWOjjRu.js.gz +0 -0
  169. package/dist/ui/assets/index-DJLnZ-9H.js.gz +0 -0
  170. package/dist/ui/assets/index-DQn7RJ8z.js.gz +0 -0
  171. package/dist/ui/assets/journeyDiagram-XKPGCS4Q-CpODBkng.js.gz +0 -0
  172. package/dist/ui/assets/kanban-definition-3W4ZIXB7-DWShJ5Su.js.gz +0 -0
  173. package/dist/ui/assets/layout-ttMTfXMb.js.gz +0 -0
  174. package/dist/ui/assets/linear-DD8VTncp.js.gz +0 -0
  175. package/dist/ui/assets/mermaid.core-BlvxruUX.js.gz +0 -0
  176. package/dist/ui/assets/mindmap-definition-VGOIOE7T-CR0ESdqM.js.gz +0 -0
  177. package/dist/ui/assets/pieDiagram-ADFJNKIX-B94eVYhY.js.gz +0 -0
  178. package/dist/ui/assets/quadrantDiagram-AYHSOK5B-C4tNKfCm.js.gz +0 -0
  179. package/dist/ui/assets/requirementDiagram-UZGBJVZJ-CuG3A95Q.js.gz +0 -0
  180. package/dist/ui/assets/sankeyDiagram-TZEHDZUN-BCfc7mLC.js.gz +0 -0
  181. package/dist/ui/assets/sequenceDiagram-WL72ISMW-D8tVuIkx.js.gz +0 -0
  182. package/dist/ui/assets/stateDiagram-FKZM4ZOC-DvM8so2A.js.gz +0 -0
  183. package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-kQ-gZX7K.js +0 -1
  184. package/dist/ui/assets/timeline-definition-IT6M3QCI-CP2O8vqw.js.gz +0 -0
  185. package/dist/ui/assets/treemap-KMMF4GRG-SGJAEegj.js.gz +0 -0
  186. package/dist/ui/assets/xychartDiagram-PRI3JC2R-CpwYBSmP.js.gz +0 -0
@@ -20,6 +20,9 @@ var DAEMON = {
20
20
  import { default as default2 } from "@feathersjs/authentication-client";
21
21
  var DEFAULT_DAEMON_URL = `http://${DAEMON.DEFAULT_HOST}:${DAEMON.DEFAULT_PORT}`;
22
22
  var BOARDS_SERVICE_EXTENDED = Symbol("agor.boardsServiceExtended");
23
+ var SERVICE_FIND_ALL_EXTENDED = Symbol("agor.serviceFindAllExtended");
24
+ var CLIENT_SERVICE_FACTORY_EXTENDED = Symbol("agor.clientServiceFactoryExtended");
25
+ var CLIENT_SESSIONS_HELPERS_EXTENDED = Symbol("agor.clientSessionsHelpersExtended");
23
26
  function extendBoardsService(client) {
24
27
  const boardsService = client.service("boards");
25
28
  if (boardsService[BOARDS_SERVICE_EXTENDED]) {
@@ -78,6 +81,82 @@ function extendBoardsService(client) {
78
81
  }
79
82
  boardsService[BOARDS_SERVICE_EXTENDED] = true;
80
83
  }
84
+ function normalizeFindResult(result) {
85
+ return Array.isArray(result) ? result : result.data;
86
+ }
87
+ function isPaginatedResult(result) {
88
+ return !Array.isArray(result) && typeof result === "object" && result !== null && Array.isArray(result.data);
89
+ }
90
+ function extendFindAllOnService(service) {
91
+ const findAllService = service;
92
+ if (findAllService[SERVICE_FIND_ALL_EXTENDED]) {
93
+ return;
94
+ }
95
+ findAllService.findAll = async (params) => {
96
+ const firstResult = await service.find(params);
97
+ if (!isPaginatedResult(firstResult)) {
98
+ return firstResult;
99
+ }
100
+ const allData = [...firstResult.data];
101
+ let total = firstResult.total;
102
+ let nextSkip = firstResult.skip + firstResult.data.length;
103
+ const pageLimit = typeof firstResult.limit === "number" && firstResult.limit > 0 ? firstResult.limit : firstResult.data.length;
104
+ if (!Number.isFinite(total) || pageLimit <= 0) {
105
+ return allData;
106
+ }
107
+ const baseQuery = params?.query && typeof params.query === "object" ? { ...params.query } : void 0;
108
+ while (allData.length < total) {
109
+ const nextParams = {
110
+ ...params ?? {},
111
+ query: {
112
+ ...baseQuery ?? {},
113
+ $skip: nextSkip,
114
+ $limit: pageLimit
115
+ }
116
+ };
117
+ const nextResult = await service.find(nextParams);
118
+ if (!isPaginatedResult(nextResult)) {
119
+ allData.push(...nextResult);
120
+ break;
121
+ }
122
+ if (nextResult.data.length === 0) {
123
+ break;
124
+ }
125
+ allData.push(...nextResult.data);
126
+ nextSkip = nextResult.skip + nextResult.data.length;
127
+ total = nextResult.total;
128
+ }
129
+ return allData;
130
+ };
131
+ findAllService[SERVICE_FIND_ALL_EXTENDED] = true;
132
+ }
133
+ function extendServiceFactory(client) {
134
+ const augmentedClient = client;
135
+ if (augmentedClient[CLIENT_SERVICE_FACTORY_EXTENDED]) {
136
+ return;
137
+ }
138
+ const rawService = client.service.bind(client);
139
+ augmentedClient.service = ((path) => {
140
+ const service = rawService(path);
141
+ extendFindAllOnService(service);
142
+ return service;
143
+ });
144
+ augmentedClient[CLIENT_SERVICE_FACTORY_EXTENDED] = true;
145
+ }
146
+ function extendSessionsHelpers(client) {
147
+ const augmentedClient = client;
148
+ if (augmentedClient[CLIENT_SESSIONS_HELPERS_EXTENDED]) {
149
+ return;
150
+ }
151
+ client.sessions = {
152
+ prompt: async (sessionId, prompt, options) => {
153
+ const { params, ...requestOptions } = options ?? {};
154
+ const response = await client.service(`sessions/${sessionId}/prompt`).create({ prompt, ...requestOptions }, params);
155
+ return response;
156
+ }
157
+ };
158
+ augmentedClient[CLIENT_SESSIONS_HELPERS_EXTENDED] = true;
159
+ }
81
160
  function getApiKeyFromEnv() {
82
161
  const key = typeof process !== "undefined" ? process.env?.AGOR_API_KEY : null;
83
162
  if (key?.startsWith("agor_sk_")) {
@@ -102,7 +181,9 @@ async function createRestClient(url = DEFAULT_DAEMON_URL, apiKey) {
102
181
  },
103
182
  io: { opts: {} }
104
183
  };
184
+ extendServiceFactory(client);
105
185
  extendBoardsService(client);
186
+ extendSessionsHelpers(client);
106
187
  return client;
107
188
  }
108
189
  function createClient(url = DEFAULT_DAEMON_URL, autoConnect = true, options) {
@@ -150,7 +231,9 @@ function createClient(url = DEFAULT_DAEMON_URL, autoConnect = true, options) {
150
231
  const storage = typeof globalThis !== "undefined" && "localStorage" in globalThis ? globalThis.localStorage : void 0;
151
232
  client.configure(authentication({ storage }));
152
233
  client.io = socket;
234
+ extendServiceFactory(client);
153
235
  extendBoardsService(client);
236
+ extendSessionsHelpers(client);
154
237
  return client;
155
238
  }
156
239
  async function isDaemonRunning(url = DEFAULT_DAEMON_URL) {
@@ -166,5 +249,6 @@ export {
166
249
  createClient,
167
250
  createRestClient,
168
251
  getApiKeyFromEnv,
169
- isDaemonRunning
252
+ isDaemonRunning,
253
+ normalizeFindResult
170
254
  };
@@ -246,8 +246,16 @@ interface AuthenticationResult {
246
246
  /** Decoded JWT payload */
247
247
  payload?: Record<string, unknown>;
248
248
  };
249
- /** Authenticated user (if available) */
250
- user?: AuthenticatedUser;
249
+ /**
250
+ * Authenticated user (if available)
251
+ *
252
+ * Uses a concrete user shape instead of `unknown` to improve client ergonomics.
253
+ * Includes the guaranteed auth fields plus optional full user fields.
254
+ */
255
+ user?: AuthenticatedUser & {
256
+ name?: string;
257
+ emoji?: string;
258
+ };
251
259
  /** Additional fields from strategy */
252
260
  [key: string]: unknown;
253
261
  }
@@ -246,8 +246,16 @@ interface AuthenticationResult {
246
246
  /** Decoded JWT payload */
247
247
  payload?: Record<string, unknown>;
248
248
  };
249
- /** Authenticated user (if available) */
250
- user?: AuthenticatedUser;
249
+ /**
250
+ * Authenticated user (if available)
251
+ *
252
+ * Uses a concrete user shape instead of `unknown` to improve client ergonomics.
253
+ * Includes the guaranteed auth fields plus optional full user fields.
254
+ */
255
+ user?: AuthenticatedUser & {
256
+ name?: string;
257
+ emoji?: string;
258
+ };
251
259
  /** Additional fields from strategy */
252
260
  [key: string]: unknown;
253
261
  }
@@ -3142,6 +3142,7 @@ __export(src_exports, {
3142
3142
  lockRowForUpdate: () => lockRowForUpdate,
3143
3143
  mcpServers: () => mcpServers3,
3144
3144
  messages: () => messages3,
3145
+ normalizeFindResult: () => normalizeFindResult,
3145
3146
  normalizeRole: () => normalizeRole,
3146
3147
  or: () => import_drizzle_orm25.or,
3147
3148
  parseAgorYml: () => parseAgorYml,
@@ -3217,6 +3218,9 @@ init_constants();
3217
3218
  var import_authentication_client2 = __toESM(require("@feathersjs/authentication-client"), 1);
3218
3219
  var DEFAULT_DAEMON_URL = `http://${DAEMON.DEFAULT_HOST}:${DAEMON.DEFAULT_PORT}`;
3219
3220
  var BOARDS_SERVICE_EXTENDED = Symbol("agor.boardsServiceExtended");
3221
+ var SERVICE_FIND_ALL_EXTENDED = Symbol("agor.serviceFindAllExtended");
3222
+ var CLIENT_SERVICE_FACTORY_EXTENDED = Symbol("agor.clientServiceFactoryExtended");
3223
+ var CLIENT_SESSIONS_HELPERS_EXTENDED = Symbol("agor.clientSessionsHelpersExtended");
3220
3224
  function extendBoardsService(client) {
3221
3225
  const boardsService = client.service("boards");
3222
3226
  if (boardsService[BOARDS_SERVICE_EXTENDED]) {
@@ -3275,6 +3279,82 @@ function extendBoardsService(client) {
3275
3279
  }
3276
3280
  boardsService[BOARDS_SERVICE_EXTENDED] = true;
3277
3281
  }
3282
+ function normalizeFindResult(result) {
3283
+ return Array.isArray(result) ? result : result.data;
3284
+ }
3285
+ function isPaginatedResult(result) {
3286
+ return !Array.isArray(result) && typeof result === "object" && result !== null && Array.isArray(result.data);
3287
+ }
3288
+ function extendFindAllOnService(service) {
3289
+ const findAllService = service;
3290
+ if (findAllService[SERVICE_FIND_ALL_EXTENDED]) {
3291
+ return;
3292
+ }
3293
+ findAllService.findAll = async (params) => {
3294
+ const firstResult = await service.find(params);
3295
+ if (!isPaginatedResult(firstResult)) {
3296
+ return firstResult;
3297
+ }
3298
+ const allData = [...firstResult.data];
3299
+ let total = firstResult.total;
3300
+ let nextSkip = firstResult.skip + firstResult.data.length;
3301
+ const pageLimit = typeof firstResult.limit === "number" && firstResult.limit > 0 ? firstResult.limit : firstResult.data.length;
3302
+ if (!Number.isFinite(total) || pageLimit <= 0) {
3303
+ return allData;
3304
+ }
3305
+ const baseQuery = params?.query && typeof params.query === "object" ? { ...params.query } : void 0;
3306
+ while (allData.length < total) {
3307
+ const nextParams = {
3308
+ ...params ?? {},
3309
+ query: {
3310
+ ...baseQuery ?? {},
3311
+ $skip: nextSkip,
3312
+ $limit: pageLimit
3313
+ }
3314
+ };
3315
+ const nextResult = await service.find(nextParams);
3316
+ if (!isPaginatedResult(nextResult)) {
3317
+ allData.push(...nextResult);
3318
+ break;
3319
+ }
3320
+ if (nextResult.data.length === 0) {
3321
+ break;
3322
+ }
3323
+ allData.push(...nextResult.data);
3324
+ nextSkip = nextResult.skip + nextResult.data.length;
3325
+ total = nextResult.total;
3326
+ }
3327
+ return allData;
3328
+ };
3329
+ findAllService[SERVICE_FIND_ALL_EXTENDED] = true;
3330
+ }
3331
+ function extendServiceFactory(client) {
3332
+ const augmentedClient = client;
3333
+ if (augmentedClient[CLIENT_SERVICE_FACTORY_EXTENDED]) {
3334
+ return;
3335
+ }
3336
+ const rawService = client.service.bind(client);
3337
+ augmentedClient.service = ((path2) => {
3338
+ const service = rawService(path2);
3339
+ extendFindAllOnService(service);
3340
+ return service;
3341
+ });
3342
+ augmentedClient[CLIENT_SERVICE_FACTORY_EXTENDED] = true;
3343
+ }
3344
+ function extendSessionsHelpers(client) {
3345
+ const augmentedClient = client;
3346
+ if (augmentedClient[CLIENT_SESSIONS_HELPERS_EXTENDED]) {
3347
+ return;
3348
+ }
3349
+ client.sessions = {
3350
+ prompt: async (sessionId, prompt, options) => {
3351
+ const { params, ...requestOptions } = options ?? {};
3352
+ const response = await client.service(`sessions/${sessionId}/prompt`).create({ prompt, ...requestOptions }, params);
3353
+ return response;
3354
+ }
3355
+ };
3356
+ augmentedClient[CLIENT_SESSIONS_HELPERS_EXTENDED] = true;
3357
+ }
3278
3358
  function getApiKeyFromEnv() {
3279
3359
  const key = typeof process !== "undefined" ? process.env?.AGOR_API_KEY : null;
3280
3360
  if (key?.startsWith("agor_sk_")) {
@@ -3299,7 +3379,9 @@ async function createRestClient(url = DEFAULT_DAEMON_URL, apiKey) {
3299
3379
  },
3300
3380
  io: { opts: {} }
3301
3381
  };
3382
+ extendServiceFactory(client);
3302
3383
  extendBoardsService(client);
3384
+ extendSessionsHelpers(client);
3303
3385
  return client;
3304
3386
  }
3305
3387
  function createClient(url = DEFAULT_DAEMON_URL, autoConnect = true, options) {
@@ -3347,7 +3429,9 @@ function createClient(url = DEFAULT_DAEMON_URL, autoConnect = true, options) {
3347
3429
  const storage = typeof globalThis !== "undefined" && "localStorage" in globalThis ? globalThis.localStorage : void 0;
3348
3430
  client.configure((0, import_authentication_client.default)({ storage }));
3349
3431
  client.io = socket;
3432
+ extendServiceFactory(client);
3350
3433
  extendBoardsService(client);
3434
+ extendSessionsHelpers(client);
3351
3435
  return client;
3352
3436
  }
3353
3437
  async function isDaemonRunning(url = DEFAULT_DAEMON_URL) {
@@ -13268,6 +13352,7 @@ function unpatchConsole() {
13268
13352
  lockRowForUpdate,
13269
13353
  mcpServers,
13270
13354
  messages,
13355
+ normalizeFindResult,
13271
13356
  normalizeRole,
13272
13357
  or,
13273
13358
  parseAgorYml,
@@ -1,4 +1,4 @@
1
- export { AgorClient, AgorService, BoardsService, MessagesService, ReposLocalService, ReposService, ServiceTypes, SessionsService, TasksService, WorktreesService, createClient, createRestClient, getApiKeyFromEnv, isDaemonRunning } from './api/index.cjs';
1
+ export { AgorClient, AgorService, BoardsService, ClientInput, CreatePayload, FindResult, MessagesService, PatchPayload, QueuedSessionPromptResult, ReposLocalService, ReposService, RunningSessionPromptResult, ServiceTypes, SessionPromptOptions, SessionPromptRequest, SessionPromptResult, SessionsClientHelpers, SessionsService, TasksService, UpdatePayload, WorktreesService, createClient, createRestClient, getApiKeyFromEnv, isDaemonRunning, normalizeFindResult } from './api/index.cjs';
2
2
  export { AGOR_INTERNAL_ENV_VARS, AGOR_USER_ENV_KEYS_VAR, ALLOWED_ENV_PREFIXES, ALLOWED_ENV_VARS, AgorYmlSchema, ApiKeyName, BLOCKED_ENV_VARS, ENV_VAR_CONSTRAINTS, KeyResolutionContext, KeyResolutionResult, ParsedRepoConfig, ParsedResourcesConfig, ParsedUserConfig, ParsedWorktreeConfig, RepoAction, ResolvedPassword, ResourceValidationError, UserAction, ValidationError, WorktreeAction, buildSlugToRepoIdMap, createUserProcessEnvironment, daemonResourcesConfigSchema, determineRepoAction, determineUserAction, determineWorktreeAction, enforcedAgentConfigSchema, formatValidationError, formatValidationErrors, getEnvVarBlockReason, isEnvVarAllowed, isValid, parseAgorYml, resolveApiKey, resolveApiKeySync, resolvePassword, resolveSystemEnvironment, resolveUserEnvironment, resourceRepoConfigSchema, resourceUserConfigSchema, resourceWorktreeConfigSchema, validateEnvVar, validateResourceCrossReferences, withUserEnvironment, withUserEnvironmentSync, writeAgorYml } from './config/index.cjs';
3
3
  export { d as ensureCodexHome, e as expandHomePath, g as getAgorHome, k as getBaseUrl, a as getConfigPath, f as getConfigValue, n as getCredential, j as getDaemonUrl, o as getDaemonUser, v as getDataHome, z as getDataHomeAsync, c as getDefaultConfig, w as getReposDir, A as getReposDirAsync, y as getWorktreePath, x as getWorktreesDir, B as getWorktreesDirAsync, i as initConfig, t as isUnixImpersonationEnabled, q as isWorktreeRbacEnabled, l as loadConfig, b as loadConfigFromFile, m as loadConfigSync, p as requireDaemonUser, r as resolveCodexHome, s as saveConfig, h as setConfigValue, u as unsetConfigValue } from './config-manager-DK1LMXEc.cjs';
4
4
  export { DAEMON, DATABASE, ENVIRONMENT, GIT, PAGINATION, REPO_SLUG_PATTERN, RepoReference, RepoReferenceOption, SESSION, WEBSOCKET, extractSlugFromUrl, formatRepoReference, getDefaultRepoReference, getGroupedRepoReferenceOptions, getRepoReferenceOptions, isValidGitUrl, isValidSlug, parseRepoReference, resolveRepoReference } from './config/browser.cjs';
@@ -13,7 +13,7 @@ export { A as AppBoardObject, f as ArtifactBoardObject, h as Board, c as BoardEn
13
13
  export { B as BoardComment, b as BoardCommentCreate, c as BoardCommentPatch, a as CommentAttachmentType, C as CommentReaction, R as ReactionSummary, g as getCommentAttachmentType, f as groupReactions, d as isReply, e as isResolvable, i as isThreadRoot } from './board-comment-BQKnob6r.cjs';
14
14
  export { A as ALLOWED_SERVICE_TIERS, i as DEFAULT_SERVICE_TIER, D as DaemonResourcesConfig, e as DaemonServicesConfig, E as EnforcedAgentConfig, R as ResourceRepoConfig, b as ResourceUserConfig, a as ResourceWorktreeConfig, h as SERVICE_DEPENDENCIES, g as SERVICE_GROUP_NAMES, j as SERVICE_GROUP_TO_MCP_DOMAINS, S as SERVICE_TIERS, d as SERVICE_TIER_RANK, p as ServiceDependencyViolation, f as ServiceGroupName, c as ServiceTier, o as ServiceTierViolation, r as autoPromoteDependencies, k as getServiceTier, l as isServiceEnabled, m as isServiceExternallyAccessible, n as isServiceFullAccess, v as validateAllowedTiers, q as validateServiceDependencies } from './config-services-CuhBWSs_.cjs';
15
15
  export { b as ContextFileDetail, a as ContextFileListItem, C as ContextFilePath } from './context-ByxGjp5l.cjs';
16
- export { a as AuthenticatedParams, A as AuthenticatedUser, b as AuthenticationResult, B as BaseService, C as CreateHookContext, H as HookContext, Q as QueryParams, R as RBACParams, S as ServiceWithEvents } from './feathers-CYAHFZ05.cjs';
16
+ export { a as AuthenticatedParams, A as AuthenticatedUser, b as AuthenticationResult, B as BaseService, C as CreateHookContext, H as HookContext, Q as QueryParams, R as RBACParams, S as ServiceWithEvents } from './feathers-NY8lH6YZ.cjs';
17
17
  export { ActiveUser, CreateInput, CursorLeaveEvent, CursorMoveEvent, CursorMovedEvent, DeepReadonly, FileDetail, FileListItem, FileListResponse, FilePath, FlattenObject, PaginatedResult, PartialKeys, RemoteCursor, RequireKeys, SessionViewMode, UpdateInput, isDefined, isNonEmptyString } from './types/index.cjs';
18
18
  export { C as ChannelType, c as GatewayAgenticConfig, d as GatewayChannel, G as GatewayChannelID, b as GatewayEnvVar, e as ThreadSessionMap, T as ThreadSessionMapID, a as ThreadStatus } from './gateway-gHbaS6qt.cjs';
19
19
  export { A as AgenticToolID, d as ArtifactID, B as BoardID, C as CommentID, I as IDPrefix, a as IdInput, M as MessageID, R as RepoID, b as SessionID, S as ShortID, T as TaskID, U as UUID, c as UserID, W as WorktreeID } from './id-Cv3ntaTJ.cjs';
@@ -1,4 +1,4 @@
1
- export { AgorClient, AgorService, BoardsService, MessagesService, ReposLocalService, ReposService, ServiceTypes, SessionsService, TasksService, WorktreesService, createClient, createRestClient, getApiKeyFromEnv, isDaemonRunning } from './api/index.js';
1
+ export { AgorClient, AgorService, BoardsService, ClientInput, CreatePayload, FindResult, MessagesService, PatchPayload, QueuedSessionPromptResult, ReposLocalService, ReposService, RunningSessionPromptResult, ServiceTypes, SessionPromptOptions, SessionPromptRequest, SessionPromptResult, SessionsClientHelpers, SessionsService, TasksService, UpdatePayload, WorktreesService, createClient, createRestClient, getApiKeyFromEnv, isDaemonRunning, normalizeFindResult } from './api/index.js';
2
2
  export { AGOR_INTERNAL_ENV_VARS, AGOR_USER_ENV_KEYS_VAR, ALLOWED_ENV_PREFIXES, ALLOWED_ENV_VARS, AgorYmlSchema, ApiKeyName, BLOCKED_ENV_VARS, ENV_VAR_CONSTRAINTS, KeyResolutionContext, KeyResolutionResult, ParsedRepoConfig, ParsedResourcesConfig, ParsedUserConfig, ParsedWorktreeConfig, RepoAction, ResolvedPassword, ResourceValidationError, UserAction, ValidationError, WorktreeAction, buildSlugToRepoIdMap, createUserProcessEnvironment, daemonResourcesConfigSchema, determineRepoAction, determineUserAction, determineWorktreeAction, enforcedAgentConfigSchema, formatValidationError, formatValidationErrors, getEnvVarBlockReason, isEnvVarAllowed, isValid, parseAgorYml, resolveApiKey, resolveApiKeySync, resolvePassword, resolveSystemEnvironment, resolveUserEnvironment, resourceRepoConfigSchema, resourceUserConfigSchema, resourceWorktreeConfigSchema, validateEnvVar, validateResourceCrossReferences, withUserEnvironment, withUserEnvironmentSync, writeAgorYml } from './config/index.js';
3
3
  export { d as ensureCodexHome, e as expandHomePath, g as getAgorHome, k as getBaseUrl, a as getConfigPath, f as getConfigValue, n as getCredential, j as getDaemonUrl, o as getDaemonUser, v as getDataHome, z as getDataHomeAsync, c as getDefaultConfig, w as getReposDir, A as getReposDirAsync, y as getWorktreePath, x as getWorktreesDir, B as getWorktreesDirAsync, i as initConfig, t as isUnixImpersonationEnabled, q as isWorktreeRbacEnabled, l as loadConfig, b as loadConfigFromFile, m as loadConfigSync, p as requireDaemonUser, r as resolveCodexHome, s as saveConfig, h as setConfigValue, u as unsetConfigValue } from './config-manager-YrO9mG5j.js';
4
4
  export { DAEMON, DATABASE, ENVIRONMENT, GIT, PAGINATION, REPO_SLUG_PATTERN, RepoReference, RepoReferenceOption, SESSION, WEBSOCKET, extractSlugFromUrl, formatRepoReference, getDefaultRepoReference, getGroupedRepoReferenceOptions, getRepoReferenceOptions, isValidGitUrl, isValidSlug, parseRepoReference, resolveRepoReference } from './config/browser.js';
@@ -13,7 +13,7 @@ export { A as AppBoardObject, f as ArtifactBoardObject, h as Board, c as BoardEn
13
13
  export { B as BoardComment, b as BoardCommentCreate, c as BoardCommentPatch, a as CommentAttachmentType, C as CommentReaction, R as ReactionSummary, g as getCommentAttachmentType, f as groupReactions, d as isReply, e as isResolvable, i as isThreadRoot } from './board-comment-BoDqwrnL.js';
14
14
  export { A as ALLOWED_SERVICE_TIERS, i as DEFAULT_SERVICE_TIER, D as DaemonResourcesConfig, e as DaemonServicesConfig, E as EnforcedAgentConfig, R as ResourceRepoConfig, b as ResourceUserConfig, a as ResourceWorktreeConfig, h as SERVICE_DEPENDENCIES, g as SERVICE_GROUP_NAMES, j as SERVICE_GROUP_TO_MCP_DOMAINS, S as SERVICE_TIERS, d as SERVICE_TIER_RANK, p as ServiceDependencyViolation, f as ServiceGroupName, c as ServiceTier, o as ServiceTierViolation, r as autoPromoteDependencies, k as getServiceTier, l as isServiceEnabled, m as isServiceExternallyAccessible, n as isServiceFullAccess, v as validateAllowedTiers, q as validateServiceDependencies } from './config-services-DrHSgUEm.js';
15
15
  export { b as ContextFileDetail, a as ContextFileListItem, C as ContextFilePath } from './context-ByxGjp5l.js';
16
- export { a as AuthenticatedParams, A as AuthenticatedUser, b as AuthenticationResult, B as BaseService, C as CreateHookContext, H as HookContext, Q as QueryParams, R as RBACParams, S as ServiceWithEvents } from './feathers-CzuSOZgY.js';
16
+ export { a as AuthenticatedParams, A as AuthenticatedUser, b as AuthenticationResult, B as BaseService, C as CreateHookContext, H as HookContext, Q as QueryParams, R as RBACParams, S as ServiceWithEvents } from './feathers-CKfl55ut.js';
17
17
  export { ActiveUser, CreateInput, CursorLeaveEvent, CursorMoveEvent, CursorMovedEvent, DeepReadonly, FileDetail, FileListItem, FileListResponse, FilePath, FlattenObject, PaginatedResult, PartialKeys, RemoteCursor, RequireKeys, SessionViewMode, UpdateInput, isDefined, isNonEmptyString } from './types/index.js';
18
18
  export { C as ChannelType, c as GatewayAgenticConfig, d as GatewayChannel, G as GatewayChannelID, b as GatewayEnvVar, e as ThreadSessionMap, T as ThreadSessionMapID, a as ThreadStatus } from './gateway-Ci8LcUxK.js';
19
19
  export { A as AgenticToolID, d as ArtifactID, B as BoardID, C as CommentID, I as IDPrefix, a as IdInput, M as MessageID, R as RepoID, b as SessionID, S as ShortID, T as TaskID, U as UUID, c as UserID, W as WorktreeID } from './id-Cv3ntaTJ.js';
@@ -2914,6 +2914,9 @@ import io from "socket.io-client";
2914
2914
  import { default as default2 } from "@feathersjs/authentication-client";
2915
2915
  var DEFAULT_DAEMON_URL = `http://${DAEMON.DEFAULT_HOST}:${DAEMON.DEFAULT_PORT}`;
2916
2916
  var BOARDS_SERVICE_EXTENDED = Symbol("agor.boardsServiceExtended");
2917
+ var SERVICE_FIND_ALL_EXTENDED = Symbol("agor.serviceFindAllExtended");
2918
+ var CLIENT_SERVICE_FACTORY_EXTENDED = Symbol("agor.clientServiceFactoryExtended");
2919
+ var CLIENT_SESSIONS_HELPERS_EXTENDED = Symbol("agor.clientSessionsHelpersExtended");
2917
2920
  function extendBoardsService(client) {
2918
2921
  const boardsService = client.service("boards");
2919
2922
  if (boardsService[BOARDS_SERVICE_EXTENDED]) {
@@ -2972,6 +2975,82 @@ function extendBoardsService(client) {
2972
2975
  }
2973
2976
  boardsService[BOARDS_SERVICE_EXTENDED] = true;
2974
2977
  }
2978
+ function normalizeFindResult(result) {
2979
+ return Array.isArray(result) ? result : result.data;
2980
+ }
2981
+ function isPaginatedResult(result) {
2982
+ return !Array.isArray(result) && typeof result === "object" && result !== null && Array.isArray(result.data);
2983
+ }
2984
+ function extendFindAllOnService(service) {
2985
+ const findAllService = service;
2986
+ if (findAllService[SERVICE_FIND_ALL_EXTENDED]) {
2987
+ return;
2988
+ }
2989
+ findAllService.findAll = async (params) => {
2990
+ const firstResult = await service.find(params);
2991
+ if (!isPaginatedResult(firstResult)) {
2992
+ return firstResult;
2993
+ }
2994
+ const allData = [...firstResult.data];
2995
+ let total = firstResult.total;
2996
+ let nextSkip = firstResult.skip + firstResult.data.length;
2997
+ const pageLimit = typeof firstResult.limit === "number" && firstResult.limit > 0 ? firstResult.limit : firstResult.data.length;
2998
+ if (!Number.isFinite(total) || pageLimit <= 0) {
2999
+ return allData;
3000
+ }
3001
+ const baseQuery = params?.query && typeof params.query === "object" ? { ...params.query } : void 0;
3002
+ while (allData.length < total) {
3003
+ const nextParams = {
3004
+ ...params ?? {},
3005
+ query: {
3006
+ ...baseQuery ?? {},
3007
+ $skip: nextSkip,
3008
+ $limit: pageLimit
3009
+ }
3010
+ };
3011
+ const nextResult = await service.find(nextParams);
3012
+ if (!isPaginatedResult(nextResult)) {
3013
+ allData.push(...nextResult);
3014
+ break;
3015
+ }
3016
+ if (nextResult.data.length === 0) {
3017
+ break;
3018
+ }
3019
+ allData.push(...nextResult.data);
3020
+ nextSkip = nextResult.skip + nextResult.data.length;
3021
+ total = nextResult.total;
3022
+ }
3023
+ return allData;
3024
+ };
3025
+ findAllService[SERVICE_FIND_ALL_EXTENDED] = true;
3026
+ }
3027
+ function extendServiceFactory(client) {
3028
+ const augmentedClient = client;
3029
+ if (augmentedClient[CLIENT_SERVICE_FACTORY_EXTENDED]) {
3030
+ return;
3031
+ }
3032
+ const rawService = client.service.bind(client);
3033
+ augmentedClient.service = ((path3) => {
3034
+ const service = rawService(path3);
3035
+ extendFindAllOnService(service);
3036
+ return service;
3037
+ });
3038
+ augmentedClient[CLIENT_SERVICE_FACTORY_EXTENDED] = true;
3039
+ }
3040
+ function extendSessionsHelpers(client) {
3041
+ const augmentedClient = client;
3042
+ if (augmentedClient[CLIENT_SESSIONS_HELPERS_EXTENDED]) {
3043
+ return;
3044
+ }
3045
+ client.sessions = {
3046
+ prompt: async (sessionId, prompt, options) => {
3047
+ const { params, ...requestOptions } = options ?? {};
3048
+ const response = await client.service(`sessions/${sessionId}/prompt`).create({ prompt, ...requestOptions }, params);
3049
+ return response;
3050
+ }
3051
+ };
3052
+ augmentedClient[CLIENT_SESSIONS_HELPERS_EXTENDED] = true;
3053
+ }
2975
3054
  function getApiKeyFromEnv() {
2976
3055
  const key = typeof process !== "undefined" ? process.env?.AGOR_API_KEY : null;
2977
3056
  if (key?.startsWith("agor_sk_")) {
@@ -2996,7 +3075,9 @@ async function createRestClient(url = DEFAULT_DAEMON_URL, apiKey) {
2996
3075
  },
2997
3076
  io: { opts: {} }
2998
3077
  };
3078
+ extendServiceFactory(client);
2999
3079
  extendBoardsService(client);
3080
+ extendSessionsHelpers(client);
3000
3081
  return client;
3001
3082
  }
3002
3083
  function createClient(url = DEFAULT_DAEMON_URL, autoConnect = true, options) {
@@ -3044,7 +3125,9 @@ function createClient(url = DEFAULT_DAEMON_URL, autoConnect = true, options) {
3044
3125
  const storage = typeof globalThis !== "undefined" && "localStorage" in globalThis ? globalThis.localStorage : void 0;
3045
3126
  client.configure(authentication({ storage }));
3046
3127
  client.io = socket;
3128
+ extendServiceFactory(client);
3047
3129
  extendBoardsService(client);
3130
+ extendSessionsHelpers(client);
3048
3131
  return client;
3049
3132
  }
3050
3133
  async function isDaemonRunning(url = DEFAULT_DAEMON_URL) {
@@ -12975,6 +13058,7 @@ export {
12975
13058
  lockRowForUpdate,
12976
13059
  mcpServers3 as mcpServers,
12977
13060
  messages3 as messages,
13061
+ normalizeFindResult,
12978
13062
  normalizeRole,
12979
13063
  or4 as or,
12980
13064
  parseAgorYml,
@@ -5,7 +5,7 @@ export { A as AppBoardObject, f as ArtifactBoardObject, h as Board, c as BoardEn
5
5
  export { B as BoardComment, b as BoardCommentCreate, c as BoardCommentPatch, a as CommentAttachmentType, C as CommentReaction, R as ReactionSummary, g as getCommentAttachmentType, f as groupReactions, d as isReply, e as isResolvable, i as isThreadRoot } from '../board-comment-BQKnob6r.cjs';
6
6
  export { A as ALLOWED_SERVICE_TIERS, i as DEFAULT_SERVICE_TIER, D as DaemonResourcesConfig, e as DaemonServicesConfig, E as EnforcedAgentConfig, R as ResourceRepoConfig, b as ResourceUserConfig, a as ResourceWorktreeConfig, h as SERVICE_DEPENDENCIES, g as SERVICE_GROUP_NAMES, j as SERVICE_GROUP_TO_MCP_DOMAINS, S as SERVICE_TIERS, d as SERVICE_TIER_RANK, p as ServiceDependencyViolation, f as ServiceGroupName, c as ServiceTier, o as ServiceTierViolation, r as autoPromoteDependencies, k as getServiceTier, l as isServiceEnabled, m as isServiceExternallyAccessible, n as isServiceFullAccess, v as validateAllowedTiers, q as validateServiceDependencies } from '../config-services-CuhBWSs_.cjs';
7
7
  export { b as ContextFileDetail, a as ContextFileListItem, C as ContextFilePath } from '../context-ByxGjp5l.cjs';
8
- export { a as AuthenticatedParams, A as AuthenticatedUser, b as AuthenticationResult, B as BaseService, C as CreateHookContext, H as HookContext, Q as QueryParams, R as RBACParams, S as ServiceWithEvents } from '../feathers-CYAHFZ05.cjs';
8
+ export { a as AuthenticatedParams, A as AuthenticatedUser, b as AuthenticationResult, B as BaseService, C as CreateHookContext, H as HookContext, Q as QueryParams, R as RBACParams, S as ServiceWithEvents } from '../feathers-NY8lH6YZ.cjs';
9
9
  export { C as ChannelType, c as GatewayAgenticConfig, d as GatewayChannel, G as GatewayChannelID, b as GatewayEnvVar, e as ThreadSessionMap, T as ThreadSessionMapID, a as ThreadStatus } from '../gateway-gHbaS6qt.cjs';
10
10
  import { B as BoardID } from '../id-Cv3ntaTJ.cjs';
11
11
  export { A as AgenticToolID, d as ArtifactID, C as CommentID, I as IDPrefix, a as IdInput, M as MessageID, R as RepoID, b as SessionID, S as ShortID, T as TaskID, U as UUID, c as UserID, W as WorktreeID } from '../id-Cv3ntaTJ.cjs';
@@ -5,7 +5,7 @@ export { A as AppBoardObject, f as ArtifactBoardObject, h as Board, c as BoardEn
5
5
  export { B as BoardComment, b as BoardCommentCreate, c as BoardCommentPatch, a as CommentAttachmentType, C as CommentReaction, R as ReactionSummary, g as getCommentAttachmentType, f as groupReactions, d as isReply, e as isResolvable, i as isThreadRoot } from '../board-comment-BoDqwrnL.js';
6
6
  export { A as ALLOWED_SERVICE_TIERS, i as DEFAULT_SERVICE_TIER, D as DaemonResourcesConfig, e as DaemonServicesConfig, E as EnforcedAgentConfig, R as ResourceRepoConfig, b as ResourceUserConfig, a as ResourceWorktreeConfig, h as SERVICE_DEPENDENCIES, g as SERVICE_GROUP_NAMES, j as SERVICE_GROUP_TO_MCP_DOMAINS, S as SERVICE_TIERS, d as SERVICE_TIER_RANK, p as ServiceDependencyViolation, f as ServiceGroupName, c as ServiceTier, o as ServiceTierViolation, r as autoPromoteDependencies, k as getServiceTier, l as isServiceEnabled, m as isServiceExternallyAccessible, n as isServiceFullAccess, v as validateAllowedTiers, q as validateServiceDependencies } from '../config-services-DrHSgUEm.js';
7
7
  export { b as ContextFileDetail, a as ContextFileListItem, C as ContextFilePath } from '../context-ByxGjp5l.js';
8
- export { a as AuthenticatedParams, A as AuthenticatedUser, b as AuthenticationResult, B as BaseService, C as CreateHookContext, H as HookContext, Q as QueryParams, R as RBACParams, S as ServiceWithEvents } from '../feathers-CzuSOZgY.js';
8
+ export { a as AuthenticatedParams, A as AuthenticatedUser, b as AuthenticationResult, B as BaseService, C as CreateHookContext, H as HookContext, Q as QueryParams, R as RBACParams, S as ServiceWithEvents } from '../feathers-CKfl55ut.js';
9
9
  export { C as ChannelType, c as GatewayAgenticConfig, d as GatewayChannel, G as GatewayChannelID, b as GatewayEnvVar, e as ThreadSessionMap, T as ThreadSessionMapID, a as ThreadStatus } from '../gateway-Ci8LcUxK.js';
10
10
  import { B as BoardID } from '../id-Cv3ntaTJ.js';
11
11
  export { A as AgenticToolID, d as ArtifactID, C as CommentID, I as IDPrefix, a as IdInput, M as MessageID, R as RepoID, b as SessionID, S as ShortID, T as TaskID, U as UUID, c as UserID, W as WorktreeID } from '../id-Cv3ntaTJ.js';
@@ -21671,6 +21671,21 @@ async function registerRoutes(ctx) {
21671
21671
  },
21672
21672
  requireAuth
21673
21673
  );
21674
+ registerAuthenticatedRoute(
21675
+ app,
21676
+ "/tasks/streaming",
21677
+ {
21678
+ async create(data, params) {
21679
+ const _ = params;
21680
+ app.service("tasks").emit(data.event, data.data);
21681
+ return { success: true };
21682
+ }
21683
+ },
21684
+ {
21685
+ create: { role: ROLES6.MEMBER, action: "broadcast task streaming events" }
21686
+ },
21687
+ requireAuth
21688
+ );
21674
21689
  registerAuthenticatedRoute(
21675
21690
  app,
21676
21691
  "/sessions/:id/fork",
@@ -29843,7 +29858,9 @@ async function registerServices(ctx) {
29843
29858
  sessionsService.setExecuteHandler(
29844
29859
  createExecuteHandler(ctx, sessionsService, sessionTokenService)
29845
29860
  );
29846
- app.use("/tasks", createTasksService(db, app));
29861
+ app.use("/tasks", createTasksService(db, app), {
29862
+ events: ["tool:start", "tool:complete", "thinking:chunk"]
29863
+ });
29847
29864
  if (svcEnabled("leaderboard")) {
29848
29865
  app.use("/leaderboard", createLeaderboardService(db));
29849
29866
  }
@@ -19250,6 +19250,21 @@ async function registerRoutes(ctx) {
19250
19250
  },
19251
19251
  requireAuth
19252
19252
  );
19253
+ registerAuthenticatedRoute(
19254
+ app,
19255
+ "/tasks/streaming",
19256
+ {
19257
+ async create(data, params) {
19258
+ const _ = params;
19259
+ app.service("tasks").emit(data.event, data.data);
19260
+ return { success: true };
19261
+ }
19262
+ },
19263
+ {
19264
+ create: { role: ROLES5.MEMBER, action: "broadcast task streaming events" }
19265
+ },
19266
+ requireAuth
19267
+ );
19253
19268
  registerAuthenticatedRoute(
19254
19269
  app,
19255
19270
  "/sessions/:id/fork",
@@ -7005,7 +7005,9 @@ async function registerServices(ctx) {
7005
7005
  sessionsService.setExecuteHandler(
7006
7006
  createExecuteHandler(ctx, sessionsService, sessionTokenService)
7007
7007
  );
7008
- app.use("/tasks", createTasksService(db, app));
7008
+ app.use("/tasks", createTasksService(db, app), {
7009
+ events: ["tool:start", "tool:complete", "thinking:chunk"]
7010
+ });
7009
7011
  if (svcEnabled("leaderboard")) {
7010
7012
  app.use("/leaderboard", createLeaderboardService(db));
7011
7013
  }
@@ -1,5 +1,5 @@
1
1
  import { Database } from '@agor/core/db';
2
- import { QueryParams, MCPServer, CreateMCPServerInput, UpdateMCPServerInput, Paginated } from '@agor/core/types';
2
+ import { QueryParams, MCPServer, CreateMCPServerInput, UpdateMCPServerInput } from '@agor/core/types';
3
3
  import { DrizzleService } from '../adapters/drizzle.js';
4
4
 
5
5
  /**
@@ -28,7 +28,12 @@ declare class MCPServersService extends DrizzleService<MCPServer, CreateMCPServe
28
28
  /**
29
29
  * Override find to support filter params
30
30
  */
31
- find(params?: MCPServerParams): Promise<MCPServer[] | Paginated<MCPServer>>;
31
+ find(params?: MCPServerParams): Promise<MCPServer[] | {
32
+ total: number;
33
+ limit: number;
34
+ skip: number;
35
+ data: MCPServer[];
36
+ }>;
32
37
  /**
33
38
  * Custom method: Find by scope
34
39
  */
@@ -111,6 +111,7 @@ export declare function createFeathersBackedRepositories(client: AgorClient): {
111
111
  sessionMCP: FeathersSessionMCPServersRepository;
112
112
  messagesService: import("@agor/core").MessagesService;
113
113
  tasksService: import("@agor/core").TasksService;
114
+ tasksStreamingService: import("@agor/core").AgorService<unknown, Partial<unknown>, unknown, import("@agor/core").PatchPayload<unknown>>;
114
115
  sessionsService: import("@agor/core").SessionsService;
115
116
  };
116
117
  //# sourceMappingURL=feathers-repositories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"feathers-repositories.d.ts","sourceRoot":"","sources":["../../src/db/feathers-repositories.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"feathers-repositories.d.ts","sourceRoot":"","sources":["../../src/db/feathers-repositories.ts"],"names":[],"mappings":"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"}
@@ -274,6 +274,7 @@ export function createFeathersBackedRepositories(client) {
274
274
  // SDK handlers can use these services directly with proper typing
275
275
  messagesService: client.service('messages'),
276
276
  tasksService: client.service('tasks'),
277
+ tasksStreamingService: client.service('/tasks/streaming'),
277
278
  sessionsService: client.service('sessions'),
278
279
  };
279
280
  }
@@ -1 +1 @@
1
- {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdk/claude.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAMzF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAEpE;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE;IAClD,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B,GAAG,OAAO,CAAC,IAAI,CAAC,CAuDhB"}
1
+ {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdk/claude.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAMzF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAEpE;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE;IAClD,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B,GAAG,OAAO,CAAC,IAAI,CAAC,CAwDhB"}
@@ -39,7 +39,7 @@ export async function executeClaudeCodeTask(params) {
39
39
  ...params,
40
40
  apiKeyEnvVar: 'ANTHROPIC_API_KEY',
41
41
  toolName: 'claude-code',
42
- createTool: (repos, apiKey, useNativeAuth) => new ClaudeTool(repos.messages, repos.sessions, apiKey, repos.messagesService, repos.sessionMCP, repos.mcpServers, permissionService, repos.tasksService, repos.sessionsService, repos.worktrees, repos.repos, true, // mcpEnabled
42
+ createTool: (repos, apiKey, useNativeAuth) => new ClaudeTool(repos.messages, repos.sessions, apiKey, repos.messagesService, repos.sessionMCP, repos.mcpServers, permissionService, repos.tasksService, repos.tasksStreamingService, repos.sessionsService, repos.worktrees, repos.repos, true, // mcpEnabled
43
43
  useNativeAuth, // Flag for Claude CLI OAuth (`claude login`)
44
44
  inputRequestService, repos.users),
45
45
  });
@@ -1 +1 @@
1
- {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdk/codex.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEzF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAEpE;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE;IAC7C,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBhB"}
1
+ {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdk/codex.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEzF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAEpE;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE;IAC7C,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBhB"}
@@ -17,7 +17,7 @@ export async function executeCodexTask(params) {
17
17
  ...params,
18
18
  apiKeyEnvVar: 'OPENAI_API_KEY',
19
19
  toolName: 'codex',
20
- createTool: (repos, apiKey, useNativeAuth) => new CodexTool(repos.messages, repos.sessions, repos.sessionMCP, repos.worktrees, repos.repos, apiKey, repos.messagesService, repos.tasksService, useNativeAuth, // Flag for native auth (if applicable)
20
+ createTool: (repos, apiKey, useNativeAuth) => new CodexTool(repos.messages, repos.sessions, repos.sessionMCP, repos.worktrees, repos.repos, apiKey, repos.messagesService, repos.tasksService, repos.tasksStreamingService, useNativeAuth, // Flag for native auth (if applicable)
21
21
  repos.mcpServers, // MCPServerRepository for global MCP server resolution
22
22
  repos.users),
23
23
  });
@@ -18,6 +18,9 @@
18
18
  * to enrich adjacent tool_result blocks in one pass.
19
19
  */
20
20
  export type { StructuredPatchHunk } from '@agor/core/types';
21
+ export interface DiffEnrichmentContext {
22
+ workingDirectory?: string;
23
+ }
21
24
  interface ContentBlock {
22
25
  type: string;
23
26
  id?: string;
@@ -52,5 +55,5 @@ export declare function enrichToolResults(contentBlocks: ContentBlock[]): void;
52
55
  * Used by Codex, OpenCode, and Gemini handlers.
53
56
  * Mutates content blocks in-place. Best-effort.
54
57
  */
55
- export declare function enrichContentBlocks(contentBlocks: ContentBlock[]): void;
58
+ export declare function enrichContentBlocks(contentBlocks: ContentBlock[], context?: DiffEnrichmentContext): void;
56
59
  //# sourceMappingURL=diff-enrichment.d.ts.map