@tablestore/tablestore-agent-cli 0.2.6 → 0.2.8
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/configure.d.ts.map +1 -1
- package/dist/commands/configure.js +10 -5
- package/dist/commands/configure.js.map +1 -1
- package/dist/commands/dashboard.d.ts.map +1 -1
- package/dist/commands/dashboard.js +7 -1
- package/dist/commands/dashboard.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +46 -11
- package/dist/commands/doctor.js.map +1 -1
- package/dist/dashboard-runtime/dashboard/.next/BUILD_ID +1 -1
- 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/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 +14 -14
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_full.segment.rsc +14 -14
- 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 +10 -10
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
- 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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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-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.nft.json +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.nft.json +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]/messages/route.js.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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 +14 -14
- 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 +14 -14
- 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 +10 -10
- 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_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 +17 -17
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_full.segment.rsc +17 -17
- 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 +10 -10
- 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/chunks/[root-of-the-server]__0.y01v.._.js +8 -8
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__04zbudf._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__05eryp~._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__06fva9g._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0cyd2qb._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0wa~r66._.js +8 -8
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__10k~3sa._.js +8 -8
- 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/_0brqbty._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/{_0nmv74v._.js → _0l-4ms-._.js} +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/{_0lf_p5l._.js → _0pe9ntc._.js} +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0tej2s.._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/{_0jl78rk._.js → _0x05u0y._.js} +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0~5g0_a._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_00ofp7q._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_0l1.0wg._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_0o9jhcn._.js +2 -2
- 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_app_(dashboard)_memory_[store]_settings_page_tsx_0y26.xu._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_app_(dashboard)_memory_[store]_tasks_page_tsx_0a_bgx4._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_app_(dashboard)_memory_[store]_units_page_tsx_0.6xnei._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_providers_runtime-context-provider_tsx_0wmj66z._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/node_modules__pnpm_00arje5._.js +1 -1
- 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-ldkvvj51n5..js +5 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/01ccz9pw1s5-1.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/05d8-45s941bx.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/{154l918khtf32.js → 076wjt8-f7ws0.js} +1 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0axe89r5c7p_b.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/{0ro5-~k1_6.ji.js → 0b2g7gajnlz-x.js} +2 -2
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0czi-68m5cma3.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/{0u6g.bq1prqh8.js → 0eg702en0ykod.js} +1 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0gqhfku~on4t1.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0i_66eb3teu-..js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0jwl.kgoaubdz.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0o3sqa_d7_k15.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0oatn7x1t1x~~.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0p7-v~ggg-k3s.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0xnm11dm1-qw2.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0zp_ao86_7617.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/11daw7hfc5lbv.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/140~~66uc8843.css +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/1692-f0t3ef~c.js +1 -0
- package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/layout.tsx +7 -2
- package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/[store]/dream/[dreamId]/page.tsx +79 -19
- package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/[store]/dream/page.tsx +157 -66
- package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/[store]/layout.tsx +1 -1
- package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/[store]/search/page.tsx +4 -0
- package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/[store]/units/page.tsx +1 -2
- package/dist/dashboard-runtime/dashboard/src/app/api/v1/instances/[name]/route.ts +3 -0
- package/dist/dashboard-runtime/dashboard/src/app/api/v1/instances/[name]/token/route.ts +1 -0
- package/dist/dashboard-runtime/dashboard/src/app/api/v1/instances/[name]/use/route.ts +1 -0
- package/dist/dashboard-runtime/dashboard/src/app/api/v1/instances/route.ts +2 -0
- package/dist/dashboard-runtime/dashboard/src/components/instance/connect-instance-form.tsx +49 -10
- package/dist/dashboard-runtime/dashboard/src/components/instance/edit-instance-dialog.tsx +8 -0
- package/dist/dashboard-runtime/dashboard/src/components/memory/memory-create-form.tsx +35 -1
- package/dist/dashboard-runtime/dashboard/src/components/memory/memory-dream-actions-table.tsx +176 -82
- package/dist/dashboard-runtime/dashboard/src/components/memory/memory-dream-apply-confirm-dialog.tsx +2 -0
- package/dist/dashboard-runtime/dashboard/src/components/memory/memory-dream-create-dialog.tsx +130 -83
- package/dist/dashboard-runtime/dashboard/src/components/memory/memory-search-form.tsx +22 -0
- package/dist/dashboard-runtime/dashboard/src/components/memory/memory-search-results.tsx +4 -1
- package/dist/dashboard-runtime/dashboard/src/components/memory/memory-settings-form.tsx +52 -7
- package/dist/dashboard-runtime/dashboard/src/components/memory/memory-tasks-table.tsx +8 -37
- package/dist/dashboard-runtime/dashboard/src/hooks/use-dream-tasks.ts +96 -13
- package/dist/dashboard-runtime/dashboard/src/hooks/use-task-source-messages.ts +179 -0
- package/dist/dashboard-runtime/dashboard/src/lib/memory.ts +75 -1
- package/dist/dashboard-runtime/dashboard/src/lib/server/sdk-client.ts +17 -3
- package/dist/dashboard-runtime/dashboard/src/schemas/instance.ts +56 -4
- package/dist/dashboard-runtime/dashboard/src/types/instance.ts +10 -2
- package/dist/dashboard-runtime/dashboard/src/types/memory.ts +32 -2
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/internal/auth-options.d.ts +25 -0
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/internal/auth-options.d.ts.map +1 -0
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/internal/auth-options.js +29 -0
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/internal/auth-options.js.map +1 -0
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/kb-client.d.ts.map +1 -1
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/kb-client.js +4 -5
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/kb-client.js.map +1 -1
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/managed-ots.d.ts.map +1 -1
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/managed-ots.js +11 -2
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/managed-ots.js.map +1 -1
- 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 +2 -3
- 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/tsconfig.tsbuildinfo +1 -1
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/config.d.ts.map +1 -1
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/config.js +9 -1
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/config.js.map +1 -1
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/constants.d.ts +9 -1
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/constants.d.ts.map +1 -1
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/constants.js +18 -0
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/constants.js.map +1 -1
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/types.d.ts +9 -0
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/types.d.ts.map +1 -1
- package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/internal/auth-options.d.ts +25 -0
- package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/internal/auth-options.d.ts.map +1 -0
- package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/internal/auth-options.js +29 -0
- package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/internal/auth-options.js.map +1 -0
- package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/kb-client.d.ts.map +1 -1
- package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/kb-client.js +4 -5
- package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/kb-client.js.map +1 -1
- package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/managed-ots.d.ts.map +1 -1
- package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/managed-ots.js +11 -2
- package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/managed-ots.js.map +1 -1
- 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 +2 -3
- package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/memory-client.js.map +1 -1
- package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/config.d.ts.map +1 -1
- package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/config.js +9 -1
- package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/config.js.map +1 -1
- package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/constants.d.ts +9 -1
- package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/constants.d.ts.map +1 -1
- package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/constants.js +18 -0
- package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/constants.js.map +1 -1
- package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/types.d.ts +9 -0
- package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0gep_x_._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0.b6bx-29l5e2.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/05ny4_cp6fkfu.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/097px3urt-4kr.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0c08tbxyly68e.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0draec5luxua1.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0f60fxsrh4wbq.js +0 -5
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0frefg2bkdon0.css +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0oh~.z3b9_qzy.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0w6-j4p-7fybc.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0za3q13g~ihb2.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/11fppb7wskgrx.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/126jyzsu33t60.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/12~tfkzir29.4.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/14teeoxc_1i46.js +0 -1
- /package/dist/dashboard-runtime/dashboard/.next/static/{pE-cQCmJ7b5_xgwqBJ7J3 → sk6oO3r92_OgCvicmyYrR}/_buildManifest.js +0 -0
- /package/dist/dashboard-runtime/dashboard/.next/static/{pE-cQCmJ7b5_xgwqBJ7J3 → sk6oO3r92_OgCvicmyYrR}/_clientMiddlewareManifest.js +0 -0
- /package/dist/dashboard-runtime/dashboard/.next/static/{pE-cQCmJ7b5_xgwqBJ7J3 → sk6oO3r92_OgCvicmyYrR}/_ssgManifest.js +0 -0
package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/[store]/dream/[dreamId]/page.tsx
CHANGED
|
@@ -23,6 +23,7 @@ import { MemoryDreamDisabled } from "@/components/memory/memory-dream-disabled";
|
|
|
23
23
|
import {
|
|
24
24
|
DREAM_TERMINAL_STATUSES,
|
|
25
25
|
type DreamTaskStatus,
|
|
26
|
+
type DreamTaskType,
|
|
26
27
|
type MemoryScope,
|
|
27
28
|
} from "@/types/memory";
|
|
28
29
|
import { cn } from "@/lib/utils";
|
|
@@ -72,6 +73,18 @@ function StatusPill({ status }: { status: DreamTaskStatus }) {
|
|
|
72
73
|
);
|
|
73
74
|
}
|
|
74
75
|
|
|
76
|
+
const TASK_TYPE_LABEL: Record<DreamTaskType, string> = {
|
|
77
|
+
memory: "记忆整理",
|
|
78
|
+
skill: "技能抽取",
|
|
79
|
+
profile: "用户画像",
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
const TASK_TYPE_CLASS: Record<DreamTaskType, string> = {
|
|
83
|
+
memory: "bg-info-soft text-info",
|
|
84
|
+
skill: "bg-success-soft text-success",
|
|
85
|
+
profile: "bg-[hsl(var(--primary-soft,_220_90%_96%))] text-[hsl(var(--primary))]",
|
|
86
|
+
};
|
|
87
|
+
|
|
75
88
|
function scopeLabel(scope: MemoryScope): string {
|
|
76
89
|
return (
|
|
77
90
|
[scope.appId, scope.tenantId, scope.agentId, scope.runId]
|
|
@@ -112,6 +125,7 @@ export default function DreamTaskDetailPage() {
|
|
|
112
125
|
|
|
113
126
|
const task = taskQuery.data;
|
|
114
127
|
const isTerminal = task && DREAM_TERMINAL_STATUSES.has(task.status);
|
|
128
|
+
const isExtractTask = task?.taskType === "skill" || task?.taskType === "profile";
|
|
115
129
|
|
|
116
130
|
const onCancel = async () => {
|
|
117
131
|
try {
|
|
@@ -135,7 +149,7 @@ export default function DreamTaskDetailPage() {
|
|
|
135
149
|
}
|
|
136
150
|
>
|
|
137
151
|
<ArrowLeft className="mr-1 h-3.5 w-3.5" />
|
|
138
|
-
|
|
152
|
+
返回任务列表
|
|
139
153
|
</Button>
|
|
140
154
|
</div>
|
|
141
155
|
|
|
@@ -150,18 +164,37 @@ export default function DreamTaskDetailPage() {
|
|
|
150
164
|
<div className="rounded-lg border border-[hsl(var(--border))] p-5">
|
|
151
165
|
<div className="flex items-start justify-between gap-3">
|
|
152
166
|
<div className="space-y-1">
|
|
153
|
-
<
|
|
167
|
+
<div className="flex items-center gap-2">
|
|
168
|
+
<h2 className="font-mono text-base">{task.dreamId}</h2>
|
|
169
|
+
{(() => {
|
|
170
|
+
const tt = (task.taskType || "memory") as DreamTaskType;
|
|
171
|
+
return (
|
|
172
|
+
<span
|
|
173
|
+
className={cn(
|
|
174
|
+
"inline-flex rounded-full px-2 py-0.5 text-xs font-medium whitespace-nowrap",
|
|
175
|
+
TASK_TYPE_CLASS[tt] ?? "bg-muted text-muted-foreground",
|
|
176
|
+
)}
|
|
177
|
+
>
|
|
178
|
+
{TASK_TYPE_LABEL[tt] ?? tt}
|
|
179
|
+
</span>
|
|
180
|
+
);
|
|
181
|
+
})()}
|
|
182
|
+
</div>
|
|
154
183
|
<div className="flex flex-wrap items-center gap-2 text-xs text-muted-foreground">
|
|
155
184
|
<StatusPill status={task.status} />
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
185
|
+
{(!task.taskType || task.taskType === "memory") && (
|
|
186
|
+
<>
|
|
187
|
+
<span>
|
|
188
|
+
{task.applyMode === "safe_auto"
|
|
189
|
+
? "应用模式:安全变更自动应用"
|
|
190
|
+
: "应用模式:建议(手动 apply)"}
|
|
191
|
+
</span>
|
|
192
|
+
<span>·</span>
|
|
193
|
+
<span>
|
|
194
|
+
Scope 输出:{task.scopeOutputMode === "promote_scope" ? "提升" : "保留"}
|
|
195
|
+
</span>
|
|
196
|
+
</>
|
|
197
|
+
)}
|
|
165
198
|
{!isTerminal && (
|
|
166
199
|
<span className="ml-1 italic">· 每 5 秒自动刷新</span>
|
|
167
200
|
)}
|
|
@@ -199,12 +232,25 @@ export default function DreamTaskDetailPage() {
|
|
|
199
232
|
<div className="mt-5 grid grid-cols-2 gap-4 sm:grid-cols-4">
|
|
200
233
|
<StatBlock label="会话数" value={task.input.sessionCount} />
|
|
201
234
|
<StatBlock label="消息数" value={task.input.messageCount} />
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
<StatBlock
|
|
206
|
-
|
|
207
|
-
|
|
235
|
+
{(!task.taskType || task.taskType === "memory") && (
|
|
236
|
+
<StatBlock label="记忆数" value={task.input.memoryCount} />
|
|
237
|
+
)}
|
|
238
|
+
<StatBlock
|
|
239
|
+
label={isExtractTask ? "产出数" : "动作总数"}
|
|
240
|
+
value={task.actions.total}
|
|
241
|
+
/>
|
|
242
|
+
{isExtractTask ? (
|
|
243
|
+
<StatBlock label="已生效" value={task.actions.applied} />
|
|
244
|
+
) : (
|
|
245
|
+
<>
|
|
246
|
+
<StatBlock label="待应用" value={task.actions.proposed} />
|
|
247
|
+
<StatBlock label="已应用" value={task.actions.applied} />
|
|
248
|
+
<StatBlock label="跳过" value={task.actions.skipped} />
|
|
249
|
+
</>
|
|
250
|
+
)}
|
|
251
|
+
{task.actions.failed > 0 && (
|
|
252
|
+
<StatBlock label="失败" value={task.actions.failed} />
|
|
253
|
+
)}
|
|
208
254
|
</div>
|
|
209
255
|
|
|
210
256
|
<div className="mt-5 flex flex-wrap gap-x-6 gap-y-1 text-xs text-muted-foreground">
|
|
@@ -238,18 +284,32 @@ export default function DreamTaskDetailPage() {
|
|
|
238
284
|
</div>
|
|
239
285
|
</div>
|
|
240
286
|
|
|
287
|
+
{task.instructions && (
|
|
288
|
+
<div className="rounded-lg border border-[hsl(var(--border))] p-4">
|
|
289
|
+
<h3 className="mb-2 text-sm font-semibold">
|
|
290
|
+
{task.taskType === "profile" ? "画像模板" : task.taskType === "skill" ? "抽取指引" : "额外指引"}
|
|
291
|
+
</h3>
|
|
292
|
+
<pre className="max-h-48 overflow-auto whitespace-pre-wrap rounded bg-[hsl(var(--muted)/0.4)] p-3 text-xs">
|
|
293
|
+
{task.instructions}
|
|
294
|
+
</pre>
|
|
295
|
+
</div>
|
|
296
|
+
)}
|
|
297
|
+
|
|
241
298
|
<div>
|
|
242
|
-
<h3 className="mb-3 text-sm font-semibold"
|
|
299
|
+
<h3 className="mb-3 text-sm font-semibold">
|
|
300
|
+
{isExtractTask ? "产出结果" : "动作"}
|
|
301
|
+
</h3>
|
|
243
302
|
<MemoryDreamActionsTable
|
|
244
303
|
memoryStoreName={memoryStoreName}
|
|
245
304
|
dreamId={dreamId}
|
|
305
|
+
taskType={task.taskType}
|
|
246
306
|
/>
|
|
247
307
|
</div>
|
|
248
308
|
|
|
249
309
|
<ConfirmDialog
|
|
250
310
|
open={cancelOpen}
|
|
251
311
|
onOpenChange={setCancelOpen}
|
|
252
|
-
title="
|
|
312
|
+
title="确认取消 Dream 任务"
|
|
253
313
|
description="任务将停止后续动作生成,已应用的动作不会回滚。"
|
|
254
314
|
variant="danger"
|
|
255
315
|
onConfirm={onCancel}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import { useMemo, useState } from "react";
|
|
3
|
+
import { Fragment, useMemo, useState } from "react";
|
|
4
4
|
import { useParams, useRouter, useSearchParams } from "next/navigation";
|
|
5
|
-
import { Plus, Sparkles } from "lucide-react";
|
|
5
|
+
import { ChevronDown, ChevronRight, Plus, Sparkles } from "lucide-react";
|
|
6
6
|
|
|
7
7
|
import { Button } from "@/components/ui/button";
|
|
8
8
|
import { Skeleton } from "@/components/ui/skeleton";
|
|
@@ -25,8 +25,8 @@ import { RefreshButton } from "@/components/shared/refresh-button";
|
|
|
25
25
|
import { EmptyState } from "@/components/shared/empty-state";
|
|
26
26
|
import { RelativeTime } from "@/components/shared/relative-time";
|
|
27
27
|
import { useDreamTasks } from "@/hooks/use-dream-tasks";
|
|
28
|
-
import { buildMemoryScope } from "@/lib/memory";
|
|
29
|
-
import type { DreamTask, DreamTaskStatus, MemoryScope } from "@/types/memory";
|
|
28
|
+
import { buildMemoryScope, groupDreamTasksByScope } from "@/lib/memory";
|
|
29
|
+
import type { DreamTask, DreamTaskStatus, DreamTaskType, MemoryScope } from "@/types/memory";
|
|
30
30
|
import { MemoryDreamDisabled } from "@/components/memory/memory-dream-disabled";
|
|
31
31
|
import { MemoryDreamCreateDialog } from "@/components/memory/memory-dream-create-dialog";
|
|
32
32
|
import { cn } from "@/lib/utils";
|
|
@@ -65,6 +65,18 @@ const STATUS_LABEL: Record<DreamTaskStatus, string> = {
|
|
|
65
65
|
cancelled: "已取消",
|
|
66
66
|
};
|
|
67
67
|
|
|
68
|
+
const TASK_TYPE_LABEL: Record<DreamTaskType, string> = {
|
|
69
|
+
memory: "记忆整理",
|
|
70
|
+
skill: "技能抽取",
|
|
71
|
+
profile: "用户画像",
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
const TASK_TYPE_CLASS: Record<DreamTaskType, string> = {
|
|
75
|
+
memory: "bg-info-soft text-info",
|
|
76
|
+
skill: "bg-success-soft text-success",
|
|
77
|
+
profile: "bg-[hsl(var(--primary-soft,_220_90%_96%))] text-[hsl(var(--primary))]",
|
|
78
|
+
};
|
|
79
|
+
|
|
68
80
|
const TERMINAL_STATUSES: ReadonlySet<DreamTaskStatus> = new Set([
|
|
69
81
|
"completed",
|
|
70
82
|
"completed_with_failures",
|
|
@@ -113,32 +125,116 @@ export default function DreamTasksPage() {
|
|
|
113
125
|
);
|
|
114
126
|
const [status, setStatus] = useState<string>("all");
|
|
115
127
|
const [createOpen, setCreateOpen] = useState(false);
|
|
116
|
-
const [
|
|
128
|
+
const [collapsed, setCollapsed] = useState<ReadonlySet<string>>(new Set());
|
|
117
129
|
|
|
118
130
|
const query = useDreamTasks(memoryStoreName, scope, {
|
|
119
131
|
limit: 50,
|
|
120
|
-
nextToken,
|
|
121
132
|
status: status === "all" ? undefined : status,
|
|
122
133
|
});
|
|
123
134
|
|
|
124
|
-
|
|
125
|
-
query.error instanceof Error &&
|
|
126
|
-
"code" in query.error &&
|
|
127
|
-
(query.error as { code?: string }).code === "DREAMING_DISABLED";
|
|
128
|
-
|
|
129
|
-
if (isDreamingDisabled) {
|
|
135
|
+
if (query.errorCode === "DREAMING_DISABLED") {
|
|
130
136
|
return <MemoryDreamDisabled />;
|
|
131
137
|
}
|
|
132
138
|
|
|
133
|
-
const tasks =
|
|
139
|
+
const tasks = query.tasks;
|
|
140
|
+
// The Dream list API returns tasks scope-major (createdAt desc within a
|
|
141
|
+
// scope, but not globally). The hook eagerly loads every page; group the
|
|
142
|
+
// full set by scope so each block reads cleanly newest-first, and fall back
|
|
143
|
+
// to a flat list when there is only one scope.
|
|
144
|
+
const groups = groupDreamTasksByScope(tasks);
|
|
145
|
+
const showGroups = groups.length > 1;
|
|
146
|
+
|
|
147
|
+
const toggleGroup = (key: string) => {
|
|
148
|
+
setCollapsed((prev) => {
|
|
149
|
+
const next = new Set(prev);
|
|
150
|
+
if (next.has(key)) next.delete(key);
|
|
151
|
+
else next.add(key);
|
|
152
|
+
return next;
|
|
153
|
+
});
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
const renderTaskRow = (task: DreamTask) => {
|
|
157
|
+
const createdMs = new Date(task.createdAt).getTime();
|
|
158
|
+
return (
|
|
159
|
+
<TableRow
|
|
160
|
+
key={task.dreamId}
|
|
161
|
+
className="cursor-pointer hover:bg-[hsl(var(--accent))]"
|
|
162
|
+
onClick={() =>
|
|
163
|
+
router.push(
|
|
164
|
+
`/memory/${encodeURIComponent(memoryStoreName)}/dream/${encodeURIComponent(task.dreamId)}`,
|
|
165
|
+
)
|
|
166
|
+
}
|
|
167
|
+
>
|
|
168
|
+
<TableCell className="max-w-[220px] truncate font-mono text-xs">
|
|
169
|
+
{task.dreamId}
|
|
170
|
+
</TableCell>
|
|
171
|
+
<TableCell>
|
|
172
|
+
{(() => {
|
|
173
|
+
const tt = (task.taskType || "memory") as DreamTaskType;
|
|
174
|
+
return (
|
|
175
|
+
<span
|
|
176
|
+
className={cn(
|
|
177
|
+
"inline-flex rounded-full px-2 py-0.5 text-xs font-medium whitespace-nowrap",
|
|
178
|
+
TASK_TYPE_CLASS[tt] ?? "bg-muted text-muted-foreground",
|
|
179
|
+
)}
|
|
180
|
+
>
|
|
181
|
+
{TASK_TYPE_LABEL[tt] ?? tt}
|
|
182
|
+
</span>
|
|
183
|
+
);
|
|
184
|
+
})()}
|
|
185
|
+
</TableCell>
|
|
186
|
+
<TableCell>
|
|
187
|
+
<StatusPill status={task.status} />
|
|
188
|
+
</TableCell>
|
|
189
|
+
<TableCell className="text-xs">
|
|
190
|
+
{(task.taskType && task.taskType !== "memory") ? (
|
|
191
|
+
<span className="text-muted-foreground">—</span>
|
|
192
|
+
) : (
|
|
193
|
+
<>
|
|
194
|
+
{task.applyMode === "safe_auto" ? "自动" : "建议"}
|
|
195
|
+
{task.scopeOutputMode === "promote_scope" && (
|
|
196
|
+
<span className="ml-1 text-muted-foreground">· 提升</span>
|
|
197
|
+
)}
|
|
198
|
+
</>
|
|
199
|
+
)}
|
|
200
|
+
</TableCell>
|
|
201
|
+
<TableCell className="text-right text-xs text-muted-foreground">
|
|
202
|
+
<span className="font-medium text-foreground">
|
|
203
|
+
{task.actionCount ?? 0}
|
|
204
|
+
</span>
|
|
205
|
+
{(task.taskType && task.taskType !== "memory") ? (
|
|
206
|
+
<span className="ml-1">
|
|
207
|
+
条产出
|
|
208
|
+
{(task.failedCount ?? 0) > 0 && (
|
|
209
|
+
<span className="text-danger"> / {task.failedCount} 败</span>
|
|
210
|
+
)}
|
|
211
|
+
</span>
|
|
212
|
+
) : (
|
|
213
|
+
<span className="ml-1">
|
|
214
|
+
({task.proposedCount ?? 0} 待 / {task.appliedCount ?? 0} 应用 /
|
|
215
|
+
{" "}
|
|
216
|
+
{task.skippedCount ?? 0} 跳 / {task.failedCount ?? 0} 败)
|
|
217
|
+
</span>
|
|
218
|
+
)}
|
|
219
|
+
</TableCell>
|
|
220
|
+
<TableCell className="text-xs text-muted-foreground">
|
|
221
|
+
{Number.isFinite(createdMs) ? (
|
|
222
|
+
<RelativeTime timestamp={createdMs} />
|
|
223
|
+
) : (
|
|
224
|
+
task.createdAt
|
|
225
|
+
)}
|
|
226
|
+
</TableCell>
|
|
227
|
+
</TableRow>
|
|
228
|
+
);
|
|
229
|
+
};
|
|
134
230
|
|
|
135
231
|
return (
|
|
136
232
|
<div className="space-y-4">
|
|
137
233
|
<div className="flex items-center justify-between gap-3">
|
|
138
234
|
<div>
|
|
139
|
-
<h2 className="text-lg font-semibold"
|
|
235
|
+
<h2 className="text-lg font-semibold">Dream 任务管理</h2>
|
|
140
236
|
<p className="text-xs text-muted-foreground">
|
|
141
|
-
|
|
237
|
+
管理记忆整理、技能抽取、用户画像等离线任务
|
|
142
238
|
</p>
|
|
143
239
|
</div>
|
|
144
240
|
<div className="flex items-center gap-2">
|
|
@@ -174,10 +270,10 @@ export default function DreamTasksPage() {
|
|
|
174
270
|
) : tasks.length === 0 ? (
|
|
175
271
|
<EmptyState
|
|
176
272
|
icon={Sparkles}
|
|
177
|
-
title="
|
|
273
|
+
title="暂无 Dream 任务"
|
|
178
274
|
description={
|
|
179
275
|
status === "all"
|
|
180
|
-
? "
|
|
276
|
+
? "Dream 任务支持记忆整理、技能抽取、用户画像等功能。第一次使用时,先确保该 scope 下已经写入过几轮对话,再点右上角创建任务。"
|
|
181
277
|
: `当前过滤为「${STATUS_OPTIONS.find((o) => o.value === status)?.label ?? status}」状态,可切到「全部状态」看看`
|
|
182
278
|
}
|
|
183
279
|
action={
|
|
@@ -193,76 +289,71 @@ export default function DreamTasksPage() {
|
|
|
193
289
|
<TableHeader>
|
|
194
290
|
<TableRow>
|
|
195
291
|
<TableHead>Dream ID</TableHead>
|
|
292
|
+
<TableHead>类型</TableHead>
|
|
196
293
|
<TableHead>状态</TableHead>
|
|
197
294
|
<TableHead>应用模式</TableHead>
|
|
198
|
-
<TableHead className="text-right"
|
|
295
|
+
<TableHead className="text-right">产出</TableHead>
|
|
199
296
|
<TableHead>创建时间</TableHead>
|
|
200
297
|
</TableRow>
|
|
201
298
|
</TableHeader>
|
|
202
299
|
<TableBody>
|
|
203
|
-
{
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
{" "}
|
|
234
|
-
{task.skippedCount ?? 0} 跳 / {task.failedCount ?? 0} 败)
|
|
235
|
-
</span>
|
|
236
|
-
</TableCell>
|
|
237
|
-
<TableCell className="text-xs text-muted-foreground">
|
|
238
|
-
{Number.isFinite(createdMs) ? (
|
|
239
|
-
<RelativeTime timestamp={createdMs} />
|
|
240
|
-
) : (
|
|
241
|
-
task.createdAt
|
|
242
|
-
)}
|
|
243
|
-
</TableCell>
|
|
244
|
-
</TableRow>
|
|
245
|
-
);
|
|
246
|
-
})}
|
|
300
|
+
{showGroups
|
|
301
|
+
? groups.map((group) => {
|
|
302
|
+
const isCollapsed = collapsed.has(group.key);
|
|
303
|
+
return (
|
|
304
|
+
<Fragment key={group.key}>
|
|
305
|
+
<TableRow
|
|
306
|
+
className="cursor-pointer select-none bg-muted/40 hover:bg-muted/60"
|
|
307
|
+
onClick={() => toggleGroup(group.key)}
|
|
308
|
+
>
|
|
309
|
+
<TableCell colSpan={6} className="py-2">
|
|
310
|
+
<div className="flex items-center gap-2">
|
|
311
|
+
{isCollapsed ? (
|
|
312
|
+
<ChevronRight className="h-3.5 w-3.5 shrink-0 text-muted-foreground" />
|
|
313
|
+
) : (
|
|
314
|
+
<ChevronDown className="h-3.5 w-3.5 shrink-0 text-muted-foreground" />
|
|
315
|
+
)}
|
|
316
|
+
<span className="break-all font-mono text-xs font-medium text-foreground">
|
|
317
|
+
{group.label}
|
|
318
|
+
</span>
|
|
319
|
+
<span className="shrink-0 rounded-full bg-muted px-2 py-0.5 text-[11px] text-muted-foreground">
|
|
320
|
+
{group.tasks.length} 个任务
|
|
321
|
+
</span>
|
|
322
|
+
</div>
|
|
323
|
+
</TableCell>
|
|
324
|
+
</TableRow>
|
|
325
|
+
{!isCollapsed && group.tasks.map(renderTaskRow)}
|
|
326
|
+
</Fragment>
|
|
327
|
+
);
|
|
328
|
+
})
|
|
329
|
+
: tasks.map(renderTaskRow)}
|
|
247
330
|
</TableBody>
|
|
248
331
|
</Table>
|
|
249
332
|
</div>
|
|
250
333
|
)}
|
|
251
334
|
|
|
252
|
-
{query.
|
|
253
|
-
<
|
|
335
|
+
{query.isFetchingNextPage && (
|
|
336
|
+
<p className="text-center text-xs text-muted-foreground">
|
|
337
|
+
正在加载更多任务…
|
|
338
|
+
</p>
|
|
339
|
+
)}
|
|
340
|
+
|
|
341
|
+
{query.truncated && !query.isFetchingNextPage && (
|
|
342
|
+
<div className="flex items-center justify-center gap-2 text-xs text-muted-foreground">
|
|
343
|
+
<span>任务较多,已先加载一部分</span>
|
|
254
344
|
<Button
|
|
255
345
|
variant="outline"
|
|
256
346
|
size="sm"
|
|
257
|
-
onClick={() =>
|
|
347
|
+
onClick={() => query.fetchNextPage()}
|
|
258
348
|
>
|
|
259
|
-
|
|
349
|
+
继续加载
|
|
260
350
|
</Button>
|
|
261
351
|
</div>
|
|
262
352
|
)}
|
|
263
353
|
|
|
264
354
|
<p className="text-xs text-muted-foreground">
|
|
265
355
|
当前过滤 scope:{scopeLabel(scope)}
|
|
356
|
+
{showGroups && " · 已按 scope 分组,组内按创建时间倒序(新→旧)"}
|
|
266
357
|
</p>
|
|
267
358
|
|
|
268
359
|
<MemoryDreamCreateDialog
|
|
@@ -32,6 +32,10 @@ export default function MemorySearchPage() {
|
|
|
32
32
|
scope: values.scope,
|
|
33
33
|
topK: values.topK,
|
|
34
34
|
enableRerank: values.enableRerank,
|
|
35
|
+
// Only forward the threshold when the user opts in (> 0); the server
|
|
36
|
+
// treats 0 as "no filter", and omitting it keeps the request
|
|
37
|
+
// byte-compatible with servers that predate the minSimilarity field.
|
|
38
|
+
...(values.minSimilarity > 0 ? { minSimilarity: values.minSimilarity } : {}),
|
|
35
39
|
metadata: values.metadata,
|
|
36
40
|
});
|
|
37
41
|
setResults(response.results ?? []);
|
|
@@ -140,7 +140,6 @@ export default function MemoryUnitsPage() {
|
|
|
140
140
|
|
|
141
141
|
// Display data: searched unit or paginated list
|
|
142
142
|
const displayUnits = searchedUnit ? [searchedUnit] : units;
|
|
143
|
-
const displayTotal = searchedUnit ? 1 : (unitsQuery.data?.totalCount ?? 0);
|
|
144
143
|
|
|
145
144
|
if (unitsQuery.isLoading && !searchedUnit) {
|
|
146
145
|
return (
|
|
@@ -154,7 +153,7 @@ export default function MemoryUnitsPage() {
|
|
|
154
153
|
|
|
155
154
|
return (
|
|
156
155
|
<div className="space-y-4">
|
|
157
|
-
<PageHeader title=
|
|
156
|
+
<PageHeader title="长期记忆">
|
|
158
157
|
<div className="flex items-center gap-2">
|
|
159
158
|
<RefreshButton
|
|
160
159
|
loading={unitsQuery.isRefetching}
|
|
@@ -67,6 +67,7 @@ export async function GET(_request: NextRequest, context: RouteContext) {
|
|
|
67
67
|
accessKeySecretMasked: detail.access_key_secret
|
|
68
68
|
? maskSecret(detail.access_key_secret)
|
|
69
69
|
: undefined,
|
|
70
|
+
apiKeyMasked: detail.api_key ? maskSecret(detail.api_key) : undefined,
|
|
70
71
|
memoryDefaults: {
|
|
71
72
|
storeName: detail.memory_store_name || undefined,
|
|
72
73
|
appId: detail.memory_app_id || undefined,
|
|
@@ -111,6 +112,7 @@ export async function PUT(request: NextRequest, context: RouteContext) {
|
|
|
111
112
|
const d = parsed.data;
|
|
112
113
|
if (d.accessKeyId) patch.access_key_id = d.accessKeyId;
|
|
113
114
|
if (d.accessKeySecret) patch.access_key_secret = d.accessKeySecret;
|
|
115
|
+
if (d.apiKey) patch.api_key = d.apiKey;
|
|
114
116
|
if (d.otsEndpoint) patch.ots_endpoint = d.otsEndpoint;
|
|
115
117
|
if (d.otsInstanceName) patch.ots_instance_name = d.otsInstanceName;
|
|
116
118
|
if (d.ossEndpoint !== undefined) patch.oss_endpoint = d.ossEndpoint;
|
|
@@ -128,6 +130,7 @@ export async function PUT(request: NextRequest, context: RouteContext) {
|
|
|
128
130
|
const token = encodeTokenV2({
|
|
129
131
|
access_key_id: updated.access_key_id,
|
|
130
132
|
access_key_secret: updated.access_key_secret,
|
|
133
|
+
api_key: updated.api_key,
|
|
131
134
|
ots_endpoint: updated.ots_endpoint || ots.ots_endpoint,
|
|
132
135
|
ots_instance_name:
|
|
133
136
|
updated.ots_instance_name || ots.ots_instance_name,
|
|
@@ -67,6 +67,7 @@ export async function GET(_request: NextRequest, context: RouteContext) {
|
|
|
67
67
|
const token = encodeTokenV2({
|
|
68
68
|
access_key_id: detail.access_key_id,
|
|
69
69
|
access_key_secret: detail.access_key_secret,
|
|
70
|
+
api_key: detail.api_key,
|
|
70
71
|
ots_endpoint: detail.ots_endpoint,
|
|
71
72
|
ots_instance_name: detail.ots_instance_name,
|
|
72
73
|
oss_endpoint: effectiveOssEndpoint,
|
|
@@ -65,6 +65,7 @@ export async function POST(_request: NextRequest, context: RouteContext) {
|
|
|
65
65
|
const token = encodeTokenV2({
|
|
66
66
|
access_key_id: detail.access_key_id,
|
|
67
67
|
access_key_secret: detail.access_key_secret,
|
|
68
|
+
api_key: detail.api_key,
|
|
68
69
|
ots_endpoint: detail.ots_endpoint || ots.ots_endpoint,
|
|
69
70
|
ots_instance_name: detail.ots_instance_name || ots.ots_instance_name,
|
|
70
71
|
oss_endpoint: detail.oss_endpoint || oss.oss_endpoint,
|
|
@@ -131,6 +131,7 @@ export async function POST(request: NextRequest) {
|
|
|
131
131
|
const effective = loadConfig();
|
|
132
132
|
const tokenFields = {
|
|
133
133
|
...fields,
|
|
134
|
+
api_key: fields.api_key || "",
|
|
134
135
|
oss_endpoint: effective.oss_endpoint || fields.oss_endpoint || "",
|
|
135
136
|
oss_bucket_name:
|
|
136
137
|
effective.oss_bucket_name || fields.oss_bucket_name || "",
|
|
@@ -184,6 +185,7 @@ function createFromFields(raw: unknown): CreationPlan | NextResponse {
|
|
|
184
185
|
fields: stripEmpty({
|
|
185
186
|
access_key_id: data.accessKeyId,
|
|
186
187
|
access_key_secret: data.accessKeySecret,
|
|
188
|
+
api_key: data.apiKey,
|
|
187
189
|
ots_endpoint: data.otsEndpoint,
|
|
188
190
|
ots_instance_name: data.otsInstanceName,
|
|
189
191
|
oss_endpoint: data.ossEndpoint,
|
|
@@ -7,9 +7,10 @@ import { Info } from "lucide-react";
|
|
|
7
7
|
import { z } from "zod";
|
|
8
8
|
|
|
9
9
|
import {
|
|
10
|
-
|
|
10
|
+
connectInstanceBaseSchema,
|
|
11
11
|
editInstanceFormSchema,
|
|
12
12
|
importInstanceSchema,
|
|
13
|
+
withCredentialModeRules,
|
|
13
14
|
} from "@/schemas/instance";
|
|
14
15
|
import { Button } from "@/components/ui/button";
|
|
15
16
|
import {
|
|
@@ -44,15 +45,17 @@ import { stripBucketPrefix } from "@/lib/normalize-oss-endpoint";
|
|
|
44
45
|
* which the server-side schema cannot assert because tokens may ship bare
|
|
45
46
|
* endpoints — is layered on via `.extend(...)` instead of a parallel copy.
|
|
46
47
|
*/
|
|
47
|
-
const connectFormSchema =
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
48
|
+
const connectFormSchema = withCredentialModeRules(
|
|
49
|
+
connectInstanceBaseSchema.extend({
|
|
50
|
+
otsEndpoint: z.string().trim().url("请输入合法的 OTS Endpoint URL"),
|
|
51
|
+
ossEndpoint: z
|
|
52
|
+
.string()
|
|
53
|
+
.trim()
|
|
54
|
+
.url("请输入合法的 OSS Endpoint URL")
|
|
55
|
+
.optional()
|
|
56
|
+
.or(z.literal("")),
|
|
57
|
+
}),
|
|
58
|
+
);
|
|
56
59
|
|
|
57
60
|
// Token tab only needs the `token` field; omit everything else so the
|
|
58
61
|
// submit handler receives a clean `{ token }` shape.
|
|
@@ -81,6 +84,10 @@ export interface ConnectInstanceFormProps {
|
|
|
81
84
|
* placeholder so users can see "something is set" without exposing it.
|
|
82
85
|
*/
|
|
83
86
|
accessKeySecretPlaceholder?: string;
|
|
87
|
+
/**
|
|
88
|
+
* Edit-mode hint: masked API Key surfaced as the input placeholder.
|
|
89
|
+
*/
|
|
90
|
+
apiKeyPlaceholder?: string;
|
|
84
91
|
onSubmit: (
|
|
85
92
|
values: ConnectInstancePayload | ImportInstancePayload,
|
|
86
93
|
) => Promise<void>;
|
|
@@ -96,6 +103,7 @@ export function ConnectInstanceForm({
|
|
|
96
103
|
defaultValues,
|
|
97
104
|
accessKeyIdPlaceholder,
|
|
98
105
|
accessKeySecretPlaceholder,
|
|
106
|
+
apiKeyPlaceholder,
|
|
99
107
|
onSubmit,
|
|
100
108
|
busy,
|
|
101
109
|
lockName,
|
|
@@ -142,6 +150,8 @@ export function ConnectInstanceForm({
|
|
|
142
150
|
// users still get the "something is set" affordance.
|
|
143
151
|
accessKeyId: isEdit ? "" : (defaultValues?.accessKeyId ?? ""),
|
|
144
152
|
accessKeySecret: isEdit ? "" : (defaultValues?.accessKeySecret ?? ""),
|
|
153
|
+
// Same masked-placeholder treatment as AK/SK in edit mode.
|
|
154
|
+
apiKey: isEdit ? "" : (defaultValues?.apiKey ?? ""),
|
|
145
155
|
otsEndpoint: defaultValues?.otsEndpoint ?? "",
|
|
146
156
|
otsInstanceName: defaultValues?.otsInstanceName ?? "",
|
|
147
157
|
ossEndpoint: defaultValues?.ossEndpoint ?? "",
|
|
@@ -332,6 +342,35 @@ export function ConnectInstanceForm({
|
|
|
332
342
|
/>
|
|
333
343
|
</div>
|
|
334
344
|
|
|
345
|
+
<FormField
|
|
346
|
+
control={manualForm.control}
|
|
347
|
+
name="apiKey"
|
|
348
|
+
render={({ field }) => (
|
|
349
|
+
<FormItem>
|
|
350
|
+
<FormLabel>API Key(可选)</FormLabel>
|
|
351
|
+
<FormControl>
|
|
352
|
+
<Input
|
|
353
|
+
{...field}
|
|
354
|
+
type="password"
|
|
355
|
+
autoComplete="new-password"
|
|
356
|
+
disabled={busy}
|
|
357
|
+
placeholder={
|
|
358
|
+
isEdit && apiKeyPlaceholder
|
|
359
|
+
? `${apiKeyPlaceholder} · 留空表示保留`
|
|
360
|
+
: "sk-..."
|
|
361
|
+
}
|
|
362
|
+
/>
|
|
363
|
+
</FormControl>
|
|
364
|
+
<FormDescription>
|
|
365
|
+
可替代 AccessKey 作为数据面访问凭证;同时填写时 API Key 优先。
|
|
366
|
+
需 HTTPS 端点,且无法自动创建实例 / 使用 OSS 上传(那些仍需
|
|
367
|
+
AK/SK)。
|
|
368
|
+
</FormDescription>
|
|
369
|
+
<FormMessage />
|
|
370
|
+
</FormItem>
|
|
371
|
+
)}
|
|
372
|
+
/>
|
|
373
|
+
|
|
335
374
|
<div className="grid gap-4 sm:grid-cols-2">
|
|
336
375
|
<FormField
|
|
337
376
|
control={manualForm.control}
|