@circuitwall/jarela 2.2.0 → 2.3.0

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 (683) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-path-routes-manifest.json +4 -3
  3. package/.next/standalone/.next/build-manifest.json +2 -2
  4. package/.next/standalone/.next/prerender-manifest.json +3 -3
  5. package/.next/standalone/.next/routes-manifest.json +8 -0
  6. package/.next/standalone/.next/server/app/_global-error/page.js +68 -68
  7. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  8. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  9. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  11. package/.next/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  12. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  13. package/.next/standalone/.next/server/app/_not-found/page.js +76 -76
  14. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  15. package/.next/standalone/.next/server/app/_not-found.html +2 -2
  16. package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
  17. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  18. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  19. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  20. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  21. package/.next/standalone/.next/server/app/api/v1/access/[identity]/route.js +93 -93
  22. package/.next/standalone/.next/server/app/api/v1/access/route.js +169 -169
  23. package/.next/standalone/.next/server/app/api/v1/agents/[id]/compact/route.js +82 -56
  24. package/.next/standalone/.next/server/app/api/v1/agents/[id]/compact/route.js.nft.json +1 -1
  25. package/.next/standalone/.next/server/app/api/v1/agents/[id]/display-filters/route.js +122 -122
  26. package/.next/standalone/.next/server/app/api/v1/agents/[id]/route.js +100 -100
  27. package/.next/standalone/.next/server/app/api/v1/agents/[id]/thread/route.js +753 -753
  28. package/.next/standalone/.next/server/app/api/v1/agents/route.js +65 -65
  29. package/.next/standalone/.next/server/app/api/v1/allowed-sites/[hostname]/route.js +364 -364
  30. package/.next/standalone/.next/server/app/api/v1/allowed-sites/route.js +802 -802
  31. package/.next/standalone/.next/server/app/api/v1/artifacts/lifecycle/route.js +2 -2
  32. package/.next/standalone/.next/server/app/api/v1/attachments/files/route.js +49 -49
  33. package/.next/standalone/.next/server/app/api/v1/attachments/images/route.js +910 -910
  34. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/chats/route.js +589 -16
  35. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/chats/route.js.nft.json +1 -1
  36. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/ignores/[remote_jid]/route.js +23 -23
  37. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/ignores/route.js +30 -30
  38. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/lookup/route.js +703 -130
  39. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/lookup/route.js.nft.json +1 -1
  40. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/pair/route.js +708 -135
  41. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/pair/route.js.nft.json +1 -1
  42. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/route.js +802 -229
  43. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/route.js.nft.json +1 -1
  44. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/routes/[route_id]/route.js +739 -739
  45. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/routes/route.js +1035 -1035
  46. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/status/route.js +679 -106
  47. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/status/route.js.nft.json +1 -1
  48. package/.next/standalone/.next/server/app/api/v1/bridges/kinds/route.js +804 -804
  49. package/.next/standalone/.next/server/app/api/v1/bridges/route.js +700 -700
  50. package/.next/standalone/.next/server/app/api/v1/builtin-tools/route.js +9 -9
  51. package/.next/standalone/.next/server/app/api/v1/builtin-tools/route.js.nft.json +1 -1
  52. package/.next/standalone/.next/server/app/api/v1/config/route.js +85 -85
  53. package/.next/standalone/.next/server/app/api/v1/credentials/[id]/route.js +709 -709
  54. package/.next/standalone/.next/server/app/api/v1/credentials/[id]/route.js.nft.json +1 -1
  55. package/.next/standalone/.next/server/app/api/v1/credentials/route.js +2 -2
  56. package/.next/standalone/.next/server/app/api/v1/credentials/route.js.nft.json +1 -1
  57. package/.next/standalone/.next/server/app/api/v1/dashboard/currency/route.js +10 -10
  58. package/.next/standalone/.next/server/app/api/v1/dashboard/metrics/route.js +784 -784
  59. package/.next/standalone/.next/server/app/api/v1/dashboard/pricing/route.js +23 -23
  60. package/.next/standalone/.next/server/app/api/v1/dashboard/pricing-task/route.js +86 -86
  61. package/.next/standalone/.next/server/app/api/v1/dashboard/pricing-task/route.js.nft.json +1 -1
  62. package/.next/standalone/.next/server/app/api/v1/delegations/codex/[job_id]/route.js +57 -57
  63. package/.next/standalone/.next/server/app/api/v1/delegations/codex/[job_id]/route.js.nft.json +1 -1
  64. package/.next/standalone/.next/server/app/api/v1/documents/search/route.js +523 -523
  65. package/.next/standalone/.next/server/app/api/v1/documents/settings/route.js +44 -44
  66. package/.next/standalone/.next/server/app/api/v1/documents/sources/[id]/reindex/route.js +65 -65
  67. package/.next/standalone/.next/server/app/api/v1/documents/sources/[id]/reindex/route.js.nft.json +1 -1
  68. package/.next/standalone/.next/server/app/api/v1/documents/sources/[id]/route.js +122 -122
  69. package/.next/standalone/.next/server/app/api/v1/documents/sources/[id]/route.js.nft.json +1 -1
  70. package/.next/standalone/.next/server/app/api/v1/documents/sources/route.js +37 -37
  71. package/.next/standalone/.next/server/app/api/v1/documents/sources/route.js.nft.json +1 -1
  72. package/.next/standalone/.next/server/app/api/v1/env/route.js +9 -9
  73. package/.next/standalone/.next/server/app/api/v1/env-sync/allowlist/route.js +368 -368
  74. package/.next/standalone/.next/server/app/api/v1/env-sync/route.js +44 -44
  75. package/.next/standalone/.next/server/app/api/v1/events/route.js +751 -178
  76. package/.next/standalone/.next/server/app/api/v1/events/route.js.nft.json +1 -1
  77. package/.next/standalone/.next/server/app/api/v1/events/test/route.js +77 -77
  78. package/.next/standalone/.next/server/app/api/v1/extension/agents/route.js +763 -763
  79. package/.next/standalone/.next/server/app/api/v1/extension/agents/route.js.nft.json +1 -1
  80. package/.next/standalone/.next/server/app/api/v1/extension/browser/activate/route.js +44 -44
  81. package/.next/standalone/.next/server/app/api/v1/extension/browser/foreground/route.js +9 -9
  82. package/.next/standalone/.next/server/app/api/v1/extension/browser/history/route.js +65 -65
  83. package/.next/standalone/.next/server/app/api/v1/extension/browser/poll/route.js +34 -34
  84. package/.next/standalone/.next/server/app/api/v1/extension/browser/progress/route.js +204 -204
  85. package/.next/standalone/.next/server/app/api/v1/extension/browser/result/route.js +133 -133
  86. package/.next/standalone/.next/server/app/api/v1/extension/browser/retry/route.js +106 -106
  87. package/.next/standalone/.next/server/app/api/v1/extension/browser/status/route.js +114 -114
  88. package/.next/standalone/.next/server/app/api/v1/extension/browser/tabs/route.js +134 -134
  89. package/.next/standalone/.next/server/app/api/v1/extension/fill/route.js +690 -690
  90. package/.next/standalone/.next/server/app/api/v1/extension/fill/route.js.nft.json +1 -1
  91. package/.next/standalone/.next/server/app/api/v1/extension/refine/route.js +93 -93
  92. package/.next/standalone/.next/server/app/api/v1/extension/refine/route.js.nft.json +1 -1
  93. package/.next/standalone/.next/server/app/api/v1/extension/turn/route.js +9 -9
  94. package/.next/standalone/.next/server/app/api/v1/extension/turn/route.js.nft.json +1 -1
  95. package/.next/standalone/.next/server/app/api/v1/extensions/route.js +185 -185
  96. package/.next/standalone/.next/server/app/api/v1/extensions/route.js.nft.json +1 -1
  97. package/.next/standalone/.next/server/app/api/v1/extensions/tools/[name]/config/route.js +171 -171
  98. package/.next/standalone/.next/server/app/api/v1/extensions/tools/[name]/config/route.js.nft.json +1 -1
  99. package/.next/standalone/.next/server/app/api/v1/extensions/tools/[name]/route.js +396 -396
  100. package/.next/standalone/.next/server/app/api/v1/extensions/tools/[name]/route.js.nft.json +1 -1
  101. package/.next/standalone/.next/server/app/api/v1/extensions/tools/[name]/secrets/route.js +212 -212
  102. package/.next/standalone/.next/server/app/api/v1/extensions/tools/[name]/secrets/route.js.nft.json +1 -1
  103. package/.next/standalone/.next/server/app/api/v1/files/[name]/route.js +235 -235
  104. package/.next/standalone/.next/server/app/api/v1/fs/browse/route.js +26 -26
  105. package/.next/standalone/.next/server/app/api/v1/harnesses/[id]/route.js +221 -221
  106. package/.next/standalone/.next/server/app/api/v1/harnesses/default/route.js +58 -58
  107. package/.next/standalone/.next/server/app/api/v1/harnesses/route.js +72 -72
  108. package/.next/standalone/.next/server/app/api/v1/health/probes/route.js +9 -9
  109. package/.next/standalone/.next/server/app/api/v1/health/probes/route.js.nft.json +1 -1
  110. package/.next/standalone/.next/server/app/api/v1/health/route.js +772 -772
  111. package/.next/standalone/.next/server/app/api/v1/integrations/[name]/route.js +133 -133
  112. package/.next/standalone/.next/server/app/api/v1/integrations/[name]/test/route.js +9 -9
  113. package/.next/standalone/.next/server/app/api/v1/integrations/[name]/test/route.js.nft.json +1 -1
  114. package/.next/standalone/.next/server/app/api/v1/integrations/gmail/oauth/callback/route.js +363 -363
  115. package/.next/standalone/.next/server/app/api/v1/integrations/gmail/oauth/start/route.js +233 -233
  116. package/.next/standalone/.next/server/app/api/v1/integrations/gmail/oauth/status/route.js +682 -682
  117. package/.next/standalone/.next/server/app/api/v1/integrations/outlook/oauth/callback/route.js +879 -879
  118. package/.next/standalone/.next/server/app/api/v1/integrations/outlook/oauth/start/route.js +108 -108
  119. package/.next/standalone/.next/server/app/api/v1/integrations/outlook/oauth/status/route.js +952 -952
  120. package/.next/standalone/.next/server/app/api/v1/integrations/route.js +216 -216
  121. package/.next/standalone/.next/server/app/api/v1/lifecycle/adoption/route.js +864 -847
  122. package/.next/standalone/.next/server/app/api/v1/lifecycle/adoption/route.js.nft.json +1 -1
  123. package/.next/standalone/.next/server/app/api/v1/local-file/route.js +26 -26
  124. package/.next/standalone/.next/server/app/api/v1/logs/route.js +70 -70
  125. package/.next/standalone/.next/server/app/api/v1/maps/embed/route.js +72 -72
  126. package/.next/standalone/.next/server/app/api/v1/mcp-servers/[name]/route.js +979 -979
  127. package/.next/standalone/.next/server/app/api/v1/mcp-servers/registry/route.js +196 -196
  128. package/.next/standalone/.next/server/app/api/v1/mcp-servers/route.js +2 -2
  129. package/.next/standalone/.next/server/app/api/v1/memory/[namespace]/[key]/route.js +381 -381
  130. package/.next/standalone/.next/server/app/api/v1/memory/policy/route.js +79 -79
  131. package/.next/standalone/.next/server/app/api/v1/memory/route.js +51 -51
  132. package/.next/standalone/.next/server/app/api/v1/memory/search/route.js +131 -131
  133. package/.next/standalone/.next/server/app/api/v1/models/[name]/compact-threads/route.js +374 -369
  134. package/.next/standalone/.next/server/app/api/v1/models/[name]/compact-threads/route.js.nft.json +1 -1
  135. package/.next/standalone/.next/server/app/api/v1/models/[name]/route.js +204 -163
  136. package/.next/standalone/.next/server/app/api/v1/models/route.js +548 -546
  137. package/.next/standalone/.next/server/app/api/v1/packages/catalog/route.js +445 -445
  138. package/.next/standalone/.next/server/app/api/v1/packages/defaults/[id]/route.js +120 -120
  139. package/.next/standalone/.next/server/app/api/v1/packages/defaults/[id]/route.js.nft.json +1 -1
  140. package/.next/standalone/.next/server/app/api/v1/packages/install/[id]/route.js +234 -234
  141. package/.next/standalone/.next/server/app/api/v1/packages/install/[id]/route.js.nft.json +1 -1
  142. package/.next/standalone/.next/server/app/api/v1/packages/install/route.js +407 -407
  143. package/.next/standalone/.next/server/app/api/v1/packages/install/route.js.nft.json +1 -1
  144. package/.next/standalone/.next/server/app/api/v1/packages/manifests/[name]/enabled/route.js +37 -37
  145. package/.next/standalone/.next/server/app/api/v1/packages/manifests/[name]/enabled/route.js.nft.json +1 -1
  146. package/.next/standalone/.next/server/app/api/v1/packages/manifests/[name]/route.js +107 -107
  147. package/.next/standalone/.next/server/app/api/v1/packages/manifests/[name]/route.js.nft.json +1 -1
  148. package/.next/standalone/.next/server/app/api/v1/packages/manifests/route.js +228 -228
  149. package/.next/standalone/.next/server/app/api/v1/packages/manifests/route.js.nft.json +1 -1
  150. package/.next/standalone/.next/server/app/api/v1/packages/reload/route.js +9 -9
  151. package/.next/standalone/.next/server/app/api/v1/packages/reload/route.js.nft.json +1 -1
  152. package/.next/standalone/.next/server/app/api/v1/packages/route.js +148 -148
  153. package/.next/standalone/.next/server/app/api/v1/packages/route.js.nft.json +1 -1
  154. package/.next/standalone/.next/server/app/api/v1/page-capture/route.js +787 -787
  155. package/.next/standalone/.next/server/app/api/v1/page-capture/route.js.nft.json +1 -1
  156. package/.next/standalone/.next/server/app/api/v1/pending-actions/[id]/approve/route.js +507 -507
  157. package/.next/standalone/.next/server/app/api/v1/pending-actions/[id]/approve/route.js.nft.json +1 -1
  158. package/.next/standalone/.next/server/app/api/v1/pending-actions/[id]/deny/route.js +181 -181
  159. package/.next/standalone/.next/server/app/api/v1/pending-actions/[id]/deny/route.js.nft.json +1 -1
  160. package/.next/standalone/.next/server/app/api/v1/pending-actions/route.js +258 -258
  161. package/.next/standalone/.next/server/app/api/v1/pending-actions/route.js.nft.json +1 -1
  162. package/.next/standalone/.next/server/app/api/v1/profile/location/route.js +30 -30
  163. package/.next/standalone/.next/server/app/api/v1/profile/route.js +164 -164
  164. package/.next/standalone/.next/server/app/api/v1/providers/[provider]/models/route.js +71 -68
  165. package/.next/standalone/.next/server/app/api/v1/providers/[provider]/probe/route.js +9 -9
  166. package/.next/standalone/.next/server/app/api/v1/providers/github-copilot/auth/route.js +164 -164
  167. package/.next/standalone/.next/server/app/api/v1/providers/route.js +94 -94
  168. package/.next/standalone/.next/server/app/api/v1/proxy-config/route.js +450 -450
  169. package/.next/standalone/.next/server/app/api/v1/redaction/init/route.js +37 -37
  170. package/.next/standalone/.next/server/app/api/v1/redaction/route.js +58 -58
  171. package/.next/standalone/.next/server/app/api/v1/scheduled-tasks/[id]/route.js +600 -600
  172. package/.next/standalone/.next/server/app/api/v1/scheduled-tasks/[id]/run/route.js +44 -44
  173. package/.next/standalone/.next/server/app/api/v1/scheduled-tasks/[id]/run/route.js.nft.json +1 -1
  174. package/.next/standalone/.next/server/app/api/v1/scheduled-tasks/route.js +732 -732
  175. package/.next/standalone/.next/server/app/api/v1/security/idle-timeout/route.js +359 -359
  176. package/.next/standalone/.next/server/app/api/v1/security/pin/route.js +197 -197
  177. package/.next/standalone/.next/server/app/api/v1/security/state/route.js +51 -51
  178. package/.next/standalone/.next/server/app/api/v1/security/unlock/route.js +176 -176
  179. package/.next/standalone/.next/server/app/api/v1/security/verify-pin/route.js +190 -190
  180. package/.next/standalone/.next/server/app/api/v1/setup/test-key/route.js +26 -26
  181. package/.next/standalone/.next/server/app/api/v1/skills/[id]/route.js +770 -770
  182. package/.next/standalone/.next/server/app/api/v1/skills/repos/[id]/route.js +115 -115
  183. package/.next/standalone/.next/server/app/api/v1/skills/repos/route.js +327 -327
  184. package/.next/standalone/.next/server/app/api/v1/skills/route.js +870 -870
  185. package/.next/standalone/.next/server/app/api/v1/system/abort/route.js +838 -808
  186. package/.next/standalone/.next/server/app/api/v1/system/restart/route.js +177 -177
  187. package/.next/standalone/.next/server/app/api/v1/system/restart/route.js.nft.json +1 -1
  188. package/.next/standalone/.next/server/app/api/v1/tailscale/route.js +164 -164
  189. package/.next/standalone/.next/server/app/api/v1/tasks/[agent_id]/route.js +115 -115
  190. package/.next/standalone/.next/server/app/api/v1/tasks/route.js +23 -23
  191. package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/activity/route.js +1429 -0
  192. package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/activity/route.js.nft.json +1 -0
  193. package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/activity/route_client-reference-manifest.js +1 -0
  194. package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/context-pin/route.js +635 -634
  195. package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/context-pin/route.js.nft.json +1 -1
  196. package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/route.js +53 -439
  197. package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/route.js.nft.json +1 -1
  198. package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/run/route.js +172 -172
  199. package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/run/route.js.nft.json +1 -1
  200. package/.next/standalone/.next/server/app/api/v1/threads/route.js +908 -908
  201. package/.next/standalone/.next/server/app/api/v1/tools/route.js +2 -2
  202. package/.next/standalone/.next/server/app/api/v1/tools/route.js.nft.json +1 -1
  203. package/.next/standalone/.next/server/app/api/v1/update/apply/route.js +17 -17
  204. package/.next/standalone/.next/server/app/api/v1/update/apply/route.js.nft.json +1 -1
  205. package/.next/standalone/.next/server/app/api/v1/update/route.js +570 -570
  206. package/.next/standalone/.next/server/app/api/v1/voice/transcribe/route.js +224 -224
  207. package/.next/standalone/.next/server/app/api/v1/voice/tts/route.js +975 -975
  208. package/.next/standalone/.next/server/app/api/v1/watchers/[id]/route.js +23 -23
  209. package/.next/standalone/.next/server/app/api/v1/watchers/[id]/run/route.js +72 -72
  210. package/.next/standalone/.next/server/app/api/v1/watchers/[id]/run/route.js.nft.json +1 -1
  211. package/.next/standalone/.next/server/app/api/v1/watchers/reaction-scripts/route.js +128 -128
  212. package/.next/standalone/.next/server/app/api/v1/watchers/route.js +164 -164
  213. package/.next/standalone/.next/server/app/api/v1/watchers/route.js.nft.json +1 -1
  214. package/.next/standalone/.next/server/app/icon.svg/route.js +62 -62
  215. package/.next/standalone/.next/server/app/manifest.webmanifest/route.js +436 -436
  216. package/.next/standalone/.next/server/app/page.js +1170 -719
  217. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  218. package/.next/standalone/.next/server/app/setup/page.js +91 -91
  219. package/.next/standalone/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  220. package/.next/standalone/.next/server/app-paths-manifest.json +4 -3
  221. package/.next/standalone/.next/server/chunks/{424.js → 1388.js} +345 -991
  222. package/.next/standalone/.next/server/chunks/1433.js +1 -1
  223. package/.next/standalone/.next/server/chunks/1638.js +1 -2
  224. package/.next/standalone/.next/server/chunks/1738.js +1 -1
  225. package/.next/standalone/.next/server/chunks/210.js +6 -6
  226. package/.next/standalone/.next/server/chunks/2151.js +31 -1
  227. package/.next/standalone/.next/server/chunks/2207.js +1 -0
  228. package/.next/standalone/.next/server/chunks/2471.js +45 -45
  229. package/.next/standalone/.next/server/chunks/2504.js +1 -1
  230. package/.next/standalone/.next/server/chunks/2695.js +17 -17
  231. package/.next/standalone/.next/server/chunks/3042.js +14 -8
  232. package/.next/standalone/.next/server/chunks/3399.js +10695 -10695
  233. package/.next/standalone/.next/server/chunks/3524.js +5 -33
  234. package/.next/standalone/.next/server/chunks/3566.js +1 -1
  235. package/.next/standalone/.next/server/chunks/4189.js +946 -0
  236. package/.next/standalone/.next/server/chunks/{9590.js → 423.js} +116 -49
  237. package/.next/standalone/.next/server/chunks/4433.js +146 -146
  238. package/.next/standalone/.next/server/chunks/4508.js +3 -3
  239. package/.next/standalone/.next/server/chunks/4588.js +1 -0
  240. package/.next/standalone/.next/server/chunks/46.js +116 -46
  241. package/.next/standalone/.next/server/chunks/466.js +100 -13
  242. package/.next/standalone/.next/server/chunks/4868.js +206 -206
  243. package/.next/standalone/.next/server/chunks/4992.js +13 -0
  244. package/.next/standalone/.next/server/chunks/5120.js +963 -0
  245. package/.next/standalone/.next/server/chunks/5701.js +1 -1
  246. package/.next/standalone/.next/server/chunks/5900.js +1 -1
  247. package/.next/standalone/.next/server/chunks/6210.js +1 -0
  248. package/.next/standalone/.next/server/chunks/6213.js +1 -1
  249. package/.next/standalone/.next/server/chunks/6649.js +3 -3
  250. package/.next/standalone/.next/server/chunks/6703.js +3 -3
  251. package/.next/standalone/.next/server/chunks/7445.js +1 -0
  252. package/.next/standalone/.next/server/chunks/8067.js +12 -0
  253. package/.next/standalone/.next/server/chunks/8461.js +14 -9
  254. package/.next/standalone/.next/server/chunks/8558.js +1 -1
  255. package/.next/standalone/.next/server/chunks/8724.js +1 -1
  256. package/.next/standalone/.next/server/chunks/8849.js +91 -91
  257. package/.next/standalone/.next/server/chunks/9032.js +6 -5
  258. package/.next/standalone/.next/server/chunks/{2563.js → 9164.js} +33106 -31420
  259. package/.next/standalone/.next/server/chunks/9237.js +396 -396
  260. package/.next/standalone/.next/server/chunks/{9640.js → 9304.js} +1628 -573
  261. package/.next/standalone/.next/server/chunks/9406.js +1 -1
  262. package/.next/standalone/.next/server/chunks/9824.js +98 -98
  263. package/.next/standalone/.next/server/chunks/9826.js +1 -0
  264. package/.next/standalone/.next/server/middleware-build-manifest.js +2 -2
  265. package/.next/standalone/.next/server/middleware.js +519 -442
  266. package/.next/standalone/.next/server/pages/404.html +2 -2
  267. package/.next/standalone/.next/server/pages/500.html +1 -1
  268. package/.next/standalone/.next/server/preview-props.json +3 -3
  269. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  270. package/.next/standalone/.next/static/chunks/{1395-f201e3e2e1f57715.js → 1395-e4a99912b8f83044.js} +101 -14
  271. package/.next/standalone/.next/static/chunks/{4576-13f7546a145a3624.js → 7045-8bc2f14e430ca661.js} +58 -2
  272. package/.next/standalone/.next/static/chunks/app/_global-error/{page-36cb8b428b38b26a.js → page-6fc5f8e744c81802.js} +1 -1
  273. package/.next/standalone/.next/static/chunks/app/api/v1/access/[identity]/{route-36cb8b428b38b26a.js → route-6fc5f8e744c81802.js} +1 -1
  274. package/.next/standalone/.next/static/chunks/app/api/v1/access/{route-36cb8b428b38b26a.js → route-6fc5f8e744c81802.js} +1 -1
  275. package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/compact/{route-36cb8b428b38b26a.js → route-6fc5f8e744c81802.js} +1 -1
  276. package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/display-filters/route-6fc5f8e744c81802.js +17 -0
  277. package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/route-6fc5f8e744c81802.js +17 -0
  278. package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/thread/route-6fc5f8e744c81802.js +17 -0
  279. package/.next/standalone/.next/static/chunks/app/api/v1/agents/route-6fc5f8e744c81802.js +17 -0
  280. package/.next/standalone/.next/static/chunks/app/api/v1/allowed-sites/[hostname]/route-6fc5f8e744c81802.js +17 -0
  281. package/.next/standalone/.next/static/chunks/app/api/v1/allowed-sites/route-6fc5f8e744c81802.js +17 -0
  282. package/.next/standalone/.next/static/chunks/app/api/v1/artifacts/lifecycle/route-6fc5f8e744c81802.js +17 -0
  283. package/.next/standalone/.next/static/chunks/app/api/v1/attachments/files/route-6fc5f8e744c81802.js +17 -0
  284. package/.next/standalone/.next/static/chunks/app/api/v1/attachments/images/route-6fc5f8e744c81802.js +17 -0
  285. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/chats/route-6fc5f8e744c81802.js +17 -0
  286. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/ignores/[remote_jid]/route-6fc5f8e744c81802.js +17 -0
  287. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/ignores/route-6fc5f8e744c81802.js +17 -0
  288. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/lookup/route-6fc5f8e744c81802.js +17 -0
  289. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/pair/route-6fc5f8e744c81802.js +17 -0
  290. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/route-6fc5f8e744c81802.js +17 -0
  291. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/routes/[route_id]/route-6fc5f8e744c81802.js +17 -0
  292. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/routes/route-6fc5f8e744c81802.js +17 -0
  293. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/status/route-6fc5f8e744c81802.js +17 -0
  294. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/kinds/route-6fc5f8e744c81802.js +17 -0
  295. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/route-6fc5f8e744c81802.js +17 -0
  296. package/.next/standalone/.next/static/chunks/app/api/v1/builtin-tools/route-6fc5f8e744c81802.js +17 -0
  297. package/.next/standalone/.next/static/chunks/app/api/v1/config/route-6fc5f8e744c81802.js +17 -0
  298. package/.next/standalone/.next/static/chunks/app/api/v1/credentials/[id]/route-6fc5f8e744c81802.js +17 -0
  299. package/.next/standalone/.next/static/chunks/app/api/v1/credentials/route-6fc5f8e744c81802.js +17 -0
  300. package/.next/standalone/.next/static/chunks/app/api/v1/dashboard/currency/route-6fc5f8e744c81802.js +17 -0
  301. package/.next/standalone/.next/static/chunks/app/api/v1/dashboard/metrics/route-6fc5f8e744c81802.js +17 -0
  302. package/.next/standalone/.next/static/chunks/app/api/v1/dashboard/pricing/route-6fc5f8e744c81802.js +17 -0
  303. package/.next/standalone/.next/static/chunks/app/api/v1/dashboard/pricing-task/route-6fc5f8e744c81802.js +17 -0
  304. package/.next/standalone/.next/static/chunks/app/api/v1/delegations/codex/[job_id]/route-6fc5f8e744c81802.js +17 -0
  305. package/.next/standalone/.next/static/chunks/app/api/v1/documents/search/route-6fc5f8e744c81802.js +17 -0
  306. package/.next/standalone/.next/static/chunks/app/api/v1/documents/settings/route-6fc5f8e744c81802.js +17 -0
  307. package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/[id]/reindex/route-6fc5f8e744c81802.js +17 -0
  308. package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/[id]/route-6fc5f8e744c81802.js +17 -0
  309. package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/route-6fc5f8e744c81802.js +17 -0
  310. package/.next/standalone/.next/static/chunks/app/api/v1/env/route-6fc5f8e744c81802.js +17 -0
  311. package/.next/standalone/.next/static/chunks/app/api/v1/env-sync/allowlist/route-6fc5f8e744c81802.js +17 -0
  312. package/.next/standalone/.next/static/chunks/app/api/v1/env-sync/route-6fc5f8e744c81802.js +17 -0
  313. package/.next/standalone/.next/static/chunks/app/api/v1/events/route-6fc5f8e744c81802.js +17 -0
  314. package/.next/standalone/.next/static/chunks/app/api/v1/events/test/route-6fc5f8e744c81802.js +17 -0
  315. package/.next/standalone/.next/static/chunks/app/api/v1/extension/agents/route-6fc5f8e744c81802.js +17 -0
  316. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/activate/route-6fc5f8e744c81802.js +17 -0
  317. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/foreground/route-6fc5f8e744c81802.js +17 -0
  318. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/history/route-6fc5f8e744c81802.js +17 -0
  319. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/poll/route-6fc5f8e744c81802.js +17 -0
  320. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/progress/route-6fc5f8e744c81802.js +17 -0
  321. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/result/route-6fc5f8e744c81802.js +17 -0
  322. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/retry/route-6fc5f8e744c81802.js +17 -0
  323. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/status/route-6fc5f8e744c81802.js +17 -0
  324. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/tabs/route-6fc5f8e744c81802.js +17 -0
  325. package/.next/standalone/.next/static/chunks/app/api/v1/extension/fill/route-6fc5f8e744c81802.js +17 -0
  326. package/.next/standalone/.next/static/chunks/app/api/v1/extension/refine/route-6fc5f8e744c81802.js +17 -0
  327. package/.next/standalone/.next/static/chunks/app/api/v1/extension/turn/route-6fc5f8e744c81802.js +17 -0
  328. package/.next/standalone/.next/static/chunks/app/api/v1/extensions/route-6fc5f8e744c81802.js +17 -0
  329. package/.next/standalone/.next/static/chunks/app/api/v1/extensions/tools/[name]/config/route-6fc5f8e744c81802.js +17 -0
  330. package/.next/standalone/.next/static/chunks/app/api/v1/extensions/tools/[name]/route-6fc5f8e744c81802.js +17 -0
  331. package/.next/standalone/.next/static/chunks/app/api/v1/extensions/tools/[name]/secrets/route-6fc5f8e744c81802.js +17 -0
  332. package/.next/standalone/.next/static/chunks/app/api/v1/files/[name]/route-6fc5f8e744c81802.js +17 -0
  333. package/.next/standalone/.next/static/chunks/app/api/v1/fs/browse/route-6fc5f8e744c81802.js +17 -0
  334. package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/[id]/route-6fc5f8e744c81802.js +17 -0
  335. package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/default/route-6fc5f8e744c81802.js +17 -0
  336. package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/route-6fc5f8e744c81802.js +17 -0
  337. package/.next/standalone/.next/static/chunks/app/api/v1/health/probes/route-6fc5f8e744c81802.js +17 -0
  338. package/.next/standalone/.next/static/chunks/app/api/v1/health/route-6fc5f8e744c81802.js +17 -0
  339. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/[name]/route-6fc5f8e744c81802.js +17 -0
  340. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/[name]/test/route-6fc5f8e744c81802.js +17 -0
  341. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/callback/route-6fc5f8e744c81802.js +17 -0
  342. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/start/route-6fc5f8e744c81802.js +17 -0
  343. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/status/route-6fc5f8e744c81802.js +17 -0
  344. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/callback/route-6fc5f8e744c81802.js +17 -0
  345. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/start/route-6fc5f8e744c81802.js +17 -0
  346. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/status/route-6fc5f8e744c81802.js +17 -0
  347. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/route-6fc5f8e744c81802.js +17 -0
  348. package/.next/standalone/.next/static/chunks/app/api/v1/lifecycle/adoption/route-6fc5f8e744c81802.js +17 -0
  349. package/.next/standalone/.next/static/chunks/app/api/v1/local-file/route-6fc5f8e744c81802.js +17 -0
  350. package/.next/standalone/.next/static/chunks/app/api/v1/logs/route-6fc5f8e744c81802.js +17 -0
  351. package/.next/standalone/.next/static/chunks/app/api/v1/maps/embed/route-6fc5f8e744c81802.js +17 -0
  352. package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/[name]/route-6fc5f8e744c81802.js +17 -0
  353. package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/registry/route-6fc5f8e744c81802.js +17 -0
  354. package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/route-6fc5f8e744c81802.js +17 -0
  355. package/.next/standalone/.next/static/chunks/app/api/v1/memory/[namespace]/[key]/route-6fc5f8e744c81802.js +17 -0
  356. package/.next/standalone/.next/static/chunks/app/api/v1/memory/policy/route-6fc5f8e744c81802.js +17 -0
  357. package/.next/standalone/.next/static/chunks/app/api/v1/memory/route-6fc5f8e744c81802.js +17 -0
  358. package/.next/standalone/.next/static/chunks/app/api/v1/memory/search/route-6fc5f8e744c81802.js +17 -0
  359. package/.next/standalone/.next/static/chunks/app/api/v1/models/[name]/compact-threads/route-6fc5f8e744c81802.js +17 -0
  360. package/.next/standalone/.next/static/chunks/app/api/v1/models/[name]/route-6fc5f8e744c81802.js +17 -0
  361. package/.next/standalone/.next/static/chunks/app/api/v1/models/route-6fc5f8e744c81802.js +17 -0
  362. package/.next/standalone/.next/static/chunks/app/api/v1/packages/catalog/route-6fc5f8e744c81802.js +17 -0
  363. package/.next/standalone/.next/static/chunks/app/api/v1/packages/defaults/[id]/route-6fc5f8e744c81802.js +17 -0
  364. package/.next/standalone/.next/static/chunks/app/api/v1/packages/install/[id]/route-6fc5f8e744c81802.js +17 -0
  365. package/.next/standalone/.next/static/chunks/app/api/v1/packages/install/route-6fc5f8e744c81802.js +17 -0
  366. package/.next/standalone/.next/static/chunks/app/api/v1/packages/manifests/[name]/enabled/route-6fc5f8e744c81802.js +17 -0
  367. package/.next/standalone/.next/static/chunks/app/api/v1/packages/manifests/[name]/route-6fc5f8e744c81802.js +17 -0
  368. package/.next/standalone/.next/static/chunks/app/api/v1/packages/manifests/route-6fc5f8e744c81802.js +17 -0
  369. package/.next/standalone/.next/static/chunks/app/api/v1/packages/reload/route-6fc5f8e744c81802.js +17 -0
  370. package/.next/standalone/.next/static/chunks/app/api/v1/packages/route-6fc5f8e744c81802.js +17 -0
  371. package/.next/standalone/.next/static/chunks/app/api/v1/page-capture/route-6fc5f8e744c81802.js +17 -0
  372. package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/[id]/approve/route-6fc5f8e744c81802.js +17 -0
  373. package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/[id]/deny/route-6fc5f8e744c81802.js +17 -0
  374. package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/route-6fc5f8e744c81802.js +17 -0
  375. package/.next/standalone/.next/static/chunks/app/api/v1/profile/location/route-6fc5f8e744c81802.js +17 -0
  376. package/.next/standalone/.next/static/chunks/app/api/v1/profile/route-6fc5f8e744c81802.js +17 -0
  377. package/.next/standalone/.next/static/chunks/app/api/v1/providers/[provider]/models/route-6fc5f8e744c81802.js +17 -0
  378. package/.next/standalone/.next/static/chunks/app/api/v1/providers/[provider]/probe/route-6fc5f8e744c81802.js +17 -0
  379. package/.next/standalone/.next/static/chunks/app/api/v1/providers/github-copilot/auth/route-6fc5f8e744c81802.js +17 -0
  380. package/.next/standalone/.next/static/chunks/app/api/v1/providers/route-6fc5f8e744c81802.js +17 -0
  381. package/.next/standalone/.next/static/chunks/app/api/v1/proxy-config/route-6fc5f8e744c81802.js +17 -0
  382. package/.next/standalone/.next/static/chunks/app/api/v1/redaction/init/route-6fc5f8e744c81802.js +17 -0
  383. package/.next/standalone/.next/static/chunks/app/api/v1/redaction/route-6fc5f8e744c81802.js +17 -0
  384. package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/[id]/route-6fc5f8e744c81802.js +17 -0
  385. package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/[id]/run/route-6fc5f8e744c81802.js +17 -0
  386. package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/route-6fc5f8e744c81802.js +17 -0
  387. package/.next/standalone/.next/static/chunks/app/api/v1/security/idle-timeout/route-6fc5f8e744c81802.js +17 -0
  388. package/.next/standalone/.next/static/chunks/app/api/v1/security/pin/route-6fc5f8e744c81802.js +17 -0
  389. package/.next/standalone/.next/static/chunks/app/api/v1/security/state/route-6fc5f8e744c81802.js +17 -0
  390. package/.next/standalone/.next/static/chunks/app/api/v1/security/unlock/route-6fc5f8e744c81802.js +17 -0
  391. package/.next/standalone/.next/static/chunks/app/api/v1/security/verify-pin/route-6fc5f8e744c81802.js +17 -0
  392. package/.next/standalone/.next/static/chunks/app/api/v1/setup/test-key/route-6fc5f8e744c81802.js +17 -0
  393. package/.next/standalone/.next/static/chunks/app/api/v1/skills/[id]/route-6fc5f8e744c81802.js +17 -0
  394. package/.next/standalone/.next/static/chunks/app/api/v1/skills/repos/[id]/route-6fc5f8e744c81802.js +17 -0
  395. package/.next/standalone/.next/static/chunks/app/api/v1/skills/repos/route-6fc5f8e744c81802.js +17 -0
  396. package/.next/standalone/.next/static/chunks/app/api/v1/skills/route-6fc5f8e744c81802.js +17 -0
  397. package/.next/standalone/.next/static/chunks/app/api/v1/system/abort/route-6fc5f8e744c81802.js +17 -0
  398. package/.next/standalone/.next/static/chunks/app/api/v1/system/restart/route-6fc5f8e744c81802.js +17 -0
  399. package/.next/standalone/.next/static/chunks/app/api/v1/tailscale/route-6fc5f8e744c81802.js +17 -0
  400. package/.next/standalone/.next/static/chunks/app/api/v1/tasks/[agent_id]/route-6fc5f8e744c81802.js +17 -0
  401. package/.next/standalone/.next/static/chunks/app/api/v1/tasks/route-6fc5f8e744c81802.js +17 -0
  402. package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/activity/route-6fc5f8e744c81802.js +17 -0
  403. package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/context-pin/route-6fc5f8e744c81802.js +17 -0
  404. package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/route-6fc5f8e744c81802.js +17 -0
  405. package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/run/route-6fc5f8e744c81802.js +17 -0
  406. package/.next/standalone/.next/static/chunks/app/api/v1/threads/route-6fc5f8e744c81802.js +17 -0
  407. package/.next/standalone/.next/static/chunks/app/api/v1/tools/route-6fc5f8e744c81802.js +17 -0
  408. package/.next/standalone/.next/static/chunks/app/api/v1/update/apply/route-6fc5f8e744c81802.js +17 -0
  409. package/.next/standalone/.next/static/chunks/app/api/v1/update/route-6fc5f8e744c81802.js +17 -0
  410. package/.next/standalone/.next/static/chunks/app/api/v1/voice/transcribe/route-6fc5f8e744c81802.js +17 -0
  411. package/.next/standalone/.next/static/chunks/app/api/v1/voice/tts/route-6fc5f8e744c81802.js +17 -0
  412. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/[id]/route-6fc5f8e744c81802.js +17 -0
  413. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/[id]/run/route-6fc5f8e744c81802.js +17 -0
  414. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/reaction-scripts/route-6fc5f8e744c81802.js +17 -0
  415. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/route-6fc5f8e744c81802.js +17 -0
  416. package/.next/standalone/.next/static/chunks/app/manifest.webmanifest/route-6fc5f8e744c81802.js +17 -0
  417. package/.next/standalone/.next/static/chunks/app/{page-c6e972a7fd13dae8.js → page-213a623b37226452.js} +1012 -604
  418. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-6fc5f8e744c81802.js +17 -0
  419. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-6fc5f8e744c81802.js +17 -0
  420. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-6fc5f8e744c81802.js +17 -0
  421. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-6fc5f8e744c81802.js +17 -0
  422. package/.next/standalone/.next/static/css/{d80058f0b9b41c09.css → 312542a5725ba0d5.css} +2 -2
  423. package/.next/standalone/docs/adoption/changesets.json +309 -0
  424. package/.next/standalone/lib/skills/builtins/memory-organization/SKILL.md +16 -0
  425. package/.next/standalone/package.json +3 -3
  426. package/CHANGELOG.md +33 -0
  427. package/api/client.models.test.ts +31 -0
  428. package/api/client.ts +25 -1
  429. package/api/types.ts +37 -0
  430. package/app/api/v1/lifecycle/adoption/route.ts +14 -2
  431. package/app/api/v1/models/[name]/compact-threads/route.ts +14 -11
  432. package/app/api/v1/models/[name]/route.test.ts +89 -0
  433. package/app/api/v1/models/[name]/route.ts +54 -3
  434. package/app/api/v1/models/route.ts +4 -2
  435. package/app/api/v1/providers/[provider]/models/route.test.ts +53 -0
  436. package/app/api/v1/providers/[provider]/models/route.ts +27 -16
  437. package/app/api/v1/threads/[thread_id]/activity/route.ts +19 -0
  438. package/app/api/v1/threads/[thread_id]/context-pin/route.test.ts +1 -0
  439. package/app/api/v1/threads/[thread_id]/context-pin/route.ts +2 -1
  440. package/app/api/v1/threads/[thread_id]/route.ts +5 -1
  441. package/components/agents/agent-editor/AdvancedSection.tsx +8 -2
  442. package/components/agents/agent-editor/ModelSection.tsx +6 -3
  443. package/components/chat/ChatView.tsx +52 -11
  444. package/components/chat/ContextBoundary.test.tsx +68 -1
  445. package/components/chat/ContextBoundary.tsx +92 -13
  446. package/components/chat/MessageList.test.tsx +31 -0
  447. package/components/chat/MessageList.tsx +49 -28
  448. package/components/chat/ToolList.test.tsx +92 -16
  449. package/components/chat/ToolList.tsx +59 -4
  450. package/components/chat/chat-helpers.test.tsx +24 -1
  451. package/components/chat/chat-helpers.ts +47 -4
  452. package/components/chat/useThreadActivity.test.tsx +113 -0
  453. package/components/chat/useThreadActivity.ts +94 -0
  454. package/components/chat/useThreadData.ts +16 -16
  455. package/components/chat/workflow-step-retry.ts +25 -0
  456. package/components/models/ModelEditor.tsx +1 -1
  457. package/components/models/ModelsPanel.tsx +34 -8
  458. package/components/models/model-editor/GitHubCopilotAuth.tsx +1 -1
  459. package/components/models/model-editor/save-helpers.ts +2 -2
  460. package/components/models/model-editor/useModelEditorForm.ts +1 -1
  461. package/components/models/model-editor/useModelSaveHandlers.ts +1 -1
  462. package/components/setup/wizard/StepCredentials.tsx +1 -1
  463. package/components/setup/wizard/StepModel.tsx +3 -8
  464. package/components/ui/BootScreen.tsx +17 -0
  465. package/components/ui/WorkflowChecklist.tsx +71 -33
  466. package/hooks/useModels.ts +17 -1
  467. package/hooks/useSSE.ts +28 -3
  468. package/lib/agents/compaction-pipeline.test.ts +202 -0
  469. package/lib/agents/compaction-pipeline.ts +483 -0
  470. package/lib/agents/conversation-summary.ts +37 -21
  471. package/lib/agents/effective-model.test.ts +45 -0
  472. package/lib/agents/effective-model.ts +11 -5
  473. package/lib/agents/llm.ts +2 -2
  474. package/lib/agents/prepare/history-window.test.ts +18 -0
  475. package/lib/agents/prepare/history-window.ts +11 -2
  476. package/lib/agents/prepare/request.ts +4 -0
  477. package/lib/agents/prepare/system-prompt.test.ts +39 -0
  478. package/lib/agents/prepare/system-prompt.ts +8 -3
  479. package/lib/agents/prompt-registry.test.ts +5 -140
  480. package/lib/agents/prompt-registry.ts +45 -1
  481. package/lib/agents/prompt-variants.ts +146 -0
  482. package/lib/agents/run-registry.test.ts +22 -0
  483. package/lib/agents/run-registry.ts +29 -0
  484. package/lib/agents/run-thread.retry.test.ts +67 -1
  485. package/lib/agents/run-thread.ts +96 -6
  486. package/lib/agents/thread-activity.test.ts +31 -0
  487. package/lib/agents/thread-activity.ts +27 -0
  488. package/lib/agents/thread-compaction-state.test.ts +82 -0
  489. package/lib/agents/thread-compaction-state.ts +121 -0
  490. package/lib/agents/thread-compaction.test.ts +83 -4
  491. package/lib/agents/thread-compaction.ts +34 -11
  492. package/lib/agents/warm-summary-background.test.ts +220 -7
  493. package/lib/agents/warm-summary-background.ts +329 -149
  494. package/lib/agents/warm-topics.test.ts +37 -0
  495. package/lib/agents/warm-topics.ts +297 -0
  496. package/lib/agents/workflow-step-retry.test.ts +96 -0
  497. package/lib/agents/workflow-step-retry.ts +216 -0
  498. package/lib/api/browser-control.ts +0 -3
  499. package/lib/db/migrations.ts +15 -0
  500. package/lib/env/config.ts +2 -0
  501. package/lib/env/schema.ts +12 -0
  502. package/lib/health/probes.test.ts +8 -11
  503. package/lib/health/probes.ts +5 -31
  504. package/lib/lifecycle/changeset-build.test.ts +93 -0
  505. package/lib/lifecycle/changeset-build.ts +210 -0
  506. package/lib/lifecycle/changesets.test.ts +101 -0
  507. package/lib/lifecycle/changesets.ts +166 -0
  508. package/lib/lifecycle/surface-collect.test.ts +88 -0
  509. package/lib/lifecycle/surface-collect.ts +64 -0
  510. package/lib/lifecycle/surface-snapshot.test.ts +104 -0
  511. package/lib/lifecycle/surface-snapshot.ts +210 -0
  512. package/lib/memory/record.ts +0 -2
  513. package/lib/models/editor-payload.ts +1 -1
  514. package/lib/providers/external.ts +0 -2
  515. package/lib/providers/github-copilot-auth.ts +2 -3
  516. package/lib/providers/github-copilot.test.ts +27 -0
  517. package/lib/providers/github-copilot.ts +21 -44
  518. package/lib/skills/builtins/memory-organization/SKILL.md +16 -0
  519. package/lib/stores/integrations.test.ts +7 -0
  520. package/lib/stores/integrations.ts +4 -4
  521. package/lib/stores/model-config.test.ts +88 -0
  522. package/lib/stores/model-config.ts +90 -8
  523. package/lib/stores/threads.test.ts +9 -0
  524. package/lib/stores/threads.ts +21 -11
  525. package/lib/stores/version-adoption.test.ts +96 -0
  526. package/lib/stores/version-adoption.ts +239 -26
  527. package/lib/stores/workflow-progress.ts +3 -0
  528. package/lib/tools/communications/ms-todo.ts +0 -7
  529. package/lib/tools/general/memory.ts +1 -1
  530. package/lib/tools/general/workflow-progress.ts +2 -0
  531. package/lib/tools/runtime/catalog.ts +1 -25
  532. package/lib/triggers/registry.ts +0 -4
  533. package/package.json +3 -3
  534. package/scripts/install-to-system.ps1 +39 -11
  535. package/scripts/install-to-system.sh +37 -3
  536. package/.next/standalone/.next/server/chunks/3979.js +0 -581
  537. package/.next/standalone/.next/server/chunks/5936.js +0 -594
  538. package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/display-filters/route-36cb8b428b38b26a.js +0 -17
  539. package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/route-36cb8b428b38b26a.js +0 -17
  540. package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/thread/route-36cb8b428b38b26a.js +0 -17
  541. package/.next/standalone/.next/static/chunks/app/api/v1/agents/route-36cb8b428b38b26a.js +0 -17
  542. package/.next/standalone/.next/static/chunks/app/api/v1/allowed-sites/[hostname]/route-36cb8b428b38b26a.js +0 -17
  543. package/.next/standalone/.next/static/chunks/app/api/v1/allowed-sites/route-36cb8b428b38b26a.js +0 -17
  544. package/.next/standalone/.next/static/chunks/app/api/v1/artifacts/lifecycle/route-36cb8b428b38b26a.js +0 -17
  545. package/.next/standalone/.next/static/chunks/app/api/v1/attachments/files/route-36cb8b428b38b26a.js +0 -17
  546. package/.next/standalone/.next/static/chunks/app/api/v1/attachments/images/route-36cb8b428b38b26a.js +0 -17
  547. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/chats/route-36cb8b428b38b26a.js +0 -17
  548. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/ignores/[remote_jid]/route-36cb8b428b38b26a.js +0 -17
  549. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/ignores/route-36cb8b428b38b26a.js +0 -17
  550. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/lookup/route-36cb8b428b38b26a.js +0 -17
  551. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/pair/route-36cb8b428b38b26a.js +0 -17
  552. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/route-36cb8b428b38b26a.js +0 -17
  553. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/routes/[route_id]/route-36cb8b428b38b26a.js +0 -17
  554. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/routes/route-36cb8b428b38b26a.js +0 -17
  555. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/status/route-36cb8b428b38b26a.js +0 -17
  556. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/kinds/route-36cb8b428b38b26a.js +0 -17
  557. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/route-36cb8b428b38b26a.js +0 -17
  558. package/.next/standalone/.next/static/chunks/app/api/v1/builtin-tools/route-36cb8b428b38b26a.js +0 -17
  559. package/.next/standalone/.next/static/chunks/app/api/v1/config/route-36cb8b428b38b26a.js +0 -17
  560. package/.next/standalone/.next/static/chunks/app/api/v1/credentials/[id]/route-36cb8b428b38b26a.js +0 -17
  561. package/.next/standalone/.next/static/chunks/app/api/v1/credentials/route-36cb8b428b38b26a.js +0 -17
  562. package/.next/standalone/.next/static/chunks/app/api/v1/dashboard/currency/route-36cb8b428b38b26a.js +0 -17
  563. package/.next/standalone/.next/static/chunks/app/api/v1/dashboard/metrics/route-36cb8b428b38b26a.js +0 -17
  564. package/.next/standalone/.next/static/chunks/app/api/v1/dashboard/pricing/route-36cb8b428b38b26a.js +0 -17
  565. package/.next/standalone/.next/static/chunks/app/api/v1/dashboard/pricing-task/route-36cb8b428b38b26a.js +0 -17
  566. package/.next/standalone/.next/static/chunks/app/api/v1/delegations/codex/[job_id]/route-36cb8b428b38b26a.js +0 -17
  567. package/.next/standalone/.next/static/chunks/app/api/v1/documents/search/route-36cb8b428b38b26a.js +0 -17
  568. package/.next/standalone/.next/static/chunks/app/api/v1/documents/settings/route-36cb8b428b38b26a.js +0 -17
  569. package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/[id]/reindex/route-36cb8b428b38b26a.js +0 -17
  570. package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/[id]/route-36cb8b428b38b26a.js +0 -17
  571. package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/route-36cb8b428b38b26a.js +0 -17
  572. package/.next/standalone/.next/static/chunks/app/api/v1/env/route-36cb8b428b38b26a.js +0 -17
  573. package/.next/standalone/.next/static/chunks/app/api/v1/env-sync/allowlist/route-36cb8b428b38b26a.js +0 -17
  574. package/.next/standalone/.next/static/chunks/app/api/v1/env-sync/route-36cb8b428b38b26a.js +0 -17
  575. package/.next/standalone/.next/static/chunks/app/api/v1/events/route-36cb8b428b38b26a.js +0 -17
  576. package/.next/standalone/.next/static/chunks/app/api/v1/events/test/route-36cb8b428b38b26a.js +0 -17
  577. package/.next/standalone/.next/static/chunks/app/api/v1/extension/agents/route-36cb8b428b38b26a.js +0 -17
  578. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/activate/route-36cb8b428b38b26a.js +0 -17
  579. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/foreground/route-36cb8b428b38b26a.js +0 -17
  580. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/history/route-36cb8b428b38b26a.js +0 -17
  581. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/poll/route-36cb8b428b38b26a.js +0 -17
  582. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/progress/route-36cb8b428b38b26a.js +0 -17
  583. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/result/route-36cb8b428b38b26a.js +0 -17
  584. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/retry/route-36cb8b428b38b26a.js +0 -17
  585. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/status/route-36cb8b428b38b26a.js +0 -17
  586. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/tabs/route-36cb8b428b38b26a.js +0 -17
  587. package/.next/standalone/.next/static/chunks/app/api/v1/extension/fill/route-36cb8b428b38b26a.js +0 -17
  588. package/.next/standalone/.next/static/chunks/app/api/v1/extension/refine/route-36cb8b428b38b26a.js +0 -17
  589. package/.next/standalone/.next/static/chunks/app/api/v1/extension/turn/route-36cb8b428b38b26a.js +0 -17
  590. package/.next/standalone/.next/static/chunks/app/api/v1/extensions/route-36cb8b428b38b26a.js +0 -17
  591. package/.next/standalone/.next/static/chunks/app/api/v1/extensions/tools/[name]/config/route-36cb8b428b38b26a.js +0 -17
  592. package/.next/standalone/.next/static/chunks/app/api/v1/extensions/tools/[name]/route-36cb8b428b38b26a.js +0 -17
  593. package/.next/standalone/.next/static/chunks/app/api/v1/extensions/tools/[name]/secrets/route-36cb8b428b38b26a.js +0 -17
  594. package/.next/standalone/.next/static/chunks/app/api/v1/files/[name]/route-36cb8b428b38b26a.js +0 -17
  595. package/.next/standalone/.next/static/chunks/app/api/v1/fs/browse/route-36cb8b428b38b26a.js +0 -17
  596. package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/[id]/route-36cb8b428b38b26a.js +0 -17
  597. package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/default/route-36cb8b428b38b26a.js +0 -17
  598. package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/route-36cb8b428b38b26a.js +0 -17
  599. package/.next/standalone/.next/static/chunks/app/api/v1/health/probes/route-36cb8b428b38b26a.js +0 -17
  600. package/.next/standalone/.next/static/chunks/app/api/v1/health/route-36cb8b428b38b26a.js +0 -17
  601. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/[name]/route-36cb8b428b38b26a.js +0 -17
  602. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/[name]/test/route-36cb8b428b38b26a.js +0 -17
  603. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/callback/route-36cb8b428b38b26a.js +0 -17
  604. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/start/route-36cb8b428b38b26a.js +0 -17
  605. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/status/route-36cb8b428b38b26a.js +0 -17
  606. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/callback/route-36cb8b428b38b26a.js +0 -17
  607. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/start/route-36cb8b428b38b26a.js +0 -17
  608. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/status/route-36cb8b428b38b26a.js +0 -17
  609. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/route-36cb8b428b38b26a.js +0 -17
  610. package/.next/standalone/.next/static/chunks/app/api/v1/lifecycle/adoption/route-36cb8b428b38b26a.js +0 -17
  611. package/.next/standalone/.next/static/chunks/app/api/v1/local-file/route-36cb8b428b38b26a.js +0 -17
  612. package/.next/standalone/.next/static/chunks/app/api/v1/logs/route-36cb8b428b38b26a.js +0 -17
  613. package/.next/standalone/.next/static/chunks/app/api/v1/maps/embed/route-36cb8b428b38b26a.js +0 -17
  614. package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/[name]/route-36cb8b428b38b26a.js +0 -17
  615. package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/registry/route-36cb8b428b38b26a.js +0 -17
  616. package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/route-36cb8b428b38b26a.js +0 -17
  617. package/.next/standalone/.next/static/chunks/app/api/v1/memory/[namespace]/[key]/route-36cb8b428b38b26a.js +0 -17
  618. package/.next/standalone/.next/static/chunks/app/api/v1/memory/policy/route-36cb8b428b38b26a.js +0 -17
  619. package/.next/standalone/.next/static/chunks/app/api/v1/memory/route-36cb8b428b38b26a.js +0 -17
  620. package/.next/standalone/.next/static/chunks/app/api/v1/memory/search/route-36cb8b428b38b26a.js +0 -17
  621. package/.next/standalone/.next/static/chunks/app/api/v1/models/[name]/compact-threads/route-36cb8b428b38b26a.js +0 -17
  622. package/.next/standalone/.next/static/chunks/app/api/v1/models/[name]/route-36cb8b428b38b26a.js +0 -17
  623. package/.next/standalone/.next/static/chunks/app/api/v1/models/route-36cb8b428b38b26a.js +0 -17
  624. package/.next/standalone/.next/static/chunks/app/api/v1/packages/catalog/route-36cb8b428b38b26a.js +0 -17
  625. package/.next/standalone/.next/static/chunks/app/api/v1/packages/defaults/[id]/route-36cb8b428b38b26a.js +0 -17
  626. package/.next/standalone/.next/static/chunks/app/api/v1/packages/install/[id]/route-36cb8b428b38b26a.js +0 -17
  627. package/.next/standalone/.next/static/chunks/app/api/v1/packages/install/route-36cb8b428b38b26a.js +0 -17
  628. package/.next/standalone/.next/static/chunks/app/api/v1/packages/manifests/[name]/enabled/route-36cb8b428b38b26a.js +0 -17
  629. package/.next/standalone/.next/static/chunks/app/api/v1/packages/manifests/[name]/route-36cb8b428b38b26a.js +0 -17
  630. package/.next/standalone/.next/static/chunks/app/api/v1/packages/manifests/route-36cb8b428b38b26a.js +0 -17
  631. package/.next/standalone/.next/static/chunks/app/api/v1/packages/reload/route-36cb8b428b38b26a.js +0 -17
  632. package/.next/standalone/.next/static/chunks/app/api/v1/packages/route-36cb8b428b38b26a.js +0 -17
  633. package/.next/standalone/.next/static/chunks/app/api/v1/page-capture/route-36cb8b428b38b26a.js +0 -17
  634. package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/[id]/approve/route-36cb8b428b38b26a.js +0 -17
  635. package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/[id]/deny/route-36cb8b428b38b26a.js +0 -17
  636. package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/route-36cb8b428b38b26a.js +0 -17
  637. package/.next/standalone/.next/static/chunks/app/api/v1/profile/location/route-36cb8b428b38b26a.js +0 -17
  638. package/.next/standalone/.next/static/chunks/app/api/v1/profile/route-36cb8b428b38b26a.js +0 -17
  639. package/.next/standalone/.next/static/chunks/app/api/v1/providers/[provider]/models/route-36cb8b428b38b26a.js +0 -17
  640. package/.next/standalone/.next/static/chunks/app/api/v1/providers/[provider]/probe/route-36cb8b428b38b26a.js +0 -17
  641. package/.next/standalone/.next/static/chunks/app/api/v1/providers/github-copilot/auth/route-36cb8b428b38b26a.js +0 -17
  642. package/.next/standalone/.next/static/chunks/app/api/v1/providers/route-36cb8b428b38b26a.js +0 -17
  643. package/.next/standalone/.next/static/chunks/app/api/v1/proxy-config/route-36cb8b428b38b26a.js +0 -17
  644. package/.next/standalone/.next/static/chunks/app/api/v1/redaction/init/route-36cb8b428b38b26a.js +0 -17
  645. package/.next/standalone/.next/static/chunks/app/api/v1/redaction/route-36cb8b428b38b26a.js +0 -17
  646. package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/[id]/route-36cb8b428b38b26a.js +0 -17
  647. package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/[id]/run/route-36cb8b428b38b26a.js +0 -17
  648. package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/route-36cb8b428b38b26a.js +0 -17
  649. package/.next/standalone/.next/static/chunks/app/api/v1/security/idle-timeout/route-36cb8b428b38b26a.js +0 -17
  650. package/.next/standalone/.next/static/chunks/app/api/v1/security/pin/route-36cb8b428b38b26a.js +0 -17
  651. package/.next/standalone/.next/static/chunks/app/api/v1/security/state/route-36cb8b428b38b26a.js +0 -17
  652. package/.next/standalone/.next/static/chunks/app/api/v1/security/unlock/route-36cb8b428b38b26a.js +0 -17
  653. package/.next/standalone/.next/static/chunks/app/api/v1/security/verify-pin/route-36cb8b428b38b26a.js +0 -17
  654. package/.next/standalone/.next/static/chunks/app/api/v1/setup/test-key/route-36cb8b428b38b26a.js +0 -17
  655. package/.next/standalone/.next/static/chunks/app/api/v1/skills/[id]/route-36cb8b428b38b26a.js +0 -17
  656. package/.next/standalone/.next/static/chunks/app/api/v1/skills/repos/[id]/route-36cb8b428b38b26a.js +0 -17
  657. package/.next/standalone/.next/static/chunks/app/api/v1/skills/repos/route-36cb8b428b38b26a.js +0 -17
  658. package/.next/standalone/.next/static/chunks/app/api/v1/skills/route-36cb8b428b38b26a.js +0 -17
  659. package/.next/standalone/.next/static/chunks/app/api/v1/system/abort/route-36cb8b428b38b26a.js +0 -17
  660. package/.next/standalone/.next/static/chunks/app/api/v1/system/restart/route-36cb8b428b38b26a.js +0 -17
  661. package/.next/standalone/.next/static/chunks/app/api/v1/tailscale/route-36cb8b428b38b26a.js +0 -17
  662. package/.next/standalone/.next/static/chunks/app/api/v1/tasks/[agent_id]/route-36cb8b428b38b26a.js +0 -17
  663. package/.next/standalone/.next/static/chunks/app/api/v1/tasks/route-36cb8b428b38b26a.js +0 -17
  664. package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/context-pin/route-36cb8b428b38b26a.js +0 -17
  665. package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/route-36cb8b428b38b26a.js +0 -17
  666. package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/run/route-36cb8b428b38b26a.js +0 -17
  667. package/.next/standalone/.next/static/chunks/app/api/v1/threads/route-36cb8b428b38b26a.js +0 -17
  668. package/.next/standalone/.next/static/chunks/app/api/v1/tools/route-36cb8b428b38b26a.js +0 -17
  669. package/.next/standalone/.next/static/chunks/app/api/v1/update/apply/route-36cb8b428b38b26a.js +0 -17
  670. package/.next/standalone/.next/static/chunks/app/api/v1/update/route-36cb8b428b38b26a.js +0 -17
  671. package/.next/standalone/.next/static/chunks/app/api/v1/voice/transcribe/route-36cb8b428b38b26a.js +0 -17
  672. package/.next/standalone/.next/static/chunks/app/api/v1/voice/tts/route-36cb8b428b38b26a.js +0 -17
  673. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/[id]/route-36cb8b428b38b26a.js +0 -17
  674. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/[id]/run/route-36cb8b428b38b26a.js +0 -17
  675. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/reaction-scripts/route-36cb8b428b38b26a.js +0 -17
  676. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/route-36cb8b428b38b26a.js +0 -17
  677. package/.next/standalone/.next/static/chunks/app/manifest.webmanifest/route-36cb8b428b38b26a.js +0 -17
  678. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-36cb8b428b38b26a.js +0 -17
  679. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-36cb8b428b38b26a.js +0 -17
  680. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-36cb8b428b38b26a.js +0 -17
  681. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-36cb8b428b38b26a.js +0 -17
  682. /package/.next/standalone/.next/static/{e2NV1wk6mWg3SIeELXevg → bMRK5y3ruT7c3WtBfCQOG}/_buildManifest.js +0 -0
  683. /package/.next/standalone/.next/static/{e2NV1wk6mWg3SIeELXevg → bMRK5y3ruT7c3WtBfCQOG}/_ssgManifest.js +0 -0
@@ -29582,7 +29582,7 @@ Object.defineProperty(exports, "getImplicitTags", ({
29582
29582
  }));
29583
29583
  const _constants = __webpack_require__(96100);
29584
29584
  const _handlers = __webpack_require__(57155);
29585
- const _encodeheadersafe = __webpack_require__(60190);
29585
+ const _encodeheadersafe = __webpack_require__(37809);
29586
29586
  const _lazyresult = __webpack_require__(31147);
29587
29587
  const getDerivedTags = (pathname)=>{
29588
29588
  const derivedTags = [
@@ -33056,6 +33056,57 @@ function _stringFormat(Class, format, fnOrRegex, _params = {}) {
33056
33056
  }
33057
33057
 
33058
33058
 
33059
+ /***/ }),
33060
+
33061
+ /***/ 37809:
33062
+ /***/ ((__unused_webpack_module, exports) => {
33063
+
33064
+ "use strict";
33065
+ /**
33066
+ * Percent-encode every character other than horizontal tab and printable ASCII
33067
+ * so a value can be safely serialized into an HTTP header.
33068
+ *
33069
+ * Node's `validateHeaderValue` and `fetch`'s ByteString conversion accept
33070
+ * different character ranges. Restricting values to `\t\x20-\x7e` produces a
33071
+ * conservative representation that both can serialize. Characters outside a
33072
+ * transport's accepted range (Hebrew, Arabic, Chinese, emoji, …) would
33073
+ * otherwise throw `ERR_INVALID_CHAR` or a `TypeError`, which crashes ISR or
33074
+ * fails a cache read on every affected request.
33075
+ *
33076
+ * Cache tags are encoded at the public boundaries — tag construction
33077
+ * (`getImplicitTags`, `validateTags`) and invalidation input
33078
+ * (`revalidatePath`, `revalidateTag`, `updateTag`) — so storage, comparison,
33079
+ * and the wire all see the same canonical form.
33080
+ *
33081
+ * The class is narrower than either transport accepts. Everything inside it
33082
+ * passes through byte-for-byte, including `,`, `/`, `%`, `[`, `]`, `_`, `-` and
33083
+ * `\t`, which preserves the comma-separated header format and the
33084
+ * dynamic-segment markers in derived tags (`_N_T_/[slug]/page`).
33085
+ *
33086
+ * Properties:
33087
+ * - Fast-path: input that already fits the class is returned unchanged. This
33088
+ * makes the encoder idempotent on already-encoded `%xx` sequences.
33089
+ * - Matches *runs* of out-of-class code units so surrogate pairs (e.g. an
33090
+ * emoji) are handed to `encodeURIComponent` as a complete code point — a
33091
+ * per-code-unit regex would split the pair and throw `URIError`.
33092
+ */
33093
+ Object.defineProperty(exports, "__esModule", ({
33094
+ value: true
33095
+ }));
33096
+ Object.defineProperty(exports, "encodeHeaderSafe", ({
33097
+ enumerable: true,
33098
+ get: function() {
33099
+ return encodeHeaderSafe;
33100
+ }
33101
+ }));
33102
+ const OUT_OF_CLASS_CHAR = /[^\t\x20-\x7e]/;
33103
+ const OUT_OF_CLASS_RUN = /[^\t\x20-\x7e]+/g;
33104
+ function encodeHeaderSafe(value) {
33105
+ return OUT_OF_CLASS_CHAR.test(value) ? value.replace(OUT_OF_CLASS_RUN, (run)=>encodeURIComponent(run)) : value;
33106
+ }
33107
+
33108
+ //# sourceMappingURL=encode-header-safe.js.map
33109
+
33059
33110
  /***/ }),
33060
33111
 
33061
33112
  /***/ 38169:
@@ -37202,350 +37253,6 @@ class InvariantError extends Error {
37202
37253
  } //# sourceMappingURL=invariant-error.js.map
37203
37254
 
37204
37255
 
37205
- /***/ }),
37206
-
37207
- /***/ 42851:
37208
- /***/ ((module) => {
37209
-
37210
- "use strict";
37211
-
37212
-
37213
- var has = Object.prototype.hasOwnProperty
37214
- , prefix = '~';
37215
-
37216
- /**
37217
- * Constructor to create a storage for our `EE` objects.
37218
- * An `Events` instance is a plain object whose properties are event names.
37219
- *
37220
- * @constructor
37221
- * @private
37222
- */
37223
- function Events() {}
37224
-
37225
- //
37226
- // We try to not inherit from `Object.prototype`. In some engines creating an
37227
- // instance in this way is faster than calling `Object.create(null)` directly.
37228
- // If `Object.create(null)` is not supported we prefix the event names with a
37229
- // character to make sure that the built-in object properties are not
37230
- // overridden or used as an attack vector.
37231
- //
37232
- if (Object.create) {
37233
- Events.prototype = Object.create(null);
37234
-
37235
- //
37236
- // This hack is needed because the `__proto__` property is still inherited in
37237
- // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.
37238
- //
37239
- if (!new Events().__proto__) prefix = false;
37240
- }
37241
-
37242
- /**
37243
- * Representation of a single event listener.
37244
- *
37245
- * @param {Function} fn The listener function.
37246
- * @param {*} context The context to invoke the listener with.
37247
- * @param {Boolean} [once=false] Specify if the listener is a one-time listener.
37248
- * @constructor
37249
- * @private
37250
- */
37251
- function EE(fn, context, once) {
37252
- this.fn = fn;
37253
- this.context = context;
37254
- this.once = once || false;
37255
- }
37256
-
37257
- /**
37258
- * Add a listener for a given event.
37259
- *
37260
- * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.
37261
- * @param {(String|Symbol)} event The event name.
37262
- * @param {Function} fn The listener function.
37263
- * @param {*} context The context to invoke the listener with.
37264
- * @param {Boolean} once Specify if the listener is a one-time listener.
37265
- * @returns {EventEmitter}
37266
- * @private
37267
- */
37268
- function addListener(emitter, event, fn, context, once) {
37269
- if (typeof fn !== 'function') {
37270
- throw new TypeError('The listener must be a function');
37271
- }
37272
-
37273
- var listener = new EE(fn, context || emitter, once)
37274
- , evt = prefix ? prefix + event : event;
37275
-
37276
- if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;
37277
- else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);
37278
- else emitter._events[evt] = [emitter._events[evt], listener];
37279
-
37280
- return emitter;
37281
- }
37282
-
37283
- /**
37284
- * Clear event by name.
37285
- *
37286
- * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.
37287
- * @param {(String|Symbol)} evt The Event name.
37288
- * @private
37289
- */
37290
- function clearEvent(emitter, evt) {
37291
- if (--emitter._eventsCount === 0) emitter._events = new Events();
37292
- else delete emitter._events[evt];
37293
- }
37294
-
37295
- /**
37296
- * Minimal `EventEmitter` interface that is molded against the Node.js
37297
- * `EventEmitter` interface.
37298
- *
37299
- * @constructor
37300
- * @public
37301
- */
37302
- function EventEmitter() {
37303
- this._events = new Events();
37304
- this._eventsCount = 0;
37305
- }
37306
-
37307
- /**
37308
- * Return an array listing the events for which the emitter has registered
37309
- * listeners.
37310
- *
37311
- * @returns {Array}
37312
- * @public
37313
- */
37314
- EventEmitter.prototype.eventNames = function eventNames() {
37315
- var names = []
37316
- , events
37317
- , name;
37318
-
37319
- if (this._eventsCount === 0) return names;
37320
-
37321
- for (name in (events = this._events)) {
37322
- if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);
37323
- }
37324
-
37325
- if (Object.getOwnPropertySymbols) {
37326
- return names.concat(Object.getOwnPropertySymbols(events));
37327
- }
37328
-
37329
- return names;
37330
- };
37331
-
37332
- /**
37333
- * Return the listeners registered for a given event.
37334
- *
37335
- * @param {(String|Symbol)} event The event name.
37336
- * @returns {Array} The registered listeners.
37337
- * @public
37338
- */
37339
- EventEmitter.prototype.listeners = function listeners(event) {
37340
- var evt = prefix ? prefix + event : event
37341
- , handlers = this._events[evt];
37342
-
37343
- if (!handlers) return [];
37344
- if (handlers.fn) return [handlers.fn];
37345
-
37346
- for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {
37347
- ee[i] = handlers[i].fn;
37348
- }
37349
-
37350
- return ee;
37351
- };
37352
-
37353
- /**
37354
- * Return the number of listeners listening to a given event.
37355
- *
37356
- * @param {(String|Symbol)} event The event name.
37357
- * @returns {Number} The number of listeners.
37358
- * @public
37359
- */
37360
- EventEmitter.prototype.listenerCount = function listenerCount(event) {
37361
- var evt = prefix ? prefix + event : event
37362
- , listeners = this._events[evt];
37363
-
37364
- if (!listeners) return 0;
37365
- if (listeners.fn) return 1;
37366
- return listeners.length;
37367
- };
37368
-
37369
- /**
37370
- * Calls each of the listeners registered for a given event.
37371
- *
37372
- * @param {(String|Symbol)} event The event name.
37373
- * @returns {Boolean} `true` if the event had listeners, else `false`.
37374
- * @public
37375
- */
37376
- EventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {
37377
- var evt = prefix ? prefix + event : event;
37378
-
37379
- if (!this._events[evt]) return false;
37380
-
37381
- var listeners = this._events[evt]
37382
- , len = arguments.length
37383
- , args
37384
- , i;
37385
-
37386
- if (listeners.fn) {
37387
- if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);
37388
-
37389
- switch (len) {
37390
- case 1: return listeners.fn.call(listeners.context), true;
37391
- case 2: return listeners.fn.call(listeners.context, a1), true;
37392
- case 3: return listeners.fn.call(listeners.context, a1, a2), true;
37393
- case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;
37394
- case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;
37395
- case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;
37396
- }
37397
-
37398
- for (i = 1, args = new Array(len -1); i < len; i++) {
37399
- args[i - 1] = arguments[i];
37400
- }
37401
-
37402
- listeners.fn.apply(listeners.context, args);
37403
- } else {
37404
- var length = listeners.length
37405
- , j;
37406
-
37407
- for (i = 0; i < length; i++) {
37408
- if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);
37409
-
37410
- switch (len) {
37411
- case 1: listeners[i].fn.call(listeners[i].context); break;
37412
- case 2: listeners[i].fn.call(listeners[i].context, a1); break;
37413
- case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;
37414
- case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;
37415
- default:
37416
- if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {
37417
- args[j - 1] = arguments[j];
37418
- }
37419
-
37420
- listeners[i].fn.apply(listeners[i].context, args);
37421
- }
37422
- }
37423
- }
37424
-
37425
- return true;
37426
- };
37427
-
37428
- /**
37429
- * Add a listener for a given event.
37430
- *
37431
- * @param {(String|Symbol)} event The event name.
37432
- * @param {Function} fn The listener function.
37433
- * @param {*} [context=this] The context to invoke the listener with.
37434
- * @returns {EventEmitter} `this`.
37435
- * @public
37436
- */
37437
- EventEmitter.prototype.on = function on(event, fn, context) {
37438
- return addListener(this, event, fn, context, false);
37439
- };
37440
-
37441
- /**
37442
- * Add a one-time listener for a given event.
37443
- *
37444
- * @param {(String|Symbol)} event The event name.
37445
- * @param {Function} fn The listener function.
37446
- * @param {*} [context=this] The context to invoke the listener with.
37447
- * @returns {EventEmitter} `this`.
37448
- * @public
37449
- */
37450
- EventEmitter.prototype.once = function once(event, fn, context) {
37451
- return addListener(this, event, fn, context, true);
37452
- };
37453
-
37454
- /**
37455
- * Remove the listeners of a given event.
37456
- *
37457
- * @param {(String|Symbol)} event The event name.
37458
- * @param {Function} fn Only remove the listeners that match this function.
37459
- * @param {*} context Only remove the listeners that have this context.
37460
- * @param {Boolean} once Only remove one-time listeners.
37461
- * @returns {EventEmitter} `this`.
37462
- * @public
37463
- */
37464
- EventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {
37465
- var evt = prefix ? prefix + event : event;
37466
-
37467
- if (!this._events[evt]) return this;
37468
- if (!fn) {
37469
- clearEvent(this, evt);
37470
- return this;
37471
- }
37472
-
37473
- var listeners = this._events[evt];
37474
-
37475
- if (listeners.fn) {
37476
- if (
37477
- listeners.fn === fn &&
37478
- (!once || listeners.once) &&
37479
- (!context || listeners.context === context)
37480
- ) {
37481
- clearEvent(this, evt);
37482
- }
37483
- } else {
37484
- for (var i = 0, events = [], length = listeners.length; i < length; i++) {
37485
- if (
37486
- listeners[i].fn !== fn ||
37487
- (once && !listeners[i].once) ||
37488
- (context && listeners[i].context !== context)
37489
- ) {
37490
- events.push(listeners[i]);
37491
- }
37492
- }
37493
-
37494
- //
37495
- // Reset the array, or remove it completely if we have no more listeners.
37496
- //
37497
- if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;
37498
- else clearEvent(this, evt);
37499
- }
37500
-
37501
- return this;
37502
- };
37503
-
37504
- /**
37505
- * Remove all listeners, or those of the specified event.
37506
- *
37507
- * @param {(String|Symbol)} [event] The event name.
37508
- * @returns {EventEmitter} `this`.
37509
- * @public
37510
- */
37511
- EventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {
37512
- var evt;
37513
-
37514
- if (event) {
37515
- evt = prefix ? prefix + event : event;
37516
- if (this._events[evt]) clearEvent(this, evt);
37517
- } else {
37518
- this._events = new Events();
37519
- this._eventsCount = 0;
37520
- }
37521
-
37522
- return this;
37523
- };
37524
-
37525
- //
37526
- // Alias methods names because people roll like that.
37527
- //
37528
- EventEmitter.prototype.off = EventEmitter.prototype.removeListener;
37529
- EventEmitter.prototype.addListener = EventEmitter.prototype.on;
37530
-
37531
- //
37532
- // Expose the prefix.
37533
- //
37534
- EventEmitter.prefixed = prefix;
37535
-
37536
- //
37537
- // Allow `EventEmitter` to be imported as module namespace.
37538
- //
37539
- EventEmitter.EventEmitter = EventEmitter;
37540
-
37541
- //
37542
- // Expose the module.
37543
- //
37544
- if (true) {
37545
- module.exports = EventEmitter;
37546
- }
37547
-
37548
-
37549
37256
  /***/ }),
37550
37257
 
37551
37258
  /***/ 42868:
@@ -49442,6 +49149,7 @@ function runMigrations(db) {
49442
49149
  ensureCredentialsTable(db);
49443
49150
  ensureCredentialsLabelAndDefaultColumns(db);
49444
49151
  ensureModelConfigCredentialIdColumn(db);
49152
+ ensureModelConfigEnabledColumn(db);
49445
49153
  ensureAgentConfigsToolCredentialsColumn(db);
49446
49154
  seedAgentConfigs(db);
49447
49155
  backfillDeveloperInteractiveTerminalTools(db);
@@ -49606,6 +49314,11 @@ function ensureThreadChannelSummariesTable(db) {
49606
49314
  if (!cols.some((column)=>column.name === "summary_before_seq")) {
49607
49315
  db.exec("ALTER TABLE thread_channel_summaries ADD COLUMN summary_before_seq INTEGER");
49608
49316
  }
49317
+ // Stored topic segments (JSON array) so the next compaction can merge new
49318
+ // activity into them instead of re-summarising the channel from scratch.
49319
+ if (!cols.some((column)=>column.name === "topics")) {
49320
+ db.exec("ALTER TABLE thread_channel_summaries ADD COLUMN topics TEXT");
49321
+ }
49609
49322
  }
49610
49323
  // ADR-0041. Immutable per-assistant-turn snapshot of LLM usage. Written once
49611
49324
  // alongside addMessage(...,"assistant",...) and never updated, so the
@@ -50428,6 +50141,14 @@ function ensureModelConfigCredentialIdColumn(db) {
50428
50141
  db.exec("ALTER TABLE model_configs ADD COLUMN credential_id TEXT");
50429
50142
  }
50430
50143
  }
50144
+ // ADR-0102: disabled model configs stay saved but are hidden from model
50145
+ // selection, routing, and default fallback. Existing rows default to enabled.
50146
+ function ensureModelConfigEnabledColumn(db) {
50147
+ const cols = db.prepare("PRAGMA table_info(model_configs)").all();
50148
+ if (!cols.some((c)=>c.name === "enabled")) {
50149
+ db.exec("ALTER TABLE model_configs ADD COLUMN enabled INTEGER NOT NULL DEFAULT 1");
50150
+ }
50151
+ }
50431
50152
  // Idempotent backfill: for each model_config still carrying an inline
50432
50153
  // `api_key` (and no `credential_id` yet), create a credential row and
50433
50154
  // link by id. Strips the api_key / base_url / extra_headers fields from
@@ -97262,9 +96983,8 @@ const geminiProvider = {
97262
96983
  };
97263
96984
 
97264
96985
  ;// ./lib/providers/github-copilot-auth.ts
97265
- // GitHub Copilot device-flow login. Lets users sign in with their Copilot
97266
- // subscription instead of pasting a PAT (which can't be exchanged for a
97267
- // Copilot session token and gets rate-limited on the Models REST API).
96986
+ // GitHub Copilot device-flow login. The legacy PAT path depended on GitHub
96987
+ // Models, which has been retired; use this flow for Copilot Chat access.
97268
96988
  //
97269
96989
  // Flow (RFC 8628):
97270
96990
  // 1. POST github.com/login/device/code with the VS Code Copilot client_id.
@@ -97437,17 +97157,17 @@ function pickGitHubCompatOptions(params) {
97437
97157
  return out;
97438
97158
  }
97439
97159
  const tokenCache = new Map();
97440
- function isLikelyGitHubPat(token) {
97441
- return token.startsWith("ghp_") || token.startsWith("github_pat_") || token.startsWith("gho_");
97160
+ function isGitHubPat(token) {
97161
+ return token.startsWith("ghp_") || token.startsWith("github_pat_");
97442
97162
  }
97443
- async function getCopilotToken(pat) {
97444
- if (!pat) throw new Error("GitHub Copilot: no API key configured for token exchange.");
97445
- const cached = tokenCache.get(pat);
97163
+ async function exchangeCopilotSessionToken(githubToken) {
97164
+ if (!githubToken) throw new Error("GitHub Copilot: no API key configured for token exchange.");
97165
+ const cached = tokenCache.get(githubToken);
97446
97166
  if (cached && cached.expiresAt - Date.now() > 60000) return cached.token;
97447
- tokenCache.delete(pat);
97167
+ tokenCache.delete(githubToken);
97448
97168
  const res = await fetch("https://api.github.com/copilot_internal/v2/token", {
97449
97169
  headers: {
97450
- Authorization: `token ${pat}`,
97170
+ Authorization: `token ${githubToken}`,
97451
97171
  "User-Agent": "Jarela/1.0"
97452
97172
  },
97453
97173
  signal: AbortSignal.timeout(30000)
@@ -97455,17 +97175,17 @@ async function getCopilotToken(pat) {
97455
97175
  if (!res.ok) {
97456
97176
  const body = await error_readErrorBody(res);
97457
97177
  if (res.status === 401) {
97458
- throw new Error(`GitHub Copilot: token exchange failed (401). ` + `Ensure your PAT has the "copilot" scope and that you have an active Copilot subscription. ` + `Details: ${body}`);
97178
+ throw new Error(`GitHub Copilot: token exchange failed (401). ` + `Check that this GitHub account has an active Copilot subscription and the credential is valid. ` + `Details: ${body}`);
97459
97179
  }
97460
97180
  if (res.status === 404) {
97461
- throw new Error("GitHub Copilot token exchange endpoint was not found for this credential. " + "Personal Access Tokens are not accepted directly by Copilot chat. " + "Use a Copilot session token in params.copilot_session_token, or a credential that supports token exchange.");
97181
+ throw new Error("GitHub Copilot could not exchange this credential for a session token. " + "Use the in-app device-flow sign-in or set params.copilot_session_token.");
97462
97182
  }
97463
97183
  throw new Error(`GitHub Copilot: token exchange failed (${res.status}): ${body}`);
97464
97184
  }
97465
97185
  const json = await res.json();
97466
97186
  if (!json.token) throw new Error("GitHub Copilot: token exchange returned no token");
97467
97187
  const expiresAt = json.expires_at ? new Date(json.expires_at).getTime() : Date.now() + 28 * 60000;
97468
- tokenCache.set(pat, {
97188
+ tokenCache.set(githubToken, {
97469
97189
  token: json.token,
97470
97190
  expiresAt
97471
97191
  });
@@ -97496,7 +97216,6 @@ async function resolveCopilotAuth(params) {
97496
97216
  const explicitSessionToken = params.copilot_session_token?.trim();
97497
97217
  if (explicitSessionToken && explicitSessionToken.length > 0) {
97498
97218
  return {
97499
- kind: "copilot-api",
97500
97219
  baseURL: params.base_url ?? "https://api.githubcopilot.com",
97501
97220
  apiKey: explicitSessionToken,
97502
97221
  headers: {
@@ -97506,9 +97225,8 @@ async function resolveCopilotAuth(params) {
97506
97225
  }
97507
97226
  const oauthToken = getStoredOAuthToken();
97508
97227
  if (oauthToken) {
97509
- const token = await getCopilotToken(oauthToken);
97228
+ const token = await exchangeCopilotSessionToken(oauthToken);
97510
97229
  return {
97511
- kind: "copilot-api",
97512
97230
  baseURL: params.base_url ?? "https://api.githubcopilot.com",
97513
97231
  apiKey: token,
97514
97232
  headers: {
@@ -97516,23 +97234,14 @@ async function resolveCopilotAuth(params) {
97516
97234
  }
97517
97235
  };
97518
97236
  }
97519
- if (apiKey && isLikelyGitHubPat(apiKey)) {
97520
- return {
97521
- kind: "models-rest",
97522
- baseURL: params.base_url ?? "https://models.github.ai/inference",
97523
- apiKey,
97524
- headers: {
97525
- Accept: "application/vnd.github+json",
97526
- "X-GitHub-Api-Version": "2026-03-10"
97527
- }
97528
- };
97237
+ if (apiKey && isGitHubPat(apiKey)) {
97238
+ throw new Error("GitHub Copilot: this provider's GitHub PAT route used GitHub Models, which has been retired. " + "Use the in-app device-flow sign-in or set copilot_session_token.");
97529
97239
  }
97530
97240
  if (!apiKey) {
97531
97241
  throw new Error("GitHub Copilot: not signed in. Use the in-app device-flow login, or set api_key / copilot_session_token.");
97532
97242
  }
97533
- const token = await getCopilotToken(apiKey);
97243
+ const token = await exchangeCopilotSessionToken(apiKey);
97534
97244
  return {
97535
- kind: "copilot-api",
97536
97245
  baseURL: params.base_url ?? "https://api.githubcopilot.com",
97537
97246
  apiKey: token,
97538
97247
  headers: {
@@ -97543,14 +97252,9 @@ async function resolveCopilotAuth(params) {
97543
97252
  // Anthropic SDK client pointed at Copilot's native `/v1/messages` endpoint.
97544
97253
  // Copilot accepts the Anthropic request shape (including `cache_control`
97545
97254
  // ephemeral breakpoints) for Claude-family models when called with a
97546
- // session token. The PAT-only `models.github.ai` fallback does NOT expose
97547
- // this endpoint, so we surface a clear error there instead of silently
97548
- // downgrading to a path that strips the cache markers.
97255
+ // Copilot session token.
97549
97256
  async function resolvedAnthropicClient(params) {
97550
97257
  const auth = await resolveCopilotAuth(params);
97551
- if (auth.kind !== "copilot-api") {
97552
- throw new Error("GitHub Copilot: Claude models require a Copilot session token (OAuth or copilot_session_token). " + "Personal Access Tokens route to GitHub Models REST, which does not expose the native Messages API.");
97553
- }
97554
97258
  return new Anthropic({
97555
97259
  // The SDK requires an apiKey field; we authenticate via authToken
97556
97260
  // (Authorization: Bearer ...) per Copilot's contract. The empty
@@ -98499,6 +98203,7 @@ const ENV_DEFAULTS = {
98499
98203
  streamParseTripwire: 6,
98500
98204
  recallBudgetMs: 1500,
98501
98205
  warmSummaryBudgetMs: 5000,
98206
+ compactionTimeoutMs: 10 * 60000,
98502
98207
  maxThreadMessages: 1000,
98503
98208
  maxSessionArchives: 50,
98504
98209
  // tools
@@ -98704,6 +98409,17 @@ const ENV_SCHEMA = [
98704
98409
  agentWritable: false,
98705
98410
  min: 60000
98706
98411
  },
98412
+ {
98413
+ name: "JARELA_COMPACTION_TIMEOUT_MS",
98414
+ type: "int",
98415
+ default: ENV_DEFAULTS.compactionTimeoutMs,
98416
+ description: "Deadline for one warm-context compaction of a thread; a late result is discarded and the thread is released.",
98417
+ category: "agent",
98418
+ tier: "B",
98419
+ requiresRestart: false,
98420
+ agentWritable: false,
98421
+ min: 30000
98422
+ },
98707
98423
  {
98708
98424
  name: "JARELA_RUN_REGISTRY_TTL_MS",
98709
98425
  type: "int",
@@ -99352,6 +99068,7 @@ function getConfig() {
99352
99068
  streamParseTripwire: parsePositiveInt(env.JARELA_STREAM_PARSE_TRIPWIRE, ENV_DEFAULTS.streamParseTripwire),
99353
99069
  recallBudgetMs: parseNonNegativeInt(env.JARELA_RECALL_BUDGET_MS, ENV_DEFAULTS.recallBudgetMs),
99354
99070
  warmSummaryBudgetMs: parseNonNegativeInt(env.JARELA_WARM_SUMMARY_BUDGET_MS, ENV_DEFAULTS.warmSummaryBudgetMs),
99071
+ compactionTimeoutMs: parsePositiveInt(env.JARELA_COMPACTION_TIMEOUT_MS, ENV_DEFAULTS.compactionTimeoutMs),
99355
99072
  maxThreadMessages: parsePositiveInt(env.JARELA_MAX_THREAD_MESSAGES, ENV_DEFAULTS.maxThreadMessages),
99356
99073
  maxSessionArchives: parsePositiveInt(env.JARELA_MAX_SESSION_ARCHIVES, ENV_DEFAULTS.maxSessionArchives),
99357
99074
  // tools
@@ -102982,6 +102699,14 @@ const model_config_now = ()=>new Date().toISOString();
102982
102699
  function withModelConfigMutation(name, operation) {
102983
102700
  return withKeyedMutation(`model-config:${name}`, operation);
102984
102701
  }
102702
+ class ModelConfigStateError extends Error {
102703
+ constructor(message, status){
102704
+ super(message), this.status = status;
102705
+ }
102706
+ }
102707
+ function isModelConfigEnabled(cfg) {
102708
+ return !!cfg && cfg.enabled !== 0;
102709
+ }
102985
102710
  // `params` holds the provider API key alongside hyperparameters and is
102986
102711
  // stored encrypted at rest (ADR-0005). Decrypt before returning rows.
102987
102712
  function model_config_decryptRow(row) {
@@ -102994,18 +102719,74 @@ function listModelConfigs() {
102994
102719
  const rows = db_getDb().prepare("SELECT * FROM model_configs ORDER BY is_default DESC, name ASC").all();
102995
102720
  return rows.map(model_config_decryptRow);
102996
102721
  }
102722
+ /** Model configs that may be offered for selection or routing. */ function listEnabledModelConfigs() {
102723
+ return listModelConfigs().filter(isModelConfigEnabled);
102724
+ }
102997
102725
  function getModelConfig(name) {
102998
102726
  const row = db_getDb().prepare("SELECT * FROM model_configs WHERE name=?").get(name) ?? null;
102999
102727
  return row ? model_config_decryptRow(row) : null;
103000
102728
  }
103001
102729
  function getDefaultModelConfig() {
103002
102730
  const db = db_getDb();
103003
- const row = db.prepare("SELECT * FROM model_configs WHERE is_default=1 LIMIT 1").get() ?? null;
102731
+ const row = db.prepare("SELECT * FROM model_configs WHERE is_default=1 AND enabled=1 LIMIT 1").get() ?? null;
103004
102732
  if (row) return model_config_decryptRow(row);
103005
- const fallback = db.prepare("SELECT * FROM model_configs ORDER BY name ASC LIMIT 1").get() ?? null;
102733
+ const fallback = db.prepare("SELECT * FROM model_configs WHERE enabled=1 ORDER BY name ASC LIMIT 1").get() ?? null;
103006
102734
  return fallback ? model_config_decryptRow(fallback) : null;
103007
102735
  }
103008
- function upsertModelConfig(name, provider, model_id, params, is_default, credential_id = null) {
102736
+ /**
102737
+ * Resolve the config a run should use: the named config when it exists and is
102738
+ * enabled, otherwise the workspace default. A disabled assignment therefore
102739
+ * falls back without being cleared, so re-enabling restores it.
102740
+ */ function resolveRunnableModelConfig(name) {
102741
+ const named = name ? getModelConfig(name) : null;
102742
+ if (named && isModelConfigEnabled(named)) return named;
102743
+ return getDefaultModelConfig();
102744
+ }
102745
+ /** Atomically make `name` the only default model config. */ function setDefaultModelConfig(name) {
102746
+ return withDbTransaction(()=>{
102747
+ const db = getDb();
102748
+ const target = getModelConfig(name);
102749
+ if (!target) throw new ModelConfigStateError(`Model config "${name}" not found`, 404);
102750
+ if (!isModelConfigEnabled(target)) {
102751
+ throw new ModelConfigStateError(`Model config "${name}" is disabled; enable it before making it the default`, 409);
102752
+ }
102753
+ const t = model_config_now();
102754
+ db.prepare("UPDATE model_configs SET is_default=0, updated_at=? WHERE is_default=1 AND name<>?").run(t, name);
102755
+ db.prepare("UPDATE model_configs SET is_default=1, updated_at=? WHERE name=?").run(t, name);
102756
+ return getModelConfig(name);
102757
+ });
102758
+ }
102759
+ /**
102760
+ * Enable or disable a model config. Disabling the default promotes the
102761
+ * alphabetically-first other enabled config in the same transaction, and the
102762
+ * last enabled config cannot be disabled so runs always have a model.
102763
+ */ function setModelConfigEnabled(name, enabled) {
102764
+ return withDbTransaction(()=>{
102765
+ const db = getDb();
102766
+ const target = getModelConfig(name);
102767
+ if (!target) throw new ModelConfigStateError(`Model config "${name}" not found`, 404);
102768
+ if (isModelConfigEnabled(target) === enabled) return target;
102769
+ const t = model_config_now();
102770
+ if (enabled) {
102771
+ db.prepare("UPDATE model_configs SET enabled=1, updated_at=? WHERE name=?").run(t, name);
102772
+ return getModelConfig(name);
102773
+ }
102774
+ const next = db.prepare("SELECT name FROM model_configs WHERE enabled=1 AND name<>? ORDER BY name ASC LIMIT 1").get(name);
102775
+ if (!next?.name) {
102776
+ throw new ModelConfigStateError("At least one model config must stay enabled", 409);
102777
+ }
102778
+ db.prepare("UPDATE model_configs SET enabled=0, is_default=0, updated_at=? WHERE name=?").run(t, name);
102779
+ if (target.is_default === 1) {
102780
+ db.prepare("UPDATE model_configs SET is_default=1, updated_at=? WHERE name=?").run(t, next.name);
102781
+ }
102782
+ return getModelConfig(name);
102783
+ });
102784
+ }
102785
+ /**
102786
+ * Insert or update a model config. `is_default` undefined keeps the current
102787
+ * flag (false for new rows); true atomically clears every other default and
102788
+ * re-enables the row, because the default must always be selectable.
102789
+ */ function upsertModelConfig(name, provider, model_id, params, is_default, credential_id = null) {
103009
102790
  return withDbTransaction(()=>{
103010
102791
  const t = model_config_now();
103011
102792
  const existing = getModelConfig(name);
@@ -103021,9 +102802,11 @@ function upsertModelConfig(name, provider, model_id, params, is_default, credent
103021
102802
  ...decodeInlineParams(existing),
103022
102803
  ...params
103023
102804
  };
102805
+ const finalDefault = is_default ?? existing?.is_default === 1;
102806
+ const finalEnabled = finalDefault || !existing || isModelConfigEnabled(existing);
103024
102807
  const db = getDb();
103025
- if (is_default) db.prepare("UPDATE model_configs SET is_default=0").run();
103026
- db.prepare("INSERT OR REPLACE INTO model_configs (name,provider,model_id,params,is_default,credential_id,created_at,updated_at) VALUES (?,?,?,?,?,?,?,?)").run(name, provider, model_id, encrypt(JSON.stringify(mergedParams)), is_default ? 1 : 0, finalCredId, created_at, t);
102808
+ if (finalDefault) db.prepare("UPDATE model_configs SET is_default=0 WHERE name<>?").run(name);
102809
+ db.prepare("INSERT OR REPLACE INTO model_configs (name,provider,model_id,params,is_default,enabled,credential_id,created_at,updated_at) VALUES (?,?,?,?,?,?,?,?,?)").run(name, provider, model_id, encrypt(JSON.stringify(mergedParams)), finalDefault ? 1 : 0, finalEnabled ? 1 : 0, finalCredId, created_at, t);
103027
102810
  return getModelConfig(name);
103028
102811
  });
103029
102812
  }
@@ -103036,10 +102819,10 @@ function deleteModelConfig(name) {
103036
102819
  // Automatically reset any agent pointing to this deleted model config to NULL (automatic / default model)
103037
102820
  db.prepare("UPDATE agent_configs SET model_config_name = NULL WHERE model_config_name = ?").run(name);
103038
102821
  // Avoid the "no default" state: if the deleted row was the default and any
103039
- // other rows remain, promote the alphabetically-first remaining row so
102822
+ // other enabled rows remain, promote the alphabetically-first one so
103040
102823
  // agents that fall back to the default keep working.
103041
102824
  if (wasDefault) {
103042
- const next = db.prepare("SELECT name FROM model_configs ORDER BY name ASC LIMIT 1").get();
102825
+ const next = db.prepare("SELECT name FROM model_configs WHERE enabled=1 ORDER BY name ASC LIMIT 1").get();
103043
102826
  if (next?.name) db.prepare("UPDATE model_configs SET is_default=1 WHERE name=?").run(next.name);
103044
102827
  }
103045
102828
  return true;
@@ -105446,14 +105229,14 @@ const integrations_INTEGRATIONS = {
105446
105229
  "github-copilot": {
105447
105230
  label: "GitHub Copilot",
105448
105231
  category: "llm",
105449
- description: "Routes chat-completion requests through your Copilot subscription. Paste a GitHub PAT " + "with `copilot` scope from github.com/settings/tokens, or run the device-flow sign-in in " + "the Models panel.",
105232
+ description: "Routes chat-completion requests through your Copilot subscription. Use the device-flow " + "sign-in in the Models panel; legacy GitHub PAT authentication is no longer supported.",
105450
105233
  fields: [
105451
105234
  {
105452
105235
  key: "api_key",
105453
- label: "GitHub PAT",
105454
- placeholder: "ghp_… or github_pat_…",
105236
+ label: "Legacy GitHub PAT (unsupported)",
105237
+ placeholder: "Use Models panel sign-in",
105455
105238
  secret: true,
105456
- required: true
105239
+ required: false
105457
105240
  }
105458
105241
  ]
105459
105242
  },
@@ -105723,6 +105506,7 @@ function saveIntegration(name, incoming) {
105723
105506
  if (f.required && !v.trim()) return {
105724
105507
  error: `"${f.key}" cannot be empty`
105725
105508
  };
105509
+ if (!v.trim()) continue;
105726
105510
  merged[f.key] = v;
105727
105511
  if (existing[f.key] !== v) touched.push(f.key);
105728
105512
  }
@@ -107804,57 +107588,6 @@ function interceptionPrefixFromParamType(paramType) {
107804
107588
 
107805
107589
  /***/ }),
107806
107590
 
107807
- /***/ 60190:
107808
- /***/ ((__unused_webpack_module, exports) => {
107809
-
107810
- "use strict";
107811
- /**
107812
- * Percent-encode every character other than horizontal tab and printable ASCII
107813
- * so a value can be safely serialized into an HTTP header.
107814
- *
107815
- * Node's `validateHeaderValue` and `fetch`'s ByteString conversion accept
107816
- * different character ranges. Restricting values to `\t\x20-\x7e` produces a
107817
- * conservative representation that both can serialize. Characters outside a
107818
- * transport's accepted range (Hebrew, Arabic, Chinese, emoji, …) would
107819
- * otherwise throw `ERR_INVALID_CHAR` or a `TypeError`, which crashes ISR or
107820
- * fails a cache read on every affected request.
107821
- *
107822
- * Cache tags are encoded at the public boundaries — tag construction
107823
- * (`getImplicitTags`, `validateTags`) and invalidation input
107824
- * (`revalidatePath`, `revalidateTag`, `updateTag`) — so storage, comparison,
107825
- * and the wire all see the same canonical form.
107826
- *
107827
- * The class is narrower than either transport accepts. Everything inside it
107828
- * passes through byte-for-byte, including `,`, `/`, `%`, `[`, `]`, `_`, `-` and
107829
- * `\t`, which preserves the comma-separated header format and the
107830
- * dynamic-segment markers in derived tags (`_N_T_/[slug]/page`).
107831
- *
107832
- * Properties:
107833
- * - Fast-path: input that already fits the class is returned unchanged. This
107834
- * makes the encoder idempotent on already-encoded `%xx` sequences.
107835
- * - Matches *runs* of out-of-class code units so surrogate pairs (e.g. an
107836
- * emoji) are handed to `encodeURIComponent` as a complete code point — a
107837
- * per-code-unit regex would split the pair and throw `URIError`.
107838
- */
107839
- Object.defineProperty(exports, "__esModule", ({
107840
- value: true
107841
- }));
107842
- Object.defineProperty(exports, "encodeHeaderSafe", ({
107843
- enumerable: true,
107844
- get: function() {
107845
- return encodeHeaderSafe;
107846
- }
107847
- }));
107848
- const OUT_OF_CLASS_CHAR = /[^\t\x20-\x7e]/;
107849
- const OUT_OF_CLASS_RUN = /[^\t\x20-\x7e]+/g;
107850
- function encodeHeaderSafe(value) {
107851
- return OUT_OF_CLASS_CHAR.test(value) ? value.replace(OUT_OF_CLASS_RUN, (run)=>encodeURIComponent(run)) : value;
107852
- }
107853
-
107854
- //# sourceMappingURL=encode-header-safe.js.map
107855
-
107856
- /***/ }),
107857
-
107858
107591
  /***/ 61081:
107859
107592
  /***/ ((module) => {
107860
107593
 
@@ -109672,6 +109405,350 @@ function getRelativeURL(url, base) {
109672
109405
  } //# sourceMappingURL=relativize-url.js.map
109673
109406
 
109674
109407
 
109408
+ /***/ }),
109409
+
109410
+ /***/ 65232:
109411
+ /***/ ((module) => {
109412
+
109413
+ "use strict";
109414
+
109415
+
109416
+ var has = Object.prototype.hasOwnProperty
109417
+ , prefix = '~';
109418
+
109419
+ /**
109420
+ * Constructor to create a storage for our `EE` objects.
109421
+ * An `Events` instance is a plain object whose properties are event names.
109422
+ *
109423
+ * @constructor
109424
+ * @private
109425
+ */
109426
+ function Events() {}
109427
+
109428
+ //
109429
+ // We try to not inherit from `Object.prototype`. In some engines creating an
109430
+ // instance in this way is faster than calling `Object.create(null)` directly.
109431
+ // If `Object.create(null)` is not supported we prefix the event names with a
109432
+ // character to make sure that the built-in object properties are not
109433
+ // overridden or used as an attack vector.
109434
+ //
109435
+ if (Object.create) {
109436
+ Events.prototype = Object.create(null);
109437
+
109438
+ //
109439
+ // This hack is needed because the `__proto__` property is still inherited in
109440
+ // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.
109441
+ //
109442
+ if (!new Events().__proto__) prefix = false;
109443
+ }
109444
+
109445
+ /**
109446
+ * Representation of a single event listener.
109447
+ *
109448
+ * @param {Function} fn The listener function.
109449
+ * @param {*} context The context to invoke the listener with.
109450
+ * @param {Boolean} [once=false] Specify if the listener is a one-time listener.
109451
+ * @constructor
109452
+ * @private
109453
+ */
109454
+ function EE(fn, context, once) {
109455
+ this.fn = fn;
109456
+ this.context = context;
109457
+ this.once = once || false;
109458
+ }
109459
+
109460
+ /**
109461
+ * Add a listener for a given event.
109462
+ *
109463
+ * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.
109464
+ * @param {(String|Symbol)} event The event name.
109465
+ * @param {Function} fn The listener function.
109466
+ * @param {*} context The context to invoke the listener with.
109467
+ * @param {Boolean} once Specify if the listener is a one-time listener.
109468
+ * @returns {EventEmitter}
109469
+ * @private
109470
+ */
109471
+ function addListener(emitter, event, fn, context, once) {
109472
+ if (typeof fn !== 'function') {
109473
+ throw new TypeError('The listener must be a function');
109474
+ }
109475
+
109476
+ var listener = new EE(fn, context || emitter, once)
109477
+ , evt = prefix ? prefix + event : event;
109478
+
109479
+ if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;
109480
+ else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);
109481
+ else emitter._events[evt] = [emitter._events[evt], listener];
109482
+
109483
+ return emitter;
109484
+ }
109485
+
109486
+ /**
109487
+ * Clear event by name.
109488
+ *
109489
+ * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.
109490
+ * @param {(String|Symbol)} evt The Event name.
109491
+ * @private
109492
+ */
109493
+ function clearEvent(emitter, evt) {
109494
+ if (--emitter._eventsCount === 0) emitter._events = new Events();
109495
+ else delete emitter._events[evt];
109496
+ }
109497
+
109498
+ /**
109499
+ * Minimal `EventEmitter` interface that is molded against the Node.js
109500
+ * `EventEmitter` interface.
109501
+ *
109502
+ * @constructor
109503
+ * @public
109504
+ */
109505
+ function EventEmitter() {
109506
+ this._events = new Events();
109507
+ this._eventsCount = 0;
109508
+ }
109509
+
109510
+ /**
109511
+ * Return an array listing the events for which the emitter has registered
109512
+ * listeners.
109513
+ *
109514
+ * @returns {Array}
109515
+ * @public
109516
+ */
109517
+ EventEmitter.prototype.eventNames = function eventNames() {
109518
+ var names = []
109519
+ , events
109520
+ , name;
109521
+
109522
+ if (this._eventsCount === 0) return names;
109523
+
109524
+ for (name in (events = this._events)) {
109525
+ if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);
109526
+ }
109527
+
109528
+ if (Object.getOwnPropertySymbols) {
109529
+ return names.concat(Object.getOwnPropertySymbols(events));
109530
+ }
109531
+
109532
+ return names;
109533
+ };
109534
+
109535
+ /**
109536
+ * Return the listeners registered for a given event.
109537
+ *
109538
+ * @param {(String|Symbol)} event The event name.
109539
+ * @returns {Array} The registered listeners.
109540
+ * @public
109541
+ */
109542
+ EventEmitter.prototype.listeners = function listeners(event) {
109543
+ var evt = prefix ? prefix + event : event
109544
+ , handlers = this._events[evt];
109545
+
109546
+ if (!handlers) return [];
109547
+ if (handlers.fn) return [handlers.fn];
109548
+
109549
+ for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {
109550
+ ee[i] = handlers[i].fn;
109551
+ }
109552
+
109553
+ return ee;
109554
+ };
109555
+
109556
+ /**
109557
+ * Return the number of listeners listening to a given event.
109558
+ *
109559
+ * @param {(String|Symbol)} event The event name.
109560
+ * @returns {Number} The number of listeners.
109561
+ * @public
109562
+ */
109563
+ EventEmitter.prototype.listenerCount = function listenerCount(event) {
109564
+ var evt = prefix ? prefix + event : event
109565
+ , listeners = this._events[evt];
109566
+
109567
+ if (!listeners) return 0;
109568
+ if (listeners.fn) return 1;
109569
+ return listeners.length;
109570
+ };
109571
+
109572
+ /**
109573
+ * Calls each of the listeners registered for a given event.
109574
+ *
109575
+ * @param {(String|Symbol)} event The event name.
109576
+ * @returns {Boolean} `true` if the event had listeners, else `false`.
109577
+ * @public
109578
+ */
109579
+ EventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {
109580
+ var evt = prefix ? prefix + event : event;
109581
+
109582
+ if (!this._events[evt]) return false;
109583
+
109584
+ var listeners = this._events[evt]
109585
+ , len = arguments.length
109586
+ , args
109587
+ , i;
109588
+
109589
+ if (listeners.fn) {
109590
+ if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);
109591
+
109592
+ switch (len) {
109593
+ case 1: return listeners.fn.call(listeners.context), true;
109594
+ case 2: return listeners.fn.call(listeners.context, a1), true;
109595
+ case 3: return listeners.fn.call(listeners.context, a1, a2), true;
109596
+ case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;
109597
+ case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;
109598
+ case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;
109599
+ }
109600
+
109601
+ for (i = 1, args = new Array(len -1); i < len; i++) {
109602
+ args[i - 1] = arguments[i];
109603
+ }
109604
+
109605
+ listeners.fn.apply(listeners.context, args);
109606
+ } else {
109607
+ var length = listeners.length
109608
+ , j;
109609
+
109610
+ for (i = 0; i < length; i++) {
109611
+ if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);
109612
+
109613
+ switch (len) {
109614
+ case 1: listeners[i].fn.call(listeners[i].context); break;
109615
+ case 2: listeners[i].fn.call(listeners[i].context, a1); break;
109616
+ case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;
109617
+ case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;
109618
+ default:
109619
+ if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {
109620
+ args[j - 1] = arguments[j];
109621
+ }
109622
+
109623
+ listeners[i].fn.apply(listeners[i].context, args);
109624
+ }
109625
+ }
109626
+ }
109627
+
109628
+ return true;
109629
+ };
109630
+
109631
+ /**
109632
+ * Add a listener for a given event.
109633
+ *
109634
+ * @param {(String|Symbol)} event The event name.
109635
+ * @param {Function} fn The listener function.
109636
+ * @param {*} [context=this] The context to invoke the listener with.
109637
+ * @returns {EventEmitter} `this`.
109638
+ * @public
109639
+ */
109640
+ EventEmitter.prototype.on = function on(event, fn, context) {
109641
+ return addListener(this, event, fn, context, false);
109642
+ };
109643
+
109644
+ /**
109645
+ * Add a one-time listener for a given event.
109646
+ *
109647
+ * @param {(String|Symbol)} event The event name.
109648
+ * @param {Function} fn The listener function.
109649
+ * @param {*} [context=this] The context to invoke the listener with.
109650
+ * @returns {EventEmitter} `this`.
109651
+ * @public
109652
+ */
109653
+ EventEmitter.prototype.once = function once(event, fn, context) {
109654
+ return addListener(this, event, fn, context, true);
109655
+ };
109656
+
109657
+ /**
109658
+ * Remove the listeners of a given event.
109659
+ *
109660
+ * @param {(String|Symbol)} event The event name.
109661
+ * @param {Function} fn Only remove the listeners that match this function.
109662
+ * @param {*} context Only remove the listeners that have this context.
109663
+ * @param {Boolean} once Only remove one-time listeners.
109664
+ * @returns {EventEmitter} `this`.
109665
+ * @public
109666
+ */
109667
+ EventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {
109668
+ var evt = prefix ? prefix + event : event;
109669
+
109670
+ if (!this._events[evt]) return this;
109671
+ if (!fn) {
109672
+ clearEvent(this, evt);
109673
+ return this;
109674
+ }
109675
+
109676
+ var listeners = this._events[evt];
109677
+
109678
+ if (listeners.fn) {
109679
+ if (
109680
+ listeners.fn === fn &&
109681
+ (!once || listeners.once) &&
109682
+ (!context || listeners.context === context)
109683
+ ) {
109684
+ clearEvent(this, evt);
109685
+ }
109686
+ } else {
109687
+ for (var i = 0, events = [], length = listeners.length; i < length; i++) {
109688
+ if (
109689
+ listeners[i].fn !== fn ||
109690
+ (once && !listeners[i].once) ||
109691
+ (context && listeners[i].context !== context)
109692
+ ) {
109693
+ events.push(listeners[i]);
109694
+ }
109695
+ }
109696
+
109697
+ //
109698
+ // Reset the array, or remove it completely if we have no more listeners.
109699
+ //
109700
+ if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;
109701
+ else clearEvent(this, evt);
109702
+ }
109703
+
109704
+ return this;
109705
+ };
109706
+
109707
+ /**
109708
+ * Remove all listeners, or those of the specified event.
109709
+ *
109710
+ * @param {(String|Symbol)} [event] The event name.
109711
+ * @returns {EventEmitter} `this`.
109712
+ * @public
109713
+ */
109714
+ EventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {
109715
+ var evt;
109716
+
109717
+ if (event) {
109718
+ evt = prefix ? prefix + event : event;
109719
+ if (this._events[evt]) clearEvent(this, evt);
109720
+ } else {
109721
+ this._events = new Events();
109722
+ this._eventsCount = 0;
109723
+ }
109724
+
109725
+ return this;
109726
+ };
109727
+
109728
+ //
109729
+ // Alias methods names because people roll like that.
109730
+ //
109731
+ EventEmitter.prototype.off = EventEmitter.prototype.removeListener;
109732
+ EventEmitter.prototype.addListener = EventEmitter.prototype.on;
109733
+
109734
+ //
109735
+ // Expose the prefix.
109736
+ //
109737
+ EventEmitter.prefixed = prefix;
109738
+
109739
+ //
109740
+ // Allow `EventEmitter` to be imported as module namespace.
109741
+ //
109742
+ EventEmitter.EventEmitter = EventEmitter;
109743
+
109744
+ //
109745
+ // Expose the module.
109746
+ //
109747
+ if (true) {
109748
+ module.exports = EventEmitter;
109749
+ }
109750
+
109751
+
109675
109752
  /***/ }),
109676
109753
 
109677
109754
  /***/ 65621:
@@ -109707,7 +109784,7 @@ const readEnv = (env) => {
109707
109784
  "use strict";
109708
109785
 
109709
109786
  Object.defineProperty(exports, "__esModule", ({ value: true }));
109710
- const EventEmitter = __webpack_require__(42851);
109787
+ const EventEmitter = __webpack_require__(65232);
109711
109788
  const p_timeout_1 = __webpack_require__(36288);
109712
109789
  const priority_queue_1 = __webpack_require__(69833);
109713
109790
  // eslint-disable-next-line @typescript-eslint/no-empty-function