dsh-daoing-memory 0.1.0 → 0.1.2
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/README.md +2 -2
- package/README.zh-CN.md +2 -2
- package/lib/client.js +526 -560
- package/lib/client.js.map +1 -1
- package/lib/types/client/MemoryFooterAction.d.ts +22 -0
- package/lib/types/client/MemoryFooterAction.d.ts.map +1 -0
- package/lib/types/client/MemoryFooterAction.js +15 -0
- package/lib/types/client/MemoryFooterAction.js.map +1 -0
- package/lib/types/client/Workbench.d.ts +6 -4
- package/lib/types/client/Workbench.d.ts.map +1 -1
- package/lib/types/client/Workbench.js +8 -5
- package/lib/types/client/Workbench.js.map +1 -1
- package/lib/types/client/index.d.ts +4 -4
- package/lib/types/client/index.js +9 -9
- package/lib/types/client/index.js.map +1 -1
- package/lib/types/client/navStore.d.ts +1 -1
- package/lib/types/client/navStore.js +1 -1
- package/package.json +1 -1
- package/lib/types/client/MemoryNavSection.d.ts +0 -20
- package/lib/types/client/MemoryNavSection.d.ts.map +0 -1
- package/lib/types/client/MemoryNavSection.js +0 -23
- package/lib/types/client/MemoryNavSection.js.map +0 -1
package/lib/client.js
CHANGED
|
@@ -4,10 +4,10 @@ window.__ModuleLoader__.load({
|
|
|
4
4
|
var module = { exports: {} };
|
|
5
5
|
var exports = module.exports;
|
|
6
6
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
7
|
-
let react_jsx_runtime = require("react/jsx-runtime");
|
|
8
7
|
let _deepseek_ai_dsh_client_ui_primitives = require("@deepseek-ai/dsh-client-ui-primitives");
|
|
9
|
-
let
|
|
8
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
10
9
|
let react = require("react");
|
|
10
|
+
let _deepseek_ai_dsh_client_runtime_client = require("@deepseek-ai/dsh-client-runtime/client");
|
|
11
11
|
//#region ../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/core.js
|
|
12
12
|
var _a$1;
|
|
13
13
|
function $constructor(name, initializer, params) {
|
|
@@ -7724,6 +7724,47 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
7724
7724
|
]
|
|
7725
7725
|
};
|
|
7726
7726
|
//#endregion
|
|
7727
|
+
//#region \0dsh-css:D:\DSH 插件项目\项目源码\deepseek-harness-master\packages\memory\dsh-daoing-memory\src\client\MemoryFooterAction.module.css.mjs
|
|
7728
|
+
const css$1 = ".O-5X5a_action{cursor:pointer;height:36px;color:var(--dsw-alias-label-secondary);background:0 0;border:none;border-radius:8px;flex:none;justify-content:center;align-items:center;gap:6px;padding:0 10px;display:flex}.O-5X5a_action:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.O-5X5a_label{white-space:nowrap;font-size:14px;line-height:20px}";
|
|
7729
|
+
const tagId$1 = "dsh-daoing-memory/MemoryFooterAction.module.css";
|
|
7730
|
+
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$1) + "]") === null) {
|
|
7731
|
+
const tag = document.createElement("style");
|
|
7732
|
+
tag.dataset.plugin = "dsh-daoing-memory";
|
|
7733
|
+
tag.dataset.pluginCss = tagId$1;
|
|
7734
|
+
tag.textContent = css$1;
|
|
7735
|
+
document.head.appendChild(tag);
|
|
7736
|
+
}
|
|
7737
|
+
var MemoryFooterAction_module_css_default = {
|
|
7738
|
+
"label": "O-5X5a_label",
|
|
7739
|
+
"action": "O-5X5a_action"
|
|
7740
|
+
};
|
|
7741
|
+
//#endregion
|
|
7742
|
+
//#region src/client/MemoryFooterAction.tsx
|
|
7743
|
+
/**
|
|
7744
|
+
* Render the footer entry. The wide variant shows an icon + label button;
|
|
7745
|
+
* the rail variant is a single icon. Clicking selects the first monitoring
|
|
7746
|
+
* page, which opens the workbench overlay.
|
|
7747
|
+
* @param props - composed slot props.
|
|
7748
|
+
* @returns the action button.
|
|
7749
|
+
*/
|
|
7750
|
+
function MemoryFooterAction(props) {
|
|
7751
|
+
const { wide } = props;
|
|
7752
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
|
|
7753
|
+
type: "button",
|
|
7754
|
+
className: MemoryFooterAction_module_css_default.action,
|
|
7755
|
+
"data-memory-nav": true,
|
|
7756
|
+
"aria-label": "记忆监控",
|
|
7757
|
+
title: "记忆监控",
|
|
7758
|
+
onClick: () => {
|
|
7759
|
+
props.actions.select("experience");
|
|
7760
|
+
},
|
|
7761
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconDataOutline16, { size: 18 }), wide && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
7762
|
+
className: MemoryFooterAction_module_css_default.label,
|
|
7763
|
+
children: "记忆"
|
|
7764
|
+
})]
|
|
7765
|
+
});
|
|
7766
|
+
}
|
|
7767
|
+
//#endregion
|
|
7727
7768
|
//#region ../../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs
|
|
7728
7769
|
function r(e) {
|
|
7729
7770
|
var t, f, n = "";
|
|
@@ -7739,10 +7780,50 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
7739
7780
|
return n;
|
|
7740
7781
|
}
|
|
7741
7782
|
//#endregion
|
|
7742
|
-
//#region
|
|
7783
|
+
//#region src/client/actions.ts
|
|
7784
|
+
/** Curry the session id away so the pages keep calling the bound face. */
|
|
7785
|
+
function bindMemoryActions(remote, session) {
|
|
7786
|
+
return {
|
|
7787
|
+
workbenchInfo: () => remote.workbenchInfo(session),
|
|
7788
|
+
stats: () => remote.stats(session),
|
|
7789
|
+
listExperiences: (filter) => remote.listExperiences(session, filter),
|
|
7790
|
+
family: (id) => remote.family(session, id),
|
|
7791
|
+
listDiary: (limit, offset, onlyUnextracted) => remote.listDiary(session, limit, offset, onlyUnextracted),
|
|
7792
|
+
getDiaryByIds: (ids) => remote.getDiaryByIds(session, ids),
|
|
7793
|
+
listFacts: (category, includeHistory, limit, offset) => remote.listFacts(session, category, includeHistory, limit, offset),
|
|
7794
|
+
listFactsCount: (category, includeHistory) => remote.listFactsCount(session, category, includeHistory),
|
|
7795
|
+
listConcerns: (kind, status, limit, offset) => remote.listConcerns(session, kind, status, limit, offset),
|
|
7796
|
+
listConcernsCount: (kind, status) => remote.listConcernsCount(session, kind, status),
|
|
7797
|
+
extractionLog: (limit, offset) => remote.extractionLog(session, limit, offset),
|
|
7798
|
+
extractionLogCount: () => remote.extractionLogCount(session),
|
|
7799
|
+
consolidate: (request) => remote.consolidate(session, request),
|
|
7800
|
+
consolidationDue: () => remote.consolidationDue(session),
|
|
7801
|
+
ledgerQuery: (request) => remote.ledgerQuery(session, request),
|
|
7802
|
+
ledgerQueryCount: (request) => remote.ledgerQueryCount(session, request),
|
|
7803
|
+
verifyLedger: () => remote.verifyLedger(session),
|
|
7804
|
+
exportLibrary: () => remote.exportLibrary(session),
|
|
7805
|
+
humanPin: (request) => remote.humanPin(session, request),
|
|
7806
|
+
humanDeleteExperience: (request) => remote.humanDeleteExperience(session, request),
|
|
7807
|
+
humanEditExperience: (request) => remote.humanEditExperience(session, request),
|
|
7808
|
+
humanAddExperience: (request) => remote.humanAddExperience(session, request),
|
|
7809
|
+
humanPromote: (id, reason) => remote.humanPromote(session, id, reason),
|
|
7810
|
+
humanRollback: (request) => remote.humanRollback(session, request),
|
|
7811
|
+
humanAddFact: (request) => remote.humanAddFact(session, request),
|
|
7812
|
+
humanEditFact: (request) => remote.humanEditFact(session, request),
|
|
7813
|
+
humanDeleteFact: (request) => remote.humanDeleteFact(session, request),
|
|
7814
|
+
humanConfirmFact: (request) => remote.humanConfirmFact(session, request),
|
|
7815
|
+
humanAckDiary: (request) => remote.humanAckDiary(session, request),
|
|
7816
|
+
humanSetConcernStatus: (request) => remote.humanSetConcernStatus(session, request),
|
|
7817
|
+
humanDeleteConcern: (request) => remote.humanDeleteConcern(session, request),
|
|
7818
|
+
humanReleaseCold: (request) => remote.humanReleaseCold(session, request),
|
|
7819
|
+
ingest: (request) => remote.ingest(session, request)
|
|
7820
|
+
};
|
|
7821
|
+
}
|
|
7822
|
+
//#endregion
|
|
7823
|
+
//#region src/client/navStore.ts
|
|
7743
7824
|
/**
|
|
7744
7825
|
* Memory monitoring nav store: shared viewing state between the left-sidebar
|
|
7745
|
-
*
|
|
7826
|
+
* footer entry (sidebar.footer.action) and the right-pane takeover (shell.overlay).
|
|
7746
7827
|
* One factory handle is created in apply and passed to both registrations so
|
|
7747
7828
|
* selecting a menu in the sidebar and rendering the matching page read the
|
|
7748
7829
|
* same state. Module level exports the factory only — a module-level handle
|
|
@@ -7794,136 +7875,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
7794
7875
|
});
|
|
7795
7876
|
}
|
|
7796
7877
|
//#endregion
|
|
7797
|
-
//#region \0dsh-css:D:\
|
|
7798
|
-
const css
|
|
7799
|
-
const tagId$1 = "dsh-daoing-memory/MemoryNavSection.module.css";
|
|
7800
|
-
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$1) + "]") === null) {
|
|
7801
|
-
const tag = document.createElement("style");
|
|
7802
|
-
tag.dataset.plugin = "dsh-daoing-memory";
|
|
7803
|
-
tag.dataset.pluginCss = tagId$1;
|
|
7804
|
-
tag.textContent = css$1;
|
|
7805
|
-
document.head.appendChild(tag);
|
|
7806
|
-
}
|
|
7807
|
-
var MemoryNavSection_module_css_default = {
|
|
7808
|
-
"rail": "SsVA3a_rail",
|
|
7809
|
-
"header": "SsVA3a_header",
|
|
7810
|
-
"chevron": "SsVA3a_chevron",
|
|
7811
|
-
"items": "SsVA3a_items",
|
|
7812
|
-
"headerLabel": "SsVA3a_headerLabel",
|
|
7813
|
-
"group": "SsVA3a_group",
|
|
7814
|
-
"chevronCollapsed": "SsVA3a_chevronCollapsed",
|
|
7815
|
-
"item": "SsVA3a_item",
|
|
7816
|
-
"itemActive": "SsVA3a_itemActive"
|
|
7817
|
-
};
|
|
7818
|
-
//#endregion
|
|
7819
|
-
//#region lib/types/client/MemoryNavSection.js
|
|
7820
|
-
/**
|
|
7821
|
-
* Render the nav group. The rail variant is a single icon: it selects the
|
|
7822
|
-
* first page and expands the sidebar so the group becomes visible.
|
|
7823
|
-
* @param props - composed slot props.
|
|
7824
|
-
* @returns the group element tree.
|
|
7825
|
-
*/
|
|
7826
|
-
function MemoryNavSection(props) {
|
|
7827
|
-
const { wide, expandSidebar } = props;
|
|
7828
|
-
const nav = props.useStore((s) => s);
|
|
7829
|
-
if (!wide) return (0, react_jsx_runtime.jsx)("button", {
|
|
7830
|
-
type: "button",
|
|
7831
|
-
className: MemoryNavSection_module_css_default.rail,
|
|
7832
|
-
"aria-label": "记忆监控",
|
|
7833
|
-
"data-memory-nav": true,
|
|
7834
|
-
onClick: () => {
|
|
7835
|
-
props.actions.select("experience");
|
|
7836
|
-
expandSidebar();
|
|
7837
|
-
},
|
|
7838
|
-
children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconDataOutline16, { size: 18 })
|
|
7839
|
-
});
|
|
7840
|
-
return (0, react_jsx_runtime.jsxs)("nav", {
|
|
7841
|
-
className: MemoryNavSection_module_css_default.group,
|
|
7842
|
-
"aria-label": "记忆监控",
|
|
7843
|
-
"data-memory-nav": true,
|
|
7844
|
-
children: [(0, react_jsx_runtime.jsxs)("button", {
|
|
7845
|
-
type: "button",
|
|
7846
|
-
className: MemoryNavSection_module_css_default.header,
|
|
7847
|
-
"aria-expanded": !nav.collapsed,
|
|
7848
|
-
onClick: () => {
|
|
7849
|
-
props.actions.toggleCollapsed();
|
|
7850
|
-
},
|
|
7851
|
-
children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronDownOutline14, {
|
|
7852
|
-
size: 14,
|
|
7853
|
-
className: clsx(MemoryNavSection_module_css_default.chevron, nav.collapsed && MemoryNavSection_module_css_default.chevronCollapsed)
|
|
7854
|
-
}), (0, react_jsx_runtime.jsx)("span", {
|
|
7855
|
-
className: MemoryNavSection_module_css_default.headerLabel,
|
|
7856
|
-
children: "记忆监控"
|
|
7857
|
-
})]
|
|
7858
|
-
}), !nav.collapsed && (0, react_jsx_runtime.jsx)("div", {
|
|
7859
|
-
className: MemoryNavSection_module_css_default.items,
|
|
7860
|
-
children: MEMORY_NAV_ITEMS.map((item) => (0, react_jsx_runtime.jsx)("button", {
|
|
7861
|
-
type: "button",
|
|
7862
|
-
className: clsx(MemoryNavSection_module_css_default.item, nav.page === item.key && MemoryNavSection_module_css_default.itemActive),
|
|
7863
|
-
"aria-current": nav.page === item.key ? "page" : void 0,
|
|
7864
|
-
onClick: () => {
|
|
7865
|
-
props.actions.select(item.key);
|
|
7866
|
-
},
|
|
7867
|
-
children: item.label
|
|
7868
|
-
}, item.key))
|
|
7869
|
-
})]
|
|
7870
|
-
});
|
|
7871
|
-
}
|
|
7872
|
-
//#endregion
|
|
7873
|
-
//#region lib/types/client/actions.js
|
|
7874
|
-
/**
|
|
7875
|
-
* The injected business face of the memory workbench entry: plain data
|
|
7876
|
-
* callbacks over the memory Remote namespace. Live framework data (sessions,
|
|
7877
|
-
* workspaces) arrives through the standard props shares instead.
|
|
7878
|
-
*
|
|
7879
|
-
* Two contracts live here. `MemoryWorkbenchActions` is the page-facing face:
|
|
7880
|
-
* every callback is already bound to the current session. `MemoryRemoteActions`
|
|
7881
|
-
* is the slot-injected face: the generated memory Remote requires the session
|
|
7882
|
-
* id as the first wire argument (the host resolves it back to the Agent), so
|
|
7883
|
-
* each callback takes it explicitly and `bindMemoryActions` curries it away
|
|
7884
|
-
* once the workbench knows the current session.
|
|
7885
|
-
*/
|
|
7886
|
-
/** Curry the session id away so the pages keep calling the bound face. */
|
|
7887
|
-
function bindMemoryActions(remote, session) {
|
|
7888
|
-
return {
|
|
7889
|
-
workbenchInfo: () => remote.workbenchInfo(session),
|
|
7890
|
-
stats: () => remote.stats(session),
|
|
7891
|
-
listExperiences: (filter) => remote.listExperiences(session, filter),
|
|
7892
|
-
family: (id) => remote.family(session, id),
|
|
7893
|
-
listDiary: (limit, offset, onlyUnextracted) => remote.listDiary(session, limit, offset, onlyUnextracted),
|
|
7894
|
-
getDiaryByIds: (ids) => remote.getDiaryByIds(session, ids),
|
|
7895
|
-
listFacts: (category, includeHistory, limit, offset) => remote.listFacts(session, category, includeHistory, limit, offset),
|
|
7896
|
-
listFactsCount: (category, includeHistory) => remote.listFactsCount(session, category, includeHistory),
|
|
7897
|
-
listConcerns: (kind, status, limit, offset) => remote.listConcerns(session, kind, status, limit, offset),
|
|
7898
|
-
listConcernsCount: (kind, status) => remote.listConcernsCount(session, kind, status),
|
|
7899
|
-
extractionLog: (limit, offset) => remote.extractionLog(session, limit, offset),
|
|
7900
|
-
extractionLogCount: () => remote.extractionLogCount(session),
|
|
7901
|
-
consolidate: (request) => remote.consolidate(session, request),
|
|
7902
|
-
consolidationDue: () => remote.consolidationDue(session),
|
|
7903
|
-
ledgerQuery: (request) => remote.ledgerQuery(session, request),
|
|
7904
|
-
ledgerQueryCount: (request) => remote.ledgerQueryCount(session, request),
|
|
7905
|
-
verifyLedger: () => remote.verifyLedger(session),
|
|
7906
|
-
exportLibrary: () => remote.exportLibrary(session),
|
|
7907
|
-
humanPin: (request) => remote.humanPin(session, request),
|
|
7908
|
-
humanDeleteExperience: (request) => remote.humanDeleteExperience(session, request),
|
|
7909
|
-
humanEditExperience: (request) => remote.humanEditExperience(session, request),
|
|
7910
|
-
humanAddExperience: (request) => remote.humanAddExperience(session, request),
|
|
7911
|
-
humanPromote: (id, reason) => remote.humanPromote(session, id, reason),
|
|
7912
|
-
humanRollback: (request) => remote.humanRollback(session, request),
|
|
7913
|
-
humanAddFact: (request) => remote.humanAddFact(session, request),
|
|
7914
|
-
humanEditFact: (request) => remote.humanEditFact(session, request),
|
|
7915
|
-
humanDeleteFact: (request) => remote.humanDeleteFact(session, request),
|
|
7916
|
-
humanConfirmFact: (request) => remote.humanConfirmFact(session, request),
|
|
7917
|
-
humanAckDiary: (request) => remote.humanAckDiary(session, request),
|
|
7918
|
-
humanSetConcernStatus: (request) => remote.humanSetConcernStatus(session, request),
|
|
7919
|
-
humanDeleteConcern: (request) => remote.humanDeleteConcern(session, request),
|
|
7920
|
-
humanReleaseCold: (request) => remote.humanReleaseCold(session, request),
|
|
7921
|
-
ingest: (request) => remote.ingest(session, request)
|
|
7922
|
-
};
|
|
7923
|
-
}
|
|
7924
|
-
//#endregion
|
|
7925
|
-
//#region \0dsh-css:D:\dsh-arena\dsh-source-code\packages\memory\memory\src\client\Workbench.module.css.mjs
|
|
7926
|
-
const css = ".UvFuaW_panel{background:var(--dsw-alias-bg-base);border-left:1px solid var(--dsw-alias-border-l2);flex-direction:column;display:flex;position:absolute;top:0;bottom:0;right:0;overflow:hidden}.UvFuaW_header{border-bottom:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-module-platform);flex-wrap:wrap;align-items:center;gap:16px;padding:10px 16px;display:flex}.UvFuaW_titleBlock{flex-direction:column;gap:2px;min-width:180px;display:flex}.UvFuaW_title{color:var(--dsw-alias-label-primary);font-size:15px;font-weight:600}.UvFuaW_subtitle{color:var(--dsw-alias-label-caption);font-size:11px}.UvFuaW_statline{color:var(--dsw-alias-label-tertiary);margin-left:auto;font-size:11px}.UvFuaW_body{flex:1;padding:12px 16px 24px;overflow:auto}.UvFuaW_page{flex-direction:column;gap:10px;display:flex}.UvFuaW_toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.UvFuaW_tabs{border-bottom:1px solid var(--dsw-alias-border-l2);flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:12px;padding-bottom:8px;display:flex}.UvFuaW_tab{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-module-platform);color:var(--dsw-alias-label-secondary);cursor:pointer;white-space:nowrap;border-radius:999px;padding:6px 12px;font-size:12px}.UvFuaW_tab:hover{background:var(--dsw-alias-interactive-bg-hover)}.UvFuaW_tabActive{background:var(--dsw-alias-interactive-bg-active,var(--dsw-alias-bg-module-platform));color:var(--dsw-alias-label-primary);border-color:var(--dsw-alias-border-l3,var(--dsw-alias-border-l2));font-weight:600}.UvFuaW_field{color:var(--dsw-alias-label-caption);flex-direction:column;gap:3px;font-size:11px;display:flex}.UvFuaW_field input,.UvFuaW_field select,.UvFuaW_field textarea{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base);color:var(--dsw-alias-label-primary);border-radius:6px;min-width:140px;padding:5px 8px;font-size:12px}.UvFuaW_field textarea{resize:vertical}.UvFuaW_check{color:var(--dsw-alias-label-secondary);align-items:center;gap:5px;font-size:12px;display:flex}.UvFuaW_btn{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-module-platform);color:var(--dsw-alias-label-primary);cursor:pointer;white-space:nowrap;border-radius:6px;padding:5px 10px;font-size:12px}.UvFuaW_btn:hover{background:var(--dsw-alias-interactive-bg-hover)}.UvFuaW_btn:disabled{opacity:.5;cursor:default}.UvFuaW_btnDanger{color:var(--dsw-alias-state-error-primary)}.UvFuaW_btnDanger:hover{background:var(--dsw-alias-interactive-bg-hover-danger)}.UvFuaW_error{color:var(--dsw-alias-state-error-primary);font-size:12px}.UvFuaW_okLine{color:var(--dsw-alias-state-success-primary);font-size:12px}.UvFuaW_warnLine{color:var(--dsw-alias-state-warn-label);margin-bottom:6px;font-size:12px}.UvFuaW_empty{color:var(--dsw-alias-label-caption);padding:14px 4px;font-size:12px}.UvFuaW_list{flex-direction:column;gap:8px;display:flex}.UvFuaW_card{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-module-platform);border-radius:8px;padding:8px 12px}.UvFuaW_cardHead{cursor:pointer;flex-wrap:wrap;align-items:center;gap:8px;display:flex}.UvFuaW_cardTitle{color:var(--dsw-alias-label-primary);font-size:13px;font-weight:500}.UvFuaW_cardMeta{color:var(--dsw-alias-label-caption);font-size:11px}.UvFuaW_cardSub{align-items:center;gap:12px;margin-top:4px;display:flex}.UvFuaW_concernBg{color:var(--dsw-alias-label-caption);margin-top:3px;font-size:11px;line-height:1.5}.UvFuaW_cardDetail{border-top:1px solid var(--dsw-alias-border-l2);flex-direction:column;gap:5px;margin-top:8px;padding-top:8px;display:flex}.UvFuaW_detailRow{color:var(--dsw-alias-label-secondary);font-size:12px}.UvFuaW_detailLabel{min-width:64px;color:var(--dsw-alias-label-caption);display:inline-block}.UvFuaW_actions{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.UvFuaW_historyTitle{color:var(--dsw-alias-label-secondary);margin-top:10px;font-size:12px;font-weight:600}.UvFuaW_table{border-collapse:collapse;width:100%;color:var(--dsw-alias-label-secondary);font-size:12px}.UvFuaW_table th{text-align:left;color:var(--dsw-alias-label-caption);border-bottom:1px solid var(--dsw-alias-border-l2);padding:5px 8px;font-weight:500}.UvFuaW_table td{border-bottom:1px solid var(--dsw-alias-border-l2);vertical-align:top;padding:5px 8px}.UvFuaW_valueCell{text-overflow:ellipsis;white-space:nowrap;max-width:320px;overflow:hidden}.UvFuaW_payloadFull{white-space:pre-wrap;word-break:break-all;max-width:480px}.UvFuaW_payloadToggle{cursor:pointer;color:var(--ds-color-accent,#4c8dff);user-select:none;margin-left:6px;font-size:12px}.UvFuaW_payloadToggle:hover{text-decoration:underline}.UvFuaW_cellActions{flex-wrap:wrap;gap:4px;display:flex}.UvFuaW_badge{white-space:nowrap;border-radius:9px;padding:1px 7px;font-size:11px}.UvFuaW_badgePositive{background:var(--dsw-alias-state-success-tertiary);color:var(--dsw-alias-state-success-primary)}.UvFuaW_badgeNegative{background:var(--dsw-alias-state-warn-tertiary);color:var(--dsw-alias-state-warn-label)}.UvFuaW_badgePinned{background:var(--dsw-alias-state-business-tertiary);color:var(--dsw-alias-state-business-primary)}.UvFuaW_badgeConflict{background:var(--dsw-alias-state-warn-tertiary);color:var(--dsw-alias-state-warn-label)}.UvFuaW_statusLive{background:var(--dsw-alias-state-success-tertiary);color:var(--dsw-alias-state-success-primary)}.UvFuaW_statusCandidate{background:var(--dsw-alias-interactive-bg-active);color:var(--dsw-alias-label-secondary)}.UvFuaW_statusChallenged{background:var(--dsw-alias-interactive-bg-hover-danger);color:var(--dsw-alias-state-error-primary)}.UvFuaW_statusOther{background:var(--dsw-alias-bg-skeleton);color:var(--dsw-alias-label-caption)}.UvFuaW_trust{color:var(--dsw-alias-label-tertiary);font-size:11px}.UvFuaW_columns{grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start;gap:16px;display:grid}.UvFuaW_column{flex-direction:column;gap:8px;min-width:0;display:flex}.UvFuaW_sectionTitle{color:var(--dsw-alias-label-primary);margin-top:6px;font-size:13px;font-weight:600}.UvFuaW_form{border:1px solid var(--dsw-alias-border-l2);border-radius:8px;flex-direction:column;gap:8px;padding:12px;display:flex}.UvFuaW_form .UvFuaW_btn{align-self:flex-start}.UvFuaW_rules{color:var(--dsw-alias-label-secondary);flex-direction:column;gap:4px;margin:0;padding-left:18px;font-size:12px;display:flex}";
|
|
7878
|
+
//#region \0dsh-css:D:\DSH 插件项目\项目源码\deepseek-harness-master\packages\memory\dsh-daoing-memory\src\client\Workbench.module.css.mjs
|
|
7879
|
+
const css = ".KAfEAG_panel{background:var(--dsw-alias-bg-base);border-left:1px solid var(--dsw-alias-border-l2);flex-direction:column;display:flex;position:absolute;top:0;bottom:0;right:0;overflow:hidden}.KAfEAG_header{border-bottom:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-module-platform);flex-wrap:wrap;align-items:center;gap:16px;padding:10px 16px;display:flex}.KAfEAG_titleBlock{flex-direction:column;gap:2px;min-width:180px;display:flex}.KAfEAG_title{color:var(--dsw-alias-label-primary);font-size:15px;font-weight:600}.KAfEAG_subtitle{color:var(--dsw-alias-label-caption);font-size:11px}.KAfEAG_statline{color:var(--dsw-alias-label-tertiary);margin-left:auto;font-size:11px}.KAfEAG_body{flex:1;padding:12px 16px 24px;overflow:auto}.KAfEAG_workbenchTabs{border-bottom:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-module-platform);align-items:center;gap:2px;padding:0 16px;display:flex}.KAfEAG_workbenchTab{color:var(--dsw-alias-label-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:10px 14px;font-size:13px;line-height:20px;position:relative}.KAfEAG_workbenchTab:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-hover)}.KAfEAG_workbenchTabActive{color:var(--dsw-alias-label-primary);font-weight:600}.KAfEAG_workbenchTabActive:after{content:\"\";background:var(--ds-color-accent,#4c8dff);border-radius:2px 2px 0 0;height:2px;position:absolute;bottom:-1px;left:14px;right:14px}.KAfEAG_page{flex-direction:column;gap:10px;display:flex}.KAfEAG_toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.KAfEAG_tabs{border-bottom:1px solid var(--dsw-alias-border-l2);flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:12px;padding-bottom:8px;display:flex}.KAfEAG_tab{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-module-platform);color:var(--dsw-alias-label-secondary);cursor:pointer;white-space:nowrap;border-radius:999px;padding:6px 12px;font-size:12px}.KAfEAG_tab:hover{background:var(--dsw-alias-interactive-bg-hover)}.KAfEAG_tabActive{background:var(--dsw-alias-interactive-bg-active,var(--dsw-alias-bg-module-platform));color:var(--dsw-alias-label-primary);border-color:var(--dsw-alias-border-l3,var(--dsw-alias-border-l2));font-weight:600}.KAfEAG_field{color:var(--dsw-alias-label-caption);flex-direction:column;gap:3px;font-size:11px;display:flex}.KAfEAG_field input,.KAfEAG_field select,.KAfEAG_field textarea{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base);color:var(--dsw-alias-label-primary);border-radius:6px;min-width:140px;padding:5px 8px;font-size:12px}.KAfEAG_field textarea{resize:vertical}.KAfEAG_check{color:var(--dsw-alias-label-secondary);align-items:center;gap:5px;font-size:12px;display:flex}.KAfEAG_btn{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-module-platform);color:var(--dsw-alias-label-primary);cursor:pointer;white-space:nowrap;border-radius:6px;padding:5px 10px;font-size:12px}.KAfEAG_btn:hover{background:var(--dsw-alias-interactive-bg-hover)}.KAfEAG_btn:disabled{opacity:.5;cursor:default}.KAfEAG_btnDanger{color:var(--dsw-alias-state-error-primary)}.KAfEAG_btnDanger:hover{background:var(--dsw-alias-interactive-bg-hover-danger)}.KAfEAG_error{color:var(--dsw-alias-state-error-primary);font-size:12px}.KAfEAG_okLine{color:var(--dsw-alias-state-success-primary);font-size:12px}.KAfEAG_warnLine{color:var(--dsw-alias-state-warn-label);margin-bottom:6px;font-size:12px}.KAfEAG_empty{color:var(--dsw-alias-label-caption);padding:14px 4px;font-size:12px}.KAfEAG_list{flex-direction:column;gap:8px;display:flex}.KAfEAG_card{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-module-platform);border-radius:8px;padding:8px 12px}.KAfEAG_cardHead{cursor:pointer;flex-wrap:wrap;align-items:center;gap:8px;display:flex}.KAfEAG_cardTitle{color:var(--dsw-alias-label-primary);font-size:13px;font-weight:500}.KAfEAG_cardMeta{color:var(--dsw-alias-label-caption);font-size:11px}.KAfEAG_cardSub{align-items:center;gap:12px;margin-top:4px;display:flex}.KAfEAG_concernBg{color:var(--dsw-alias-label-caption);margin-top:3px;font-size:11px;line-height:1.5}.KAfEAG_cardDetail{border-top:1px solid var(--dsw-alias-border-l2);flex-direction:column;gap:5px;margin-top:8px;padding-top:8px;display:flex}.KAfEAG_detailRow{color:var(--dsw-alias-label-secondary);font-size:12px}.KAfEAG_detailLabel{min-width:64px;color:var(--dsw-alias-label-caption);display:inline-block}.KAfEAG_actions{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.KAfEAG_historyTitle{color:var(--dsw-alias-label-secondary);margin-top:10px;font-size:12px;font-weight:600}.KAfEAG_table{border-collapse:collapse;width:100%;color:var(--dsw-alias-label-secondary);font-size:12px}.KAfEAG_table th{text-align:left;color:var(--dsw-alias-label-caption);border-bottom:1px solid var(--dsw-alias-border-l2);padding:5px 8px;font-weight:500}.KAfEAG_table td{border-bottom:1px solid var(--dsw-alias-border-l2);vertical-align:top;padding:5px 8px}.KAfEAG_valueCell{text-overflow:ellipsis;white-space:nowrap;max-width:320px;overflow:hidden}.KAfEAG_payloadFull{white-space:pre-wrap;word-break:break-all;max-width:480px}.KAfEAG_payloadToggle{cursor:pointer;color:var(--ds-color-accent,#4c8dff);user-select:none;margin-left:6px;font-size:12px}.KAfEAG_payloadToggle:hover{text-decoration:underline}.KAfEAG_cellActions{flex-wrap:wrap;gap:4px;display:flex}.KAfEAG_badge{white-space:nowrap;border-radius:9px;padding:1px 7px;font-size:11px}.KAfEAG_badgePositive{background:var(--dsw-alias-state-success-tertiary);color:var(--dsw-alias-state-success-primary)}.KAfEAG_badgeNegative{background:var(--dsw-alias-state-warn-tertiary);color:var(--dsw-alias-state-warn-label)}.KAfEAG_badgePinned{background:var(--dsw-alias-state-business-tertiary);color:var(--dsw-alias-state-business-primary)}.KAfEAG_badgeConflict{background:var(--dsw-alias-state-warn-tertiary);color:var(--dsw-alias-state-warn-label)}.KAfEAG_statusLive{background:var(--dsw-alias-state-success-tertiary);color:var(--dsw-alias-state-success-primary)}.KAfEAG_statusCandidate{background:var(--dsw-alias-interactive-bg-active);color:var(--dsw-alias-label-secondary)}.KAfEAG_statusChallenged{background:var(--dsw-alias-interactive-bg-hover-danger);color:var(--dsw-alias-state-error-primary)}.KAfEAG_statusOther{background:var(--dsw-alias-bg-skeleton);color:var(--dsw-alias-label-caption)}.KAfEAG_trust{color:var(--dsw-alias-label-tertiary);font-size:11px}.KAfEAG_columns{grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start;gap:16px;display:grid}.KAfEAG_column{flex-direction:column;gap:8px;min-width:0;display:flex}.KAfEAG_sectionTitle{color:var(--dsw-alias-label-primary);margin-top:6px;font-size:13px;font-weight:600}.KAfEAG_form{border:1px solid var(--dsw-alias-border-l2);border-radius:8px;flex-direction:column;gap:8px;padding:12px;display:flex}.KAfEAG_form .KAfEAG_btn{align-self:flex-start}.KAfEAG_rules{color:var(--dsw-alias-label-secondary);flex-direction:column;gap:4px;margin:0;padding-left:18px;font-size:12px;display:flex}";
|
|
7927
7880
|
const tagId = "dsh-daoing-memory/Workbench.module.css";
|
|
7928
7881
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) {
|
|
7929
7882
|
const tag = document.createElement("style");
|
|
@@ -7933,61 +7886,64 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
7933
7886
|
document.head.appendChild(tag);
|
|
7934
7887
|
}
|
|
7935
7888
|
var Workbench_module_css_default = {
|
|
7936
|
-
"
|
|
7937
|
-
"
|
|
7938
|
-
"
|
|
7939
|
-
"
|
|
7940
|
-
"
|
|
7941
|
-
"
|
|
7942
|
-
"
|
|
7943
|
-
"
|
|
7944
|
-
"
|
|
7945
|
-
"
|
|
7946
|
-
"
|
|
7947
|
-
"
|
|
7948
|
-
"
|
|
7949
|
-
"
|
|
7950
|
-
"
|
|
7951
|
-
"
|
|
7952
|
-
"
|
|
7953
|
-
"
|
|
7954
|
-
"
|
|
7955
|
-
"
|
|
7956
|
-
"
|
|
7957
|
-
"
|
|
7958
|
-
"
|
|
7959
|
-
"
|
|
7960
|
-
"
|
|
7961
|
-
"
|
|
7962
|
-
"
|
|
7963
|
-
"
|
|
7964
|
-
"
|
|
7965
|
-
"
|
|
7966
|
-
"
|
|
7967
|
-
"
|
|
7968
|
-
"
|
|
7969
|
-
"
|
|
7970
|
-
"
|
|
7971
|
-
"
|
|
7972
|
-
"
|
|
7973
|
-
"
|
|
7974
|
-
"
|
|
7975
|
-
"
|
|
7976
|
-
"
|
|
7977
|
-
"
|
|
7978
|
-
"
|
|
7979
|
-
"
|
|
7980
|
-
"
|
|
7981
|
-
"
|
|
7982
|
-
"
|
|
7983
|
-
"
|
|
7984
|
-
"
|
|
7985
|
-
"
|
|
7986
|
-
"
|
|
7987
|
-
"
|
|
7889
|
+
"check": "KAfEAG_check",
|
|
7890
|
+
"body": "KAfEAG_body",
|
|
7891
|
+
"tab": "KAfEAG_tab",
|
|
7892
|
+
"cardHead": "KAfEAG_cardHead",
|
|
7893
|
+
"valueCell": "KAfEAG_valueCell",
|
|
7894
|
+
"workbenchTabs": "KAfEAG_workbenchTabs",
|
|
7895
|
+
"tabs": "KAfEAG_tabs",
|
|
7896
|
+
"card": "KAfEAG_card",
|
|
7897
|
+
"panel": "KAfEAG_panel",
|
|
7898
|
+
"cellActions": "KAfEAG_cellActions",
|
|
7899
|
+
"badge": "KAfEAG_badge",
|
|
7900
|
+
"statline": "KAfEAG_statline",
|
|
7901
|
+
"badgeNegative": "KAfEAG_badgeNegative",
|
|
7902
|
+
"btn": "KAfEAG_btn",
|
|
7903
|
+
"badgePinned": "KAfEAG_badgePinned",
|
|
7904
|
+
"columns": "KAfEAG_columns",
|
|
7905
|
+
"column": "KAfEAG_column",
|
|
7906
|
+
"form": "KAfEAG_form",
|
|
7907
|
+
"trust": "KAfEAG_trust",
|
|
7908
|
+
"table": "KAfEAG_table",
|
|
7909
|
+
"warnLine": "KAfEAG_warnLine",
|
|
7910
|
+
"sectionTitle": "KAfEAG_sectionTitle",
|
|
7911
|
+
"title": "KAfEAG_title",
|
|
7912
|
+
"payloadToggle": "KAfEAG_payloadToggle",
|
|
7913
|
+
"subtitle": "KAfEAG_subtitle",
|
|
7914
|
+
"cardSub": "KAfEAG_cardSub",
|
|
7915
|
+
"detailLabel": "KAfEAG_detailLabel",
|
|
7916
|
+
"workbenchTabActive": "KAfEAG_workbenchTabActive",
|
|
7917
|
+
"historyTitle": "KAfEAG_historyTitle",
|
|
7918
|
+
"statusLive": "KAfEAG_statusLive",
|
|
7919
|
+
"statusOther": "KAfEAG_statusOther",
|
|
7920
|
+
"rules": "KAfEAG_rules",
|
|
7921
|
+
"concernBg": "KAfEAG_concernBg",
|
|
7922
|
+
"page": "KAfEAG_page",
|
|
7923
|
+
"btnDanger": "KAfEAG_btnDanger",
|
|
7924
|
+
"error": "KAfEAG_error",
|
|
7925
|
+
"payloadFull": "KAfEAG_payloadFull",
|
|
7926
|
+
"okLine": "KAfEAG_okLine",
|
|
7927
|
+
"statusChallenged": "KAfEAG_statusChallenged",
|
|
7928
|
+
"detailRow": "KAfEAG_detailRow",
|
|
7929
|
+
"tabActive": "KAfEAG_tabActive",
|
|
7930
|
+
"field": "KAfEAG_field",
|
|
7931
|
+
"titleBlock": "KAfEAG_titleBlock",
|
|
7932
|
+
"empty": "KAfEAG_empty",
|
|
7933
|
+
"header": "KAfEAG_header",
|
|
7934
|
+
"list": "KAfEAG_list",
|
|
7935
|
+
"cardTitle": "KAfEAG_cardTitle",
|
|
7936
|
+
"cardMeta": "KAfEAG_cardMeta",
|
|
7937
|
+
"cardDetail": "KAfEAG_cardDetail",
|
|
7938
|
+
"statusCandidate": "KAfEAG_statusCandidate",
|
|
7939
|
+
"badgeConflict": "KAfEAG_badgeConflict",
|
|
7940
|
+
"badgePositive": "KAfEAG_badgePositive",
|
|
7941
|
+
"toolbar": "KAfEAG_toolbar",
|
|
7942
|
+
"workbenchTab": "KAfEAG_workbenchTab",
|
|
7943
|
+
"actions": "KAfEAG_actions"
|
|
7988
7944
|
};
|
|
7989
7945
|
//#endregion
|
|
7990
|
-
//#region
|
|
7946
|
+
//#region src/client/ExperiencePage.tsx
|
|
7991
7947
|
/**
|
|
7992
7948
|
* Experience library monitoring page: lifecycle counters, a filterable
|
|
7993
7949
|
* revision list with the Beta-posterior triple, expandable judgment context,
|
|
@@ -8017,7 +7973,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
8017
7973
|
/** Trust triple render: (置信度, 样本数, 最近验证时间). */
|
|
8018
7974
|
function TrustTriple({ e }) {
|
|
8019
7975
|
const last = e.lastVerifiedAt === void 0 ? "从未验证" : formatTs(e.lastVerifiedAt);
|
|
8020
|
-
return (0, react_jsx_runtime.jsxs)("span", {
|
|
7976
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
8021
7977
|
className: Workbench_module_css_default.trust,
|
|
8022
7978
|
title: `加权置信 ${e.weightedTrust.toFixed(3)}`,
|
|
8023
7979
|
children: [
|
|
@@ -8140,59 +8096,59 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
8140
8096
|
onChanged,
|
|
8141
8097
|
refresh
|
|
8142
8098
|
]);
|
|
8143
|
-
return (0, react_jsx_runtime.jsxs)("div", {
|
|
8099
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
8144
8100
|
className: Workbench_module_css_default.page,
|
|
8145
8101
|
children: [
|
|
8146
|
-
(0, react_jsx_runtime.jsx)("div", {
|
|
8102
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
8147
8103
|
className: Workbench_module_css_default.empty,
|
|
8148
8104
|
children: "经验库是「生·用·修」的载体:代理在复杂任务后提炼经验(生),相似任务前召回注入(用), 失败后隔离/修订/回滚(修)。每条经验带置信度·样本数·最近验证时间三元组。"
|
|
8149
8105
|
}),
|
|
8150
|
-
(0, react_jsx_runtime.jsxs)("div", {
|
|
8106
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
8151
8107
|
className: Workbench_module_css_default.toolbar,
|
|
8152
8108
|
children: [
|
|
8153
|
-
(0, react_jsx_runtime.jsxs)("label", {
|
|
8109
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
8154
8110
|
className: Workbench_module_css_default.field,
|
|
8155
|
-
children: [(0, react_jsx_runtime.jsx)("span", { children: "状态" }), (0, react_jsx_runtime.jsxs)("select", {
|
|
8111
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "状态" }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("select", {
|
|
8156
8112
|
value: statusFilter,
|
|
8157
8113
|
onChange: (e) => {
|
|
8158
8114
|
setStatusFilter(e.target.value);
|
|
8159
8115
|
},
|
|
8160
|
-
children: [(0, react_jsx_runtime.jsx)("option", {
|
|
8116
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
8161
8117
|
value: "",
|
|
8162
8118
|
children: "全部"
|
|
8163
|
-
}), Object.entries(STATUS_LABELS).map(([value, label]) => (0, react_jsx_runtime.jsx)("option", {
|
|
8119
|
+
}), Object.entries(STATUS_LABELS).map(([value, label]) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
8164
8120
|
value,
|
|
8165
8121
|
children: label
|
|
8166
8122
|
}, value))]
|
|
8167
8123
|
})]
|
|
8168
8124
|
}),
|
|
8169
|
-
(0, react_jsx_runtime.jsxs)("label", {
|
|
8125
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
8170
8126
|
className: Workbench_module_css_default.field,
|
|
8171
|
-
children: [(0, react_jsx_runtime.jsx)("span", { children: "类型" }), (0, react_jsx_runtime.jsxs)("select", {
|
|
8127
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "类型" }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("select", {
|
|
8172
8128
|
value: kindFilter,
|
|
8173
8129
|
onChange: (e) => {
|
|
8174
8130
|
setKindFilter(e.target.value);
|
|
8175
8131
|
},
|
|
8176
8132
|
children: [
|
|
8177
|
-
(0, react_jsx_runtime.jsx)("option", {
|
|
8133
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
8178
8134
|
value: "",
|
|
8179
8135
|
children: "全部"
|
|
8180
8136
|
}),
|
|
8181
|
-
(0, react_jsx_runtime.jsx)("option", {
|
|
8137
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
8182
8138
|
value: "positive",
|
|
8183
8139
|
children: "正经验"
|
|
8184
8140
|
}),
|
|
8185
|
-
(0, react_jsx_runtime.jsx)("option", {
|
|
8141
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
8186
8142
|
value: "negative",
|
|
8187
8143
|
children: "负经验"
|
|
8188
8144
|
})
|
|
8189
8145
|
]
|
|
8190
8146
|
})]
|
|
8191
8147
|
}),
|
|
8192
|
-
(0, react_jsx_runtime.jsxs)("label", {
|
|
8148
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
8193
8149
|
className: Workbench_module_css_default.field,
|
|
8194
8150
|
title: "任务族 = 一类相似任务的分组标签,同族经验共享召回与修订历史,如 windows-build",
|
|
8195
|
-
children: [(0, react_jsx_runtime.jsx)("span", { children: "任务族" }), (0, react_jsx_runtime.jsx)("input", {
|
|
8151
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "任务族" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
8196
8152
|
value: familyFilter,
|
|
8197
8153
|
placeholder: "一类任务的标签,如 windows-build",
|
|
8198
8154
|
onChange: (e) => {
|
|
@@ -8200,10 +8156,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
8200
8156
|
}
|
|
8201
8157
|
})]
|
|
8202
8158
|
}),
|
|
8203
|
-
(0, react_jsx_runtime.jsxs)("label", {
|
|
8159
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
8204
8160
|
className: Workbench_module_css_default.field,
|
|
8205
8161
|
title: "作用域 = 该经验适用的领域/上下文;留空召回所有作用域,填写则只召回同作用域或全局经验",
|
|
8206
|
-
children: [(0, react_jsx_runtime.jsx)("span", { children: "作用域" }), (0, react_jsx_runtime.jsx)("input", {
|
|
8162
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "作用域" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
8207
8163
|
value: contextFilter,
|
|
8208
8164
|
placeholder: "领域作用域,如 coding-windows-build",
|
|
8209
8165
|
onChange: (e) => {
|
|
@@ -8211,64 +8167,64 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
8211
8167
|
}
|
|
8212
8168
|
})]
|
|
8213
8169
|
}),
|
|
8214
|
-
(0, react_jsx_runtime.jsx)("button", {
|
|
8170
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
8215
8171
|
type: "button",
|
|
8216
8172
|
className: Workbench_module_css_default.btn,
|
|
8217
8173
|
onClick: refresh,
|
|
8218
8174
|
children: "刷新"
|
|
8219
8175
|
}),
|
|
8220
|
-
error !== null && (0, react_jsx_runtime.jsx)("span", {
|
|
8176
|
+
error !== null && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
8221
8177
|
className: Workbench_module_css_default.error,
|
|
8222
8178
|
children: error
|
|
8223
8179
|
})
|
|
8224
8180
|
]
|
|
8225
8181
|
}),
|
|
8226
|
-
items.length === 0 && (0, react_jsx_runtime.jsx)("div", {
|
|
8182
|
+
items.length === 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
8227
8183
|
className: Workbench_module_css_default.empty,
|
|
8228
8184
|
children: "没有符合条件的经验。经验由代理在复杂任务后提炼(memory_refine),或在「人工管理」中注入。"
|
|
8229
8185
|
}),
|
|
8230
|
-
(0, react_jsx_runtime.jsx)("div", {
|
|
8186
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
8231
8187
|
className: Workbench_module_css_default.list,
|
|
8232
8188
|
children: items.map((item) => {
|
|
8233
8189
|
const key = `${item.id}@${String(item.revision)}`;
|
|
8234
8190
|
const isOpen = expanded === key;
|
|
8235
|
-
return (0, react_jsx_runtime.jsxs)("div", {
|
|
8191
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
8236
8192
|
className: Workbench_module_css_default.card,
|
|
8237
8193
|
children: [
|
|
8238
|
-
(0, react_jsx_runtime.jsxs)("div", {
|
|
8194
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
8239
8195
|
className: Workbench_module_css_default.cardHead,
|
|
8240
8196
|
onClick: () => {
|
|
8241
8197
|
toggleExpand(item);
|
|
8242
8198
|
},
|
|
8243
8199
|
children: [
|
|
8244
|
-
(0, react_jsx_runtime.jsx)("span", {
|
|
8200
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
8245
8201
|
className: `${Workbench_module_css_default.badge} ${statusClass(item.status)}`,
|
|
8246
8202
|
children: STATUS_LABELS[item.status] ?? item.status
|
|
8247
8203
|
}),
|
|
8248
|
-
(0, react_jsx_runtime.jsx)("span", {
|
|
8204
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
8249
8205
|
className: `${Workbench_module_css_default.badge} ${item.kind === "negative" ? Workbench_module_css_default.badgeNegative : Workbench_module_css_default.badgePositive}`,
|
|
8250
8206
|
children: KIND_LABELS[item.kind] ?? item.kind
|
|
8251
8207
|
}),
|
|
8252
|
-
(0, react_jsx_runtime.jsx)("span", {
|
|
8208
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
8253
8209
|
className: Workbench_module_css_default.cardTitle,
|
|
8254
8210
|
title: item.gist,
|
|
8255
8211
|
children: item.gist
|
|
8256
8212
|
}),
|
|
8257
|
-
item.pinned && (0, react_jsx_runtime.jsx)("span", {
|
|
8213
|
+
item.pinned && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
8258
8214
|
className: `${Workbench_module_css_default.badge} ${Workbench_module_css_default.badgePinned}`,
|
|
8259
8215
|
children: "永久"
|
|
8260
8216
|
}),
|
|
8261
|
-
item.globalFlag && (0, react_jsx_runtime.jsx)("span", {
|
|
8217
|
+
item.globalFlag && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
8262
8218
|
className: `${Workbench_module_css_default.badge} ${Workbench_module_css_default.badgePinned}`,
|
|
8263
8219
|
title: "全局作用域:跨领域可召回",
|
|
8264
8220
|
children: "全局"
|
|
8265
8221
|
}),
|
|
8266
|
-
item.context !== "" && (0, react_jsx_runtime.jsx)("span", {
|
|
8222
|
+
item.context !== "" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
8267
8223
|
className: `${Workbench_module_css_default.badge} ${Workbench_module_css_default.badgePositive}`,
|
|
8268
8224
|
title: `作用域:${item.context}`,
|
|
8269
8225
|
children: item.context
|
|
8270
8226
|
}),
|
|
8271
|
-
(0, react_jsx_runtime.jsxs)("span", {
|
|
8227
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
8272
8228
|
className: Workbench_module_css_default.cardMeta,
|
|
8273
8229
|
children: [
|
|
8274
8230
|
"v",
|
|
@@ -8279,11 +8235,11 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
8279
8235
|
})
|
|
8280
8236
|
]
|
|
8281
8237
|
}),
|
|
8282
|
-
(0, react_jsx_runtime.jsxs)("div", {
|
|
8238
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
8283
8239
|
className: Workbench_module_css_default.cardSub,
|
|
8284
8240
|
children: [
|
|
8285
|
-
(0, react_jsx_runtime.jsx)(TrustTriple, { e: item }),
|
|
8286
|
-
(0, react_jsx_runtime.jsxs)("span", {
|
|
8241
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(TrustTriple, { e: item }),
|
|
8242
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
8287
8243
|
className: Workbench_module_css_default.cardMeta,
|
|
8288
8244
|
title: "验证通过次数 / 试探失败次数(人工转正与冷宫决策依据)",
|
|
8289
8245
|
children: [
|
|
@@ -8293,55 +8249,55 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
8293
8249
|
String(item.rejectCount)
|
|
8294
8250
|
]
|
|
8295
8251
|
}),
|
|
8296
|
-
(0, react_jsx_runtime.jsx)("span", {
|
|
8252
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
8297
8253
|
className: Workbench_module_css_default.cardMeta,
|
|
8298
8254
|
children: formatTs(item.updatedAt)
|
|
8299
8255
|
})
|
|
8300
8256
|
]
|
|
8301
8257
|
}),
|
|
8302
|
-
isOpen && (0, react_jsx_runtime.jsxs)("div", {
|
|
8258
|
+
isOpen && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
8303
8259
|
className: Workbench_module_css_default.cardDetail,
|
|
8304
8260
|
children: [
|
|
8305
|
-
item.challengeReason !== void 0 && (0, react_jsx_runtime.jsxs)("div", {
|
|
8261
|
+
item.challengeReason !== void 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
8306
8262
|
className: Workbench_module_css_default.warnLine,
|
|
8307
8263
|
children: ["隔离原因:", item.challengeReason]
|
|
8308
8264
|
}),
|
|
8309
|
-
item.kind === "negative" && item.failureReason !== void 0 && (0, react_jsx_runtime.jsxs)("div", {
|
|
8265
|
+
item.kind === "negative" && item.failureReason !== void 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
8310
8266
|
className: Workbench_module_css_default.warnLine,
|
|
8311
8267
|
children: ["确认的失败原因:", item.failureReason]
|
|
8312
8268
|
}),
|
|
8313
|
-
(0, react_jsx_runtime.jsxs)("div", {
|
|
8269
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
8314
8270
|
className: Workbench_module_css_default.detailRow,
|
|
8315
|
-
children: [(0, react_jsx_runtime.jsx)("span", {
|
|
8271
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
8316
8272
|
className: Workbench_module_css_default.detailLabel,
|
|
8317
8273
|
children: "情境"
|
|
8318
8274
|
}), item.situation.join(";")]
|
|
8319
8275
|
}),
|
|
8320
|
-
(0, react_jsx_runtime.jsxs)("div", {
|
|
8276
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
8321
8277
|
className: Workbench_module_css_default.detailRow,
|
|
8322
|
-
children: [(0, react_jsx_runtime.jsx)("span", {
|
|
8278
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
8323
8279
|
className: Workbench_module_css_default.detailLabel,
|
|
8324
8280
|
children: "路径"
|
|
8325
8281
|
}), item.path.map((step) => `${String(step.order)}. ${step.action}`).join(" → ")]
|
|
8326
8282
|
}),
|
|
8327
|
-
(0, react_jsx_runtime.jsxs)("div", {
|
|
8283
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
8328
8284
|
className: Workbench_module_css_default.detailRow,
|
|
8329
|
-
children: [(0, react_jsx_runtime.jsx)("span", {
|
|
8285
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
8330
8286
|
className: Workbench_module_css_default.detailLabel,
|
|
8331
8287
|
children: "判断背景"
|
|
8332
8288
|
}), item.reasoning]
|
|
8333
8289
|
}),
|
|
8334
|
-
item.limits.length > 0 && (0, react_jsx_runtime.jsxs)("div", {
|
|
8290
|
+
item.limits.length > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
8335
8291
|
className: Workbench_module_css_default.detailRow,
|
|
8336
|
-
children: [(0, react_jsx_runtime.jsx)("span", {
|
|
8292
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
8337
8293
|
className: Workbench_module_css_default.detailLabel,
|
|
8338
8294
|
children: "限制"
|
|
8339
8295
|
}), item.limits.join(";")]
|
|
8340
8296
|
}),
|
|
8341
|
-
(0, react_jsx_runtime.jsxs)("div", {
|
|
8297
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
8342
8298
|
className: Workbench_module_css_default.detailRow,
|
|
8343
8299
|
children: [
|
|
8344
|
-
(0, react_jsx_runtime.jsx)("span", {
|
|
8300
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
8345
8301
|
className: Workbench_module_css_default.detailLabel,
|
|
8346
8302
|
children: "经济账"
|
|
8347
8303
|
}),
|
|
@@ -8352,10 +8308,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
8352
8308
|
" tokens"
|
|
8353
8309
|
]
|
|
8354
8310
|
}),
|
|
8355
|
-
(0, react_jsx_runtime.jsxs)("div", {
|
|
8311
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
8356
8312
|
className: Workbench_module_css_default.actions,
|
|
8357
8313
|
children: [
|
|
8358
|
-
(0, react_jsx_runtime.jsx)("button", {
|
|
8314
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
8359
8315
|
type: "button",
|
|
8360
8316
|
className: Workbench_module_css_default.btn,
|
|
8361
8317
|
onClick: () => {
|
|
@@ -8363,7 +8319,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
8363
8319
|
},
|
|
8364
8320
|
children: item.pinned ? "取消永久标记" : "永久标记"
|
|
8365
8321
|
}),
|
|
8366
|
-
item.status === "candidate" && (0, react_jsx_runtime.jsx)("button", {
|
|
8322
|
+
item.status === "candidate" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
8367
8323
|
type: "button",
|
|
8368
8324
|
className: Workbench_module_css_default.btn,
|
|
8369
8325
|
onClick: () => {
|
|
@@ -8371,7 +8327,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
8371
8327
|
},
|
|
8372
8328
|
children: "人工转正"
|
|
8373
8329
|
}),
|
|
8374
|
-
item.status === "cold" && (0, react_jsx_runtime.jsx)("button", {
|
|
8330
|
+
item.status === "cold" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
8375
8331
|
type: "button",
|
|
8376
8332
|
className: Workbench_module_css_default.btn,
|
|
8377
8333
|
onClick: () => {
|
|
@@ -8379,7 +8335,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
8379
8335
|
},
|
|
8380
8336
|
children: "放回候选"
|
|
8381
8337
|
}),
|
|
8382
|
-
(0, react_jsx_runtime.jsx)("button", {
|
|
8338
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
8383
8339
|
type: "button",
|
|
8384
8340
|
className: `${Workbench_module_css_default.btn} ${Workbench_module_css_default.btnDanger}`,
|
|
8385
8341
|
onClick: () => {
|
|
@@ -8389,34 +8345,34 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
8389
8345
|
})
|
|
8390
8346
|
]
|
|
8391
8347
|
}),
|
|
8392
|
-
(0, react_jsx_runtime.jsx)("div", {
|
|
8348
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
8393
8349
|
className: Workbench_module_css_default.historyTitle,
|
|
8394
8350
|
children: "修订历史(superseded 为只读索引,可回滚)"
|
|
8395
8351
|
}),
|
|
8396
|
-
(0, react_jsx_runtime.jsxs)("table", {
|
|
8352
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("table", {
|
|
8397
8353
|
className: Workbench_module_css_default.table,
|
|
8398
|
-
children: [(0, react_jsx_runtime.jsx)("thead", { children: (0, react_jsx_runtime.jsxs)("tr", { children: [
|
|
8399
|
-
(0, react_jsx_runtime.jsx)("th", { children: "版本" }),
|
|
8400
|
-
(0, react_jsx_runtime.jsx)("th", { children: "状态" }),
|
|
8401
|
-
(0, react_jsx_runtime.jsx)("th", { children: "置信三元组" }),
|
|
8402
|
-
(0, react_jsx_runtime.jsx)("th", { children: "更新时间" }),
|
|
8403
|
-
(0, react_jsx_runtime.jsx)("th", { children: "操作" })
|
|
8404
|
-
] }) }), (0, react_jsx_runtime.jsx)("tbody", { children: history.map((rev) => (0, react_jsx_runtime.jsxs)("tr", { children: [
|
|
8405
|
-
(0, react_jsx_runtime.jsxs)("td", { children: [
|
|
8354
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("thead", { children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("tr", { children: [
|
|
8355
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("th", { children: "版本" }),
|
|
8356
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("th", { children: "状态" }),
|
|
8357
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("th", { children: "置信三元组" }),
|
|
8358
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("th", { children: "更新时间" }),
|
|
8359
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("th", { children: "操作" })
|
|
8360
|
+
] }) }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("tbody", { children: history.map((rev) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("tr", { children: [
|
|
8361
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("td", { children: [
|
|
8406
8362
|
"v",
|
|
8407
8363
|
String(rev.revision),
|
|
8408
8364
|
rev.parentRevision !== void 0 ? ` ← v${String(rev.parentRevision)}` : ""
|
|
8409
8365
|
] }),
|
|
8410
|
-
(0, react_jsx_runtime.jsx)("td", { children: STATUS_LABELS[rev.status] ?? rev.status }),
|
|
8411
|
-
(0, react_jsx_runtime.jsxs)("td", { children: [
|
|
8366
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("td", { children: STATUS_LABELS[rev.status] ?? rev.status }),
|
|
8367
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("td", { children: [
|
|
8412
8368
|
rev.trust.toFixed(2),
|
|
8413
8369
|
" · ",
|
|
8414
8370
|
String(rev.samples),
|
|
8415
8371
|
" · ",
|
|
8416
8372
|
rev.lastVerifiedAt === void 0 ? "未验证" : formatTs(rev.lastVerifiedAt)
|
|
8417
8373
|
] }),
|
|
8418
|
-
(0, react_jsx_runtime.jsx)("td", { children: formatTs(rev.updatedAt) }),
|
|
8419
|
-
(0, react_jsx_runtime.jsx)("td", { children: rev.status === "superseded" && (0, react_jsx_runtime.jsx)("button", {
|
|
8374
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("td", { children: formatTs(rev.updatedAt) }),
|
|
8375
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("td", { children: rev.status === "superseded" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
8420
8376
|
type: "button",
|
|
8421
8377
|
className: Workbench_module_css_default.btn,
|
|
8422
8378
|
onClick: () => {
|
|
@@ -8436,7 +8392,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
8436
8392
|
});
|
|
8437
8393
|
}
|
|
8438
8394
|
//#endregion
|
|
8439
|
-
//#region
|
|
8395
|
+
//#region src/client/FactDiaryPage.tsx
|
|
8440
8396
|
/**
|
|
8441
8397
|
* Profile·concerns page, split into two sub-pages: 关心事项 (open-loop memos) /
|
|
8442
8398
|
* 画像分类 (the AI's perception of the user). The event-layer diary is the
|
|
@@ -8488,23 +8444,23 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
8488
8444
|
}];
|
|
8489
8445
|
/** Shared page-size choices for the paginated sub-pages. */
|
|
8490
8446
|
function PageSizeSelect({ value, onChange }) {
|
|
8491
|
-
return (0, react_jsx_runtime.jsxs)("label", {
|
|
8447
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
8492
8448
|
className: Workbench_module_css_default.field,
|
|
8493
|
-
children: [(0, react_jsx_runtime.jsx)("span", { children: "每页" }), (0, react_jsx_runtime.jsxs)("select", {
|
|
8449
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "每页" }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("select", {
|
|
8494
8450
|
value: String(value),
|
|
8495
8451
|
onChange: (e) => {
|
|
8496
8452
|
onChange(Number(e.target.value));
|
|
8497
8453
|
},
|
|
8498
8454
|
children: [
|
|
8499
|
-
(0, react_jsx_runtime.jsx)("option", {
|
|
8455
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
8500
8456
|
value: "10",
|
|
8501
8457
|
children: "10"
|
|
8502
8458
|
}),
|
|
8503
|
-
(0, react_jsx_runtime.jsx)("option", {
|
|
8459
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
8504
8460
|
value: "20",
|
|
8505
8461
|
children: "20"
|
|
8506
8462
|
}),
|
|
8507
|
-
(0, react_jsx_runtime.jsx)("option", {
|
|
8463
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
8508
8464
|
value: "50",
|
|
8509
8465
|
children: "50"
|
|
8510
8466
|
})
|
|
@@ -8515,10 +8471,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
8515
8471
|
/** Compact prev/next pager with a filtered total. */
|
|
8516
8472
|
function Pager({ page, pageSize, total, onPage }) {
|
|
8517
8473
|
const totalPages = Math.max(1, Math.ceil(total / pageSize));
|
|
8518
|
-
return (0, react_jsx_runtime.jsxs)("div", {
|
|
8474
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
8519
8475
|
className: Workbench_module_css_default.toolbar,
|
|
8520
8476
|
children: [
|
|
8521
|
-
(0, react_jsx_runtime.jsx)("button", {
|
|
8477
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
8522
8478
|
type: "button",
|
|
8523
8479
|
className: Workbench_module_css_default.btn,
|
|
8524
8480
|
disabled: page <= 0,
|
|
@@ -8527,7 +8483,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
8527
8483
|
},
|
|
8528
8484
|
children: "上一页"
|
|
8529
8485
|
}),
|
|
8530
|
-
(0, react_jsx_runtime.jsxs)("span", {
|
|
8486
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
8531
8487
|
className: Workbench_module_css_default.cardMeta,
|
|
8532
8488
|
children: [
|
|
8533
8489
|
"第 ",
|
|
@@ -8539,7 +8495,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
8539
8495
|
" 条 · 最新在前"
|
|
8540
8496
|
]
|
|
8541
8497
|
}),
|
|
8542
|
-
(0, react_jsx_runtime.jsx)("button", {
|
|
8498
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
8543
8499
|
type: "button",
|
|
8544
8500
|
className: Workbench_module_css_default.btn,
|
|
8545
8501
|
disabled: page + 1 >= totalPages,
|
|
@@ -8694,31 +8650,31 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
8694
8650
|
onChanged,
|
|
8695
8651
|
refresh
|
|
8696
8652
|
]);
|
|
8697
|
-
return (0, react_jsx_runtime.jsxs)("div", {
|
|
8653
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
8698
8654
|
className: Workbench_module_css_default.page,
|
|
8699
8655
|
children: [
|
|
8700
|
-
(0, react_jsx_runtime.jsxs)("div", {
|
|
8656
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
8701
8657
|
className: Workbench_module_css_default.empty,
|
|
8702
8658
|
children: [
|
|
8703
8659
|
"「记」的产物分两层:",
|
|
8704
|
-
(0, react_jsx_runtime.jsx)("b", { children: "画像分类" }),
|
|
8660
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("b", { children: "画像分类" }),
|
|
8705
8661
|
"是 AI 通过对话沉淀出的\"这个用户是什么样的人、怎么跟他协作\"(稳定特质,每条可展开看来源日记);",
|
|
8706
|
-
(0, react_jsx_runtime.jsx)("b", { children: "关心事项" }),
|
|
8662
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("b", { children: "关心事项" }),
|
|
8707
8663
|
"是替用户记着的",
|
|
8708
|
-
(0, react_jsx_runtime.jsx)("b", { children: "开环备忘" }),
|
|
8664
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("b", { children: "开环备忘" }),
|
|
8709
8665
|
"——提过还没办的事、冒出的想法、悬而未决的问题、待定的决定、答应的事。 事件层日记是原料(只增不删),不单列子页,作为画像的\"来源日记\"露出。提取是否在跑,看右上角「待提取」数即可。"
|
|
8710
8666
|
]
|
|
8711
8667
|
}),
|
|
8712
|
-
(0, react_jsx_runtime.jsxs)("div", {
|
|
8668
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
8713
8669
|
className: Workbench_module_css_default.tabs,
|
|
8714
|
-
children: [TABS.map((t) => (0, react_jsx_runtime.jsx)("button", {
|
|
8670
|
+
children: [TABS.map((t) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
8715
8671
|
type: "button",
|
|
8716
8672
|
className: tab === t.key ? `${Workbench_module_css_default.tab} ${Workbench_module_css_default.tabActive}` : Workbench_module_css_default.tab,
|
|
8717
8673
|
onClick: () => {
|
|
8718
8674
|
setTab(t.key);
|
|
8719
8675
|
},
|
|
8720
8676
|
children: t.label
|
|
8721
|
-
}, t.key)), (0, react_jsx_runtime.jsx)("button", {
|
|
8677
|
+
}, t.key)), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
8722
8678
|
type: "button",
|
|
8723
8679
|
className: Workbench_module_css_default.btn,
|
|
8724
8680
|
onClick: refresh,
|
|
@@ -8726,51 +8682,51 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
8726
8682
|
children: "刷新"
|
|
8727
8683
|
})]
|
|
8728
8684
|
}),
|
|
8729
|
-
tab === "concerns" && (0, react_jsx_runtime.jsxs)("section", {
|
|
8685
|
+
tab === "concerns" && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("section", {
|
|
8730
8686
|
className: Workbench_module_css_default.column,
|
|
8731
8687
|
children: [
|
|
8732
|
-
(0, react_jsx_runtime.jsxs)("div", {
|
|
8688
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
8733
8689
|
className: Workbench_module_css_default.toolbar,
|
|
8734
8690
|
children: [
|
|
8735
|
-
(0, react_jsx_runtime.jsx)("span", {
|
|
8691
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
8736
8692
|
className: Workbench_module_css_default.sectionTitle,
|
|
8737
8693
|
children: "关心事项 · 开环备忘(替你记着还没闭环的事,用于提醒)"
|
|
8738
8694
|
}),
|
|
8739
|
-
(0, react_jsx_runtime.jsxs)("label", {
|
|
8695
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
8740
8696
|
className: Workbench_module_css_default.field,
|
|
8741
|
-
children: [(0, react_jsx_runtime.jsx)("span", { children: "类型" }), (0, react_jsx_runtime.jsxs)("select", {
|
|
8697
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "类型" }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("select", {
|
|
8742
8698
|
value: concernKind,
|
|
8743
8699
|
onChange: (e) => {
|
|
8744
8700
|
setConcernKind(e.target.value);
|
|
8745
8701
|
setConcernPage(0);
|
|
8746
8702
|
},
|
|
8747
|
-
children: [(0, react_jsx_runtime.jsx)("option", {
|
|
8703
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
8748
8704
|
value: "",
|
|
8749
8705
|
children: "全部"
|
|
8750
|
-
}), Object.entries(CONCERN_KIND_LABELS).map(([value, label]) => (0, react_jsx_runtime.jsx)("option", {
|
|
8706
|
+
}), Object.entries(CONCERN_KIND_LABELS).map(([value, label]) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
8751
8707
|
value,
|
|
8752
8708
|
children: label
|
|
8753
8709
|
}, value))]
|
|
8754
8710
|
})]
|
|
8755
8711
|
}),
|
|
8756
|
-
(0, react_jsx_runtime.jsxs)("label", {
|
|
8712
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
8757
8713
|
className: Workbench_module_css_default.field,
|
|
8758
|
-
children: [(0, react_jsx_runtime.jsx)("span", { children: "状态" }), (0, react_jsx_runtime.jsxs)("select", {
|
|
8714
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "状态" }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("select", {
|
|
8759
8715
|
value: concernStatus,
|
|
8760
8716
|
onChange: (e) => {
|
|
8761
8717
|
setConcernStatus(e.target.value);
|
|
8762
8718
|
setConcernPage(0);
|
|
8763
8719
|
},
|
|
8764
|
-
children: [(0, react_jsx_runtime.jsx)("option", {
|
|
8720
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
8765
8721
|
value: "",
|
|
8766
8722
|
children: "全部"
|
|
8767
|
-
}), Object.entries(CONCERN_STATUS_LABELS).map(([value, label]) => (0, react_jsx_runtime.jsx)("option", {
|
|
8723
|
+
}), Object.entries(CONCERN_STATUS_LABELS).map(([value, label]) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
8768
8724
|
value,
|
|
8769
8725
|
children: label
|
|
8770
8726
|
}, value))]
|
|
8771
8727
|
})]
|
|
8772
8728
|
}),
|
|
8773
|
-
(0, react_jsx_runtime.jsx)(PageSizeSelect, {
|
|
8729
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(PageSizeSelect, {
|
|
8774
8730
|
value: concernPageSize,
|
|
8775
8731
|
onChange: (v) => {
|
|
8776
8732
|
setConcernPageSize(v);
|
|
@@ -8779,19 +8735,19 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
8779
8735
|
})
|
|
8780
8736
|
]
|
|
8781
8737
|
}),
|
|
8782
|
-
concerns.length === 0 && (0, react_jsx_runtime.jsx)("div", {
|
|
8738
|
+
concerns.length === 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
8783
8739
|
className: Workbench_module_css_default.empty,
|
|
8784
8740
|
children: "还没有关心事项。代理提取时(memory_extract 的 concerns)会沉淀你提过但还没闭环的事:待办、思考、想法、疑问、决定、约定。"
|
|
8785
8741
|
}),
|
|
8786
|
-
(0, react_jsx_runtime.jsx)("div", {
|
|
8742
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
8787
8743
|
className: Workbench_module_css_default.list,
|
|
8788
|
-
children: concerns.map((tree) => (0, react_jsx_runtime.jsxs)("div", {
|
|
8744
|
+
children: concerns.map((tree) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
8789
8745
|
className: Workbench_module_css_default.card,
|
|
8790
8746
|
children: [
|
|
8791
|
-
(0, react_jsx_runtime.jsxs)("div", {
|
|
8747
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
8792
8748
|
className: Workbench_module_css_default.cardHead,
|
|
8793
8749
|
children: [
|
|
8794
|
-
(0, react_jsx_runtime.jsx)("span", {
|
|
8750
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
8795
8751
|
className: Workbench_module_css_default.payloadToggle,
|
|
8796
8752
|
title: openConcerns[tree.concern.id] === true ? "收起更新" : "展开更新",
|
|
8797
8753
|
onClick: () => {
|
|
@@ -8799,19 +8755,19 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
8799
8755
|
},
|
|
8800
8756
|
children: openConcerns[tree.concern.id] === true ? "▾" : "▸"
|
|
8801
8757
|
}),
|
|
8802
|
-
(0, react_jsx_runtime.jsx)("span", {
|
|
8758
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
8803
8759
|
className: `${Workbench_module_css_default.badge} ${Workbench_module_css_default.statusCandidate}`,
|
|
8804
8760
|
children: CONCERN_KIND_LABELS[tree.concern.kind ?? "other"] ?? "其他"
|
|
8805
8761
|
}),
|
|
8806
|
-
(0, react_jsx_runtime.jsx)("span", {
|
|
8762
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
8807
8763
|
className: Workbench_module_css_default.cardTitle,
|
|
8808
8764
|
children: tree.concern.title
|
|
8809
8765
|
}),
|
|
8810
|
-
(0, react_jsx_runtime.jsx)("span", {
|
|
8766
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
8811
8767
|
className: `${Workbench_module_css_default.badge} ${Workbench_module_css_default.statusOther}`,
|
|
8812
8768
|
children: CONCERN_STATUS_LABELS[tree.concern.status ?? "ongoing"] ?? "未闭环"
|
|
8813
8769
|
}),
|
|
8814
|
-
(0, react_jsx_runtime.jsxs)("span", {
|
|
8770
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
8815
8771
|
className: Workbench_module_css_default.cardMeta,
|
|
8816
8772
|
children: [
|
|
8817
8773
|
"更新 ",
|
|
@@ -8821,62 +8777,62 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
8821
8777
|
})
|
|
8822
8778
|
]
|
|
8823
8779
|
}),
|
|
8824
|
-
tree.concern.background !== void 0 && tree.concern.background !== "" && (0, react_jsx_runtime.jsxs)("div", {
|
|
8780
|
+
tree.concern.background !== void 0 && tree.concern.background !== "" && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
8825
8781
|
className: Workbench_module_css_default.concernBg,
|
|
8826
8782
|
children: ["背景:", tree.concern.background]
|
|
8827
8783
|
}),
|
|
8828
|
-
openConcerns[tree.concern.id] === true && (0, react_jsx_runtime.jsxs)("div", {
|
|
8784
|
+
openConcerns[tree.concern.id] === true && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
8829
8785
|
className: Workbench_module_css_default.list,
|
|
8830
|
-
children: [tree.mentions.length === 0 && (0, react_jsx_runtime.jsx)("div", {
|
|
8786
|
+
children: [tree.mentions.length === 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
8831
8787
|
className: Workbench_module_css_default.cardSub,
|
|
8832
|
-
children: (0, react_jsx_runtime.jsx)("span", {
|
|
8788
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
8833
8789
|
className: Workbench_module_css_default.cardMeta,
|
|
8834
8790
|
children: "暂无后续更新。"
|
|
8835
8791
|
})
|
|
8836
|
-
}), tree.mentions.map((mention) => (0, react_jsx_runtime.jsxs)("div", {
|
|
8792
|
+
}), tree.mentions.map((mention) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
8837
8793
|
className: Workbench_module_css_default.cardSub,
|
|
8838
8794
|
children: [
|
|
8839
|
-
(0, react_jsx_runtime.jsx)("span", {
|
|
8795
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
8840
8796
|
className: Workbench_module_css_default.cardMeta,
|
|
8841
8797
|
children: formatTs(mention.ts)
|
|
8842
8798
|
}),
|
|
8843
|
-
(0, react_jsx_runtime.jsx)("span", {
|
|
8799
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
8844
8800
|
className: Workbench_module_css_default.cardTitle,
|
|
8845
8801
|
children: mention.title
|
|
8846
8802
|
}),
|
|
8847
|
-
mention.sourceDiaryIds.length > 0 && (0, react_jsx_runtime.jsxs)("span", {
|
|
8803
|
+
mention.sourceDiaryIds.length > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
8848
8804
|
className: Workbench_module_css_default.cardMeta,
|
|
8849
8805
|
children: ["← 日记 ", mention.sourceDiaryIds.map((id) => id.slice(0, 6)).join("、")]
|
|
8850
8806
|
})
|
|
8851
8807
|
]
|
|
8852
8808
|
}, mention.id))]
|
|
8853
8809
|
}),
|
|
8854
|
-
(0, react_jsx_runtime.jsxs)("div", {
|
|
8810
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
8855
8811
|
className: Workbench_module_css_default.cardSub,
|
|
8856
|
-
children: [(0, react_jsx_runtime.jsxs)("select", {
|
|
8812
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("select", {
|
|
8857
8813
|
value: tree.concern.status ?? "ongoing",
|
|
8858
8814
|
onChange: (e) => {
|
|
8859
8815
|
runSetConcernStatus(tree, e.target.value);
|
|
8860
8816
|
},
|
|
8861
8817
|
children: [
|
|
8862
|
-
(0, react_jsx_runtime.jsx)("option", {
|
|
8818
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
8863
8819
|
value: "ongoing",
|
|
8864
8820
|
children: "未闭环"
|
|
8865
8821
|
}),
|
|
8866
|
-
(0, react_jsx_runtime.jsx)("option", {
|
|
8822
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
8867
8823
|
value: "concluded",
|
|
8868
8824
|
children: "已闭环"
|
|
8869
8825
|
}),
|
|
8870
|
-
(0, react_jsx_runtime.jsx)("option", {
|
|
8826
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
8871
8827
|
value: "recurring",
|
|
8872
8828
|
children: "反复出现"
|
|
8873
8829
|
}),
|
|
8874
|
-
(0, react_jsx_runtime.jsx)("option", {
|
|
8830
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
8875
8831
|
value: "paused",
|
|
8876
8832
|
children: "搁置"
|
|
8877
8833
|
})
|
|
8878
8834
|
]
|
|
8879
|
-
}), (0, react_jsx_runtime.jsx)("button", {
|
|
8835
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
8880
8836
|
type: "button",
|
|
8881
8837
|
className: `${Workbench_module_css_default.btn} ${Workbench_module_css_default.btnDanger}`,
|
|
8882
8838
|
onClick: () => {
|
|
@@ -8888,7 +8844,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
8888
8844
|
]
|
|
8889
8845
|
}, tree.concern.id))
|
|
8890
8846
|
}),
|
|
8891
|
-
(0, react_jsx_runtime.jsx)(Pager, {
|
|
8847
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(Pager, {
|
|
8892
8848
|
page: concernPage,
|
|
8893
8849
|
pageSize: concernPageSize,
|
|
8894
8850
|
total: concernTotal,
|
|
@@ -8896,32 +8852,32 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
8896
8852
|
})
|
|
8897
8853
|
]
|
|
8898
8854
|
}),
|
|
8899
|
-
tab === "facts" && (0, react_jsx_runtime.jsxs)("section", {
|
|
8855
|
+
tab === "facts" && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("section", {
|
|
8900
8856
|
className: Workbench_module_css_default.column,
|
|
8901
8857
|
children: [
|
|
8902
|
-
(0, react_jsx_runtime.jsxs)("div", {
|
|
8858
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
8903
8859
|
className: Workbench_module_css_default.toolbar,
|
|
8904
8860
|
children: [
|
|
8905
|
-
(0, react_jsx_runtime.jsxs)("label", {
|
|
8861
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
8906
8862
|
className: Workbench_module_css_default.field,
|
|
8907
|
-
children: [(0, react_jsx_runtime.jsx)("span", { children: "画像分类" }), (0, react_jsx_runtime.jsxs)("select", {
|
|
8863
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "画像分类" }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("select", {
|
|
8908
8864
|
value: category,
|
|
8909
8865
|
onChange: (e) => {
|
|
8910
8866
|
setCategory(e.target.value);
|
|
8911
8867
|
setFactPage(0);
|
|
8912
8868
|
},
|
|
8913
|
-
children: [(0, react_jsx_runtime.jsx)("option", {
|
|
8869
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
8914
8870
|
value: "",
|
|
8915
8871
|
children: "全部"
|
|
8916
|
-
}), Object.entries(CATEGORY_LABELS$1).map(([value, label]) => (0, react_jsx_runtime.jsx)("option", {
|
|
8872
|
+
}), Object.entries(CATEGORY_LABELS$1).map(([value, label]) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
8917
8873
|
value,
|
|
8918
8874
|
children: label
|
|
8919
8875
|
}, value))]
|
|
8920
8876
|
})]
|
|
8921
8877
|
}),
|
|
8922
|
-
(0, react_jsx_runtime.jsxs)("label", {
|
|
8878
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
8923
8879
|
className: Workbench_module_css_default.check,
|
|
8924
|
-
children: [(0, react_jsx_runtime.jsx)("input", {
|
|
8880
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
8925
8881
|
type: "checkbox",
|
|
8926
8882
|
checked: includeHistory,
|
|
8927
8883
|
onChange: (e) => {
|
|
@@ -8930,7 +8886,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
8930
8886
|
}
|
|
8931
8887
|
}), "显示历史版本(双时间轴)"]
|
|
8932
8888
|
}),
|
|
8933
|
-
(0, react_jsx_runtime.jsx)(PageSizeSelect, {
|
|
8889
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(PageSizeSelect, {
|
|
8934
8890
|
value: factPageSize,
|
|
8935
8891
|
onChange: (v) => {
|
|
8936
8892
|
setFactPageSize(v);
|
|
@@ -8939,48 +8895,48 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
8939
8895
|
})
|
|
8940
8896
|
]
|
|
8941
8897
|
}),
|
|
8942
|
-
error !== null && (0, react_jsx_runtime.jsx)("div", {
|
|
8898
|
+
error !== null && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
8943
8899
|
className: Workbench_module_css_default.error,
|
|
8944
8900
|
children: error
|
|
8945
8901
|
}),
|
|
8946
|
-
facts.length === 0 && (0, react_jsx_runtime.jsx)("div", {
|
|
8902
|
+
facts.length === 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
8947
8903
|
className: Workbench_module_css_default.empty,
|
|
8948
8904
|
children: "暂无画像条目。代理记录日记后按周期提取(memory_extract),或在本页「人工管理」中直接添加。"
|
|
8949
8905
|
}),
|
|
8950
|
-
(0, react_jsx_runtime.jsxs)("table", {
|
|
8906
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("table", {
|
|
8951
8907
|
className: Workbench_module_css_default.table,
|
|
8952
|
-
children: [(0, react_jsx_runtime.jsx)("thead", { children: (0, react_jsx_runtime.jsxs)("tr", { children: [
|
|
8953
|
-
(0, react_jsx_runtime.jsx)("th", { children: "分类/键" }),
|
|
8954
|
-
(0, react_jsx_runtime.jsx)("th", { children: "值" }),
|
|
8955
|
-
(0, react_jsx_runtime.jsx)("th", { children: "佐证" }),
|
|
8956
|
-
(0, react_jsx_runtime.jsx)("th", { children: "来源" }),
|
|
8957
|
-
(0, react_jsx_runtime.jsx)("th", { children: "状态" }),
|
|
8958
|
-
(0, react_jsx_runtime.jsx)("th", { children: "生效起" }),
|
|
8959
|
-
(0, react_jsx_runtime.jsx)("th", { children: "操作" })
|
|
8960
|
-
] }) }), (0, react_jsx_runtime.jsx)("tbody", { children: facts.map((fact) => (0, react_jsx_runtime.jsxs)(react.Fragment, { children: [(0, react_jsx_runtime.jsxs)("tr", { children: [
|
|
8961
|
-
(0, react_jsx_runtime.jsxs)("td", { children: [
|
|
8908
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("thead", { children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("tr", { children: [
|
|
8909
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("th", { children: "分类/键" }),
|
|
8910
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("th", { children: "值" }),
|
|
8911
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("th", { children: "佐证" }),
|
|
8912
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("th", { children: "来源" }),
|
|
8913
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("th", { children: "状态" }),
|
|
8914
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("th", { children: "生效起" }),
|
|
8915
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("th", { children: "操作" })
|
|
8916
|
+
] }) }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("tbody", { children: facts.map((fact) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("tr", { children: [
|
|
8917
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("td", { children: [
|
|
8962
8918
|
CATEGORY_LABELS$1[fact.category] ?? fact.category,
|
|
8963
8919
|
" / ",
|
|
8964
8920
|
fact.factKey
|
|
8965
8921
|
] }),
|
|
8966
|
-
(0, react_jsx_runtime.jsx)("td", {
|
|
8922
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("td", {
|
|
8967
8923
|
className: Workbench_module_css_default.valueCell,
|
|
8968
8924
|
children: fact.value
|
|
8969
8925
|
}),
|
|
8970
|
-
(0, react_jsx_runtime.jsxs)("td", { children: ["×", String(fact.corroboration)] }),
|
|
8971
|
-
(0, react_jsx_runtime.jsx)("td", { children: fact.sourceDiaryIds.length === 0 ? (0, react_jsx_runtime.jsx)("span", {
|
|
8926
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("td", { children: ["×", String(fact.corroboration)] }),
|
|
8927
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("td", { children: fact.sourceDiaryIds.length === 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
8972
8928
|
className: Workbench_module_css_default.cardMeta,
|
|
8973
8929
|
children: "人工/无"
|
|
8974
|
-
}) : (0, react_jsx_runtime.jsxs)("span", {
|
|
8930
|
+
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
8975
8931
|
className: Workbench_module_css_default.cellActions,
|
|
8976
|
-
children: [(0, react_jsx_runtime.jsx)("span", {
|
|
8932
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
8977
8933
|
className: Workbench_module_css_default.payloadToggle,
|
|
8978
8934
|
title: openFactSources[fact.id] === true ? "收起来源日记" : "展开来源日记",
|
|
8979
8935
|
onClick: () => {
|
|
8980
8936
|
toggleFactSources(fact);
|
|
8981
8937
|
},
|
|
8982
8938
|
children: openFactSources[fact.id] === true ? "▾" : "▸"
|
|
8983
|
-
}), (0, react_jsx_runtime.jsxs)("span", {
|
|
8939
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
8984
8940
|
className: Workbench_module_css_default.cardMeta,
|
|
8985
8941
|
children: [
|
|
8986
8942
|
"← ",
|
|
@@ -8989,25 +8945,25 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
8989
8945
|
]
|
|
8990
8946
|
})]
|
|
8991
8947
|
}) }),
|
|
8992
|
-
(0, react_jsx_runtime.jsxs)("td", { children: [
|
|
8993
|
-
fact.locked && (0, react_jsx_runtime.jsx)("span", {
|
|
8948
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("td", { children: [
|
|
8949
|
+
fact.locked && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
8994
8950
|
className: `${Workbench_module_css_default.badge} ${Workbench_module_css_default.badgePinned}`,
|
|
8995
8951
|
children: "已确认"
|
|
8996
8952
|
}),
|
|
8997
|
-
fact.conflictPending && (0, react_jsx_runtime.jsx)("span", {
|
|
8953
|
+
fact.conflictPending && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
8998
8954
|
className: `${Workbench_module_css_default.badge} ${Workbench_module_css_default.badgeConflict}`,
|
|
8999
8955
|
children: "冲突待裁决"
|
|
9000
8956
|
}),
|
|
9001
|
-
fact.validTo !== void 0 && (0, react_jsx_runtime.jsx)("span", {
|
|
8957
|
+
fact.validTo !== void 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
9002
8958
|
className: `${Workbench_module_css_default.badge} ${Workbench_module_css_default.statusOther}`,
|
|
9003
8959
|
children: "历史"
|
|
9004
8960
|
})
|
|
9005
8961
|
] }),
|
|
9006
|
-
(0, react_jsx_runtime.jsx)("td", { children: formatTs(fact.validFrom) }),
|
|
9007
|
-
(0, react_jsx_runtime.jsxs)("td", {
|
|
8962
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("td", { children: formatTs(fact.validFrom) }),
|
|
8963
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("td", {
|
|
9008
8964
|
className: Workbench_module_css_default.cellActions,
|
|
9009
8965
|
children: [
|
|
9010
|
-
(0, react_jsx_runtime.jsx)("button", {
|
|
8966
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
9011
8967
|
type: "button",
|
|
9012
8968
|
className: Workbench_module_css_default.btn,
|
|
9013
8969
|
onClick: () => {
|
|
@@ -9015,7 +8971,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9015
8971
|
},
|
|
9016
8972
|
children: fact.locked ? "解锁" : "确认"
|
|
9017
8973
|
}),
|
|
9018
|
-
(0, react_jsx_runtime.jsx)("button", {
|
|
8974
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
9019
8975
|
type: "button",
|
|
9020
8976
|
className: Workbench_module_css_default.btn,
|
|
9021
8977
|
onClick: () => {
|
|
@@ -9023,7 +8979,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9023
8979
|
},
|
|
9024
8980
|
children: "编辑"
|
|
9025
8981
|
}),
|
|
9026
|
-
(0, react_jsx_runtime.jsx)("button", {
|
|
8982
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
9027
8983
|
type: "button",
|
|
9028
8984
|
className: `${Workbench_module_css_default.btn} ${Workbench_module_css_default.btnDanger}`,
|
|
9029
8985
|
onClick: () => {
|
|
@@ -9033,28 +8989,28 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9033
8989
|
})
|
|
9034
8990
|
]
|
|
9035
8991
|
})
|
|
9036
|
-
] }), openFactSources[fact.id] === true && (0, react_jsx_runtime.jsx)("tr", { children: (0, react_jsx_runtime.jsx)("td", {
|
|
8992
|
+
] }), openFactSources[fact.id] === true && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("tr", { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("td", {
|
|
9037
8993
|
colSpan: 7,
|
|
9038
|
-
children: (0, react_jsx_runtime.jsx)("div", {
|
|
8994
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
9039
8995
|
className: Workbench_module_css_default.list,
|
|
9040
|
-
children: (factSources[fact.id] ?? []).length === 0 ? (0, react_jsx_runtime.jsx)("div", {
|
|
8996
|
+
children: (factSources[fact.id] ?? []).length === 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
9041
8997
|
className: Workbench_module_css_default.cardSub,
|
|
9042
|
-
children: (0, react_jsx_runtime.jsx)("span", {
|
|
8998
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
9043
8999
|
className: Workbench_module_css_default.cardMeta,
|
|
9044
9000
|
children: "加载中…(或来源日记已不存在)"
|
|
9045
9001
|
})
|
|
9046
|
-
}) : (factSources[fact.id] ?? []).map((entry) => (0, react_jsx_runtime.jsxs)("div", {
|
|
9002
|
+
}) : (factSources[fact.id] ?? []).map((entry) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
9047
9003
|
className: Workbench_module_css_default.cardSub,
|
|
9048
9004
|
children: [
|
|
9049
|
-
(0, react_jsx_runtime.jsx)("span", {
|
|
9005
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
9050
9006
|
className: `${Workbench_module_css_default.badge} ${Workbench_module_css_default.statusCandidate}`,
|
|
9051
9007
|
children: DIARY_KIND_LABELS[entry.kind] ?? entry.kind
|
|
9052
9008
|
}),
|
|
9053
|
-
(0, react_jsx_runtime.jsx)("span", {
|
|
9009
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
9054
9010
|
className: Workbench_module_css_default.cardTitle,
|
|
9055
9011
|
children: entry.content
|
|
9056
9012
|
}),
|
|
9057
|
-
(0, react_jsx_runtime.jsx)("span", {
|
|
9013
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
9058
9014
|
className: Workbench_module_css_default.cardMeta,
|
|
9059
9015
|
children: formatTs(entry.ts)
|
|
9060
9016
|
})
|
|
@@ -9063,7 +9019,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9063
9019
|
})
|
|
9064
9020
|
}) })] }, fact.id)) })]
|
|
9065
9021
|
}),
|
|
9066
|
-
(0, react_jsx_runtime.jsx)(Pager, {
|
|
9022
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(Pager, {
|
|
9067
9023
|
page: factPage,
|
|
9068
9024
|
pageSize: factPageSize,
|
|
9069
9025
|
total: factTotal,
|
|
@@ -9075,7 +9031,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9075
9031
|
});
|
|
9076
9032
|
}
|
|
9077
9033
|
//#endregion
|
|
9078
|
-
//#region
|
|
9034
|
+
//#region src/client/LedgerPage.tsx
|
|
9079
9035
|
/**
|
|
9080
9036
|
* Ledger page: the append-only hash-chained audit trail of every memory
|
|
9081
9037
|
* mutation (agent and human alike), with filters, an end-to-end integrity
|
|
@@ -9191,70 +9147,70 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9191
9147
|
setError(e instanceof Error ? e.message : String(e));
|
|
9192
9148
|
});
|
|
9193
9149
|
}, [actions]);
|
|
9194
|
-
return (0, react_jsx_runtime.jsxs)("div", {
|
|
9150
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
9195
9151
|
className: Workbench_module_css_default.page,
|
|
9196
9152
|
children: [
|
|
9197
|
-
(0, react_jsx_runtime.jsx)("div", {
|
|
9153
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
9198
9154
|
className: Workbench_module_css_default.empty,
|
|
9199
9155
|
children: "账本是「修」的审计底座:每一次生·用·修·记操作(代理与人工 alike)都追加一块, 块内含上一块哈希,形成不可篡改的哈希链。它回答「谁、在何时、对哪条记忆、 做了什么、为什么」。「完整性校验」重算全链验证无篡改;人工操作必须填原因。"
|
|
9200
9156
|
}),
|
|
9201
|
-
(0, react_jsx_runtime.jsxs)("div", {
|
|
9157
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
9202
9158
|
className: Workbench_module_css_default.toolbar,
|
|
9203
9159
|
children: [
|
|
9204
|
-
(0, react_jsx_runtime.jsxs)("label", {
|
|
9160
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
9205
9161
|
className: Workbench_module_css_default.field,
|
|
9206
|
-
children: [(0, react_jsx_runtime.jsx)("span", { children: "对象类型" }), (0, react_jsx_runtime.jsxs)("select", {
|
|
9162
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "对象类型" }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("select", {
|
|
9207
9163
|
value: objectType,
|
|
9208
9164
|
onChange: (e) => {
|
|
9209
9165
|
applyFilter(setObjectType)(e.target.value);
|
|
9210
9166
|
},
|
|
9211
9167
|
children: [
|
|
9212
|
-
(0, react_jsx_runtime.jsx)("option", {
|
|
9168
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
9213
9169
|
value: "",
|
|
9214
9170
|
children: "全部"
|
|
9215
9171
|
}),
|
|
9216
|
-
(0, react_jsx_runtime.jsx)("option", {
|
|
9172
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
9217
9173
|
value: "experience",
|
|
9218
9174
|
children: "经验"
|
|
9219
9175
|
}),
|
|
9220
|
-
(0, react_jsx_runtime.jsx)("option", {
|
|
9176
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
9221
9177
|
value: "fact",
|
|
9222
9178
|
children: "画像"
|
|
9223
9179
|
}),
|
|
9224
|
-
(0, react_jsx_runtime.jsx)("option", {
|
|
9180
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
9225
9181
|
value: "diary",
|
|
9226
9182
|
children: "日记"
|
|
9227
9183
|
}),
|
|
9228
|
-
(0, react_jsx_runtime.jsx)("option", {
|
|
9184
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
9229
9185
|
value: "concern",
|
|
9230
9186
|
children: "关心事项"
|
|
9231
9187
|
}),
|
|
9232
|
-
(0, react_jsx_runtime.jsx)("option", {
|
|
9188
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
9233
9189
|
value: "library",
|
|
9234
9190
|
children: "库级"
|
|
9235
9191
|
})
|
|
9236
9192
|
]
|
|
9237
9193
|
})]
|
|
9238
9194
|
}),
|
|
9239
|
-
(0, react_jsx_runtime.jsxs)("label", {
|
|
9195
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
9240
9196
|
className: Workbench_module_css_default.field,
|
|
9241
|
-
children: [(0, react_jsx_runtime.jsx)("span", { children: "操作" }), (0, react_jsx_runtime.jsxs)("select", {
|
|
9197
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "操作" }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("select", {
|
|
9242
9198
|
value: op,
|
|
9243
9199
|
onChange: (e) => {
|
|
9244
9200
|
applyFilter(setOp)(e.target.value);
|
|
9245
9201
|
},
|
|
9246
|
-
children: [(0, react_jsx_runtime.jsx)("option", {
|
|
9202
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
9247
9203
|
value: "",
|
|
9248
9204
|
children: "全部"
|
|
9249
|
-
}), Object.keys(OP_LABELS).map((key) => (0, react_jsx_runtime.jsx)("option", {
|
|
9205
|
+
}), Object.keys(OP_LABELS).map((key) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
9250
9206
|
value: key,
|
|
9251
9207
|
children: opLabel(key)
|
|
9252
9208
|
}, key))]
|
|
9253
9209
|
})]
|
|
9254
9210
|
}),
|
|
9255
|
-
(0, react_jsx_runtime.jsxs)("label", {
|
|
9211
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
9256
9212
|
className: Workbench_module_css_default.field,
|
|
9257
|
-
children: [(0, react_jsx_runtime.jsx)("span", { children: "对象 id" }), (0, react_jsx_runtime.jsx)("input", {
|
|
9213
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "对象 id" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
9258
9214
|
value: objectId,
|
|
9259
9215
|
placeholder: "经验或画像 id",
|
|
9260
9216
|
onChange: (e) => {
|
|
@@ -9262,9 +9218,9 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9262
9218
|
}
|
|
9263
9219
|
})]
|
|
9264
9220
|
}),
|
|
9265
|
-
(0, react_jsx_runtime.jsxs)("label", {
|
|
9221
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
9266
9222
|
className: Workbench_module_css_default.field,
|
|
9267
|
-
children: [(0, react_jsx_runtime.jsx)("span", { children: "块号从" }), (0, react_jsx_runtime.jsx)("input", {
|
|
9223
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "块号从" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
9268
9224
|
value: seqFrom,
|
|
9269
9225
|
placeholder: "如 1",
|
|
9270
9226
|
onChange: (e) => {
|
|
@@ -9272,9 +9228,9 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9272
9228
|
}
|
|
9273
9229
|
})]
|
|
9274
9230
|
}),
|
|
9275
|
-
(0, react_jsx_runtime.jsxs)("label", {
|
|
9231
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
9276
9232
|
className: Workbench_module_css_default.field,
|
|
9277
|
-
children: [(0, react_jsx_runtime.jsx)("span", { children: "到" }), (0, react_jsx_runtime.jsx)("input", {
|
|
9233
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "到" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
9278
9234
|
value: seqTo,
|
|
9279
9235
|
placeholder: "如 100",
|
|
9280
9236
|
onChange: (e) => {
|
|
@@ -9282,13 +9238,13 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9282
9238
|
}
|
|
9283
9239
|
})]
|
|
9284
9240
|
}),
|
|
9285
|
-
(0, react_jsx_runtime.jsx)("button", {
|
|
9241
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
9286
9242
|
type: "button",
|
|
9287
9243
|
className: Workbench_module_css_default.btn,
|
|
9288
9244
|
onClick: refresh,
|
|
9289
9245
|
children: "刷新"
|
|
9290
9246
|
}),
|
|
9291
|
-
(0, react_jsx_runtime.jsx)("button", {
|
|
9247
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
9292
9248
|
type: "button",
|
|
9293
9249
|
className: Workbench_module_css_default.btn,
|
|
9294
9250
|
onClick: runIntegrity,
|
|
@@ -9296,20 +9252,20 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9296
9252
|
title: "从第 1 块起逐块重算哈希并与块内存储的哈希比对,任何篡改都会导致断裂",
|
|
9297
9253
|
children: checking ? "校验中…" : "完整性校验"
|
|
9298
9254
|
}),
|
|
9299
|
-
(0, react_jsx_runtime.jsx)("button", {
|
|
9255
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
9300
9256
|
type: "button",
|
|
9301
9257
|
className: Workbench_module_css_default.btn,
|
|
9302
9258
|
onClick: runExport,
|
|
9303
9259
|
children: "导出全库 JSON"
|
|
9304
9260
|
}),
|
|
9305
|
-
integrity !== null && (integrity.ok ? (0, react_jsx_runtime.jsxs)("span", {
|
|
9261
|
+
integrity !== null && (integrity.ok ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
9306
9262
|
className: Workbench_module_css_default.okLine,
|
|
9307
9263
|
children: [
|
|
9308
9264
|
"✓ 哈希链完整(",
|
|
9309
9265
|
String(integrity.checked),
|
|
9310
9266
|
" 块)"
|
|
9311
9267
|
]
|
|
9312
|
-
}) : (0, react_jsx_runtime.jsxs)("span", {
|
|
9268
|
+
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
9313
9269
|
className: Workbench_module_css_default.error,
|
|
9314
9270
|
children: [
|
|
9315
9271
|
"✗ 哈希链在 #",
|
|
@@ -9317,46 +9273,46 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9317
9273
|
" 处断裂"
|
|
9318
9274
|
]
|
|
9319
9275
|
})),
|
|
9320
|
-
error !== null && (0, react_jsx_runtime.jsx)("span", {
|
|
9276
|
+
error !== null && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
9321
9277
|
className: Workbench_module_css_default.error,
|
|
9322
9278
|
children: error
|
|
9323
9279
|
})
|
|
9324
9280
|
]
|
|
9325
9281
|
}),
|
|
9326
|
-
blocks.length === 0 && (0, react_jsx_runtime.jsx)("div", {
|
|
9282
|
+
blocks.length === 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
9327
9283
|
className: Workbench_module_css_default.empty,
|
|
9328
9284
|
children: "账本为空:还没有任何生用修记操作。"
|
|
9329
9285
|
}),
|
|
9330
|
-
(0, react_jsx_runtime.jsxs)("table", {
|
|
9286
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("table", {
|
|
9331
9287
|
className: Workbench_module_css_default.table,
|
|
9332
|
-
children: [(0, react_jsx_runtime.jsx)("thead", { children: (0, react_jsx_runtime.jsxs)("tr", { children: [
|
|
9333
|
-
(0, react_jsx_runtime.jsx)("th", { children: "#" }),
|
|
9334
|
-
(0, react_jsx_runtime.jsx)("th", { children: "时间" }),
|
|
9335
|
-
(0, react_jsx_runtime.jsx)("th", { children: "操作" }),
|
|
9336
|
-
(0, react_jsx_runtime.jsx)("th", { children: "对象" }),
|
|
9337
|
-
(0, react_jsx_runtime.jsx)("th", { children: "行动者" }),
|
|
9338
|
-
(0, react_jsx_runtime.jsx)("th", { children: "原因" }),
|
|
9339
|
-
(0, react_jsx_runtime.jsx)("th", { children: "载荷" })
|
|
9340
|
-
] }) }), (0, react_jsx_runtime.jsx)("tbody", { children: blocks.map((block) => (0, react_jsx_runtime.jsxs)("tr", { children: [
|
|
9341
|
-
(0, react_jsx_runtime.jsx)("td", { children: String(block.seq) }),
|
|
9342
|
-
(0, react_jsx_runtime.jsx)("td", { children: formatTs(block.ts) }),
|
|
9343
|
-
(0, react_jsx_runtime.jsx)("td", { children: (0, react_jsx_runtime.jsx)("span", {
|
|
9288
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("thead", { children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("tr", { children: [
|
|
9289
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("th", { children: "#" }),
|
|
9290
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("th", { children: "时间" }),
|
|
9291
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("th", { children: "操作" }),
|
|
9292
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("th", { children: "对象" }),
|
|
9293
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("th", { children: "行动者" }),
|
|
9294
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("th", { children: "原因" }),
|
|
9295
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("th", { children: "载荷" })
|
|
9296
|
+
] }) }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("tbody", { children: blocks.map((block) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("tr", { children: [
|
|
9297
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("td", { children: String(block.seq) }),
|
|
9298
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("td", { children: formatTs(block.ts) }),
|
|
9299
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("td", { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
9344
9300
|
className: `${Workbench_module_css_default.badge} ${Workbench_module_css_default.statusCandidate}`,
|
|
9345
9301
|
children: opLabel(block.op)
|
|
9346
9302
|
}) }),
|
|
9347
|
-
(0, react_jsx_runtime.jsxs)("td", { children: [
|
|
9303
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("td", { children: [
|
|
9348
9304
|
block.objectType,
|
|
9349
9305
|
":",
|
|
9350
9306
|
block.objectId.slice(0, 8)
|
|
9351
9307
|
] }),
|
|
9352
|
-
(0, react_jsx_runtime.jsx)("td", { children: block.actor }),
|
|
9353
|
-
(0, react_jsx_runtime.jsx)("td", { children: block.reason ?? "" }),
|
|
9354
|
-
(0, react_jsx_runtime.jsx)("td", { children: (0, react_jsx_runtime.jsxs)("div", {
|
|
9308
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("td", { children: block.actor }),
|
|
9309
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("td", { children: block.reason ?? "" }),
|
|
9310
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("td", { children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
9355
9311
|
className: Workbench_module_css_default.cellActions,
|
|
9356
|
-
children: [(0, react_jsx_runtime.jsx)("div", {
|
|
9312
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
9357
9313
|
className: expandedSeq === block.seq ? Workbench_module_css_default.payloadFull : Workbench_module_css_default.valueCell,
|
|
9358
9314
|
children: expandedSeq === block.seq ? block.payload : block.payload.length > 80 ? `${block.payload.slice(0, 80)}…` : block.payload
|
|
9359
|
-
}), block.payload.length > 80 && (0, react_jsx_runtime.jsx)("span", {
|
|
9315
|
+
}), block.payload.length > 80 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
9360
9316
|
className: Workbench_module_css_default.payloadToggle,
|
|
9361
9317
|
title: expandedSeq === block.seq ? "收起" : "展开",
|
|
9362
9318
|
onClick: () => {
|
|
@@ -9367,34 +9323,34 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9367
9323
|
}) })
|
|
9368
9324
|
] }, block.seq)) })]
|
|
9369
9325
|
}),
|
|
9370
|
-
(0, react_jsx_runtime.jsxs)("div", {
|
|
9326
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
9371
9327
|
className: Workbench_module_css_default.toolbar,
|
|
9372
9328
|
children: [
|
|
9373
|
-
(0, react_jsx_runtime.jsxs)("label", {
|
|
9329
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
9374
9330
|
className: Workbench_module_css_default.field,
|
|
9375
|
-
children: [(0, react_jsx_runtime.jsx)("span", { children: "每页" }), (0, react_jsx_runtime.jsxs)("select", {
|
|
9331
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "每页" }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("select", {
|
|
9376
9332
|
value: String(pageSize),
|
|
9377
9333
|
onChange: (e) => {
|
|
9378
9334
|
setPageSize(Number(e.target.value));
|
|
9379
9335
|
setPage(0);
|
|
9380
9336
|
},
|
|
9381
9337
|
children: [
|
|
9382
|
-
(0, react_jsx_runtime.jsx)("option", {
|
|
9338
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
9383
9339
|
value: "10",
|
|
9384
9340
|
children: "10"
|
|
9385
9341
|
}),
|
|
9386
|
-
(0, react_jsx_runtime.jsx)("option", {
|
|
9342
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
9387
9343
|
value: "20",
|
|
9388
9344
|
children: "20"
|
|
9389
9345
|
}),
|
|
9390
|
-
(0, react_jsx_runtime.jsx)("option", {
|
|
9346
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
9391
9347
|
value: "50",
|
|
9392
9348
|
children: "50"
|
|
9393
9349
|
})
|
|
9394
9350
|
]
|
|
9395
9351
|
})]
|
|
9396
9352
|
}),
|
|
9397
|
-
(0, react_jsx_runtime.jsx)("button", {
|
|
9353
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
9398
9354
|
type: "button",
|
|
9399
9355
|
className: Workbench_module_css_default.btn,
|
|
9400
9356
|
disabled: page <= 0,
|
|
@@ -9403,7 +9359,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9403
9359
|
},
|
|
9404
9360
|
children: "上一页"
|
|
9405
9361
|
}),
|
|
9406
|
-
(0, react_jsx_runtime.jsxs)("span", {
|
|
9362
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
9407
9363
|
className: Workbench_module_css_default.cardMeta,
|
|
9408
9364
|
children: [
|
|
9409
9365
|
"第 ",
|
|
@@ -9415,7 +9371,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9415
9371
|
" 块"
|
|
9416
9372
|
]
|
|
9417
9373
|
}),
|
|
9418
|
-
(0, react_jsx_runtime.jsx)("button", {
|
|
9374
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
9419
9375
|
type: "button",
|
|
9420
9376
|
className: Workbench_module_css_default.btn,
|
|
9421
9377
|
disabled: page + 1 >= totalPages,
|
|
@@ -9424,7 +9380,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9424
9380
|
},
|
|
9425
9381
|
children: "下一页"
|
|
9426
9382
|
}),
|
|
9427
|
-
(0, react_jsx_runtime.jsx)("span", {
|
|
9383
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
9428
9384
|
className: Workbench_module_css_default.cardMeta,
|
|
9429
9385
|
children: "账本只增不删(哈希链审计);此处仅分页展示,不删除任何块。"
|
|
9430
9386
|
})
|
|
@@ -9434,7 +9390,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9434
9390
|
});
|
|
9435
9391
|
}
|
|
9436
9392
|
//#endregion
|
|
9437
|
-
//#region
|
|
9393
|
+
//#region src/client/HumanOpsPage.tsx
|
|
9438
9394
|
/**
|
|
9439
9395
|
* Human management page: the fixed-format injection and editing forms.
|
|
9440
9396
|
* Human additions use the ordinary experience/fact structure (fixed format);
|
|
@@ -9643,48 +9599,48 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9643
9599
|
fail(e);
|
|
9644
9600
|
}
|
|
9645
9601
|
};
|
|
9646
|
-
return (0, react_jsx_runtime.jsxs)("div", {
|
|
9602
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
9647
9603
|
className: Workbench_module_css_default.page,
|
|
9648
9604
|
children: [
|
|
9649
|
-
notice !== null && (0, react_jsx_runtime.jsx)("div", {
|
|
9605
|
+
notice !== null && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
9650
9606
|
className: Workbench_module_css_default.okLine,
|
|
9651
9607
|
children: notice
|
|
9652
9608
|
}),
|
|
9653
|
-
error !== null && (0, react_jsx_runtime.jsx)("div", {
|
|
9609
|
+
error !== null && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
9654
9610
|
className: Workbench_module_css_default.error,
|
|
9655
9611
|
children: error
|
|
9656
9612
|
}),
|
|
9657
|
-
(0, react_jsx_runtime.jsxs)("div", {
|
|
9613
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
9658
9614
|
className: Workbench_module_css_default.columns,
|
|
9659
|
-
children: [(0, react_jsx_runtime.jsxs)("section", {
|
|
9615
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("section", {
|
|
9660
9616
|
className: Workbench_module_css_default.column,
|
|
9661
9617
|
children: [
|
|
9662
|
-
(0, react_jsx_runtime.jsx)("div", {
|
|
9618
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
9663
9619
|
className: Workbench_module_css_default.sectionTitle,
|
|
9664
9620
|
children: "凭空添加经验(固定格式 = 普通经验结构;人工担保直接 live,置信下限约 0.67)"
|
|
9665
9621
|
}),
|
|
9666
|
-
(0, react_jsx_runtime.jsxs)("div", {
|
|
9622
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
9667
9623
|
className: Workbench_module_css_default.form,
|
|
9668
9624
|
children: [
|
|
9669
|
-
(0, react_jsx_runtime.jsxs)("label", {
|
|
9625
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
9670
9626
|
className: Workbench_module_css_default.field,
|
|
9671
|
-
children: [(0, react_jsx_runtime.jsx)("span", { children: "类型" }), (0, react_jsx_runtime.jsxs)("select", {
|
|
9627
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "类型" }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("select", {
|
|
9672
9628
|
value: kind,
|
|
9673
9629
|
onChange: (e) => {
|
|
9674
9630
|
setKind(e.target.value);
|
|
9675
9631
|
},
|
|
9676
|
-
children: [(0, react_jsx_runtime.jsx)("option", {
|
|
9632
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
9677
9633
|
value: "positive",
|
|
9678
9634
|
children: "正经验(可行路径)"
|
|
9679
|
-
}), (0, react_jsx_runtime.jsx)("option", {
|
|
9635
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
9680
9636
|
value: "negative",
|
|
9681
9637
|
children: "负经验(确认死路)"
|
|
9682
9638
|
})]
|
|
9683
9639
|
})]
|
|
9684
9640
|
}),
|
|
9685
|
-
(0, react_jsx_runtime.jsxs)("label", {
|
|
9641
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
9686
9642
|
className: Workbench_module_css_default.field,
|
|
9687
|
-
children: [(0, react_jsx_runtime.jsx)("span", { children: "任务族 *" }), (0, react_jsx_runtime.jsx)("input", {
|
|
9643
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "任务族 *" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
9688
9644
|
value: family,
|
|
9689
9645
|
placeholder: "如 windows-build",
|
|
9690
9646
|
onChange: (e) => {
|
|
@@ -9692,18 +9648,18 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9692
9648
|
}
|
|
9693
9649
|
})]
|
|
9694
9650
|
}),
|
|
9695
|
-
(0, react_jsx_runtime.jsxs)("label", {
|
|
9651
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
9696
9652
|
className: Workbench_module_css_default.field,
|
|
9697
|
-
children: [(0, react_jsx_runtime.jsx)("span", { children: "一句话摘要 *" }), (0, react_jsx_runtime.jsx)("input", {
|
|
9653
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "一句话摘要 *" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
9698
9654
|
value: gist,
|
|
9699
9655
|
onChange: (e) => {
|
|
9700
9656
|
setGist(e.target.value);
|
|
9701
9657
|
}
|
|
9702
9658
|
})]
|
|
9703
9659
|
}),
|
|
9704
|
-
(0, react_jsx_runtime.jsxs)("label", {
|
|
9660
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
9705
9661
|
className: Workbench_module_css_default.field,
|
|
9706
|
-
children: [(0, react_jsx_runtime.jsx)("span", { children: "适用情境 *(每行一条)" }), (0, react_jsx_runtime.jsx)("textarea", {
|
|
9662
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "适用情境 *(每行一条)" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("textarea", {
|
|
9707
9663
|
rows: 3,
|
|
9708
9664
|
value: situation,
|
|
9709
9665
|
onChange: (e) => {
|
|
@@ -9711,9 +9667,9 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9711
9667
|
}
|
|
9712
9668
|
})]
|
|
9713
9669
|
}),
|
|
9714
|
-
(0, react_jsx_runtime.jsxs)("label", {
|
|
9670
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
9715
9671
|
className: Workbench_module_css_default.field,
|
|
9716
|
-
children: [(0, react_jsx_runtime.jsx)("span", { children: "路径步骤 *(每行一步,按顺序)" }), (0, react_jsx_runtime.jsx)("textarea", {
|
|
9672
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "路径步骤 *(每行一步,按顺序)" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("textarea", {
|
|
9717
9673
|
rows: 4,
|
|
9718
9674
|
value: path,
|
|
9719
9675
|
onChange: (e) => {
|
|
@@ -9721,9 +9677,9 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9721
9677
|
}
|
|
9722
9678
|
})]
|
|
9723
9679
|
}),
|
|
9724
|
-
(0, react_jsx_runtime.jsxs)("label", {
|
|
9680
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
9725
9681
|
className: Workbench_module_css_default.field,
|
|
9726
|
-
children: [(0, react_jsx_runtime.jsx)("span", { children: "判断背景 *" }), (0, react_jsx_runtime.jsx)("textarea", {
|
|
9682
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "判断背景 *" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("textarea", {
|
|
9727
9683
|
rows: 2,
|
|
9728
9684
|
value: reasoning,
|
|
9729
9685
|
onChange: (e) => {
|
|
@@ -9731,9 +9687,9 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9731
9687
|
}
|
|
9732
9688
|
})]
|
|
9733
9689
|
}),
|
|
9734
|
-
(0, react_jsx_runtime.jsxs)("label", {
|
|
9690
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
9735
9691
|
className: Workbench_module_css_default.field,
|
|
9736
|
-
children: [(0, react_jsx_runtime.jsx)("span", { children: "不适用边界(每行一条)" }), (0, react_jsx_runtime.jsx)("textarea", {
|
|
9692
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "不适用边界(每行一条)" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("textarea", {
|
|
9737
9693
|
rows: 2,
|
|
9738
9694
|
value: limits,
|
|
9739
9695
|
onChange: (e) => {
|
|
@@ -9741,19 +9697,19 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9741
9697
|
}
|
|
9742
9698
|
})]
|
|
9743
9699
|
}),
|
|
9744
|
-
kind === "negative" && (0, react_jsx_runtime.jsxs)("label", {
|
|
9700
|
+
kind === "negative" && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
9745
9701
|
className: Workbench_module_css_default.field,
|
|
9746
|
-
children: [(0, react_jsx_runtime.jsx)("span", { children: "确认的失败原因 *" }), (0, react_jsx_runtime.jsx)("input", {
|
|
9702
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "确认的失败原因 *" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
9747
9703
|
value: failureReason,
|
|
9748
9704
|
onChange: (e) => {
|
|
9749
9705
|
setFailureReason(e.target.value);
|
|
9750
9706
|
}
|
|
9751
9707
|
})]
|
|
9752
9708
|
}),
|
|
9753
|
-
(0, react_jsx_runtime.jsxs)("label", {
|
|
9709
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
9754
9710
|
className: Workbench_module_css_default.field,
|
|
9755
9711
|
title: "作用域:该经验适用的领域/上下文;留空为无作用域",
|
|
9756
|
-
children: [(0, react_jsx_runtime.jsx)("span", { children: "作用域(可选)" }), (0, react_jsx_runtime.jsx)("input", {
|
|
9712
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "作用域(可选)" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
9757
9713
|
value: addContext,
|
|
9758
9714
|
placeholder: "如 coding-windows-build",
|
|
9759
9715
|
onChange: (e) => {
|
|
@@ -9761,7 +9717,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9761
9717
|
}
|
|
9762
9718
|
})]
|
|
9763
9719
|
}),
|
|
9764
|
-
(0, react_jsx_runtime.jsx)("button", {
|
|
9720
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
9765
9721
|
type: "button",
|
|
9766
9722
|
className: Workbench_module_css_default.btn,
|
|
9767
9723
|
onClick: () => {
|
|
@@ -9771,51 +9727,51 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9771
9727
|
})
|
|
9772
9728
|
]
|
|
9773
9729
|
}),
|
|
9774
|
-
(0, react_jsx_runtime.jsx)("div", {
|
|
9730
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
9775
9731
|
className: Workbench_module_css_default.sectionTitle,
|
|
9776
9732
|
children: "摄取归一(从外部来源学习:书/技能/文档/会话;产出候选待验证,不直接 live)"
|
|
9777
9733
|
}),
|
|
9778
|
-
(0, react_jsx_runtime.jsxs)("div", {
|
|
9734
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
9779
9735
|
className: Workbench_module_css_default.form,
|
|
9780
9736
|
children: [
|
|
9781
|
-
(0, react_jsx_runtime.jsxs)("label", {
|
|
9737
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
9782
9738
|
className: Workbench_module_css_default.field,
|
|
9783
|
-
children: [(0, react_jsx_runtime.jsx)("span", { children: "来源类型" }), (0, react_jsx_runtime.jsxs)("select", {
|
|
9739
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "来源类型" }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("select", {
|
|
9784
9740
|
value: ingestSourceType,
|
|
9785
9741
|
onChange: (e) => {
|
|
9786
9742
|
setIngestSourceType(e.target.value);
|
|
9787
9743
|
},
|
|
9788
9744
|
children: [
|
|
9789
|
-
(0, react_jsx_runtime.jsx)("option", {
|
|
9745
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
9790
9746
|
value: "other",
|
|
9791
9747
|
children: "other(其他)"
|
|
9792
9748
|
}),
|
|
9793
|
-
(0, react_jsx_runtime.jsx)("option", {
|
|
9749
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
9794
9750
|
value: "note",
|
|
9795
9751
|
children: "note(笔记)"
|
|
9796
9752
|
}),
|
|
9797
|
-
(0, react_jsx_runtime.jsx)("option", {
|
|
9753
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
9798
9754
|
value: "conversation",
|
|
9799
9755
|
children: "conversation(会话)"
|
|
9800
9756
|
}),
|
|
9801
|
-
(0, react_jsx_runtime.jsx)("option", {
|
|
9757
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
9802
9758
|
value: "document",
|
|
9803
9759
|
children: "document(文档)"
|
|
9804
9760
|
}),
|
|
9805
|
-
(0, react_jsx_runtime.jsx)("option", {
|
|
9761
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
9806
9762
|
value: "book",
|
|
9807
9763
|
children: "book(书籍)"
|
|
9808
9764
|
}),
|
|
9809
|
-
(0, react_jsx_runtime.jsx)("option", {
|
|
9765
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
9810
9766
|
value: "skill",
|
|
9811
9767
|
children: "skill(技能)"
|
|
9812
9768
|
})
|
|
9813
9769
|
]
|
|
9814
9770
|
})]
|
|
9815
9771
|
}),
|
|
9816
|
-
(0, react_jsx_runtime.jsxs)("label", {
|
|
9772
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
9817
9773
|
className: Workbench_module_css_default.field,
|
|
9818
|
-
children: [(0, react_jsx_runtime.jsx)("span", { children: "出处 *(sourceRef)" }), (0, react_jsx_runtime.jsx)("input", {
|
|
9774
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "出处 *(sourceRef)" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
9819
9775
|
value: ingestSourceRef,
|
|
9820
9776
|
placeholder: "书名/技能名/会话 id(可审计)",
|
|
9821
9777
|
onChange: (e) => {
|
|
@@ -9823,10 +9779,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9823
9779
|
}
|
|
9824
9780
|
})]
|
|
9825
9781
|
}),
|
|
9826
|
-
(0, react_jsx_runtime.jsxs)("label", {
|
|
9782
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
9827
9783
|
className: Workbench_module_css_default.field,
|
|
9828
9784
|
title: "作用域:摄取出的候选适用的领域/上下文",
|
|
9829
|
-
children: [(0, react_jsx_runtime.jsx)("span", { children: "作用域(可选)" }), (0, react_jsx_runtime.jsx)("input", {
|
|
9785
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "作用域(可选)" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
9830
9786
|
value: ingestContext,
|
|
9831
9787
|
placeholder: "如 coding-windows-build",
|
|
9832
9788
|
onChange: (e) => {
|
|
@@ -9834,25 +9790,25 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9834
9790
|
}
|
|
9835
9791
|
})]
|
|
9836
9792
|
}),
|
|
9837
|
-
(0, react_jsx_runtime.jsxs)("label", {
|
|
9793
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
9838
9794
|
className: Workbench_module_css_default.field,
|
|
9839
|
-
children: [(0, react_jsx_runtime.jsx)("span", { children: "类型" }), (0, react_jsx_runtime.jsxs)("select", {
|
|
9795
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "类型" }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("select", {
|
|
9840
9796
|
value: ingestKind,
|
|
9841
9797
|
onChange: (e) => {
|
|
9842
9798
|
setIngestKind(e.target.value);
|
|
9843
9799
|
},
|
|
9844
|
-
children: [(0, react_jsx_runtime.jsx)("option", {
|
|
9800
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
9845
9801
|
value: "positive",
|
|
9846
9802
|
children: "正经验(可行路径)"
|
|
9847
|
-
}), (0, react_jsx_runtime.jsx)("option", {
|
|
9803
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
9848
9804
|
value: "negative",
|
|
9849
9805
|
children: "负经验(确认死路)"
|
|
9850
9806
|
})]
|
|
9851
9807
|
})]
|
|
9852
9808
|
}),
|
|
9853
|
-
(0, react_jsx_runtime.jsxs)("label", {
|
|
9809
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
9854
9810
|
className: Workbench_module_css_default.field,
|
|
9855
|
-
children: [(0, react_jsx_runtime.jsx)("span", { children: "任务族 *" }), (0, react_jsx_runtime.jsx)("input", {
|
|
9811
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "任务族 *" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
9856
9812
|
value: ingestFamily,
|
|
9857
9813
|
placeholder: "如 windows-build",
|
|
9858
9814
|
onChange: (e) => {
|
|
@@ -9860,18 +9816,18 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9860
9816
|
}
|
|
9861
9817
|
})]
|
|
9862
9818
|
}),
|
|
9863
|
-
(0, react_jsx_runtime.jsxs)("label", {
|
|
9819
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
9864
9820
|
className: Workbench_module_css_default.field,
|
|
9865
|
-
children: [(0, react_jsx_runtime.jsx)("span", { children: "一句话摘要 *" }), (0, react_jsx_runtime.jsx)("input", {
|
|
9821
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "一句话摘要 *" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
9866
9822
|
value: ingestGist,
|
|
9867
9823
|
onChange: (e) => {
|
|
9868
9824
|
setIngestGist(e.target.value);
|
|
9869
9825
|
}
|
|
9870
9826
|
})]
|
|
9871
9827
|
}),
|
|
9872
|
-
(0, react_jsx_runtime.jsxs)("label", {
|
|
9828
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
9873
9829
|
className: Workbench_module_css_default.field,
|
|
9874
|
-
children: [(0, react_jsx_runtime.jsx)("span", { children: "适用情境 *(每行一条)" }), (0, react_jsx_runtime.jsx)("textarea", {
|
|
9830
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "适用情境 *(每行一条)" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("textarea", {
|
|
9875
9831
|
rows: 3,
|
|
9876
9832
|
value: ingestSituation,
|
|
9877
9833
|
onChange: (e) => {
|
|
@@ -9879,9 +9835,9 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9879
9835
|
}
|
|
9880
9836
|
})]
|
|
9881
9837
|
}),
|
|
9882
|
-
(0, react_jsx_runtime.jsxs)("label", {
|
|
9838
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
9883
9839
|
className: Workbench_module_css_default.field,
|
|
9884
|
-
children: [(0, react_jsx_runtime.jsx)("span", { children: "路径步骤 *(每行一步,按顺序)" }), (0, react_jsx_runtime.jsx)("textarea", {
|
|
9840
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "路径步骤 *(每行一步,按顺序)" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("textarea", {
|
|
9885
9841
|
rows: 4,
|
|
9886
9842
|
value: ingestPath,
|
|
9887
9843
|
onChange: (e) => {
|
|
@@ -9889,9 +9845,9 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9889
9845
|
}
|
|
9890
9846
|
})]
|
|
9891
9847
|
}),
|
|
9892
|
-
(0, react_jsx_runtime.jsxs)("label", {
|
|
9848
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
9893
9849
|
className: Workbench_module_css_default.field,
|
|
9894
|
-
children: [(0, react_jsx_runtime.jsx)("span", { children: "判断背景 *" }), (0, react_jsx_runtime.jsx)("textarea", {
|
|
9850
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "判断背景 *" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("textarea", {
|
|
9895
9851
|
rows: 2,
|
|
9896
9852
|
value: ingestReasoning,
|
|
9897
9853
|
onChange: (e) => {
|
|
@@ -9899,9 +9855,9 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9899
9855
|
}
|
|
9900
9856
|
})]
|
|
9901
9857
|
}),
|
|
9902
|
-
(0, react_jsx_runtime.jsxs)("label", {
|
|
9858
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
9903
9859
|
className: Workbench_module_css_default.field,
|
|
9904
|
-
children: [(0, react_jsx_runtime.jsx)("span", { children: "不适用边界(每行一条)" }), (0, react_jsx_runtime.jsx)("textarea", {
|
|
9860
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "不适用边界(每行一条)" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("textarea", {
|
|
9905
9861
|
rows: 2,
|
|
9906
9862
|
value: ingestLimits,
|
|
9907
9863
|
onChange: (e) => {
|
|
@@ -9909,16 +9865,16 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9909
9865
|
}
|
|
9910
9866
|
})]
|
|
9911
9867
|
}),
|
|
9912
|
-
ingestKind === "negative" && (0, react_jsx_runtime.jsxs)("label", {
|
|
9868
|
+
ingestKind === "negative" && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
9913
9869
|
className: Workbench_module_css_default.field,
|
|
9914
|
-
children: [(0, react_jsx_runtime.jsx)("span", { children: "确认的失败原因 *" }), (0, react_jsx_runtime.jsx)("input", {
|
|
9870
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "确认的失败原因 *" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
9915
9871
|
value: ingestFailureReason,
|
|
9916
9872
|
onChange: (e) => {
|
|
9917
9873
|
setIngestFailureReason(e.target.value);
|
|
9918
9874
|
}
|
|
9919
9875
|
})]
|
|
9920
9876
|
}),
|
|
9921
|
-
(0, react_jsx_runtime.jsx)("button", {
|
|
9877
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
9922
9878
|
type: "button",
|
|
9923
9879
|
className: Workbench_module_css_default.btn,
|
|
9924
9880
|
onClick: () => {
|
|
@@ -9928,21 +9884,21 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9928
9884
|
})
|
|
9929
9885
|
]
|
|
9930
9886
|
}),
|
|
9931
|
-
(0, react_jsx_runtime.jsx)("div", {
|
|
9887
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
9932
9888
|
className: Workbench_module_css_default.sectionTitle,
|
|
9933
9889
|
children: "人工添加画像(默认锁定:提取冲突不会自动取代)"
|
|
9934
9890
|
}),
|
|
9935
|
-
(0, react_jsx_runtime.jsxs)("div", {
|
|
9891
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
9936
9892
|
className: Workbench_module_css_default.form,
|
|
9937
9893
|
children: [
|
|
9938
|
-
(0, react_jsx_runtime.jsxs)("label", {
|
|
9894
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
9939
9895
|
className: Workbench_module_css_default.field,
|
|
9940
|
-
children: [(0, react_jsx_runtime.jsx)("span", { children: "分类" }), (0, react_jsx_runtime.jsx)("select", {
|
|
9896
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "分类" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("select", {
|
|
9941
9897
|
value: factCategory,
|
|
9942
9898
|
onChange: (e) => {
|
|
9943
9899
|
setFactCategory(e.target.value);
|
|
9944
9900
|
},
|
|
9945
|
-
children: CATEGORIES.map((value) => (0, react_jsx_runtime.jsxs)("option", {
|
|
9901
|
+
children: CATEGORIES.map((value) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("option", {
|
|
9946
9902
|
value,
|
|
9947
9903
|
children: [
|
|
9948
9904
|
value,
|
|
@@ -9953,9 +9909,9 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9953
9909
|
}, value))
|
|
9954
9910
|
})]
|
|
9955
9911
|
}),
|
|
9956
|
-
(0, react_jsx_runtime.jsxs)("label", {
|
|
9912
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
9957
9913
|
className: Workbench_module_css_default.field,
|
|
9958
|
-
children: [(0, react_jsx_runtime.jsx)("span", { children: "键 *" }), (0, react_jsx_runtime.jsx)("input", {
|
|
9914
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "键 *" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
9959
9915
|
value: factKey,
|
|
9960
9916
|
placeholder: "如 timezone",
|
|
9961
9917
|
onChange: (e) => {
|
|
@@ -9963,18 +9919,18 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9963
9919
|
}
|
|
9964
9920
|
})]
|
|
9965
9921
|
}),
|
|
9966
|
-
(0, react_jsx_runtime.jsxs)("label", {
|
|
9922
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
9967
9923
|
className: Workbench_module_css_default.field,
|
|
9968
|
-
children: [(0, react_jsx_runtime.jsx)("span", { children: "值 *" }), (0, react_jsx_runtime.jsx)("input", {
|
|
9924
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "值 *" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
9969
9925
|
value: factValue,
|
|
9970
9926
|
onChange: (e) => {
|
|
9971
9927
|
setFactValue(e.target.value);
|
|
9972
9928
|
}
|
|
9973
9929
|
})]
|
|
9974
9930
|
}),
|
|
9975
|
-
(0, react_jsx_runtime.jsxs)("label", {
|
|
9931
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
9976
9932
|
className: Workbench_module_css_default.check,
|
|
9977
|
-
children: [(0, react_jsx_runtime.jsx)("input", {
|
|
9933
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
9978
9934
|
type: "checkbox",
|
|
9979
9935
|
checked: factLocked,
|
|
9980
9936
|
onChange: (e) => {
|
|
@@ -9982,7 +9938,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9982
9938
|
}
|
|
9983
9939
|
}), "立即锁定(人工确认)"]
|
|
9984
9940
|
}),
|
|
9985
|
-
(0, react_jsx_runtime.jsx)("button", {
|
|
9941
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
9986
9942
|
type: "button",
|
|
9987
9943
|
className: Workbench_module_css_default.btn,
|
|
9988
9944
|
onClick: () => {
|
|
@@ -9993,19 +9949,19 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
9993
9949
|
]
|
|
9994
9950
|
})
|
|
9995
9951
|
]
|
|
9996
|
-
}), (0, react_jsx_runtime.jsxs)("section", {
|
|
9952
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("section", {
|
|
9997
9953
|
className: Workbench_module_css_default.column,
|
|
9998
9954
|
children: [
|
|
9999
|
-
(0, react_jsx_runtime.jsx)("div", {
|
|
9955
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
10000
9956
|
className: Workbench_module_css_default.sectionTitle,
|
|
10001
9957
|
children: "编辑既有经验(按 id;完整编辑请配合经验库监控页的详情)"
|
|
10002
9958
|
}),
|
|
10003
|
-
(0, react_jsx_runtime.jsxs)("div", {
|
|
9959
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
10004
9960
|
className: Workbench_module_css_default.form,
|
|
10005
9961
|
children: [
|
|
10006
|
-
(0, react_jsx_runtime.jsxs)("label", {
|
|
9962
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
10007
9963
|
className: Workbench_module_css_default.field,
|
|
10008
|
-
children: [(0, react_jsx_runtime.jsx)("span", { children: "经验 id *" }), (0, react_jsx_runtime.jsx)("input", {
|
|
9964
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "经验 id *" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
10009
9965
|
value: editId,
|
|
10010
9966
|
placeholder: "从账本或经验列表复制",
|
|
10011
9967
|
onChange: (e) => {
|
|
@@ -10013,18 +9969,18 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
10013
9969
|
}
|
|
10014
9970
|
})]
|
|
10015
9971
|
}),
|
|
10016
|
-
(0, react_jsx_runtime.jsxs)("label", {
|
|
9972
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
10017
9973
|
className: Workbench_module_css_default.field,
|
|
10018
|
-
children: [(0, react_jsx_runtime.jsx)("span", { children: "新摘要(留空不改)" }), (0, react_jsx_runtime.jsx)("input", {
|
|
9974
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "新摘要(留空不改)" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
10019
9975
|
value: editGist,
|
|
10020
9976
|
onChange: (e) => {
|
|
10021
9977
|
setEditGist(e.target.value);
|
|
10022
9978
|
}
|
|
10023
9979
|
})]
|
|
10024
9980
|
}),
|
|
10025
|
-
(0, react_jsx_runtime.jsxs)("label", {
|
|
9981
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
10026
9982
|
className: Workbench_module_css_default.field,
|
|
10027
|
-
children: [(0, react_jsx_runtime.jsx)("span", { children: "新不适用边界(每行一条,留空不改)" }), (0, react_jsx_runtime.jsx)("textarea", {
|
|
9983
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "新不适用边界(每行一条,留空不改)" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("textarea", {
|
|
10028
9984
|
rows: 3,
|
|
10029
9985
|
value: editLimits,
|
|
10030
9986
|
onChange: (e) => {
|
|
@@ -10032,10 +9988,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
10032
9988
|
}
|
|
10033
9989
|
})]
|
|
10034
9990
|
}),
|
|
10035
|
-
(0, react_jsx_runtime.jsxs)("label", {
|
|
9991
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
10036
9992
|
className: Workbench_module_css_default.field,
|
|
10037
9993
|
title: "作用域:留空不改;填写则改写该经验的作用域",
|
|
10038
|
-
children: [(0, react_jsx_runtime.jsx)("span", { children: "新作用域(留空不改)" }), (0, react_jsx_runtime.jsx)("input", {
|
|
9994
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "新作用域(留空不改)" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
10039
9995
|
value: editContext,
|
|
10040
9996
|
placeholder: "如 coding-windows-build",
|
|
10041
9997
|
onChange: (e) => {
|
|
@@ -10043,9 +9999,9 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
10043
9999
|
}
|
|
10044
10000
|
})]
|
|
10045
10001
|
}),
|
|
10046
|
-
(0, react_jsx_runtime.jsxs)("label", {
|
|
10002
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
|
|
10047
10003
|
className: Workbench_module_css_default.check,
|
|
10048
|
-
children: [(0, react_jsx_runtime.jsx)("input", {
|
|
10004
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
10049
10005
|
type: "checkbox",
|
|
10050
10006
|
checked: editGlobalFlag,
|
|
10051
10007
|
onChange: (e) => {
|
|
@@ -10053,7 +10009,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
10053
10009
|
}
|
|
10054
10010
|
}), "全局作用域(勾选 = 跨领域可召回;取消 = 仅本作用域)"]
|
|
10055
10011
|
}),
|
|
10056
|
-
(0, react_jsx_runtime.jsx)("button", {
|
|
10012
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
10057
10013
|
type: "button",
|
|
10058
10014
|
className: Workbench_module_css_default.btn,
|
|
10059
10015
|
onClick: () => {
|
|
@@ -10063,21 +10019,21 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
10063
10019
|
})
|
|
10064
10020
|
]
|
|
10065
10021
|
}),
|
|
10066
|
-
(0, react_jsx_runtime.jsx)("div", {
|
|
10022
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
10067
10023
|
className: Workbench_module_css_default.sectionTitle,
|
|
10068
10024
|
children: "人工操作纪律"
|
|
10069
10025
|
}),
|
|
10070
|
-
(0, react_jsx_runtime.jsxs)("ul", {
|
|
10026
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("ul", {
|
|
10071
10027
|
className: Workbench_module_css_default.rules,
|
|
10072
10028
|
children: [
|
|
10073
|
-
(0, react_jsx_runtime.jsx)("li", { children: "永久标记:置顶信任(置信不低于 0.67)且豁免注入预算退役。" }),
|
|
10074
|
-
(0, react_jsx_runtime.jsx)("li", { children: "删除:全家族墓碑,指纹保留在账本,可审计不可恢复。" }),
|
|
10075
|
-
(0, react_jsx_runtime.jsx)("li", { children: "编辑:就地改写活动版本,原内容保留在账本载荷。" }),
|
|
10076
|
-
(0, react_jsx_runtime.jsx)("li", { children: "凭空添加:固定格式、人工担保、直接 live、置信下限约 0.67。" }),
|
|
10077
|
-
(0, react_jsx_runtime.jsx)("li", { children: "摄取归一:带出处产出候选(初始按来源先验),须经验证才转正。" }),
|
|
10078
|
-
(0, react_jsx_runtime.jsx)("li", { children: "作用域:默认本作用域;可勾选全局(跨领域可召回)。" }),
|
|
10079
|
-
(0, react_jsx_runtime.jsx)("li", { children: "冷宫:候选试探失败即入冷宫,只有人工可放回候选或删除。" }),
|
|
10080
|
-
(0, react_jsx_runtime.jsx)("li", { children: "所有人工操作强制填写原因,账本 actor=human。" })
|
|
10029
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("li", { children: "永久标记:置顶信任(置信不低于 0.67)且豁免注入预算退役。" }),
|
|
10030
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("li", { children: "删除:全家族墓碑,指纹保留在账本,可审计不可恢复。" }),
|
|
10031
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("li", { children: "编辑:就地改写活动版本,原内容保留在账本载荷。" }),
|
|
10032
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("li", { children: "凭空添加:固定格式、人工担保、直接 live、置信下限约 0.67。" }),
|
|
10033
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("li", { children: "摄取归一:带出处产出候选(初始按来源先验),须经验证才转正。" }),
|
|
10034
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("li", { children: "作用域:默认本作用域;可勾选全局(跨领域可召回)。" }),
|
|
10035
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("li", { children: "冷宫:候选试探失败即入冷宫,只有人工可放回候选或删除。" }),
|
|
10036
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("li", { children: "所有人工操作强制填写原因,账本 actor=human。" })
|
|
10081
10037
|
]
|
|
10082
10038
|
})
|
|
10083
10039
|
]
|
|
@@ -10087,13 +10043,15 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
10087
10043
|
});
|
|
10088
10044
|
}
|
|
10089
10045
|
//#endregion
|
|
10090
|
-
//#region
|
|
10046
|
+
//#region src/client/Workbench.tsx
|
|
10091
10047
|
/**
|
|
10092
10048
|
* Memory workbench takeover: covers the frame area to the right of the
|
|
10093
|
-
* sidebar while a monitoring page is selected
|
|
10094
|
-
*
|
|
10095
|
-
*
|
|
10096
|
-
*
|
|
10049
|
+
* sidebar while a monitoring page is selected. The entry point is the
|
|
10050
|
+
* sidebar.footer.action button (MemoryFooterAction); page switching lives
|
|
10051
|
+
* inside this panel as a tab bar so all four pages remain reachable without
|
|
10052
|
+
* relying on a sidebar nav group. Opening a session row clears the selection
|
|
10053
|
+
* and returns to the native conversation view. All human mutations go through
|
|
10054
|
+
* the audited Remote callbacks.
|
|
10097
10055
|
*/
|
|
10098
10056
|
/** Format an epoch-ms timestamp as a compact local string. */
|
|
10099
10057
|
function formatTs(ts) {
|
|
@@ -10190,56 +10148,64 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
10190
10148
|
const bound = (0, react.useMemo)(() => sessionId === void 0 ? null : bindMemoryActions(props, sessionId), [sessionId]);
|
|
10191
10149
|
if (!active || info === null || bound === null) return null;
|
|
10192
10150
|
const title = MEMORY_NAV_ITEMS.find((item) => item.key === nav.page)?.label ?? info.workspaceTitle;
|
|
10193
|
-
return (0, react_jsx_runtime.jsxs)("div", {
|
|
10151
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
10194
10152
|
ref: rootRef,
|
|
10195
10153
|
className: Workbench_module_css_default.panel,
|
|
10196
10154
|
style: { left: `${String(sidebarWidth)}px` },
|
|
10197
10155
|
"data-memory-workbench": true,
|
|
10198
|
-
children: [
|
|
10199
|
-
|
|
10200
|
-
|
|
10201
|
-
|
|
10202
|
-
|
|
10203
|
-
|
|
10204
|
-
|
|
10205
|
-
|
|
10206
|
-
|
|
10207
|
-
|
|
10156
|
+
children: [
|
|
10157
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("header", {
|
|
10158
|
+
className: Workbench_module_css_default.header,
|
|
10159
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
10160
|
+
className: Workbench_module_css_default.titleBlock,
|
|
10161
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
10162
|
+
className: Workbench_module_css_default.title,
|
|
10163
|
+
children: title
|
|
10164
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
10165
|
+
className: Workbench_module_css_default.subtitle,
|
|
10166
|
+
children: "自进化记忆 · 生用修记 · 全局共享记忆库"
|
|
10167
|
+
})]
|
|
10168
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
10169
|
+
className: Workbench_module_css_default.statline,
|
|
10170
|
+
children: stats === null ? "加载中…" : `经验 ${String(stats.experiences.total)}(live ${String(stats.experiences.byStatus.live)} / 隔离 ${String(stats.experiences.byStatus.challenged)})· 画像 ${String(stats.facts.current)} · 日记 ${String(stats.diary.total)}(待提取 ${String(stats.diary.unextracted)})· 账本 ${String(stats.ledgerBlocks)} 块`
|
|
10208
10171
|
})]
|
|
10209
|
-
}),
|
|
10210
|
-
|
|
10211
|
-
|
|
10212
|
-
|
|
10213
|
-
|
|
10214
|
-
|
|
10215
|
-
|
|
10216
|
-
|
|
10217
|
-
|
|
10218
|
-
|
|
10219
|
-
|
|
10220
|
-
|
|
10221
|
-
|
|
10222
|
-
|
|
10223
|
-
|
|
10224
|
-
|
|
10225
|
-
|
|
10226
|
-
|
|
10227
|
-
|
|
10228
|
-
|
|
10229
|
-
|
|
10230
|
-
|
|
10172
|
+
}),
|
|
10173
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("nav", {
|
|
10174
|
+
className: Workbench_module_css_default.workbenchTabs,
|
|
10175
|
+
"aria-label": "记忆监控页面",
|
|
10176
|
+
children: MEMORY_NAV_ITEMS.map((item) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
10177
|
+
type: "button",
|
|
10178
|
+
className: clsx(Workbench_module_css_default.workbenchTab, nav.page === item.key && Workbench_module_css_default.workbenchTabActive),
|
|
10179
|
+
"aria-current": nav.page === item.key ? "page" : void 0,
|
|
10180
|
+
onClick: () => {
|
|
10181
|
+
props.actions.select(item.key);
|
|
10182
|
+
},
|
|
10183
|
+
children: item.label
|
|
10184
|
+
}, item.key))
|
|
10185
|
+
}),
|
|
10186
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("main", {
|
|
10187
|
+
className: Workbench_module_css_default.body,
|
|
10188
|
+
children: [
|
|
10189
|
+
nav.page === "experience" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ExperiencePage, {
|
|
10190
|
+
actions: bound,
|
|
10191
|
+
onChanged: refreshStats
|
|
10192
|
+
}),
|
|
10193
|
+
nav.page === "fact" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FactDiaryPage, {
|
|
10194
|
+
actions: bound,
|
|
10195
|
+
onChanged: refreshStats
|
|
10196
|
+
}),
|
|
10197
|
+
nav.page === "ledger" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(LedgerPage, { actions: bound }),
|
|
10198
|
+
nav.page === "human" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(HumanOpsPage, {
|
|
10199
|
+
actions: bound,
|
|
10200
|
+
onChanged: refreshStats
|
|
10201
|
+
})
|
|
10202
|
+
]
|
|
10203
|
+
})
|
|
10204
|
+
]
|
|
10231
10205
|
});
|
|
10232
10206
|
}
|
|
10233
10207
|
//#endregion
|
|
10234
|
-
//#region
|
|
10235
|
-
/**
|
|
10236
|
-
* Memory workbench plugin, browser half: mounts the generated memory Remote
|
|
10237
|
-
* contribution, then registers two entries that share one nav store — a
|
|
10238
|
-
* sidebar.sections nav group (left column, between New Session and the
|
|
10239
|
-
* workspace browser) and a shell.overlay takeover (the monitoring pages on
|
|
10240
|
-
* the right). Selecting a menu in the nav group shows the matching page;
|
|
10241
|
-
* opening a session returns to the native conversation view.
|
|
10242
|
-
*/
|
|
10208
|
+
//#region src/client/index.ts
|
|
10243
10209
|
/**
|
|
10244
10210
|
* Required services: slot seat, session list, and the Remote carrier. The
|
|
10245
10211
|
* `remote.memory` namespace is NOT an inject dependency: this plugin mounts
|
|
@@ -10310,12 +10276,12 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
10310
10276
|
ingest: async (session, request) => unwrap(await memory.ingest(session, request))
|
|
10311
10277
|
};
|
|
10312
10278
|
const navStore = createMemoryNavStore();
|
|
10313
|
-
const disposeNav = ctx.slots.inject("sidebar.
|
|
10314
|
-
name: "sidebar.
|
|
10279
|
+
const disposeNav = ctx.slots.inject("sidebar.footer.action", () => ctx.slots.register({
|
|
10280
|
+
name: "sidebar.footer.action",
|
|
10315
10281
|
id: "memory-nav",
|
|
10316
10282
|
order: 100,
|
|
10317
10283
|
store: navStore
|
|
10318
|
-
},
|
|
10284
|
+
}, MemoryFooterAction));
|
|
10319
10285
|
const disposeOverlay = ctx.slots.inject("shell.overlay", () => ctx.slots.register({
|
|
10320
10286
|
name: "shell.overlay",
|
|
10321
10287
|
id: "memory-workbench",
|