@circuitwall/jarela 2.2.1 → 2.4.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 (703) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-path-routes-manifest.json +2 -1
  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 +100 -93
  22. package/.next/standalone/.next/server/app/api/v1/access/route.js +176 -169
  23. package/.next/standalone/.next/server/app/api/v1/agents/[id]/compact/route.js +89 -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 +139 -127
  26. package/.next/standalone/.next/server/app/api/v1/agents/[id]/route.js +107 -100
  27. package/.next/standalone/.next/server/app/api/v1/agents/[id]/thread/route.js +765 -753
  28. package/.next/standalone/.next/server/app/api/v1/agents/route.js +72 -65
  29. package/.next/standalone/.next/server/app/api/v1/allowed-sites/[hostname]/route.js +371 -364
  30. package/.next/standalone/.next/server/app/api/v1/allowed-sites/route.js +809 -802
  31. package/.next/standalone/.next/server/app/api/v1/artifacts/lifecycle/route.js +9 -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 +583 -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 +41 -30
  37. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/ignores/route.js +48 -37
  38. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/lookup/route.js +697 -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 +703 -136
  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 +796 -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 +762 -746
  45. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/routes/route.js +1050 -1034
  46. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/status/route.js +673 -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 +811 -804
  49. package/.next/standalone/.next/server/app/api/v1/bridges/kinds/route.js.nft.json +1 -1
  50. package/.next/standalone/.next/server/app/api/v1/bridges/route.js +718 -706
  51. package/.next/standalone/.next/server/app/api/v1/bridges/route.js.nft.json +1 -1
  52. package/.next/standalone/.next/server/app/api/v1/builtin-tools/route.js +9 -9
  53. package/.next/standalone/.next/server/app/api/v1/builtin-tools/route.js.nft.json +1 -1
  54. package/.next/standalone/.next/server/app/api/v1/config/route.js +85 -85
  55. package/.next/standalone/.next/server/app/api/v1/credentials/[id]/route.js +709 -709
  56. package/.next/standalone/.next/server/app/api/v1/credentials/[id]/route.js.nft.json +1 -1
  57. package/.next/standalone/.next/server/app/api/v1/credentials/route.js +2 -2
  58. package/.next/standalone/.next/server/app/api/v1/credentials/route.js.nft.json +1 -1
  59. package/.next/standalone/.next/server/app/api/v1/dashboard/currency/route.js +10 -10
  60. package/.next/standalone/.next/server/app/api/v1/dashboard/metrics/route.js +796 -784
  61. package/.next/standalone/.next/server/app/api/v1/dashboard/pricing/route.js +30 -23
  62. package/.next/standalone/.next/server/app/api/v1/dashboard/pricing-task/route.js +86 -86
  63. package/.next/standalone/.next/server/app/api/v1/dashboard/pricing-task/route.js.nft.json +1 -1
  64. package/.next/standalone/.next/server/app/api/v1/delegations/codex/[job_id]/route.js +57 -57
  65. package/.next/standalone/.next/server/app/api/v1/delegations/codex/[job_id]/route.js.nft.json +1 -1
  66. package/.next/standalone/.next/server/app/api/v1/documents/search/route.js +385 -378
  67. package/.next/standalone/.next/server/app/api/v1/documents/settings/route.js +51 -44
  68. package/.next/standalone/.next/server/app/api/v1/documents/sources/[id]/reindex/route.js +65 -65
  69. package/.next/standalone/.next/server/app/api/v1/documents/sources/[id]/reindex/route.js.nft.json +1 -1
  70. package/.next/standalone/.next/server/app/api/v1/documents/sources/[id]/route.js +122 -122
  71. package/.next/standalone/.next/server/app/api/v1/documents/sources/[id]/route.js.nft.json +1 -1
  72. package/.next/standalone/.next/server/app/api/v1/documents/sources/route.js +37 -37
  73. package/.next/standalone/.next/server/app/api/v1/documents/sources/route.js.nft.json +1 -1
  74. package/.next/standalone/.next/server/app/api/v1/env/route.js +9 -9
  75. package/.next/standalone/.next/server/app/api/v1/env-sync/allowlist/route.js +375 -368
  76. package/.next/standalone/.next/server/app/api/v1/env-sync/route.js +51 -44
  77. package/.next/standalone/.next/server/app/api/v1/events/route.js +745 -178
  78. package/.next/standalone/.next/server/app/api/v1/events/route.js.nft.json +1 -1
  79. package/.next/standalone/.next/server/app/api/v1/events/test/route.js +77 -77
  80. package/.next/standalone/.next/server/app/api/v1/extension/agents/route.js +763 -763
  81. package/.next/standalone/.next/server/app/api/v1/extension/agents/route.js.nft.json +1 -1
  82. package/.next/standalone/.next/server/app/api/v1/extension/browser/activate/route.js +51 -44
  83. package/.next/standalone/.next/server/app/api/v1/extension/browser/foreground/route.js +16 -9
  84. package/.next/standalone/.next/server/app/api/v1/extension/browser/history/route.js +72 -65
  85. package/.next/standalone/.next/server/app/api/v1/extension/browser/poll/route.js +41 -34
  86. package/.next/standalone/.next/server/app/api/v1/extension/browser/progress/route.js +211 -204
  87. package/.next/standalone/.next/server/app/api/v1/extension/browser/result/route.js +140 -133
  88. package/.next/standalone/.next/server/app/api/v1/extension/browser/retry/route.js +113 -106
  89. package/.next/standalone/.next/server/app/api/v1/extension/browser/status/route.js +121 -114
  90. package/.next/standalone/.next/server/app/api/v1/extension/browser/tabs/route.js +141 -134
  91. package/.next/standalone/.next/server/app/api/v1/extension/fill/route.js +690 -690
  92. package/.next/standalone/.next/server/app/api/v1/extension/fill/route.js.nft.json +1 -1
  93. package/.next/standalone/.next/server/app/api/v1/extension/refine/route.js +93 -93
  94. package/.next/standalone/.next/server/app/api/v1/extension/refine/route.js.nft.json +1 -1
  95. package/.next/standalone/.next/server/app/api/v1/extension/turn/route.js +9 -9
  96. package/.next/standalone/.next/server/app/api/v1/extension/turn/route.js.nft.json +1 -1
  97. package/.next/standalone/.next/server/app/api/v1/extensions/route.js +185 -185
  98. package/.next/standalone/.next/server/app/api/v1/extensions/route.js.nft.json +1 -1
  99. package/.next/standalone/.next/server/app/api/v1/extensions/tools/[name]/config/route.js +171 -171
  100. package/.next/standalone/.next/server/app/api/v1/extensions/tools/[name]/config/route.js.nft.json +1 -1
  101. package/.next/standalone/.next/server/app/api/v1/extensions/tools/[name]/route.js +396 -396
  102. package/.next/standalone/.next/server/app/api/v1/extensions/tools/[name]/route.js.nft.json +1 -1
  103. package/.next/standalone/.next/server/app/api/v1/extensions/tools/[name]/secrets/route.js +212 -212
  104. package/.next/standalone/.next/server/app/api/v1/extensions/tools/[name]/secrets/route.js.nft.json +1 -1
  105. package/.next/standalone/.next/server/app/api/v1/files/[name]/route.js +235 -235
  106. package/.next/standalone/.next/server/app/api/v1/fs/browse/route.js +26 -26
  107. package/.next/standalone/.next/server/app/api/v1/harnesses/[id]/route.js +228 -221
  108. package/.next/standalone/.next/server/app/api/v1/harnesses/default/route.js +65 -58
  109. package/.next/standalone/.next/server/app/api/v1/harnesses/route.js +79 -72
  110. package/.next/standalone/.next/server/app/api/v1/health/probes/route.js +9 -9
  111. package/.next/standalone/.next/server/app/api/v1/health/probes/route.js.nft.json +1 -1
  112. package/.next/standalone/.next/server/app/api/v1/health/route.js +783 -771
  113. package/.next/standalone/.next/server/app/api/v1/integrations/[name]/route.js +140 -133
  114. package/.next/standalone/.next/server/app/api/v1/integrations/[name]/test/route.js +9 -9
  115. package/.next/standalone/.next/server/app/api/v1/integrations/[name]/test/route.js.nft.json +1 -1
  116. package/.next/standalone/.next/server/app/api/v1/integrations/gmail/oauth/callback/route.js +370 -363
  117. package/.next/standalone/.next/server/app/api/v1/integrations/gmail/oauth/start/route.js +240 -233
  118. package/.next/standalone/.next/server/app/api/v1/integrations/gmail/oauth/status/route.js +689 -682
  119. package/.next/standalone/.next/server/app/api/v1/integrations/outlook/oauth/callback/route.js +886 -879
  120. package/.next/standalone/.next/server/app/api/v1/integrations/outlook/oauth/start/route.js +115 -108
  121. package/.next/standalone/.next/server/app/api/v1/integrations/outlook/oauth/status/route.js +955 -948
  122. package/.next/standalone/.next/server/app/api/v1/integrations/route.js +223 -216
  123. package/.next/standalone/.next/server/app/api/v1/lifecycle/adoption/route.js +876 -847
  124. package/.next/standalone/.next/server/app/api/v1/lifecycle/adoption/route.js.nft.json +1 -1
  125. package/.next/standalone/.next/server/app/api/v1/local-file/route.js +26 -26
  126. package/.next/standalone/.next/server/app/api/v1/logs/route.js +70 -70
  127. package/.next/standalone/.next/server/app/api/v1/maps/embed/route.js +79 -72
  128. package/.next/standalone/.next/server/app/api/v1/mcp-servers/[name]/route.js +991 -979
  129. package/.next/standalone/.next/server/app/api/v1/mcp-servers/registry/route.js +196 -196
  130. package/.next/standalone/.next/server/app/api/v1/mcp-servers/route.js +19 -7
  131. package/.next/standalone/.next/server/app/api/v1/memory/[namespace]/[key]/route.js +539 -532
  132. package/.next/standalone/.next/server/app/api/v1/memory/policy/route.js +86 -79
  133. package/.next/standalone/.next/server/app/api/v1/memory/route.js +58 -51
  134. package/.next/standalone/.next/server/app/api/v1/memory/search/route.js +138 -131
  135. package/.next/standalone/.next/server/app/api/v1/models/[name]/compact-threads/route.js +381 -369
  136. package/.next/standalone/.next/server/app/api/v1/models/[name]/compact-threads/route.js.nft.json +1 -1
  137. package/.next/standalone/.next/server/app/api/v1/models/[name]/route.js +150 -143
  138. package/.next/standalone/.next/server/app/api/v1/models/route.js +634 -627
  139. package/.next/standalone/.next/server/app/api/v1/packages/catalog/route.js +445 -445
  140. package/.next/standalone/.next/server/app/api/v1/packages/defaults/[id]/route.js +120 -120
  141. package/.next/standalone/.next/server/app/api/v1/packages/defaults/[id]/route.js.nft.json +1 -1
  142. package/.next/standalone/.next/server/app/api/v1/packages/install/[id]/route.js +234 -234
  143. package/.next/standalone/.next/server/app/api/v1/packages/install/[id]/route.js.nft.json +1 -1
  144. package/.next/standalone/.next/server/app/api/v1/packages/install/route.js +407 -407
  145. package/.next/standalone/.next/server/app/api/v1/packages/install/route.js.nft.json +1 -1
  146. package/.next/standalone/.next/server/app/api/v1/packages/manifests/[name]/enabled/route.js +37 -37
  147. package/.next/standalone/.next/server/app/api/v1/packages/manifests/[name]/enabled/route.js.nft.json +1 -1
  148. package/.next/standalone/.next/server/app/api/v1/packages/manifests/[name]/route.js +107 -107
  149. package/.next/standalone/.next/server/app/api/v1/packages/manifests/[name]/route.js.nft.json +1 -1
  150. package/.next/standalone/.next/server/app/api/v1/packages/manifests/route.js +228 -228
  151. package/.next/standalone/.next/server/app/api/v1/packages/manifests/route.js.nft.json +1 -1
  152. package/.next/standalone/.next/server/app/api/v1/packages/reload/route.js +9 -9
  153. package/.next/standalone/.next/server/app/api/v1/packages/reload/route.js.nft.json +1 -1
  154. package/.next/standalone/.next/server/app/api/v1/packages/route.js +148 -148
  155. package/.next/standalone/.next/server/app/api/v1/packages/route.js.nft.json +1 -1
  156. package/.next/standalone/.next/server/app/api/v1/page-capture/route.js +787 -787
  157. package/.next/standalone/.next/server/app/api/v1/page-capture/route.js.nft.json +1 -1
  158. package/.next/standalone/.next/server/app/api/v1/pending-actions/[id]/approve/route.js +529 -514
  159. package/.next/standalone/.next/server/app/api/v1/pending-actions/[id]/approve/route.js.nft.json +1 -1
  160. package/.next/standalone/.next/server/app/api/v1/pending-actions/[id]/deny/route.js +181 -181
  161. package/.next/standalone/.next/server/app/api/v1/pending-actions/[id]/deny/route.js.nft.json +1 -1
  162. package/.next/standalone/.next/server/app/api/v1/pending-actions/route.js +258 -258
  163. package/.next/standalone/.next/server/app/api/v1/pending-actions/route.js.nft.json +1 -1
  164. package/.next/standalone/.next/server/app/api/v1/profile/location/route.js +37 -30
  165. package/.next/standalone/.next/server/app/api/v1/profile/route.js +171 -164
  166. package/.next/standalone/.next/server/app/api/v1/providers/[provider]/models/route.js +51 -44
  167. package/.next/standalone/.next/server/app/api/v1/providers/[provider]/probe/route.js +15 -8
  168. package/.next/standalone/.next/server/app/api/v1/providers/github-copilot/auth/route.js +171 -164
  169. package/.next/standalone/.next/server/app/api/v1/providers/route.js +101 -94
  170. package/.next/standalone/.next/server/app/api/v1/proxy-config/route.js +457 -450
  171. package/.next/standalone/.next/server/app/api/v1/redaction/init/route.js +44 -37
  172. package/.next/standalone/.next/server/app/api/v1/redaction/route.js +65 -58
  173. package/.next/standalone/.next/server/app/api/v1/scheduled-tasks/[id]/route.js +617 -605
  174. package/.next/standalone/.next/server/app/api/v1/scheduled-tasks/[id]/run/route.js +44 -44
  175. package/.next/standalone/.next/server/app/api/v1/scheduled-tasks/[id]/run/route.js.nft.json +1 -1
  176. package/.next/standalone/.next/server/app/api/v1/scheduled-tasks/route.js +739 -732
  177. package/.next/standalone/.next/server/app/api/v1/security/idle-timeout/route.js +329 -322
  178. package/.next/standalone/.next/server/app/api/v1/security/pin/route.js +204 -197
  179. package/.next/standalone/.next/server/app/api/v1/security/state/route.js +58 -51
  180. package/.next/standalone/.next/server/app/api/v1/security/unlock/route.js +183 -176
  181. package/.next/standalone/.next/server/app/api/v1/security/verify-pin/route.js +194 -187
  182. package/.next/standalone/.next/server/app/api/v1/setup/test-key/route.js +26 -26
  183. package/.next/standalone/.next/server/app/api/v1/skills/[id]/route.js +776 -769
  184. package/.next/standalone/.next/server/app/api/v1/skills/repos/[id]/route.js +122 -115
  185. package/.next/standalone/.next/server/app/api/v1/skills/repos/route.js +334 -327
  186. package/.next/standalone/.next/server/app/api/v1/skills/route.js +873 -866
  187. package/.next/standalone/.next/server/app/api/v1/system/abort/route.js +838 -808
  188. package/.next/standalone/.next/server/app/api/v1/system/restart/route.js +177 -177
  189. package/.next/standalone/.next/server/app/api/v1/system/restart/route.js.nft.json +1 -1
  190. package/.next/standalone/.next/server/app/api/v1/tailscale/route.js +164 -164
  191. package/.next/standalone/.next/server/app/api/v1/tasks/[agent_id]/route.js +122 -115
  192. package/.next/standalone/.next/server/app/api/v1/tasks/route.js +30 -23
  193. package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/activity/route.js +1436 -0
  194. package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/activity/route.js.nft.json +1 -0
  195. package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/activity/route_client-reference-manifest.js +1 -0
  196. package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/context-pin/route.js +638 -631
  197. package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/context-pin/route.js.nft.json +1 -1
  198. package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/route.js +60 -439
  199. package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/route.js.nft.json +1 -1
  200. package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/run/route.js +172 -173
  201. package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/run/route.js.nft.json +1 -1
  202. package/.next/standalone/.next/server/app/api/v1/threads/route.js +925 -913
  203. package/.next/standalone/.next/server/app/api/v1/tools/route.js +2 -2
  204. package/.next/standalone/.next/server/app/api/v1/tools/route.js.nft.json +1 -1
  205. package/.next/standalone/.next/server/app/api/v1/update/apply/route.js +17 -17
  206. package/.next/standalone/.next/server/app/api/v1/update/apply/route.js.nft.json +1 -1
  207. package/.next/standalone/.next/server/app/api/v1/update/route.js +570 -570
  208. package/.next/standalone/.next/server/app/api/v1/voice/transcribe/route.js +241 -229
  209. package/.next/standalone/.next/server/app/api/v1/voice/tts/route.js +989 -977
  210. package/.next/standalone/.next/server/app/api/v1/watchers/[id]/route.js +40 -28
  211. package/.next/standalone/.next/server/app/api/v1/watchers/[id]/run/route.js +72 -72
  212. package/.next/standalone/.next/server/app/api/v1/watchers/[id]/run/route.js.nft.json +1 -1
  213. package/.next/standalone/.next/server/app/api/v1/watchers/reaction-scripts/route.js +128 -128
  214. package/.next/standalone/.next/server/app/api/v1/watchers/route.js +164 -164
  215. package/.next/standalone/.next/server/app/api/v1/watchers/route.js.nft.json +1 -1
  216. package/.next/standalone/.next/server/app/icon.svg/route.js +62 -62
  217. package/.next/standalone/.next/server/app/manifest.webmanifest/route.js +436 -436
  218. package/.next/standalone/.next/server/app/page.js +1179 -743
  219. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  220. package/.next/standalone/.next/server/app/setup/page.js +99 -91
  221. package/.next/standalone/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  222. package/.next/standalone/.next/server/app-paths-manifest.json +2 -1
  223. package/.next/standalone/.next/server/chunks/{424.js → 1388.js} +441 -1022
  224. package/.next/standalone/.next/server/chunks/1433.js +1 -1
  225. package/.next/standalone/.next/server/chunks/1638.js +1 -2
  226. package/.next/standalone/.next/server/chunks/1738.js +1 -1
  227. package/.next/standalone/.next/server/chunks/2068.js +47 -10
  228. package/.next/standalone/.next/server/chunks/210.js +3 -3
  229. package/.next/standalone/.next/server/chunks/2151.js +31 -1
  230. package/.next/standalone/.next/server/chunks/2207.js +1 -0
  231. package/.next/standalone/.next/server/chunks/2447.js +10 -5
  232. package/.next/standalone/.next/server/chunks/2471.js +45 -45
  233. package/.next/standalone/.next/server/chunks/2504.js +1 -1
  234. package/.next/standalone/.next/server/chunks/2695.js +17 -17
  235. package/.next/standalone/.next/server/chunks/3042.js +24 -16
  236. package/.next/standalone/.next/server/chunks/{4540.js → 309.js} +104 -38
  237. package/.next/standalone/.next/server/chunks/{2350.js → 3272.js} +104 -37
  238. package/.next/standalone/.next/server/chunks/3399.js +526 -526
  239. package/.next/standalone/.next/server/chunks/3524.js +150 -67
  240. package/.next/standalone/.next/server/chunks/3566.js +1 -1
  241. package/.next/standalone/.next/server/chunks/4189.js +946 -0
  242. package/.next/standalone/.next/server/chunks/4433.js +146 -146
  243. package/.next/standalone/.next/server/chunks/4508.js +3 -3
  244. package/.next/standalone/.next/server/chunks/4588.js +1 -0
  245. package/.next/standalone/.next/server/chunks/46.js +78 -28
  246. package/.next/standalone/.next/server/chunks/466.js +12 -0
  247. package/.next/standalone/.next/server/chunks/4868.js +206 -206
  248. package/.next/standalone/.next/server/chunks/4992.js +13 -0
  249. package/.next/standalone/.next/server/chunks/5120.js +963 -0
  250. package/.next/standalone/.next/server/chunks/5701.js +1 -1
  251. package/.next/standalone/.next/server/chunks/5900.js +1 -1
  252. package/.next/standalone/.next/server/chunks/5908.js +63 -42
  253. package/.next/standalone/.next/server/chunks/6142.js +10 -2
  254. package/.next/standalone/.next/server/chunks/6210.js +1 -0
  255. package/.next/standalone/.next/server/chunks/6213.js +1 -1
  256. package/.next/standalone/.next/server/chunks/6649.js +3 -3
  257. package/.next/standalone/.next/server/chunks/6703.js +3 -3
  258. package/.next/standalone/.next/server/chunks/7445.js +1 -0
  259. package/.next/standalone/.next/server/chunks/8067.js +12 -0
  260. package/.next/standalone/.next/server/chunks/8461.js +24 -17
  261. package/.next/standalone/.next/server/chunks/8558.js +1 -1
  262. package/.next/standalone/.next/server/chunks/8724.js +1 -1
  263. package/.next/standalone/.next/server/chunks/8849.js +91 -91
  264. package/.next/standalone/.next/server/chunks/9032.js +4 -3
  265. package/.next/standalone/.next/server/chunks/{2563.js → 9164.js} +33389 -31418
  266. package/.next/standalone/.next/server/chunks/9237.js +396 -396
  267. package/.next/standalone/.next/server/chunks/{9640.js → 9304.js} +1672 -575
  268. package/.next/standalone/.next/server/chunks/9406.js +1 -1
  269. package/.next/standalone/.next/server/chunks/9590.js +68 -18
  270. package/.next/standalone/.next/server/chunks/9824.js +98 -98
  271. package/.next/standalone/.next/server/chunks/9826.js +1 -0
  272. package/.next/standalone/.next/server/middleware-build-manifest.js +2 -2
  273. package/.next/standalone/.next/server/middleware.js +486 -415
  274. package/.next/standalone/.next/server/pages/404.html +2 -2
  275. package/.next/standalone/.next/server/pages/500.html +1 -1
  276. package/.next/standalone/.next/server/preview-props.json +3 -3
  277. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  278. package/.next/standalone/.next/static/chunks/{1395-a340fb0a345382a4.js → 1395-e4a99912b8f83044.js} +13 -1
  279. package/.next/standalone/.next/static/chunks/app/_global-error/{page-36cb8b428b38b26a.js → page-6fc5f8e744c81802.js} +1 -1
  280. package/.next/standalone/.next/static/chunks/app/api/v1/access/[identity]/{route-36cb8b428b38b26a.js → route-6fc5f8e744c81802.js} +1 -1
  281. package/.next/standalone/.next/static/chunks/app/api/v1/access/{route-36cb8b428b38b26a.js → route-6fc5f8e744c81802.js} +1 -1
  282. package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/compact/{route-36cb8b428b38b26a.js → route-6fc5f8e744c81802.js} +1 -1
  283. package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/display-filters/route-6fc5f8e744c81802.js +17 -0
  284. package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/route-6fc5f8e744c81802.js +17 -0
  285. package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/thread/route-6fc5f8e744c81802.js +17 -0
  286. package/.next/standalone/.next/static/chunks/app/api/v1/agents/route-6fc5f8e744c81802.js +17 -0
  287. package/.next/standalone/.next/static/chunks/app/api/v1/allowed-sites/[hostname]/route-6fc5f8e744c81802.js +17 -0
  288. package/.next/standalone/.next/static/chunks/app/api/v1/allowed-sites/route-6fc5f8e744c81802.js +17 -0
  289. package/.next/standalone/.next/static/chunks/app/api/v1/artifacts/lifecycle/route-6fc5f8e744c81802.js +17 -0
  290. package/.next/standalone/.next/static/chunks/app/api/v1/attachments/files/route-6fc5f8e744c81802.js +17 -0
  291. package/.next/standalone/.next/static/chunks/app/api/v1/attachments/images/route-6fc5f8e744c81802.js +17 -0
  292. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/chats/route-6fc5f8e744c81802.js +17 -0
  293. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/ignores/[remote_jid]/route-6fc5f8e744c81802.js +17 -0
  294. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/ignores/route-6fc5f8e744c81802.js +17 -0
  295. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/lookup/route-6fc5f8e744c81802.js +17 -0
  296. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/pair/route-6fc5f8e744c81802.js +17 -0
  297. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/route-6fc5f8e744c81802.js +17 -0
  298. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/routes/[route_id]/route-6fc5f8e744c81802.js +17 -0
  299. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/routes/route-6fc5f8e744c81802.js +17 -0
  300. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/status/route-6fc5f8e744c81802.js +17 -0
  301. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/kinds/route-6fc5f8e744c81802.js +17 -0
  302. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/route-6fc5f8e744c81802.js +17 -0
  303. package/.next/standalone/.next/static/chunks/app/api/v1/builtin-tools/route-6fc5f8e744c81802.js +17 -0
  304. package/.next/standalone/.next/static/chunks/app/api/v1/config/route-6fc5f8e744c81802.js +17 -0
  305. package/.next/standalone/.next/static/chunks/app/api/v1/credentials/[id]/route-6fc5f8e744c81802.js +17 -0
  306. package/.next/standalone/.next/static/chunks/app/api/v1/credentials/route-6fc5f8e744c81802.js +17 -0
  307. package/.next/standalone/.next/static/chunks/app/api/v1/dashboard/currency/route-6fc5f8e744c81802.js +17 -0
  308. package/.next/standalone/.next/static/chunks/app/api/v1/dashboard/metrics/route-6fc5f8e744c81802.js +17 -0
  309. package/.next/standalone/.next/static/chunks/app/api/v1/dashboard/pricing/route-6fc5f8e744c81802.js +17 -0
  310. package/.next/standalone/.next/static/chunks/app/api/v1/dashboard/pricing-task/route-6fc5f8e744c81802.js +17 -0
  311. package/.next/standalone/.next/static/chunks/app/api/v1/delegations/codex/[job_id]/route-6fc5f8e744c81802.js +17 -0
  312. package/.next/standalone/.next/static/chunks/app/api/v1/documents/search/route-6fc5f8e744c81802.js +17 -0
  313. package/.next/standalone/.next/static/chunks/app/api/v1/documents/settings/route-6fc5f8e744c81802.js +17 -0
  314. package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/[id]/reindex/route-6fc5f8e744c81802.js +17 -0
  315. package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/[id]/route-6fc5f8e744c81802.js +17 -0
  316. package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/route-6fc5f8e744c81802.js +17 -0
  317. package/.next/standalone/.next/static/chunks/app/api/v1/env/route-6fc5f8e744c81802.js +17 -0
  318. package/.next/standalone/.next/static/chunks/app/api/v1/env-sync/allowlist/route-6fc5f8e744c81802.js +17 -0
  319. package/.next/standalone/.next/static/chunks/app/api/v1/env-sync/route-6fc5f8e744c81802.js +17 -0
  320. package/.next/standalone/.next/static/chunks/app/api/v1/events/route-6fc5f8e744c81802.js +17 -0
  321. package/.next/standalone/.next/static/chunks/app/api/v1/events/test/route-6fc5f8e744c81802.js +17 -0
  322. package/.next/standalone/.next/static/chunks/app/api/v1/extension/agents/route-6fc5f8e744c81802.js +17 -0
  323. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/activate/route-6fc5f8e744c81802.js +17 -0
  324. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/foreground/route-6fc5f8e744c81802.js +17 -0
  325. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/history/route-6fc5f8e744c81802.js +17 -0
  326. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/poll/route-6fc5f8e744c81802.js +17 -0
  327. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/progress/route-6fc5f8e744c81802.js +17 -0
  328. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/result/route-6fc5f8e744c81802.js +17 -0
  329. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/retry/route-6fc5f8e744c81802.js +17 -0
  330. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/status/route-6fc5f8e744c81802.js +17 -0
  331. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/tabs/route-6fc5f8e744c81802.js +17 -0
  332. package/.next/standalone/.next/static/chunks/app/api/v1/extension/fill/route-6fc5f8e744c81802.js +17 -0
  333. package/.next/standalone/.next/static/chunks/app/api/v1/extension/refine/route-6fc5f8e744c81802.js +17 -0
  334. package/.next/standalone/.next/static/chunks/app/api/v1/extension/turn/route-6fc5f8e744c81802.js +17 -0
  335. package/.next/standalone/.next/static/chunks/app/api/v1/extensions/route-6fc5f8e744c81802.js +17 -0
  336. package/.next/standalone/.next/static/chunks/app/api/v1/extensions/tools/[name]/config/route-6fc5f8e744c81802.js +17 -0
  337. package/.next/standalone/.next/static/chunks/app/api/v1/extensions/tools/[name]/route-6fc5f8e744c81802.js +17 -0
  338. package/.next/standalone/.next/static/chunks/app/api/v1/extensions/tools/[name]/secrets/route-6fc5f8e744c81802.js +17 -0
  339. package/.next/standalone/.next/static/chunks/app/api/v1/files/[name]/route-6fc5f8e744c81802.js +17 -0
  340. package/.next/standalone/.next/static/chunks/app/api/v1/fs/browse/route-6fc5f8e744c81802.js +17 -0
  341. package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/[id]/route-6fc5f8e744c81802.js +17 -0
  342. package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/default/route-6fc5f8e744c81802.js +17 -0
  343. package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/route-6fc5f8e744c81802.js +17 -0
  344. package/.next/standalone/.next/static/chunks/app/api/v1/health/probes/route-6fc5f8e744c81802.js +17 -0
  345. package/.next/standalone/.next/static/chunks/app/api/v1/health/route-6fc5f8e744c81802.js +17 -0
  346. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/[name]/route-6fc5f8e744c81802.js +17 -0
  347. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/[name]/test/route-6fc5f8e744c81802.js +17 -0
  348. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/callback/route-6fc5f8e744c81802.js +17 -0
  349. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/start/route-6fc5f8e744c81802.js +17 -0
  350. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/status/route-6fc5f8e744c81802.js +17 -0
  351. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/callback/route-6fc5f8e744c81802.js +17 -0
  352. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/start/route-6fc5f8e744c81802.js +17 -0
  353. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/status/route-6fc5f8e744c81802.js +17 -0
  354. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/route-6fc5f8e744c81802.js +17 -0
  355. package/.next/standalone/.next/static/chunks/app/api/v1/lifecycle/adoption/route-6fc5f8e744c81802.js +17 -0
  356. package/.next/standalone/.next/static/chunks/app/api/v1/local-file/route-6fc5f8e744c81802.js +17 -0
  357. package/.next/standalone/.next/static/chunks/app/api/v1/logs/route-6fc5f8e744c81802.js +17 -0
  358. package/.next/standalone/.next/static/chunks/app/api/v1/maps/embed/route-6fc5f8e744c81802.js +17 -0
  359. package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/[name]/route-6fc5f8e744c81802.js +17 -0
  360. package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/registry/route-6fc5f8e744c81802.js +17 -0
  361. package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/route-6fc5f8e744c81802.js +17 -0
  362. package/.next/standalone/.next/static/chunks/app/api/v1/memory/[namespace]/[key]/route-6fc5f8e744c81802.js +17 -0
  363. package/.next/standalone/.next/static/chunks/app/api/v1/memory/policy/route-6fc5f8e744c81802.js +17 -0
  364. package/.next/standalone/.next/static/chunks/app/api/v1/memory/route-6fc5f8e744c81802.js +17 -0
  365. package/.next/standalone/.next/static/chunks/app/api/v1/memory/search/route-6fc5f8e744c81802.js +17 -0
  366. package/.next/standalone/.next/static/chunks/app/api/v1/models/[name]/compact-threads/route-6fc5f8e744c81802.js +17 -0
  367. package/.next/standalone/.next/static/chunks/app/api/v1/models/[name]/route-6fc5f8e744c81802.js +17 -0
  368. package/.next/standalone/.next/static/chunks/app/api/v1/models/route-6fc5f8e744c81802.js +17 -0
  369. package/.next/standalone/.next/static/chunks/app/api/v1/packages/catalog/route-6fc5f8e744c81802.js +17 -0
  370. package/.next/standalone/.next/static/chunks/app/api/v1/packages/defaults/[id]/route-6fc5f8e744c81802.js +17 -0
  371. package/.next/standalone/.next/static/chunks/app/api/v1/packages/install/[id]/route-6fc5f8e744c81802.js +17 -0
  372. package/.next/standalone/.next/static/chunks/app/api/v1/packages/install/route-6fc5f8e744c81802.js +17 -0
  373. package/.next/standalone/.next/static/chunks/app/api/v1/packages/manifests/[name]/enabled/route-6fc5f8e744c81802.js +17 -0
  374. package/.next/standalone/.next/static/chunks/app/api/v1/packages/manifests/[name]/route-6fc5f8e744c81802.js +17 -0
  375. package/.next/standalone/.next/static/chunks/app/api/v1/packages/manifests/route-6fc5f8e744c81802.js +17 -0
  376. package/.next/standalone/.next/static/chunks/app/api/v1/packages/reload/route-6fc5f8e744c81802.js +17 -0
  377. package/.next/standalone/.next/static/chunks/app/api/v1/packages/route-6fc5f8e744c81802.js +17 -0
  378. package/.next/standalone/.next/static/chunks/app/api/v1/page-capture/route-6fc5f8e744c81802.js +17 -0
  379. package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/[id]/approve/route-6fc5f8e744c81802.js +17 -0
  380. package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/[id]/deny/route-6fc5f8e744c81802.js +17 -0
  381. package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/route-6fc5f8e744c81802.js +17 -0
  382. package/.next/standalone/.next/static/chunks/app/api/v1/profile/location/route-6fc5f8e744c81802.js +17 -0
  383. package/.next/standalone/.next/static/chunks/app/api/v1/profile/route-6fc5f8e744c81802.js +17 -0
  384. package/.next/standalone/.next/static/chunks/app/api/v1/providers/[provider]/models/route-6fc5f8e744c81802.js +17 -0
  385. package/.next/standalone/.next/static/chunks/app/api/v1/providers/[provider]/probe/route-6fc5f8e744c81802.js +17 -0
  386. package/.next/standalone/.next/static/chunks/app/api/v1/providers/github-copilot/auth/route-6fc5f8e744c81802.js +17 -0
  387. package/.next/standalone/.next/static/chunks/app/api/v1/providers/route-6fc5f8e744c81802.js +17 -0
  388. package/.next/standalone/.next/static/chunks/app/api/v1/proxy-config/route-6fc5f8e744c81802.js +17 -0
  389. package/.next/standalone/.next/static/chunks/app/api/v1/redaction/init/route-6fc5f8e744c81802.js +17 -0
  390. package/.next/standalone/.next/static/chunks/app/api/v1/redaction/route-6fc5f8e744c81802.js +17 -0
  391. package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/[id]/route-6fc5f8e744c81802.js +17 -0
  392. package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/[id]/run/route-6fc5f8e744c81802.js +17 -0
  393. package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/route-6fc5f8e744c81802.js +17 -0
  394. package/.next/standalone/.next/static/chunks/app/api/v1/security/idle-timeout/route-6fc5f8e744c81802.js +17 -0
  395. package/.next/standalone/.next/static/chunks/app/api/v1/security/pin/route-6fc5f8e744c81802.js +17 -0
  396. package/.next/standalone/.next/static/chunks/app/api/v1/security/state/route-6fc5f8e744c81802.js +17 -0
  397. package/.next/standalone/.next/static/chunks/app/api/v1/security/unlock/route-6fc5f8e744c81802.js +17 -0
  398. package/.next/standalone/.next/static/chunks/app/api/v1/security/verify-pin/route-6fc5f8e744c81802.js +17 -0
  399. package/.next/standalone/.next/static/chunks/app/api/v1/setup/test-key/route-6fc5f8e744c81802.js +17 -0
  400. package/.next/standalone/.next/static/chunks/app/api/v1/skills/[id]/route-6fc5f8e744c81802.js +17 -0
  401. package/.next/standalone/.next/static/chunks/app/api/v1/skills/repos/[id]/route-6fc5f8e744c81802.js +17 -0
  402. package/.next/standalone/.next/static/chunks/app/api/v1/skills/repos/route-6fc5f8e744c81802.js +17 -0
  403. package/.next/standalone/.next/static/chunks/app/api/v1/skills/route-6fc5f8e744c81802.js +17 -0
  404. package/.next/standalone/.next/static/chunks/app/api/v1/system/abort/route-6fc5f8e744c81802.js +17 -0
  405. package/.next/standalone/.next/static/chunks/app/api/v1/system/restart/route-6fc5f8e744c81802.js +17 -0
  406. package/.next/standalone/.next/static/chunks/app/api/v1/tailscale/route-6fc5f8e744c81802.js +17 -0
  407. package/.next/standalone/.next/static/chunks/app/api/v1/tasks/[agent_id]/route-6fc5f8e744c81802.js +17 -0
  408. package/.next/standalone/.next/static/chunks/app/api/v1/tasks/route-6fc5f8e744c81802.js +17 -0
  409. package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/activity/route-6fc5f8e744c81802.js +17 -0
  410. package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/context-pin/route-6fc5f8e744c81802.js +17 -0
  411. package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/route-6fc5f8e744c81802.js +17 -0
  412. package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/run/route-6fc5f8e744c81802.js +17 -0
  413. package/.next/standalone/.next/static/chunks/app/api/v1/threads/route-6fc5f8e744c81802.js +17 -0
  414. package/.next/standalone/.next/static/chunks/app/api/v1/tools/route-6fc5f8e744c81802.js +17 -0
  415. package/.next/standalone/.next/static/chunks/app/api/v1/update/apply/route-6fc5f8e744c81802.js +17 -0
  416. package/.next/standalone/.next/static/chunks/app/api/v1/update/route-6fc5f8e744c81802.js +17 -0
  417. package/.next/standalone/.next/static/chunks/app/api/v1/voice/transcribe/route-6fc5f8e744c81802.js +17 -0
  418. package/.next/standalone/.next/static/chunks/app/api/v1/voice/tts/route-6fc5f8e744c81802.js +17 -0
  419. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/[id]/route-6fc5f8e744c81802.js +17 -0
  420. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/[id]/run/route-6fc5f8e744c81802.js +17 -0
  421. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/reaction-scripts/route-6fc5f8e744c81802.js +17 -0
  422. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/route-6fc5f8e744c81802.js +17 -0
  423. package/.next/standalone/.next/static/chunks/app/manifest.webmanifest/route-6fc5f8e744c81802.js +17 -0
  424. package/.next/standalone/.next/static/chunks/app/{page-7017f07f8a7a083c.js → page-04748847c6ff866f.js} +1013 -585
  425. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-6fc5f8e744c81802.js +17 -0
  426. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-6fc5f8e744c81802.js +17 -0
  427. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-6fc5f8e744c81802.js +17 -0
  428. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-6fc5f8e744c81802.js +17 -0
  429. package/.next/standalone/.next/static/css/{d80058f0b9b41c09.css → 2669e8744cc8c212.css} +2 -2
  430. package/.next/standalone/docs/adoption/changesets.json +358 -0
  431. package/.next/standalone/lib/skills/builtins/memory-organization/SKILL.md +16 -0
  432. package/.next/standalone/package.json +3 -3
  433. package/CHANGELOG.md +44 -0
  434. package/api/client.ts +9 -0
  435. package/api/types.ts +29 -0
  436. package/app/api/v1/lifecycle/adoption/route.ts +14 -2
  437. package/app/api/v1/models/[name]/compact-threads/route.ts +14 -11
  438. package/app/api/v1/threads/[thread_id]/activity/route.ts +19 -0
  439. package/app/api/v1/threads/[thread_id]/context-pin/route.test.ts +1 -0
  440. package/app/api/v1/threads/[thread_id]/context-pin/route.ts +2 -1
  441. package/app/api/v1/threads/[thread_id]/route.ts +5 -1
  442. package/app/api/v1/threads/[thread_id]/run/route.ts +0 -1
  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/MessageBubble.tsx +12 -0
  447. package/components/chat/MessageList.test.tsx +31 -0
  448. package/components/chat/MessageList.tsx +49 -28
  449. package/components/chat/ToolList.test.tsx +92 -16
  450. package/components/chat/ToolList.tsx +59 -4
  451. package/components/chat/chat-helpers.test.tsx +24 -1
  452. package/components/chat/chat-helpers.ts +47 -4
  453. package/components/chat/useThreadActivity.test.tsx +113 -0
  454. package/components/chat/useThreadActivity.ts +94 -0
  455. package/components/chat/useThreadData.ts +16 -16
  456. package/components/chat/workflow-step-retry.ts +25 -0
  457. package/components/integrations/NetworkSection.tsx +2 -2
  458. package/components/ui/BootScreen.tsx +17 -0
  459. package/components/ui/WorkflowChecklist.tsx +71 -33
  460. package/hooks/useSSE.ts +28 -3
  461. package/lib/agents/citation-checker.test.ts +40 -2
  462. package/lib/agents/citation-checker.ts +56 -11
  463. package/lib/agents/compaction-pipeline.test.ts +202 -0
  464. package/lib/agents/compaction-pipeline.ts +483 -0
  465. package/lib/agents/context-boundary.ts +5 -6
  466. package/lib/agents/conversation-summary.ts +37 -21
  467. package/lib/agents/instruction-edits.test.ts +120 -0
  468. package/lib/agents/instruction-edits.ts +65 -42
  469. package/lib/agents/prepare/history-window.test.ts +18 -0
  470. package/lib/agents/prepare/history-window.ts +11 -2
  471. package/lib/agents/prepare/request.ts +4 -2
  472. package/lib/agents/prepare/system-prompt.test.ts +49 -0
  473. package/lib/agents/prepare/system-prompt.ts +16 -5
  474. package/lib/agents/prompt-registry.test.ts +5 -140
  475. package/lib/agents/prompt-registry.ts +45 -1
  476. package/lib/agents/prompt-variants.ts +146 -0
  477. package/lib/agents/proposals.test.ts +76 -0
  478. package/lib/agents/proposals.ts +13 -5
  479. package/lib/agents/run-registry.test.ts +22 -0
  480. package/lib/agents/run-registry.ts +29 -0
  481. package/lib/agents/run-thread.auto-boundary.test.ts +125 -5
  482. package/lib/agents/run-thread.retry.test.ts +67 -1
  483. package/lib/agents/run-thread.ts +110 -10
  484. package/lib/agents/sqlite-checkpoint-saver.test.ts +91 -0
  485. package/lib/agents/thread-activity.test.ts +31 -0
  486. package/lib/agents/thread-activity.ts +27 -0
  487. package/lib/agents/thread-compaction-state.test.ts +82 -0
  488. package/lib/agents/thread-compaction-state.ts +121 -0
  489. package/lib/agents/thread-compaction.test.ts +83 -4
  490. package/lib/agents/thread-compaction.ts +34 -11
  491. package/lib/agents/warm-summary-background.test.ts +219 -5
  492. package/lib/agents/warm-summary-background.ts +346 -143
  493. package/lib/agents/warm-topics.test.ts +191 -0
  494. package/lib/agents/warm-topics.ts +317 -0
  495. package/lib/agents/workflow-step-retry.test.ts +96 -0
  496. package/lib/agents/workflow-step-retry.ts +216 -0
  497. package/lib/api/browser-control.ts +0 -3
  498. package/lib/bridges/dispatcher.ts +1 -0
  499. package/lib/bridges/message-role.test.ts +81 -0
  500. package/lib/bridges/message-role.ts +23 -10
  501. package/lib/bridges/types.ts +6 -0
  502. package/lib/bridges/whatsapp-link.test.ts +32 -0
  503. package/lib/bridges/whatsapp-link.ts +21 -0
  504. package/lib/bridges/whatsapp.inbound.test.ts +239 -0
  505. package/lib/bridges/whatsapp.sender.test.ts +80 -1
  506. package/lib/bridges/whatsapp.ts +76 -38
  507. package/lib/db/migrations.ts +5 -0
  508. package/lib/env/config.ts +2 -0
  509. package/lib/env/schema.ts +12 -0
  510. package/lib/lifecycle/changeset-build.test.ts +93 -0
  511. package/lib/lifecycle/changeset-build.ts +210 -0
  512. package/lib/lifecycle/changesets.test.ts +101 -0
  513. package/lib/lifecycle/changesets.ts +166 -0
  514. package/lib/lifecycle/surface-collect.test.ts +88 -0
  515. package/lib/lifecycle/surface-collect.ts +64 -0
  516. package/lib/lifecycle/surface-snapshot.test.ts +104 -0
  517. package/lib/lifecycle/surface-snapshot.ts +210 -0
  518. package/lib/memory/record.ts +0 -2
  519. package/lib/pricing/snapshot.test.ts +70 -0
  520. package/lib/pricing/snapshot.ts +10 -2
  521. package/lib/providers/external.ts +0 -2
  522. package/lib/proxy/dispatcher.test.ts +119 -1
  523. package/lib/proxy/dispatcher.ts +22 -9
  524. package/lib/skills/builtins/memory-organization/SKILL.md +16 -0
  525. package/lib/stores/agent-configs.ts +10 -5
  526. package/lib/stores/bridges.test.ts +81 -0
  527. package/lib/stores/bridges.ts +9 -8
  528. package/lib/stores/proxy-config.test.ts +120 -0
  529. package/lib/stores/proxy-config.ts +22 -4
  530. package/lib/stores/threads.test.ts +9 -0
  531. package/lib/stores/threads.ts +33 -19
  532. package/lib/stores/version-adoption.test.ts +96 -0
  533. package/lib/stores/version-adoption.ts +239 -26
  534. package/lib/stores/workflow-progress.ts +3 -0
  535. package/lib/tools/communications/calendar.test.ts +43 -2
  536. package/lib/tools/communications/calendar.ts +2 -0
  537. package/lib/tools/communications/gmail.test.ts +51 -1
  538. package/lib/tools/communications/gmail.ts +44 -2
  539. package/lib/tools/communications/ms-todo.ts +0 -7
  540. package/lib/tools/communications/outlook-calendar.ts +2 -0
  541. package/lib/tools/communications/outlook.test.ts +33 -2
  542. package/lib/tools/communications/outlook.ts +2 -0
  543. package/lib/tools/filesystem/edit-match.test.ts +133 -0
  544. package/lib/tools/filesystem/edit-match.ts +7 -2
  545. package/lib/tools/general/memory.ts +1 -1
  546. package/lib/tools/general/workflow-progress.ts +2 -0
  547. package/lib/tools/runtime/catalog.ts +1 -25
  548. package/lib/tools/support/result-refs.test.ts +131 -0
  549. package/lib/tools/support/result-refs.ts +41 -9
  550. package/lib/triggers/registry.ts +0 -4
  551. package/lib/utils/source-link.test.ts +51 -0
  552. package/lib/utils/source-link.ts +45 -0
  553. package/package.json +3 -3
  554. package/scripts/install-to-system.ps1 +39 -11
  555. package/scripts/install-to-system.sh +37 -3
  556. package/.next/standalone/.next/server/chunks/3979.js +0 -581
  557. package/.next/standalone/.next/server/chunks/5936.js +0 -594
  558. package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/display-filters/route-36cb8b428b38b26a.js +0 -17
  559. package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/route-36cb8b428b38b26a.js +0 -17
  560. package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/thread/route-36cb8b428b38b26a.js +0 -17
  561. package/.next/standalone/.next/static/chunks/app/api/v1/agents/route-36cb8b428b38b26a.js +0 -17
  562. package/.next/standalone/.next/static/chunks/app/api/v1/allowed-sites/[hostname]/route-36cb8b428b38b26a.js +0 -17
  563. package/.next/standalone/.next/static/chunks/app/api/v1/allowed-sites/route-36cb8b428b38b26a.js +0 -17
  564. package/.next/standalone/.next/static/chunks/app/api/v1/artifacts/lifecycle/route-36cb8b428b38b26a.js +0 -17
  565. package/.next/standalone/.next/static/chunks/app/api/v1/attachments/files/route-36cb8b428b38b26a.js +0 -17
  566. package/.next/standalone/.next/static/chunks/app/api/v1/attachments/images/route-36cb8b428b38b26a.js +0 -17
  567. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/chats/route-36cb8b428b38b26a.js +0 -17
  568. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/ignores/[remote_jid]/route-36cb8b428b38b26a.js +0 -17
  569. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/ignores/route-36cb8b428b38b26a.js +0 -17
  570. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/lookup/route-36cb8b428b38b26a.js +0 -17
  571. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/pair/route-36cb8b428b38b26a.js +0 -17
  572. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/route-36cb8b428b38b26a.js +0 -17
  573. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/routes/[route_id]/route-36cb8b428b38b26a.js +0 -17
  574. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/routes/route-36cb8b428b38b26a.js +0 -17
  575. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/status/route-36cb8b428b38b26a.js +0 -17
  576. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/kinds/route-36cb8b428b38b26a.js +0 -17
  577. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/route-36cb8b428b38b26a.js +0 -17
  578. package/.next/standalone/.next/static/chunks/app/api/v1/builtin-tools/route-36cb8b428b38b26a.js +0 -17
  579. package/.next/standalone/.next/static/chunks/app/api/v1/config/route-36cb8b428b38b26a.js +0 -17
  580. package/.next/standalone/.next/static/chunks/app/api/v1/credentials/[id]/route-36cb8b428b38b26a.js +0 -17
  581. package/.next/standalone/.next/static/chunks/app/api/v1/credentials/route-36cb8b428b38b26a.js +0 -17
  582. package/.next/standalone/.next/static/chunks/app/api/v1/dashboard/currency/route-36cb8b428b38b26a.js +0 -17
  583. package/.next/standalone/.next/static/chunks/app/api/v1/dashboard/metrics/route-36cb8b428b38b26a.js +0 -17
  584. package/.next/standalone/.next/static/chunks/app/api/v1/dashboard/pricing/route-36cb8b428b38b26a.js +0 -17
  585. package/.next/standalone/.next/static/chunks/app/api/v1/dashboard/pricing-task/route-36cb8b428b38b26a.js +0 -17
  586. package/.next/standalone/.next/static/chunks/app/api/v1/delegations/codex/[job_id]/route-36cb8b428b38b26a.js +0 -17
  587. package/.next/standalone/.next/static/chunks/app/api/v1/documents/search/route-36cb8b428b38b26a.js +0 -17
  588. package/.next/standalone/.next/static/chunks/app/api/v1/documents/settings/route-36cb8b428b38b26a.js +0 -17
  589. package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/[id]/reindex/route-36cb8b428b38b26a.js +0 -17
  590. package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/[id]/route-36cb8b428b38b26a.js +0 -17
  591. package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/route-36cb8b428b38b26a.js +0 -17
  592. package/.next/standalone/.next/static/chunks/app/api/v1/env/route-36cb8b428b38b26a.js +0 -17
  593. package/.next/standalone/.next/static/chunks/app/api/v1/env-sync/allowlist/route-36cb8b428b38b26a.js +0 -17
  594. package/.next/standalone/.next/static/chunks/app/api/v1/env-sync/route-36cb8b428b38b26a.js +0 -17
  595. package/.next/standalone/.next/static/chunks/app/api/v1/events/route-36cb8b428b38b26a.js +0 -17
  596. package/.next/standalone/.next/static/chunks/app/api/v1/events/test/route-36cb8b428b38b26a.js +0 -17
  597. package/.next/standalone/.next/static/chunks/app/api/v1/extension/agents/route-36cb8b428b38b26a.js +0 -17
  598. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/activate/route-36cb8b428b38b26a.js +0 -17
  599. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/foreground/route-36cb8b428b38b26a.js +0 -17
  600. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/history/route-36cb8b428b38b26a.js +0 -17
  601. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/poll/route-36cb8b428b38b26a.js +0 -17
  602. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/progress/route-36cb8b428b38b26a.js +0 -17
  603. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/result/route-36cb8b428b38b26a.js +0 -17
  604. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/retry/route-36cb8b428b38b26a.js +0 -17
  605. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/status/route-36cb8b428b38b26a.js +0 -17
  606. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/tabs/route-36cb8b428b38b26a.js +0 -17
  607. package/.next/standalone/.next/static/chunks/app/api/v1/extension/fill/route-36cb8b428b38b26a.js +0 -17
  608. package/.next/standalone/.next/static/chunks/app/api/v1/extension/refine/route-36cb8b428b38b26a.js +0 -17
  609. package/.next/standalone/.next/static/chunks/app/api/v1/extension/turn/route-36cb8b428b38b26a.js +0 -17
  610. package/.next/standalone/.next/static/chunks/app/api/v1/extensions/route-36cb8b428b38b26a.js +0 -17
  611. package/.next/standalone/.next/static/chunks/app/api/v1/extensions/tools/[name]/config/route-36cb8b428b38b26a.js +0 -17
  612. package/.next/standalone/.next/static/chunks/app/api/v1/extensions/tools/[name]/route-36cb8b428b38b26a.js +0 -17
  613. package/.next/standalone/.next/static/chunks/app/api/v1/extensions/tools/[name]/secrets/route-36cb8b428b38b26a.js +0 -17
  614. package/.next/standalone/.next/static/chunks/app/api/v1/files/[name]/route-36cb8b428b38b26a.js +0 -17
  615. package/.next/standalone/.next/static/chunks/app/api/v1/fs/browse/route-36cb8b428b38b26a.js +0 -17
  616. package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/[id]/route-36cb8b428b38b26a.js +0 -17
  617. package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/default/route-36cb8b428b38b26a.js +0 -17
  618. package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/route-36cb8b428b38b26a.js +0 -17
  619. package/.next/standalone/.next/static/chunks/app/api/v1/health/probes/route-36cb8b428b38b26a.js +0 -17
  620. package/.next/standalone/.next/static/chunks/app/api/v1/health/route-36cb8b428b38b26a.js +0 -17
  621. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/[name]/route-36cb8b428b38b26a.js +0 -17
  622. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/[name]/test/route-36cb8b428b38b26a.js +0 -17
  623. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/callback/route-36cb8b428b38b26a.js +0 -17
  624. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/start/route-36cb8b428b38b26a.js +0 -17
  625. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/status/route-36cb8b428b38b26a.js +0 -17
  626. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/callback/route-36cb8b428b38b26a.js +0 -17
  627. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/start/route-36cb8b428b38b26a.js +0 -17
  628. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/status/route-36cb8b428b38b26a.js +0 -17
  629. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/route-36cb8b428b38b26a.js +0 -17
  630. package/.next/standalone/.next/static/chunks/app/api/v1/lifecycle/adoption/route-36cb8b428b38b26a.js +0 -17
  631. package/.next/standalone/.next/static/chunks/app/api/v1/local-file/route-36cb8b428b38b26a.js +0 -17
  632. package/.next/standalone/.next/static/chunks/app/api/v1/logs/route-36cb8b428b38b26a.js +0 -17
  633. package/.next/standalone/.next/static/chunks/app/api/v1/maps/embed/route-36cb8b428b38b26a.js +0 -17
  634. package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/[name]/route-36cb8b428b38b26a.js +0 -17
  635. package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/registry/route-36cb8b428b38b26a.js +0 -17
  636. package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/route-36cb8b428b38b26a.js +0 -17
  637. package/.next/standalone/.next/static/chunks/app/api/v1/memory/[namespace]/[key]/route-36cb8b428b38b26a.js +0 -17
  638. package/.next/standalone/.next/static/chunks/app/api/v1/memory/policy/route-36cb8b428b38b26a.js +0 -17
  639. package/.next/standalone/.next/static/chunks/app/api/v1/memory/route-36cb8b428b38b26a.js +0 -17
  640. package/.next/standalone/.next/static/chunks/app/api/v1/memory/search/route-36cb8b428b38b26a.js +0 -17
  641. package/.next/standalone/.next/static/chunks/app/api/v1/models/[name]/compact-threads/route-36cb8b428b38b26a.js +0 -17
  642. package/.next/standalone/.next/static/chunks/app/api/v1/models/[name]/route-36cb8b428b38b26a.js +0 -17
  643. package/.next/standalone/.next/static/chunks/app/api/v1/models/route-36cb8b428b38b26a.js +0 -17
  644. package/.next/standalone/.next/static/chunks/app/api/v1/packages/catalog/route-36cb8b428b38b26a.js +0 -17
  645. package/.next/standalone/.next/static/chunks/app/api/v1/packages/defaults/[id]/route-36cb8b428b38b26a.js +0 -17
  646. package/.next/standalone/.next/static/chunks/app/api/v1/packages/install/[id]/route-36cb8b428b38b26a.js +0 -17
  647. package/.next/standalone/.next/static/chunks/app/api/v1/packages/install/route-36cb8b428b38b26a.js +0 -17
  648. package/.next/standalone/.next/static/chunks/app/api/v1/packages/manifests/[name]/enabled/route-36cb8b428b38b26a.js +0 -17
  649. package/.next/standalone/.next/static/chunks/app/api/v1/packages/manifests/[name]/route-36cb8b428b38b26a.js +0 -17
  650. package/.next/standalone/.next/static/chunks/app/api/v1/packages/manifests/route-36cb8b428b38b26a.js +0 -17
  651. package/.next/standalone/.next/static/chunks/app/api/v1/packages/reload/route-36cb8b428b38b26a.js +0 -17
  652. package/.next/standalone/.next/static/chunks/app/api/v1/packages/route-36cb8b428b38b26a.js +0 -17
  653. package/.next/standalone/.next/static/chunks/app/api/v1/page-capture/route-36cb8b428b38b26a.js +0 -17
  654. package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/[id]/approve/route-36cb8b428b38b26a.js +0 -17
  655. package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/[id]/deny/route-36cb8b428b38b26a.js +0 -17
  656. package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/route-36cb8b428b38b26a.js +0 -17
  657. package/.next/standalone/.next/static/chunks/app/api/v1/profile/location/route-36cb8b428b38b26a.js +0 -17
  658. package/.next/standalone/.next/static/chunks/app/api/v1/profile/route-36cb8b428b38b26a.js +0 -17
  659. package/.next/standalone/.next/static/chunks/app/api/v1/providers/[provider]/models/route-36cb8b428b38b26a.js +0 -17
  660. package/.next/standalone/.next/static/chunks/app/api/v1/providers/[provider]/probe/route-36cb8b428b38b26a.js +0 -17
  661. package/.next/standalone/.next/static/chunks/app/api/v1/providers/github-copilot/auth/route-36cb8b428b38b26a.js +0 -17
  662. package/.next/standalone/.next/static/chunks/app/api/v1/providers/route-36cb8b428b38b26a.js +0 -17
  663. package/.next/standalone/.next/static/chunks/app/api/v1/proxy-config/route-36cb8b428b38b26a.js +0 -17
  664. package/.next/standalone/.next/static/chunks/app/api/v1/redaction/init/route-36cb8b428b38b26a.js +0 -17
  665. package/.next/standalone/.next/static/chunks/app/api/v1/redaction/route-36cb8b428b38b26a.js +0 -17
  666. package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/[id]/route-36cb8b428b38b26a.js +0 -17
  667. package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/[id]/run/route-36cb8b428b38b26a.js +0 -17
  668. package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/route-36cb8b428b38b26a.js +0 -17
  669. package/.next/standalone/.next/static/chunks/app/api/v1/security/idle-timeout/route-36cb8b428b38b26a.js +0 -17
  670. package/.next/standalone/.next/static/chunks/app/api/v1/security/pin/route-36cb8b428b38b26a.js +0 -17
  671. package/.next/standalone/.next/static/chunks/app/api/v1/security/state/route-36cb8b428b38b26a.js +0 -17
  672. package/.next/standalone/.next/static/chunks/app/api/v1/security/unlock/route-36cb8b428b38b26a.js +0 -17
  673. package/.next/standalone/.next/static/chunks/app/api/v1/security/verify-pin/route-36cb8b428b38b26a.js +0 -17
  674. package/.next/standalone/.next/static/chunks/app/api/v1/setup/test-key/route-36cb8b428b38b26a.js +0 -17
  675. package/.next/standalone/.next/static/chunks/app/api/v1/skills/[id]/route-36cb8b428b38b26a.js +0 -17
  676. package/.next/standalone/.next/static/chunks/app/api/v1/skills/repos/[id]/route-36cb8b428b38b26a.js +0 -17
  677. package/.next/standalone/.next/static/chunks/app/api/v1/skills/repos/route-36cb8b428b38b26a.js +0 -17
  678. package/.next/standalone/.next/static/chunks/app/api/v1/skills/route-36cb8b428b38b26a.js +0 -17
  679. package/.next/standalone/.next/static/chunks/app/api/v1/system/abort/route-36cb8b428b38b26a.js +0 -17
  680. package/.next/standalone/.next/static/chunks/app/api/v1/system/restart/route-36cb8b428b38b26a.js +0 -17
  681. package/.next/standalone/.next/static/chunks/app/api/v1/tailscale/route-36cb8b428b38b26a.js +0 -17
  682. package/.next/standalone/.next/static/chunks/app/api/v1/tasks/[agent_id]/route-36cb8b428b38b26a.js +0 -17
  683. package/.next/standalone/.next/static/chunks/app/api/v1/tasks/route-36cb8b428b38b26a.js +0 -17
  684. package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/context-pin/route-36cb8b428b38b26a.js +0 -17
  685. package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/route-36cb8b428b38b26a.js +0 -17
  686. package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/run/route-36cb8b428b38b26a.js +0 -17
  687. package/.next/standalone/.next/static/chunks/app/api/v1/threads/route-36cb8b428b38b26a.js +0 -17
  688. package/.next/standalone/.next/static/chunks/app/api/v1/tools/route-36cb8b428b38b26a.js +0 -17
  689. package/.next/standalone/.next/static/chunks/app/api/v1/update/apply/route-36cb8b428b38b26a.js +0 -17
  690. package/.next/standalone/.next/static/chunks/app/api/v1/update/route-36cb8b428b38b26a.js +0 -17
  691. package/.next/standalone/.next/static/chunks/app/api/v1/voice/transcribe/route-36cb8b428b38b26a.js +0 -17
  692. package/.next/standalone/.next/static/chunks/app/api/v1/voice/tts/route-36cb8b428b38b26a.js +0 -17
  693. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/[id]/route-36cb8b428b38b26a.js +0 -17
  694. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/[id]/run/route-36cb8b428b38b26a.js +0 -17
  695. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/reaction-scripts/route-36cb8b428b38b26a.js +0 -17
  696. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/route-36cb8b428b38b26a.js +0 -17
  697. package/.next/standalone/.next/static/chunks/app/manifest.webmanifest/route-36cb8b428b38b26a.js +0 -17
  698. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-36cb8b428b38b26a.js +0 -17
  699. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-36cb8b428b38b26a.js +0 -17
  700. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-36cb8b428b38b26a.js +0 -17
  701. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-36cb8b428b38b26a.js +0 -17
  702. /package/.next/standalone/.next/static/{NUrC9xax1sp1Q70nlFqS6 → hwujW4hR1b-r3k5WdMxZO}/_buildManifest.js +0 -0
  703. /package/.next/standalone/.next/static/{NUrC9xax1sp1Q70nlFqS6 → hwujW4hR1b-r3k5WdMxZO}/_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:
@@ -49607,6 +49314,11 @@ function ensureThreadChannelSummariesTable(db) {
49607
49314
  if (!cols.some((column)=>column.name === "summary_before_seq")) {
49608
49315
  db.exec("ALTER TABLE thread_channel_summaries ADD COLUMN summary_before_seq INTEGER");
49609
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
+ }
49610
49322
  }
49611
49323
  // ADR-0041. Immutable per-assistant-turn snapshot of LLM usage. Written once
49612
49324
  // alongside addMessage(...,"assistant",...) and never updated, so the
@@ -50707,6 +50419,8 @@ function runCryptoMigration(db) {
50707
50419
  var external_node_util_ = __webpack_require__(57975);
50708
50420
  // EXTERNAL MODULE: external "undici"
50709
50421
  var external_undici_ = __webpack_require__(9956);
50422
+ // EXTERNAL MODULE: external "node:net"
50423
+ var external_node_net_ = __webpack_require__(77030);
50710
50424
  // EXTERNAL MODULE: ./node_modules/@anthropic-ai/sdk/internal/tslib.mjs
50711
50425
  var tslib = __webpack_require__(74300);
50712
50426
  // EXTERNAL MODULE: ./node_modules/@anthropic-ai/sdk/internal/utils/values.mjs
@@ -98491,6 +98205,7 @@ const ENV_DEFAULTS = {
98491
98205
  streamParseTripwire: 6,
98492
98206
  recallBudgetMs: 1500,
98493
98207
  warmSummaryBudgetMs: 5000,
98208
+ compactionTimeoutMs: 10 * 60000,
98494
98209
  maxThreadMessages: 1000,
98495
98210
  maxSessionArchives: 50,
98496
98211
  // tools
@@ -98696,6 +98411,17 @@ const ENV_SCHEMA = [
98696
98411
  agentWritable: false,
98697
98412
  min: 60000
98698
98413
  },
98414
+ {
98415
+ name: "JARELA_COMPACTION_TIMEOUT_MS",
98416
+ type: "int",
98417
+ default: ENV_DEFAULTS.compactionTimeoutMs,
98418
+ description: "Deadline for one warm-context compaction of a thread; a late result is discarded and the thread is released.",
98419
+ category: "agent",
98420
+ tier: "B",
98421
+ requiresRestart: false,
98422
+ agentWritable: false,
98423
+ min: 30000
98424
+ },
98699
98425
  {
98700
98426
  name: "JARELA_RUN_REGISTRY_TTL_MS",
98701
98427
  type: "int",
@@ -99344,6 +99070,7 @@ function getConfig() {
99344
99070
  streamParseTripwire: parsePositiveInt(env.JARELA_STREAM_PARSE_TRIPWIRE, ENV_DEFAULTS.streamParseTripwire),
99345
99071
  recallBudgetMs: parseNonNegativeInt(env.JARELA_RECALL_BUDGET_MS, ENV_DEFAULTS.recallBudgetMs),
99346
99072
  warmSummaryBudgetMs: parseNonNegativeInt(env.JARELA_WARM_SUMMARY_BUDGET_MS, ENV_DEFAULTS.warmSummaryBudgetMs),
99073
+ compactionTimeoutMs: parsePositiveInt(env.JARELA_COMPACTION_TIMEOUT_MS, ENV_DEFAULTS.compactionTimeoutMs),
99347
99074
  maxThreadMessages: parsePositiveInt(env.JARELA_MAX_THREAD_MESSAGES, ENV_DEFAULTS.maxThreadMessages),
99348
99075
  maxSessionArchives: parsePositiveInt(env.JARELA_MAX_SESSION_ARCHIVES, ENV_DEFAULTS.maxSessionArchives),
99349
99076
  // tools
@@ -105881,6 +105608,7 @@ function maskSecrets(name, values) {
105881
105608
 
105882
105609
 
105883
105610
 
105611
+
105884
105612
  const DEFAULT_STATUS = {
105885
105613
  mode: "off",
105886
105614
  scheme: "http",
@@ -105931,15 +105659,26 @@ function saveProxyConfig(input) {
105931
105659
  };
105932
105660
  const scheme = input.scheme === "https" ? "https" : "http";
105933
105661
  // Manual mode requires host + port. system / off don't.
105662
+ let host = proxy_config_nullable(input.host);
105934
105663
  if (input.mode === "manual") {
105935
- if (!input.host || !input.host.trim()) return {
105664
+ if (!host) return {
105936
105665
  error: "host is required in manual mode"
105937
105666
  };
105938
- if (input.port == null || !Number.isFinite(input.port) || input.port <= 0 || input.port > 65535) {
105667
+ const normalisedHost = normaliseProxyHost(host);
105668
+ if (!normalisedHost) {
105939
105669
  return {
105940
- error: "port must be between 1 and 65535"
105670
+ error: "host must be a hostname or IP address, without scheme, port, path or credentials"
105941
105671
  };
105942
105672
  }
105673
+ host = normalisedHost;
105674
+ if (input.port == null) return {
105675
+ error: "port must be between 1 and 65535"
105676
+ };
105677
+ }
105678
+ if (input.port != null && (!Number.isInteger(input.port) || input.port <= 0 || input.port > 65535)) {
105679
+ return {
105680
+ error: "port must be between 1 and 65535"
105681
+ };
105943
105682
  }
105944
105683
  // CA bundle: empty/null clears; non-empty must look like PEM.
105945
105684
  let storedCaBundle = null;
@@ -105974,7 +105713,7 @@ function saveProxyConfig(input) {
105974
105713
  password = excluded.password,
105975
105714
  no_proxy = excluded.no_proxy,
105976
105715
  ca_bundle = excluded.ca_bundle,
105977
- updated_at = excluded.updated_at`).run(input.mode, scheme, proxy_config_nullable(input.host), input.port ?? null, proxy_config_nullable(input.username), storedPassword, proxy_config_nullable(input.no_proxy), storedCaBundle, now);
105716
+ updated_at = excluded.updated_at`).run(input.mode, scheme, host, input.port ?? null, proxy_config_nullable(input.username), storedPassword, proxy_config_nullable(input.no_proxy), storedCaBundle, now);
105978
105717
  return getProxyConfigStatus();
105979
105718
  }
105980
105719
  function deleteProxyConfig() {
@@ -105996,6 +105735,15 @@ function normaliseMode(m) {
105996
105735
  function normaliseScheme(s) {
105997
105736
  return s === "https" ? "https" : "http";
105998
105737
  }
105738
+ // The dispatcher builds `${scheme}://${auth}${host}:${port}`, so a pasted URL
105739
+ // or host:port would produce an unusable proxy URL. IPv6 is stored unbracketed;
105740
+ // the dispatcher adds the brackets.
105741
+ function normaliseProxyHost(host) {
105742
+ const unbracketed = host.startsWith("[") && host.endsWith("]") ? host.slice(1, -1) : host;
105743
+ if (/^[A-Za-z0-9](?:[A-Za-z0-9.-]*[A-Za-z0-9])?$/.test(unbracketed)) return unbracketed;
105744
+ if (isIPv6(unbracketed)) return unbracketed;
105745
+ return null;
105746
+ }
105999
105747
  function proxy_config_nullable(v) {
106000
105748
  if (v == null) return null;
106001
105749
  const trimmed = v.trim();
@@ -106284,7 +106032,25 @@ async function applyProxyConfigFromDb() {
106284
106032
  // ---------------------------------------------------------------------
106285
106033
  function buildProxyUrl(scheme, host, port, username, password) {
106286
106034
  const auth = username ? `${encodeURIComponent(username)}${password ? `:${encodeURIComponent(password)}` : ""}@` : "";
106287
- return `${scheme}://${auth}${host}:${port}`;
106035
+ const urlHost = host.includes(":") && !host.startsWith("[") ? `[${host}]` : host;
106036
+ return `${scheme}://${auth}${urlHost}:${port}`;
106037
+ }
106038
+ // undici's EnvHttpProxyAgent has no implicit loopback exemption, so without
106039
+ // these a configured proxy would also receive local traffic (Ollama, the
106040
+ // WhatsApp bridge sidecar, the app's own loopback API).
106041
+ const LOOPBACK_NO_PROXY = [
106042
+ "localhost",
106043
+ "127.0.0.1",
106044
+ "::1"
106045
+ ];
106046
+ function mergeNoProxy(noProxy) {
106047
+ const entries = (noProxy ?? "").split(/[,\s]+/).map((entry)=>entry.trim()).filter(Boolean);
106048
+ return [
106049
+ ...new Set([
106050
+ ...entries,
106051
+ ...LOOPBACK_NO_PROXY
106052
+ ])
106053
+ ].join(",");
106288
106054
  }
106289
106055
  function installProxy(url, noProxy, caBundle) {
106290
106056
  // Set process.env so EnvHttpProxyAgent honors NO_PROXY semantics
@@ -106292,27 +106058,31 @@ function installProxy(url, noProxy, caBundle) {
106292
106058
  // We still treat the boot-time env snapshot as authoritative for the
106293
106059
  // "env beats DB" rule — this mutation only happens after we've
106294
106060
  // confirmed the user did NOT set HTTP_PROXY at launch.
106061
+ const merged = mergeNoProxy(noProxy);
106295
106062
  process.env.HTTP_PROXY = url;
106296
106063
  process.env.HTTPS_PROXY = url;
106297
- if (noProxy && noProxy.trim().length > 0) {
106298
- process.env.NO_PROXY = noProxy.trim();
106299
- } else {
106300
- delete process.env.NO_PROXY;
106301
- }
106064
+ process.env.NO_PROXY = merged;
106302
106065
  // ADR-0012: when the user pasted a corporate root CA, inject it on
106303
106066
  // both TLS legs — the proxy hop (proxyTls) for https-scheme proxies
106304
106067
  // signed by the corporate root, and the upstream tunnel (requestTls)
106305
106068
  // for proxies that MITM outbound HTTPS with the same internal CA.
106306
106069
  // Same blob is correct: the corporate trust chain typically signs
106307
106070
  // both ends.
106308
- const opts = caBundle ? {
106309
- requestTls: {
106310
- ca: caBundle
106311
- },
106312
- proxyTls: {
106313
- ca: caBundle
106314
- }
106315
- } : {};
106071
+ // Pass the values explicitly too: undici prefers lowercase http_proxy /
106072
+ // no_proxy from the environment over the uppercase ones set above.
106073
+ const opts = {
106074
+ httpProxy: url,
106075
+ httpsProxy: url,
106076
+ noProxy: merged,
106077
+ ...caBundle ? {
106078
+ requestTls: {
106079
+ ca: caBundle
106080
+ },
106081
+ proxyTls: {
106082
+ ca: caBundle
106083
+ }
106084
+ } : {}
106085
+ };
106316
106086
  (0,external_undici_.setGlobalDispatcher)(new external_undici_.EnvHttpProxyAgent(opts));
106317
106087
  }
106318
106088
  function resetToBaseline() {
@@ -107863,57 +107633,6 @@ function interceptionPrefixFromParamType(paramType) {
107863
107633
 
107864
107634
  /***/ }),
107865
107635
 
107866
- /***/ 60190:
107867
- /***/ ((__unused_webpack_module, exports) => {
107868
-
107869
- "use strict";
107870
- /**
107871
- * Percent-encode every character other than horizontal tab and printable ASCII
107872
- * so a value can be safely serialized into an HTTP header.
107873
- *
107874
- * Node's `validateHeaderValue` and `fetch`'s ByteString conversion accept
107875
- * different character ranges. Restricting values to `\t\x20-\x7e` produces a
107876
- * conservative representation that both can serialize. Characters outside a
107877
- * transport's accepted range (Hebrew, Arabic, Chinese, emoji, …) would
107878
- * otherwise throw `ERR_INVALID_CHAR` or a `TypeError`, which crashes ISR or
107879
- * fails a cache read on every affected request.
107880
- *
107881
- * Cache tags are encoded at the public boundaries — tag construction
107882
- * (`getImplicitTags`, `validateTags`) and invalidation input
107883
- * (`revalidatePath`, `revalidateTag`, `updateTag`) — so storage, comparison,
107884
- * and the wire all see the same canonical form.
107885
- *
107886
- * The class is narrower than either transport accepts. Everything inside it
107887
- * passes through byte-for-byte, including `,`, `/`, `%`, `[`, `]`, `_`, `-` and
107888
- * `\t`, which preserves the comma-separated header format and the
107889
- * dynamic-segment markers in derived tags (`_N_T_/[slug]/page`).
107890
- *
107891
- * Properties:
107892
- * - Fast-path: input that already fits the class is returned unchanged. This
107893
- * makes the encoder idempotent on already-encoded `%xx` sequences.
107894
- * - Matches *runs* of out-of-class code units so surrogate pairs (e.g. an
107895
- * emoji) are handed to `encodeURIComponent` as a complete code point — a
107896
- * per-code-unit regex would split the pair and throw `URIError`.
107897
- */
107898
- Object.defineProperty(exports, "__esModule", ({
107899
- value: true
107900
- }));
107901
- Object.defineProperty(exports, "encodeHeaderSafe", ({
107902
- enumerable: true,
107903
- get: function() {
107904
- return encodeHeaderSafe;
107905
- }
107906
- }));
107907
- const OUT_OF_CLASS_CHAR = /[^\t\x20-\x7e]/;
107908
- const OUT_OF_CLASS_RUN = /[^\t\x20-\x7e]+/g;
107909
- function encodeHeaderSafe(value) {
107910
- return OUT_OF_CLASS_CHAR.test(value) ? value.replace(OUT_OF_CLASS_RUN, (run)=>encodeURIComponent(run)) : value;
107911
- }
107912
-
107913
- //# sourceMappingURL=encode-header-safe.js.map
107914
-
107915
- /***/ }),
107916
-
107917
107636
  /***/ 61081:
107918
107637
  /***/ ((module) => {
107919
107638
 
@@ -109731,6 +109450,350 @@ function getRelativeURL(url, base) {
109731
109450
  } //# sourceMappingURL=relativize-url.js.map
109732
109451
 
109733
109452
 
109453
+ /***/ }),
109454
+
109455
+ /***/ 65232:
109456
+ /***/ ((module) => {
109457
+
109458
+ "use strict";
109459
+
109460
+
109461
+ var has = Object.prototype.hasOwnProperty
109462
+ , prefix = '~';
109463
+
109464
+ /**
109465
+ * Constructor to create a storage for our `EE` objects.
109466
+ * An `Events` instance is a plain object whose properties are event names.
109467
+ *
109468
+ * @constructor
109469
+ * @private
109470
+ */
109471
+ function Events() {}
109472
+
109473
+ //
109474
+ // We try to not inherit from `Object.prototype`. In some engines creating an
109475
+ // instance in this way is faster than calling `Object.create(null)` directly.
109476
+ // If `Object.create(null)` is not supported we prefix the event names with a
109477
+ // character to make sure that the built-in object properties are not
109478
+ // overridden or used as an attack vector.
109479
+ //
109480
+ if (Object.create) {
109481
+ Events.prototype = Object.create(null);
109482
+
109483
+ //
109484
+ // This hack is needed because the `__proto__` property is still inherited in
109485
+ // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.
109486
+ //
109487
+ if (!new Events().__proto__) prefix = false;
109488
+ }
109489
+
109490
+ /**
109491
+ * Representation of a single event listener.
109492
+ *
109493
+ * @param {Function} fn The listener function.
109494
+ * @param {*} context The context to invoke the listener with.
109495
+ * @param {Boolean} [once=false] Specify if the listener is a one-time listener.
109496
+ * @constructor
109497
+ * @private
109498
+ */
109499
+ function EE(fn, context, once) {
109500
+ this.fn = fn;
109501
+ this.context = context;
109502
+ this.once = once || false;
109503
+ }
109504
+
109505
+ /**
109506
+ * Add a listener for a given event.
109507
+ *
109508
+ * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.
109509
+ * @param {(String|Symbol)} event The event name.
109510
+ * @param {Function} fn The listener function.
109511
+ * @param {*} context The context to invoke the listener with.
109512
+ * @param {Boolean} once Specify if the listener is a one-time listener.
109513
+ * @returns {EventEmitter}
109514
+ * @private
109515
+ */
109516
+ function addListener(emitter, event, fn, context, once) {
109517
+ if (typeof fn !== 'function') {
109518
+ throw new TypeError('The listener must be a function');
109519
+ }
109520
+
109521
+ var listener = new EE(fn, context || emitter, once)
109522
+ , evt = prefix ? prefix + event : event;
109523
+
109524
+ if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;
109525
+ else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);
109526
+ else emitter._events[evt] = [emitter._events[evt], listener];
109527
+
109528
+ return emitter;
109529
+ }
109530
+
109531
+ /**
109532
+ * Clear event by name.
109533
+ *
109534
+ * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.
109535
+ * @param {(String|Symbol)} evt The Event name.
109536
+ * @private
109537
+ */
109538
+ function clearEvent(emitter, evt) {
109539
+ if (--emitter._eventsCount === 0) emitter._events = new Events();
109540
+ else delete emitter._events[evt];
109541
+ }
109542
+
109543
+ /**
109544
+ * Minimal `EventEmitter` interface that is molded against the Node.js
109545
+ * `EventEmitter` interface.
109546
+ *
109547
+ * @constructor
109548
+ * @public
109549
+ */
109550
+ function EventEmitter() {
109551
+ this._events = new Events();
109552
+ this._eventsCount = 0;
109553
+ }
109554
+
109555
+ /**
109556
+ * Return an array listing the events for which the emitter has registered
109557
+ * listeners.
109558
+ *
109559
+ * @returns {Array}
109560
+ * @public
109561
+ */
109562
+ EventEmitter.prototype.eventNames = function eventNames() {
109563
+ var names = []
109564
+ , events
109565
+ , name;
109566
+
109567
+ if (this._eventsCount === 0) return names;
109568
+
109569
+ for (name in (events = this._events)) {
109570
+ if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);
109571
+ }
109572
+
109573
+ if (Object.getOwnPropertySymbols) {
109574
+ return names.concat(Object.getOwnPropertySymbols(events));
109575
+ }
109576
+
109577
+ return names;
109578
+ };
109579
+
109580
+ /**
109581
+ * Return the listeners registered for a given event.
109582
+ *
109583
+ * @param {(String|Symbol)} event The event name.
109584
+ * @returns {Array} The registered listeners.
109585
+ * @public
109586
+ */
109587
+ EventEmitter.prototype.listeners = function listeners(event) {
109588
+ var evt = prefix ? prefix + event : event
109589
+ , handlers = this._events[evt];
109590
+
109591
+ if (!handlers) return [];
109592
+ if (handlers.fn) return [handlers.fn];
109593
+
109594
+ for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {
109595
+ ee[i] = handlers[i].fn;
109596
+ }
109597
+
109598
+ return ee;
109599
+ };
109600
+
109601
+ /**
109602
+ * Return the number of listeners listening to a given event.
109603
+ *
109604
+ * @param {(String|Symbol)} event The event name.
109605
+ * @returns {Number} The number of listeners.
109606
+ * @public
109607
+ */
109608
+ EventEmitter.prototype.listenerCount = function listenerCount(event) {
109609
+ var evt = prefix ? prefix + event : event
109610
+ , listeners = this._events[evt];
109611
+
109612
+ if (!listeners) return 0;
109613
+ if (listeners.fn) return 1;
109614
+ return listeners.length;
109615
+ };
109616
+
109617
+ /**
109618
+ * Calls each of the listeners registered for a given event.
109619
+ *
109620
+ * @param {(String|Symbol)} event The event name.
109621
+ * @returns {Boolean} `true` if the event had listeners, else `false`.
109622
+ * @public
109623
+ */
109624
+ EventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {
109625
+ var evt = prefix ? prefix + event : event;
109626
+
109627
+ if (!this._events[evt]) return false;
109628
+
109629
+ var listeners = this._events[evt]
109630
+ , len = arguments.length
109631
+ , args
109632
+ , i;
109633
+
109634
+ if (listeners.fn) {
109635
+ if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);
109636
+
109637
+ switch (len) {
109638
+ case 1: return listeners.fn.call(listeners.context), true;
109639
+ case 2: return listeners.fn.call(listeners.context, a1), true;
109640
+ case 3: return listeners.fn.call(listeners.context, a1, a2), true;
109641
+ case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;
109642
+ case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;
109643
+ case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;
109644
+ }
109645
+
109646
+ for (i = 1, args = new Array(len -1); i < len; i++) {
109647
+ args[i - 1] = arguments[i];
109648
+ }
109649
+
109650
+ listeners.fn.apply(listeners.context, args);
109651
+ } else {
109652
+ var length = listeners.length
109653
+ , j;
109654
+
109655
+ for (i = 0; i < length; i++) {
109656
+ if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);
109657
+
109658
+ switch (len) {
109659
+ case 1: listeners[i].fn.call(listeners[i].context); break;
109660
+ case 2: listeners[i].fn.call(listeners[i].context, a1); break;
109661
+ case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;
109662
+ case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;
109663
+ default:
109664
+ if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {
109665
+ args[j - 1] = arguments[j];
109666
+ }
109667
+
109668
+ listeners[i].fn.apply(listeners[i].context, args);
109669
+ }
109670
+ }
109671
+ }
109672
+
109673
+ return true;
109674
+ };
109675
+
109676
+ /**
109677
+ * Add a listener for a given event.
109678
+ *
109679
+ * @param {(String|Symbol)} event The event name.
109680
+ * @param {Function} fn The listener function.
109681
+ * @param {*} [context=this] The context to invoke the listener with.
109682
+ * @returns {EventEmitter} `this`.
109683
+ * @public
109684
+ */
109685
+ EventEmitter.prototype.on = function on(event, fn, context) {
109686
+ return addListener(this, event, fn, context, false);
109687
+ };
109688
+
109689
+ /**
109690
+ * Add a one-time listener for a given event.
109691
+ *
109692
+ * @param {(String|Symbol)} event The event name.
109693
+ * @param {Function} fn The listener function.
109694
+ * @param {*} [context=this] The context to invoke the listener with.
109695
+ * @returns {EventEmitter} `this`.
109696
+ * @public
109697
+ */
109698
+ EventEmitter.prototype.once = function once(event, fn, context) {
109699
+ return addListener(this, event, fn, context, true);
109700
+ };
109701
+
109702
+ /**
109703
+ * Remove the listeners of a given event.
109704
+ *
109705
+ * @param {(String|Symbol)} event The event name.
109706
+ * @param {Function} fn Only remove the listeners that match this function.
109707
+ * @param {*} context Only remove the listeners that have this context.
109708
+ * @param {Boolean} once Only remove one-time listeners.
109709
+ * @returns {EventEmitter} `this`.
109710
+ * @public
109711
+ */
109712
+ EventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {
109713
+ var evt = prefix ? prefix + event : event;
109714
+
109715
+ if (!this._events[evt]) return this;
109716
+ if (!fn) {
109717
+ clearEvent(this, evt);
109718
+ return this;
109719
+ }
109720
+
109721
+ var listeners = this._events[evt];
109722
+
109723
+ if (listeners.fn) {
109724
+ if (
109725
+ listeners.fn === fn &&
109726
+ (!once || listeners.once) &&
109727
+ (!context || listeners.context === context)
109728
+ ) {
109729
+ clearEvent(this, evt);
109730
+ }
109731
+ } else {
109732
+ for (var i = 0, events = [], length = listeners.length; i < length; i++) {
109733
+ if (
109734
+ listeners[i].fn !== fn ||
109735
+ (once && !listeners[i].once) ||
109736
+ (context && listeners[i].context !== context)
109737
+ ) {
109738
+ events.push(listeners[i]);
109739
+ }
109740
+ }
109741
+
109742
+ //
109743
+ // Reset the array, or remove it completely if we have no more listeners.
109744
+ //
109745
+ if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;
109746
+ else clearEvent(this, evt);
109747
+ }
109748
+
109749
+ return this;
109750
+ };
109751
+
109752
+ /**
109753
+ * Remove all listeners, or those of the specified event.
109754
+ *
109755
+ * @param {(String|Symbol)} [event] The event name.
109756
+ * @returns {EventEmitter} `this`.
109757
+ * @public
109758
+ */
109759
+ EventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {
109760
+ var evt;
109761
+
109762
+ if (event) {
109763
+ evt = prefix ? prefix + event : event;
109764
+ if (this._events[evt]) clearEvent(this, evt);
109765
+ } else {
109766
+ this._events = new Events();
109767
+ this._eventsCount = 0;
109768
+ }
109769
+
109770
+ return this;
109771
+ };
109772
+
109773
+ //
109774
+ // Alias methods names because people roll like that.
109775
+ //
109776
+ EventEmitter.prototype.off = EventEmitter.prototype.removeListener;
109777
+ EventEmitter.prototype.addListener = EventEmitter.prototype.on;
109778
+
109779
+ //
109780
+ // Expose the prefix.
109781
+ //
109782
+ EventEmitter.prefixed = prefix;
109783
+
109784
+ //
109785
+ // Allow `EventEmitter` to be imported as module namespace.
109786
+ //
109787
+ EventEmitter.EventEmitter = EventEmitter;
109788
+
109789
+ //
109790
+ // Expose the module.
109791
+ //
109792
+ if (true) {
109793
+ module.exports = EventEmitter;
109794
+ }
109795
+
109796
+
109734
109797
  /***/ }),
109735
109798
 
109736
109799
  /***/ 65621:
@@ -109766,7 +109829,7 @@ const readEnv = (env) => {
109766
109829
  "use strict";
109767
109830
 
109768
109831
  Object.defineProperty(exports, "__esModule", ({ value: true }));
109769
- const EventEmitter = __webpack_require__(42851);
109832
+ const EventEmitter = __webpack_require__(65232);
109770
109833
  const p_timeout_1 = __webpack_require__(36288);
109771
109834
  const priority_queue_1 = __webpack_require__(69833);
109772
109835
  // eslint-disable-next-line @typescript-eslint/no-empty-function
@@ -115275,6 +115338,14 @@ module.exports = require("node:path");
115275
115338
 
115276
115339
  /***/ }),
115277
115340
 
115341
+ /***/ 77030:
115342
+ /***/ ((module) => {
115343
+
115344
+ "use strict";
115345
+ module.exports = require("node:net");
115346
+
115347
+ /***/ }),
115348
+
115278
115349
  /***/ 77150:
115279
115350
  /***/ ((__unused_webpack_module, exports) => {
115280
115351