@circuitwall/jarela 2.2.1 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (651) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-path-routes-manifest.json +6 -5
  3. package/.next/standalone/.next/build-manifest.json +2 -2
  4. package/.next/standalone/.next/prerender-manifest.json +3 -3
  5. package/.next/standalone/.next/routes-manifest.json +8 -0
  6. package/.next/standalone/.next/server/app/_global-error/page.js +68 -68
  7. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  8. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  9. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  11. package/.next/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  12. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  13. package/.next/standalone/.next/server/app/_not-found/page.js +76 -76
  14. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  15. package/.next/standalone/.next/server/app/_not-found.html +2 -2
  16. package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
  17. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  18. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  19. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  20. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  21. package/.next/standalone/.next/server/app/api/v1/access/[identity]/route.js +93 -93
  22. package/.next/standalone/.next/server/app/api/v1/access/route.js +169 -169
  23. package/.next/standalone/.next/server/app/api/v1/agents/[id]/compact/route.js +82 -56
  24. package/.next/standalone/.next/server/app/api/v1/agents/[id]/compact/route.js.nft.json +1 -1
  25. package/.next/standalone/.next/server/app/api/v1/agents/[id]/display-filters/route.js +122 -122
  26. package/.next/standalone/.next/server/app/api/v1/agents/[id]/route.js +100 -100
  27. package/.next/standalone/.next/server/app/api/v1/agents/[id]/thread/route.js +753 -753
  28. package/.next/standalone/.next/server/app/api/v1/agents/route.js +65 -65
  29. package/.next/standalone/.next/server/app/api/v1/allowed-sites/[hostname]/route.js +364 -364
  30. package/.next/standalone/.next/server/app/api/v1/allowed-sites/route.js +802 -802
  31. package/.next/standalone/.next/server/app/api/v1/artifacts/lifecycle/route.js +2 -2
  32. package/.next/standalone/.next/server/app/api/v1/attachments/files/route.js +49 -49
  33. package/.next/standalone/.next/server/app/api/v1/attachments/images/route.js +910 -910
  34. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/chats/route.js +589 -16
  35. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/chats/route.js.nft.json +1 -1
  36. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/ignores/[remote_jid]/route.js +23 -23
  37. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/ignores/route.js +30 -30
  38. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/lookup/route.js +703 -130
  39. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/lookup/route.js.nft.json +1 -1
  40. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/pair/route.js +708 -135
  41. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/pair/route.js.nft.json +1 -1
  42. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/route.js +802 -229
  43. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/route.js.nft.json +1 -1
  44. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/routes/[route_id]/route.js +739 -739
  45. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/routes/route.js +1035 -1035
  46. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/status/route.js +679 -106
  47. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/status/route.js.nft.json +1 -1
  48. package/.next/standalone/.next/server/app/api/v1/bridges/kinds/route.js +804 -804
  49. package/.next/standalone/.next/server/app/api/v1/bridges/route.js +700 -700
  50. package/.next/standalone/.next/server/app/api/v1/builtin-tools/route.js +9 -9
  51. package/.next/standalone/.next/server/app/api/v1/builtin-tools/route.js.nft.json +1 -1
  52. package/.next/standalone/.next/server/app/api/v1/config/route.js +85 -85
  53. package/.next/standalone/.next/server/app/api/v1/credentials/[id]/route.js +709 -709
  54. package/.next/standalone/.next/server/app/api/v1/credentials/[id]/route.js.nft.json +1 -1
  55. package/.next/standalone/.next/server/app/api/v1/credentials/route.js +2 -2
  56. package/.next/standalone/.next/server/app/api/v1/credentials/route.js.nft.json +1 -1
  57. package/.next/standalone/.next/server/app/api/v1/dashboard/currency/route.js +10 -10
  58. package/.next/standalone/.next/server/app/api/v1/dashboard/metrics/route.js +784 -784
  59. package/.next/standalone/.next/server/app/api/v1/dashboard/pricing/route.js +23 -23
  60. package/.next/standalone/.next/server/app/api/v1/dashboard/pricing-task/route.js +86 -86
  61. package/.next/standalone/.next/server/app/api/v1/dashboard/pricing-task/route.js.nft.json +1 -1
  62. package/.next/standalone/.next/server/app/api/v1/delegations/codex/[job_id]/route.js +57 -57
  63. package/.next/standalone/.next/server/app/api/v1/delegations/codex/[job_id]/route.js.nft.json +1 -1
  64. package/.next/standalone/.next/server/app/api/v1/documents/search/route.js +523 -523
  65. package/.next/standalone/.next/server/app/api/v1/documents/settings/route.js +44 -44
  66. package/.next/standalone/.next/server/app/api/v1/documents/sources/[id]/reindex/route.js +65 -65
  67. package/.next/standalone/.next/server/app/api/v1/documents/sources/[id]/reindex/route.js.nft.json +1 -1
  68. package/.next/standalone/.next/server/app/api/v1/documents/sources/[id]/route.js +122 -122
  69. package/.next/standalone/.next/server/app/api/v1/documents/sources/[id]/route.js.nft.json +1 -1
  70. package/.next/standalone/.next/server/app/api/v1/documents/sources/route.js +37 -37
  71. package/.next/standalone/.next/server/app/api/v1/documents/sources/route.js.nft.json +1 -1
  72. package/.next/standalone/.next/server/app/api/v1/env/route.js +9 -9
  73. package/.next/standalone/.next/server/app/api/v1/env-sync/allowlist/route.js +368 -368
  74. package/.next/standalone/.next/server/app/api/v1/env-sync/route.js +44 -44
  75. package/.next/standalone/.next/server/app/api/v1/events/route.js +751 -178
  76. package/.next/standalone/.next/server/app/api/v1/events/route.js.nft.json +1 -1
  77. package/.next/standalone/.next/server/app/api/v1/events/test/route.js +77 -77
  78. package/.next/standalone/.next/server/app/api/v1/extension/agents/route.js +763 -763
  79. package/.next/standalone/.next/server/app/api/v1/extension/agents/route.js.nft.json +1 -1
  80. package/.next/standalone/.next/server/app/api/v1/extension/browser/activate/route.js +44 -44
  81. package/.next/standalone/.next/server/app/api/v1/extension/browser/foreground/route.js +9 -9
  82. package/.next/standalone/.next/server/app/api/v1/extension/browser/history/route.js +65 -65
  83. package/.next/standalone/.next/server/app/api/v1/extension/browser/poll/route.js +34 -34
  84. package/.next/standalone/.next/server/app/api/v1/extension/browser/progress/route.js +204 -204
  85. package/.next/standalone/.next/server/app/api/v1/extension/browser/result/route.js +133 -133
  86. package/.next/standalone/.next/server/app/api/v1/extension/browser/retry/route.js +106 -106
  87. package/.next/standalone/.next/server/app/api/v1/extension/browser/status/route.js +114 -114
  88. package/.next/standalone/.next/server/app/api/v1/extension/browser/tabs/route.js +134 -134
  89. package/.next/standalone/.next/server/app/api/v1/extension/fill/route.js +690 -690
  90. package/.next/standalone/.next/server/app/api/v1/extension/fill/route.js.nft.json +1 -1
  91. package/.next/standalone/.next/server/app/api/v1/extension/refine/route.js +93 -93
  92. package/.next/standalone/.next/server/app/api/v1/extension/refine/route.js.nft.json +1 -1
  93. package/.next/standalone/.next/server/app/api/v1/extension/turn/route.js +9 -9
  94. package/.next/standalone/.next/server/app/api/v1/extension/turn/route.js.nft.json +1 -1
  95. package/.next/standalone/.next/server/app/api/v1/extensions/route.js +185 -185
  96. package/.next/standalone/.next/server/app/api/v1/extensions/route.js.nft.json +1 -1
  97. package/.next/standalone/.next/server/app/api/v1/extensions/tools/[name]/config/route.js +171 -171
  98. package/.next/standalone/.next/server/app/api/v1/extensions/tools/[name]/config/route.js.nft.json +1 -1
  99. package/.next/standalone/.next/server/app/api/v1/extensions/tools/[name]/route.js +396 -396
  100. package/.next/standalone/.next/server/app/api/v1/extensions/tools/[name]/route.js.nft.json +1 -1
  101. package/.next/standalone/.next/server/app/api/v1/extensions/tools/[name]/secrets/route.js +212 -212
  102. package/.next/standalone/.next/server/app/api/v1/extensions/tools/[name]/secrets/route.js.nft.json +1 -1
  103. package/.next/standalone/.next/server/app/api/v1/files/[name]/route.js +235 -235
  104. package/.next/standalone/.next/server/app/api/v1/fs/browse/route.js +26 -26
  105. package/.next/standalone/.next/server/app/api/v1/harnesses/[id]/route.js +221 -221
  106. package/.next/standalone/.next/server/app/api/v1/harnesses/default/route.js +58 -58
  107. package/.next/standalone/.next/server/app/api/v1/harnesses/route.js +72 -72
  108. package/.next/standalone/.next/server/app/api/v1/health/probes/route.js +9 -9
  109. package/.next/standalone/.next/server/app/api/v1/health/probes/route.js.nft.json +1 -1
  110. package/.next/standalone/.next/server/app/api/v1/health/route.js +772 -772
  111. package/.next/standalone/.next/server/app/api/v1/integrations/[name]/route.js +133 -133
  112. package/.next/standalone/.next/server/app/api/v1/integrations/[name]/test/route.js +9 -9
  113. package/.next/standalone/.next/server/app/api/v1/integrations/[name]/test/route.js.nft.json +1 -1
  114. package/.next/standalone/.next/server/app/api/v1/integrations/gmail/oauth/callback/route.js +363 -363
  115. package/.next/standalone/.next/server/app/api/v1/integrations/gmail/oauth/start/route.js +233 -233
  116. package/.next/standalone/.next/server/app/api/v1/integrations/gmail/oauth/status/route.js +682 -682
  117. package/.next/standalone/.next/server/app/api/v1/integrations/outlook/oauth/callback/route.js +879 -879
  118. package/.next/standalone/.next/server/app/api/v1/integrations/outlook/oauth/start/route.js +108 -108
  119. package/.next/standalone/.next/server/app/api/v1/integrations/outlook/oauth/status/route.js +952 -952
  120. package/.next/standalone/.next/server/app/api/v1/integrations/route.js +216 -216
  121. package/.next/standalone/.next/server/app/api/v1/lifecycle/adoption/route.js +864 -847
  122. package/.next/standalone/.next/server/app/api/v1/lifecycle/adoption/route.js.nft.json +1 -1
  123. package/.next/standalone/.next/server/app/api/v1/local-file/route.js +26 -26
  124. package/.next/standalone/.next/server/app/api/v1/logs/route.js +70 -70
  125. package/.next/standalone/.next/server/app/api/v1/maps/embed/route.js +72 -72
  126. package/.next/standalone/.next/server/app/api/v1/mcp-servers/[name]/route.js +979 -979
  127. package/.next/standalone/.next/server/app/api/v1/mcp-servers/registry/route.js +196 -196
  128. package/.next/standalone/.next/server/app/api/v1/mcp-servers/route.js +2 -2
  129. package/.next/standalone/.next/server/app/api/v1/memory/[namespace]/[key]/route.js +381 -381
  130. package/.next/standalone/.next/server/app/api/v1/memory/policy/route.js +79 -79
  131. package/.next/standalone/.next/server/app/api/v1/memory/route.js +51 -51
  132. package/.next/standalone/.next/server/app/api/v1/memory/search/route.js +131 -131
  133. package/.next/standalone/.next/server/app/api/v1/models/[name]/compact-threads/route.js +374 -369
  134. package/.next/standalone/.next/server/app/api/v1/models/[name]/compact-threads/route.js.nft.json +1 -1
  135. package/.next/standalone/.next/server/app/api/v1/models/[name]/route.js +143 -143
  136. package/.next/standalone/.next/server/app/api/v1/models/route.js +543 -543
  137. package/.next/standalone/.next/server/app/api/v1/packages/catalog/route.js +445 -445
  138. package/.next/standalone/.next/server/app/api/v1/packages/defaults/[id]/route.js +120 -120
  139. package/.next/standalone/.next/server/app/api/v1/packages/defaults/[id]/route.js.nft.json +1 -1
  140. package/.next/standalone/.next/server/app/api/v1/packages/install/[id]/route.js +234 -234
  141. package/.next/standalone/.next/server/app/api/v1/packages/install/[id]/route.js.nft.json +1 -1
  142. package/.next/standalone/.next/server/app/api/v1/packages/install/route.js +407 -407
  143. package/.next/standalone/.next/server/app/api/v1/packages/install/route.js.nft.json +1 -1
  144. package/.next/standalone/.next/server/app/api/v1/packages/manifests/[name]/enabled/route.js +37 -37
  145. package/.next/standalone/.next/server/app/api/v1/packages/manifests/[name]/enabled/route.js.nft.json +1 -1
  146. package/.next/standalone/.next/server/app/api/v1/packages/manifests/[name]/route.js +107 -107
  147. package/.next/standalone/.next/server/app/api/v1/packages/manifests/[name]/route.js.nft.json +1 -1
  148. package/.next/standalone/.next/server/app/api/v1/packages/manifests/route.js +228 -228
  149. package/.next/standalone/.next/server/app/api/v1/packages/manifests/route.js.nft.json +1 -1
  150. package/.next/standalone/.next/server/app/api/v1/packages/reload/route.js +9 -9
  151. package/.next/standalone/.next/server/app/api/v1/packages/reload/route.js.nft.json +1 -1
  152. package/.next/standalone/.next/server/app/api/v1/packages/route.js +148 -148
  153. package/.next/standalone/.next/server/app/api/v1/packages/route.js.nft.json +1 -1
  154. package/.next/standalone/.next/server/app/api/v1/page-capture/route.js +787 -787
  155. package/.next/standalone/.next/server/app/api/v1/page-capture/route.js.nft.json +1 -1
  156. package/.next/standalone/.next/server/app/api/v1/pending-actions/[id]/approve/route.js +507 -507
  157. package/.next/standalone/.next/server/app/api/v1/pending-actions/[id]/approve/route.js.nft.json +1 -1
  158. package/.next/standalone/.next/server/app/api/v1/pending-actions/[id]/deny/route.js +181 -181
  159. package/.next/standalone/.next/server/app/api/v1/pending-actions/[id]/deny/route.js.nft.json +1 -1
  160. package/.next/standalone/.next/server/app/api/v1/pending-actions/route.js +258 -258
  161. package/.next/standalone/.next/server/app/api/v1/pending-actions/route.js.nft.json +1 -1
  162. package/.next/standalone/.next/server/app/api/v1/profile/location/route.js +30 -30
  163. package/.next/standalone/.next/server/app/api/v1/profile/route.js +164 -164
  164. package/.next/standalone/.next/server/app/api/v1/providers/[provider]/models/route.js +44 -44
  165. package/.next/standalone/.next/server/app/api/v1/providers/[provider]/probe/route.js +9 -9
  166. package/.next/standalone/.next/server/app/api/v1/providers/github-copilot/auth/route.js +164 -164
  167. package/.next/standalone/.next/server/app/api/v1/providers/route.js +94 -94
  168. package/.next/standalone/.next/server/app/api/v1/proxy-config/route.js +450 -450
  169. package/.next/standalone/.next/server/app/api/v1/redaction/init/route.js +37 -37
  170. package/.next/standalone/.next/server/app/api/v1/redaction/route.js +58 -58
  171. package/.next/standalone/.next/server/app/api/v1/scheduled-tasks/[id]/route.js +600 -600
  172. package/.next/standalone/.next/server/app/api/v1/scheduled-tasks/[id]/run/route.js +44 -44
  173. package/.next/standalone/.next/server/app/api/v1/scheduled-tasks/[id]/run/route.js.nft.json +1 -1
  174. package/.next/standalone/.next/server/app/api/v1/scheduled-tasks/route.js +732 -732
  175. package/.next/standalone/.next/server/app/api/v1/security/idle-timeout/route.js +359 -359
  176. package/.next/standalone/.next/server/app/api/v1/security/pin/route.js +197 -197
  177. package/.next/standalone/.next/server/app/api/v1/security/state/route.js +51 -51
  178. package/.next/standalone/.next/server/app/api/v1/security/unlock/route.js +176 -176
  179. package/.next/standalone/.next/server/app/api/v1/security/verify-pin/route.js +190 -190
  180. package/.next/standalone/.next/server/app/api/v1/setup/test-key/route.js +26 -26
  181. package/.next/standalone/.next/server/app/api/v1/skills/[id]/route.js +770 -770
  182. package/.next/standalone/.next/server/app/api/v1/skills/repos/[id]/route.js +115 -115
  183. package/.next/standalone/.next/server/app/api/v1/skills/repos/route.js +327 -327
  184. package/.next/standalone/.next/server/app/api/v1/skills/route.js +870 -870
  185. package/.next/standalone/.next/server/app/api/v1/system/abort/route.js +838 -808
  186. package/.next/standalone/.next/server/app/api/v1/system/restart/route.js +177 -177
  187. package/.next/standalone/.next/server/app/api/v1/system/restart/route.js.nft.json +1 -1
  188. package/.next/standalone/.next/server/app/api/v1/tailscale/route.js +164 -164
  189. package/.next/standalone/.next/server/app/api/v1/tasks/[agent_id]/route.js +115 -115
  190. package/.next/standalone/.next/server/app/api/v1/tasks/route.js +23 -23
  191. package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/activity/route.js +1429 -0
  192. package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/activity/route.js.nft.json +1 -0
  193. package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/activity/route_client-reference-manifest.js +1 -0
  194. package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/context-pin/route.js +635 -634
  195. package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/context-pin/route.js.nft.json +1 -1
  196. package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/route.js +53 -439
  197. package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/route.js.nft.json +1 -1
  198. package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/run/route.js +172 -172
  199. package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/run/route.js.nft.json +1 -1
  200. package/.next/standalone/.next/server/app/api/v1/threads/route.js +908 -908
  201. package/.next/standalone/.next/server/app/api/v1/tools/route.js +2 -2
  202. package/.next/standalone/.next/server/app/api/v1/tools/route.js.nft.json +1 -1
  203. package/.next/standalone/.next/server/app/api/v1/update/apply/route.js +17 -17
  204. package/.next/standalone/.next/server/app/api/v1/update/apply/route.js.nft.json +1 -1
  205. package/.next/standalone/.next/server/app/api/v1/update/route.js +570 -570
  206. package/.next/standalone/.next/server/app/api/v1/voice/transcribe/route.js +224 -224
  207. package/.next/standalone/.next/server/app/api/v1/voice/tts/route.js +975 -975
  208. package/.next/standalone/.next/server/app/api/v1/watchers/[id]/route.js +23 -23
  209. package/.next/standalone/.next/server/app/api/v1/watchers/[id]/run/route.js +72 -72
  210. package/.next/standalone/.next/server/app/api/v1/watchers/[id]/run/route.js.nft.json +1 -1
  211. package/.next/standalone/.next/server/app/api/v1/watchers/reaction-scripts/route.js +128 -128
  212. package/.next/standalone/.next/server/app/api/v1/watchers/route.js +164 -164
  213. package/.next/standalone/.next/server/app/api/v1/watchers/route.js.nft.json +1 -1
  214. package/.next/standalone/.next/server/app/icon.svg/route.js +62 -62
  215. package/.next/standalone/.next/server/app/manifest.webmanifest/route.js +436 -436
  216. package/.next/standalone/.next/server/app/page.js +1243 -854
  217. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  218. package/.next/standalone/.next/server/app/setup/page.js +91 -91
  219. package/.next/standalone/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  220. package/.next/standalone/.next/server/app-paths-manifest.json +6 -5
  221. package/.next/standalone/.next/server/chunks/{424.js → 1388.js} +335 -986
  222. package/.next/standalone/.next/server/chunks/1433.js +1 -1
  223. package/.next/standalone/.next/server/chunks/1638.js +1 -2
  224. package/.next/standalone/.next/server/chunks/1738.js +1 -1
  225. package/.next/standalone/.next/server/chunks/210.js +6 -6
  226. package/.next/standalone/.next/server/chunks/2151.js +31 -1
  227. package/.next/standalone/.next/server/chunks/2207.js +1 -0
  228. package/.next/standalone/.next/server/chunks/2471.js +28 -28
  229. package/.next/standalone/.next/server/chunks/2504.js +1 -1
  230. package/.next/standalone/.next/server/chunks/2695.js +17 -17
  231. package/.next/standalone/.next/server/chunks/3042.js +14 -8
  232. package/.next/standalone/.next/server/chunks/3399.js +1 -1
  233. package/.next/standalone/.next/server/chunks/3566.js +1 -1
  234. package/.next/standalone/.next/server/chunks/4189.js +946 -0
  235. package/.next/standalone/.next/server/chunks/{9590.js → 423.js} +8 -3
  236. package/.next/standalone/.next/server/chunks/4433.js +146 -146
  237. package/.next/standalone/.next/server/chunks/4508.js +1 -1
  238. package/.next/standalone/.next/server/chunks/4588.js +1 -0
  239. package/.next/standalone/.next/server/chunks/46.js +5 -0
  240. package/.next/standalone/.next/server/chunks/466.js +12 -0
  241. package/.next/standalone/.next/server/chunks/4868.js +206 -206
  242. package/.next/standalone/.next/server/chunks/4992.js +13 -0
  243. package/.next/standalone/.next/server/chunks/5120.js +963 -0
  244. package/.next/standalone/.next/server/chunks/5701.js +1 -1
  245. package/.next/standalone/.next/server/chunks/5900.js +1 -1
  246. package/.next/standalone/.next/server/chunks/6210.js +1 -0
  247. package/.next/standalone/.next/server/chunks/6213.js +1 -1
  248. package/.next/standalone/.next/server/chunks/6649.js +2 -2
  249. package/.next/standalone/.next/server/chunks/6703.js +3 -3
  250. package/.next/standalone/.next/server/chunks/7445.js +1 -0
  251. package/.next/standalone/.next/server/chunks/8067.js +12 -0
  252. package/.next/standalone/.next/server/chunks/8461.js +14 -9
  253. package/.next/standalone/.next/server/chunks/8558.js +1 -1
  254. package/.next/standalone/.next/server/chunks/8724.js +1 -1
  255. package/.next/standalone/.next/server/chunks/8849.js +91 -91
  256. package/.next/standalone/.next/server/chunks/9032.js +6 -5
  257. package/.next/standalone/.next/server/chunks/{2563.js → 9164.js} +33173 -31461
  258. package/.next/standalone/.next/server/chunks/9237.js +396 -396
  259. package/.next/standalone/.next/server/chunks/{9640.js → 9304.js} +1628 -570
  260. package/.next/standalone/.next/server/chunks/9406.js +1 -1
  261. package/.next/standalone/.next/server/chunks/9824.js +98 -98
  262. package/.next/standalone/.next/server/chunks/9826.js +1 -0
  263. package/.next/standalone/.next/server/middleware-build-manifest.js +2 -2
  264. package/.next/standalone/.next/server/middleware.js +415 -397
  265. package/.next/standalone/.next/server/pages/404.html +2 -2
  266. package/.next/standalone/.next/server/pages/500.html +1 -1
  267. package/.next/standalone/.next/server/preview-props.json +3 -3
  268. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  269. package/.next/standalone/.next/static/chunks/{1395-a340fb0a345382a4.js → 1395-e4a99912b8f83044.js} +13 -1
  270. package/.next/standalone/.next/static/chunks/app/_global-error/{page-36cb8b428b38b26a.js → page-6fc5f8e744c81802.js} +1 -1
  271. package/.next/standalone/.next/static/chunks/app/api/v1/access/[identity]/{route-36cb8b428b38b26a.js → route-6fc5f8e744c81802.js} +1 -1
  272. package/.next/standalone/.next/static/chunks/app/api/v1/access/{route-36cb8b428b38b26a.js → route-6fc5f8e744c81802.js} +1 -1
  273. package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/compact/{route-36cb8b428b38b26a.js → route-6fc5f8e744c81802.js} +1 -1
  274. package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/display-filters/route-6fc5f8e744c81802.js +17 -0
  275. package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/route-6fc5f8e744c81802.js +17 -0
  276. package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/thread/route-6fc5f8e744c81802.js +17 -0
  277. package/.next/standalone/.next/static/chunks/app/api/v1/agents/route-6fc5f8e744c81802.js +17 -0
  278. package/.next/standalone/.next/static/chunks/app/api/v1/allowed-sites/[hostname]/route-6fc5f8e744c81802.js +17 -0
  279. package/.next/standalone/.next/static/chunks/app/api/v1/allowed-sites/route-6fc5f8e744c81802.js +17 -0
  280. package/.next/standalone/.next/static/chunks/app/api/v1/artifacts/lifecycle/route-6fc5f8e744c81802.js +17 -0
  281. package/.next/standalone/.next/static/chunks/app/api/v1/attachments/files/route-6fc5f8e744c81802.js +17 -0
  282. package/.next/standalone/.next/static/chunks/app/api/v1/attachments/images/route-6fc5f8e744c81802.js +17 -0
  283. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/chats/route-6fc5f8e744c81802.js +17 -0
  284. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/ignores/[remote_jid]/route-6fc5f8e744c81802.js +17 -0
  285. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/ignores/route-6fc5f8e744c81802.js +17 -0
  286. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/lookup/route-6fc5f8e744c81802.js +17 -0
  287. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/pair/route-6fc5f8e744c81802.js +17 -0
  288. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/route-6fc5f8e744c81802.js +17 -0
  289. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/routes/[route_id]/route-6fc5f8e744c81802.js +17 -0
  290. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/routes/route-6fc5f8e744c81802.js +17 -0
  291. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/status/route-6fc5f8e744c81802.js +17 -0
  292. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/kinds/route-6fc5f8e744c81802.js +17 -0
  293. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/route-6fc5f8e744c81802.js +17 -0
  294. package/.next/standalone/.next/static/chunks/app/api/v1/builtin-tools/route-6fc5f8e744c81802.js +17 -0
  295. package/.next/standalone/.next/static/chunks/app/api/v1/config/route-6fc5f8e744c81802.js +17 -0
  296. package/.next/standalone/.next/static/chunks/app/api/v1/credentials/[id]/route-6fc5f8e744c81802.js +17 -0
  297. package/.next/standalone/.next/static/chunks/app/api/v1/credentials/route-6fc5f8e744c81802.js +17 -0
  298. package/.next/standalone/.next/static/chunks/app/api/v1/dashboard/currency/route-6fc5f8e744c81802.js +17 -0
  299. package/.next/standalone/.next/static/chunks/app/api/v1/dashboard/metrics/route-6fc5f8e744c81802.js +17 -0
  300. package/.next/standalone/.next/static/chunks/app/api/v1/dashboard/pricing/route-6fc5f8e744c81802.js +17 -0
  301. package/.next/standalone/.next/static/chunks/app/api/v1/dashboard/pricing-task/route-6fc5f8e744c81802.js +17 -0
  302. package/.next/standalone/.next/static/chunks/app/api/v1/delegations/codex/[job_id]/route-6fc5f8e744c81802.js +17 -0
  303. package/.next/standalone/.next/static/chunks/app/api/v1/documents/search/route-6fc5f8e744c81802.js +17 -0
  304. package/.next/standalone/.next/static/chunks/app/api/v1/documents/settings/route-6fc5f8e744c81802.js +17 -0
  305. package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/[id]/reindex/route-6fc5f8e744c81802.js +17 -0
  306. package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/[id]/route-6fc5f8e744c81802.js +17 -0
  307. package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/route-6fc5f8e744c81802.js +17 -0
  308. package/.next/standalone/.next/static/chunks/app/api/v1/env/route-6fc5f8e744c81802.js +17 -0
  309. package/.next/standalone/.next/static/chunks/app/api/v1/env-sync/allowlist/route-6fc5f8e744c81802.js +17 -0
  310. package/.next/standalone/.next/static/chunks/app/api/v1/env-sync/route-6fc5f8e744c81802.js +17 -0
  311. package/.next/standalone/.next/static/chunks/app/api/v1/events/route-6fc5f8e744c81802.js +17 -0
  312. package/.next/standalone/.next/static/chunks/app/api/v1/events/test/route-6fc5f8e744c81802.js +17 -0
  313. package/.next/standalone/.next/static/chunks/app/api/v1/extension/agents/route-6fc5f8e744c81802.js +17 -0
  314. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/activate/route-6fc5f8e744c81802.js +17 -0
  315. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/foreground/route-6fc5f8e744c81802.js +17 -0
  316. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/history/route-6fc5f8e744c81802.js +17 -0
  317. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/poll/route-6fc5f8e744c81802.js +17 -0
  318. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/progress/route-6fc5f8e744c81802.js +17 -0
  319. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/result/route-6fc5f8e744c81802.js +17 -0
  320. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/retry/route-6fc5f8e744c81802.js +17 -0
  321. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/status/route-6fc5f8e744c81802.js +17 -0
  322. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/tabs/route-6fc5f8e744c81802.js +17 -0
  323. package/.next/standalone/.next/static/chunks/app/api/v1/extension/fill/route-6fc5f8e744c81802.js +17 -0
  324. package/.next/standalone/.next/static/chunks/app/api/v1/extension/refine/route-6fc5f8e744c81802.js +17 -0
  325. package/.next/standalone/.next/static/chunks/app/api/v1/extension/turn/route-6fc5f8e744c81802.js +17 -0
  326. package/.next/standalone/.next/static/chunks/app/api/v1/extensions/route-6fc5f8e744c81802.js +17 -0
  327. package/.next/standalone/.next/static/chunks/app/api/v1/extensions/tools/[name]/config/route-6fc5f8e744c81802.js +17 -0
  328. package/.next/standalone/.next/static/chunks/app/api/v1/extensions/tools/[name]/route-6fc5f8e744c81802.js +17 -0
  329. package/.next/standalone/.next/static/chunks/app/api/v1/extensions/tools/[name]/secrets/route-6fc5f8e744c81802.js +17 -0
  330. package/.next/standalone/.next/static/chunks/app/api/v1/files/[name]/route-6fc5f8e744c81802.js +17 -0
  331. package/.next/standalone/.next/static/chunks/app/api/v1/fs/browse/route-6fc5f8e744c81802.js +17 -0
  332. package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/[id]/route-6fc5f8e744c81802.js +17 -0
  333. package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/default/route-6fc5f8e744c81802.js +17 -0
  334. package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/route-6fc5f8e744c81802.js +17 -0
  335. package/.next/standalone/.next/static/chunks/app/api/v1/health/probes/route-6fc5f8e744c81802.js +17 -0
  336. package/.next/standalone/.next/static/chunks/app/api/v1/health/route-6fc5f8e744c81802.js +17 -0
  337. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/[name]/route-6fc5f8e744c81802.js +17 -0
  338. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/[name]/test/route-6fc5f8e744c81802.js +17 -0
  339. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/callback/route-6fc5f8e744c81802.js +17 -0
  340. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/start/route-6fc5f8e744c81802.js +17 -0
  341. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/status/route-6fc5f8e744c81802.js +17 -0
  342. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/callback/route-6fc5f8e744c81802.js +17 -0
  343. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/start/route-6fc5f8e744c81802.js +17 -0
  344. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/status/route-6fc5f8e744c81802.js +17 -0
  345. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/route-6fc5f8e744c81802.js +17 -0
  346. package/.next/standalone/.next/static/chunks/app/api/v1/lifecycle/adoption/route-6fc5f8e744c81802.js +17 -0
  347. package/.next/standalone/.next/static/chunks/app/api/v1/local-file/route-6fc5f8e744c81802.js +17 -0
  348. package/.next/standalone/.next/static/chunks/app/api/v1/logs/route-6fc5f8e744c81802.js +17 -0
  349. package/.next/standalone/.next/static/chunks/app/api/v1/maps/embed/route-6fc5f8e744c81802.js +17 -0
  350. package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/[name]/route-6fc5f8e744c81802.js +17 -0
  351. package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/registry/route-6fc5f8e744c81802.js +17 -0
  352. package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/route-6fc5f8e744c81802.js +17 -0
  353. package/.next/standalone/.next/static/chunks/app/api/v1/memory/[namespace]/[key]/route-6fc5f8e744c81802.js +17 -0
  354. package/.next/standalone/.next/static/chunks/app/api/v1/memory/policy/route-6fc5f8e744c81802.js +17 -0
  355. package/.next/standalone/.next/static/chunks/app/api/v1/memory/route-6fc5f8e744c81802.js +17 -0
  356. package/.next/standalone/.next/static/chunks/app/api/v1/memory/search/route-6fc5f8e744c81802.js +17 -0
  357. package/.next/standalone/.next/static/chunks/app/api/v1/models/[name]/compact-threads/route-6fc5f8e744c81802.js +17 -0
  358. package/.next/standalone/.next/static/chunks/app/api/v1/models/[name]/route-6fc5f8e744c81802.js +17 -0
  359. package/.next/standalone/.next/static/chunks/app/api/v1/models/route-6fc5f8e744c81802.js +17 -0
  360. package/.next/standalone/.next/static/chunks/app/api/v1/packages/catalog/route-6fc5f8e744c81802.js +17 -0
  361. package/.next/standalone/.next/static/chunks/app/api/v1/packages/defaults/[id]/route-6fc5f8e744c81802.js +17 -0
  362. package/.next/standalone/.next/static/chunks/app/api/v1/packages/install/[id]/route-6fc5f8e744c81802.js +17 -0
  363. package/.next/standalone/.next/static/chunks/app/api/v1/packages/install/route-6fc5f8e744c81802.js +17 -0
  364. package/.next/standalone/.next/static/chunks/app/api/v1/packages/manifests/[name]/enabled/route-6fc5f8e744c81802.js +17 -0
  365. package/.next/standalone/.next/static/chunks/app/api/v1/packages/manifests/[name]/route-6fc5f8e744c81802.js +17 -0
  366. package/.next/standalone/.next/static/chunks/app/api/v1/packages/manifests/route-6fc5f8e744c81802.js +17 -0
  367. package/.next/standalone/.next/static/chunks/app/api/v1/packages/reload/route-6fc5f8e744c81802.js +17 -0
  368. package/.next/standalone/.next/static/chunks/app/api/v1/packages/route-6fc5f8e744c81802.js +17 -0
  369. package/.next/standalone/.next/static/chunks/app/api/v1/page-capture/route-6fc5f8e744c81802.js +17 -0
  370. package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/[id]/approve/route-6fc5f8e744c81802.js +17 -0
  371. package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/[id]/deny/route-6fc5f8e744c81802.js +17 -0
  372. package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/route-6fc5f8e744c81802.js +17 -0
  373. package/.next/standalone/.next/static/chunks/app/api/v1/profile/location/route-6fc5f8e744c81802.js +17 -0
  374. package/.next/standalone/.next/static/chunks/app/api/v1/profile/route-6fc5f8e744c81802.js +17 -0
  375. package/.next/standalone/.next/static/chunks/app/api/v1/providers/[provider]/models/route-6fc5f8e744c81802.js +17 -0
  376. package/.next/standalone/.next/static/chunks/app/api/v1/providers/[provider]/probe/route-6fc5f8e744c81802.js +17 -0
  377. package/.next/standalone/.next/static/chunks/app/api/v1/providers/github-copilot/auth/route-6fc5f8e744c81802.js +17 -0
  378. package/.next/standalone/.next/static/chunks/app/api/v1/providers/route-6fc5f8e744c81802.js +17 -0
  379. package/.next/standalone/.next/static/chunks/app/api/v1/proxy-config/route-6fc5f8e744c81802.js +17 -0
  380. package/.next/standalone/.next/static/chunks/app/api/v1/redaction/init/route-6fc5f8e744c81802.js +17 -0
  381. package/.next/standalone/.next/static/chunks/app/api/v1/redaction/route-6fc5f8e744c81802.js +17 -0
  382. package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/[id]/route-6fc5f8e744c81802.js +17 -0
  383. package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/[id]/run/route-6fc5f8e744c81802.js +17 -0
  384. package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/route-6fc5f8e744c81802.js +17 -0
  385. package/.next/standalone/.next/static/chunks/app/api/v1/security/idle-timeout/route-6fc5f8e744c81802.js +17 -0
  386. package/.next/standalone/.next/static/chunks/app/api/v1/security/pin/route-6fc5f8e744c81802.js +17 -0
  387. package/.next/standalone/.next/static/chunks/app/api/v1/security/state/route-6fc5f8e744c81802.js +17 -0
  388. package/.next/standalone/.next/static/chunks/app/api/v1/security/unlock/route-6fc5f8e744c81802.js +17 -0
  389. package/.next/standalone/.next/static/chunks/app/api/v1/security/verify-pin/route-6fc5f8e744c81802.js +17 -0
  390. package/.next/standalone/.next/static/chunks/app/api/v1/setup/test-key/route-6fc5f8e744c81802.js +17 -0
  391. package/.next/standalone/.next/static/chunks/app/api/v1/skills/[id]/route-6fc5f8e744c81802.js +17 -0
  392. package/.next/standalone/.next/static/chunks/app/api/v1/skills/repos/[id]/route-6fc5f8e744c81802.js +17 -0
  393. package/.next/standalone/.next/static/chunks/app/api/v1/skills/repos/route-6fc5f8e744c81802.js +17 -0
  394. package/.next/standalone/.next/static/chunks/app/api/v1/skills/route-6fc5f8e744c81802.js +17 -0
  395. package/.next/standalone/.next/static/chunks/app/api/v1/system/abort/route-6fc5f8e744c81802.js +17 -0
  396. package/.next/standalone/.next/static/chunks/app/api/v1/system/restart/route-6fc5f8e744c81802.js +17 -0
  397. package/.next/standalone/.next/static/chunks/app/api/v1/tailscale/route-6fc5f8e744c81802.js +17 -0
  398. package/.next/standalone/.next/static/chunks/app/api/v1/tasks/[agent_id]/route-6fc5f8e744c81802.js +17 -0
  399. package/.next/standalone/.next/static/chunks/app/api/v1/tasks/route-6fc5f8e744c81802.js +17 -0
  400. package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/activity/route-6fc5f8e744c81802.js +17 -0
  401. package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/context-pin/route-6fc5f8e744c81802.js +17 -0
  402. package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/route-6fc5f8e744c81802.js +17 -0
  403. package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/run/route-6fc5f8e744c81802.js +17 -0
  404. package/.next/standalone/.next/static/chunks/app/api/v1/threads/route-6fc5f8e744c81802.js +17 -0
  405. package/.next/standalone/.next/static/chunks/app/api/v1/tools/route-6fc5f8e744c81802.js +17 -0
  406. package/.next/standalone/.next/static/chunks/app/api/v1/update/apply/route-6fc5f8e744c81802.js +17 -0
  407. package/.next/standalone/.next/static/chunks/app/api/v1/update/route-6fc5f8e744c81802.js +17 -0
  408. package/.next/standalone/.next/static/chunks/app/api/v1/voice/transcribe/route-6fc5f8e744c81802.js +17 -0
  409. package/.next/standalone/.next/static/chunks/app/api/v1/voice/tts/route-6fc5f8e744c81802.js +17 -0
  410. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/[id]/route-6fc5f8e744c81802.js +17 -0
  411. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/[id]/run/route-6fc5f8e744c81802.js +17 -0
  412. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/reaction-scripts/route-6fc5f8e744c81802.js +17 -0
  413. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/route-6fc5f8e744c81802.js +17 -0
  414. package/.next/standalone/.next/static/chunks/app/manifest.webmanifest/route-6fc5f8e744c81802.js +17 -0
  415. package/.next/standalone/.next/static/chunks/app/{page-7017f07f8a7a083c.js → page-213a623b37226452.js} +1041 -652
  416. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-6fc5f8e744c81802.js +17 -0
  417. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-6fc5f8e744c81802.js +17 -0
  418. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-6fc5f8e744c81802.js +17 -0
  419. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-6fc5f8e744c81802.js +17 -0
  420. package/.next/standalone/.next/static/css/{d80058f0b9b41c09.css → 312542a5725ba0d5.css} +2 -2
  421. package/.next/standalone/docs/adoption/changesets.json +309 -0
  422. package/.next/standalone/lib/skills/builtins/memory-organization/SKILL.md +16 -0
  423. package/.next/standalone/package.json +3 -3
  424. package/CHANGELOG.md +25 -0
  425. package/api/client.ts +9 -0
  426. package/api/types.ts +29 -0
  427. package/app/api/v1/lifecycle/adoption/route.ts +14 -2
  428. package/app/api/v1/models/[name]/compact-threads/route.ts +14 -11
  429. package/app/api/v1/threads/[thread_id]/activity/route.ts +19 -0
  430. package/app/api/v1/threads/[thread_id]/context-pin/route.test.ts +1 -0
  431. package/app/api/v1/threads/[thread_id]/context-pin/route.ts +2 -1
  432. package/app/api/v1/threads/[thread_id]/route.ts +5 -1
  433. package/components/chat/ChatView.tsx +52 -11
  434. package/components/chat/ContextBoundary.test.tsx +68 -1
  435. package/components/chat/ContextBoundary.tsx +92 -13
  436. package/components/chat/MessageList.test.tsx +31 -0
  437. package/components/chat/MessageList.tsx +49 -28
  438. package/components/chat/ToolList.test.tsx +92 -16
  439. package/components/chat/ToolList.tsx +59 -4
  440. package/components/chat/chat-helpers.test.tsx +24 -1
  441. package/components/chat/chat-helpers.ts +47 -4
  442. package/components/chat/useThreadActivity.test.tsx +113 -0
  443. package/components/chat/useThreadActivity.ts +94 -0
  444. package/components/chat/useThreadData.ts +16 -16
  445. package/components/chat/workflow-step-retry.ts +25 -0
  446. package/components/ui/BootScreen.tsx +17 -0
  447. package/components/ui/WorkflowChecklist.tsx +71 -33
  448. package/hooks/useSSE.ts +28 -3
  449. package/lib/agents/compaction-pipeline.test.ts +202 -0
  450. package/lib/agents/compaction-pipeline.ts +483 -0
  451. package/lib/agents/conversation-summary.ts +37 -21
  452. package/lib/agents/prepare/history-window.test.ts +18 -0
  453. package/lib/agents/prepare/history-window.ts +11 -2
  454. package/lib/agents/prepare/request.ts +4 -0
  455. package/lib/agents/prepare/system-prompt.test.ts +39 -0
  456. package/lib/agents/prepare/system-prompt.ts +8 -3
  457. package/lib/agents/prompt-registry.test.ts +5 -140
  458. package/lib/agents/prompt-registry.ts +45 -1
  459. package/lib/agents/prompt-variants.ts +146 -0
  460. package/lib/agents/run-registry.test.ts +22 -0
  461. package/lib/agents/run-registry.ts +29 -0
  462. package/lib/agents/run-thread.retry.test.ts +67 -1
  463. package/lib/agents/run-thread.ts +86 -1
  464. package/lib/agents/thread-activity.test.ts +31 -0
  465. package/lib/agents/thread-activity.ts +27 -0
  466. package/lib/agents/thread-compaction-state.test.ts +82 -0
  467. package/lib/agents/thread-compaction-state.ts +121 -0
  468. package/lib/agents/thread-compaction.test.ts +83 -4
  469. package/lib/agents/thread-compaction.ts +34 -11
  470. package/lib/agents/warm-summary-background.test.ts +219 -5
  471. package/lib/agents/warm-summary-background.ts +325 -142
  472. package/lib/agents/warm-topics.test.ts +37 -0
  473. package/lib/agents/warm-topics.ts +297 -0
  474. package/lib/agents/workflow-step-retry.test.ts +96 -0
  475. package/lib/agents/workflow-step-retry.ts +216 -0
  476. package/lib/api/browser-control.ts +0 -3
  477. package/lib/db/migrations.ts +5 -0
  478. package/lib/env/config.ts +2 -0
  479. package/lib/env/schema.ts +12 -0
  480. package/lib/lifecycle/changeset-build.test.ts +93 -0
  481. package/lib/lifecycle/changeset-build.ts +210 -0
  482. package/lib/lifecycle/changesets.test.ts +101 -0
  483. package/lib/lifecycle/changesets.ts +166 -0
  484. package/lib/lifecycle/surface-collect.test.ts +88 -0
  485. package/lib/lifecycle/surface-collect.ts +64 -0
  486. package/lib/lifecycle/surface-snapshot.test.ts +104 -0
  487. package/lib/lifecycle/surface-snapshot.ts +210 -0
  488. package/lib/memory/record.ts +0 -2
  489. package/lib/providers/external.ts +0 -2
  490. package/lib/skills/builtins/memory-organization/SKILL.md +16 -0
  491. package/lib/stores/threads.test.ts +9 -0
  492. package/lib/stores/threads.ts +21 -11
  493. package/lib/stores/version-adoption.test.ts +96 -0
  494. package/lib/stores/version-adoption.ts +239 -26
  495. package/lib/stores/workflow-progress.ts +3 -0
  496. package/lib/tools/communications/ms-todo.ts +0 -7
  497. package/lib/tools/general/memory.ts +1 -1
  498. package/lib/tools/general/workflow-progress.ts +2 -0
  499. package/lib/tools/runtime/catalog.ts +1 -25
  500. package/lib/triggers/registry.ts +0 -4
  501. package/package.json +3 -3
  502. package/scripts/install-to-system.ps1 +39 -11
  503. package/scripts/install-to-system.sh +37 -3
  504. package/.next/standalone/.next/server/chunks/3979.js +0 -581
  505. package/.next/standalone/.next/server/chunks/5936.js +0 -594
  506. package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/display-filters/route-36cb8b428b38b26a.js +0 -17
  507. package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/route-36cb8b428b38b26a.js +0 -17
  508. package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/thread/route-36cb8b428b38b26a.js +0 -17
  509. package/.next/standalone/.next/static/chunks/app/api/v1/agents/route-36cb8b428b38b26a.js +0 -17
  510. package/.next/standalone/.next/static/chunks/app/api/v1/allowed-sites/[hostname]/route-36cb8b428b38b26a.js +0 -17
  511. package/.next/standalone/.next/static/chunks/app/api/v1/allowed-sites/route-36cb8b428b38b26a.js +0 -17
  512. package/.next/standalone/.next/static/chunks/app/api/v1/artifacts/lifecycle/route-36cb8b428b38b26a.js +0 -17
  513. package/.next/standalone/.next/static/chunks/app/api/v1/attachments/files/route-36cb8b428b38b26a.js +0 -17
  514. package/.next/standalone/.next/static/chunks/app/api/v1/attachments/images/route-36cb8b428b38b26a.js +0 -17
  515. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/chats/route-36cb8b428b38b26a.js +0 -17
  516. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/ignores/[remote_jid]/route-36cb8b428b38b26a.js +0 -17
  517. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/ignores/route-36cb8b428b38b26a.js +0 -17
  518. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/lookup/route-36cb8b428b38b26a.js +0 -17
  519. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/pair/route-36cb8b428b38b26a.js +0 -17
  520. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/route-36cb8b428b38b26a.js +0 -17
  521. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/routes/[route_id]/route-36cb8b428b38b26a.js +0 -17
  522. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/routes/route-36cb8b428b38b26a.js +0 -17
  523. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/status/route-36cb8b428b38b26a.js +0 -17
  524. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/kinds/route-36cb8b428b38b26a.js +0 -17
  525. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/route-36cb8b428b38b26a.js +0 -17
  526. package/.next/standalone/.next/static/chunks/app/api/v1/builtin-tools/route-36cb8b428b38b26a.js +0 -17
  527. package/.next/standalone/.next/static/chunks/app/api/v1/config/route-36cb8b428b38b26a.js +0 -17
  528. package/.next/standalone/.next/static/chunks/app/api/v1/credentials/[id]/route-36cb8b428b38b26a.js +0 -17
  529. package/.next/standalone/.next/static/chunks/app/api/v1/credentials/route-36cb8b428b38b26a.js +0 -17
  530. package/.next/standalone/.next/static/chunks/app/api/v1/dashboard/currency/route-36cb8b428b38b26a.js +0 -17
  531. package/.next/standalone/.next/static/chunks/app/api/v1/dashboard/metrics/route-36cb8b428b38b26a.js +0 -17
  532. package/.next/standalone/.next/static/chunks/app/api/v1/dashboard/pricing/route-36cb8b428b38b26a.js +0 -17
  533. package/.next/standalone/.next/static/chunks/app/api/v1/dashboard/pricing-task/route-36cb8b428b38b26a.js +0 -17
  534. package/.next/standalone/.next/static/chunks/app/api/v1/delegations/codex/[job_id]/route-36cb8b428b38b26a.js +0 -17
  535. package/.next/standalone/.next/static/chunks/app/api/v1/documents/search/route-36cb8b428b38b26a.js +0 -17
  536. package/.next/standalone/.next/static/chunks/app/api/v1/documents/settings/route-36cb8b428b38b26a.js +0 -17
  537. package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/[id]/reindex/route-36cb8b428b38b26a.js +0 -17
  538. package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/[id]/route-36cb8b428b38b26a.js +0 -17
  539. package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/route-36cb8b428b38b26a.js +0 -17
  540. package/.next/standalone/.next/static/chunks/app/api/v1/env/route-36cb8b428b38b26a.js +0 -17
  541. package/.next/standalone/.next/static/chunks/app/api/v1/env-sync/allowlist/route-36cb8b428b38b26a.js +0 -17
  542. package/.next/standalone/.next/static/chunks/app/api/v1/env-sync/route-36cb8b428b38b26a.js +0 -17
  543. package/.next/standalone/.next/static/chunks/app/api/v1/events/route-36cb8b428b38b26a.js +0 -17
  544. package/.next/standalone/.next/static/chunks/app/api/v1/events/test/route-36cb8b428b38b26a.js +0 -17
  545. package/.next/standalone/.next/static/chunks/app/api/v1/extension/agents/route-36cb8b428b38b26a.js +0 -17
  546. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/activate/route-36cb8b428b38b26a.js +0 -17
  547. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/foreground/route-36cb8b428b38b26a.js +0 -17
  548. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/history/route-36cb8b428b38b26a.js +0 -17
  549. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/poll/route-36cb8b428b38b26a.js +0 -17
  550. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/progress/route-36cb8b428b38b26a.js +0 -17
  551. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/result/route-36cb8b428b38b26a.js +0 -17
  552. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/retry/route-36cb8b428b38b26a.js +0 -17
  553. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/status/route-36cb8b428b38b26a.js +0 -17
  554. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/tabs/route-36cb8b428b38b26a.js +0 -17
  555. package/.next/standalone/.next/static/chunks/app/api/v1/extension/fill/route-36cb8b428b38b26a.js +0 -17
  556. package/.next/standalone/.next/static/chunks/app/api/v1/extension/refine/route-36cb8b428b38b26a.js +0 -17
  557. package/.next/standalone/.next/static/chunks/app/api/v1/extension/turn/route-36cb8b428b38b26a.js +0 -17
  558. package/.next/standalone/.next/static/chunks/app/api/v1/extensions/route-36cb8b428b38b26a.js +0 -17
  559. package/.next/standalone/.next/static/chunks/app/api/v1/extensions/tools/[name]/config/route-36cb8b428b38b26a.js +0 -17
  560. package/.next/standalone/.next/static/chunks/app/api/v1/extensions/tools/[name]/route-36cb8b428b38b26a.js +0 -17
  561. package/.next/standalone/.next/static/chunks/app/api/v1/extensions/tools/[name]/secrets/route-36cb8b428b38b26a.js +0 -17
  562. package/.next/standalone/.next/static/chunks/app/api/v1/files/[name]/route-36cb8b428b38b26a.js +0 -17
  563. package/.next/standalone/.next/static/chunks/app/api/v1/fs/browse/route-36cb8b428b38b26a.js +0 -17
  564. package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/[id]/route-36cb8b428b38b26a.js +0 -17
  565. package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/default/route-36cb8b428b38b26a.js +0 -17
  566. package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/route-36cb8b428b38b26a.js +0 -17
  567. package/.next/standalone/.next/static/chunks/app/api/v1/health/probes/route-36cb8b428b38b26a.js +0 -17
  568. package/.next/standalone/.next/static/chunks/app/api/v1/health/route-36cb8b428b38b26a.js +0 -17
  569. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/[name]/route-36cb8b428b38b26a.js +0 -17
  570. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/[name]/test/route-36cb8b428b38b26a.js +0 -17
  571. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/callback/route-36cb8b428b38b26a.js +0 -17
  572. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/start/route-36cb8b428b38b26a.js +0 -17
  573. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/status/route-36cb8b428b38b26a.js +0 -17
  574. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/callback/route-36cb8b428b38b26a.js +0 -17
  575. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/start/route-36cb8b428b38b26a.js +0 -17
  576. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/status/route-36cb8b428b38b26a.js +0 -17
  577. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/route-36cb8b428b38b26a.js +0 -17
  578. package/.next/standalone/.next/static/chunks/app/api/v1/lifecycle/adoption/route-36cb8b428b38b26a.js +0 -17
  579. package/.next/standalone/.next/static/chunks/app/api/v1/local-file/route-36cb8b428b38b26a.js +0 -17
  580. package/.next/standalone/.next/static/chunks/app/api/v1/logs/route-36cb8b428b38b26a.js +0 -17
  581. package/.next/standalone/.next/static/chunks/app/api/v1/maps/embed/route-36cb8b428b38b26a.js +0 -17
  582. package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/[name]/route-36cb8b428b38b26a.js +0 -17
  583. package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/registry/route-36cb8b428b38b26a.js +0 -17
  584. package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/route-36cb8b428b38b26a.js +0 -17
  585. package/.next/standalone/.next/static/chunks/app/api/v1/memory/[namespace]/[key]/route-36cb8b428b38b26a.js +0 -17
  586. package/.next/standalone/.next/static/chunks/app/api/v1/memory/policy/route-36cb8b428b38b26a.js +0 -17
  587. package/.next/standalone/.next/static/chunks/app/api/v1/memory/route-36cb8b428b38b26a.js +0 -17
  588. package/.next/standalone/.next/static/chunks/app/api/v1/memory/search/route-36cb8b428b38b26a.js +0 -17
  589. package/.next/standalone/.next/static/chunks/app/api/v1/models/[name]/compact-threads/route-36cb8b428b38b26a.js +0 -17
  590. package/.next/standalone/.next/static/chunks/app/api/v1/models/[name]/route-36cb8b428b38b26a.js +0 -17
  591. package/.next/standalone/.next/static/chunks/app/api/v1/models/route-36cb8b428b38b26a.js +0 -17
  592. package/.next/standalone/.next/static/chunks/app/api/v1/packages/catalog/route-36cb8b428b38b26a.js +0 -17
  593. package/.next/standalone/.next/static/chunks/app/api/v1/packages/defaults/[id]/route-36cb8b428b38b26a.js +0 -17
  594. package/.next/standalone/.next/static/chunks/app/api/v1/packages/install/[id]/route-36cb8b428b38b26a.js +0 -17
  595. package/.next/standalone/.next/static/chunks/app/api/v1/packages/install/route-36cb8b428b38b26a.js +0 -17
  596. package/.next/standalone/.next/static/chunks/app/api/v1/packages/manifests/[name]/enabled/route-36cb8b428b38b26a.js +0 -17
  597. package/.next/standalone/.next/static/chunks/app/api/v1/packages/manifests/[name]/route-36cb8b428b38b26a.js +0 -17
  598. package/.next/standalone/.next/static/chunks/app/api/v1/packages/manifests/route-36cb8b428b38b26a.js +0 -17
  599. package/.next/standalone/.next/static/chunks/app/api/v1/packages/reload/route-36cb8b428b38b26a.js +0 -17
  600. package/.next/standalone/.next/static/chunks/app/api/v1/packages/route-36cb8b428b38b26a.js +0 -17
  601. package/.next/standalone/.next/static/chunks/app/api/v1/page-capture/route-36cb8b428b38b26a.js +0 -17
  602. package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/[id]/approve/route-36cb8b428b38b26a.js +0 -17
  603. package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/[id]/deny/route-36cb8b428b38b26a.js +0 -17
  604. package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/route-36cb8b428b38b26a.js +0 -17
  605. package/.next/standalone/.next/static/chunks/app/api/v1/profile/location/route-36cb8b428b38b26a.js +0 -17
  606. package/.next/standalone/.next/static/chunks/app/api/v1/profile/route-36cb8b428b38b26a.js +0 -17
  607. package/.next/standalone/.next/static/chunks/app/api/v1/providers/[provider]/models/route-36cb8b428b38b26a.js +0 -17
  608. package/.next/standalone/.next/static/chunks/app/api/v1/providers/[provider]/probe/route-36cb8b428b38b26a.js +0 -17
  609. package/.next/standalone/.next/static/chunks/app/api/v1/providers/github-copilot/auth/route-36cb8b428b38b26a.js +0 -17
  610. package/.next/standalone/.next/static/chunks/app/api/v1/providers/route-36cb8b428b38b26a.js +0 -17
  611. package/.next/standalone/.next/static/chunks/app/api/v1/proxy-config/route-36cb8b428b38b26a.js +0 -17
  612. package/.next/standalone/.next/static/chunks/app/api/v1/redaction/init/route-36cb8b428b38b26a.js +0 -17
  613. package/.next/standalone/.next/static/chunks/app/api/v1/redaction/route-36cb8b428b38b26a.js +0 -17
  614. package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/[id]/route-36cb8b428b38b26a.js +0 -17
  615. package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/[id]/run/route-36cb8b428b38b26a.js +0 -17
  616. package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/route-36cb8b428b38b26a.js +0 -17
  617. package/.next/standalone/.next/static/chunks/app/api/v1/security/idle-timeout/route-36cb8b428b38b26a.js +0 -17
  618. package/.next/standalone/.next/static/chunks/app/api/v1/security/pin/route-36cb8b428b38b26a.js +0 -17
  619. package/.next/standalone/.next/static/chunks/app/api/v1/security/state/route-36cb8b428b38b26a.js +0 -17
  620. package/.next/standalone/.next/static/chunks/app/api/v1/security/unlock/route-36cb8b428b38b26a.js +0 -17
  621. package/.next/standalone/.next/static/chunks/app/api/v1/security/verify-pin/route-36cb8b428b38b26a.js +0 -17
  622. package/.next/standalone/.next/static/chunks/app/api/v1/setup/test-key/route-36cb8b428b38b26a.js +0 -17
  623. package/.next/standalone/.next/static/chunks/app/api/v1/skills/[id]/route-36cb8b428b38b26a.js +0 -17
  624. package/.next/standalone/.next/static/chunks/app/api/v1/skills/repos/[id]/route-36cb8b428b38b26a.js +0 -17
  625. package/.next/standalone/.next/static/chunks/app/api/v1/skills/repos/route-36cb8b428b38b26a.js +0 -17
  626. package/.next/standalone/.next/static/chunks/app/api/v1/skills/route-36cb8b428b38b26a.js +0 -17
  627. package/.next/standalone/.next/static/chunks/app/api/v1/system/abort/route-36cb8b428b38b26a.js +0 -17
  628. package/.next/standalone/.next/static/chunks/app/api/v1/system/restart/route-36cb8b428b38b26a.js +0 -17
  629. package/.next/standalone/.next/static/chunks/app/api/v1/tailscale/route-36cb8b428b38b26a.js +0 -17
  630. package/.next/standalone/.next/static/chunks/app/api/v1/tasks/[agent_id]/route-36cb8b428b38b26a.js +0 -17
  631. package/.next/standalone/.next/static/chunks/app/api/v1/tasks/route-36cb8b428b38b26a.js +0 -17
  632. package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/context-pin/route-36cb8b428b38b26a.js +0 -17
  633. package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/route-36cb8b428b38b26a.js +0 -17
  634. package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/run/route-36cb8b428b38b26a.js +0 -17
  635. package/.next/standalone/.next/static/chunks/app/api/v1/threads/route-36cb8b428b38b26a.js +0 -17
  636. package/.next/standalone/.next/static/chunks/app/api/v1/tools/route-36cb8b428b38b26a.js +0 -17
  637. package/.next/standalone/.next/static/chunks/app/api/v1/update/apply/route-36cb8b428b38b26a.js +0 -17
  638. package/.next/standalone/.next/static/chunks/app/api/v1/update/route-36cb8b428b38b26a.js +0 -17
  639. package/.next/standalone/.next/static/chunks/app/api/v1/voice/transcribe/route-36cb8b428b38b26a.js +0 -17
  640. package/.next/standalone/.next/static/chunks/app/api/v1/voice/tts/route-36cb8b428b38b26a.js +0 -17
  641. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/[id]/route-36cb8b428b38b26a.js +0 -17
  642. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/[id]/run/route-36cb8b428b38b26a.js +0 -17
  643. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/reaction-scripts/route-36cb8b428b38b26a.js +0 -17
  644. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/route-36cb8b428b38b26a.js +0 -17
  645. package/.next/standalone/.next/static/chunks/app/manifest.webmanifest/route-36cb8b428b38b26a.js +0 -17
  646. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-36cb8b428b38b26a.js +0 -17
  647. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-36cb8b428b38b26a.js +0 -17
  648. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-36cb8b428b38b26a.js +0 -17
  649. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-36cb8b428b38b26a.js +0 -17
  650. /package/.next/standalone/.next/static/{NUrC9xax1sp1Q70nlFqS6 → bMRK5y3ruT7c3WtBfCQOG}/_buildManifest.js +0 -0
  651. /package/.next/standalone/.next/static/{NUrC9xax1sp1Q70nlFqS6 → bMRK5y3ruT7c3WtBfCQOG}/_ssgManifest.js +0 -0
@@ -74,147 +74,601 @@ module.exports = require("next/dist/server/app-render/after-task-async-storage.e
74
74
 
75
75
  /***/ }),
76
76
 
77
- /***/ 8128:
78
- /***/ ((module) => {
79
-
80
- module.exports = require("next/dist/server/runtime-reacts.external.js");
81
-
82
- /***/ }),
83
-
84
- /***/ 9956:
85
- /***/ ((module) => {
86
-
87
- module.exports = require("undici");
88
-
89
- /***/ }),
90
-
91
- /***/ 10846:
92
- /***/ ((module) => {
93
-
94
- module.exports = require("next/dist/compiled/next-server/app-page.runtime.prod.js");
95
-
96
- /***/ }),
97
-
98
- /***/ 12412:
99
- /***/ ((module) => {
100
-
101
- module.exports = require("assert");
102
-
103
- /***/ }),
104
-
105
- /***/ 16602:
106
- /***/ ((module) => {
107
-
108
- module.exports = import("@whiskeysockets/baileys");;
109
-
110
- /***/ }),
111
-
112
- /***/ 16698:
113
- /***/ ((module) => {
114
-
115
- module.exports = require("node:async_hooks");
116
-
117
- /***/ }),
118
-
119
- /***/ 19121:
120
- /***/ ((module) => {
121
-
122
- module.exports = require("next/dist/server/app-render/action-async-storage.external.js");
123
-
124
- /***/ }),
125
-
126
- /***/ 27910:
127
- /***/ ((module) => {
128
-
129
- module.exports = require("stream");
130
-
131
- /***/ }),
132
-
133
- /***/ 28354:
134
- /***/ ((module) => {
135
-
136
- module.exports = require("util");
137
-
138
- /***/ }),
139
-
140
- /***/ 29021:
141
- /***/ ((module) => {
142
-
143
- module.exports = require("fs");
144
-
145
- /***/ }),
146
-
147
- /***/ 29294:
148
- /***/ ((module) => {
149
-
150
- module.exports = require("next/dist/server/app-render/work-async-storage.external.js");
77
+ /***/ 3979:
78
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
151
79
 
152
- /***/ }),
153
80
 
154
- /***/ 31421:
155
- /***/ ((module) => {
81
+ // EXPORTS
82
+ __webpack_require__.d(__webpack_exports__, {
83
+ AX: () => (/* binding */ getBridgeRuntimeStatus),
84
+ HQ: () => (/* binding */ isBridgeRunning),
85
+ FN: () => (/* binding */ listBridgeChats),
86
+ qM: () => (/* binding */ lookupBridgeChat),
87
+ s: () => (/* binding */ removeBridgeAuth),
88
+ V_: () => (/* binding */ repairBridge),
89
+ kn: () => (/* binding */ startAllBridges),
90
+ c0: () => (/* binding */ startBridge),
91
+ aq: () => (/* binding */ stopBridge)
92
+ });
156
93
 
157
- module.exports = require("node:child_process");
94
+ // UNUSED EXPORTS: restartBridge, stopAllBridges
95
+
96
+ // EXTERNAL MODULE: ./lib/stores/bridges.ts
97
+ var bridges = __webpack_require__(78361);
98
+ // EXTERNAL MODULE: ./lib/notifications/bus.ts
99
+ var bus = __webpack_require__(76445);
100
+ // EXTERNAL MODULE: ./lib/utils/global-state.ts
101
+ var global_state = __webpack_require__(15559);
102
+ // EXTERNAL MODULE: ./lib/stores/threads.ts
103
+ var threads = __webpack_require__(83042);
104
+ // EXTERNAL MODULE: ./lib/stores/agent-configs.ts
105
+ var agent_configs = __webpack_require__(41720);
106
+ // EXTERNAL MODULE: ./lib/agents/agent-turn.ts
107
+ var agent_turn = __webpack_require__(62032);
108
+ ;// ./lib/bridges/router.ts
158
109
 
159
- /***/ }),
110
+ /**
111
+ * Resolve which agent should handle an inbound message on (bridge, remote_jid).
112
+ * 0) Chat is on the ignore list → null (message dropped before any agent
113
+ * thread, memory write, or tool call runs — the "listen to everything
114
+ * except these chats" primitive).
115
+ * 1) Exact route match on (bridge_id, remote_jid)
116
+ * 2) Bridge-level catch-all route (`remote_jid='*'`) when present
117
+ * 3) null (dispatcher drops the message silently)
118
+ *
119
+ * Catch-all lets one agent handle all otherwise-unrouted chats on a bridge.
120
+ * This is especially useful for "triage" or "observer" agents. The ignore
121
+ * list is checked FIRST so it wins over both explicit routes and the
122
+ * catch-all — deleting an ignore entry is how you "resume listening".
123
+ */ function resolveRoute(bridge_id, remote_jid) {
124
+ if ((0,bridges/* isIgnored */.pi)(bridge_id, remote_jid)) return null;
125
+ return (0,bridges/* findRoute */.$6)(bridge_id, remote_jid) ?? (0,bridges/* findRoute */.$6)(bridge_id, "*");
126
+ }
160
127
 
161
- /***/ 33873:
162
- /***/ ((module) => {
128
+ ;// ./lib/bridges/message-role.ts
129
+ /**
130
+ * Cross-adapter framing for bridge inbound messages.
131
+ *
132
+ * Bridge conversations are inherently multi-party: the paired user, one or
133
+ * more counterparts (1:1 partner or group members), and the agent that's
134
+ * observing/assisting. Without role framing, the LLM tends to read every
135
+ * inbound message as a direct command — even when the message was sent by
136
+ * the user's chat partner, who has no idea an agent is in the loop.
137
+ *
138
+ * This module is the single source of truth for that framing. Every bridge
139
+ * adapter (WhatsApp today; Telegram/Slack/Discord/email tomorrow) populates
140
+ * `InboundMessage.role` with one of these values, and the dispatcher feeds
141
+ * the message through `formatBridgePrompt` to produce the prefix the agent
142
+ * sees. Adding a new adapter is a matter of mapping its platform-specific
143
+ * "who sent this" signal onto `MessageRole`; the framing code does not need
144
+ * to change.
145
+ */ /**
146
+ * Who sent the message from the agent's perspective.
147
+ *
148
+ * - `user`: the paired account holder themselves — typed on their phone,
149
+ * in their browser, etc. The agent treats these as the user's own
150
+ * reaction/input to the conversation. Useful as an intent signal but
151
+ * NOT a direct command to the agent (the user is talking to the
152
+ * counterpart, not the agent).
153
+ *
154
+ * - `counterpart`: another participant in the chat — 1:1 partner in a DM,
155
+ * or another member in a group chat. The agent treats these as
156
+ * conversation context the user has not yet reacted to. Not a request
157
+ * directed at the agent.
158
+ *
159
+ * - `agent`: the agent's own prior output, surfaced inbound when the
160
+ * adapter cannot suppress its echo (rare). Adapters with reliable
161
+ * echo-filtering (e.g. WhatsApp's `sentIdsSet`) should never emit this
162
+ * value; it exists for adapters where deduplication is best-effort.
163
+ */ /**
164
+ * Build the prompt prefix the agent receives for one bridge-inbound message.
165
+ *
166
+ * Output shape:
167
+ *
168
+ * <one-line semantic note framing the role>
169
+ *
170
+ * [bridge:<id>]
171
+ * [chat_id:<id>]
172
+ * [chat_name:<label>]
173
+ * [chat_type:dm|group]
174
+ * [message_role:user|counterpart|agent]
175
+ * [sender_id:<id>]
176
+ * [sender_name:<label>]
177
+ * ([group_name:<label>] [participant_id:<id>] [participant_name:<label>] for groups)
178
+ *
179
+ * <raw text>
180
+ *
181
+ * The metadata block is keyed-tag for parseability; the leading note is
182
+ * prose so the LLM has an explicit framing without having to learn the
183
+ * convention. Both are stable across adapters.
184
+ */ function formatBridgePrompt(input) {
185
+ const note = roleNote(input.role, input.is_group, input.silent === true, input.event);
186
+ const lines = [
187
+ `[bridge:${input.bridge_id}]`,
188
+ `[chat_id:${input.chat_id}]`,
189
+ `[chat_name:${input.chat_name}]`,
190
+ `[chat_type:${input.is_group ? "group" : "dm"}]`,
191
+ `[message_role:${input.role}]`,
192
+ `[sender_id:${input.sender_id}]`,
193
+ `[sender_name:${input.sender_name}]`
194
+ ];
195
+ if (input.event) {
196
+ lines.push(`[event_type:${input.event.type}]`);
197
+ lines.push(`[event_subtype:${input.event.subtype}]`);
198
+ }
199
+ if (input.is_group) {
200
+ lines.push(`[group_name:${input.chat_name}]`);
201
+ lines.push(`[participant_id:${input.sender_id}]`);
202
+ lines.push(`[participant_name:${input.sender_name}]`);
203
+ }
204
+ return `${note}\n\n${lines.join("\n")}\n\n${input.text}`;
205
+ }
206
+ // Parses bridge prompt envelopes rendered by formatBridgePrompt().
207
+ // Back-compat: also accepts legacy keys (chat_jid/sender_jid) and optional
208
+ // prose preface before the [bridge:...] metadata block.
209
+ function parseBridgePrompt(raw) {
210
+ const start = raw.indexOf("[bridge:");
211
+ if (start < 0) return null;
212
+ const src = raw.slice(start);
213
+ const headers = {};
214
+ const lines = src.split("\n");
215
+ let i = 0;
216
+ for(; i < lines.length; i++){
217
+ const line = lines[i];
218
+ if (line === "") {
219
+ i++;
220
+ break;
221
+ }
222
+ const m = /^\[([a-z_]+):([\s\S]*)\]$/.exec(line);
223
+ if (!m) return null;
224
+ headers[m[1]] = m[2];
225
+ }
226
+ const chatId = headers.chat_id || headers.chat_jid;
227
+ const senderId = headers.sender_id || headers.sender_jid || chatId;
228
+ if (!headers.bridge || !chatId || !headers.chat_type) return null;
229
+ return {
230
+ bridgeId: headers.bridge,
231
+ chatJid: chatId,
232
+ chatName: headers.chat_name || chatId,
233
+ isGroup: headers.chat_type === "group",
234
+ senderJid: senderId,
235
+ senderName: headers.sender_name || senderId || "Unknown",
236
+ body: lines.slice(i).join("\n").trimEnd()
237
+ };
238
+ }
239
+ function roleNote(role, isGroup, silent, event) {
240
+ if (event) {
241
+ const evt = event.type === "group_profile_update" ? "group profile/settings update" : "group participant update";
242
+ return `The payload below is a ${evt} (${event.subtype}) emitted by the platform, not a normal chat message typed by a participant. ` + "Use it as conversation state/context. Do not assume someone is directly addressing you unless your instructions explicitly require replying to system events.";
243
+ }
244
+ if (silent) {
245
+ // Observer mode overrides the per-role framing: the agent is forbidden
246
+ // from speaking on the chat regardless of who sent the inbound message.
247
+ // It may still use the event as context and take non-chat actions that
248
+ // its normal instructions require.
249
+ if (role === "agent") {
250
+ return "The message below is your own prior output, surfaced again because the bridge adapter could not suppress its echo. Use it only as a record of what you previously said — do not respond to it.";
251
+ }
252
+ return "Silent / observer mode is enabled for this route. You are standing on the paired user's side and listening to the chat for context, memory, risk, or tasks that matter to the paired user's instructions. " + "Do not write to the chat, draft a chat reply, imitate a participant, or answer the sender conversationally. " + "Act only through allowed non-chat tools or internal state when your normal instructions require it. " + "Most observed messages need no visible response: if there is no important internal note, risk, or user-actionable item for the paired user inside Jarela, reply with exactly the single token NO_REPLY and nothing else.";
253
+ }
254
+ switch(role){
255
+ case "user":
256
+ return "The paired user themselves sent the message below in this conversation. Treat it as the user's own reaction/input to the prior chat — they are speaking to the other party, not directly to you. Use it to update your understanding of the user's intent.";
257
+ case "counterpart":
258
+ return isGroup ? "The message below was sent by another member of this group chat, addressed to the paired user. Respond on the user's behalf, in their voice, following your agent instructions and persona — do not introduce yourself as an assistant or break character. If your instructions tell you to stay silent or escalate to the user, do that instead." : "The message below was sent by the user's counterpart in this 1:1 chat, addressed to the paired user. Respond on the user's behalf, in their voice, following your agent instructions and persona — do not introduce yourself as an assistant or break character. If your instructions tell you to stay silent or escalate to the user, do that instead.";
259
+ case "agent":
260
+ return "The message below is your own prior output, surfaced again because the bridge adapter could not suppress its echo. Use it only as a record of what you previously said — do not respond to it.";
261
+ }
262
+ }
163
263
 
164
- module.exports = require("path");
264
+ // EXTERNAL MODULE: ./lib/utils/error.ts
265
+ var error = __webpack_require__(22032);
266
+ // EXTERNAL MODULE: ./lib/agents/run-queue.ts
267
+ var run_queue = __webpack_require__(3944);
268
+ // EXTERNAL MODULE: ./lib/stores/automation-activity.ts
269
+ var automation_activity = __webpack_require__(26316);
270
+ ;// ./lib/bridges/dispatcher.ts
165
271
 
166
- /***/ }),
167
272
 
168
- /***/ 37067:
169
- /***/ ((module) => {
170
273
 
171
- module.exports = require("node:http");
172
274
 
173
- /***/ }),
174
275
 
175
- /***/ 38522:
176
- /***/ ((module) => {
177
276
 
178
- module.exports = require("node:zlib");
179
277
 
180
- /***/ }),
181
278
 
182
- /***/ 40610:
183
- /***/ ((module) => {
184
279
 
185
- module.exports = require("node:dns");
186
280
 
187
- /***/ }),
281
+ /**
282
+ * Handle one inbound message from a bridge adapter:
283
+ * 1. Resolve the chat → agent route. Unrouted → publish an advisory
284
+ * event and drop. No thread created, no reply sent.
285
+ * 2. Use `getOrCreateAgentThread(agent_id)` (one-thread-per-agent
286
+ * invariant — `UNIQUE(agent_id)` on bridge_routes ensures no chat
287
+ * interleaving).
288
+ * 3. Drive the agent via the canonical `runAgentTurn` helper used by
289
+ * every external context turn.
290
+ * 4. Persist the assistant message and send the reply back through the
291
+ * adapter on the originating channel.
292
+ *
293
+ * Top-level try/catch — adapter callbacks must never throw into the Baileys
294
+ * socket event handler (would tear down the WS).
295
+ */ async function handleInboundMessage(adapter, msg) {
296
+ try {
297
+ const route = resolveRoute(adapter.bridge_id, msg.remote_jid);
298
+ if (!route) {
299
+ // Unrouted chats are silently dropped. We intentionally do NOT publish
300
+ // a notification here — the user already declared "this chat isn't
301
+ // monitored" by not configuring a route, so popping a toast for every
302
+ // inbound message in an active group would be noise. The console log
303
+ // remains for debugging; the chat picker in BridgeEditor still shows
304
+ // observed chats so a route can be added on demand.
305
+ console.log(`[bridge ${adapter.bridge_id}] dropped: no route for ${msg.remote_jid} (${msg.push_name ?? "?"})`);
306
+ return;
307
+ }
308
+ const agentId = route.agent_id;
309
+ const agent = (0,agent_configs/* getAgentConfig */.mJ)(agentId);
310
+ if (!agent) {
311
+ console.warn(`[bridge ${adapter.bridge_id}] route points at missing agent ${agentId}, dropping`);
312
+ return;
313
+ }
314
+ const thread = (0,threads/* getOrCreateAgentThread */.xH)(agentId);
315
+ // Stamp bridge/chat provenance + sender role onto every inbound prompt.
316
+ // Role framing (user / counterpart / agent) is shared across every
317
+ // bridge adapter via `formatBridgePrompt` — see lib/bridges/message-role.ts.
318
+ const chatName = msg.chat_name ?? msg.push_name ?? "unknown";
319
+ const senderJid = msg.sender_jid ?? msg.participant_jid ?? msg.remote_jid;
320
+ const senderName = msg.sender_name ?? msg.push_name ?? senderJid;
321
+ const silent = route.silent_mode === 1;
322
+ const willReply = !silent && msg.role === route.respond_to;
323
+ const activity = (0,automation_activity/* createAutomationActivity */.P2)({
324
+ threadId: thread.thread_id,
325
+ sourceKind: "bridge",
326
+ sourceId: `${adapter.bridge_id}:${msg.remote_jid}`,
327
+ label: `Message from ${senderName}`,
328
+ state: "checking",
329
+ detail: msg.text
330
+ });
331
+ const publishActivity = ()=>{
332
+ (0,bus/* publish */.mk)({
333
+ type: "automation_activity",
334
+ thread_id: thread.thread_id,
335
+ agent_id: agentId,
336
+ ts: Date.now()
337
+ });
338
+ };
339
+ publishActivity();
340
+ const promptText = formatBridgePrompt({
341
+ bridge_id: adapter.bridge_id,
342
+ chat_id: msg.remote_jid,
343
+ chat_name: chatName,
344
+ is_group: msg.is_group,
345
+ role: msg.role,
346
+ sender_id: senderJid,
347
+ sender_name: senderName,
348
+ text: msg.text,
349
+ silent,
350
+ event: msg.event
351
+ });
352
+ const bridgeConversation = {
353
+ key: `${adapter.bridge_id}:${msg.remote_jid}`,
354
+ bridge_id: adapter.bridge_id,
355
+ chat_id: msg.remote_jid
356
+ };
357
+ // Keep typing outside the queue so users still see "thinking" while
358
+ // waiting behind other queued turns for the same thread.
359
+ let typingActive = willReply;
360
+ if (willReply) {
361
+ void adapter.sendTyping(msg.remote_jid, true).catch(()=>{});
362
+ }
363
+ const typingTimer = setInterval(()=>{
364
+ if (!typingActive) return;
365
+ void adapter.sendTyping(msg.remote_jid, true).catch(()=>{});
366
+ }, 8000);
367
+ typingTimer.unref?.();
368
+ let reply = "";
369
+ let suppressAssistant = false;
370
+ let aborted = false;
371
+ try {
372
+ // Surface the bridge kind+name in the system prompt so the agent
373
+ // knows it's answering on e.g. WhatsApp — fixes the "I don't have
374
+ // access to WhatsApp" reply on bridge-delivered turns. Falls back
375
+ // to bridge_id when the row was deleted between fetch and dispatch.
376
+ const bridge = (0,bridges/* getBridge */.e1)(adapter.bridge_id);
377
+ let result;
378
+ try {
379
+ result = await (0,agent_turn.runAgentTurn)({
380
+ thread_id: thread.thread_id,
381
+ queue_source: "bridge",
382
+ message: promptText,
383
+ attachments: msg.attachments,
384
+ user_category: "bridge",
385
+ assistant_category: "bridge",
386
+ user_message_metadata: {
387
+ bridge_conversation: bridgeConversation
388
+ },
389
+ assistant_message_metadata: {
390
+ bridge_conversation: bridgeConversation
391
+ },
392
+ history_bridge_key: bridgeConversation.key,
393
+ silent,
394
+ queue_lane: willReply ? "interactive" : "background",
395
+ queue_expires_at: willReply ? undefined : Date.now() + 5 * 60000,
396
+ on_queue_state: (state)=>{
397
+ (0,automation_activity/* updateAutomationActivity */.ou)(activity.msg_id, {
398
+ state: state === "queued" ? "queued" : "checking"
399
+ });
400
+ publishActivity();
401
+ },
402
+ delivery_channel: {
403
+ kind: bridge?.kind ?? "bridge",
404
+ name: bridge?.name ?? null
405
+ }
406
+ });
407
+ } catch (err) {
408
+ if (err instanceof run_queue/* QueueExpiredError */.vR) {
409
+ (0,automation_activity/* finalizeAutomationActivity */.lU)(activity.msg_id, {
410
+ disposition: "expired"
411
+ });
412
+ publishActivity();
413
+ return;
414
+ }
415
+ (0,automation_activity/* finalizeAutomationActivity */.lU)(activity.msg_id, {
416
+ disposition: "failed",
417
+ error: (0,error/* errorMessage */.g)(err)
418
+ });
419
+ publishActivity();
420
+ throw err;
421
+ }
422
+ reply = result.assistantContent.trim();
423
+ suppressAssistant = result.skippedAssistant;
424
+ aborted = result.aborted;
425
+ } finally{
426
+ typingActive = false;
427
+ clearInterval(typingTimer);
428
+ if (willReply) {
429
+ void adapter.sendTyping(msg.remote_jid, false).catch(()=>{});
430
+ }
431
+ }
432
+ // Outbound reply gate: silent_mode (master switch) AND respond_to
433
+ // (per-role trigger). Both must clear for a message to leave the
434
+ // dispatcher. The WhatsApp adapter also re-checks `route.silent_mode`
435
+ // inside its own sendText as a belt-and-suspenders guard, so even a
436
+ // tool that called adapter.sendText directly would be dropped.
437
+ let sendError = null;
438
+ if (reply.length > 0 && willReply) {
439
+ try {
440
+ await adapter.sendText(msg.remote_jid, reply);
441
+ } catch (sendErr) {
442
+ const m = (0,error/* errorMessage */.g)(sendErr);
443
+ sendError = m;
444
+ console.error(`[bridge ${adapter.bridge_id}] sendText failed:`, m);
445
+ }
446
+ }
447
+ (0,automation_activity/* finalizeAutomationActivity */.lU)(activity.msg_id, aborted ? {
448
+ disposition: "cancelled"
449
+ } : sendError ? {
450
+ disposition: "failed",
451
+ error: sendError
452
+ } : {
453
+ disposition: reply.length > 0 && !suppressAssistant ? "action" : "no_action",
454
+ preview: suppressAssistant ? undefined : reply.replace(/\s+/g, " ").slice(0, 120)
455
+ });
456
+ publishActivity();
457
+ if (!silent || !suppressAssistant) {
458
+ (0,bus/* publish */.mk)({
459
+ type: "bridge_message_received",
460
+ bridge_id: adapter.bridge_id,
461
+ remote_jid: msg.remote_jid,
462
+ push_name: msg.push_name,
463
+ is_group: msg.is_group,
464
+ thread_id: thread.thread_id,
465
+ agent_id: agentId,
466
+ preview: suppressAssistant ? "" : reply.replace(/\s+/g, " ").slice(0, 120),
467
+ ts: Date.now()
468
+ });
469
+ }
470
+ } catch (err) {
471
+ const m = (0,error/* errorMessage */.g)(err);
472
+ console.error(`[bridge ${adapter.bridge_id}] dispatcher error on ${msg.remote_jid}:`, m);
473
+ }
474
+ }
188
475
 
189
- /***/ 42482:
190
- /***/ ((module) => {
476
+ // EXTERNAL MODULE: ./lib/bridges/registry.ts + 4 modules
477
+ var registry = __webpack_require__(44540);
478
+ ;// ./lib/bridges/runtime.ts
479
+ /**
480
+ * Bridge lifecycle manager.
481
+ *
482
+ * Owns a `Map<bridge_id, BridgeAdapter>` plus a `Map<bridge_id, StatusUpdate>`
483
+ * of the latest known status per bridge (so the HTTP status endpoint can
484
+ * return live QR / connection state without consulting the adapter directly).
485
+ *
486
+ * - `startAllBridges()` — called at app boot; scans `bridges` for
487
+ * `enabled=1` rows and spins up their adapters.
488
+ * - `startBridge(id)` / `stopBridge(id)` / `restartBridge(id)` — called from
489
+ * the HTTP layer (toggle enabled, re-pair, delete).
490
+ *
491
+ * Pinned to globalThis so dev HMR doesn't double-start (same pattern as
492
+ * lib/scheduler/index.ts).
493
+ */
494
+
495
+
496
+
497
+
498
+
499
+ const state = (0,global_state/* getOrCreateGlobal */.X)("__jarela_bridges", ()=>({
500
+ adapters: new Map(),
501
+ status: new Map(),
502
+ started: false
503
+ }));
504
+ function makeAdapter(bridge_id, kind) {
505
+ const bridgeModule = (0,registry/* getBridgeModule */.ut)(kind);
506
+ if (!bridgeModule) throw new Error(`Unknown bridge kind: ${kind}`);
507
+ return bridgeModule.createAdapter(bridge_id);
508
+ }
509
+ async function removeBridgeAuth(bridge_id) {
510
+ const bridge = (0,bridges/* getBridge */.e1)(bridge_id);
511
+ if (!bridge) return;
512
+ await (0,registry/* getBridgeModule */.ut)(bridge.kind)?.removeAuth(bridge_id);
513
+ }
514
+ function wireAdapter(adapter) {
515
+ adapter.onInboundMessage((msg)=>handleInboundMessage(adapter, msg));
516
+ adapter.onStatusChange((update)=>{
517
+ state.status.set(adapter.bridge_id, update);
518
+ // Persist the user-visible bits so they survive a process restart.
519
+ const patch = {
520
+ status: update.status,
521
+ qr: update.qr_data_url ?? null,
522
+ last_error: update.error ?? null
523
+ };
524
+ if (update.paired_id !== undefined) patch.paired_id = update.paired_id;
525
+ (0,bridges/* updateBridge */.po)(adapter.bridge_id, patch);
526
+ (0,bus/* publish */.mk)({
527
+ type: "bridge_status",
528
+ bridge_id: adapter.bridge_id,
529
+ status: update.status,
530
+ error: update.error ?? null,
531
+ paired_id: update.paired_id ?? null,
532
+ ts: Date.now()
533
+ });
534
+ });
535
+ }
536
+ async function startBridge(bridge_id) {
537
+ if (state.adapters.has(bridge_id)) return;
538
+ const row = (0,bridges/* getBridge */.e1)(bridge_id);
539
+ if (!row) throw new Error(`Bridge ${bridge_id} not found`);
540
+ const adapter = makeAdapter(bridge_id, row.kind);
541
+ state.adapters.set(bridge_id, adapter);
542
+ wireAdapter(adapter);
543
+ try {
544
+ await adapter.start();
545
+ } catch (err) {
546
+ state.adapters.delete(bridge_id);
547
+ const m = (0,error/* errorMessage */.g)(err);
548
+ (0,bridges/* updateBridge */.po)(bridge_id, {
549
+ status: "error",
550
+ last_error: m
551
+ });
552
+ throw err;
553
+ }
554
+ }
555
+ async function stopBridge(bridge_id) {
556
+ const adapter = state.adapters.get(bridge_id);
557
+ state.adapters.delete(bridge_id);
558
+ state.status.delete(bridge_id);
559
+ if (adapter) {
560
+ try {
561
+ await adapter.stop();
562
+ } catch (err) {
563
+ console.error(`[bridge ${bridge_id}] stop failed:`, err);
564
+ }
565
+ }
566
+ // Persist that the bridge is down (in case status callback didn't fire).
567
+ (0,bridges/* updateBridge */.po)(bridge_id, {
568
+ status: "disconnected",
569
+ qr: null
570
+ });
571
+ }
572
+ async function restartBridge(bridge_id) {
573
+ await stopBridge(bridge_id);
574
+ await startBridge(bridge_id);
575
+ }
576
+ async function repairBridge(bridge_id) {
577
+ const bridge = (0,bridges/* getBridge */.e1)(bridge_id);
578
+ if (!bridge) throw new Error(`Bridge ${bridge_id} not found`);
579
+ const bridgeModule = (0,registry/* getBridgeModule */.ut)(bridge.kind);
580
+ if (!bridgeModule?.pairing) throw new Error(`Bridge kind "${bridge.kind}" does not support pairing`);
581
+ await stopBridge(bridge_id);
582
+ await bridgeModule.removeAuth(bridge_id);
583
+ (0,bridges/* updateBridge */.po)(bridge_id, {
584
+ status: "disconnected",
585
+ qr: null,
586
+ last_error: null,
587
+ paired_id: null
588
+ });
589
+ await startBridge(bridge_id);
590
+ }
591
+ function getBridgeRuntimeStatus(bridge_id) {
592
+ return state.status.get(bridge_id) ?? null;
593
+ }
594
+ function isBridgeRunning(bridge_id) {
595
+ return state.adapters.has(bridge_id);
596
+ }
597
+ /**
598
+ * Snapshot of chats the adapter has observed since connecting. Returns []
599
+ * when the bridge isn't running yet. Triggers a background refresh so that
600
+ * subsequent calls see newly-fetched group metadata.
601
+ */ function listBridgeChats(bridge_id) {
602
+ const adapter = state.adapters.get(bridge_id);
603
+ if (!adapter?.listChats) return [];
604
+ // Fire-and-forget — refreshChats hits a WS round-trip; HTTP shouldn't
605
+ // wait. The next poll will pick up any new entries.
606
+ void adapter.refreshChats?.().catch(()=>{});
607
+ return adapter.listChats();
608
+ }
609
+ /**
610
+ * Look up a freeform phone number (or other identifier) against the bridge
611
+ * and return the resolved chat if it exists, else null. Returns null also
612
+ * if the bridge isn't running.
613
+ */ async function lookupBridgeChat(bridge_id, input) {
614
+ const adapter = state.adapters.get(bridge_id);
615
+ if (!adapter?.lookupChat) return null;
616
+ return adapter.lookupChat(input);
617
+ }
618
+ /**
619
+ * Boot hook. Idempotent — safe to call from a layout module that may be
620
+ * evaluated multiple times in Next.js dev HMR.
621
+ */ async function startAllBridges() {
622
+ if (state.started) return;
623
+ state.started = true;
624
+ const rows = (0,bridges/* listBridges */.X9)();
625
+ for (const row of rows){
626
+ if (row.enabled !== 1) continue;
627
+ try {
628
+ await startBridge(row.id);
629
+ } catch (err) {
630
+ const m = (0,error/* errorMessage */.g)(err);
631
+ console.error(`[bridge ${row.id}] failed to start at boot:`, m);
632
+ // updateBridge already happened inside startBridge's catch.
633
+ }
634
+ }
635
+ }
636
+ // Stop every running bridge. Called from the graceful-shutdown path so
637
+ // WhatsApp WS sockets etc. close cleanly before the process exits. We
638
+ // await in parallel — a single slow `adapter.stop()` shouldn't gate the
639
+ // others — but the whole call is still bounded by the outer shutdown
640
+ // timeout in `lib/lifecycle/shutdown.ts`.
641
+ async function stopAllBridges() {
642
+ const ids = Array.from(state.adapters.keys());
643
+ await Promise.allSettled(ids.map((id)=>stopBridge(id)));
644
+ state.started = false;
645
+ }
191
646
 
192
- module.exports = import("sharp");;
193
647
 
194
648
  /***/ }),
195
649
 
196
- /***/ 44708:
650
+ /***/ 8128:
197
651
  /***/ ((module) => {
198
652
 
199
- module.exports = require("node:https");
653
+ module.exports = require("next/dist/server/runtime-reacts.external.js");
200
654
 
201
655
  /***/ }),
202
656
 
203
- /***/ 44870:
657
+ /***/ 9956:
204
658
  /***/ ((module) => {
205
659
 
206
- module.exports = require("next/dist/compiled/next-server/app-route.runtime.prod.js");
660
+ module.exports = require("undici");
207
661
 
208
662
  /***/ }),
209
663
 
210
- /***/ 48161:
664
+ /***/ 10846:
211
665
  /***/ ((module) => {
212
666
 
213
- module.exports = require("node:os");
667
+ module.exports = require("next/dist/compiled/next-server/app-page.runtime.prod.js");
214
668
 
215
669
  /***/ }),
216
670
 
217
- /***/ 48903:
671
+ /***/ 11221:
218
672
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
219
673
 
220
674
  __webpack_require__.r(__webpack_exports__);
@@ -656,6 +1110,125 @@ async function handler(req, res, ctx) {
656
1110
  //# sourceMappingURL=app-route.js.map
657
1111
 
658
1112
 
1113
+ /***/ }),
1114
+
1115
+ /***/ 12412:
1116
+ /***/ ((module) => {
1117
+
1118
+ module.exports = require("assert");
1119
+
1120
+ /***/ }),
1121
+
1122
+ /***/ 16602:
1123
+ /***/ ((module) => {
1124
+
1125
+ module.exports = import("@whiskeysockets/baileys");;
1126
+
1127
+ /***/ }),
1128
+
1129
+ /***/ 16698:
1130
+ /***/ ((module) => {
1131
+
1132
+ module.exports = require("node:async_hooks");
1133
+
1134
+ /***/ }),
1135
+
1136
+ /***/ 19121:
1137
+ /***/ ((module) => {
1138
+
1139
+ module.exports = require("next/dist/server/app-render/action-async-storage.external.js");
1140
+
1141
+ /***/ }),
1142
+
1143
+ /***/ 27910:
1144
+ /***/ ((module) => {
1145
+
1146
+ module.exports = require("stream");
1147
+
1148
+ /***/ }),
1149
+
1150
+ /***/ 28354:
1151
+ /***/ ((module) => {
1152
+
1153
+ module.exports = require("util");
1154
+
1155
+ /***/ }),
1156
+
1157
+ /***/ 29021:
1158
+ /***/ ((module) => {
1159
+
1160
+ module.exports = require("fs");
1161
+
1162
+ /***/ }),
1163
+
1164
+ /***/ 29294:
1165
+ /***/ ((module) => {
1166
+
1167
+ module.exports = require("next/dist/server/app-render/work-async-storage.external.js");
1168
+
1169
+ /***/ }),
1170
+
1171
+ /***/ 31421:
1172
+ /***/ ((module) => {
1173
+
1174
+ module.exports = require("node:child_process");
1175
+
1176
+ /***/ }),
1177
+
1178
+ /***/ 33873:
1179
+ /***/ ((module) => {
1180
+
1181
+ module.exports = require("path");
1182
+
1183
+ /***/ }),
1184
+
1185
+ /***/ 37067:
1186
+ /***/ ((module) => {
1187
+
1188
+ module.exports = require("node:http");
1189
+
1190
+ /***/ }),
1191
+
1192
+ /***/ 38522:
1193
+ /***/ ((module) => {
1194
+
1195
+ module.exports = require("node:zlib");
1196
+
1197
+ /***/ }),
1198
+
1199
+ /***/ 40610:
1200
+ /***/ ((module) => {
1201
+
1202
+ module.exports = require("node:dns");
1203
+
1204
+ /***/ }),
1205
+
1206
+ /***/ 42482:
1207
+ /***/ ((module) => {
1208
+
1209
+ module.exports = import("sharp");;
1210
+
1211
+ /***/ }),
1212
+
1213
+ /***/ 44708:
1214
+ /***/ ((module) => {
1215
+
1216
+ module.exports = require("node:https");
1217
+
1218
+ /***/ }),
1219
+
1220
+ /***/ 44870:
1221
+ /***/ ((module) => {
1222
+
1223
+ module.exports = require("next/dist/compiled/next-server/app-route.runtime.prod.js");
1224
+
1225
+ /***/ }),
1226
+
1227
+ /***/ 48161:
1228
+ /***/ ((module) => {
1229
+
1230
+ module.exports = require("node:os");
1231
+
659
1232
  /***/ }),
660
1233
 
661
1234
  /***/ 51455:
@@ -812,7 +1385,7 @@ module.exports = import("@huggingface/transformers");;
812
1385
  var __webpack_require__ = require("../../../../../../webpack-runtime.js");
813
1386
  __webpack_require__.C(exports);
814
1387
  var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
815
- var __webpack_exports__ = __webpack_require__.X(0, [2970,7377,1813,7981,513,6299,563,8808,7547,4992,46,3042,3566,2068,4377,1638,5585,3524,9640,3175,6142,540,4955,5908,5936,424,4540,3979], () => (__webpack_exec__(48903)));
1388
+ var __webpack_exports__ = __webpack_require__.X(0, [2970,7377,1813,7981,513,6299,563,8808,7547,4992,46,3042,3566,2068,4377,1638,5585,9304,3524,3175,6142,540,4189,4955,5908,5120,1388,4540], () => (__webpack_exec__(11221)));
816
1389
  module.exports = __webpack_exports__;
817
1390
 
818
1391
  })();