@circuitwall/jarela 0.14.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/app-path-routes-manifest.json +1 -1
- package/.next/standalone/.next/build-manifest.json +2 -2
- package/.next/standalone/.next/prerender-manifest.json +3 -3
- 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 +2 -2
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- 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 +2 -2
- 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/api/v1/agents/[id]/route.js +6 -1
- package/.next/standalone/.next/server/app/api/v1/agents/[id]/route.js.map +1 -1
- package/.next/standalone/.next/server/app/api/v1/agents/route.js +6 -1
- package/.next/standalone/.next/server/app/api/v1/agents/route.js.map +1 -1
- package/.next/standalone/.next/server/app/api/v1/bridges/[id]/route.js +9 -1
- package/.next/standalone/.next/server/app/api/v1/bridges/[id]/route.js.map +1 -1
- package/.next/standalone/.next/server/app/api/v1/bridges/route.js +9 -1
- package/.next/standalone/.next/server/app/api/v1/bridges/route.js.map +1 -1
- package/.next/standalone/.next/server/app/api/v1/builtin-tools/route.js +36 -29
- package/.next/standalone/.next/server/app/api/v1/builtin-tools/route.js.map +1 -1
- package/.next/standalone/.next/server/app/api/v1/events/route.js +7 -1
- package/.next/standalone/.next/server/app/api/v1/events/route.js.map +1 -1
- package/.next/standalone/.next/server/app/api/v1/extensions/route.js +3 -3
- package/.next/standalone/.next/server/app/api/v1/extensions/route.js.map +1 -1
- package/.next/standalone/.next/server/app/api/v1/extensions/tools/[name]/secrets/route.js +4 -4
- package/.next/standalone/.next/server/app/api/v1/extensions/tools/[name]/secrets/route.js.map +1 -1
- package/.next/standalone/.next/server/app/api/v1/health/route.js +7 -1
- package/.next/standalone/.next/server/app/api/v1/health/route.js.map +1 -1
- package/.next/standalone/.next/server/app/api/v1/mcp-servers/[name]/route.js +9 -1
- package/.next/standalone/.next/server/app/api/v1/mcp-servers/[name]/route.js.map +1 -1
- package/.next/standalone/.next/server/app/api/v1/mcp-servers/route.js +9 -1
- package/.next/standalone/.next/server/app/api/v1/mcp-servers/route.js.map +1 -1
- package/.next/standalone/.next/server/app/api/v1/models/route.js +6 -1
- package/.next/standalone/.next/server/app/api/v1/models/route.js.map +1 -1
- package/.next/standalone/.next/server/app/api/v1/page-capture/route.js +7 -1
- package/.next/standalone/.next/server/app/api/v1/page-capture/route.js.map +1 -1
- package/.next/standalone/.next/server/app/api/v1/pending-actions/[id]/approve/route.js +14 -7
- package/.next/standalone/.next/server/app/api/v1/pending-actions/[id]/approve/route.js.map +1 -1
- package/.next/standalone/.next/server/app/api/v1/providers/[provider]/models/route.js +28 -0
- package/.next/standalone/.next/server/app/api/v1/providers/[provider]/models/route.js.map +1 -1
- package/.next/standalone/.next/server/app/api/v1/providers/route.js +7 -1
- package/.next/standalone/.next/server/app/api/v1/providers/route.js.map +1 -1
- package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/route.js +16 -2
- package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/route.js.map +1 -1
- package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/run/route.js +8 -1
- package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/run/route.js.map +1 -1
- package/.next/standalone/.next/server/app/api/v1/threads/route.js +6 -1
- package/.next/standalone/.next/server/app/api/v1/threads/route.js.map +1 -1
- package/.next/standalone/.next/server/app/api/v1/tools/route.js +10 -3
- package/.next/standalone/.next/server/app/api/v1/tools/route.js.map +1 -1
- package/.next/standalone/.next/server/app/index.html +2 -2
- package/.next/standalone/.next/server/app/index.rsc +3 -3
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/page.js +56 -0
- package/.next/standalone/.next/server/app/page.js.map +1 -1
- 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 +2 -2
- package/.next/standalone/.next/server/app/setup.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/setup.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/setup.segments/_index.segment.rsc +2 -2
- 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/app-paths-manifest.json +1 -1
- package/.next/standalone/.next/server/chunks/1683.js +2 -2
- package/.next/standalone/.next/server/chunks/2082.js +122 -13
- package/.next/standalone/.next/server/chunks/2082.js.map +1 -1
- package/.next/standalone/.next/server/chunks/210.js +3 -3
- package/.next/standalone/.next/server/chunks/210.js.map +1 -1
- package/.next/standalone/.next/server/chunks/239.js +1902 -1487
- package/.next/standalone/.next/server/chunks/239.js.map +1 -1
- package/.next/standalone/.next/server/chunks/2447.js +9 -1
- package/.next/standalone/.next/server/chunks/2447.js.map +1 -1
- package/.next/standalone/.next/server/chunks/423.js +125 -16
- package/.next/standalone/.next/server/chunks/423.js.map +1 -1
- package/.next/standalone/.next/server/chunks/4631.js +36 -29
- package/.next/standalone/.next/server/chunks/4631.js.map +1 -1
- package/.next/standalone/.next/server/chunks/5937.js +3 -2
- package/.next/standalone/.next/server/chunks/5937.js.map +1 -1
- package/.next/standalone/.next/server/chunks/{947.js → 8866.js} +11321 -10883
- package/.next/standalone/.next/server/chunks/8866.js.map +1 -0
- package/.next/standalone/.next/server/chunks/9032.js +3 -3
- package/.next/standalone/.next/server/chunks/9032.js.map +1 -1
- package/.next/standalone/.next/server/middleware-build-manifest.js +2 -2
- package/.next/standalone/.next/server/middleware.js +122 -13
- 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/proxy.js.map +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/static/chunks/app/{page-473b39ec30c7f569.js → page-a7cae65f235e2942.js} +57 -1
- package/.next/standalone/.next/static/chunks/app/page-a7cae65f235e2942.js.map +1 -0
- package/.next/standalone/.next/static/css/{6f8b1a84bcbcd467.css → e57bdbbbb5a05779.css} +2 -2
- package/.next/standalone/.next/static/css/e57bdbbbb5a05779.css.map +1 -0
- package/.next/standalone/package.json +9 -1
- package/CHANGELOG.md +90 -0
- package/README.md +30 -2
- package/api/types.ts +8 -0
- package/app/api/v1/agents/[id]/route.ts +7 -0
- package/app/api/v1/agents/route.ts +7 -0
- package/app/api/v1/events/route.ts +8 -0
- package/app/api/v1/extensions/route.ts +2 -2
- package/app/api/v1/extensions/tools/[name]/secrets/route.ts +3 -3
- package/app/api/v1/health/route.ts +8 -0
- package/app/api/v1/models/route.ts +7 -0
- package/app/api/v1/page-capture/route.ts +8 -0
- package/app/api/v1/providers/route.ts +8 -0
- package/app/api/v1/threads/[thread_id]/route.ts +8 -0
- package/app/api/v1/threads/[thread_id]/run/route.ts +9 -0
- package/app/api/v1/threads/route.ts +7 -0
- package/app/api/v1/tools/route.ts +9 -0
- package/components/chat/ContextUsageBar.tsx +44 -0
- package/lib/agents/llm.ts +25 -2
- package/lib/agents/run-thread.ts +13 -1
- package/lib/agents/stream-collector.ts +9 -1
- package/lib/api/serializers.test.ts +15 -0
- package/lib/api/serializers.ts +8 -0
- package/lib/db/migrations.ts +15 -0
- package/lib/health/runner.test.ts +24 -2
- package/lib/mcp/registry.ts +14 -6
- package/lib/providers/anthropic.test.ts +95 -0
- package/lib/providers/anthropic.ts +106 -10
- package/lib/providers/jarela-chat-model.ts +9 -1
- package/lib/providers/known-context-windows.ts +21 -0
- package/lib/providers/types.ts +21 -1
- package/lib/stores/message-usage.test.ts +34 -0
- package/lib/stores/message-usage.ts +15 -3
- package/lib/stores/pricing.test.ts +52 -0
- package/lib/stores/pricing.ts +26 -1
- package/lib/tools/builtins.ts +4 -0
- package/lib/tools/extension-surfaces.test.ts +79 -0
- package/lib/tools/extension-surfaces.ts +153 -0
- package/lib/tools/index.ts +27 -8
- package/lib/tools/list-tools.test.ts +76 -0
- package/lib/tools/list-tools.ts +84 -0
- package/lib/tools/mcp-servers-info.test.ts +73 -0
- package/lib/tools/mcp-servers-info.ts +71 -0
- package/lib/tools/providers-info.test.ts +73 -0
- package/lib/tools/providers-info.ts +106 -0
- package/lib/tools/registry.ts +36 -25
- package/lib/tools/types.ts +13 -0
- package/package.json +9 -1
- package/.next/standalone/.next/server/chunks/947.js.map +0 -1
- package/.next/standalone/.next/static/chunks/app/page-473b39ec30c7f569.js.map +0 -1
- package/.next/standalone/.next/static/css/6f8b1a84bcbcd467.css.map +0 -1
- /package/.next/standalone/.next/static/{T0p2VVPsJPj44rwbmjaFb → d_vhp-lJqfdjRFpnLVIqZ}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{T0p2VVPsJPj44rwbmjaFb → d_vhp-lJqfdjRFpnLVIqZ}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"484":{"*":{"id":"70664","name":"*","chunks":[],"async":false}},"722":{"*":{"id":"86486","name":"*","chunks":[],"async":false}},"737":{"*":{"id":"41005","name":"*","chunks":[],"async":false}},"1304":{"*":{"id":"60440","name":"*","chunks":[],"async":false}},"3639":{"*":{"id":"35419","name":"*","chunks":[],"async":false}},"3741":{"*":{"id":"96765","name":"*","chunks":[],"async":false}},"4581":{"*":{"id":"61335","name":"*","chunks":[],"async":false}},"4777":{"*":{"id":"82265","name":"*","chunks":[],"async":false}},"6869":{"*":{"id":"74661","name":"*","chunks":[],"async":false}},"7121":{"*":{"id":"35421","name":"*","chunks":[],"async":false}},"7123":{"*":{"id":"81921","name":"*","chunks":[],"async":false}},"7372":{"*":{"id":"22537","name":"*","chunks":[],"async":false}},"8616":{"*":{"id":"84342","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/builtin/global-error.js":{"id":7123,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":7123,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/client-page.js":{"id":1304,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/client-page.js":{"id":1304,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/client-segment.js":{"id":8616,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/client-segment.js":{"id":8616,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":4777,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":4777,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/layout-router.js":{"id":7121,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/layout-router.js":{"id":7121,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/render-from-template-context.js":{"id":4581,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":4581,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/lib/framework/boundary-components.js":{"id":484,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":484,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":6869,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":6869,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/app/globals.css":{"id":6872,"name":"*","chunks":["7177","static/chunks/app/layout-84c6f211a7a1ca36.js"],"async":false},"/home/runner/work/jarela/jarela/components/ui/ServiceWorkerRegistration.tsx":{"id":722,"name":"*","chunks":["7177","static/chunks/app/layout-84c6f211a7a1ca36.js"],"async":false},"/home/runner/work/jarela/jarela/contexts/AppContext.tsx":{"id":3639,"name":"*","chunks":["7177","static/chunks/app/layout-84c6f211a7a1ca36.js"],"async":false},"/home/runner/work/jarela/jarela/contexts/ThemeContext.tsx":{"id":737,"name":"*","chunks":["7177","static/chunks/app/layout-84c6f211a7a1ca36.js"],"async":false},"/home/runner/work/jarela/jarela/components/layout/AppShell.tsx":{"id":7372,"name":"*","chunks":["9209","static/chunks/9209-423cc67bf5d574dd.js","2172","static/chunks/2172-3cae9600fb748de0.js","3741","static/chunks/3741-5c4b3710e1a354e6.js","8974","static/chunks/app/page-
|
|
1
|
+
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"484":{"*":{"id":"70664","name":"*","chunks":[],"async":false}},"722":{"*":{"id":"86486","name":"*","chunks":[],"async":false}},"737":{"*":{"id":"41005","name":"*","chunks":[],"async":false}},"1304":{"*":{"id":"60440","name":"*","chunks":[],"async":false}},"3639":{"*":{"id":"35419","name":"*","chunks":[],"async":false}},"3741":{"*":{"id":"96765","name":"*","chunks":[],"async":false}},"4581":{"*":{"id":"61335","name":"*","chunks":[],"async":false}},"4777":{"*":{"id":"82265","name":"*","chunks":[],"async":false}},"6869":{"*":{"id":"74661","name":"*","chunks":[],"async":false}},"7121":{"*":{"id":"35421","name":"*","chunks":[],"async":false}},"7123":{"*":{"id":"81921","name":"*","chunks":[],"async":false}},"7372":{"*":{"id":"22537","name":"*","chunks":[],"async":false}},"8616":{"*":{"id":"84342","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/builtin/global-error.js":{"id":7123,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":7123,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/client-page.js":{"id":1304,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/client-page.js":{"id":1304,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/client-segment.js":{"id":8616,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/client-segment.js":{"id":8616,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":4777,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":4777,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/layout-router.js":{"id":7121,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/layout-router.js":{"id":7121,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/render-from-template-context.js":{"id":4581,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":4581,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/lib/framework/boundary-components.js":{"id":484,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":484,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":6869,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":6869,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/app/globals.css":{"id":6872,"name":"*","chunks":["7177","static/chunks/app/layout-84c6f211a7a1ca36.js"],"async":false},"/home/runner/work/jarela/jarela/components/ui/ServiceWorkerRegistration.tsx":{"id":722,"name":"*","chunks":["7177","static/chunks/app/layout-84c6f211a7a1ca36.js"],"async":false},"/home/runner/work/jarela/jarela/contexts/AppContext.tsx":{"id":3639,"name":"*","chunks":["7177","static/chunks/app/layout-84c6f211a7a1ca36.js"],"async":false},"/home/runner/work/jarela/jarela/contexts/ThemeContext.tsx":{"id":737,"name":"*","chunks":["7177","static/chunks/app/layout-84c6f211a7a1ca36.js"],"async":false},"/home/runner/work/jarela/jarela/components/layout/AppShell.tsx":{"id":7372,"name":"*","chunks":["9209","static/chunks/9209-423cc67bf5d574dd.js","2172","static/chunks/2172-3cae9600fb748de0.js","3741","static/chunks/3741-5c4b3710e1a354e6.js","8974","static/chunks/app/page-a7cae65f235e2942.js"],"async":false},"/home/runner/work/jarela/jarela/components/setup/OnboardingWizard.tsx":{"id":3741,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/home/runner/work/jarela/jarela/":[],"/home/runner/work/jarela/jarela/app/layout":[{"inlined":false,"path":"static/css/e57bdbbbb5a05779.css"}],"/home/runner/work/jarela/jarela/app/page":[{"inlined":false,"path":"static/css/61d4279c2300e146.css"}]},"rscModuleMapping":{"484":{"*":{"id":"98562","name":"*","chunks":[],"async":false}},"722":{"*":{"id":"13236","name":"*","chunks":[],"async":false}},"737":{"*":{"id":"28383","name":"*","chunks":[],"async":false}},"1304":{"*":{"id":"15098","name":"*","chunks":[],"async":false}},"3639":{"*":{"id":"25933","name":"*","chunks":[],"async":false}},"3741":{"*":{"id":"59275","name":"*","chunks":[],"async":false}},"4581":{"*":{"id":"16237","name":"*","chunks":[],"async":false}},"4777":{"*":{"id":"33859","name":"*","chunks":[],"async":false}},"6869":{"*":{"id":"36675","name":"*","chunks":[],"async":false}},"6872":{"*":{"id":"82704","name":"*","chunks":[],"async":false}},"7121":{"*":{"id":"98099","name":"*","chunks":[],"async":false}},"7123":{"*":{"id":"95547","name":"*","chunks":[],"async":false}},"7372":{"*":{"id":"59255","name":"*","chunks":[],"async":false}},"8616":{"*":{"id":"47644","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/setup/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"484":{"*":{"id":"70664","name":"*","chunks":[],"async":false}},"722":{"*":{"id":"86486","name":"*","chunks":[],"async":false}},"737":{"*":{"id":"41005","name":"*","chunks":[],"async":false}},"1304":{"*":{"id":"60440","name":"*","chunks":[],"async":false}},"3639":{"*":{"id":"35419","name":"*","chunks":[],"async":false}},"3741":{"*":{"id":"96765","name":"*","chunks":[],"async":false}},"4581":{"*":{"id":"61335","name":"*","chunks":[],"async":false}},"4777":{"*":{"id":"82265","name":"*","chunks":[],"async":false}},"6869":{"*":{"id":"74661","name":"*","chunks":[],"async":false}},"7121":{"*":{"id":"35421","name":"*","chunks":[],"async":false}},"7123":{"*":{"id":"81921","name":"*","chunks":[],"async":false}},"7372":{"*":{"id":"22537","name":"*","chunks":[],"async":false}},"8616":{"*":{"id":"84342","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/builtin/global-error.js":{"id":7123,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":7123,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/client-page.js":{"id":1304,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/client-page.js":{"id":1304,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/client-segment.js":{"id":8616,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/client-segment.js":{"id":8616,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":4777,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":4777,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/layout-router.js":{"id":7121,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/layout-router.js":{"id":7121,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/render-from-template-context.js":{"id":4581,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":4581,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/lib/framework/boundary-components.js":{"id":484,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":484,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":6869,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":6869,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/app/globals.css":{"id":6872,"name":"*","chunks":["7177","static/chunks/app/layout-84c6f211a7a1ca36.js"],"async":false},"/home/runner/work/jarela/jarela/components/ui/ServiceWorkerRegistration.tsx":{"id":722,"name":"*","chunks":["7177","static/chunks/app/layout-84c6f211a7a1ca36.js"],"async":false},"/home/runner/work/jarela/jarela/contexts/AppContext.tsx":{"id":3639,"name":"*","chunks":["7177","static/chunks/app/layout-84c6f211a7a1ca36.js"],"async":false},"/home/runner/work/jarela/jarela/contexts/ThemeContext.tsx":{"id":737,"name":"*","chunks":["7177","static/chunks/app/layout-84c6f211a7a1ca36.js"],"async":false},"/home/runner/work/jarela/jarela/components/layout/AppShell.tsx":{"id":7372,"name":"*","chunks":["9209","static/chunks/9209-423cc67bf5d574dd.js","2172","static/chunks/2172-3cae9600fb748de0.js","3741","static/chunks/3741-5c4b3710e1a354e6.js","8974","static/chunks/app/page-
|
|
1
|
+
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/setup/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"484":{"*":{"id":"70664","name":"*","chunks":[],"async":false}},"722":{"*":{"id":"86486","name":"*","chunks":[],"async":false}},"737":{"*":{"id":"41005","name":"*","chunks":[],"async":false}},"1304":{"*":{"id":"60440","name":"*","chunks":[],"async":false}},"3639":{"*":{"id":"35419","name":"*","chunks":[],"async":false}},"3741":{"*":{"id":"96765","name":"*","chunks":[],"async":false}},"4581":{"*":{"id":"61335","name":"*","chunks":[],"async":false}},"4777":{"*":{"id":"82265","name":"*","chunks":[],"async":false}},"6869":{"*":{"id":"74661","name":"*","chunks":[],"async":false}},"7121":{"*":{"id":"35421","name":"*","chunks":[],"async":false}},"7123":{"*":{"id":"81921","name":"*","chunks":[],"async":false}},"7372":{"*":{"id":"22537","name":"*","chunks":[],"async":false}},"8616":{"*":{"id":"84342","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/builtin/global-error.js":{"id":7123,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":7123,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/client-page.js":{"id":1304,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/client-page.js":{"id":1304,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/client-segment.js":{"id":8616,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/client-segment.js":{"id":8616,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":4777,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":4777,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/layout-router.js":{"id":7121,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/layout-router.js":{"id":7121,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/client/components/render-from-template-context.js":{"id":4581,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":4581,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/lib/framework/boundary-components.js":{"id":484,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":484,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":6869,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":6869,"name":"*","chunks":[],"async":false},"/home/runner/work/jarela/jarela/app/globals.css":{"id":6872,"name":"*","chunks":["7177","static/chunks/app/layout-84c6f211a7a1ca36.js"],"async":false},"/home/runner/work/jarela/jarela/components/ui/ServiceWorkerRegistration.tsx":{"id":722,"name":"*","chunks":["7177","static/chunks/app/layout-84c6f211a7a1ca36.js"],"async":false},"/home/runner/work/jarela/jarela/contexts/AppContext.tsx":{"id":3639,"name":"*","chunks":["7177","static/chunks/app/layout-84c6f211a7a1ca36.js"],"async":false},"/home/runner/work/jarela/jarela/contexts/ThemeContext.tsx":{"id":737,"name":"*","chunks":["7177","static/chunks/app/layout-84c6f211a7a1ca36.js"],"async":false},"/home/runner/work/jarela/jarela/components/layout/AppShell.tsx":{"id":7372,"name":"*","chunks":["9209","static/chunks/9209-423cc67bf5d574dd.js","2172","static/chunks/2172-3cae9600fb748de0.js","3741","static/chunks/3741-5c4b3710e1a354e6.js","8974","static/chunks/app/page-a7cae65f235e2942.js"],"async":false},"/home/runner/work/jarela/jarela/components/setup/OnboardingWizard.tsx":{"id":3741,"name":"*","chunks":["9209","static/chunks/9209-423cc67bf5d574dd.js","3741","static/chunks/3741-5c4b3710e1a354e6.js","620","static/chunks/app/setup/page-b1833b1823a1b475.js"],"async":false}},"entryCSSFiles":{"/home/runner/work/jarela/jarela/":[],"/home/runner/work/jarela/jarela/app/layout":[{"inlined":false,"path":"static/css/e57bdbbbb5a05779.css"}],"/home/runner/work/jarela/jarela/app/page":[{"inlined":false,"path":"static/css/61d4279c2300e146.css"}],"/home/runner/work/jarela/jarela/app/setup/page":[]},"rscModuleMapping":{"484":{"*":{"id":"98562","name":"*","chunks":[],"async":false}},"722":{"*":{"id":"13236","name":"*","chunks":[],"async":false}},"737":{"*":{"id":"28383","name":"*","chunks":[],"async":false}},"1304":{"*":{"id":"15098","name":"*","chunks":[],"async":false}},"3639":{"*":{"id":"25933","name":"*","chunks":[],"async":false}},"3741":{"*":{"id":"59275","name":"*","chunks":[],"async":false}},"4581":{"*":{"id":"16237","name":"*","chunks":[],"async":false}},"4777":{"*":{"id":"33859","name":"*","chunks":[],"async":false}},"6869":{"*":{"id":"36675","name":"*","chunks":[],"async":false}},"6872":{"*":{"id":"82704","name":"*","chunks":[],"async":false}},"7121":{"*":{"id":"98099","name":"*","chunks":[],"async":false}},"7123":{"*":{"id":"95547","name":"*","chunks":[],"async":false}},"7372":{"*":{"id":"59255","name":"*","chunks":[],"async":false}},"8616":{"*":{"id":"47644","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, viewport-fit=cover, interactive-widget=resizes-content"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-ff5627013a5e3842.js"/><script src="/_next/static/chunks/4bd1b696-f4afdf0ad1d556a5.js" async=""></script><script src="/_next/static/chunks/3457-5218e06617c4db2a.js" async=""></script><script src="/_next/static/chunks/main-app-3f37bcefd1eaffaf.js" async=""></script><meta name="theme-color" content="#ffffff" media="(prefers-color-scheme: light)"/><meta name="theme-color" content="#09090b" media="(prefers-color-scheme: dark)"/><title>Jarela</title><meta name="description" content="Jarela — local chat interface for LangGraph agents"/><link rel="manifest" href="/manifest.json"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-title" content="Jarela"/><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/><link rel="icon" href="/favicon.ico" sizes="any"/><link rel="icon" href="/icon-192.png" type="image/png" sizes="192x192"/><link rel="icon" href="/icon-512.png" type="image/png" sizes="512x512"/><link rel="apple-touch-icon" href="/apple-touch-icon.png" sizes="180x180"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><script src="/_next/static/chunks/webpack-ff5627013a5e3842.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n3:I[737,[\"7177\",\"static/chunks/app/layout-84c6f211a7a1ca36.js\"],\"ThemeProvider\"]\n4:I[3639,[\"7177\",\"static/chunks/app/layout-84c6f211a7a1ca36.js\"],\"AppProvider\"]\n5:I[7121,[],\"\"]\n6:I[4581,[],\"\"]\n7:I[722,[\"7177\",\"static/chunks/app/layout-84c6f211a7a1ca36.js\"],\"ServiceWorkerRegistration\"]\n9:I[484,[],\"OutletBoundary\"]\na:\"$Sreact.suspense\"\nd:I[484,[],\"ViewportBoundary\"]\nf:I[484,[],\"MetadataBoundary\"]\n11:I[7123,[],\"default\",1]\n:HL[\"/_next/static/css/
|
|
1
|
+
<!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, viewport-fit=cover, interactive-widget=resizes-content"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-ff5627013a5e3842.js"/><script src="/_next/static/chunks/4bd1b696-f4afdf0ad1d556a5.js" async=""></script><script src="/_next/static/chunks/3457-5218e06617c4db2a.js" async=""></script><script src="/_next/static/chunks/main-app-3f37bcefd1eaffaf.js" async=""></script><meta name="theme-color" content="#ffffff" media="(prefers-color-scheme: light)"/><meta name="theme-color" content="#09090b" media="(prefers-color-scheme: dark)"/><title>Jarela</title><meta name="description" content="Jarela — local chat interface for LangGraph agents"/><link rel="manifest" href="/manifest.json"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-title" content="Jarela"/><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/><link rel="icon" href="/favicon.ico" sizes="any"/><link rel="icon" href="/icon-192.png" type="image/png" sizes="192x192"/><link rel="icon" href="/icon-512.png" type="image/png" sizes="512x512"/><link rel="apple-touch-icon" href="/apple-touch-icon.png" sizes="180x180"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><script src="/_next/static/chunks/webpack-ff5627013a5e3842.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n3:I[737,[\"7177\",\"static/chunks/app/layout-84c6f211a7a1ca36.js\"],\"ThemeProvider\"]\n4:I[3639,[\"7177\",\"static/chunks/app/layout-84c6f211a7a1ca36.js\"],\"AppProvider\"]\n5:I[7121,[],\"\"]\n6:I[4581,[],\"\"]\n7:I[722,[\"7177\",\"static/chunks/app/layout-84c6f211a7a1ca36.js\"],\"ServiceWorkerRegistration\"]\n9:I[484,[],\"OutletBoundary\"]\na:\"$Sreact.suspense\"\nd:I[484,[],\"ViewportBoundary\"]\nf:I[484,[],\"MetadataBoundary\"]\n11:I[7123,[],\"default\",1]\n:HL[\"/_next/static/css/e57bdbbbb5a05779.css\",\"style\"]\n2:T4b9,(() =\u003e {\n var LIGHT = \"#ffffff\", DARK = \"#09090b\";\n function resolve(t) {\n if (t === \"light\") return LIGHT;\n if (t === \"dark\") return DARK;\n try {\n return window.matchMedia(\"(prefers-color-scheme: dark)\").matches ? DARK : LIGHT;\n } catch (e) { return DARK; }\n }\n try {\n var t = localStorage.getItem(\"jarela-theme\");\n if (t !== \"light\" \u0026\u0026 t !== \"dark\" \u0026\u0026 t !== \"system\") t = \"system\";\n document.documentElement.setAttribute(\"data-theme\", t);\n // Collapse any media-scoped theme-color metas Next emits to a single tag\n // so the PWA window chrome matches the user's explicit choice (not just\n // prefers-color-scheme). ThemeContext keeps this in sync on change.\n var metas = document.querySelectorAll('meta[name=\"theme-color\"]');\n for (var i = 1; i \u003c metas.length; i++) metas[i].parentNode.removeChild(metas[i]);\n var meta = metas[0];\n if (!meta) {\n meta = document.createElement(\"meta\");\n meta.setAttribute(\"name\", \"theme-color\");\n document.head.appendChild(meta);\n }\n meta.removeAttribute(\"media\");\n meta.setAttribute(\"content\", resolve(t));\n } catch (e) {\n document.documentElement.setAttribute(\"data-theme\", \"system\");\n }\n})();"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"setup\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"setup\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/e57bdbbbb5a05779.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"data-theme\":\"system\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"$2\"}}]}],[\"$\",\"body\",null,{\"children\":[[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}],[\"$\",\"$L7\",null,{}]]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[\"$L8\",null,[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$a\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@b\"}]}]]}],{},null,false,null]},null,false,\"$@c\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Ld\",null,{\"children\":\"$Le\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lf\",null,{\"children\":[\"$\",\"$a\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L10\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$11\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"d_vhp-lJqfdjRFpnLVIqZ\"}\n"])</script><script>self.__next_f.push([1,"8:E{\"digest\":\"NEXT_REDIRECT;replace;/;307;\"}\n"])</script><script>self.__next_f.push([1,"12:[]\nc:\"$W12\"\n"])</script><script>self.__next_f.push([1,"e:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, maximum-scale=1, viewport-fit=cover, interactive-widget=resizes-content\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#ffffff\",\"media\":\"(prefers-color-scheme: light)\"}],[\"$\",\"meta\",\"3\",{\"name\":\"theme-color\",\"content\":\"#09090b\",\"media\":\"(prefers-color-scheme: dark)\"}]]\n"])</script><script>self.__next_f.push([1,"13:I[6869,[],\"IconMark\"]\nb:null\n10:[[\"$\",\"title\",\"0\",{\"children\":\"Jarela\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Jarela — local chat interface for LangGraph agents\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/manifest.json\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"meta\",\"3\",{\"name\":\"mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",\"4\",{\"name\":\"apple-mobile-web-app-title\",\"content\":\"Jarela\"}],[\"$\",\"meta\",\"5\",{\"name\":\"apple-mobile-web-app-status-bar-style\",\"content\":\"black-translucent\"}],[\"$\",\"link\",\"6\",{\"rel\":\"icon\",\"href\":\"/favicon.ico\",\"sizes\":\"any\"}],[\"$\",\"link\",\"7\",{\"rel\":\"icon\",\"href\":\"/icon-192.png\",\"type\":\"image/png\",\"sizes\":\"192x192\"}],[\"$\",\"link\",\"8\",{\"rel\":\"icon\",\"href\":\"/icon-512.png\",\"type\":\"image/png\",\"sizes\":\"512x512\"}],[\"$\",\"link\",\"9\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-touch-icon.png\",\"sizes\":\"180x180\"}],[\"$\",\"$L13\",\"10\",{}]]\n"])</script></body></html>
|
|
@@ -9,7 +9,7 @@ a:"$Sreact.suspense"
|
|
|
9
9
|
d:I[484,[],"ViewportBoundary"]
|
|
10
10
|
f:I[484,[],"MetadataBoundary"]
|
|
11
11
|
11:I[7123,[],"default",1]
|
|
12
|
-
:HL["/_next/static/css/
|
|
12
|
+
:HL["/_next/static/css/e57bdbbbb5a05779.css","style"]
|
|
13
13
|
2:T4b9,(() => {
|
|
14
14
|
var LIGHT = "#ffffff", DARK = "#09090b";
|
|
15
15
|
function resolve(t) {
|
|
@@ -39,7 +39,7 @@ f:I[484,[],"MetadataBoundary"]
|
|
|
39
39
|
} catch (e) {
|
|
40
40
|
document.documentElement.setAttribute("data-theme", "system");
|
|
41
41
|
}
|
|
42
|
-
})();0:{"P":null,"c":["","setup"],"q":"","i":false,"f":[[["",{"children":["setup",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/
|
|
42
|
+
})();0:{"P":null,"c":["","setup"],"q":"","i":false,"f":[[["",{"children":["setup",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/e57bdbbbb5a05779.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","data-theme":"system","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","script",null,{"dangerouslySetInnerHTML":{"__html":"$2"}}]}],["$","body",null,{"children":[["$","$L3",null,{"children":["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}],["$","$L7",null,{}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":["$L8",null,["$","$L9",null,{"children":["$","$a",null,{"name":"Next.MetadataOutlet","children":"$@b"}]}]]}],{},null,false,null]},null,false,"$@c"]},null,false,null],["$","$1","h",{"children":[null,["$","$Ld",null,{"children":"$Le"}],["$","div",null,{"hidden":true,"children":["$","$Lf",null,{"children":["$","$a",null,{"name":"Next.Metadata","children":"$L10"}]}]}],null]}],false]],"m":"$undefined","G":["$11",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"d_vhp-lJqfdjRFpnLVIqZ"}
|
|
43
43
|
8:E{"digest":"NEXT_REDIRECT;replace;/;307;"}
|
|
44
44
|
12:[]
|
|
45
45
|
c:"$W12"
|
|
@@ -9,7 +9,7 @@ a:"$Sreact.suspense"
|
|
|
9
9
|
d:I[484,[],"ViewportBoundary"]
|
|
10
10
|
f:I[484,[],"MetadataBoundary"]
|
|
11
11
|
11:I[7123,[],"default",1]
|
|
12
|
-
:HL["/_next/static/css/
|
|
12
|
+
:HL["/_next/static/css/e57bdbbbb5a05779.css","style"]
|
|
13
13
|
2:T4b9,(() => {
|
|
14
14
|
var LIGHT = "#ffffff", DARK = "#09090b";
|
|
15
15
|
function resolve(t) {
|
|
@@ -39,7 +39,7 @@ f:I[484,[],"MetadataBoundary"]
|
|
|
39
39
|
} catch (e) {
|
|
40
40
|
document.documentElement.setAttribute("data-theme", "system");
|
|
41
41
|
}
|
|
42
|
-
})();0:{"P":null,"c":["","setup"],"q":"","i":false,"f":[[["",{"children":["setup",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/
|
|
42
|
+
})();0:{"P":null,"c":["","setup"],"q":"","i":false,"f":[[["",{"children":["setup",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/e57bdbbbb5a05779.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","data-theme":"system","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","script",null,{"dangerouslySetInnerHTML":{"__html":"$2"}}]}],["$","body",null,{"children":[["$","$L3",null,{"children":["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}],["$","$L7",null,{}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":["$L8",null,["$","$L9",null,{"children":["$","$a",null,{"name":"Next.MetadataOutlet","children":"$@b"}]}]]}],{},null,false,null]},null,false,"$@c"]},null,false,null],["$","$1","h",{"children":[null,["$","$Ld",null,{"children":"$Le"}],["$","div",null,{"hidden":true,"children":["$","$Lf",null,{"children":["$","$a",null,{"name":"Next.Metadata","children":"$L10"}]}]}],null]}],false]],"m":"$undefined","G":["$11",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"d_vhp-lJqfdjRFpnLVIqZ"}
|
|
43
43
|
8:E{"digest":"NEXT_REDIRECT;replace;/;307;"}
|
|
44
44
|
12:[]
|
|
45
45
|
c:"$W12"
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
3:I[484,[],"MetadataBoundary"]
|
|
4
4
|
4:"$Sreact.suspense"
|
|
5
5
|
5:I[6869,[],"IconMark"]
|
|
6
|
-
0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1, viewport-fit=cover, interactive-widget=resizes-content"}],["$","meta","2",{"name":"theme-color","content":"#ffffff","media":"(prefers-color-scheme: light)"}],["$","meta","3",{"name":"theme-color","content":"#09090b","media":"(prefers-color-scheme: dark)"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Jarela"}],["$","meta","1",{"name":"description","content":"Jarela — local chat interface for LangGraph agents"}],["$","link","2",{"rel":"manifest","href":"/manifest.json"}],["$","meta","3",{"name":"mobile-web-app-capable","content":"yes"}],["$","meta","4",{"name":"apple-mobile-web-app-title","content":"Jarela"}],["$","meta","5",{"name":"apple-mobile-web-app-status-bar-style","content":"black-translucent"}],["$","link","6",{"rel":"icon","href":"/favicon.ico","sizes":"any"}],["$","link","7",{"rel":"icon","href":"/icon-192.png","type":"image/png","sizes":"192x192"}],["$","link","8",{"rel":"icon","href":"/icon-512.png","type":"image/png","sizes":"512x512"}],["$","link","9",{"rel":"apple-touch-icon","href":"/apple-touch-icon.png","sizes":"180x180"}],["$","$L5","10",{}]]}]}]}],null]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"
|
|
6
|
+
0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1, viewport-fit=cover, interactive-widget=resizes-content"}],["$","meta","2",{"name":"theme-color","content":"#ffffff","media":"(prefers-color-scheme: light)"}],["$","meta","3",{"name":"theme-color","content":"#09090b","media":"(prefers-color-scheme: dark)"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Jarela"}],["$","meta","1",{"name":"description","content":"Jarela — local chat interface for LangGraph agents"}],["$","link","2",{"rel":"manifest","href":"/manifest.json"}],["$","meta","3",{"name":"mobile-web-app-capable","content":"yes"}],["$","meta","4",{"name":"apple-mobile-web-app-title","content":"Jarela"}],["$","meta","5",{"name":"apple-mobile-web-app-status-bar-style","content":"black-translucent"}],["$","link","6",{"rel":"icon","href":"/favicon.ico","sizes":"any"}],["$","link","7",{"rel":"icon","href":"/icon-192.png","type":"image/png","sizes":"192x192"}],["$","link","8",{"rel":"icon","href":"/icon-512.png","type":"image/png","sizes":"512x512"}],["$","link","9",{"rel":"apple-touch-icon","href":"/apple-touch-icon.png","sizes":"180x180"}],["$","$L5","10",{}]]}]}]}],null]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"d_vhp-lJqfdjRFpnLVIqZ"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
5:I[7121,[],""]
|
|
5
5
|
6:I[4581,[],""]
|
|
6
6
|
7:I[722,["7177","static/chunks/app/layout-84c6f211a7a1ca36.js"],"ServiceWorkerRegistration"]
|
|
7
|
-
:HL["/_next/static/css/
|
|
7
|
+
:HL["/_next/static/css/e57bdbbbb5a05779.css","style"]
|
|
8
8
|
2:T4b9,(() => {
|
|
9
9
|
var LIGHT = "#ffffff", DARK = "#09090b";
|
|
10
10
|
function resolve(t) {
|
|
@@ -34,4 +34,4 @@
|
|
|
34
34
|
} catch (e) {
|
|
35
35
|
document.documentElement.setAttribute("data-theme", "system");
|
|
36
36
|
}
|
|
37
|
-
})();0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/
|
|
37
|
+
})();0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/e57bdbbbb5a05779.css","precedence":"next"}]],["$","html",null,{"lang":"en","data-theme":"system","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","script",null,{"dangerouslySetInnerHTML":{"__html":"$2"}}]}],["$","body",null,{"children":[["$","$L3",null,{"children":["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","template":["$","$L6",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}],["$","$L7",null,{}]]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"d_vhp-lJqfdjRFpnLVIqZ"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
:HL["/_next/static/css/
|
|
2
|
-
0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"setup","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}},"staleTime":300,"buildId":"
|
|
1
|
+
:HL["/_next/static/css/e57bdbbbb5a05779.css","style"]
|
|
2
|
+
0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"setup","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}},"staleTime":300,"buildId":"d_vhp-lJqfdjRFpnLVIqZ"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
2
|
3:I[484,[],"OutletBoundary"]
|
|
3
3
|
4:"$Sreact.suspense"
|
|
4
|
-
0:{"rsc":["$","$1","c",{"children":["$L2",null,["$","$L3",null,{"children":["$","$4",null,{"name":"Next.MetadataOutlet","children":"$@5"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"
|
|
4
|
+
0:{"rsc":["$","$1","c",{"children":["$L2",null,["$","$L3",null,{"children":["$","$4",null,{"name":"Next.MetadataOutlet","children":"$@5"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"d_vhp-lJqfdjRFpnLVIqZ"}
|
|
5
5
|
5:null
|
|
6
6
|
2:E{"digest":"NEXT_REDIRECT;replace;/;307;"}
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
2:I[7121,[],""]
|
|
3
3
|
3:I[4581,[],""]
|
|
4
4
|
4:[]
|
|
5
|
-
0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"
|
|
5
|
+
0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"d_vhp-lJqfdjRFpnLVIqZ"}
|
|
@@ -33,7 +33,6 @@
|
|
|
33
33
|
"/api/v1/harnesses/default/route": "app/api/v1/harnesses/default/route.js",
|
|
34
34
|
"/api/v1/harnesses/route": "app/api/v1/harnesses/route.js",
|
|
35
35
|
"/api/v1/health/probes/route": "app/api/v1/health/probes/route.js",
|
|
36
|
-
"/api/v1/health/route": "app/api/v1/health/route.js",
|
|
37
36
|
"/api/v1/integrations/[name]/route": "app/api/v1/integrations/[name]/route.js",
|
|
38
37
|
"/api/v1/integrations/[name]/test/route": "app/api/v1/integrations/[name]/test/route.js",
|
|
39
38
|
"/api/v1/integrations/gmail/oauth/callback/route": "app/api/v1/integrations/gmail/oauth/callback/route.js",
|
|
@@ -84,6 +83,7 @@
|
|
|
84
83
|
"/api/v1/bridges/[id]/status/route": "app/api/v1/bridges/[id]/status/route.js",
|
|
85
84
|
"/api/v1/bridges/[id]/route": "app/api/v1/bridges/[id]/route.js",
|
|
86
85
|
"/api/v1/events/route": "app/api/v1/events/route.js",
|
|
86
|
+
"/api/v1/health/route": "app/api/v1/health/route.js",
|
|
87
87
|
"/api/v1/logs/route": "app/api/v1/logs/route.js",
|
|
88
88
|
"/api/v1/maps/embed/route": "app/api/v1/maps/embed/route.js",
|
|
89
89
|
"/api/v1/page-capture/route": "app/api/v1/page-capture/route.js",
|
|
@@ -167,8 +167,8 @@ var global_state = __webpack_require__(38370);
|
|
|
167
167
|
var threads = __webpack_require__(48461);
|
|
168
168
|
// EXTERNAL MODULE: ./lib/stores/agent-configs.ts
|
|
169
169
|
var agent_configs = __webpack_require__(69299);
|
|
170
|
-
// EXTERNAL MODULE: ./lib/agents/run-thread.ts +
|
|
171
|
-
var run_thread = __webpack_require__(
|
|
170
|
+
// EXTERNAL MODULE: ./lib/agents/run-thread.ts + 25 modules
|
|
171
|
+
var run_thread = __webpack_require__(43969);
|
|
172
172
|
// EXTERNAL MODULE: ./lib/agents/run-queue.ts
|
|
173
173
|
var run_queue = __webpack_require__(22683);
|
|
174
174
|
;// ./lib/bridges/router.ts
|
|
@@ -304,6 +304,7 @@ function runMigrations(db) {
|
|
|
304
304
|
ensureScheduledTasksReactionKindColumns(db);
|
|
305
305
|
ensureMessageUsageTable(db);
|
|
306
306
|
ensureMessageUsageTierColumns(db);
|
|
307
|
+
ensureMessageUsageCacheColumns(db);
|
|
307
308
|
ensureThreadContextPinColumns(db);
|
|
308
309
|
ensureThreadChannelSummariesTable(db);
|
|
309
310
|
seedModelConfigs(db);
|
|
@@ -714,6 +715,19 @@ function ensureMessageUsageTierColumns(db) {
|
|
|
714
715
|
if (!names.has("facts_budget_tokens")) db.exec("ALTER TABLE message_usage ADD COLUMN facts_budget_tokens INTEGER");
|
|
715
716
|
if (!names.has("context_window_tokens")) db.exec("ALTER TABLE message_usage ADD COLUMN context_window_tokens INTEGER");
|
|
716
717
|
}
|
|
718
|
+
// PR #181 enabled Anthropic prompt caching, but the per-turn usage snapshot
|
|
719
|
+
// only captured `input_tokens` / `output_tokens`. Anthropic returns cache
|
|
720
|
+
// reads and writes as separate counts (priced at 0.1× and 1.25× the input
|
|
721
|
+
// rate respectively), so without these columns the dashboard underreports
|
|
722
|
+
// cost on cache-creating turns and *over*reports on cache-hitting turns.
|
|
723
|
+
// Both columns are nullable: legacy rows and non-Anthropic providers leave
|
|
724
|
+
// them NULL.
|
|
725
|
+
function ensureMessageUsageCacheColumns(db) {
|
|
726
|
+
const cols = db.prepare("PRAGMA table_info(message_usage)").all();
|
|
727
|
+
const names = new Set(cols.map((c)=>c.name));
|
|
728
|
+
if (!names.has("cache_creation_input_tokens")) db.exec("ALTER TABLE message_usage ADD COLUMN cache_creation_input_tokens INTEGER");
|
|
729
|
+
if (!names.has("cache_read_input_tokens")) db.exec("ALTER TABLE message_usage ADD COLUMN cache_read_input_tokens INTEGER");
|
|
730
|
+
}
|
|
717
731
|
function seedAgentConfigs(db) {
|
|
718
732
|
// Only seed on first run — once the user has any agents we must not
|
|
719
733
|
// resurrect ones they've deleted (e.g. the legacy "echo" / "llm" defaults).
|
|
@@ -3271,6 +3285,87 @@ function appendServerTools(anthropicTools, params) {
|
|
|
3271
3285
|
}
|
|
3272
3286
|
return merged;
|
|
3273
3287
|
}
|
|
3288
|
+
// Anthropic prompt-caching breakpoints. Within a multi-tool ReAct turn the
|
|
3289
|
+
// system prompt + tools are stable across every LLM call, and tool_results
|
|
3290
|
+
// only grow at the tail — exactly the prefix Anthropic's ephemeral cache is
|
|
3291
|
+
// built for. We mark three breakpoints (system, last tool, last tool_result)
|
|
3292
|
+
// so calls 2..N read the prefix at ~10% the input rate. The prefix below the
|
|
3293
|
+
// minimum cacheable size is silently ignored by the API at no extra cost,
|
|
3294
|
+
// so it is safe to mark unconditionally.
|
|
3295
|
+
const EPHEMERAL = {
|
|
3296
|
+
type: "ephemeral"
|
|
3297
|
+
};
|
|
3298
|
+
function withSystemCacheControl(text) {
|
|
3299
|
+
if (!text) return undefined;
|
|
3300
|
+
return [
|
|
3301
|
+
{
|
|
3302
|
+
type: "text",
|
|
3303
|
+
text,
|
|
3304
|
+
cache_control: EPHEMERAL
|
|
3305
|
+
}
|
|
3306
|
+
];
|
|
3307
|
+
}
|
|
3308
|
+
function withToolsCacheControl(tools) {
|
|
3309
|
+
if (tools.length === 0) return tools;
|
|
3310
|
+
const last = tools[tools.length - 1];
|
|
3311
|
+
return [
|
|
3312
|
+
...tools.slice(0, -1),
|
|
3313
|
+
{
|
|
3314
|
+
...last,
|
|
3315
|
+
cache_control: EPHEMERAL
|
|
3316
|
+
}
|
|
3317
|
+
];
|
|
3318
|
+
}
|
|
3319
|
+
function withLastToolResultCacheControl(messages) {
|
|
3320
|
+
for(let i = messages.length - 1; i >= 0; i--){
|
|
3321
|
+
const m = messages[i];
|
|
3322
|
+
if (typeof m.content === "string") continue;
|
|
3323
|
+
const blocks = m.content;
|
|
3324
|
+
for(let j = blocks.length - 1; j >= 0; j--){
|
|
3325
|
+
const b = blocks[j];
|
|
3326
|
+
if (b.type === "tool_result") {
|
|
3327
|
+
const newBlocks = [
|
|
3328
|
+
...blocks
|
|
3329
|
+
];
|
|
3330
|
+
newBlocks[j] = {
|
|
3331
|
+
...b,
|
|
3332
|
+
cache_control: EPHEMERAL
|
|
3333
|
+
};
|
|
3334
|
+
const next = [
|
|
3335
|
+
...messages
|
|
3336
|
+
];
|
|
3337
|
+
next[i] = {
|
|
3338
|
+
...m,
|
|
3339
|
+
content: newBlocks
|
|
3340
|
+
};
|
|
3341
|
+
return next;
|
|
3342
|
+
}
|
|
3343
|
+
}
|
|
3344
|
+
}
|
|
3345
|
+
return messages;
|
|
3346
|
+
}
|
|
3347
|
+
function usageEventFromStart(usage) {
|
|
3348
|
+
if (!usage) return null;
|
|
3349
|
+
return {
|
|
3350
|
+
type: "usage",
|
|
3351
|
+
input_tokens: usage.input_tokens ?? 0,
|
|
3352
|
+
output_tokens: usage.output_tokens ?? 0,
|
|
3353
|
+
cache_creation_input_tokens: usage.cache_creation_input_tokens ?? 0,
|
|
3354
|
+
cache_read_input_tokens: usage.cache_read_input_tokens ?? 0
|
|
3355
|
+
};
|
|
3356
|
+
}
|
|
3357
|
+
function usageEventFromDelta(usage) {
|
|
3358
|
+
if (!usage) return null;
|
|
3359
|
+
// message_delta only carries the *final* output_tokens; input/cache fields
|
|
3360
|
+
// are already accounted for from message_start. Emitting just the output
|
|
3361
|
+
// delta here keeps the agent loop's running total accurate without
|
|
3362
|
+
// double-counting cache reads.
|
|
3363
|
+
return {
|
|
3364
|
+
type: "usage",
|
|
3365
|
+
input_tokens: 0,
|
|
3366
|
+
output_tokens: usage.output_tokens ?? 0
|
|
3367
|
+
};
|
|
3368
|
+
}
|
|
3274
3369
|
const anthropicProvider = {
|
|
3275
3370
|
name: "anthropic",
|
|
3276
3371
|
async chat (model_id, messages, params) {
|
|
@@ -3288,7 +3383,7 @@ const anthropicProvider = {
|
|
|
3288
3383
|
const stream = await client.messages.stream({
|
|
3289
3384
|
model: model_id,
|
|
3290
3385
|
max_tokens: params.max_tokens ?? 4096,
|
|
3291
|
-
system: systemText
|
|
3386
|
+
system: withSystemCacheControl(systemText),
|
|
3292
3387
|
messages: userMessages
|
|
3293
3388
|
});
|
|
3294
3389
|
return {
|
|
@@ -3308,12 +3403,13 @@ const anthropicProvider = {
|
|
|
3308
3403
|
defaultHeaders: params.extra_headers
|
|
3309
3404
|
});
|
|
3310
3405
|
const systemMsg = messages.find((m)=>m.role === "system");
|
|
3311
|
-
const
|
|
3312
|
-
const
|
|
3406
|
+
const systemText = typeof systemMsg?.content === "string" ? systemMsg.content : "";
|
|
3407
|
+
const msgList = withLastToolResultCacheControl(toAnthropicMessages(messages.filter((m)=>m.role !== "system")));
|
|
3408
|
+
const anthropicTools = withToolsCacheControl(appendServerTools(toAnthropicTools(tools), params));
|
|
3313
3409
|
const resp = await client.messages.create({
|
|
3314
3410
|
model: model_id,
|
|
3315
3411
|
max_tokens: params.max_tokens ?? 4096,
|
|
3316
|
-
system:
|
|
3412
|
+
system: withSystemCacheControl(systemText),
|
|
3317
3413
|
messages: msgList,
|
|
3318
3414
|
tools: anthropicTools,
|
|
3319
3415
|
...params.thinking ? {
|
|
@@ -3341,15 +3437,17 @@ const anthropicProvider = {
|
|
|
3341
3437
|
defaultHeaders: params.extra_headers
|
|
3342
3438
|
});
|
|
3343
3439
|
const systemMsg = messages.find((m)=>m.role === "system");
|
|
3344
|
-
const
|
|
3345
|
-
const
|
|
3440
|
+
const systemText = typeof systemMsg?.content === "string" ? systemMsg.content : "";
|
|
3441
|
+
const msgList = withLastToolResultCacheControl(toAnthropicMessages(messages.filter((m)=>m.role !== "system")));
|
|
3442
|
+
const anthropicTools = withToolsCacheControl(appendServerTools(toAnthropicTools(tools), params));
|
|
3346
3443
|
const body = {
|
|
3347
3444
|
model: model_id,
|
|
3348
3445
|
max_tokens: params.max_tokens ?? 4096,
|
|
3349
3446
|
messages: msgList,
|
|
3350
3447
|
...pickAnthropicOptions(params)
|
|
3351
3448
|
};
|
|
3352
|
-
|
|
3449
|
+
const systemParam = withSystemCacheControl(systemText);
|
|
3450
|
+
if (systemParam) body.system = systemParam;
|
|
3353
3451
|
if (anthropicTools.length > 0) body.tools = anthropicTools;
|
|
3354
3452
|
if (params.thinking) {
|
|
3355
3453
|
body.thinking = params.thinking;
|
|
@@ -3358,6 +3456,12 @@ const anthropicProvider = {
|
|
|
3358
3456
|
const stream = client.messages.stream(body);
|
|
3359
3457
|
const blockType = new Map();
|
|
3360
3458
|
for await (const event of stream){
|
|
3459
|
+
if (event.type === "message_start") {
|
|
3460
|
+
const ev = event;
|
|
3461
|
+
const u = usageEventFromStart(ev.message?.usage);
|
|
3462
|
+
if (u) yield u;
|
|
3463
|
+
continue;
|
|
3464
|
+
}
|
|
3361
3465
|
if (event.type === "content_block_start") {
|
|
3362
3466
|
const cb = event.content_block;
|
|
3363
3467
|
if (cb.type === "tool_use") {
|
|
@@ -3392,12 +3496,17 @@ const anthropicProvider = {
|
|
|
3392
3496
|
args_delta: d.partial_json
|
|
3393
3497
|
};
|
|
3394
3498
|
}
|
|
3395
|
-
} else if (event.type === "message_delta"
|
|
3396
|
-
const
|
|
3397
|
-
|
|
3398
|
-
|
|
3399
|
-
|
|
3400
|
-
|
|
3499
|
+
} else if (event.type === "message_delta") {
|
|
3500
|
+
const delta = event;
|
|
3501
|
+
const u = usageEventFromDelta(delta.usage);
|
|
3502
|
+
if (u) yield u;
|
|
3503
|
+
if (event.delta?.stop_reason) {
|
|
3504
|
+
const reason = event.delta.stop_reason;
|
|
3505
|
+
yield {
|
|
3506
|
+
type: "stop",
|
|
3507
|
+
reason: reason === "tool_use" ? "tool_use" : reason === "max_tokens" ? "length" : "stop"
|
|
3508
|
+
};
|
|
3509
|
+
}
|
|
3401
3510
|
}
|
|
3402
3511
|
}
|
|
3403
3512
|
}();
|