@circuitwall/jarela 0.7.0 → 0.7.2

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 (271) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/build-manifest.json +6 -6
  3. package/.next/standalone/.next/prerender-manifest.json +3 -3
  4. package/.next/standalone/.next/required-server-files.json +1 -1
  5. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  6. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  7. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  8. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  9. package/.next/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  11. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  12. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  13. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  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 +5 -5
  17. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +5 -5
  18. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  19. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +5 -5
  20. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  21. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  22. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  23. package/.next/standalone/.next/server/app/index.html +2 -2
  24. package/.next/standalone/.next/server/app/index.rsc +7 -7
  25. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  26. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +7 -7
  27. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  28. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +5 -5
  29. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +3 -3
  30. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  31. package/.next/standalone/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  32. package/.next/standalone/.next/server/app/setup.html +1 -1
  33. package/.next/standalone/.next/server/app/setup.rsc +5 -5
  34. package/.next/standalone/.next/server/app/setup.segments/_full.segment.rsc +5 -5
  35. package/.next/standalone/.next/server/app/setup.segments/_head.segment.rsc +1 -1
  36. package/.next/standalone/.next/server/app/setup.segments/_index.segment.rsc +5 -5
  37. package/.next/standalone/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
  38. package/.next/standalone/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +1 -1
  39. package/.next/standalone/.next/server/app/setup.segments/setup.segment.rsc +1 -1
  40. package/.next/standalone/.next/server/middleware-build-manifest.js +20 -1
  41. package/.next/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
  42. package/.next/standalone/.next/server/next-font-manifest.js +1 -1
  43. package/.next/standalone/.next/server/pages/404.html +2 -2
  44. package/.next/standalone/.next/server/pages/500.html +1 -1
  45. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  46. package/.next/standalone/.next/static/IauO0rNZkUVPX834k-SBa/_buildManifest.js +1 -0
  47. package/.next/standalone/.next/static/chunks/3457-5218e06617c4db2a.js +21026 -0
  48. package/.next/standalone/.next/static/chunks/3457-5218e06617c4db2a.js.map +1 -0
  49. package/.next/standalone/.next/static/chunks/4bd1b696-f4afdf0ad1d556a5.js +18276 -0
  50. package/.next/standalone/.next/static/chunks/4bd1b696-f4afdf0ad1d556a5.js.map +1 -0
  51. package/.next/standalone/.next/static/chunks/6945-269d42dc1784c71a.js +728 -0
  52. package/.next/standalone/.next/static/chunks/6945-269d42dc1784c71a.js.map +1 -0
  53. package/.next/standalone/.next/static/chunks/8657-ce5d7648903bc458.js +64051 -0
  54. package/.next/standalone/.next/static/chunks/8657-ce5d7648903bc458.js.map +1 -0
  55. package/.next/standalone/.next/static/chunks/app/_global-error/page-ef2695e78d17eafd.js +17 -0
  56. package/.next/standalone/.next/static/chunks/app/_not-found/page-1c2b53258ccc0873.js +191 -0
  57. package/.next/standalone/.next/static/chunks/app/_not-found/page-1c2b53258ccc0873.js.map +1 -0
  58. package/.next/standalone/.next/static/chunks/app/api/v1/access/[identity]/route-ef2695e78d17eafd.js +17 -0
  59. package/.next/standalone/.next/static/chunks/app/api/v1/access/route-ef2695e78d17eafd.js +17 -0
  60. package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/compact/route-ef2695e78d17eafd.js +17 -0
  61. package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/display-filters/route-ef2695e78d17eafd.js +17 -0
  62. package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/route-ef2695e78d17eafd.js +17 -0
  63. package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/thread/route-ef2695e78d17eafd.js +17 -0
  64. package/.next/standalone/.next/static/chunks/app/api/v1/agents/route-ef2695e78d17eafd.js +17 -0
  65. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/chats/route-ef2695e78d17eafd.js +17 -0
  66. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/lookup/route-ef2695e78d17eafd.js +17 -0
  67. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/pair/route-ef2695e78d17eafd.js +17 -0
  68. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/route-ef2695e78d17eafd.js +17 -0
  69. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/routes/[route_id]/route-ef2695e78d17eafd.js +17 -0
  70. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/routes/route-ef2695e78d17eafd.js +17 -0
  71. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/status/route-ef2695e78d17eafd.js +17 -0
  72. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/route-ef2695e78d17eafd.js +17 -0
  73. package/.next/standalone/.next/static/chunks/app/api/v1/builtin-tools/route-ef2695e78d17eafd.js +17 -0
  74. package/.next/standalone/.next/static/chunks/app/api/v1/documents/search/route-ef2695e78d17eafd.js +17 -0
  75. package/.next/standalone/.next/static/chunks/app/api/v1/documents/settings/route-ef2695e78d17eafd.js +17 -0
  76. package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/[id]/reindex/route-ef2695e78d17eafd.js +17 -0
  77. package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/[id]/route-ef2695e78d17eafd.js +17 -0
  78. package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/route-ef2695e78d17eafd.js +17 -0
  79. package/.next/standalone/.next/static/chunks/app/api/v1/env-sync/allowlist/route-ef2695e78d17eafd.js +17 -0
  80. package/.next/standalone/.next/static/chunks/app/api/v1/env-sync/route-ef2695e78d17eafd.js +17 -0
  81. package/.next/standalone/.next/static/chunks/app/api/v1/events/route-ef2695e78d17eafd.js +17 -0
  82. package/.next/standalone/.next/static/chunks/app/api/v1/events/test/route-ef2695e78d17eafd.js +17 -0
  83. package/.next/standalone/.next/static/chunks/app/api/v1/extensions/route-ef2695e78d17eafd.js +17 -0
  84. package/.next/standalone/.next/static/chunks/app/api/v1/extensions/tools/[name]/secrets/route-ef2695e78d17eafd.js +17 -0
  85. package/.next/standalone/.next/static/chunks/app/api/v1/files/[name]/route-ef2695e78d17eafd.js +17 -0
  86. package/.next/standalone/.next/static/chunks/app/api/v1/fs/browse/route-ef2695e78d17eafd.js +17 -0
  87. package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/[id]/route-ef2695e78d17eafd.js +17 -0
  88. package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/default/route-ef2695e78d17eafd.js +17 -0
  89. package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/route-ef2695e78d17eafd.js +17 -0
  90. package/.next/standalone/.next/static/chunks/app/api/v1/health/route-ef2695e78d17eafd.js +17 -0
  91. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/[name]/route-ef2695e78d17eafd.js +17 -0
  92. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/[name]/test/route-ef2695e78d17eafd.js +17 -0
  93. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/callback/route-ef2695e78d17eafd.js +17 -0
  94. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/start/route-ef2695e78d17eafd.js +17 -0
  95. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/status/route-ef2695e78d17eafd.js +17 -0
  96. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/callback/route-ef2695e78d17eafd.js +17 -0
  97. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/start/route-ef2695e78d17eafd.js +17 -0
  98. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/status/route-ef2695e78d17eafd.js +17 -0
  99. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/route-ef2695e78d17eafd.js +17 -0
  100. package/.next/standalone/.next/static/chunks/app/api/v1/maps/embed/route-ef2695e78d17eafd.js +17 -0
  101. package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/[name]/route-ef2695e78d17eafd.js +17 -0
  102. package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/registry/route-ef2695e78d17eafd.js +17 -0
  103. package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/route-ef2695e78d17eafd.js +17 -0
  104. package/.next/standalone/.next/static/chunks/app/api/v1/memory/[namespace]/[key]/route-ef2695e78d17eafd.js +17 -0
  105. package/.next/standalone/.next/static/chunks/app/api/v1/memory/route-ef2695e78d17eafd.js +17 -0
  106. package/.next/standalone/.next/static/chunks/app/api/v1/models/[name]/route-ef2695e78d17eafd.js +17 -0
  107. package/.next/standalone/.next/static/chunks/app/api/v1/models/route-ef2695e78d17eafd.js +17 -0
  108. package/.next/standalone/.next/static/chunks/app/api/v1/page-capture/route-ef2695e78d17eafd.js +17 -0
  109. package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/[id]/approve/route-ef2695e78d17eafd.js +17 -0
  110. package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/[id]/deny/route-ef2695e78d17eafd.js +17 -0
  111. package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/route-ef2695e78d17eafd.js +17 -0
  112. package/.next/standalone/.next/static/chunks/app/api/v1/profile/location/route-ef2695e78d17eafd.js +17 -0
  113. package/.next/standalone/.next/static/chunks/app/api/v1/profile/route-ef2695e78d17eafd.js +17 -0
  114. package/.next/standalone/.next/static/chunks/app/api/v1/providers/[provider]/models/route-ef2695e78d17eafd.js +17 -0
  115. package/.next/standalone/.next/static/chunks/app/api/v1/providers/github-copilot/auth/route-ef2695e78d17eafd.js +17 -0
  116. package/.next/standalone/.next/static/chunks/app/api/v1/providers/route-ef2695e78d17eafd.js +17 -0
  117. package/.next/standalone/.next/static/chunks/app/api/v1/proxy-config/route-ef2695e78d17eafd.js +17 -0
  118. package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/[id]/route-ef2695e78d17eafd.js +17 -0
  119. package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/[id]/run/route-ef2695e78d17eafd.js +17 -0
  120. package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/route-ef2695e78d17eafd.js +17 -0
  121. package/.next/standalone/.next/static/chunks/app/api/v1/setup/test-key/route-ef2695e78d17eafd.js +17 -0
  122. package/.next/standalone/.next/static/chunks/app/api/v1/tailscale/route-ef2695e78d17eafd.js +17 -0
  123. package/.next/standalone/.next/static/chunks/app/api/v1/tasks/[agent_id]/route-ef2695e78d17eafd.js +17 -0
  124. package/.next/standalone/.next/static/chunks/app/api/v1/tasks/route-ef2695e78d17eafd.js +17 -0
  125. package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/route-ef2695e78d17eafd.js +17 -0
  126. package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/run/route-ef2695e78d17eafd.js +17 -0
  127. package/.next/standalone/.next/static/chunks/app/api/v1/threads/route-ef2695e78d17eafd.js +17 -0
  128. package/.next/standalone/.next/static/chunks/app/api/v1/tools/route-ef2695e78d17eafd.js +17 -0
  129. package/.next/standalone/.next/static/chunks/app/api/v1/update/route-ef2695e78d17eafd.js +17 -0
  130. package/.next/standalone/.next/static/chunks/app/api/v1/voice/transcribe/route-ef2695e78d17eafd.js +17 -0
  131. package/.next/standalone/.next/static/chunks/app/api/v1/voice/tts/route-ef2695e78d17eafd.js +17 -0
  132. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/[id]/route-ef2695e78d17eafd.js +17 -0
  133. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/[id]/run/route-ef2695e78d17eafd.js +17 -0
  134. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/reaction-scripts/route-ef2695e78d17eafd.js +17 -0
  135. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/route-ef2695e78d17eafd.js +17 -0
  136. package/.next/standalone/.next/static/chunks/app/layout-0814b4dde82d031c.js +211 -0
  137. package/.next/standalone/.next/static/chunks/app/layout-0814b4dde82d031c.js.map +1 -0
  138. package/.next/standalone/.next/static/chunks/app/page-a20902703c0a4f10.js +18162 -0
  139. package/.next/standalone/.next/static/chunks/app/page-a20902703c0a4f10.js.map +1 -0
  140. package/.next/standalone/.next/static/chunks/app/setup/page-28c01e39806ffb39.js +709 -0
  141. package/.next/standalone/.next/static/chunks/app/setup/page-28c01e39806ffb39.js.map +1 -0
  142. package/.next/standalone/.next/static/chunks/framework-01304d5a84d96921.js +17321 -0
  143. package/.next/standalone/.next/static/chunks/framework-01304d5a84d96921.js.map +1 -0
  144. package/.next/standalone/.next/static/chunks/main-app-3f37bcefd1eaffaf.js +40 -0
  145. package/.next/standalone/.next/static/chunks/main-app-3f37bcefd1eaffaf.js.map +1 -0
  146. package/.next/standalone/.next/static/chunks/main-da6c99fc920e0f54.js +10973 -0
  147. package/.next/standalone/.next/static/chunks/main-da6c99fc920e0f54.js.map +1 -0
  148. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-ef2695e78d17eafd.js +17 -0
  149. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-ef2695e78d17eafd.js +17 -0
  150. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-e0f5f907bea96484.js +19 -0
  151. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-e0f5f907bea96484.js.map +1 -0
  152. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-ef2695e78d17eafd.js +17 -0
  153. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-ef2695e78d17eafd.js +17 -0
  154. package/.next/standalone/.next/static/chunks/webpack-ff5627013a5e3842.js +330 -0
  155. package/.next/standalone/.next/static/chunks/webpack-ff5627013a5e3842.js.map +1 -0
  156. package/.next/standalone/.next/static/css/61d4279c2300e146.css +120 -0
  157. package/.next/standalone/.next/static/css/61d4279c2300e146.css.map +1 -0
  158. package/.next/standalone/.next/static/css/cc66c456aba91258.css +5 -0
  159. package/.next/standalone/.next/static/css/cc66c456aba91258.css.map +1 -0
  160. package/.next/standalone/package.json +8 -7
  161. package/.next/standalone/public/sw.js.map +1 -0
  162. package/.next/standalone/public/swe-worker-f61931bc2770d10b.js.map +1 -0
  163. package/.next/standalone/server.js +1 -1
  164. package/CHANGELOG.md +26 -0
  165. package/next.config.ts +15 -0
  166. package/package.json +8 -7
  167. package/public/sw.js.map +1 -0
  168. package/public/swe-worker-f61931bc2770d10b.js.map +1 -0
  169. package/scripts/jarela-bin.mjs +9 -0
  170. package/scripts/optimize-client-chunks.mjs +144 -0
  171. package/scripts/start-prod.mjs +10 -0
  172. package/.next/standalone/.next/static/YPyYnTKBZDNmNtxfosViy/_buildManifest.js +0 -1
  173. package/.next/standalone/.next/static/chunks/3457-33fb797ce4ab98b5.js +0 -32
  174. package/.next/standalone/.next/static/chunks/4bd1b696-d3a0b478714afd8c.js +0 -1
  175. package/.next/standalone/.next/static/chunks/6945-fe3c2c29fcc9747d.js +0 -1
  176. package/.next/standalone/.next/static/chunks/8657-4832c6fc644bc4b4.js +0 -1
  177. package/.next/standalone/.next/static/chunks/app/_global-error/page-2a40ae26adab6590.js +0 -1
  178. package/.next/standalone/.next/static/chunks/app/_not-found/page-a6e862db975a5eb0.js +0 -1
  179. package/.next/standalone/.next/static/chunks/app/api/v1/access/[identity]/route-2a40ae26adab6590.js +0 -1
  180. package/.next/standalone/.next/static/chunks/app/api/v1/access/route-2a40ae26adab6590.js +0 -1
  181. package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/compact/route-2a40ae26adab6590.js +0 -1
  182. package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/display-filters/route-2a40ae26adab6590.js +0 -1
  183. package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/route-2a40ae26adab6590.js +0 -1
  184. package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/thread/route-2a40ae26adab6590.js +0 -1
  185. package/.next/standalone/.next/static/chunks/app/api/v1/agents/route-2a40ae26adab6590.js +0 -1
  186. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/chats/route-2a40ae26adab6590.js +0 -1
  187. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/lookup/route-2a40ae26adab6590.js +0 -1
  188. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/pair/route-2a40ae26adab6590.js +0 -1
  189. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/route-2a40ae26adab6590.js +0 -1
  190. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/routes/[route_id]/route-2a40ae26adab6590.js +0 -1
  191. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/routes/route-2a40ae26adab6590.js +0 -1
  192. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/status/route-2a40ae26adab6590.js +0 -1
  193. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/route-2a40ae26adab6590.js +0 -1
  194. package/.next/standalone/.next/static/chunks/app/api/v1/builtin-tools/route-2a40ae26adab6590.js +0 -1
  195. package/.next/standalone/.next/static/chunks/app/api/v1/documents/search/route-2a40ae26adab6590.js +0 -1
  196. package/.next/standalone/.next/static/chunks/app/api/v1/documents/settings/route-2a40ae26adab6590.js +0 -1
  197. package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/[id]/reindex/route-2a40ae26adab6590.js +0 -1
  198. package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/[id]/route-2a40ae26adab6590.js +0 -1
  199. package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/route-2a40ae26adab6590.js +0 -1
  200. package/.next/standalone/.next/static/chunks/app/api/v1/env-sync/allowlist/route-2a40ae26adab6590.js +0 -1
  201. package/.next/standalone/.next/static/chunks/app/api/v1/env-sync/route-2a40ae26adab6590.js +0 -1
  202. package/.next/standalone/.next/static/chunks/app/api/v1/events/route-2a40ae26adab6590.js +0 -1
  203. package/.next/standalone/.next/static/chunks/app/api/v1/events/test/route-2a40ae26adab6590.js +0 -1
  204. package/.next/standalone/.next/static/chunks/app/api/v1/extensions/route-2a40ae26adab6590.js +0 -1
  205. package/.next/standalone/.next/static/chunks/app/api/v1/extensions/tools/[name]/secrets/route-2a40ae26adab6590.js +0 -1
  206. package/.next/standalone/.next/static/chunks/app/api/v1/files/[name]/route-2a40ae26adab6590.js +0 -1
  207. package/.next/standalone/.next/static/chunks/app/api/v1/fs/browse/route-2a40ae26adab6590.js +0 -1
  208. package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/[id]/route-2a40ae26adab6590.js +0 -1
  209. package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/default/route-2a40ae26adab6590.js +0 -1
  210. package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/route-2a40ae26adab6590.js +0 -1
  211. package/.next/standalone/.next/static/chunks/app/api/v1/health/route-2a40ae26adab6590.js +0 -1
  212. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/[name]/route-2a40ae26adab6590.js +0 -1
  213. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/[name]/test/route-2a40ae26adab6590.js +0 -1
  214. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/callback/route-2a40ae26adab6590.js +0 -1
  215. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/start/route-2a40ae26adab6590.js +0 -1
  216. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/status/route-2a40ae26adab6590.js +0 -1
  217. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/callback/route-2a40ae26adab6590.js +0 -1
  218. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/start/route-2a40ae26adab6590.js +0 -1
  219. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/status/route-2a40ae26adab6590.js +0 -1
  220. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/route-2a40ae26adab6590.js +0 -1
  221. package/.next/standalone/.next/static/chunks/app/api/v1/maps/embed/route-2a40ae26adab6590.js +0 -1
  222. package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/[name]/route-2a40ae26adab6590.js +0 -1
  223. package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/registry/route-2a40ae26adab6590.js +0 -1
  224. package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/route-2a40ae26adab6590.js +0 -1
  225. package/.next/standalone/.next/static/chunks/app/api/v1/memory/[namespace]/[key]/route-2a40ae26adab6590.js +0 -1
  226. package/.next/standalone/.next/static/chunks/app/api/v1/memory/route-2a40ae26adab6590.js +0 -1
  227. package/.next/standalone/.next/static/chunks/app/api/v1/models/[name]/route-2a40ae26adab6590.js +0 -1
  228. package/.next/standalone/.next/static/chunks/app/api/v1/models/route-2a40ae26adab6590.js +0 -1
  229. package/.next/standalone/.next/static/chunks/app/api/v1/page-capture/route-2a40ae26adab6590.js +0 -1
  230. package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/[id]/approve/route-2a40ae26adab6590.js +0 -1
  231. package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/[id]/deny/route-2a40ae26adab6590.js +0 -1
  232. package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/route-2a40ae26adab6590.js +0 -1
  233. package/.next/standalone/.next/static/chunks/app/api/v1/profile/location/route-2a40ae26adab6590.js +0 -1
  234. package/.next/standalone/.next/static/chunks/app/api/v1/profile/route-2a40ae26adab6590.js +0 -1
  235. package/.next/standalone/.next/static/chunks/app/api/v1/providers/[provider]/models/route-2a40ae26adab6590.js +0 -1
  236. package/.next/standalone/.next/static/chunks/app/api/v1/providers/github-copilot/auth/route-2a40ae26adab6590.js +0 -1
  237. package/.next/standalone/.next/static/chunks/app/api/v1/providers/route-2a40ae26adab6590.js +0 -1
  238. package/.next/standalone/.next/static/chunks/app/api/v1/proxy-config/route-2a40ae26adab6590.js +0 -1
  239. package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/[id]/route-2a40ae26adab6590.js +0 -1
  240. package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/[id]/run/route-2a40ae26adab6590.js +0 -1
  241. package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/route-2a40ae26adab6590.js +0 -1
  242. package/.next/standalone/.next/static/chunks/app/api/v1/setup/test-key/route-2a40ae26adab6590.js +0 -1
  243. package/.next/standalone/.next/static/chunks/app/api/v1/tailscale/route-2a40ae26adab6590.js +0 -1
  244. package/.next/standalone/.next/static/chunks/app/api/v1/tasks/[agent_id]/route-2a40ae26adab6590.js +0 -1
  245. package/.next/standalone/.next/static/chunks/app/api/v1/tasks/route-2a40ae26adab6590.js +0 -1
  246. package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/route-2a40ae26adab6590.js +0 -1
  247. package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/run/route-2a40ae26adab6590.js +0 -1
  248. package/.next/standalone/.next/static/chunks/app/api/v1/threads/route-2a40ae26adab6590.js +0 -1
  249. package/.next/standalone/.next/static/chunks/app/api/v1/tools/route-2a40ae26adab6590.js +0 -1
  250. package/.next/standalone/.next/static/chunks/app/api/v1/update/route-2a40ae26adab6590.js +0 -1
  251. package/.next/standalone/.next/static/chunks/app/api/v1/voice/transcribe/route-2a40ae26adab6590.js +0 -1
  252. package/.next/standalone/.next/static/chunks/app/api/v1/voice/tts/route-2a40ae26adab6590.js +0 -1
  253. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/[id]/route-2a40ae26adab6590.js +0 -1
  254. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/[id]/run/route-2a40ae26adab6590.js +0 -1
  255. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/reaction-scripts/route-2a40ae26adab6590.js +0 -1
  256. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/route-2a40ae26adab6590.js +0 -1
  257. package/.next/standalone/.next/static/chunks/app/layout-764e6d7e68bc7d35.js +0 -1
  258. package/.next/standalone/.next/static/chunks/app/page-a4f8846bc63c9c2f.js +0 -24
  259. package/.next/standalone/.next/static/chunks/app/setup/page-ed59c750c18fee42.js +0 -1
  260. package/.next/standalone/.next/static/chunks/framework-29e3791c8b7ad5e0.js +0 -1
  261. package/.next/standalone/.next/static/chunks/main-app-cb0edf855588e8f1.js +0 -1
  262. package/.next/standalone/.next/static/chunks/main-b611c7b6b84fbe95.js +0 -5
  263. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-2a40ae26adab6590.js +0 -1
  264. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-2a40ae26adab6590.js +0 -1
  265. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-23ce00bb5787d544.js +0 -1
  266. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-2a40ae26adab6590.js +0 -1
  267. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-2a40ae26adab6590.js +0 -1
  268. package/.next/standalone/.next/static/chunks/webpack-5793430421782353.js +0 -1
  269. package/.next/standalone/.next/static/css/5eacd01f773eed7f.css +0 -11
  270. package/.next/standalone/.next/static/css/a0f98435baf0fccf.css +0 -1
  271. /package/.next/standalone/.next/static/{YPyYnTKBZDNmNtxfosViy → IauO0rNZkUVPX834k-SBa}/_ssgManifest.js +0 -0
@@ -0,0 +1,728 @@
1
+ "use strict";
2
+ (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([[6945],{
3
+
4
+ /***/ 1490:
5
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6
+
7
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
8
+ /* harmony export */ AU: () => (/* binding */ submitRun),
9
+ /* harmony export */ FH: () => (/* binding */ api),
10
+ /* harmony export */ _C: () => (/* binding */ subscribeRun)
11
+ /* harmony export */ });
12
+ const BASE = "/api/v1";
13
+ const LIST_TTL_MS = 30000;
14
+ function emptyCache() {
15
+ return {
16
+ data: null,
17
+ fetchedAt: 0,
18
+ inflight: null
19
+ };
20
+ }
21
+ function cloneRows(rows) {
22
+ return rows.map((row)=>({
23
+ ...row
24
+ }));
25
+ }
26
+ const agentListCache = emptyCache();
27
+ const modelListCache = emptyCache();
28
+ const taskListCache = emptyCache();
29
+ function setAgentListCache(rows, notify = true) {
30
+ const snap = cloneRows(rows);
31
+ agentListCache.data = snap;
32
+ agentListCache.fetchedAt = Date.now();
33
+ agentListCache.inflight = null;
34
+ if (notify && "object" !== "undefined") {
35
+ window.dispatchEvent(new CustomEvent("jarela:agents-changed"));
36
+ }
37
+ return cloneRows(snap);
38
+ }
39
+ function setModelListCache(rows, notify = true) {
40
+ const snap = cloneRows(rows);
41
+ modelListCache.data = snap;
42
+ modelListCache.fetchedAt = Date.now();
43
+ modelListCache.inflight = null;
44
+ if (notify && "object" !== "undefined") {
45
+ window.dispatchEvent(new CustomEvent("jarela:models-changed"));
46
+ }
47
+ return cloneRows(snap);
48
+ }
49
+ function setTaskListCache(rows, notify = true) {
50
+ const snap = cloneRows(rows);
51
+ taskListCache.data = snap;
52
+ taskListCache.fetchedAt = Date.now();
53
+ taskListCache.inflight = null;
54
+ if (notify && "object" !== "undefined") {
55
+ window.dispatchEvent(new CustomEvent("jarela:tasks-changed"));
56
+ }
57
+ return cloneRows(snap);
58
+ }
59
+ function cachedList(cache, fetchFn, setCache, force) {
60
+ const now = Date.now();
61
+ if (!force && cache.data && now - cache.fetchedAt < LIST_TTL_MS) {
62
+ return Promise.resolve(cloneRows(cache.data));
63
+ }
64
+ if (!force && cache.inflight) return cache.inflight;
65
+ const req = fetchFn().then((rows)=>setCache(rows, false));
66
+ cache.inflight = req;
67
+ return req;
68
+ }
69
+ async function request(path, init) {
70
+ const res = await fetch(`${BASE}${path}`, {
71
+ headers: {
72
+ "Content-Type": "application/json",
73
+ ...init?.headers
74
+ },
75
+ ...init
76
+ });
77
+ if (!res.ok) {
78
+ const text = await res.text().catch(()=>res.statusText);
79
+ throw new Error(`${res.status} ${text}`);
80
+ }
81
+ return res.json();
82
+ }
83
+ const api = {
84
+ agents: {
85
+ list: (opts)=>cachedList(agentListCache, ()=>request("/agents"), setAgentListCache, opts?.force === true),
86
+ get: (id)=>request(`/agents/${encodeURIComponent(id)}`),
87
+ create: async (data)=>{
88
+ const created = await request("/agents", {
89
+ method: "POST",
90
+ body: JSON.stringify(data)
91
+ });
92
+ if (agentListCache.data) setAgentListCache([
93
+ ...agentListCache.data,
94
+ created
95
+ ]);
96
+ else if (true) window.dispatchEvent(new CustomEvent("jarela:agents-changed"));
97
+ return created;
98
+ },
99
+ update: async (id, data)=>{
100
+ const updated = await request(`/agents/${encodeURIComponent(id)}`, {
101
+ method: "PUT",
102
+ body: JSON.stringify(data)
103
+ });
104
+ if (agentListCache.data) setAgentListCache(agentListCache.data.map((a)=>a.id === id ? updated : a));
105
+ else if (true) window.dispatchEvent(new CustomEvent("jarela:agents-changed"));
106
+ return updated;
107
+ },
108
+ delete: async (id)=>{
109
+ const res = await request(`/agents/${encodeURIComponent(id)}`, {
110
+ method: "DELETE"
111
+ });
112
+ if (res.deleted) {
113
+ if (agentListCache.data) setAgentListCache(agentListCache.data.filter((a)=>a.id !== id));
114
+ else if (true) window.dispatchEvent(new CustomEvent("jarela:agents-changed"));
115
+ }
116
+ return res;
117
+ },
118
+ getThread: (id)=>request(`/agents/${encodeURIComponent(id)}/thread`),
119
+ compact: (id)=>request(`/agents/${encodeURIComponent(id)}/compact`, {
120
+ method: "POST",
121
+ body: "{}"
122
+ })
123
+ },
124
+ tools: {
125
+ list: ()=>request("/tools")
126
+ },
127
+ builtinTools: {
128
+ list: ()=>request("/builtin-tools"),
129
+ setEnabled: (category, enabled)=>request("/builtin-tools", {
130
+ method: "PATCH",
131
+ body: JSON.stringify({
132
+ category,
133
+ enabled
134
+ })
135
+ })
136
+ },
137
+ extensions: {
138
+ list: ()=>request("/extensions"),
139
+ getToolSecrets: (name)=>request(`/extensions/tools/${encodeURIComponent(name)}/secrets`),
140
+ saveToolSecrets: (name, values)=>request(`/extensions/tools/${encodeURIComponent(name)}/secrets`, {
141
+ method: "PUT",
142
+ body: JSON.stringify({
143
+ values
144
+ })
145
+ })
146
+ },
147
+ threads: {
148
+ list: (limit = 50, offset = 0)=>request(`/threads?limit=${limit}&offset=${offset}`),
149
+ create: (agent_id, title)=>request("/threads", {
150
+ method: "POST",
151
+ body: JSON.stringify({
152
+ agent_id,
153
+ title
154
+ })
155
+ }),
156
+ get: (thread_id, opts)=>{
157
+ const p = new URLSearchParams();
158
+ if (opts?.limit) p.set("limit", String(opts.limit));
159
+ if (opts?.before) p.set("before", opts.before);
160
+ // `after`: only return messages newer than this ISO timestamp. Used
161
+ // by ChatView post-run to fetch the freshly-persisted user+assistant
162
+ // pair instead of re-pulling the whole most-recent page.
163
+ if (opts?.after) p.set("after", opts.after);
164
+ const qs = p.toString() ? `?${p}` : "";
165
+ return request(`/threads/${thread_id}${qs}`);
166
+ },
167
+ delete: (thread_id)=>request(`/threads/${thread_id}`, {
168
+ method: "DELETE"
169
+ }),
170
+ // Abort the active agent run on this thread. The server's stream loop
171
+ // catches the resulting AbortError and emits an `error` + `done` so
172
+ // any UI queue-drain hook (e.g. ChatView) still fires.
173
+ abortRun: (thread_id)=>request(`/threads/${thread_id}/run`, {
174
+ method: "DELETE"
175
+ })
176
+ },
177
+ memory: {
178
+ list: (namespace, search, limit = 50)=>{
179
+ const p = new URLSearchParams();
180
+ if (namespace) p.set("namespace", namespace);
181
+ if (search) p.set("search", search);
182
+ p.set("limit", String(limit));
183
+ return request(`/memory?${p}`);
184
+ },
185
+ create: (namespace, key, value)=>request("/memory", {
186
+ method: "POST",
187
+ body: JSON.stringify({
188
+ namespace,
189
+ key,
190
+ value
191
+ })
192
+ }),
193
+ update: (namespace, key, value)=>request(`/memory/${encodeURIComponent(namespace)}/${encodeURIComponent(key)}`, {
194
+ method: "PUT",
195
+ body: JSON.stringify({
196
+ value
197
+ })
198
+ }),
199
+ delete: (namespace, key)=>request(`/memory/${encodeURIComponent(namespace)}/${encodeURIComponent(key)}`, {
200
+ method: "DELETE"
201
+ })
202
+ },
203
+ models: {
204
+ list: (opts)=>cachedList(modelListCache, ()=>request("/models"), setModelListCache, opts?.force === true),
205
+ providers: ()=>request("/providers"),
206
+ catalog: (provider)=>request(`/providers/${encodeURIComponent(provider)}/models`),
207
+ create: async (name, data)=>{
208
+ const created = await request("/models", {
209
+ method: "POST",
210
+ body: JSON.stringify({
211
+ name,
212
+ ...data
213
+ })
214
+ });
215
+ if (modelListCache.data) setModelListCache([
216
+ ...modelListCache.data,
217
+ created
218
+ ]);
219
+ else if (true) window.dispatchEvent(new CustomEvent("jarela:models-changed"));
220
+ return created;
221
+ },
222
+ update: async (name, data)=>{
223
+ const updated = await request(`/models/${encodeURIComponent(name)}`, {
224
+ method: "PUT",
225
+ body: JSON.stringify(data)
226
+ });
227
+ if (modelListCache.data) setModelListCache(modelListCache.data.map((m)=>m.name === name ? updated : m));
228
+ else if (true) window.dispatchEvent(new CustomEvent("jarela:models-changed"));
229
+ return updated;
230
+ },
231
+ delete: async (name)=>{
232
+ const res = await request(`/models/${encodeURIComponent(name)}`, {
233
+ method: "DELETE"
234
+ });
235
+ if (res.deleted) {
236
+ if (modelListCache.data) setModelListCache(modelListCache.data.filter((m)=>m.name !== name));
237
+ else if (true) window.dispatchEvent(new CustomEvent("jarela:models-changed"));
238
+ // Deleting a model cascades to its assignments server-side; drop the
239
+ // task list cache so the next read reflects the server.
240
+ if (taskListCache.data) setTaskListCache(taskListCache.data.filter((t)=>t.model_config_name !== name));
241
+ }
242
+ return res;
243
+ }
244
+ },
245
+ profile: {
246
+ get: ()=>request("/profile"),
247
+ update: (data)=>request("/profile", {
248
+ method: "PUT",
249
+ body: JSON.stringify(data)
250
+ }),
251
+ setLocationConsent: (consent)=>request("/profile/location", {
252
+ method: "PUT",
253
+ body: JSON.stringify({
254
+ consent
255
+ })
256
+ }),
257
+ updateLocation: (data)=>request("/profile/location", {
258
+ method: "POST",
259
+ body: JSON.stringify(data)
260
+ }),
261
+ clearLocation: ()=>request("/profile/location", {
262
+ method: "DELETE"
263
+ })
264
+ },
265
+ access: {
266
+ list: ()=>request("/access"),
267
+ add: (identity, display_name)=>request("/access", {
268
+ method: "POST",
269
+ body: JSON.stringify({
270
+ identity,
271
+ display_name
272
+ })
273
+ }),
274
+ remove: (identity)=>request(`/access/${encodeURIComponent(identity)}`, {
275
+ method: "DELETE"
276
+ })
277
+ },
278
+ tasks: {
279
+ list: (opts)=>cachedList(taskListCache, ()=>request("/tasks"), setTaskListCache, opts?.force === true),
280
+ assign: async (agent_id, model_config_name, tool_policy)=>{
281
+ const assigned = await request(`/tasks/${encodeURIComponent(agent_id)}`, {
282
+ method: "PUT",
283
+ body: JSON.stringify({
284
+ model_config_name,
285
+ tool_policy
286
+ })
287
+ });
288
+ if (taskListCache.data) {
289
+ const exists = taskListCache.data.some((t)=>t.agent_id === agent_id);
290
+ const next = exists ? taskListCache.data.map((t)=>t.agent_id === agent_id ? assigned : t) : [
291
+ ...taskListCache.data,
292
+ assigned
293
+ ];
294
+ setTaskListCache(next);
295
+ } else if (true) {
296
+ window.dispatchEvent(new CustomEvent("jarela:tasks-changed"));
297
+ }
298
+ return assigned;
299
+ },
300
+ unassign: async (agent_id)=>{
301
+ const res = await request(`/tasks/${encodeURIComponent(agent_id)}`, {
302
+ method: "DELETE"
303
+ });
304
+ if (taskListCache.data) setTaskListCache(taskListCache.data.filter((t)=>t.agent_id !== agent_id));
305
+ else if (true) window.dispatchEvent(new CustomEvent("jarela:tasks-changed"));
306
+ return res;
307
+ }
308
+ },
309
+ mcp: {
310
+ list: ()=>request("/mcp-servers"),
311
+ create: (data)=>request("/mcp-servers", {
312
+ method: "POST",
313
+ body: JSON.stringify(data)
314
+ }),
315
+ update: (name, data)=>request(`/mcp-servers/${encodeURIComponent(name)}`, {
316
+ method: "PUT",
317
+ body: JSON.stringify(data)
318
+ }),
319
+ delete: (name)=>request(`/mcp-servers/${encodeURIComponent(name)}`, {
320
+ method: "DELETE"
321
+ }),
322
+ registry: (params)=>{
323
+ const qs = new URLSearchParams();
324
+ if (params?.q) qs.set("q", params.q);
325
+ if (params?.cursor) qs.set("cursor", params.cursor);
326
+ if (params?.fresh) qs.set("fresh", "1");
327
+ const suffix = qs.toString() ? `?${qs}` : "";
328
+ return request(`/mcp-servers/registry${suffix}`);
329
+ }
330
+ },
331
+ integrations: {
332
+ list: ()=>request("/integrations"),
333
+ save: (name, values)=>request(`/integrations/${encodeURIComponent(name)}`, {
334
+ method: "PUT",
335
+ body: JSON.stringify(values)
336
+ }),
337
+ delete: (name)=>request(`/integrations/${encodeURIComponent(name)}`, {
338
+ method: "DELETE"
339
+ }),
340
+ test: (name)=>request(`/integrations/${encodeURIComponent(name)}/test`, {
341
+ method: "POST",
342
+ body: "{}"
343
+ }),
344
+ gmailOauthStart: (creds)=>request(`/integrations/gmail/oauth/start`, {
345
+ method: "POST",
346
+ body: JSON.stringify(creds)
347
+ }),
348
+ gmailOauthStatus: (state)=>request(`/integrations/gmail/oauth/status?state=${encodeURIComponent(state)}`),
349
+ outlookOauthStart: (creds)=>request(`/integrations/outlook/oauth/start`, {
350
+ method: "POST",
351
+ body: JSON.stringify(creds)
352
+ }),
353
+ outlookOauthStatus: (state)=>request(`/integrations/outlook/oauth/status?state=${encodeURIComponent(state)}`)
354
+ },
355
+ envSync: {
356
+ preview: ()=>request("/env-sync"),
357
+ apply: ()=>request("/env-sync", {
358
+ method: "POST",
359
+ body: "{}"
360
+ }),
361
+ allowlist: {
362
+ get: ()=>request("/env-sync/allowlist"),
363
+ set: (integration, field, envVars)=>request("/env-sync/allowlist", {
364
+ method: "PUT",
365
+ body: JSON.stringify({
366
+ integration,
367
+ field,
368
+ envVars
369
+ })
370
+ })
371
+ }
372
+ },
373
+ pending: {
374
+ list: (status)=>request(`/pending-actions${status ? `?status=${status}` : ""}`),
375
+ // ADR-0010: `extras` carries approval-time secret material (provider keys,
376
+ // integration credentials) that the agent never sees. The route forwards
377
+ // it to applyAction; the agent's pending_actions.payload stays clean.
378
+ approve: (id, extras)=>request(`/pending-actions/${encodeURIComponent(id)}/approve`, {
379
+ method: "POST",
380
+ body: JSON.stringify(extras ? {
381
+ extras
382
+ } : {})
383
+ }),
384
+ deny: (id)=>request(`/pending-actions/${encodeURIComponent(id)}/deny`, {
385
+ method: "POST",
386
+ body: "{}"
387
+ })
388
+ },
389
+ scheduledTasks: {
390
+ list: (agent_id)=>request(`/scheduled-tasks${agent_id ? `?agent_id=${encodeURIComponent(agent_id)}` : ""}`),
391
+ // ADR-0032 — patch supports the reaction discriminator. Mirrors the
392
+ // watchers.update shape; explicit reaction_kind triggers a full replace.
393
+ update: (id, patch)=>request(`/scheduled-tasks/${encodeURIComponent(id)}`, {
394
+ method: "PATCH",
395
+ body: JSON.stringify(patch)
396
+ }),
397
+ cancel: (id)=>request(`/scheduled-tasks/${encodeURIComponent(id)}`, {
398
+ method: "DELETE"
399
+ }),
400
+ runNow: (id)=>request(`/scheduled-tasks/${encodeURIComponent(id)}/run`, {
401
+ method: "POST",
402
+ body: "{}"
403
+ })
404
+ },
405
+ // Event-driven watchers (ADR-0027). Polls a built-in tool every N
406
+ // seconds; only fires the agent when the tool output changes.
407
+ watchers: {
408
+ list: (agent_id)=>request(`/watchers${agent_id ? `?agent_id=${encodeURIComponent(agent_id)}` : ""}`),
409
+ create: (data)=>request("/watchers", {
410
+ method: "POST",
411
+ body: JSON.stringify(data)
412
+ }),
413
+ update: (id, patch)=>request(`/watchers/${encodeURIComponent(id)}`, {
414
+ method: "PATCH",
415
+ body: JSON.stringify(patch)
416
+ }),
417
+ cancel: (id)=>request(`/watchers/${encodeURIComponent(id)}`, {
418
+ method: "DELETE"
419
+ }),
420
+ runNow: (id)=>request(`/watchers/${encodeURIComponent(id)}/run`, {
421
+ method: "POST",
422
+ body: "{}"
423
+ }),
424
+ // ADR-0031: list registered reaction scripts (`reaction.*` namespace)
425
+ // for the watcher UI's reaction-kind picker.
426
+ listReactionScripts: ()=>request("/watchers/reaction-scripts")
427
+ },
428
+ // Document RAG (ADR-0024). Folder sources are scanned by the scheduler
429
+ // every ~10 minutes; the search endpoint is a thin wrapper over the
430
+ // `documents_search` tool so callers can preview hits without invoking
431
+ // an agent.
432
+ documents: {
433
+ listSources: ()=>request("/documents/sources"),
434
+ createSource: (data)=>request("/documents/sources", {
435
+ method: "POST",
436
+ body: JSON.stringify(data)
437
+ }),
438
+ updateSource: (id, patch)=>request(`/documents/sources/${encodeURIComponent(id)}`, {
439
+ method: "PATCH",
440
+ body: JSON.stringify(patch)
441
+ }),
442
+ deleteSource: (id)=>request(`/documents/sources/${encodeURIComponent(id)}`, {
443
+ method: "DELETE"
444
+ }),
445
+ reindex: (id)=>request(`/documents/sources/${encodeURIComponent(id)}/reindex`, {
446
+ method: "POST",
447
+ body: "{}"
448
+ }),
449
+ search: (q, opts)=>{
450
+ const p = new URLSearchParams({
451
+ q
452
+ });
453
+ if (opts?.limit) p.set("limit", String(opts.limit));
454
+ if (opts?.source_id) p.set("source_id", opts.source_id);
455
+ return request(`/documents/search?${p.toString()}`);
456
+ },
457
+ getSettings: ()=>request("/documents/settings"),
458
+ setSettings: (patch)=>request("/documents/settings", {
459
+ method: "PUT",
460
+ body: JSON.stringify(patch)
461
+ })
462
+ },
463
+ // Filesystem browse — backs the folder-picker dialog in the Documents
464
+ // panel. Lists immediate subdirectories at an absolute path.
465
+ fs: {
466
+ browse: (p)=>{
467
+ const qs = p ? `?path=${encodeURIComponent(p)}` : "";
468
+ return request(`/fs/browse${qs}`);
469
+ }
470
+ },
471
+ githubCopilotAuth: {
472
+ status: ()=>request("/providers/github-copilot/auth"),
473
+ start: ()=>request("/providers/github-copilot/auth", {
474
+ method: "POST",
475
+ body: "{}"
476
+ }),
477
+ poll: (device_code)=>request("/providers/github-copilot/auth", {
478
+ method: "PUT",
479
+ body: JSON.stringify({
480
+ device_code
481
+ })
482
+ }),
483
+ signOut: ()=>request("/providers/github-copilot/auth", {
484
+ method: "DELETE"
485
+ })
486
+ },
487
+ bridges: {
488
+ list: ()=>request("/bridges"),
489
+ get: (id)=>request(`/bridges/${encodeURIComponent(id)}`),
490
+ create: (data)=>request("/bridges", {
491
+ method: "POST",
492
+ body: JSON.stringify(data)
493
+ }),
494
+ update: (id, patch)=>request(`/bridges/${encodeURIComponent(id)}`, {
495
+ method: "PATCH",
496
+ body: JSON.stringify(patch)
497
+ }),
498
+ delete: (id)=>request(`/bridges/${encodeURIComponent(id)}`, {
499
+ method: "DELETE"
500
+ }),
501
+ status: (id)=>request(`/bridges/${encodeURIComponent(id)}/status`),
502
+ pair: (id)=>request(`/bridges/${encodeURIComponent(id)}/pair`, {
503
+ method: "POST",
504
+ body: "{}"
505
+ }),
506
+ chats: (id)=>request(`/bridges/${encodeURIComponent(id)}/chats`),
507
+ lookup: (id, phone)=>request(`/bridges/${encodeURIComponent(id)}/lookup`, {
508
+ method: "POST",
509
+ body: JSON.stringify({
510
+ phone
511
+ })
512
+ }),
513
+ routes: {
514
+ list: (bridge_id)=>request(`/bridges/${encodeURIComponent(bridge_id)}/routes`),
515
+ create: (bridge_id, data)=>request(`/bridges/${encodeURIComponent(bridge_id)}/routes`, {
516
+ method: "POST",
517
+ body: JSON.stringify(data)
518
+ }),
519
+ update: (bridge_id, route_id, patch)=>request(`/bridges/${encodeURIComponent(bridge_id)}/routes/${encodeURIComponent(route_id)}`, {
520
+ method: "PATCH",
521
+ body: JSON.stringify(patch)
522
+ }),
523
+ delete: (bridge_id, route_id)=>request(`/bridges/${encodeURIComponent(bridge_id)}/routes/${encodeURIComponent(route_id)}`, {
524
+ method: "DELETE"
525
+ })
526
+ }
527
+ },
528
+ tailscale: {
529
+ status: ()=>request("/tailscale")
530
+ },
531
+ harnesses: {
532
+ list: ()=>request("/harnesses"),
533
+ get: (id)=>request(`/harnesses/${encodeURIComponent(id)}`),
534
+ create: (data)=>request("/harnesses", {
535
+ method: "POST",
536
+ body: JSON.stringify(data)
537
+ }),
538
+ update: (id, patch)=>request(`/harnesses/${encodeURIComponent(id)}`, {
539
+ method: "PATCH",
540
+ body: JSON.stringify(patch)
541
+ }),
542
+ delete: (id)=>request(`/harnesses/${encodeURIComponent(id)}`, {
543
+ method: "DELETE"
544
+ }),
545
+ setDefault: (id)=>request("/harnesses/default", {
546
+ method: "PUT",
547
+ body: JSON.stringify({
548
+ id
549
+ })
550
+ })
551
+ },
552
+ proxy: {
553
+ get: ()=>request("/proxy-config"),
554
+ save: (input)=>request("/proxy-config", {
555
+ method: "PUT",
556
+ body: JSON.stringify(input)
557
+ }),
558
+ clear: ()=>request("/proxy-config", {
559
+ method: "DELETE"
560
+ })
561
+ }
562
+ };
563
+ /** POST /threads/:id/run — registers a run and returns immediately. The
564
+ * caller is expected to follow up with `subscribeRun()` to receive the
565
+ * chunk stream. Idempotent in the sense that two simultaneous submissions
566
+ * for the same thread will see one 202 and one 409 (`run_in_flight`). */ async function submitRun(thread_id, message, signal, stream_options, attachments) {
567
+ const res = await fetch(`${BASE}/threads/${thread_id}/run`, {
568
+ method: "POST",
569
+ headers: {
570
+ "Content-Type": "application/json"
571
+ },
572
+ body: JSON.stringify({
573
+ message,
574
+ stream_options,
575
+ attachments
576
+ }),
577
+ signal
578
+ });
579
+ // 2xx = accepted (currently always 202); 409 = already running. We treat
580
+ // every other status as a hard error so the consumer's catch fires.
581
+ if (res.status === 202) {
582
+ // Drain the body to free the connection — Next.js sends a small JSON
583
+ // ack but we don't need anything from it.
584
+ try {
585
+ await res.json();
586
+ } catch {}
587
+ return {
588
+ accepted: true
589
+ };
590
+ }
591
+ let body = {};
592
+ try {
593
+ body = await res.json();
594
+ } catch {}
595
+ if (res.status === 409) {
596
+ return {
597
+ accepted: false,
598
+ code: body.code ?? "run_in_flight"
599
+ };
600
+ }
601
+ throw new Error(`${res.status} ${body.error ?? res.statusText}`);
602
+ }
603
+ /** GET /threads/:id/run — opens an `EventSource` and yields raw `data:`
604
+ * payloads (one JSON event per yield). Closes the source when the consumer
605
+ * stops iterating (either via `break` after a terminal `done`/`error`, or
606
+ * when the abort signal fires).
607
+ *
608
+ * EventSource handles its own reconnection on transient drops. The
609
+ * server-side run keeps publishing into the registry across drops, so a
610
+ * resumed connection replays buffered chunks via `subscribe()` and the
611
+ * consumer sees the run through to its terminal event.
612
+ *
613
+ * `stream_options` filter flags ride as query params (`show_tools`,
614
+ * `show_thinking`); the rest of `StreamOptions` is meaningful only on the
615
+ * POST and is ignored here.
616
+ */ function subscribeRun(thread_id, signal, stream_options) {
617
+ const params = new URLSearchParams();
618
+ const includeTools = stream_options?.filters?.include_tools;
619
+ const includeThinking = stream_options?.filters?.include_thinking;
620
+ if (includeTools === false) params.set("show_tools", "false");
621
+ if (includeThinking === false) params.set("show_thinking", "false");
622
+ const qs = params.toString();
623
+ const url = `${BASE}/threads/${thread_id}/run${qs ? `?${qs}` : ""}`;
624
+ return async function*() {
625
+ const queue = [];
626
+ const waiters = [];
627
+ let done = false;
628
+ let streamError = null;
629
+ const notify = ()=>{
630
+ while(waiters.length > 0)waiters.shift()?.();
631
+ };
632
+ const es = new EventSource(url, {
633
+ withCredentials: true
634
+ });
635
+ es.onmessage = (e)=>{
636
+ if (typeof e.data === "string") {
637
+ queue.push(e.data);
638
+ try {
639
+ const parsed = JSON.parse(e.data);
640
+ if (parsed.type === "done" || parsed.type === "error") {
641
+ done = true;
642
+ }
643
+ } catch {}
644
+ notify();
645
+ }
646
+ };
647
+ // EventSource auto-reconnects on transient network drops. We only treat
648
+ // it as a hard error if the *first* connect attempt fails (no successful
649
+ // 'open' ever fired) — anything after that is a recoverable drop and
650
+ // the server's replay buffer will deliver missed chunks on reconnect.
651
+ let everOpened = false;
652
+ es.onopen = ()=>{
653
+ everOpened = true;
654
+ };
655
+ es.onerror = ()=>{
656
+ if (!everOpened) {
657
+ streamError = new Error("EventSource failed to open");
658
+ done = true;
659
+ notify();
660
+ }
661
+ // else: ignore — EventSource will try to reconnect.
662
+ };
663
+ const onAbort = ()=>{
664
+ done = true;
665
+ try {
666
+ es.close();
667
+ } catch {}
668
+ notify();
669
+ };
670
+ signal.addEventListener("abort", onAbort, {
671
+ once: true
672
+ });
673
+ try {
674
+ while(!done || queue.length > 0){
675
+ if (queue.length > 0) {
676
+ yield queue.shift();
677
+ continue;
678
+ }
679
+ if (streamError) throw streamError;
680
+ await new Promise((resolve)=>waiters.push(resolve));
681
+ }
682
+ if (streamError) throw streamError;
683
+ } finally{
684
+ signal.removeEventListener("abort", onAbort);
685
+ try {
686
+ es.close();
687
+ } catch {}
688
+ }
689
+ }();
690
+ }
691
+
692
+
693
+ /***/ }),
694
+
695
+ /***/ 7920:
696
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
697
+
698
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
699
+ /* harmony export */ SN: () => (/* binding */ getAppIssueUrl),
700
+ /* harmony export */ fj: () => (/* binding */ getAppName)
701
+ /* harmony export */ });
702
+ /* unused harmony export getAppDescription */
703
+ /* provided dependency */ var process = __webpack_require__(7358);
704
+ // Branding knobs sourced from NEXT_PUBLIC_* env vars so forks can rebrand
705
+ // the app without patching source. NEXT_PUBLIC_* is the right
706
+ // channel here because Next.js inlines these at build time, which lets
707
+ // client components read them directly (no React Context, no server
708
+ // round-trip). Server-only modules read the same keys at runtime.
709
+ //
710
+ // Keep this module client-safe — no Node-only imports, no DB/FS access.
711
+ const DEFAULT_APP_NAME = "Jarela";
712
+ const DEFAULT_APP_DESCRIPTION = "Jarela — local chat interface for LangGraph agents";
713
+ const DEFAULT_ISSUE_URL = "https://github.com/CircuitWall/jarela/issues/new";
714
+ function getAppName() {
715
+ return process.env.NEXT_PUBLIC_APP_NAME?.trim() || DEFAULT_APP_NAME;
716
+ }
717
+ function getAppDescription() {
718
+ return process.env.NEXT_PUBLIC_APP_DESCRIPTION?.trim() || DEFAULT_APP_DESCRIPTION;
719
+ }
720
+ function getAppIssueUrl() {
721
+ return process.env.NEXT_PUBLIC_APP_ISSUE_URL?.trim() || DEFAULT_ISSUE_URL;
722
+ }
723
+
724
+
725
+ /***/ })
726
+
727
+ }]);
728
+ //# sourceMappingURL=6945-269d42dc1784c71a.js.map