@seqyuan/annovibe 0.8.127 → 0.8.129
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/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +12 -11
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +3 -3
- package/.next/required-server-files.js +1 -1
- package/.next/required-server-files.json +1 -1
- package/.next/routes-manifest.json +6 -0
- package/.next/server/app/_global-error/page.js +3 -3
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page.js +2 -2
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +1 -1
- package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/api/agent/[id]/events/route.js +2 -2
- package/.next/server/app/api/agent/[id]/prepare/route.js +1 -1
- package/.next/server/app/api/agent/[id]/route.js +1 -1
- package/.next/server/app/api/agent/new/route.js +2 -2
- package/.next/server/app/api/agent/running/events/route.js +1 -1
- package/.next/server/app/api/agent/running/route.js +1 -1
- package/.next/server/app/api/agent/runtime/route.js +1 -1
- package/.next/server/app/api/apps/[id]/[[...path]]/route.js +2 -2
- package/.next/server/app/api/apps/route.js +2 -2
- package/.next/server/app/api/auth/all-providers/route.js +1 -1
- package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -1
- package/.next/server/app/api/auth/login/[provider]/route.js +2 -2
- package/.next/server/app/api/auth/login/route.js +1 -1
- package/.next/server/app/api/auth/logout/[provider]/route.js +1 -1
- package/.next/server/app/api/auth/providers/route.js +1 -1
- package/.next/server/app/api/auth/status/route.js +1 -1
- package/.next/server/app/api/auth/totp/route.js +1 -1
- package/.next/server/app/api/debug-models/route.js +1 -1
- package/.next/server/app/api/default-cwd/route.js +1 -1
- package/.next/server/app/api/file-tree/delete/route.js +1 -1
- package/.next/server/app/api/file-tree/mkdir/route.js +1 -1
- package/.next/server/app/api/file-tree/rename/route.js +1 -1
- package/.next/server/app/api/file-tree/reveal/route.js +1 -1
- package/.next/server/app/api/file-tree/write/route.js +1 -1
- package/.next/server/app/api/file-watch/route.js +2 -2
- package/.next/server/app/api/files/[...path]/route.js +1 -1
- package/.next/server/app/api/harness/route.js +1 -1
- package/.next/server/app/api/home/route.js +1 -1
- package/.next/server/app/api/im/cancel/route.js +1 -1
- package/.next/server/app/api/im/gateway-status/route.js +1 -1
- package/.next/server/app/api/im/gateway-token/route.js +1 -1
- package/.next/server/app/api/im/project/route.js +1 -1
- package/.next/server/app/api/im/projects/route.js +1 -1
- package/.next/server/app/api/im/session-ids/route.js +1 -1
- package/.next/server/app/api/im/turn/route.js +2 -2
- package/.next/server/app/api/images/upload/route.js +1 -1
- package/.next/server/app/api/internal/runtime/route.js +1 -1
- package/.next/server/app/api/memory/dismiss/route.js +2 -2
- package/.next/server/app/api/memory/promote/route.js +2 -2
- package/.next/server/app/api/models/route.js +1 -1
- package/.next/server/app/api/models-config/discover/route.js +1 -1
- package/.next/server/app/api/models-config/route.js +1 -1
- package/.next/server/app/api/models-config/test/route.js +1 -1
- package/.next/server/app/api/plot-kernels/route.js +1 -1
- package/.next/server/app/api/plot-kernels/save/route.js +1 -1
- package/.next/server/app/api/plot-kernels/status/route.js +1 -1
- package/.next/server/app/api/plot-kernels/stop/route.js +1 -1
- package/.next/server/app/api/projects/browse/route.js +1 -1
- package/.next/server/app/api/projects/route.js +1 -1
- package/.next/server/app/api/search/route.js +1 -1
- package/.next/server/app/api/session-index/events/route.js +9 -0
- package/.next/server/app/api/session-index/events/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/[id]/context/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/kernel-state/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/shadowed/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/workbench-artifact/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/workbench-review/route.js +1 -1
- package/.next/server/app/api/sessions/new/route.js +1 -1
- package/.next/server/app/api/sessions/route.js +1 -1
- package/.next/server/app/api/settings/route.js +1 -1
- package/.next/server/app/api/skills/install/route.js +2 -2
- package/.next/server/app/api/skills/route.js +2 -2
- package/.next/server/app/api/skills/search/route.js +1 -1
- package/.next/server/app/api/smoke/prompt-admission/route.js +1 -1
- package/.next/server/app/api/soul/route.js +1 -1
- package/.next/server/app/api/subagents/status/route.js +1 -1
- package/.next/server/app/api/version/route.js +1 -1
- package/.next/server/app/favicon.ico/route.js +1 -1
- package/.next/server/app/icon.svg/route.js +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +2 -2
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/index.segments/_full.segment.rsc +2 -2
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +1 -1
- package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/login/page.js +2 -2
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/login.html +1 -1
- package/.next/server/app/login.rsc +1 -1
- package/.next/server/app/login.segments/_full.segment.rsc +1 -1
- package/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/.next/server/app/login.segments/_index.segment.rsc +1 -1
- package/.next/server/app/login.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/login.segments/login.segment.rsc +1 -1
- package/.next/server/app/page.js +8 -8
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/smoke/page.js +3 -3
- package/.next/server/app/smoke/page_client-reference-manifest.js +1 -1
- package/.next/server/app/smoke/session-stream/page.js +2 -2
- package/.next/server/app/smoke/session-stream/page_client-reference-manifest.js +1 -1
- package/.next/server/app/smoke/session-stream.html +1 -1
- package/.next/server/app/smoke/session-stream.rsc +2 -2
- package/.next/server/app/smoke/session-stream.segments/_full.segment.rsc +2 -2
- package/.next/server/app/smoke/session-stream.segments/_head.segment.rsc +1 -1
- package/.next/server/app/smoke/session-stream.segments/_index.segment.rsc +1 -1
- package/.next/server/app/smoke/session-stream.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/smoke/session-stream.segments/smoke/session-stream/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/smoke/session-stream.segments/smoke/session-stream.segment.rsc +1 -1
- package/.next/server/app/smoke/session-stream.segments/smoke.segment.rsc +1 -1
- package/.next/server/app/smoke.html +2 -2
- package/.next/server/app/smoke.rsc +2 -2
- package/.next/server/app/smoke.segments/_full.segment.rsc +2 -2
- package/.next/server/app/smoke.segments/_head.segment.rsc +1 -1
- package/.next/server/app/smoke.segments/_index.segment.rsc +1 -1
- package/.next/server/app/smoke.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/smoke.segments/smoke/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/smoke.segments/smoke.segment.rsc +1 -1
- package/.next/server/app-paths-manifest.json +12 -11
- package/.next/server/chunks/1761.js +1 -1
- package/.next/server/chunks/402.js +3 -0
- package/.next/server/chunks/4584.js +1 -1
- package/.next/server/chunks/6429.js +3 -3
- package/.next/server/chunks/7831.js +1 -0
- package/.next/server/chunks/9230.js +22 -0
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/next-font-manifest.js +1 -1
- package/.next/server/next-font-manifest.json +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/4FZ3Kf2g-93anWbAj4gqr/_buildManifest.js +1 -0
- package/.next/static/chunks/{4456-544da31731420516.js → 4456-3e2863e213864ce5.js} +2 -2
- package/.next/static/chunks/9544-fc173153bf9a575d.js +22 -0
- package/.next/static/chunks/app/_global-error/{page-ae244df3c722bdb8.js → page-12f2c8373df5bb6a.js} +1 -1
- package/.next/static/chunks/app/api/agent/[id]/events/{route-ae244df3c722bdb8.js → route-12f2c8373df5bb6a.js} +1 -1
- package/.next/static/chunks/app/api/agent/[id]/prepare/{route-ae244df3c722bdb8.js → route-12f2c8373df5bb6a.js} +1 -1
- package/.next/static/chunks/app/api/agent/[id]/{route-ae244df3c722bdb8.js → route-12f2c8373df5bb6a.js} +1 -1
- package/.next/static/chunks/app/api/agent/new/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/agent/running/events/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/agent/running/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/agent/runtime/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/apps/[id]/[[...path]]/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/apps/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/auth/all-providers/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/auth/api-key/[provider]/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/auth/login/[provider]/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/auth/login/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/auth/logout/[provider]/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/auth/providers/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/auth/status/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/auth/totp/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/debug-models/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/default-cwd/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/file-tree/delete/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/file-tree/mkdir/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/file-tree/rename/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/file-tree/reveal/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/file-tree/write/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/file-watch/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/files/[...path]/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/harness/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/home/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/im/cancel/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/im/gateway-status/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/im/gateway-token/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/im/project/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/im/projects/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/im/session-ids/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/im/turn/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/images/upload/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/internal/runtime/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/memory/dismiss/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/memory/promote/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/models/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/models-config/discover/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/models-config/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/models-config/test/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/plot-kernels/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/plot-kernels/save/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/plot-kernels/status/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/plot-kernels/stop/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/projects/browse/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/projects/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/search/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/session-index/events/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/context/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/kernel-state/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/shadowed/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/workbench-artifact/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/workbench-review/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/sessions/new/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/sessions/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/settings/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/skills/install/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/skills/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/skills/search/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/smoke/prompt-admission/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/soul/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/subagents/status/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/api/version/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/favicon.ico/route-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/app/{page-47768d973404df4a.js → page-587c43474c9791be.js} +19 -19
- package/.next/static/chunks/app/smoke/session-stream/page-49b8cf27895b9187.js +6 -0
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-12f2c8373df5bb6a.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-12f2c8373df5bb6a.js +1 -0
- package/package.json +1 -1
- package/.next/server/chunks/5582.js +0 -3
- package/.next/server/chunks/6021.js +0 -22
- package/.next/static/chunks/247-e7ca091442e14538.js +0 -22
- package/.next/static/chunks/app/api/agent/new/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/agent/running/events/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/agent/running/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/agent/runtime/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/apps/[id]/[[...path]]/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/apps/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/auth/all-providers/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/auth/api-key/[provider]/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/auth/login/[provider]/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/auth/login/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/auth/logout/[provider]/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/auth/providers/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/auth/status/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/auth/totp/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/debug-models/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/default-cwd/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/file-tree/delete/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/file-tree/mkdir/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/file-tree/rename/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/file-tree/reveal/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/file-tree/write/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/file-watch/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/files/[...path]/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/harness/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/home/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/im/cancel/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/im/gateway-status/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/im/gateway-token/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/im/project/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/im/projects/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/im/session-ids/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/im/turn/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/images/upload/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/internal/runtime/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/memory/dismiss/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/memory/promote/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/models/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/models-config/discover/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/models-config/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/models-config/test/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/plot-kernels/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/plot-kernels/save/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/plot-kernels/status/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/plot-kernels/stop/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/projects/browse/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/projects/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/search/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/context/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/kernel-state/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/shadowed/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/workbench-artifact/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/workbench-review/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/sessions/new/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/sessions/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/settings/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/skills/install/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/skills/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/skills/search/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/smoke/prompt-admission/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/soul/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/subagents/status/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/api/version/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/favicon.ico/route-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/app/smoke/session-stream/page-a23f9377f8e17097.js +0 -6
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-ae244df3c722bdb8.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-ae244df3c722bdb8.js +0 -1
- package/.next/static/jahqJW2HnEM4LGyEqWETC/_buildManifest.js +0 -1
- /package/.next/static/{jahqJW2HnEM4LGyEqWETC → 4FZ3Kf2g-93anWbAj4gqr}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=1761,exports.ids=[1761],exports.modules={11460:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{H5:()=>x,Oz:()=>z,RD:()=>u,hF:()=>t,m3:()=>y,oB:()=>v,oE:()=>w});var e=c(29021),f=c(33873),g=c(40402),h=a([g]);g=(h.then?(await h)():h)[0];let A=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});function i(){return(0,f.join)((0,g.$M)(),"annovibe-projects.json")}function j(a){return a.trim().replace(/[\\/]+$/,"")||a.trim()}function k(a){let b=j(a);return(0,f.basename)(b)||b||"No Project"}function l(){let a=i();try{let b=JSON.parse((0,e.readFileSync)(a,"utf8")),c={},d=b.projects&&"object"==typeof b.projects?b.projects:{};for(let[a,b]of Object.entries(d)){if(!b||"object"!=typeof b)continue;let d=j("string"==typeof b.cwd?b.cwd:a);d&&(c[d]={cwd:d,..."string"==typeof b.name?{name:b.name}:{},..."boolean"==typeof b.hidden?{hidden:b.hidden}:{},..."boolean"==typeof b.pinned?{pinned:b.pinned}:{},..."number"==typeof b.sortOrder&&Number.isFinite(b.sortOrder)?{sortOrder:b.sortOrder}:{},..."string"==typeof b.addedAt?{addedAt:b.addedAt}:{},..."string"==typeof b.lastAccessed?{lastAccessed:b.lastAccessed}:{}})}return{version:2,manualOrder:!0===b.manualOrder,projects:c}}catch{return{version:2,manualOrder:!1,projects:{}}}}function m(a){let b=i();(0,e.mkdirSync)((0,f.dirname)(b),{recursive:!0}),(0,e.writeFileSync)(b,JSON.stringify(a,null,2),"utf8")}function n(a){try{return(0,e.statSync)(a).isDirectory()}catch{return!1}}function o(a,b){let c=A.compare(a.displayName,b.displayName);return 0!==c?c:a.cwd.localeCompare(b.cwd)}function p(a,b,c){let d=!0===a.pinned,e=!0===b.pinned;if(d!==e)return d?-1:1;if(c){let c="number"==typeof a.sortOrder&&Number.isFinite(a.sortOrder)?a.sortOrder:null,d="number"==typeof b.sortOrder&&Number.isFinite(b.sortOrder)?b.sortOrder:null;if(null!==c&&null!==d&&c!==d)return c-d;if(null!==c)return -1;if(null!==d)return 1}return o({displayName:a.name?.trim()||k(a.cwd),cwd:a.cwd},{displayName:b.name?.trim()||k(b.cwd),cwd:b.cwd})}function q(a){let b=-1;for(let c of Object.values(a.projects))"number"==typeof c.sortOrder&&Number.isFinite(c.sortOrder)&&(b=Math.max(b,c.sortOrder));return b+1}function r(a,b){let c=j(b),d=new Date().toISOString(),e=a.projects[c],f={cwd:c,addedAt:e?.addedAt??d,lastAccessed:e?.lastAccessed??d,...e?.name?{name:e.name}:{},..."boolean"==typeof e?.hidden?{hidden:e.hidden}:{},..."boolean"==typeof e?.pinned?{pinned:e.pinned}:{},..."number"==typeof e?.sortOrder&&Number.isFinite(e.sortOrder)?{sortOrder:e.sortOrder}:{}};return a.projects[c]=f,f}function s(a,b){a.manualOrder=!0;let c=new Set,d=0;for(let e of b){let b=j(e);if(!b||c.has(b))continue;let f=r(a,b);f.hidden=!1,f.sortOrder=d++,c.add(b)}for(let b of Object.values(a.projects).filter(a=>!a.hidden&&!c.has(a.cwd)).sort((a,b)=>p(a,b,!0)))b.sortOrder=d++}async function t(a={}){let b=!1!==a.includeSessions,[c,d]=await Promise.all([b?(0,g.dQ)():Promise.resolve([]),Promise.resolve(l())]),f=function(a){let b=new Map;for(let c of a){let a=j(c.cwd||"");if(!a)continue;let d=b.get(a)??{count:0,last:null,created:null};d.count+=1,(!d.last||c.modified>d.last)&&(d.last=c.modified),(!d.created||c.created<d.created)&&(d.created=c.created),b.set(a,d)}return b}(c),h=new Set([...f.keys(),...Object.keys(d.projects)]),i=[];for(let b of h){let c=d.projects[b];if(c?.hidden&&!a.includeHidden)continue;let g=f.get(b),h=g&&c?"both":g?"session":"manual",j=c?.lastAccessed&&(!g?.last||c.lastAccessed>g.last)?c.lastAccessed:g?.last??c?.lastAccessed??null;i.push({cwd:b,name:c?.name,displayName:c?.name?.trim()||k(b),chatCount:g?.count??0,lastAccessed:j,created:g?.created??c?.addedAt??null,hidden:c?.hidden,pinned:c?.pinned??!1,sortOrder:"number"==typeof c?.sortOrder&&Number.isFinite(c.sortOrder)?c.sortOrder:null,exists:!!(0,e.existsSync)(b)&&n(b),source:h})}return i.sort((a,b)=>{let c=!0===a.pinned,e=!0===b.pinned;if(c!==e)return c?-1:1;if(d.manualOrder){let c="number"==typeof a.sortOrder&&Number.isFinite(a.sortOrder)?a.sortOrder:null,d="number"==typeof b.sortOrder&&Number.isFinite(b.sortOrder)?b.sortOrder:null;if(null!==c&&null!==d&&c!==d)return c-d;if(null!==c)return -1;if(null!==d)return 1}return o(a,b)}),i}function u(a,b={}){let c=j(a);if(!c)throw Error("cwd is required");let d=l(),e=new Date().toISOString(),f=d.projects[c],g={cwd:c,addedAt:f?.addedAt??e,lastAccessed:e,...f?.name?{name:f.name}:{},...f?.pinned===!0?{pinned:!0}:{},..."number"==typeof f?.sortOrder&&Number.isFinite(f.sortOrder)?{sortOrder:f.sortOrder}:{},hidden:b.hidden??!1};if(d.manualOrder&&void 0===g.sortOrder&&!g.hidden&&(g.sortOrder=q(d)),void 0!==b.name){let a=b.name?.trim()??"";a&&(g.name=a)}return d.projects[c]=g,m(d),{cwd:c,name:g.name,displayName:g.name?.trim()||k(c),chatCount:0,lastAccessed:g.lastAccessed??null,created:g.addedAt??null,hidden:g.hidden,pinned:g.pinned??!1,sortOrder:"number"==typeof g.sortOrder&&Number.isFinite(g.sortOrder)?g.sortOrder:null,exists:n(c),source:"manual"}}function v(a,b){let c=j(a),d=b.trim();if(!c)throw Error("cwd is required");let e=l(),f=e.projects[c];e.projects[c]={cwd:c,addedAt:f?.addedAt??new Date().toISOString(),lastAccessed:new Date().toISOString(),...d?{name:d}:{},...f?.pinned===!0?{pinned:!0}:{},..."number"==typeof f?.sortOrder&&Number.isFinite(f.sortOrder)?{sortOrder:f.sortOrder}:{},hidden:f?.hidden??!1},m(e)}function w(a){let b=j(a);if(!b)throw Error("cwd is required");let c=l();delete c.projects[b],m(c)}function x(a){let b=j(a);if(!b)return;let c=l(),d=c.projects[b],e={cwd:b,addedAt:d?.addedAt??new Date().toISOString(),lastAccessed:new Date().toISOString(),...d?.name?{name:d.name}:{},...d?.pinned===!0?{pinned:!0}:{},..."number"==typeof d?.sortOrder&&Number.isFinite(d.sortOrder)?{sortOrder:d.sortOrder}:{},hidden:!1};c.manualOrder&&void 0===e.sortOrder&&(e.sortOrder=q(c)),c.projects[b]=e,m(c)}function y(a,b){let c=j(a);if(!c)throw Error("cwd is required");let d=l(),e=r(d,c);if(e.hidden=!1,e.lastAccessed=new Date().toISOString(),e.pinned=b,d.manualOrder){let a=Object.values(d.projects).filter(a=>!a.hidden).sort((a,b)=>p(a,b,!0)).map(a=>a.cwd).filter(a=>a!==c);if(b){let b=a.findIndex(a=>d.projects[a]?.pinned!==!0),e=-1===b?a.length:b;a.splice(e,0,c)}else{let b=a.findIndex(a=>d.projects[a]?.pinned!==!0),e=-1===b?a.length:b;a.splice(e,0,c)}s(d,a)}m(d)}function z(a){let b=l();s(b,a),m(b)}d()}catch(a){d(a)}})},31761:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{$7:()=>r,$N:()=>q,Cv:()=>y,Dg:()=>w,Mj:()=>u,PB:()=>v,Rz:()=>A,SR:()=>x,_Q:()=>B,ht:()=>t,oc:()=>C,oz:()=>s,rX:()=>D,wY:()=>p,y5:()=>E});var e=c(29021),f=c(33873),g=c(55511),h=c(11460),i=c(61367),j=a([h,i]);function k(a){if(!(0,e.existsSync)(a))return null;try{return JSON.parse((0,e.readFileSync)(a,"utf8"))}catch{return null}}function l(a,b){(0,e.mkdirSync)((0,f.dirname)(a),{recursive:!0,mode:448}),(0,e.writeFileSync)(a,JSON.stringify(b,null,2),"utf8")}function m(){let a="0123456789",b="";for(let c=0;c<6;c++)b+=a[Math.floor(Math.random()*a.length)];return b}function n(a,b){return null===a?null:"string"!=typeof a?b:a.trim()||null}function o(a){let b=(0,i.Xi)(a);if(!(0,e.existsSync)(b))return{config:null,secret:null};let c=k(b);if(!c)return{config:null,secret:null};let d="string"==typeof c.botSecret?c.botSecret.trim():null,f={enabled:!0===c.enabled,channel:(c.channel,"wecom"),botId:"string"==typeof c.botId?c.botId.trim():"",requireMentionInGroup:!0===c.requireMentionInGroup,allowedUsers:Array.isArray(c.allowedUsers)?c.allowedUsers.filter(a=>"string"==typeof a&&a.trim().length>0):[],pairingCode:"string"==typeof c.pairingCode&&c.pairingCode.trim()?c.pairingCode.trim():m(),boundChatId:n(c.boundChatId,null),modelProvider:n(c.modelProvider,null),modelId:n(c.modelId,null),updatedAt:"string"==typeof c.updatedAt?c.updatedAt:new Date().toISOString()};try{l((0,i.ve)(a),f),d&&l((0,i.FK)(a),{botSecret:d}),(0,e.unlinkSync)(b);let c=(0,i.bj)(a);if((0,e.existsSync)(c)){let b=k(c);b?.sessionId&&l((0,i.iK)(a),b),(0,e.unlinkSync)(c)}}catch{}return{config:f,secret:d}}function p(a){let b=a.trim();if(!b)return null;let c=(0,i.ve)(b);if((0,e.existsSync)(c)){let a=k(c);if(a)return{enabled:!0===a.enabled,channel:(a.channel,"wecom"),botId:"string"==typeof a.botId?a.botId.trim():"",requireMentionInGroup:!0===a.requireMentionInGroup,allowedUsers:Array.isArray(a.allowedUsers)?a.allowedUsers.filter(a=>"string"==typeof a&&a.trim().length>0):[],pairingCode:"string"==typeof a.pairingCode&&a.pairingCode.trim()?a.pairingCode.trim():m(),boundChatId:n(a.boundChatId,null),modelProvider:n(a.modelProvider,null),modelId:n(a.modelId,null),updatedAt:a.updatedAt??new Date().toISOString()}}return o(b).config}function q(a){let b=a.trim();if(!b)return null;let c=(0,i.FK)(b),d=k(c);if(d?.botSecret?.trim())return d;let e=o(b);return e.secret?{botSecret:e.secret}:null}function r(a,b){let c=a.trim(),d=p(c)??{enabled:!1,channel:"wecom",botId:"",requireMentionInGroup:!0,allowedUsers:[],pairingCode:m()},f={enabled:"boolean"==typeof b.enabled?b.enabled:d.enabled,channel:"wecom"===b.channel?"wecom":d.channel,botId:"string"==typeof b.botId?b.botId.trim():d.botId,requireMentionInGroup:"boolean"==typeof b.requireMentionInGroup?b.requireMentionInGroup:d.requireMentionInGroup,allowedUsers:Array.isArray(b.allowedUsers)?b.allowedUsers.filter(a=>"string"==typeof a&&a.trim().length>0):d.allowedUsers,pairingCode:"string"==typeof b.pairingCode&&b.pairingCode.trim()?b.pairingCode.trim().toUpperCase():d.pairingCode,boundChatId:null===b.boundChatId||"string"==typeof b.boundChatId?null===b.boundChatId?null:b.boundChatId.trim()||null:d.boundChatId,modelProvider:n(b.modelProvider,d.modelProvider),modelId:n(b.modelId,d.modelId),updatedAt:new Date().toISOString()};l((0,i.ve)(c),f);let g=(0,i.Xi)(c);if((0,e.existsSync)(g)){try{(0,e.unlinkSync)(g)}catch{}let a=(0,i.bj)(c);try{(0,e.existsSync)(a)&&(0,e.unlinkSync)(a)}catch{}}return f}function s(a,b){let c={botSecret:b.trim()};l((0,i.FK)(a.trim()),c);let d=(0,i.Xi)(a.trim());if((0,e.existsSync)(d))try{(0,e.unlinkSync)(d)}catch{}return c}function t(a){let b=a.trim();for(let a of[(0,i.ve)(b),(0,i.FK)(b),(0,i.iK)(b),(0,i.Xi)(b),(0,i.bj)(b)])try{(0,e.existsSync)(a)&&(0,e.unlinkSync)(a)}catch{}}function u(a){return k((0,i.iK)(a.trim()))}function v(a,b){let c={sessionId:b,updatedAt:new Date().toISOString()};return l((0,i.iK)(a.trim()),c),c}function w(a){let b=(0,i.iK)(a.trim());return!!(0,e.existsSync)(b)&&((0,e.unlinkSync)(b),!0)}function x(){return k((0,i.vr)())}function y(){var a;let b=x()??{};if(b.token?.trim())return b.token.trim();let c=(0,g.randomBytes)(24).toString("hex");return a={...b,token:c},l((0,i.vr)(),a),c}function z(a,b){let c=q(a),d=u(a);return{...b,cwd:a,projectKey:(0,i.F3)(a),hasSecret:!!c?.botSecret?.trim(),sessionId:d?.sessionId??null}}async function A(){let a=[],b=new Set;for(let c of(await (0,h.hF)({includeHidden:!0}))){let d=c.cwd.trim().replace(/[\\/]+$/,"");if(!d||b.has(d))continue;b.add(d);let e=p(d);e?.enabled&&a.push(z(d,e))}let{getAgentDir:d}=await Promise.resolve().then(c.bind(c,75430)),g=(0,f.join)(d(),"im");try{for(let c of(0,e.readdirSync)(g)){if(!c.endsWith(".json")||c.endsWith("-session.json")||"gateway.json"===c)continue;let d=(0,f.join)(g,c);try{let c=JSON.parse((0,e.readFileSync)(d,"utf-8"));if(!0!==c.enabled)continue;let f=("string"==typeof c.cwd?c.cwd.trim():"")||"";if(!f||b.has(f))continue;b.add(f);let g=p(f);g?.enabled&&a.push(z(f,g))}catch{}}}catch{}return a}function B(){let a=function(){let a=(()=>{try{return c(Object(function(){var a=Error("Cannot find module '@earendil-works/pi-coding-agent'");throw a.code="MODULE_NOT_FOUND",a}())).getAgentDir()}catch{let a=c(21820);return(0,f.join)(a.homedir(),".pi","agent")}})(),b=new Set,d=(0,f.join)(a,"annovibe-projects.json");if((0,e.existsSync)(d))try{let a=JSON.parse((0,e.readFileSync)(d,"utf-8"));for(let[c,d]of Object.entries(a.projects??{})){let a=("string"==typeof d?.cwd?d.cwd:c).trim().replace(/[\\/]+$/,"");a&&b.add(a)}}catch{}let g=(0,f.join)(a,"im");if((0,e.existsSync)(g))try{for(let a of(0,e.readdirSync)(g))if(!(!a.endsWith(".json")||a.endsWith("-session.json"))&&"gateway.json"!==a)try{let c=JSON.parse((0,e.readFileSync)((0,f.join)(g,a),"utf-8"));"string"==typeof c.cwd&&c.cwd.trim()&&b.add(c.cwd.trim().replace(/[\\/]+$/,""))}catch{}}catch{}return[...b]}(),b=[];for(let c of a){let a=p(c);if(!a?.enabled||!a.botId)continue;let d=function(a,b){let c=q(a)?.botSecret?.trim()??"";if(!c)return null;let d=u(a);return{...b,cwd:a,projectKey:(0,i.F3)(a),hasSecret:!0,sessionId:d?.sessionId??null,botSecret:c}}(c,a);d&&b.push(d)}return b}function C(a,b){let c=b.trim();return!!c&&0!==a.allowedUsers.length&&a.allowedUsers.some(a=>a.trim()===c)}function D(a,b,c,d){let e=d.trim().toUpperCase(),f=a.pairingCode.trim().toUpperCase();return e===f||e===`PAIR ${f}`?C(a,c)?{config:a,paired:!0,reply:"已授权。你现在可以与此 bot 交互了。"}:{config:r(b,{allowedUsers:[...a.allowedUsers,c.trim()]}),paired:!0,reply:"已授权。你现在可以与此 bot 交互了。"}:{config:a,paired:!1}}function E(a,b){return a.pairingCode?`${b} 的 bot 需要授权。 发送配对码 ${a.pairingCode} 即可。`:`${b} 的 bot 尚未配置。`}[h,i]=j.then?(await j)():j,d()}catch(a){d(a)}})},61367:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{F3:()=>i,FK:()=>k,Xi:()=>n,bj:()=>o,iK:()=>l,ve:()=>j,vr:()=>m});var e=c(55511),f=c(33873),g=c(75430),h=a([g]);function i(a){return(0,e.createHash)("sha1").update(a).digest("hex")}function j(a){return(0,f.join)(a,".annovibe","im.json")}function k(a){return(0,f.join)((0,g.getAgentDir)(),"im-secrets",`${i(a)}.json`)}function l(a){return(0,f.join)((0,g.getAgentDir)(),"im-sessions",`${i(a)}.json`)}function m(){return(0,f.join)((0,g.getAgentDir)(),"im","gateway.json")}function n(a){let b=(0,e.createHash)("sha256").update(a).digest("hex").slice(0,16);return(0,f.join)((0,g.getAgentDir)(),"im",`${b}.json`)}function o(a){let b=(0,e.createHash)("sha256").update(a).digest("hex").slice(0,16);return(0,f.join)((0,g.getAgentDir)(),"im",`${b}-session.json`)}g=(h.then?(await h)():h)[0],d()}catch(a){d(a)}})}};
|
|
1
|
+
"use strict";exports.id=1761,exports.ids=[1761],exports.modules={11460:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{H5:()=>A,Oz:()=>C,RD:()=>x,hF:()=>w,m3:()=>B,oB:()=>y,oE:()=>z});var e=c(29021),f=c(33873),g=c(55511),h=c(40402),i=c(16185),j=c(10237),k=c(91179),l=a([h,i,j,k]);[h,i,j,k]=l.then?(await l)():l;let D=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});function m(a){return(0,i.Pt)(a)}function n(a){let b=m(a);return(0,f.basename)(b)||b||"No Project"}function o(){let a=(0,j.IJ)();if(!a.ok){if(a.missing)return{registry:(0,j.Vu)(),missing:!0};throw Error(a.error)}return{registry:a.registry,missing:!1}}function p(a){let b,c,{registry:d}=o(),h=(0,j.xE)(d),i=(0,j.xE)(a);b=(0,j.ke)(),(0,e.mkdirSync)((0,f.dirname)(b),{recursive:!0}),c=`${b}.${(0,g.randomUUID)().slice(0,8)}.tmp`,(0,e.writeFileSync)(c,JSON.stringify(a,null,2),"utf8"),(0,e.renameSync)(c,b);let l=h!==i;return l&&(0,k.E8)(),{changed:l}}function q(a){try{return(0,e.statSync)(a).isDirectory()}catch{return!1}}function r(a,b){let c=D.compare(a.displayName,b.displayName);return 0!==c?c:a.cwd.localeCompare(b.cwd)}function s(a,b,c){let d=!0===a.pinned,e=!0===b.pinned;if(d!==e)return d?-1:1;if(c){let c="number"==typeof a.sortOrder&&Number.isFinite(a.sortOrder)?a.sortOrder:null,d="number"==typeof b.sortOrder&&Number.isFinite(b.sortOrder)?b.sortOrder:null;if(null!==c&&null!==d&&c!==d)return c-d;if(null!==c)return -1;if(null!==d)return 1}return r({displayName:a.name?.trim()||n(a.cwd),cwd:a.cwd},{displayName:b.name?.trim()||n(b.cwd),cwd:b.cwd})}function t(a){let b=-1;for(let c of Object.values(a.projects))"number"==typeof c.sortOrder&&Number.isFinite(c.sortOrder)&&(b=Math.max(b,c.sortOrder));return b+1}function u(a,b){let c=m(b),d=new Date().toISOString(),e=a.projects[c],f={cwd:c,addedAt:e?.addedAt??d,lastAccessed:e?.lastAccessed??d,...e?.name?{name:e.name}:{},..."boolean"==typeof e?.hidden?{hidden:e.hidden}:{},..."boolean"==typeof e?.pinned?{pinned:e.pinned}:{},..."number"==typeof e?.sortOrder&&Number.isFinite(e.sortOrder)?{sortOrder:e.sortOrder}:{}};return a.projects[c]=f,f}function v(a,b){a.manualOrder=!0;let c=new Set,d=0;for(let e of b){let b=m(e);if(!b||c.has(b))continue;let f=u(a,b);f.hidden=!1,f.sortOrder=d++,c.add(b)}for(let b of Object.values(a.projects).filter(a=>!a.hidden&&!c.has(a.cwd)).sort((a,b)=>s(a,b,!0)))b.sortOrder=d++}async function w(a={}){let b=!1!==a.includeSessions,{registry:c}=o(),d=b?await (0,h.dQ)({force:!0===a.force}):[],f=function(a){let b=new Map;for(let c of a){let a=m(c.cwd||"");if(!a)continue;let d=b.get(a)??{count:0,last:null,created:null};d.count+=1,(!d.last||c.modified>d.last)&&(d.last=c.modified),(!d.created||c.created<d.created)&&(d.created=c.created),b.set(a,d)}return b}(d),g=new Set([...f.keys(),...Object.keys(c.projects)]),i=[];for(let b of g){let d=c.projects[b];if(d?.hidden&&!a.includeHidden)continue;let g=f.get(b),h=g&&d?"both":g?"session":"manual",j=d?.lastAccessed&&(!g?.last||d.lastAccessed>g.last)?d.lastAccessed:g?.last??d?.lastAccessed??null;i.push({cwd:b,name:d?.name,displayName:d?.name?.trim()||n(b),chatCount:g?.count??0,lastAccessed:j,created:g?.created??d?.addedAt??null,hidden:d?.hidden,pinned:d?.pinned??!1,sortOrder:"number"==typeof d?.sortOrder&&Number.isFinite(d.sortOrder)?d.sortOrder:null,exists:!!(0,e.existsSync)(b)&&q(b),source:h})}return i.sort((a,b)=>{let d=!0===a.pinned,e=!0===b.pinned;if(d!==e)return d?-1:1;if(c.manualOrder){let c="number"==typeof a.sortOrder&&Number.isFinite(a.sortOrder)?a.sortOrder:null,d="number"==typeof b.sortOrder&&Number.isFinite(b.sortOrder)?b.sortOrder:null;if(null!==c&&null!==d&&c!==d)return c-d;if(null!==c)return -1;if(null!==d)return 1}return r(a,b)}),i}function x(a,b={}){let c=m(a);if(!c)throw Error("cwd is required");let{registry:d}=o(),e=new Date().toISOString(),f=d.projects[c],g={cwd:c,addedAt:f?.addedAt??e,lastAccessed:e,...f?.name?{name:f.name}:{},...f?.pinned===!0?{pinned:!0}:{},..."number"==typeof f?.sortOrder&&Number.isFinite(f.sortOrder)?{sortOrder:f.sortOrder}:{},hidden:b.hidden??!1};if(d.manualOrder&&void 0===g.sortOrder&&!g.hidden&&(g.sortOrder=t(d)),void 0!==b.name){let a=b.name?.trim()??"";a&&(g.name=a)}return d.projects[c]=g,p(d),{cwd:c,name:g.name,displayName:g.name?.trim()||n(c),chatCount:0,lastAccessed:g.lastAccessed??null,created:g.addedAt??null,hidden:g.hidden,pinned:g.pinned??!1,sortOrder:"number"==typeof g.sortOrder&&Number.isFinite(g.sortOrder)?g.sortOrder:null,exists:q(c),source:"manual"}}function y(a,b){let c=m(a),d=b.trim();if(!c)throw Error("cwd is required");let{registry:e}=o(),f=e.projects[c];e.projects[c]={cwd:c,addedAt:f?.addedAt??new Date().toISOString(),lastAccessed:new Date().toISOString(),...d?{name:d}:{},...f?.pinned===!0?{pinned:!0}:{},..."number"==typeof f?.sortOrder&&Number.isFinite(f.sortOrder)?{sortOrder:f.sortOrder}:{},hidden:f?.hidden??!1},p(e)}function z(a){let b=m(a);if(!b)throw Error("cwd is required");let{registry:c}=o();delete c.projects[b],p(c)}function A(a){let b=m(a);if(!b)return;let{registry:c}=o(),d=c.projects[b],e={cwd:b,addedAt:d?.addedAt??new Date().toISOString(),lastAccessed:new Date().toISOString(),...d?.name?{name:d.name}:{},...d?.pinned===!0?{pinned:!0}:{},..."number"==typeof d?.sortOrder&&Number.isFinite(d.sortOrder)?{sortOrder:d.sortOrder}:{},hidden:!1};c.manualOrder&&void 0===e.sortOrder&&(e.sortOrder=t(c)),c.projects[b]=e,p(c)}function B(a,b){let c=m(a);if(!c)throw Error("cwd is required");let{registry:d}=o(),e=u(d,c);if(e.hidden=!1,e.lastAccessed=new Date().toISOString(),e.pinned=b,d.manualOrder){let a=Object.values(d.projects).filter(a=>!a.hidden).sort((a,b)=>s(a,b,!0)).map(a=>a.cwd).filter(a=>a!==c),b=a.findIndex(a=>d.projects[a]?.pinned!==!0),e=-1===b?a.length:b;a.splice(e,0,c),v(d,a)}p(d)}function C(a){let{registry:b}=o();v(b,a),p(b)}d()}catch(a){d(a)}})},31761:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{$7:()=>r,$N:()=>q,Cv:()=>y,Dg:()=>w,Mj:()=>u,PB:()=>v,Rz:()=>A,SR:()=>x,_Q:()=>B,ht:()=>t,oc:()=>C,oz:()=>s,rX:()=>D,wY:()=>p,y5:()=>E});var e=c(29021),f=c(33873),g=c(55511),h=c(11460),i=c(61367),j=a([h,i]);function k(a){if(!(0,e.existsSync)(a))return null;try{return JSON.parse((0,e.readFileSync)(a,"utf8"))}catch{return null}}function l(a,b){(0,e.mkdirSync)((0,f.dirname)(a),{recursive:!0,mode:448}),(0,e.writeFileSync)(a,JSON.stringify(b,null,2),"utf8")}function m(){let a="0123456789",b="";for(let c=0;c<6;c++)b+=a[Math.floor(Math.random()*a.length)];return b}function n(a,b){return null===a?null:"string"!=typeof a?b:a.trim()||null}function o(a){let b=(0,i.Xi)(a);if(!(0,e.existsSync)(b))return{config:null,secret:null};let c=k(b);if(!c)return{config:null,secret:null};let d="string"==typeof c.botSecret?c.botSecret.trim():null,f={enabled:!0===c.enabled,channel:(c.channel,"wecom"),botId:"string"==typeof c.botId?c.botId.trim():"",requireMentionInGroup:!0===c.requireMentionInGroup,allowedUsers:Array.isArray(c.allowedUsers)?c.allowedUsers.filter(a=>"string"==typeof a&&a.trim().length>0):[],pairingCode:"string"==typeof c.pairingCode&&c.pairingCode.trim()?c.pairingCode.trim():m(),boundChatId:n(c.boundChatId,null),modelProvider:n(c.modelProvider,null),modelId:n(c.modelId,null),updatedAt:"string"==typeof c.updatedAt?c.updatedAt:new Date().toISOString()};try{l((0,i.ve)(a),f),d&&l((0,i.FK)(a),{botSecret:d}),(0,e.unlinkSync)(b);let c=(0,i.bj)(a);if((0,e.existsSync)(c)){let b=k(c);b?.sessionId&&l((0,i.iK)(a),b),(0,e.unlinkSync)(c)}}catch{}return{config:f,secret:d}}function p(a){let b=a.trim();if(!b)return null;let c=(0,i.ve)(b);if((0,e.existsSync)(c)){let a=k(c);if(a)return{enabled:!0===a.enabled,channel:(a.channel,"wecom"),botId:"string"==typeof a.botId?a.botId.trim():"",requireMentionInGroup:!0===a.requireMentionInGroup,allowedUsers:Array.isArray(a.allowedUsers)?a.allowedUsers.filter(a=>"string"==typeof a&&a.trim().length>0):[],pairingCode:"string"==typeof a.pairingCode&&a.pairingCode.trim()?a.pairingCode.trim():m(),boundChatId:n(a.boundChatId,null),modelProvider:n(a.modelProvider,null),modelId:n(a.modelId,null),updatedAt:a.updatedAt??new Date().toISOString()}}return o(b).config}function q(a){let b=a.trim();if(!b)return null;let c=(0,i.FK)(b),d=k(c);if(d?.botSecret?.trim())return d;let e=o(b);return e.secret?{botSecret:e.secret}:null}function r(a,b){let c=a.trim(),d=p(c)??{enabled:!1,channel:"wecom",botId:"",requireMentionInGroup:!0,allowedUsers:[],pairingCode:m()},f={enabled:"boolean"==typeof b.enabled?b.enabled:d.enabled,channel:"wecom"===b.channel?"wecom":d.channel,botId:"string"==typeof b.botId?b.botId.trim():d.botId,requireMentionInGroup:"boolean"==typeof b.requireMentionInGroup?b.requireMentionInGroup:d.requireMentionInGroup,allowedUsers:Array.isArray(b.allowedUsers)?b.allowedUsers.filter(a=>"string"==typeof a&&a.trim().length>0):d.allowedUsers,pairingCode:"string"==typeof b.pairingCode&&b.pairingCode.trim()?b.pairingCode.trim().toUpperCase():d.pairingCode,boundChatId:null===b.boundChatId||"string"==typeof b.boundChatId?null===b.boundChatId?null:b.boundChatId.trim()||null:d.boundChatId,modelProvider:n(b.modelProvider,d.modelProvider),modelId:n(b.modelId,d.modelId),updatedAt:new Date().toISOString()};l((0,i.ve)(c),f);let g=(0,i.Xi)(c);if((0,e.existsSync)(g)){try{(0,e.unlinkSync)(g)}catch{}let a=(0,i.bj)(c);try{(0,e.existsSync)(a)&&(0,e.unlinkSync)(a)}catch{}}return f}function s(a,b){let c={botSecret:b.trim()};l((0,i.FK)(a.trim()),c);let d=(0,i.Xi)(a.trim());if((0,e.existsSync)(d))try{(0,e.unlinkSync)(d)}catch{}return c}function t(a){let b=a.trim();for(let a of[(0,i.ve)(b),(0,i.FK)(b),(0,i.iK)(b),(0,i.Xi)(b),(0,i.bj)(b)])try{(0,e.existsSync)(a)&&(0,e.unlinkSync)(a)}catch{}}function u(a){return k((0,i.iK)(a.trim()))}function v(a,b){let c={sessionId:b,updatedAt:new Date().toISOString()};return l((0,i.iK)(a.trim()),c),c}function w(a){let b=(0,i.iK)(a.trim());return!!(0,e.existsSync)(b)&&((0,e.unlinkSync)(b),!0)}function x(){return k((0,i.vr)())}function y(){var a;let b=x()??{};if(b.token?.trim())return b.token.trim();let c=(0,g.randomBytes)(24).toString("hex");return a={...b,token:c},l((0,i.vr)(),a),c}function z(a,b){let c=q(a),d=u(a);return{...b,cwd:a,projectKey:(0,i.F3)(a),hasSecret:!!c?.botSecret?.trim(),sessionId:d?.sessionId??null}}async function A(){let a=[],b=new Set;for(let c of(await (0,h.hF)({includeHidden:!0}))){let d=c.cwd.trim().replace(/[\\/]+$/,"");if(!d||b.has(d))continue;b.add(d);let e=p(d);e?.enabled&&a.push(z(d,e))}let{getAgentDir:d}=await Promise.resolve().then(c.bind(c,75430)),g=(0,f.join)(d(),"im");try{for(let c of(0,e.readdirSync)(g)){if(!c.endsWith(".json")||c.endsWith("-session.json")||"gateway.json"===c)continue;let d=(0,f.join)(g,c);try{let c=JSON.parse((0,e.readFileSync)(d,"utf-8"));if(!0!==c.enabled)continue;let f=("string"==typeof c.cwd?c.cwd.trim():"")||"";if(!f||b.has(f))continue;b.add(f);let g=p(f);g?.enabled&&a.push(z(f,g))}catch{}}}catch{}return a}function B(){let a=function(){let a=(()=>{try{return c(Object(function(){var a=Error("Cannot find module '@earendil-works/pi-coding-agent'");throw a.code="MODULE_NOT_FOUND",a}())).getAgentDir()}catch{let a=c(21820);return(0,f.join)(a.homedir(),".pi","agent")}})(),b=new Set,d=(0,f.join)(a,"annovibe-projects.json");if((0,e.existsSync)(d))try{let a=JSON.parse((0,e.readFileSync)(d,"utf-8"));for(let[c,d]of Object.entries(a.projects??{})){let a=("string"==typeof d?.cwd?d.cwd:c).trim().replace(/[\\/]+$/,"");a&&b.add(a)}}catch{}let g=(0,f.join)(a,"im");if((0,e.existsSync)(g))try{for(let a of(0,e.readdirSync)(g))if(!(!a.endsWith(".json")||a.endsWith("-session.json"))&&"gateway.json"!==a)try{let c=JSON.parse((0,e.readFileSync)((0,f.join)(g,a),"utf-8"));"string"==typeof c.cwd&&c.cwd.trim()&&b.add(c.cwd.trim().replace(/[\\/]+$/,""))}catch{}}catch{}return[...b]}(),b=[];for(let c of a){let a=p(c);if(!a?.enabled||!a.botId)continue;let d=function(a,b){let c=q(a)?.botSecret?.trim()??"";if(!c)return null;let d=u(a);return{...b,cwd:a,projectKey:(0,i.F3)(a),hasSecret:!0,sessionId:d?.sessionId??null,botSecret:c}}(c,a);d&&b.push(d)}return b}function C(a,b){let c=b.trim();return!!c&&0!==a.allowedUsers.length&&a.allowedUsers.some(a=>a.trim()===c)}function D(a,b,c,d){let e=d.trim().toUpperCase(),f=a.pairingCode.trim().toUpperCase();return e===f||e===`PAIR ${f}`?C(a,c)?{config:a,paired:!0,reply:"已授权。你现在可以与此 bot 交互了。"}:{config:r(b,{allowedUsers:[...a.allowedUsers,c.trim()]}),paired:!0,reply:"已授权。你现在可以与此 bot 交互了。"}:{config:a,paired:!1}}function E(a,b){return a.pairingCode?`${b} 的 bot 需要授权。 发送配对码 ${a.pairingCode} 即可。`:`${b} 的 bot 尚未配置。`}[h,i]=j.then?(await j)():j,d()}catch(a){d(a)}})},61367:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{F3:()=>i,FK:()=>k,Xi:()=>n,bj:()=>o,iK:()=>l,ve:()=>j,vr:()=>m});var e=c(55511),f=c(33873),g=c(75430),h=a([g]);function i(a){return(0,e.createHash)("sha1").update(a).digest("hex")}function j(a){return(0,f.join)(a,".annovibe","im.json")}function k(a){return(0,f.join)((0,g.getAgentDir)(),"im-secrets",`${i(a)}.json`)}function l(a){return(0,f.join)((0,g.getAgentDir)(),"im-sessions",`${i(a)}.json`)}function m(){return(0,f.join)((0,g.getAgentDir)(),"im","gateway.json")}function n(a){let b=(0,e.createHash)("sha256").update(a).digest("hex").slice(0,16);return(0,f.join)((0,g.getAgentDir)(),"im",`${b}.json`)}function o(a){let b=(0,e.createHash)("sha256").update(a).digest("hex").slice(0,16);return(0,f.join)((0,g.getAgentDir)(),"im",`${b}-session.json`)}g=(h.then?(await h)():h)[0],d()}catch(a){d(a)}})}};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";exports.id=402,exports.ids=[402],exports.modules={12039:(a,b,c)=>{c.d(b,{B:()=>d});function d(a){if("assistant"!==a.role)return a;let b=a.content;if(!Array.isArray(b))return a;let c=b.map(a=>("object"!=typeof a||null===a||Array.isArray(a)||"toolCall"!==a.type?null:{type:"toolCall",toolCallId:"string"==typeof a.toolCallId?a.toolCallId:"string"==typeof a.id?a.id:"",toolName:"string"==typeof a.toolName?a.toolName:"string"==typeof a.name?a.name:"",input:"object"!=typeof a.input||null===a.input||Array.isArray(a.input)?"object"!=typeof a.arguments||null===a.arguments||Array.isArray(a.arguments)?{}:a.arguments:a.input})??a);return{...a,content:c}}},40402:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{BR:()=>u,CF:()=>z,DK:()=>v,O8:()=>t,Pt:()=>l.Pt,Uv:()=>w,dQ:()=>p,ev:()=>y,gO:()=>m.g,lG:()=>A,os:()=>s,r2:()=>q});var e=c(75430),f=c(12039),g=c(74788),h=c(77443),i=c(29021),j=c(33873),k=c(50723),l=c(16185),m=c(47240),n=a([e,g,h,l]);function o(a,b={}){let c=[];for(let b of a)if((0,i.existsSync)(b))try{for(let a of(0,i.readdirSync)(b))a.endsWith(".jsonl")&&c.push((0,j.join)(b,a))}catch{}let d=(0,g.tS)({force:!0===b.force}),e=r(),f=[];for(let a of c)try{let c,g,j,m=(0,k.V0)(a),n=b.force?null:(0,h._E)(a,m);if(n)c={id:n.id,cwd:n.cwd,timestamp:n.created,parentSession:n.parentSession,title:n.title},g=n.messageCount,j=n.firstMessage;else{let b=function(a){let b;try{b=(0,i.openSync)(a,"r");let c=Buffer.alloc(5120),d=(0,i.readSync)(b,c,0,5120,0);return c.toString("utf-8",0,d)}finally{if(void 0!==b)try{(0,i.closeSync)(b)}catch{}}}(a);if(!(c=function(a){let b=a.split("\n")[0]?.trim();if(!b)return null;try{let a=JSON.parse(b);if("session"!==a.type||"string"!=typeof a.id)return null;return{id:a.id,cwd:"string"==typeof a.cwd?a.cwd:"",timestamp:"string"==typeof a.timestamp?a.timestamp:new Date().toISOString(),parentSession:"string"==typeof a.parentSession?a.parentSession:void 0,title:"string"==typeof a.title?a.title:void 0}}catch{return null}}(b)))continue;g=function(a){let b=0,c=-1;for(;-1!==(c=a.indexOf('"type":"message"',c+1));)b++;return b}(b),j=function(a){let b=a.split("\n");for(let a=1;a<b.length;a++){let c=b[a].trim();if(c)try{let a=JSON.parse(c);if("message"!==a.type)continue;let b=a.message;if(b?.role!=="user")continue;let d=b.content;if("string"==typeof d)return d;if(Array.isArray(d)){let a=d.find(a=>"object"==typeof a&&null!==a&&"text"===a.type);if(a?.text)return a.text}}catch{}}return""}(b)||"(no messages)",(0,h.C8)(a,{identity:m,id:c.id,cwd:(0,l.Pt)(c.cwd),created:c.timestamp,parentSession:c.parentSession,title:c.title,messageCount:g,firstMessage:j})}let o=(0,l.Pt)(c.cwd);if(b.filterCwd&&o!==b.filterCwd)continue;let p=d[c.id]??null;e.set(c.id,a),f.push({path:a,id:c.id,cwd:o,name:c.title,created:c.timestamp,modified:new Date((0,k.$Q)(m)).toISOString(),messageCount:g,firstMessage:j,parentSessionId:c.parentSession?function(a){let b=(a.split("/").pop()??"").match(/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/i);return b?.[0]}(c.parentSession):void 0,sessionKind:p?.sessionKind,createdBy:p?.createdBy,sessionMeta:p})}catch{}return f.sort((a,b)=>new Date(b.modified).getTime()-new Date(a.modified).getTime()),f}async function p(a={}){let b=(0,l.tE)(),c=[];try{for(let a of(0,i.readdirSync)(b)){let d=(0,j.join)(b,a);try{(0,i.statSync)(d).isDirectory()&&c.push(d)}catch{}}}catch{}return o(c,a)}async function q(a,b={}){let c=(0,l.Pt)(a);return o([(0,l.D0)(c)],{...b,filterCwd:c})}function r(){return globalThis.__piSessionPathCache||(globalThis.__piSessionPathCache=new Map),globalThis.__piSessionPathCache}async function s(a){let b=r().get(a);if(b)return b;let c=(0,h.Y1)(a);if(c)try{let b=(0,k.V0)(c),d=(0,h._E)(c,b);if(d&&d.id===a)return r().set(a,c),c}catch{}return await p(),r().get(a)??null}function t(a,b){r().set(a,b)}function u(a){r().delete(a)}function v(a){return e.SessionManager.open(a).getEntries()}function w(a,b){let c,d,g,h=new Map;for(let b of a)h.set(b.id,b);let i=(0,e.buildSessionContext)(a,b,h);if(null===b||(b&&(c=h.get(b)),c||(c=a[a.length-1]),!c))return{messages:[],entryIds:[],thinkingLevel:i.thinkingLevel,model:i.model};let j=[],k=c;for(;k;)j.unshift(k),k=k.parentId?h.get(k.parentId):void 0;for(let a of j)"compaction"===a.type&&(d=a.id,g=a.firstKeptEntryId);let l=[],m=[];if(d){l.push(d);let a=j.findIndex(a=>a.id===d),b=g?j.findIndex((b,c)=>c<a&&b.id===g):-1,c=b>=0?b:a;for(let b=c;b<a;b++)"message"===j[b].type&&l.push(j[b].id);for(let b=a+1;b<j.length;b++)"message"===j[b].type&&l.push(j[b].id);let e=0;for(let a=0;a<c;a++)"message"===j[a].type&&e++;e>0&&m.push({entryId:d,shadowedCount:e})}else for(let a of j)"message"===a.type&&l.push(a.id);return{messages:i.messages.map(a=>"compactionSummary"===a.role?{role:"user",content:`*The conversation history before this point was compacted into the following summary:*
|
|
2
|
+
|
|
3
|
+
${a.summary??""}`,timestamp:a.timestamp}:(0,f.B)(a)),entryIds:l,thinkingLevel:i.thinkingLevel,model:i.model,compactions:m.length>0?m:void 0}}function x(){return globalThis.__piSessionContextCache||(globalThis.__piSessionContextCache={map:new Map,order:[]}),globalThis.__piSessionContextCache}function y(a,b){let c=x(),d=c.map.get(a);if(!d)return null;if(d.mtime!==b){c.map.delete(a);let b=c.order.indexOf(a);return b>-1&&c.order.splice(b,1),null}let e=c.order.indexOf(a);return e>-1&&c.order.splice(e,1),c.order.push(a),d}function z(a,b){let c=x(),d=c.map.has(a);if(!d&&c.order.length>=16){let a=c.order.shift();a&&c.map.delete(a)}if(c.map.set(a,b),d){let b=c.order.indexOf(a);b>-1&&c.order.splice(b,1),c.order.push(a)}else c.order.push(a)}function A(a){let b=x();b.map.delete(a);let c=b.order.indexOf(a);c>-1&&b.order.splice(c,1)}[e,g,h,l]=n.then?(await n)():n,d()}catch(a){d(a)}})},47240:(a,b,c)=>{c.d(b,{g:()=>d});function d(a,b){let c,d=new Map;for(let b of a)d.set(b.id,b);if(b&&(c=d.get(b)),c||(c=a[a.length-1]),!c)return[];let e=[],f=c;for(;f;)e.unshift(f),f=f.parentId?d.get(f.parentId):void 0;let g=[];for(let a=0;a<e.length;a++){let b=e[a];if("compaction"!==b.type)continue;let c=b.firstKeptEntryId??"",d=c?e.findIndex((b,d)=>d<a&&b.id===c):-1,f=d>=0?d:a,h=[],i=[];for(let a=0;a<f;a++){let b=e[a];"message"===b.type&&b.message&&(h.push(b.message),i.push(b.id))}h.length>0&&g.push({compactionEntryId:b.id,firstKeptEntryId:c,messages:h,entryIds:i})}return g}},74788:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{LN:()=>s,Of:()=>t,U5:()=>q,oR:()=>r,tS:()=>p});var e=c(29021),f=c(55511),g=c(33873),h=c(75430),i=c(16185),j=c(91179),k=a([h,i,j]);[h,i,j]=k.then?(await k)():k;let v=(0,g.join)((0,h.getAgentDir)(),"annovibe-session-meta.json"),w=(0,i.vo)(),x=null;function l(a){return(0,i.je)(a)}function m(){(0,e.existsSync)(w)||(0,e.mkdirSync)(w,{recursive:!0})}function n(a,b){m();let c=l(a),d=`${c}.${(0,f.randomUUID)().slice(0,8)}.tmp`;(0,e.writeFileSync)(d,JSON.stringify(b)),(0,e.renameSync)(d,c),x=null}if((0,e.existsSync)(v))try{m();let a=JSON.parse((0,e.readFileSync)(v,"utf-8"));for(let[b,c]of Object.entries(a)){let a=u(c);if(!a)continue;let d=l(b);(0,e.existsSync)(d)||n(b,a)}(0,e.renameSync)(v,`${v}.migrated`)}catch{}function o(a,b){a?(0,j.fd)(a):(0,j.xm)(b)}function p(a={}){if(!a.force&&x)return x;if(!(0,e.existsSync)(w))return x={};let b={};try{for(let a of(0,e.readdirSync)(w)){if(!a.endsWith(".json")||a.endsWith(".tmp"))continue;let c=a.slice(0,-5);try{let d=JSON.parse((0,e.readFileSync)((0,g.join)(w,a),"utf-8")),f=u(d);f&&(b[c]=f)}catch{}}}catch{}return x=b,b}function q(a){let b=l(a);if(!(0,e.existsSync)(b))return null;try{let a=JSON.parse((0,e.readFileSync)(b,"utf-8"));return u(a)}catch{return null}}async function r(a,b,c={}){n(a,b),o(c.cwd,a)}async function s(a,b,c={}){let d=q(a);d&&(n(a,{...d,...b}),o(c.cwd,a))}async function t(a,b={}){let c=l(a);if((0,e.existsSync)(c))try{(0,e.unlinkSync)(c),x=null,o(b.cwd,a)}catch{}}function u(a){let b;if(!a||"object"!=typeof a)return null;let c="workbench"===a.sessionKind||"chat"===a.sessionKind?a.sessionKind:null;if(!c)return null;let d="launcher"===a.createdBy||"fork"===a.createdBy||"manual"===a.createdBy?a.createdBy:"manual",e=Array.isArray(a.lastToolNames)?a.lastToolNames.filter(a=>"string"==typeof a):[],f="string"==typeof a.createdAt?a.createdAt:new Date().toISOString(),g="string"==typeof a.initialSourcePath&&a.initialSourcePath?a.initialSourcePath:void 0,h="r"===a.initialKernel||"python"===a.initialKernel?a.initialKernel:void 0,i="string"==typeof a.initialKernelId&&a.initialKernelId?a.initialKernelId:void 0,j="string"==typeof a.initialKernelDisplayName&&a.initialKernelDisplayName?a.initialKernelDisplayName:void 0;if(a.goal&&"object"==typeof a.goal){let c=a.goal;"string"==typeof c.id&&"string"==typeof c.objective&&"string"==typeof c.status&&(b={id:c.id,objective:c.objective,status:c.status,tokenBudget:"number"==typeof c.tokenBudget?c.tokenBudget:void 0,tokensUsed:"number"==typeof c.tokensUsed?c.tokensUsed:0,timeUsedSeconds:"number"==typeof c.timeUsedSeconds?c.timeUsedSeconds:0,createdAt:"number"==typeof c.createdAt?c.createdAt:Date.now(),updatedAt:"number"==typeof c.updatedAt?c.updatedAt:Date.now()})}return{sessionKind:c,lastToolNames:e,createdBy:d,createdAt:f,initialSourcePath:g,initialKernel:h,initialKernelId:i,initialKernelDisplayName:j,goal:b}}d()}catch(a){d(a)}})}};
|
|
@@ -257,4 +257,4 @@ ${a}
|
|
|
257
257
|
${a}
|
|
258
258
|
${d}`;(0,p.D)(e).then(()=>{s(!0),setTimeout(()=>s(!1),1500)})},title:"Copy as Markdown fence",ariaLabel:"Copy as Markdown fence",label:"markdown",activeLabel:"md copied",active:r}),(0,d.jsx)(m.Mi,{onClick:()=>{(0,p.D)(a).then(()=>{n(!0),setTimeout(()=>n(!1),1500)})},ariaLabel:"Copy code",label:"copy",activeLabel:"copied",active:l})]})}),(0,d.jsx)(m.oG,{totalLines:u,children:w})]})}function r({chart:a}){let{isDark:b}=(0,l.D)(),[c,f]=(0,e.useState)(null),[g,h]=(0,e.useState)(null);return((0,e.useRef)(`mermaid-${Math.random().toString(36).slice(2)}`),g)?(0,d.jsxs)("div",{className:"mermaid-diagram mermaid-diagram-error",children:[(0,d.jsx)("div",{className:"mermaid-diagram-error-title",children:"Mermaid render failed"}),(0,d.jsx)("div",{className:"mermaid-diagram-error-message",children:g}),(0,d.jsx)("pre",{children:a})]}):(0,d.jsx)("div",{className:"mermaid-diagram",children:c?(0,d.jsx)("div",{className:"mermaid-diagram-canvas",dangerouslySetInnerHTML:{__html:c}}):(0,d.jsx)("div",{className:"mermaid-diagram-loading",children:"Rendering diagram..."})})}var s=c(31218),t=c(52515);function u({code:a,onAcceptDiff:b,agentRunning:c}){let f=(0,e.useMemo)(()=>(function(a){let b=a.split("\n"),c=[],d=null,e=1;for(let a of b){let b=/^\+\+\+ [ab]\/(.+)/.exec(a);if(b){d=b[1];continue}if(/^@@ /.test(a)){let b=/@@ -\d+(?:,\d+)? \+(\d+)/.exec(a);b&&(e=parseInt(b[1],10));continue}/^--- /.test(a)||(a.startsWith("+")&&!a.startsWith("+++")?c.push({type:"added",text:a.slice(1),lineNo:e++}):a.startsWith("-")&&!a.startsWith("---")?c.push({type:"removed",text:a.slice(1),lineNo:0}):a.startsWith(" ")?c.push({type:"unchanged",text:a.slice(1),lineNo:e++}):c.push({type:"unchanged",text:a,lineNo:e++}))}return{lines:c,filePath:d}})(a),[a]),g=(0,e.useMemo)(()=>(function(a){let b=0,c=0;for(let d of a)"added"===d.type&&b++,"removed"===d.type&&c++;return{added:b,removed:c}})(f.lines),[f.lines]);return(0,d.jsxs)(m.NG,{className:"markdown-code-block markdown-code-block-chat",style:{marginTop:4,marginBottom:4},children:[(0,d.jsx)(m.iO,{title:(0,d.jsxs)("span",{children:["diff ",f.filePath&&(0,d.jsx)("span",{style:{opacity:.7},children:f.filePath})," ",(0,d.jsxs)("span",{style:{color:"var(--text-dim)",fontWeight:400},children:["(",(0,d.jsxs)("span",{style:{color:"#16a34a"},children:["+",g.added]})," /"," ",(0,d.jsxs)("span",{style:{color:"#dc2626"},children:["-",g.removed]}),")"]})]}),actions:b&&!c?(0,d.jsx)(m.Mi,{onClick:()=>b(a,f.filePath),title:"Ask the agent to apply this diff",ariaLabel:"Ask the agent to apply this diff",label:"apply",activeLabel:"apply",active:!1}):void 0}),(0,d.jsx)(t.pg,{diff:f.lines,emptyLabel:"No changes detected"})]})}let v=new Set,w=new Map,x=null;function y(){return x||(x=Promise.resolve().then(c.bind(c,78908)).then(a=>{if(0===v.size){for(let b of Object.keys(a.bundledLanguages??{}))v.add(b.toLowerCase());for(let b of a.bundledLanguagesInfo??[]){let a=b.id.toLowerCase();for(let c of b.aliases??[])w.set(c.toLowerCase(),a)}}return a})),x}var z=c(7952),A=c(31343);function B(a){return a?.replace(/^language-/,"").trim()??""}function C(a){return/^[a-z][a-z\d+.-]*:/i.test(a)||a.startsWith("//")}function D(a,b,c){let d;if(!c||c.startsWith("#")||C(c))return null;let e=(d=/^([^?#]*)(.*)$/.exec(c),d?.[1]??c);if(!e)return null;let f=function(a){try{return decodeURI(a)}catch{return a}}(e);return(0,A.HR)(f,b,a)}function E(a){return`/api/files/${(0,A.HG)(a)}?type=read`}function F({value:a,baseFilePath:b,cwd:c,onOpenLocalFile:e,onOpenFileAtLine:f}){let g=(0,d.jsx)("code",{style:{background:"var(--bg-selected)",padding:"1px 4px",borderRadius:3,fontFamily:"var(--font-mono)",fontSize:"0.9em"},children:a});return/^(?:\.{1,2}\/|\/|~\/|[\w@.-]+\/)[\w@./+-]+\.[A-Za-z0-9]{1,12}:\d+$/.test(a.trim())?(0,d.jsx)(I,{href:a,baseFilePath:b,cwd:c,onOpenLocalFile:e,onOpenFileAtLine:f,style:{textDecoration:"none"},children:g}):g}function G(a){let b=/^\s*!\[([^\]]*)\]\((.+)\)\s*$/.exec(a);if(!b)return null;let c=b[2]?.trim()??"";if(!c)return null;let d=/^(.+?)\s+(?:"[^"]*"|'[^']*')\s*$/.exec(c);return{alt:b[1]?.trim()||void 0,src:(d?.[1]??c).trim()}}function H({items:a,baseFilePath:b,cwd:c,onOpenLocalFile:e}){let f=1===a.length;return(0,d.jsx)("div",{className:"report-image-gallery",style:{display:"grid",gridTemplateColumns:f?"minmax(0, 1fr)":"repeat(auto-fit, minmax(min(100%, 240px), 1fr))",gap:12,margin:"16px 0"},children:a.map((a,g)=>{let h=D(b,c,a.src),i=h?E(h):a.src,j=a.alt??a.caption??`Figure ${g+1}`,k=(0,d.jsx)("img",{src:i,alt:j,loading:"lazy",title:h??a.src,style:{display:"block",width:"100%",maxHeight:f?520:340,objectFit:"contain",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)"}});return(0,d.jsxs)("figure",{style:{margin:0,minWidth:0},children:[h&&e?(0,d.jsx)("button",{type:"button",onClick:()=>e(h,(0,A.WP)(h)),title:`Open ${h}`,style:{display:"block",width:"100%",padding:0,border:"none",background:"none",cursor:"zoom-in"},children:k}):k,a.caption&&(0,d.jsx)("figcaption",{style:{marginTop:6,color:"var(--text-muted)",fontSize:12,lineHeight:1.45},children:a.caption})]},`${a.src}-${g}`)})})}function I({href:a,children:b,baseFilePath:c,cwd:e,onOpenLocalFile:f,onOpenFileAtLine:g,title:h,...i}){let j=a?/^(.*):(\d+)$/.exec(a.replace(/[?#].*$/,"")):null,k=j?j[1]:a,l=j?parseInt(j[2],10):void 0,m=D(c,e,k),n=!!m,o=!!a&&C(a),p=m&&l?`${E(m)}#L${l}`:n?E(m):a;return(0,d.jsx)("a",{...i,href:p,target:o?"_blank":void 0,rel:o?"noreferrer":void 0,onClick:a=>{if(!m)return;a.preventDefault();let b=(0,A.WP)(m);g?g(m,b,l):f&&f(m,b)},title:n?m:h,children:b})}function J({src:a,alt:b,title:c,baseFilePath:e,cwd:f,onOpenLocalFile:g,...h}){let i="string"==typeof a?a:void 0,j=D(e,f,i),k=j?E(j):i,l=(0,d.jsx)("img",{...h,src:k,alt:b??"",loading:"lazy",title:j??c,style:{...h.style??{},cursor:k?"zoom-in":h.style?.cursor}});return k?(0,d.jsx)("a",{href:k,target:"_blank",rel:"noreferrer",title:j??c??"Open image",style:{display:"inline-block",maxWidth:"100%"},onClick:a=>{j&&g&&(a.preventDefault(),g(j,(0,A.WP)(j)))},children:l}):l}function K({code:a,language:b,variant:c,isStreaming:e=!1,baseFilePath:f,cwd:g,onOpenLocalFile:h,onWidgetSendMessage:i,renderVisualCodeBlocks:j=!1,testAsyncCodeDelayMs:k=0,activeFilePath:l,agentRunning:m,onApplyToFile:n,onRunCode:o,onAcceptDiff:p}){let t,v,w,x;if("mermaid"===(t=b.trim().toLowerCase())||"mmd"===t)return(0,d.jsx)(r,{chart:a});if("diff"===(v=b.trim().toLowerCase())||"patch"===v||"unified-diff"===v)return(0,d.jsx)(u,{code:a,onAcceptDiff:p,agentRunning:m});if("show-widget"===b.trim().toLowerCase()){let b,c=(b=(0,z.aH)(`\`\`\`show-widget
|
|
259
259
|
${a}
|
|
260
|
-
\`\`\``).find(a=>"widget"===a.type),b?.type==="widget"?{title:b.title,code:b.code}:null);if(c)return(0,d.jsx)(s.u,{code:c.code,isStreaming:!1,title:c.title,onSendMessage:i})}if("report-gallery"===b.trim().toLowerCase()){let b=function(a){try{let b=JSON.parse(a);if(!Array.isArray(b))return null;let c=b.flatMap(a=>a&&"object"==typeof a&&"string"==typeof a.src&&a.src.trim()?[{src:a.src.trim(),alt:"string"==typeof a.alt&&a.alt.trim()?a.alt.trim():void 0,caption:"string"==typeof a.caption&&a.caption.trim()?a.caption.trim():void 0}]:[]);return c.length>0?c.slice(0,12):null}catch{return null}}(a);if(b)return(0,d.jsx)(H,{items:b,baseFilePath:f,cwd:g,onOpenLocalFile:h})}return j&&(w=b.trim().toLowerCase(),(x=a.trim())&&("svg"===w||"xml"===w&&/^<svg[\s>]/i.test(x)?/^<svg[\s>]/i.test(x):!("html"!==w||/<!doctype|<html[\s>]|<head[\s>]|<body[\s>]/i.test(x))&&/^<(style|svg|div|section|article|main|figure|canvas)\b/i.test(x)))?(0,d.jsx)(s.u,{code:a,isStreaming:!1,title:`${b||"visual"} preview`,onSendMessage:i}):(0,d.jsx)(q,{code:a,language:b,variant:c,isStreaming:e,testAsyncDelayMs:k,activeFilePath:l,agentRunning:m,onApplyToFile:n,onRunCode:o})}function L({children:a,className:b,node:c,baseFilePath:e,cwd:f,onOpenLocalFile:g,onWidgetSendMessage:h,renderVisualCodeBlocks:i=!1,isStreaming:j=!1,testAsyncCodeDelayMs:k=0,activeFilePath:l,agentRunning:m,onApplyToFile:n,onRunCode:o,onOpenFileAtLine:p,onAcceptDiff:q,...r}){let s=("string"==typeof a?a:Array.isArray(a)?a.map(a=>"string"==typeof a?a:"").join(""):"").replace(/\n$/,""),t=B(b);return"data-block"in r?(0,d.jsx)(K,{code:s,language:t,variant:"chat",isStreaming:j||!!r["data-incomplete"],baseFilePath:e,cwd:f,onOpenLocalFile:g,onWidgetSendMessage:h,renderVisualCodeBlocks:i,testAsyncCodeDelayMs:k,activeFilePath:l,agentRunning:m,onApplyToFile:n,onRunCode:o,onAcceptDiff:q}):(0,d.jsx)(F,{value:s,baseFilePath:e,cwd:f,onOpenLocalFile:g,onOpenFileAtLine:p})}function M({content:a,className:b="markdown-body",style:c,codeBlockVariant:m="chat",baseFilePath:o,cwd:p,onOpenLocalFile:q,onWidgetSendMessage:r,renderVisualCodeBlocks:s=!1,enableImageGallery:t=!1,isStreaming:u=!1,renderer:x="react-markdown",testAsyncCodeDelayMs:z=0,activeFilePath:A,agentRunning:C,onApplyToFile:D,onRunCode:E,onOpenFileAtLine:H,onAcceptDiff:N}){let O,P,{isDark:Q}=(0,l.D)(),R=t?function(a){let b=a.split("\n"),c=[],d=0;for(;d<b.length;){if(!G(b[d])){c.push(b[d]),d+=1;continue}let a=[],e=d;for(;e<b.length;){let c=G(b[e]);if(!c)break;let d=e+1,f=d;for(;f<b.length&&!b[f].trim();)f+=1;let g=f<b.length?function(a){let b=/^\s*(?:_([^_]+)_|\*([^*]+)\*)\s*$/.exec(a);return(b?.[1]??b?.[2]??"").trim()||null}(b[f]):null;g&&(c.caption=g,d=f+1),a.push(c);let h=d;for(;h<b.length&&!b[h].trim();)h+=1;if(!G(b[h])){e=d;break}e=h}if(a.length>1||a.some(a=>a.caption)){c.push(["```report-gallery",JSON.stringify(a,null,2),"```"].join("\n")),d=e;continue}c.push(b[d]),d+=1}return c.join("\n")}(a):a,S=H?(O=R.split("\n"),P=!1,O.map(a=>/^\s*(```|~~~)/.test(a)?(P=!P,a):P||/\]\([^)]*$/.test(a)?a:a.replace(/(^|[\s([{"'])((?:\.{1,2}\/|\/|~\/|[\w@.-]+\/)[\w@./+-]+\.[A-Za-z0-9]{1,12}:\d+)\b/g,(a,b,c)=>`${b}[${c}](${c})`)).join("\n")):R,T=(0,e.useMemo)(()=>u?{cjk:i.h,math:j.D,mermaid:k.a}:{cjk:i.h,math:j.D,mermaid:k.a,code:function(a,b=[n.cx,n.aU]){return y(),{name:"shiki",type:"code-highlighter",getSupportedLanguages:()=>[...v],getThemes:()=>b,supportsLanguage(a){let b;return 0===v.size||null!==((b=a.trim().toLowerCase())?v.has(b)?b:w.get(b)??null:null)},highlight(b,c){let d=b.language,e=(0,n.wY)(b.code,d,a,a=>{c?.({tokens:a.tokens,bg:a.bg,fg:a.fg})});return e?{tokens:e.tokens,bg:e.bg,fg:e.fg}:(y(),null)}}}(Q)},[Q,u]);return"streamdown"!==x||o||t?(0,d.jsx)("div",{className:b,style:c,children:(0,d.jsx)(f.oz,{remarkPlugins:[g.A],components:{code({className:a,children:b,node:c}){let e=B(a),f=String(b),g=f.replace(/\n$/,"");return a?.includes("language-")||f.includes("\n")?(0,d.jsx)(K,{code:g,language:e,variant:m,isStreaming:u,baseFilePath:o,cwd:p,onOpenLocalFile:q,onWidgetSendMessage:r,renderVisualCodeBlocks:s,testAsyncCodeDelayMs:z,activeFilePath:A,agentRunning:C,onApplyToFile:D,onRunCode:E,onAcceptDiff:N}):(0,d.jsx)(F,{value:g,baseFilePath:o,cwd:p,onOpenLocalFile:q,onOpenFileAtLine:H})},pre:({children:a})=>(0,d.jsx)(d.Fragment,{children:a}),a:({href:a,children:b,node:c,...e})=>(0,d.jsx)(I,{...e,href:a,baseFilePath:o,cwd:p,onOpenLocalFile:q,onOpenFileAtLine:H,children:b}),img:({src:a,alt:b,node:c,...e})=>(0,d.jsx)(J,{...e,src:a,alt:b,baseFilePath:o,cwd:p,onOpenLocalFile:q})},children:S})}):(0,d.jsx)("div",{className:b,style:c,children:(0,d.jsx)(h.jH,{mode:u?"streaming":"static",isAnimating:!!u,plugins:T,components:{code:({children:a,className:b,node:c,...e})=>(0,d.jsx)(L,{...e,node:c,className:b,baseFilePath:o,cwd:p,onOpenLocalFile:q,onWidgetSendMessage:r,renderVisualCodeBlocks:s,isStreaming:u,testAsyncCodeDelayMs:z,activeFilePath:A,agentRunning:C,onApplyToFile:D,onRunCode:E,onOpenFileAtLine:H,onAcceptDiff:N,children:a}),a:({href:a,children:b,node:c,...e})=>(0,d.jsx)(I,{...e,href:a,baseFilePath:o,cwd:p,onOpenLocalFile:q,onOpenFileAtLine:H,children:b}),img:({src:a,alt:b,node:c,...e})=>(0,d.jsx)(J,{...e,src:a,alt:b,baseFilePath:o,cwd:p,onOpenLocalFile:q})},children:S})})}},51810:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,81921,23))},52515:(a,b,c)=>{"use strict";c.d(b,{K$:()=>h,Ph:()=>g,Tg:()=>m,fj:()=>f,mK:()=>i,ml:()=>j,nG:()=>k,pg:()=>l,v7:()=>e});var d=c(48249);function e(a){return a<1024?`${a} B`:a<1048576?`${(a/1024).toFixed(1)} KB`:`${(a/1048576).toFixed(1)} MB`}function f({children:a,style:b}){return(0,d.jsx)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden",...b},children:a})}function g({children:a,style:b}){return(0,d.jsx)("div",{style:{flex:1,overflow:"auto",background:"var(--bg)",...b},children:a})}function h({pathLabel:a,title:b,trailing:c,style:e}){return(0,d.jsxs)("div",{"data-file-viewer-surface":"status-bar",style:{display:"flex",alignItems:"center",gap:12,padding:"4px 16px",borderBottom:"1px solid var(--border)",fontSize:11,color:"var(--text-dim)",background:"var(--bg)",flexShrink:0,...e},children:[(0,d.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"var(--font-mono)"},title:b??a,children:a}),c]})}function i({watching:a}){return(0,d.jsxs)("span",{title:a?"Live sync active":"Not watching",style:{display:"flex",alignItems:"center",gap:4,color:a?"#4ade80":"var(--text-dim)"},children:[(0,d.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:a?"#4ade80":"var(--border)",display:"inline-block",boxShadow:a?"0 0 4px #4ade80":"none"}}),a?"live":"static"]})}function j({children:a,onClick:b,title:c,disabled:e=!1,active:f=!1,emphasis:g="default",style:h}){let i="primary"==g,k="danger"==g;return(0,d.jsx)("button",{"data-file-viewer-surface":"toolbar-button",onClick:b,disabled:e,title:c,style:{padding:"2px 10px",fontSize:11,cursor:e?"not-allowed":"pointer",background:i?"var(--accent)":k?"rgba(239,68,68,0.1)":f?"var(--bg-selected)":"var(--bg-hover)",color:i?"#fff":k?"#ef4444":f?"var(--text)":"var(--text-muted)",border:`1px solid ${i?"var(--accent)":k?"rgba(239,68,68,0.3)":"var(--border)"}`,borderRadius:5,fontWeight:f||i||k?600:400,opacity:e?.6:1,...h},children:a})}function k({children:a,tone:b="muted",style:c}){return(0,d.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",padding:24,color:"error"===b?"#f87171":"var(--text-muted)",fontSize:13,textAlign:"center",...c},children:a})}function l({diff:a,emptyLabel:b="No changes"}){if(!a.some(a=>"unchanged"!==a.type))return(0,d.jsx)("div",{style:{padding:"12px 16px",fontSize:12,color:"var(--text-dim)",fontFamily:"var(--font-mono)"},children:b});let c=new Set(a.flatMap((a,b)=>"unchanged"!==a.type?[b]:[])),e=new Set;for(let b of c)for(let c=Math.max(0,b-3);c<=Math.min(a.length-1,b+3);c++)e.add(c);let f=[],g=0;for(;g<a.length;)if(e.has(g)){let b=[];for(;g<a.length&&e.has(g);)b.push(a[g]),g++;f.push({hidden:!1,lines:b})}else{let b=0;for(;g<a.length&&!e.has(g);)b++,g++;f.push({hidden:!0,count:b})}let h=[],i=1;for(let b of a)"removed"===b.type?h.push(0):h.push(i++);let j=0;return(0,d.jsx)("div",{style:{fontFamily:"var(--font-mono)",fontSize:13,lineHeight:1.6},children:f.map((a,b)=>{if(a.hidden){let c=(0,d.jsxs)("div",{style:{padding:"2px 16px",color:"var(--text-dim)",background:"var(--bg-panel)",fontSize:11,borderTop:"1px solid var(--border)",borderBottom:"1px solid var(--border)"},children:["... ",a.count," unchanged lines ..."]},b);return j+=a.count,c}let c=a.lines.map((a,b)=>{let c=h[j+b],e="added"===a.type?"rgba(0,200,80,0.12)":"removed"===a.type?"rgba(240,60,60,0.14)":"transparent",f="added"===a.type?"+":"removed"===a.type?"-":" ",g="added"===a.type?"#4ade80":"removed"===a.type?"#f87171":"var(--text-dim)";return(0,d.jsxs)("div",{style:{display:"flex",background:e,borderLeft:"added"===a.type?"3px solid #4ade80":"removed"===a.type?"3px solid #f87171":"3px solid transparent"},children:[(0,d.jsx)("span",{style:{minWidth:44,padding:"0 8px 0 16px",textAlign:"right",color:"var(--text-dim)",userSelect:"none",fontSize:11,lineHeight:1.6,borderRight:"1px solid var(--border)",background:"var(--bg-panel)",flexShrink:0},children:"removed"===a.type?a.lineNo:c||""}),(0,d.jsx)("span",{style:{minWidth:16,padding:"0 6px",color:g,userSelect:"none",flexShrink:0,fontWeight:600},children:f}),(0,d.jsx)("span",{style:{flex:1,padding:"0 8px 0 0",whiteSpace:"pre",color:"var(--text)",overflowX:"auto"},children:a.text||"\xa0"})]},b)});return j+=a.lines.length,(0,d.jsx)("div",{children:c},b)})})}function m({options:a}){return(0,d.jsx)("div",{"data-file-viewer-surface":"segmented-toggle",style:{display:"flex",borderRadius:5,overflow:"hidden",border:"1px solid var(--border)"},children:a.map((a,b)=>(0,d.jsx)("button",{onClick:a.onClick,style:{padding:"2px 8px",fontSize:11,border:"none",borderLeft:0===b?"none":"1px solid var(--border)",cursor:"pointer",background:a.active?"var(--bg-selected)":"var(--bg-hover)",color:a.active?"var(--text)":"var(--text-muted)",fontWeight:a.active?600:400},children:a.label},a.key))})}},54097:(a,b,c)=>{"use strict";c.d(b,{p:()=>f,t:()=>e});var d=c(48249);function e({children:a,style:b,kind:c}){return(0,d.jsx)("div",{"data-disclosure-surface":"panel","data-disclosure-kind":c,style:{border:"1px solid var(--border)",borderRadius:6,overflow:"hidden",background:"var(--bg-panel)",...b},children:a})}function f({children:a,style:b}){return(0,d.jsx)("div",{"data-disclosure-surface":"body",style:{borderTop:"1px solid var(--border)",...b},children:a})}},57703:(a,b,c)=>{"use strict";c.d(b,{V:()=>h});var d=c(48249),e=c(6954),f=c(40648),g=c(41044);function h({expanded:a,onToggle:b,status:c,title:i,summary:j,durationLabel:k,leading:l,titleTooltip:m,summaryTooltip:n,buttonStyle:o,titleStyle:p,summaryStyle:q,durationStyle:r}){return(0,d.jsxs)(e.R,{expanded:a,onToggle:b,buttonStyle:o,children:[l,(0,d.jsx)("span",{title:m??i,style:{color:"var(--text-muted)",fontFamily:"var(--font-mono)",fontWeight:600,fontSize:11,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flexShrink:+!j,minWidth:0,flex:j?void 0:1,...p},children:"running"===c?(0,d.jsx)(f.n,{children:i}):i}),j?(0,d.jsx)("span",{title:n??j,style:{color:"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:11,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,minWidth:0,...q},children:"running"===c?(0,d.jsx)(f.n,{children:j}):j}):(0,d.jsx)("span",{style:{flex:1,minWidth:0}}),(0,d.jsx)(g.U1,{status:c}),k?(0,d.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",fontVariantNumeric:"tabular-nums",flexShrink:0,...r},children:k}):null]})}},60125:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,33071,23))},62418:(a,b,c)=>{"use strict";c.d(b,{D:()=>O});var d=c(48249),e=c(67484),f=c(51415),g=c(40648),h=c(73383),i=c(8033),j=c(41044),k=c(129),l=c(31218),m=c(7952);function n({block:a,toolResults:b,isStreaming:c,streamingDuration:e,toolCallDurations:f,onSendMessage:g,renderVisualCodeBlocks:h,cwd:i,activeFilePath:j,agentRunning:l,onApplyToFile:m,onRunCode:p,onOpenFileAtLine:q,onAcceptDiff:t}){if("text"===a.type)return(0,d.jsx)(o,{block:a,isStreaming:c,onSendMessage:g,renderVisualCodeBlocks:h,cwd:i,activeFilePath:j,agentRunning:l,onApplyToFile:m,onRunCode:p,onOpenFileAtLine:q,onAcceptDiff:t});if("image"===a.type)return(0,d.jsx)(k.O7,{images:[a]});if("thinking"===a.type)return(0,d.jsx)(r,{block:a,duration:e,isStreaming:c});let u=b?.get(a.toolCallId),v=f?.get(a.toolCallId);return(0,d.jsx)(s,{block:a,result:u,duration:v,isStreaming:c,cwd:i})}function o({block:a,isStreaming:b,onSendMessage:c,renderVisualCodeBlocks:e,cwd:f,activeFilePath:g,agentRunning:h,onApplyToFile:i,onRunCode:j,onOpenFileAtLine:k,onAcceptDiff:n}){let r=a.text,s=(0,m.aH)(r);if(!s.some(a=>"widget"===a.type)){if(b&&(0,m.qk)(r)){let a=s.filter(a=>"text"===a.type).map(a=>a.content).join("\n\n");return(0,d.jsxs)(d.Fragment,{children:[a&&(0,d.jsx)(p,{text:a,isStreaming:b,onSendMessage:c,renderVisualCodeBlocks:e,cwd:f,activeFilePath:g,agentRunning:h,onApplyToFile:i,onRunCode:j,onOpenFileAtLine:k,onAcceptDiff:n}),(0,d.jsx)(q,{})]})}return(0,d.jsx)(p,{text:r,isStreaming:b,onSendMessage:c,renderVisualCodeBlocks:e,cwd:f,activeFilePath:g,agentRunning:h,onApplyToFile:i,onRunCode:j,onOpenFileAtLine:k,onAcceptDiff:n})}return(0,d.jsx)(d.Fragment,{children:s.map((a,m)=>"text"===a.type?(0,d.jsx)(p,{text:a.content,isStreaming:b,onSendMessage:c,renderVisualCodeBlocks:e,cwd:f,activeFilePath:g,agentRunning:h,onApplyToFile:i,onRunCode:j,onOpenFileAtLine:k,onAcceptDiff:n},m):(0,d.jsx)(l.u,{code:a.code,isStreaming:!!a.partial,title:a.title,showOverlay:a.showOverlay,onSendMessage:c},m))})}function p({text:a,isStreaming:b,onSendMessage:c,renderVisualCodeBlocks:g,cwd:h,activeFilePath:i,agentRunning:j,onApplyToFile:l,onRunCode:m,onOpenFileAtLine:n,onAcceptDiff:o}){let q=(0,e.useMemo)(()=>(0,k.qn)(a,h),[h,a]);return(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8*(q.length>0)},children:[(0,d.jsx)(f.T,{content:a,cwd:h,onWidgetSendMessage:c,renderVisualCodeBlocks:g,isStreaming:b,renderer:"streamdown",activeFilePath:i,agentRunning:j,onApplyToFile:l,onRunCode:m,onOpenFileAtLine:n,onAcceptDiff:o}),q.length>0&&(0,d.jsx)(k.eR,{imagePaths:q})]})}function q(){return(0,d.jsx)(g.r,{height:88,style:{border:"1px solid var(--border)"}})}function r({block:a,duration:b,isStreaming:c}){return(0,d.jsx)(h.pm,{content:a.thinking,durationLabel:void 0!==b?`${b}s`:null,isStreaming:c,buttonStyle:{width:"100%",padding:"6px 10px",fontSize:12},containerStyle:{fontSize:13},contentStyle:{background:"var(--bg-panel)"}})}function s({block:a,result:b,duration:c,isStreaming:e,cwd:f}){let g=(0,j.s2)(b,e),h=(0,j.Gb)(g),k="bash"===a.toolName;return(0,d.jsx)(i.Dm,{tool:a,result:b,status:g,durationLabel:void 0!==c?`${c}s`:null,cwd:f,titleStyle:{color:h},collapsedPreviewBackground:`color-mix(in srgb, ${h} 5%, transparent)`,buttonStyle:{display:"flex",alignItems:"center",gap:7,width:"100%",padding:"6px 10px",background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:12,textAlign:"left",minWidth:0},containerStyle:{border:`1px solid color-mix(in srgb, ${h} 38%, transparent)`,background:`color-mix(in srgb, ${h} 8%, transparent)`},notebookStyle:k})}var t=c(39868);function u(a=768){let[b,c]=(0,e.useState)(!1);return b}function v({children:a,hovered:b,onHoverChange:c,style:e}){return(0,d.jsx)("div",{style:e,onMouseEnter:()=>c?.(!0),onMouseLeave:()=>c?.(!1),"data-message-hovered":b?"true":"false",children:a})}function w({children:a,justify:b="flex-start",style:c}){let e=u();return(0,d.jsx)("div",{"data-message-surface":"footer",style:{display:"flex",alignItems:"center",justifyContent:b,gap:e?4:6,marginTop:4,...c},children:a})}function x({children:a,alignEnd:b=!1,style:c}){return(0,d.jsx)("span",{"data-message-surface":"timestamp",style:{fontSize:10,color:"var(--text-dim)",marginLeft:b?"auto":void 0,...c},children:a})}function y({children:a,visible:b,style:c}){return(0,d.jsx)("div",{style:{display:"flex",gap:3,opacity:+!!b,pointerEvents:b?"auto":"none",transition:"opacity 0.12s",...c},children:a})}function z({children:a,onClick:b,disabled:c=!1,title:e,active:f=!1,style:g,onMouseEnterColor:h="var(--accent)",onMouseLeaveColor:i="var(--text-dim)",iconOnlyOnMobile:j=!1}){let k=u();return(0,d.jsx)("button",{onClick:b,disabled:c,title:e,style:{display:"flex",alignItems:"center",gap:4,padding:"3px 8px",height:22,background:"none",border:"none",borderRadius:5,color:f?"var(--accent)":"var(--text-dim)",cursor:c?"not-allowed":"pointer",fontSize:11,fontWeight:400,whiteSpace:"nowrap",transition:"color 0.12s",...g},onMouseEnter:a=>{c||(a.currentTarget.style.color=h)},onMouseLeave:a=>{c||(a.currentTarget.style.color=i)},children:j&&k&&Array.isArray(a)?a[0]:a})}function A({children:a,hovered:b,onHoverChange:c}){let e=u();return(0,d.jsx)(v,{hovered:b,onHoverChange:c,style:{marginBottom:e?12:16,display:"flex",flexDirection:"column",alignItems:"flex-end"},children:a})}function B({children:a}){let b=u();return(0,d.jsx)("div",{style:{display:"flex",alignItems:"flex-end",gap:b?4:6,maxWidth:b?"92%":"85%"},children:(0,d.jsx)("div",{style:{flex:1,minWidth:0,background:"var(--user-bg)",border:"1px solid rgba(59,130,246,0.2)",borderRadius:12,padding:b?"7px 10px":"8px 12px",fontSize:14,lineHeight:1.6,color:"var(--text)",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:a})})}function C({children:a,hasBody:b=!1}){let c=u();return(0,d.jsx)("div",{style:{display:"flex",gap:c?4:6,flexWrap:"wrap",marginBottom:b?c?6:8:0},children:a})}function D({children:a,hovered:b,onHoverChange:c}){let e=u();return(0,d.jsx)(v,{hovered:b,onHoverChange:c,style:{marginBottom:e?12:16},children:a})}function E({children:a}){let b=u();return(0,d.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:b?6:8},children:a})}function F({children:a,accent:b="default"}){let c="subagent"===b;return(0,d.jsx)("div",{"data-message-surface":"custom-card","data-message-accent":b,style:{padding:"8px 14px",borderRadius:8,border:`1px solid ${c?"rgba(99,102,241,0.25)":"var(--border)"}`,background:c?"rgba(99,102,241,0.05)":"var(--bg-panel)",fontSize:13,lineHeight:1.6,color:"var(--text-muted)"},children:a})}function G({icon:a,children:b}){return(0,d.jsxs)("div",{"data-message-surface":"custom-icon-row",style:{display:"flex",alignItems:"flex-start",gap:8},children:[(0,d.jsx)("span",{style:{flexShrink:0,fontSize:14},children:a}),(0,d.jsx)("div",{style:{flex:1,minWidth:0},children:b})]})}function H({text:a,title:b="Copy message",style:c}){let[f,g]=(0,e.useState)(!1),h=u();return(0,d.jsxs)("button",{onClick:()=>{(0,t.D)(a).then(()=>{g(!0),setTimeout(()=>g(!1),1500)})},title:b,style:{display:"flex",alignItems:"center",gap:4,padding:"3px 8px",height:22,background:"none",border:"none",borderRadius:5,color:f?"var(--accent)":"var(--text-dim)",cursor:"pointer",fontSize:11,fontWeight:400,whiteSpace:"nowrap",transition:"color 0.12s",...c},onMouseEnter:a=>{f||(a.currentTarget.style.color="var(--accent)")},onMouseLeave:a=>{f||(a.currentTarget.style.color="var(--text-dim)")},children:[f?(0,d.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:(0,d.jsx)("polyline",{points:"20 6 9 17 4 12"})}):(0,d.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),(0,d.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]}),(0,d.jsx)("span",{style:h?{display:"none"}:void 0,children:f?"Copied":"Copy"})]})}function I({provider:a,model:b,modelNames:c,isStreaming:e=!1,estimatedTokens:f=0,tps:g=null}){let h=a&&b?c?.[`${a}:${b}`]??c?.[b]??b:null;return(0,d.jsxs)("div",{style:{fontSize:11,color:"var(--text-dim)",marginBottom:4,display:"flex",alignItems:"center",gap:6},children:[h&&(0,d.jsx)("span",{children:h}),e&&f>0&&(0,d.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4,color:"var(--text)"},title:"预估 token 数(流式接收中)",children:[(0,d.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:2,fontSize:11,fontWeight:400},children:[(0,d.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("line",{x1:"5",y1:"1.5",x2:"5",y2:"8.5"}),(0,d.jsx)("polyline",{points:"2 6 5 8.5 8 6"})]}),f]}),null!==g&&(0,d.jsxs)("span",{style:{marginLeft:6,padding:"1px 6px",borderRadius:4,background:g>=50?"#53b3cb":g>=30?"#9bc53d":g>=15?"#f9c22e":"#e01a4f",color:"#fff",fontSize:11,fontWeight:400},children:[g.toFixed(1)," t/s"]})]})]})}var J=c(27563);let K=[],L=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function M(a){return a.toString().padStart(2,"0")}function N(a){if(!a)return null;let b=new Date(a),c=new Date,d=b.getFullYear()===c.getFullYear()&&b.getMonth()===c.getMonth()&&b.getDate()===c.getDate(),e=`${M(b.getHours())}:${M(b.getMinutes())}`;if(d)return e;let f=[`${L[b.getMonth()]} ${b.getDate()}`];b.getFullYear()!==c.getFullYear()&&f.push(String(b.getFullYear()));let g=f.join(", ");return`${g} ${e}`}function O({message:a,isStreaming:b,toolResults:c,modelNames:e,entryId:f,onFork:g,forking:h,onNavigate:i,prevAssistantEntryId:j,onEditContent:k,onSendMessage:l,showTimestamp:m,prevTimestamp:n,renderVisualCodeBlocks:o,cwd:p,onOpenImage:q,activeFilePath:r,agentRunning:s,onApplyToFile:t,onRunCode:u,onOpenFileAtLine:v,onAcceptDiff:w,compactionShadowCount:x,onLoadShadowed:y}){return"user"===a.role?(0,d.jsx)(P,{message:a,entryId:f,onFork:g,forking:h,onNavigate:i,prevAssistantEntryId:j,onEditContent:k,onOpenImage:q,compactionShadowCount:x,onLoadShadowed:y}):"assistant"===a.role?(0,d.jsx)(Q,{message:a,isStreaming:b,toolResults:c,modelNames:e,onSendMessage:l,showTimestamp:m,prevTimestamp:n,renderVisualCodeBlocks:o,cwd:p,activeFilePath:r,agentRunning:s,onApplyToFile:t,onRunCode:u,onOpenFileAtLine:v,onAcceptDiff:w}):"toolResult"===a.role?null:"custom"===a.role?(0,d.jsx)(R,{message:a,showTimestamp:m}):null}function P({message:a,entryId:b,onFork:c,forking:g,onNavigate:h,prevAssistantEntryId:i,onEditContent:j,onOpenImage:l,compactionShadowCount:m,onLoadShadowed:n}){let[o,p]=(0,e.useState)(!1),[q,r]=(0,e.useState)(null),[s,t]=(0,e.useState)(!1),u="string"==typeof a.content?a.content:a.content.filter(a=>"text"===a.type).map(a=>a.text).join("\n"),v="string"==typeof a.content?[]:a.content.filter(a=>"image"===a.type),D=v.flatMap(a=>{let b=(0,k.h5)(a);return b?[{src:b}]:[]}),E=N(a.timestamp),F=!!b&&!!c,G=!!i&&!!h;return(0,d.jsxs)(A,{hovered:o,onHoverChange:p,children:[(0,d.jsxs)(B,{children:[v.length>0&&(0,d.jsx)(C,{hasBody:!!u,children:v.map((a,b)=>{let c=(0,k.h5)(a);if(!c)return null;let e=a.path&&c.startsWith("/api/files/");return(0,d.jsx)("a",{href:c,target:e||!l?"_blank":void 0,rel:e||!l?"noreferrer":void 0,title:"Open image",style:{display:"block",cursor:"zoom-in"},onClick:a=>{l&&(a.preventDefault(),l(c,void 0,D))},children:(0,d.jsx)("img",{src:c,alt:"",style:{maxWidth:240,maxHeight:240,borderRadius:6,objectFit:"contain",display:"block",border:"1px solid rgba(59,130,246,0.15)"}})},b)})}),u]}),null!=m&&m>0&&(0,d.jsx)("div",{style:{marginTop:4,textAlign:"left"},children:null===q?(0,d.jsx)("button",{onClick:()=>{s||null!==q||(t(!0),(b&&n?n(b):Promise.resolve([])).then(a=>r(a)).catch(()=>r([])).finally(()=>t(!1)))},disabled:s,style:{padding:"5px 12px",fontSize:12,color:"var(--accent)",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,cursor:s?"wait":"pointer"},children:s?"Loading…":`Show ${m} compacted message${1===m?"":"s"}`}):(0,d.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:7,background:"var(--bg-panel)",padding:"8px 10px",maxHeight:360,overflowY:"auto"},children:[(0,d.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:6},children:[(0,d.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.05em"},children:"Compacted history"}),(0,d.jsx)("button",{onClick:()=>r(null),style:{padding:"2px 8px",fontSize:11,color:"var(--text-dim)",background:"transparent",border:"1px solid var(--border)",borderRadius:5,cursor:"pointer"},children:"Hide"})]}),0===q.length&&(0,d.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)"},children:"No earlier messages to show."}),q.map((a,b)=>{let c,e="string"==typeof(c=a.content)?c:Array.isArray(c)?c.filter(a=>!!a&&"object"==typeof a&&"text"===a.type&&"string"==typeof a.text).map(a=>a.text).join("\n"):"";if(!e.trim())return null;let g="user"===a.role?"User":"assistant"===a.role?"Assistant":"Tool";return(0,d.jsxs)("div",{style:{marginBottom:8,paddingBottom:8,borderBottom:b===q.length-1?"none":"1px solid var(--border)"},children:[(0,d.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",marginBottom:2},children:g}),(0,d.jsx)(f.T,{content:e,style:{fontSize:12.5}})]},b)})]})}),(0,d.jsxs)(w,{justify:"flex-end",style:{marginTop:3},children:[(0,d.jsx)(y,{visible:o,children:(0,d.jsx)(H,{text:u})}),(F||G)&&(0,d.jsxs)(y,{visible:o||!!g,children:[G&&(0,d.jsxs)(z,{iconOnlyOnMobile:!0,onClick:()=>{h(i),j?.(u)},title:"Edit from here — branches within this session",children:[(0,d.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("polyline",{points:"15 10 20 15 15 20"}),(0,d.jsx)("path",{d:"M4 4v7a4 4 0 0 0 4 4h12"})]}),"Edit from here"]}),F&&(0,d.jsxs)(z,{iconOnlyOnMobile:!0,onClick:()=>{c(b)},disabled:g,active:!!g,title:g?"Creating new session…":"New session — creates an independent copy from here",children:[(0,d.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("line",{x1:"6",y1:"3",x2:"6",y2:"15"}),(0,d.jsx)("circle",{cx:"18",cy:"6",r:"3"}),(0,d.jsx)("circle",{cx:"6",cy:"18",r:"3"}),(0,d.jsx)("path",{d:"M18 9a9 9 0 0 1-9 9"})]}),g?"Creating…":"New session"]})]}),E&&(0,d.jsx)(x,{children:E})]})]})}function Q({message:a,isStreaming:b,toolResults:c,modelNames:f,onSendMessage:g,showTimestamp:h,prevTimestamp:i,renderVisualCodeBlocks:j,cwd:k,activeFilePath:l,agentRunning:m,onApplyToFile:o,onRunCode:p,onOpenFileAtLine:q,onAcceptDiff:r}){var s;let t,u=h?N(a.timestamp):null,v=a.content??K,[z,A]=(0,e.useState)(!1);(0,e.useRef)(null),(0,e.useRef)(new Map);let B=(0,e.useRef)(v),[C,F]=(0,e.useState)(null),[G,L]=(0,e.useState)(new Map);B.current=v;let M=(0,e.useMemo)(()=>{if(!a.timestamp||!i)return;let b=Math.round((a.timestamp-i)/1e3);return b>0?b:void 0},[a.timestamp,i]),O=(0,e.useMemo)(()=>(function(a,b){let c=new Map;if(!a||!b)return c;for(let[d,e]of a){if(!e.timestamp)continue;let a=Math.round((e.timestamp-b)/1e3);a>0&&c.set(d,a)}return c})(c,a.timestamp),[c,a.timestamp]),P=(0,e.useMemo)(()=>(function(a,b,c){let d=[],e=[],f=[];for(let[g,h]of a.entries()){if("thinking"===h.type){e.push({content:h.thinking,duration:b.get(g)??c});continue}if("toolCall"===h.type){d.push(h);continue}f.push(h)}return{tools:d,thinkingBlocks:e,visibleBlocks:f}})(v,G,M),[v,G,M]),R=(0,e.useMemo)(()=>v.filter(a=>"text"===a.type).map(a=>a.text).join("\n"),[v]),S=(0,e.useMemo)(()=>Math.round(function(a){let b=0;for(let c of a){if("text"===c.type){b+=c.text.length;continue}if("thinking"===c.type){b+=c.thinking.length;continue}"toolCall"===c.type&&(b+=JSON.stringify(c.input??{}).length)}return b}(v)/4),[v]);return(0,d.jsxs)(D,{hovered:z,onHoverChange:A,children:[(0,d.jsx)(I,{provider:a.provider,model:a.model,modelNames:f,isStreaming:b,estimatedTokens:S,tps:C}),(0,d.jsxs)(E,{children:[!b&&"error"===a.stopReason&&a.errorMessage?.trim()&&(0,d.jsxs)("div",{role:"alert","data-message-surface":"assistant-error",style:{border:"1px solid rgba(248,113,113,0.35)",borderRadius:6,background:"rgba(248,113,113,0.07)",padding:"8px 10px",color:"#f87171",fontSize:12,lineHeight:1.5,overflowWrap:"anywhere"},children:[(0,d.jsx)("strong",{style:{display:"block",marginBottom:2,fontWeight:600},children:"Model response failed"}),a.errorMessage.trim()]}),(P.tools.length>0||P.thinkingBlocks.length>0)&&(0,d.jsx)(J.kD,{tools:P.tools,results:c,durations:O,thinkingBlocks:P.thinkingBlocks,isStreaming:b,cwd:k}),P.visibleBlocks.map((a,e)=>(0,d.jsx)(n,{block:a,toolResults:c,isStreaming:b,toolCallDurations:O,onSendMessage:g,renderVisualCodeBlocks:j,cwd:k,activeFilePath:l,agentRunning:m,onApplyToFile:o,onRunCode:p,onOpenFileAtLine:q,onAcceptDiff:r},e))]}),(0,d.jsxs)(w,{style:{gap:8},children:[a.usage&&!b&&(0,d.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)"},children:(s=a.usage,t=[],s.input&&t.push(`${s.input.toLocaleString()} in`),s.output&&t.push(`${s.output.toLocaleString()} out`),s.cacheRead&&t.push(`${s.cacheRead.toLocaleString()} cache`),s.cost?.total&&t.push(`$${s.cost.total.toFixed(4)}`),t.join(" \xb7 "))}),R&&!b&&(0,d.jsx)(y,{visible:z,children:(0,d.jsx)(H,{text:R})}),u&&(0,d.jsx)(x,{alignEnd:!0,children:u})]})]})}function R({message:a,showTimestamp:b}){if(!a.display)return null;let c=b?N(a.timestamp):null,e="string"==typeof a.content?a.content:a.content.filter(a=>"text"===a.type).map(a=>a.text).join("\n"),g="subagent-notify"===a.customType,h=e.match(/^Background task (completed|failed|paused):\s*\*\*(.+?)\*\*/),i=h?"completed"===h[1]?"✅":"failed"===h[1]?"❌":"⏸":g?"\uD83E\uDD16":"ℹ";return(0,d.jsxs)("div",{style:{marginBottom:12},children:[(0,d.jsx)(F,{accent:g?"subagent":"default",children:(0,d.jsx)(G,{icon:i,children:(0,d.jsx)("div",{"data-message-surface":"custom-body",children:(0,d.jsx)(f.T,{content:e,style:{fontSize:13}})})})}),(c||h)&&(0,d.jsxs)(w,{justify:"flex-end",style:{marginTop:3},children:[h&&(0,d.jsx)(x,{children:h[2]}),c&&(0,d.jsx)(x,{children:c})]})]})}},63956:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,81921,23)),Promise.resolve().then(c.t.bind(c,60440,23)),Promise.resolve().then(c.t.bind(c,84342,23)),Promise.resolve().then(c.t.bind(c,82265,23)),Promise.resolve().then(c.t.bind(c,35421,23)),Promise.resolve().then(c.t.bind(c,61335,23)),Promise.resolve().then(c.t.bind(c,70664,23)),Promise.resolve().then(c.bind(c,74661))},65950:(a,b,c)=>{"use strict";c.d(b,{aU:()=>f,cx:()=>e,nS:()=>r,Rd:()=>q,wY:()=>p,tG:()=>m});class d{#a;#b;constructor(a){this.#b=new Map,this.#a=a}get(a){if(!this.#b.has(a))return;let b=this.#b.get(a);return this.#b.delete(a),this.#b.set(a,b),b}set(a,b){for(this.#b.has(a)&&this.#b.delete(a);this.#b.size>=this.#a;){let a=this.#b.keys().next().value;if(void 0===a)break;this.#b.delete(a)}this.#b.set(a,b)}delete(a){this.#b.delete(a)}get size(){return this.#b.size}}let e="github-light",f="github-dark",g=new d(10),h=new d(200),i=new Set,j=new Map,k=null;function l(a,b,c){let d=a.slice(0,100),e=a.length>100?a.slice(-100):"";return`${b}:${c}:${a.length}:${d}:${e}`}function m(a){return void 0===a||0===a?{}:{fontStyle:1&a?"italic":void 0,fontWeight:2&a?700:void 0,textDecorationLine:4&a?"underline":void 0}}function n(){return k||(k=Promise.resolve().then(c.bind(c,78908)).then(a=>{if(0===i.size){for(let b of Object.keys(a.bundledLanguages??{}))i.add(b.toLowerCase());for(let b of a.bundledLanguagesInfo??[]){let a=b.id.toLowerCase();for(let c of b.aliases??[])j.set(c.toLowerCase(),a)}}return a})),k}async function o(a,b=e,c=f){let d=`${a}:${b}:${c}`,h=g.get(d);if(h)return h;let i=n().then(({createHighlighter:d})=>d({langs:[a],themes:[b,c]})).catch(a=>{throw g.delete(d),a});return g.set(d,i),i}function p(a,b,c,d){let g=q(a,b,c);if(g)return g;let k=c?f:e,m=b.trim().toLowerCase();if(!m)return null;let p=l(a,m,k);return n().then(()=>{let c,g=(c=b.trim().toLowerCase())?i.has(c)?c:j.get(c)??null:null;return g?o(g,e,f).then(b=>{let c=b.codeToTokens(a,{lang:g,theme:k}),e={bg:c.bg??"transparent",fg:c.fg??"inherit",tokens:c.tokens};return h.set(p,e),d(e),e}):null}).catch(a=>{console.warn("[Shiki] highlight failed:",a)}),null}function q(a,b,c){let d=b.trim().toLowerCase();if(!d)return null;let g=l(a,d,c?f:e);return h.get(g)??null}function r(a){return{bg:"transparent",fg:"inherit",tokens:a.replace(/\r\n/g,"\n").replace(/\r/g,"\n").split("\n").map(a=>""===a?[]:[{color:"inherit",content:a}])}}},73383:(a,b,c)=>{"use strict";c.d(b,{pm:()=>k});var d=c(48249),e=c(67484),f=c(54097),g=c(6954),h=c(40648);function i({expanded:a,onToggle:b,durationLabel:c,isStreaming:e=!1,leading:f,label:j="Thinking",buttonStyle:k,labelStyle:l,durationStyle:m}){return(0,d.jsxs)(g.R,{expanded:a,onToggle:b,buttonStyle:{width:"100%",display:"flex",alignItems:"center",gap:7,minWidth:0,textAlign:"left",cursor:"pointer",border:"none",background:"transparent",color:"var(--text-muted)",...k},children:[f,(0,d.jsx)("span",{style:{fontSize:12,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0,flex:1,...l},children:e?(0,d.jsx)(h.n,{children:j}):j}),c&&(0,d.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",fontVariantNumeric:"tabular-nums",flexShrink:0,...m},children:c})]})}function j({content:a,contentStyle:b}){return(0,d.jsx)(f.p,{style:{color:"var(--text-muted)",fontSize:12,lineHeight:1.6,whiteSpace:"pre-wrap",wordBreak:"break-word",...b},children:(0,d.jsx)("div",{style:{padding:"8px 10px"},children:a})})}function k({content:a,durationLabel:b,isStreaming:c=!1,leading:g,label:h="Thinking",containerStyle:l,buttonStyle:m,labelStyle:n,durationStyle:o,contentStyle:p}){let[q,r]=(0,e.useState)(!1);return(0,d.jsxs)(f.t,{kind:"thinking",style:l,children:[(0,d.jsx)(i,{expanded:q,onToggle:()=>r(a=>!a),durationLabel:b,isStreaming:c,leading:g,label:h,buttonStyle:m,labelStyle:n,durationStyle:o}),q&&(0,d.jsx)(j,{content:a,contentStyle:p})]})}},78335:()=>{},80251:(a,b,c)=>{"use strict";function d(a,b){for(let c of b){let b=a[c];if(null!=b&&""!==b)return String(b)}return null}function e(a,b=60){let c=a.replace(/\s+/g," ").trim();return c.length<=b?c:`${c.slice(0,Math.max(0,b-3))}...`}function f(a){let b=a.toLowerCase().split("__").filter(Boolean);return b[b.length-1]??a.toLowerCase()}function g(a,b=120){let c=Object.keys(a);return 0===c.length?"":"command"in a?String(a.command).slice(0,b):"cmd"in a?String(a.cmd).slice(0,b):"path"in a?String(a.path).slice(0,b):"file_path"in a?String(a.file_path).slice(0,b):"pattern"in a?String(a.pattern).slice(0,b):"query"in a?String(a.query).slice(0,b):String(a[c[0]]).slice(0,b)}function h(a){let b=a.toolName||"tool",c=f(b),g=a.input??{};if(["bash","execute","run","shell","exec_command","execute_command"].includes(c))return{canonicalName:c,kind:"terminal",label:"Shell",summary:e(d(g,["command","cmd"])??b,60)};if(["read","readfile","read_file"].includes(c))return{canonicalName:c,kind:"read",label:"Read",summary:e(d(g,["file_path","path"])??b,60)};if(["write","edit","write_file","create_file","notebook_edit"].includes(c)){let a,f=d(g,["file_path","path","notebook_path","filename"]);return{canonicalName:c,kind:"edit",label:"Edit",summary:e(f?(a=f.split(/[\\/]/).filter(Boolean))[a.length-1]??f:b,60)}}if(["search","grep","glob","find","find_files","websearch"].includes(c))return{canonicalName:c,kind:"search",label:"Search",summary:e(d(g,["pattern","query","glob"])??b,60)};if(["subagent","agent"].includes(c))return{canonicalName:c,kind:"agent",label:"Agent",summary:e([d(g,["agent","name","agentName"]),d(g,["prompt","task","message"])].filter(Boolean).join(": ")||b,60)};let h=d(g,["command","cmd","path","file_path","pattern","query","glob","prompt","description"])??function(a){try{return JSON.stringify(a)}catch{return String(a)}}(g)??b;return{canonicalName:c,kind:"tool",label:e(b,60),summary:e(h,60)}}c.d(b,{WI:()=>f,Wm:()=>g,wS:()=>h})},82704:()=>{},86364:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>e});var d=c(88868);let e=async a=>[{type:"image/svg+xml",sizes:"any",url:(0,d.fillMetadataSegment)(".",await a.params,"icon.svg",!0)+"?6eceb6fbd1a5bb90"}]},96487:()=>{}};
|
|
260
|
+
\`\`\``).find(a=>"widget"===a.type),b?.type==="widget"?{title:b.title,code:b.code}:null);if(c)return(0,d.jsx)(s.u,{code:c.code,isStreaming:!1,title:c.title,onSendMessage:i})}if("report-gallery"===b.trim().toLowerCase()){let b=function(a){try{let b=JSON.parse(a);if(!Array.isArray(b))return null;let c=b.flatMap(a=>a&&"object"==typeof a&&"string"==typeof a.src&&a.src.trim()?[{src:a.src.trim(),alt:"string"==typeof a.alt&&a.alt.trim()?a.alt.trim():void 0,caption:"string"==typeof a.caption&&a.caption.trim()?a.caption.trim():void 0}]:[]);return c.length>0?c.slice(0,12):null}catch{return null}}(a);if(b)return(0,d.jsx)(H,{items:b,baseFilePath:f,cwd:g,onOpenLocalFile:h})}return j&&(w=b.trim().toLowerCase(),(x=a.trim())&&("svg"===w||"xml"===w&&/^<svg[\s>]/i.test(x)?/^<svg[\s>]/i.test(x):!("html"!==w||/<!doctype|<html[\s>]|<head[\s>]|<body[\s>]/i.test(x))&&/^<(style|svg|div|section|article|main|figure|canvas)\b/i.test(x)))?(0,d.jsx)(s.u,{code:a,isStreaming:!1,title:`${b||"visual"} preview`,onSendMessage:i}):(0,d.jsx)(q,{code:a,language:b,variant:c,isStreaming:e,testAsyncDelayMs:k,activeFilePath:l,agentRunning:m,onApplyToFile:n,onRunCode:o})}function L({children:a,className:b,node:c,baseFilePath:e,cwd:f,onOpenLocalFile:g,onWidgetSendMessage:h,renderVisualCodeBlocks:i=!1,isStreaming:j=!1,testAsyncCodeDelayMs:k=0,activeFilePath:l,agentRunning:m,onApplyToFile:n,onRunCode:o,onOpenFileAtLine:p,onAcceptDiff:q,...r}){let s=("string"==typeof a?a:Array.isArray(a)?a.map(a=>"string"==typeof a?a:"").join(""):"").replace(/\n$/,""),t=B(b);return"data-block"in r?(0,d.jsx)(K,{code:s,language:t,variant:"chat",isStreaming:j||!!r["data-incomplete"],baseFilePath:e,cwd:f,onOpenLocalFile:g,onWidgetSendMessage:h,renderVisualCodeBlocks:i,testAsyncCodeDelayMs:k,activeFilePath:l,agentRunning:m,onApplyToFile:n,onRunCode:o,onAcceptDiff:q}):(0,d.jsx)(F,{value:s,baseFilePath:e,cwd:f,onOpenLocalFile:g,onOpenFileAtLine:p})}function M({content:a,className:b="markdown-body",style:c,codeBlockVariant:m="chat",baseFilePath:o,cwd:p,onOpenLocalFile:q,onWidgetSendMessage:r,renderVisualCodeBlocks:s=!1,enableImageGallery:t=!1,isStreaming:u=!1,renderer:x="react-markdown",testAsyncCodeDelayMs:z=0,activeFilePath:A,agentRunning:C,onApplyToFile:D,onRunCode:E,onOpenFileAtLine:H,onAcceptDiff:N}){let O,P,{isDark:Q}=(0,l.D)(),R=t?function(a){let b=a.split("\n"),c=[],d=0;for(;d<b.length;){if(!G(b[d])){c.push(b[d]),d+=1;continue}let a=[],e=d;for(;e<b.length;){let c=G(b[e]);if(!c)break;let d=e+1,f=d;for(;f<b.length&&!b[f].trim();)f+=1;let g=f<b.length?function(a){let b=/^\s*(?:_([^_]+)_|\*([^*]+)\*)\s*$/.exec(a);return(b?.[1]??b?.[2]??"").trim()||null}(b[f]):null;g&&(c.caption=g,d=f+1),a.push(c);let h=d;for(;h<b.length&&!b[h].trim();)h+=1;if(!G(b[h])){e=d;break}e=h}if(a.length>1||a.some(a=>a.caption)){c.push(["```report-gallery",JSON.stringify(a,null,2),"```"].join("\n")),d=e;continue}c.push(b[d]),d+=1}return c.join("\n")}(a):a,S=H?(O=R.split("\n"),P=!1,O.map(a=>/^\s*(```|~~~)/.test(a)?(P=!P,a):P||/\]\([^)]*$/.test(a)?a:a.replace(/(^|[\s([{"'])((?:\.{1,2}\/|\/|~\/|[\w@.-]+\/)[\w@./+-]+\.[A-Za-z0-9]{1,12}:\d+)\b/g,(a,b,c)=>`${b}[${c}](${c})`)).join("\n")):R,T=(0,e.useMemo)(()=>u?{cjk:i.h,math:j.D,mermaid:k.a}:{cjk:i.h,math:j.D,mermaid:k.a,code:function(a,b=[n.cx,n.aU]){return y(),{name:"shiki",type:"code-highlighter",getSupportedLanguages:()=>[...v],getThemes:()=>b,supportsLanguage(a){let b;return 0===v.size||null!==((b=a.trim().toLowerCase())?v.has(b)?b:w.get(b)??null:null)},highlight(b,c){let d=b.language,e=(0,n.wY)(b.code,d,a,a=>{c?.({tokens:a.tokens,bg:a.bg,fg:a.fg})});return e?{tokens:e.tokens,bg:e.bg,fg:e.fg}:(y(),null)}}}(Q)},[Q,u]);return"streamdown"!==x||o||t?(0,d.jsx)("div",{className:b,style:c,children:(0,d.jsx)(f.oz,{remarkPlugins:[g.A],components:{code({className:a,children:b,node:c}){let e=B(a),f=String(b),g=f.replace(/\n$/,"");return a?.includes("language-")||f.includes("\n")?(0,d.jsx)(K,{code:g,language:e,variant:m,isStreaming:u,baseFilePath:o,cwd:p,onOpenLocalFile:q,onWidgetSendMessage:r,renderVisualCodeBlocks:s,testAsyncCodeDelayMs:z,activeFilePath:A,agentRunning:C,onApplyToFile:D,onRunCode:E,onAcceptDiff:N}):(0,d.jsx)(F,{value:g,baseFilePath:o,cwd:p,onOpenLocalFile:q,onOpenFileAtLine:H})},pre:({children:a})=>(0,d.jsx)(d.Fragment,{children:a}),a:({href:a,children:b,node:c,...e})=>(0,d.jsx)(I,{...e,href:a,baseFilePath:o,cwd:p,onOpenLocalFile:q,onOpenFileAtLine:H,children:b}),img:({src:a,alt:b,node:c,...e})=>(0,d.jsx)(J,{...e,src:a,alt:b,baseFilePath:o,cwd:p,onOpenLocalFile:q})},children:S})}):(0,d.jsx)("div",{className:b,style:c,children:(0,d.jsx)(h.jH,{mode:u?"streaming":"static",isAnimating:!!u,plugins:T,components:{code:({children:a,className:b,node:c,...e})=>(0,d.jsx)(L,{...e,node:c,className:b,baseFilePath:o,cwd:p,onOpenLocalFile:q,onWidgetSendMessage:r,renderVisualCodeBlocks:s,isStreaming:u,testAsyncCodeDelayMs:z,activeFilePath:A,agentRunning:C,onApplyToFile:D,onRunCode:E,onOpenFileAtLine:H,onAcceptDiff:N,children:a}),a:({href:a,children:b,node:c,...e})=>(0,d.jsx)(I,{...e,href:a,baseFilePath:o,cwd:p,onOpenLocalFile:q,onOpenFileAtLine:H,children:b}),img:({src:a,alt:b,node:c,...e})=>(0,d.jsx)(J,{...e,src:a,alt:b,baseFilePath:o,cwd:p,onOpenLocalFile:q})},children:S})})}},51810:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,81921,23))},52515:(a,b,c)=>{"use strict";c.d(b,{K$:()=>h,Ph:()=>g,Tg:()=>m,fj:()=>f,mK:()=>i,ml:()=>j,nG:()=>k,pg:()=>l,v7:()=>e});var d=c(48249);function e(a){return a<1024?`${a} B`:a<1048576?`${(a/1024).toFixed(1)} KB`:`${(a/1048576).toFixed(1)} MB`}function f({children:a,style:b}){return(0,d.jsx)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden",...b},children:a})}function g({children:a,style:b}){return(0,d.jsx)("div",{style:{flex:1,overflow:"auto",background:"var(--bg)",...b},children:a})}function h({pathLabel:a,title:b,trailing:c,style:e}){return(0,d.jsxs)("div",{"data-file-viewer-surface":"status-bar",style:{display:"flex",alignItems:"center",gap:12,padding:"4px 16px",borderBottom:"1px solid var(--border)",fontSize:11,color:"var(--text-dim)",background:"var(--bg)",flexShrink:0,...e},children:[(0,d.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"var(--font-mono)"},title:b??a,children:a}),c]})}function i({watching:a}){return(0,d.jsxs)("span",{title:a?"Live sync active":"Not watching",style:{display:"flex",alignItems:"center",gap:4,color:a?"#4ade80":"var(--text-dim)"},children:[(0,d.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:a?"#4ade80":"var(--border)",display:"inline-block",boxShadow:a?"0 0 4px #4ade80":"none"}}),a?"live":"static"]})}function j({children:a,onClick:b,title:c,disabled:e=!1,active:f=!1,emphasis:g="default",style:h}){let i="primary"==g,k="danger"==g;return(0,d.jsx)("button",{"data-file-viewer-surface":"toolbar-button",onClick:b,disabled:e,title:c,style:{padding:"2px 10px",fontSize:11,cursor:e?"not-allowed":"pointer",background:i?"var(--accent)":k?"rgba(239,68,68,0.1)":f?"var(--bg-selected)":"var(--bg-hover)",color:i?"#fff":k?"#ef4444":f?"var(--text)":"var(--text-muted)",border:`1px solid ${i?"var(--accent)":k?"rgba(239,68,68,0.3)":"var(--border)"}`,borderRadius:5,fontWeight:f||i||k?600:400,opacity:e?.6:1,...h},children:a})}function k({children:a,tone:b="muted",style:c}){return(0,d.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",padding:24,color:"error"===b?"#f87171":"var(--text-muted)",fontSize:13,textAlign:"center",...c},children:a})}function l({diff:a,emptyLabel:b="No changes"}){if(!a.some(a=>"unchanged"!==a.type))return(0,d.jsx)("div",{style:{padding:"12px 16px",fontSize:12,color:"var(--text-dim)",fontFamily:"var(--font-mono)"},children:b});let c=new Set(a.flatMap((a,b)=>"unchanged"!==a.type?[b]:[])),e=new Set;for(let b of c)for(let c=Math.max(0,b-3);c<=Math.min(a.length-1,b+3);c++)e.add(c);let f=[],g=0;for(;g<a.length;)if(e.has(g)){let b=[];for(;g<a.length&&e.has(g);)b.push(a[g]),g++;f.push({hidden:!1,lines:b})}else{let b=0;for(;g<a.length&&!e.has(g);)b++,g++;f.push({hidden:!0,count:b})}let h=[],i=1;for(let b of a)"removed"===b.type?h.push(0):h.push(i++);let j=0;return(0,d.jsx)("div",{style:{fontFamily:"var(--font-mono)",fontSize:13,lineHeight:1.6},children:f.map((a,b)=>{if(a.hidden){let c=(0,d.jsxs)("div",{style:{padding:"2px 16px",color:"var(--text-dim)",background:"var(--bg-panel)",fontSize:11,borderTop:"1px solid var(--border)",borderBottom:"1px solid var(--border)"},children:["... ",a.count," unchanged lines ..."]},b);return j+=a.count,c}let c=a.lines.map((a,b)=>{let c=h[j+b],e="added"===a.type?"rgba(0,200,80,0.12)":"removed"===a.type?"rgba(240,60,60,0.14)":"transparent",f="added"===a.type?"+":"removed"===a.type?"-":" ",g="added"===a.type?"#4ade80":"removed"===a.type?"#f87171":"var(--text-dim)";return(0,d.jsxs)("div",{style:{display:"flex",background:e,borderLeft:"added"===a.type?"3px solid #4ade80":"removed"===a.type?"3px solid #f87171":"3px solid transparent"},children:[(0,d.jsx)("span",{style:{minWidth:44,padding:"0 8px 0 16px",textAlign:"right",color:"var(--text-dim)",userSelect:"none",fontSize:11,lineHeight:1.6,borderRight:"1px solid var(--border)",background:"var(--bg-panel)",flexShrink:0},children:"removed"===a.type?a.lineNo:c||""}),(0,d.jsx)("span",{style:{minWidth:16,padding:"0 6px",color:g,userSelect:"none",flexShrink:0,fontWeight:600},children:f}),(0,d.jsx)("span",{style:{flex:1,padding:"0 8px 0 0",whiteSpace:"pre",color:"var(--text)",overflowX:"auto"},children:a.text||"\xa0"})]},b)});return j+=a.lines.length,(0,d.jsx)("div",{children:c},b)})})}function m({options:a}){return(0,d.jsx)("div",{"data-file-viewer-surface":"segmented-toggle",style:{display:"flex",borderRadius:5,overflow:"hidden",border:"1px solid var(--border)"},children:a.map((a,b)=>(0,d.jsx)("button",{onClick:a.onClick,style:{padding:"2px 8px",fontSize:11,border:"none",borderLeft:0===b?"none":"1px solid var(--border)",cursor:"pointer",background:a.active?"var(--bg-selected)":"var(--bg-hover)",color:a.active?"var(--text)":"var(--text-muted)",fontWeight:a.active?600:400},children:a.label},a.key))})}},54097:(a,b,c)=>{"use strict";c.d(b,{p:()=>f,t:()=>e});var d=c(48249);function e({children:a,style:b,kind:c}){return(0,d.jsx)("div",{"data-disclosure-surface":"panel","data-disclosure-kind":c,style:{border:"1px solid var(--border)",borderRadius:6,overflow:"hidden",background:"var(--bg-panel)",...b},children:a})}function f({children:a,style:b}){return(0,d.jsx)("div",{"data-disclosure-surface":"body",style:{borderTop:"1px solid var(--border)",...b},children:a})}},57703:(a,b,c)=>{"use strict";c.d(b,{V:()=>h});var d=c(48249),e=c(6954),f=c(40648),g=c(41044);function h({expanded:a,onToggle:b,status:c,title:i,summary:j,durationLabel:k,leading:l,titleTooltip:m,summaryTooltip:n,buttonStyle:o,titleStyle:p,summaryStyle:q,durationStyle:r}){return(0,d.jsxs)(e.R,{expanded:a,onToggle:b,buttonStyle:o,children:[l,(0,d.jsx)("span",{title:m??i,style:{color:"var(--text-muted)",fontFamily:"var(--font-mono)",fontWeight:600,fontSize:11,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flexShrink:+!j,minWidth:0,flex:j?void 0:1,...p},children:"running"===c?(0,d.jsx)(f.n,{children:i}):i}),j?(0,d.jsx)("span",{title:n??j,style:{color:"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:11,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,minWidth:0,...q},children:"running"===c?(0,d.jsx)(f.n,{children:j}):j}):(0,d.jsx)("span",{style:{flex:1,minWidth:0}}),(0,d.jsx)(g.U1,{status:c}),k?(0,d.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",fontVariantNumeric:"tabular-nums",flexShrink:0,...r},children:k}):null]})}},60125:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,33071,23))},62418:(a,b,c)=>{"use strict";c.d(b,{D:()=>O});var d=c(48249),e=c(67484),f=c(51415),g=c(40648),h=c(73383),i=c(8033),j=c(41044),k=c(129),l=c(31218),m=c(7952);function n({block:a,toolResults:b,isStreaming:c,streamingDuration:e,toolCallDurations:f,onSendMessage:g,renderVisualCodeBlocks:h,cwd:i,activeFilePath:j,agentRunning:l,onApplyToFile:m,onRunCode:p,onOpenFileAtLine:q,onAcceptDiff:t}){if("text"===a.type)return(0,d.jsx)(o,{block:a,isStreaming:c,onSendMessage:g,renderVisualCodeBlocks:h,cwd:i,activeFilePath:j,agentRunning:l,onApplyToFile:m,onRunCode:p,onOpenFileAtLine:q,onAcceptDiff:t});if("image"===a.type)return(0,d.jsx)(k.O7,{images:[a]});if("thinking"===a.type)return(0,d.jsx)(r,{block:a,duration:e,isStreaming:c});let u=b?.get(a.toolCallId),v=f?.get(a.toolCallId);return(0,d.jsx)(s,{block:a,result:u,duration:v,isStreaming:c,cwd:i})}function o({block:a,isStreaming:b,onSendMessage:c,renderVisualCodeBlocks:e,cwd:f,activeFilePath:g,agentRunning:h,onApplyToFile:i,onRunCode:j,onOpenFileAtLine:k,onAcceptDiff:n}){let r=a.text,s=(0,m.aH)(r);if(!s.some(a=>"widget"===a.type)){if(b&&(0,m.qk)(r)){let a=s.filter(a=>"text"===a.type).map(a=>a.content).join("\n\n");return(0,d.jsxs)(d.Fragment,{children:[a&&(0,d.jsx)(p,{text:a,isStreaming:b,onSendMessage:c,renderVisualCodeBlocks:e,cwd:f,activeFilePath:g,agentRunning:h,onApplyToFile:i,onRunCode:j,onOpenFileAtLine:k,onAcceptDiff:n}),(0,d.jsx)(q,{})]})}return(0,d.jsx)(p,{text:r,isStreaming:b,onSendMessage:c,renderVisualCodeBlocks:e,cwd:f,activeFilePath:g,agentRunning:h,onApplyToFile:i,onRunCode:j,onOpenFileAtLine:k,onAcceptDiff:n})}return(0,d.jsx)(d.Fragment,{children:s.map((a,m)=>"text"===a.type?(0,d.jsx)(p,{text:a.content,isStreaming:b,onSendMessage:c,renderVisualCodeBlocks:e,cwd:f,activeFilePath:g,agentRunning:h,onApplyToFile:i,onRunCode:j,onOpenFileAtLine:k,onAcceptDiff:n},m):(0,d.jsx)(l.u,{code:a.code,isStreaming:!!a.partial,title:a.title,showOverlay:a.showOverlay,onSendMessage:c},m))})}function p({text:a,isStreaming:b,onSendMessage:c,renderVisualCodeBlocks:g,cwd:h,activeFilePath:i,agentRunning:j,onApplyToFile:l,onRunCode:m,onOpenFileAtLine:n,onAcceptDiff:o}){let q=(0,e.useMemo)(()=>(0,k.qn)(a,h),[h,a]);return(0,d.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8*(q.length>0)},children:[(0,d.jsx)(f.T,{content:a,cwd:h,onWidgetSendMessage:c,renderVisualCodeBlocks:g,isStreaming:b,renderer:"streamdown",activeFilePath:i,agentRunning:j,onApplyToFile:l,onRunCode:m,onOpenFileAtLine:n,onAcceptDiff:o}),q.length>0&&(0,d.jsx)(k.eR,{imagePaths:q})]})}function q(){return(0,d.jsx)(g.r,{height:88,style:{border:"1px solid var(--border)"}})}function r({block:a,duration:b,isStreaming:c}){return(0,d.jsx)(h.pm,{content:a.thinking,durationLabel:void 0!==b?`${b}s`:null,isStreaming:c,buttonStyle:{width:"100%",padding:"6px 10px",fontSize:12},containerStyle:{fontSize:13},contentStyle:{background:"var(--bg-panel)"}})}function s({block:a,result:b,duration:c,isStreaming:e,cwd:f}){let g=(0,j.s2)(b,e),h=(0,j.Gb)(g),k="bash"===a.toolName;return(0,d.jsx)(i.Dm,{tool:a,result:b,status:g,durationLabel:void 0!==c?`${c}s`:null,cwd:f,titleStyle:{color:h},collapsedPreviewBackground:`color-mix(in srgb, ${h} 5%, transparent)`,buttonStyle:{display:"flex",alignItems:"center",gap:7,width:"100%",padding:"6px 10px",background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:12,textAlign:"left",minWidth:0},containerStyle:{border:`1px solid color-mix(in srgb, ${h} 38%, transparent)`,background:`color-mix(in srgb, ${h} 8%, transparent)`},notebookStyle:k})}var t=c(39868);function u(a=768){let[b,c]=(0,e.useState)(!1);return b}function v({children:a,hovered:b,onHoverChange:c,style:e}){return(0,d.jsx)("div",{style:e,onMouseEnter:()=>c?.(!0),onMouseLeave:()=>c?.(!1),"data-message-hovered":b?"true":"false",children:a})}function w({children:a,justify:b="flex-start",style:c}){let e=u();return(0,d.jsx)("div",{"data-message-surface":"footer",style:{display:"flex",alignItems:"center",justifyContent:b,gap:e?4:6,marginTop:4,...c},children:a})}function x({children:a,alignEnd:b=!1,style:c}){return(0,d.jsx)("span",{"data-message-surface":"timestamp",style:{fontSize:10,color:"var(--text-dim)",marginLeft:b?"auto":void 0,...c},children:a})}function y({children:a,visible:b,style:c}){return(0,d.jsx)("div",{style:{display:"flex",gap:3,opacity:+!!b,pointerEvents:b?"auto":"none",transition:"opacity 0.12s",...c},children:a})}function z({children:a,onClick:b,disabled:c=!1,title:e,active:f=!1,style:g,onMouseEnterColor:h="var(--accent)",onMouseLeaveColor:i="var(--text-dim)",iconOnlyOnMobile:j=!1}){let k=u();return(0,d.jsx)("button",{onClick:b,disabled:c,title:e,style:{display:"flex",alignItems:"center",gap:4,padding:"3px 8px",height:22,background:"none",border:"none",borderRadius:5,color:f?"var(--accent)":"var(--text-dim)",cursor:c?"not-allowed":"pointer",fontSize:11,fontWeight:400,whiteSpace:"nowrap",transition:"color 0.12s",...g},onMouseEnter:a=>{c||(a.currentTarget.style.color=h)},onMouseLeave:a=>{c||(a.currentTarget.style.color=i)},children:j&&k&&Array.isArray(a)?a[0]:a})}function A({children:a,hovered:b,onHoverChange:c}){let e=u();return(0,d.jsx)(v,{hovered:b,onHoverChange:c,style:{marginBottom:e?12:16,display:"flex",flexDirection:"column",alignItems:"flex-end"},children:a})}function B({children:a}){let b=u();return(0,d.jsx)("div",{style:{display:"flex",alignItems:"flex-end",gap:b?4:6,maxWidth:b?"92%":"85%"},children:(0,d.jsx)("div",{style:{flex:1,minWidth:0,background:"var(--user-bg)",border:"1px solid rgba(59,130,246,0.2)",borderRadius:12,padding:b?"7px 10px":"8px 12px",fontSize:14,lineHeight:1.6,color:"var(--text)",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:a})})}function C({children:a,hasBody:b=!1}){let c=u();return(0,d.jsx)("div",{style:{display:"flex",gap:c?4:6,flexWrap:"wrap",marginBottom:b?c?6:8:0},children:a})}function D({children:a,hovered:b,onHoverChange:c}){let e=u();return(0,d.jsx)(v,{hovered:b,onHoverChange:c,style:{marginBottom:e?12:16},children:a})}function E({children:a}){let b=u();return(0,d.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:b?6:8},children:a})}function F({children:a,accent:b="default"}){let c="subagent"===b;return(0,d.jsx)("div",{"data-message-surface":"custom-card","data-message-accent":b,style:{padding:"8px 14px",borderRadius:8,border:`1px solid ${c?"rgba(99,102,241,0.25)":"var(--border)"}`,background:c?"rgba(99,102,241,0.05)":"var(--bg-panel)",fontSize:13,lineHeight:1.6,color:"var(--text-muted)"},children:a})}function G({icon:a,children:b}){return(0,d.jsxs)("div",{"data-message-surface":"custom-icon-row",style:{display:"flex",alignItems:"flex-start",gap:8},children:[(0,d.jsx)("span",{style:{flexShrink:0,fontSize:14},children:a}),(0,d.jsx)("div",{style:{flex:1,minWidth:0},children:b})]})}function H({text:a,title:b="Copy message",style:c}){let[f,g]=(0,e.useState)(!1),h=u();return(0,d.jsxs)("button",{onClick:()=>{(0,t.D)(a).then(()=>{g(!0),setTimeout(()=>g(!1),1500)})},title:b,style:{display:"flex",alignItems:"center",gap:4,padding:"3px 8px",height:22,background:"none",border:"none",borderRadius:5,color:f?"var(--accent)":"var(--text-dim)",cursor:"pointer",fontSize:11,fontWeight:400,whiteSpace:"nowrap",transition:"color 0.12s",...c},onMouseEnter:a=>{f||(a.currentTarget.style.color="var(--accent)")},onMouseLeave:a=>{f||(a.currentTarget.style.color="var(--text-dim)")},children:[f?(0,d.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:(0,d.jsx)("polyline",{points:"20 6 9 17 4 12"})}):(0,d.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),(0,d.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]}),(0,d.jsx)("span",{style:h?{display:"none"}:void 0,children:f?"Copied":"Copy"})]})}function I({provider:a,model:b,modelNames:c,isStreaming:e=!1,estimatedTokens:f=0,tps:g=null}){let h=a&&b?c?.[`${a}:${b}`]??c?.[b]??b:null;return(0,d.jsxs)("div",{style:{fontSize:11,color:"var(--text-dim)",marginBottom:4,display:"flex",alignItems:"center",gap:6},children:[h&&(0,d.jsx)("span",{children:h}),e&&f>0&&(0,d.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4,color:"var(--text)"},title:"预估 token 数(流式接收中)",children:[(0,d.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:2,fontSize:11,fontWeight:400},children:[(0,d.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("line",{x1:"5",y1:"1.5",x2:"5",y2:"8.5"}),(0,d.jsx)("polyline",{points:"2 6 5 8.5 8 6"})]}),f]}),null!==g&&(0,d.jsxs)("span",{style:{marginLeft:6,padding:"1px 6px",borderRadius:4,background:g>=50?"#53b3cb":g>=30?"#9bc53d":g>=15?"#f9c22e":"#e01a4f",color:"#fff",fontSize:11,fontWeight:400},children:[g.toFixed(1)," t/s"]})]})]})}var J=c(27563);let K=[],L=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function M(a){return a.toString().padStart(2,"0")}function N(a){if(!a)return null;let b=new Date(a),c=new Date,d=b.getFullYear()===c.getFullYear()&&b.getMonth()===c.getMonth()&&b.getDate()===c.getDate(),e=`${M(b.getHours())}:${M(b.getMinutes())}`;if(d)return e;let f=[`${L[b.getMonth()]} ${b.getDate()}`];b.getFullYear()!==c.getFullYear()&&f.push(String(b.getFullYear()));let g=f.join(", ");return`${g} ${e}`}function O({message:a,isStreaming:b,toolResults:c,modelNames:e,entryId:f,onFork:g,forking:h,onNavigate:i,prevAssistantEntryId:j,onEditContent:k,onSendMessage:l,showTimestamp:m,prevTimestamp:n,renderVisualCodeBlocks:o,cwd:p,onOpenImage:q,activeFilePath:r,agentRunning:s,onApplyToFile:t,onRunCode:u,onOpenFileAtLine:v,onAcceptDiff:w,compactionShadowCount:x,onLoadShadowed:y,forkFresh:z}){return"user"===a.role?(0,d.jsx)(P,{message:a,entryId:f,onFork:g,forking:h,onNavigate:i,prevAssistantEntryId:j,onEditContent:k,onOpenImage:q,compactionShadowCount:x,onLoadShadowed:y}):"assistant"===a.role?(0,d.jsx)(Q,{message:a,isStreaming:b,toolResults:c,modelNames:e,onSendMessage:l,showTimestamp:m,prevTimestamp:n,renderVisualCodeBlocks:o,cwd:p,activeFilePath:r,agentRunning:s,onApplyToFile:t,onRunCode:u,onOpenFileAtLine:v,onAcceptDiff:w,forkFresh:z}):"toolResult"===a.role?null:"custom"===a.role?(0,d.jsx)(R,{message:a,showTimestamp:m}):null}function P({message:a,entryId:b,onFork:c,forking:g,onNavigate:h,prevAssistantEntryId:i,onEditContent:j,onOpenImage:l,compactionShadowCount:m,onLoadShadowed:n}){let[o,p]=(0,e.useState)(!1),[q,r]=(0,e.useState)(null),[s,t]=(0,e.useState)(!1),u="string"==typeof a.content?a.content:a.content.filter(a=>"text"===a.type).map(a=>a.text).join("\n"),v="string"==typeof a.content?[]:a.content.filter(a=>"image"===a.type),D=v.flatMap(a=>{let b=(0,k.h5)(a);return b?[{src:b}]:[]}),E=N(a.timestamp),F=!!b&&!!c,G=!!i&&!!h;return(0,d.jsxs)(A,{hovered:o,onHoverChange:p,children:[(0,d.jsxs)(B,{children:[v.length>0&&(0,d.jsx)(C,{hasBody:!!u,children:v.map((a,b)=>{let c=(0,k.h5)(a);if(!c)return null;let e=a.path&&c.startsWith("/api/files/");return(0,d.jsx)("a",{href:c,target:e||!l?"_blank":void 0,rel:e||!l?"noreferrer":void 0,title:"Open image",style:{display:"block",cursor:"zoom-in"},onClick:a=>{l&&(a.preventDefault(),l(c,void 0,D))},children:(0,d.jsx)("img",{src:c,alt:"",style:{maxWidth:240,maxHeight:240,borderRadius:6,objectFit:"contain",display:"block",border:"1px solid rgba(59,130,246,0.15)"}})},b)})}),u]}),null!=m&&m>0&&(0,d.jsx)("div",{style:{marginTop:4,textAlign:"left"},children:null===q?(0,d.jsx)("button",{onClick:()=>{s||null!==q||(t(!0),(b&&n?n(b):Promise.resolve([])).then(a=>r(a)).catch(()=>r([])).finally(()=>t(!1)))},disabled:s,style:{padding:"5px 12px",fontSize:12,color:"var(--accent)",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,cursor:s?"wait":"pointer"},children:s?"Loading…":`Show ${m} compacted message${1===m?"":"s"}`}):(0,d.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:7,background:"var(--bg-panel)",padding:"8px 10px",maxHeight:360,overflowY:"auto"},children:[(0,d.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:6},children:[(0,d.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.05em"},children:"Compacted history"}),(0,d.jsx)("button",{onClick:()=>r(null),style:{padding:"2px 8px",fontSize:11,color:"var(--text-dim)",background:"transparent",border:"1px solid var(--border)",borderRadius:5,cursor:"pointer"},children:"Hide"})]}),0===q.length&&(0,d.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)"},children:"No earlier messages to show."}),q.map((a,b)=>{let c,e="string"==typeof(c=a.content)?c:Array.isArray(c)?c.filter(a=>!!a&&"object"==typeof a&&"text"===a.type&&"string"==typeof a.text).map(a=>a.text).join("\n"):"";if(!e.trim())return null;let g="user"===a.role?"User":"assistant"===a.role?"Assistant":"Tool";return(0,d.jsxs)("div",{style:{marginBottom:8,paddingBottom:8,borderBottom:b===q.length-1?"none":"1px solid var(--border)"},children:[(0,d.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",marginBottom:2},children:g}),(0,d.jsx)(f.T,{content:e,style:{fontSize:12.5}})]},b)})]})}),(0,d.jsxs)(w,{justify:"flex-end",style:{marginTop:3},children:[(0,d.jsx)(y,{visible:o,children:(0,d.jsx)(H,{text:u})}),(F||G)&&(0,d.jsxs)(y,{visible:o||!!g,children:[G&&(0,d.jsxs)(z,{iconOnlyOnMobile:!0,onClick:()=>{h(i),j?.(u)},title:"Edit from here — branches within this session",children:[(0,d.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("polyline",{points:"15 10 20 15 15 20"}),(0,d.jsx)("path",{d:"M4 4v7a4 4 0 0 0 4 4h12"})]}),"Edit from here"]}),F&&(0,d.jsxs)(z,{iconOnlyOnMobile:!0,onClick:()=>{c(b)},disabled:g,active:!!g,title:g?"Creating new session…":"New session — creates an independent copy from here",children:[(0,d.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("line",{x1:"6",y1:"3",x2:"6",y2:"15"}),(0,d.jsx)("circle",{cx:"18",cy:"6",r:"3"}),(0,d.jsx)("circle",{cx:"6",cy:"18",r:"3"}),(0,d.jsx)("path",{d:"M18 9a9 9 0 0 1-9 9"})]}),g?"Creating…":"New session"]})]}),E&&(0,d.jsx)(x,{children:E})]})]})}function Q({message:a,isStreaming:b,toolResults:c,modelNames:f,onSendMessage:g,showTimestamp:h,prevTimestamp:i,renderVisualCodeBlocks:j,cwd:k,activeFilePath:l,agentRunning:m,onApplyToFile:o,onRunCode:p,onOpenFileAtLine:q,onAcceptDiff:r,forkFresh:s}){var t;let u,v=h?N(a.timestamp):null,A=a.content??K,[B,C]=(0,e.useState)(!1);(0,e.useRef)(null),(0,e.useRef)(new Map);let F=(0,e.useRef)(A),[G,L]=(0,e.useState)(null),[M,O]=(0,e.useState)(new Map);F.current=A;let P=(0,e.useMemo)(()=>{if(!a.timestamp||!i)return;let b=Math.round((a.timestamp-i)/1e3);return b>0?b:void 0},[a.timestamp,i]),R=(0,e.useMemo)(()=>(function(a,b){let c=new Map;if(!a||!b)return c;for(let[d,e]of a){if(!e.timestamp)continue;let a=Math.round((e.timestamp-b)/1e3);a>0&&c.set(d,a)}return c})(c,a.timestamp),[c,a.timestamp]),S=(0,e.useMemo)(()=>(function(a,b,c){let d=[],e=[],f=[];for(let[g,h]of a.entries()){if("thinking"===h.type){e.push({content:h.thinking,duration:b.get(g)??c});continue}if("toolCall"===h.type){d.push(h);continue}f.push(h)}return{tools:d,thinkingBlocks:e,visibleBlocks:f}})(A,M,P),[A,M,P]),T=(0,e.useMemo)(()=>A.filter(a=>"text"===a.type).map(a=>a.text).join("\n"),[A]),U=(0,e.useMemo)(()=>Math.round(function(a){let b=0;for(let c of a){if("text"===c.type){b+=c.text.length;continue}if("thinking"===c.type){b+=c.thinking.length;continue}"toolCall"===c.type&&(b+=JSON.stringify(c.input??{}).length)}return b}(A)/4),[A]);return(0,d.jsxs)(D,{hovered:B,onHoverChange:C,children:[(0,d.jsx)(I,{provider:a.provider,model:a.model,modelNames:f,isStreaming:b,estimatedTokens:U,tps:G}),(0,d.jsxs)(E,{children:[!b&&"error"===a.stopReason&&a.errorMessage?.trim()&&(0,d.jsxs)("div",{role:"alert","data-message-surface":"assistant-error",style:{border:"1px solid rgba(248,113,113,0.35)",borderRadius:6,background:"rgba(248,113,113,0.07)",padding:"8px 10px",color:"#f87171",fontSize:12,lineHeight:1.5,overflowWrap:"anywhere"},children:[(0,d.jsx)("strong",{style:{display:"block",marginBottom:2,fontWeight:600},children:"Model response failed"}),a.errorMessage.trim()]}),(S.tools.length>0||S.thinkingBlocks.length>0)&&(0,d.jsx)(J.kD,{tools:S.tools,results:c,durations:R,thinkingBlocks:S.thinkingBlocks,isStreaming:b,cwd:k}),S.visibleBlocks.map((a,e)=>(0,d.jsx)(n,{block:a,toolResults:c,isStreaming:b,toolCallDurations:R,onSendMessage:g,renderVisualCodeBlocks:j,cwd:k,activeFilePath:l,agentRunning:m,onApplyToFile:o,onRunCode:p,onOpenFileAtLine:q,onAcceptDiff:r},e))]}),(0,d.jsxs)(w,{style:{gap:8},children:[a.usage&&!b&&(0,d.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)"},children:(t=a.usage,u=[],t.input&&u.push(`${t.input.toLocaleString()} in`),t.output&&u.push(`${t.output.toLocaleString()} out`),t.cacheRead&&u.push(`${t.cacheRead.toLocaleString()} cache`),t.cost?.total&&u.push(`$${t.cost.total.toFixed(4)}`),u.join(" \xb7 "))}),T&&!b&&(0,d.jsx)(y,{visible:B,children:(0,d.jsx)(H,{text:T})}),s?.show&&!b&&(0,d.jsxs)(d.Fragment,{children:[s.error&&(0,d.jsx)("span",{style:{fontSize:11,color:"#f87171"},children:s.error}),(0,d.jsxs)(z,{onClick:s.onFork,disabled:s.busy,title:"Fork 新会话 — 携带精简摘要,避免每次提问都等待模型 prefill 变慢",children:[(0,d.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("line",{x1:"6",y1:"3",x2:"6",y2:"15"}),(0,d.jsx)("circle",{cx:"18",cy:"6",r:"3"}),(0,d.jsx)("circle",{cx:"6",cy:"18",r:"3"}),(0,d.jsx)("path",{d:"M18 9a9 9 0 0 1-9 9"})]}),s.busy?"Forking…":"Fork 新会话"]})]}),v&&(0,d.jsx)(x,{alignEnd:!0,children:v})]})]})}function R({message:a,showTimestamp:b}){if(!a.display)return null;let c=b?N(a.timestamp):null,e="string"==typeof a.content?a.content:a.content.filter(a=>"text"===a.type).map(a=>a.text).join("\n"),g="subagent-notify"===a.customType,h=e.match(/^Background task (completed|failed|paused):\s*\*\*(.+?)\*\*/),i=h?"completed"===h[1]?"✅":"failed"===h[1]?"❌":"⏸":g?"\uD83E\uDD16":"ℹ";return(0,d.jsxs)("div",{style:{marginBottom:12},children:[(0,d.jsx)(F,{accent:g?"subagent":"default",children:(0,d.jsx)(G,{icon:i,children:(0,d.jsx)("div",{"data-message-surface":"custom-body",children:(0,d.jsx)(f.T,{content:e,style:{fontSize:13}})})})}),(c||h)&&(0,d.jsxs)(w,{justify:"flex-end",style:{marginTop:3},children:[h&&(0,d.jsx)(x,{children:h[2]}),c&&(0,d.jsx)(x,{children:c})]})]})}},63956:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,81921,23)),Promise.resolve().then(c.t.bind(c,60440,23)),Promise.resolve().then(c.t.bind(c,84342,23)),Promise.resolve().then(c.t.bind(c,82265,23)),Promise.resolve().then(c.t.bind(c,35421,23)),Promise.resolve().then(c.t.bind(c,61335,23)),Promise.resolve().then(c.t.bind(c,70664,23)),Promise.resolve().then(c.bind(c,74661))},65950:(a,b,c)=>{"use strict";c.d(b,{aU:()=>f,cx:()=>e,nS:()=>r,Rd:()=>q,wY:()=>p,tG:()=>m});class d{#a;#b;constructor(a){this.#b=new Map,this.#a=a}get(a){if(!this.#b.has(a))return;let b=this.#b.get(a);return this.#b.delete(a),this.#b.set(a,b),b}set(a,b){for(this.#b.has(a)&&this.#b.delete(a);this.#b.size>=this.#a;){let a=this.#b.keys().next().value;if(void 0===a)break;this.#b.delete(a)}this.#b.set(a,b)}delete(a){this.#b.delete(a)}get size(){return this.#b.size}}let e="github-light",f="github-dark",g=new d(10),h=new d(200),i=new Set,j=new Map,k=null;function l(a,b,c){let d=a.slice(0,100),e=a.length>100?a.slice(-100):"";return`${b}:${c}:${a.length}:${d}:${e}`}function m(a){return void 0===a||0===a?{}:{fontStyle:1&a?"italic":void 0,fontWeight:2&a?700:void 0,textDecorationLine:4&a?"underline":void 0}}function n(){return k||(k=Promise.resolve().then(c.bind(c,78908)).then(a=>{if(0===i.size){for(let b of Object.keys(a.bundledLanguages??{}))i.add(b.toLowerCase());for(let b of a.bundledLanguagesInfo??[]){let a=b.id.toLowerCase();for(let c of b.aliases??[])j.set(c.toLowerCase(),a)}}return a})),k}async function o(a,b=e,c=f){let d=`${a}:${b}:${c}`,h=g.get(d);if(h)return h;let i=n().then(({createHighlighter:d})=>d({langs:[a],themes:[b,c]})).catch(a=>{throw g.delete(d),a});return g.set(d,i),i}function p(a,b,c,d){let g=q(a,b,c);if(g)return g;let k=c?f:e,m=b.trim().toLowerCase();if(!m)return null;let p=l(a,m,k);return n().then(()=>{let c,g=(c=b.trim().toLowerCase())?i.has(c)?c:j.get(c)??null:null;return g?o(g,e,f).then(b=>{let c=b.codeToTokens(a,{lang:g,theme:k}),e={bg:c.bg??"transparent",fg:c.fg??"inherit",tokens:c.tokens};return h.set(p,e),d(e),e}):null}).catch(a=>{console.warn("[Shiki] highlight failed:",a)}),null}function q(a,b,c){let d=b.trim().toLowerCase();if(!d)return null;let g=l(a,d,c?f:e);return h.get(g)??null}function r(a){return{bg:"transparent",fg:"inherit",tokens:a.replace(/\r\n/g,"\n").replace(/\r/g,"\n").split("\n").map(a=>""===a?[]:[{color:"inherit",content:a}])}}},73383:(a,b,c)=>{"use strict";c.d(b,{pm:()=>k});var d=c(48249),e=c(67484),f=c(54097),g=c(6954),h=c(40648);function i({expanded:a,onToggle:b,durationLabel:c,isStreaming:e=!1,leading:f,label:j="Thinking",buttonStyle:k,labelStyle:l,durationStyle:m}){return(0,d.jsxs)(g.R,{expanded:a,onToggle:b,buttonStyle:{width:"100%",display:"flex",alignItems:"center",gap:7,minWidth:0,textAlign:"left",cursor:"pointer",border:"none",background:"transparent",color:"var(--text-muted)",...k},children:[f,(0,d.jsx)("span",{style:{fontSize:12,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0,flex:1,...l},children:e?(0,d.jsx)(h.n,{children:j}):j}),c&&(0,d.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",fontVariantNumeric:"tabular-nums",flexShrink:0,...m},children:c})]})}function j({content:a,contentStyle:b}){return(0,d.jsx)(f.p,{style:{color:"var(--text-muted)",fontSize:12,lineHeight:1.6,whiteSpace:"pre-wrap",wordBreak:"break-word",...b},children:(0,d.jsx)("div",{style:{padding:"8px 10px"},children:a})})}function k({content:a,durationLabel:b,isStreaming:c=!1,leading:g,label:h="Thinking",containerStyle:l,buttonStyle:m,labelStyle:n,durationStyle:o,contentStyle:p}){let[q,r]=(0,e.useState)(!1);return(0,d.jsxs)(f.t,{kind:"thinking",style:l,children:[(0,d.jsx)(i,{expanded:q,onToggle:()=>r(a=>!a),durationLabel:b,isStreaming:c,leading:g,label:h,buttonStyle:m,labelStyle:n,durationStyle:o}),q&&(0,d.jsx)(j,{content:a,contentStyle:p})]})}},78335:()=>{},80251:(a,b,c)=>{"use strict";function d(a,b){for(let c of b){let b=a[c];if(null!=b&&""!==b)return String(b)}return null}function e(a,b=60){let c=a.replace(/\s+/g," ").trim();return c.length<=b?c:`${c.slice(0,Math.max(0,b-3))}...`}function f(a){let b=a.toLowerCase().split("__").filter(Boolean);return b[b.length-1]??a.toLowerCase()}function g(a,b=120){let c=Object.keys(a);return 0===c.length?"":"command"in a?String(a.command).slice(0,b):"cmd"in a?String(a.cmd).slice(0,b):"path"in a?String(a.path).slice(0,b):"file_path"in a?String(a.file_path).slice(0,b):"pattern"in a?String(a.pattern).slice(0,b):"query"in a?String(a.query).slice(0,b):String(a[c[0]]).slice(0,b)}function h(a){let b=a.toolName||"tool",c=f(b),g=a.input??{};if(["bash","execute","run","shell","exec_command","execute_command"].includes(c))return{canonicalName:c,kind:"terminal",label:"Shell",summary:e(d(g,["command","cmd"])??b,60)};if(["read","readfile","read_file"].includes(c))return{canonicalName:c,kind:"read",label:"Read",summary:e(d(g,["file_path","path"])??b,60)};if(["write","edit","write_file","create_file","notebook_edit"].includes(c)){let a,f=d(g,["file_path","path","notebook_path","filename"]);return{canonicalName:c,kind:"edit",label:"Edit",summary:e(f?(a=f.split(/[\\/]/).filter(Boolean))[a.length-1]??f:b,60)}}if(["search","grep","glob","find","find_files","websearch"].includes(c))return{canonicalName:c,kind:"search",label:"Search",summary:e(d(g,["pattern","query","glob"])??b,60)};if(["subagent","agent"].includes(c))return{canonicalName:c,kind:"agent",label:"Agent",summary:e([d(g,["agent","name","agentName"]),d(g,["prompt","task","message"])].filter(Boolean).join(": ")||b,60)};let h=d(g,["command","cmd","path","file_path","pattern","query","glob","prompt","description"])??function(a){try{return JSON.stringify(a)}catch{return String(a)}}(g)??b;return{canonicalName:c,kind:"tool",label:e(b,60),summary:e(h,60)}}c.d(b,{WI:()=>f,Wm:()=>g,wS:()=>h})},82704:()=>{},86364:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>e});var d=c(88868);let e=async a=>[{type:"image/svg+xml",sizes:"any",url:(0,d.fillMetadataSegment)(".",await a.params,"icon.svg",!0)+"?6eceb6fbd1a5bb90"}]},96487:()=>{}};
|
|
@@ -139,11 +139,11 @@ ${h.content}
|
|
|
139
139
|
|
|
140
140
|
${j}`:j}},34429:(a,b,c)=>{"use strict";c.d(b,{O:()=>f});let d=/\bstream(?:[_\s-]+)read(?:[_\s-]+)error\b/i,e=new WeakSet;function f(a){if(e.has(a))return!0;let b=a._isRetryableError;return"function"==typeof b&&(a._isRetryableError=function(a){return!!a&&"object"==typeof a&&"error"===a.stopReason&&"string"==typeof a.errorMessage&&d.test(a.errorMessage)||b.call(this,a)},e.add(a),!0)}},36945:(a,b,c)=>{"use strict";function d(a){if(!a.afterEventId)return{afterSequence:void 0,replayGap:!1};let b=a.afterEventId.lastIndexOf(":"),c=b>0?a.afterEventId.slice(0,b):"",d=b>0?Number(a.afterEventId.slice(b+1)):NaN;if(c!==a.streamEpoch||!Number.isSafeInteger(d))return{afterSequence:void 0,replayGap:!0};let e=a.events.length>0?Number(a.events[0].__eventSequence):a.nextSequence;return!Number.isSafeInteger(e)||d<e-1?{afterSequence:void 0,replayGap:!0}:{afterSequence:d,replayGap:!1}}c.d(b,{Z:()=>d})},39773:(a,b,c)=>{"use strict";c.d(b,{X:()=>g,w:()=>f});var d=c(55511);let e=new Map;function f(a){let b=(0,d.randomUUID)().replace(/-/g,"").slice(0,24);return e.set(b,{...a,token:b,expiresAt:Date.now()+18e5}),b}function g(a){let b=e.get(a);return b?Date.now()>b.expiresAt?(e.delete(a),null):b:null}setInterval(()=>{let a=Date.now();for(let[b,c]of e)a>c.expiresAt&&e.delete(b)},3e5)},41761:(a,b,c)=>{"use strict";c.d(b,{C1:()=>e,lA:()=>d});let d="subagent",e=["bash","read","edit","write","grep","find","ls"];[...e],[...e]},44036:(a,b,c)=>{"use strict";c.d(b,{FJ:()=>g,R4:()=>h,X8:()=>f});let d="<workbench-guidelines>\nAnnoVibe Workbench is active. Use it for reproducible R/Python analysis plots, data visualizations, and warm-runtime analysis work.\n\nTool routing:\n- Use `kernel_plot_render` for one-shot iterative plot previews — images auto-render inline in chat without saving files. Call `render_plot()` to mark the preview target. ggplot2 (R) and plt.show() (Python) are auto-captured as convenience.\n- Use `kernel_plot_inspect` after resuming a workbench session, after suspected kernel restart, or whenever you are unsure whether objects like `adata`/`seurat_obj` are still live in memory.\n- Use `kernel_plot_run` when plots depend on data already loaded in warm kernel memory, or when saving final artifacts to disk.\n- Use `runtime: \"kernel-lite\"` in `kernel_plot_run` when variables or loaded data should persist across turns.\n- Use `runtime: \"worker\"` for one-shot scripts that should be isolated.\n- Do not run Rscript/python plotting through `bash` unless the workbench tools are unavailable.\n- Do not use bash with `conda run python`, `Rscript`, or direct interpreter calls for analysis code — always prefer `kernel_plot_run`.\n\nkernel-lite memory rules — CRITICAL:\n- Packages imported (import scanpy, library(Seurat), etc.) and variables assigned in one kernel_plot_run call persist while the same kernel-lite runtime is alive. Do NOT repeat imports in every call. Import each package only once, in the first call that needs it.\n- Large data objects loaded via sc.read(), readRDS(), qread(), pd.read_csv(), etc. stay in memory while the warm kernel is alive. Before calling any load function, check whether the object already exists:\n Python: `if 'adata' not in globals(): adata = sc.read(path)`\n R: `if (!exists('seurat_obj')) seurat_obj <- readRDS(path)`\n Print a brief note when reusing in-memory data vs loading fresh.\n- Do NOT put sc.read() / readRDS() / qread() at the top of every call. This reloads multi-GB files needlessly and is the #1 performance mistake in workbench sessions.\n- After browser refreshes, model switches, compaction, or a resumed workbench session, treat prior history as inferred only: first use `kernel_plot_inspect` or an explicit existence check to see whether required objects still exist, then reload only missing objects from the known source path.\n\nWorkbench artifact rules:\n- Save every output under `WARMPLOT_OUTPUT_DIR` or `PI_KERNEL_PLOT_OUTPUT_DIR`.\n- Create a primary PNG/JPEG/WebP preview for chat display whenever a figure is produced, not PDF-only output. Keep the preview reasonably sized so it can be embedded inline.\n- If a publication-quality PDF/SVG is needed, save it in addition to the preview image.\n- Name the primary preview clearly, for example `00_preview.png`, so it is easy to identify.\n- When the user asks to save final outputs to a specific project directory, use that directory (not WARMPLOT_OUTPUT_DIR) for the final artifacts.\n\nChat display rules:\n- The web chat renders returned image artifacts inline. Do not say that images cannot be displayed.\n- Do not use `open`, `xdg-open`, or desktop viewers to show plots.\n- After generating any plot, make the chat response displayable by including the PNG/JPEG/WebP preview path in the final answer or by returning it as a tool image artifact. Do not mention only PDF paths when an image preview exists.\n- When using shell tools for plotting, still save a PNG/JPEG/WebP preview and include that preview path in the final answer; avoid a final answer that only says a desktop window was opened.\n- When the user asks to show an existing PNG/JPEG/WebP file, use `read` on that image path; the UI will display the image even if the model cannot inspect pixels.\n- If only a PDF exists and the user asks to see it in chat, generate a PNG preview with `kernel_plot_run` or report the PDF path only if conversion is not practical.\n- After a successful plot, summarize the result briefly and include both preview image paths and any publication-quality PDF/SVG paths.\n</workbench-guidelines>",e=/\n?\s*(?:<plot-mode-guidelines>[\s\S]*?<\/plot-mode-guidelines>|<workbench-guidelines>[\s\S]*?<\/workbench-guidelines>)\s*/g;function f(a){return a.replace(e,"\n").replace(/\n{3,}/g,"\n\n").trim()}function g(a){return a.includes("<plot-mode-guidelines>")||a.includes("<workbench-guidelines>")?a:a.trim()?`${a.trimEnd()}
|
|
141
141
|
|
|
142
|
-
${d}`:d}function h(a){for(let b of a)if("kernel_plot_run"===b)return!0;return!1}},56429:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{A4:()=>H,Bj:()=>N,Fn:()=>K,HG:()=>I,OF:()=>O,V$:()=>L,dU:()=>S,kp:()=>z});var e=c(75430),f=c(40402),g=c(9774),h=c(3867),i=c(85097),j=c(11745),k=c(9805),l=c(27348),m=c(44036),n=c(66469),o=c(29021),p=c(33873),q=c(55511),r=c(7048),s=c(41761),t=c(74788),u=c(57149),v=c(60103),w=c(36945),x=c(34429),y=a([e,f,g,h,i,j,t]);[e,f,g,h,i,j,t]=y.then?(await y)():y;class P extends Error{constructor(a){super(`Session ${a} is already processing another command`),this.code="SESSION_BUSY",this.name="SessionBusyError"}}function z(a){return a instanceof P||!!a&&"object"==typeof a&&"SESSION_BUSY"===a.code}class Q extends Error{constructor(a,b){super(b),this.reason=a,this.code="COMPACTION_ERROR",this.name="CompactionError"}}let R=s.C1;class S{constructor(a,b,c={}){this.inner=a,this.modelRegistry=b,this.options=c,this.listeners=[],this.replayEvents=[],this.unsubscribe=null,this.idleTimer=null,this.onDestroyCallback=null,this.busyOperations=new Set,this.activeTools=new Map,this.currentRuntimePhase="idle",this.phaseStartedAtMs=null,this.promptRunId=0,this.activePromptRunId=null,this.abortedPromptRunId=0,this.runStartedAtMs=null,this.firstModelEventAtMs=null,this.lastEventAtMs=null,this.lastEventType=null,this.lastErrorMessage=null,this.streamEpoch=(0,q.randomUUID)(),this.nextEventId=1,this._alive=!0,this._lastAppliedPromptKey="",this._kernelStateCache=null,(0,x.O)(a)}get sessionId(){return this.inner.sessionId}get sessionFile(){return this.inner.sessionFile??""}isAlive(){return this._alive}isBusy(){return this.busyOperations.size>0||this.inner.isStreaming||this.inner.isCompacting}getRuntimeStatus(){let a=Date.now(),b=this.getPhase(),c=this.inner.model?{provider:this.inner.model.provider,id:this.inner.model.id}:null;return{sessionId:this.sessionId,sessionFile:this.sessionFile,cwd:function(a){try{let b=a.sessionManager;return b.getCwd?.()??null}catch{return null}}(this.inner),busy:this.isBusy(),operations:[...this.busyOperations],isStreaming:this.inner.isStreaming,isCompacting:this.inner.isCompacting,phase:b,model:c,activeTools:[...this.activeTools.entries()].map(([a,b])=>({id:a,name:b})),runStartedAt:C(this.runStartedAtMs),firstModelEventAt:C(this.firstModelEventAtMs),lastEventAt:C(this.lastEventAtMs),lastEventType:this.lastEventType,uptimeMs:this.runStartedAtMs?Math.max(0,a-this.runStartedAtMs):null,waitingForModelMs:"waiting_model"===b&&this.phaseStartedAtMs?Math.max(0,a-this.phaseStartedAtMs):null,pendingMessageCount:"number"==typeof this.inner.pendingMessageCount?this.inner.pendingMessageCount:null,errorMessage:this.lastErrorMessage}}start(){this.unsubscribe=this.inner.subscribe(a=>{"message_end"===a.type?queueMicrotask(()=>this.forwardEvent(this.withLatestEntryId(a))):"agent_end"===a.type?queueMicrotask(()=>this.forwardEvent(a)):this.forwardEvent(a)}),this.resetIdleTimer(),M()}forwardEvent(a){let b=null!==this.activePromptRunId&&void 0===a.__runId?{...a,__runId:this.activePromptRunId}:a;this.recordRuntimeEvent(b);let c=this.sequenceEvent(b);for(let b of(this.bufferReplayEvent(c),this.resetIdleTimer(),("agent_end"===a.type||"agent_start"===a.type)&&M(),this.listeners))b(c)}withLatestEntryId(a){let b=a.message;if(!b||"user"!==b.role&&"assistant"!==b.role&&"toolResult"!==b.role)return a;try{let c=this.inner.sessionManager.getEntries(),d=JSON.stringify(b);for(let b=c.length-1;b>=0;b--){let e=c[b];if("message"===e.type&&"string"==typeof e.id&&JSON.stringify(e.message)===d)return{...a,__entryId:e.id}}}catch{}return a}resetIdleTimer(){this.idleTimer&&clearTimeout(this.idleTimer),this.idleTimer=setTimeout(()=>{this.isBusy()?this.resetIdleTimer():this.destroy()},6e5)}sequenceEvent(a){"string"!=typeof this.streamEpoch&&(this.streamEpoch=(0,q.randomUUID)());let b=Number.isSafeInteger(this.nextEventId)?this.nextEventId:1;return this.nextEventId=b+1,{...a,__eventId:`${this.streamEpoch}:${b}`,__eventSequence:b,__streamEpoch:this.streamEpoch}}bufferReplayEvent(a){"agent_start"===a.type&&(this.replayEvents=[]),this.replayEvents.push(a),this.replayEvents.length>200&&this.replayEvents.splice(0,this.replayEvents.length-200)}onEvent(a,b={}){if(this.listeners.push(a),b.replay){let c=(0,w.Z)({streamEpoch:this.streamEpoch,nextSequence:this.nextEventId,events:this.replayEvents,afterEventId:b.afterEventId}),{afterSequence:d}=c;for(let e of(c.replayGap&&(a({type:"replay_gap",requestedAfter:b.afterEventId,streamEpoch:this.streamEpoch,oldestEventId:this.replayEvents[0]?.__eventId??null}),d=void 0),this.replayEvents)){let b="number"==typeof e.__eventSequence?e.__eventSequence:0;(void 0===d||b>d)&&a(e)}}return()=>{let b=this.listeners.indexOf(a);-1!==b&&this.listeners.splice(b,1)}}onDestroy(a){this.onDestroyCallback=a}async send(a){this.resetIdleTimer();let b=a.type;switch(b){case"prompt":{if(null!==this.activePromptRunId||this.isBusy())throw new P(this.sessionId);Number.isSafeInteger(this.promptRunId)||(this.promptRunId=0);let b=++this.promptRunId;this.activePromptRunId=b,this.busyOperations.add("prompt"),this.setRuntimePhase("waiting_model"),this.resetIdleTimer(),this.replayEvents=[],this.emit({type:"prompt_admitted",__runId:b}),M();try{let c="string"==typeof a.leafId&&a.leafId.trim()?a.leafId:null;if(c&&this.inner.sessionManager.getLeafId()!==c&&(await this.inner.navigateTree(c,{})).cancelled)throw Error(`Failed to navigate session to leaf ${c}`);if("string"==typeof a.provider&&"string"==typeof a.modelId&&await this.applyModelSelection(a.provider,a.modelId),"string"==typeof a.thinkingLevel&&this.applyThinkingLevel(a.thinkingLevel),Array.isArray(a.toolNames)){let b=this.filterAvailableToolNames(a.toolNames);this.inner.setActiveToolsByName(b)}this.preparePromptContext(a.message);let d=a.images,e=this.inner.model?.input,f=!e||0===e.length||e.includes("image")?d:void 0;return this.inner.prompt(a.message,f?.length?{images:f}:void 0).then(()=>{this.emit({type:"prompt_done",__runId:b})}).catch(a=>{this.abortedPromptRunId!==b&&this.emit({type:"prompt_error",__runId:b,error:a instanceof Error?a.message:String(a)})}).finally(()=>this.finishPromptRun(b)),{runId:b}}catch(a){throw this.emit({type:"prompt_error",__runId:b,error:a instanceof Error?a.message:String(a)}),this.finishPromptRun(b),a}}case"abort":return this.abortedPromptRunId=this.promptRunId,await this.inner.abort(),null;case"get_state":{let a=this.inner.model,b=this.inner.getContextUsage(),c=this.inner.agent.state?.systemPrompt??"",d=(0,g.cV)(),e=(0,t.U5)(this.inner.sessionId),f=this.getRuntimeStatus();return{sessionId:this.inner.sessionId,sessionFile:this.inner.sessionFile??"",isStreaming:this.inner.isStreaming,isCompacting:this.inner.isCompacting,autoCompactionEnabled:this.inner.autoCompactionEnabled,autoRetryEnabled:this.inner.autoRetryEnabled,model:a?{id:a.id,provider:a.provider}:void 0,messageCount:0,pendingMessageCount:0,phase:f.phase,activeTools:f.activeTools,lastEventAt:f.lastEventAt,lastEventType:f.lastEventType,errorMessage:f.errorMessage,goal:e?.goal??null,contextUsage:b?{percent:b.percent,contextWindow:b.contextWindow,tokens:b.tokens}:null,systemPrompt:d.generativeUI?c:(0,k.FE)(c),thinkingLevel:this.inner.agent.state?.thinkingLevel??"off"}}case"set_model":{if(this.isBusy())throw new P(this.sessionId);let{provider:b,modelId:c}=a,d=await this.applyModelSelection(b,c);return{id:d.id,provider:d.provider,thinkingLevel:this.inner.agent.state?.thinkingLevel??"off"}}case"fork":{let b;if(this.isBusy())throw new P(this.sessionId);let c=a.entryId,d=this.inner.sessionManager,g=this.inner.sessionFile;if(!d.isPersisted())return{cancelled:!0};if(!g)throw Error("Persisted session is missing a session file");let h=d.getEntry(c);if(!h)throw Error("Invalid entry ID for forking");let i=d.getSessionDir();if(h.parentId){let a=e.SessionManager.open(g,i).createBranchedSession(h.parentId);if(!a)throw Error("Failed to create forked session");b=a}else{let a=e.SessionManager.create(d.getCwd(),i);a.newSession({parentSession:g}),b=a.getSessionFile()}let j=e.SessionManager.open(b,i).getSessionId();(0,f.O8)(j,b);let k=(0,t.U5)(this.sessionId);return k&&await (0,t.oR)(j,{...k,createdBy:"fork",createdAt:new Date().toISOString()}),this.destroy(),{cancelled:!1,newSessionId:j}}case"navigate_tree":if(this.isBusy())throw new P(this.sessionId);return{cancelled:(await this.inner.navigateTree(a.targetId,{})).cancelled};case"set_thinking_level":if(this.isBusy())throw new P(this.sessionId);return this.applyThinkingLevel(a.level),null;case"compact":{let b;if(this.isBusy())throw new P(this.sessionId);let{findCutPoint:d,DEFAULT_COMPACTION_SETTINGS:e}=await Promise.resolve().then(c.bind(c,75430)),f=this.inner.sessionManager.getBranch(),g={...e,...this.inner.settingsManager.getCompactionSettings()},h=-1;for(let a=f.length-1;a>=0;a--)if("compaction"===f[a].type){h=a;break}let i=h+1,j=d(f,i,f.length,g.keepRecentTokens);if((j.isSplitTurn?j.turnStartIndex:j.firstKeptEntryIndex)<=i)throw new Q("too-short","Conversation is too short to compact");try{b=await this.trackBusy("compact",this.inner.compact(a.customInstructions))}catch(c){let a,b;throw(b=(a=c instanceof Error?c.message:String(c)).toLowerCase()).includes("already compacted")?new Q("already-compacted","This session has already been compacted"):b.includes("too small")||b.includes("nothing to compact")||b.includes("too short")?new Q("too-short","Conversation is too short to compact"):b.includes("cancelled")||b.includes("abort")?new Q("cancelled","Compaction was cancelled"):new Q("failed",a||"Compaction failed")}let k=b;return{tokensBefore:"number"==typeof k?.tokensBefore?k.tokensBefore:null,tokensAfter:"number"==typeof k?.estimatedTokensAfter?k.estimatedTokensAfter:null,reducedBy:"number"==typeof k?.tokensBefore&&"number"==typeof k?.estimatedTokensAfter?Math.max(0,k.tokensBefore-k.estimatedTokensAfter):null}}case"set_auto_compaction":return this.inner.setAutoCompactionEnabled(a.enabled),null;case"steer":{this.preparePromptContext(a.message);let b=a.images,c=this.inner.model?.input,d=!c||0===c.length||c.includes("image")?b:void 0;return await this.trackBusy("steer",this.inner.steer(a.message,d?.length?d:void 0)),null}case"follow_up":{this.preparePromptContext(a.message);let b=a.images,c=this.inner.model?.input,d=!c||0===c.length||c.includes("image")?b:void 0;return await this.trackBusy("follow_up",this.inner.followUp(a.message,d?.length?d:void 0)),null}case"get_tools":{let a=this.inner.getAllTools(),b=new Set(this.inner.getActiveToolNames());return a.map(a=>({name:a.name,description:a.description,active:b.has(a.name)}))}case"set_tools":{if(this.isBusy())throw new P(this.sessionId);let b=this.filterAvailableToolNames(a.toolNames);return this.inner.setActiveToolsByName(b),this.applyRuntimePrompts(),(0,t.LN)(this.sessionId,{lastToolNames:this.inner.getActiveToolNames()}).catch(()=>{}),null}case"abort_compaction":return this.inner.abortCompaction(),null;case"append_message":{if(this.isBusy())throw new P(this.sessionId);let b=a.message;if("string"!=typeof b||!b.trim())return null;if(!this.inner.sendCustomMessage)throw Error("Session does not support append_message");return await this.inner.sendCustomMessage({customType:"string"==typeof a.customType&&a.customType?a.customType:"context-note",content:b,display:"boolean"!=typeof a.display||a.display},{triggerTurn:!1}),null}case"set_auto_retry":return this.inner.setAutoRetryEnabled(a.enabled),null;default:throw Error(`Unsupported command: ${b}`)}}destroy(){this._alive&&(this._alive=!1,this.idleTimer&&clearTimeout(this.idleTimer),this.unsubscribe?.(),this.onDestroyCallback?.(),M())}async applyModelSelection(a,b){let c=this.modelRegistry.find(a,b);if(!c){let d=a.toLowerCase().replace(/-/g,"");d!==a&&(c=this.modelRegistry.find(d,b))}if(!c)throw Error(`Model not found: ${a}/${b}`);return await this.inner.setModel(c),c}applyThinkingLevel(a){this.inner.setThinkingLevel(a),"xhigh"===a&&this.inner.model?.compat?.thinkingFormat==="deepseek"&&this.inner.agent?.state&&(this.inner.agent.state.thinkingLevel="xhigh")}preparePromptContext(a){this.applyRuntimePrompts(a)}finishPromptRun(a){this.activePromptRunId===a&&(this.activePromptRunId=null,this.busyOperations.delete("prompt"),this.isBusy()||this.setRuntimePhase("idle"),this.resetIdleTimer(),M())}async trackBusy(a,b){this.busyOperations.add(a),this.setRuntimePhase("compact"===a?"compacting":"waiting_model"),this.resetIdleTimer(),M();try{return await b}finally{this.busyOperations.delete(a),this.isBusy()||this.setRuntimePhase("idle"),this.resetIdleTimer(),M()}}setRuntimePhase(a,b=Date.now()){this.currentRuntimePhase!==a&&(this.currentRuntimePhase=a,this.phaseStartedAtMs="idle"===a?null:b)}getPhase(){if(this.inner.isCompacting||this.busyOperations.has("compact"))return"compacting";if(this.activeTools.size>0)return"running_tools";if(this.isBusy()){let a=this.currentRuntimePhase;return a&&"idle"!==a?a:"waiting_model"}return"idle"}emit(a){let b=this.sequenceEvent(a);for(let a of(this.bufferReplayEvent(b),this.listeners))a(b)}recordRuntimeEvent(a){let b=Date.now();switch(this.lastEventAtMs=b,this.lastEventType=a.type,a.type){case"agent_start":this.runStartedAtMs=b,this.firstModelEventAtMs=null,this.lastErrorMessage=null,this.activeTools.clear(),this.setRuntimePhase("waiting_model",b);break;case"message_start":case"message_update":{let c=a.message;c?.role==="assistant"?(this.firstModelEventAtMs||(this.firstModelEventAtMs=b),"string"==typeof c.errorMessage&&(this.lastErrorMessage=c.errorMessage),this.setRuntimePhase("streaming",b)):c?.role==="user"&&this.setRuntimePhase("waiting_model",b);break}case"message_end":{let c=a.message;c?.role==="assistant"&&"string"==typeof c.errorMessage&&(this.lastErrorMessage=c.errorMessage),this.setRuntimePhase("waiting_model",b);break}case"tool_execution_start":{let c="string"==typeof a.toolCallId?a.toolCallId:"",d="string"==typeof a.toolName?a.toolName:"tool";c&&this.activeTools.set(c,d),this.setRuntimePhase("running_tools",b);break}case"tool_execution_end":{let c="string"==typeof a.toolCallId?a.toolCallId:"";c&&this.activeTools.delete(c),this.setRuntimePhase(this.activeTools.size>0?"running_tools":"waiting_model",b);break}case"auto_retry_start":this.setRuntimePhase("waiting_model",b);break;case"compaction_start":case"auto_compaction_start":this.setRuntimePhase("compacting",b);break;case"compaction_end":case"auto_compaction_end":this.setRuntimePhase(this.isBusy()?"waiting_model":"idle",b);break;case"agent_end":this.activeTools.clear(),!0===a.willRetry?this.setRuntimePhase("waiting_model",b):(this.setRuntimePhase("idle",b),this.runStartedAtMs=null,this.firstModelEventAtMs=null)}}applyRuntimePrompts(a){if(!this.inner.agent.state||this.options.systemPromptDisabled)return;let b=(0,g.cV)(),c=this.inner.getActiveToolNames(),d=(0,m.R4)(c),e=A(this.inner),f=0;if(this.sessionFile)try{f=(0,o.statSync)(this.sessionFile).mtimeMs}catch{f=0}let h=null;if(d&&this.sessionFile)if(this._kernelStateCache&&this._kernelStateCache.mtime===f)h=this._kernelStateCache.summary;else{let a=(0,v.f)(this.sessionFile);a?(h=(0,v.v)(a),this._kernelStateCache={mtime:f,summary:h}):this._kernelStateCache=null}else this._kernelStateCache=null;let i=h?`|mtime=${f}`:"",j=a??"",n=`${d}|${b.generativeUI}|${j.length>0?"msg":"no-msg"}${i}`;if(this._lastAppliedPromptKey===n&&e.length>0)return;if(!b.generativeUI){let a=(0,m.X8)((0,k.FE)(e)),b=D(a,d),c=h?`${b}
|
|
142
|
+
${d}`:d}function h(a){for(let b of a)if("kernel_plot_run"===b)return!0;return!1}},56429:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{A4:()=>J,Bj:()=>P,Fn:()=>M,HG:()=>K,OF:()=>Q,V$:()=>N,dU:()=>U,kp:()=>A});var e=c(75430),f=c(40402),g=c(9774),h=c(3867),i=c(85097),j=c(11745),k=c(9805),l=c(27348),m=c(44036),n=c(66469),o=c(29021),p=c(33873),q=c(55511),r=c(7048),s=c(41761),t=c(74788),u=c(91179),v=c(57149),w=c(60103),x=c(36945),y=c(34429),z=a([e,f,g,h,i,j,t,u]);[e,f,g,h,i,j,t,u]=z.then?(await z)():z;class R extends Error{constructor(a){super(`Session ${a} is already processing another command`),this.code="SESSION_BUSY",this.name="SessionBusyError"}}function A(a){return a instanceof R||!!a&&"object"==typeof a&&"SESSION_BUSY"===a.code}class S extends Error{constructor(a,b){super(b),this.reason=a,this.code="COMPACTION_ERROR",this.name="CompactionError"}}let T=s.C1;class U{constructor(a,b,c={}){this.inner=a,this.modelRegistry=b,this.options=c,this.listeners=[],this.replayEvents=[],this.unsubscribe=null,this.idleTimer=null,this.onDestroyCallback=null,this.busyOperations=new Set,this.activeTools=new Map,this.currentRuntimePhase="idle",this.phaseStartedAtMs=null,this.promptRunId=0,this.activePromptRunId=null,this.abortedPromptRunId=0,this.runStartedAtMs=null,this.firstModelEventAtMs=null,this.lastEventAtMs=null,this.lastEventType=null,this.lastErrorMessage=null,this.streamEpoch=(0,q.randomUUID)(),this.nextEventId=1,this._alive=!0,this._lastAppliedPromptKey="",this._kernelStateCache=null,(0,y.O)(a)}get sessionId(){return this.inner.sessionId}get sessionFile(){return this.inner.sessionFile??""}isAlive(){return this._alive}isBusy(){return this.busyOperations.size>0||this.inner.isStreaming||this.inner.isCompacting}getRuntimeStatus(){let a=Date.now(),b=this.getPhase(),c=this.inner.model?{provider:this.inner.model.provider,id:this.inner.model.id}:null;return{sessionId:this.sessionId,sessionFile:this.sessionFile,cwd:D(this.inner),busy:this.isBusy(),operations:[...this.busyOperations],isStreaming:this.inner.isStreaming,isCompacting:this.inner.isCompacting,phase:b,model:c,activeTools:[...this.activeTools.entries()].map(([a,b])=>({id:a,name:b})),runStartedAt:E(this.runStartedAtMs),firstModelEventAt:E(this.firstModelEventAtMs),lastEventAt:E(this.lastEventAtMs),lastEventType:this.lastEventType,uptimeMs:this.runStartedAtMs?Math.max(0,a-this.runStartedAtMs):null,waitingForModelMs:"waiting_model"===b&&this.phaseStartedAtMs?Math.max(0,a-this.phaseStartedAtMs):null,pendingMessageCount:"number"==typeof this.inner.pendingMessageCount?this.inner.pendingMessageCount:null,errorMessage:this.lastErrorMessage}}start(){this.unsubscribe=this.inner.subscribe(a=>{"message_end"===a.type?queueMicrotask(()=>this.forwardEvent(this.withLatestEntryId(a))):"agent_end"===a.type?queueMicrotask(()=>this.forwardEvent(a)):this.forwardEvent(a)}),this.resetIdleTimer(),O()}forwardEvent(a){let b=null!==this.activePromptRunId&&void 0===a.__runId?{...a,__runId:this.activePromptRunId}:a;this.recordRuntimeEvent(b),("message_end"===a.type||"compaction_end"===a.type||"auto_compaction_end"===a.type)&&this.bumpSessionCwd();let c=this.sequenceEvent(b);for(let b of(this.bufferReplayEvent(c),this.resetIdleTimer(),("agent_end"===a.type||"agent_start"===a.type)&&O(),this.listeners))b(c)}withLatestEntryId(a){let b=a.message;if(!b||"user"!==b.role&&"assistant"!==b.role&&"toolResult"!==b.role)return a;try{let c=this.inner.sessionManager.getEntries(),d=JSON.stringify(b);for(let b=c.length-1;b>=0;b--){let e=c[b];if("message"===e.type&&"string"==typeof e.id&&JSON.stringify(e.message)===d)return{...a,__entryId:e.id}}}catch{}let c=function(a){let b="string"==typeof a.role?a.role:null;if(!b)return null;let c="number"==typeof a.timestamp?a.timestamp:0,d=0;try{let b=JSON.stringify(a.content??"");for(let a=0;a<b.length;a++)d=(d<<5)-d+b.charCodeAt(a)|0}catch{}return`synth:${b}:${c}:${(d>>>0).toString(36)}`}(b);return c?{...a,__entryId:c}:a}resetIdleTimer(){this.idleTimer&&clearTimeout(this.idleTimer),this.idleTimer=setTimeout(()=>{this.isBusy()?this.resetIdleTimer():this.destroy()},6e5)}sequenceEvent(a){"string"!=typeof this.streamEpoch&&(this.streamEpoch=(0,q.randomUUID)());let b=Number.isSafeInteger(this.nextEventId)?this.nextEventId:1;return this.nextEventId=b+1,{...a,__eventId:`${this.streamEpoch}:${b}`,__eventSequence:b,__streamEpoch:this.streamEpoch}}bufferReplayEvent(a){"agent_start"===a.type&&(this.replayEvents=[]),this.replayEvents.push(a),this.replayEvents.length>200&&this.replayEvents.splice(0,this.replayEvents.length-200)}onEvent(a,b={}){if(this.listeners.push(a),b.replay){let c=(0,x.Z)({streamEpoch:this.streamEpoch,nextSequence:this.nextEventId,events:this.replayEvents,afterEventId:b.afterEventId}),{afterSequence:d}=c;for(let e of(c.replayGap&&(a({type:"replay_gap",requestedAfter:b.afterEventId,streamEpoch:this.streamEpoch,oldestEventId:this.replayEvents[0]?.__eventId??null}),d=void 0),this.replayEvents)){let b="number"==typeof e.__eventSequence?e.__eventSequence:0;(void 0===d||b>d)&&a(e)}}return()=>{let b=this.listeners.indexOf(a);-1!==b&&this.listeners.splice(b,1)}}onDestroy(a){this.onDestroyCallback=a}async send(a){this.resetIdleTimer();let b=a.type;switch(b){case"prompt":{if(null!==this.activePromptRunId||this.isBusy())throw new R(this.sessionId);Number.isSafeInteger(this.promptRunId)||(this.promptRunId=0);let b=++this.promptRunId;this.activePromptRunId=b,this.busyOperations.add("prompt"),this.setRuntimePhase("waiting_model"),this.resetIdleTimer(),this.replayEvents=[],this.emit({type:"prompt_admitted",__runId:b}),O();try{let c="string"==typeof a.leafId&&a.leafId.trim()?a.leafId:null;if(c&&this.inner.sessionManager.getLeafId()!==c&&(await this.inner.navigateTree(c,{})).cancelled)throw Error(`Failed to navigate session to leaf ${c}`);if("string"==typeof a.provider&&"string"==typeof a.modelId&&await this.applyModelSelection(a.provider,a.modelId),"string"==typeof a.thinkingLevel&&this.applyThinkingLevel(a.thinkingLevel),Array.isArray(a.toolNames)){let b=this.filterAvailableToolNames(a.toolNames);this.inner.setActiveToolsByName(b)}this.preparePromptContext(a.message);let d=a.images,e=this.inner.model?.input,f=!e||0===e.length||e.includes("image")?d:void 0;return this.inner.prompt(a.message,f?.length?{images:f}:void 0).then(()=>{this.emit({type:"prompt_done",__runId:b})}).catch(a=>{this.abortedPromptRunId!==b&&this.emit({type:"prompt_error",__runId:b,error:a instanceof Error?a.message:String(a)})}).finally(()=>this.finishPromptRun(b)),{runId:b}}catch(a){throw this.emit({type:"prompt_error",__runId:b,error:a instanceof Error?a.message:String(a)}),this.finishPromptRun(b),a}}case"abort":return this.abortedPromptRunId=this.promptRunId,await this.inner.abort(),null;case"get_state":{let a=this.inner.model,b=this.inner.getContextUsage(),c=this.inner.agent.state?.systemPrompt??"",d=(0,g.cV)(),e=(0,t.U5)(this.inner.sessionId),f=this.getRuntimeStatus();return{sessionId:this.inner.sessionId,sessionFile:this.inner.sessionFile??"",isStreaming:this.inner.isStreaming,isCompacting:this.inner.isCompacting,autoCompactionEnabled:this.inner.autoCompactionEnabled,autoRetryEnabled:this.inner.autoRetryEnabled,model:a?{id:a.id,provider:a.provider}:void 0,messageCount:0,pendingMessageCount:0,phase:f.phase,activeTools:f.activeTools,lastEventAt:f.lastEventAt,lastEventType:f.lastEventType,errorMessage:f.errorMessage,goal:e?.goal??null,contextUsage:b?{percent:b.percent,contextWindow:b.contextWindow,tokens:b.tokens}:null,systemPrompt:d.generativeUI?c:(0,k.FE)(c),thinkingLevel:this.inner.agent.state?.thinkingLevel??"off"}}case"set_model":{if(this.isBusy())throw new R(this.sessionId);let{provider:b,modelId:c}=a,d=await this.applyModelSelection(b,c);return{id:d.id,provider:d.provider,thinkingLevel:this.inner.agent.state?.thinkingLevel??"off"}}case"fork":{let b;if(this.isBusy())throw new R(this.sessionId);let c=a.entryId,d=this.inner.sessionManager,g=this.inner.sessionFile;if(!d.isPersisted())return{cancelled:!0};if(!g)throw Error("Persisted session is missing a session file");let h=d.getEntry(c);if(!h)throw Error("Invalid entry ID for forking");let i=d.getSessionDir();if(h.parentId){let a=e.SessionManager.open(g,i).createBranchedSession(h.parentId);if(!a)throw Error("Failed to create forked session");b=a}else{let a=e.SessionManager.create(d.getCwd(),i);a.newSession({parentSession:g}),b=a.getSessionFile()}let j=e.SessionManager.open(b,i).getSessionId();(0,f.O8)(j,b);let k=D(this.inner),l=(0,t.U5)(this.sessionId);return l&&await (0,t.oR)(j,{...l,createdBy:"fork",createdAt:new Date().toISOString()},k?{cwd:k}:{}),this.destroy(),k&&((0,u.fd)(k),(0,u.E8)()),{cancelled:!1,newSessionId:j}}case"navigate_tree":if(this.isBusy())throw new R(this.sessionId);return{cancelled:(await this.inner.navigateTree(a.targetId,{})).cancelled};case"set_thinking_level":if(this.isBusy())throw new R(this.sessionId);return this.applyThinkingLevel(a.level),null;case"compact":{let b;if(this.isBusy())throw new R(this.sessionId);let{findCutPoint:d,DEFAULT_COMPACTION_SETTINGS:e}=await Promise.resolve().then(c.bind(c,75430)),f=this.inner.sessionManager.getBranch(),g={...e,...this.inner.settingsManager.getCompactionSettings()},h=-1;for(let a=f.length-1;a>=0;a--)if("compaction"===f[a].type){h=a;break}let i=h+1,j=d(f,i,f.length,g.keepRecentTokens);if((j.isSplitTurn?j.turnStartIndex:j.firstKeptEntryIndex)<=i)throw new S("too-short","Conversation is too short to compact");try{b=await this.trackBusy("compact",this.inner.compact(a.customInstructions))}catch(c){let a,b;throw(b=(a=c instanceof Error?c.message:String(c)).toLowerCase()).includes("already compacted")?new S("already-compacted","This session has already been compacted"):b.includes("too small")||b.includes("nothing to compact")||b.includes("too short")?new S("too-short","Conversation is too short to compact"):b.includes("cancelled")||b.includes("abort")?new S("cancelled","Compaction was cancelled"):new S("failed",a||"Compaction failed")}let k=b;return{tokensBefore:"number"==typeof k?.tokensBefore?k.tokensBefore:null,tokensAfter:"number"==typeof k?.estimatedTokensAfter?k.estimatedTokensAfter:null,reducedBy:"number"==typeof k?.tokensBefore&&"number"==typeof k?.estimatedTokensAfter?Math.max(0,k.tokensBefore-k.estimatedTokensAfter):null}}case"set_auto_compaction":return this.inner.setAutoCompactionEnabled(a.enabled),null;case"steer":{this.preparePromptContext(a.message);let b=a.images,c=this.inner.model?.input,d=!c||0===c.length||c.includes("image")?b:void 0;return await this.trackBusy("steer",this.inner.steer(a.message,d?.length?d:void 0)),null}case"follow_up":{this.preparePromptContext(a.message);let b=a.images,c=this.inner.model?.input,d=!c||0===c.length||c.includes("image")?b:void 0;return await this.trackBusy("follow_up",this.inner.followUp(a.message,d?.length?d:void 0)),null}case"get_tools":{let a=this.inner.getAllTools(),b=new Set(this.inner.getActiveToolNames());return a.map(a=>({name:a.name,description:a.description,active:b.has(a.name)}))}case"set_tools":{if(this.isBusy())throw new R(this.sessionId);let b=this.filterAvailableToolNames(a.toolNames);return this.inner.setActiveToolsByName(b),this.applyRuntimePrompts(),(0,t.LN)(this.sessionId,{lastToolNames:this.inner.getActiveToolNames()}).catch(()=>{}),null}case"abort_compaction":return this.inner.abortCompaction(),null;case"append_message":{if(this.isBusy())throw new R(this.sessionId);let b=a.message;if("string"!=typeof b||!b.trim())return null;if(!this.inner.sendCustomMessage)throw Error("Session does not support append_message");return await this.inner.sendCustomMessage({customType:"string"==typeof a.customType&&a.customType?a.customType:"context-note",content:b,display:"boolean"!=typeof a.display||a.display},{triggerTurn:!1}),null}case"set_auto_retry":return this.inner.setAutoRetryEnabled(a.enabled),null;default:throw Error(`Unsupported command: ${b}`)}}destroy(){this._alive&&(this._alive=!1,this.idleTimer&&clearTimeout(this.idleTimer),this.unsubscribe?.(),this.onDestroyCallback?.(),O())}bumpSessionCwd(){let a=D(this.inner);a&&(0,u.fd)(a)}async applyModelSelection(a,b){let c=this.modelRegistry.find(a,b);if(!c){let d=a.toLowerCase().replace(/-/g,"");d!==a&&(c=this.modelRegistry.find(d,b))}if(!c)throw Error(`Model not found: ${a}/${b}`);return await this.inner.setModel(c),c}applyThinkingLevel(a){this.inner.setThinkingLevel(a),"xhigh"===a&&this.inner.model?.compat?.thinkingFormat==="deepseek"&&this.inner.agent?.state&&(this.inner.agent.state.thinkingLevel="xhigh")}preparePromptContext(a){this.applyRuntimePrompts(a)}finishPromptRun(a){this.activePromptRunId===a&&(this.activePromptRunId=null,this.busyOperations.delete("prompt"),this.isBusy()||this.setRuntimePhase("idle"),this.resetIdleTimer(),O())}async trackBusy(a,b){this.busyOperations.add(a),this.setRuntimePhase("compact"===a?"compacting":"waiting_model"),this.resetIdleTimer(),O();try{return await b}finally{this.busyOperations.delete(a),this.isBusy()||this.setRuntimePhase("idle"),this.resetIdleTimer(),O()}}setRuntimePhase(a,b=Date.now()){this.currentRuntimePhase!==a&&(this.currentRuntimePhase=a,this.phaseStartedAtMs="idle"===a?null:b)}getPhase(){if(this.inner.isCompacting||this.busyOperations.has("compact"))return"compacting";if(this.activeTools.size>0)return"running_tools";if(this.isBusy()){let a=this.currentRuntimePhase;return a&&"idle"!==a?a:"waiting_model"}return"idle"}emit(a){let b=this.sequenceEvent(a);for(let a of(this.bufferReplayEvent(b),this.listeners))a(b)}recordRuntimeEvent(a){let b=Date.now();switch(this.lastEventAtMs=b,this.lastEventType=a.type,a.type){case"agent_start":this.runStartedAtMs=b,this.firstModelEventAtMs=null,this.lastErrorMessage=null,this.activeTools.clear(),this.setRuntimePhase("waiting_model",b);break;case"message_start":case"message_update":{let c=a.message;c?.role==="assistant"?(this.firstModelEventAtMs||(this.firstModelEventAtMs=b),"string"==typeof c.errorMessage&&(this.lastErrorMessage=c.errorMessage),this.setRuntimePhase("streaming",b)):c?.role==="user"&&this.setRuntimePhase("waiting_model",b);break}case"message_end":{let c=a.message;c?.role==="assistant"&&"string"==typeof c.errorMessage&&(this.lastErrorMessage=c.errorMessage),this.setRuntimePhase("waiting_model",b);break}case"tool_execution_start":{let c="string"==typeof a.toolCallId?a.toolCallId:"",d="string"==typeof a.toolName?a.toolName:"tool";c&&this.activeTools.set(c,d),this.setRuntimePhase("running_tools",b);break}case"tool_execution_end":{let c="string"==typeof a.toolCallId?a.toolCallId:"";c&&this.activeTools.delete(c),this.setRuntimePhase(this.activeTools.size>0?"running_tools":"waiting_model",b);break}case"auto_retry_start":this.setRuntimePhase("waiting_model",b);break;case"compaction_start":case"auto_compaction_start":this.setRuntimePhase("compacting",b);break;case"compaction_end":case"auto_compaction_end":this.setRuntimePhase(this.isBusy()?"waiting_model":"idle",b);break;case"agent_end":this.activeTools.clear(),!0===a.willRetry?this.setRuntimePhase("waiting_model",b):(this.setRuntimePhase("idle",b),this.runStartedAtMs=null,this.firstModelEventAtMs=null)}}applyRuntimePrompts(a){if(!this.inner.agent.state||this.options.systemPromptDisabled)return;let b=(0,g.cV)(),c=this.inner.getActiveToolNames(),d=(0,m.R4)(c),e=B(this.inner),f=0;if(this.sessionFile)try{f=(0,o.statSync)(this.sessionFile).mtimeMs}catch{f=0}let h=null;if(d&&this.sessionFile)if(this._kernelStateCache&&this._kernelStateCache.mtime===f)h=this._kernelStateCache.summary;else{let a=(0,w.f)(this.sessionFile);a?(h=(0,w.v)(a),this._kernelStateCache={mtime:f,summary:h}):this._kernelStateCache=null}else this._kernelStateCache=null;let i=h?`|mtime=${f}`:"",j=a??"",n=`${d}|${b.generativeUI}|${j.length>0?"msg":"no-msg"}${i}`;if(this._lastAppliedPromptKey===n&&e.length>0)return;if(!b.generativeUI){let a=(0,m.X8)((0,k.FE)(e)),b=F(a,d),c=h?`${b}
|
|
143
143
|
|
|
144
|
-
${h}`:b;
|
|
144
|
+
${h}`:b;C(this.inner,c),this._lastAppliedPromptKey=n;return}let p=(0,m.X8)((0,k.FE)(e)),q=(0,k.zN)(p),r=F(q,d),s=a?(0,l.WO)(r,a,{force:function(a){try{return a.getBranch().some(a=>!!a&&"object"==typeof a&&"message"===a.type&&!!a.message&&JSON.stringify(a.message).includes("show-widget"))}catch{return!1}}(this.inner.sessionManager)}):r;h&&(s=`${s}
|
|
145
145
|
|
|
146
|
-
${h}`),
|
|
146
|
+
${h}`),C(this.inner,s),this._lastAppliedPromptKey=n}filterAvailableToolNames(a){if(!Array.isArray(a))return[];let b=a.filter(a=>"string"==typeof a);if(!b.includes(s.lA))return b;let c=(0,e.getAgentDir)();return(0,r.Y)(c).ready?b:b.filter(a=>a!==s.lA)}}function B(a){return"string"==typeof a._baseSystemPrompt?a._baseSystemPrompt:a.agent.state?.systemPrompt??""}function C(a,b){"string"==typeof a._baseSystemPrompt&&(a._baseSystemPrompt=b),a.agent.state&&(a.agent.state.systemPrompt=b)}function D(a){try{let b=a.sessionManager;return b.getCwd?.()??null}catch{return null}}function E(a){return a?new Date(a).toISOString():null}function F(a,b){let c=(0,m.X8)(a);return b?(0,m.FJ)(c):c}function G(a){let b=(0,m.X8)((0,k.FE)(a.systemPrompt)),c=a.generativeUI?(0,k.zN)(b):b;return F(c,a.plotMode)}function H(a){let b=[],c=(0,n.sz)(a.agentDir);if((0,o.existsSync)(c))try{let a=(0,o.readFileSync)(c,"utf-8").trim();a&&b.push((0,n.Is)(a,(0,n.Tg)(c)))}catch{}let d=(0,n.td)(a.agentDir);if((0,o.existsSync)(d))try{let a=(0,o.readFileSync)(d,"utf-8").trim();a&&!(0,k.J)(a)&&b.push((0,n.x9)(a,(0,n.Tg)(d)))}catch{}let e=(0,n.o7)(a.cwd);if((0,o.existsSync)(e))try{let a=(0,o.readFileSync)(e,"utf-8").trim();a&&b.push((0,n.w0)(a,(0,n.Tg)(e)))}catch{}let f=a.piSystemPrompt.trim();return f&&b.push(["## Tool, Skill, and Project Instructions\n\nThe following instructions were generated by AnnoVibe/pi for tools, skills, and project-specific guidance.\nFollow them as system instructions, with SOUL/HARNESS above defining identity and global behavior.\n",f].join("\n")),b.join("\n\n").trim()}function I(){if(!globalThis.__piSessions){globalThis.__piSessions=new Map;let a=()=>globalThis.__piSessions?.forEach(a=>a.destroy());process.once("exit",a),process.once("SIGINT",a),process.once("SIGTERM",a)}return globalThis.__piSessions}function J(a){return I().get(a)}function K(){let a=new Set;for(let[b,c]of I())c.isAlive()&&c.isBusy()&&a.add(c.sessionId||b);return[...a]}function L(){return globalThis.__piRunningListeners||(globalThis.__piRunningListeners=new Set),globalThis.__piRunningListeners}function M(a){let b=L();return b.add(a),()=>{b.delete(a)}}function N(){return L().size}let V="";function O(){let a=K(),b=JSON.stringify([...a].sort());if(b!==V)for(let c of(V=b,L()))try{c(a)}catch{}}function P(){let a=[...I().values()].filter(a=>a.isAlive()).map(a=>a.getRuntimeStatus()),b=a.filter(a=>a.busy);return{busy:b.length>0,activeSessions:a.length,busySessions:b,sessions:a}}async function Q(a,b,d,k,l){let n=I(),o=(globalThis.__piStartLocks||(globalThis.__piStartLocks=new Map),globalThis.__piStartLocks),q=n.get(a);if(q?.isAlive())return{session:q,realSessionId:a};let u=o.get(a);if(u)return u;let w=(async()=>{let o=(0,e.getAgentDir)(),q=b?e.SessionManager.open(b,void 0):e.SessionManager.create(d,void 0),u=e.SettingsManager.create(d,o),w=function(a){try{let b=c(83026).resolve(`${a}/package.json`);return(0,p.dirname)(b)}catch{if(!(process.env.ANNOVIBE_PACKAGE_ROOT??process.env.PIDEX_PACKAGE_ROOT))return null;try{let b=(void 0).resolve(`${a}/package.json`);return(0,p.dirname)(b)}catch{return null}}}("@seqyuan/pi-kernel-plot"),x=await (0,e.createAgentSessionServices)({cwd:d,agentDir:o,settingsManager:u,resourceLoaderOptions:{additionalSkillPaths:w?[(0,p.join)(w,"skills")]:[],extensionFactories:[h.H,i.A,j.$]}}),y=!k&&a?(0,t.U5)(a)?.lastToolNames:void 0,z=function(a,b){if(a)return!a.includes(s.lA)||(0,r.Y)(b).ready?a:a.filter(a=>a!==s.lA)}(k??y,o),{session:A}=await (0,e.createAgentSessionFromServices)({services:x,sessionManager:q,tools:z??T}),D=(0,g.cV)(),E=A.agent.state?.systemPrompt??"";C(A,H({cwd:d,agentDir:o,piSystemPrompt:E})),C(A,G({systemPrompt:B(A),generativeUI:D.generativeUI,plotMode:(0,m.R4)(z??A.getActiveToolNames())})),z&&z.length>0&&(A.setActiveToolsByName(z),C(A,G({systemPrompt:B(A),generativeUI:D.generativeUI,plotMode:(0,m.R4)(z)}))),z?.length===0&&C(A,H({cwd:d,agentDir:o,piSystemPrompt:""}));let F=new U(A,x.modelRegistry,{systemPromptDisabled:z?.length===0});F.start(),"im"===l&&C(A,(0,v.N9)(B(A)));let I=A.sessionId,J=A.sessionFile;return J&&(0,f.O8)(I,J),F.onDestroy(()=>n.delete(I)),n.set(I,F),{session:F,realSessionId:I}})().finally(()=>o.delete(a));return o.set(a,w),w}d()}catch(a){d(a)}})},57149:(a,b,c)=>{"use strict";c.d(b,{N9:()=>e});let d="<wecom_im_channel>";function e(a){return a.includes(d)?a:`${a}
|
|
147
147
|
|
|
148
148
|
${d}
|
|
149
149
|
## WeCom IM Channel Constraints
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports.id=7831,exports.ids=[7831],exports.modules={10237:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{IJ:()=>n,Vu:()=>l,ke:()=>k,xE:()=>q,yk:()=>p});var e=c(29021),f=c(33873),g=c(75430),h=c(16185),i=c(50723),j=a([g,h]);function k(){return(0,f.join)((0,g.getAgentDir)(),"annovibe-projects.json")}function l(){return{version:2,manualOrder:!1,projects:{}}}function m(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function n(){let a,b=k();if(!(0,e.existsSync)(b))return{ok:!1,missing:!0};try{a=JSON.parse((0,e.readFileSync)(b,"utf8"))}catch(a){return{ok:!1,missing:!1,error:`Project registry is not valid JSON: ${o(a)}`}}try{return{ok:!0,registry:function(a){if(!m(a))throw Error("Project registry root must be an object");let b=a.version;if(void 0!==b&&"number"!=typeof b)throw Error("Project registry `version` must be a number");if(void 0!==a.manualOrder&&"boolean"!=typeof a.manualOrder)throw Error("Project registry `manualOrder` must be a boolean");if(!m(a.projects))throw Error("Project registry `projects` must be an object");let c={};for(let[b,d]of Object.entries(a.projects)){if(!m(d))throw Error(`Project record for "${b}" must be an object`);let a="string"==typeof d.cwd&&d.cwd.trim()?d.cwd:b,e=(0,h.Pt)(a);if(!e)throw Error(`Project record for "${b}" has an empty cwd`);let f={cwd:e};if(void 0!==d.name){if("string"!=typeof d.name)throw Error(`Project "${e}" name must be a string`);f.name=d.name}if(void 0!==d.hidden){if("boolean"!=typeof d.hidden)throw Error(`Project "${e}" hidden must be a boolean`);f.hidden=d.hidden}if(void 0!==d.pinned){if("boolean"!=typeof d.pinned)throw Error(`Project "${e}" pinned must be a boolean`);f.pinned=d.pinned}if(void 0!==d.sortOrder&&null!==d.sortOrder){if("number"!=typeof d.sortOrder||!Number.isFinite(d.sortOrder))throw Error(`Project "${e}" sortOrder must be a finite number`);f.sortOrder=d.sortOrder}if(void 0!==d.addedAt){if("string"!=typeof d.addedAt)throw Error(`Project "${e}" addedAt must be a string`);f.addedAt=d.addedAt}if(void 0!==d.lastAccessed){if("string"!=typeof d.lastAccessed)throw Error(`Project "${e}" lastAccessed must be a string`);f.lastAccessed=d.lastAccessed}c[e]=f}return{version:"number"==typeof b?b:2,manualOrder:!0===a.manualOrder,projects:c}}(a)}}catch(a){return{ok:!1,missing:!1,error:o(a)}}}function o(a){return a instanceof Error?a.message:String(a)}function p(a){let b=Object.values(a.projects).map(a=>({cwd:a.cwd,name:a.name??null,hidden:a.hidden??null,pinned:a.pinned??null,sortOrder:"number"==typeof a.sortOrder?a.sortOrder:null,addedAt:a.addedAt??null})).sort((a,b)=>a.cwd<b.cwd?-1:+(a.cwd>b.cwd));return{version:a.version,manualOrder:!0===a.manualOrder,projects:b}}function q(a){return(0,i.fg)((0,i.JB)(p(a)))}[g,h]=j.then?(await j)():j,d()}catch(a){d(a)}})},16185:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{D0:()=>l,Pt:()=>k,je:()=>j,tE:()=>h,vo:()=>i});var e=c(33873),f=c(75430),g=a([f]);function h(){return(0,e.join)((0,f.getAgentDir)(),"sessions")}function i(){return(0,e.join)((0,f.getAgentDir)(),"session-meta")}function j(a){return(0,e.join)(i(),`${a}.json`)}function k(a){let b=a.trim();if(!b)return b;let c=(0,e.resolve)(b);return c.length>1&&(c.endsWith("/")||c.endsWith("\\"))?c.slice(0,-1):c}function l(a){let b=(0,e.resolve)(a),c=`--${b.replace(/^[/\\]/,"").replace(/[/\\:]/g,"-")}--`;return(0,e.join)((0,f.getAgentDir)(),"sessions",c)}f=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},50723:(a,b,c)=>{"use strict";c.d(b,{$Q:()=>n,JB:()=>l,V0:()=>i,a_:()=>k,fg:()=>m,w9:()=>j});var d=c(29021),e=c(55511);function f(a){return"bigint"==typeof a||"number"==typeof a&&Number.isFinite(a)?a.toString():"unknown"}function g(a){return"bigint"==typeof a||"number"==typeof a&&Number.isFinite(a)?a.toString():null}function h(a,b,c){let d=g(a);if(null!==d)return`ns:${d}`;let e=g(b);return null!==e?`ms:${e}`:c instanceof Date&&Number.isFinite(c.getTime())?`ms:${c.getTime().toString()}`:"unknown"}function i(a){let b;try{b=(0,d.statSync)(a,{bigint:!0})}catch{b=(0,d.statSync)(a)}let c=b,e=f(c.size),g=h(c.mtimeNs,c.mtimeMs,c.mtime),i=h(c.ctimeNs,c.ctimeMs,c.ctime);return{size:e,mtime:g,ctime:i,ino:f(c.ino),dev:f(c.dev)}}function j(a){try{return i(a)}catch(a){if(k(a))return null;throw a}}function k(a){return!!a&&"object"==typeof a&&"ENOENT"===a.code}function l(a){return function a(b){if(null===b)return"null";if(Array.isArray(b))return`[${b.map(b=>a(b)).join(",")}]`;let c=typeof b;if("string"===c)return JSON.stringify(b);if("boolean"===c)return b?"true":"false";if("number"===c)return Number.isFinite(b)?String(b):"null";if("bigint"===c)return`"${b.toString()}"`;if("undefined"===c)return"null";if("object"===c){let c=Object.keys(b).sort().map(c=>`${JSON.stringify(c)}:${a(b[c])}`);return`{${c.join(",")}}`}return"null"}(a)}function m(a){return(0,e.createHash)("sha256").update(a,"utf8").digest("hex")}function n(a){let b=/^(?:ns|ms):(\d+)$/.exec(a.mtime);if(!b)return 0;let c=Number(b[1]);return a.mtime.startsWith("ns:")?c/1e6:c}},77443:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{C8:()=>m,Pf:()=>n,Y1:()=>p,_E:()=>l,rb:()=>o});var e=c(29021),f=c(33873),g=c(55511),h=c(75430),i=a([h]);h=(i.then?(await i)():i)[0];let r=(0,f.join)((0,h.getAgentDir)(),"session-projections"),s=(0,f.join)(r,"index.json"),t=null,u=!1,v=null;function j(){if(t)return t;try{if((0,e.existsSync)(s)){let a=JSON.parse((0,e.readFileSync)(s,"utf-8"));if(a&&2===a.version&&"object"==typeof a.entries&&null!==a.entries)return t={version:2,entries:a.entries}}}catch{}return t={version:2,entries:{}}}function k(a){if(!a)return!1;let b=a.identity;return!!b&&"string"==typeof b.size&&"string"==typeof b.mtime&&"string"==typeof b.ctime&&"string"==typeof b.ino&&"string"==typeof b.dev&&"string"==typeof a.id&&"string"==typeof a.cwd}function l(a,b){var c;let d=j().entries[a];return k(d)&&(c=d.identity,c&&c.size===b.size&&c.mtime===b.mtime&&c.ctime===b.ctime&&c.ino===b.ino&&c.dev===b.dev)?d:null}function m(a,b){j().entries[a]=b,q()}function n(a){let b=j();Object.hasOwn(b.entries,a)&&(delete b.entries[a],q())}function o(a){let b=j(),c=[];for(let[d,e]of Object.entries(b.entries))k(e)&&e.id===a&&c.push(d);return c}function p(a){return o(a)[0]??null}function q(){u=!0,v||(v=setTimeout(()=>{v=null,u&&(u=!1,function(){if(t)try{(0,e.existsSync)(r)||(0,e.mkdirSync)(r,{recursive:!0});let a=`${s}.${(0,g.randomUUID)().slice(0,8)}.tmp`;(0,e.writeFileSync)(a,JSON.stringify(t)),(0,e.renameSync)(a,s)}catch{}}())},2e3))}d()}catch(a){d(a)}})},78335:()=>{},91179:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{E8:()=>v,Ev:()=>p,Gn:()=>y,NP:()=>q,fd:()=>t,tt:()=>B,uk:()=>D,xm:()=>w,yR:()=>x});var e=c(29021),f=c(33873),g=c(55511),h=c(16185),i=c(50723),j=c(77443),k=c(10237),l=a([h,j,k]);function m(){return globalThis.__piSessionIndexState&&1===globalThis.__piSessionIndexState.stateVersion||(globalThis.__piSessionIndexState={stateVersion:1,processEpoch:(0,g.randomUUID)(),invalidationCounter:0,globalCwdGeneration:0,cwdGenerations:new Map,projectGeneration:0,latestStable:new Map,probeLocks:new Map,recentProbes:new Map,cwdsBySessionDir:new Map,dirty:new Set,lastRegistryDigest:null,listeners:new Set}),globalThis.__piSessionIndexState}[h,j,k]=l.then?(await l)():l;function n(){return"projects"}function o(a){var b;return"projects"===a.kind?n():(b=a.cwd,`cwd:${b}`)}function p(a){let b=m();if("projects"===a.kind)return String(b.projectGeneration);let c=b.cwdGenerations.get(a.cwd)??0;return`${b.globalCwdGeneration}:${c}`}function q(a){return m().latestStable.get(o(a))??null}function r(a){return a.invalidationCounter+=1,`${a.processEpoch}:${a.invalidationCounter}`}function s(a,b){for(let c of a.listeners)try{c(b)}catch{}}function t(a){let b=(0,h.Pt)(a);if(!b)return;let c=m(),d=`cwd:${b}`;c.cwdGenerations.set(b,(c.cwdGenerations.get(b)??0)+1),c.recentProbes.delete(d),c.dirty.add(d),z(b),s(c,{type:"index-invalidated",scope:"cwd",cwd:b,invalidationId:r(c)})}function u(){let a=m();for(let b of(a.globalCwdGeneration+=1,[...a.recentProbes.keys()]))b.startsWith("cwd:")&&a.recentProbes.delete(b);for(let b of[...a.dirty])b.startsWith("cwd:")&&a.dirty.delete(b);s(a,{type:"index-invalidated",scope:"all-cwds",invalidationId:r(a)})}function v(){let a=m();a.projectGeneration+=1,a.recentProbes.delete(n()),a.dirty.add(n()),s(a,{type:"index-invalidated",scope:"projects",invalidationId:r(a)})}async function w(a){try{for(let b of(0,j.rb)(a))try{let c=(0,i.V0)(b),d=(0,j._E)(b,c);if(d&&d.id===a){let a=(0,h.Pt)(d.cwd);if(a)return void t(a)}}catch{}u()}catch{u()}}function x(a){let b=m();return b.listeners.add(a),()=>{b.listeners.delete(a)}}function y(){return r(m())}function z(a){let b=m(),c=(0,h.D0)(a),d=b.cwdsBySessionDir.get(c);d||(d=new Set,b.cwdsBySessionDir.set(c,d)),d.add(a)}class E extends Error{constructor(a){super(a),this.name="ScanChangedError"}}function A(a){try{return a()}catch(b){if(!(b instanceof E))throw b;return a()}}function B(a,b,c={}){let d,g,l=m(),n=o(a),q=p(a);if("cached"===b&&!c.nonJoinable){let a=l.recentProbes.get(n);if(a&&a.generation===q&&Date.now()<a.expiresAt)return Promise.resolve(a.result)}let r=`${n}:${b}:${q}`;if(!c.nonJoinable){let a=l.probeLocks.get(r);if(a)return a}let s=(d=m(),(g={}).promise=(async()=>{try{let c="projects"===a.kind?A(()=>{let a=function(){let a,b=(0,k.IJ)();if(!b.ok&&!b.missing)throw Error(b.error);let c=b.ok?b.registry:(0,k.Vu)(),d=(0,i.fg)((0,i.JB)((0,k.yk)(c))),g=(0,h.tE)();try{a=(0,e.readdirSync)(g)}catch(b){if((0,i.a_)(b))a=[];else throw b}let j=[];for(let b of a){let a,c=(0,f.join)(g,b);try{if(!(0,e.statSync)(c).isDirectory())continue;a=(0,i.V0)(c)}catch(a){if((0,i.a_)(a))throw new E(`Session dir vanished mid-scan: ${b}`);throw a}j.push({name:b,identity:a})}return j.sort((a,b)=>a.name<b.name?-1:+(a.name>b.name)),{registryDigest:d,sessionDirs:j}}();return{revision:(0,i.fg)((0,i.JB)(a)),registryDigest:a.registryDigest}}):A(()=>{var c;return{revision:(c=function(a,b={}){let c,d=(0,h.D0)(a);z(a);try{c=(0,e.readdirSync)(d).filter(a=>a.endsWith(".jsonl"))}catch(a){if((0,i.a_)(a))return[];throw a}let g=[];for(let e of c){let c,k=(0,f.join)(d,e);try{c=(0,i.V0)(k)}catch(a){if((0,i.a_)(a))throw new E(`Session file vanished mid-scan: ${e}`);throw a}let l=function(a){let b=a.match(/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/i);return b?.[0]??null}(e);if(!l&&!b.force){let b=(0,j._E)(k,c);b&&(0,h.Pt)(b.cwd)===a&&(l=b.id)}let m=null;l&&(m=(0,i.w9)((0,h.je)(l))),g.push({fileName:e,session:c,sessionId:l,metadata:m})}return g.sort((a,b)=>a.fileName<b.fileName?-1:+(a.fileName>b.fileName)),g}(a.cwd,{force:"force"===b}),(0,i.fg)((0,i.JB)(c)))}}),g=p(a);if(g!==q)return{revision:null,generation:g,stale:!0};if(d.latestStable.set(n,{revision:c.revision,generation:q}),void 0!==c.registryDigest&&(d.lastRegistryDigest=c.registryDigest),"cached"===b){let a={revision:c.revision,generation:q,stale:!1};return d.recentProbes.set(n,{generation:q,result:a,expiresAt:Date.now()+2e3}),a}return d.dirty.delete(n),{revision:c.revision,generation:q,stale:!1}}catch(a){return{revision:null,generation:q,stale:!0,error:a instanceof Error?a.message:String(a)}}finally{d.probeLocks.get(r)===g.promise&&d.probeLocks.delete(r)}})(),g.promise);return l.probeLocks.set(r,s),s}let F=null,G=null,H=new Map;function C(a,b,c){let d=H.get(a);d&&clearTimeout(d),H.set(a,setTimeout(()=>{H.delete(a);try{c()}catch{}},b))}function D(){if(!globalThis.__piSessionIndexWatchStarted){globalThis.__piSessionIndexWatchStarted=!0;try{let a=(0,h.tE)();(0,e.existsSync)(a)&&(F=(0,e.watch)(a,{recursive:!0},(a,b)=>{!function(a){if(!a)return;let b=a.split(/[/\\]/)[0];if(!b)return;let c=(0,h.tE)(),d=(0,f.join)(c,b);C(`session:${d}`,400,()=>{let a=[...m().cwdsBySessionDir.get(d)??new Set];if(a.length>0){for(let b of a)t(b);v()}else{v();let a=function(a){let b;try{b=(0,e.readdirSync)(a).filter(a=>a.endsWith(".jsonl")).sort()}catch{return null}let c=b[0];if(!c)return null;let d=function(a){let b;try{b=(0,e.openSync)(a,"r");let c=Buffer.alloc(4096),d=(0,e.readSync)(b,c,0,4096,0);return c.toString("utf-8",0,d)}finally{if(void 0!==b)try{(0,e.closeSync)(b)}catch{}}}((0,f.join)(a,c)),g=d.indexOf("\n");if(-1===g)return null;let i=d.slice(0,g).trim();if(!i)return null;try{let a=JSON.parse(i);if("session"===a.type&&"string"==typeof a.cwd&&a.cwd.trim())return(0,h.Pt)(a.cwd)}catch{}return null}(d);a&&(z(a),t(a))}})}(b?.toString()??null)})).on("error",()=>{try{F?.close()}catch{}F=null})}catch{}try{let a=(0,k.ke)(),b=(0,f.dirname)(a),c=(0,f.basename)(a);(G=(0,e.watch)(b,(a,b)=>{b&&b.toString()===c&&C("registry",400,()=>{try{let a=(0,k.IJ)();if(!a.ok&&!a.missing)return;let b=a.ok?a.registry:(0,k.Vu)(),c=(0,i.fg)((0,i.JB)((0,k.yk)(b))),d=m();if(null!==d.lastRegistryDigest&&c===d.lastRegistryDigest)return;d.lastRegistryDigest=c,v()}catch{}})})).on("error",()=>{try{G?.close()}catch{}G=null})}catch{}}}d()}catch(a){d(a)}})},96487:()=>{}};
|