@tablestore/tablestore-agent-cli 0.2.11 → 0.3.1
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/dist/commands/dashboard.d.ts.map +1 -1
- package/dist/commands/dashboard.js +3 -0
- package/dist/commands/dashboard.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +10 -11
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/memory-items.d.ts +3 -0
- package/dist/commands/memory-items.d.ts.map +1 -0
- package/dist/commands/memory-items.js +375 -0
- package/dist/commands/memory-items.js.map +1 -0
- package/dist/commands/memory.d.ts.map +1 -1
- package/dist/commands/memory.js +131 -196
- package/dist/commands/memory.js.map +1 -1
- package/dist/dashboard-runtime/dashboard/.next/BUILD_ID +1 -1
- package/dist/dashboard-runtime/dashboard/.next/app-path-routes-manifest.json +1 -0
- package/dist/dashboard-runtime/dashboard/.next/build-manifest.json +3 -3
- package/dist/dashboard-runtime/dashboard/.next/prerender-manifest.json +3 -3
- package/dist/dashboard-runtime/dashboard/.next/required-server-files.json +4 -4
- package/dist/dashboard-runtime/dashboard/.next/routes-manifest.json +6 -0
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/api-keys/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/api-keys/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/documents/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/documents/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/qa/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/qa/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/retrieval/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/retrieval/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/settings/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/settings/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/create/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/create/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/[id]/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/[id]/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/new/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/new/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/dream/[dreamId]/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/dream/[dreamId]/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/dream/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/dream/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/messages/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/messages/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/requests/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/requests/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/search/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/search/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/settings/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/settings/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/tasks/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/tasks/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/units/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/units/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/create/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/create/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/projects/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.html +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.html +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.rsc +16 -16
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_full.segment.rsc +16 -16
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_head.segment.rsc +3 -3
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_index.segment.rsc +11 -11
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +4 -4
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/[id]/custom-policy/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/[id]/custom-policy/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/[id]/effective-permissions/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/[id]/effective-permissions/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/[id]/policies/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/[id]/policies/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/[id]/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/[id]/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/filter-by-permission/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/filter-by-permission/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/auth/status/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/auth/status/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/auth/token/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/auth/token/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/token/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/token/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/use/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/use/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/connectivity/route/app-paths-manifest.json +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/connectivity/route/build-manifest.json +9 -0
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/connectivity/route/server-reference-manifest.json +4 -0
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/connectivity/route.js +6 -0
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/connectivity/route.js.map +5 -0
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/connectivity/route.js.nft.json +1 -0
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/connectivity/route_client-reference-manifest.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/chunks/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/chunks/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/[docId]/chunks/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/[docId]/chunks/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/[docId]/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/[docId]/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/upload/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/upload/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/retrieve/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/retrieve/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/chat/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/chat/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/models/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/models/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/test/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/test/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/logs/client/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/logs/client/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-kb-sync/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-kb-sync/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-tasks/[dreamId]/actions/apply/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-tasks/[dreamId]/actions/apply/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-tasks/[dreamId]/actions/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-tasks/[dreamId]/actions/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-tasks/[dreamId]/cancel/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-tasks/[dreamId]/cancel/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-tasks/[dreamId]/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-tasks/[dreamId]/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-tasks/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-tasks/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/file-memory/[action]/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/file-memory/[action]/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/messages/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/messages/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/requests/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/requests/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/scopes/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/scopes/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/search/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/search/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/tasks/[requestId]/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/tasks/[requestId]/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/tasks/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/tasks/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/units/[memoryId]/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/units/[memoryId]/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/units/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/units/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/oss/list/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/oss/list/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/runtime/context/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/runtime/context/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/index.html +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/index.rsc +15 -15
- package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_full.segment.rsc +15 -15
- package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_head.segment.rsc +3 -3
- package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_index.segment.rsc +11 -11
- package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.html +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.rsc +18 -18
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_full.segment.rsc +18 -18
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_head.segment.rsc +3 -3
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_index.segment.rsc +11 -11
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_tree.segment.rsc +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/onboarding/__PAGE__.segment.rsc +4 -4
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/onboarding.segment.rsc +4 -4
- package/dist/dashboard-runtime/dashboard/.next/server/app/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app-paths-manifest.json +1 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/0e95__next-internal_server_app_api_v1_instances_connectivity_route_actions_0hc.k~w.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/0p91_next_dist_esm_build_templates_app-route_0n~ec7s.js +8 -8
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0-pbmiq._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0-wmyic._.js +40 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0.li3cj._.js +40 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/{[root-of-the-server]__0w56nne._.js → [root-of-the-server]__0sa.9zr._.js} +6 -6
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0tc-.6s._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0y0w3mg._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/0b1r_app_(dashboard)_knowledge-base_[name]_documents_documents-client_tsx_0g2uxmt._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0.ooo1s._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__07fsbff._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0b5cw4e._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0p1cst6._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0xza7lz._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0.6x0yu._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0.pa1e6._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_01snuz~._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0251rsp._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_02waf76._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_06_hoj_._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0brqbty._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0csuit-._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0eps5jg._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0ez3yia._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0k7q0ug._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0pwlb77._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0t.h859._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0thp9l5._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_0_z9696._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_0grv2wq._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/{dashboard_src_0bhjp9s._.js → dashboard_src_0jrh7xy._.js} +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_0x60pxf._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_0y49vhd._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_10dsqx~._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_app_(dashboard)_memory_[store]_dream_[dreamId]_page_tsx_0wy3tv6._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_app_(dashboard)_memory_[store]_dream_page_tsx_0uzzpvs._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_app_(dashboard)_memory_[store]_layout_tsx_0rbi41w._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_components_memory_memory-files-browser_tsx_0o2~94-._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_i18n_i18n-context_tsx_0c39ewr._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/node_modules__pnpm_0ymj2~2._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/functions-config-manifest.json +1 -0
- package/dist/dashboard-runtime/dashboard/.next/server/middleware-build-manifest.js +3 -3
- package/dist/dashboard-runtime/dashboard/.next/server/pages/404.html +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/pages/500.html +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/server-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/server-reference-manifest.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0-xwobg-a6si1.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/01bokygf48bnj.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/04a.1c2rygy08.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/05.2q9f0yx4e_.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/09v-qczj__g1x.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/{08nzc9sye_0~h.js → 0_8~9zgfm5f.8.js} +1 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0_zw2y~vb_52n.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0a2f-mxepv-y7.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/{0jjiw-agnutux.js → 0amex7bwxnme9.js} +1 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0apfhv-v7oy7u.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0bxt5icwb83xt.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0dpi1comd-thc.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/{08h7wustf~cl4.js → 0eerrv808~6bh.js} +1 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0j6agpotrd_n4.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0jbcdgtcgqemd.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/{01xcynczarvq~.js → 0jp7zmwvyv0bn.js} +1 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0k8mhea24d_kj.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0krt75we1wtcy.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0prl9yrb8ksp8.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/{01xuyqw7ivp3n.js → 0r4azm.3hswcs.js} +3 -3
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0uj7ezedkm6ou.css +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0x5qtkdg2trq9.js +5 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0zhfdjby7cj-q.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/{0~a4ig2x9z8uq.js → 13__t3s3ipfzl.js} +1 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/16uky1ro-t_~9.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/{0hnqmb1a7y7x1.js → 18absak_u0d85.js} +3 -3
- package/dist/dashboard-runtime/dashboard/server.js +1 -1
- package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/[store]/dream/[dreamId]/page.tsx +187 -2
- package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/[store]/dream/page.tsx +14 -1
- package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/projects/page.tsx +3 -0
- package/dist/dashboard-runtime/dashboard/src/app/api/v1/instances/connectivity/route.ts +66 -0
- package/dist/dashboard-runtime/dashboard/src/app/api/v1/llm/chat/file-memory-curator.ts +57 -52
- package/dist/dashboard-runtime/dashboard/src/app/api/v1/memory/stores/[store]/dream-tasks/[dreamId]/actions/apply/route.ts +39 -6
- package/dist/dashboard-runtime/dashboard/src/app/api/v1/memory/stores/[store]/file-memory/[action]/route.ts +22 -28
- package/dist/dashboard-runtime/dashboard/src/app/onboarding/page.tsx +1 -3
- package/dist/dashboard-runtime/dashboard/src/components/chat/mount-picker.tsx +5 -1
- package/dist/dashboard-runtime/dashboard/src/components/instance/instance-connectivity-dot.tsx +96 -0
- package/dist/dashboard-runtime/dashboard/src/components/instance/project-card.tsx +5 -1
- package/dist/dashboard-runtime/dashboard/src/components/knowledge-base/subspace-gate.tsx +23 -5
- package/dist/dashboard-runtime/dashboard/src/components/knowledge-base/subspace-switcher.tsx +23 -5
- package/dist/dashboard-runtime/dashboard/src/components/layout/instance-switcher.tsx +13 -1
- package/dist/dashboard-runtime/dashboard/src/components/layout/sidebar-instance-card.tsx +29 -4
- package/dist/dashboard-runtime/dashboard/src/components/memory/file-details-panel.tsx +4 -4
- package/dist/dashboard-runtime/dashboard/src/components/memory/file-editor.tsx +9 -4
- package/dist/dashboard-runtime/dashboard/src/components/memory/file-version-history.tsx +107 -57
- package/dist/dashboard-runtime/dashboard/src/components/memory/memory-dream-create-dialog.tsx +253 -68
- package/dist/dashboard-runtime/dashboard/src/components/memory/memory-dream-plan-approval-dialog.tsx +172 -0
- package/dist/dashboard-runtime/dashboard/src/components/memory/memory-files-browser.tsx +104 -56
- package/dist/dashboard-runtime/dashboard/src/components/memory/memory-scope-bar.tsx +204 -52
- package/dist/dashboard-runtime/dashboard/src/components/memory/scope-combobox.tsx +169 -42
- package/dist/dashboard-runtime/dashboard/src/components/qa/qa-message.tsx +4 -3
- package/dist/dashboard-runtime/dashboard/src/components/shared/llm-model-selector.tsx +5 -1
- package/dist/dashboard-runtime/dashboard/src/components/ui/dialog.tsx +1 -1
- package/dist/dashboard-runtime/dashboard/src/contexts/subspace-context.tsx +144 -30
- package/dist/dashboard-runtime/dashboard/src/hooks/use-approve-dream-plan.ts +25 -0
- package/dist/dashboard-runtime/dashboard/src/hooks/use-file-memory.ts +73 -72
- package/dist/dashboard-runtime/dashboard/src/hooks/use-instances.ts +40 -0
- package/dist/dashboard-runtime/dashboard/src/hooks/use-subspace-history.ts +64 -75
- package/dist/dashboard-runtime/dashboard/src/i18n/locales/en.ts +82 -7
- package/dist/dashboard-runtime/dashboard/src/i18n/locales/zh.ts +80 -7
- package/dist/dashboard-runtime/dashboard/src/lib/browser-file-memory.ts +31 -25
- package/dist/dashboard-runtime/dashboard/src/lib/memory-scope-history.ts +165 -0
- package/dist/dashboard-runtime/dashboard/src/lib/memory.ts +13 -0
- package/dist/dashboard-runtime/dashboard/src/lib/query-keys.ts +10 -14
- package/dist/dashboard-runtime/dashboard/src/lib/server/api-helpers.ts +5 -0
- package/dist/dashboard-runtime/dashboard/src/lib/server/instance-connectivity.ts +136 -0
- package/dist/dashboard-runtime/dashboard/src/lib/server/sdk-client.ts +25 -3
- package/dist/dashboard-runtime/dashboard/src/lib/subspace-history.ts +151 -0
- package/dist/dashboard-runtime/dashboard/src/services/file-memory.ts +48 -56
- package/dist/dashboard-runtime/dashboard/src/services/instances.ts +5 -0
- package/dist/dashboard-runtime/dashboard/src/services/memory.ts +45 -5
- package/dist/dashboard-runtime/dashboard/src/types/file-memory.ts +96 -43
- package/dist/dashboard-runtime/dashboard/src/types/instance.ts +17 -0
- package/dist/dashboard-runtime/dashboard/src/types/memory.ts +50 -3
- package/dist/dashboard-runtime/dashboard/tsconfig.tsbuildinfo +1 -1
- package/dist/dashboard-runtime/node_modules/@img/sharp-darwin-arm64/lib/sharp-darwin-arm64.node +0 -0
- package/dist/dashboard-runtime/node_modules/@img/{sharp-linux-x64 → sharp-darwin-arm64}/package.json +7 -13
- package/dist/dashboard-runtime/node_modules/@img/{sharp-libvips-linux-x64 → sharp-libvips-darwin-arm64}/README.md +2 -2
- package/dist/dashboard-runtime/node_modules/@img/{sharp-libvips-linux-x64 → sharp-libvips-darwin-arm64}/lib/glib-2.0/include/glibconfig.h +8 -9
- package/dist/dashboard-runtime/node_modules/@img/{sharp-libvips-linux-x64/lib/libvips-cpp.so.8.17.3 → sharp-libvips-darwin-arm64/lib/libvips-cpp.8.17.3.dylib} +0 -0
- package/dist/dashboard-runtime/node_modules/@img/{sharp-libvips-linux-x64 → sharp-libvips-darwin-arm64}/package.json +5 -11
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/memory-client.d.ts +9 -55
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/memory-client.d.ts.map +1 -1
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/memory-client.js +25 -93
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/memory-client.js.map +1 -1
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/response.d.ts.map +1 -1
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/response.js +4 -1
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/response.js.map +1 -1
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/package.json +1 -1
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/main.js +0 -0
- package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/memory-client.d.ts +9 -55
- package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/memory-client.d.ts.map +1 -1
- package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/memory-client.js +25 -93
- package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/memory-client.js.map +1 -1
- package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/response.d.ts.map +1 -1
- package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/response.js +4 -1
- package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/response.js.map +1 -1
- package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/node_modules/@tablestore/tablestore-agent-sdk/package.json +1 -1
- package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0dzh4cj._.js +0 -40
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0k7ex0r._.js +0 -40
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__01f7est._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0cj2gsm._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_05bw0~2._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_071hi50._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0hy21o9._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0xrd8-1._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0y7vx.d._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_13ctfae._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/node_modules__pnpm_0sr_ner._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0-~e5~2eoun8n.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/029zyc1pxa~4m.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/05vzt~ml0z7~9.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/08o2~c-80nbla.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0_osn.dm_85jw.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0aj~rx1m.91ur.js +0 -5
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0dx_8pb_z_xy6.css +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0k9guaejnlc0r.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0ll488v66ycn1.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0pxisu-1mnehf.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0vn5pp.3keyh5.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0wbozn0wq-4ls.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/12iur8ibdfi5_.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/13kxz9vygidrz.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/165fwg-5at5cq.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/17b4md7atp39z.js +0 -1
- package/dist/dashboard-runtime/node_modules/@img/sharp-linux-x64/lib/sharp-linux-x64.node +0 -0
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/file-memory.d.ts +0 -153
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/file-memory.d.ts.map +0 -1
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/file-memory.js +0 -451
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/file-memory.js.map +0 -1
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/oss-uploader.d.ts +0 -56
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/oss-uploader.d.ts.map +0 -1
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/oss-uploader.js +0 -120
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/oss-uploader.js.map +0 -1
- package/dist/dashboard-runtime/node_modules/semver/node_modules/.bin/semver +0 -21
- package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/file-memory.d.ts +0 -153
- package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/file-memory.d.ts.map +0 -1
- package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/file-memory.js +0 -451
- package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/file-memory.js.map +0 -1
- package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/oss-uploader.d.ts +0 -56
- package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/oss-uploader.d.ts.map +0 -1
- package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/oss-uploader.js +0 -120
- package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/oss-uploader.js.map +0 -1
- /package/dist/dashboard-runtime/dashboard/.next/static/{AgybWIwFBY3-L1V2Copiq → 8G6beqTEKH_-N0JljpgWT}/_buildManifest.js +0 -0
- /package/dist/dashboard-runtime/dashboard/.next/static/{AgybWIwFBY3-L1V2Copiq → 8G6beqTEKH_-N0JljpgWT}/_clientMiddlewareManifest.js +0 -0
- /package/dist/dashboard-runtime/dashboard/.next/static/{AgybWIwFBY3-L1V2Copiq → 8G6beqTEKH_-N0JljpgWT}/_ssgManifest.js +0 -0
- /package/dist/dashboard-runtime/node_modules/@img/{sharp-libvips-linux-x64 → sharp-libvips-darwin-arm64}/lib/index.js +0 -0
- /package/dist/dashboard-runtime/node_modules/@img/{sharp-libvips-linux-x64 → sharp-libvips-darwin-arm64}/versions.json +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"oss-uploader.js","sourceRoot":"","sources":["../src/oss-uploader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
#!/bin/sh
|
|
2
|
-
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
|
3
|
-
|
|
4
|
-
case `uname` in
|
|
5
|
-
*CYGWIN*|*MINGW*|*MSYS*)
|
|
6
|
-
if command -v cygpath > /dev/null 2>&1; then
|
|
7
|
-
basedir=`cygpath -w "$basedir"`
|
|
8
|
-
fi
|
|
9
|
-
;;
|
|
10
|
-
esac
|
|
11
|
-
|
|
12
|
-
if [ -z "$NODE_PATH" ]; then
|
|
13
|
-
export NODE_PATH="/apsarapangu/disk1/agent-storage-cli/node_modules/.pnpm/semver@6.3.1/node_modules/semver/node_modules:/apsarapangu/disk1/agent-storage-cli/node_modules/.pnpm/semver@6.3.1/node_modules:/apsarapangu/disk1/agent-storage-cli/node_modules/.pnpm/node_modules"
|
|
14
|
-
else
|
|
15
|
-
export NODE_PATH="/apsarapangu/disk1/agent-storage-cli/node_modules/.pnpm/semver@6.3.1/node_modules/semver/node_modules:/apsarapangu/disk1/agent-storage-cli/node_modules/.pnpm/semver@6.3.1/node_modules:/apsarapangu/disk1/agent-storage-cli/node_modules/.pnpm/node_modules:$NODE_PATH"
|
|
16
|
-
fi
|
|
17
|
-
if [ -x "$basedir/node" ]; then
|
|
18
|
-
exec "$basedir/node" "$basedir/../../bin/semver.js" "$@"
|
|
19
|
-
else
|
|
20
|
-
exec node "$basedir/../../bin/semver.js" "$@"
|
|
21
|
-
fi
|
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
import type { StandardResponse } from "./types.js";
|
|
2
|
-
export interface MountScope {
|
|
3
|
-
appId: string;
|
|
4
|
-
tenantId: string;
|
|
5
|
-
agentId: string;
|
|
6
|
-
runId: string;
|
|
7
|
-
}
|
|
8
|
-
export declare function sanitizeScopeSegment(seg: string | undefined | null): string;
|
|
9
|
-
/**
|
|
10
|
-
* 单个 scope 的本地镜像子目录:`<root>/<app>__<tenant>__<agent>__<run>`。
|
|
11
|
-
* 段内 sanitize 可能折叠不同原值(如 `a@b` 与 `a_b`);真实冲突由服务端
|
|
12
|
-
* OSS prefix 里的 scopehash 兜底,本地目录只求隔离与可读。
|
|
13
|
-
*/
|
|
14
|
-
export declare function mountScopeDir(localRoot: string, scope: MountScope): string;
|
|
15
|
-
/**
|
|
16
|
-
* 文件记忆本地镜像目录(sync 写入、tree/cat 读取共用同一规则):
|
|
17
|
-
* `<localRoot>/<app>/<tenant>` 两层路径。
|
|
18
|
-
*
|
|
19
|
-
* 服务端按 **user** 粒度投影,OSS 前缀在聚合维度上直接省略 agent/run
|
|
20
|
-
* (`mem/{inst}/{store}/{app}/{tenant}/{hash}/memory/`),因此本地镜像也只按
|
|
21
|
-
* app/tenant 两层组织——同一用户的不同智能体/会话共享同一份本地副本,租户之间
|
|
22
|
-
* 相互隔离。段内非 `[A-Za-z0-9._-]` 字符 sanitize,空字段回落 `__default__`。
|
|
23
|
-
*
|
|
24
|
-
* 注:假定服务端 projection_group_level=user(本部署实际值)。
|
|
25
|
-
*/
|
|
26
|
-
export declare function fileMemoryScopeDir(localRoot: string, scope: Partial<MountScope>): string;
|
|
27
|
-
/** 通配符/空字段 → `__default__`;显式值原样保留。挂载 scope 禁止通配。 */
|
|
28
|
-
export declare function normalizeMountScope(scope: Partial<MountScope>): MountScope;
|
|
29
|
-
/**
|
|
30
|
-
* dashboard 与 CLI 共享的默认本地根:
|
|
31
|
-
* `<CONFIG_DIR>/file-memory/<otsInstanceName>/<memoryStoreName>`。
|
|
32
|
-
* 两端使用同一约定,dashboard 聊天同步下来的文件 CLI 直接可见。
|
|
33
|
-
*/
|
|
34
|
-
export declare function defaultFileMemoryRoot(otsInstanceName: string, memoryStoreName: string): string;
|
|
35
|
-
/**
|
|
36
|
-
* CJK 感知分词:ASCII 词元(≥2 字符,小写)+ CJK 单字 + 连续 bigram,
|
|
37
|
-
* 让短中文查询也能命中。
|
|
38
|
-
*/
|
|
39
|
-
export declare function tokenizeQuery(query: string): string[];
|
|
40
|
-
/** 按匹配词元比例打分(0~1),整句命中 +0.1 bonus。 */
|
|
41
|
-
export declare function scoreSnippet(snippetText: string, queryTerms: string[], fullQuery: string): number;
|
|
42
|
-
export interface LocalMemoryHit {
|
|
43
|
-
unit: {
|
|
44
|
-
text: string;
|
|
45
|
-
source: string;
|
|
46
|
-
};
|
|
47
|
-
score: number;
|
|
48
|
-
}
|
|
49
|
-
export interface SearchLocalMemoriesResult {
|
|
50
|
-
results: LocalMemoryHit[];
|
|
51
|
-
skipped?: boolean;
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* 只在给定 scope 目录子树内做词法检索:每个文件按 10 行一个 block 切分,
|
|
55
|
-
* 按匹配词元比例打分取 top-K。绝不读取兄弟 scope 目录。
|
|
56
|
-
*/
|
|
57
|
-
export declare function searchLocalMemories(opts: {
|
|
58
|
-
scopeDir: string;
|
|
59
|
-
query: string;
|
|
60
|
-
topK: number;
|
|
61
|
-
minQueryLength?: number;
|
|
62
|
-
}): SearchLocalMemoriesResult;
|
|
63
|
-
export interface LocalMemoryFileEntry {
|
|
64
|
-
rel: string;
|
|
65
|
-
size: number;
|
|
66
|
-
mtimeMs: number;
|
|
67
|
-
}
|
|
68
|
-
/** 稳定排序(按 rel 路径)的 scope 目录文件列表;目录不存在返回空。 */
|
|
69
|
-
export declare function listLocalMemoryFiles(scopeDir: string): LocalMemoryFileEntry[];
|
|
70
|
-
/**
|
|
71
|
-
* 把 `rel` 归一化到 `baseDir` 内的绝对路径,并拒绝越界(`..` / 绝对路径)。
|
|
72
|
-
* 读、写共用同一防穿越逻辑(避免异常对象名把文件写/读到 scope 目录之外)。
|
|
73
|
-
*/
|
|
74
|
-
export declare function resolveWithinDir(baseDir: string, rel: string): string;
|
|
75
|
-
/** 读取 scope 目录内单个文件;`rel` 归一化后必须仍在 scopeDir 内(防穿越)。 */
|
|
76
|
-
export declare function readLocalMemoryFile(scopeDir: string, rel: string): string;
|
|
77
|
-
export interface RemoteObjectEntry {
|
|
78
|
-
rel: string;
|
|
79
|
-
etag: string;
|
|
80
|
-
}
|
|
81
|
-
export interface SyncPlan {
|
|
82
|
-
toDownload: string[];
|
|
83
|
-
toDelete: string[];
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* 纯 diff:远端 `[{rel, etag}]`(etag = 单次 PutObject 投影的 md5 hex)对比
|
|
87
|
-
* 本地 md5 Map,决定下载(新增/变更)与删除(孤儿)。
|
|
88
|
-
*/
|
|
89
|
-
export declare function planSync(remote: RemoteObjectEntry[], localMd5: Map<string, string>, { pruneOrphans }?: {
|
|
90
|
-
pruneOrphans?: boolean;
|
|
91
|
-
}): SyncPlan;
|
|
92
|
-
interface MountCredentials {
|
|
93
|
-
accessKeyId?: string;
|
|
94
|
-
accessKeySecret?: string;
|
|
95
|
-
securityToken?: string;
|
|
96
|
-
expiration?: string;
|
|
97
|
-
}
|
|
98
|
-
/** 与 ali-oss 客户端交集的最小只读接口(便于测试注入)。 */
|
|
99
|
-
export interface OssReadClient {
|
|
100
|
-
list(query: {
|
|
101
|
-
prefix: string;
|
|
102
|
-
"max-keys": number;
|
|
103
|
-
marker?: string;
|
|
104
|
-
}, options: Record<string, never>): Promise<{
|
|
105
|
-
objects?: Array<{
|
|
106
|
-
name?: string;
|
|
107
|
-
etag?: string;
|
|
108
|
-
}>;
|
|
109
|
-
isTruncated?: boolean;
|
|
110
|
-
nextMarker?: string;
|
|
111
|
-
}>;
|
|
112
|
-
get(name: string): Promise<{
|
|
113
|
-
content: Buffer;
|
|
114
|
-
}>;
|
|
115
|
-
}
|
|
116
|
-
export type OssReadClientFactory = (target: {
|
|
117
|
-
ossEndpoint?: string;
|
|
118
|
-
region?: string;
|
|
119
|
-
bucket: string;
|
|
120
|
-
}, credentials: Required<Pick<MountCredentials, "accessKeyId" | "accessKeySecret">> & MountCredentials) => Promise<OssReadClient>;
|
|
121
|
-
export interface SyncMemoryMountOptions {
|
|
122
|
-
/** 通常为 `(req) => memoryClient.authorizeMemoryMount(req)`。 */
|
|
123
|
-
authorizeMount: (request: Record<string, unknown>) => Promise<StandardResponse>;
|
|
124
|
-
memoryStoreName: string;
|
|
125
|
-
scope: MountScope;
|
|
126
|
-
/** 本地根目录;scope 子目录由 mountScopeDir 派生。 */
|
|
127
|
-
localRoot: string;
|
|
128
|
-
ttlSeconds?: number;
|
|
129
|
-
pruneOrphans?: boolean;
|
|
130
|
-
/** 仅测试注入用。 */
|
|
131
|
-
ossClientFactory?: OssReadClientFactory;
|
|
132
|
-
}
|
|
133
|
-
export interface SyncMemoryMountResult {
|
|
134
|
-
ok: boolean;
|
|
135
|
-
scopeDir: string;
|
|
136
|
-
downloaded: number;
|
|
137
|
-
deleted: number;
|
|
138
|
-
total: number;
|
|
139
|
-
error?: string;
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* 同步一个 scope 的 OSS 投影到本地镜像目录(openclaw syncScopeOnce 同款):
|
|
143
|
-
* AuthorizeMemoryMount(每次重新签发 STS,不落盘)→ 分页列举 → ETag diff →
|
|
144
|
-
* 原子写下载 + 删孤儿。
|
|
145
|
-
*
|
|
146
|
-
* 失败语义:授权/列举阶段失败时本地副本完全不动(返回 `{ok:false, error}`);
|
|
147
|
-
* 下载阶段逐文件原子写,若中途某文件失败则中止并返回 `{ok:false}`,此时本地为
|
|
148
|
-
* **部分更新**(已写入的新文件保留、未处理的孤儿未删)——下次同步会按 ETag diff
|
|
149
|
-
* 自愈。
|
|
150
|
-
*/
|
|
151
|
-
export declare function syncMemoryMount(opts: SyncMemoryMountOptions): Promise<SyncMemoryMountResult>;
|
|
152
|
-
export {};
|
|
153
|
-
//# sourceMappingURL=file-memory.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-memory.d.ts","sourceRoot":"","sources":["../src/file-memory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,451 +0,0 @@
|
|
|
1
|
-
import crypto from "node:crypto";
|
|
2
|
-
import fs from "node:fs";
|
|
3
|
-
import path from "node:path";
|
|
4
|
-
import { CONFIG_DIR } from "@tablestore/tablestore-agent-shared";
|
|
5
|
-
const DEFAULT_SCOPE_VALUE = "__default__";
|
|
6
|
-
const LOCAL_MEMORY_MAX_FILES = 300;
|
|
7
|
-
const LOCAL_MEMORY_MAX_BYTES = 3 * 1024 * 1024; // 3 MB total
|
|
8
|
-
const LOCAL_MEMORY_SNIPPET_LINES = 10; // lines per snippet block
|
|
9
|
-
// 列举文件树(仅 stat,不读内容)用更宽的上限,避免像检索路径那样因 300 文件 /
|
|
10
|
-
// 3MB 上限静默截断展示列表。
|
|
11
|
-
const LIST_MAX_FILES = 10000;
|
|
12
|
-
// 单次同步的下载并发上限。
|
|
13
|
-
const MOUNT_DOWNLOAD_CONCURRENCY = 8;
|
|
14
|
-
// ---------------------------------------------------------------------------
|
|
15
|
-
// Scope → 本地目录
|
|
16
|
-
// ---------------------------------------------------------------------------
|
|
17
|
-
export function sanitizeScopeSegment(seg) {
|
|
18
|
-
const s = String(seg ?? "").trim() || DEFAULT_SCOPE_VALUE;
|
|
19
|
-
let out = "";
|
|
20
|
-
for (const ch of s)
|
|
21
|
-
out += /[A-Za-z0-9._-]/.test(ch) ? ch : "_";
|
|
22
|
-
return out;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* 单个 scope 的本地镜像子目录:`<root>/<app>__<tenant>__<agent>__<run>`。
|
|
26
|
-
* 段内 sanitize 可能折叠不同原值(如 `a@b` 与 `a_b`);真实冲突由服务端
|
|
27
|
-
* OSS prefix 里的 scopehash 兜底,本地目录只求隔离与可读。
|
|
28
|
-
*/
|
|
29
|
-
export function mountScopeDir(localRoot, scope) {
|
|
30
|
-
return path.join(localRoot, [scope.appId, scope.tenantId, scope.agentId, scope.runId]
|
|
31
|
-
.map(sanitizeScopeSegment)
|
|
32
|
-
.join("__"));
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* 文件记忆本地镜像目录(sync 写入、tree/cat 读取共用同一规则):
|
|
36
|
-
* `<localRoot>/<app>/<tenant>` 两层路径。
|
|
37
|
-
*
|
|
38
|
-
* 服务端按 **user** 粒度投影,OSS 前缀在聚合维度上直接省略 agent/run
|
|
39
|
-
* (`mem/{inst}/{store}/{app}/{tenant}/{hash}/memory/`),因此本地镜像也只按
|
|
40
|
-
* app/tenant 两层组织——同一用户的不同智能体/会话共享同一份本地副本,租户之间
|
|
41
|
-
* 相互隔离。段内非 `[A-Za-z0-9._-]` 字符 sanitize,空字段回落 `__default__`。
|
|
42
|
-
*
|
|
43
|
-
* 注:假定服务端 projection_group_level=user(本部署实际值)。
|
|
44
|
-
*/
|
|
45
|
-
export function fileMemoryScopeDir(localRoot, scope) {
|
|
46
|
-
const s = normalizeMountScope(scope);
|
|
47
|
-
return path.join(localRoot, sanitizeScopeSegment(s.appId), sanitizeScopeSegment(s.tenantId));
|
|
48
|
-
}
|
|
49
|
-
/** 通配符/空字段 → `__default__`;显式值原样保留。挂载 scope 禁止通配。 */
|
|
50
|
-
export function normalizeMountScope(scope) {
|
|
51
|
-
const norm = (v) => {
|
|
52
|
-
const s = typeof v === "string" ? v.trim() : "";
|
|
53
|
-
return s && s !== "*" ? s : DEFAULT_SCOPE_VALUE;
|
|
54
|
-
};
|
|
55
|
-
return {
|
|
56
|
-
appId: norm(scope.appId),
|
|
57
|
-
tenantId: norm(scope.tenantId),
|
|
58
|
-
agentId: norm(scope.agentId),
|
|
59
|
-
runId: norm(scope.runId),
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* dashboard 与 CLI 共享的默认本地根:
|
|
64
|
-
* `<CONFIG_DIR>/file-memory/<otsInstanceName>/<memoryStoreName>`。
|
|
65
|
-
* 两端使用同一约定,dashboard 聊天同步下来的文件 CLI 直接可见。
|
|
66
|
-
*/
|
|
67
|
-
export function defaultFileMemoryRoot(otsInstanceName, memoryStoreName) {
|
|
68
|
-
return path.join(CONFIG_DIR, "file-memory", sanitizeScopeSegment(otsInstanceName), sanitizeScopeSegment(memoryStoreName));
|
|
69
|
-
}
|
|
70
|
-
// ---------------------------------------------------------------------------
|
|
71
|
-
// 本地检索(词法匹配,openclaw 同版)
|
|
72
|
-
// ---------------------------------------------------------------------------
|
|
73
|
-
/**
|
|
74
|
-
* CJK 感知分词:ASCII 词元(≥2 字符,小写)+ CJK 单字 + 连续 bigram,
|
|
75
|
-
* 让短中文查询也能命中。
|
|
76
|
-
*/
|
|
77
|
-
export function tokenizeQuery(query) {
|
|
78
|
-
const terms = new Set();
|
|
79
|
-
const asciiTokens = query.toLowerCase().match(/[a-z0-9]+/g) ?? [];
|
|
80
|
-
for (const t of asciiTokens) {
|
|
81
|
-
if (t.length >= 2)
|
|
82
|
-
terms.add(t);
|
|
83
|
-
}
|
|
84
|
-
const cjkRuns = query.match(/[一-鿿㐀-䶿]+/g) ?? [];
|
|
85
|
-
for (const run of cjkRuns) {
|
|
86
|
-
for (const ch of run)
|
|
87
|
-
terms.add(ch);
|
|
88
|
-
for (let i = 0; i + 1 < run.length; i += 1)
|
|
89
|
-
terms.add(run[i] + run[i + 1]);
|
|
90
|
-
}
|
|
91
|
-
return [...terms];
|
|
92
|
-
}
|
|
93
|
-
/** 按匹配词元比例打分(0~1),整句命中 +0.1 bonus。 */
|
|
94
|
-
export function scoreSnippet(snippetText, queryTerms, fullQuery) {
|
|
95
|
-
if (!snippetText)
|
|
96
|
-
return 0;
|
|
97
|
-
const lower = snippetText.toLowerCase();
|
|
98
|
-
let matched = 0;
|
|
99
|
-
for (const term of queryTerms) {
|
|
100
|
-
if (lower.includes(term))
|
|
101
|
-
matched += 1;
|
|
102
|
-
}
|
|
103
|
-
if (matched === 0)
|
|
104
|
-
return 0;
|
|
105
|
-
const bonus = fullQuery.length > 4 && lower.includes(fullQuery.toLowerCase()) ? 0.1 : 0;
|
|
106
|
-
return Math.min(1, matched / Math.max(1, queryTerms.length) + bonus);
|
|
107
|
-
}
|
|
108
|
-
// 递归收集常规文件,跳过点文件与写入中的 .tmp-*,受文件数/字节数上限约束。
|
|
109
|
-
// caps 可定制:检索路径用默认(读内容,需控内存);列举路径用更宽上限(仅 stat)。
|
|
110
|
-
function collectLocalFiles(dir, state, caps = {
|
|
111
|
-
maxFiles: LOCAL_MEMORY_MAX_FILES,
|
|
112
|
-
maxBytes: LOCAL_MEMORY_MAX_BYTES,
|
|
113
|
-
}) {
|
|
114
|
-
if (state.fileCount >= caps.maxFiles || state.byteCount >= caps.maxBytes) {
|
|
115
|
-
return;
|
|
116
|
-
}
|
|
117
|
-
let entries;
|
|
118
|
-
try {
|
|
119
|
-
entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
120
|
-
}
|
|
121
|
-
catch {
|
|
122
|
-
return;
|
|
123
|
-
}
|
|
124
|
-
for (const entry of entries) {
|
|
125
|
-
if (state.fileCount >= caps.maxFiles || state.byteCount >= caps.maxBytes) {
|
|
126
|
-
break;
|
|
127
|
-
}
|
|
128
|
-
if (entry.name.startsWith(".") || entry.name.includes(".tmp-"))
|
|
129
|
-
continue;
|
|
130
|
-
const fullPath = path.join(dir, entry.name);
|
|
131
|
-
if (entry.isDirectory()) {
|
|
132
|
-
collectLocalFiles(fullPath, state, caps);
|
|
133
|
-
}
|
|
134
|
-
else if (entry.isFile()) {
|
|
135
|
-
let stat;
|
|
136
|
-
try {
|
|
137
|
-
stat = fs.statSync(fullPath);
|
|
138
|
-
}
|
|
139
|
-
catch {
|
|
140
|
-
continue;
|
|
141
|
-
}
|
|
142
|
-
if (state.byteCount + stat.size > caps.maxBytes)
|
|
143
|
-
continue;
|
|
144
|
-
state.files.push(fullPath);
|
|
145
|
-
state.fileCount += 1;
|
|
146
|
-
state.byteCount += stat.size;
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
/**
|
|
151
|
-
* 只在给定 scope 目录子树内做词法检索:每个文件按 10 行一个 block 切分,
|
|
152
|
-
* 按匹配词元比例打分取 top-K。绝不读取兄弟 scope 目录。
|
|
153
|
-
*/
|
|
154
|
-
export function searchLocalMemories(opts) {
|
|
155
|
-
const query = opts.query?.trim() ?? "";
|
|
156
|
-
if (!query || query.length < (opts.minQueryLength ?? 0)) {
|
|
157
|
-
return { results: [], skipped: true };
|
|
158
|
-
}
|
|
159
|
-
if (!fs.existsSync(opts.scopeDir)) {
|
|
160
|
-
return { results: [], skipped: true };
|
|
161
|
-
}
|
|
162
|
-
const queryTerms = tokenizeQuery(query);
|
|
163
|
-
if (queryTerms.length === 0) {
|
|
164
|
-
return { results: [], skipped: true };
|
|
165
|
-
}
|
|
166
|
-
const topK = Math.max(1, Math.min(50, Math.trunc(opts.topK) || 1));
|
|
167
|
-
const state = { files: [], fileCount: 0, byteCount: 0 };
|
|
168
|
-
collectLocalFiles(opts.scopeDir, state);
|
|
169
|
-
const hits = [];
|
|
170
|
-
for (const filePath of state.files) {
|
|
171
|
-
let content;
|
|
172
|
-
try {
|
|
173
|
-
content = fs.readFileSync(filePath, "utf8");
|
|
174
|
-
}
|
|
175
|
-
catch {
|
|
176
|
-
continue;
|
|
177
|
-
}
|
|
178
|
-
const relPath = path.relative(opts.scopeDir, filePath);
|
|
179
|
-
const lines = content.split("\n");
|
|
180
|
-
for (let i = 0; i < lines.length; i += LOCAL_MEMORY_SNIPPET_LINES) {
|
|
181
|
-
const block = lines
|
|
182
|
-
.slice(i, i + LOCAL_MEMORY_SNIPPET_LINES)
|
|
183
|
-
.join("\n")
|
|
184
|
-
.trim();
|
|
185
|
-
if (!block)
|
|
186
|
-
continue;
|
|
187
|
-
const score = scoreSnippet(block, queryTerms, query);
|
|
188
|
-
if (score > 0) {
|
|
189
|
-
hits.push({ unit: { text: block, source: relPath }, score });
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
hits.sort((a, b) => b.score - a.score);
|
|
194
|
-
return { results: hits.slice(0, topK) };
|
|
195
|
-
}
|
|
196
|
-
/** 稳定排序(按 rel 路径)的 scope 目录文件列表;目录不存在返回空。 */
|
|
197
|
-
export function listLocalMemoryFiles(scopeDir) {
|
|
198
|
-
const state = { files: [], fileCount: 0, byteCount: 0 };
|
|
199
|
-
// 展示用:仅 stat 不读内容,用更宽的文件上限、不受字节上限约束,避免静默漏文件。
|
|
200
|
-
collectLocalFiles(scopeDir, state, {
|
|
201
|
-
maxFiles: LIST_MAX_FILES,
|
|
202
|
-
maxBytes: Number.POSITIVE_INFINITY,
|
|
203
|
-
});
|
|
204
|
-
const entries = [];
|
|
205
|
-
for (const filePath of state.files) {
|
|
206
|
-
let stat;
|
|
207
|
-
try {
|
|
208
|
-
stat = fs.statSync(filePath);
|
|
209
|
-
}
|
|
210
|
-
catch {
|
|
211
|
-
continue;
|
|
212
|
-
}
|
|
213
|
-
entries.push({
|
|
214
|
-
rel: path.relative(scopeDir, filePath).split(path.sep).join("/"),
|
|
215
|
-
size: stat.size,
|
|
216
|
-
mtimeMs: stat.mtimeMs,
|
|
217
|
-
});
|
|
218
|
-
}
|
|
219
|
-
entries.sort((a, b) => a.rel.localeCompare(b.rel));
|
|
220
|
-
return entries;
|
|
221
|
-
}
|
|
222
|
-
/**
|
|
223
|
-
* 把 `rel` 归一化到 `baseDir` 内的绝对路径,并拒绝越界(`..` / 绝对路径)。
|
|
224
|
-
* 读、写共用同一防穿越逻辑(避免异常对象名把文件写/读到 scope 目录之外)。
|
|
225
|
-
*/
|
|
226
|
-
export function resolveWithinDir(baseDir, rel) {
|
|
227
|
-
const base = path.resolve(baseDir);
|
|
228
|
-
const target = path.resolve(base, rel);
|
|
229
|
-
if (target !== base && !target.startsWith(base + path.sep)) {
|
|
230
|
-
throw new Error(`path escapes the scope directory: ${rel}`);
|
|
231
|
-
}
|
|
232
|
-
return target;
|
|
233
|
-
}
|
|
234
|
-
/** 读取 scope 目录内单个文件;`rel` 归一化后必须仍在 scopeDir 内(防穿越)。 */
|
|
235
|
-
export function readLocalMemoryFile(scopeDir, rel) {
|
|
236
|
-
return fs.readFileSync(resolveWithinDir(scopeDir, rel), "utf8");
|
|
237
|
-
}
|
|
238
|
-
function normalizeEtag(etag) {
|
|
239
|
-
return String(etag ?? "")
|
|
240
|
-
.replace(/"/g, "")
|
|
241
|
-
.toLowerCase();
|
|
242
|
-
}
|
|
243
|
-
/**
|
|
244
|
-
* 纯 diff:远端 `[{rel, etag}]`(etag = 单次 PutObject 投影的 md5 hex)对比
|
|
245
|
-
* 本地 md5 Map,决定下载(新增/变更)与删除(孤儿)。
|
|
246
|
-
*/
|
|
247
|
-
export function planSync(remote, localMd5, { pruneOrphans = true } = {}) {
|
|
248
|
-
const remoteRel = new Set();
|
|
249
|
-
const toDownload = [];
|
|
250
|
-
for (const obj of remote) {
|
|
251
|
-
remoteRel.add(obj.rel);
|
|
252
|
-
const local = localMd5.get(obj.rel);
|
|
253
|
-
if (!local || local !== normalizeEtag(obj.etag))
|
|
254
|
-
toDownload.push(obj.rel);
|
|
255
|
-
}
|
|
256
|
-
const toDelete = [];
|
|
257
|
-
if (pruneOrphans) {
|
|
258
|
-
for (const rel of localMd5.keys()) {
|
|
259
|
-
if (!remoteRel.has(rel))
|
|
260
|
-
toDelete.push(rel);
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
return { toDownload, toDelete };
|
|
264
|
-
}
|
|
265
|
-
function readLocalMd5(dir) {
|
|
266
|
-
const map = new Map();
|
|
267
|
-
const walk = (d, rel) => {
|
|
268
|
-
let entries;
|
|
269
|
-
try {
|
|
270
|
-
entries = fs.readdirSync(d, { withFileTypes: true });
|
|
271
|
-
}
|
|
272
|
-
catch {
|
|
273
|
-
return;
|
|
274
|
-
}
|
|
275
|
-
for (const e of entries) {
|
|
276
|
-
if (e.name.startsWith(".") || e.name.includes(".tmp-"))
|
|
277
|
-
continue;
|
|
278
|
-
const full = path.join(d, e.name);
|
|
279
|
-
const r = rel ? `${rel}/${e.name}` : e.name;
|
|
280
|
-
if (e.isDirectory()) {
|
|
281
|
-
walk(full, r);
|
|
282
|
-
}
|
|
283
|
-
else if (e.isFile()) {
|
|
284
|
-
try {
|
|
285
|
-
map.set(r, crypto
|
|
286
|
-
.createHash("md5")
|
|
287
|
-
.update(fs.readFileSync(full))
|
|
288
|
-
.digest("hex"));
|
|
289
|
-
}
|
|
290
|
-
catch {
|
|
291
|
-
// 不可读文件视作缺失,让它重新下载
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
};
|
|
296
|
-
walk(dir, "");
|
|
297
|
-
return map;
|
|
298
|
-
}
|
|
299
|
-
let mountTmpCounter = 0;
|
|
300
|
-
// 先写 .tmp-* 再 rename 的原子写;目录 0700、文件 0600(与 openclaw 一致)。
|
|
301
|
-
function atomicWriteFile(dest, content) {
|
|
302
|
-
const dir = path.dirname(dest);
|
|
303
|
-
fs.mkdirSync(dir, { recursive: true, mode: 0o700 });
|
|
304
|
-
mountTmpCounter += 1;
|
|
305
|
-
const tmp = path.join(dir, `.tmp-${process.pid}-${mountTmpCounter}`);
|
|
306
|
-
fs.writeFileSync(tmp, content, { mode: 0o600 });
|
|
307
|
-
fs.renameSync(tmp, dest);
|
|
308
|
-
}
|
|
309
|
-
// 默认工厂:用 STS 临时凭证构造只读 ali-oss 客户端。动态 import 保证纯本地
|
|
310
|
-
// 操作(tree/cat)不加载 ali-oss。
|
|
311
|
-
const defaultOssClientFactory = async (target, cred) => {
|
|
312
|
-
const mod = (await import("ali-oss"));
|
|
313
|
-
const OSS = (mod.default ?? mod);
|
|
314
|
-
const opts = {
|
|
315
|
-
accessKeyId: cred.accessKeyId,
|
|
316
|
-
accessKeySecret: cred.accessKeySecret,
|
|
317
|
-
stsToken: cred.securityToken,
|
|
318
|
-
bucket: target.bucket,
|
|
319
|
-
secure: true,
|
|
320
|
-
};
|
|
321
|
-
if (target.ossEndpoint?.trim()) {
|
|
322
|
-
opts.endpoint = target.ossEndpoint;
|
|
323
|
-
}
|
|
324
|
-
else if (target.region?.trim()) {
|
|
325
|
-
opts.region = target.region.startsWith("oss-")
|
|
326
|
-
? target.region
|
|
327
|
-
: `oss-${target.region}`;
|
|
328
|
-
}
|
|
329
|
-
return new OSS(opts);
|
|
330
|
-
};
|
|
331
|
-
async function ossListAll(ossClient, prefix) {
|
|
332
|
-
const out = [];
|
|
333
|
-
let marker;
|
|
334
|
-
for (let guard = 0; guard < 1000; guard += 1) {
|
|
335
|
-
const res = await ossClient.list({ prefix, "max-keys": 1000, marker }, {});
|
|
336
|
-
for (const o of res?.objects ?? []) {
|
|
337
|
-
if (typeof o.name !== "string" || o.name.endsWith("/"))
|
|
338
|
-
continue;
|
|
339
|
-
out.push({ rel: o.name.slice(prefix.length), etag: o.etag ?? "" });
|
|
340
|
-
}
|
|
341
|
-
if (!res?.isTruncated)
|
|
342
|
-
break;
|
|
343
|
-
marker = res.nextMarker;
|
|
344
|
-
if (!marker)
|
|
345
|
-
break;
|
|
346
|
-
}
|
|
347
|
-
return out;
|
|
348
|
-
}
|
|
349
|
-
// 单飞键按 (store, app, tenant) —— 与本地镜像目录同粒度(user 级),使同一用户
|
|
350
|
-
// 不同会话的并发同步共享一次。
|
|
351
|
-
function mountScopeKey(storeName, scope) {
|
|
352
|
-
return [storeName, scope.appId, scope.tenantId].join(" ");
|
|
353
|
-
}
|
|
354
|
-
// per-(store,scope) 单飞:并发调用共享同一次同步,避免互相覆盖临时文件。
|
|
355
|
-
const mountInflight = new Map();
|
|
356
|
-
/**
|
|
357
|
-
* 同步一个 scope 的 OSS 投影到本地镜像目录(openclaw syncScopeOnce 同款):
|
|
358
|
-
* AuthorizeMemoryMount(每次重新签发 STS,不落盘)→ 分页列举 → ETag diff →
|
|
359
|
-
* 原子写下载 + 删孤儿。
|
|
360
|
-
*
|
|
361
|
-
* 失败语义:授权/列举阶段失败时本地副本完全不动(返回 `{ok:false, error}`);
|
|
362
|
-
* 下载阶段逐文件原子写,若中途某文件失败则中止并返回 `{ok:false}`,此时本地为
|
|
363
|
-
* **部分更新**(已写入的新文件保留、未处理的孤儿未删)——下次同步会按 ETag diff
|
|
364
|
-
* 自愈。
|
|
365
|
-
*/
|
|
366
|
-
export async function syncMemoryMount(opts) {
|
|
367
|
-
// authorizeMount 收到真实(未聚合)scope——服务端自行聚合到投影粒度并返回对应
|
|
368
|
-
// OSS 前缀。本地镜像目录/单飞键按 app/tenant(user 粒度),使同一用户不同
|
|
369
|
-
// 会话共享同一份本地副本。
|
|
370
|
-
const scope = normalizeMountScope(opts.scope);
|
|
371
|
-
const scopeDir = fileMemoryScopeDir(opts.localRoot, scope);
|
|
372
|
-
const key = mountScopeKey(opts.memoryStoreName, scope);
|
|
373
|
-
const inflight = mountInflight.get(key);
|
|
374
|
-
if (inflight)
|
|
375
|
-
return inflight;
|
|
376
|
-
const run = (async () => {
|
|
377
|
-
const response = await opts.authorizeMount({
|
|
378
|
-
memoryStoreName: opts.memoryStoreName,
|
|
379
|
-
scope,
|
|
380
|
-
...(opts.ttlSeconds ? { ttlSeconds: opts.ttlSeconds } : {}),
|
|
381
|
-
});
|
|
382
|
-
if (response.code !== "SUCCESS") {
|
|
383
|
-
throw new Error(response.message || `AuthorizeMemoryMount failed (${response.code})`);
|
|
384
|
-
}
|
|
385
|
-
const target = (response.data ?? {});
|
|
386
|
-
const cred = target.credentials ?? {};
|
|
387
|
-
if (!target.bucket ||
|
|
388
|
-
!target.prefix ||
|
|
389
|
-
!cred.accessKeyId ||
|
|
390
|
-
!cred.accessKeySecret) {
|
|
391
|
-
throw new Error("AuthorizeMemoryMount returned an incomplete mount target");
|
|
392
|
-
}
|
|
393
|
-
const factory = opts.ossClientFactory ?? defaultOssClientFactory;
|
|
394
|
-
const ossClient = await factory({
|
|
395
|
-
ossEndpoint: target.ossEndpoint,
|
|
396
|
-
region: target.region,
|
|
397
|
-
bucket: target.bucket,
|
|
398
|
-
}, {
|
|
399
|
-
accessKeyId: cred.accessKeyId,
|
|
400
|
-
accessKeySecret: cred.accessKeySecret,
|
|
401
|
-
securityToken: cred.securityToken,
|
|
402
|
-
expiration: cred.expiration,
|
|
403
|
-
});
|
|
404
|
-
const remote = await ossListAll(ossClient, target.prefix);
|
|
405
|
-
fs.mkdirSync(scopeDir, { recursive: true, mode: 0o700 });
|
|
406
|
-
const localMd5 = readLocalMd5(scopeDir);
|
|
407
|
-
const plan = planSync(remote, localMd5, {
|
|
408
|
-
pruneOrphans: opts.pruneOrphans ?? true,
|
|
409
|
-
});
|
|
410
|
-
// 有并发上限的批量下载:文件相互独立,串行会随文件数线性变慢,且大 scope 有
|
|
411
|
-
// 在 STS 临时凭证过期前下不完的风险。每个 rel 写入前用 resolveWithinDir 校验,
|
|
412
|
-
// 防止异常对象名(含 `..`)写到 scope 目录之外。
|
|
413
|
-
for (let i = 0; i < plan.toDownload.length; i += MOUNT_DOWNLOAD_CONCURRENCY) {
|
|
414
|
-
const batch = plan.toDownload.slice(i, i + MOUNT_DOWNLOAD_CONCURRENCY);
|
|
415
|
-
await Promise.all(batch.map(async (rel) => {
|
|
416
|
-
const dest = resolveWithinDir(scopeDir, rel);
|
|
417
|
-
const res = await ossClient.get(target.prefix + rel);
|
|
418
|
-
atomicWriteFile(dest, res.content);
|
|
419
|
-
}));
|
|
420
|
-
}
|
|
421
|
-
for (const rel of plan.toDelete) {
|
|
422
|
-
try {
|
|
423
|
-
fs.unlinkSync(resolveWithinDir(scopeDir, rel));
|
|
424
|
-
}
|
|
425
|
-
catch {
|
|
426
|
-
// 已不存在或越界(越界的孤儿不删,交由上层排查)
|
|
427
|
-
}
|
|
428
|
-
}
|
|
429
|
-
return {
|
|
430
|
-
ok: true,
|
|
431
|
-
scopeDir,
|
|
432
|
-
downloaded: plan.toDownload.length,
|
|
433
|
-
deleted: plan.toDelete.length,
|
|
434
|
-
total: remote.length,
|
|
435
|
-
};
|
|
436
|
-
})()
|
|
437
|
-
.catch((error) => ({
|
|
438
|
-
ok: false,
|
|
439
|
-
scopeDir,
|
|
440
|
-
downloaded: 0,
|
|
441
|
-
deleted: 0,
|
|
442
|
-
total: 0,
|
|
443
|
-
error: error instanceof Error ? error.message : String(error),
|
|
444
|
-
}))
|
|
445
|
-
.finally(() => {
|
|
446
|
-
mountInflight.delete(key);
|
|
447
|
-
});
|
|
448
|
-
mountInflight.set(key, run);
|
|
449
|
-
return run;
|
|
450
|
-
}
|
|
451
|
-
//# sourceMappingURL=file-memory.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-memory.js","sourceRoot":"","sources":["../src/file-memory.ts"],"names":[],"mappings":"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"}
|