@circuitwall/jarela 2.2.1 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (703) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-path-routes-manifest.json +2 -1
  3. package/.next/standalone/.next/build-manifest.json +2 -2
  4. package/.next/standalone/.next/prerender-manifest.json +3 -3
  5. package/.next/standalone/.next/routes-manifest.json +8 -0
  6. package/.next/standalone/.next/server/app/_global-error/page.js +68 -68
  7. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  8. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  9. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  11. package/.next/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  12. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  13. package/.next/standalone/.next/server/app/_not-found/page.js +76 -76
  14. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  15. package/.next/standalone/.next/server/app/_not-found.html +2 -2
  16. package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
  17. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  18. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  19. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  20. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  21. package/.next/standalone/.next/server/app/api/v1/access/[identity]/route.js +100 -93
  22. package/.next/standalone/.next/server/app/api/v1/access/route.js +176 -169
  23. package/.next/standalone/.next/server/app/api/v1/agents/[id]/compact/route.js +89 -56
  24. package/.next/standalone/.next/server/app/api/v1/agents/[id]/compact/route.js.nft.json +1 -1
  25. package/.next/standalone/.next/server/app/api/v1/agents/[id]/display-filters/route.js +139 -127
  26. package/.next/standalone/.next/server/app/api/v1/agents/[id]/route.js +107 -100
  27. package/.next/standalone/.next/server/app/api/v1/agents/[id]/thread/route.js +765 -753
  28. package/.next/standalone/.next/server/app/api/v1/agents/route.js +72 -65
  29. package/.next/standalone/.next/server/app/api/v1/allowed-sites/[hostname]/route.js +371 -364
  30. package/.next/standalone/.next/server/app/api/v1/allowed-sites/route.js +809 -802
  31. package/.next/standalone/.next/server/app/api/v1/artifacts/lifecycle/route.js +9 -2
  32. package/.next/standalone/.next/server/app/api/v1/attachments/files/route.js +49 -49
  33. package/.next/standalone/.next/server/app/api/v1/attachments/images/route.js +910 -910
  34. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/chats/route.js +583 -16
  35. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/chats/route.js.nft.json +1 -1
  36. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/ignores/[remote_jid]/route.js +41 -30
  37. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/ignores/route.js +48 -37
  38. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/lookup/route.js +697 -130
  39. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/lookup/route.js.nft.json +1 -1
  40. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/pair/route.js +703 -136
  41. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/pair/route.js.nft.json +1 -1
  42. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/route.js +796 -229
  43. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/route.js.nft.json +1 -1
  44. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/routes/[route_id]/route.js +762 -746
  45. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/routes/route.js +1050 -1034
  46. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/status/route.js +673 -106
  47. package/.next/standalone/.next/server/app/api/v1/bridges/[id]/status/route.js.nft.json +1 -1
  48. package/.next/standalone/.next/server/app/api/v1/bridges/kinds/route.js +811 -804
  49. package/.next/standalone/.next/server/app/api/v1/bridges/kinds/route.js.nft.json +1 -1
  50. package/.next/standalone/.next/server/app/api/v1/bridges/route.js +718 -706
  51. package/.next/standalone/.next/server/app/api/v1/bridges/route.js.nft.json +1 -1
  52. package/.next/standalone/.next/server/app/api/v1/builtin-tools/route.js +9 -9
  53. package/.next/standalone/.next/server/app/api/v1/builtin-tools/route.js.nft.json +1 -1
  54. package/.next/standalone/.next/server/app/api/v1/config/route.js +85 -85
  55. package/.next/standalone/.next/server/app/api/v1/credentials/[id]/route.js +709 -709
  56. package/.next/standalone/.next/server/app/api/v1/credentials/[id]/route.js.nft.json +1 -1
  57. package/.next/standalone/.next/server/app/api/v1/credentials/route.js +2 -2
  58. package/.next/standalone/.next/server/app/api/v1/credentials/route.js.nft.json +1 -1
  59. package/.next/standalone/.next/server/app/api/v1/dashboard/currency/route.js +10 -10
  60. package/.next/standalone/.next/server/app/api/v1/dashboard/metrics/route.js +796 -784
  61. package/.next/standalone/.next/server/app/api/v1/dashboard/pricing/route.js +30 -23
  62. package/.next/standalone/.next/server/app/api/v1/dashboard/pricing-task/route.js +86 -86
  63. package/.next/standalone/.next/server/app/api/v1/dashboard/pricing-task/route.js.nft.json +1 -1
  64. package/.next/standalone/.next/server/app/api/v1/delegations/codex/[job_id]/route.js +57 -57
  65. package/.next/standalone/.next/server/app/api/v1/delegations/codex/[job_id]/route.js.nft.json +1 -1
  66. package/.next/standalone/.next/server/app/api/v1/documents/search/route.js +385 -378
  67. package/.next/standalone/.next/server/app/api/v1/documents/settings/route.js +51 -44
  68. package/.next/standalone/.next/server/app/api/v1/documents/sources/[id]/reindex/route.js +65 -65
  69. package/.next/standalone/.next/server/app/api/v1/documents/sources/[id]/reindex/route.js.nft.json +1 -1
  70. package/.next/standalone/.next/server/app/api/v1/documents/sources/[id]/route.js +122 -122
  71. package/.next/standalone/.next/server/app/api/v1/documents/sources/[id]/route.js.nft.json +1 -1
  72. package/.next/standalone/.next/server/app/api/v1/documents/sources/route.js +37 -37
  73. package/.next/standalone/.next/server/app/api/v1/documents/sources/route.js.nft.json +1 -1
  74. package/.next/standalone/.next/server/app/api/v1/env/route.js +9 -9
  75. package/.next/standalone/.next/server/app/api/v1/env-sync/allowlist/route.js +375 -368
  76. package/.next/standalone/.next/server/app/api/v1/env-sync/route.js +51 -44
  77. package/.next/standalone/.next/server/app/api/v1/events/route.js +745 -178
  78. package/.next/standalone/.next/server/app/api/v1/events/route.js.nft.json +1 -1
  79. package/.next/standalone/.next/server/app/api/v1/events/test/route.js +77 -77
  80. package/.next/standalone/.next/server/app/api/v1/extension/agents/route.js +763 -763
  81. package/.next/standalone/.next/server/app/api/v1/extension/agents/route.js.nft.json +1 -1
  82. package/.next/standalone/.next/server/app/api/v1/extension/browser/activate/route.js +51 -44
  83. package/.next/standalone/.next/server/app/api/v1/extension/browser/foreground/route.js +16 -9
  84. package/.next/standalone/.next/server/app/api/v1/extension/browser/history/route.js +72 -65
  85. package/.next/standalone/.next/server/app/api/v1/extension/browser/poll/route.js +41 -34
  86. package/.next/standalone/.next/server/app/api/v1/extension/browser/progress/route.js +211 -204
  87. package/.next/standalone/.next/server/app/api/v1/extension/browser/result/route.js +140 -133
  88. package/.next/standalone/.next/server/app/api/v1/extension/browser/retry/route.js +113 -106
  89. package/.next/standalone/.next/server/app/api/v1/extension/browser/status/route.js +121 -114
  90. package/.next/standalone/.next/server/app/api/v1/extension/browser/tabs/route.js +141 -134
  91. package/.next/standalone/.next/server/app/api/v1/extension/fill/route.js +690 -690
  92. package/.next/standalone/.next/server/app/api/v1/extension/fill/route.js.nft.json +1 -1
  93. package/.next/standalone/.next/server/app/api/v1/extension/refine/route.js +93 -93
  94. package/.next/standalone/.next/server/app/api/v1/extension/refine/route.js.nft.json +1 -1
  95. package/.next/standalone/.next/server/app/api/v1/extension/turn/route.js +9 -9
  96. package/.next/standalone/.next/server/app/api/v1/extension/turn/route.js.nft.json +1 -1
  97. package/.next/standalone/.next/server/app/api/v1/extensions/route.js +185 -185
  98. package/.next/standalone/.next/server/app/api/v1/extensions/route.js.nft.json +1 -1
  99. package/.next/standalone/.next/server/app/api/v1/extensions/tools/[name]/config/route.js +171 -171
  100. package/.next/standalone/.next/server/app/api/v1/extensions/tools/[name]/config/route.js.nft.json +1 -1
  101. package/.next/standalone/.next/server/app/api/v1/extensions/tools/[name]/route.js +396 -396
  102. package/.next/standalone/.next/server/app/api/v1/extensions/tools/[name]/route.js.nft.json +1 -1
  103. package/.next/standalone/.next/server/app/api/v1/extensions/tools/[name]/secrets/route.js +212 -212
  104. package/.next/standalone/.next/server/app/api/v1/extensions/tools/[name]/secrets/route.js.nft.json +1 -1
  105. package/.next/standalone/.next/server/app/api/v1/files/[name]/route.js +235 -235
  106. package/.next/standalone/.next/server/app/api/v1/fs/browse/route.js +26 -26
  107. package/.next/standalone/.next/server/app/api/v1/harnesses/[id]/route.js +228 -221
  108. package/.next/standalone/.next/server/app/api/v1/harnesses/default/route.js +65 -58
  109. package/.next/standalone/.next/server/app/api/v1/harnesses/route.js +79 -72
  110. package/.next/standalone/.next/server/app/api/v1/health/probes/route.js +9 -9
  111. package/.next/standalone/.next/server/app/api/v1/health/probes/route.js.nft.json +1 -1
  112. package/.next/standalone/.next/server/app/api/v1/health/route.js +783 -771
  113. package/.next/standalone/.next/server/app/api/v1/integrations/[name]/route.js +140 -133
  114. package/.next/standalone/.next/server/app/api/v1/integrations/[name]/test/route.js +9 -9
  115. package/.next/standalone/.next/server/app/api/v1/integrations/[name]/test/route.js.nft.json +1 -1
  116. package/.next/standalone/.next/server/app/api/v1/integrations/gmail/oauth/callback/route.js +370 -363
  117. package/.next/standalone/.next/server/app/api/v1/integrations/gmail/oauth/start/route.js +240 -233
  118. package/.next/standalone/.next/server/app/api/v1/integrations/gmail/oauth/status/route.js +689 -682
  119. package/.next/standalone/.next/server/app/api/v1/integrations/outlook/oauth/callback/route.js +886 -879
  120. package/.next/standalone/.next/server/app/api/v1/integrations/outlook/oauth/start/route.js +115 -108
  121. package/.next/standalone/.next/server/app/api/v1/integrations/outlook/oauth/status/route.js +955 -948
  122. package/.next/standalone/.next/server/app/api/v1/integrations/route.js +223 -216
  123. package/.next/standalone/.next/server/app/api/v1/lifecycle/adoption/route.js +876 -847
  124. package/.next/standalone/.next/server/app/api/v1/lifecycle/adoption/route.js.nft.json +1 -1
  125. package/.next/standalone/.next/server/app/api/v1/local-file/route.js +26 -26
  126. package/.next/standalone/.next/server/app/api/v1/logs/route.js +70 -70
  127. package/.next/standalone/.next/server/app/api/v1/maps/embed/route.js +79 -72
  128. package/.next/standalone/.next/server/app/api/v1/mcp-servers/[name]/route.js +991 -979
  129. package/.next/standalone/.next/server/app/api/v1/mcp-servers/registry/route.js +196 -196
  130. package/.next/standalone/.next/server/app/api/v1/mcp-servers/route.js +19 -7
  131. package/.next/standalone/.next/server/app/api/v1/memory/[namespace]/[key]/route.js +539 -532
  132. package/.next/standalone/.next/server/app/api/v1/memory/policy/route.js +86 -79
  133. package/.next/standalone/.next/server/app/api/v1/memory/route.js +58 -51
  134. package/.next/standalone/.next/server/app/api/v1/memory/search/route.js +138 -131
  135. package/.next/standalone/.next/server/app/api/v1/models/[name]/compact-threads/route.js +381 -369
  136. package/.next/standalone/.next/server/app/api/v1/models/[name]/compact-threads/route.js.nft.json +1 -1
  137. package/.next/standalone/.next/server/app/api/v1/models/[name]/route.js +150 -143
  138. package/.next/standalone/.next/server/app/api/v1/models/route.js +634 -627
  139. package/.next/standalone/.next/server/app/api/v1/packages/catalog/route.js +445 -445
  140. package/.next/standalone/.next/server/app/api/v1/packages/defaults/[id]/route.js +120 -120
  141. package/.next/standalone/.next/server/app/api/v1/packages/defaults/[id]/route.js.nft.json +1 -1
  142. package/.next/standalone/.next/server/app/api/v1/packages/install/[id]/route.js +234 -234
  143. package/.next/standalone/.next/server/app/api/v1/packages/install/[id]/route.js.nft.json +1 -1
  144. package/.next/standalone/.next/server/app/api/v1/packages/install/route.js +407 -407
  145. package/.next/standalone/.next/server/app/api/v1/packages/install/route.js.nft.json +1 -1
  146. package/.next/standalone/.next/server/app/api/v1/packages/manifests/[name]/enabled/route.js +37 -37
  147. package/.next/standalone/.next/server/app/api/v1/packages/manifests/[name]/enabled/route.js.nft.json +1 -1
  148. package/.next/standalone/.next/server/app/api/v1/packages/manifests/[name]/route.js +107 -107
  149. package/.next/standalone/.next/server/app/api/v1/packages/manifests/[name]/route.js.nft.json +1 -1
  150. package/.next/standalone/.next/server/app/api/v1/packages/manifests/route.js +228 -228
  151. package/.next/standalone/.next/server/app/api/v1/packages/manifests/route.js.nft.json +1 -1
  152. package/.next/standalone/.next/server/app/api/v1/packages/reload/route.js +9 -9
  153. package/.next/standalone/.next/server/app/api/v1/packages/reload/route.js.nft.json +1 -1
  154. package/.next/standalone/.next/server/app/api/v1/packages/route.js +148 -148
  155. package/.next/standalone/.next/server/app/api/v1/packages/route.js.nft.json +1 -1
  156. package/.next/standalone/.next/server/app/api/v1/page-capture/route.js +787 -787
  157. package/.next/standalone/.next/server/app/api/v1/page-capture/route.js.nft.json +1 -1
  158. package/.next/standalone/.next/server/app/api/v1/pending-actions/[id]/approve/route.js +529 -514
  159. package/.next/standalone/.next/server/app/api/v1/pending-actions/[id]/approve/route.js.nft.json +1 -1
  160. package/.next/standalone/.next/server/app/api/v1/pending-actions/[id]/deny/route.js +181 -181
  161. package/.next/standalone/.next/server/app/api/v1/pending-actions/[id]/deny/route.js.nft.json +1 -1
  162. package/.next/standalone/.next/server/app/api/v1/pending-actions/route.js +258 -258
  163. package/.next/standalone/.next/server/app/api/v1/pending-actions/route.js.nft.json +1 -1
  164. package/.next/standalone/.next/server/app/api/v1/profile/location/route.js +37 -30
  165. package/.next/standalone/.next/server/app/api/v1/profile/route.js +171 -164
  166. package/.next/standalone/.next/server/app/api/v1/providers/[provider]/models/route.js +51 -44
  167. package/.next/standalone/.next/server/app/api/v1/providers/[provider]/probe/route.js +15 -8
  168. package/.next/standalone/.next/server/app/api/v1/providers/github-copilot/auth/route.js +171 -164
  169. package/.next/standalone/.next/server/app/api/v1/providers/route.js +101 -94
  170. package/.next/standalone/.next/server/app/api/v1/proxy-config/route.js +457 -450
  171. package/.next/standalone/.next/server/app/api/v1/redaction/init/route.js +44 -37
  172. package/.next/standalone/.next/server/app/api/v1/redaction/route.js +65 -58
  173. package/.next/standalone/.next/server/app/api/v1/scheduled-tasks/[id]/route.js +617 -605
  174. package/.next/standalone/.next/server/app/api/v1/scheduled-tasks/[id]/run/route.js +44 -44
  175. package/.next/standalone/.next/server/app/api/v1/scheduled-tasks/[id]/run/route.js.nft.json +1 -1
  176. package/.next/standalone/.next/server/app/api/v1/scheduled-tasks/route.js +739 -732
  177. package/.next/standalone/.next/server/app/api/v1/security/idle-timeout/route.js +329 -322
  178. package/.next/standalone/.next/server/app/api/v1/security/pin/route.js +204 -197
  179. package/.next/standalone/.next/server/app/api/v1/security/state/route.js +58 -51
  180. package/.next/standalone/.next/server/app/api/v1/security/unlock/route.js +183 -176
  181. package/.next/standalone/.next/server/app/api/v1/security/verify-pin/route.js +194 -187
  182. package/.next/standalone/.next/server/app/api/v1/setup/test-key/route.js +26 -26
  183. package/.next/standalone/.next/server/app/api/v1/skills/[id]/route.js +776 -769
  184. package/.next/standalone/.next/server/app/api/v1/skills/repos/[id]/route.js +122 -115
  185. package/.next/standalone/.next/server/app/api/v1/skills/repos/route.js +334 -327
  186. package/.next/standalone/.next/server/app/api/v1/skills/route.js +873 -866
  187. package/.next/standalone/.next/server/app/api/v1/system/abort/route.js +838 -808
  188. package/.next/standalone/.next/server/app/api/v1/system/restart/route.js +177 -177
  189. package/.next/standalone/.next/server/app/api/v1/system/restart/route.js.nft.json +1 -1
  190. package/.next/standalone/.next/server/app/api/v1/tailscale/route.js +164 -164
  191. package/.next/standalone/.next/server/app/api/v1/tasks/[agent_id]/route.js +122 -115
  192. package/.next/standalone/.next/server/app/api/v1/tasks/route.js +30 -23
  193. package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/activity/route.js +1436 -0
  194. package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/activity/route.js.nft.json +1 -0
  195. package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/activity/route_client-reference-manifest.js +1 -0
  196. package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/context-pin/route.js +638 -631
  197. package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/context-pin/route.js.nft.json +1 -1
  198. package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/route.js +60 -439
  199. package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/route.js.nft.json +1 -1
  200. package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/run/route.js +172 -173
  201. package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/run/route.js.nft.json +1 -1
  202. package/.next/standalone/.next/server/app/api/v1/threads/route.js +925 -913
  203. package/.next/standalone/.next/server/app/api/v1/tools/route.js +2 -2
  204. package/.next/standalone/.next/server/app/api/v1/tools/route.js.nft.json +1 -1
  205. package/.next/standalone/.next/server/app/api/v1/update/apply/route.js +17 -17
  206. package/.next/standalone/.next/server/app/api/v1/update/apply/route.js.nft.json +1 -1
  207. package/.next/standalone/.next/server/app/api/v1/update/route.js +570 -570
  208. package/.next/standalone/.next/server/app/api/v1/voice/transcribe/route.js +241 -229
  209. package/.next/standalone/.next/server/app/api/v1/voice/tts/route.js +989 -977
  210. package/.next/standalone/.next/server/app/api/v1/watchers/[id]/route.js +40 -28
  211. package/.next/standalone/.next/server/app/api/v1/watchers/[id]/run/route.js +72 -72
  212. package/.next/standalone/.next/server/app/api/v1/watchers/[id]/run/route.js.nft.json +1 -1
  213. package/.next/standalone/.next/server/app/api/v1/watchers/reaction-scripts/route.js +128 -128
  214. package/.next/standalone/.next/server/app/api/v1/watchers/route.js +164 -164
  215. package/.next/standalone/.next/server/app/api/v1/watchers/route.js.nft.json +1 -1
  216. package/.next/standalone/.next/server/app/icon.svg/route.js +62 -62
  217. package/.next/standalone/.next/server/app/manifest.webmanifest/route.js +436 -436
  218. package/.next/standalone/.next/server/app/page.js +1179 -743
  219. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  220. package/.next/standalone/.next/server/app/setup/page.js +99 -91
  221. package/.next/standalone/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  222. package/.next/standalone/.next/server/app-paths-manifest.json +2 -1
  223. package/.next/standalone/.next/server/chunks/{424.js → 1388.js} +441 -1022
  224. package/.next/standalone/.next/server/chunks/1433.js +1 -1
  225. package/.next/standalone/.next/server/chunks/1638.js +1 -2
  226. package/.next/standalone/.next/server/chunks/1738.js +1 -1
  227. package/.next/standalone/.next/server/chunks/2068.js +47 -10
  228. package/.next/standalone/.next/server/chunks/210.js +3 -3
  229. package/.next/standalone/.next/server/chunks/2151.js +31 -1
  230. package/.next/standalone/.next/server/chunks/2207.js +1 -0
  231. package/.next/standalone/.next/server/chunks/2447.js +10 -5
  232. package/.next/standalone/.next/server/chunks/2471.js +45 -45
  233. package/.next/standalone/.next/server/chunks/2504.js +1 -1
  234. package/.next/standalone/.next/server/chunks/2695.js +17 -17
  235. package/.next/standalone/.next/server/chunks/3042.js +24 -16
  236. package/.next/standalone/.next/server/chunks/{4540.js → 309.js} +104 -38
  237. package/.next/standalone/.next/server/chunks/{2350.js → 3272.js} +104 -37
  238. package/.next/standalone/.next/server/chunks/3399.js +526 -526
  239. package/.next/standalone/.next/server/chunks/3524.js +150 -67
  240. package/.next/standalone/.next/server/chunks/3566.js +1 -1
  241. package/.next/standalone/.next/server/chunks/4189.js +946 -0
  242. package/.next/standalone/.next/server/chunks/4433.js +146 -146
  243. package/.next/standalone/.next/server/chunks/4508.js +3 -3
  244. package/.next/standalone/.next/server/chunks/4588.js +1 -0
  245. package/.next/standalone/.next/server/chunks/46.js +78 -28
  246. package/.next/standalone/.next/server/chunks/466.js +12 -0
  247. package/.next/standalone/.next/server/chunks/4868.js +206 -206
  248. package/.next/standalone/.next/server/chunks/4992.js +13 -0
  249. package/.next/standalone/.next/server/chunks/5120.js +963 -0
  250. package/.next/standalone/.next/server/chunks/5701.js +1 -1
  251. package/.next/standalone/.next/server/chunks/5900.js +1 -1
  252. package/.next/standalone/.next/server/chunks/5908.js +63 -42
  253. package/.next/standalone/.next/server/chunks/6142.js +10 -2
  254. package/.next/standalone/.next/server/chunks/6210.js +1 -0
  255. package/.next/standalone/.next/server/chunks/6213.js +1 -1
  256. package/.next/standalone/.next/server/chunks/6649.js +3 -3
  257. package/.next/standalone/.next/server/chunks/6703.js +3 -3
  258. package/.next/standalone/.next/server/chunks/7445.js +1 -0
  259. package/.next/standalone/.next/server/chunks/8067.js +12 -0
  260. package/.next/standalone/.next/server/chunks/8461.js +24 -17
  261. package/.next/standalone/.next/server/chunks/8558.js +1 -1
  262. package/.next/standalone/.next/server/chunks/8724.js +1 -1
  263. package/.next/standalone/.next/server/chunks/8849.js +91 -91
  264. package/.next/standalone/.next/server/chunks/9032.js +4 -3
  265. package/.next/standalone/.next/server/chunks/{2563.js → 9164.js} +33389 -31418
  266. package/.next/standalone/.next/server/chunks/9237.js +396 -396
  267. package/.next/standalone/.next/server/chunks/{9640.js → 9304.js} +1672 -575
  268. package/.next/standalone/.next/server/chunks/9406.js +1 -1
  269. package/.next/standalone/.next/server/chunks/9590.js +68 -18
  270. package/.next/standalone/.next/server/chunks/9824.js +98 -98
  271. package/.next/standalone/.next/server/chunks/9826.js +1 -0
  272. package/.next/standalone/.next/server/middleware-build-manifest.js +2 -2
  273. package/.next/standalone/.next/server/middleware.js +486 -415
  274. package/.next/standalone/.next/server/pages/404.html +2 -2
  275. package/.next/standalone/.next/server/pages/500.html +1 -1
  276. package/.next/standalone/.next/server/preview-props.json +3 -3
  277. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  278. package/.next/standalone/.next/static/chunks/{1395-a340fb0a345382a4.js → 1395-e4a99912b8f83044.js} +13 -1
  279. package/.next/standalone/.next/static/chunks/app/_global-error/{page-36cb8b428b38b26a.js → page-6fc5f8e744c81802.js} +1 -1
  280. package/.next/standalone/.next/static/chunks/app/api/v1/access/[identity]/{route-36cb8b428b38b26a.js → route-6fc5f8e744c81802.js} +1 -1
  281. package/.next/standalone/.next/static/chunks/app/api/v1/access/{route-36cb8b428b38b26a.js → route-6fc5f8e744c81802.js} +1 -1
  282. package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/compact/{route-36cb8b428b38b26a.js → route-6fc5f8e744c81802.js} +1 -1
  283. package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/display-filters/route-6fc5f8e744c81802.js +17 -0
  284. package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/route-6fc5f8e744c81802.js +17 -0
  285. package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/thread/route-6fc5f8e744c81802.js +17 -0
  286. package/.next/standalone/.next/static/chunks/app/api/v1/agents/route-6fc5f8e744c81802.js +17 -0
  287. package/.next/standalone/.next/static/chunks/app/api/v1/allowed-sites/[hostname]/route-6fc5f8e744c81802.js +17 -0
  288. package/.next/standalone/.next/static/chunks/app/api/v1/allowed-sites/route-6fc5f8e744c81802.js +17 -0
  289. package/.next/standalone/.next/static/chunks/app/api/v1/artifacts/lifecycle/route-6fc5f8e744c81802.js +17 -0
  290. package/.next/standalone/.next/static/chunks/app/api/v1/attachments/files/route-6fc5f8e744c81802.js +17 -0
  291. package/.next/standalone/.next/static/chunks/app/api/v1/attachments/images/route-6fc5f8e744c81802.js +17 -0
  292. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/chats/route-6fc5f8e744c81802.js +17 -0
  293. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/ignores/[remote_jid]/route-6fc5f8e744c81802.js +17 -0
  294. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/ignores/route-6fc5f8e744c81802.js +17 -0
  295. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/lookup/route-6fc5f8e744c81802.js +17 -0
  296. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/pair/route-6fc5f8e744c81802.js +17 -0
  297. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/route-6fc5f8e744c81802.js +17 -0
  298. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/routes/[route_id]/route-6fc5f8e744c81802.js +17 -0
  299. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/routes/route-6fc5f8e744c81802.js +17 -0
  300. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/status/route-6fc5f8e744c81802.js +17 -0
  301. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/kinds/route-6fc5f8e744c81802.js +17 -0
  302. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/route-6fc5f8e744c81802.js +17 -0
  303. package/.next/standalone/.next/static/chunks/app/api/v1/builtin-tools/route-6fc5f8e744c81802.js +17 -0
  304. package/.next/standalone/.next/static/chunks/app/api/v1/config/route-6fc5f8e744c81802.js +17 -0
  305. package/.next/standalone/.next/static/chunks/app/api/v1/credentials/[id]/route-6fc5f8e744c81802.js +17 -0
  306. package/.next/standalone/.next/static/chunks/app/api/v1/credentials/route-6fc5f8e744c81802.js +17 -0
  307. package/.next/standalone/.next/static/chunks/app/api/v1/dashboard/currency/route-6fc5f8e744c81802.js +17 -0
  308. package/.next/standalone/.next/static/chunks/app/api/v1/dashboard/metrics/route-6fc5f8e744c81802.js +17 -0
  309. package/.next/standalone/.next/static/chunks/app/api/v1/dashboard/pricing/route-6fc5f8e744c81802.js +17 -0
  310. package/.next/standalone/.next/static/chunks/app/api/v1/dashboard/pricing-task/route-6fc5f8e744c81802.js +17 -0
  311. package/.next/standalone/.next/static/chunks/app/api/v1/delegations/codex/[job_id]/route-6fc5f8e744c81802.js +17 -0
  312. package/.next/standalone/.next/static/chunks/app/api/v1/documents/search/route-6fc5f8e744c81802.js +17 -0
  313. package/.next/standalone/.next/static/chunks/app/api/v1/documents/settings/route-6fc5f8e744c81802.js +17 -0
  314. package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/[id]/reindex/route-6fc5f8e744c81802.js +17 -0
  315. package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/[id]/route-6fc5f8e744c81802.js +17 -0
  316. package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/route-6fc5f8e744c81802.js +17 -0
  317. package/.next/standalone/.next/static/chunks/app/api/v1/env/route-6fc5f8e744c81802.js +17 -0
  318. package/.next/standalone/.next/static/chunks/app/api/v1/env-sync/allowlist/route-6fc5f8e744c81802.js +17 -0
  319. package/.next/standalone/.next/static/chunks/app/api/v1/env-sync/route-6fc5f8e744c81802.js +17 -0
  320. package/.next/standalone/.next/static/chunks/app/api/v1/events/route-6fc5f8e744c81802.js +17 -0
  321. package/.next/standalone/.next/static/chunks/app/api/v1/events/test/route-6fc5f8e744c81802.js +17 -0
  322. package/.next/standalone/.next/static/chunks/app/api/v1/extension/agents/route-6fc5f8e744c81802.js +17 -0
  323. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/activate/route-6fc5f8e744c81802.js +17 -0
  324. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/foreground/route-6fc5f8e744c81802.js +17 -0
  325. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/history/route-6fc5f8e744c81802.js +17 -0
  326. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/poll/route-6fc5f8e744c81802.js +17 -0
  327. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/progress/route-6fc5f8e744c81802.js +17 -0
  328. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/result/route-6fc5f8e744c81802.js +17 -0
  329. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/retry/route-6fc5f8e744c81802.js +17 -0
  330. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/status/route-6fc5f8e744c81802.js +17 -0
  331. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/tabs/route-6fc5f8e744c81802.js +17 -0
  332. package/.next/standalone/.next/static/chunks/app/api/v1/extension/fill/route-6fc5f8e744c81802.js +17 -0
  333. package/.next/standalone/.next/static/chunks/app/api/v1/extension/refine/route-6fc5f8e744c81802.js +17 -0
  334. package/.next/standalone/.next/static/chunks/app/api/v1/extension/turn/route-6fc5f8e744c81802.js +17 -0
  335. package/.next/standalone/.next/static/chunks/app/api/v1/extensions/route-6fc5f8e744c81802.js +17 -0
  336. package/.next/standalone/.next/static/chunks/app/api/v1/extensions/tools/[name]/config/route-6fc5f8e744c81802.js +17 -0
  337. package/.next/standalone/.next/static/chunks/app/api/v1/extensions/tools/[name]/route-6fc5f8e744c81802.js +17 -0
  338. package/.next/standalone/.next/static/chunks/app/api/v1/extensions/tools/[name]/secrets/route-6fc5f8e744c81802.js +17 -0
  339. package/.next/standalone/.next/static/chunks/app/api/v1/files/[name]/route-6fc5f8e744c81802.js +17 -0
  340. package/.next/standalone/.next/static/chunks/app/api/v1/fs/browse/route-6fc5f8e744c81802.js +17 -0
  341. package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/[id]/route-6fc5f8e744c81802.js +17 -0
  342. package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/default/route-6fc5f8e744c81802.js +17 -0
  343. package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/route-6fc5f8e744c81802.js +17 -0
  344. package/.next/standalone/.next/static/chunks/app/api/v1/health/probes/route-6fc5f8e744c81802.js +17 -0
  345. package/.next/standalone/.next/static/chunks/app/api/v1/health/route-6fc5f8e744c81802.js +17 -0
  346. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/[name]/route-6fc5f8e744c81802.js +17 -0
  347. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/[name]/test/route-6fc5f8e744c81802.js +17 -0
  348. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/callback/route-6fc5f8e744c81802.js +17 -0
  349. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/start/route-6fc5f8e744c81802.js +17 -0
  350. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/status/route-6fc5f8e744c81802.js +17 -0
  351. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/callback/route-6fc5f8e744c81802.js +17 -0
  352. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/start/route-6fc5f8e744c81802.js +17 -0
  353. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/status/route-6fc5f8e744c81802.js +17 -0
  354. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/route-6fc5f8e744c81802.js +17 -0
  355. package/.next/standalone/.next/static/chunks/app/api/v1/lifecycle/adoption/route-6fc5f8e744c81802.js +17 -0
  356. package/.next/standalone/.next/static/chunks/app/api/v1/local-file/route-6fc5f8e744c81802.js +17 -0
  357. package/.next/standalone/.next/static/chunks/app/api/v1/logs/route-6fc5f8e744c81802.js +17 -0
  358. package/.next/standalone/.next/static/chunks/app/api/v1/maps/embed/route-6fc5f8e744c81802.js +17 -0
  359. package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/[name]/route-6fc5f8e744c81802.js +17 -0
  360. package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/registry/route-6fc5f8e744c81802.js +17 -0
  361. package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/route-6fc5f8e744c81802.js +17 -0
  362. package/.next/standalone/.next/static/chunks/app/api/v1/memory/[namespace]/[key]/route-6fc5f8e744c81802.js +17 -0
  363. package/.next/standalone/.next/static/chunks/app/api/v1/memory/policy/route-6fc5f8e744c81802.js +17 -0
  364. package/.next/standalone/.next/static/chunks/app/api/v1/memory/route-6fc5f8e744c81802.js +17 -0
  365. package/.next/standalone/.next/static/chunks/app/api/v1/memory/search/route-6fc5f8e744c81802.js +17 -0
  366. package/.next/standalone/.next/static/chunks/app/api/v1/models/[name]/compact-threads/route-6fc5f8e744c81802.js +17 -0
  367. package/.next/standalone/.next/static/chunks/app/api/v1/models/[name]/route-6fc5f8e744c81802.js +17 -0
  368. package/.next/standalone/.next/static/chunks/app/api/v1/models/route-6fc5f8e744c81802.js +17 -0
  369. package/.next/standalone/.next/static/chunks/app/api/v1/packages/catalog/route-6fc5f8e744c81802.js +17 -0
  370. package/.next/standalone/.next/static/chunks/app/api/v1/packages/defaults/[id]/route-6fc5f8e744c81802.js +17 -0
  371. package/.next/standalone/.next/static/chunks/app/api/v1/packages/install/[id]/route-6fc5f8e744c81802.js +17 -0
  372. package/.next/standalone/.next/static/chunks/app/api/v1/packages/install/route-6fc5f8e744c81802.js +17 -0
  373. package/.next/standalone/.next/static/chunks/app/api/v1/packages/manifests/[name]/enabled/route-6fc5f8e744c81802.js +17 -0
  374. package/.next/standalone/.next/static/chunks/app/api/v1/packages/manifests/[name]/route-6fc5f8e744c81802.js +17 -0
  375. package/.next/standalone/.next/static/chunks/app/api/v1/packages/manifests/route-6fc5f8e744c81802.js +17 -0
  376. package/.next/standalone/.next/static/chunks/app/api/v1/packages/reload/route-6fc5f8e744c81802.js +17 -0
  377. package/.next/standalone/.next/static/chunks/app/api/v1/packages/route-6fc5f8e744c81802.js +17 -0
  378. package/.next/standalone/.next/static/chunks/app/api/v1/page-capture/route-6fc5f8e744c81802.js +17 -0
  379. package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/[id]/approve/route-6fc5f8e744c81802.js +17 -0
  380. package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/[id]/deny/route-6fc5f8e744c81802.js +17 -0
  381. package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/route-6fc5f8e744c81802.js +17 -0
  382. package/.next/standalone/.next/static/chunks/app/api/v1/profile/location/route-6fc5f8e744c81802.js +17 -0
  383. package/.next/standalone/.next/static/chunks/app/api/v1/profile/route-6fc5f8e744c81802.js +17 -0
  384. package/.next/standalone/.next/static/chunks/app/api/v1/providers/[provider]/models/route-6fc5f8e744c81802.js +17 -0
  385. package/.next/standalone/.next/static/chunks/app/api/v1/providers/[provider]/probe/route-6fc5f8e744c81802.js +17 -0
  386. package/.next/standalone/.next/static/chunks/app/api/v1/providers/github-copilot/auth/route-6fc5f8e744c81802.js +17 -0
  387. package/.next/standalone/.next/static/chunks/app/api/v1/providers/route-6fc5f8e744c81802.js +17 -0
  388. package/.next/standalone/.next/static/chunks/app/api/v1/proxy-config/route-6fc5f8e744c81802.js +17 -0
  389. package/.next/standalone/.next/static/chunks/app/api/v1/redaction/init/route-6fc5f8e744c81802.js +17 -0
  390. package/.next/standalone/.next/static/chunks/app/api/v1/redaction/route-6fc5f8e744c81802.js +17 -0
  391. package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/[id]/route-6fc5f8e744c81802.js +17 -0
  392. package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/[id]/run/route-6fc5f8e744c81802.js +17 -0
  393. package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/route-6fc5f8e744c81802.js +17 -0
  394. package/.next/standalone/.next/static/chunks/app/api/v1/security/idle-timeout/route-6fc5f8e744c81802.js +17 -0
  395. package/.next/standalone/.next/static/chunks/app/api/v1/security/pin/route-6fc5f8e744c81802.js +17 -0
  396. package/.next/standalone/.next/static/chunks/app/api/v1/security/state/route-6fc5f8e744c81802.js +17 -0
  397. package/.next/standalone/.next/static/chunks/app/api/v1/security/unlock/route-6fc5f8e744c81802.js +17 -0
  398. package/.next/standalone/.next/static/chunks/app/api/v1/security/verify-pin/route-6fc5f8e744c81802.js +17 -0
  399. package/.next/standalone/.next/static/chunks/app/api/v1/setup/test-key/route-6fc5f8e744c81802.js +17 -0
  400. package/.next/standalone/.next/static/chunks/app/api/v1/skills/[id]/route-6fc5f8e744c81802.js +17 -0
  401. package/.next/standalone/.next/static/chunks/app/api/v1/skills/repos/[id]/route-6fc5f8e744c81802.js +17 -0
  402. package/.next/standalone/.next/static/chunks/app/api/v1/skills/repos/route-6fc5f8e744c81802.js +17 -0
  403. package/.next/standalone/.next/static/chunks/app/api/v1/skills/route-6fc5f8e744c81802.js +17 -0
  404. package/.next/standalone/.next/static/chunks/app/api/v1/system/abort/route-6fc5f8e744c81802.js +17 -0
  405. package/.next/standalone/.next/static/chunks/app/api/v1/system/restart/route-6fc5f8e744c81802.js +17 -0
  406. package/.next/standalone/.next/static/chunks/app/api/v1/tailscale/route-6fc5f8e744c81802.js +17 -0
  407. package/.next/standalone/.next/static/chunks/app/api/v1/tasks/[agent_id]/route-6fc5f8e744c81802.js +17 -0
  408. package/.next/standalone/.next/static/chunks/app/api/v1/tasks/route-6fc5f8e744c81802.js +17 -0
  409. package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/activity/route-6fc5f8e744c81802.js +17 -0
  410. package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/context-pin/route-6fc5f8e744c81802.js +17 -0
  411. package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/route-6fc5f8e744c81802.js +17 -0
  412. package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/run/route-6fc5f8e744c81802.js +17 -0
  413. package/.next/standalone/.next/static/chunks/app/api/v1/threads/route-6fc5f8e744c81802.js +17 -0
  414. package/.next/standalone/.next/static/chunks/app/api/v1/tools/route-6fc5f8e744c81802.js +17 -0
  415. package/.next/standalone/.next/static/chunks/app/api/v1/update/apply/route-6fc5f8e744c81802.js +17 -0
  416. package/.next/standalone/.next/static/chunks/app/api/v1/update/route-6fc5f8e744c81802.js +17 -0
  417. package/.next/standalone/.next/static/chunks/app/api/v1/voice/transcribe/route-6fc5f8e744c81802.js +17 -0
  418. package/.next/standalone/.next/static/chunks/app/api/v1/voice/tts/route-6fc5f8e744c81802.js +17 -0
  419. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/[id]/route-6fc5f8e744c81802.js +17 -0
  420. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/[id]/run/route-6fc5f8e744c81802.js +17 -0
  421. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/reaction-scripts/route-6fc5f8e744c81802.js +17 -0
  422. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/route-6fc5f8e744c81802.js +17 -0
  423. package/.next/standalone/.next/static/chunks/app/manifest.webmanifest/route-6fc5f8e744c81802.js +17 -0
  424. package/.next/standalone/.next/static/chunks/app/{page-7017f07f8a7a083c.js → page-04748847c6ff866f.js} +1013 -585
  425. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-6fc5f8e744c81802.js +17 -0
  426. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-6fc5f8e744c81802.js +17 -0
  427. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-6fc5f8e744c81802.js +17 -0
  428. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-6fc5f8e744c81802.js +17 -0
  429. package/.next/standalone/.next/static/css/{d80058f0b9b41c09.css → 2669e8744cc8c212.css} +2 -2
  430. package/.next/standalone/docs/adoption/changesets.json +358 -0
  431. package/.next/standalone/lib/skills/builtins/memory-organization/SKILL.md +16 -0
  432. package/.next/standalone/package.json +3 -3
  433. package/CHANGELOG.md +44 -0
  434. package/api/client.ts +9 -0
  435. package/api/types.ts +29 -0
  436. package/app/api/v1/lifecycle/adoption/route.ts +14 -2
  437. package/app/api/v1/models/[name]/compact-threads/route.ts +14 -11
  438. package/app/api/v1/threads/[thread_id]/activity/route.ts +19 -0
  439. package/app/api/v1/threads/[thread_id]/context-pin/route.test.ts +1 -0
  440. package/app/api/v1/threads/[thread_id]/context-pin/route.ts +2 -1
  441. package/app/api/v1/threads/[thread_id]/route.ts +5 -1
  442. package/app/api/v1/threads/[thread_id]/run/route.ts +0 -1
  443. package/components/chat/ChatView.tsx +52 -11
  444. package/components/chat/ContextBoundary.test.tsx +68 -1
  445. package/components/chat/ContextBoundary.tsx +92 -13
  446. package/components/chat/MessageBubble.tsx +12 -0
  447. package/components/chat/MessageList.test.tsx +31 -0
  448. package/components/chat/MessageList.tsx +49 -28
  449. package/components/chat/ToolList.test.tsx +92 -16
  450. package/components/chat/ToolList.tsx +59 -4
  451. package/components/chat/chat-helpers.test.tsx +24 -1
  452. package/components/chat/chat-helpers.ts +47 -4
  453. package/components/chat/useThreadActivity.test.tsx +113 -0
  454. package/components/chat/useThreadActivity.ts +94 -0
  455. package/components/chat/useThreadData.ts +16 -16
  456. package/components/chat/workflow-step-retry.ts +25 -0
  457. package/components/integrations/NetworkSection.tsx +2 -2
  458. package/components/ui/BootScreen.tsx +17 -0
  459. package/components/ui/WorkflowChecklist.tsx +71 -33
  460. package/hooks/useSSE.ts +28 -3
  461. package/lib/agents/citation-checker.test.ts +40 -2
  462. package/lib/agents/citation-checker.ts +56 -11
  463. package/lib/agents/compaction-pipeline.test.ts +202 -0
  464. package/lib/agents/compaction-pipeline.ts +483 -0
  465. package/lib/agents/context-boundary.ts +5 -6
  466. package/lib/agents/conversation-summary.ts +37 -21
  467. package/lib/agents/instruction-edits.test.ts +120 -0
  468. package/lib/agents/instruction-edits.ts +65 -42
  469. package/lib/agents/prepare/history-window.test.ts +18 -0
  470. package/lib/agents/prepare/history-window.ts +11 -2
  471. package/lib/agents/prepare/request.ts +4 -2
  472. package/lib/agents/prepare/system-prompt.test.ts +49 -0
  473. package/lib/agents/prepare/system-prompt.ts +16 -5
  474. package/lib/agents/prompt-registry.test.ts +5 -140
  475. package/lib/agents/prompt-registry.ts +45 -1
  476. package/lib/agents/prompt-variants.ts +146 -0
  477. package/lib/agents/proposals.test.ts +76 -0
  478. package/lib/agents/proposals.ts +13 -5
  479. package/lib/agents/run-registry.test.ts +22 -0
  480. package/lib/agents/run-registry.ts +29 -0
  481. package/lib/agents/run-thread.auto-boundary.test.ts +125 -5
  482. package/lib/agents/run-thread.retry.test.ts +67 -1
  483. package/lib/agents/run-thread.ts +110 -10
  484. package/lib/agents/sqlite-checkpoint-saver.test.ts +91 -0
  485. package/lib/agents/thread-activity.test.ts +31 -0
  486. package/lib/agents/thread-activity.ts +27 -0
  487. package/lib/agents/thread-compaction-state.test.ts +82 -0
  488. package/lib/agents/thread-compaction-state.ts +121 -0
  489. package/lib/agents/thread-compaction.test.ts +83 -4
  490. package/lib/agents/thread-compaction.ts +34 -11
  491. package/lib/agents/warm-summary-background.test.ts +219 -5
  492. package/lib/agents/warm-summary-background.ts +346 -143
  493. package/lib/agents/warm-topics.test.ts +191 -0
  494. package/lib/agents/warm-topics.ts +317 -0
  495. package/lib/agents/workflow-step-retry.test.ts +96 -0
  496. package/lib/agents/workflow-step-retry.ts +216 -0
  497. package/lib/api/browser-control.ts +0 -3
  498. package/lib/bridges/dispatcher.ts +1 -0
  499. package/lib/bridges/message-role.test.ts +81 -0
  500. package/lib/bridges/message-role.ts +23 -10
  501. package/lib/bridges/types.ts +6 -0
  502. package/lib/bridges/whatsapp-link.test.ts +32 -0
  503. package/lib/bridges/whatsapp-link.ts +21 -0
  504. package/lib/bridges/whatsapp.inbound.test.ts +239 -0
  505. package/lib/bridges/whatsapp.sender.test.ts +80 -1
  506. package/lib/bridges/whatsapp.ts +76 -38
  507. package/lib/db/migrations.ts +5 -0
  508. package/lib/env/config.ts +2 -0
  509. package/lib/env/schema.ts +12 -0
  510. package/lib/lifecycle/changeset-build.test.ts +93 -0
  511. package/lib/lifecycle/changeset-build.ts +210 -0
  512. package/lib/lifecycle/changesets.test.ts +101 -0
  513. package/lib/lifecycle/changesets.ts +166 -0
  514. package/lib/lifecycle/surface-collect.test.ts +88 -0
  515. package/lib/lifecycle/surface-collect.ts +64 -0
  516. package/lib/lifecycle/surface-snapshot.test.ts +104 -0
  517. package/lib/lifecycle/surface-snapshot.ts +210 -0
  518. package/lib/memory/record.ts +0 -2
  519. package/lib/pricing/snapshot.test.ts +70 -0
  520. package/lib/pricing/snapshot.ts +10 -2
  521. package/lib/providers/external.ts +0 -2
  522. package/lib/proxy/dispatcher.test.ts +119 -1
  523. package/lib/proxy/dispatcher.ts +22 -9
  524. package/lib/skills/builtins/memory-organization/SKILL.md +16 -0
  525. package/lib/stores/agent-configs.ts +10 -5
  526. package/lib/stores/bridges.test.ts +81 -0
  527. package/lib/stores/bridges.ts +9 -8
  528. package/lib/stores/proxy-config.test.ts +120 -0
  529. package/lib/stores/proxy-config.ts +22 -4
  530. package/lib/stores/threads.test.ts +9 -0
  531. package/lib/stores/threads.ts +33 -19
  532. package/lib/stores/version-adoption.test.ts +96 -0
  533. package/lib/stores/version-adoption.ts +239 -26
  534. package/lib/stores/workflow-progress.ts +3 -0
  535. package/lib/tools/communications/calendar.test.ts +43 -2
  536. package/lib/tools/communications/calendar.ts +2 -0
  537. package/lib/tools/communications/gmail.test.ts +51 -1
  538. package/lib/tools/communications/gmail.ts +44 -2
  539. package/lib/tools/communications/ms-todo.ts +0 -7
  540. package/lib/tools/communications/outlook-calendar.ts +2 -0
  541. package/lib/tools/communications/outlook.test.ts +33 -2
  542. package/lib/tools/communications/outlook.ts +2 -0
  543. package/lib/tools/filesystem/edit-match.test.ts +133 -0
  544. package/lib/tools/filesystem/edit-match.ts +7 -2
  545. package/lib/tools/general/memory.ts +1 -1
  546. package/lib/tools/general/workflow-progress.ts +2 -0
  547. package/lib/tools/runtime/catalog.ts +1 -25
  548. package/lib/tools/support/result-refs.test.ts +131 -0
  549. package/lib/tools/support/result-refs.ts +41 -9
  550. package/lib/triggers/registry.ts +0 -4
  551. package/lib/utils/source-link.test.ts +51 -0
  552. package/lib/utils/source-link.ts +45 -0
  553. package/package.json +3 -3
  554. package/scripts/install-to-system.ps1 +39 -11
  555. package/scripts/install-to-system.sh +37 -3
  556. package/.next/standalone/.next/server/chunks/3979.js +0 -581
  557. package/.next/standalone/.next/server/chunks/5936.js +0 -594
  558. package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/display-filters/route-36cb8b428b38b26a.js +0 -17
  559. package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/route-36cb8b428b38b26a.js +0 -17
  560. package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/thread/route-36cb8b428b38b26a.js +0 -17
  561. package/.next/standalone/.next/static/chunks/app/api/v1/agents/route-36cb8b428b38b26a.js +0 -17
  562. package/.next/standalone/.next/static/chunks/app/api/v1/allowed-sites/[hostname]/route-36cb8b428b38b26a.js +0 -17
  563. package/.next/standalone/.next/static/chunks/app/api/v1/allowed-sites/route-36cb8b428b38b26a.js +0 -17
  564. package/.next/standalone/.next/static/chunks/app/api/v1/artifacts/lifecycle/route-36cb8b428b38b26a.js +0 -17
  565. package/.next/standalone/.next/static/chunks/app/api/v1/attachments/files/route-36cb8b428b38b26a.js +0 -17
  566. package/.next/standalone/.next/static/chunks/app/api/v1/attachments/images/route-36cb8b428b38b26a.js +0 -17
  567. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/chats/route-36cb8b428b38b26a.js +0 -17
  568. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/ignores/[remote_jid]/route-36cb8b428b38b26a.js +0 -17
  569. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/ignores/route-36cb8b428b38b26a.js +0 -17
  570. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/lookup/route-36cb8b428b38b26a.js +0 -17
  571. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/pair/route-36cb8b428b38b26a.js +0 -17
  572. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/route-36cb8b428b38b26a.js +0 -17
  573. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/routes/[route_id]/route-36cb8b428b38b26a.js +0 -17
  574. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/routes/route-36cb8b428b38b26a.js +0 -17
  575. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/status/route-36cb8b428b38b26a.js +0 -17
  576. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/kinds/route-36cb8b428b38b26a.js +0 -17
  577. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/route-36cb8b428b38b26a.js +0 -17
  578. package/.next/standalone/.next/static/chunks/app/api/v1/builtin-tools/route-36cb8b428b38b26a.js +0 -17
  579. package/.next/standalone/.next/static/chunks/app/api/v1/config/route-36cb8b428b38b26a.js +0 -17
  580. package/.next/standalone/.next/static/chunks/app/api/v1/credentials/[id]/route-36cb8b428b38b26a.js +0 -17
  581. package/.next/standalone/.next/static/chunks/app/api/v1/credentials/route-36cb8b428b38b26a.js +0 -17
  582. package/.next/standalone/.next/static/chunks/app/api/v1/dashboard/currency/route-36cb8b428b38b26a.js +0 -17
  583. package/.next/standalone/.next/static/chunks/app/api/v1/dashboard/metrics/route-36cb8b428b38b26a.js +0 -17
  584. package/.next/standalone/.next/static/chunks/app/api/v1/dashboard/pricing/route-36cb8b428b38b26a.js +0 -17
  585. package/.next/standalone/.next/static/chunks/app/api/v1/dashboard/pricing-task/route-36cb8b428b38b26a.js +0 -17
  586. package/.next/standalone/.next/static/chunks/app/api/v1/delegations/codex/[job_id]/route-36cb8b428b38b26a.js +0 -17
  587. package/.next/standalone/.next/static/chunks/app/api/v1/documents/search/route-36cb8b428b38b26a.js +0 -17
  588. package/.next/standalone/.next/static/chunks/app/api/v1/documents/settings/route-36cb8b428b38b26a.js +0 -17
  589. package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/[id]/reindex/route-36cb8b428b38b26a.js +0 -17
  590. package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/[id]/route-36cb8b428b38b26a.js +0 -17
  591. package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/route-36cb8b428b38b26a.js +0 -17
  592. package/.next/standalone/.next/static/chunks/app/api/v1/env/route-36cb8b428b38b26a.js +0 -17
  593. package/.next/standalone/.next/static/chunks/app/api/v1/env-sync/allowlist/route-36cb8b428b38b26a.js +0 -17
  594. package/.next/standalone/.next/static/chunks/app/api/v1/env-sync/route-36cb8b428b38b26a.js +0 -17
  595. package/.next/standalone/.next/static/chunks/app/api/v1/events/route-36cb8b428b38b26a.js +0 -17
  596. package/.next/standalone/.next/static/chunks/app/api/v1/events/test/route-36cb8b428b38b26a.js +0 -17
  597. package/.next/standalone/.next/static/chunks/app/api/v1/extension/agents/route-36cb8b428b38b26a.js +0 -17
  598. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/activate/route-36cb8b428b38b26a.js +0 -17
  599. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/foreground/route-36cb8b428b38b26a.js +0 -17
  600. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/history/route-36cb8b428b38b26a.js +0 -17
  601. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/poll/route-36cb8b428b38b26a.js +0 -17
  602. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/progress/route-36cb8b428b38b26a.js +0 -17
  603. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/result/route-36cb8b428b38b26a.js +0 -17
  604. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/retry/route-36cb8b428b38b26a.js +0 -17
  605. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/status/route-36cb8b428b38b26a.js +0 -17
  606. package/.next/standalone/.next/static/chunks/app/api/v1/extension/browser/tabs/route-36cb8b428b38b26a.js +0 -17
  607. package/.next/standalone/.next/static/chunks/app/api/v1/extension/fill/route-36cb8b428b38b26a.js +0 -17
  608. package/.next/standalone/.next/static/chunks/app/api/v1/extension/refine/route-36cb8b428b38b26a.js +0 -17
  609. package/.next/standalone/.next/static/chunks/app/api/v1/extension/turn/route-36cb8b428b38b26a.js +0 -17
  610. package/.next/standalone/.next/static/chunks/app/api/v1/extensions/route-36cb8b428b38b26a.js +0 -17
  611. package/.next/standalone/.next/static/chunks/app/api/v1/extensions/tools/[name]/config/route-36cb8b428b38b26a.js +0 -17
  612. package/.next/standalone/.next/static/chunks/app/api/v1/extensions/tools/[name]/route-36cb8b428b38b26a.js +0 -17
  613. package/.next/standalone/.next/static/chunks/app/api/v1/extensions/tools/[name]/secrets/route-36cb8b428b38b26a.js +0 -17
  614. package/.next/standalone/.next/static/chunks/app/api/v1/files/[name]/route-36cb8b428b38b26a.js +0 -17
  615. package/.next/standalone/.next/static/chunks/app/api/v1/fs/browse/route-36cb8b428b38b26a.js +0 -17
  616. package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/[id]/route-36cb8b428b38b26a.js +0 -17
  617. package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/default/route-36cb8b428b38b26a.js +0 -17
  618. package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/route-36cb8b428b38b26a.js +0 -17
  619. package/.next/standalone/.next/static/chunks/app/api/v1/health/probes/route-36cb8b428b38b26a.js +0 -17
  620. package/.next/standalone/.next/static/chunks/app/api/v1/health/route-36cb8b428b38b26a.js +0 -17
  621. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/[name]/route-36cb8b428b38b26a.js +0 -17
  622. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/[name]/test/route-36cb8b428b38b26a.js +0 -17
  623. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/callback/route-36cb8b428b38b26a.js +0 -17
  624. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/start/route-36cb8b428b38b26a.js +0 -17
  625. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/status/route-36cb8b428b38b26a.js +0 -17
  626. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/callback/route-36cb8b428b38b26a.js +0 -17
  627. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/start/route-36cb8b428b38b26a.js +0 -17
  628. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/status/route-36cb8b428b38b26a.js +0 -17
  629. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/route-36cb8b428b38b26a.js +0 -17
  630. package/.next/standalone/.next/static/chunks/app/api/v1/lifecycle/adoption/route-36cb8b428b38b26a.js +0 -17
  631. package/.next/standalone/.next/static/chunks/app/api/v1/local-file/route-36cb8b428b38b26a.js +0 -17
  632. package/.next/standalone/.next/static/chunks/app/api/v1/logs/route-36cb8b428b38b26a.js +0 -17
  633. package/.next/standalone/.next/static/chunks/app/api/v1/maps/embed/route-36cb8b428b38b26a.js +0 -17
  634. package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/[name]/route-36cb8b428b38b26a.js +0 -17
  635. package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/registry/route-36cb8b428b38b26a.js +0 -17
  636. package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/route-36cb8b428b38b26a.js +0 -17
  637. package/.next/standalone/.next/static/chunks/app/api/v1/memory/[namespace]/[key]/route-36cb8b428b38b26a.js +0 -17
  638. package/.next/standalone/.next/static/chunks/app/api/v1/memory/policy/route-36cb8b428b38b26a.js +0 -17
  639. package/.next/standalone/.next/static/chunks/app/api/v1/memory/route-36cb8b428b38b26a.js +0 -17
  640. package/.next/standalone/.next/static/chunks/app/api/v1/memory/search/route-36cb8b428b38b26a.js +0 -17
  641. package/.next/standalone/.next/static/chunks/app/api/v1/models/[name]/compact-threads/route-36cb8b428b38b26a.js +0 -17
  642. package/.next/standalone/.next/static/chunks/app/api/v1/models/[name]/route-36cb8b428b38b26a.js +0 -17
  643. package/.next/standalone/.next/static/chunks/app/api/v1/models/route-36cb8b428b38b26a.js +0 -17
  644. package/.next/standalone/.next/static/chunks/app/api/v1/packages/catalog/route-36cb8b428b38b26a.js +0 -17
  645. package/.next/standalone/.next/static/chunks/app/api/v1/packages/defaults/[id]/route-36cb8b428b38b26a.js +0 -17
  646. package/.next/standalone/.next/static/chunks/app/api/v1/packages/install/[id]/route-36cb8b428b38b26a.js +0 -17
  647. package/.next/standalone/.next/static/chunks/app/api/v1/packages/install/route-36cb8b428b38b26a.js +0 -17
  648. package/.next/standalone/.next/static/chunks/app/api/v1/packages/manifests/[name]/enabled/route-36cb8b428b38b26a.js +0 -17
  649. package/.next/standalone/.next/static/chunks/app/api/v1/packages/manifests/[name]/route-36cb8b428b38b26a.js +0 -17
  650. package/.next/standalone/.next/static/chunks/app/api/v1/packages/manifests/route-36cb8b428b38b26a.js +0 -17
  651. package/.next/standalone/.next/static/chunks/app/api/v1/packages/reload/route-36cb8b428b38b26a.js +0 -17
  652. package/.next/standalone/.next/static/chunks/app/api/v1/packages/route-36cb8b428b38b26a.js +0 -17
  653. package/.next/standalone/.next/static/chunks/app/api/v1/page-capture/route-36cb8b428b38b26a.js +0 -17
  654. package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/[id]/approve/route-36cb8b428b38b26a.js +0 -17
  655. package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/[id]/deny/route-36cb8b428b38b26a.js +0 -17
  656. package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/route-36cb8b428b38b26a.js +0 -17
  657. package/.next/standalone/.next/static/chunks/app/api/v1/profile/location/route-36cb8b428b38b26a.js +0 -17
  658. package/.next/standalone/.next/static/chunks/app/api/v1/profile/route-36cb8b428b38b26a.js +0 -17
  659. package/.next/standalone/.next/static/chunks/app/api/v1/providers/[provider]/models/route-36cb8b428b38b26a.js +0 -17
  660. package/.next/standalone/.next/static/chunks/app/api/v1/providers/[provider]/probe/route-36cb8b428b38b26a.js +0 -17
  661. package/.next/standalone/.next/static/chunks/app/api/v1/providers/github-copilot/auth/route-36cb8b428b38b26a.js +0 -17
  662. package/.next/standalone/.next/static/chunks/app/api/v1/providers/route-36cb8b428b38b26a.js +0 -17
  663. package/.next/standalone/.next/static/chunks/app/api/v1/proxy-config/route-36cb8b428b38b26a.js +0 -17
  664. package/.next/standalone/.next/static/chunks/app/api/v1/redaction/init/route-36cb8b428b38b26a.js +0 -17
  665. package/.next/standalone/.next/static/chunks/app/api/v1/redaction/route-36cb8b428b38b26a.js +0 -17
  666. package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/[id]/route-36cb8b428b38b26a.js +0 -17
  667. package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/[id]/run/route-36cb8b428b38b26a.js +0 -17
  668. package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/route-36cb8b428b38b26a.js +0 -17
  669. package/.next/standalone/.next/static/chunks/app/api/v1/security/idle-timeout/route-36cb8b428b38b26a.js +0 -17
  670. package/.next/standalone/.next/static/chunks/app/api/v1/security/pin/route-36cb8b428b38b26a.js +0 -17
  671. package/.next/standalone/.next/static/chunks/app/api/v1/security/state/route-36cb8b428b38b26a.js +0 -17
  672. package/.next/standalone/.next/static/chunks/app/api/v1/security/unlock/route-36cb8b428b38b26a.js +0 -17
  673. package/.next/standalone/.next/static/chunks/app/api/v1/security/verify-pin/route-36cb8b428b38b26a.js +0 -17
  674. package/.next/standalone/.next/static/chunks/app/api/v1/setup/test-key/route-36cb8b428b38b26a.js +0 -17
  675. package/.next/standalone/.next/static/chunks/app/api/v1/skills/[id]/route-36cb8b428b38b26a.js +0 -17
  676. package/.next/standalone/.next/static/chunks/app/api/v1/skills/repos/[id]/route-36cb8b428b38b26a.js +0 -17
  677. package/.next/standalone/.next/static/chunks/app/api/v1/skills/repos/route-36cb8b428b38b26a.js +0 -17
  678. package/.next/standalone/.next/static/chunks/app/api/v1/skills/route-36cb8b428b38b26a.js +0 -17
  679. package/.next/standalone/.next/static/chunks/app/api/v1/system/abort/route-36cb8b428b38b26a.js +0 -17
  680. package/.next/standalone/.next/static/chunks/app/api/v1/system/restart/route-36cb8b428b38b26a.js +0 -17
  681. package/.next/standalone/.next/static/chunks/app/api/v1/tailscale/route-36cb8b428b38b26a.js +0 -17
  682. package/.next/standalone/.next/static/chunks/app/api/v1/tasks/[agent_id]/route-36cb8b428b38b26a.js +0 -17
  683. package/.next/standalone/.next/static/chunks/app/api/v1/tasks/route-36cb8b428b38b26a.js +0 -17
  684. package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/context-pin/route-36cb8b428b38b26a.js +0 -17
  685. package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/route-36cb8b428b38b26a.js +0 -17
  686. package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/run/route-36cb8b428b38b26a.js +0 -17
  687. package/.next/standalone/.next/static/chunks/app/api/v1/threads/route-36cb8b428b38b26a.js +0 -17
  688. package/.next/standalone/.next/static/chunks/app/api/v1/tools/route-36cb8b428b38b26a.js +0 -17
  689. package/.next/standalone/.next/static/chunks/app/api/v1/update/apply/route-36cb8b428b38b26a.js +0 -17
  690. package/.next/standalone/.next/static/chunks/app/api/v1/update/route-36cb8b428b38b26a.js +0 -17
  691. package/.next/standalone/.next/static/chunks/app/api/v1/voice/transcribe/route-36cb8b428b38b26a.js +0 -17
  692. package/.next/standalone/.next/static/chunks/app/api/v1/voice/tts/route-36cb8b428b38b26a.js +0 -17
  693. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/[id]/route-36cb8b428b38b26a.js +0 -17
  694. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/[id]/run/route-36cb8b428b38b26a.js +0 -17
  695. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/reaction-scripts/route-36cb8b428b38b26a.js +0 -17
  696. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/route-36cb8b428b38b26a.js +0 -17
  697. package/.next/standalone/.next/static/chunks/app/manifest.webmanifest/route-36cb8b428b38b26a.js +0 -17
  698. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-36cb8b428b38b26a.js +0 -17
  699. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-36cb8b428b38b26a.js +0 -17
  700. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-36cb8b428b38b26a.js +0 -17
  701. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-36cb8b428b38b26a.js +0 -17
  702. /package/.next/standalone/.next/static/{NUrC9xax1sp1Q70nlFqS6 → hwujW4hR1b-r3k5WdMxZO}/_buildManifest.js +0 -0
  703. /package/.next/standalone/.next/static/{NUrC9xax1sp1Q70nlFqS6 → hwujW4hR1b-r3k5WdMxZO}/_ssgManifest.js +0 -0
@@ -93,7 +93,7 @@ async function dispatchSystemSignalWakeups() {
93
93
  active: new Set()
94
94
  }));
95
95
  const { getQueueDepth } = await __webpack_require__.e(/* import() */ 2683).then(__webpack_require__.bind(__webpack_require__, 22683));
96
- const { runAgentTurn } = await Promise.all(/* import() */[__webpack_require__.e(6703), __webpack_require__.e(3399), __webpack_require__.e(2563)]).then(__webpack_require__.bind(__webpack_require__, 5514));
96
+ const { runAgentTurn } = await Promise.all(/* import() */[__webpack_require__.e(6703), __webpack_require__.e(3399), __webpack_require__.e(9164)]).then(__webpack_require__.bind(__webpack_require__, 5514));
97
97
  for (const threadId of (0,_lib_stores_system_signals__WEBPACK_IMPORTED_MODULE_4__/* .dueSystemSignalThreads */ .Hl)()){
98
98
  if (state.active.size >= 2) break;
99
99
  if (state.active.has(threadId) || getQueueDepth(threadId) > 0) continue;
@@ -23,7 +23,7 @@ __webpack_require__.d(__webpack_exports__, {
23
23
  ZS: () => (/* binding */ handleBrowserTabs)
24
24
  });
25
25
 
26
- // UNUSED EXPORTS: EXTENSION_LIVENESS_WINDOW_MS, ExtractFormat, MAX_QUEUE_DEPTH, POLL_WAIT_MS, ScreenshotFormat, ScrollTo, _CommandShape, _markExtensionSeen, _queueDepth, _resetExtensionStatus, _resetQueue, getExtensionStatus, pollNextCommand, submitResult
26
+ // UNUSED EXPORTS: EXTENSION_LIVENESS_WINDOW_MS, ExtractFormat, MAX_QUEUE_DEPTH, POLL_WAIT_MS, ScreenshotFormat, ScrollTo, _markExtensionSeen, _queueDepth, _resetExtensionStatus, _resetQueue, getExtensionStatus, pollNextCommand, submitResult
27
27
 
28
28
  // EXTERNAL MODULE: ./node_modules/zod/v4/classic/schemas.js + 4 modules
29
29
  var schemas = __webpack_require__(97377);
@@ -940,7 +940,6 @@ async function handleBrowserRetry(req) {
940
940
  }, 409);
941
941
  return awaitBrowserCommand(entry.retry_payload, parsed.data.timeout_ms ?? 30000);
942
942
  }
943
- /** @internal — exported for the agent-side tool layer; do not import elsewhere. */
944
943
 
945
944
 
946
945
  /***/ }),
@@ -782,7 +782,7 @@ class SSOOIDCClient extends client/* Client */.K {
782
782
  }
783
783
 
784
784
  // EXTERNAL MODULE: ./node_modules/@smithy/core/dist-es/submodules/client/smithy-client/client-command-builder.js + 2 modules
785
- var client_command_builder = __webpack_require__(74789);
785
+ var client_command_builder = __webpack_require__(97170);
786
786
  ;// ./node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/commandBuilder.js
787
787
 
788
788
 
@@ -84,23 +84,27 @@ async function readToolResultRef(args) {
84
84
  }
85
85
  const offset = Math.max(0, Math.floor(args.offset ?? 0));
86
86
  const limit = Math.min(MAX_READ_BYTES, Math.max(1, Math.floor(args.limit ?? DEFAULT_PREVIEW_BYTES)));
87
- let buf;
88
87
  try {
89
88
  const file = await node_fs__WEBPACK_IMPORTED_MODULE_0__.promises.open(abs, "r");
90
89
  try {
91
90
  const stat = await file.stat();
92
- const readLength = Math.max(0, Math.min(limit, stat.size - offset));
93
- buf = Buffer.alloc(readLength);
94
- if (readLength > 0) await file.read(buf, 0, readLength, offset);
95
- const nextOffset = offset + readLength;
91
+ // Read a few bytes either side so the window can be moved onto UTF-8
92
+ // character boundaries; paging must never split a multi-byte character.
93
+ const windowStart = Math.min(Math.max(0, offset - 3), stat.size);
94
+ const windowLength = Math.max(0, Math.min(stat.size - windowStart, offset - windowStart + limit + 3));
95
+ const buf = Buffer.alloc(windowLength);
96
+ if (windowLength > 0) await file.read(buf, 0, windowLength, windowStart);
97
+ const { start, end } = utf8Window(buf, Math.min(offset, stat.size) - windowStart, limit);
98
+ const actualOffset = windowStart + start;
99
+ const nextOffset = windowStart + end;
96
100
  return {
97
101
  ok: true,
98
102
  status: "done",
99
103
  name: args.name,
100
- offset,
104
+ offset: actualOffset,
101
105
  limit,
102
106
  bytes: stat.size,
103
- result: buf.toString("utf8"),
107
+ result: buf.subarray(start, end).toString("utf8"),
104
108
  next_offset: nextOffset < stat.size ? nextOffset : null,
105
109
  done: nextOffset >= stat.size
106
110
  };
@@ -116,6 +120,26 @@ async function readToolResultRef(args) {
116
120
  };
117
121
  }
118
122
  }
123
+ const isUtf8Continuation = (byte)=>byte !== undefined && (byte & 0xc0) === 0x80;
124
+ // Moves `[start, start + limit)` inside `buf` onto character boundaries: the
125
+ // start backs up to its lead byte, and the end backs up so it does not cut a
126
+ // character — unless that character alone exceeds `limit`, in which case the
127
+ // whole character is returned so paging always makes progress.
128
+ function utf8Window(buf, start, limit) {
129
+ let s = Math.max(0, Math.min(start, buf.length));
130
+ while(s > 0 && isUtf8Continuation(buf[s]))s--;
131
+ let e = Math.min(buf.length, s + limit);
132
+ if (e < buf.length && isUtf8Continuation(buf[e])) {
133
+ let lead = e;
134
+ while(lead > s && isUtf8Continuation(buf[lead]))lead--;
135
+ if (lead > s) e = lead;
136
+ else while(e < buf.length && isUtf8Continuation(buf[e]))e++;
137
+ }
138
+ return {
139
+ start: s,
140
+ end: e
141
+ };
142
+ }
119
143
  function serializeToolResult(result) {
120
144
  if (typeof result === "string") return result;
121
145
  return JSON.stringify(result) ?? String(result);
@@ -133,10 +157,21 @@ function buildPreview(value, mimeType) {
133
157
  try {
134
158
  const parsed = JSON.parse(value);
135
159
  if (Array.isArray(parsed)) {
136
- const preview = parsed.slice(0, JSON_ARRAY_PREVIEW_ITEMS);
160
+ // Cap by bytes as well as items: a few huge rows must not smuggle the
161
+ // whole result back inline.
162
+ for(let n = Math.min(parsed.length, JSON_ARRAY_PREVIEW_ITEMS); n > 0; n--){
163
+ const preview = parsed.slice(0, n);
164
+ const bytes = Buffer.byteLength(JSON.stringify(preview));
165
+ if (bytes <= DEFAULT_PREVIEW_BYTES) return {
166
+ value: preview,
167
+ bytes,
168
+ total_count: parsed.length
169
+ };
170
+ }
171
+ const text = takeUtf8Prefix(value, DEFAULT_PREVIEW_BYTES);
137
172
  return {
138
- value: preview,
139
- bytes: Buffer.byteLength(JSON.stringify(preview)),
173
+ value: text,
174
+ bytes: Buffer.byteLength(text),
140
175
  total_count: parsed.length
141
176
  };
142
177
  }
@@ -159,6 +194,8 @@ function takeUtf8Prefix(value, maxBytes) {
159
194
  if (Buffer.byteLength(value.slice(0, mid)) <= maxBytes) lo = mid;
160
195
  else hi = mid - 1;
161
196
  }
197
+ const code = value.charCodeAt(lo - 1);
198
+ if (lo > 0 && code >= 0xd800 && code <= 0xdbff) lo--;
162
199
  return value.slice(0, lo);
163
200
  }
164
201
  function safeToolName(name) {
@@ -50,15 +50,15 @@ async function bootNode() {
50
50
  }
51
51
  const { registerShutdownHandlers } = await Promise.all(/* import() */[__webpack_require__.e(8067), __webpack_require__.e(9032)]).then(__webpack_require__.bind(__webpack_require__, 39032));
52
52
  registerShutdownHandlers();
53
- const { initTools } = await Promise.all(/* import() */[__webpack_require__.e(8849), __webpack_require__.e(6703), __webpack_require__.e(3399), __webpack_require__.e(9590), __webpack_require__.e(8067), __webpack_require__.e(8461), __webpack_require__.e(1433), __webpack_require__.e(2563), __webpack_require__.e(2207)]).then(__webpack_require__.bind(__webpack_require__, 72942));
53
+ const { initTools } = await Promise.all(/* import() */[__webpack_require__.e(8849), __webpack_require__.e(6703), __webpack_require__.e(3399), __webpack_require__.e(9590), __webpack_require__.e(8067), __webpack_require__.e(8461), __webpack_require__.e(1433), __webpack_require__.e(9164), __webpack_require__.e(2207)]).then(__webpack_require__.bind(__webpack_require__, 22215));
54
54
  initTools();
55
55
  const { recoverAbandonedMessageDrafts } = await Promise.all(/* import() */[__webpack_require__.e(8849), __webpack_require__.e(9590), __webpack_require__.e(8067), __webpack_require__.e(8461), __webpack_require__.e(4588)]).then(__webpack_require__.bind(__webpack_require__, 48461));
56
56
  recoverAbandonedMessageDrafts();
57
57
  const { processMessageEmbeddingJobs } = await Promise.all(/* import() */[__webpack_require__.e(8849), __webpack_require__.e(9590), __webpack_require__.e(8067), __webpack_require__.e(7445)]).then(__webpack_require__.bind(__webpack_require__, 32313));
58
58
  void processMessageEmbeddingJobs().catch((err)=>console.warn("[embeddings] startup message queue failed:", err));
59
- const triggers = await Promise.all(/* import() */[__webpack_require__.e(8849), __webpack_require__.e(6703), __webpack_require__.e(3399), __webpack_require__.e(9590), __webpack_require__.e(8067), __webpack_require__.e(8461), __webpack_require__.e(1433), __webpack_require__.e(2563), __webpack_require__.e(2207)]).then(__webpack_require__.bind(__webpack_require__, 64439));
59
+ const triggers = await Promise.all(/* import() */[__webpack_require__.e(8849), __webpack_require__.e(6703), __webpack_require__.e(3399), __webpack_require__.e(9590), __webpack_require__.e(8067), __webpack_require__.e(8461), __webpack_require__.e(1433), __webpack_require__.e(9164), __webpack_require__.e(2207)]).then(__webpack_require__.bind(__webpack_require__, 64439));
60
60
  await triggers.startAllTriggerHandlers();
61
- const { startScheduler } = await Promise.all(/* import() */[__webpack_require__.e(8849), __webpack_require__.e(6703), __webpack_require__.e(3399), __webpack_require__.e(9590), __webpack_require__.e(8067), __webpack_require__.e(8461), __webpack_require__.e(1433), __webpack_require__.e(2563), __webpack_require__.e(2207)]).then(__webpack_require__.bind(__webpack_require__, 47285));
61
+ const { startScheduler } = await Promise.all(/* import() */[__webpack_require__.e(8849), __webpack_require__.e(6703), __webpack_require__.e(3399), __webpack_require__.e(9590), __webpack_require__.e(8067), __webpack_require__.e(8461), __webpack_require__.e(1433), __webpack_require__.e(9164), __webpack_require__.e(2207)]).then(__webpack_require__.bind(__webpack_require__, 47285));
62
62
  startScheduler();
63
63
  const { startSystemSignalLifecycle } = await Promise.all(/* import() */[__webpack_require__.e(8849), __webpack_require__.e(9590), __webpack_require__.e(8067), __webpack_require__.e(8461), __webpack_require__.e(1433), __webpack_require__.e(9826)]).then(__webpack_require__.bind(__webpack_require__, 1433));
64
64
  startSystemSignalLifecycle();
@@ -92,7 +92,9 @@ function startRun(thread_id, agent_id) {
92
92
  inflight_tools: new Set(),
93
93
  tool_started_at: new Map(),
94
94
  tool_time_ms_done: 0,
95
- steering: []
95
+ steering: [],
96
+ phase: "starting",
97
+ phase_label: "Starting…"
96
98
  };
97
99
  runs.set(thread_id, run);
98
100
  // Wake any GET subscribers that attached before the run was registered.
@@ -220,6 +222,33 @@ function scheduleMaxWatchdog(run) {
220
222
  finishRun(run, "error");
221
223
  }, fireIn).unref?.();
222
224
  }
225
+ // Mirrors the labels hooks/useSSE.ts derives from the same chunks.
226
+ function trackPhase(run, chunk) {
227
+ const data = chunk.data ?? {};
228
+ const set = (phase, label)=>{
229
+ run.phase = phase;
230
+ run.phase_label = label;
231
+ };
232
+ if (chunk.type === "status") {
233
+ const phase = typeof data.phase === "string" && data.phase ? data.phase : run.phase;
234
+ const label = typeof data.label === "string" && data.label.trim() ? data.label : "Thinking…";
235
+ set(phase, label);
236
+ } else if (chunk.type === "text_delta") {
237
+ set("responding", "Responding…");
238
+ } else if (chunk.type === "thinking_delta") {
239
+ if (run.inflight_tools.size === 0) set("thinking", "Thinking…");
240
+ } else if (chunk.type === "tool_call") {
241
+ const name = typeof data.name === "string" && data.name ? data.name : "tool";
242
+ set("tool", `Using ${name}…`);
243
+ } else if (chunk.type === "tool_result") {
244
+ const remaining = typeof data.id === "string" ? [
245
+ ...run.inflight_tools
246
+ ].filter((id)=>id !== data.id) : [
247
+ ...run.inflight_tools
248
+ ];
249
+ if (remaining.length === 0) set("thinking", "Thinking…");
250
+ }
251
+ }
223
252
  function broadcast(run, chunk) {
224
253
  // Identity-check: a superseded run must not smear trailing chunks onto
225
254
  // the replacement entry in the registry.
@@ -232,6 +261,7 @@ function broadcast(run, chunk) {
232
261
  // buffer, don't fan out to subscribers, or the SSE wire would carry
233
262
  // meaningless tick events.
234
263
  if (chunk.type === "heartbeat") return;
264
+ trackPhase(run, chunk);
235
265
  if (chunk.type === "text_delta") {
236
266
  run.final_text += chunk.data.delta ?? "";
237
267
  } else if (chunk.type === "reset_text") {
@@ -295,6 +295,7 @@ function getConfig() {
295
295
  streamParseTripwire: parsePositiveInt(env.JARELA_STREAM_PARSE_TRIPWIRE, _schema__WEBPACK_IMPORTED_MODULE_2__/* .ENV_DEFAULTS */ .F$.streamParseTripwire),
296
296
  recallBudgetMs: parseNonNegativeInt(env.JARELA_RECALL_BUDGET_MS, _schema__WEBPACK_IMPORTED_MODULE_2__/* .ENV_DEFAULTS */ .F$.recallBudgetMs),
297
297
  warmSummaryBudgetMs: parseNonNegativeInt(env.JARELA_WARM_SUMMARY_BUDGET_MS, _schema__WEBPACK_IMPORTED_MODULE_2__/* .ENV_DEFAULTS */ .F$.warmSummaryBudgetMs),
298
+ compactionTimeoutMs: parsePositiveInt(env.JARELA_COMPACTION_TIMEOUT_MS, _schema__WEBPACK_IMPORTED_MODULE_2__/* .ENV_DEFAULTS */ .F$.compactionTimeoutMs),
298
299
  maxThreadMessages: parsePositiveInt(env.JARELA_MAX_THREAD_MESSAGES, _schema__WEBPACK_IMPORTED_MODULE_2__/* .ENV_DEFAULTS */ .F$.maxThreadMessages),
299
300
  maxSessionArchives: parsePositiveInt(env.JARELA_MAX_SESSION_ARCHIVES, _schema__WEBPACK_IMPORTED_MODULE_2__/* .ENV_DEFAULTS */ .F$.maxSessionArchives),
300
301
  // tools
@@ -331,12 +331,17 @@ function upsertAgentConfigTransaction(input) {
331
331
  const db = (0,_lib_db__WEBPACK_IMPORTED_MODULE_0__/* .getDb */ .Lf)();
332
332
  const existing = getAgentConfig(input.id);
333
333
  const created_at = existing?.created_at ?? t;
334
- const mbti = input.adaptive_mbti ?? toMbti(existing?.adaptive_mbti) ?? "INTJ";
334
+ const existingMbti = toMbti(existing?.adaptive_mbti);
335
+ const mbti = input.adaptive_mbti ?? existingMbti ?? "INTJ";
335
336
  const preset = _lib_agents_adaptive_persona_presets__WEBPACK_IMPORTED_MODULE_2__/* .MBTI_PRESETS */ .e[mbti];
336
- const strength = input.adaptive_persona_strength ?? preset.strength;
337
- const empathy = input.adaptive_empathy ?? preset.empathy;
338
- const expressiveness = input.adaptive_expressiveness ?? preset.expressiveness;
339
- const verbosity = input.adaptive_verbosity ?? preset.verbosity;
337
+ // Omitted sliders keep their tuned values; they only fall back to the
338
+ // preset when the type changes or the agent is new. Otherwise every
339
+ // partial update (approved proposals, tool edits) reset them.
340
+ const keepTuned = existing !== null && existing !== undefined && mbti === existingMbti;
341
+ const strength = input.adaptive_persona_strength ?? (keepTuned ? existing.adaptive_persona_strength : preset.strength);
342
+ const empathy = input.adaptive_empathy ?? (keepTuned ? existing.adaptive_empathy : preset.empathy);
343
+ const expressiveness = input.adaptive_expressiveness ?? (keepTuned ? existing.adaptive_expressiveness : preset.expressiveness);
344
+ const verbosity = input.adaptive_verbosity ?? (keepTuned ? existing.adaptive_verbosity : preset.verbosity);
340
345
  if (input.is_default) db.prepare("UPDATE agent_configs SET is_default=0").run();
341
346
  // harness_id: explicit `undefined` means "keep existing"; explicit `null`
342
347
  // means "use the global default". Empty string is normalised to null too,
@@ -293,7 +293,7 @@ function bindCallerConfig(config, credentialsProvider) {
293
293
  // EXTERNAL MODULE: ./node_modules/@smithy/core/dist-es/submodules/config/node-config-provider/configLoader.js + 5 modules
294
294
  var configLoader = __webpack_require__(26728);
295
295
  // EXTERNAL MODULE: ./node_modules/@smithy/core/dist-es/submodules/config/util-config-provider/booleanSelector.js
296
- var booleanSelector = __webpack_require__(84700);
296
+ var booleanSelector = __webpack_require__(62319);
297
297
  // EXTERNAL MODULE: ./node_modules/@smithy/core/dist-es/submodules/config/util-config-provider/types.js
298
298
  var types = __webpack_require__(48083);
299
299
  ;// ./node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/clock-skew-node-config.js
@@ -1211,7 +1211,7 @@ __webpack_require__.d(__webpack_exports__, {
1211
1211
  // UNUSED EXPORTS: getDefaultClientConfiguration
1212
1212
 
1213
1213
  // EXTERNAL MODULE: ./node_modules/@smithy/core/dist-es/submodules/transport/hasOwn.js
1214
- var hasOwn = __webpack_require__(75073);
1214
+ var hasOwn = __webpack_require__(97454);
1215
1215
  ;// ./node_modules/@smithy/types/dist-es/extensions/checksum.js
1216
1216
  var AlgorithmId;
1217
1217
  (function (AlgorithmId) {
@@ -1343,7 +1343,7 @@ const resolveDefaultRuntimeConfig = (config) => {
1343
1343
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1344
1344
  /* harmony export */ a: () => (/* binding */ toEndpointV1)
1345
1345
  /* harmony export */ });
1346
- /* harmony import */ var _hasOwn__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(75073);
1346
+ /* harmony import */ var _hasOwn__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(97454);
1347
1347
  /* harmony import */ var _parseUrl__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(91134);
1348
1348
 
1349
1349
 
@@ -1467,7 +1467,7 @@ const getEndpointUrlConfig = (serviceId) => ({
1467
1467
  });
1468
1468
 
1469
1469
  // EXTERNAL MODULE: ./node_modules/@smithy/core/dist-es/submodules/config/util-config-provider/booleanSelector.js
1470
- var booleanSelector = __webpack_require__(84700);
1470
+ var booleanSelector = __webpack_require__(62319);
1471
1471
  // EXTERNAL MODULE: ./node_modules/@smithy/core/dist-es/submodules/config/util-config-provider/types.js
1472
1472
  var types = __webpack_require__(48083);
1473
1473
  ;// ./node_modules/@smithy/core/dist-es/submodules/endpoints/middleware-endpoint/adaptors/getIgnoreConfiguredEndpointUrls.js
@@ -2789,7 +2789,7 @@ const defaultUserAgent = (/* unused pure expression or super */ null && (createD
2789
2789
  /* harmony export */ Ko: () => (/* binding */ NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS)
2790
2790
  /* harmony export */ });
2791
2791
  /* unused harmony exports ENV_USE_FIPS_ENDPOINT, CONFIG_USE_FIPS_ENDPOINT, DEFAULT_USE_FIPS_ENDPOINT, nodeFipsConfigSelectors */
2792
- /* harmony import */ var _util_config_provider_booleanSelector__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(84700);
2792
+ /* harmony import */ var _util_config_provider_booleanSelector__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(62319);
2793
2793
  /* harmony import */ var _util_config_provider_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(48083);
2794
2794
 
2795
2795
 
@@ -2835,6 +2835,22 @@ var SelectorType;
2835
2835
  })(SelectorType || (SelectorType = {}));
2836
2836
 
2837
2837
 
2838
+ /***/ }),
2839
+
2840
+ /***/ 49585:
2841
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2842
+
2843
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2844
+ /* harmony export */ f: () => (/* binding */ SerdeContext)
2845
+ /* harmony export */ });
2846
+ class SerdeContext {
2847
+ serdeContext;
2848
+ setSerdeContext(serdeContext) {
2849
+ this.serdeContext = serdeContext;
2850
+ }
2851
+ }
2852
+
2853
+
2838
2854
  /***/ }),
2839
2855
 
2840
2856
  /***/ 52053:
@@ -3074,7 +3090,7 @@ var service_error_classification = __webpack_require__(82361);
3074
3090
  // EXTERNAL MODULE: ./node_modules/@smithy/core/dist-es/submodules/retry/util-retry/constants.js
3075
3091
  var constants = __webpack_require__(61733);
3076
3092
  // EXTERNAL MODULE: ./node_modules/@smithy/core/dist-es/submodules/transport/hasOwn.js
3077
- var hasOwn = __webpack_require__(75073);
3093
+ var hasOwn = __webpack_require__(97454);
3078
3094
  // EXTERNAL MODULE: ./node_modules/@smithy/core/dist-es/submodules/transport/httpResponse.js
3079
3095
  var httpResponse = __webpack_require__(48296);
3080
3096
  // EXTERNAL MODULE: ./node_modules/@smithy/core/dist-es/submodules/serde/date-utils.js + 1 modules
@@ -4296,6 +4312,25 @@ const getRecursionDetectionPlugin = (options) => ({
4296
4312
  });
4297
4313
 
4298
4314
 
4315
+ /***/ }),
4316
+
4317
+ /***/ 62319:
4318
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4319
+
4320
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
4321
+ /* harmony export */ Q: () => (/* binding */ booleanSelector)
4322
+ /* harmony export */ });
4323
+ const booleanSelector = (obj, key, type) => {
4324
+ if (!(key in obj))
4325
+ return undefined;
4326
+ if (obj[key] === "true")
4327
+ return true;
4328
+ if (obj[key] === "false")
4329
+ return false;
4330
+ throw new Error(`Cannot load ${type} "${key}". Expected "true" or "false", got ${obj[key]}.`);
4331
+ };
4332
+
4333
+
4299
4334
  /***/ }),
4300
4335
 
4301
4336
  /***/ 62953:
@@ -4457,22 +4492,6 @@ function determineTimestampFormat(ns, settings) {
4457
4492
  }
4458
4493
 
4459
4494
 
4460
- /***/ }),
4461
-
4462
- /***/ 71966:
4463
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4464
-
4465
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
4466
- /* harmony export */ f: () => (/* binding */ SerdeContext)
4467
- /* harmony export */ });
4468
- class SerdeContext {
4469
- serdeContext;
4470
- setSerdeContext(serdeContext) {
4471
- this.serdeContext = serdeContext;
4472
- }
4473
- }
4474
-
4475
-
4476
4495
  /***/ }),
4477
4496
 
4478
4497
  /***/ 72315:
@@ -5044,7 +5063,7 @@ function getSchemaSerdePlugin(config) {
5044
5063
  /* harmony export */ e$: () => (/* binding */ NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS)
5045
5064
  /* harmony export */ });
5046
5065
  /* unused harmony exports ENV_USE_DUALSTACK_ENDPOINT, CONFIG_USE_DUALSTACK_ENDPOINT, DEFAULT_USE_DUALSTACK_ENDPOINT, nodeDualstackConfigSelectors */
5047
- /* harmony import */ var _util_config_provider_booleanSelector__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(84700);
5066
+ /* harmony import */ var _util_config_provider_booleanSelector__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(62319);
5048
5067
  /* harmony import */ var _util_config_provider_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(48083);
5049
5068
 
5050
5069
 
@@ -5364,25 +5383,6 @@ class AwsSdkSigV4Signer {
5364
5383
  const AWSSDKSigV4Signer = (/* unused pure expression or super */ null && (AwsSdkSigV4Signer));
5365
5384
 
5366
5385
 
5367
- /***/ }),
5368
-
5369
- /***/ 84700:
5370
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
5371
-
5372
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
5373
- /* harmony export */ Q: () => (/* binding */ booleanSelector)
5374
- /* harmony export */ });
5375
- const booleanSelector = (obj, key, type) => {
5376
- if (!(key in obj))
5377
- return undefined;
5378
- if (obj[key] === "true")
5379
- return true;
5380
- if (obj[key] === "false")
5381
- return false;
5382
- throw new Error(`Cannot load ${type} "${key}". Expected "true" or "false", got ${obj[key]}.`);
5383
- };
5384
-
5385
-
5386
5386
  /***/ }),
5387
5387
 
5388
5388
  /***/ 84931:
@@ -5532,14 +5532,14 @@ const parseUrl = (url) => {
5532
5532
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
5533
5533
  /* harmony export */ t: () => (/* binding */ HttpProtocol)
5534
5534
  /* harmony export */ });
5535
- /* harmony import */ var _smithy_core_transport__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(75073);
5535
+ /* harmony import */ var _smithy_core_transport__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(97454);
5536
5536
  /* harmony import */ var _smithy_core_schema__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(98630);
5537
5537
  /* harmony import */ var _smithy_core_schema__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(55282);
5538
5538
  /* harmony import */ var _smithy_core_schema__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(98751);
5539
5539
  /* harmony import */ var _smithy_core_transport__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(51810);
5540
5540
  /* harmony import */ var _smithy_core_transport__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(48296);
5541
5541
  /* harmony import */ var _smithy_core_transport__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(97776);
5542
- /* harmony import */ var _SerdeContext__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71966);
5542
+ /* harmony import */ var _SerdeContext__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(49585);
5543
5543
 
5544
5544
 
5545
5545
 
@@ -6217,7 +6217,7 @@ const NODE_RETRY_MODE_CONFIG_OPTIONS = {
6217
6217
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6218
6218
  /* harmony export */ h: () => (/* binding */ DefaultIdentityProviderConfig)
6219
6219
  /* harmony export */ });
6220
- /* harmony import */ var _smithy_core_transport__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(75073);
6220
+ /* harmony import */ var _smithy_core_transport__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(97454);
6221
6221
 
6222
6222
  class DefaultIdentityProviderConfig {
6223
6223
  authSchemes = new Map();
@@ -2297,7 +2297,7 @@ function extendedEncodeURIComponent(str) {
2297
2297
  /* harmony export */ lq: () => (/* binding */ _ep0),
2298
2298
  /* harmony export */ yt: () => (/* binding */ _mw0)
2299
2299
  /* harmony export */ });
2300
- /* harmony import */ var _smithy_core_client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(74789);
2300
+ /* harmony import */ var _smithy_core_client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(97170);
2301
2301
  /* harmony import */ var _smithy_core_endpoints__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(38243);
2302
2302
  /* harmony import */ var _endpoint_EndpointParameters__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(54321);
2303
2303
 
@@ -956,22 +956,6 @@ CrcCalculator.crc32 = function (buf) {
956
956
  };
957
957
 
958
958
 
959
- /***/ }),
960
-
961
- /***/ 25243:
962
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
963
-
964
- const big = __webpack_require__(39746)
965
- const small = __webpack_require__(97808)
966
-
967
- exports.render = function (qrData, options, cb) {
968
- if (options && options.small) {
969
- return small.render(qrData, options, cb)
970
- }
971
- return big.render(qrData, options, cb)
972
- }
973
-
974
-
975
959
  /***/ }),
976
960
 
977
961
  /***/ 25634:
@@ -2357,6 +2341,22 @@ module.exports = function (indata, imageData) {
2357
2341
  };
2358
2342
 
2359
2343
 
2344
+ /***/ }),
2345
+
2346
+ /***/ 47624:
2347
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2348
+
2349
+ const big = __webpack_require__(39746)
2350
+ const small = __webpack_require__(97808)
2351
+
2352
+ exports.render = function (qrData, options, cb) {
2353
+ if (options && options.small) {
2354
+ return small.render(qrData, options, cb)
2355
+ }
2356
+ return big.render(qrData, options, cb)
2357
+ }
2358
+
2359
+
2360
2360
  /***/ }),
2361
2361
 
2362
2362
  /***/ 48181:
@@ -5575,7 +5575,7 @@ const canPromise = __webpack_require__(79221)
5575
5575
  const QRCode = __webpack_require__(48181)
5576
5576
  const PngRenderer = __webpack_require__(35456)
5577
5577
  const Utf8Renderer = __webpack_require__(13630)
5578
- const TerminalRenderer = __webpack_require__(25243)
5578
+ const TerminalRenderer = __webpack_require__(47624)
5579
5579
  const SvgRenderer = __webpack_require__(19899)
5580
5580
 
5581
5581
  function checkParams (text, opts, cb) {
@@ -9,6 +9,7 @@ exports.modules = {
9
9
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
10
10
  /* harmony export */ DW: () => (/* binding */ appendMessageDraftToolEvent),
11
11
  /* harmony export */ Dy: () => (/* binding */ countMessagesBetweenSeq),
12
+ /* harmony export */ G0: () => (/* binding */ listThreadChannelSummaries),
12
13
  /* harmony export */ GW: () => (/* binding */ commitThreadWarmContext),
13
14
  /* harmony export */ Iz: () => (/* binding */ listThreadsByAgent),
14
15
  /* harmony export */ KX: () => (/* binding */ deleteThread),
@@ -20,12 +21,12 @@ exports.modules = {
20
21
  /* harmony export */ S0: () => (/* binding */ getRecentMessagesWindow),
21
22
  /* harmony export */ T1: () => (/* binding */ setThreadContextPin),
22
23
  /* harmony export */ TX: () => (/* binding */ getMessagesByAutomationCategory),
24
+ /* harmony export */ Tb: () => (/* binding */ countForegroundThreadMessages),
23
25
  /* harmony export */ VL: () => (/* binding */ getMessages),
24
26
  /* harmony export */ Xi: () => (/* binding */ appendMessageDraft),
25
27
  /* harmony export */ Zb: () => (/* binding */ mergeMessageMetadata),
26
28
  /* harmony export */ e8: () => (/* binding */ updateMessageContent),
27
29
  /* harmony export */ fG: () => (/* binding */ getThread),
28
- /* harmony export */ fW: () => (/* binding */ countThreadMessagesFromSeq),
29
30
  /* harmony export */ k3: () => (/* binding */ getRecentlyUsedToolNames),
30
31
  /* harmony export */ m9: () => (/* binding */ isValidThreadContextCursor),
31
32
  /* harmony export */ mI: () => (/* binding */ touchThread),
@@ -140,8 +141,10 @@ function getThread(thread_id) {
140
141
  function getThreadMessageBySeq(thread_id, seq) {
141
142
  return (0,_lib_db__WEBPACK_IMPORTED_MODULE_1__/* .getDb */ .Lf)().prepare(MSG_COLS_SQL + " WHERE thread_id=? AND rowid=?").get(thread_id, seq) ?? null;
142
143
  }
143
- function countThreadMessagesFromSeq(thread_id, seq) {
144
- const row = (0,_lib_db__WEBPACK_IMPORTED_MODULE_1__/* .getDb */ .Lf)().prepare("SELECT COUNT(*) AS n FROM messages WHERE thread_id=? AND rowid>=?").get(thread_id, seq);
144
+ // Rows that size compaction can prune: automation-channel rows are kept
145
+ // (see pruneThreadMessages), so they must not count toward its trigger.
146
+ function countForegroundThreadMessages(thread_id, fromSeq = 0) {
147
+ const row = (0,_lib_db__WEBPACK_IMPORTED_MODULE_1__/* .getDb */ .Lf)().prepare("SELECT COUNT(*) AS n FROM messages WHERE thread_id=? AND rowid>=? AND " + foregroundCategoryGuardSql()).get(thread_id, fromSeq, ...FOREGROUND_EXCLUDED_CATEGORIES);
145
148
  return row?.n ?? 0;
146
149
  }
147
150
  function isValidThreadContextCursor(thread_id, seq) {
@@ -552,17 +555,21 @@ function getMessagesByAutomationCategory(threadId, category) {
552
555
  // costs at most one duplicate LLM call, not corruption — unlike the shared
553
556
  // hot/warm boundary move, there's no cross-field invariant to protect here.
554
557
  function getThreadChannelSummary(threadId, channel) {
555
- return (0,_lib_db__WEBPACK_IMPORTED_MODULE_1__/* .getDb */ .Lf)().prepare("SELECT thread_id, channel, summary, summary_before, summary_before_seq, computed_at FROM thread_channel_summaries WHERE thread_id=? AND channel=?").get(threadId, channel) ?? null;
558
+ return (0,_lib_db__WEBPACK_IMPORTED_MODULE_1__/* .getDb */ .Lf)().prepare("SELECT thread_id, channel, summary, summary_before, summary_before_seq, computed_at, topics FROM thread_channel_summaries WHERE thread_id=? AND channel=?").get(threadId, channel) ?? null;
559
+ }
560
+ function listThreadChannelSummaries(threadId) {
561
+ return (0,_lib_db__WEBPACK_IMPORTED_MODULE_1__/* .getDb */ .Lf)().prepare("SELECT thread_id, channel, summary, summary_before, summary_before_seq, computed_at, topics FROM thread_channel_summaries WHERE thread_id=?").all(threadId);
556
562
  }
557
563
  function commitThreadChannelSummary(threadId, channel, input) {
558
564
  if (input.summaryBefore !== null && input.summaryBeforeSeq == null) {
559
565
  throw new Error("summaryBeforeSeq is required for a boundary summary");
560
566
  }
561
- getDb().prepare(`INSERT INTO thread_channel_summaries (thread_id, channel, summary, summary_before, summary_before_seq, computed_at)
562
- VALUES (?, ?, ?, ?, ?, ?)
567
+ getDb().prepare(`INSERT INTO thread_channel_summaries (thread_id, channel, summary, summary_before, summary_before_seq, computed_at, topics)
568
+ VALUES (?, ?, ?, ?, ?, ?, ?)
563
569
  ON CONFLICT(thread_id, channel) DO UPDATE SET
564
570
  summary=excluded.summary, summary_before=excluded.summary_before,
565
- summary_before_seq=excluded.summary_before_seq, computed_at=excluded.computed_at`).run(threadId, channel, input.summary, input.summaryBefore, input.summaryBeforeSeq ?? null, now());
571
+ summary_before_seq=excluded.summary_before_seq, computed_at=excluded.computed_at,
572
+ topics=excluded.topics`).run(threadId, channel, input.summary, input.summaryBefore, input.summaryBeforeSeq ?? null, now(), input.topics ?? null);
566
573
  }
567
574
  function touchThread(thread_id, firstMsg) {
568
575
  const t = now();
@@ -577,11 +584,11 @@ function setThreadContextPin(thread_id, hot_since, hot_since_seq) {
577
584
  }
578
585
  (0,_lib_db__WEBPACK_IMPORTED_MODULE_1__/* .getDb */ .Lf)().prepare("UPDATE threads SET hot_since=?, hot_since_seq=? WHERE thread_id=?").run(hot_since, hot_since === null ? null : hot_since_seq, thread_id);
579
586
  }
580
- // Called by moveThreadContextBoundary whenever the user explicitly moves the
581
- // boundary (drag, or manual /compact) — never by the auto-detector's own
582
- // commit path, which calls setThreadContextPin directly. `untilMessageCount`
583
- // is a one-time write; the read side (lib/agents/run-thread.ts) just compares
584
- // against it, no per-turn write needed.
587
+ // Armed by moveThreadContextBoundary whenever the user explicitly moves the
588
+ // boundary (drag, or manual /compact), and by the auto-detector's hot-turn
589
+ // cooldown when a compaction pass ends without a commit (a commit writes the
590
+ // lock in the same transaction). `untilMessageCount` is a one-time write; the
591
+ // read side (lib/agents/run-thread.ts) just compares against it.
585
592
  function setAutoBoundaryLock(thread_id, untilMessageCount) {
586
593
  (0,_lib_db__WEBPACK_IMPORTED_MODULE_1__/* .getDb */ .Lf)().prepare("UPDATE threads SET auto_boundary_locked_until_msg_count=? WHERE thread_id=?").run(Math.max(0, untilMessageCount), thread_id);
587
594
  }
@@ -604,13 +611,14 @@ function commitThreadWarmContext(thread_id, input) {
604
611
  return null;
605
612
  }
606
613
  db.prepare("UPDATE threads SET hot_since=?, hot_since_seq=?, warm_summary=?, warm_summary_before=?, warm_summary_before_seq=?, warm_summary_computed_at=?, warm_summary_source_messages=?, warm_summary_source_chars=?, warm_summary_topics=?, auto_boundary_locked_until_msg_count=? WHERE thread_id=?").run(input.hotSince, hotSinceSeq, input.summary, input.hotSince, hotSinceSeq, now(), input.sourceMessages, input.sourceChars, input.topics ?? null, input.autoBoundaryLockedUntilMessageCount ?? current.auto_boundary_locked_until_msg_count ?? 0, thread_id);
607
- const upsertChannel = db.prepare(`INSERT INTO thread_channel_summaries (thread_id, channel, summary, summary_before, summary_before_seq, computed_at)
608
- VALUES (?, ?, ?, ?, ?, ?)
614
+ const upsertChannel = db.prepare(`INSERT INTO thread_channel_summaries (thread_id, channel, summary, summary_before, summary_before_seq, computed_at, topics)
615
+ VALUES (?, ?, ?, ?, ?, ?, ?)
609
616
  ON CONFLICT(thread_id, channel) DO UPDATE SET
610
617
  summary=excluded.summary, summary_before=excluded.summary_before,
611
- summary_before_seq=excluded.summary_before_seq, computed_at=excluded.computed_at`);
618
+ summary_before_seq=excluded.summary_before_seq, computed_at=excluded.computed_at,
619
+ topics=excluded.topics`);
612
620
  for (const channelSummary of input.channelSummaries ?? []){
613
- upsertChannel.run(thread_id, channelSummary.channel, channelSummary.summary, input.hotSince, hotSinceSeq, now());
621
+ upsertChannel.run(thread_id, channelSummary.channel, channelSummary.summary, input.hotSince, hotSinceSeq, now(), channelSummary.topics ?? null);
614
622
  }
615
623
  db.exec("COMMIT");
616
624
  return getThread(thread_id);