@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.
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/build-manifest.json +6 -6
- package/.next/standalone/.next/prerender-manifest.json +3 -3
- package/.next/standalone/.next/required-server-files.json +1 -1
- package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_global-error.html +1 -1
- package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +2 -2
- package/.next/standalone/.next/server/app/_not-found.rsc +5 -5
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/index.html +2 -2
- package/.next/standalone/.next/server/app/index.rsc +7 -7
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +7 -7
- package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/setup/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/setup.html +1 -1
- package/.next/standalone/.next/server/app/setup.rsc +5 -5
- package/.next/standalone/.next/server/app/setup.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/setup.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/setup.segments/_index.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/setup.segments/setup.segment.rsc +1 -1
- package/.next/standalone/.next/server/middleware-build-manifest.js +20 -1
- package/.next/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/standalone/.next/server/next-font-manifest.js +1 -1
- package/.next/standalone/.next/server/pages/404.html +2 -2
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/static/IauO0rNZkUVPX834k-SBa/_buildManifest.js +1 -0
- package/.next/standalone/.next/static/chunks/3457-5218e06617c4db2a.js +21026 -0
- package/.next/standalone/.next/static/chunks/3457-5218e06617c4db2a.js.map +1 -0
- package/.next/standalone/.next/static/chunks/4bd1b696-f4afdf0ad1d556a5.js +18276 -0
- package/.next/standalone/.next/static/chunks/4bd1b696-f4afdf0ad1d556a5.js.map +1 -0
- package/.next/standalone/.next/static/chunks/6945-269d42dc1784c71a.js +728 -0
- package/.next/standalone/.next/static/chunks/6945-269d42dc1784c71a.js.map +1 -0
- package/.next/standalone/.next/static/chunks/8657-ce5d7648903bc458.js +64051 -0
- package/.next/standalone/.next/static/chunks/8657-ce5d7648903bc458.js.map +1 -0
- package/.next/standalone/.next/static/chunks/app/_global-error/page-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/_not-found/page-1c2b53258ccc0873.js +191 -0
- package/.next/standalone/.next/static/chunks/app/_not-found/page-1c2b53258ccc0873.js.map +1 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/access/[identity]/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/access/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/compact/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/display-filters/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/thread/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/agents/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/chats/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/lookup/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/pair/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/routes/[route_id]/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/routes/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/status/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/bridges/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/builtin-tools/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/documents/search/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/documents/settings/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/[id]/reindex/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/[id]/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/env-sync/allowlist/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/env-sync/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/events/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/events/test/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/extensions/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/extensions/tools/[name]/secrets/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/files/[name]/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/fs/browse/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/[id]/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/default/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/health/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/integrations/[name]/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/integrations/[name]/test/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/callback/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/start/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/status/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/callback/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/start/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/status/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/integrations/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/maps/embed/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/[name]/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/registry/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/memory/[namespace]/[key]/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/memory/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/models/[name]/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/models/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/page-capture/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/[id]/approve/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/[id]/deny/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/profile/location/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/profile/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/providers/[provider]/models/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/providers/github-copilot/auth/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/providers/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/proxy-config/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/[id]/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/[id]/run/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/setup/test-key/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/tailscale/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/tasks/[agent_id]/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/tasks/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/run/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/threads/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/tools/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/update/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/voice/transcribe/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/voice/tts/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/watchers/[id]/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/watchers/[id]/run/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/watchers/reaction-scripts/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/api/v1/watchers/route-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/app/layout-0814b4dde82d031c.js +211 -0
- package/.next/standalone/.next/static/chunks/app/layout-0814b4dde82d031c.js.map +1 -0
- package/.next/standalone/.next/static/chunks/app/page-a20902703c0a4f10.js +18162 -0
- package/.next/standalone/.next/static/chunks/app/page-a20902703c0a4f10.js.map +1 -0
- package/.next/standalone/.next/static/chunks/app/setup/page-28c01e39806ffb39.js +709 -0
- package/.next/standalone/.next/static/chunks/app/setup/page-28c01e39806ffb39.js.map +1 -0
- package/.next/standalone/.next/static/chunks/framework-01304d5a84d96921.js +17321 -0
- package/.next/standalone/.next/static/chunks/framework-01304d5a84d96921.js.map +1 -0
- package/.next/standalone/.next/static/chunks/main-app-3f37bcefd1eaffaf.js +40 -0
- package/.next/standalone/.next/static/chunks/main-app-3f37bcefd1eaffaf.js.map +1 -0
- package/.next/standalone/.next/static/chunks/main-da6c99fc920e0f54.js +10973 -0
- package/.next/standalone/.next/static/chunks/main-da6c99fc920e0f54.js.map +1 -0
- package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-e0f5f907bea96484.js +19 -0
- package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-e0f5f907bea96484.js.map +1 -0
- package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-ef2695e78d17eafd.js +17 -0
- package/.next/standalone/.next/static/chunks/webpack-ff5627013a5e3842.js +330 -0
- package/.next/standalone/.next/static/chunks/webpack-ff5627013a5e3842.js.map +1 -0
- package/.next/standalone/.next/static/css/61d4279c2300e146.css +120 -0
- package/.next/standalone/.next/static/css/61d4279c2300e146.css.map +1 -0
- package/.next/standalone/.next/static/css/cc66c456aba91258.css +5 -0
- package/.next/standalone/.next/static/css/cc66c456aba91258.css.map +1 -0
- package/.next/standalone/package.json +8 -7
- package/.next/standalone/public/sw.js.map +1 -0
- package/.next/standalone/public/swe-worker-f61931bc2770d10b.js.map +1 -0
- package/.next/standalone/server.js +1 -1
- package/CHANGELOG.md +26 -0
- package/next.config.ts +15 -0
- package/package.json +8 -7
- package/public/sw.js.map +1 -0
- package/public/swe-worker-f61931bc2770d10b.js.map +1 -0
- package/scripts/jarela-bin.mjs +9 -0
- package/scripts/optimize-client-chunks.mjs +144 -0
- package/scripts/start-prod.mjs +10 -0
- package/.next/standalone/.next/static/YPyYnTKBZDNmNtxfosViy/_buildManifest.js +0 -1
- package/.next/standalone/.next/static/chunks/3457-33fb797ce4ab98b5.js +0 -32
- package/.next/standalone/.next/static/chunks/4bd1b696-d3a0b478714afd8c.js +0 -1
- package/.next/standalone/.next/static/chunks/6945-fe3c2c29fcc9747d.js +0 -1
- package/.next/standalone/.next/static/chunks/8657-4832c6fc644bc4b4.js +0 -1
- package/.next/standalone/.next/static/chunks/app/_global-error/page-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/_not-found/page-a6e862db975a5eb0.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/access/[identity]/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/access/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/compact/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/display-filters/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/thread/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/agents/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/chats/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/lookup/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/pair/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/routes/[route_id]/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/routes/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/status/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/bridges/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/builtin-tools/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/documents/search/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/documents/settings/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/[id]/reindex/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/[id]/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/env-sync/allowlist/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/env-sync/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/events/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/events/test/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/extensions/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/extensions/tools/[name]/secrets/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/files/[name]/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/fs/browse/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/[id]/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/default/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/health/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/integrations/[name]/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/integrations/[name]/test/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/callback/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/start/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/status/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/callback/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/start/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/status/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/integrations/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/maps/embed/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/[name]/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/registry/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/memory/[namespace]/[key]/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/memory/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/models/[name]/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/models/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/page-capture/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/[id]/approve/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/[id]/deny/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/profile/location/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/profile/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/providers/[provider]/models/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/providers/github-copilot/auth/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/providers/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/proxy-config/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/[id]/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/[id]/run/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/setup/test-key/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/tailscale/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/tasks/[agent_id]/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/tasks/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/run/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/threads/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/tools/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/update/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/voice/transcribe/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/voice/tts/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/watchers/[id]/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/watchers/[id]/run/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/watchers/reaction-scripts/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/v1/watchers/route-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/app/layout-764e6d7e68bc7d35.js +0 -1
- package/.next/standalone/.next/static/chunks/app/page-a4f8846bc63c9c2f.js +0 -24
- package/.next/standalone/.next/static/chunks/app/setup/page-ed59c750c18fee42.js +0 -1
- package/.next/standalone/.next/static/chunks/framework-29e3791c8b7ad5e0.js +0 -1
- package/.next/standalone/.next/static/chunks/main-app-cb0edf855588e8f1.js +0 -1
- package/.next/standalone/.next/static/chunks/main-b611c7b6b84fbe95.js +0 -5
- package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-23ce00bb5787d544.js +0 -1
- package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-2a40ae26adab6590.js +0 -1
- package/.next/standalone/.next/static/chunks/webpack-5793430421782353.js +0 -1
- package/.next/standalone/.next/static/css/5eacd01f773eed7f.css +0 -11
- package/.next/standalone/.next/static/css/a0f98435baf0fccf.css +0 -1
- /package/.next/standalone/.next/static/{YPyYnTKBZDNmNtxfosViy → IauO0rNZkUVPX834k-SBa}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static/chunks/6945-269d42dc1784c71a.js","mappings":"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","sources":["webpack://_N_E/./api/client.ts","webpack://_N_E/./lib/env/app-config.ts"],"sourcesContent":["import type {\n AgentConfig,\n AgentConfigIn,\n AgentInfo,\n Bridge,\n BridgeChatsResponse,\n BridgeIn,\n BridgeLiveStatus,\n BridgePatch,\n BridgeRoute,\n BridgeRouteIn,\n BridgeRoutePatch,\n ContentPart,\n EnvAllowlistConfig,\n EnvSyncResult,\n ExtensionsListResponse,\n IntegrationsListResponse,\n IntegrationStatus,\n McpRegistryEntry,\n McpServer,\n McpServerIn,\n PendingAction,\n ScheduledTask,\n Watcher,\n DocumentSource,\n DocumentSourceIn,\n DocumentSourcePatch,\n DocumentSettings,\n DocumentHit,\n DocumentReindexResult,\n MemoryItem,\n ModelConfig,\n ModelConfigIn,\n StreamOptions,\n ToolInfo,\n ToolPolicy,\n ToolSecretSlotInfo,\n TaskAssignment,\n ThreadDetail,\n ThreadSummary,\n UserProfile,\n BuiltinToolCategoryInfo,\n Harness,\n HarnessIn,\n HarnessListResponse,\n HarnessPatch,\n} from \"./types\";\n\nconst BASE = \"/api/v1\";\n\nconst LIST_TTL_MS = 30_000;\n\ninterface ListCache<T> {\n data: T[] | null;\n fetchedAt: number;\n inflight: Promise<T[]> | null;\n}\n\nfunction emptyCache<T>(): ListCache<T> {\n return { data: null, fetchedAt: 0, inflight: null };\n}\n\nfunction cloneRows<T>(rows: T[]): T[] {\n return rows.map((row) => ({ ...row }));\n}\n\nconst agentListCache: ListCache<AgentConfig> = emptyCache();\nconst modelListCache: ListCache<ModelConfig> = emptyCache();\nconst taskListCache: ListCache<TaskAssignment> = emptyCache();\n\nfunction setAgentListCache(rows: AgentConfig[], notify = true): AgentConfig[] {\n const snap = cloneRows(rows);\n agentListCache.data = snap;\n agentListCache.fetchedAt = Date.now();\n agentListCache.inflight = null;\n if (notify && typeof window !== \"undefined\") {\n window.dispatchEvent(new CustomEvent(\"jarela:agents-changed\"));\n }\n return cloneRows(snap);\n}\n\nfunction setModelListCache(rows: ModelConfig[], notify = true): ModelConfig[] {\n const snap = cloneRows(rows);\n modelListCache.data = snap;\n modelListCache.fetchedAt = Date.now();\n modelListCache.inflight = null;\n if (notify && typeof window !== \"undefined\") {\n window.dispatchEvent(new CustomEvent(\"jarela:models-changed\"));\n }\n return cloneRows(snap);\n}\n\nfunction setTaskListCache(rows: TaskAssignment[], notify = true): TaskAssignment[] {\n const snap = cloneRows(rows);\n taskListCache.data = snap;\n taskListCache.fetchedAt = Date.now();\n taskListCache.inflight = null;\n if (notify && typeof window !== \"undefined\") {\n window.dispatchEvent(new CustomEvent(\"jarela:tasks-changed\"));\n }\n return cloneRows(snap);\n}\n\nfunction cachedList<T>(\n cache: ListCache<T>,\n fetchFn: () => Promise<T[]>,\n setCache: (rows: T[], notify?: boolean) => T[],\n force: boolean,\n): Promise<T[]> {\n const now = Date.now();\n if (!force && cache.data && now - cache.fetchedAt < LIST_TTL_MS) {\n return Promise.resolve(cloneRows(cache.data));\n }\n if (!force && cache.inflight) return cache.inflight;\n const req = fetchFn().then((rows) => setCache(rows, false));\n cache.inflight = req;\n return req;\n}\n\nasync function request<T>(path: string, init?: RequestInit): Promise<T> {\n const res = await fetch(`${BASE}${path}`, {\n headers: { \"Content-Type\": \"application/json\", ...init?.headers },\n ...init,\n });\n if (!res.ok) {\n const text = await res.text().catch(() => res.statusText);\n throw new Error(`${res.status} ${text}`);\n }\n return res.json() as Promise<T>;\n}\n\nexport const api = {\n agents: {\n list: (opts?: { force?: boolean }) =>\n cachedList(agentListCache, () => request<AgentConfig[]>(\"/agents\"), setAgentListCache, opts?.force === true),\n get: (id: string) => request<AgentConfig>(`/agents/${encodeURIComponent(id)}`),\n create: async (data: AgentConfigIn) => {\n const created = await request<AgentConfig>(\"/agents\", { method: \"POST\", body: JSON.stringify(data) });\n if (agentListCache.data) setAgentListCache([...agentListCache.data, created]);\n else if (typeof window !== \"undefined\") window.dispatchEvent(new CustomEvent(\"jarela:agents-changed\"));\n return created;\n },\n update: async (id: string, data: AgentConfigIn) => {\n const updated = await request<AgentConfig>(`/agents/${encodeURIComponent(id)}`, { method: \"PUT\", body: JSON.stringify(data) });\n if (agentListCache.data) setAgentListCache(agentListCache.data.map((a) => (a.id === id ? updated : a)));\n else if (typeof window !== \"undefined\") window.dispatchEvent(new CustomEvent(\"jarela:agents-changed\"));\n return updated;\n },\n delete: async (id: string) => {\n const res = await request<{ deleted: boolean }>(`/agents/${encodeURIComponent(id)}`, { method: \"DELETE\" });\n if (res.deleted) {\n if (agentListCache.data) setAgentListCache(agentListCache.data.filter((a) => a.id !== id));\n else if (typeof window !== \"undefined\") window.dispatchEvent(new CustomEvent(\"jarela:agents-changed\"));\n }\n return res;\n },\n getThread: (id: string) =>\n request<ThreadSummary>(`/agents/${encodeURIComponent(id)}/thread`),\n compact: (id: string) =>\n request<{ compacted: boolean; summary?: string; reason?: string; message_count?: number; context_chars?: number }>(\n `/agents/${encodeURIComponent(id)}/compact`,\n { method: \"POST\", body: \"{}\" },\n ),\n },\n\n tools: {\n list: () => request<ToolInfo[]>(\"/tools\"),\n },\n\n builtinTools: {\n list: () => request<BuiltinToolCategoryInfo[]>(\"/builtin-tools\"),\n setEnabled: (category: string, enabled: boolean) =>\n request<{ category: string; enabled: boolean }>(\"/builtin-tools\", {\n method: \"PATCH\",\n body: JSON.stringify({ category, enabled }),\n }),\n },\n\n extensions: {\n list: () => request<ExtensionsListResponse>(\"/extensions\"),\n getToolSecrets: (name: string) =>\n request<{ name: string; secrets: ToolSecretSlotInfo[] }>(\n `/extensions/tools/${encodeURIComponent(name)}/secrets`,\n ),\n saveToolSecrets: (name: string, values: Record<string, string>) =>\n request<{ name: string; secrets: ToolSecretSlotInfo[] }>(\n `/extensions/tools/${encodeURIComponent(name)}/secrets`,\n { method: \"PUT\", body: JSON.stringify({ values }) },\n ),\n },\n\n threads: {\n list: (limit = 50, offset = 0) => request<ThreadSummary[]>(`/threads?limit=${limit}&offset=${offset}`),\n create: (agent_id: string, title?: string) =>\n request<ThreadSummary>(\"/threads\", { method: \"POST\", body: JSON.stringify({ agent_id, title }) }),\n get: (thread_id: string, opts?: { limit?: number; before?: string; after?: string }) => {\n const p = new URLSearchParams();\n if (opts?.limit) p.set(\"limit\", String(opts.limit));\n if (opts?.before) p.set(\"before\", opts.before);\n // `after`: only return messages newer than this ISO timestamp. Used\n // by ChatView post-run to fetch the freshly-persisted user+assistant\n // pair instead of re-pulling the whole most-recent page.\n if (opts?.after) p.set(\"after\", opts.after);\n const qs = p.toString() ? `?${p}` : \"\";\n return request<ThreadDetail>(`/threads/${thread_id}${qs}`);\n },\n delete: (thread_id: string) =>\n request<{ deleted: boolean }>(`/threads/${thread_id}`, { method: \"DELETE\" }),\n // Abort the active agent run on this thread. The server's stream loop\n // catches the resulting AbortError and emits an `error` + `done` so\n // any UI queue-drain hook (e.g. ChatView) still fires.\n abortRun: (thread_id: string) =>\n request<{ aborted: boolean }>(`/threads/${thread_id}/run`, { method: \"DELETE\" }),\n },\n\n memory: {\n list: (namespace?: string, search?: string, limit = 50) => {\n const p = new URLSearchParams();\n if (namespace) p.set(\"namespace\", namespace);\n if (search) p.set(\"search\", search);\n p.set(\"limit\", String(limit));\n return request<MemoryItem[]>(`/memory?${p}`);\n },\n create: (namespace: string, key: string, value: unknown) =>\n request<MemoryItem>(\"/memory\", { method: \"POST\", body: JSON.stringify({ namespace, key, value }) }),\n update: (namespace: string, key: string, value: unknown) =>\n request<MemoryItem>(`/memory/${encodeURIComponent(namespace)}/${encodeURIComponent(key)}`, {\n method: \"PUT\", body: JSON.stringify({ value }),\n }),\n delete: (namespace: string, key: string) =>\n request<{ deleted: boolean }>(`/memory/${encodeURIComponent(namespace)}/${encodeURIComponent(key)}`, { method: \"DELETE\" }),\n },\n\n models: {\n list: (opts?: { force?: boolean }) =>\n cachedList(modelListCache, () => request<ModelConfig[]>(\"/models\"), setModelListCache, opts?.force === true),\n providers: () => request<string[]>(\"/providers\"),\n catalog: (provider: string) => request<import(\"./types\").CatalogModel[]>(`/providers/${encodeURIComponent(provider)}/models`),\n create: async (name: string, data: ModelConfigIn) => {\n const created = await request<ModelConfig>(\"/models\", { method: \"POST\", body: JSON.stringify({ name, ...data }) });\n if (modelListCache.data) setModelListCache([...modelListCache.data, created]);\n else if (typeof window !== \"undefined\") window.dispatchEvent(new CustomEvent(\"jarela:models-changed\"));\n return created;\n },\n update: async (name: string, data: ModelConfigIn) => {\n const updated = await request<ModelConfig>(`/models/${encodeURIComponent(name)}`, { method: \"PUT\", body: JSON.stringify(data) });\n if (modelListCache.data) setModelListCache(modelListCache.data.map((m) => (m.name === name ? updated : m)));\n else if (typeof window !== \"undefined\") window.dispatchEvent(new CustomEvent(\"jarela:models-changed\"));\n return updated;\n },\n delete: async (name: string) => {\n const res = await request<{ deleted: boolean }>(`/models/${encodeURIComponent(name)}`, { method: \"DELETE\" });\n if (res.deleted) {\n if (modelListCache.data) setModelListCache(modelListCache.data.filter((m) => m.name !== name));\n else if (typeof window !== \"undefined\") window.dispatchEvent(new CustomEvent(\"jarela:models-changed\"));\n // Deleting a model cascades to its assignments server-side; drop the\n // task list cache so the next read reflects the server.\n if (taskListCache.data) setTaskListCache(taskListCache.data.filter((t) => t.model_config_name !== name));\n }\n return res;\n },\n },\n\n profile: {\n get: () => request<UserProfile>(\"/profile\"),\n update: (data: Partial<Pick<UserProfile, \"name\" | \"icon\" | \"about\" | \"preset\">>) =>\n request<UserProfile>(\"/profile\", { method: \"PUT\", body: JSON.stringify(data) }),\n setLocationConsent: (consent: boolean) =>\n request<UserProfile>(\"/profile/location\", { method: \"PUT\", body: JSON.stringify({ consent }) }),\n updateLocation: (data: { lat: number; lng: number; accuracy_m?: number | null; label?: string | null }) =>\n request<UserProfile>(\"/profile/location\", { method: \"POST\", body: JSON.stringify(data) }),\n clearLocation: () =>\n request<UserProfile>(\"/profile/location\", { method: \"DELETE\" }),\n },\n\n access: {\n list: () => request<import(\"./types\").AccessWhitelistEntry[]>(\"/access\"),\n add: (identity: string, display_name?: string | null) =>\n request<import(\"./types\").AccessWhitelistEntry>(\"/access\", {\n method: \"POST\", body: JSON.stringify({ identity, display_name }),\n }),\n remove: (identity: string) =>\n request<{ deleted: boolean }>(`/access/${encodeURIComponent(identity)}`, { method: \"DELETE\" }),\n },\n\n tasks: {\n list: (opts?: { force?: boolean }) =>\n cachedList(taskListCache, () => request<TaskAssignment[]>(\"/tasks\"), setTaskListCache, opts?.force === true),\n assign: async (agent_id: string, model_config_name: string, tool_policy?: ToolPolicy) => {\n const assigned = await request<TaskAssignment>(`/tasks/${encodeURIComponent(agent_id)}`, {\n method: \"PUT\", body: JSON.stringify({ model_config_name, tool_policy }),\n });\n if (taskListCache.data) {\n const exists = taskListCache.data.some((t) => t.agent_id === agent_id);\n const next = exists\n ? taskListCache.data.map((t) => (t.agent_id === agent_id ? assigned : t))\n : [...taskListCache.data, assigned];\n setTaskListCache(next);\n } else if (typeof window !== \"undefined\") {\n window.dispatchEvent(new CustomEvent(\"jarela:tasks-changed\"));\n }\n return assigned;\n },\n unassign: async (agent_id: string) => {\n const res = await request<{ deleted: boolean }>(`/tasks/${encodeURIComponent(agent_id)}`, { method: \"DELETE\" });\n if (taskListCache.data) setTaskListCache(taskListCache.data.filter((t) => t.agent_id !== agent_id));\n else if (typeof window !== \"undefined\") window.dispatchEvent(new CustomEvent(\"jarela:tasks-changed\"));\n return res;\n },\n },\n\n mcp: {\n list: () => request<McpServer[]>(\"/mcp-servers\"),\n create: (data: McpServerIn) =>\n request<McpServer>(\"/mcp-servers\", { method: \"POST\", body: JSON.stringify(data) }),\n update: (name: string, data: Partial<McpServerIn>) =>\n request<McpServer>(`/mcp-servers/${encodeURIComponent(name)}`, { method: \"PUT\", body: JSON.stringify(data) }),\n delete: (name: string) =>\n request<{ deleted: boolean }>(`/mcp-servers/${encodeURIComponent(name)}`, { method: \"DELETE\" }),\n registry: (params?: { q?: string; cursor?: string; fresh?: boolean }) => {\n const qs = new URLSearchParams();\n if (params?.q) qs.set(\"q\", params.q);\n if (params?.cursor) qs.set(\"cursor\", params.cursor);\n if (params?.fresh) qs.set(\"fresh\", \"1\");\n const suffix = qs.toString() ? `?${qs}` : \"\";\n return request<{ entries: McpRegistryEntry[]; nextCursor?: string }>(`/mcp-servers/registry${suffix}`);\n },\n },\n\n integrations: {\n list: () => request<IntegrationsListResponse>(\"/integrations\"),\n save: (name: string, values: Record<string, string>) =>\n request<IntegrationStatus>(`/integrations/${encodeURIComponent(name)}`, {\n method: \"PUT\", body: JSON.stringify(values),\n }),\n delete: (name: string) =>\n request<{ deleted: boolean }>(`/integrations/${encodeURIComponent(name)}`, { method: \"DELETE\" }),\n test: (name: string) =>\n request<{ ok: boolean; error?: string; detail?: Record<string, unknown> }>(\n `/integrations/${encodeURIComponent(name)}/test`, { method: \"POST\", body: \"{}\" },\n ),\n gmailOauthStart: (creds: { client_id?: string; client_secret?: string }) =>\n request<{ authorize_url: string; state: string; redirect_uri: string }>(\n `/integrations/gmail/oauth/start`,\n { method: \"POST\", body: JSON.stringify(creds) },\n ),\n gmailOauthStatus: (state: string) =>\n request<{ status: \"pending\" | \"done\" | \"error\" | \"unknown\"; error?: string }>(\n `/integrations/gmail/oauth/status?state=${encodeURIComponent(state)}`,\n ),\n outlookOauthStart: (creds: { client_id?: string; client_secret?: string }) =>\n request<{ authorize_url: string; state: string; redirect_uri: string }>(\n `/integrations/outlook/oauth/start`,\n { method: \"POST\", body: JSON.stringify(creds) },\n ),\n outlookOauthStatus: (state: string) =>\n request<{ status: \"pending\" | \"done\" | \"error\" | \"unknown\"; error?: string }>(\n `/integrations/outlook/oauth/status?state=${encodeURIComponent(state)}`,\n ),\n },\n\n envSync: {\n preview: () => request<EnvSyncResult>(\"/env-sync\"),\n apply: () => request<EnvSyncResult>(\"/env-sync\", { method: \"POST\", body: \"{}\" }),\n allowlist: {\n get: () => request<EnvAllowlistConfig>(\"/env-sync/allowlist\"),\n set: (integration: string, field: string, envVars: string[]) =>\n request<EnvAllowlistConfig>(\"/env-sync/allowlist\", {\n method: \"PUT\",\n body: JSON.stringify({ integration, field, envVars }),\n }),\n },\n },\n\n pending: {\n list: (status?: \"pending\" | \"approved\" | \"denied\" | \"failed\") =>\n request<PendingAction[]>(`/pending-actions${status ? `?status=${status}` : \"\"}`),\n // ADR-0010: `extras` carries approval-time secret material (provider keys,\n // integration credentials) that the agent never sees. The route forwards\n // it to applyAction; the agent's pending_actions.payload stays clean.\n approve: (id: string, extras?: Record<string, unknown>) =>\n request<PendingAction>(\n `/pending-actions/${encodeURIComponent(id)}/approve`,\n { method: \"POST\", body: JSON.stringify(extras ? { extras } : {}) },\n ),\n deny: (id: string) =>\n request<PendingAction>(`/pending-actions/${encodeURIComponent(id)}/deny`, { method: \"POST\", body: \"{}\" }),\n },\n\n scheduledTasks: {\n list: (agent_id?: string) =>\n request<ScheduledTask[]>(`/scheduled-tasks${agent_id ? `?agent_id=${encodeURIComponent(agent_id)}` : \"\"}`),\n // ADR-0032 — patch supports the reaction discriminator. Mirrors the\n // watchers.update shape; explicit reaction_kind triggers a full replace.\n update: (id: string, patch: Partial<Pick<ScheduledTask, \"prompt\" | \"description\" | \"kind\" | \"schedule\" | \"enabled\" | \"silent\">> & {\n reaction_kind?: \"agent_prompt\" | \"script\";\n reaction_script?: string | null;\n reaction_script_args?: Record<string, unknown> | null;\n }) =>\n request<ScheduledTask>(`/scheduled-tasks/${encodeURIComponent(id)}`, { method: \"PATCH\", body: JSON.stringify(patch) }),\n cancel: (id: string) =>\n request<{ deleted: boolean }>(`/scheduled-tasks/${encodeURIComponent(id)}`, { method: \"DELETE\" }),\n runNow: (id: string) =>\n request<{ accepted: boolean; task_id: string }>(`/scheduled-tasks/${encodeURIComponent(id)}/run`, { method: \"POST\", body: \"{}\" }),\n },\n\n // Event-driven watchers (ADR-0027). Polls a built-in tool every N\n // seconds; only fires the agent when the tool output changes.\n watchers: {\n list: (agent_id?: string) =>\n request<Watcher[]>(`/watchers${agent_id ? `?agent_id=${encodeURIComponent(agent_id)}` : \"\"}`),\n create: (data: {\n agent_id: string;\n label: string;\n tool: string;\n args?: Record<string, unknown>;\n every_seconds: number;\n silent?: boolean;\n reaction_kind?: \"agent_prompt\" | \"script\";\n reaction_prompt?: string | null;\n reaction_script?: string | null;\n reaction_script_args?: Record<string, unknown> | null;\n }) =>\n request<Watcher>(\"/watchers\", { method: \"POST\", body: JSON.stringify(data) }),\n update: (\n id: string,\n patch: Partial<{\n label: string;\n interval_seconds: number;\n enabled: boolean;\n silent: boolean;\n reaction_kind: \"agent_prompt\" | \"script\";\n reaction_prompt: string | null;\n reaction_script: string | null;\n reaction_script_args: Record<string, unknown> | null;\n }>,\n ) =>\n request<Watcher>(`/watchers/${encodeURIComponent(id)}`, { method: \"PATCH\", body: JSON.stringify(patch) }),\n cancel: (id: string) =>\n request<{ deleted: boolean }>(`/watchers/${encodeURIComponent(id)}`, { method: \"DELETE\" }),\n runNow: (id: string) =>\n request<{ accepted: boolean; watcher_id: string }>(`/watchers/${encodeURIComponent(id)}/run`, { method: \"POST\", body: \"{}\" }),\n // ADR-0031: list registered reaction scripts (`reaction.*` namespace)\n // for the watcher UI's reaction-kind picker.\n listReactionScripts: () =>\n request<{ scripts: string[] }>(\"/watchers/reaction-scripts\"),\n },\n\n // Document RAG (ADR-0024). Folder sources are scanned by the scheduler\n // every ~10 minutes; the search endpoint is a thin wrapper over the\n // `documents_search` tool so callers can preview hits without invoking\n // an agent.\n documents: {\n listSources: () => request<DocumentSource[]>(\"/documents/sources\"),\n createSource: (data: DocumentSourceIn) =>\n request<DocumentSource>(\"/documents/sources\", { method: \"POST\", body: JSON.stringify(data) }),\n updateSource: (id: string, patch: DocumentSourcePatch) =>\n request<DocumentSource>(`/documents/sources/${encodeURIComponent(id)}`, { method: \"PATCH\", body: JSON.stringify(patch) }),\n deleteSource: (id: string) =>\n request<{ deleted: boolean }>(`/documents/sources/${encodeURIComponent(id)}`, { method: \"DELETE\" }),\n reindex: (id: string) =>\n request<DocumentReindexResult>(`/documents/sources/${encodeURIComponent(id)}/reindex`, { method: \"POST\", body: \"{}\" }),\n search: (q: string, opts?: { limit?: number; source_id?: string }) => {\n const p = new URLSearchParams({ q });\n if (opts?.limit) p.set(\"limit\", String(opts.limit));\n if (opts?.source_id) p.set(\"source_id\", opts.source_id);\n return request<{ query: string; hits: DocumentHit[] }>(`/documents/search?${p.toString()}`);\n },\n getSettings: () => request<DocumentSettings>(\"/documents/settings\"),\n setSettings: (patch: DocumentSettings) =>\n request<DocumentSettings>(\"/documents/settings\", { method: \"PUT\", body: JSON.stringify(patch) }),\n },\n\n // Filesystem browse — backs the folder-picker dialog in the Documents\n // panel. Lists immediate subdirectories at an absolute path.\n fs: {\n browse: (p?: string) => {\n const qs = p ? `?path=${encodeURIComponent(p)}` : \"\";\n return request<{\n path: string;\n parent: string | null;\n home: string;\n entries: { name: string; path: string }[];\n }>(`/fs/browse${qs}`);\n },\n },\n\n githubCopilotAuth: {\n status: () => request<{ signed_in: boolean; stored_at: string | null }>(\"/providers/github-copilot/auth\"),\n start: () => request<{ device_code: string; user_code: string; verification_uri: string; expires_in: number; interval: number }>(\n \"/providers/github-copilot/auth\", { method: \"POST\", body: \"{}\" },\n ),\n poll: (device_code: string) => request<{ status: string; access_token?: string; error?: string }>(\n \"/providers/github-copilot/auth\", { method: \"PUT\", body: JSON.stringify({ device_code }) },\n ),\n signOut: () => request<{ deleted: boolean }>(\"/providers/github-copilot/auth\", { method: \"DELETE\" }),\n },\n\n bridges: {\n list: () => request<Bridge[]>(\"/bridges\"),\n get: (id: string) => request<Bridge>(`/bridges/${encodeURIComponent(id)}`),\n create: (data: BridgeIn) =>\n request<Bridge>(\"/bridges\", { method: \"POST\", body: JSON.stringify(data) }),\n update: (id: string, patch: BridgePatch) =>\n request<Bridge>(`/bridges/${encodeURIComponent(id)}`, { method: \"PATCH\", body: JSON.stringify(patch) }),\n delete: (id: string) =>\n request<{ deleted: boolean }>(`/bridges/${encodeURIComponent(id)}`, { method: \"DELETE\" }),\n status: (id: string) => request<BridgeLiveStatus>(`/bridges/${encodeURIComponent(id)}/status`),\n pair: (id: string) =>\n request<{ accepted: boolean }>(`/bridges/${encodeURIComponent(id)}/pair`, { method: \"POST\", body: \"{}\" }),\n chats: (id: string) => request<BridgeChatsResponse>(`/bridges/${encodeURIComponent(id)}/chats`),\n lookup: (id: string, phone: string) =>\n request<{ chat: import(\"./types\").BridgeChat | null }>(\n `/bridges/${encodeURIComponent(id)}/lookup`,\n { method: \"POST\", body: JSON.stringify({ phone }) },\n ),\n\n routes: {\n list: (bridge_id: string) =>\n request<BridgeRoute[]>(`/bridges/${encodeURIComponent(bridge_id)}/routes`),\n create: (bridge_id: string, data: BridgeRouteIn) =>\n request<BridgeRoute>(`/bridges/${encodeURIComponent(bridge_id)}/routes`, {\n method: \"POST\", body: JSON.stringify(data),\n }),\n update: (bridge_id: string, route_id: string, patch: BridgeRoutePatch) =>\n request<BridgeRoute>(\n `/bridges/${encodeURIComponent(bridge_id)}/routes/${encodeURIComponent(route_id)}`,\n { method: \"PATCH\", body: JSON.stringify(patch) },\n ),\n delete: (bridge_id: string, route_id: string) =>\n request<{ deleted: boolean }>(\n `/bridges/${encodeURIComponent(bridge_id)}/routes/${encodeURIComponent(route_id)}`,\n { method: \"DELETE\" },\n ),\n },\n },\n\n tailscale: {\n status: () => request<import(\"./types\").TailscaleStatus>(\"/tailscale\"),\n },\n\n harnesses: {\n list: () => request<HarnessListResponse>(\"/harnesses\"),\n get: (id: string) => request<Harness>(`/harnesses/${encodeURIComponent(id)}`),\n create: (data: HarnessIn) =>\n request<Harness>(\"/harnesses\", { method: \"POST\", body: JSON.stringify(data) }),\n update: (id: string, patch: HarnessPatch) =>\n request<Harness>(`/harnesses/${encodeURIComponent(id)}`, {\n method: \"PATCH\",\n body: JSON.stringify(patch),\n }),\n delete: (id: string) =>\n request<{ deleted: boolean }>(`/harnesses/${encodeURIComponent(id)}`, { method: \"DELETE\" }),\n setDefault: (id: string) =>\n request<{ id: string }>(\"/harnesses/default\", {\n method: \"PUT\",\n body: JSON.stringify({ id }),\n }),\n },\n\n proxy: {\n get: () => request<import(\"./types\").ProxyConfigEnvelope>(\"/proxy-config\"),\n save: (input: import(\"./types\").ProxyConfigInput) =>\n request<import(\"./types\").ProxyConfigEnvelope>(\"/proxy-config\", {\n method: \"PUT\",\n body: JSON.stringify(input),\n }),\n clear: () =>\n request<import(\"./types\").ProxyConfigEnvelope & { deleted: boolean }>(\"/proxy-config\", {\n method: \"DELETE\",\n }),\n },\n};\n\n\n// ---------------------------------------------------------------------------\n// Agent run streaming — CQRS transport (ADR-0008)\n// ---------------------------------------------------------------------------\n//\n// One turn = one POST (submit) + one EventSource (subscribe). The previous\n// WS sidecar / SSE-over-POST / SSE-GET-reattach trio is gone; EventSource\n// is the only WebKit-native streaming primitive that survives iOS Safari +\n// HTTP/2 reverse-proxies (Tailscale serve), so we route every browser\n// through it.\n\nexport interface SubmitResult {\n /** true iff the server accepted ownership of this turn (HTTP 202). */\n accepted: boolean;\n /** Present on non-2xx outcomes. `run_in_flight` = another tab/device\n * owns the current turn; caller should re-queue and still subscribe to\n * observe live deltas. */\n code?: \"run_in_flight\" | string;\n error?: string;\n}\n\n/** POST /threads/:id/run — registers a run and returns immediately. The\n * caller is expected to follow up with `subscribeRun()` to receive the\n * chunk stream. Idempotent in the sense that two simultaneous submissions\n * for the same thread will see one 202 and one 409 (`run_in_flight`). */\nexport async function submitRun(\n thread_id: string,\n message: string,\n signal: AbortSignal,\n stream_options?: StreamOptions,\n attachments?: ContentPart[],\n): Promise<SubmitResult> {\n const res = await fetch(`${BASE}/threads/${thread_id}/run`, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ message, stream_options, attachments }),\n signal,\n });\n // 2xx = accepted (currently always 202); 409 = already running. We treat\n // every other status as a hard error so the consumer's catch fires.\n if (res.status === 202) {\n // Drain the body to free the connection — Next.js sends a small JSON\n // ack but we don't need anything from it.\n try { await res.json(); } catch { /* ignore */ }\n return { accepted: true };\n }\n let body: { code?: string; error?: string } = {};\n try { body = (await res.json()) as { code?: string; error?: string }; } catch { /* */ }\n if (res.status === 409) {\n return { accepted: false, code: body.code ?? \"run_in_flight\" };\n }\n throw new Error(`${res.status} ${body.error ?? res.statusText}`);\n}\n\n/** GET /threads/:id/run — opens an `EventSource` and yields raw `data:`\n * payloads (one JSON event per yield). Closes the source when the consumer\n * stops iterating (either via `break` after a terminal `done`/`error`, or\n * when the abort signal fires).\n *\n * EventSource handles its own reconnection on transient drops. The\n * server-side run keeps publishing into the registry across drops, so a\n * resumed connection replays buffered chunks via `subscribe()` and the\n * consumer sees the run through to its terminal event.\n *\n * `stream_options` filter flags ride as query params (`show_tools`,\n * `show_thinking`); the rest of `StreamOptions` is meaningful only on the\n * POST and is ignored here.\n */\nexport function subscribeRun(\n thread_id: string,\n signal: AbortSignal,\n stream_options?: StreamOptions,\n): AsyncGenerator<string> {\n const params = new URLSearchParams();\n const includeTools = stream_options?.filters?.include_tools;\n const includeThinking = stream_options?.filters?.include_thinking;\n if (includeTools === false) params.set(\"show_tools\", \"false\");\n if (includeThinking === false) params.set(\"show_thinking\", \"false\");\n const qs = params.toString();\n const url = `${BASE}/threads/${thread_id}/run${qs ? `?${qs}` : \"\"}`;\n\n return (async function* () {\n const queue: string[] = [];\n const waiters: Array<() => void> = [];\n let done = false;\n let streamError: Error | null = null;\n const notify = () => { while (waiters.length > 0) waiters.shift()?.(); };\n\n const es = new EventSource(url, { withCredentials: true });\n es.onmessage = (e) => {\n if (typeof e.data === \"string\") {\n queue.push(e.data);\n try {\n const parsed = JSON.parse(e.data) as { type?: string };\n if (parsed.type === \"done\" || parsed.type === \"error\") {\n done = true;\n }\n } catch { /* let consumer surface parse errors */ }\n notify();\n }\n };\n // EventSource auto-reconnects on transient network drops. We only treat\n // it as a hard error if the *first* connect attempt fails (no successful\n // 'open' ever fired) — anything after that is a recoverable drop and\n // the server's replay buffer will deliver missed chunks on reconnect.\n let everOpened = false;\n es.onopen = () => { everOpened = true; };\n es.onerror = () => {\n if (!everOpened) {\n streamError = new Error(\"EventSource failed to open\");\n done = true;\n notify();\n }\n // else: ignore — EventSource will try to reconnect.\n };\n\n const onAbort = () => {\n done = true;\n try { es.close(); } catch { /* */ }\n notify();\n };\n signal.addEventListener(\"abort\", onAbort, { once: true });\n\n try {\n while (!done || queue.length > 0) {\n if (queue.length > 0) {\n yield queue.shift() as string;\n continue;\n }\n if (streamError) throw streamError;\n await new Promise<void>((resolve) => waiters.push(resolve));\n }\n if (streamError) throw streamError;\n } finally {\n signal.removeEventListener(\"abort\", onAbort);\n try { es.close(); } catch { /* */ }\n }\n })();\n}","// Branding knobs sourced from NEXT_PUBLIC_* env vars so forks can rebrand\n// the app without patching source. NEXT_PUBLIC_* is the right\n// channel here because Next.js inlines these at build time, which lets\n// client components read them directly (no React Context, no server\n// round-trip). Server-only modules read the same keys at runtime.\n//\n// Keep this module client-safe — no Node-only imports, no DB/FS access.\n\nconst DEFAULT_APP_NAME = \"Jarela\";\nconst DEFAULT_APP_DESCRIPTION = \"Jarela — local chat interface for LangGraph agents\";\nconst DEFAULT_ISSUE_URL = \"https://github.com/CircuitWall/jarela/issues/new\";\n\nexport function getAppName(): string {\n return process.env.NEXT_PUBLIC_APP_NAME?.trim() || DEFAULT_APP_NAME;\n}\n\nexport function getAppDescription(): string {\n return process.env.NEXT_PUBLIC_APP_DESCRIPTION?.trim() || DEFAULT_APP_DESCRIPTION;\n}\n\nexport function getAppIssueUrl(): string {\n return process.env.NEXT_PUBLIC_APP_ISSUE_URL?.trim() || DEFAULT_ISSUE_URL;\n}\n"],"names":["BASE","LIST_TTL_MS","emptyCache","data","fetchedAt","inflight","cloneRows","rows","map","row","agentListCache","modelListCache","taskListCache","setAgentListCache","notify","snap","Date","now","window","dispatchEvent","CustomEvent","setModelListCache","setTaskListCache","cachedList","cache","fetchFn","setCache","force","Promise","resolve","req","then","request","path","init","res","fetch","headers","ok","text","catch","statusText","Error","status","json","api","agents","list","opts","get","id","encodeURIComponent","create","created","method","body","JSON","stringify","update","updated","a","delete","deleted","filter","getThread","compact","tools","builtinTools","setEnabled","category","enabled","extensions","getToolSecrets","name","saveToolSecrets","values","threads","limit","offset","agent_id","title","thread_id","p","URLSearchParams","set","String","before","after","qs","toString","abortRun","memory","namespace","search","key","value","models","providers","catalog","provider","m","t","model_config_name","profile","setLocationConsent","consent","updateLocation","clearLocation","access","add","identity","display_name","remove","tasks","assign","tool_policy","assigned","exists","some","next","unassign","mcp","registry","params","q","cursor","fresh","suffix","integrations","save","test","gmailOauthStart","creds","gmailOauthStatus","state","outlookOauthStart","outlookOauthStatus","envSync","preview","apply","allowlist","integration","field","envVars","pending","approve","extras","deny","scheduledTasks","patch","cancel","runNow","watchers","listReactionScripts","documents","listSources","createSource","updateSource","deleteSource","reindex","source_id","getSettings","setSettings","fs","browse","githubCopilotAuth","start","poll","device_code","signOut","bridges","pair","chats","lookup","phone","routes","bridge_id","route_id","tailscale","harnesses","setDefault","proxy","input","clear","submitRun","message","signal","stream_options","attachments","accepted","code","error","subscribeRun","includeTools","filters","include_tools","includeThinking","include_thinking","url","queue","waiters","done","streamError","length","shift","es","EventSource","withCredentials","onmessage","e","push","parsed","parse","type","everOpened","onopen","onerror","onAbort","close","addEventListener","once","removeEventListener","DEFAULT_APP_NAME","DEFAULT_APP_DESCRIPTION","DEFAULT_ISSUE_URL","getAppName","process","env","NEXT_PUBLIC_APP_NAME","trim","getAppDescription","NEXT_PUBLIC_APP_DESCRIPTION","getAppIssueUrl","NEXT_PUBLIC_APP_ISSUE_URL"],"sourceRoot":"","ignoreList":[]}
|