@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
@@ -33,103 +33,61 @@ module.exports = require("next/dist/compiled/next-server/app-page.runtime.prod.j
33
33
 
34
34
  /***/ }),
35
35
 
36
- /***/ 19121:
37
- /***/ ((module) => {
38
-
39
- module.exports = require("next/dist/server/app-render/action-async-storage.external.js");
40
-
41
- /***/ }),
42
-
43
- /***/ 22032:
36
+ /***/ 18193:
44
37
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
45
38
 
39
+ __webpack_require__.r(__webpack_exports__);
46
40
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
47
- /* harmony export */ N: () => (/* binding */ readErrorBody),
48
- /* harmony export */ g: () => (/* binding */ errorMessage)
41
+ /* harmony export */ handler: () => (/* binding */ handler),
42
+ /* harmony export */ patchFetch: () => (/* binding */ patchFetch),
43
+ /* harmony export */ routeModule: () => (/* binding */ routeModule),
44
+ /* harmony export */ serverHooks: () => (/* binding */ serverHooks),
45
+ /* harmony export */ workAsyncStorage: () => (/* binding */ workAsyncStorage),
46
+ /* harmony export */ workUnitAsyncStorage: () => (/* binding */ workUnitAsyncStorage)
49
47
  /* harmony export */ });
50
- // Coerce an arbitrary thrown value to a string message. Standardises the
51
- // `e instanceof Error ? e.message : String(e)` pattern used across
52
- // error-handler call sites so route handlers, stores, and UI panels all
53
- // surface the same shape for unknown thrown values.
54
- function errorMessage(err) {
55
- return err instanceof Error ? err.message : String(err);
56
- }
57
- const MAX_ERROR_BODY_LENGTH = 500;
58
- // Reads an HTTP error response body for inclusion in a thrown/logged error
59
- // message. HTML error pages (e.g. GitHub's multi-KB "Unicorn!" 502 page) are
60
- // suppressed entirely rather than dumped into the message; any other body is
61
- // capped at MAX_ERROR_BODY_LENGTH. Falls back to res.statusText if the body
62
- // can't be read (e.g. already consumed).
63
- async function readErrorBody(res) {
64
- const contentType = res.headers.get("content-type") ?? "";
65
- if (contentType.includes("html")) {
66
- return `<${contentType.split(";")[0] || "text/html"} response, no body shown>`;
67
- }
68
- const text = await res.text().catch(()=>res.statusText);
69
- return text.length > MAX_ERROR_BODY_LENGTH ? `${text.slice(0, MAX_ERROR_BODY_LENGTH)}…` : text;
70
- }
71
-
72
-
73
- /***/ }),
74
-
75
- /***/ 29294:
76
- /***/ ((module) => {
77
-
78
- module.exports = require("next/dist/server/app-render/work-async-storage.external.js");
48
+ /* harmony import */ var next_dist_server_route_modules_app_route_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(19225);
49
+ /* harmony import */ var next_dist_server_route_modules_app_route_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_route_modules_app_route_module_compiled__WEBPACK_IMPORTED_MODULE_0__);
50
+ /* harmony import */ var next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(84006);
51
+ /* harmony import */ var next_dist_server_lib_patch_fetch__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8317);
52
+ /* harmony import */ var next_dist_server_lib_patch_fetch__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_patch_fetch__WEBPACK_IMPORTED_MODULE_2__);
53
+ /* harmony import */ var next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(99373);
54
+ /* harmony import */ var next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_3__);
55
+ /* harmony import */ var next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(34775);
56
+ /* harmony import */ var next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_4__);
57
+ /* harmony import */ var next_dist_server_app_render_manifests_singleton__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(24235);
58
+ /* harmony import */ var next_dist_server_app_render_manifests_singleton__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_app_render_manifests_singleton__WEBPACK_IMPORTED_MODULE_5__);
59
+ /* harmony import */ var next_dist_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(261);
60
+ /* harmony import */ var next_dist_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_6__);
61
+ /* harmony import */ var next_dist_server_base_http_node__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(54365);
62
+ /* harmony import */ var next_dist_server_base_http_node__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_base_http_node__WEBPACK_IMPORTED_MODULE_7__);
63
+ /* harmony import */ var next_dist_server_web_spec_extension_adapters_next_request__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(90771);
64
+ /* harmony import */ var next_dist_server_web_spec_extension_adapters_next_request__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_web_spec_extension_adapters_next_request__WEBPACK_IMPORTED_MODULE_8__);
65
+ /* harmony import */ var next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(73461);
66
+ /* harmony import */ var next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_9__);
67
+ /* harmony import */ var next_dist_server_instrumentation_utils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(67798);
68
+ /* harmony import */ var next_dist_server_send_response__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(92280);
69
+ /* harmony import */ var next_dist_server_web_utils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(62018);
70
+ /* harmony import */ var next_dist_server_web_utils__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_web_utils__WEBPACK_IMPORTED_MODULE_12__);
71
+ /* harmony import */ var next_dist_server_lib_cache_control__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(45696);
72
+ /* harmony import */ var next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(47929);
73
+ /* harmony import */ var next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_14__);
74
+ /* harmony import */ var next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(86439);
75
+ /* harmony import */ var next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_15__);
76
+ /* harmony import */ var next_dist_server_lib_route_cache_key__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(10246);
77
+ /* harmony import */ var next_dist_server_lib_route_cache_key__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_route_cache_key__WEBPACK_IMPORTED_MODULE_16__);
78
+ /* harmony import */ var next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(37527);
79
+ /* harmony import */ var next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_17__);
79
80
 
80
- /***/ }),
81
81
 
82
- /***/ 31421:
83
- /***/ ((module) => {
84
82
 
85
- module.exports = require("node:child_process");
86
83
 
87
- /***/ }),
88
84
 
89
- /***/ 33873:
90
- /***/ ((module) => {
91
85
 
92
- module.exports = require("path");
93
86
 
94
- /***/ }),
95
87
 
96
- /***/ 34450:
97
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
98
88
 
99
- // ESM COMPAT FLAG
100
- __webpack_require__.r(__webpack_exports__);
101
89
 
102
- // EXPORTS
103
- __webpack_require__.d(__webpack_exports__, {
104
- GET: () => (/* binding */ GET),
105
- dynamic: () => (/* binding */ dynamic)
106
- });
107
90
 
108
- // EXTERNAL MODULE: external "node:fs"
109
- var external_node_fs_ = __webpack_require__(73024);
110
- // EXTERNAL MODULE: external "node:path"
111
- var external_node_path_ = __webpack_require__(76760);
112
- // EXTERNAL MODULE: ./node_modules/next/dist/api/server.js
113
- var server = __webpack_require__(23211);
114
- // EXTERNAL MODULE: external "node:fs/promises"
115
- var promises_ = __webpack_require__(51455);
116
- // EXTERNAL MODULE: external "node:child_process"
117
- var external_node_child_process_ = __webpack_require__(31421);
118
- // EXTERNAL MODULE: ./lib/db/data-dir.ts
119
- var data_dir = __webpack_require__(57477);
120
- // EXTERNAL MODULE: ./lib/env/config.ts
121
- var config = __webpack_require__(67500);
122
- // EXTERNAL MODULE: ./lib/utils/error.ts
123
- var error = __webpack_require__(22032);
124
- ;// ./lib/lifecycle/update-check.ts
125
- // Update check: compares the running version against the latest published
126
- // to npm (channel "stable") or the tip of the GitHub `main` branch
127
- // (channel "main", experimental). Result is cached on disk so we don't
128
- // hammer the registry / GitHub on every request.
129
- //
130
- // Tune with:
131
- // JARELA_DISABLE_UPDATE_CHECK=1 skip entirely
132
- // JARELA_UPDATE_CHANNEL=main track the GitHub main branch instead
133
91
 
134
92
 
135
93
 
@@ -137,504 +95,146 @@ var error = __webpack_require__(22032);
137
95
 
138
96
 
139
97
 
140
- const PACKAGE_NAME = "@circuitwall/jarela";
141
- const REPO = "CircuitWall/jarela";
142
- const REGISTRY_URL = `https://registry.npmjs.org/${PACKAGE_NAME}/latest`;
143
- const GH_COMMIT_URL = `https://api.github.com/repos/${REPO}/commits/main`;
144
- const GH_RAW_PKG_URL = `https://raw.githubusercontent.com/${REPO}/main/package.json`;
145
- const CACHE_TTL_MS = 24 * 60 * 60 * 1000; // 24h
146
- // JARELA_UPDATE_CHECK_TIMEOUT_MS overrides this.
147
- function fetchTimeoutMs() {
148
- return (0,config/* getConfig */.z)().updateCheckTimeoutMs;
149
- }
150
- let memo = null;
151
- function cachePath(channel) {
152
- const suffix = channel === "stable" ? "" : `.${channel}`;
153
- return (0,external_node_path_.join)((0,data_dir/* getDataDir */.o)(), `update-check${suffix}.json`);
154
- }
155
- function resolveChannel(env = process.env) {
156
- const raw = (env.JARELA_UPDATE_CHANNEL ?? "").trim().toLowerCase();
157
- return raw === "main" ? "main" : "stable";
158
- }
159
- /** Strict-ish semver compare. Returns negative if a < b, 0 if equal, positive
160
- * if a > b. Ignores pre-release tags beyond plain equality. */ function compareSemver(a, b) {
161
- const pa = a.split("-")[0].split(".").map((n)=>Number(n) || 0);
162
- const pb = b.split("-")[0].split(".").map((n)=>Number(n) || 0);
163
- for(let i = 0; i < 3; i++){
164
- const diff = (pa[i] ?? 0) - (pb[i] ?? 0);
165
- if (diff !== 0) return diff;
166
- }
167
- return 0;
168
- }
169
- /** Best-effort: read the local git HEAD sha for a source checkout. Returns
170
- * null if the path isn't a checkout, git isn't installed, or it fails. */ function readLocalCommit(packageRoot) {
171
- if (!(0,external_node_fs_.existsSync)((0,external_node_path_.join)(packageRoot, ".git"))) return null;
172
- const r = (0,external_node_child_process_.spawnSync)("git", [
173
- "rev-parse",
174
- "HEAD"
175
- ], {
176
- cwd: packageRoot,
177
- encoding: "utf8",
178
- shell: process.platform === "win32"
98
+ // We inject the nextConfigOutput here so that we can use them in the route
99
+ // module.
100
+ const nextConfigOutput = "standalone"
101
+ const routeModule = new next_dist_server_route_modules_app_route_module_compiled__WEBPACK_IMPORTED_MODULE_0__.AppRouteRouteModule({
102
+ definition: {
103
+ kind: next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.APP_ROUTE,
104
+ page: "/api/v1/update/route",
105
+ pathname: "/api/v1/update",
106
+ filename: "route",
107
+ bundlePath: "app/api/v1/update/route"
108
+ },
109
+ distDir: ".next" || 0,
110
+ relativeProjectDir: false || '',
111
+ resolvedPagePath: "/home/runner/work/jarela/jarela/app/api/v1/update/route.ts",
112
+ nextConfigOutput,
113
+ // The lazy require factory ensures that:
114
+ // - In dev: devRequestTimingInternalsEnd is set before userland executes,
115
+ // correctly attributing module load time to application-code rather than
116
+ // framework internals.
117
+ // - In all modes: async modules (route files with top-level await) are
118
+ // handled correctly — require() returns a Promise for such modules, which
119
+ // ensureUserland() awaits before the first request is handled.
120
+ userland: ()=>__webpack_require__(34450),
121
+ // In Turbopack dev mode, also provide a synchronous per-request getter so
122
+ // server HMR updates are picked up without re-executing the entry chunk.
123
+ // Using require() (synchronous) avoids adding async overhead that would be
124
+ // incorrectly attributed to application-code time in devRequestTiming.
125
+ ... false ? 0 : {}
126
+ });
127
+ // Pull out the exports that we need to expose from the module. This should
128
+ // be eliminated when we've moved the other routes to the new format. These
129
+ // are used to hook into the route.
130
+ const { workAsyncStorage, workUnitAsyncStorage, serverHooks } = routeModule;
131
+ function patchFetch() {
132
+ return (0,next_dist_server_lib_patch_fetch__WEBPACK_IMPORTED_MODULE_2__.patchFetch)({
133
+ workAsyncStorage,
134
+ workUnitAsyncStorage
179
135
  });
180
- if (r.status !== 0) return null;
181
- const sha = (r.stdout || "").trim();
182
- return /^[0-9a-f]{7,40}$/i.test(sha) ? sha : null;
183
136
  }
184
- async function readCache(channel) {
185
- try {
186
- const raw = await (0,promises_.readFile)(cachePath(channel), "utf8");
187
- const parsed = JSON.parse(raw);
188
- if (typeof parsed?.latest !== "string" || typeof parsed?.checkedAt !== "number") return null;
189
- if (parsed.channel && parsed.channel !== channel) return null;
190
- return parsed;
191
- } catch {
192
- return null;
137
+
138
+ async function handler(req, res, ctx) {
139
+ if (ctx.requestMeta) {
140
+ (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_3__.setRequestMeta)(req, ctx.requestMeta);
193
141
  }
194
- }
195
- async function writeCache(entry) {
196
- const path = cachePath(entry.channel);
197
- try {
198
- await (0,promises_.mkdir)((0,external_node_path_.dirname)(path), {
199
- recursive: true
200
- });
201
- await (0,promises_.writeFile)(path, JSON.stringify(entry), "utf8");
202
- } catch {
203
- // Cache is a nice-to-have; failing to persist shouldn't break the call.
142
+ if (routeModule.isDev) {
143
+ (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_3__.addRequestMeta)(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint());
204
144
  }
205
- }
206
- async function fetchJson(url) {
207
- const ctrl = new AbortController();
208
- const timer = setTimeout(()=>ctrl.abort(), fetchTimeoutMs());
209
- try {
210
- const res = await fetch(url, {
211
- signal: ctrl.signal,
212
- headers: {
213
- accept: "application/json",
214
- "user-agent": "jarela-update-check"
215
- }
216
- });
217
- if (!res.ok) throw new Error(`${url} returned ${res.status}`);
218
- return await res.json();
219
- } finally{
220
- clearTimeout(timer);
145
+ let srcPage = "/api/v1/update/route";
146
+ // turbopack doesn't normalize `/index` in the page name
147
+ // so we need to to process dynamic routes properly
148
+ // TODO: fix turbopack providing differing value from webpack
149
+ if (false) {} else if (srcPage === '/index') {
150
+ // we always normalize /index specifically
151
+ srcPage = '/';
221
152
  }
222
- }
223
- async function fetchLatestStable() {
224
- const body = await fetchJson(REGISTRY_URL);
225
- if (!body?.version) throw new Error("registry response missing version");
226
- return {
227
- version: body.version
228
- };
229
- }
230
- async function fetchLatestMain() {
231
- const [pkg, commit] = await Promise.all([
232
- fetchJson(GH_RAW_PKG_URL),
233
- fetchJson(GH_COMMIT_URL)
234
- ]);
235
- if (!pkg?.version) throw new Error("github package.json missing version");
236
- if (!commit?.sha) throw new Error("github commit response missing sha");
237
- return {
238
- version: pkg.version,
239
- commit: {
240
- sha: commit.sha,
241
- date: commit.commit?.author?.date ?? null
153
+ const multiZoneDraftMode = false;
154
+ const prepareResult = await routeModule.prepare(req, res, {
155
+ srcPage,
156
+ multiZoneDraftMode
157
+ });
158
+ if (!prepareResult) {
159
+ res.statusCode = 400;
160
+ res.end('Bad Request');
161
+ ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve());
162
+ return null;
163
+ }
164
+ const { buildId, deploymentId, params, nextConfig, parsedUrl, isDraftMode, prerenderManifest, routerServerContext, isOnDemandRevalidate, revalidateOnlyGenerated, resolvedPathname, clientReferenceManifest, serverActionsManifest, previewProps } = prepareResult;
165
+ const normalizedSrcPage = (0,next_dist_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_6__.normalizeAppPath)(srcPage);
166
+ // Only this route's prerenders can establish ISR or admit generated params.
167
+ const isPrerendered = Boolean(prerenderManifest.routes[resolvedPathname]) && (routeModule.isDev || (0,next_dist_server_lib_route_cache_key__WEBPACK_IMPORTED_MODULE_16__.isRouteCacheOwner)(resolvedPathname, routeModule.cacheOwner, prerenderManifest.routes[resolvedPathname]));
168
+ let isIsr = Boolean(prerenderManifest.dynamicRoutes[normalizedSrcPage] || isPrerendered);
169
+ const render404 = async ()=>{
170
+ // TODO: should route-module itself handle rendering the 404
171
+ if (routerServerContext == null ? void 0 : routerServerContext.render404) {
172
+ await routerServerContext.render404(req, res, parsedUrl, false);
173
+ } else {
174
+ res.end('This page could not be found');
242
175
  }
176
+ return null;
243
177
  };
244
- }
245
- /** Check for an update. Honours JARELA_DISABLE_UPDATE_CHECK and uses a 24h
246
- * on-disk cache plus an in-memory memo. Accepts either a bare current
247
- * version string (legacy) or an options object. */ async function checkForUpdate(currentOrOpts, legacyOpts) {
248
- const opts = typeof currentOrOpts === "string" ? {
249
- current: currentOrOpts,
250
- force: legacyOpts?.force
251
- } : currentOrOpts;
252
- const current = opts.current;
253
- const channel = opts.channel ?? resolveChannel();
254
- const force = opts.force === true;
255
- if ((0,config/* getConfig */.z)().disableUpdateCheck) {
256
- return {
257
- channel,
258
- current,
259
- latest: null,
260
- behind: false,
261
- cached: false,
262
- checkedAt: null,
263
- error: "disabled"
264
- };
265
- }
266
- const now = Date.now();
267
- const memoKey = `${channel}:${current}`;
268
- if (!force && memo && memo.key === memoKey && memo.expiresAt > now) return memo.value;
269
- const currentCommit = channel === "main" && opts.packageRoot ? readLocalCommit(opts.packageRoot) : null;
270
- if (!force) {
271
- const cached = await readCache(channel);
272
- if (cached && now - cached.checkedAt < CACHE_TTL_MS) {
273
- const info = buildInfo({
274
- channel,
275
- current,
276
- currentCommit,
277
- cached: true,
278
- fromCache: cached,
279
- checkedAt: cached.checkedAt
280
- });
281
- memo = {
282
- key: memoKey,
283
- value: info,
284
- expiresAt: now + 60000
285
- };
286
- return info;
178
+ if (isIsr && !isDraftMode) {
179
+ const prerenderInfo = prerenderManifest.dynamicRoutes[normalizedSrcPage];
180
+ if (prerenderInfo) {
181
+ if (prerenderInfo.fallback === false && !isPrerendered) {
182
+ if (nextConfig.adapterPath) {
183
+ return await render404();
184
+ }
185
+ throw new next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_15__.NoFallbackError();
186
+ }
287
187
  }
288
188
  }
289
- try {
290
- let cacheEntry;
291
- if (channel === "main") {
292
- const { version, commit } = await fetchLatestMain();
293
- cacheEntry = {
294
- channel,
295
- latest: version,
296
- checkedAt: now,
297
- commit
298
- };
299
- } else {
300
- const { version } = await fetchLatestStable();
301
- cacheEntry = {
302
- channel,
303
- latest: version,
304
- checkedAt: now
305
- };
306
- }
307
- await writeCache(cacheEntry);
308
- const info = buildInfo({
309
- channel,
310
- current,
311
- currentCommit,
312
- cached: false,
313
- fromCache: cacheEntry,
314
- checkedAt: now
189
+ let cacheKey = null;
190
+ if (isIsr && !routeModule.isDev && !isDraftMode) {
191
+ cacheKey = resolvedPathname;
192
+ // ensure /index and / is normalized to one key
193
+ cacheKey = cacheKey === '/index' ? '/' : cacheKey;
194
+ }
195
+ // Before rendering (which initializes component tree modules), we have to
196
+ // set the reference manifests to our global store so Server Action's
197
+ // encryption util can access to them at the top level of the page module.
198
+ if (serverActionsManifest && clientReferenceManifest) {
199
+ (0,next_dist_server_app_render_manifests_singleton__WEBPACK_IMPORTED_MODULE_5__.setManifestsSingleton)({
200
+ page: srcPage,
201
+ clientReferenceManifest,
202
+ serverActionsManifest
315
203
  });
316
- memo = {
317
- key: memoKey,
318
- value: info,
319
- expiresAt: now + 60000
320
- };
321
- return info;
322
- } catch (err) {
323
- return {
324
- channel,
325
- current,
326
- latest: null,
327
- behind: false,
328
- cached: false,
329
- checkedAt: null,
330
- error: (0,error/* errorMessage */.g)(err)
331
- };
332
204
  }
333
- }
334
- function buildInfo(args) {
335
- const { channel, current, currentCommit, cached, fromCache, checkedAt } = args;
336
- const latest = fromCache.latest;
337
- let behind = false;
338
- if (channel === "main") {
339
- // Prefer sha comparison when we have a local checkout; otherwise fall
340
- // back to comparing the published-to-main package.json version.
341
- if (currentCommit && fromCache.commit?.sha) {
342
- const a = currentCommit.toLowerCase();
343
- const b = fromCache.commit.sha.toLowerCase();
344
- behind = !(a.startsWith(b) || b.startsWith(a));
345
- } else {
346
- behind = compareSemver(latest, current) > 0;
347
- }
348
- } else {
349
- behind = compareSemver(latest, current) > 0;
350
- }
351
- return {
352
- channel,
353
- current,
354
- latest,
355
- behind,
356
- cached,
357
- checkedAt,
358
- ...fromCache.commit ? {
359
- latestCommit: fromCache.commit
360
- } : {},
361
- ...currentCommit ? {
362
- currentCommit
363
- } : {}
364
- };
365
- }
366
-
367
- ;// ./app/api/v1/update/route.ts
368
-
369
-
370
-
371
-
372
- const dynamic = "force-dynamic";
373
- function getCurrentVersion() {
374
- try {
375
- // In the standalone build package.json sits at the bundle root, which is
376
- // also the process cwd at start-prod time.
377
- const raw = (0,external_node_fs_.readFileSync)((0,external_node_path_.join)(process.cwd(), "package.json"), "utf8");
378
- return JSON.parse(raw).version ?? "0.0.0";
379
- } catch {
380
- return "0.0.0";
381
- }
382
- }
383
- async function GET() {
384
- const info = await checkForUpdate({
385
- current: getCurrentVersion(),
386
- packageRoot: process.cwd()
387
- });
388
- return server.NextResponse.json(info);
389
- }
390
-
391
-
392
- /***/ }),
393
-
394
- /***/ 44870:
395
- /***/ ((module) => {
396
-
397
- module.exports = require("next/dist/compiled/next-server/app-route.runtime.prod.js");
398
-
399
- /***/ }),
400
-
401
- /***/ 48161:
402
- /***/ ((module) => {
403
-
404
- module.exports = require("node:os");
405
-
406
- /***/ }),
407
-
408
- /***/ 51455:
409
- /***/ ((module) => {
410
-
411
- module.exports = require("node:fs/promises");
412
-
413
- /***/ }),
414
-
415
- /***/ 55511:
416
- /***/ ((module) => {
417
-
418
- module.exports = require("crypto");
419
-
420
- /***/ }),
421
-
422
- /***/ 63033:
423
- /***/ ((module) => {
424
-
425
- module.exports = require("next/dist/server/app-render/work-unit-async-storage.external.js");
426
-
427
- /***/ }),
428
-
429
- /***/ 73024:
430
- /***/ ((module) => {
431
-
432
- module.exports = require("node:fs");
433
-
434
- /***/ }),
435
-
436
- /***/ 74523:
437
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
438
-
439
- __webpack_require__.r(__webpack_exports__);
440
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
441
- /* harmony export */ handler: () => (/* binding */ handler),
442
- /* harmony export */ patchFetch: () => (/* binding */ patchFetch),
443
- /* harmony export */ routeModule: () => (/* binding */ routeModule),
444
- /* harmony export */ serverHooks: () => (/* binding */ serverHooks),
445
- /* harmony export */ workAsyncStorage: () => (/* binding */ workAsyncStorage),
446
- /* harmony export */ workUnitAsyncStorage: () => (/* binding */ workUnitAsyncStorage)
447
- /* harmony export */ });
448
- /* harmony import */ var next_dist_server_route_modules_app_route_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(19225);
449
- /* harmony import */ var next_dist_server_route_modules_app_route_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_route_modules_app_route_module_compiled__WEBPACK_IMPORTED_MODULE_0__);
450
- /* harmony import */ var next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(84006);
451
- /* harmony import */ var next_dist_server_lib_patch_fetch__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8317);
452
- /* harmony import */ var next_dist_server_lib_patch_fetch__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_patch_fetch__WEBPACK_IMPORTED_MODULE_2__);
453
- /* harmony import */ var next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(99373);
454
- /* harmony import */ var next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_3__);
455
- /* harmony import */ var next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(34775);
456
- /* harmony import */ var next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_4__);
457
- /* harmony import */ var next_dist_server_app_render_manifests_singleton__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(24235);
458
- /* harmony import */ var next_dist_server_app_render_manifests_singleton__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_app_render_manifests_singleton__WEBPACK_IMPORTED_MODULE_5__);
459
- /* harmony import */ var next_dist_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(261);
460
- /* harmony import */ var next_dist_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_6__);
461
- /* harmony import */ var next_dist_server_base_http_node__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(54365);
462
- /* harmony import */ var next_dist_server_base_http_node__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_base_http_node__WEBPACK_IMPORTED_MODULE_7__);
463
- /* harmony import */ var next_dist_server_web_spec_extension_adapters_next_request__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(90771);
464
- /* harmony import */ var next_dist_server_web_spec_extension_adapters_next_request__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_web_spec_extension_adapters_next_request__WEBPACK_IMPORTED_MODULE_8__);
465
- /* harmony import */ var next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(73461);
466
- /* harmony import */ var next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_9__);
467
- /* harmony import */ var next_dist_server_instrumentation_utils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(67798);
468
- /* harmony import */ var next_dist_server_send_response__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(92280);
469
- /* harmony import */ var next_dist_server_web_utils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(62018);
470
- /* harmony import */ var next_dist_server_web_utils__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_web_utils__WEBPACK_IMPORTED_MODULE_12__);
471
- /* harmony import */ var next_dist_server_lib_cache_control__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(45696);
472
- /* harmony import */ var next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(47929);
473
- /* harmony import */ var next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_14__);
474
- /* harmony import */ var next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(86439);
475
- /* harmony import */ var next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_15__);
476
- /* harmony import */ var next_dist_server_lib_route_cache_key__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(10246);
477
- /* harmony import */ var next_dist_server_lib_route_cache_key__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_route_cache_key__WEBPACK_IMPORTED_MODULE_16__);
478
- /* harmony import */ var next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(37527);
479
- /* harmony import */ var next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_17__);
480
-
481
-
482
-
483
-
484
-
485
-
486
-
487
-
488
-
489
-
490
-
491
-
492
-
493
-
494
-
495
-
496
-
497
-
498
- // We inject the nextConfigOutput here so that we can use them in the route
499
- // module.
500
- const nextConfigOutput = "standalone"
501
- const routeModule = new next_dist_server_route_modules_app_route_module_compiled__WEBPACK_IMPORTED_MODULE_0__.AppRouteRouteModule({
502
- definition: {
503
- kind: next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.APP_ROUTE,
504
- page: "/api/v1/update/route",
505
- pathname: "/api/v1/update",
506
- filename: "route",
507
- bundlePath: "app/api/v1/update/route"
508
- },
509
- distDir: ".next" || 0,
510
- relativeProjectDir: false || '',
511
- resolvedPagePath: "/home/runner/work/jarela/jarela/app/api/v1/update/route.ts",
512
- nextConfigOutput,
513
- // The lazy require factory ensures that:
514
- // - In dev: devRequestTimingInternalsEnd is set before userland executes,
515
- // correctly attributing module load time to application-code rather than
516
- // framework internals.
517
- // - In all modes: async modules (route files with top-level await) are
518
- // handled correctly — require() returns a Promise for such modules, which
519
- // ensureUserland() awaits before the first request is handled.
520
- userland: ()=>__webpack_require__(34450),
521
- // In Turbopack dev mode, also provide a synchronous per-request getter so
522
- // server HMR updates are picked up without re-executing the entry chunk.
523
- // Using require() (synchronous) avoids adding async overhead that would be
524
- // incorrectly attributed to application-code time in devRequestTiming.
525
- ... false ? 0 : {}
526
- });
527
- // Pull out the exports that we need to expose from the module. This should
528
- // be eliminated when we've moved the other routes to the new format. These
529
- // are used to hook into the route.
530
- const { workAsyncStorage, workUnitAsyncStorage, serverHooks } = routeModule;
531
- function patchFetch() {
532
- return (0,next_dist_server_lib_patch_fetch__WEBPACK_IMPORTED_MODULE_2__.patchFetch)({
533
- workAsyncStorage,
534
- workUnitAsyncStorage
535
- });
536
- }
537
-
538
- async function handler(req, res, ctx) {
539
- if (ctx.requestMeta) {
540
- (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_3__.setRequestMeta)(req, ctx.requestMeta);
541
- }
542
- if (routeModule.isDev) {
543
- (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_3__.addRequestMeta)(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint());
544
- }
545
- let srcPage = "/api/v1/update/route";
546
- // turbopack doesn't normalize `/index` in the page name
547
- // so we need to to process dynamic routes properly
548
- // TODO: fix turbopack providing differing value from webpack
549
- if (false) {} else if (srcPage === '/index') {
550
- // we always normalize /index specifically
551
- srcPage = '/';
552
- }
553
- const multiZoneDraftMode = false;
554
- const prepareResult = await routeModule.prepare(req, res, {
555
- srcPage,
556
- multiZoneDraftMode
557
- });
558
- if (!prepareResult) {
559
- res.statusCode = 400;
560
- res.end('Bad Request');
561
- ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve());
562
- return null;
563
- }
564
- const { buildId, deploymentId, params, nextConfig, parsedUrl, isDraftMode, prerenderManifest, routerServerContext, isOnDemandRevalidate, revalidateOnlyGenerated, resolvedPathname, clientReferenceManifest, serverActionsManifest, previewProps } = prepareResult;
565
- const normalizedSrcPage = (0,next_dist_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_6__.normalizeAppPath)(srcPage);
566
- // Only this route's prerenders can establish ISR or admit generated params.
567
- const isPrerendered = Boolean(prerenderManifest.routes[resolvedPathname]) && (routeModule.isDev || (0,next_dist_server_lib_route_cache_key__WEBPACK_IMPORTED_MODULE_16__.isRouteCacheOwner)(resolvedPathname, routeModule.cacheOwner, prerenderManifest.routes[resolvedPathname]));
568
- let isIsr = Boolean(prerenderManifest.dynamicRoutes[normalizedSrcPage] || isPrerendered);
569
- const render404 = async ()=>{
570
- // TODO: should route-module itself handle rendering the 404
571
- if (routerServerContext == null ? void 0 : routerServerContext.render404) {
572
- await routerServerContext.render404(req, res, parsedUrl, false);
573
- } else {
574
- res.end('This page could not be found');
575
- }
576
- return null;
577
- };
578
- if (isIsr && !isDraftMode) {
579
- const prerenderInfo = prerenderManifest.dynamicRoutes[normalizedSrcPage];
580
- if (prerenderInfo) {
581
- if (prerenderInfo.fallback === false && !isPrerendered) {
582
- if (nextConfig.adapterPath) {
583
- return await render404();
584
- }
585
- throw new next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_15__.NoFallbackError();
586
- }
587
- }
588
- }
589
- let cacheKey = null;
590
- if (isIsr && !routeModule.isDev && !isDraftMode) {
591
- cacheKey = resolvedPathname;
592
- // ensure /index and / is normalized to one key
593
- cacheKey = cacheKey === '/index' ? '/' : cacheKey;
594
- }
595
- // Before rendering (which initializes component tree modules), we have to
596
- // set the reference manifests to our global store so Server Action's
597
- // encryption util can access to them at the top level of the page module.
598
- if (serverActionsManifest && clientReferenceManifest) {
599
- (0,next_dist_server_app_render_manifests_singleton__WEBPACK_IMPORTED_MODULE_5__.setManifestsSingleton)({
600
- page: srcPage,
601
- clientReferenceManifest,
602
- serverActionsManifest
603
- });
604
- }
605
- const method = req.method || 'GET';
606
- const tracer = (0,next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_4__.getTracer)();
607
- const activeSpan = tracer.getActiveScopeSpan();
608
- const isWrappedByNextServer = Boolean(routerServerContext == null ? void 0 : routerServerContext.isWrappedByNextServer);
609
- const isMinimalMode = Boolean((0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_3__.getRequestMeta)(req, 'minimalMode'));
610
- const incrementalCache = (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_3__.getRequestMeta)(req, 'incrementalCache') || await routeModule.getIncrementalCache(req, nextConfig, previewProps, prerenderManifest, isMinimalMode);
611
- incrementalCache == null ? void 0 : incrementalCache.resetRequestCache();
612
- globalThis.__incrementalCache = incrementalCache;
613
- const context = {
614
- params,
615
- previewProps,
616
- renderOpts: {
617
- experimental: {
618
- authInterrupts: Boolean(nextConfig.experimental.authInterrupts),
619
- useCacheTimeout: nextConfig.experimental.useCacheTimeout,
620
- durableUseCacheEntries: Boolean(nextConfig.experimental.durableUseCacheEntries)
621
- },
622
- cacheComponents: Boolean(nextConfig.cacheComponents),
623
- validationLevel: nextConfig.experimental.instantInsights.validationLevel,
624
- isDraftMode,
625
- incrementalCache,
626
- hmrRefreshHash: (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_3__.getRequestMeta)(req, 'hmrRefreshHash'),
627
- cacheLifeProfiles: nextConfig.cacheLife,
628
- staticPageGenerationTimeout: nextConfig.staticPageGenerationTimeout,
629
- waitUntil: ctx.waitUntil,
630
- onClose: (cb)=>{
631
- res.on('close', cb);
632
- },
633
- onAfterTaskError: undefined
634
- },
635
- sharedContext: {
636
- buildId,
637
- deploymentId
205
+ const method = req.method || 'GET';
206
+ const tracer = (0,next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_4__.getTracer)();
207
+ const activeSpan = tracer.getActiveScopeSpan();
208
+ const isWrappedByNextServer = Boolean(routerServerContext == null ? void 0 : routerServerContext.isWrappedByNextServer);
209
+ const isMinimalMode = Boolean((0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_3__.getRequestMeta)(req, 'minimalMode'));
210
+ const incrementalCache = (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_3__.getRequestMeta)(req, 'incrementalCache') || await routeModule.getIncrementalCache(req, nextConfig, previewProps, prerenderManifest, isMinimalMode);
211
+ incrementalCache == null ? void 0 : incrementalCache.resetRequestCache();
212
+ globalThis.__incrementalCache = incrementalCache;
213
+ const context = {
214
+ params,
215
+ previewProps,
216
+ renderOpts: {
217
+ experimental: {
218
+ authInterrupts: Boolean(nextConfig.experimental.authInterrupts),
219
+ useCacheTimeout: nextConfig.experimental.useCacheTimeout,
220
+ durableUseCacheEntries: Boolean(nextConfig.experimental.durableUseCacheEntries)
221
+ },
222
+ cacheComponents: Boolean(nextConfig.cacheComponents),
223
+ validationLevel: nextConfig.experimental.instantInsights.validationLevel,
224
+ isDraftMode,
225
+ incrementalCache,
226
+ hmrRefreshHash: (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_3__.getRequestMeta)(req, 'hmrRefreshHash'),
227
+ cacheLifeProfiles: nextConfig.cacheLife,
228
+ staticPageGenerationTimeout: nextConfig.staticPageGenerationTimeout,
229
+ waitUntil: ctx.waitUntil,
230
+ onClose: (cb)=>{
231
+ res.on('close', cb);
232
+ },
233
+ onAfterTaskError: undefined
234
+ },
235
+ sharedContext: {
236
+ buildId,
237
+ deploymentId
638
238
  }
639
239
  };
640
240
  const nodeNextReq = new next_dist_server_base_http_node__WEBPACK_IMPORTED_MODULE_7__.NodeNextRequest(req);
@@ -875,6 +475,406 @@ async function handler(req, res, ctx) {
875
475
  //# sourceMappingURL=app-route.js.map
876
476
 
877
477
 
478
+ /***/ }),
479
+
480
+ /***/ 19121:
481
+ /***/ ((module) => {
482
+
483
+ module.exports = require("next/dist/server/app-render/action-async-storage.external.js");
484
+
485
+ /***/ }),
486
+
487
+ /***/ 22032:
488
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
489
+
490
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
491
+ /* harmony export */ N: () => (/* binding */ readErrorBody),
492
+ /* harmony export */ g: () => (/* binding */ errorMessage)
493
+ /* harmony export */ });
494
+ // Coerce an arbitrary thrown value to a string message. Standardises the
495
+ // `e instanceof Error ? e.message : String(e)` pattern used across
496
+ // error-handler call sites so route handlers, stores, and UI panels all
497
+ // surface the same shape for unknown thrown values.
498
+ function errorMessage(err) {
499
+ return err instanceof Error ? err.message : String(err);
500
+ }
501
+ const MAX_ERROR_BODY_LENGTH = 500;
502
+ // Reads an HTTP error response body for inclusion in a thrown/logged error
503
+ // message. HTML error pages (e.g. GitHub's multi-KB "Unicorn!" 502 page) are
504
+ // suppressed entirely rather than dumped into the message; any other body is
505
+ // capped at MAX_ERROR_BODY_LENGTH. Falls back to res.statusText if the body
506
+ // can't be read (e.g. already consumed).
507
+ async function readErrorBody(res) {
508
+ const contentType = res.headers.get("content-type") ?? "";
509
+ if (contentType.includes("html")) {
510
+ return `<${contentType.split(";")[0] || "text/html"} response, no body shown>`;
511
+ }
512
+ const text = await res.text().catch(()=>res.statusText);
513
+ return text.length > MAX_ERROR_BODY_LENGTH ? `${text.slice(0, MAX_ERROR_BODY_LENGTH)}…` : text;
514
+ }
515
+
516
+
517
+ /***/ }),
518
+
519
+ /***/ 29294:
520
+ /***/ ((module) => {
521
+
522
+ module.exports = require("next/dist/server/app-render/work-async-storage.external.js");
523
+
524
+ /***/ }),
525
+
526
+ /***/ 31421:
527
+ /***/ ((module) => {
528
+
529
+ module.exports = require("node:child_process");
530
+
531
+ /***/ }),
532
+
533
+ /***/ 33873:
534
+ /***/ ((module) => {
535
+
536
+ module.exports = require("path");
537
+
538
+ /***/ }),
539
+
540
+ /***/ 34450:
541
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
542
+
543
+ // ESM COMPAT FLAG
544
+ __webpack_require__.r(__webpack_exports__);
545
+
546
+ // EXPORTS
547
+ __webpack_require__.d(__webpack_exports__, {
548
+ GET: () => (/* binding */ GET),
549
+ dynamic: () => (/* binding */ dynamic)
550
+ });
551
+
552
+ // EXTERNAL MODULE: external "node:fs"
553
+ var external_node_fs_ = __webpack_require__(73024);
554
+ // EXTERNAL MODULE: external "node:path"
555
+ var external_node_path_ = __webpack_require__(76760);
556
+ // EXTERNAL MODULE: ./node_modules/next/dist/api/server.js
557
+ var server = __webpack_require__(23211);
558
+ // EXTERNAL MODULE: external "node:fs/promises"
559
+ var promises_ = __webpack_require__(51455);
560
+ // EXTERNAL MODULE: external "node:child_process"
561
+ var external_node_child_process_ = __webpack_require__(31421);
562
+ // EXTERNAL MODULE: ./lib/db/data-dir.ts
563
+ var data_dir = __webpack_require__(57477);
564
+ // EXTERNAL MODULE: ./lib/env/config.ts
565
+ var config = __webpack_require__(67500);
566
+ // EXTERNAL MODULE: ./lib/utils/error.ts
567
+ var error = __webpack_require__(22032);
568
+ ;// ./lib/lifecycle/update-check.ts
569
+ // Update check: compares the running version against the latest published
570
+ // to npm (channel "stable") or the tip of the GitHub `main` branch
571
+ // (channel "main", experimental). Result is cached on disk so we don't
572
+ // hammer the registry / GitHub on every request.
573
+ //
574
+ // Tune with:
575
+ // JARELA_DISABLE_UPDATE_CHECK=1 skip entirely
576
+ // JARELA_UPDATE_CHANNEL=main track the GitHub main branch instead
577
+
578
+
579
+
580
+
581
+
582
+
583
+
584
+ const PACKAGE_NAME = "@circuitwall/jarela";
585
+ const REPO = "CircuitWall/jarela";
586
+ const REGISTRY_URL = `https://registry.npmjs.org/${PACKAGE_NAME}/latest`;
587
+ const GH_COMMIT_URL = `https://api.github.com/repos/${REPO}/commits/main`;
588
+ const GH_RAW_PKG_URL = `https://raw.githubusercontent.com/${REPO}/main/package.json`;
589
+ const CACHE_TTL_MS = 24 * 60 * 60 * 1000; // 24h
590
+ // JARELA_UPDATE_CHECK_TIMEOUT_MS overrides this.
591
+ function fetchTimeoutMs() {
592
+ return (0,config/* getConfig */.z)().updateCheckTimeoutMs;
593
+ }
594
+ let memo = null;
595
+ function cachePath(channel) {
596
+ const suffix = channel === "stable" ? "" : `.${channel}`;
597
+ return (0,external_node_path_.join)((0,data_dir/* getDataDir */.o)(), `update-check${suffix}.json`);
598
+ }
599
+ function resolveChannel(env = process.env) {
600
+ const raw = (env.JARELA_UPDATE_CHANNEL ?? "").trim().toLowerCase();
601
+ return raw === "main" ? "main" : "stable";
602
+ }
603
+ /** Strict-ish semver compare. Returns negative if a < b, 0 if equal, positive
604
+ * if a > b. Ignores pre-release tags beyond plain equality. */ function compareSemver(a, b) {
605
+ const pa = a.split("-")[0].split(".").map((n)=>Number(n) || 0);
606
+ const pb = b.split("-")[0].split(".").map((n)=>Number(n) || 0);
607
+ for(let i = 0; i < 3; i++){
608
+ const diff = (pa[i] ?? 0) - (pb[i] ?? 0);
609
+ if (diff !== 0) return diff;
610
+ }
611
+ return 0;
612
+ }
613
+ /** Best-effort: read the local git HEAD sha for a source checkout. Returns
614
+ * null if the path isn't a checkout, git isn't installed, or it fails. */ function readLocalCommit(packageRoot) {
615
+ if (!(0,external_node_fs_.existsSync)((0,external_node_path_.join)(packageRoot, ".git"))) return null;
616
+ const r = (0,external_node_child_process_.spawnSync)("git", [
617
+ "rev-parse",
618
+ "HEAD"
619
+ ], {
620
+ cwd: packageRoot,
621
+ encoding: "utf8",
622
+ shell: process.platform === "win32"
623
+ });
624
+ if (r.status !== 0) return null;
625
+ const sha = (r.stdout || "").trim();
626
+ return /^[0-9a-f]{7,40}$/i.test(sha) ? sha : null;
627
+ }
628
+ async function readCache(channel) {
629
+ try {
630
+ const raw = await (0,promises_.readFile)(cachePath(channel), "utf8");
631
+ const parsed = JSON.parse(raw);
632
+ if (typeof parsed?.latest !== "string" || typeof parsed?.checkedAt !== "number") return null;
633
+ if (parsed.channel && parsed.channel !== channel) return null;
634
+ return parsed;
635
+ } catch {
636
+ return null;
637
+ }
638
+ }
639
+ async function writeCache(entry) {
640
+ const path = cachePath(entry.channel);
641
+ try {
642
+ await (0,promises_.mkdir)((0,external_node_path_.dirname)(path), {
643
+ recursive: true
644
+ });
645
+ await (0,promises_.writeFile)(path, JSON.stringify(entry), "utf8");
646
+ } catch {
647
+ // Cache is a nice-to-have; failing to persist shouldn't break the call.
648
+ }
649
+ }
650
+ async function fetchJson(url) {
651
+ const ctrl = new AbortController();
652
+ const timer = setTimeout(()=>ctrl.abort(), fetchTimeoutMs());
653
+ try {
654
+ const res = await fetch(url, {
655
+ signal: ctrl.signal,
656
+ headers: {
657
+ accept: "application/json",
658
+ "user-agent": "jarela-update-check"
659
+ }
660
+ });
661
+ if (!res.ok) throw new Error(`${url} returned ${res.status}`);
662
+ return await res.json();
663
+ } finally{
664
+ clearTimeout(timer);
665
+ }
666
+ }
667
+ async function fetchLatestStable() {
668
+ const body = await fetchJson(REGISTRY_URL);
669
+ if (!body?.version) throw new Error("registry response missing version");
670
+ return {
671
+ version: body.version
672
+ };
673
+ }
674
+ async function fetchLatestMain() {
675
+ const [pkg, commit] = await Promise.all([
676
+ fetchJson(GH_RAW_PKG_URL),
677
+ fetchJson(GH_COMMIT_URL)
678
+ ]);
679
+ if (!pkg?.version) throw new Error("github package.json missing version");
680
+ if (!commit?.sha) throw new Error("github commit response missing sha");
681
+ return {
682
+ version: pkg.version,
683
+ commit: {
684
+ sha: commit.sha,
685
+ date: commit.commit?.author?.date ?? null
686
+ }
687
+ };
688
+ }
689
+ /** Check for an update. Honours JARELA_DISABLE_UPDATE_CHECK and uses a 24h
690
+ * on-disk cache plus an in-memory memo. Accepts either a bare current
691
+ * version string (legacy) or an options object. */ async function checkForUpdate(currentOrOpts, legacyOpts) {
692
+ const opts = typeof currentOrOpts === "string" ? {
693
+ current: currentOrOpts,
694
+ force: legacyOpts?.force
695
+ } : currentOrOpts;
696
+ const current = opts.current;
697
+ const channel = opts.channel ?? resolveChannel();
698
+ const force = opts.force === true;
699
+ if ((0,config/* getConfig */.z)().disableUpdateCheck) {
700
+ return {
701
+ channel,
702
+ current,
703
+ latest: null,
704
+ behind: false,
705
+ cached: false,
706
+ checkedAt: null,
707
+ error: "disabled"
708
+ };
709
+ }
710
+ const now = Date.now();
711
+ const memoKey = `${channel}:${current}`;
712
+ if (!force && memo && memo.key === memoKey && memo.expiresAt > now) return memo.value;
713
+ const currentCommit = channel === "main" && opts.packageRoot ? readLocalCommit(opts.packageRoot) : null;
714
+ if (!force) {
715
+ const cached = await readCache(channel);
716
+ if (cached && now - cached.checkedAt < CACHE_TTL_MS) {
717
+ const info = buildInfo({
718
+ channel,
719
+ current,
720
+ currentCommit,
721
+ cached: true,
722
+ fromCache: cached,
723
+ checkedAt: cached.checkedAt
724
+ });
725
+ memo = {
726
+ key: memoKey,
727
+ value: info,
728
+ expiresAt: now + 60000
729
+ };
730
+ return info;
731
+ }
732
+ }
733
+ try {
734
+ let cacheEntry;
735
+ if (channel === "main") {
736
+ const { version, commit } = await fetchLatestMain();
737
+ cacheEntry = {
738
+ channel,
739
+ latest: version,
740
+ checkedAt: now,
741
+ commit
742
+ };
743
+ } else {
744
+ const { version } = await fetchLatestStable();
745
+ cacheEntry = {
746
+ channel,
747
+ latest: version,
748
+ checkedAt: now
749
+ };
750
+ }
751
+ await writeCache(cacheEntry);
752
+ const info = buildInfo({
753
+ channel,
754
+ current,
755
+ currentCommit,
756
+ cached: false,
757
+ fromCache: cacheEntry,
758
+ checkedAt: now
759
+ });
760
+ memo = {
761
+ key: memoKey,
762
+ value: info,
763
+ expiresAt: now + 60000
764
+ };
765
+ return info;
766
+ } catch (err) {
767
+ return {
768
+ channel,
769
+ current,
770
+ latest: null,
771
+ behind: false,
772
+ cached: false,
773
+ checkedAt: null,
774
+ error: (0,error/* errorMessage */.g)(err)
775
+ };
776
+ }
777
+ }
778
+ function buildInfo(args) {
779
+ const { channel, current, currentCommit, cached, fromCache, checkedAt } = args;
780
+ const latest = fromCache.latest;
781
+ let behind = false;
782
+ if (channel === "main") {
783
+ // Prefer sha comparison when we have a local checkout; otherwise fall
784
+ // back to comparing the published-to-main package.json version.
785
+ if (currentCommit && fromCache.commit?.sha) {
786
+ const a = currentCommit.toLowerCase();
787
+ const b = fromCache.commit.sha.toLowerCase();
788
+ behind = !(a.startsWith(b) || b.startsWith(a));
789
+ } else {
790
+ behind = compareSemver(latest, current) > 0;
791
+ }
792
+ } else {
793
+ behind = compareSemver(latest, current) > 0;
794
+ }
795
+ return {
796
+ channel,
797
+ current,
798
+ latest,
799
+ behind,
800
+ cached,
801
+ checkedAt,
802
+ ...fromCache.commit ? {
803
+ latestCommit: fromCache.commit
804
+ } : {},
805
+ ...currentCommit ? {
806
+ currentCommit
807
+ } : {}
808
+ };
809
+ }
810
+
811
+ ;// ./app/api/v1/update/route.ts
812
+
813
+
814
+
815
+
816
+ const dynamic = "force-dynamic";
817
+ function getCurrentVersion() {
818
+ try {
819
+ // In the standalone build package.json sits at the bundle root, which is
820
+ // also the process cwd at start-prod time.
821
+ const raw = (0,external_node_fs_.readFileSync)((0,external_node_path_.join)(process.cwd(), "package.json"), "utf8");
822
+ return JSON.parse(raw).version ?? "0.0.0";
823
+ } catch {
824
+ return "0.0.0";
825
+ }
826
+ }
827
+ async function GET() {
828
+ const info = await checkForUpdate({
829
+ current: getCurrentVersion(),
830
+ packageRoot: process.cwd()
831
+ });
832
+ return server.NextResponse.json(info);
833
+ }
834
+
835
+
836
+ /***/ }),
837
+
838
+ /***/ 44870:
839
+ /***/ ((module) => {
840
+
841
+ module.exports = require("next/dist/compiled/next-server/app-route.runtime.prod.js");
842
+
843
+ /***/ }),
844
+
845
+ /***/ 48161:
846
+ /***/ ((module) => {
847
+
848
+ module.exports = require("node:os");
849
+
850
+ /***/ }),
851
+
852
+ /***/ 51455:
853
+ /***/ ((module) => {
854
+
855
+ module.exports = require("node:fs/promises");
856
+
857
+ /***/ }),
858
+
859
+ /***/ 55511:
860
+ /***/ ((module) => {
861
+
862
+ module.exports = require("crypto");
863
+
864
+ /***/ }),
865
+
866
+ /***/ 63033:
867
+ /***/ ((module) => {
868
+
869
+ module.exports = require("next/dist/server/app-render/work-unit-async-storage.external.js");
870
+
871
+ /***/ }),
872
+
873
+ /***/ 73024:
874
+ /***/ ((module) => {
875
+
876
+ module.exports = require("node:fs");
877
+
878
878
  /***/ }),
879
879
 
880
880
  /***/ 76760:
@@ -898,7 +898,7 @@ module.exports = require("next/dist/shared/lib/no-fallback-error.external");
898
898
  var __webpack_require__ = require("../../../../webpack-runtime.js");
899
899
  __webpack_require__.C(exports);
900
900
  var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
901
- var __webpack_exports__ = __webpack_require__.X(0, [2970,1813,4992], () => (__webpack_exec__(74523)));
901
+ var __webpack_exports__ = __webpack_require__.X(0, [2970,1813,4992], () => (__webpack_exec__(18193)));
902
902
  module.exports = __webpack_exports__;
903
903
 
904
904
  })();