@tablestore/tablestore-agent-cli 0.2.6 → 0.2.7
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/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/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/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_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/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/0czi-68m5cma3.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0ezfzygzl1hw8.css +1 -0
- 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/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/{0za3q13g~ihb2.js → 0yqx-vizpechs.js} +1 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/11daw7hfc5lbv.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/{0oh~.z3b9_qzy.js → 17l3ij7h2.vna.js} +1 -1
- 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 +57 -14
- 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/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-task-source-messages.ts +179 -0
- package/dist/dashboard-runtime/dashboard/src/types/memory.ts +32 -2
- package/package.json +1 -1
- 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/0frefg2bkdon0.css +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0w6-j4p-7fybc.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 → -pCWSBA7OQIF0pN0Rem9H}/_buildManifest.js +0 -0
- /package/dist/dashboard-runtime/dashboard/.next/static/{pE-cQCmJ7b5_xgwqBJ7J3 → -pCWSBA7OQIF0pN0Rem9H}/_clientMiddlewareManifest.js +0 -0
- /package/dist/dashboard-runtime/dashboard/.next/static/{pE-cQCmJ7b5_xgwqBJ7J3 → -pCWSBA7OQIF0pN0Rem9H}/_ssgManifest.js +0 -0
|
@@ -26,7 +26,7 @@ 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
28
|
import { buildMemoryScope } from "@/lib/memory";
|
|
29
|
-
import type { DreamTask, DreamTaskStatus, MemoryScope } from "@/types/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",
|
|
@@ -136,9 +148,9 @@ export default function DreamTasksPage() {
|
|
|
136
148
|
<div className="space-y-4">
|
|
137
149
|
<div className="flex items-center justify-between gap-3">
|
|
138
150
|
<div>
|
|
139
|
-
<h2 className="text-lg font-semibold"
|
|
151
|
+
<h2 className="text-lg font-semibold">Dream 任务管理</h2>
|
|
140
152
|
<p className="text-xs text-muted-foreground">
|
|
141
|
-
|
|
153
|
+
管理记忆整理、技能抽取、用户画像等离线任务
|
|
142
154
|
</p>
|
|
143
155
|
</div>
|
|
144
156
|
<div className="flex items-center gap-2">
|
|
@@ -174,10 +186,10 @@ export default function DreamTasksPage() {
|
|
|
174
186
|
) : tasks.length === 0 ? (
|
|
175
187
|
<EmptyState
|
|
176
188
|
icon={Sparkles}
|
|
177
|
-
title="
|
|
189
|
+
title="暂无 Dream 任务"
|
|
178
190
|
description={
|
|
179
191
|
status === "all"
|
|
180
|
-
? "
|
|
192
|
+
? "Dream 任务支持记忆整理、技能抽取、用户画像等功能。第一次使用时,先确保该 scope 下已经写入过几轮对话,再点右上角创建任务。"
|
|
181
193
|
: `当前过滤为「${STATUS_OPTIONS.find((o) => o.value === status)?.label ?? status}」状态,可切到「全部状态」看看`
|
|
182
194
|
}
|
|
183
195
|
action={
|
|
@@ -193,9 +205,10 @@ export default function DreamTasksPage() {
|
|
|
193
205
|
<TableHeader>
|
|
194
206
|
<TableRow>
|
|
195
207
|
<TableHead>Dream ID</TableHead>
|
|
208
|
+
<TableHead>类型</TableHead>
|
|
196
209
|
<TableHead>状态</TableHead>
|
|
197
210
|
<TableHead>应用模式</TableHead>
|
|
198
|
-
<TableHead className="text-right"
|
|
211
|
+
<TableHead className="text-right">产出</TableHead>
|
|
199
212
|
<TableHead>创建时间</TableHead>
|
|
200
213
|
</TableRow>
|
|
201
214
|
</TableHeader>
|
|
@@ -215,24 +228,54 @@ export default function DreamTasksPage() {
|
|
|
215
228
|
<TableCell className="max-w-[220px] truncate font-mono text-xs">
|
|
216
229
|
{task.dreamId}
|
|
217
230
|
</TableCell>
|
|
231
|
+
<TableCell>
|
|
232
|
+
{(() => {
|
|
233
|
+
const tt = (task.taskType || "memory") as DreamTaskType;
|
|
234
|
+
return (
|
|
235
|
+
<span
|
|
236
|
+
className={cn(
|
|
237
|
+
"inline-flex rounded-full px-2 py-0.5 text-xs font-medium whitespace-nowrap",
|
|
238
|
+
TASK_TYPE_CLASS[tt] ?? "bg-muted text-muted-foreground",
|
|
239
|
+
)}
|
|
240
|
+
>
|
|
241
|
+
{TASK_TYPE_LABEL[tt] ?? tt}
|
|
242
|
+
</span>
|
|
243
|
+
);
|
|
244
|
+
})()}
|
|
245
|
+
</TableCell>
|
|
218
246
|
<TableCell>
|
|
219
247
|
<StatusPill status={task.status} />
|
|
220
248
|
</TableCell>
|
|
221
249
|
<TableCell className="text-xs">
|
|
222
|
-
{task.
|
|
223
|
-
|
|
224
|
-
|
|
250
|
+
{(task.taskType && task.taskType !== "memory") ? (
|
|
251
|
+
<span className="text-muted-foreground">—</span>
|
|
252
|
+
) : (
|
|
253
|
+
<>
|
|
254
|
+
{task.applyMode === "safe_auto" ? "自动" : "建议"}
|
|
255
|
+
{task.scopeOutputMode === "promote_scope" && (
|
|
256
|
+
<span className="ml-1 text-muted-foreground">· 提升</span>
|
|
257
|
+
)}
|
|
258
|
+
</>
|
|
225
259
|
)}
|
|
226
260
|
</TableCell>
|
|
227
261
|
<TableCell className="text-right text-xs text-muted-foreground">
|
|
228
262
|
<span className="font-medium text-foreground">
|
|
229
263
|
{task.actionCount ?? 0}
|
|
230
264
|
</span>
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
265
|
+
{(task.taskType && task.taskType !== "memory") ? (
|
|
266
|
+
<span className="ml-1">
|
|
267
|
+
条产出
|
|
268
|
+
{(task.failedCount ?? 0) > 0 && (
|
|
269
|
+
<span className="text-danger"> / {task.failedCount} 败</span>
|
|
270
|
+
)}
|
|
271
|
+
</span>
|
|
272
|
+
) : (
|
|
273
|
+
<span className="ml-1">
|
|
274
|
+
({task.proposedCount ?? 0} 待 / {task.appliedCount ?? 0} 应用 /
|
|
275
|
+
{" "}
|
|
276
|
+
{task.skippedCount ?? 0} 跳 / {task.failedCount ?? 0} 败)
|
|
277
|
+
</span>
|
|
278
|
+
)}
|
|
236
279
|
</TableCell>
|
|
237
280
|
<TableCell className="text-xs text-muted-foreground">
|
|
238
281
|
{Number.isFinite(createdMs) ? (
|
|
@@ -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}
|
|
@@ -28,6 +28,11 @@ const createMemoryStoreSchema = z.object({
|
|
|
28
28
|
.max(32, "名称不能超过 32 个字符")
|
|
29
29
|
.regex(/^[a-zA-Z0-9_]+$/, "只能包含字母、数字和下划线"),
|
|
30
30
|
description: z.string().trim().max(256, "描述不超过 256 字").optional(),
|
|
31
|
+
extractInstructions: z
|
|
32
|
+
.string()
|
|
33
|
+
.trim()
|
|
34
|
+
.max(4096, "抽取指令不超过 4096 字")
|
|
35
|
+
.optional(),
|
|
31
36
|
});
|
|
32
37
|
|
|
33
38
|
type CreateMemoryStoreInput = z.infer<typeof createMemoryStoreSchema>;
|
|
@@ -38,7 +43,7 @@ export function MemoryCreateForm() {
|
|
|
38
43
|
|
|
39
44
|
const form = useForm<CreateMemoryStoreInput>({
|
|
40
45
|
resolver: zodResolver(createMemoryStoreSchema),
|
|
41
|
-
defaultValues: { memoryStoreName: "", description: "" },
|
|
46
|
+
defaultValues: { memoryStoreName: "", description: "", extractInstructions: "" },
|
|
42
47
|
});
|
|
43
48
|
|
|
44
49
|
async function onSubmit(values: CreateMemoryStoreInput) {
|
|
@@ -46,6 +51,9 @@ export function MemoryCreateForm() {
|
|
|
46
51
|
await createStore.mutateAsync({
|
|
47
52
|
memoryStoreName: values.memoryStoreName,
|
|
48
53
|
description: values.description?.length ? values.description : undefined,
|
|
54
|
+
extractInstructions: values.extractInstructions?.length
|
|
55
|
+
? values.extractInstructions
|
|
56
|
+
: undefined,
|
|
49
57
|
});
|
|
50
58
|
toast.success("记忆库创建成功");
|
|
51
59
|
router.push("/memory");
|
|
@@ -108,6 +116,32 @@ export function MemoryCreateForm() {
|
|
|
108
116
|
</div>
|
|
109
117
|
</section>
|
|
110
118
|
|
|
119
|
+
<section className="rounded-lg border border-[hsl(var(--border))] bg-[hsl(var(--card))] p-5 shadow-sm">
|
|
120
|
+
<FormSectionHeader
|
|
121
|
+
title="记忆抽取指令"
|
|
122
|
+
description="可选。这里填写的指令会注入到后台记忆抽取的提示词中,用于引导从对话里提炼哪些信息、忽略哪些信息。留空则使用默认抽取策略。"
|
|
123
|
+
/>
|
|
124
|
+
<FormField
|
|
125
|
+
control={form.control}
|
|
126
|
+
name="extractInstructions"
|
|
127
|
+
render={({ field }) => (
|
|
128
|
+
<FormItem>
|
|
129
|
+
<FormLabel>抽取指令</FormLabel>
|
|
130
|
+
<FormControl>
|
|
131
|
+
<Textarea
|
|
132
|
+
placeholder="例如:重点关注用户的医疗术语与用药偏好;忽略寒暄与客套内容。"
|
|
133
|
+
className="resize-none"
|
|
134
|
+
rows={5}
|
|
135
|
+
{...field}
|
|
136
|
+
/>
|
|
137
|
+
</FormControl>
|
|
138
|
+
<FormDescription>最多 4096 个字符。创建后可在记忆库设置中修改。</FormDescription>
|
|
139
|
+
<FormMessage />
|
|
140
|
+
</FormItem>
|
|
141
|
+
)}
|
|
142
|
+
/>
|
|
143
|
+
</section>
|
|
144
|
+
|
|
111
145
|
<div className="flex justify-end gap-3 border-t border-[hsl(var(--border-light))] pt-4">
|
|
112
146
|
<Button
|
|
113
147
|
type="button"
|
package/dist/dashboard-runtime/dashboard/src/components/memory/memory-dream-actions-table.tsx
CHANGED
|
@@ -53,6 +53,7 @@ import { MemoryDreamApplyConfirmDialog } from "./memory-dream-apply-confirm-dial
|
|
|
53
53
|
interface DreamActionsTableProps {
|
|
54
54
|
memoryStoreName: string;
|
|
55
55
|
dreamId: string;
|
|
56
|
+
taskType?: string;
|
|
56
57
|
}
|
|
57
58
|
|
|
58
59
|
const STATUS_OPTIONS: Array<{ value: DreamActionStatus | "all"; label: string }> = [
|
|
@@ -70,6 +71,8 @@ const ACTION_OPTIONS: Array<{ value: DreamActionType | "all"; label: string }> =
|
|
|
70
71
|
{ value: "DELETE", label: "DELETE" },
|
|
71
72
|
{ value: "MERGE", label: "MERGE" },
|
|
72
73
|
{ value: "NOOP", label: "NOOP" },
|
|
74
|
+
{ value: "EMIT_SKILL", label: "EMIT_SKILL" },
|
|
75
|
+
{ value: "EMIT_PROFILE", label: "EMIT_PROFILE" },
|
|
73
76
|
];
|
|
74
77
|
|
|
75
78
|
const ORDER_OPTIONS: Array<{ value: DreamActionListOrderBy; label: string }> = [
|
|
@@ -98,6 +101,8 @@ const ACTION_CLASS: Record<DreamActionType, string> = {
|
|
|
98
101
|
DELETE: "bg-danger-soft text-danger",
|
|
99
102
|
MERGE: "bg-[hsl(var(--primary-soft))] text-[hsl(var(--primary))]",
|
|
100
103
|
NOOP: "bg-muted text-muted-foreground",
|
|
104
|
+
EMIT_SKILL: "bg-success-soft text-success",
|
|
105
|
+
EMIT_PROFILE: "bg-[hsl(var(--primary-soft))] text-[hsl(var(--primary))]",
|
|
101
106
|
};
|
|
102
107
|
|
|
103
108
|
function ActionBadge({ action }: { action: DreamActionType }) {
|
|
@@ -137,7 +142,29 @@ function ActionRowPreview({
|
|
|
137
142
|
action: DreamActionRecord;
|
|
138
143
|
memoryStoreName: string;
|
|
139
144
|
}) {
|
|
140
|
-
const { action: type, newMemory, targetMemoryId, targetScope, reason } = action;
|
|
145
|
+
const { action: type, newMemory, newExtract, targetMemoryId, targetScope, reason } = action;
|
|
146
|
+
|
|
147
|
+
if (type === "EMIT_SKILL" || type === "EMIT_PROFILE") {
|
|
148
|
+
if (!newExtract) return <span className="text-muted-foreground">—</span>;
|
|
149
|
+
return (
|
|
150
|
+
<span className="line-clamp-2 text-xs">
|
|
151
|
+
<span
|
|
152
|
+
className={cn(
|
|
153
|
+
"mr-1 rounded px-1 py-px text-[10px] font-medium",
|
|
154
|
+
type === "EMIT_SKILL"
|
|
155
|
+
? "bg-success-soft text-success"
|
|
156
|
+
: "bg-[hsl(var(--primary-soft))] text-[hsl(var(--primary))]",
|
|
157
|
+
)}
|
|
158
|
+
>
|
|
159
|
+
{type === "EMIT_SKILL" ? "技能" : "画像"}
|
|
160
|
+
</span>
|
|
161
|
+
{newExtract.name}
|
|
162
|
+
{newExtract.description && (
|
|
163
|
+
<span className="text-muted-foreground"> — {newExtract.description}</span>
|
|
164
|
+
)}
|
|
165
|
+
</span>
|
|
166
|
+
);
|
|
167
|
+
}
|
|
141
168
|
|
|
142
169
|
if (type === "ADD" || type === "UPDATE") {
|
|
143
170
|
const text = newMemory?.text;
|
|
@@ -240,7 +267,9 @@ function scopeLabel(scope?: MemoryScope): string {
|
|
|
240
267
|
export function MemoryDreamActionsTable({
|
|
241
268
|
memoryStoreName,
|
|
242
269
|
dreamId,
|
|
270
|
+
taskType,
|
|
243
271
|
}: DreamActionsTableProps) {
|
|
272
|
+
const isExtractTask = taskType === "skill" || taskType === "profile";
|
|
244
273
|
const [statusFilter, setStatusFilter] = useState<string>("all");
|
|
245
274
|
const [actionFilter, setActionFilter] = useState<string>("all");
|
|
246
275
|
const [orderBy, setOrderBy] = useState<DreamActionListOrderBy>("created_at_asc");
|
|
@@ -263,12 +292,17 @@ export function MemoryDreamActionsTable({
|
|
|
263
292
|
|
|
264
293
|
const applyMutation = useApplyDreamActions(memoryStoreName, dreamId);
|
|
265
294
|
|
|
266
|
-
const
|
|
295
|
+
const isApplyable = (a: DreamActionRecord) =>
|
|
296
|
+
a.status === "proposed" &&
|
|
297
|
+
a.action !== "EMIT_SKILL" &&
|
|
298
|
+
a.action !== "EMIT_PROFILE";
|
|
299
|
+
|
|
300
|
+
const proposedCount = actions.filter(isApplyable).length;
|
|
267
301
|
|
|
268
302
|
const allSelectedProposedSelected =
|
|
269
303
|
proposedCount > 0 &&
|
|
270
304
|
actions.every(
|
|
271
|
-
(a) => a
|
|
305
|
+
(a) => !isApplyable(a) || selected.has(a.actionId),
|
|
272
306
|
);
|
|
273
307
|
|
|
274
308
|
const toggleAll = () => {
|
|
@@ -276,7 +310,7 @@ export function MemoryDreamActionsTable({
|
|
|
276
310
|
setSelected(new Set());
|
|
277
311
|
} else {
|
|
278
312
|
setSelected(
|
|
279
|
-
new Set(actions.filter(
|
|
313
|
+
new Set(actions.filter(isApplyable).map((a) => a.actionId)),
|
|
280
314
|
);
|
|
281
315
|
}
|
|
282
316
|
};
|
|
@@ -322,18 +356,20 @@ export function MemoryDreamActionsTable({
|
|
|
322
356
|
))}
|
|
323
357
|
</SelectContent>
|
|
324
358
|
</Select>
|
|
325
|
-
|
|
326
|
-
<
|
|
327
|
-
<
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
{opt.
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
359
|
+
{!isExtractTask && (
|
|
360
|
+
<Select value={actionFilter} onValueChange={setActionFilter}>
|
|
361
|
+
<SelectTrigger className="h-8 w-32 text-sm">
|
|
362
|
+
<SelectValue />
|
|
363
|
+
</SelectTrigger>
|
|
364
|
+
<SelectContent>
|
|
365
|
+
{ACTION_OPTIONS.map((opt) => (
|
|
366
|
+
<SelectItem key={opt.value} value={opt.value}>
|
|
367
|
+
{opt.label}
|
|
368
|
+
</SelectItem>
|
|
369
|
+
))}
|
|
370
|
+
</SelectContent>
|
|
371
|
+
</Select>
|
|
372
|
+
)}
|
|
337
373
|
<Select
|
|
338
374
|
value={orderBy}
|
|
339
375
|
onValueChange={(v) => setOrderBy(v as DreamActionListOrderBy)}
|
|
@@ -349,31 +385,35 @@ export function MemoryDreamActionsTable({
|
|
|
349
385
|
))}
|
|
350
386
|
</SelectContent>
|
|
351
387
|
</Select>
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
388
|
+
{!isExtractTask && (
|
|
389
|
+
<>
|
|
390
|
+
<div className="flex items-center gap-2">
|
|
391
|
+
<span className="text-xs text-muted-foreground">最小置信度</span>
|
|
392
|
+
<Slider
|
|
393
|
+
value={[minConfidence]}
|
|
394
|
+
max={1}
|
|
395
|
+
step={0.05}
|
|
396
|
+
onValueChange={(v) => setMinConfidence(v[0] ?? 0)}
|
|
397
|
+
className="w-32"
|
|
398
|
+
/>
|
|
399
|
+
<span className="font-mono text-xs">
|
|
400
|
+
{minConfidence.toFixed(2)}
|
|
401
|
+
</span>
|
|
402
|
+
</div>
|
|
403
|
+
<div className="ml-auto flex items-center gap-2">
|
|
404
|
+
<span className="text-xs text-muted-foreground">
|
|
405
|
+
已选 {selected.size}
|
|
406
|
+
</span>
|
|
407
|
+
<Button
|
|
408
|
+
size="sm"
|
|
409
|
+
disabled={selected.size === 0 || applyMutation.isPending}
|
|
410
|
+
onClick={() => setConfirmOpen(true)}
|
|
411
|
+
>
|
|
412
|
+
{applyMutation.isPending ? "应用中…" : `Apply selected (${selected.size})`}
|
|
413
|
+
</Button>
|
|
414
|
+
</div>
|
|
415
|
+
</>
|
|
416
|
+
)}
|
|
377
417
|
</div>
|
|
378
418
|
|
|
379
419
|
{query.isLoading ? (
|
|
@@ -384,57 +424,65 @@ export function MemoryDreamActionsTable({
|
|
|
384
424
|
) : actions.length === 0 ? (
|
|
385
425
|
<div className="rounded-lg border border-dashed border-[hsl(var(--border))] py-10 text-center text-sm text-muted-foreground">
|
|
386
426
|
<Sparkles className="mx-auto mb-2 h-6 w-6 text-muted-foreground/60" />
|
|
387
|
-
|
|
427
|
+
{isExtractTask
|
|
428
|
+
? "暂无产出结果。请确认输入 scope 下有足够的对话消息。"
|
|
429
|
+
: "当前过滤条件下暂无动作"}
|
|
388
430
|
</div>
|
|
389
431
|
) : (
|
|
390
432
|
<div className="rounded-lg border border-[hsl(var(--border))]">
|
|
391
433
|
<Table>
|
|
392
434
|
<TableHeader>
|
|
393
435
|
<TableRow>
|
|
394
|
-
|
|
395
|
-
<
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
436
|
+
{!isExtractTask && (
|
|
437
|
+
<TableHead className="w-8">
|
|
438
|
+
<Checkbox
|
|
439
|
+
checked={allSelectedProposedSelected}
|
|
440
|
+
onCheckedChange={toggleAll}
|
|
441
|
+
disabled={proposedCount === 0}
|
|
442
|
+
aria-label="全选可应用动作"
|
|
443
|
+
/>
|
|
444
|
+
</TableHead>
|
|
445
|
+
)}
|
|
446
|
+
<TableHead>{isExtractTask ? "产出类型" : "类型"}</TableHead>
|
|
403
447
|
<TableHead>状态</TableHead>
|
|
404
448
|
<TableHead>目标 scope</TableHead>
|
|
405
|
-
<TableHead
|
|
406
|
-
|
|
449
|
+
<TableHead>{isExtractTask ? "内容" : "影响"}</TableHead>
|
|
450
|
+
{!isExtractTask && (
|
|
451
|
+
<TableHead className="text-right">置信度</TableHead>
|
|
452
|
+
)}
|
|
407
453
|
</TableRow>
|
|
408
454
|
</TableHeader>
|
|
409
455
|
<TableBody>
|
|
410
456
|
{actions.map((action) => {
|
|
411
|
-
const
|
|
457
|
+
const canApply = isApplyable(action);
|
|
412
458
|
return (
|
|
413
459
|
<TableRow
|
|
414
460
|
key={action.actionId}
|
|
415
461
|
className="cursor-pointer hover:bg-[hsl(var(--accent))]"
|
|
416
462
|
onClick={() => setDetail(action)}
|
|
417
463
|
>
|
|
418
|
-
|
|
419
|
-
{
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
<
|
|
428
|
-
<
|
|
429
|
-
<
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
464
|
+
{!isExtractTask && (
|
|
465
|
+
<TableCell onClick={(e) => e.stopPropagation()}>
|
|
466
|
+
{canApply ? (
|
|
467
|
+
<Checkbox
|
|
468
|
+
checked={selected.has(action.actionId)}
|
|
469
|
+
onCheckedChange={() => toggleOne(action.actionId)}
|
|
470
|
+
aria-label="选择此动作"
|
|
471
|
+
/>
|
|
472
|
+
) : (
|
|
473
|
+
<Tooltip>
|
|
474
|
+
<TooltipTrigger asChild>
|
|
475
|
+
<span>
|
|
476
|
+
<Checkbox checked={false} disabled aria-label="不可选" />
|
|
477
|
+
</span>
|
|
478
|
+
</TooltipTrigger>
|
|
479
|
+
<TooltipContent>
|
|
480
|
+
仅 proposed 状态的动作可以 apply
|
|
481
|
+
</TooltipContent>
|
|
482
|
+
</Tooltip>
|
|
483
|
+
)}
|
|
484
|
+
</TableCell>
|
|
485
|
+
)}
|
|
438
486
|
<TableCell>
|
|
439
487
|
<ActionBadge action={action.action} />
|
|
440
488
|
</TableCell>
|
|
@@ -450,11 +498,13 @@ export function MemoryDreamActionsTable({
|
|
|
450
498
|
memoryStoreName={memoryStoreName}
|
|
451
499
|
/>
|
|
452
500
|
</TableCell>
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
501
|
+
{!isExtractTask && (
|
|
502
|
+
<TableCell className="text-right font-mono text-xs">
|
|
503
|
+
{action.confidence !== undefined
|
|
504
|
+
? action.confidence.toFixed(2)
|
|
505
|
+
: "-"}
|
|
506
|
+
</TableCell>
|
|
507
|
+
)}
|
|
458
508
|
</TableRow>
|
|
459
509
|
);
|
|
460
510
|
})}
|
|
@@ -509,10 +559,14 @@ function ActionMemoryPreviewPanel({
|
|
|
509
559
|
detail: DreamActionRecord;
|
|
510
560
|
memoryStoreName: string;
|
|
511
561
|
}) {
|
|
562
|
+
const isExtract =
|
|
563
|
+
detail.action === "EMIT_SKILL" || detail.action === "EMIT_PROFILE";
|
|
564
|
+
|
|
512
565
|
const wantsBefore =
|
|
513
|
-
|
|
514
|
-
detail.action === "
|
|
515
|
-
|
|
566
|
+
!isExtract &&
|
|
567
|
+
(detail.action === "UPDATE" ||
|
|
568
|
+
detail.action === "DELETE" ||
|
|
569
|
+
detail.action === "MERGE");
|
|
516
570
|
|
|
517
571
|
const beforeQuery = useMemoryUnit(
|
|
518
572
|
memoryStoreName,
|
|
@@ -523,6 +577,46 @@ function ActionMemoryPreviewPanel({
|
|
|
523
577
|
|
|
524
578
|
const newText = detail.newMemory?.text;
|
|
525
579
|
|
|
580
|
+
if (isExtract) {
|
|
581
|
+
const extract = detail.newExtract;
|
|
582
|
+
if (!extract) {
|
|
583
|
+
return (
|
|
584
|
+
<div className="rounded border border-dashed border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.2)] p-3 text-xs italic text-muted-foreground">
|
|
585
|
+
无抽取结果
|
|
586
|
+
</div>
|
|
587
|
+
);
|
|
588
|
+
}
|
|
589
|
+
const isSkill = detail.action === "EMIT_SKILL" || extract.kind === "skill";
|
|
590
|
+
return (
|
|
591
|
+
<div className="space-y-2 rounded border border-[hsl(var(--border-light))] p-3">
|
|
592
|
+
<div className="flex items-center gap-2">
|
|
593
|
+
<span
|
|
594
|
+
className={cn(
|
|
595
|
+
"rounded px-1.5 py-px text-[10px] font-semibold",
|
|
596
|
+
isSkill
|
|
597
|
+
? "bg-success-soft text-success"
|
|
598
|
+
: "bg-[hsl(var(--primary-soft))] text-[hsl(var(--primary))]",
|
|
599
|
+
)}
|
|
600
|
+
>
|
|
601
|
+
{isSkill ? "技能" : "画像"}
|
|
602
|
+
</span>
|
|
603
|
+
<span className="text-sm font-medium">{extract.name}</span>
|
|
604
|
+
</div>
|
|
605
|
+
{extract.description && (
|
|
606
|
+
<p className="text-xs text-muted-foreground">{extract.description}</p>
|
|
607
|
+
)}
|
|
608
|
+
{extract.instructions && (
|
|
609
|
+
<div className="space-y-1">
|
|
610
|
+
<p className="text-xs text-muted-foreground">指令内容</p>
|
|
611
|
+
<pre className="max-h-48 overflow-auto whitespace-pre-wrap rounded bg-[hsl(var(--muted)/0.4)] p-2 text-xs">
|
|
612
|
+
{extract.instructions}
|
|
613
|
+
</pre>
|
|
614
|
+
</div>
|
|
615
|
+
)}
|
|
616
|
+
</div>
|
|
617
|
+
);
|
|
618
|
+
}
|
|
619
|
+
|
|
526
620
|
if (detail.action === "NOOP") {
|
|
527
621
|
return (
|
|
528
622
|
<div className="rounded border border-dashed border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.2)] p-3 text-xs italic text-muted-foreground">
|
package/dist/dashboard-runtime/dashboard/src/components/memory/memory-dream-apply-confirm-dialog.tsx
CHANGED
|
@@ -29,6 +29,8 @@ const ACTION_CLASS: Record<DreamActionType, string> = {
|
|
|
29
29
|
DELETE: "bg-danger-soft text-danger",
|
|
30
30
|
MERGE: "bg-[hsl(var(--primary-soft))] text-[hsl(var(--primary))]",
|
|
31
31
|
NOOP: "bg-muted text-muted-foreground",
|
|
32
|
+
EMIT_SKILL: "bg-success-soft text-success",
|
|
33
|
+
EMIT_PROFILE: "bg-[hsl(var(--primary-soft))] text-[hsl(var(--primary))]",
|
|
32
34
|
};
|
|
33
35
|
|
|
34
36
|
const PREVIEW_LIMIT = 6;
|