dsh-engram 0.9.0 → 0.9.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 +40 -1
- package/README.zh.md +30 -0
- package/docs/RELEASE-NOTES-v0.9.1.md +112 -0
- package/docs/RELEASE-NOTES-v0.9.2.md +83 -0
- package/lib/api.js +8 -2
- package/lib/client.js +1017 -625
- package/lib/context-gc.js +93 -10
- package/lib/esrModel.mjs +25 -6
- package/lib/index.js +24 -4
- package/lib/mental.js +47 -10
- package/package.json +4 -1
- package/scripts/host-mount-probe.mjs +180 -0
package/lib/client.js
CHANGED
|
@@ -33,6 +33,33 @@ __export(entry_exports, {
|
|
|
33
33
|
});
|
|
34
34
|
module.exports = __toCommonJS(entry_exports);
|
|
35
35
|
|
|
36
|
+
// client/src/i18n/index.ts
|
|
37
|
+
var DEFAULT_LOCALE = "en-US";
|
|
38
|
+
var translate = (key) => key;
|
|
39
|
+
var localeTag = DEFAULT_LOCALE;
|
|
40
|
+
function installTranslator(fn, locale) {
|
|
41
|
+
translate = fn;
|
|
42
|
+
if (locale !== void 0 && locale !== "") localeTag = locale;
|
|
43
|
+
}
|
|
44
|
+
function activeLocale() {
|
|
45
|
+
return localeTag;
|
|
46
|
+
}
|
|
47
|
+
function format(text, params) {
|
|
48
|
+
return text.replace(
|
|
49
|
+
/\{(\w+)\}/g,
|
|
50
|
+
(match, name) => Object.prototype.hasOwnProperty.call(params, name) ? String(params[name]) : match
|
|
51
|
+
);
|
|
52
|
+
}
|
|
53
|
+
function stringParams(params) {
|
|
54
|
+
const out = {};
|
|
55
|
+
for (const [name, value] of Object.entries(params)) out[name] = String(value);
|
|
56
|
+
return out;
|
|
57
|
+
}
|
|
58
|
+
function tr(key, params) {
|
|
59
|
+
const text = params === void 0 ? translate(key) : translate(key, stringParams(params));
|
|
60
|
+
return params === void 0 ? text : format(text, params);
|
|
61
|
+
}
|
|
62
|
+
|
|
36
63
|
// client/src/api.ts
|
|
37
64
|
var API_PREFIX = "/api/dsh-engram";
|
|
38
65
|
var EngramApiError = class extends Error {
|
|
@@ -129,7 +156,8 @@ var EngramApi = class {
|
|
|
129
156
|
return readJson(await fetch(`${API_PREFIX}/observations${query({ workspace })}`));
|
|
130
157
|
}
|
|
131
158
|
async model(workspace = "") {
|
|
132
|
-
|
|
159
|
+
const lang = activeLocale().toLowerCase().startsWith("ru") ? "ru" : "zh";
|
|
160
|
+
return readJson(await fetch(`${API_PREFIX}/model${query({ workspace, lang })}`));
|
|
133
161
|
}
|
|
134
162
|
async stats(workspace) {
|
|
135
163
|
return readJson(await fetch(`${API_PREFIX}/stats${query({ workspace })}`));
|
|
@@ -307,7 +335,7 @@ function shortAgent(a) {
|
|
|
307
335
|
return bare.replace(/^session[-_]/i, "").replace(/^agent[-_]/i, "").slice(0, 14);
|
|
308
336
|
}
|
|
309
337
|
function fmtDateShort(ts) {
|
|
310
|
-
return ts ? new Date(ts).toLocaleDateString(
|
|
338
|
+
return ts ? new Date(ts).toLocaleDateString(activeLocale(), { month: "short", day: "numeric" }) : "\u2013";
|
|
311
339
|
}
|
|
312
340
|
function buildTasksMarkdown(tasks) {
|
|
313
341
|
const esc = (s4) => String(s4 ?? "").replace(/\|/g, "\\|").replace(/\n/g, " ");
|
|
@@ -315,11 +343,7 @@ function buildTasksMarkdown(tasks) {
|
|
|
315
343
|
const ev = `${t.artifact ? "artifact\u2713" : "artifact\u2717"} \xB7 ${t.evaluation ? "eval\u2713" : "eval\u2717"} \xB7 ${(t.memoryRefs?.length ?? 0) > 0 ? "ref\u2713" : "ref\u2717"}`;
|
|
316
344
|
return `| ${t.state} | ${esc(t.name)} | ${esc(t.workspace.replace(/^.*[\\/]/, ""))} | ${esc(taskGaps(t).join(", ") || "\u2014")} | ${ev} | ${fmtDateShort(t.createdAt ?? 0)} |`;
|
|
317
345
|
});
|
|
318
|
-
return
|
|
319
|
-
|
|
320
|
-
| \u72B6\u6001 | \u4EFB\u52A1 | \u5DE5\u4F5C\u533A | \u8BC1\u636E\u7F3A\u53E3 | \u8BC1\u636E | \u521B\u5EFA |
|
|
321
|
-
|---|---|---|---|---|---|
|
|
322
|
-
${rows.join("\n") || "(\u65E0\u4EFB\u52A1)"}`;
|
|
346
|
+
return tr("# ESR \u4EFB\u52A1\u5BFC\u51FA \xB7 {0}\n\n| \u72B6\u6001 | \u4EFB\u52A1 | \u5DE5\u4F5C\u533A | \u8BC1\u636E\u7F3A\u53E3 | \u8BC1\u636E | \u521B\u5EFA |\n|---|---|---|---|---|---|\n{1}", { "0": (/* @__PURE__ */ new Date()).toISOString().slice(0, 10), "1": rows.join("\n") || tr("(\u65E0\u4EFB\u52A1)") });
|
|
323
347
|
}
|
|
324
348
|
var POLL_MS = 2e4;
|
|
325
349
|
|
|
@@ -561,7 +585,7 @@ function EngramTaskDock({ sessionId, useSessions, useWorkspaces, useProjection,
|
|
|
561
585
|
const failed = [];
|
|
562
586
|
for (const it of toPromote) {
|
|
563
587
|
try {
|
|
564
|
-
await api.createTask(effWs, it.content, "\u6E90\u81EA\u4F1A\u8BDD\u8BA1\u5212\uFF08todo_write \u4E00\u952E\u6C89\u6DC0\uFF09");
|
|
588
|
+
await api.createTask(effWs, it.content, tr("\u6E90\u81EA\u4F1A\u8BDD\u8BA1\u5212\uFF08todo_write \u4E00\u952E\u6C89\u6DC0\uFF09"));
|
|
565
589
|
done.push(it.content);
|
|
566
590
|
} catch {
|
|
567
591
|
failed.push(it.content);
|
|
@@ -573,7 +597,7 @@ function EngramTaskDock({ sessionId, useSessions, useWorkspaces, useProjection,
|
|
|
573
597
|
}
|
|
574
598
|
if (failed.length > 0) {
|
|
575
599
|
setPromoteNote(
|
|
576
|
-
failed.length === done.length ?
|
|
600
|
+
failed.length === done.length ? tr("\u6C89\u6DC0\u5931\u8D25\uFF1A{0} \u9879\u672A\u80FD\u521B\u5EFA\uFF08\u5DE5\u4F5C\u533A\u5DF2\u6EE1\u6216\u670D\u52A1\u4E0D\u53EF\u8FBE\uFF09\uFF0C\u8BF7\u5237\u65B0\u540E\u91CD\u8BD5", { "0": failed.length }) : tr("\u90E8\u5206\u5931\u8D25\uFF1A{0}/{1} \u9879\u672A\u80FD\u521B\u5EFA", { "0": failed.length, "1": toPromote.length })
|
|
577
601
|
);
|
|
578
602
|
}
|
|
579
603
|
setPromoteBusy(false);
|
|
@@ -591,7 +615,7 @@ function EngramTaskDock({ sessionId, useSessions, useWorkspaces, useProjection,
|
|
|
591
615
|
if (out.state === "active") {
|
|
592
616
|
setData((prev) => ({
|
|
593
617
|
...prev,
|
|
594
|
-
error:
|
|
618
|
+
error: tr("\u8BC1\u636E\u4ECD\u6709\u7F3A\u53E3\uFF1A{0}{1} \u2014 \u4EFB\u52A1\u4FDD\u6301 ACTIVE", { "0": (out.gaps ?? []).join(", "), "1": out.artifactReason ? `\uFF08${out.artifactReason}\uFF09` : "" })
|
|
595
619
|
}));
|
|
596
620
|
} else {
|
|
597
621
|
setClosingFor(null);
|
|
@@ -680,7 +704,7 @@ function EngramTaskDock({ sessionId, useSessions, useWorkspaces, useProjection,
|
|
|
680
704
|
}
|
|
681
705
|
),
|
|
682
706
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { style: { flex: "none", fontSize: 13, fontWeight: 600, lineHeight: "20px", color: "var(--dsw-alias-label-primary, inherit)", display: "inline-flex", alignItems: "center", gap: 5 }, children: [
|
|
683
|
-
"\u4EFB\u52A1",
|
|
707
|
+
tr("\u4EFB\u52A1"),
|
|
684
708
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { ...chip, ...chipNeutral, fontSize: 9.5, padding: "0 6px", lineHeight: "15px", fontWeight: 700, letterSpacing: ".02em" }, children: "ESR" })
|
|
685
709
|
] }),
|
|
686
710
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { ref: wsMenuRef, onClick: (e) => e.stopPropagation(), style: { position: "relative", display: "inline-flex", flex: "none", alignItems: "center" }, children: [
|
|
@@ -689,7 +713,7 @@ function EngramTaskDock({ sessionId, useSessions, useWorkspaces, useProjection,
|
|
|
689
713
|
{
|
|
690
714
|
role: "button",
|
|
691
715
|
tabIndex: 0,
|
|
692
|
-
title: following ?
|
|
716
|
+
title: following ? tr("\u8DDF\u968F\u5F53\u524D\u4F1A\u8BDD \xB7 \u5DE5\u4F5C\u533A {0}\uFF08\u70B9\u51FB\u5207\u6362 ESR \u4EFB\u52A1\u6765\u6E90\uFF09", { "0": wsBasename || "\u2014" }) : tr("\u5DF2\u56FA\u5B9A\u5230 {0}\uFF08\u70B9\u51FB\u5207\u6362\uFF09", { "0": effLabel }),
|
|
693
717
|
onClick: (e) => {
|
|
694
718
|
e.preventDefault();
|
|
695
719
|
e.stopPropagation();
|
|
@@ -714,7 +738,7 @@ function EngramTaskDock({ sessionId, useSessions, useWorkspaces, useProjection,
|
|
|
714
738
|
{
|
|
715
739
|
role: "button",
|
|
716
740
|
tabIndex: 0,
|
|
717
|
-
title: "\u6062\u590D\u8DDF\u968F\u5F53\u524D\u4F1A\u8BDD",
|
|
741
|
+
title: tr("\u6062\u590D\u8DDF\u968F\u5F53\u524D\u4F1A\u8BDD"),
|
|
718
742
|
onClick: (e) => {
|
|
719
743
|
e.preventDefault();
|
|
720
744
|
e.stopPropagation();
|
|
@@ -734,15 +758,11 @@ function EngramTaskDock({ sessionId, useSessions, useWorkspaces, useProjection,
|
|
|
734
758
|
}
|
|
735
759
|
),
|
|
736
760
|
wsOpen && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: wsMenu, role: "menu", children: [
|
|
737
|
-
/* @__PURE__ */ (0, import_jsx_runtime.
|
|
761
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { role: "menuitem", style: wsItem(following), onClick: () => {
|
|
738
762
|
setFocusWs("");
|
|
739
763
|
setWsOpen(false);
|
|
740
|
-
}, children:
|
|
741
|
-
|
|
742
|
-
wsBasename || "\u2014",
|
|
743
|
-
following ? " \u2713" : ""
|
|
744
|
-
] }),
|
|
745
|
-
wsOptions.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { ...wsItem(false), cursor: "default", color: "var(--dsh-color-muted-weak, #9ca3af)" }, children: "\u6682\u65E0\u5176\u4ED6\u5DE5\u4F5C\u533A" }),
|
|
764
|
+
}, children: tr("\u8DDF\u968F\u4F1A\u8BDD \xB7 {0}{1}", { "0": wsBasename || "\u2014", "1": following ? " \u2713" : "" }) }),
|
|
765
|
+
wsOptions.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { ...wsItem(false), cursor: "default", color: "var(--dsh-color-muted-weak, #9ca3af)" }, children: tr("\u6682\u65E0\u5176\u4ED6\u5DE5\u4F5C\u533A") }),
|
|
746
766
|
wsOptions.map((o) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { role: "menuitem", style: wsItem(effWs === o.path && !following), onClick: () => {
|
|
747
767
|
setFocusWs(o.path);
|
|
748
768
|
setWsOpen(false);
|
|
@@ -750,7 +770,7 @@ function EngramTaskDock({ sessionId, useSessions, useWorkspaces, useProjection,
|
|
|
750
770
|
o.label,
|
|
751
771
|
effWs === o.path && !following ? " \u2713" : ""
|
|
752
772
|
] }, o.path)),
|
|
753
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { marginTop: 4, paddingTop: 4, borderTop: "1px solid var(--dsh-color-border, #e5e7eb)", fontSize: 10.5, color: "var(--dsh-color-muted-weak, #9ca3af)", padding: "3px 9px" }, children: "\u4EC5\u5207\u6362 ESR \u4EFB\u52A1/\u5173\u7CFB\u6765\u6E90\uFF1B\u5185\u7F6E todo \u4ECD\u5C5E\u672C\u4F1A\u8BDD" })
|
|
773
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { marginTop: 4, paddingTop: 4, borderTop: "1px solid var(--dsh-color-border, #e5e7eb)", fontSize: 10.5, color: "var(--dsh-color-muted-weak, #9ca3af)", padding: "3px 9px" }, children: tr("\u4EC5\u5207\u6362 ESR \u4EFB\u52A1/\u5173\u7CFB\u6765\u6E90\uFF1B\u5185\u7F6E todo \u4ECD\u5C5E\u672C\u4F1A\u8BDD") })
|
|
754
774
|
] })
|
|
755
775
|
] }),
|
|
756
776
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
@@ -765,23 +785,11 @@ function EngramTaskDock({ sessionId, useSessions, useWorkspaces, useProjection,
|
|
|
765
785
|
flexWrap: "wrap"
|
|
766
786
|
},
|
|
767
787
|
children: [
|
|
768
|
-
planItems.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime.
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
"\u8FDB\u884C\u4E2D ",
|
|
774
|
-
gappedTasks.length
|
|
775
|
-
] }),
|
|
776
|
-
readyTasks.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { style: { ...chip, ...STATUS.ready }, children: [
|
|
777
|
-
"\u5C31\u7EEA ",
|
|
778
|
-
readyTasks.length
|
|
779
|
-
] }),
|
|
780
|
-
stableCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { style: { ...chip, ...STATUS.stable }, children: [
|
|
781
|
-
"\u5DF2\u95ED\u73AF ",
|
|
782
|
-
stableCount
|
|
783
|
-
] }),
|
|
784
|
-
data.error && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { ...chip, ...chipError }, title: data.error, children: "API \u5931\u8D25" })
|
|
788
|
+
planItems.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { ...chip, ...chipNeutral }, children: tr("\u672C\u8F6E\u8BA1\u5212 {0}", { "0": planItems.length }) }),
|
|
789
|
+
gappedTasks.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { ...chip, ...STATUS.gap }, children: tr("\u8FDB\u884C\u4E2D {0}", { "0": gappedTasks.length }) }),
|
|
790
|
+
readyTasks.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { ...chip, ...STATUS.ready }, children: tr("\u5C31\u7EEA {0}", { "0": readyTasks.length }) }),
|
|
791
|
+
stableCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { ...chip, ...STATUS.stable }, children: tr("\u5DF2\u95ED\u73AF {0}", { "0": stableCount }) }),
|
|
792
|
+
data.error && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { ...chip, ...chipError }, title: data.error, children: tr("API \u5931\u8D25") })
|
|
785
793
|
]
|
|
786
794
|
}
|
|
787
795
|
),
|
|
@@ -794,36 +802,34 @@ function EngramTaskDock({ sessionId, useSessions, useWorkspaces, useProjection,
|
|
|
794
802
|
"\u26A0 ",
|
|
795
803
|
data.error
|
|
796
804
|
] }),
|
|
797
|
-
data.denied && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { fontSize: 11.5, color: "var(--dsw-alias-label-tertiary, var(--dsh-color-muted, #6b7280))", lineHeight: 1.5 }, children: "ESR \u5DE5\u4F5C\u533A\u6570\u636E\u4E0D\u53EF\u8FBE\uFF08loopback-only \u5B88\u536B\uFF09\u2014 \u672C\u8F6E\u8BA1\u5212\u7167\u5E38\u5C55\u793A\uFF1B\u5B8C\u6574\u4EFB\u52A1\u4E0E\u5173\u7CFB\u89C1 \u8BBE\u7F6E \u2192 Engram \u8BB0\u5FC6\u3002" }),
|
|
805
|
+
data.denied && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { fontSize: 11.5, color: "var(--dsw-alias-label-tertiary, var(--dsh-color-muted, #6b7280))", lineHeight: 1.5 }, children: tr("ESR \u5DE5\u4F5C\u533A\u6570\u636E\u4E0D\u53EF\u8FBE\uFF08loopback-only \u5B88\u536B\uFF09\u2014 \u672C\u8F6E\u8BA1\u5212\u7167\u5E38\u5C55\u793A\uFF1B\u5B8C\u6574\u4EFB\u52A1\u4E0E\u5173\u7CFB\u89C1 \u8BBE\u7F6E \u2192 Engram \u8BB0\u5FC6\u3002") }),
|
|
798
806
|
toolStats && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: statsRow, children: [
|
|
799
807
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [
|
|
800
|
-
"\u8FD1 ",
|
|
801
|
-
toolStats.days,
|
|
802
|
-
" \u5929 \xB7 todo ",
|
|
808
|
+
tr("\u8FD1 {0} \u5929 \xB7 todo ", { "0": toolStats.days }),
|
|
803
809
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("strong", { children: toolStats.tools.todo_write ?? 0 }),
|
|
804
810
|
" \xB7 ",
|
|
805
811
|
"ESR ",
|
|
806
812
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("strong", { children: esrToolSum(toolStats) }),
|
|
807
813
|
" \xB7 ",
|
|
808
|
-
"\u8BB0\u5FC6 ",
|
|
814
|
+
tr("\u8BB0\u5FC6 "),
|
|
809
815
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("strong", { children: memToolSum(toolStats) }),
|
|
810
816
|
" \xB7 ",
|
|
811
|
-
"\u8C03\u7528 ",
|
|
812
|
-
toolStats.events
|
|
817
|
+
tr("\u8C03\u7528 {0}", { "0": toolStats.events })
|
|
813
818
|
] }),
|
|
814
|
-
esrToolSum(toolStats) === 0 && toolStats.tools.todo_write > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { fontSize: 10.5, color: "var(--dsw-alias-label-dimmed, var(--dsh-color-muted-weak, #9ca3af))" }, children: "\u2014 ESR \u4E3A\u96F6\uFF0Ctodo \u53EF\u7528\u300C\u6C89\u6DC0\u5230 ESR\u300D\u8F6C\u8349\u7A3F" })
|
|
819
|
+
esrToolSum(toolStats) === 0 && toolStats.tools.todo_write > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { fontSize: 10.5, color: "var(--dsw-alias-label-dimmed, var(--dsh-color-muted-weak, #9ca3af))" }, children: tr("\u2014 ESR \u4E3A\u96F6\uFF0Ctodo \u53EF\u7528\u300C\u6C89\u6DC0\u5230 ESR\u300D\u8F6C\u8349\u7A3F") })
|
|
815
820
|
] }),
|
|
816
821
|
planItems.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: planBox, children: [
|
|
817
822
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: 8 }, children: [
|
|
818
823
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { style: { display: "inline-flex", alignItems: "center", gap: 6, minWidth: 0 }, children: [
|
|
819
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { fontSize: 12, fontWeight: 600, color: "var(--dsw-alias-label-secondary, var(--dsh-color-muted-strong, #4b5563))" }, children: "\u672C\u8F6E\u8BA1\u5212" }),
|
|
820
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: badgeTodo, children: "\u539F\u751F todo \xB7 \u4F1A\u8BDD\u5185" })
|
|
824
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { fontSize: 12, fontWeight: 600, color: "var(--dsw-alias-label-secondary, var(--dsh-color-muted-strong, #4b5563))" }, children: tr("\u672C\u8F6E\u8BA1\u5212") }),
|
|
825
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: badgeTodo, children: tr("\u539F\u751F todo \xB7 \u4F1A\u8BDD\u5185") })
|
|
821
826
|
] }),
|
|
822
827
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { style: { fontSize: 10.5, color: "var(--dsw-alias-label-dimmed, var(--dsh-color-muted-weak, #9ca3af))" }, children: [
|
|
823
828
|
planItems.filter((p) => p.status === "completed").length,
|
|
824
829
|
"/",
|
|
825
830
|
planItems.length,
|
|
826
|
-
"
|
|
831
|
+
" ",
|
|
832
|
+
tr(" \u5B8C\u6210 \xB7 \u8DDF\u968F\u4F1A\u8BDD\u81EA\u52A8\u66F4\u65B0")
|
|
827
833
|
] })
|
|
828
834
|
] }),
|
|
829
835
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("ul", { style: { listStyle: "none", margin: 0, padding: 0, display: "flex", flexDirection: "column", gap: 3 }, children: planItems.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("li", { style: { display: "flex", alignItems: "flex-start", gap: 8, fontSize: 12.5, lineHeight: "20px", color: item.status === "completed" ? "var(--dsw-alias-label-tertiary, var(--dsh-color-muted, #6b7280))" : "var(--dsw-alias-label-secondary, var(--dsh-color-muted-strong, #4b5563))" }, children: [
|
|
@@ -831,8 +837,8 @@ function EngramTaskDock({ sessionId, useSessions, useWorkspaces, useProjection,
|
|
|
831
837
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { textDecoration: item.status === "completed" ? "line-through" : "none", overflowWrap: "anywhere" }, children: item.content })
|
|
832
838
|
] }, `${item.content}-${i}`)) }),
|
|
833
839
|
(toPromote.length > 0 || promoted.size > 0) && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { display: "flex", gap: 6, alignItems: "center", marginTop: 1 }, children: [
|
|
834
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { type: "button", className: "ed-btn", style: { ...btn, ...btnSolid, padding: "3px 9px", fontSize: 11.5 }, disabled: promoteBusy || toPromote.length === 0, onClick: () => void promoteAll(), title: "\u628A\u672C\u8F6E\u5F85\u529E\u8F6C\u6210 ESR \u4EFB\u52A1\u8349\u7A3F\uFF08\u8DE8\u4F1A\u8BDD\u4FDD\u7559\uFF09", children: promoteBusy ? "\u2026" : promoted.size > 0 ? toPromote.length > 0 ?
|
|
835
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { fontSize: 10.5, color: "var(--dsw-alias-label-dimmed, var(--dsh-color-muted-weak, #9ca3af))" }, children: "\u8F6C\u8349\u7A3F \xB7 \u8DE8\u4F1A\u8BDD\u95ED\u73AF" })
|
|
840
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { type: "button", className: "ed-btn", style: { ...btn, ...btnSolid, padding: "3px 9px", fontSize: 11.5 }, disabled: promoteBusy || toPromote.length === 0, onClick: () => void promoteAll(), title: tr("\u628A\u672C\u8F6E\u5F85\u529E\u8F6C\u6210 ESR \u4EFB\u52A1\u8349\u7A3F\uFF08\u8DE8\u4F1A\u8BDD\u4FDD\u7559\uFF09"), children: promoteBusy ? "\u2026" : promoted.size > 0 ? toPromote.length > 0 ? tr("\u5DF2\u6C89\u6DC0 {0} \u9879 \xB7 \u518D\u6C89\u6DC0 {1} \u9879", { "0": promoted.size, "1": toPromote.length }) : tr("\u5DF2\u6C89\u6DC0 {0} \u9879", { "0": promoted.size }) : tr("\u6C89\u6DC0\u5230 ESR\uFF08{0} \u9879\uFF09", { "0": toPromote.length }) }),
|
|
841
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { fontSize: 10.5, color: "var(--dsw-alias-label-dimmed, var(--dsh-color-muted-weak, #9ca3af))" }, children: tr("\u8F6C\u8349\u7A3F \xB7 \u8DE8\u4F1A\u8BDD\u95ED\u73AF") })
|
|
836
842
|
] }),
|
|
837
843
|
promoteNote && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { fontSize: 11, color: "#dc2626", lineHeight: 1.4 }, role: "alert", children: [
|
|
838
844
|
"\u26A0 ",
|
|
@@ -841,28 +847,20 @@ function EngramTaskDock({ sessionId, useSessions, useWorkspaces, useProjection,
|
|
|
841
847
|
activeTasks.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { display: "flex", gap: 6, alignItems: "flex-start", fontSize: 11.5, lineHeight: 1.5, color: "var(--dsw-alias-label-dimmed, var(--dsh-color-muted, #6b7280))", paddingTop: 2 }, children: [
|
|
842
848
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { "aria-hidden": true, style: { color: badgeEsr.color }, children: "\u21B3" }),
|
|
843
849
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [
|
|
844
|
-
"\u672C\u8F6E\u8BA1\u5212\u662F",
|
|
845
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("strong", { children: "\u4F1A\u8BDD\u5185" }),
|
|
846
|
-
"\u539F\u751F todo\uFF0C\u968F\u4F1A\u8BDD\u7ED3\u675F\uFF1B\u591A\u6B65/\u9700\u957F\u671F\u4FDD\u7559\u7684\u5DE5\u4F5C\u5EFA\u8BAE",
|
|
847
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("strong", { children: "\u7528 esr_task \u5EFA ESR \u4EFB\u52A1" }),
|
|
848
|
-
"\uFF08\u8DE8\u4F1A\u8BDD\u95ED\u73AF\uFF0C\u5E26\u8BC1\u636E\u95E8\uFF09\u6C89\u6DC0\u4E0B\u6765\u3002"
|
|
850
|
+
tr("\u672C\u8F6E\u8BA1\u5212\u662F"),
|
|
851
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("strong", { children: tr("\u4F1A\u8BDD\u5185") }),
|
|
852
|
+
tr("\u539F\u751F todo\uFF0C\u968F\u4F1A\u8BDD\u7ED3\u675F\uFF1B\u591A\u6B65/\u9700\u957F\u671F\u4FDD\u7559\u7684\u5DE5\u4F5C\u5EFA\u8BAE"),
|
|
853
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("strong", { children: tr("\u7528 esr_task \u5EFA ESR \u4EFB\u52A1") }),
|
|
854
|
+
tr("\uFF08\u8DE8\u4F1A\u8BDD\u95ED\u73AF\uFF0C\u5E26\u8BC1\u636E\u95E8\uFF09\u6C89\u6DC0\u4E0B\u6765\u3002")
|
|
849
855
|
] })
|
|
850
856
|
] })
|
|
851
857
|
] }),
|
|
852
858
|
!data.denied && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
853
859
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: 8, flexWrap: "wrap" }, children: [
|
|
854
860
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { style: { display: "inline-flex", alignItems: "center", gap: 6, minWidth: 0 }, children: [
|
|
855
|
-
/* @__PURE__ */ (0, import_jsx_runtime.
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
" \u8FDB\u884C\u4E2D"
|
|
859
|
-
] }),
|
|
860
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: badgeEsr, children: "ESR \xB7 \u8DE8\u4F1A\u8BDD\u95ED\u73AF" }),
|
|
861
|
-
planItems.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { style: { fontSize: 10.5, color: "var(--dsw-alias-label-dimmed, var(--dsh-color-muted-weak, #9ca3af))" }, children: [
|
|
862
|
-
"\u8BA1\u5212 ",
|
|
863
|
-
planItems.length,
|
|
864
|
-
" \u6761 todo"
|
|
865
|
-
] })
|
|
861
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { fontSize: 12, fontWeight: 600, color: "var(--dsw-alias-label-secondary, var(--dsh-color-muted-strong, #4b5563))" }, children: tr("\u5DE5\u4F5C\u533A ESR \u4EFB\u52A1 \xB7 {0} \u8FDB\u884C\u4E2D", { "0": activeTasks.length }) }),
|
|
862
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: badgeEsr, children: tr("ESR \xB7 \u8DE8\u4F1A\u8BDD\u95ED\u73AF") }),
|
|
863
|
+
planItems.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { fontSize: 10.5, color: "var(--dsw-alias-label-dimmed, var(--dsh-color-muted-weak, #9ca3af))" }, children: tr("\u8BA1\u5212 {0} \u6761 todo", { "0": planItems.length }) })
|
|
866
864
|
] }),
|
|
867
865
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { flex: "1 1 auto" } }),
|
|
868
866
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
@@ -877,14 +875,15 @@ function EngramTaskDock({ sessionId, useSessions, useWorkspaces, useProjection,
|
|
|
877
875
|
},
|
|
878
876
|
children: [
|
|
879
877
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(IconPlus, {}),
|
|
880
|
-
"
|
|
878
|
+
" ",
|
|
879
|
+
tr(" \u65B0\u5EFA")
|
|
881
880
|
]
|
|
882
881
|
}
|
|
883
882
|
),
|
|
884
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("button", { type: "button", className: "ed-btn", style: { ...btn }, onClick: refreshNow, disabled: data.loading, title: "\u5237\u65B0", children: [
|
|
883
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("button", { type: "button", className: "ed-btn", style: { ...btn }, onClick: refreshNow, disabled: data.loading, title: tr("\u5237\u65B0"), children: [
|
|
885
884
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(IconRefresh, {}),
|
|
886
885
|
" ",
|
|
887
|
-
data.loading ? "\u2026" : "\u5237\u65B0"
|
|
886
|
+
data.loading ? "\u2026" : tr("\u5237\u65B0")
|
|
888
887
|
] })
|
|
889
888
|
] }),
|
|
890
889
|
creating && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { border: "1px dashed var(--dsw-alias-border-l3, #c7d2fe)", borderRadius: 10, padding: 8, display: "flex", flexDirection: "column", gap: 6, background: "var(--dsw-alias-bg-multi-select, transparent)" }, children: [
|
|
@@ -893,7 +892,7 @@ function EngramTaskDock({ sessionId, useSessions, useWorkspaces, useProjection,
|
|
|
893
892
|
{
|
|
894
893
|
autoFocus: true,
|
|
895
894
|
style: input,
|
|
896
|
-
placeholder: "\u4EFB\u52A1\u540D\u2026",
|
|
895
|
+
placeholder: tr("\u4EFB\u52A1\u540D\u2026"),
|
|
897
896
|
value: newName,
|
|
898
897
|
onChange: (e) => setNewName(e.target.value),
|
|
899
898
|
onKeyDown: (e) => {
|
|
@@ -906,17 +905,17 @@ function EngramTaskDock({ sessionId, useSessions, useWorkspaces, useProjection,
|
|
|
906
905
|
"input",
|
|
907
906
|
{
|
|
908
907
|
style: { ...input, fontSize: 12 },
|
|
909
|
-
placeholder: "\u8981\u4EA7\u51FA / \u6EE1\u8DB3\u4EC0\u4E48\uFF08\u53EF\u9009\uFF09",
|
|
908
|
+
placeholder: tr("\u8981\u4EA7\u51FA / \u6EE1\u8DB3\u4EC0\u4E48\uFF08\u53EF\u9009\uFF09"),
|
|
910
909
|
value: newDesc,
|
|
911
910
|
onChange: (e) => setNewDesc(e.target.value)
|
|
912
911
|
}
|
|
913
912
|
),
|
|
914
913
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { display: "flex", gap: 6 }, children: [
|
|
915
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { type: "button", className: "ed-btn", style: { ...btn, ...btnSolid }, disabled: actionBusy || !newName.trim(), onClick: () => void submitCreate(), children: actionBusy ? "\u2026" : "\u521B\u5EFA" }),
|
|
916
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { type: "button", className: "ed-btn", style: btn, onClick: () => setCreating(false), children: "\u53D6\u6D88" })
|
|
914
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { type: "button", className: "ed-btn", style: { ...btn, ...btnSolid }, disabled: actionBusy || !newName.trim(), onClick: () => void submitCreate(), children: actionBusy ? "\u2026" : tr("\u521B\u5EFA") }),
|
|
915
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { type: "button", className: "ed-btn", style: btn, onClick: () => setCreating(false), children: tr("\u53D6\u6D88") })
|
|
917
916
|
] })
|
|
918
917
|
] }),
|
|
919
|
-
activeTasks.length === 0 && data.tasks.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { fontSize: 12, color: "var(--dsw-alias-label-tertiary, var(--dsh-color-muted-weak, #9ca3af))", padding: "2px 0" }, children: "\u6682\u65E0\u6D3B\u52A8\u4EFB\u52A1 \u2014 \u70B9\u300C\u65B0\u5EFA\u300D\u6216\u5728\u5BF9\u8BDD\u4E2D\u8BA9 agent \u7528 esr_task \u5EFA\u4EFB\u52A1" }),
|
|
918
|
+
activeTasks.length === 0 && data.tasks.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { fontSize: 12, color: "var(--dsw-alias-label-tertiary, var(--dsh-color-muted-weak, #9ca3af))", padding: "2px 0" }, children: tr("\u6682\u65E0\u6D3B\u52A8\u4EFB\u52A1 \u2014 \u70B9\u300C\u65B0\u5EFA\u300D\u6216\u5728\u5BF9\u8BDD\u4E2D\u8BA9 agent \u7528 esr_task \u5EFA\u4EFB\u52A1") }),
|
|
920
919
|
data.tasks.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: taskGrid, children: pagedTasks.map((task) => {
|
|
921
920
|
const gaps = taskGaps(task);
|
|
922
921
|
const isStable = task.state === "stable";
|
|
@@ -934,7 +933,7 @@ function EngramTaskDock({ sessionId, useSessions, useWorkspaces, useProjection,
|
|
|
934
933
|
className: "ed-task-row",
|
|
935
934
|
style: { flex: "1 1 auto", minWidth: 0, display: "flex", alignItems: "center", gap: 6, textAlign: "left", border: "none", background: "transparent", cursor: "pointer", padding: "1px 0", color: "var(--dsw-alias-label-primary, inherit)", fontSize: 12.5, fontWeight: 600, lineHeight: "20px", overflowWrap: "anywhere" },
|
|
936
935
|
onClick: () => setExpandedId(expanded ? null : task.id),
|
|
937
|
-
title: expanded ? "\u6536\u8D77\u8BE6\u60C5" : "\u5C55\u5F00\u8BE6\u60C5",
|
|
936
|
+
title: expanded ? tr("\u6536\u8D77\u8BE6\u60C5") : tr("\u5C55\u5F00\u8BE6\u60C5"),
|
|
938
937
|
children: [
|
|
939
938
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { fontSize: 10, color: "var(--dsw-alias-label-tertiary, var(--dsh-color-muted-weak, #9ca3af))", flex: "none" }, children: expanded ? "\u25BE" : "\u25B8" }),
|
|
940
939
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { color: isStable ? "var(--dsw-alias-label-tertiary, var(--dsh-color-muted, #6b7280))" : "inherit", overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" }, children: task.name }),
|
|
@@ -942,7 +941,7 @@ function EngramTaskDock({ sessionId, useSessions, useWorkspaces, useProjection,
|
|
|
942
941
|
"span",
|
|
943
942
|
{
|
|
944
943
|
style: { flex: "none", width: 7, height: 7, borderRadius: "50%", background: statusColor.fg },
|
|
945
|
-
title: gaps.length > 0 ?
|
|
944
|
+
title: gaps.length > 0 ? tr("{0} \xB7 \u8BC1\u636E\u7F3A\u53E3: {1}", { "0": label, "1": gaps.join(", ") }) : label
|
|
946
945
|
}
|
|
947
946
|
)
|
|
948
947
|
]
|
|
@@ -951,7 +950,7 @@ function EngramTaskDock({ sessionId, useSessions, useWorkspaces, useProjection,
|
|
|
951
950
|
expanded && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
952
951
|
task.description && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { fontSize: 12, lineHeight: 1.5, color: "var(--dsw-alias-label-secondary, var(--dsh-color-muted-strong, #4b5563))", overflowWrap: "anywhere" }, children: task.description }),
|
|
953
952
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { display: "flex", gap: 5, alignItems: "center", flexWrap: "wrap" }, children: [
|
|
954
|
-
gaps.map((g) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { style: { ...chip, ...chipGap }, title: "\u8BC1\u636E\u7F3A\u53E3", children: [
|
|
953
|
+
gaps.map((g) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { style: { ...chip, ...chipGap }, title: tr("\u8BC1\u636E\u7F3A\u53E3"), children: [
|
|
955
954
|
g,
|
|
956
955
|
" \u2717"
|
|
957
956
|
] }, g)),
|
|
@@ -977,33 +976,26 @@ function EngramTaskDock({ sessionId, useSessions, useWorkspaces, useProjection,
|
|
|
977
976
|
else if (expandedId === task.id) setExpandedId(null);
|
|
978
977
|
setCreating(false);
|
|
979
978
|
},
|
|
980
|
-
children: open ? "\u6536\u8D77" : "\u8865\u9F50\u8BC1\u636E"
|
|
979
|
+
children: open ? tr("\u6536\u8D77") : tr("\u8865\u9F50\u8BC1\u636E")
|
|
981
980
|
}
|
|
982
981
|
) })
|
|
983
982
|
] }),
|
|
984
983
|
open && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { border: "1px dashed var(--dsw-alias-border-l2, #e5e7eb)", borderRadius: 8, padding: 7, display: "flex", flexDirection: "column", gap: 5, marginTop: 2 }, children: [
|
|
985
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { fontSize: 10.5, color: "var(--dsw-alias-label-tertiary, var(--dsh-color-muted, #6b7280))" }, children: "\u63D0\u4F9B\u4E09\u9879\u8BC1\u636E\u540E\u8F6C STABLE\uFF08artifact \xB7 evaluation \xB7 memory_ref\uFF09" }),
|
|
984
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { fontSize: 10.5, color: "var(--dsw-alias-label-tertiary, var(--dsh-color-muted, #6b7280))" }, children: tr("\u63D0\u4F9B\u4E09\u9879\u8BC1\u636E\u540E\u8F6C STABLE\uFF08artifact \xB7 evaluation \xB7 memory_ref\uFF09") }),
|
|
986
985
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { display: "flex", gap: 5, flexWrap: "wrap" }, children: [
|
|
987
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("input", { style: { ...input, width: "auto", flex: "1 1 130px" }, placeholder: "artifact \u8DEF\u5F84/URL", value: closeArtifact, onChange: (e) => setCloseArtifact(e.target.value) }),
|
|
988
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("input", { style: { ...input, width: "auto", flex: "1 1 130px" }, placeholder: "evaluation \u8BC1\u636E", value: closeEval, onChange: (e) => setCloseEval(e.target.value) }),
|
|
989
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("input", { style: { ...input, width: "auto", flex: "1 1 130px" }, placeholder: "memory_refs \u9017\u53F7\u5206\u9694", value: closeRefs, onChange: (e) => setCloseRefs(e.target.value) }),
|
|
990
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { type: "button", className: "ed-btn", style: { ...btn, ...btnSolid }, disabled: actionBusy, onClick: () => void submitClose(task), children: actionBusy ? "\u2026" : "\u63D0\u4EA4\u5173\u95ED" })
|
|
986
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("input", { style: { ...input, width: "auto", flex: "1 1 130px" }, placeholder: tr("artifact \u8DEF\u5F84/URL"), value: closeArtifact, onChange: (e) => setCloseArtifact(e.target.value) }),
|
|
987
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("input", { style: { ...input, width: "auto", flex: "1 1 130px" }, placeholder: tr("evaluation \u8BC1\u636E"), value: closeEval, onChange: (e) => setCloseEval(e.target.value) }),
|
|
988
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("input", { style: { ...input, width: "auto", flex: "1 1 130px" }, placeholder: tr("memory_refs \u9017\u53F7\u5206\u9694"), value: closeRefs, onChange: (e) => setCloseRefs(e.target.value) }),
|
|
989
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { type: "button", className: "ed-btn", style: { ...btn, ...btnSolid }, disabled: actionBusy, onClick: () => void submitClose(task), children: actionBusy ? "\u2026" : tr("\u63D0\u4EA4\u5173\u95ED") })
|
|
991
990
|
] })
|
|
992
991
|
] })
|
|
993
992
|
] })
|
|
994
993
|
] }, task.id);
|
|
995
994
|
}) }),
|
|
996
995
|
data.tasks.length > TASK_PAGE_SIZE && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: 8, justifyContent: "flex-end", fontSize: 11.5, color: "var(--dsw-alias-label-tertiary, var(--dsh-color-muted-weak, #9ca3af))" }, children: [
|
|
997
|
-
/* @__PURE__ */ (0, import_jsx_runtime.
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
" \xB7 ",
|
|
1001
|
-
taskPage + 1,
|
|
1002
|
-
"/",
|
|
1003
|
-
totalPages
|
|
1004
|
-
] }),
|
|
1005
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { type: "button", className: "ed-btn", style: { ...btn, padding: "2px 8px", fontSize: 11.5 }, disabled: taskPage === 0, onClick: () => setTaskPage((v) => Math.max(0, v - 1)), children: "\u2039 \u4E0A\u4E00\u9875" }),
|
|
1006
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { type: "button", className: "ed-btn", style: { ...btn, padding: "2px 8px", fontSize: 11.5 }, disabled: taskPage >= totalPages - 1, onClick: () => setTaskPage((v) => Math.min(totalPages - 1, v + 1)), children: "\u4E0B\u4E00\u9875 \u203A" })
|
|
996
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: tr("\u5171 {0} \xB7 {1}/{2}", { "0": data.tasks.length, "1": taskPage + 1, "2": totalPages }) }),
|
|
997
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { type: "button", className: "ed-btn", style: { ...btn, padding: "2px 8px", fontSize: 11.5 }, disabled: taskPage === 0, onClick: () => setTaskPage((v) => Math.max(0, v - 1)), children: tr("\u2039 \u4E0A\u4E00\u9875") }),
|
|
998
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { type: "button", className: "ed-btn", style: { ...btn, padding: "2px 8px", fontSize: 11.5 }, disabled: taskPage >= totalPages - 1, onClick: () => setTaskPage((v) => Math.min(totalPages - 1, v + 1)), children: tr("\u4E0B\u4E00\u9875 \u203A") })
|
|
1007
999
|
] })
|
|
1008
1000
|
] })
|
|
1009
1001
|
] })
|
|
@@ -1188,13 +1180,14 @@ var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
|
1188
1180
|
var W = 640;
|
|
1189
1181
|
var H = 420;
|
|
1190
1182
|
var REL_LABEL = {
|
|
1191
|
-
depends_on: "\u4F9D\u8D56",
|
|
1192
|
-
implements: "\u5B9E\u73B0",
|
|
1193
|
-
refines: "\u7EC6\u5316",
|
|
1194
|
-
contradicts: "\u77DB\u76FE",
|
|
1195
|
-
tracks: "\u8FFD\u8E2A",
|
|
1196
|
-
relates_to: "\u5173\u8054"
|
|
1183
|
+
depends_on: tr("\u4F9D\u8D56"),
|
|
1184
|
+
implements: tr("\u5B9E\u73B0"),
|
|
1185
|
+
refines: tr("\u7EC6\u5316"),
|
|
1186
|
+
contradicts: tr("\u77DB\u76FE"),
|
|
1187
|
+
tracks: tr("\u8FFD\u8E2A"),
|
|
1188
|
+
relates_to: tr("\u5173\u8054")
|
|
1197
1189
|
};
|
|
1190
|
+
var relLabel = (rel) => tr(REL_LABEL[rel] ?? rel);
|
|
1198
1191
|
var REL_COLOR = {
|
|
1199
1192
|
depends_on: "#f59e0b",
|
|
1200
1193
|
implements: "#10b981",
|
|
@@ -1492,27 +1485,30 @@ function EngramGraph({ workspace, entities, tasks, links, nameOf }) {
|
|
|
1492
1485
|
for (const rel of graph.keptLinks) incidentKinds.add(rel.relation);
|
|
1493
1486
|
const zoom = (factor) => setView((v) => ({ ...v, k: Math.max(0.35, Math.min(3, v.k * factor)) }));
|
|
1494
1487
|
if (graph.nodes.length === 0) {
|
|
1495
|
-
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { style: { fontSize: 12.5, color: "var(--dsh-color-muted, #6b7280)", padding: "8px 0" }, children: "\u6682\u65E0\u8282\u70B9/\u5173\u7CFB\u53EF\u7ED8\u5236 \u2014 \u6A21\u578B\u7528 esr_node / esr_link \u767B\u8BB0\u9886\u57DF\u5BF9\u8C61\u5E76\u4E92\u8FDE\u540E\uFF0C\u8FD9\u91CC\u4F1A\u51FA\u73B0\u529B\u5BFC\u5411\u5173\u7CFB\u56FE\u3002" });
|
|
1488
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { style: { fontSize: 12.5, color: "var(--dsh-color-muted, #6b7280)", padding: "8px 0" }, children: tr("\u6682\u65E0\u8282\u70B9/\u5173\u7CFB\u53EF\u7ED8\u5236 \u2014 \u6A21\u578B\u7528 esr_node / esr_link \u767B\u8BB0\u9886\u57DF\u5BF9\u8C61\u5E76\u4E92\u8FDE\u540E\uFF0C\u8FD9\u91CC\u4F1A\u51FA\u73B0\u529B\u5BFC\u5411\u5173\u7CFB\u56FE\u3002") });
|
|
1496
1489
|
}
|
|
1497
1490
|
return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { children: [
|
|
1498
1491
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { style: { display: "flex", gap: 8, flexWrap: "wrap", alignItems: "center", marginBottom: 6 }, children: [
|
|
1499
1492
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("span", { style: { ...s.chip }, children: [
|
|
1500
1493
|
graph.nodes.length,
|
|
1501
|
-
"
|
|
1494
|
+
" ",
|
|
1495
|
+
tr(" \u8282\u70B9")
|
|
1502
1496
|
] }),
|
|
1503
1497
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("span", { style: { ...s.chip }, children: [
|
|
1504
1498
|
graph.keptLinks.length,
|
|
1505
|
-
"
|
|
1499
|
+
" ",
|
|
1500
|
+
tr(" \u5173\u7CFB")
|
|
1506
1501
|
] }),
|
|
1507
1502
|
graph.dangling > 0 && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("span", { style: { ...s.chipWarn }, children: [
|
|
1508
1503
|
graph.dangling,
|
|
1509
|
-
"
|
|
1504
|
+
" ",
|
|
1505
|
+
tr(" \u60AC\u7A7A\u94FE\u63A5\uFF08\u7AEF\u70B9\u7F3A\u5931\uFF0C\u672A\u7ED8\u5236\uFF09")
|
|
1510
1506
|
] }),
|
|
1511
1507
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { style: { flex: "1 1 auto" } }),
|
|
1512
|
-
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { style: s.hint, children: "\u62D6\u62FD\u8282\u70B9 \xB7 \u6EDA\u8F6E\u7F29\u653E \xB7 \u7A7A\u767D\u5904\u62D6\u62FD\u53EF\u5E73\u79FB" }),
|
|
1508
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { style: s.hint, children: tr("\u62D6\u62FD\u8282\u70B9 \xB7 \u6EDA\u8F6E\u7F29\u653E \xB7 \u7A7A\u767D\u5904\u62D6\u62FD\u53EF\u5E73\u79FB") }),
|
|
1513
1509
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { type: "button", style: s.btn, onClick: () => zoom(1.2), children: "\uFF0B" }),
|
|
1514
1510
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { type: "button", style: s.btn, onClick: () => zoom(1 / 1.2), children: "\uFF0D" }),
|
|
1515
|
-
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { type: "button", style: s.btn, onClick: reLayout, children: "\u91CD\u7EC4" })
|
|
1511
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { type: "button", style: s.btn, onClick: reLayout, children: tr("\u91CD\u7EC4") })
|
|
1516
1512
|
] }),
|
|
1517
1513
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { style: { position: "relative", border: "1px solid var(--dsh-color-border, #e5e7eb)", borderRadius: 12, overflow: "hidden", background: "var(--dsh-color-surface, #fff)" }, children: [
|
|
1518
1514
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
|
|
@@ -1551,7 +1547,7 @@ function EngramGraph({ workspace, entities, tasks, links, nameOf }) {
|
|
|
1551
1547
|
markerEnd: `url(#${uid}-arrow)`
|
|
1552
1548
|
}
|
|
1553
1549
|
),
|
|
1554
|
-
(activeEdge || hoverEdge === l.id) && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("text", { x: (a.x + b.x) / 2, y: (a.y + b.y) / 2 - 5, fontSize: 9.5, fill: color, textAnchor: "middle", style: { pointerEvents: "none" }, children:
|
|
1550
|
+
(activeEdge || hoverEdge === l.id) && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("text", { x: (a.x + b.x) / 2, y: (a.y + b.y) / 2 - 5, fontSize: 9.5, fill: color, textAnchor: "middle", style: { pointerEvents: "none" }, children: relLabel(l.relation) })
|
|
1555
1551
|
] }, l.id);
|
|
1556
1552
|
}),
|
|
1557
1553
|
graph.nodes.map((node) => {
|
|
@@ -1592,23 +1588,22 @@ function EngramGraph({ workspace, entities, tasks, links, nameOf }) {
|
|
|
1592
1588
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: 6 }, children: [
|
|
1593
1589
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { style: { ...s.badge, background: selNode.kindType === "task" ? TASK_COLOR : KIND_COLOR[selNode.kind] ?? NODE_DEFAULT }, children: selNode.kindType === "task" ? selNode.state : selNode.kind }),
|
|
1594
1590
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { style: { fontWeight: 700, fontSize: 13, flex: 1, overflowWrap: "anywhere" }, children: selNode.name }),
|
|
1595
|
-
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { type: "button", style: s.closeBtn, onClick: () => setSelected(null), "aria-label": "\u5173\u95ED", children: "\u2715" })
|
|
1591
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { type: "button", style: s.closeBtn, onClick: () => setSelected(null), "aria-label": tr("\u5173\u95ED"), children: "\u2715" })
|
|
1596
1592
|
] }),
|
|
1597
1593
|
selNode.description && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { style: { fontSize: 12, color: "var(--dsh-color-muted, #6b7280)", marginTop: 4 }, children: selNode.description }),
|
|
1598
1594
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { style: { ...s.mono, marginTop: 4, fontSize: 11 }, children: selNode.id }),
|
|
1599
1595
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { style: { fontSize: 11.5, color: "var(--dsh-color-muted-weak, #9ca3af)", marginTop: 2 }, children: [
|
|
1600
1596
|
selNode.degree,
|
|
1601
|
-
"
|
|
1602
|
-
selEdges.length
|
|
1603
|
-
" \u6761\u5173\u7CFB"
|
|
1597
|
+
" ",
|
|
1598
|
+
tr(" \u6761\u5173\u8054 \xB7 {0} \u6761\u5173\u7CFB", { "0": selEdges.length })
|
|
1604
1599
|
] }),
|
|
1605
1600
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: 4, marginTop: 8 }, children: [
|
|
1606
|
-
selEdges.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { style: { fontSize: 11.5, color: "var(--dsh-color-muted-weak, #9ca3af)" }, children: "\u6682\u65E0\u5173\u7CFB" }),
|
|
1601
|
+
selEdges.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { style: { fontSize: 11.5, color: "var(--dsh-color-muted-weak, #9ca3af)" }, children: tr("\u6682\u65E0\u5173\u7CFB") }),
|
|
1607
1602
|
selEdges.slice(0, 8).map((l) => {
|
|
1608
1603
|
const out = l.source === selNode.id;
|
|
1609
1604
|
const other = out ? l.target : l.source;
|
|
1610
1605
|
return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: 5, fontSize: 11.5 }, children: [
|
|
1611
|
-
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { style: { ...s.relChip, color: relColor(l.relation), borderColor: relColor(l.relation) }, children:
|
|
1606
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { style: { ...s.relChip, color: relColor(l.relation), borderColor: relColor(l.relation) }, children: relLabel(l.relation) }),
|
|
1612
1607
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { style: { color: "var(--dsh-color-muted, #6b7280)" }, children: out ? "\u2192" : "\u2190" }),
|
|
1613
1608
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { style: { overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap", maxWidth: 150 }, children: nameOf(other) })
|
|
1614
1609
|
] }, l.id);
|
|
@@ -1616,21 +1611,24 @@ function EngramGraph({ workspace, entities, tasks, links, nameOf }) {
|
|
|
1616
1611
|
selEdges.length > 8 && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { style: { fontSize: 11, color: "var(--dsh-color-muted-weak, #9ca3af)" }, children: [
|
|
1617
1612
|
"+",
|
|
1618
1613
|
selEdges.length - 8,
|
|
1619
|
-
"
|
|
1614
|
+
" ",
|
|
1615
|
+
tr(" \u6761\u66F4\u591A\u2026")
|
|
1620
1616
|
] })
|
|
1621
1617
|
] })
|
|
1622
1618
|
] })
|
|
1623
1619
|
] }),
|
|
1624
1620
|
incidentKinds.size > 0 && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { style: { display: "flex", gap: 6, flexWrap: "wrap", marginTop: 8, alignItems: "center" }, children: [
|
|
1625
|
-
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { style: { fontSize: 11.5, color: "var(--dsh-color-muted-weak, #9ca3af)" }, children: "\u56FE\u4F8B\uFF1A" }),
|
|
1626
|
-
[...incidentKinds].sort().map((rel) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { style: { ...s.relChip, color: relColor(rel), borderColor: relColor(rel) }, children:
|
|
1621
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { style: { fontSize: 11.5, color: "var(--dsh-color-muted-weak, #9ca3af)" }, children: tr("\u56FE\u4F8B\uFF1A") }),
|
|
1622
|
+
[...incidentKinds].sort().map((rel) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { style: { ...s.relChip, color: relColor(rel), borderColor: relColor(rel) }, children: relLabel(rel) }, rel)),
|
|
1627
1623
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("span", { style: { marginLeft: 10, display: "inline-flex", alignItems: "center", gap: 4, fontSize: 11.5, color: "var(--dsh-color-muted, #6b7280)" }, children: [
|
|
1628
1624
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("circle", { r: 5, fill: TASK_COLOR }),
|
|
1629
|
-
"
|
|
1625
|
+
" ",
|
|
1626
|
+
tr(" \u4EFB\u52A1")
|
|
1630
1627
|
] }),
|
|
1631
1628
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("span", { style: { display: "inline-flex", alignItems: "center", gap: 4, fontSize: 11.5, color: "var(--dsh-color-muted, #6b7280)" }, children: [
|
|
1632
1629
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("circle", { r: 5, fill: NODE_DEFAULT }),
|
|
1633
|
-
"
|
|
1630
|
+
" ",
|
|
1631
|
+
tr(" \u5B9E\u4F53")
|
|
1634
1632
|
] })
|
|
1635
1633
|
] })
|
|
1636
1634
|
] });
|
|
@@ -1854,62 +1852,47 @@ function EngramPreview({ api, workspace, defaultWorkspace, workspaces }) {
|
|
|
1854
1852
|
};
|
|
1855
1853
|
const target = ws || workspaces[0] || "";
|
|
1856
1854
|
if (!target) {
|
|
1857
|
-
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { style: { ...hb2.root, color: "var(--dsh-color-muted, #6b7280)" }, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { children: "\u8FD8\u6CA1\u6709\u53EF\u7528\u5DE5\u4F5C\u533A \u2014 \u5148\u521B\u5EFA/\u6253\u5F00\u4E00\u4E2A\u5DE5\u4F5C\u533A\uFF0C[ENGRAM] \u6CE8\u5165\u5757\u4F1A\u6309\u5DE5\u4F5C\u533A\u72EC\u7ACB\u6E32\u67D3\u3002" }) });
|
|
1855
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { style: { ...hb2.root, color: "var(--dsh-color-muted, #6b7280)" }, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { children: tr("\u8FD8\u6CA1\u6709\u53EF\u7528\u5DE5\u4F5C\u533A \u2014 \u5148\u521B\u5EFA/\u6253\u5F00\u4E00\u4E2A\u5DE5\u4F5C\u533A\uFF0C[ENGRAM] \u6CE8\u5165\u5757\u4F1A\u6309\u5DE5\u4F5C\u533A\u72EC\u7ACB\u6E32\u67D3\u3002") }) });
|
|
1858
1856
|
}
|
|
1859
1857
|
const esrLines = data ? data.esr.split("\n") : [];
|
|
1860
1858
|
const engramLines = data ? data.engram.split("\n") : [];
|
|
1861
1859
|
return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { style: hb2.root, children: [
|
|
1862
1860
|
/* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { style: hb2.head, children: [
|
|
1863
|
-
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { style: hb2.title, children: "\u6CE8\u5165\u9884\u89C8\uFF08[ENGRAM] \xB7 [ESR]\uFF09" }),
|
|
1864
|
-
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { style: hb2.sub, children: "\u6BCF\u4E2A\u4F1A\u8BDD\u5B9E\u9645\u6CE8\u5165\u7684\u63D0\u793A\u5757 \xB7 \u4F1A\u8BDD\u5185\u51BB\u7ED3\u4E00\u6B21\uFF08order 40/41\uFF0C\u524D\u7F00\u7A33\u5B9A\u590D\u7528 KV \u7F13\u5B58\uFF09" })
|
|
1861
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { style: hb2.title, children: tr("\u6CE8\u5165\u9884\u89C8\uFF08[ENGRAM] \xB7 [ESR]\uFF09") }),
|
|
1862
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { style: hb2.sub, children: tr("\u6BCF\u4E2A\u4F1A\u8BDD\u5B9E\u9645\u6CE8\u5165\u7684\u63D0\u793A\u5757 \xB7 \u4F1A\u8BDD\u5185\u51BB\u7ED3\u4E00\u6B21\uFF08order 40/41\uFF0C\u524D\u7F00\u7A33\u5B9A\u590D\u7528 KV \u7F13\u5B58\uFF09") })
|
|
1865
1863
|
] }),
|
|
1866
1864
|
/* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { style: hb2.meta, children: [
|
|
1867
1865
|
data && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_jsx_runtime3.Fragment, { children: [
|
|
1868
|
-
/* @__PURE__ */ (0, import_jsx_runtime3.
|
|
1869
|
-
|
|
1870
|
-
|
|
1871
|
-
|
|
1872
|
-
/* @__PURE__ */ (0, import_jsx_runtime3.
|
|
1873
|
-
"\u4EFB\u52A1 ",
|
|
1874
|
-
data.meta.counts.tasks,
|
|
1875
|
-
" active"
|
|
1876
|
-
] }),
|
|
1877
|
-
/* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("span", { style: hb2.chip, children: [
|
|
1878
|
-
"\u5173\u7CFB ",
|
|
1879
|
-
data.meta.counts.links
|
|
1880
|
-
] }),
|
|
1881
|
-
/* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("span", { style: hb2.chip, children: [
|
|
1882
|
-
"\u8282\u70B9 ",
|
|
1883
|
-
data.meta.counts.nodes
|
|
1884
|
-
] }),
|
|
1885
|
-
/* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("span", { style: hb2.chip, children: [
|
|
1886
|
-
"\u5171 ~",
|
|
1887
|
-
data.meta.engram.tokens + data.meta.esr.tokens,
|
|
1888
|
-
" tokens"
|
|
1889
|
-
] })
|
|
1866
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { style: hb2.chip, children: tr("\u8BB0\u5FC6 {0}", { "0": data.meta.counts.memories }) }),
|
|
1867
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { style: hb2.chip, children: tr("\u4EFB\u52A1 {0} active", { "0": data.meta.counts.tasks }) }),
|
|
1868
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { style: hb2.chip, children: tr("\u5173\u7CFB {0}", { "0": data.meta.counts.links }) }),
|
|
1869
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { style: hb2.chip, children: tr("\u8282\u70B9 {0}", { "0": data.meta.counts.nodes }) }),
|
|
1870
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { style: hb2.chip, children: tr("\u5171 ~{0} tokens", { "0": data.meta.engram.tokens + data.meta.esr.tokens }) })
|
|
1890
1871
|
] }),
|
|
1891
|
-
!data && !error && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { style: hb2.chip, children: loading ? "\u8BFB\u53D6\u4E2D\u2026" : "\u2026" }),
|
|
1872
|
+
!data && !error && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { style: hb2.chip, children: loading ? tr("\u8BFB\u53D6\u4E2D\u2026") : "\u2026" }),
|
|
1892
1873
|
error && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { style: hb2.chip, children: error })
|
|
1893
1874
|
] }),
|
|
1894
1875
|
/* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { style: hb2.panes, children: [
|
|
1895
1876
|
/* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { style: hb2.pane, children: [
|
|
1896
1877
|
/* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { style: hb2.paneHead, children: [
|
|
1897
1878
|
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { style: { ...hb2.badge, background: dark ? "#3b5bdb" : "#4f46e5" }, children: "ENGRAM" }),
|
|
1898
|
-
"\u7D22\u5F15\u5757",
|
|
1879
|
+
tr("\u7D22\u5F15\u5757"),
|
|
1899
1880
|
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { style: hb2.orderChip, children: "order 40" }),
|
|
1900
|
-
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("button", { style: hb2.copyBtn, onClick: () => copy("engram"), children: copied === "engram" ? "\u5DF2\u590D\u5236 \u2713" : "\u590D\u5236" })
|
|
1881
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("button", { style: hb2.copyBtn, onClick: () => copy("engram"), children: copied === "engram" ? tr("\u5DF2\u590D\u5236 \u2713") : tr("\u590D\u5236") })
|
|
1901
1882
|
] }),
|
|
1902
|
-
!data && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { style: hb2.empty, children: loading ? "\u6E32\u67D3\u4E2D\u2026" : "\u2013" }),
|
|
1903
|
-
data && data.engram === "" && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { style: hb2.empty, children: "\u8BE5\u5DE5\u4F5C\u533A\u6CA1\u6709\u53EF\u6CE8\u5165\u7684\u8BB0\u5FC6/\u4EFB\u52A1/\u5173\u7CFB ([ENGRAM] \u5757\u4E3A\u7A7A)\u3002" }),
|
|
1883
|
+
!data && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { style: hb2.empty, children: loading ? tr("\u6E32\u67D3\u4E2D\u2026") : "\u2013" }),
|
|
1884
|
+
data && data.engram === "" && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { style: hb2.empty, children: tr("\u8BE5\u5DE5\u4F5C\u533A\u6CA1\u6709\u53EF\u6CE8\u5165\u7684\u8BB0\u5FC6/\u4EFB\u52A1/\u5173\u7CFB ([ENGRAM] \u5757\u4E3A\u7A7A)\u3002") }),
|
|
1904
1885
|
data && data.engram !== "" && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("pre", { style: hb2.pre, children: engramLines.map((line, i) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { style: lineColor(line, dark), children: line || "\xA0" }, i)) }),
|
|
1905
1886
|
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { style: hb2.paneCost, children: data && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_jsx_runtime3.Fragment, { children: [
|
|
1906
1887
|
/* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("span", { style: hb2.chip, children: [
|
|
1907
1888
|
data.meta.engram.lines,
|
|
1908
|
-
"
|
|
1889
|
+
" ",
|
|
1890
|
+
tr(" \u884C")
|
|
1909
1891
|
] }),
|
|
1910
1892
|
/* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("span", { style: hb2.chip, children: [
|
|
1911
1893
|
data.meta.engram.chars,
|
|
1912
|
-
"
|
|
1894
|
+
" ",
|
|
1895
|
+
tr(" \u5B57\u7B26")
|
|
1913
1896
|
] }),
|
|
1914
1897
|
/* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("span", { style: hb2.chip, children: [
|
|
1915
1898
|
"~",
|
|
@@ -1921,21 +1904,23 @@ function EngramPreview({ api, workspace, defaultWorkspace, workspaces }) {
|
|
|
1921
1904
|
/* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { style: hb2.pane, children: [
|
|
1922
1905
|
/* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { style: hb2.paneHead, children: [
|
|
1923
1906
|
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { style: { ...hb2.badge, background: dark ? "#6d28d9" : "#7c3aed" }, children: "ESR" }),
|
|
1924
|
-
"\u4EFB\u52A1 \xB7 \u95ED\u73AF\u5757",
|
|
1907
|
+
tr("\u4EFB\u52A1 \xB7 \u95ED\u73AF\u5757"),
|
|
1925
1908
|
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { style: hb2.orderChip, children: "order 41" }),
|
|
1926
|
-
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("button", { style: hb2.copyBtn, onClick: () => copy("esr"), children: copied === "esr" ? "\u5DF2\u590D\u5236 \u2713" : "\u590D\u5236" })
|
|
1909
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("button", { style: hb2.copyBtn, onClick: () => copy("esr"), children: copied === "esr" ? tr("\u5DF2\u590D\u5236 \u2713") : tr("\u590D\u5236") })
|
|
1927
1910
|
] }),
|
|
1928
|
-
!data && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { style: hb2.empty, children: loading ? "\u6E32\u67D3\u4E2D\u2026" : "\u2013" }),
|
|
1929
|
-
data && data.esr === "" && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { style: hb2.empty, children: "\u8BE5\u5DE5\u4F5C\u533A\u6CA1\u6709\u4EFB\u52A1 ([ESR] \u5757\u4E3A\u7A7A)\u3002" }),
|
|
1911
|
+
!data && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { style: hb2.empty, children: loading ? tr("\u6E32\u67D3\u4E2D\u2026") : "\u2013" }),
|
|
1912
|
+
data && data.esr === "" && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { style: hb2.empty, children: tr("\u8BE5\u5DE5\u4F5C\u533A\u6CA1\u6709\u4EFB\u52A1 ([ESR] \u5757\u4E3A\u7A7A)\u3002") }),
|
|
1930
1913
|
data && data.esr !== "" && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("pre", { style: hb2.pre, children: esrLines.map((line, i) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { style: lineColor(line, dark), children: line || "\xA0" }, i)) }),
|
|
1931
1914
|
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { style: hb2.paneCost, children: data && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_jsx_runtime3.Fragment, { children: [
|
|
1932
1915
|
/* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("span", { style: hb2.chip, children: [
|
|
1933
1916
|
data.meta.esr.lines,
|
|
1934
|
-
"
|
|
1917
|
+
" ",
|
|
1918
|
+
tr(" \u884C")
|
|
1935
1919
|
] }),
|
|
1936
1920
|
/* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("span", { style: hb2.chip, children: [
|
|
1937
1921
|
data.meta.esr.chars,
|
|
1938
|
-
"
|
|
1922
|
+
" ",
|
|
1923
|
+
tr(" \u5B57\u7B26")
|
|
1939
1924
|
] }),
|
|
1940
1925
|
/* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("span", { style: hb2.chip, children: [
|
|
1941
1926
|
"~",
|
|
@@ -1945,7 +1930,7 @@ function EngramPreview({ api, workspace, defaultWorkspace, workspaces }) {
|
|
|
1945
1930
|
] }) })
|
|
1946
1931
|
] })
|
|
1947
1932
|
] }),
|
|
1948
|
-
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { style: hb2.sub, children: "\u8BF4\u660E\uFF1A\u5757\u7531\u4E0E\u7CFB\u7EDF\u63D0\u793A\u76F8\u540C\u7684\u7EAF\u51FD\u6570\u5B9E\u65F6\u6E32\u67D3\uFF08\u6BCF 20s \u5237\u65B0\uFF09\uFF1B\u300Cescalate:\u300D\u884C\u662F\u6700\u8FD1 14 \u5929 mem/esr \u8C03\u7528\u5931\u8861\u65F6\u81EA\u52A8\u9644\u52A0\u7684\u6570\u636E\u9A71\u52A8\u63D0\u9192\uFF0C\u884C\u4E3A\u6539\u5584\u540E\u81EA\u52A8\u6D88\u5931\u3002\u590D\u5236\u6309\u94AE\u53EF\u76F4\u63A5\u628A\u6CE8\u5165\u5757 \u8D34\u8FDB\u63D0\u793A\u8BCD\u5BA1\u8BA1\u3002" })
|
|
1933
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { style: hb2.sub, children: tr("\u8BF4\u660E\uFF1A\u5757\u7531\u4E0E\u7CFB\u7EDF\u63D0\u793A\u76F8\u540C\u7684\u7EAF\u51FD\u6570\u5B9E\u65F6\u6E32\u67D3\uFF08\u6BCF 20s \u5237\u65B0\uFF09\uFF1B\u300Cescalate:\u300D\u884C\u662F\u6700\u8FD1 14 \u5929 mem/esr \u8C03\u7528\u5931\u8861\u65F6\u81EA\u52A8\u9644\u52A0\u7684\u6570\u636E\u9A71\u52A8\u63D0\u9192\uFF0C\u884C\u4E3A\u6539\u5584\u540E\u81EA\u52A8\u6D88\u5931\u3002\u590D\u5236\u6309\u94AE\u53EF\u76F4\u63A5\u628A\u6CE8\u5165\u5757 \u8D34\u8FDB\u63D0\u793A\u8BCD\u5BA1\u8BA1\u3002") })
|
|
1949
1934
|
] });
|
|
1950
1935
|
}
|
|
1951
1936
|
|
|
@@ -1970,7 +1955,7 @@ function EvidenceRing({ artifact, evaluation, refs, size = 24, showLabel = true,
|
|
|
1970
1955
|
return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
|
|
1971
1956
|
"span",
|
|
1972
1957
|
{
|
|
1973
|
-
title: title ?? (isFraction ?
|
|
1958
|
+
title: title ?? (isFraction ? tr("\u8BC1\u636E\u5B8C\u5907\u5EA6 {0}%", { "0": Math.round(fraction * 100) }) : tr("\u8BC1\u636E\u95ED\u73AF\uFF1Aartifact{0} \xB7 evaluation{1} \xB7 memory_ref{2} ({3}/3)", { "0": artifact ? "\u2713" : "\u2717", "1": evaluation ? "\u2713" : "\u2717", "2": refs ? "\u2713" : "\u2717", "3": filled })),
|
|
1974
1959
|
style: { position: "relative", display: "inline-flex", alignItems: "center", justifyContent: "center", flex: "0 0 auto", width: size, height: size, lineHeight: 1 },
|
|
1975
1960
|
children: [
|
|
1976
1961
|
isFraction ? /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("svg", { width: size, height: size, viewBox: `0 0 ${size} ${size}`, "aria-hidden": "true", children: [
|
|
@@ -2086,7 +2071,7 @@ function EngramTelemetry({ api, workspace }) {
|
|
|
2086
2071
|
return { rows, max };
|
|
2087
2072
|
}, [stats]);
|
|
2088
2073
|
const dose = stats && stats.ratios ? stats.ratios : null;
|
|
2089
|
-
const sampleText = stats && stats.ratios && stats.ratios.calls < 10 ?
|
|
2074
|
+
const sampleText = stats && stats.ratios && stats.ratios.calls < 10 ? tr("\u6837\u672C\u4E0D\u8DB3\uFF08{0} \u6B21\uFF09\uFF0C\u6BD4\u4F8B\u4EC5\u4F9B\u53C2\u8003", { "0": stats.ratios.calls }) : null;
|
|
2090
2075
|
const ledger = stats?.ledger ?? null;
|
|
2091
2076
|
const ledgerBucket = ledger === null ? null : workspace === "" ? ledger.totals : ledger.byWorkspace?.[workspace] ?? null;
|
|
2092
2077
|
const ledgerDays = ledger === null || workspace !== "" ? [] : [...ledger.byDay ?? []].slice(0, 14).reverse();
|
|
@@ -2128,11 +2113,8 @@ function EngramTelemetry({ api, workspace }) {
|
|
|
2128
2113
|
const maxBar = daily.max;
|
|
2129
2114
|
return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: hb2.root, children: [
|
|
2130
2115
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: hb2.head, children: [
|
|
2131
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { style: hb2.title, children: "agent \u884C\u4E3A\u9065\u6D4B\u4EEA\u8868\u76D8" }),
|
|
2132
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.
|
|
2133
|
-
"\u57FA\u4E8E /stats \u771F\u5B9E\u8C03\u7528\u7D2F\u8BA1\uFF08\u5DE5\u4F5C\u533A \xD7 \u5929\u6EDA\u52A8\uFF09\xB7 20s \u81EA\u52A8\u5237\u65B0",
|
|
2134
|
-
workspace === "" ? " \xB7 \u5168\u90E8\u5DE5\u4F5C\u533A" : ` \xB7 ${workspace}`
|
|
2135
|
-
] }),
|
|
2116
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { style: hb2.title, children: tr("agent \u884C\u4E3A\u9065\u6D4B\u4EEA\u8868\u76D8") }),
|
|
2117
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { style: hb2.sub, children: tr("\u57FA\u4E8E /stats \u771F\u5B9E\u8C03\u7528\u7D2F\u8BA1\uFF08\u5DE5\u4F5C\u533A \xD7 \u5929\u6EDA\u52A8\uFF09\xB7 20s \u81EA\u52A8\u5237\u65B0{0}", { "0": workspace === "" ? tr(" \xB7 \u5168\u90E8\u5DE5\u4F5C\u533A") : ` \xB7 ${workspace}` }) }),
|
|
2136
2118
|
loading && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { style: hb2.sub, children: "\u2026" }),
|
|
2137
2119
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
2138
2120
|
"button",
|
|
@@ -2140,7 +2122,7 @@ function EngramTelemetry({ api, workspace }) {
|
|
|
2140
2122
|
style: { marginLeft: "auto", fontSize: 11.5, fontWeight: 600, padding: "3px 10px", borderRadius: 7, cursor: "pointer", border: "1px solid var(--dsh-color-border, #d1d5db)", background: "transparent", color: "var(--dsh-color-muted-strong, #374151)" },
|
|
2141
2123
|
onClick: () => void refresh(),
|
|
2142
2124
|
disabled: loading,
|
|
2143
|
-
children: "\u5237\u65B0"
|
|
2125
|
+
children: tr("\u5237\u65B0")
|
|
2144
2126
|
}
|
|
2145
2127
|
)
|
|
2146
2128
|
] }),
|
|
@@ -2149,108 +2131,88 @@ function EngramTelemetry({ api, workspace }) {
|
|
|
2149
2131
|
error
|
|
2150
2132
|
] }),
|
|
2151
2133
|
sampleText && stats && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: hb2.warn, children: sampleText }),
|
|
2152
|
-
!stats && !error && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: { ...hb2.sub, padding: 8 }, children: "\u52A0\u8F7D\u4E2D\u2026" }),
|
|
2134
|
+
!stats && !error && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: { ...hb2.sub, padding: 8 }, children: tr("\u52A0\u8F7D\u4E2D\u2026") }),
|
|
2153
2135
|
stats && /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_jsx_runtime5.Fragment, { children: [
|
|
2154
2136
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: hb2.grid, children: [
|
|
2155
2137
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: hb2.gaugeCard, children: [
|
|
2156
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(EvidenceRing, { artifact: false, evaluation: false, refs: false, size: 64, fraction: dose?.esrRatio ?? 0, labelText: pct(dose?.esrRatio), title: `ESR \u4E3B\u52A8\u6027\uFF08\u76EE\u6807 \u2265 34%\uFF09` }),
|
|
2138
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(EvidenceRing, { artifact: false, evaluation: false, refs: false, size: 64, fraction: dose?.esrRatio ?? 0, labelText: pct(dose?.esrRatio), title: tr(`ESR \u4E3B\u52A8\u6027\uFF08\u76EE\u6807 \u2265 34%\uFF09`) }),
|
|
2157
2139
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { children: [
|
|
2158
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: hb2.gaugeLabel, children: "ESR \u4E3B\u52A8\u6027" }),
|
|
2140
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: hb2.gaugeLabel, children: tr("ESR \u4E3B\u52A8\u6027") }),
|
|
2159
2141
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: hb2.gaugeSub, children: [
|
|
2160
2142
|
"esr ",
|
|
2161
2143
|
dose?.esrCalls,
|
|
2162
2144
|
" / mem ",
|
|
2163
2145
|
dose?.memCalls,
|
|
2164
|
-
"
|
|
2165
|
-
dose?.calls
|
|
2146
|
+
" ",
|
|
2147
|
+
tr(" \xB7 \u5171 {0}", { "0": dose?.calls })
|
|
2166
2148
|
] }),
|
|
2167
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: { fontSize: 10, color: (dose?.esrRatio ?? 0) >= 0.34 ? "#059669" : "#d97706", fontWeight: 700 }, children: (dose?.esrRatio ?? 0) >= 0.34 ? "\u5065\u5EB7" : "\u504F\u4F4E \u2192 \u4E0B\u4F1A\u8BDD\u6CE8\u5165 escalate \u63D0\u9192" })
|
|
2149
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: { fontSize: 10, color: (dose?.esrRatio ?? 0) >= 0.34 ? "#059669" : "#d97706", fontWeight: 700 }, children: (dose?.esrRatio ?? 0) >= 0.34 ? tr("\u5065\u5EB7") : tr("\u504F\u4F4E \u2192 \u4E0B\u4F1A\u8BDD\u6CE8\u5165 escalate \u63D0\u9192") })
|
|
2168
2150
|
] })
|
|
2169
2151
|
] }),
|
|
2170
2152
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: hb2.gaugeCard, children: [
|
|
2171
2153
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(EvidenceRing, { artifact: false, evaluation: false, refs: false, size: 64, fraction: dose?.recallHitRate ?? 0, labelText: pct(dose?.recallHitRate) }),
|
|
2172
2154
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { children: [
|
|
2173
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: hb2.gaugeLabel, children: "\u53EC\u56DE\u547D\u4E2D\u7387" }),
|
|
2174
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: hb2.gaugeSub, children: "\u6709\u547D\u4E2D\u7684 engram_recall \u5360\u6BD4" })
|
|
2155
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: hb2.gaugeLabel, children: tr("\u53EC\u56DE\u547D\u4E2D\u7387") }),
|
|
2156
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: hb2.gaugeSub, children: tr("\u6709\u547D\u4E2D\u7684 engram_recall \u5360\u6BD4") })
|
|
2175
2157
|
] })
|
|
2176
2158
|
] }),
|
|
2177
2159
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: hb2.gaugeCard, children: [
|
|
2178
2160
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(EvidenceRing, { artifact: false, evaluation: false, refs: false, size: 64, fraction: dose?.detailFollowRate ?? 0, labelText: pct(dose?.detailFollowRate) }),
|
|
2179
2161
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { children: [
|
|
2180
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: hb2.gaugeLabel, children: "detail \u8F6C\u5316" }),
|
|
2181
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: hb2.gaugeSub, children: "\u547D\u4E2D\u53EC\u56DE\u540E 8 \u4E8B\u4EF6\u5185\u8DDF engram_detail" })
|
|
2162
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: hb2.gaugeLabel, children: tr("detail \u8F6C\u5316") }),
|
|
2163
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: hb2.gaugeSub, children: tr("\u547D\u4E2D\u53EC\u56DE\u540E 8 \u4E8B\u4EF6\u5185\u8DDF engram_detail") })
|
|
2182
2164
|
] })
|
|
2183
2165
|
] })
|
|
2184
2166
|
] }),
|
|
2185
2167
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: hb2.grid, children: [
|
|
2186
2168
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: hb2.statCard, children: [
|
|
2187
2169
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: hb2.statNum, children: dose?.calls ?? 0 }),
|
|
2188
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: hb2.statLabel, children: "\u7D2F\u8BA1\u5DE5\u5177\u8C03\u7528" })
|
|
2170
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: hb2.statLabel, children: tr("\u7D2F\u8BA1\u5DE5\u5177\u8C03\u7528") })
|
|
2189
2171
|
] }),
|
|
2190
2172
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: hb2.statCard, children: [
|
|
2191
2173
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: hb2.statNum, children: dose?.esrCalls ?? 0 }),
|
|
2192
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: hb2.statLabel, children: "esr_* \u8C03\u7528" })
|
|
2174
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: hb2.statLabel, children: tr("esr_* \u8C03\u7528") })
|
|
2193
2175
|
] }),
|
|
2194
2176
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: hb2.statCard, children: [
|
|
2195
2177
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: hb2.statNum, children: dose?.memCalls ?? 0 }),
|
|
2196
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: hb2.statLabel, children: "\u8BB0\u5FC6\u7C7B\u8C03\u7528" })
|
|
2178
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: hb2.statLabel, children: tr("\u8BB0\u5FC6\u7C7B\u8C03\u7528") })
|
|
2197
2179
|
] }),
|
|
2198
2180
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: hb2.statCard, children: [
|
|
2199
2181
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: hb2.statNum, children: dose?.recallHitsPerQuery ?? "\u2013" }),
|
|
2200
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: hb2.statLabel, children: "\u5E73\u5747\u547D\u4E2D/\u67E5\u8BE2" })
|
|
2182
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: hb2.statLabel, children: tr("\u5E73\u5747\u547D\u4E2D/\u67E5\u8BE2") })
|
|
2201
2183
|
] }),
|
|
2202
2184
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: hb2.statCard, children: [
|
|
2203
2185
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: hb2.statNum, children: stats.totals.failures ?? 0 }),
|
|
2204
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: hb2.statLabel, children: "\u5931\u8D25\u6B21\u6570" })
|
|
2186
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: hb2.statLabel, children: tr("\u5931\u8D25\u6B21\u6570") })
|
|
2205
2187
|
] })
|
|
2206
2188
|
] }),
|
|
2207
2189
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: hb2.panel, children: [
|
|
2208
2190
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: { ...hb2.panelTitle, display: "flex", alignItems: "baseline", gap: 8, flexWrap: "wrap" }, children: [
|
|
2209
|
-
"Context Ledger \xB7 \u4E0A\u4E0B\u6587\u51C0\u6536\u76CA",
|
|
2210
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { style: hb2.sub, children: workspace === "" ? "\u5168\u90E8\u5DE5\u4F5C\u533A" : workspace })
|
|
2191
|
+
tr("Context Ledger \xB7 \u4E0A\u4E0B\u6587\u51C0\u6536\u76CA"),
|
|
2192
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { style: hb2.sub, children: workspace === "" ? tr("\u5168\u90E8\u5DE5\u4F5C\u533A") : workspace })
|
|
2211
2193
|
] }),
|
|
2212
|
-
!ledger ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: hb2.sub, children: "\u8D26\u672C\u672A\u542F\u7528\uFF08`ledgerEnabled:false`\uFF09\u6216\u5BBF\u4E3B API \u672A\u5C31\u7EEA\u3002" }) : !ledgerBucket ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: hb2.sub, children: "\u8BE5\u5DE5\u4F5C\u533A\u8FD8\u6CA1\u6709\u8D26\u672C\u8BB0\u5F55\u3002" }) : /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_jsx_runtime5.Fragment, { children: [
|
|
2194
|
+
!ledger ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: hb2.sub, children: tr("\u8D26\u672C\u672A\u542F\u7528\uFF08`ledgerEnabled:false`\uFF09\u6216\u5BBF\u4E3B API \u672A\u5C31\u7EEA\u3002") }) : !ledgerBucket ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: hb2.sub, children: tr("\u8BE5\u5DE5\u4F5C\u533A\u8FD8\u6CA1\u6709\u8D26\u672C\u8BB0\u5F55\u3002") }) : /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_jsx_runtime5.Fragment, { children: [
|
|
2213
2195
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: { display: "flex", alignItems: "baseline", gap: 10, flexWrap: "wrap" }, children: [
|
|
2214
2196
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { style: { ...hb2.statNum, fontSize: 24, color: ledgerBucket.netTokens >= 0 ? "#059669" : "#dc2626" }, children: tokenCount(ledgerBucket.netTokens) }),
|
|
2215
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { style: hb2.statLabel, children: "\u51C0 token\uFF08\u8282\u7701 \u2212 \u6CE8\u5165 \u2212 \u91CD\u5199\u7F5A\u91D1\uFF09" }),
|
|
2216
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.
|
|
2217
|
-
"\u8BF7\u6C42 ",
|
|
2218
|
-
ledgerBucket.requests,
|
|
2219
|
-
" \xB7 \u4F1A\u8BDD ",
|
|
2220
|
-
ledgerBucket.sessions,
|
|
2221
|
-
" \xB7 open ",
|
|
2222
|
-
ledger.openSessions,
|
|
2223
|
-
stats.jit ? ` \xB7 JIT \u63A8\u9001 ${stats.jit.pushes}` : ""
|
|
2224
|
-
] })
|
|
2197
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { style: hb2.statLabel, children: tr("\u51C0 token\uFF08\u8282\u7701 \u2212 \u6CE8\u5165 \u2212 \u91CD\u5199\u7F5A\u91D1\uFF09") }),
|
|
2198
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { style: hb2.gaugeSub, children: tr("\u8BF7\u6C42 {0} \xB7 \u4F1A\u8BDD {1} \xB7 open {2}{3}", { "0": ledgerBucket.requests, "1": ledgerBucket.sessions, "2": ledger.openSessions, "3": stats.jit ? tr(" \xB7 JIT \u63A8\u9001 {0}", { "0": stats.jit.pushes }) : "" }) })
|
|
2225
2199
|
] }),
|
|
2226
2200
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: { ...hb2.grid, marginTop: 8 }, children: [
|
|
2227
2201
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: hb2.statCard, children: [
|
|
2228
2202
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: { ...hb2.statNum, color: "#059669" }, children: tokenCount(ledgerBucket.avoidedTokens) }),
|
|
2229
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: hb2.statLabel, children: "\u8282\u7701 \xB7 \u526A\u679D/\u538B\u7F29\uFF08\u5DF2\u5165\u8D26\uFF09" })
|
|
2203
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: hb2.statLabel, children: tr("\u8282\u7701 \xB7 \u526A\u679D/\u538B\u7F29\uFF08\u5DF2\u5165\u8D26\uFF09") })
|
|
2230
2204
|
] }),
|
|
2231
2205
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: hb2.statCard, children: [
|
|
2232
2206
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: { ...hb2.statNum, color: "#d97706" }, children: tokenCount(-ledgerBucket.injectedTokens) }),
|
|
2233
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: hb2.statLabel, children: "\u6CE8\u5165\u6210\u672C \xB7 \u7D22\u5F15/\u53EC\u56DE/ESR\uFF08\u6BCF\u8BF7\u6C42\u91CD\u8BA1\uFF09" })
|
|
2207
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: hb2.statLabel, children: tr("\u6CE8\u5165\u6210\u672C \xB7 \u7D22\u5F15/\u53EC\u56DE/ESR\uFF08\u6BCF\u8BF7\u6C42\u91CD\u8BA1\uFF09") })
|
|
2234
2208
|
] }),
|
|
2235
2209
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: hb2.statCard, children: [
|
|
2236
2210
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: { ...hb2.statNum, color: "#dc2626" }, children: tokenCount(-Math.round(ledgerBucket.rewritesCostChars / ledger.charsPerToken)) }),
|
|
2237
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.
|
|
2238
|
-
"\u91CD\u5199\u7F5A\u91D1 \xB7 ",
|
|
2239
|
-
ledgerBucket.rewriteCount,
|
|
2240
|
-
" \u6B21"
|
|
2241
|
-
] })
|
|
2211
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: hb2.statLabel, children: tr("\u91CD\u5199\u7F5A\u91D1 \xB7 {0} \u6B21", { "0": ledgerBucket.rewriteCount }) })
|
|
2242
2212
|
] })
|
|
2243
2213
|
] }),
|
|
2244
|
-
ledgerBucket.avoidedTokens === 0 && (ledgerBucket.injectedTokens > 0 || ledgerBucket.rewriteCount > 0) && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: { ...hb2.sub, marginTop: 6 }, children: "\u8282\u7701\u4ECD\u4E3A 0\uFF1A\u672C\u5DE5\u4F5C\u533A\u8FD8\u6CA1\u6709\u526A\u679D/\u538B\u7F29\u8282\u7701\u5165\u8D26\u2014\u2014L1 \u8FB9\u754C\u526A\u679D\u9700\u8981 host \u5E73\u9762\u7684 toolResultPruner\uFF08DSH \u2265 0.2.0 \u7531 bundle patch \u91CD\u65B0\u542F\u7528\u8BE5\u884C\uFF09\uFF0C\u538B\u7F29\u8282\u7701\u7531 Context GC \u5F15\u64CE\u5728 checkpoint \u65F6\u4E0A\u62A5\uFF1B\u51C0\u503C\u4E3A\u8D1F = \u6CE8\u5165\u6210\u672C + \u91CD\u5199\u7F5A\u91D1\u7684\u5408\u8BA1\u3002" }),
|
|
2245
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.
|
|
2246
|
-
"\u53E3\u5F84\uFF1Achars/",
|
|
2247
|
-
ledger.charsPerToken,
|
|
2248
|
-
" \u4F30\u7B97 \xB7 \u7F13\u5B58\u6298\u4EF7 ",
|
|
2249
|
-
Math.round(ledger.cacheDiscount * 100),
|
|
2250
|
-
"% \uFF08\u91CD\u5199\u6309 ",
|
|
2251
|
-
Math.round((1 - ledger.cacheDiscount) * 100),
|
|
2252
|
-
"% \u8BA1\uFF09\xB7 \u672A\u8BA1\u6A21\u578B\u8D28\u91CF\u5DEE"
|
|
2253
|
-
] }),
|
|
2214
|
+
ledgerBucket.avoidedTokens === 0 && (ledgerBucket.injectedTokens > 0 || ledgerBucket.rewriteCount > 0) && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: { ...hb2.sub, marginTop: 6 }, children: tr("\u8282\u7701\u4ECD\u4E3A 0\uFF1A\u672C\u5DE5\u4F5C\u533A\u8FD8\u6CA1\u6709\u526A\u679D/\u538B\u7F29\u8282\u7701\u5165\u8D26\u2014\u2014L1 \u8FB9\u754C\u526A\u679D\u9700\u8981 host \u5E73\u9762\u7684 toolResultPruner\uFF08DSH \u2265 0.2.0 \u7531 bundle patch \u91CD\u65B0\u542F\u7528\u8BE5\u884C\uFF09\uFF0C\u538B\u7F29\u8282\u7701\u7531 Context GC \u5F15\u64CE\u5728 checkpoint \u65F6\u4E0A\u62A5\uFF1B\u51C0\u503C\u4E3A\u8D1F = \u6CE8\u5165\u6210\u672C + \u91CD\u5199\u7F5A\u91D1\u7684\u5408\u8BA1\u3002") }),
|
|
2215
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: { ...hb2.sub, marginTop: 6 }, children: tr("\u53E3\u5F84\uFF1Achars/{0} \u4F30\u7B97 \xB7 \u7F13\u5B58\u6298\u4EF7 {1}% \uFF08\u91CD\u5199\u6309 {2}% \u8BA1\uFF09\xB7 \u672A\u8BA1\u6A21\u578B\u8D28\u91CF\u5DEE", { "0": ledger.charsPerToken, "1": Math.round(ledger.cacheDiscount * 100), "2": Math.round((1 - ledger.cacheDiscount) * 100) }) }),
|
|
2254
2216
|
ledgerDays.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("svg", { width: 460, height: 96, viewBox: "0 0 460 96", style: { display: "block", maxWidth: "100%", marginTop: 8 }, children: [
|
|
2255
2217
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("line", { x1: 0, y1: 48, x2: 460, y2: 48, stroke: dark ? "rgba(148,163,184,.35)" : "rgba(107,114,128,.35)", strokeDasharray: "3 3" }),
|
|
2256
2218
|
ledgerDays.map((d, i) => {
|
|
@@ -2259,17 +2221,17 @@ function EngramTelemetry({ api, workspace }) {
|
|
|
2259
2221
|
const h = Math.abs(d.netTokens) / ledgerMax * 38;
|
|
2260
2222
|
const positive = d.netTokens >= 0;
|
|
2261
2223
|
return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("g", { children: [
|
|
2262
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("rect", { x, y: positive ? 48 - h : 48, width: w, height: Math.max(1, h), rx: 2, fill: positive ? "#059669" : "#dc2626", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("title", { children:
|
|
2224
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("rect", { x, y: positive ? 48 - h : 48, width: w, height: Math.max(1, h), rx: 2, fill: positive ? "#059669" : "#dc2626", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("title", { children: tr("{0} \xB7 net {1} tok \xB7 \u8BF7\u6C42 {2}", { "0": d.day, "1": d.netTokens, "2": d.requests }) }) }),
|
|
2263
2225
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("text", { x: x + w / 2, y: 92, fontSize: 8, fill: dark ? "#8b93a7" : "#6b7280", textAnchor: "middle", children: (d.day ?? "").slice(5).replace("-", "/") })
|
|
2264
2226
|
] }, d.day);
|
|
2265
2227
|
})
|
|
2266
2228
|
] }),
|
|
2267
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: { ...hb2.sub, marginTop: 4 }, children: "\u7EFF = \u5F53\u65E5\u51C0\u7701 \xB7 \u7EA2 = \u5F53\u65E5\u51C0\u4E8F\uFF08\u6309\u5929\u6EDA\u52A8\uFF0C\u6700\u8FD1 14 \u5929\uFF09" })
|
|
2229
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: { ...hb2.sub, marginTop: 4 }, children: tr("\u7EFF = \u5F53\u65E5\u51C0\u7701 \xB7 \u7EA2 = \u5F53\u65E5\u51C0\u4E8F\uFF08\u6309\u5929\u6EDA\u52A8\uFF0C\u6700\u8FD1 14 \u5929\uFF09") })
|
|
2268
2230
|
] })
|
|
2269
2231
|
] }),
|
|
2270
2232
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: hb2.panel, children: [
|
|
2271
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: hb2.panelTitle, children: "\u8FD1 14 \u5929\u6BCF\u65E5\u6D3B\u52A8 \xB7 mem vs esr" }),
|
|
2272
|
-
daily.rows.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: hb2.sub, children: "\u8FD8\u6CA1\u6709\u6309\u5929\u6570\u636E\uFF08\u5DE5\u5177\u8C03\u7528\u4F1A\u5B9E\u65F6\u7D2F\u8BA1\uFF09\u3002" }) : /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("svg", { width: BW, height: BH, viewBox: `0 0 ${BW} ${BH}`, style: { display: "block", maxWidth: "100%" }, children: daily.rows.map((d, i) => {
|
|
2233
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: hb2.panelTitle, children: tr("\u8FD1 14 \u5929\u6BCF\u65E5\u6D3B\u52A8 \xB7 mem vs esr") }),
|
|
2234
|
+
daily.rows.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: hb2.sub, children: tr("\u8FD8\u6CA1\u6709\u6309\u5929\u6570\u636E\uFF08\u5DE5\u5177\u8C03\u7528\u4F1A\u5B9E\u65F6\u7D2F\u8BA1\uFF09\u3002") }) : /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("svg", { width: BW, height: BH, viewBox: `0 0 ${BW} ${BH}`, style: { display: "block", maxWidth: "100%" }, children: daily.rows.map((d, i) => {
|
|
2273
2235
|
const mem = MEM_TOOLS2.reduce((a, k) => a + (d.counts?.[k] ?? 0), 0);
|
|
2274
2236
|
const esr = ESR_TOOLS2.reduce((a, k) => a + (d.counts?.[k] ?? 0), 0);
|
|
2275
2237
|
const total = mem + esr;
|
|
@@ -2288,7 +2250,8 @@ function EngramTelemetry({ api, workspace }) {
|
|
|
2288
2250
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: { display: "flex", gap: 14, marginTop: 6 }, children: [
|
|
2289
2251
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("span", { style: hb2.legend, children: [
|
|
2290
2252
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("i", { style: { width: 9, height: 9, borderRadius: 2, background: COLOR_MEM, display: "inline-block" } }),
|
|
2291
|
-
"
|
|
2253
|
+
" ",
|
|
2254
|
+
tr(" \u8BB0\u5FC6\u7C7B (engram_*/loom_*)")
|
|
2292
2255
|
] }),
|
|
2293
2256
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("span", { style: hb2.legend, children: [
|
|
2294
2257
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("i", { style: { width: 9, height: 9, borderRadius: 2, background: COLOR_ESR, display: "inline-block" } }),
|
|
@@ -2297,8 +2260,8 @@ function EngramTelemetry({ api, workspace }) {
|
|
|
2297
2260
|
] })
|
|
2298
2261
|
] }),
|
|
2299
2262
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: hb2.panel, children: [
|
|
2300
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: hb2.panelTitle, children: "\u5DE5\u5177\u8C03\u7528\u5206\u5E03\uFF08Top 8\uFF09" }),
|
|
2301
|
-
toolRows.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: hb2.sub, children: "\u8FD8\u6CA1\u6709\u5DE5\u5177\u8C03\u7528\u8BB0\u5F55\u3002" }) : /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: { display: "flex", flexDirection: "column", gap: 5 }, children: toolRows.map((r) => {
|
|
2263
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: hb2.panelTitle, children: tr("\u5DE5\u5177\u8C03\u7528\u5206\u5E03\uFF08Top 8\uFF09") }),
|
|
2264
|
+
toolRows.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: hb2.sub, children: tr("\u8FD8\u6CA1\u6709\u5DE5\u5177\u8C03\u7528\u8BB0\u5F55\u3002") }) : /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: { display: "flex", flexDirection: "column", gap: 5 }, children: toolRows.map((r) => {
|
|
2302
2265
|
const max = toolRows[0].count;
|
|
2303
2266
|
const w = Math.max(4, Math.round(r.count / max * 320));
|
|
2304
2267
|
const c = r.esc === "esr" ? COLOR_ESR : r.esc === "mem" ? COLOR_MEM : COLOR_MUTED;
|
|
@@ -2319,80 +2282,80 @@ function EngramTelemetry({ api, workspace }) {
|
|
|
2319
2282
|
// client/src/EngramConfigCard.tsx
|
|
2320
2283
|
var import_react6 = require("react");
|
|
2321
2284
|
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
2322
|
-
var
|
|
2323
|
-
{ key: "autoCapture", label: "\u81EA\u52A8\u6355\u83B7", hint: "\u96F6 LLM \u4ECE\u5DE5\u5177\u7ED3\u679C\u63D0\u53D6\u8BB0\u5FC6\uFF08git/\u5173\u952E\u6587\u4EF6/\u9519\u8BEF\uFF09", kind: "bool" },
|
|
2324
|
-
{ key: "autoCapturePreferences", label: "\u504F\u597D\u6355\u83B7", hint: "\u7528\u6237\u7EA0\u6B63/\u504F\u597D\u5B66\u4E60\uFF1A\u68C0\u6D4B\u6D88\u606F\u91CC\u7684\u300C\u4E0D\u8981\u7528X/\u6539\u7528Y/prefer/never use\u300D\u53E5\u5F0F\uFF0C\u81EA\u52A8\u6C89\u6DC0\u4E3A preference \u8BB0\u5FC6\u5E76\u7F6E\u9876 [ENGRAM]\uFF08correx/PAHF \u5F0F\uFF0C\u96F6 LLM\uFF09", kind: "bool" },
|
|
2325
|
-
{ key: "boundaryPrune", label: "\u8FB9\u754C\u526A\u679D", hint: "ResultPack L1\uFF1Atodo \u5B8C\u6210/goal \u7EC8\u6001\u8FB9\u754C\u4E3B\u52A8\u526A\u6389\u8D85\u9608\u503C\u65E7\u5DE5\u5177\u7ED3\u679C\uFF08DSH \u786E\u5B9A\u6027 surface-replace\u3001\u507F\u8FD8\u95E8\u3001\u96F6 LLM\uFF1B\u9ED8\u8BA4\u5F00\uFF0C\u5173=opt-out\uFF09", kind: "bool" },
|
|
2326
|
-
{ key: "boundaryPruneAdaptive", label: "\u526A\u679D\u81EA\u9002\u5E94", hint: "\u8D26\u672C\u5426\u51B3\uFF1A\u8BE5 workspace \u771F\u5B9E\u526A\u679D\u540E\u51C0\u6536\u76CA\u4E3A\u8D1F\uFF08\u22653 \u6B21\uFF09\u65F6\u81EA\u52A8\u505C\u6B62\u7EE7\u7EED\u526A\uFF1B\u8BC1\u636E\u53EA\u80FD\u5173\u3001\u4E0D\u4F1A\u81EA\u884C\u5F00", kind: "bool" },
|
|
2327
|
-
{ key: "boundaryPruneThresholdChars", label: "\u526A\u679D\u9608\u503C(\u5B57\u7B26)", hint: "\u8986\u76D6\u5BBF\u4E3B 8192\uFF1A\u8BBE 2048 \u53EF\u66F4\u65E9\u5F00\u526A\uFF0C\u5E76\u914D L2 \u5F52\u6863\u627E\u56DE\u88AB\u526A\u4E2D\u6BB5\uFF1B\u7559\u7A7A=\u5BBF\u4E3B\u9ED8\u8BA4\u3002\u5EFA\u8BAE\u540C\u65F6\u628A\u4FDD\u7559\u8FB9\u7F18\u8C03\u5C0F\uFF08\u5982 1024/256\uFF09\u4EE5\u83B7\u5F97\u6700\u5927\u8282\u7701", kind: "num", min: 256, max: 16384, step: 256 },
|
|
2328
|
-
{ key: "resultPack", label: "\u7ED3\u679C\u5F52\u6863\u53EC\u56DE", hint: "ResultPack L2\uFF1A\u526A\u6389\u7684\u4E2D\u6BB5\u8131\u654F\u5F52\u6863\uFF0C\u8282\u70B9\u5C3E\u90E8\u9644 handle\uFF0C\u6A21\u578B\u53EF\u7528 result_recall(callId) \u6309\u9875\u53EC\u56DE\uFF08\u5B8C\u6574 ObservationPack\uFF1B\u9ED8\u8BA4\u5F00\uFF0C\u4FDD\u8BC1\u9ED8\u8BA4\u526A\u679D\u65E0\u635F\uFF1B\u9700\u4E0E\u8FB9\u754C\u526A\u679D\u4E00\u8D77\u5F00\uFF09", kind: "bool" },
|
|
2329
|
-
{ key: "autoRecallOnStart", label: "\u4F1A\u8BDD\u542F\u52A8\u81EA\u52A8\u53EC\u56DE", hint: "\u65B0\u4F1A\u8BDD\u6309\u9996\u6761\u6D88\u606F\u81EA\u52A8\u628A\u6700\u76F8\u5173\u8BB0\u5FC6\u6CE8\u5165 [RECALL] \u5757\uFF08\u65E0\u9700\u6A21\u578B\u60F3\u8D77\u8C03 engram_recall\uFF09\uFF1B\u5173\u6389=\u56DE\u5230\u7EAF\u62C9\u53D6", kind: "bool" },
|
|
2330
|
-
{ key: "jitEnabled", label: "JIT \u63A8\u9001", hint: "\u9519\u8BEF\u590D\u53D1 / \u6587\u4EF6\u7126\u70B9 / goal \u5B8C\u6210\u65F6\uFF0C\u628A\u5DF2\u6709\u8BB0\u5FC6\u538B\u6210\u4E00\u884C\u63A8\u8FDB\u4E0A\u4E0B\u6587\uFF08append-only\u3001\u6BCF\u4F1A\u8BDD\u22643 \u884C\u3001\u65E0\u547D\u4E2D\u6C89\u9ED8\uFF1B\u6BCF\u6B21\u63A8\u9001\u6309\u524D\u7F00\u91CD\u5199\u8BA1\u5165\u8D26\u672C\uFF09", kind: "bool" },
|
|
2331
|
-
{ key: "episodeEnabled", label: "\u4F1A\u8BDD\u7EAA\u8981", hint: "\u4F1A\u8BDD\u7ED3\u675F\u65F6\u7528\u96F6 LLM \u89C4\u5219\u751F\u6210\u4E00\u6761 episode\uFF08\u6587\u4EF6/\u547D\u4EE4/\u5931\u8D25\u2192\u4FEE\u590D/\u51B3\u7B56/\u672A\u95ED\u73AF\uFF09\uFF0C\u4E0D\u8FDB\u7D22\u5F15\uFF0C\u4F9B\u6062\u590D\u7B80\u62A5\u4F7F\u7528\uFF1B\u6BCF workspace \u4FDD\u7559\u6700\u8FD1 20 \u6761", kind: "bool" },
|
|
2332
|
-
{ key: "resumeBriefEnabled", label: "\u6062\u590D\u7B80\u62A5", hint: "\u65B0\u4F1A\u8BDD\u542F\u52A8\u65F6\u6CE8\u5165\u6700\u8FD1 7 \u5929\u7684\u6700\u65B0 episode\uFF08\u2264240 \u5B57\u7B26 + engram_detail \u6307\u9488\uFF09\uFF0C\u9694\u5929\u7EE7\u7EED\u4E0D\u7528\u91CD\u65B0\u4EA4\u4EE3\u80CC\u666F", kind: "bool" },
|
|
2333
|
-
{ key: "entityCardsEnabled", label: "\u5B9E\u4F53\u5361", hint: "[ENGRAM] \u7D22\u5F15\u4E3A\u6D3B\u8DC3\u5B9E\u4F53\uFF08\u6709\u951A\u5B9A\u8BB0\u5FC6\u6216\u672A\u95ED\u73AF\u4EFB\u52A1\uFF09\u6E32\u67D3\u4E00\u884C\u300C\u5F53\u524D\u771F\u76F8 + \u6253\u5F00\u4EFB\u52A1 + engram_detail(entity=\u2026) \u6307\u9488\u300D\uFF0C\u6700\u591A 2 \u5F20\uFF0C\u66FF\u4EE3\u8FD9\u4E9B\u5B9E\u4F53\u7684\u5E73\u94FA\u8BB0\u5FC6\u884C", kind: "bool" },
|
|
2334
|
-
{ key: "maxRecallPerSession", label: "\u6BCF\u4F1A\u8BDD\u53BB\u91CD\u4E0A\u9650", hint: "recall \u6BCF\u4F1A\u8BDD\u6700\u591A\u4FDD\u7559 N \u6761\uFF08\u8DE8\u4F1A\u8BDD\u53BB\u91CD\uFF09", kind: "num", min: 1, max: 10 },
|
|
2335
|
-
{ key: "expireDays", label: "TTL\uFF08\u5929\uFF09", hint: "0 = \u4E0D\u8FC7\u671F", kind: "num", min: 0, max: 3650 },
|
|
2336
|
-
{ key: "indexMaxChars", label: "\u7D22\u5F15\u5B57\u7B26\u4E0A\u9650", hint: "[ENGRAM] \u5757 token \u9884\u7B97", kind: "num", min: 0, max: 4e3 }
|
|
2285
|
+
var commonFields = () => [
|
|
2286
|
+
{ key: "autoCapture", label: tr("\u81EA\u52A8\u6355\u83B7"), hint: tr("\u96F6 LLM \u4ECE\u5DE5\u5177\u7ED3\u679C\u63D0\u53D6\u8BB0\u5FC6\uFF08git/\u5173\u952E\u6587\u4EF6/\u9519\u8BEF\uFF09"), kind: "bool" },
|
|
2287
|
+
{ key: "autoCapturePreferences", label: tr("\u504F\u597D\u6355\u83B7"), hint: tr("\u7528\u6237\u7EA0\u6B63/\u504F\u597D\u5B66\u4E60\uFF1A\u68C0\u6D4B\u6D88\u606F\u91CC\u7684\u300C\u4E0D\u8981\u7528X/\u6539\u7528Y/prefer/never use\u300D\u53E5\u5F0F\uFF0C\u81EA\u52A8\u6C89\u6DC0\u4E3A preference \u8BB0\u5FC6\u5E76\u7F6E\u9876 [ENGRAM]\uFF08correx/PAHF \u5F0F\uFF0C\u96F6 LLM\uFF09"), kind: "bool" },
|
|
2288
|
+
{ key: "boundaryPrune", label: tr("\u8FB9\u754C\u526A\u679D"), hint: tr("ResultPack L1\uFF1Atodo \u5B8C\u6210/goal \u7EC8\u6001\u8FB9\u754C\u4E3B\u52A8\u526A\u6389\u8D85\u9608\u503C\u65E7\u5DE5\u5177\u7ED3\u679C\uFF08DSH \u786E\u5B9A\u6027 surface-replace\u3001\u507F\u8FD8\u95E8\u3001\u96F6 LLM\uFF1B\u9ED8\u8BA4\u5F00\uFF0C\u5173=opt-out\uFF09"), kind: "bool" },
|
|
2289
|
+
{ key: "boundaryPruneAdaptive", label: tr("\u526A\u679D\u81EA\u9002\u5E94"), hint: tr("\u8D26\u672C\u5426\u51B3\uFF1A\u8BE5 workspace \u771F\u5B9E\u526A\u679D\u540E\u51C0\u6536\u76CA\u4E3A\u8D1F\uFF08\u22653 \u6B21\uFF09\u65F6\u81EA\u52A8\u505C\u6B62\u7EE7\u7EED\u526A\uFF1B\u8BC1\u636E\u53EA\u80FD\u5173\u3001\u4E0D\u4F1A\u81EA\u884C\u5F00"), kind: "bool" },
|
|
2290
|
+
{ key: "boundaryPruneThresholdChars", label: tr("\u526A\u679D\u9608\u503C(\u5B57\u7B26)"), hint: tr("\u8986\u76D6\u5BBF\u4E3B 8192\uFF1A\u8BBE 2048 \u53EF\u66F4\u65E9\u5F00\u526A\uFF0C\u5E76\u914D L2 \u5F52\u6863\u627E\u56DE\u88AB\u526A\u4E2D\u6BB5\uFF1B\u7559\u7A7A=\u5BBF\u4E3B\u9ED8\u8BA4\u3002\u5EFA\u8BAE\u540C\u65F6\u628A\u4FDD\u7559\u8FB9\u7F18\u8C03\u5C0F\uFF08\u5982 1024/256\uFF09\u4EE5\u83B7\u5F97\u6700\u5927\u8282\u7701"), kind: "num", min: 256, max: 16384, step: 256 },
|
|
2291
|
+
{ key: "resultPack", label: tr("\u7ED3\u679C\u5F52\u6863\u53EC\u56DE"), hint: tr("ResultPack L2\uFF1A\u526A\u6389\u7684\u4E2D\u6BB5\u8131\u654F\u5F52\u6863\uFF0C\u8282\u70B9\u5C3E\u90E8\u9644 handle\uFF0C\u6A21\u578B\u53EF\u7528 result_recall(callId) \u6309\u9875\u53EC\u56DE\uFF08\u5B8C\u6574 ObservationPack\uFF1B\u9ED8\u8BA4\u5F00\uFF0C\u4FDD\u8BC1\u9ED8\u8BA4\u526A\u679D\u65E0\u635F\uFF1B\u9700\u4E0E\u8FB9\u754C\u526A\u679D\u4E00\u8D77\u5F00\uFF09"), kind: "bool" },
|
|
2292
|
+
{ key: "autoRecallOnStart", label: tr("\u4F1A\u8BDD\u542F\u52A8\u81EA\u52A8\u53EC\u56DE"), hint: tr("\u65B0\u4F1A\u8BDD\u6309\u9996\u6761\u6D88\u606F\u81EA\u52A8\u628A\u6700\u76F8\u5173\u8BB0\u5FC6\u6CE8\u5165 [RECALL] \u5757\uFF08\u65E0\u9700\u6A21\u578B\u60F3\u8D77\u8C03 engram_recall\uFF09\uFF1B\u5173\u6389=\u56DE\u5230\u7EAF\u62C9\u53D6"), kind: "bool" },
|
|
2293
|
+
{ key: "jitEnabled", label: tr("JIT \u63A8\u9001"), hint: tr("\u9519\u8BEF\u590D\u53D1 / \u6587\u4EF6\u7126\u70B9 / goal \u5B8C\u6210\u65F6\uFF0C\u628A\u5DF2\u6709\u8BB0\u5FC6\u538B\u6210\u4E00\u884C\u63A8\u8FDB\u4E0A\u4E0B\u6587\uFF08append-only\u3001\u6BCF\u4F1A\u8BDD\u22643 \u884C\u3001\u65E0\u547D\u4E2D\u6C89\u9ED8\uFF1B\u6BCF\u6B21\u63A8\u9001\u6309\u524D\u7F00\u91CD\u5199\u8BA1\u5165\u8D26\u672C\uFF09"), kind: "bool" },
|
|
2294
|
+
{ key: "episodeEnabled", label: tr("\u4F1A\u8BDD\u7EAA\u8981"), hint: tr("\u4F1A\u8BDD\u7ED3\u675F\u65F6\u7528\u96F6 LLM \u89C4\u5219\u751F\u6210\u4E00\u6761 episode\uFF08\u6587\u4EF6/\u547D\u4EE4/\u5931\u8D25\u2192\u4FEE\u590D/\u51B3\u7B56/\u672A\u95ED\u73AF\uFF09\uFF0C\u4E0D\u8FDB\u7D22\u5F15\uFF0C\u4F9B\u6062\u590D\u7B80\u62A5\u4F7F\u7528\uFF1B\u6BCF workspace \u4FDD\u7559\u6700\u8FD1 20 \u6761"), kind: "bool" },
|
|
2295
|
+
{ key: "resumeBriefEnabled", label: tr("\u6062\u590D\u7B80\u62A5"), hint: tr("\u65B0\u4F1A\u8BDD\u542F\u52A8\u65F6\u6CE8\u5165\u6700\u8FD1 7 \u5929\u7684\u6700\u65B0 episode\uFF08\u2264240 \u5B57\u7B26 + engram_detail \u6307\u9488\uFF09\uFF0C\u9694\u5929\u7EE7\u7EED\u4E0D\u7528\u91CD\u65B0\u4EA4\u4EE3\u80CC\u666F"), kind: "bool" },
|
|
2296
|
+
{ key: "entityCardsEnabled", label: tr("\u5B9E\u4F53\u5361"), hint: tr("[ENGRAM] \u7D22\u5F15\u4E3A\u6D3B\u8DC3\u5B9E\u4F53\uFF08\u6709\u951A\u5B9A\u8BB0\u5FC6\u6216\u672A\u95ED\u73AF\u4EFB\u52A1\uFF09\u6E32\u67D3\u4E00\u884C\u300C\u5F53\u524D\u771F\u76F8 + \u6253\u5F00\u4EFB\u52A1 + engram_detail(entity=\u2026) \u6307\u9488\u300D\uFF0C\u6700\u591A 2 \u5F20\uFF0C\u66FF\u4EE3\u8FD9\u4E9B\u5B9E\u4F53\u7684\u5E73\u94FA\u8BB0\u5FC6\u884C"), kind: "bool" },
|
|
2297
|
+
{ key: "maxRecallPerSession", label: tr("\u6BCF\u4F1A\u8BDD\u53BB\u91CD\u4E0A\u9650"), hint: tr("recall \u6BCF\u4F1A\u8BDD\u6700\u591A\u4FDD\u7559 N \u6761\uFF08\u8DE8\u4F1A\u8BDD\u53BB\u91CD\uFF09"), kind: "num", min: 1, max: 10 },
|
|
2298
|
+
{ key: "expireDays", label: tr("TTL\uFF08\u5929\uFF09"), hint: tr("0 = \u4E0D\u8FC7\u671F"), kind: "num", min: 0, max: 3650 },
|
|
2299
|
+
{ key: "indexMaxChars", label: tr("\u7D22\u5F15\u5B57\u7B26\u4E0A\u9650"), hint: tr("[ENGRAM] \u5757 token \u9884\u7B97"), kind: "num", min: 0, max: 4e3 }
|
|
2337
2300
|
];
|
|
2338
|
-
var
|
|
2301
|
+
var advancedGroups = () => [
|
|
2339
2302
|
{
|
|
2340
2303
|
id: "capture-adv",
|
|
2341
|
-
title: "\u6355\u83B7\u4E0E\u68C0\u7D22\uFF08\u9AD8\u7EA7\uFF09",
|
|
2342
|
-
description: "\u5176\u4F59\u6355\u83B7/\u641C\u7D22\u65CB\u94AE",
|
|
2304
|
+
title: tr("\u6355\u83B7\u4E0E\u68C0\u7D22\uFF08\u9AD8\u7EA7\uFF09"),
|
|
2305
|
+
description: tr("\u5176\u4F59\u6355\u83B7/\u641C\u7D22\u65CB\u94AE"),
|
|
2343
2306
|
fields: [
|
|
2344
|
-
{ key: "autoCapturePerSession", label: "\u6BCF\u4F1A\u8BDD\u6355\u83B7\u4E0A\u9650", hint: "\u5355\u4F1A\u8BDD\u81EA\u52A8\u6355\u83B7\u6761\u6570\u4E0A\u9650", kind: "num", min: 0, max: 1e3 },
|
|
2345
|
-
{ key: "boundaryPruneHeadChars", label: "\u526A\u679D\u4FDD\u7559\u5934\u90E8(\u5B57\u7B26)", hint: "\u9608\u503C\u8986\u76D6\u751F\u6548\u65F6\u7ED3\u679C\u5F00\u5934\u4FDD\u7559\u957F\u5EA6\uFF08\u9ED8\u8BA4 4096\uFF09\uFF1B\u8C03\u5C0F\uFF08\u5982 1024\uFF09\u914D\u5408 T2048 \u66F4\u7701", kind: "num", min: 0, max: 16384, step: 128 },
|
|
2346
|
-
{ key: "boundaryPruneTailChars", label: "\u526A\u679D\u4FDD\u7559\u5C3E\u90E8(\u5B57\u7B26)", hint: "\u9608\u503C\u8986\u76D6\u751F\u6548\u65F6\u7ED3\u679C\u7ED3\u5C3E\u4FDD\u7559\u957F\u5EA6\uFF08\u9ED8\u8BA4 1024\uFF09\uFF1B\u8C03\u5C0F\uFF08\u5982 256\uFF09\u914D\u5408 T2048 \u66F4\u7701", kind: "num", min: 0, max: 16384, step: 128 },
|
|
2347
|
-
{ key: "boundaryPruneIdleCadence", label: "\u7A7A\u95F2\u6B65\u6570\u8FB9\u754C", hint: "\u6700\u591A\u6BCF N \u8BF7\u6C42\u89E6\u53D1\u4E00\u6B21\u526A\u679D\uFF0C\u8986\u76D6\u65E0 todo/goal \u7684\u4F1A\u8BDD\uFF08\u7EA6 62% \u4F1A\u8BDD\uFF09\uFF1B\u4ECD\u53D7\u507F\u8FD8\u95E8\u7EA6\u675F\uFF1B\u7559\u7A7A=\u4EC5\u4E8B\u4EF6\u8FB9\u754C", kind: "num", min: 10, max: 1e3, step: 10 },
|
|
2348
|
-
{ key: "autoRecallLimit", label: "\u81EA\u52A8\u53EC\u56DE\u6761\u6570", hint: "[RECALL] \u5757\u6700\u591A\u6CE8\u5165\u7684\u8BB0\u5FC6\u6761\u6570\uFF08\u5C11\u800C\u51C6\uFF09", kind: "num", min: 1, max: 8 },
|
|
2349
|
-
{ key: "sessionSearch", label: "\u4F1A\u8BDD\u5386\u53F2\u641C\u7D22", hint: "engram_recall \u652F\u6301\u8DE8\u4F1A\u8BDD FTS \u515C\u5E95", kind: "bool" },
|
|
2350
|
-
{ key: "recallScope", label: "\u53EC\u56DE\u8303\u56F4", hint: "workspace=\u4E25\u683C\u5F53\u524D\u5DE5\u4F5C\u533A\u9694\u79BB\uFF08\u9ED8\u8BA4\uFF0Ctoken \u7EAA\u5F8B\uFF09\uFF1Bglobal=\u672C\u5DE5\u4F5C\u533A\u547D\u4E2D\u5F31/\u7A7A\u65F6\u4ECE\u5176\u5B83\u5DE5\u4F5C\u533A\u6C60\u53EC\u56DE\u5E76\u6807 [W:<workspace>] \u6765\u6E90\uFF08\u4F1A\u6253\u7834\u9694\u79BB\uFF09", kind: "select", options: ["workspace", "global"] }
|
|
2307
|
+
{ key: "autoCapturePerSession", label: tr("\u6BCF\u4F1A\u8BDD\u6355\u83B7\u4E0A\u9650"), hint: tr("\u5355\u4F1A\u8BDD\u81EA\u52A8\u6355\u83B7\u6761\u6570\u4E0A\u9650"), kind: "num", min: 0, max: 1e3 },
|
|
2308
|
+
{ key: "boundaryPruneHeadChars", label: tr("\u526A\u679D\u4FDD\u7559\u5934\u90E8(\u5B57\u7B26)"), hint: tr("\u9608\u503C\u8986\u76D6\u751F\u6548\u65F6\u7ED3\u679C\u5F00\u5934\u4FDD\u7559\u957F\u5EA6\uFF08\u9ED8\u8BA4 4096\uFF09\uFF1B\u8C03\u5C0F\uFF08\u5982 1024\uFF09\u914D\u5408 T2048 \u66F4\u7701"), kind: "num", min: 0, max: 16384, step: 128 },
|
|
2309
|
+
{ key: "boundaryPruneTailChars", label: tr("\u526A\u679D\u4FDD\u7559\u5C3E\u90E8(\u5B57\u7B26)"), hint: tr("\u9608\u503C\u8986\u76D6\u751F\u6548\u65F6\u7ED3\u679C\u7ED3\u5C3E\u4FDD\u7559\u957F\u5EA6\uFF08\u9ED8\u8BA4 1024\uFF09\uFF1B\u8C03\u5C0F\uFF08\u5982 256\uFF09\u914D\u5408 T2048 \u66F4\u7701"), kind: "num", min: 0, max: 16384, step: 128 },
|
|
2310
|
+
{ key: "boundaryPruneIdleCadence", label: tr("\u7A7A\u95F2\u6B65\u6570\u8FB9\u754C"), hint: tr("\u6700\u591A\u6BCF N \u8BF7\u6C42\u89E6\u53D1\u4E00\u6B21\u526A\u679D\uFF0C\u8986\u76D6\u65E0 todo/goal \u7684\u4F1A\u8BDD\uFF08\u7EA6 62% \u4F1A\u8BDD\uFF09\uFF1B\u4ECD\u53D7\u507F\u8FD8\u95E8\u7EA6\u675F\uFF1B\u7559\u7A7A=\u4EC5\u4E8B\u4EF6\u8FB9\u754C"), kind: "num", min: 10, max: 1e3, step: 10 },
|
|
2311
|
+
{ key: "autoRecallLimit", label: tr("\u81EA\u52A8\u53EC\u56DE\u6761\u6570"), hint: tr("[RECALL] \u5757\u6700\u591A\u6CE8\u5165\u7684\u8BB0\u5FC6\u6761\u6570\uFF08\u5C11\u800C\u51C6\uFF09"), kind: "num", min: 1, max: 8 },
|
|
2312
|
+
{ key: "sessionSearch", label: tr("\u4F1A\u8BDD\u5386\u53F2\u641C\u7D22"), hint: tr("engram_recall \u652F\u6301\u8DE8\u4F1A\u8BDD FTS \u515C\u5E95"), kind: "bool" },
|
|
2313
|
+
{ key: "recallScope", label: tr("\u53EC\u56DE\u8303\u56F4"), hint: tr("workspace=\u4E25\u683C\u5F53\u524D\u5DE5\u4F5C\u533A\u9694\u79BB\uFF08\u9ED8\u8BA4\uFF0Ctoken \u7EAA\u5F8B\uFF09\uFF1Bglobal=\u672C\u5DE5\u4F5C\u533A\u547D\u4E2D\u5F31/\u7A7A\u65F6\u4ECE\u5176\u5B83\u5DE5\u4F5C\u533A\u6C60\u53EC\u56DE\u5E76\u6807 [W:<workspace>] \u6765\u6E90\uFF08\u4F1A\u6253\u7834\u9694\u79BB\uFF09"), kind: "select", options: ["workspace", "global"] }
|
|
2351
2314
|
]
|
|
2352
2315
|
},
|
|
2353
2316
|
{
|
|
2354
2317
|
id: "index-adv",
|
|
2355
|
-
title: "\u7D22\u5F15\uFF08\u9AD8\u7EA7\uFF09",
|
|
2356
|
-
description: "\u884C\u6570\u3001\u5165\u7D22\u5F15\u4FE1\u53F7\u4E0E\u664B\u5347\u89C4\u5219",
|
|
2318
|
+
title: tr("\u7D22\u5F15\uFF08\u9AD8\u7EA7\uFF09"),
|
|
2319
|
+
description: tr("\u884C\u6570\u3001\u5165\u7D22\u5F15\u4FE1\u53F7\u4E0E\u664B\u5347\u89C4\u5219"),
|
|
2357
2320
|
fields: [
|
|
2358
|
-
{ key: "indexMaxLines", label: "\u7D22\u5F15\u6700\u5927\u884C\u6570", hint: "[ENGRAM] \u5757\u6700\u591A\u663E\u793A\u7684\u6761\u76EE\u884C\u6570", kind: "num", min: 0, max: 50 },
|
|
2359
|
-
{ key: "minIndexSignal", label: "\u5165\u7D22\u5F15\u4FE1\u53F7\u9608\u503C", hint: "signal \u2265 \u6B64\u503C\u7684\u81EA\u52A8\u6355\u83B7\u624D\u8FDB\u7D22\u5F15", kind: "num", min: 0, max: 1, step: 0.05 },
|
|
2360
|
-
{ key: "promoteHits", label: "\u664B\u5347\u547D\u4E2D\u6570", hint: "hit \u6570\u8FBE\u6B64\u503C\u7684\u4F4E\u4FE1\u53F7\u6761\u76EE\u8FDB\u7D22\u5F15", kind: "num", min: 0, max: 20 }
|
|
2321
|
+
{ key: "indexMaxLines", label: tr("\u7D22\u5F15\u6700\u5927\u884C\u6570"), hint: tr("[ENGRAM] \u5757\u6700\u591A\u663E\u793A\u7684\u6761\u76EE\u884C\u6570"), kind: "num", min: 0, max: 50 },
|
|
2322
|
+
{ key: "minIndexSignal", label: tr("\u5165\u7D22\u5F15\u4FE1\u53F7\u9608\u503C"), hint: tr("signal \u2265 \u6B64\u503C\u7684\u81EA\u52A8\u6355\u83B7\u624D\u8FDB\u7D22\u5F15"), kind: "num", min: 0, max: 1, step: 0.05 },
|
|
2323
|
+
{ key: "promoteHits", label: tr("\u664B\u5347\u547D\u4E2D\u6570"), hint: tr("hit \u6570\u8FBE\u6B64\u503C\u7684\u4F4E\u4FE1\u53F7\u6761\u76EE\u8FDB\u7D22\u5F15"), kind: "num", min: 0, max: 20 }
|
|
2361
2324
|
]
|
|
2362
2325
|
},
|
|
2363
2326
|
{
|
|
2364
2327
|
id: "retention-adv",
|
|
2365
|
-
title: "\u751F\u547D\u5468\u671F\u4E0E GC\uFF08\u9AD8\u7EA7\uFF09",
|
|
2366
|
-
description: "\u5BB9\u91CF\u4E0A\u9650\u4E0E\u5B9A\u671F\u56DE\u6536\uFF08\u81EA\u52A8 GC = \u66FF\u4EE3 DSH \u81EA\u52A8 compact\uFF09",
|
|
2328
|
+
title: tr("\u751F\u547D\u5468\u671F\u4E0E GC\uFF08\u9AD8\u7EA7\uFF09"),
|
|
2329
|
+
description: tr("\u5BB9\u91CF\u4E0A\u9650\u4E0E\u5B9A\u671F\u56DE\u6536\uFF08\u81EA\u52A8 GC = \u66FF\u4EE3 DSH \u81EA\u52A8 compact\uFF09"),
|
|
2367
2330
|
fields: [
|
|
2368
|
-
{ key: "maxMemoriesPerWorkspace", label: "\u5DE5\u4F5C\u533A\u8BB0\u5FC6\u4E0A\u9650", hint: "\u5355\u5DE5\u4F5C\u533A\u5BB9\u91CF\u4E0A\u9650\uFF08GC \u5F52\u6863\u8D85\u9650\u6761\u76EE\uFF09", kind: "num", min: 0, max: 1e4 },
|
|
2369
|
-
{ key: "gcEnabled", label: "\u8BB0\u5FC6 GC", hint: "\u5B9A\u65F6\u56DE\u6536\uFF08\u8FC7\u671F/\u8D85\u5BB9\u91CF/stable \u8D85\u7A97/\u60AC\u7A7A\u94FE\u63A5\uFF09", kind: "bool" },
|
|
2370
|
-
{ key: "gcNarrative", label: "Context GC \u53D9\u4E8B\u515C\u5E95", hint: "\u81EA\u52A8 compact \u65F6\u65E0\u951A\u8F6E\u6B21\u7528 LLM \u6458\u8981\uFF1B\u5173\u6389=\u7EAF\u673A\u68B0\uFF08\u96F6 LLM\uFF09", kind: "bool" },
|
|
2371
|
-
{ key: "gcStableRetentionDays", label: "stable \u4EFB\u52A1\u4FDD\u7559\uFF08\u5929\uFF09", hint: "\u8D85\u7A97\u540E\u7531 GC \u5F52\u6863\u3001\u79BB\u5F00 [ESR] \u8868\u9762", kind: "num", min: 0, max: 3650 },
|
|
2372
|
-
{ key: "verifyArtifact", label: "\u6821\u9A8C artifact \u5B58\u5728", hint: "esr_close \u7684 artifact \u987B\u5728\u5DE5\u4F5C\u533A\u78C1\u76D8\u4E0A\u771F\u5B9E\u5B58\u5728\uFF08URL \u8C41\u514D\uFF09\uFF1Bforce:true/\u5173\u6389\u53EF\u8DF3\u8FC7", kind: "bool" },
|
|
2373
|
-
{ key: "autoSinkTodosOnEnd", label: "\u4F1A\u8BDD\u7ED3\u675F\u81EA\u52A8\u6C89\u6DC0 todo", hint: "\u4F1A\u8BDD\u7ED3\u675F\u65F6\u4ECD pending \u7684 todo \u81EA\u52A8\u8F6C\u6210 ESR draft\uFF08\u6309\u540D\u53BB\u91CD\u3001\u53D7\u4EFB\u52A1\u4E0A\u9650\u7EA6\u675F\uFF09\uFF1B\u5173\u6389=\u968F\u4F1A\u8BDD\u5F03\u53BB", kind: "bool" },
|
|
2374
|
-
{ key: "autoWebCompaction", label: "web \u9762\u81EA\u52A8\u542F\u7528 Context GC", hint: "\u542F\u52A8\u65F6\u628A\u5168\u90E8 stock \u5E03\u5C40\u7684 agent \u9884\u8BBE\uFF08shipped + \u81EA\u5B9A\u4E49\u6839\uFF09\u7684 compaction \u7EC4\u81EA\u52A8\u6362\u6210 dsh-engram/compaction\uFF1B\u5173\u6389=\u4E0D\u518D\u81EA\u52A8\u63A5\u7BA1\uFF08\u5DF2\u63A5\u7BA1\u7684\u9700 web-compaction:revert \u8FD8\u539F\uFF09", kind: "bool" }
|
|
2331
|
+
{ key: "maxMemoriesPerWorkspace", label: tr("\u5DE5\u4F5C\u533A\u8BB0\u5FC6\u4E0A\u9650"), hint: tr("\u5355\u5DE5\u4F5C\u533A\u5BB9\u91CF\u4E0A\u9650\uFF08GC \u5F52\u6863\u8D85\u9650\u6761\u76EE\uFF09"), kind: "num", min: 0, max: 1e4 },
|
|
2332
|
+
{ key: "gcEnabled", label: tr("\u8BB0\u5FC6 GC"), hint: tr("\u5B9A\u65F6\u56DE\u6536\uFF08\u8FC7\u671F/\u8D85\u5BB9\u91CF/stable \u8D85\u7A97/\u60AC\u7A7A\u94FE\u63A5\uFF09"), kind: "bool" },
|
|
2333
|
+
{ key: "gcNarrative", label: tr("Context GC \u53D9\u4E8B\u515C\u5E95"), hint: tr("\u81EA\u52A8 compact \u65F6\u65E0\u951A\u8F6E\u6B21\u7528 LLM \u6458\u8981\uFF1B\u5173\u6389=\u7EAF\u673A\u68B0\uFF08\u96F6 LLM\uFF09"), kind: "bool" },
|
|
2334
|
+
{ key: "gcStableRetentionDays", label: tr("stable \u4EFB\u52A1\u4FDD\u7559\uFF08\u5929\uFF09"), hint: tr("\u8D85\u7A97\u540E\u7531 GC \u5F52\u6863\u3001\u79BB\u5F00 [ESR] \u8868\u9762"), kind: "num", min: 0, max: 3650 },
|
|
2335
|
+
{ key: "verifyArtifact", label: tr("\u6821\u9A8C artifact \u5B58\u5728"), hint: tr("esr_close \u7684 artifact \u987B\u5728\u5DE5\u4F5C\u533A\u78C1\u76D8\u4E0A\u771F\u5B9E\u5B58\u5728\uFF08URL \u8C41\u514D\uFF09\uFF1Bforce:true/\u5173\u6389\u53EF\u8DF3\u8FC7"), kind: "bool" },
|
|
2336
|
+
{ key: "autoSinkTodosOnEnd", label: tr("\u4F1A\u8BDD\u7ED3\u675F\u81EA\u52A8\u6C89\u6DC0 todo"), hint: tr("\u4F1A\u8BDD\u7ED3\u675F\u65F6\u4ECD pending \u7684 todo \u81EA\u52A8\u8F6C\u6210 ESR draft\uFF08\u6309\u540D\u53BB\u91CD\u3001\u53D7\u4EFB\u52A1\u4E0A\u9650\u7EA6\u675F\uFF09\uFF1B\u5173\u6389=\u968F\u4F1A\u8BDD\u5F03\u53BB"), kind: "bool" },
|
|
2337
|
+
{ key: "autoWebCompaction", label: tr("web \u9762\u81EA\u52A8\u542F\u7528 Context GC"), hint: tr("\u542F\u52A8\u65F6\u628A\u5168\u90E8 stock \u5E03\u5C40\u7684 agent \u9884\u8BBE\uFF08shipped + \u81EA\u5B9A\u4E49\u6839\uFF09\u7684 compaction \u7EC4\u81EA\u52A8\u6362\u6210 dsh-engram/compaction\uFF1B\u5173\u6389=\u4E0D\u518D\u81EA\u52A8\u63A5\u7BA1\uFF08\u5DF2\u63A5\u7BA1\u7684\u9700 web-compaction:revert \u8FD8\u539F\uFF09"), kind: "bool" }
|
|
2375
2338
|
]
|
|
2376
2339
|
},
|
|
2377
2340
|
{
|
|
2378
2341
|
id: "semantics-adv",
|
|
2379
|
-
title: "\u8BB0\u5FC6\u8BED\u4E49\uFF08\u9AD8\u7EA7\uFF09",
|
|
2380
|
-
description: "supersedes / contradict \u7684\u542F\u53D1\u5F0F",
|
|
2342
|
+
title: tr("\u8BB0\u5FC6\u8BED\u4E49\uFF08\u9AD8\u7EA7\uFF09"),
|
|
2343
|
+
description: tr("supersedes / contradict \u7684\u542F\u53D1\u5F0F"),
|
|
2381
2344
|
fields: [
|
|
2382
|
-
{ key: "autoSupersede", label: "\u81EA\u52A8 supersedes", hint: "\u5B9E\u4F53\u951A\u5B9A + \u66FF\u6362\u5F0F\u66F4\u65B0\uFF08\u6539\u7528/\u4E0D\u518D/no longer\u2026\uFF09\u81EA\u52A8\u628A\u65E7\u8BB0\u5FC6\u6807\u4E3A superseded\uFF1B\u65E7\u884C\u4FDD\u7559\u3001\u53EC\u56DE\u964D\u7EA7\u3002\u9ED8\u8BA4\u5173\uFF0C\u663E\u5F0F supersedes \u6C38\u8FDC\u4F18\u5148", kind: "bool" }
|
|
2345
|
+
{ key: "autoSupersede", label: tr("\u81EA\u52A8 supersedes"), hint: tr("\u5B9E\u4F53\u951A\u5B9A + \u66FF\u6362\u5F0F\u66F4\u65B0\uFF08\u6539\u7528/\u4E0D\u518D/no longer\u2026\uFF09\u81EA\u52A8\u628A\u65E7\u8BB0\u5FC6\u6807\u4E3A superseded\uFF1B\u65E7\u884C\u4FDD\u7559\u3001\u53EC\u56DE\u964D\u7EA7\u3002\u9ED8\u8BA4\u5173\uFF0C\u663E\u5F0F supersedes \u6C38\u8FDC\u4F18\u5148"), kind: "bool" }
|
|
2383
2346
|
]
|
|
2384
2347
|
},
|
|
2385
2348
|
{
|
|
2386
2349
|
id: "security",
|
|
2387
|
-
title: "\u5B89\u5168",
|
|
2388
|
-
description: "\u8BBF\u95EE\u56F4\u680F\u4E0E\u96A7\u9053\u6388\u6743",
|
|
2350
|
+
title: tr("\u5B89\u5168"),
|
|
2351
|
+
description: tr("\u8BBF\u95EE\u56F4\u680F\u4E0E\u96A7\u9053\u6388\u6743"),
|
|
2389
2352
|
fields: [
|
|
2390
|
-
{ key: "trustedHosts", label: "\u53D7\u4FE1\u96A7\u9053\u57DF\u540D", hint: "\u5141\u8BB8\u7ECF\u96A7\u9053\u8BBF\u95EE\u8BB0\u5FC6\u67E5\u770B\u5668\u7684\u57DF\u540D\uFF0C\u9017\u53F7\u5206\u9694\uFF1B\u7559\u7A7A = \u4EC5\u672C\u673A\u3002\u6539\u540E\u9700\u91CD\u542F dsh web \u751F\u6548", kind: "text", width: 260 }
|
|
2353
|
+
{ key: "trustedHosts", label: tr("\u53D7\u4FE1\u96A7\u9053\u57DF\u540D"), hint: tr("\u5141\u8BB8\u7ECF\u96A7\u9053\u8BBF\u95EE\u8BB0\u5FC6\u67E5\u770B\u5668\u7684\u57DF\u540D\uFF0C\u9017\u53F7\u5206\u9694\uFF1B\u7559\u7A7A = \u4EC5\u672C\u673A\u3002\u6539\u540E\u9700\u91CD\u542F dsh web \u751F\u6548"), kind: "text", width: 260 }
|
|
2391
2354
|
]
|
|
2392
2355
|
}
|
|
2393
2356
|
];
|
|
2394
|
-
var
|
|
2395
|
-
var
|
|
2357
|
+
var allFields = () => [...commonFields(), ...advancedGroups().flatMap((group) => group.fields)];
|
|
2358
|
+
var cardDescription = () => tr("\u63A7\u5236 engram \u8BB0\u5FC6\u7684\u6355\u83B7\u3001\u7D22\u5F15\u3001\u4FDD\u7559\u4E0E\u96A7\u9053\u8BBF\u95EE");
|
|
2396
2359
|
var s2 = {
|
|
2397
2360
|
card: {
|
|
2398
2361
|
listStyle: "none",
|
|
@@ -2579,7 +2542,7 @@ function EngramConfigCard({ scope, defaultOpen }) {
|
|
|
2579
2542
|
const next = scope.getSnapshot();
|
|
2580
2543
|
setSnap(next);
|
|
2581
2544
|
if (next.status === "unavailable") {
|
|
2582
|
-
console.warn("[dsh-engram] settings scope unavailable \u2014 Plugins \u914D\u7F6E\u5361\u5DF2\u9690\u85CF:", next.reason ?? "no reason served");
|
|
2545
|
+
console.warn(tr("[dsh-engram] settings scope unavailable \u2014 Plugins \u914D\u7F6E\u5361\u5DF2\u9690\u85CF:"), next.reason ?? "no reason served");
|
|
2583
2546
|
}
|
|
2584
2547
|
const value2 = next.value ?? next.base;
|
|
2585
2548
|
if (value2) setDraft((prev) => ({ ...value2, ...prev }));
|
|
@@ -2591,7 +2554,7 @@ function EngramConfigCard({ scope, defaultOpen }) {
|
|
|
2591
2554
|
setDraft((prev) => ({ ...prev, [key]: value2 }));
|
|
2592
2555
|
}, []);
|
|
2593
2556
|
const effective = snap?.value ?? snap?.base ?? {};
|
|
2594
|
-
const anyDirty =
|
|
2557
|
+
const anyDirty = allFields().some((field) => {
|
|
2595
2558
|
const staged = draft[field.key];
|
|
2596
2559
|
return staged !== void 0 && staged !== effective[field.key];
|
|
2597
2560
|
});
|
|
@@ -2599,7 +2562,7 @@ function EngramConfigCard({ scope, defaultOpen }) {
|
|
|
2599
2562
|
setSaving(true);
|
|
2600
2563
|
setError(null);
|
|
2601
2564
|
try {
|
|
2602
|
-
for (const field of
|
|
2565
|
+
for (const field of allFields()) {
|
|
2603
2566
|
const value2 = draft[field.key];
|
|
2604
2567
|
if (value2 === void 0) continue;
|
|
2605
2568
|
if (value2 === effective[field.key]) continue;
|
|
@@ -2666,7 +2629,7 @@ function EngramConfigCard({ scope, defaultOpen }) {
|
|
|
2666
2629
|
style: { ...s2.input, width: field.width ?? 180 },
|
|
2667
2630
|
value: Array.isArray(raw) ? raw.join(", ") : raw === void 0 ? "" : String(raw),
|
|
2668
2631
|
disabled: !writable,
|
|
2669
|
-
placeholder: "host.domain, \u53E6\u4E00\u57DF\u540D\u2026",
|
|
2632
|
+
placeholder: tr("host.domain, \u53E6\u4E00\u57DF\u540D\u2026"),
|
|
2670
2633
|
onChange: (e) => {
|
|
2671
2634
|
const tokens = e.target.value.split(/[,\s]+/).map((x) => x.trim()).filter(Boolean);
|
|
2672
2635
|
setField(field.key, tokens);
|
|
@@ -2690,10 +2653,10 @@ function EngramConfigCard({ scope, defaultOpen }) {
|
|
|
2690
2653
|
{
|
|
2691
2654
|
type: "button",
|
|
2692
2655
|
style: overridden ? { ...s2.reset, color: "var(--dsw-alias-brand-primary, #2563eb)" } : { ...s2.reset, cursor: "default", opacity: 0.55 },
|
|
2693
|
-
title: "\u91CD\u7F6E\u4E3A\u9ED8\u8BA4",
|
|
2656
|
+
title: tr("\u91CD\u7F6E\u4E3A\u9ED8\u8BA4"),
|
|
2694
2657
|
disabled: !writable || !overridden,
|
|
2695
2658
|
onClick: () => void resetField(field.key),
|
|
2696
|
-
children: "\u91CD\u7F6E"
|
|
2659
|
+
children: tr("\u91CD\u7F6E")
|
|
2697
2660
|
}
|
|
2698
2661
|
)
|
|
2699
2662
|
] })
|
|
@@ -2713,26 +2676,26 @@ function EngramConfigCard({ scope, defaultOpen }) {
|
|
|
2713
2676
|
type: "button",
|
|
2714
2677
|
style: s2.header,
|
|
2715
2678
|
"aria-expanded": open,
|
|
2716
|
-
"aria-label":
|
|
2679
|
+
"aria-label": tr("{0} dsh-engram \u8BBE\u7F6E", { "0": open ? tr("\u6536\u8D77") : tr("\u5C55\u5F00") }),
|
|
2717
2680
|
onClick: () => setOpen((prev) => !prev),
|
|
2718
2681
|
children: [
|
|
2719
2682
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("span", { style: s2.headText, children: [
|
|
2720
2683
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { style: s2.name, children: "dsh-engram" }),
|
|
2721
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { style: s2.description, children:
|
|
2684
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { style: s2.description, children: cardDescription() })
|
|
2722
2685
|
] }),
|
|
2723
|
-
anyDirty && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { style: s2.pending, children: "\u672A\u4FDD\u5B58" }),
|
|
2686
|
+
anyDirty && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { style: s2.pending, children: tr("\u672A\u4FDD\u5B58") }),
|
|
2724
2687
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Chevron, { open })
|
|
2725
2688
|
]
|
|
2726
2689
|
}
|
|
2727
2690
|
),
|
|
2728
2691
|
open && /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { style: s2.body, children: [
|
|
2729
|
-
!writable && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("p", { style: s2.readOnly, children: "\u672C\u90E8\u7F72\u7684\u8BBE\u7F6E\u4E3A\u53EA\u8BFB\uFF08\u5BBF\u4E3B\u672A\u6388\u6743\u5199\u5165\u6216\u9700\u91CD\u542F\u5E94\u7528\uFF09\u3002" }),
|
|
2692
|
+
!writable && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("p", { style: s2.readOnly, children: tr("\u672C\u90E8\u7F72\u7684\u8BBE\u7F6E\u4E3A\u53EA\u8BFB\uFF08\u5BBF\u4E3B\u672A\u6388\u6743\u5199\u5165\u6216\u9700\u91CD\u542F\u5E94\u7528\uFF09\u3002") }),
|
|
2730
2693
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { style: s2.groupPanel, children: [
|
|
2731
2694
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { style: s2.groupHead, children: [
|
|
2732
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { style: s2.groupTitle, children: "\u5E38\u7528" }),
|
|
2733
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { style: s2.groupDesc, children: "\u6BCF\u5929\u4F1A\u78B0\u5230\u7684\u65CB\u94AE \xB7 \u5176\u4F59\u6536\u5728\u4E0B\u65B9\u9AD8\u7EA7\u8BBE\u7F6E" })
|
|
2695
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { style: s2.groupTitle, children: tr("\u5E38\u7528") }),
|
|
2696
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { style: s2.groupDesc, children: tr("\u6BCF\u5929\u4F1A\u78B0\u5230\u7684\u65CB\u94AE \xB7 \u5176\u4F59\u6536\u5728\u4E0B\u65B9\u9AD8\u7EA7\u8BBE\u7F6E") })
|
|
2734
2697
|
] }),
|
|
2735
|
-
|
|
2698
|
+
commonFields().map(renderField)
|
|
2736
2699
|
] }),
|
|
2737
2700
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|
|
2738
2701
|
"button",
|
|
@@ -2742,17 +2705,13 @@ function EngramConfigCard({ scope, defaultOpen }) {
|
|
|
2742
2705
|
"aria-expanded": advancedOpen,
|
|
2743
2706
|
onClick: () => setAdvancedOpen((v) => !v),
|
|
2744
2707
|
children: [
|
|
2745
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.
|
|
2746
|
-
"\u9AD8\u7EA7\u8BBE\u7F6E\uFF08",
|
|
2747
|
-
ADVANCED_GROUPS.reduce((n, g) => n + g.fields.length, 0),
|
|
2748
|
-
" \u9879\uFF09"
|
|
2749
|
-
] }),
|
|
2708
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { style: s2.advHeadLabel, children: tr("\u9AD8\u7EA7\u8BBE\u7F6E\uFF08{0} \u9879\uFF09", { "0": advancedGroups().reduce((n, g) => n + g.fields.length, 0) }) }),
|
|
2750
2709
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Chevron, { open: advancedOpen })
|
|
2751
2710
|
]
|
|
2752
2711
|
}
|
|
2753
2712
|
),
|
|
2754
|
-
advancedOpen &&
|
|
2755
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { style: s2.note, children: "\u8BBE\u7F6E\u5BF9\u65B0\u5EFA\u4F1A\u8BDD\u5373\u65F6\u751F\u6548\uFF1B\u5DF2\u51BB\u7ED3\u7684 [ENGRAM] \u5757\u4FDD\u6301\u524D\u7F00\u7A33\u5B9A\u3002" }),
|
|
2713
|
+
advancedOpen && advancedGroups().map(renderGroup),
|
|
2714
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { style: s2.note, children: tr("\u8BBE\u7F6E\u5BF9\u65B0\u5EFA\u4F1A\u8BDD\u5373\u65F6\u751F\u6548\uFF1B\u5DF2\u51BB\u7ED3\u7684 [ENGRAM] \u5757\u4FDD\u6301\u524D\u7F00\u7A33\u5B9A\u3002") }),
|
|
2756
2715
|
error && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { style: s2.failed, children: error }),
|
|
2757
2716
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { style: s2.footer, children: [
|
|
2758
2717
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
@@ -2762,7 +2721,7 @@ function EngramConfigCard({ scope, defaultOpen }) {
|
|
|
2762
2721
|
style: { ...s2.discard, ...!anyDirty || saving ? s2.disabled : void 0 },
|
|
2763
2722
|
disabled: !anyDirty || saving,
|
|
2764
2723
|
onClick: discard,
|
|
2765
|
-
children: "\u653E\u5F03\u4FEE\u6539"
|
|
2724
|
+
children: tr("\u653E\u5F03\u4FEE\u6539")
|
|
2766
2725
|
}
|
|
2767
2726
|
),
|
|
2768
2727
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
@@ -2772,7 +2731,7 @@ function EngramConfigCard({ scope, defaultOpen }) {
|
|
|
2772
2731
|
style: { ...s2.save, ...!anyDirty || saving ? s2.disabled : void 0 },
|
|
2773
2732
|
disabled: !anyDirty || saving,
|
|
2774
2733
|
onClick: () => void save(),
|
|
2775
|
-
children: saving ? "\u4FDD\u5B58\u4E2D\u2026" : "\u4FDD\u5B58"
|
|
2734
|
+
children: saving ? tr("\u4FDD\u5B58\u4E2D\u2026") : tr("\u4FDD\u5B58")
|
|
2776
2735
|
}
|
|
2777
2736
|
)
|
|
2778
2737
|
] })
|
|
@@ -2794,15 +2753,16 @@ var KIND_COLORS = {
|
|
|
2794
2753
|
task: "#4f46e5"
|
|
2795
2754
|
};
|
|
2796
2755
|
var KIND_LABEL = {
|
|
2797
|
-
preference: "\u504F\u597D",
|
|
2798
|
-
decision: "\u51B3\u5B9A",
|
|
2799
|
-
error: "\u9519\u8BEF",
|
|
2800
|
-
procedure: "\u6D41\u7A0B",
|
|
2801
|
-
fact: "\u4E8B\u5B9E",
|
|
2802
|
-
insight: "\u6D1E\u5BDF",
|
|
2803
|
-
handoff: "\u4EA4\u63A5",
|
|
2804
|
-
task: "\u4EFB\u52A1"
|
|
2756
|
+
preference: tr("\u504F\u597D"),
|
|
2757
|
+
decision: tr("\u51B3\u5B9A"),
|
|
2758
|
+
error: tr("\u9519\u8BEF"),
|
|
2759
|
+
procedure: tr("\u6D41\u7A0B"),
|
|
2760
|
+
fact: tr("\u4E8B\u5B9E"),
|
|
2761
|
+
insight: tr("\u6D1E\u5BDF"),
|
|
2762
|
+
handoff: tr("\u4EA4\u63A5"),
|
|
2763
|
+
task: tr("\u4EFB\u52A1")
|
|
2805
2764
|
};
|
|
2765
|
+
var kindLabel = (kind) => tr(KIND_LABEL[kind] ?? kind);
|
|
2806
2766
|
var REL_COLORS = {
|
|
2807
2767
|
depends_on: "#d97706",
|
|
2808
2768
|
implements: "#2563eb",
|
|
@@ -2820,7 +2780,7 @@ function fmtDate(ts) {
|
|
|
2820
2780
|
function daysLeft(ts) {
|
|
2821
2781
|
if (ts === null || ts === void 0) return "\u221E";
|
|
2822
2782
|
const days = Math.ceil((ts - Date.now()) / 864e5);
|
|
2823
|
-
return days > 0 ? `${days}d` : "\u5DF2\u8FC7\u671F";
|
|
2783
|
+
return days > 0 ? `${days}d` : tr("\u5DF2\u8FC7\u671F");
|
|
2824
2784
|
}
|
|
2825
2785
|
function gapsOf(t) {
|
|
2826
2786
|
const gaps = [];
|
|
@@ -2905,25 +2865,25 @@ function EngramDetail({ target, api, tasks, nodes, links, memories = [], onClose
|
|
|
2905
2865
|
try {
|
|
2906
2866
|
const refs = gRefs.split(/[,,\s]+/).map((s4) => s4.trim()).filter(Boolean);
|
|
2907
2867
|
const res = await api.closeTask(task.workspace, task.id, { artifact: gArt.trim() || void 0, evaluation: gEval.trim() || void 0, memoryRefs: refs.length ? refs : void 0 });
|
|
2908
|
-
setNotice(res.state === "stable" ? `\u5DF2\u95ED\u73AF \u2192 STABLE \u2713` :
|
|
2868
|
+
setNotice(res.state === "stable" ? tr(`\u5DF2\u95ED\u73AF \u2192 STABLE \u2713`) : tr("\u4ECD\u6709\u7F3A\u53E3\uFF1A{0}{1}", { "0": (res.gaps ?? []).join(", ") || "\u2014", "1": res.artifactReason ? `\uFF08${res.artifactReason}\uFF09` : "" }));
|
|
2909
2869
|
onChanged?.();
|
|
2910
2870
|
} catch (e) {
|
|
2911
|
-
setNotice(
|
|
2871
|
+
setNotice(tr("\u5173\u95ED\u5931\u8D25\uFF1A{0}", { "0": e instanceof Error ? e.message : String(e) }));
|
|
2912
2872
|
} finally {
|
|
2913
2873
|
setBusy(false);
|
|
2914
2874
|
}
|
|
2915
2875
|
}
|
|
2916
2876
|
const kindBadge = (kind, label) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { style: { ...hb2.badge, background: KIND_COLORS[kind] ?? "#6b7280" }, children: label });
|
|
2917
2877
|
const headerTitle = target.kind === "task" ? task?.name ?? target.id : target.kind === "memory" ? target.memory.text.slice(0, 40) : target.kind === "node" ? node?.name ?? target.id : link ? nameOf(link.source) : "";
|
|
2918
|
-
const headerKind = target.kind === "task" ? task?.state === "stable" ? { k: "task", label: "STABLE" } : task ? { k: "task", label: task.state === "draft" ? "DRAFT" : "\u4EFB\u52A1" } : { k: "task", label: "\u4EFB\u52A1" } : target.kind === "memory" ? { k: target.memory.kind, label:
|
|
2878
|
+
const headerKind = target.kind === "task" ? task?.state === "stable" ? { k: "task", label: "STABLE" } : task ? { k: "task", label: task.state === "draft" ? "DRAFT" : tr("\u4EFB\u52A1") } : { k: "task", label: tr("\u4EFB\u52A1") } : target.kind === "memory" ? { k: target.memory.kind, label: kindLabel(target.memory.kind) } : target.kind === "node" ? { k: "node", label: node?.kind || tr("\u8282\u70B9") } : { k: "link", label: tr("\u5173\u7CFB") };
|
|
2919
2879
|
return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: hb2.root, children: [
|
|
2920
2880
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: hb2.head, children: [
|
|
2921
2881
|
kindBadge(headerKind.k, headerKind.label),
|
|
2922
2882
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: hb2.title, title: headerTitle, children: headerTitle }),
|
|
2923
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("button", { style: hb2.close, onClick: onClose, "aria-label": "\u5173\u95ED\u8BE6\u60C5", children: "\u2715" })
|
|
2883
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("button", { style: hb2.close, onClick: onClose, "aria-label": tr("\u5173\u95ED\u8BE6\u60C5"), children: "\u2715" })
|
|
2924
2884
|
] }),
|
|
2925
2885
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: hb2.body, children: [
|
|
2926
|
-
target.kind === "task" && !task && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: hb2.v, children: "\u4EFB\u52A1\u4E0D\u5B58\u5728\uFF08\u53EF\u80FD\u5DF2\u88AB\u5173\u95ED/\u5F52\u6863\uFF09\u3002" }),
|
|
2886
|
+
target.kind === "task" && !task && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: hb2.v, children: tr("\u4EFB\u52A1\u4E0D\u5B58\u5728\uFF08\u53EF\u80FD\u5DF2\u88AB\u5173\u95ED/\u5F52\u6863\uFF09\u3002") }),
|
|
2927
2887
|
target.kind === "task" && task && /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [
|
|
2928
2888
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: 8 }, children: [
|
|
2929
2889
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(EvidenceRing, { artifact: Boolean(task.artifact), evaluation: Boolean(task.evaluation), refs: (task.memoryRefs?.length ?? 0) > 0, size: 40 }),
|
|
@@ -2937,25 +2897,19 @@ function EngramDetail({ target, api, tasks, nodes, links, memories = [], onClose
|
|
|
2937
2897
|
] })
|
|
2938
2898
|
] }),
|
|
2939
2899
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: hb2.section, children: [
|
|
2940
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: hb2.k, children: "\u72B6\u6001" }),
|
|
2900
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: hb2.k, children: tr("\u72B6\u6001") }),
|
|
2941
2901
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: { display: "flex", gap: 5, alignItems: "center", flexWrap: "wrap", marginTop: 3 }, children: [
|
|
2942
2902
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { style: { ...hb2.badge, background: task.state === "stable" ? "#059669" : task.state === "draft" ? "#6b7280" : gapsOf(task).length === 0 ? "#2563eb" : "#d97706" }, children: task.state === "stable" ? "STABLE" : task.state === "draft" ? "DRAFT" : gapsOf(task).length === 0 ? "READY" : "ACTIVE" }),
|
|
2943
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.
|
|
2944
|
-
|
|
2945
|
-
fmtDate(task.createdAt)
|
|
2946
|
-
] }),
|
|
2947
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("span", { style: hb2.tag, children: [
|
|
2948
|
-
"\u66F4\u65B0 ",
|
|
2949
|
-
fmtDate(task.updatedAt)
|
|
2950
|
-
] })
|
|
2903
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { style: hb2.tag, children: tr("\u521B\u5EFA {0}", { "0": fmtDate(task.createdAt) }) }),
|
|
2904
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { style: hb2.tag, children: tr("\u66F4\u65B0 {0}", { "0": fmtDate(task.updatedAt) }) })
|
|
2951
2905
|
] })
|
|
2952
2906
|
] }),
|
|
2953
2907
|
task.description && /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: hb2.section, children: [
|
|
2954
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: hb2.k, children: "\u63CF\u8FF0" }),
|
|
2908
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: hb2.k, children: tr("\u63CF\u8FF0") }),
|
|
2955
2909
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: { ...hb2.v, marginTop: 3 }, children: task.description })
|
|
2956
2910
|
] }),
|
|
2957
2911
|
task.state === "active" && gapsOf(task).length > 0 && /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: hb2.section, children: [
|
|
2958
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: hb2.k, children: "\u8BC1\u636E\u7F3A\u53E3" }),
|
|
2912
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: hb2.k, children: tr("\u8BC1\u636E\u7F3A\u53E3") }),
|
|
2959
2913
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: { display: "flex", gap: 5, flexWrap: "wrap", marginTop: 3 }, children: gapsOf(task).map((g) => /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("span", { style: hb2.tag, children: [
|
|
2960
2914
|
g,
|
|
2961
2915
|
" \u2717"
|
|
@@ -2976,37 +2930,37 @@ function EngramDetail({ target, api, tasks, nodes, links, memories = [], onClose
|
|
|
2976
2930
|
] })
|
|
2977
2931
|
] }),
|
|
2978
2932
|
task.memoryRefs.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: hb2.section, children: [
|
|
2979
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: hb2.k, children: "\u8BB0\u5FC6\u5F15\u7528" }),
|
|
2980
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: { display: "flex", gap: 5, flexWrap: "wrap", marginTop: 3 }, children: task.memoryRefs.map((r) => /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("span", { style: hb2.chip, title:
|
|
2933
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: hb2.k, children: tr("\u8BB0\u5FC6\u5F15\u7528") }),
|
|
2934
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: { display: "flex", gap: 5, flexWrap: "wrap", marginTop: 3 }, children: task.memoryRefs.map((r) => /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("span", { style: hb2.chip, title: tr("\u6253\u5F00\u8BB0\u5FC6 {0}", { "0": r }), onClick: () => onNavigateMemory(r), children: [
|
|
2981
2935
|
"#",
|
|
2982
2936
|
r.slice(0, 8)
|
|
2983
2937
|
] }, r)) })
|
|
2984
2938
|
] }),
|
|
2985
2939
|
task.state === "active" && /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: { marginTop: 4, padding: 8, border: "1px solid var(--dsh-color-border, #d1d5db)", borderRadius: 10, background: dark ? "rgba(15,23,42,.35)" : "rgba(15,23,42,.03)" }, children: [
|
|
2986
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: { fontSize: 11, color: "var(--dsh-color-muted, #6b7280)", marginBottom: 6 }, children: "\u8865\u9F50\u8BC1\u636E \u2192 \u5173\u95ED\uFF08\u4E09\u9879\u5168\u9F50\u8F6C STABLE\uFF09" }),
|
|
2940
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: { fontSize: 11, color: "var(--dsh-color-muted, #6b7280)", marginBottom: 6 }, children: tr("\u8865\u9F50\u8BC1\u636E \u2192 \u5173\u95ED\uFF08\u4E09\u9879\u5168\u9F50\u8F6C STABLE\uFF09") }),
|
|
2987
2941
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: 6 }, children: [
|
|
2988
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("input", { style: hb2.input, placeholder: "artifact \u4EA7\u7269\uFF08\u6587\u4EF6/PR/\u8DEF\uFF09", value: gArt, onChange: (e) => setGArt(e.target.value) }),
|
|
2989
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("input", { style: hb2.input, placeholder: "evaluation \u8BC4\u4F30\uFF08\u6D4B\u8BD5/\u8BC4\u5BA1/\u5206\u6570\uFF09", value: gEval, onChange: (e) => setGEval(e.target.value) }),
|
|
2990
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("input", { style: hb2.input, placeholder: "memory_refs\uFF08#id, \u9017\u53F7\u5206\u9694\uFF09", value: gRefs, onChange: (e) => setGRefs(e.target.value) }),
|
|
2942
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("input", { style: hb2.input, placeholder: tr("artifact \u4EA7\u7269\uFF08\u6587\u4EF6/PR/\u8DEF\uFF09"), value: gArt, onChange: (e) => setGArt(e.target.value) }),
|
|
2943
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("input", { style: hb2.input, placeholder: tr("evaluation \u8BC4\u4F30\uFF08\u6D4B\u8BD5/\u8BC4\u5BA1/\u5206\u6570\uFF09"), value: gEval, onChange: (e) => setGEval(e.target.value) }),
|
|
2944
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("input", { style: hb2.input, placeholder: tr("memory_refs\uFF08#id, \u9017\u53F7\u5206\u9694\uFF09"), value: gRefs, onChange: (e) => setGRefs(e.target.value) }),
|
|
2991
2945
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: { display: "flex", gap: 6 }, children: [
|
|
2992
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("button", { style: hb2.btnPrimary, disabled: busy, onClick: () => setClosing(true), children: busy ? "\u2026" : "\u6309\u8BC1\u636E\u95ED\u73AF" }),
|
|
2946
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("button", { style: hb2.btnPrimary, disabled: busy, onClick: () => setClosing(true), children: busy ? "\u2026" : tr("\u6309\u8BC1\u636E\u95ED\u73AF") }),
|
|
2993
2947
|
closing && !busy && /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [
|
|
2994
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { style: { fontSize: 11.5, color: "var(--dsh-color-muted, #6b7280)", alignSelf: "center" }, children: "\u786E\u8BA4\u63D0\u4EA4\uFF1F" }),
|
|
2948
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { style: { fontSize: 11.5, color: "var(--dsh-color-muted, #6b7280)", alignSelf: "center" }, children: tr("\u786E\u8BA4\u63D0\u4EA4\uFF1F") }),
|
|
2995
2949
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("button", { style: hb2.btn, onClick: () => {
|
|
2996
2950
|
void submitClose();
|
|
2997
2951
|
setClosing(false);
|
|
2998
|
-
}, children: "\u786E\u8BA4" }),
|
|
2999
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("button", { style: hb2.btn, onClick: () => setClosing(false), children: "\u53D6\u6D88" })
|
|
2952
|
+
}, children: tr("\u786E\u8BA4") }),
|
|
2953
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("button", { style: hb2.btn, onClick: () => setClosing(false), children: tr("\u53D6\u6D88") })
|
|
3000
2954
|
] })
|
|
3001
2955
|
] })
|
|
3002
2956
|
] })
|
|
3003
2957
|
] }),
|
|
3004
|
-
task.state === "stable" && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: { fontSize: 11.5, color: "#059669", fontWeight: 700 }, children: "\u5DF2\u95ED\u73AF \u2713 \u2014 \u5168\u90E8\u8BC1\u636E\u95E8\u5DF2\u6EE1\u8DB3\uFF0C\u53EF\u4EE5\u4ECE\u770B\u677F/\u6E05\u5355\u79FB\u9664" }),
|
|
2958
|
+
task.state === "stable" && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: { fontSize: 11.5, color: "#059669", fontWeight: 700 }, children: tr("\u5DF2\u95ED\u73AF \u2713 \u2014 \u5168\u90E8\u8BC1\u636E\u95E8\u5DF2\u6EE1\u8DB3\uFF0C\u53EF\u4EE5\u4ECE\u770B\u677F/\u6E05\u5355\u79FB\u9664") }),
|
|
3005
2959
|
notice && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: { fontSize: 11.5, fontWeight: 600, color: "#d97706" }, children: notice })
|
|
3006
2960
|
] }),
|
|
3007
2961
|
target.kind === "memory" && /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [
|
|
3008
2962
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: { display: "flex", alignItems: "flex-start", gap: 6 }, children: [
|
|
3009
|
-
kindBadge(target.memory.kind,
|
|
2963
|
+
kindBadge(target.memory.kind, kindLabel(target.memory.kind)),
|
|
3010
2964
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("span", { style: hb2.tag, children: [
|
|
3011
2965
|
"signal ",
|
|
3012
2966
|
target.memory.signal.toFixed(2)
|
|
@@ -3018,41 +2972,32 @@ function EngramDetail({ target, api, tasks, nodes, links, memories = [], onClose
|
|
|
3018
2972
|
target.memory.status === "archived" && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { style: hb2.tag, children: "archived" })
|
|
3019
2973
|
] }),
|
|
3020
2974
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: hb2.section, children: [
|
|
3021
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: hb2.k, children: "\u5185\u5BB9" }),
|
|
2975
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: hb2.k, children: tr("\u5185\u5BB9") }),
|
|
3022
2976
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: { ...hb2.v, whiteSpace: "pre-wrap", background: dark ? "rgba(15,23,42,.5)" : "rgba(15,23,42,.05)", borderRadius: 8, padding: 8, marginTop: 3 }, children: target.memory.text })
|
|
3023
2977
|
] }),
|
|
3024
2978
|
target.memory.tags.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: hb2.section, children: [
|
|
3025
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: hb2.k, children: "\u6807\u7B7E" }),
|
|
2979
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: hb2.k, children: tr("\u6807\u7B7E") }),
|
|
3026
2980
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: { display: "flex", gap: 5, flexWrap: "wrap", marginTop: 3 }, children: target.memory.tags.map((t) => /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("span", { style: hb2.tag, children: [
|
|
3027
2981
|
"#",
|
|
3028
2982
|
t
|
|
3029
2983
|
] }, t)) })
|
|
3030
2984
|
] }),
|
|
3031
2985
|
memoryLinks && (memoryLinks.m.supersedes || memoryLinks.m.contradicts || memoryLinks.replacedBy.length > 0 || memoryLinks.contradictedBy.length > 0) && /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: hb2.section, children: [
|
|
3032
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: hb2.k, children: "\u66FF\u6362 / \u51B2\u7A81" }),
|
|
2986
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: hb2.k, children: tr("\u66FF\u6362 / \u51B2\u7A81") }),
|
|
3033
2987
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: { display: "flex", gap: 5, flexWrap: "wrap", marginTop: 3 }, children: [
|
|
3034
|
-
memoryLinks.m.supersedes && /* @__PURE__ */ (0, import_jsx_runtime7.
|
|
3035
|
-
|
|
3036
|
-
|
|
3037
|
-
|
|
3038
|
-
memoryLinks.m.contradicts && /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("span", { style: hb2.chipDanger, title: `\u672C\u6761\u4E0E ${memoryLinks.m.contradicts} \u51B2\u7A81\uFF08\u4E24\u6761\u90FD\u4FDD\u7559\uFF09`, onClick: () => onNavigateMemory(memoryLinks.m.contradicts), children: [
|
|
3039
|
-
"\u51B2\u7A81 #",
|
|
3040
|
-
memoryLinks.m.contradicts.slice(0, 8)
|
|
3041
|
-
] }),
|
|
3042
|
-
memoryLinks.replacedBy.map((x) => /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("span", { style: hb2.chipSup, title: `\u5DF2\u88AB ${x.text.slice(0, 40)}\u2026 \u66FF\u4EE3`, onClick: () => onNavigateMemory(x.id), children: [
|
|
3043
|
-
"\u2190 \u88AB #",
|
|
3044
|
-
x.id.slice(0, 8),
|
|
3045
|
-
" \u66FF\u4EE3"
|
|
3046
|
-
] }, x.id)),
|
|
3047
|
-
memoryLinks.contradictedBy.map((x) => /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("span", { style: hb2.chipDanger, title: `${x.text.slice(0, 40)}\u2026 \u4E0E\u672C\u6761\u51B2\u7A81`, onClick: () => onNavigateMemory(x.id), children: [
|
|
2988
|
+
memoryLinks.m.supersedes && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { style: hb2.chipSup, title: tr("\u672C\u6761\u66FF\u4EE3 {0}\uFF08\u65E7\u884C\u4FDD\u7559\u3001\u53EC\u56DE\u964D\u7EA7\uFF09", { "0": memoryLinks.m.supersedes }), onClick: () => onNavigateMemory(memoryLinks.m.supersedes), children: tr("\u66FF\u4EE3 #{0}", { "0": memoryLinks.m.supersedes.slice(0, 8) }) }),
|
|
2989
|
+
memoryLinks.m.contradicts && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { style: hb2.chipDanger, title: tr("\u672C\u6761\u4E0E {0} \u51B2\u7A81\uFF08\u4E24\u6761\u90FD\u4FDD\u7559\uFF09", { "0": memoryLinks.m.contradicts }), onClick: () => onNavigateMemory(memoryLinks.m.contradicts), children: tr("\u51B2\u7A81 #{0}", { "0": memoryLinks.m.contradicts.slice(0, 8) }) }),
|
|
2990
|
+
memoryLinks.replacedBy.map((x) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { style: hb2.chipSup, title: tr("\u5DF2\u88AB {0}\u2026 \u66FF\u4EE3", { "0": x.text.slice(0, 40) }), onClick: () => onNavigateMemory(x.id), children: tr("\u2190 \u88AB #{0} \u66FF\u4EE3", { "0": x.id.slice(0, 8) }) }, x.id)),
|
|
2991
|
+
memoryLinks.contradictedBy.map((x) => /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("span", { style: hb2.chipDanger, title: tr("{0}\u2026 \u4E0E\u672C\u6761\u51B2\u7A81", { "0": x.text.slice(0, 40) }), onClick: () => onNavigateMemory(x.id), children: [
|
|
3048
2992
|
"\u21C4 #",
|
|
3049
2993
|
x.id.slice(0, 8),
|
|
3050
|
-
"
|
|
2994
|
+
" ",
|
|
2995
|
+
tr(" \u51B2\u7A81")
|
|
3051
2996
|
] }, x.id))
|
|
3052
2997
|
] })
|
|
3053
2998
|
] }),
|
|
3054
2999
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: hb2.section, children: [
|
|
3055
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: hb2.k, children: "\u5143\u6570\u636E" }),
|
|
3000
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: hb2.k, children: tr("\u5143\u6570\u636E") }),
|
|
3056
3001
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: 2, marginTop: 3, fontSize: 11.5, fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", color: "var(--dsh-color-muted, #6b7280)" }, children: [
|
|
3057
3002
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("span", { children: [
|
|
3058
3003
|
"id ",
|
|
@@ -3097,18 +3042,18 @@ function EngramDetail({ target, api, tasks, nodes, links, memories = [], onClose
|
|
|
3097
3042
|
] })
|
|
3098
3043
|
] })
|
|
3099
3044
|
] }),
|
|
3100
|
-
target.kind === "node" && !node && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: hb2.v, children: "\u8282\u70B9\u4E0D\u5B58\u5728\u3002" }),
|
|
3045
|
+
target.kind === "node" && !node && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: hb2.v, children: tr("\u8282\u70B9\u4E0D\u5B58\u5728\u3002") }),
|
|
3101
3046
|
target.kind === "node" && node && /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [
|
|
3102
3047
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: 6 }, children: [
|
|
3103
|
-
kindBadge("node", node.kind || "\u8282\u70B9"),
|
|
3048
|
+
kindBadge("node", node.kind || tr("\u8282\u70B9")),
|
|
3104
3049
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { style: { fontWeight: 700, fontSize: 13 }, children: node.name })
|
|
3105
3050
|
] }),
|
|
3106
3051
|
node.description && /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: hb2.section, children: [
|
|
3107
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: hb2.k, children: "\u63CF\u8FF0" }),
|
|
3052
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: hb2.k, children: tr("\u63CF\u8FF0") }),
|
|
3108
3053
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: { ...hb2.v, marginTop: 3 }, children: node.description })
|
|
3109
3054
|
] }),
|
|
3110
3055
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: hb2.section, children: [
|
|
3111
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: hb2.k, children: "\u5143\u6570\u636E" }),
|
|
3056
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: hb2.k, children: tr("\u5143\u6570\u636E") }),
|
|
3112
3057
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: { marginTop: 3, fontSize: 11.5, fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", color: "var(--dsh-color-muted, #6b7280)", display: "flex", flexDirection: "column", gap: 2 }, children: [
|
|
3113
3058
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("span", { children: [
|
|
3114
3059
|
node.id,
|
|
@@ -3122,13 +3067,9 @@ function EngramDetail({ target, api, tasks, nodes, links, memories = [], onClose
|
|
|
3122
3067
|
] })
|
|
3123
3068
|
] }),
|
|
3124
3069
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: hb2.section, children: [
|
|
3125
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.
|
|
3126
|
-
"\u5173\u8054\u5173\u7CFB\uFF08",
|
|
3127
|
-
incident.length,
|
|
3128
|
-
"\uFF09"
|
|
3129
|
-
] }),
|
|
3070
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: hb2.k, children: tr("\u5173\u8054\u5173\u7CFB\uFF08{0}\uFF09", { "0": incident.length }) }),
|
|
3130
3071
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: 5, marginTop: 3 }, children: [
|
|
3131
|
-
incident.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: hb2.v, children: "\u6682\u65E0\u5173\u7CFB \u2014 \u7528 esr_link \u5173\u8054" }),
|
|
3072
|
+
incident.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: hb2.v, children: tr("\u6682\u65E0\u5173\u7CFB \u2014 \u7528 esr_link \u5173\u8054") }),
|
|
3132
3073
|
incident.map(({ l, outgoing }) => {
|
|
3133
3074
|
const other = outgoing ? l.target : l.source;
|
|
3134
3075
|
const color = REL_COLORS[l.relation] ?? "#6b7280";
|
|
@@ -3158,7 +3099,7 @@ function EngramDetail({ target, api, tasks, nodes, links, memories = [], onClose
|
|
|
3158
3099
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "mono", style: { fontSize: 12, fontWeight: 600 }, children: nameOf(link.target) })
|
|
3159
3100
|
] }),
|
|
3160
3101
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: hb2.section, children: [
|
|
3161
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: hb2.k, children: "\u5143\u6570\u636E" }),
|
|
3102
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: hb2.k, children: tr("\u5143\u6570\u636E") }),
|
|
3162
3103
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: { marginTop: 3, fontSize: 11.5, fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", color: "var(--dsh-color-muted, #6b7280)", display: "flex", flexDirection: "column", gap: 2 }, children: [
|
|
3163
3104
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("span", { children: [
|
|
3164
3105
|
"id ",
|
|
@@ -3206,15 +3147,16 @@ var KIND_COLORS2 = {
|
|
|
3206
3147
|
task: "#4f46e5"
|
|
3207
3148
|
};
|
|
3208
3149
|
var KIND_LABEL2 = {
|
|
3209
|
-
preference: "\u504F\u597D",
|
|
3210
|
-
decision: "\u51B3\u5B9A",
|
|
3211
|
-
error: "\u9519\u8BEF",
|
|
3212
|
-
procedure: "\u6D41\u7A0B",
|
|
3213
|
-
fact: "\u4E8B\u5B9E",
|
|
3214
|
-
insight: "\u6D1E\u5BDF",
|
|
3215
|
-
handoff: "\u4EA4\u63A5",
|
|
3216
|
-
task: "\u4EFB\u52A1"
|
|
3150
|
+
preference: tr("\u504F\u597D"),
|
|
3151
|
+
decision: tr("\u51B3\u5B9A"),
|
|
3152
|
+
error: tr("\u9519\u8BEF"),
|
|
3153
|
+
procedure: tr("\u6D41\u7A0B"),
|
|
3154
|
+
fact: tr("\u4E8B\u5B9E"),
|
|
3155
|
+
insight: tr("\u6D1E\u5BDF"),
|
|
3156
|
+
handoff: tr("\u4EA4\u63A5"),
|
|
3157
|
+
task: tr("\u4EFB\u52A1")
|
|
3217
3158
|
};
|
|
3159
|
+
var kindLabel2 = (kind) => tr(KIND_LABEL2[kind] ?? kind);
|
|
3218
3160
|
var s3 = {
|
|
3219
3161
|
root: { padding: "2px 4px 40px" },
|
|
3220
3162
|
h1: { fontSize: 20, fontWeight: 700, margin: "0 0 4px" },
|
|
@@ -3564,13 +3506,13 @@ function EngramSection({ api, t, scope }) {
|
|
|
3564
3506
|
setImportDump(JSON.parse(text));
|
|
3565
3507
|
setImportName(file.name);
|
|
3566
3508
|
} catch (e) {
|
|
3567
|
-
setDataError(
|
|
3509
|
+
setDataError(tr("\u65E0\u6CD5\u89E3\u6790 {0}\uFF1A{1}", { "0": file.name, "1": e instanceof Error ? e.message : String(e) }));
|
|
3568
3510
|
}
|
|
3569
3511
|
};
|
|
3570
3512
|
const runImport = async () => {
|
|
3571
3513
|
if (importDump === null) return;
|
|
3572
3514
|
if (importMode === "replace" && !importReplaceOk) {
|
|
3573
|
-
setDataError("\u66FF\u6362\u6A21\u5F0F\u4F1A\u5148\u6E05\u7A7A\u76EE\u6807\u5DE5\u4F5C\u533A \u2014 \u8BF7\u5148\u52FE\u9009\u786E\u8BA4");
|
|
3515
|
+
setDataError(tr("\u66FF\u6362\u6A21\u5F0F\u4F1A\u5148\u6E05\u7A7A\u76EE\u6807\u5DE5\u4F5C\u533A \u2014 \u8BF7\u5148\u52FE\u9009\u786E\u8BA4"));
|
|
3574
3516
|
return;
|
|
3575
3517
|
}
|
|
3576
3518
|
setImportBusy(true);
|
|
@@ -3648,7 +3590,7 @@ function EngramSection({ api, t, scope }) {
|
|
|
3648
3590
|
memoryRefs: refs
|
|
3649
3591
|
});
|
|
3650
3592
|
if (out.state === "active") {
|
|
3651
|
-
setError(
|
|
3593
|
+
setError(tr("\u8BC1\u636E\u4ECD\u6709\u7F3A\u53E3\uFF1A{0}{1} \u2014 \u4EFB\u52A1\u4FDD\u6301 ACTIVE\uFF0C\u8865\u9F50\u540E\u518D\u63D0\u4EA4", { "0": (out.gaps ?? []).join(", "), "1": out.artifactReason ? `\uFF08${out.artifactReason}\uFF09` : "" }));
|
|
3652
3594
|
}
|
|
3653
3595
|
setCloseFor(null);
|
|
3654
3596
|
setCloseArtifact("");
|
|
@@ -3667,7 +3609,7 @@ function EngramSection({ api, t, scope }) {
|
|
|
3667
3609
|
setDetail({ kind: "memory", memory: m });
|
|
3668
3610
|
setDetailNotice(null);
|
|
3669
3611
|
} else {
|
|
3670
|
-
setDetailNotice(
|
|
3612
|
+
setDetailNotice(tr("\u8BB0\u5FC6 {0} \u4E0D\u5728\u5F53\u524D\u52A0\u8F7D\u5217\u8868 \u2014 \u5207\u6362\u5230\u300C\u8BB0\u5FC6\u300D\u9875\u52A0\u8F7D\u540E\u53EF\u7528", { "0": id }));
|
|
3671
3613
|
}
|
|
3672
3614
|
};
|
|
3673
3615
|
const openTask = (id) => {
|
|
@@ -3683,44 +3625,39 @@ function EngramSection({ api, t, scope }) {
|
|
|
3683
3625
|
const wsCounts = workspace && overview ? overview.workspaces[workspace] ?? null : null;
|
|
3684
3626
|
const { vars } = useEngramTheme();
|
|
3685
3627
|
return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { ...s3.root, ...vars }, children: [
|
|
3686
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("h1", { style: s3.h1, children: "Engram \u8BB0\u5FC6" }),
|
|
3687
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("p", { style: s3.sub, children: "\u8DE8\u4F1A\u8BDD\u8BB0\u5FC6 \xB7 \u96F6 LLM \u81EA\u52A8\u6355\u83B7 \xB7 \u7B26\u53F7\u7D22\u5F15\u6E10\u8FDB\u62AB\u9732 \u2014 \u6570\u636E\u6E90 ~/.dsh/storages/dsh_engram.json" }),
|
|
3628
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("h1", { style: s3.h1, children: tr("Engram \u8BB0\u5FC6") }),
|
|
3629
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("p", { style: s3.sub, children: tr("\u8DE8\u4F1A\u8BDD\u8BB0\u5FC6 \xB7 \u96F6 LLM \u81EA\u52A8\u6355\u83B7 \xB7 \u7B26\u53F7\u7D22\u5F15\u6E10\u8FDB\u62AB\u9732 \u2014 \u6570\u636E\u6E90 ~/.dsh/storages/dsh_engram.json") }),
|
|
3688
3630
|
error && /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: s3.error, children: [
|
|
3689
3631
|
t("error"),
|
|
3690
3632
|
": ",
|
|
3691
3633
|
error
|
|
3692
3634
|
] }),
|
|
3693
3635
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: s3.tabBar, children: [
|
|
3694
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { style: view === "mem" ? s3.tabActive : s3.tab, onClick: () => setView("mem"), children: "\u8BB0\u5FC6" }),
|
|
3695
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { style: view === "esr" ? s3.tabActive : s3.tab, onClick: () => setView("esr"), children: "ESR\uFF08\u4EFB\u52A1 \xB7 \u8282\u70B9 \xB7 \u5173\u7CFB\uFF09" }),
|
|
3696
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { style: view === "preview" ? s3.tabActive : s3.tab, onClick: () => setView("preview"), children: "\u6CE8\u5165\u9884\u89C8" }),
|
|
3697
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { style: view === "telemetry" ? s3.tabActive : s3.tab, onClick: () => setView("telemetry"), children: "\u9065\u6D4B" }),
|
|
3698
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { style: view === "config" ? s3.tabActive : s3.tab, onClick: () => setView("config"), children: "\u8BBE\u7F6E" })
|
|
3636
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { style: view === "mem" ? s3.tabActive : s3.tab, onClick: () => setView("mem"), children: tr("\u8BB0\u5FC6") }),
|
|
3637
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { style: view === "esr" ? s3.tabActive : s3.tab, onClick: () => setView("esr"), children: tr("ESR\uFF08\u4EFB\u52A1 \xB7 \u8282\u70B9 \xB7 \u5173\u7CFB\uFF09") }),
|
|
3638
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { style: view === "preview" ? s3.tabActive : s3.tab, onClick: () => setView("preview"), children: tr("\u6CE8\u5165\u9884\u89C8") }),
|
|
3639
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { style: view === "telemetry" ? s3.tabActive : s3.tab, onClick: () => setView("telemetry"), children: tr("\u9065\u6D4B") }),
|
|
3640
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { style: view === "config" ? s3.tabActive : s3.tab, onClick: () => setView("config"), children: tr("\u8BBE\u7F6E") })
|
|
3699
3641
|
] }),
|
|
3700
3642
|
view !== "config" && /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { ...s3.row, marginTop: 2 }, children: [
|
|
3701
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { style: { fontWeight: 700, fontSize: 13 }, children: "\u5DE5\u4F5C\u533A\uFF1A" }),
|
|
3643
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { style: { fontWeight: 700, fontSize: 13 }, children: tr("\u5DE5\u4F5C\u533A\uFF1A") }),
|
|
3702
3644
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("select", { style: s3.input, value: workspace, onChange: (e) => setWorkspace(e.target.value), children: [
|
|
3703
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("option", { value: "", children: "\u5168\u90E8\u5DE5\u4F5C\u533A" }),
|
|
3645
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("option", { value: "", children: tr("\u5168\u90E8\u5DE5\u4F5C\u533A") }),
|
|
3704
3646
|
workspaces.map((ws) => /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("option", { value: ws, children: [
|
|
3705
3647
|
ws,
|
|
3706
3648
|
"\uFF08",
|
|
3707
3649
|
overview?.workspaces[ws]?.memories ?? 0,
|
|
3708
|
-
"
|
|
3650
|
+
" ",
|
|
3651
|
+
tr(" \u6761\uFF09")
|
|
3709
3652
|
] }, ws))
|
|
3710
3653
|
] })
|
|
3711
3654
|
] }),
|
|
3712
3655
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { display: "flex", gap: 12, alignItems: "flex-start" }, children: [
|
|
3713
3656
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { flex: "1 1 auto", minWidth: 0 }, children: [
|
|
3714
3657
|
view === "mem" && approvals.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { ...s3.card, marginBottom: 12, borderColor: "#f0c36d" }, children: [
|
|
3715
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.
|
|
3716
|
-
"Playbook \u5F85\u6279\u51C6\uFF08",
|
|
3717
|
-
approvals.filter((a) => !a.approved).length,
|
|
3718
|
-
" \u6761 / \u5171 ",
|
|
3719
|
-
approvals.length,
|
|
3720
|
-
"\uFF09"
|
|
3721
|
-
] }),
|
|
3658
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { style: { fontWeight: 700, fontSize: 13, marginBottom: 6 }, children: tr("Playbook \u5F85\u6279\u51C6\uFF08{0} \u6761 / \u5171 {1}\uFF09", { "0": approvals.filter((a) => !a.approved).length, "1": approvals.length }) }),
|
|
3722
3659
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { fontSize: 12, opacity: 0.75, marginBottom: 8 }, children: [
|
|
3723
|
-
"\u8BC1\u636E\u5DF2\u8FC7\u5173\uFF08\u22653 \u6B21\u9A8C\u8BC1\u300114 \u5929\u5185\uFF09\u3002\u5199\u6587\u4EF6\u7ED9\u5BBF\u4E3B\u5E7F\u544A\u9700\u8981\u4F60\u70B9\u5934 \u2014\u2014 \u8BC1\u636E\u8BC1\u660E\u547D\u4EE4\u8DD1\u901A\u8FC7\uFF0C\u4E0D\u8BC1\u660E\u6307\u4EE4\u662F\u5BF9\u7684\u3002 \u6279\u51C6\u540E\uFF1A",
|
|
3660
|
+
tr("\u8BC1\u636E\u5DF2\u8FC7\u5173\uFF08\u22653 \u6B21\u9A8C\u8BC1\u300114 \u5929\u5185\uFF09\u3002\u5199\u6587\u4EF6\u7ED9\u5BBF\u4E3B\u5E7F\u544A\u9700\u8981\u4F60\u70B9\u5934 \u2014\u2014 \u8BC1\u636E\u8BC1\u660E\u547D\u4EE4\u8DD1\u901A\u8FC7\uFF0C\u4E0D\u8BC1\u660E\u6307\u4EE4\u662F\u5BF9\u7684\u3002 \u6279\u51C6\u540E\uFF1A"),
|
|
3724
3661
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("code", { children: "npx dsh-engram skill export" }),
|
|
3725
3662
|
"\u3002"
|
|
3726
3663
|
] }),
|
|
@@ -3728,9 +3665,8 @@ function EngramSection({ api, t, scope }) {
|
|
|
3728
3665
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("code", { style: { fontWeight: 600 }, children: item.name }),
|
|
3729
3666
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("span", { style: { opacity: 0.7 }, children: [
|
|
3730
3667
|
item.id.slice(0, 8),
|
|
3731
|
-
"
|
|
3732
|
-
item.evidence
|
|
3733
|
-
" \u6B21"
|
|
3668
|
+
" ",
|
|
3669
|
+
tr(" \xB7 \u8BC1\u636E {0} \u6B21", { "0": item.evidence })
|
|
3734
3670
|
] }),
|
|
3735
3671
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { style: { opacity: 0.7, flex: "1 1 auto", overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" }, children: item.description }),
|
|
3736
3672
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
@@ -3739,7 +3675,7 @@ function EngramSection({ api, t, scope }) {
|
|
|
3739
3675
|
style: s3.btn,
|
|
3740
3676
|
disabled: approvalBusy === item.id,
|
|
3741
3677
|
onClick: () => void toggleApproval(item),
|
|
3742
|
-
children: item.approved ? "\u64A4\u9500" : "\u6279\u51C6"
|
|
3678
|
+
children: item.approved ? tr("\u64A4\u9500") : tr("\u6279\u51C6")
|
|
3743
3679
|
}
|
|
3744
3680
|
)
|
|
3745
3681
|
] }, item.id))
|
|
@@ -3751,61 +3687,61 @@ function EngramSection({ api, t, scope }) {
|
|
|
3751
3687
|
const linkNum = wsCounts ? wsCounts.links : overview.totals.links;
|
|
3752
3688
|
const ledgerBucket = overview.ledger ? workspace && overview.ledger.byWorkspace[workspace] || overview.ledger.totals : null;
|
|
3753
3689
|
return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: s3.stats, children: [
|
|
3754
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(StatCard, { num: String(memNum), label: wsCounts ? "\u8BB0\u5FC6 (active)" : "\u8BB0\u5FC6 (active, \u5168\u5C40)" }),
|
|
3755
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(StatCard, { num: String(taskNum), label: wsCounts ? "\u4EFB\u52A1 (active)" : "\u4EFB\u52A1 (active, \u5168\u5C40)" }),
|
|
3756
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(StatCard, { num: String(linkNum), label: wsCounts ? "\u5173\u7CFB" : "\u5173\u7CFB (\u5168\u5C40)" }),
|
|
3757
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(StatCard, { num: String(wsCounts ? wsCounts.nodes ?? 0 : overview.totals.nodes ?? 0), label: wsCounts ? "\u8282\u70B9" : "\u8282\u70B9 (\u5168\u5C40)" }),
|
|
3758
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(StatCard, { num: String(workspaces.length), label: "\u5DE5\u4F5C\u533A" }),
|
|
3759
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(StatCard, { num: String(overview.captures.total), label: "\u81EA\u52A8\u6355\u83B7" }),
|
|
3760
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(StatCard, { num: String(overview.captures.preference ?? 0), label: "\u504F\u597D\u6355\u83B7" }),
|
|
3690
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(StatCard, { num: String(memNum), label: wsCounts ? tr("\u8BB0\u5FC6 (active)") : tr("\u8BB0\u5FC6 (active, \u5168\u5C40)") }),
|
|
3691
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(StatCard, { num: String(taskNum), label: wsCounts ? tr("\u4EFB\u52A1 (active)") : tr("\u4EFB\u52A1 (active, \u5168\u5C40)") }),
|
|
3692
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(StatCard, { num: String(linkNum), label: wsCounts ? tr("\u5173\u7CFB") : tr("\u5173\u7CFB (\u5168\u5C40)") }),
|
|
3693
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(StatCard, { num: String(wsCounts ? wsCounts.nodes ?? 0 : overview.totals.nodes ?? 0), label: wsCounts ? tr("\u8282\u70B9") : tr("\u8282\u70B9 (\u5168\u5C40)") }),
|
|
3694
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(StatCard, { num: String(workspaces.length), label: tr("\u5DE5\u4F5C\u533A") }),
|
|
3695
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(StatCard, { num: String(overview.captures.total), label: tr("\u81EA\u52A8\u6355\u83B7") }),
|
|
3696
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(StatCard, { num: String(overview.captures.preference ?? 0), label: tr("\u504F\u597D\u6355\u83B7") }),
|
|
3761
3697
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
3762
3698
|
StatCard,
|
|
3763
3699
|
{
|
|
3764
3700
|
num: indexCost ? `~${indexCost.tokens}` : "\u2013",
|
|
3765
|
-
label: "[ENGRAM] \u7D22\u5F15 token / \u5DE5\u4F5C\u533A"
|
|
3701
|
+
label: tr("[ENGRAM] \u7D22\u5F15 token / \u5DE5\u4F5C\u533A")
|
|
3766
3702
|
}
|
|
3767
3703
|
),
|
|
3768
3704
|
gc && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
3769
3705
|
StatCard,
|
|
3770
3706
|
{
|
|
3771
3707
|
num: String(gc.archivedMemories + gc.archivedTasks),
|
|
3772
|
-
label:
|
|
3708
|
+
label: tr("GC \u5DF2\u5F52\u6863 \xB7 \u94FE\u63A5-{0}", { "0": gc.removedLinks })
|
|
3773
3709
|
}
|
|
3774
3710
|
),
|
|
3775
3711
|
ledgerBucket && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
3776
3712
|
StatCard,
|
|
3777
3713
|
{
|
|
3778
3714
|
num: signedTokens(ledgerBucket.netTokens),
|
|
3779
|
-
label:
|
|
3715
|
+
label: tr("\u4E0A\u4E0B\u6587\u51C0 token \xB7 \u8BF7\u6C42 {0}", { "0": ledgerBucket.requests })
|
|
3780
3716
|
}
|
|
3781
3717
|
)
|
|
3782
3718
|
] });
|
|
3783
3719
|
})(),
|
|
3784
3720
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: s3.subPanel, children: [
|
|
3785
3721
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: 10, flexWrap: "wrap" }, children: [
|
|
3786
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { style: { fontWeight: 700, fontSize: 13 }, children: "\u8BB0\u5FC6 GC\uFF08pi-esr \u7EA6\u675F\uFF09" }),
|
|
3722
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { style: { fontWeight: 700, fontSize: 13 }, children: tr("\u8BB0\u5FC6 GC\uFF08pi-esr \u7EA6\u675F\uFF09") }),
|
|
3787
3723
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("label", { style: { fontSize: 12, display: "inline-flex", gap: 4, alignItems: "center" }, children: [
|
|
3788
3724
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("input", { type: "checkbox", checked: gcDryRun, onChange: (e) => setGcDryRun(e.target.checked) }),
|
|
3789
|
-
"\u4EC5\u9884\u89C8\uFF08dry run\uFF09"
|
|
3725
|
+
tr("\u4EC5\u9884\u89C8\uFF08dry run\uFF09")
|
|
3790
3726
|
] }),
|
|
3791
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { style: s3.btnPrimary, onClick: () => void runGc(), disabled: gcRunning || !workspace, children: gcRunning ? "\u2026" : "\u8FD0\u884C GC" }),
|
|
3792
|
-
gc && gc.lastRun > 0 && /* @__PURE__ */ (0, import_jsx_runtime8.
|
|
3793
|
-
"\u4E0A\u6B21 ",
|
|
3794
|
-
fmtDate2(gc.lastRun)
|
|
3795
|
-
] })
|
|
3727
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { style: s3.btnPrimary, onClick: () => void runGc(), disabled: gcRunning || !workspace, children: gcRunning ? "\u2026" : tr("\u8FD0\u884C GC") }),
|
|
3728
|
+
gc && gc.lastRun > 0 && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { style: s3.mono, children: tr("\u4E0A\u6B21 {0}", { "0": fmtDate2(gc.lastRun) }) })
|
|
3796
3729
|
] }),
|
|
3797
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { style: { fontSize: 11.5, color: "var(--dsh-color-muted, #6b7280)", marginTop: 4 }, children: "\u5DE5\u4F5C\u96C6\uFF08active \u4EFB\u52A1\u5F15\u7528 / \u4EFB\u52A1\u8BB0\u5FC6 / \u5DF2\u5165\u7D22\u5F15\u547D\u4E2D\uFF09\u6C38\u4E0D\u9A71\u9010\uFF1BTTL \u8FC7\u671F\u5F52\u6863\u3001\u8D85\u5BB9\u91CF\u6DD8\u6C70\u3001stable \u4EFB\u52A1\u8D85\u7A97\u5F52\u6863\u3001\u60AC\u7A7A\u94FE\u63A5\u6E05\u7406\u3002\u53EA\u5F52\u6863\u4E0D\u786C\u5220\u2014\u2014\u6761\u76EE id \u4FDD\u6301\u53EF\u91CD\u53D6\u3002" }),
|
|
3730
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { style: { fontSize: 11.5, color: "var(--dsh-color-muted, #6b7280)", marginTop: 4 }, children: tr("\u5DE5\u4F5C\u96C6\uFF08active \u4EFB\u52A1\u5F15\u7528 / \u4EFB\u52A1\u8BB0\u5FC6 / \u5DF2\u5165\u7D22\u5F15\u547D\u4E2D\uFF09\u6C38\u4E0D\u9A71\u9010\uFF1BTTL \u8FC7\u671F\u5F52\u6863\u3001\u8D85\u5BB9\u91CF\u6DD8\u6C70\u3001stable \u4EFB\u52A1\u8D85\u7A97\u5F52\u6863\u3001\u60AC\u7A7A\u94FE\u63A5\u6E05\u7406\u3002\u53EA\u5F52\u6863\u4E0D\u786C\u5220\u2014\u2014\u6761\u76EE id \u4FDD\u6301\u53EF\u91CD\u53D6\u3002") }),
|
|
3798
3731
|
gcReport && /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { marginTop: 8, fontSize: 12.5 }, children: [
|
|
3799
3732
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { children: [
|
|
3800
|
-
gcReport.dryRun ? "dry-run \u9884\u89C8\uFF1A" : "\u5DF2\u6267\u884C\uFF1A",
|
|
3733
|
+
gcReport.dryRun ? tr("dry-run \u9884\u89C8\uFF1A") : tr("\u5DF2\u6267\u884C\uFF1A"),
|
|
3801
3734
|
" ",
|
|
3802
|
-
"\u5F52\u6863\u8BB0\u5FC6 ",
|
|
3735
|
+
tr("\u5F52\u6863\u8BB0\u5FC6 "),
|
|
3803
3736
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("b", { children: gcReport.archivedMemories.length }),
|
|
3804
|
-
"
|
|
3737
|
+
" ",
|
|
3738
|
+
tr(" \xB7 \u5F52\u6863\u4EFB\u52A1 "),
|
|
3805
3739
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("b", { children: gcReport.archivedTasks.length }),
|
|
3806
|
-
"
|
|
3740
|
+
" ",
|
|
3741
|
+
tr(" \xB7 \u6E05\u7406\u94FE\u63A5 "),
|
|
3807
3742
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("b", { children: gcReport.removedLinks.length }),
|
|
3808
|
-
"
|
|
3743
|
+
" ",
|
|
3744
|
+
tr(" \xB7 \u4FDD\u62A4 "),
|
|
3809
3745
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("b", { children: gcReport.protectedMemories })
|
|
3810
3746
|
] }),
|
|
3811
3747
|
gcReport.archivedMemories.slice(0, 5).map((e) => /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: s3.mono, children: [
|
|
@@ -3836,10 +3772,10 @@ function EngramSection({ api, t, scope }) {
|
|
|
3836
3772
|
] }),
|
|
3837
3773
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: s3.subPanel, children: [
|
|
3838
3774
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: 10, flexWrap: "wrap" }, children: [
|
|
3839
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { style: { fontWeight: 700, fontSize: 13 }, children: "\u6570\u636E\u5907\u4EFD\uFF08export / import\uFF09" }),
|
|
3840
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { style: s3.btn, title: "\u4E0B\u8F7D\u5F53\u524D\u5DE5\u4F5C\u533A\uFF08\u6216\u5168\u90E8\uFF09\u7684 dsh-engram/export v1 \u8F6C\u50A8", onClick: () => void downloadExport(), children: "\u5BFC\u51FA JSON" }),
|
|
3775
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { style: { fontWeight: 700, fontSize: 13 }, children: tr("\u6570\u636E\u5907\u4EFD\uFF08export / import\uFF09") }),
|
|
3776
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { style: s3.btn, title: tr("\u4E0B\u8F7D\u5F53\u524D\u5DE5\u4F5C\u533A\uFF08\u6216\u5168\u90E8\uFF09\u7684 dsh-engram/export v1 \u8F6C\u50A8"), onClick: () => void downloadExport(), children: tr("\u5BFC\u51FA JSON") }),
|
|
3841
3777
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("label", { style: { ...s3.btn, display: "inline-flex", alignItems: "center", gap: 6, cursor: "pointer" }, children: [
|
|
3842
|
-
"\u9009\u62E9\u5BFC\u5165\u6587\u4EF6\u2026",
|
|
3778
|
+
tr("\u9009\u62E9\u5BFC\u5165\u6587\u4EF6\u2026"),
|
|
3843
3779
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
3844
3780
|
"input",
|
|
3845
3781
|
{
|
|
@@ -3856,17 +3792,19 @@ function EngramSection({ api, t, scope }) {
|
|
|
3856
3792
|
importName && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { style: s3.mono, children: importName })
|
|
3857
3793
|
] }),
|
|
3858
3794
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { fontSize: 11.5, color: "var(--dsh-color-muted, #6b7280)", marginTop: 4 }, children: [
|
|
3859
|
-
"\u5BFC\u51FA\u5373\u53EF\u79FB\u690D\u5907\u4EFD\uFF08\u8BB0\u5FC6/\u4EFB\u52A1/\u5173\u7CFB/\u8282\u70B9\uFF0C\u542B\u5F52\u6863\uFF09\uFF1B",
|
|
3795
|
+
tr("\u5BFC\u51FA\u5373\u53EF\u79FB\u690D\u5907\u4EFD\uFF08\u8BB0\u5FC6/\u4EFB\u52A1/\u5173\u7CFB/\u8282\u70B9\uFF0C\u542B\u5F52\u6863\uFF09\uFF1B"),
|
|
3860
3796
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("b", { children: "merge" }),
|
|
3861
|
-
"
|
|
3797
|
+
" ",
|
|
3798
|
+
tr(" \u53EA\u8865\u7F3A\u5931\uFF08\u5E42\u7B49\uFF09\uFF0C"),
|
|
3862
3799
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("b", { children: "replace" }),
|
|
3863
|
-
"
|
|
3800
|
+
" ",
|
|
3801
|
+
tr(" \u5148\u6E05\u7A7A\u76EE\u6807\u5DE5\u4F5C\u533A\u518D\u6062\u590D\u3002\u8BB0\u5FC6\u6B63\u6587\u4E0E\u6240\u6709\u5199\u5165\u8DEF\u5F84\u4E00\u6837\u8FC7\u8131\u654F\u3002")
|
|
3864
3802
|
] }),
|
|
3865
3803
|
importDump !== null && /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { marginTop: 8, display: "flex", flexDirection: "column", gap: 6 }, children: [
|
|
3866
3804
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { display: "flex", gap: 10, alignItems: "center", flexWrap: "wrap", fontSize: 12.5 }, children: [
|
|
3867
3805
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("label", { style: { display: "inline-flex", gap: 4, alignItems: "center" }, children: [
|
|
3868
3806
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("input", { type: "checkbox", checked: importDryRun, onChange: (e) => setImportDryRun(e.target.checked) }),
|
|
3869
|
-
"\u4EC5\u9884\u89C8\uFF08dry run\uFF09"
|
|
3807
|
+
tr("\u4EC5\u9884\u89C8\uFF08dry run\uFF09")
|
|
3870
3808
|
] }),
|
|
3871
3809
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
|
|
3872
3810
|
"select",
|
|
@@ -3879,15 +3817,14 @@ function EngramSection({ api, t, scope }) {
|
|
|
3879
3817
|
if (mode !== "replace") setImportReplaceOk(false);
|
|
3880
3818
|
},
|
|
3881
3819
|
children: [
|
|
3882
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("option", { value: "merge", children: "\u5408\u5E76\uFF08merge\uFF0C\u5E42\u7B49\uFF09" }),
|
|
3883
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("option", { value: "replace", children: "\u66FF\u6362\uFF08replace\uFF0C\u5148\u6E05\u7A7A\u5DE5\u4F5C\u533A\uFF09" })
|
|
3820
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("option", { value: "merge", children: tr("\u5408\u5E76\uFF08merge\uFF0C\u5E42\u7B49\uFF09") }),
|
|
3821
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("option", { value: "replace", children: tr("\u66FF\u6362\uFF08replace\uFF0C\u5148\u6E05\u7A7A\u5DE5\u4F5C\u533A\uFF09") })
|
|
3884
3822
|
]
|
|
3885
3823
|
}
|
|
3886
3824
|
),
|
|
3887
3825
|
importMode === "replace" && /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("label", { style: { display: "inline-flex", gap: 4, alignItems: "center", color: "#b45309" }, children: [
|
|
3888
3826
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("input", { type: "checkbox", checked: importReplaceOk, onChange: (e) => setImportReplaceOk(e.target.checked) }),
|
|
3889
|
-
"\u6211\u786E\u8BA4\u66FF\u6362",
|
|
3890
|
-
workspace ? `\uFF08${workspace}\uFF09` : "\uFF08\u9700\u5148\u9009\u5DE5\u4F5C\u533A\uFF09"
|
|
3827
|
+
tr("\u6211\u786E\u8BA4\u66FF\u6362{0}", { "0": workspace ? `\uFF08${workspace}\uFF09` : tr("\uFF08\u9700\u5148\u9009\u5DE5\u4F5C\u533A\uFF09") })
|
|
3891
3828
|
] }),
|
|
3892
3829
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
3893
3830
|
"button",
|
|
@@ -3895,16 +3832,16 @@ function EngramSection({ api, t, scope }) {
|
|
|
3895
3832
|
style: s3.btnPrimary,
|
|
3896
3833
|
disabled: importBusy || importMode === "replace" && (!importReplaceOk || !workspace),
|
|
3897
3834
|
onClick: () => void runImport(),
|
|
3898
|
-
children: importBusy ? "\u2026" : importDryRun ? "\u9884\u89C8\u5BFC\u5165" : "\u6267\u884C\u5BFC\u5165"
|
|
3835
|
+
children: importBusy ? "\u2026" : importDryRun ? tr("\u9884\u89C8\u5BFC\u5165") : tr("\u6267\u884C\u5BFC\u5165")
|
|
3899
3836
|
}
|
|
3900
3837
|
)
|
|
3901
3838
|
] }),
|
|
3902
3839
|
importReport && /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { fontSize: 12.5 }, children: [
|
|
3903
3840
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { children: [
|
|
3904
|
-
importReport.dryRun ? "dry-run \u9884\u89C8\uFF1A" : "\u5DF2\u5BFC\u5165\uFF1A",
|
|
3841
|
+
importReport.dryRun ? tr("dry-run \u9884\u89C8\uFF1A") : tr("\u5DF2\u5BFC\u5165\uFF1A"),
|
|
3905
3842
|
" ",
|
|
3906
3843
|
Object.entries(importReport.written).map(([k, v]) => `${k} ${v}`).join(" \xB7 ") || "\u2014",
|
|
3907
|
-
importReport.skipped.length > 0 ?
|
|
3844
|
+
importReport.skipped.length > 0 ? tr(" \xB7 \u8DF3\u8FC7 {0}", { "0": importReport.skipped.length }) : ""
|
|
3908
3845
|
] }),
|
|
3909
3846
|
importReport.skipped.slice(0, 5).map((x, i) => /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: s3.mono, children: [
|
|
3910
3847
|
"- ",
|
|
@@ -3920,19 +3857,19 @@ function EngramSection({ api, t, scope }) {
|
|
|
3920
3857
|
] }),
|
|
3921
3858
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: s3.row, children: [
|
|
3922
3859
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("select", { style: s3.input, value: kind, onChange: (e) => setKind(e.target.value), children: [
|
|
3923
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("option", { value: "", children: "\u5168\u90E8\u7C7B\u578B" }),
|
|
3924
|
-
kindsPresent.map((k) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("option", { value: k, children:
|
|
3860
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("option", { value: "", children: tr("\u5168\u90E8\u7C7B\u578B") }),
|
|
3861
|
+
kindsPresent.map((k) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("option", { value: k, children: kindLabel2(k) }, k))
|
|
3925
3862
|
] }),
|
|
3926
3863
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("select", { style: s3.input, value: status, onChange: (e) => setStatus(e.target.value), children: [
|
|
3927
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("option", { value: "active", children: "\u4EC5\u6D3B\u52A8" }),
|
|
3928
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("option", { value: "all", children: "\u5168\u90E8\u72B6\u6001" }),
|
|
3929
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("option", { value: "archived", children: "\u5DF2\u5F52\u6863" })
|
|
3864
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("option", { value: "active", children: tr("\u4EC5\u6D3B\u52A8") }),
|
|
3865
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("option", { value: "all", children: tr("\u5168\u90E8\u72B6\u6001") }),
|
|
3866
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("option", { value: "archived", children: tr("\u5DF2\u5F52\u6863") })
|
|
3930
3867
|
] }),
|
|
3931
3868
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
3932
3869
|
"input",
|
|
3933
3870
|
{
|
|
3934
3871
|
style: { ...s3.input, width: 180 },
|
|
3935
|
-
placeholder: "\u641C\u7D22\u8BB0\u5FC6\u2026",
|
|
3872
|
+
placeholder: tr("\u641C\u7D22\u8BB0\u5FC6\u2026"),
|
|
3936
3873
|
value: q,
|
|
3937
3874
|
onChange: (e) => setQ(e.target.value),
|
|
3938
3875
|
onKeyDown: (e) => {
|
|
@@ -3959,9 +3896,8 @@ function EngramSection({ api, t, scope }) {
|
|
|
3959
3896
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("span", { style: s3.tag, children: [
|
|
3960
3897
|
"index ",
|
|
3961
3898
|
cfg.indexMaxLines,
|
|
3962
|
-
"
|
|
3963
|
-
cfg.indexMaxChars
|
|
3964
|
-
" \u5B57\u7B26"
|
|
3899
|
+
" ",
|
|
3900
|
+
tr(" \u884C / {0} \u5B57\u7B26", { "0": cfg.indexMaxChars })
|
|
3965
3901
|
] }),
|
|
3966
3902
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("span", { style: s3.tag, children: [
|
|
3967
3903
|
"promote \u2265",
|
|
@@ -3976,23 +3912,24 @@ function EngramSection({ api, t, scope }) {
|
|
|
3976
3912
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("col", { style: { width: 72 } })
|
|
3977
3913
|
] }),
|
|
3978
3914
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("thead", { children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("tr", { children: [
|
|
3979
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("th", { style: s3.th, children: "\u7C7B\u578B" }),
|
|
3980
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("th", { style: s3.th, children: "\u5185\u5BB9" }),
|
|
3915
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("th", { style: s3.th, children: tr("\u7C7B\u578B") }),
|
|
3916
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("th", { style: s3.th, children: tr("\u5185\u5BB9") }),
|
|
3981
3917
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("th", { style: s3.th })
|
|
3982
3918
|
] }) }),
|
|
3983
3919
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("tbody", { children: [
|
|
3984
|
-
flatRows.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("tr", { children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("td", { colSpan: 3, style: s3.empty, children: "\u6682\u65E0\u8BB0\u5FC6 \u2014 \u4F7F\u7528 engram_store \u663E\u5F0F\u8BB0\u5F55\uFF0C\u6216\u8BA9\u81EA\u52A8\u6355\u83B7\u5DE5\u4F5C\uFF08git \u63D0\u4EA4 / \u5173\u952E\u6587\u4EF6\u7F16\u8F91 / \u5DE5\u5177\u9519\u8BEF\uFF09" }) }),
|
|
3920
|
+
flatRows.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("tr", { children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("td", { colSpan: 3, style: s3.empty, children: tr("\u6682\u65E0\u8BB0\u5FC6 \u2014 \u4F7F\u7528 engram_store \u663E\u5F0F\u8BB0\u5F55\uFF0C\u6216\u8BA9\u81EA\u52A8\u6355\u83B7\u5DE5\u4F5C\uFF08git \u63D0\u4EA4 / \u5173\u952E\u6587\u4EF6\u7F16\u8F91 / \u5DE5\u5177\u9519\u8BEF\uFF09") }) }),
|
|
3985
3921
|
memPageRows.map(
|
|
3986
3922
|
(r) => r.kind === "head" ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("tr", { children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("td", { colSpan: 3, style: s3.wsHead, children: [
|
|
3987
3923
|
r.ws,
|
|
3988
3924
|
" \xB7 ",
|
|
3989
3925
|
r.count,
|
|
3990
|
-
"
|
|
3926
|
+
" ",
|
|
3927
|
+
tr(" \u6761")
|
|
3991
3928
|
] }) }, `h-${r.ws}`) : /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("tr", { children: [
|
|
3992
3929
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("td", { style: { ...s3.td, whiteSpace: "nowrap" }, children: [
|
|
3993
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { style: { ...s3.badge, background: KIND_COLORS2[r.m.kind] ?? "#6b7280" }, children:
|
|
3930
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { style: { ...s3.badge, background: KIND_COLORS2[r.m.kind] ?? "#6b7280" }, children: kindLabel2(r.m.kind) }),
|
|
3994
3931
|
r.m.status === "archived" && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { style: { ...s3.tag, color: "#b45309", background: "#fef3c7" }, children: "archived" }),
|
|
3995
|
-
supersedeIndex.replacedBy.has(r.m.id) && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { style: { ...s3.tag, color: "#b45309", background: "#fef3c7" }, title:
|
|
3932
|
+
supersedeIndex.replacedBy.has(r.m.id) && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { style: { ...s3.tag, color: "#b45309", background: "#fef3c7" }, title: tr("\u5DF2\u88AB {0} \u66FF\u4EE3\uFF08\u65E7\u884C\u4FDD\u7559\u3001\u53EC\u56DE\u964D\u7EA7\uFF09", { "0": (supersedeIndex.replacedBy.get(r.m.id) ?? []).map((x) => `#${x.id.slice(0, 8)}`).join(", ") }), children: tr("\u5DF2\u66FF\u6362") })
|
|
3996
3933
|
] }),
|
|
3997
3934
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("td", { style: { ...s3.td, minWidth: 0 }, children: [
|
|
3998
3935
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { title: r.m.text, style: expandedRows.has(r.m.id) ? s3.expanded : s3.clamp3, children: r.m.text }),
|
|
@@ -4009,57 +3946,46 @@ function EngramSection({ api, t, scope }) {
|
|
|
4009
3946
|
" \xB7 ",
|
|
4010
3947
|
daysLeft2(r.m.expiresAt)
|
|
4011
3948
|
] }),
|
|
4012
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { style: s3.linkBtn, onClick: () => toggleExpand(r.m.id), children: expandedRows.has(r.m.id) ? "\u6536\u8D77" : "\u5C55\u5F00\u5168\u6587" }),
|
|
4013
|
-
r.m.supersedes && /* @__PURE__ */ (0, import_jsx_runtime8.
|
|
4014
|
-
"\u66FF\u4EE3 #",
|
|
4015
|
-
r.m.supersedes.slice(0, 8)
|
|
4016
|
-
] })
|
|
3949
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { style: s3.linkBtn, onClick: () => toggleExpand(r.m.id), children: expandedRows.has(r.m.id) ? tr("\u6536\u8D77") : tr("\u5C55\u5F00\u5168\u6587") }),
|
|
3950
|
+
r.m.supersedes && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { style: s3.linkBtn, title: tr("\u6253\u5F00\u88AB\u66FF\u4EE3\u7684\u65E7\u8BB0\u5FC6 {0}", { "0": r.m.supersedes }), onClick: () => openMemory(r.m.supersedes), children: tr("\u66FF\u4EE3 #{0}", { "0": r.m.supersedes.slice(0, 8) }) })
|
|
4017
3951
|
] }),
|
|
4018
3952
|
r.m.tags.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { style: { marginTop: 3, display: "flex", flexWrap: "wrap", gap: 4 }, children: r.m.tags.map((tag) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { style: s3.tag, children: tag }, tag)) })
|
|
4019
3953
|
] }),
|
|
4020
3954
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("td", { style: s3.td, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: 4, alignItems: "flex-start" }, children: [
|
|
4021
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { style: s3.linkBtn, title: "\u5728\u4FA7\u680F\u6253\u5F00\u8BE6\u60C5", onClick: () => {
|
|
3955
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { style: s3.linkBtn, title: tr("\u5728\u4FA7\u680F\u6253\u5F00\u8BE6\u60C5"), onClick: () => {
|
|
4022
3956
|
setDetail({ kind: "memory", memory: r.m });
|
|
4023
3957
|
setDetailNotice(null);
|
|
4024
|
-
}, children: "\u8BE6\u60C5" }),
|
|
4025
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { style: s3.btn, title: "\u5F52\u6863\uFF08TTL/\u8F6F\u5220\uFF0C\u53EF\u6062\u590D\u4E0D\u8F7D\u5165\u7D22\u5F15\uFF09", onClick: () => void act(() => api.archive(r.m.id, r.m.workspace)), children: "\u5F52\u6863" }),
|
|
4026
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { style: s3.btn, title: "\u6C38\u4E45\u5220\u9664", onClick: () => {
|
|
4027
|
-
if (window.confirm(
|
|
4028
|
-
|
|
4029
|
-
}, children: "\u5220\u9664" })
|
|
3958
|
+
}, children: tr("\u8BE6\u60C5") }),
|
|
3959
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { style: s3.btn, title: tr("\u5F52\u6863\uFF08TTL/\u8F6F\u5220\uFF0C\u53EF\u6062\u590D\u4E0D\u8F7D\u5165\u7D22\u5F15\uFF09"), onClick: () => void act(() => api.archive(r.m.id, r.m.workspace)), children: tr("\u5F52\u6863") }),
|
|
3960
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { style: s3.btn, title: tr("\u6C38\u4E45\u5220\u9664"), onClick: () => {
|
|
3961
|
+
if (window.confirm(tr("\u5220\u9664\u8FD9\u6761\u8BB0\u5FC6?\n{0}", { "0": r.m.text.slice(0, 60) }))) void act(() => api.remove(r.m.id, r.m.workspace));
|
|
3962
|
+
}, children: tr("\u5220\u9664") })
|
|
4030
3963
|
] }) })
|
|
4031
3964
|
] }, r.m.id)
|
|
4032
3965
|
)
|
|
4033
3966
|
] })
|
|
4034
3967
|
] }),
|
|
4035
3968
|
flatRows.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: s3.pageBar, children: [
|
|
4036
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { style: s3.btn, disabled: memPageSafe === 0, onClick: () => setMemPage(memPageSafe - 1), children: "\u2039 \u4E0A\u4E00\u9875" }),
|
|
4037
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.
|
|
4038
|
-
|
|
4039
|
-
memPageSafe + 1,
|
|
4040
|
-
" / ",
|
|
4041
|
-
memPageCount,
|
|
4042
|
-
" \u9875 \xB7 \u5171 ",
|
|
4043
|
-
flatRows.length,
|
|
4044
|
-
" \u6761"
|
|
4045
|
-
] }),
|
|
4046
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { style: s3.btn, disabled: memPageSafe >= memPageCount - 1, onClick: () => setMemPage(memPageSafe + 1), children: "\u4E0B\u4E00\u9875 \u203A" })
|
|
3969
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { style: s3.btn, disabled: memPageSafe === 0, onClick: () => setMemPage(memPageSafe - 1), children: tr("\u2039 \u4E0A\u4E00\u9875") }),
|
|
3970
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { children: tr("\u7B2C {0} / {1} \u9875 \xB7 \u5171 {2} \u6761", { "0": memPageSafe + 1, "1": memPageCount, "2": flatRows.length }) }),
|
|
3971
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { style: s3.btn, disabled: memPageSafe >= memPageCount - 1, onClick: () => setMemPage(memPageSafe + 1), children: tr("\u4E0B\u4E00\u9875 \u203A") })
|
|
4047
3972
|
] })
|
|
4048
3973
|
] }),
|
|
4049
3974
|
view === "esr" && /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_jsx_runtime8.Fragment, { children: [
|
|
4050
3975
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: 8, flexWrap: "wrap", marginBottom: 6 }, children: [
|
|
4051
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { style: { fontSize: 11.5, color: "var(--dsh-color-muted, #6b7280)" }, children: "\u5DE5\u5177\u8C03\u7528\u4E0E\u547D\u4E2D\u7EDF\u8BA1\u89C1\u300C\u9065\u6D4B\u300Dtab\uFF1B[ESR] \u6CE8\u5165\u5757\u7684 escalate \u63D0\u9192\u4F9D\u636E\u771F\u5B9E\u6570\u636E\u52A8\u6001\u51FA\u73B0\u3002" }),
|
|
3976
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { style: { fontSize: 11.5, color: "var(--dsh-color-muted, #6b7280)" }, children: tr("\u5DE5\u5177\u8C03\u7528\u4E0E\u547D\u4E2D\u7EDF\u8BA1\u89C1\u300C\u9065\u6D4B\u300Dtab\uFF1B[ESR] \u6CE8\u5165\u5757\u7684 escalate \u63D0\u9192\u4F9D\u636E\u771F\u5B9E\u6570\u636E\u52A8\u6001\u51FA\u73B0\u3002") }),
|
|
4052
3977
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("span", { style: { marginLeft: "auto", display: "inline-flex", gap: 6 }, children: [
|
|
4053
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { type: "button", style: esrGraph ? s3.tab : s3.tabActive, onClick: () => setEsrGraph(false), children: "\u5217\u8868" }),
|
|
4054
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { type: "button", style: esrGraph ? s3.tabActive : s3.tab, onClick: () => setEsrGraph(true), children: "\u56FE\u8C31" })
|
|
3978
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { type: "button", style: esrGraph ? s3.tab : s3.tabActive, onClick: () => setEsrGraph(false), children: tr("\u5217\u8868") }),
|
|
3979
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { type: "button", style: esrGraph ? s3.tabActive : s3.tab, onClick: () => setEsrGraph(true), children: tr("\u56FE\u8C31") })
|
|
4055
3980
|
] })
|
|
4056
3981
|
] }),
|
|
4057
3982
|
esrGraph ? /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: s3.subPanel, children: [
|
|
4058
3983
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: 8, marginBottom: 4 }, children: [
|
|
4059
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { style: { fontWeight: 700, fontSize: 13 }, children: "\u5173\u7CFB\u56FE\u8C31\uFF08esr_link \u529B\u5BFC\u5411\u56FE\uFF09" }),
|
|
3984
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { style: { fontWeight: 700, fontSize: 13 }, children: tr("\u5173\u7CFB\u56FE\u8C31\uFF08esr_link \u529B\u5BFC\u5411\u56FE\uFF09") }),
|
|
4060
3985
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("span", { style: { fontSize: 11.5, fontWeight: 400, color: "var(--dsh-color-muted, #6b7280)" }, children: [
|
|
4061
|
-
workspace === "" ? "\u5168\u90E8\u5DE5\u4F5C\u533A" :
|
|
4062
|
-
"
|
|
3986
|
+
workspace === "" ? tr("\u5168\u90E8\u5DE5\u4F5C\u533A") : tr("\u5DE5\u4F5C\u533A\uFF1A{0}", { "0": workspace }),
|
|
3987
|
+
" ",
|
|
3988
|
+
tr(" \xB7 \u5B9E\u4F53\u4E3A\u5706\u5F62\u8282\u70B9\uFF0C\u4EFB\u52A1\u4E3A\u52FE\u9009\u5FBD\u6807\uFF1B\u70B9\u9009\u8282\u70B9\u67E5\u770B\u5173\u7CFB\u660E\u7EC6")
|
|
4063
3989
|
] })
|
|
4064
3990
|
] }),
|
|
4065
3991
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
@@ -4074,27 +4000,28 @@ ${r.m.text.slice(0, 60)}`)) void act(() => api.remove(r.m.id, r.m.workspace));
|
|
|
4074
4000
|
)
|
|
4075
4001
|
] }) : /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_jsx_runtime8.Fragment, { children: [
|
|
4076
4002
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: s3.panelTitle, children: [
|
|
4077
|
-
"ESR \u4EFB\u52A1\uFF08\u8BC1\u636E\u95ED\u73AF\uFF09",
|
|
4078
|
-
workspace === "" && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { style: { fontSize: 12, fontWeight: 400, color: "var(--dsh-color-muted, #9ca3af)" }, children: "\xB7 \u5168\u90E8\u5DE5\u4F5C\u533A" })
|
|
4003
|
+
tr("ESR \u4EFB\u52A1\uFF08\u8BC1\u636E\u95ED\u73AF\uFF09"),
|
|
4004
|
+
workspace === "" && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { style: { fontSize: 12, fontWeight: 400, color: "var(--dsh-color-muted, #9ca3af)" }, children: tr("\xB7 \u5168\u90E8\u5DE5\u4F5C\u533A") })
|
|
4079
4005
|
] }),
|
|
4080
4006
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { style: s3.subPanel, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: 8, flexWrap: "wrap" }, children: [
|
|
4081
4007
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("select", { style: s3.input, value: newTaskWs, onChange: (e) => setNewTaskWs(e.target.value), children: [
|
|
4082
4008
|
workspaces.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("option", { value: "", children: "(no workspaces)" }),
|
|
4083
4009
|
workspaces.map((ws) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("option", { value: ws, children: ws }, ws))
|
|
4084
4010
|
] }),
|
|
4085
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("input", { style: { ...s3.input, width: 170 }, placeholder: "\u4EFB\u52A1\u540D\u2026", value: newTaskName, onChange: (e) => setNewTaskName(e.target.value), onKeyDown: (e) => {
|
|
4011
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("input", { style: { ...s3.input, width: 170 }, placeholder: tr("\u4EFB\u52A1\u540D\u2026"), value: newTaskName, onChange: (e) => setNewTaskName(e.target.value), onKeyDown: (e) => {
|
|
4086
4012
|
if (e.key === "Enter") void createNewTask();
|
|
4087
4013
|
} }),
|
|
4088
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("input", { style: { ...s3.input, width: 240 }, placeholder: "\u8981\u4EA7\u51FA / \u6EE1\u8DB3\u4EC0\u4E48\uFF08\u53EF\u9009\uFF09", value: newTaskDesc, onChange: (e) => setNewTaskDesc(e.target.value) }),
|
|
4089
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { style: s3.btnPrimary, disabled: newTaskBusy || newTaskName.trim() === "", onClick: () => void createNewTask(), children: newTaskBusy ? "\u2026" : "\u65B0\u5EFA\u4EFB\u52A1" })
|
|
4014
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("input", { style: { ...s3.input, width: 240 }, placeholder: tr("\u8981\u4EA7\u51FA / \u6EE1\u8DB3\u4EC0\u4E48\uFF08\u53EF\u9009\uFF09"), value: newTaskDesc, onChange: (e) => setNewTaskDesc(e.target.value) }),
|
|
4015
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { style: s3.btnPrimary, disabled: newTaskBusy || newTaskName.trim() === "", onClick: () => void createNewTask(), children: newTaskBusy ? "\u2026" : tr("\u65B0\u5EFA\u4EFB\u52A1") })
|
|
4090
4016
|
] }) }),
|
|
4091
|
-
tasks.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { style: s3.empty, children: "\u6682\u65E0\u4EFB\u52A1 \u2014 \u7528\u4E0A\u65B9\u300C\u65B0\u5EFA\u4EFB\u52A1\u300D\u6216 esr_task \u5DE5\u5177\u521B\u5EFA" }),
|
|
4017
|
+
tasks.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { style: s3.empty, children: tr("\u6682\u65E0\u4EFB\u52A1 \u2014 \u7528\u4E0A\u65B9\u300C\u65B0\u5EFA\u4EFB\u52A1\u300D\u6216 esr_task \u5DE5\u5177\u521B\u5EFA") }),
|
|
4092
4018
|
taskGroups.map(([ws, items]) => /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_react8.Fragment, { children: [
|
|
4093
4019
|
workspace === "" && /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: s3.groupLabel, children: [
|
|
4094
4020
|
ws,
|
|
4095
4021
|
" \xB7 ",
|
|
4096
4022
|
items.length,
|
|
4097
|
-
"
|
|
4023
|
+
" ",
|
|
4024
|
+
tr(" \u4E2A\u4EFB\u52A1")
|
|
4098
4025
|
] }),
|
|
4099
4026
|
items.map((task) => {
|
|
4100
4027
|
const gaps = taskGaps(task);
|
|
@@ -4116,45 +4043,42 @@ ${r.m.text.slice(0, 60)}`)) void act(() => api.remove(r.m.id, r.m.workspace));
|
|
|
4116
4043
|
task.name,
|
|
4117
4044
|
" ",
|
|
4118
4045
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { style: { ...s3.badge, background: isStable ? "#059669" : gaps.length === 0 ? "#2563eb" : "#d97706" }, children: isStable ? "STABLE" : gaps.length === 0 ? "READY" : "ACTIVE" }),
|
|
4119
|
-
!isStable && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { style: s3.btn, onClick: () => setCloseFor(closeFor === task.id ? null : task.id), children: closeFor === task.id ? "\u6536\u8D77" : "\u586B\u5199\u8BC1\u636E\u5173\u95ED\u2026" }),
|
|
4120
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { style: s3.linkBtn, title: "\u5728\u4FA7\u680F\u6253\u5F00\u8BE6\u60C5", onClick: () => openTask(task.id), children: "\u8BE6\u60C5" })
|
|
4121
|
-
] }),
|
|
4122
|
-
!isStable && gaps.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { fontSize: 12, color: "var(--dsh-color-muted, #6b7280)", marginTop: 4 }, children: [
|
|
4123
|
-
"\u7F3A\u53E3\uFF1A",
|
|
4124
|
-
gaps.join(", "),
|
|
4125
|
-
" \u2014 \u63D0\u4F9B artifact / evaluation / memory_ref \u540E\u8F6C\u4E3A STABLE"
|
|
4046
|
+
!isStable && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { style: s3.btn, onClick: () => setCloseFor(closeFor === task.id ? null : task.id), children: closeFor === task.id ? tr("\u6536\u8D77") : tr("\u586B\u5199\u8BC1\u636E\u5173\u95ED\u2026") }),
|
|
4047
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { style: s3.linkBtn, title: tr("\u5728\u4FA7\u680F\u6253\u5F00\u8BE6\u60C5"), onClick: () => openTask(task.id), children: tr("\u8BE6\u60C5") })
|
|
4126
4048
|
] }),
|
|
4049
|
+
!isStable && gaps.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { style: { fontSize: 12, color: "var(--dsh-color-muted, #6b7280)", marginTop: 4 }, children: tr("\u7F3A\u53E3\uFF1A{0} \u2014 \u63D0\u4F9B artifact / evaluation / memory_ref \u540E\u8F6C\u4E3A STABLE", { "0": gaps.join(", ") }) }),
|
|
4127
4050
|
task.description && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { style: { fontSize: 12, color: "var(--dsh-color-muted-strong, #4b5563)", marginTop: 4 }, children: task.description }),
|
|
4128
4051
|
task.memoryRefs.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { fontSize: 12, marginTop: 4 }, children: [
|
|
4129
|
-
"\u8BB0\u5FC6\u5F15\u7528\uFF1A",
|
|
4052
|
+
tr("\u8BB0\u5FC6\u5F15\u7528\uFF1A"),
|
|
4130
4053
|
task.memoryRefs.map((r) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { style: s3.tag, children: r.slice(0, 8) }, r))
|
|
4131
4054
|
] }),
|
|
4132
4055
|
closeFor === task.id && /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { marginTop: 8, padding: 8, border: "1px solid var(--dsh-color-border, #e5e7eb)", borderRadius: 8 }, children: [
|
|
4133
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { style: { fontSize: 11, color: "var(--dsh-color-muted, #6b7280)", marginBottom: 6 }, children: "\u63D0\u4F9B\u8BC1\u636E\u540E\u5173\u95ED\uFF08\u4E09\u9879\u5168\u9F50\u624D\u8F6C STABLE\uFF09" }),
|
|
4056
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { style: { fontSize: 11, color: "var(--dsh-color-muted, #6b7280)", marginBottom: 6 }, children: tr("\u63D0\u4F9B\u8BC1\u636E\u540E\u5173\u95ED\uFF08\u4E09\u9879\u5168\u9F50\u624D\u8F6C STABLE\uFF09") }),
|
|
4134
4057
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { display: "flex", gap: 6, flexWrap: "wrap", alignItems: "center" }, children: [
|
|
4135
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("input", { style: { ...s3.input, width: 150 }, placeholder: "artifact \u8DEF\u5F84/URL", value: closeArtifact, onChange: (e) => setCloseArtifact(e.target.value) }),
|
|
4136
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("input", { style: { ...s3.input, width: 150 }, placeholder: "evaluation \u9A8C\u8BC1\u8BC1\u636E", value: closeEval, onChange: (e) => setCloseEval(e.target.value) }),
|
|
4137
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("input", { style: { ...s3.input, width: 150 }, placeholder: "memory_refs \u9017\u53F7\u5206\u9694", value: closeRefs, onChange: (e) => setCloseRefs(e.target.value) }),
|
|
4138
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { style: s3.btnPrimary, disabled: closeBusy, onClick: () => void submitClose(task), children: closeBusy ? "\u2026" : "\u63D0\u4EA4\u5173\u95ED" }),
|
|
4139
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { style: s3.btn, onClick: () => setCloseFor(null), children: "\u53D6\u6D88" })
|
|
4058
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("input", { style: { ...s3.input, width: 150 }, placeholder: tr("artifact \u8DEF\u5F84/URL"), value: closeArtifact, onChange: (e) => setCloseArtifact(e.target.value) }),
|
|
4059
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("input", { style: { ...s3.input, width: 150 }, placeholder: tr("evaluation \u9A8C\u8BC1\u8BC1\u636E"), value: closeEval, onChange: (e) => setCloseEval(e.target.value) }),
|
|
4060
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("input", { style: { ...s3.input, width: 150 }, placeholder: tr("memory_refs \u9017\u53F7\u5206\u9694"), value: closeRefs, onChange: (e) => setCloseRefs(e.target.value) }),
|
|
4061
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { style: s3.btnPrimary, disabled: closeBusy, onClick: () => void submitClose(task), children: closeBusy ? "\u2026" : tr("\u63D0\u4EA4\u5173\u95ED") }),
|
|
4062
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("button", { style: s3.btn, onClick: () => setCloseFor(null), children: tr("\u53D6\u6D88") })
|
|
4140
4063
|
] })
|
|
4141
4064
|
] })
|
|
4142
4065
|
] }, task.id);
|
|
4143
4066
|
})
|
|
4144
4067
|
] }, ws)),
|
|
4145
4068
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: s3.panelTitle, children: [
|
|
4146
|
-
"\u8282\u70B9\u4E0E\u5173\u7CFB\uFF08esr_node / esr_link\uFF09",
|
|
4147
|
-
workspace === "" && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { style: { fontSize: 12, fontWeight: 400, color: "var(--dsh-color-muted, #9ca3af)" }, children: "\xB7 \u5168\u90E8\u5DE5\u4F5C\u533A" })
|
|
4069
|
+
tr("\u8282\u70B9\u4E0E\u5173\u7CFB\uFF08esr_node / esr_link\uFF09"),
|
|
4070
|
+
workspace === "" && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { style: { fontSize: 12, fontWeight: 400, color: "var(--dsh-color-muted, #9ca3af)" }, children: tr("\xB7 \u5168\u90E8\u5DE5\u4F5C\u533A") })
|
|
4148
4071
|
] }),
|
|
4149
|
-
nodes.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { style: s3.empty, children: "\u6682\u65E0\u8282\u70B9 \u2014 \u6A21\u578B\u4F1A\u4E3A\u53CD\u590D\u51FA\u73B0\u7684\u9886\u57DF\u5BF9\u8C61\u4E3B\u52A8\u767B\u8BB0\uFF08esr_node\uFF09\uFF0C\u6B64\u5904\u4E5F\u53EF\u67E5\u770B\u5173\u7CFB" }),
|
|
4072
|
+
nodes.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { style: s3.empty, children: tr("\u6682\u65E0\u8282\u70B9 \u2014 \u6A21\u578B\u4F1A\u4E3A\u53CD\u590D\u51FA\u73B0\u7684\u9886\u57DF\u5BF9\u8C61\u4E3B\u52A8\u767B\u8BB0\uFF08esr_node\uFF09\uFF0C\u6B64\u5904\u4E5F\u53EF\u67E5\u770B\u5173\u7CFB") }),
|
|
4150
4073
|
nodeGroups.map(([ws, items]) => /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_react8.Fragment, { children: [
|
|
4151
4074
|
workspace === "" && /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: s3.groupLabel, children: [
|
|
4152
4075
|
ws,
|
|
4153
4076
|
" \xB7 ",
|
|
4154
4077
|
items.length,
|
|
4155
|
-
"
|
|
4078
|
+
" ",
|
|
4079
|
+
tr(" \u4E2A\u8282\u70B9")
|
|
4156
4080
|
] }),
|
|
4157
|
-
items.map((n) => /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { fontSize: 12.5, padding: "2px 0", cursor: "pointer", borderRadius: 6 }, title: "\u5728\u4FA7\u680F\u6253\u5F00\u8282\u70B9\u8BE6\u60C5", onClick: () => openNode(n.id), children: [
|
|
4081
|
+
items.map((n) => /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { fontSize: 12.5, padding: "2px 0", cursor: "pointer", borderRadius: 6 }, title: tr("\u5728\u4FA7\u680F\u6253\u5F00\u8282\u70B9\u8BE6\u60C5"), onClick: () => openNode(n.id), children: [
|
|
4158
4082
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: "mono", style: { ...s3.mono, color: "#4338ca" }, children: n.id.slice(0, 24) }),
|
|
4159
4083
|
" ",
|
|
4160
4084
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { style: { fontWeight: 600 }, children: n.name }),
|
|
@@ -4165,16 +4089,17 @@ ${r.m.text.slice(0, 60)}`)) void act(() => api.remove(r.m.id, r.m.workspace));
|
|
|
4165
4089
|
] })
|
|
4166
4090
|
] }, n.id))
|
|
4167
4091
|
] }, ws)),
|
|
4168
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { style: { fontSize: 12, color: "var(--dsh-color-muted, #6b7280)", marginTop: 6 }, children: "\u5173\u7CFB\uFF1A" }),
|
|
4169
|
-
links.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { style: s3.empty, children: "\u6682\u65E0\u5173\u7CFB \u2014 esr_link \u521B\u5EFA" }),
|
|
4092
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { style: { fontSize: 12, color: "var(--dsh-color-muted, #6b7280)", marginTop: 6 }, children: tr("\u5173\u7CFB\uFF1A") }),
|
|
4093
|
+
links.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { style: s3.empty, children: tr("\u6682\u65E0\u5173\u7CFB \u2014 esr_link \u521B\u5EFA") }),
|
|
4170
4094
|
linkGroups.map(([ws, items]) => /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_react8.Fragment, { children: [
|
|
4171
4095
|
workspace === "" && /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: s3.groupLabel, children: [
|
|
4172
4096
|
ws,
|
|
4173
4097
|
" \xB7 ",
|
|
4174
4098
|
items.length,
|
|
4175
|
-
"
|
|
4099
|
+
" ",
|
|
4100
|
+
tr(" \u6761\u5173\u7CFB")
|
|
4176
4101
|
] }),
|
|
4177
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { style: { display: "flex", flexDirection: "column", gap: 6, marginTop: 4 }, children: items.map((l) => /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { ...s3.relRow, cursor: "pointer" }, title: "\u5728\u4FA7\u680F\u6253\u5F00\u5173\u7CFB\u8BE6\u60C5", onClick: () => {
|
|
4102
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { style: { display: "flex", flexDirection: "column", gap: 6, marginTop: 4 }, children: items.map((l) => /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { ...s3.relRow, cursor: "pointer" }, title: tr("\u5728\u4FA7\u680F\u6253\u5F00\u5173\u7CFB\u8BE6\u60C5"), onClick: () => {
|
|
4178
4103
|
setDetail({ kind: "link", link: l });
|
|
4179
4104
|
setDetailNotice(null);
|
|
4180
4105
|
}, children: [
|
|
@@ -4202,7 +4127,7 @@ ${r.m.text.slice(0, 60)}`)) void act(() => api.remove(r.m.id, r.m.workspace));
|
|
|
4202
4127
|
}
|
|
4203
4128
|
) }),
|
|
4204
4129
|
view === "telemetry" && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { style: s3.subPanel, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(EngramTelemetry, { api, workspace }) }),
|
|
4205
|
-
view === "config" && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { style: s3.subPanel, children: scope ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(EngramConfigCard, { scope, defaultOpen: true }) : /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { style: s3.error, children: "\u8BBE\u7F6E\u9762\u677F\u4E0D\u53EF\u7528\uFF1Ahost \u6CA1\u6709\u4E3A dsh-engram \u63D0\u4F9B\u8BBE\u7F6E\u547D\u540D\u7A7A\u95F4\uFF08\u65E7\u7248 DSH \u8D70\u300C\u63D2\u4EF6\u300D\u2192 \u914D\u7F6E tab\uFF09\u3002" }) })
|
|
4130
|
+
view === "config" && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { style: s3.subPanel, children: scope ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(EngramConfigCard, { scope, defaultOpen: true }) : /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { style: s3.error, children: tr("\u8BBE\u7F6E\u9762\u677F\u4E0D\u53EF\u7528\uFF1Ahost \u6CA1\u6709\u4E3A dsh-engram \u63D0\u4F9B\u8BBE\u7F6E\u547D\u540D\u7A7A\u95F4\uFF08\u65E7\u7248 DSH \u8D70\u300C\u63D2\u4EF6\u300D\u2192 \u914D\u7F6E tab\uFF09\u3002") }) })
|
|
4206
4131
|
] }),
|
|
4207
4132
|
detail && /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { flex: "0 0 320px", maxWidth: "38%", position: "sticky", top: 8 }, children: [
|
|
4208
4133
|
detailNotice && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { style: { fontSize: 11.5, padding: "6px 10px", marginBottom: 6, borderRadius: 8, background: "rgba(245,158,11,.14)", color: "#b45309", border: "1px solid rgba(245,158,11,.35)" }, children: detailNotice }),
|
|
@@ -4306,11 +4231,11 @@ var import_client = require("react-dom/client");
|
|
|
4306
4231
|
// client/src/EngramBoard.tsx
|
|
4307
4232
|
var import_react9 = require("react");
|
|
4308
4233
|
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
4309
|
-
var
|
|
4310
|
-
{ key: "draft", title: "\u8349\u7A3F", sub: "\u672A\u88AB\u6FC0\u6D3B", color: "#94a3b8", match: (t) => t.state === "draft" },
|
|
4311
|
-
{ key: "gapped", title: "\u8FDB\u884C\u4E2D", sub: "\u8BC1\u636E\u6709\u7F3A\u53E3", color: "#f59e0b", match: (t) => t.state === "active" && taskGaps(t).length > 0 },
|
|
4312
|
-
{ key: "ready", title: "\u5C31\u7EEA", sub: "\u8BC1\u636E\u9F50\uFF0C\u53EF\u95ED\u73AF", color: "#10b981", match: (t) => t.state === "active" && taskGaps(t).length === 0 },
|
|
4313
|
-
{ key: "stable", title: "\u5DF2\u95ED\u73AF", sub: "\u51ED\u636E\u9F50\u5907", color: "#6366f1", match: (t) => t.state === "stable" }
|
|
4234
|
+
var columns = () => [
|
|
4235
|
+
{ key: "draft", title: tr("\u8349\u7A3F"), sub: tr("\u672A\u88AB\u6FC0\u6D3B"), color: "#94a3b8", match: (t) => t.state === "draft" },
|
|
4236
|
+
{ key: "gapped", title: tr("\u8FDB\u884C\u4E2D"), sub: tr("\u8BC1\u636E\u6709\u7F3A\u53E3"), color: "#f59e0b", match: (t) => t.state === "active" && taskGaps(t).length > 0 },
|
|
4237
|
+
{ key: "ready", title: tr("\u5C31\u7EEA"), sub: tr("\u8BC1\u636E\u9F50\uFF0C\u53EF\u95ED\u73AF"), color: "#10b981", match: (t) => t.state === "active" && taskGaps(t).length === 0 },
|
|
4238
|
+
{ key: "stable", title: tr("\u5DF2\u95ED\u73AF"), sub: tr("\u51ED\u636E\u9F50\u5907"), color: "#6366f1", match: (t) => t.state === "stable" }
|
|
4314
4239
|
];
|
|
4315
4240
|
function buildCloseEvidence(bulkArtifact, bulkEval, bulkRefs, task) {
|
|
4316
4241
|
const refs = bulkRefs.split(/[,\s]+/).map((x) => x.trim()).filter(Boolean);
|
|
@@ -4320,25 +4245,32 @@ function buildCloseEvidence(bulkArtifact, bulkEval, bulkRefs, task) {
|
|
|
4320
4245
|
memoryRefs: refs.length > 0 ? refs : task.memoryRefs
|
|
4321
4246
|
};
|
|
4322
4247
|
}
|
|
4323
|
-
var
|
|
4324
|
-
|
|
4325
|
-
|
|
4326
|
-
|
|
4327
|
-
|
|
4328
|
-
|
|
4248
|
+
var trendLabel = (trend) => {
|
|
4249
|
+
switch (trend) {
|
|
4250
|
+
case "new":
|
|
4251
|
+
return tr("\u65B0");
|
|
4252
|
+
case "strengthening":
|
|
4253
|
+
return tr("\u589E\u5F3A");
|
|
4254
|
+
case "stable":
|
|
4255
|
+
return tr("\u7A33\u5B9A");
|
|
4256
|
+
case "weakening":
|
|
4257
|
+
return tr("\u51CF\u5F31");
|
|
4258
|
+
case "stale":
|
|
4259
|
+
return tr("\u9648\u65E7");
|
|
4260
|
+
default:
|
|
4261
|
+
return trend ?? "";
|
|
4262
|
+
}
|
|
4329
4263
|
};
|
|
4330
4264
|
function ContextGcChip({ compaction }) {
|
|
4331
4265
|
const host = compaction?.host ?? "unknown";
|
|
4332
|
-
const hostLabel = host === "context-gc" ? "Context GC\xB7\u4E3B\u673A" : host === "default" ? "\u9ED8\u8BA4\u6458\u8981" : host === "unavailable" ? "GC \u4E0D\u53EF\u7528" : "GC \u72B6\u6001\u2026";
|
|
4266
|
+
const hostLabel = host === "context-gc" ? tr("Context GC\xB7\u4E3B\u673A") : host === "default" ? tr("\u9ED8\u8BA4\u6458\u8981") : host === "unavailable" ? tr("GC \u4E0D\u53EF\u7528") : tr("GC \u72B6\u6001\u2026");
|
|
4333
4267
|
const wired = (compaction?.web?.presets ?? []).filter((p) => p.action === "swapped" || p.action === "already").length;
|
|
4334
|
-
const webLabel = wired > 0 ?
|
|
4268
|
+
const webLabel = wired > 0 ? tr("\xB7{0} \u9884\u8BBE", { "0": wired }) : "";
|
|
4335
4269
|
const color = host === "context-gc" ? "var(--dsw-alias-success-strong, #059669)" : host === "default" || host === "unavailable" ? "var(--dsw-alias-label-secondary, var(--dsh-color-muted, #6b7280))" : "var(--dsw-alias-label-tertiary, #9ca3af)";
|
|
4336
4270
|
return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
|
|
4337
4271
|
"span",
|
|
4338
4272
|
{
|
|
4339
|
-
title:
|
|
4340
|
-
web \u5E73\u9762\uFF1A${compaction?.web?.action ?? "?"}\uFF08${wired} \u4E2A\u9884\u8BBE\u5DF2\u63A5\u7BA1\uFF09
|
|
4341
|
-
\u5173\u6389\u81EA\u52A8\u88C5\u914D\u89C1\u8BBE\u7F6E\u5361\u300Cweb \u9762\u81EA\u52A8\u542F\u7528 Context GC\u300D\uFF1B\u8FD8\u539F\u7528 npx dsh-engram revert`,
|
|
4273
|
+
title: tr("host \u5E73\u9762\uFF1A{0}\nweb \u5E73\u9762\uFF1A{1}\uFF08{2} \u4E2A\u9884\u8BBE\u5DF2\u63A5\u7BA1\uFF09\n\u5173\u6389\u81EA\u52A8\u88C5\u914D\u89C1\u8BBE\u7F6E\u5361\u300Cweb \u9762\u81EA\u52A8\u542F\u7528 Context GC\u300D\uFF1B\u8FD8\u539F\u7528 npx dsh-engram revert", { "0": host, "1": compaction?.web?.action ?? "?", "2": wired }),
|
|
4342
4274
|
style: { fontSize: 11, fontWeight: 600, color, border: `1px solid ${color}55`, borderRadius: 999, padding: "2px 8px", whiteSpace: "nowrap" },
|
|
4343
4275
|
children: [
|
|
4344
4276
|
hostLabel,
|
|
@@ -4473,7 +4405,7 @@ function EngramBoard({ api, onRequestClose }) {
|
|
|
4473
4405
|
}, [allTasks, ws, q]);
|
|
4474
4406
|
const columnCounts = (0, import_react9.useMemo)(() => {
|
|
4475
4407
|
const counts = {};
|
|
4476
|
-
for (const col of
|
|
4408
|
+
for (const col of columns()) counts[col.key] = filtered.filter(col.match).length;
|
|
4477
4409
|
counts.all = filtered.length;
|
|
4478
4410
|
return counts;
|
|
4479
4411
|
}, [filtered]);
|
|
@@ -4522,7 +4454,7 @@ function EngramBoard({ api, onRequestClose }) {
|
|
|
4522
4454
|
fail += 1;
|
|
4523
4455
|
}
|
|
4524
4456
|
}
|
|
4525
|
-
setBulkMsg(ok > 0 ?
|
|
4457
|
+
setBulkMsg(ok > 0 ? tr("\u6279\u91CF\u5B8C\u6210\uFF1A{0} \u4E2A\u4EFB\u52A1\u5DF2\u95ED\u73AF{1}", { "0": ok, "1": fail > 0 ? tr(" \xB7 {0} \u4E2A\u672A\u8FBE\u8BC1\u636E\u95E8\uFF08\u89C1\u5355\u5361\u8868\u5355\u8865\uFF09", { "0": fail }) : "" }) : tr("\u672A\u95ED\u73AF\uFF1A{0} \u4E2A\u672A\u8FBE\u8BC1\u636E\u95E8\uFF08\u89C1\u5355\u5361\u8868\u5355\u8865\uFF09", { "0": fail }));
|
|
4526
4458
|
setBulkBusy(false);
|
|
4527
4459
|
setSelectedIds(/* @__PURE__ */ new Set());
|
|
4528
4460
|
setBulkOpen(false);
|
|
@@ -4549,7 +4481,7 @@ function EngramBoard({ api, onRequestClose }) {
|
|
|
4549
4481
|
const refs = closeRefs.split(/[,\s]+/).map((x) => x.trim()).filter(Boolean);
|
|
4550
4482
|
const res = await api.closeTask(t.workspace, t.id, { artifact: closeArtifact, evaluation: closeEval, memoryRefs: refs });
|
|
4551
4483
|
if (res.state === "active") {
|
|
4552
|
-
setError(
|
|
4484
|
+
setError(tr("\u8BC1\u636E\u4ECD\u6709\u7F3A\u53E3\uFF1A{0}{1} \u2014 \u4EFB\u52A1\u4FDD\u6301 ACTIVE", { "0": (res.gaps ?? []).join(", ") || "\u2014", "1": res.artifactReason ? `\uFF08${res.artifactReason}\uFF09` : "" }));
|
|
4553
4485
|
return;
|
|
4554
4486
|
}
|
|
4555
4487
|
setClosingFor(null);
|
|
@@ -4570,112 +4502,92 @@ function EngramBoard({ api, onRequestClose }) {
|
|
|
4570
4502
|
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("rect", { x: "2", y: "2.5", width: "12", height: "11", rx: "2.5", stroke: "currentColor", strokeWidth: "1.3" }),
|
|
4571
4503
|
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("path", { d: "M5.2 8.1l1.8 1.8 3.8-4", stroke: "currentColor", strokeWidth: "1.4", strokeLinecap: "round", strokeLinejoin: "round" })
|
|
4572
4504
|
] }),
|
|
4573
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { style: hb.title, children: "ESR \u4EFB\u52A1\u770B\u677F" }),
|
|
4574
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { style: hb.sub, children: "draft \u2192 active(\u8BC1\u636E) \u2192 stable \xB7 \u8DE8\u5DE5\u4F5C\u533A \xB7 \u4E0E esr_task/esr_close \u540C\u4E00\u8BC1\u636E\u95E8" }),
|
|
4575
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { style: hb.legendChip, children: "\u4EC5 ESR \xB7 \u4F1A\u8BDD\u5185 todo \u89C1\u8F93\u5165\u6846\u4E0A\u65B9\u4EFB\u52A1\u6761" }),
|
|
4505
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { style: hb.title, children: tr("ESR \u4EFB\u52A1\u770B\u677F") }),
|
|
4506
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { style: hb.sub, children: tr("draft \u2192 active(\u8BC1\u636E) \u2192 stable \xB7 \u8DE8\u5DE5\u4F5C\u533A \xB7 \u4E0E esr_task/esr_close \u540C\u4E00\u8BC1\u636E\u95E8") }),
|
|
4507
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { style: hb.legendChip, children: tr("\u4EC5 ESR \xB7 \u4F1A\u8BDD\u5185 todo \u89C1\u8F93\u5165\u6846\u4E0A\u65B9\u4EFB\u52A1\u6761") }),
|
|
4576
4508
|
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(ContextGcChip, { compaction: overview?.compaction }),
|
|
4577
4509
|
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("span", { style: hb.seg, children: [
|
|
4578
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("button", { type: "button", style: viewMode === "board" ? hb.segActive : hb.segBtn, onClick: () => setViewMode("board"), title: "\u56DB\u5217\u4EFB\u52A1\u770B\u677F", children: "\u770B\u677F" }),
|
|
4579
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("button", { type: "button", style: viewMode === "graph" ? hb.segActive : hb.segBtn, onClick: () => setViewMode("graph"), title: "\u5B9E\u4F53\u5173\u7CFB\u56FE\u8C31\uFF08esr_node / esr_link\uFF09", children: "\u56FE\u8C31" })
|
|
4510
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("button", { type: "button", style: viewMode === "board" ? hb.segActive : hb.segBtn, onClick: () => setViewMode("board"), title: tr("\u56DB\u5217\u4EFB\u52A1\u770B\u677F"), children: tr("\u770B\u677F") }),
|
|
4511
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("button", { type: "button", style: viewMode === "graph" ? hb.segActive : hb.segBtn, onClick: () => setViewMode("graph"), title: tr("\u5B9E\u4F53\u5173\u7CFB\u56FE\u8C31\uFF08esr_node / esr_link\uFF09"), children: tr("\u56FE\u8C31") })
|
|
4580
4512
|
] }),
|
|
4581
4513
|
loading && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { style: hb.loading, children: "\u2026" }),
|
|
4582
4514
|
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { style: { flex: "1 1 auto" } }),
|
|
4583
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("span", { style: { display: "inline-flex", alignItems: "center", gap: 6 }, title:
|
|
4515
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("span", { style: { display: "inline-flex", alignItems: "center", gap: 6 }, title: tr("\u8BC1\u636E\u5B8C\u5907\u5EA6 {0}% \xB7 {1}/{2} \u4E2A\u8FDB\u884C\u4E2D\u4EFB\u52A1\u8BC1\u636E\u9F50 \xB7 {3} \u5DF2\u95ED\u73AF", { "0": Math.round(evidenceGauge.frac * 100), "1": evidenceGauge.ready, "2": evidenceGauge.active, "3": evidenceGauge.stable }), children: [
|
|
4584
4516
|
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(EvidenceRing, { artifact: false, evaluation: false, refs: false, size: 30, showLabel: false, fraction: evidenceGauge.frac }),
|
|
4585
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { style: { fontSize: 11.5, color: "var(--dsw-alias-label-secondary, var(--dsh-color-muted, #6b7280))", fontWeight: 600 }, children: evidenceGauge.active === 0 ? "\u65E0\u8FDB\u884C\u4E2D" :
|
|
4517
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { style: { fontSize: 11.5, color: "var(--dsw-alias-label-secondary, var(--dsh-color-muted, #6b7280))", fontWeight: 600 }, children: evidenceGauge.active === 0 ? tr("\u65E0\u8FDB\u884C\u4E2D") : tr("{0} \u5C31\u7EEA \xB7 \u5B8C\u5907 {1}%", { "0": evidenceGauge.ready, "1": Math.round(evidenceGauge.frac * 100) }) })
|
|
4586
4518
|
] }),
|
|
4587
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("select", { style: hb.select, value: ws, onChange: (e) => setWs(e.target.value), title: "\u5DE5\u4F5C\u533A\u7B5B\u9009", children: [
|
|
4588
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.
|
|
4589
|
-
"\u5168\u90E8\u5DE5\u4F5C\u533A \xB7 ",
|
|
4590
|
-
totalActive,
|
|
4591
|
-
" \u8FDB\u884C\u4E2D"
|
|
4592
|
-
] }),
|
|
4519
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("select", { style: hb.select, value: ws, onChange: (e) => setWs(e.target.value), title: tr("\u5DE5\u4F5C\u533A\u7B5B\u9009"), children: [
|
|
4520
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("option", { value: "", children: tr("\u5168\u90E8\u5DE5\u4F5C\u533A \xB7 {0} \u8FDB\u884C\u4E2D", { "0": totalActive }) }),
|
|
4593
4521
|
workspaces.map(([w, c]) => /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("option", { value: w, children: [
|
|
4594
4522
|
w.replace(/^.*[\\/]/, ""),
|
|
4595
4523
|
" \xB7 ",
|
|
4596
4524
|
c.tasks,
|
|
4597
|
-
"
|
|
4525
|
+
" ",
|
|
4526
|
+
tr(" \u8FDB\u884C\u4E2D")
|
|
4598
4527
|
] }, w))
|
|
4599
4528
|
] }),
|
|
4600
4529
|
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
4601
4530
|
"input",
|
|
4602
4531
|
{
|
|
4603
4532
|
style: { ...hb.input, width: 170 },
|
|
4604
|
-
placeholder: "\u641C\u7D22\u4EFB\u52A1\u2026",
|
|
4533
|
+
placeholder: tr("\u641C\u7D22\u4EFB\u52A1\u2026"),
|
|
4605
4534
|
value: q,
|
|
4606
4535
|
onChange: (e) => setQ(e.target.value)
|
|
4607
4536
|
}
|
|
4608
4537
|
),
|
|
4609
4538
|
viewMode === "board" && /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_jsx_runtime9.Fragment, { children: [
|
|
4610
|
-
selectedIds.size > 0 && /* @__PURE__ */ (0, import_jsx_runtime9.
|
|
4539
|
+
selectedIds.size > 0 && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("button", { type: "button", style: { ...hb.btn, background: "var(--dsw-alias-state-business-tertiary, rgba(99,102,241,.12))" }, onClick: () => {
|
|
4611
4540
|
setBulkOpen(true);
|
|
4612
4541
|
setCreating(false);
|
|
4613
|
-
}, children:
|
|
4614
|
-
|
|
4615
|
-
selectedIds.size,
|
|
4616
|
-
"\uFF09"
|
|
4617
|
-
] }),
|
|
4618
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("button", { type: "button", style: hb.btn, onClick: exportMd, title: "\u5BFC\u51FA\u5F53\u524D\u7B5B\u9009\u4E3A markdown", children: "\u5BFC\u51FA" }),
|
|
4542
|
+
}, children: tr("\u6279\u91CF\u95ED\u73AF\uFF08{0}\uFF09", { "0": selectedIds.size }) }),
|
|
4543
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("button", { type: "button", style: hb.btn, onClick: exportMd, title: tr("\u5BFC\u51FA\u5F53\u524D\u7B5B\u9009\u4E3A markdown"), children: tr("\u5BFC\u51FA") }),
|
|
4619
4544
|
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("button", { type: "button", style: hb.btn, onClick: () => {
|
|
4620
4545
|
setCreating((v) => !v);
|
|
4621
4546
|
setClosingFor(null);
|
|
4622
|
-
}, children: "\uFF0B \u65B0\u5EFA" })
|
|
4547
|
+
}, children: tr("\uFF0B \u65B0\u5EFA") })
|
|
4623
4548
|
] }),
|
|
4624
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("button", { type: "button", style: hb.btn, onClick: () => void refresh(), disabled: loading, title: "\u5237\u65B0", children: "\u5237\u65B0" }),
|
|
4625
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("button", { type: "button", style: hb.close, onClick: onRequestClose, "aria-label": "\u5173\u95ED\u770B\u677F", children: "\u2715" })
|
|
4549
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("button", { type: "button", style: hb.btn, onClick: () => void refresh(), disabled: loading, title: tr("\u5237\u65B0"), children: tr("\u5237\u65B0") }),
|
|
4550
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("button", { type: "button", style: hb.close, onClick: onRequestClose, "aria-label": tr("\u5173\u95ED\u770B\u677F"), children: "\u2715" })
|
|
4626
4551
|
] }) }),
|
|
4627
4552
|
viewMode === "board" ? /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_jsx_runtime9.Fragment, { children: [
|
|
4628
4553
|
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: hb.partition, children: [
|
|
4629
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { style: hb.partitionTag, children: "\u539F\u751F todo \xB7 \u4F1A\u8BDD\u5185" }),
|
|
4554
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { style: hb.partitionTag, children: tr("\u539F\u751F todo \xB7 \u4F1A\u8BDD\u5185") }),
|
|
4630
4555
|
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("span", { children: [
|
|
4631
|
-
"\u7531 todo_write \u9A71\u52A8\uFF0C\u968F\u4F1A\u8BDD\u7ED3\u675F\uFF0C\u4E0D\u8DE8\u4F1A\u8BDD\u4FDD\u7559\uFF1B\u8981\u957F\u671F\u6C89\u6DC0\u7684\u591A\u6B65\u5DE5\u4F5C\uFF0C\u8BF7\u7528",
|
|
4632
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.
|
|
4633
|
-
|
|
4634
|
-
|
|
4635
|
-
|
|
4556
|
+
tr("\u7531 todo_write \u9A71\u52A8\uFF0C\u968F\u4F1A\u8BDD\u7ED3\u675F\uFF0C\u4E0D\u8DE8\u4F1A\u8BDD\u4FDD\u7559\uFF1B\u8981\u957F\u671F\u6C89\u6DC0\u7684\u591A\u6B65\u5DE5\u4F5C\uFF0C\u8BF7\u7528"),
|
|
4557
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("strong", { children: [
|
|
4558
|
+
" ",
|
|
4559
|
+
tr(" esr_task / \u672C\u677F\u300C\u65B0\u5EFA\u300D")
|
|
4560
|
+
] }),
|
|
4561
|
+
tr("\u5EFA\u4E3A ESR \u4EFB\u52A1\uFF08"),
|
|
4562
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { style: hb.partitionTagEsr, children: tr("ESR \xB7 \u8DE8\u4F1A\u8BDD\u95ED\u73AF") }),
|
|
4563
|
+
tr("\uFF09\uFF0C\u95ED\u73AF\uFF08artifact + evaluation + memory_refs \u8BC1\u636E\u95E8\uFF09\u540E\u8FDB [ENGRAM]\u3002")
|
|
4636
4564
|
] })
|
|
4637
4565
|
] }),
|
|
4638
4566
|
showModelHint && /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: hb.modelHint, children: [
|
|
4639
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { style: hb.partitionTagEsr, children: "\u5B9E\u4F53\u5EFA\u6A21" }),
|
|
4567
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { style: hb.partitionTagEsr, children: tr("\u5B9E\u4F53\u5EFA\u6A21") }),
|
|
4640
4568
|
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("span", { children: [
|
|
4641
|
-
"\u8BE5\u8303\u56F4\u8FD8\u6CA1\u6709\u5B9E\u4F53\u56FE \u2014 \u7528 ",
|
|
4569
|
+
tr("\u8BE5\u8303\u56F4\u8FD8\u6CA1\u6709\u5B9E\u4F53\u56FE \u2014 \u7528 "),
|
|
4642
4570
|
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("strong", { children: "esr_node" }),
|
|
4643
|
-
"
|
|
4571
|
+
" ",
|
|
4572
|
+
tr(" \u5EFA\u6A21\u53CD\u590D\u51FA\u73B0\u7684\u9886\u57DF\u5BF9\u8C61\uFF08\u5305/\u670D\u52A1/\u6587\u6863/\u6982\u5FF5\uFF09\uFF0C \u518D\u7528 "),
|
|
4644
4573
|
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("strong", { children: "esr_link" }),
|
|
4645
|
-
"
|
|
4574
|
+
" ",
|
|
4575
|
+
tr(" \u5173\u8054\u5230\u4EFB\u52A1\u4E0E\u8282\u70B9\uFF0C\u4E0A\u65B9\u5207\u5230\u300C\u56FE\u8C31\u300D\u5373\u53EF\u67E5\u770B\u5B8C\u6574\u5B9E\u4F53\u5173\u7CFB\u56FE\u3002")
|
|
4646
4576
|
] })
|
|
4647
4577
|
] }),
|
|
4648
4578
|
model && /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: hb.obsBar, children: [
|
|
4649
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("button", { type: "button", style: hb.obsHead, onClick: () => setModelOpen((v) => !v), "aria-expanded": modelOpen, "aria-label": "\u5207\u6362\u5E38\u9A7B\u6458\u8981", children: [
|
|
4650
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.
|
|
4651
|
-
|
|
4652
|
-
String(model.ws || "\u5168\u90E8\u5DE5\u4F5C\u533A").replace(/^.*[\\/]/, "") || "\u5168\u90E8"
|
|
4653
|
-
] }),
|
|
4654
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("span", { style: hb.obsMeta, children: [
|
|
4655
|
-
"\u751F\u6210\u4E8E ",
|
|
4656
|
-
Math.max(0, Math.floor((Date.now() - model.generated_at) / 6e4)),
|
|
4657
|
-
" \u5206\u949F\u524D ",
|
|
4658
|
-
modelOpen ? "\u25BE" : "\u25B8"
|
|
4659
|
-
] })
|
|
4579
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("button", { type: "button", style: hb.obsHead, onClick: () => setModelOpen((v) => !v), "aria-expanded": modelOpen, "aria-label": tr("\u5207\u6362\u5E38\u9A7B\u6458\u8981"), children: [
|
|
4580
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { style: hb.partitionTagEsr, children: tr("\u5E38\u9A7B\u6458\u8981 \xB7 {0}", { "0": String(model.ws || tr("\u5168\u90E8\u5DE5\u4F5C\u533A")).replace(/^.*[\\/]/, "") || tr("\u5168\u90E8") }) }),
|
|
4581
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { style: hb.obsMeta, children: tr("\u751F\u6210\u4E8E {0} \u5206\u949F\u524D {1}", { "0": Math.max(0, Math.floor((Date.now() - model.generated_at) / 6e4)), "1": modelOpen ? "\u25BE" : "\u25B8" }) })
|
|
4660
4582
|
] }),
|
|
4661
4583
|
modelOpen && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { style: { ...hb.obsBody, whiteSpace: "pre-wrap", fontFamily: "monospace", fontSize: 11, lineHeight: "16px" }, children: model.content })
|
|
4662
4584
|
] }),
|
|
4663
4585
|
obsItems && obsItems.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: hb.obsBar, children: [
|
|
4664
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("button", { type: "button", style: hb.obsHead, onClick: () => setObsOpen((v) => !v), "aria-expanded": obsOpen, "aria-label": "\u5207\u6362\u89C2\u6D4B\u5217\u8868", children: [
|
|
4665
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.
|
|
4666
|
-
|
|
4667
|
-
obsItems.length
|
|
4668
|
-
] }),
|
|
4669
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("span", { style: hb.obsMeta, children: [
|
|
4670
|
-
"\u7D2F\u8BA1 ",
|
|
4671
|
-
obsItems.reduce((sum, o) => sum + (o.proof?.count ?? 0), 0),
|
|
4672
|
-
" \u6761\u8BC1\u636E \xB7 ",
|
|
4673
|
-
TREND_LABEL[obsItems[0]?.trend ?? "new"],
|
|
4674
|
-
" ",
|
|
4675
|
-
obsOpen ? "\u25BE" : "\u25B8"
|
|
4676
|
-
] })
|
|
4586
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("button", { type: "button", style: hb.obsHead, onClick: () => setObsOpen((v) => !v), "aria-expanded": obsOpen, "aria-label": tr("\u5207\u6362\u89C2\u6D4B\u5217\u8868"), children: [
|
|
4587
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { style: hb.partitionTagEsr, children: tr("\u89C2\u6D4B \xB7 \u4FE1\u5FF5 {0}", { "0": obsItems.length }) }),
|
|
4588
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { style: hb.obsMeta, children: tr("\u7D2F\u8BA1 {0} \u6761\u8BC1\u636E \xB7 {1} {2}", { "0": obsItems.reduce((sum, o) => sum + (o.proof?.count ?? 0), 0), "1": trendLabel(obsItems[0]?.trend ?? "new"), "2": obsOpen ? "\u25BE" : "\u25B8" }) })
|
|
4677
4589
|
] }),
|
|
4678
|
-
obsOpen && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { style: hb.obsBody, children: obsItems.slice(0, 20).map((o) => /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: hb.obsRow, title:
|
|
4590
|
+
obsOpen && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { style: hb.obsBody, children: obsItems.slice(0, 20).map((o) => /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: hb.obsRow, title: tr("\u8BC1\u636E {0} \u6761\uFF1A{1}", { "0": o.proof.count, "1": (o.proof.sources ?? []).join(", ") }), children: [
|
|
4679
4591
|
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("span", { children: [
|
|
4680
4592
|
(o.negations ?? 0) > 0 ? "\xAC " : "",
|
|
4681
4593
|
o.text
|
|
@@ -4684,49 +4596,45 @@ function EngramBoard({ api, onRequestClose }) {
|
|
|
4684
4596
|
"\xD7",
|
|
4685
4597
|
o.proof.count,
|
|
4686
4598
|
" \xB7 ",
|
|
4687
|
-
|
|
4688
|
-
(o.negations ?? 0) > 0 ?
|
|
4599
|
+
trendLabel(o.trend),
|
|
4600
|
+
(o.negations ?? 0) > 0 ? tr(" \xB7 \u53CD\u8BC1{0}", { "0": o.negations }) : ""
|
|
4689
4601
|
] })
|
|
4690
4602
|
] }, o.id)) })
|
|
4691
4603
|
] }),
|
|
4692
4604
|
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: { padding: "0 14px" }, children: [
|
|
4693
|
-
denied && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { style: hb.warn, children: "ESR \u770B\u677F\u6570\u636E\u4E0D\u53EF\u8FBE\uFF08loopback-only \u5B88\u536B\uFF09\u2014 \u4EFB\u52A1/\u5173\u7CFB\u5C06\u65E0\u6CD5\u52A0\u8F7D\uFF1B\u8BF7\u901A\u8FC7\u672C\u673A\u8BBF\u95EE GUI\uFF0C\u6216\u653E\u5165\u53D7\u4FE1\u7F51\u7EDC\u8BBF\u95EE\u3002" }),
|
|
4605
|
+
denied && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { style: hb.warn, children: tr("ESR \u770B\u677F\u6570\u636E\u4E0D\u53EF\u8FBE\uFF08loopback-only \u5B88\u536B\uFF09\u2014 \u4EFB\u52A1/\u5173\u7CFB\u5C06\u65E0\u6CD5\u52A0\u8F7D\uFF1B\u8BF7\u901A\u8FC7\u672C\u673A\u8BBF\u95EE GUI\uFF0C\u6216\u653E\u5165\u53D7\u4FE1\u7F51\u7EDC\u8BBF\u95EE\u3002") }),
|
|
4694
4606
|
error && /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: hb.error, children: [
|
|
4695
4607
|
"\u26A0 ",
|
|
4696
4608
|
error
|
|
4697
4609
|
] }),
|
|
4698
4610
|
creating && /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: hb.createForm, children: [
|
|
4699
4611
|
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("select", { style: hb.select, value: newWs, onChange: (e) => setNewWs(e.target.value), children: [
|
|
4700
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("option", { value: "", children: "\u9009\u62E9\u5DE5\u4F5C\u533A\u2026" }),
|
|
4612
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("option", { value: "", children: tr("\u9009\u62E9\u5DE5\u4F5C\u533A\u2026") }),
|
|
4701
4613
|
workspaces.map(([w]) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("option", { value: w, children: w.replace(/^.*[\\/]/, "") }, w))
|
|
4702
4614
|
] }),
|
|
4703
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("input", { style: { ...hb.input, flex: "1 1 200px" }, placeholder: "\u4EFB\u52A1\u540D\u2026", value: newName, onChange: (e) => setNewName(e.target.value), onKeyDown: (e) => {
|
|
4615
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("input", { style: { ...hb.input, flex: "1 1 200px" }, placeholder: tr("\u4EFB\u52A1\u540D\u2026"), value: newName, onChange: (e) => setNewName(e.target.value), onKeyDown: (e) => {
|
|
4704
4616
|
if (e.key === "Enter") void submitCreate();
|
|
4705
4617
|
}, autoFocus: true }),
|
|
4706
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("input", { style: { ...hb.input, flex: "1 1 240px" }, placeholder: "\u8981\u4EA7\u51FA / \u6EE1\u8DB3\u4EC0\u4E48\uFF08\u53EF\u9009\uFF09", value: newDesc, onChange: (e) => setNewDesc(e.target.value) }),
|
|
4707
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("button", { type: "button", style: hb.btnSolid, disabled: busy || !newName.trim() || !(newWs || workspaces.length > 0), onClick: () => void submitCreate(), children: busy ? "\u2026" : "\u521B\u5EFA" }),
|
|
4708
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("button", { type: "button", style: hb.btn, onClick: () => setCreating(false), children: "\u53D6\u6D88" })
|
|
4618
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("input", { style: { ...hb.input, flex: "1 1 240px" }, placeholder: tr("\u8981\u4EA7\u51FA / \u6EE1\u8DB3\u4EC0\u4E48\uFF08\u53EF\u9009\uFF09"), value: newDesc, onChange: (e) => setNewDesc(e.target.value) }),
|
|
4619
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("button", { type: "button", style: hb.btnSolid, disabled: busy || !newName.trim() || !(newWs || workspaces.length > 0), onClick: () => void submitCreate(), children: busy ? "\u2026" : tr("\u521B\u5EFA") }),
|
|
4620
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("button", { type: "button", style: hb.btn, onClick: () => setCreating(false), children: tr("\u53D6\u6D88") })
|
|
4709
4621
|
] }),
|
|
4710
4622
|
bulkOpen && /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: hb.createForm, children: [
|
|
4711
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.
|
|
4712
|
-
|
|
4713
|
-
|
|
4714
|
-
|
|
4715
|
-
|
|
4716
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("input", { style: hb.input, placeholder: "\u4EA7\u7269 artifact\uFF08\u6587\u4EF6/PR/\u8DEF\u5F84\uFF09", value: bulkArtifact, onChange: (e) => setBulkArtifact(e.target.value) }),
|
|
4717
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("input", { style: hb.input, placeholder: "\u8BC4\u4F30 evaluation\uFF08\u6D4B\u8BD5/\u8BC4\u5BA1/\u5206\u6570\uFF09", value: bulkEval, onChange: (e) => setBulkEval(e.target.value) }),
|
|
4718
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("input", { style: hb.input, placeholder: "\u8BB0\u5FC6\u5F15\u7528 memory_refs\uFF08#id, \u9017\u53F7\u5206\u9694\uFF09", value: bulkRefs, onChange: (e) => setBulkRefs(e.target.value) }),
|
|
4719
|
-
bulkMsg && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { style: { fontSize: 11, color: bulkMsg.startsWith("\u6279\u91CF\u5B8C\u6210") ? "#059669" : "#b45309" }, children: bulkMsg }),
|
|
4623
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { style: { fontSize: 11, color: "var(--dsw-alias-label-tertiary, var(--dsh-color-muted, #6b7280))" }, children: tr("\u6279\u91CF\u95ED\u73AF {0} \u4E2A\u4EFB\u52A1 \u2014 \u4E09\u9879\u8BC1\u636E\u5E94\u7528\u5230\u6240\u6709\u9009\u4E2D\u9879\uFF08\u5355\u5361\u5DF2\u6709\u7684\u8BC1\u636E\u81EA\u52A8\u4FDD\u7559\uFF09", { "0": selectedIds.size }) }),
|
|
4624
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("input", { style: hb.input, placeholder: tr("\u4EA7\u7269 artifact\uFF08\u6587\u4EF6/PR/\u8DEF\u5F84\uFF09"), value: bulkArtifact, onChange: (e) => setBulkArtifact(e.target.value) }),
|
|
4625
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("input", { style: hb.input, placeholder: tr("\u8BC4\u4F30 evaluation\uFF08\u6D4B\u8BD5/\u8BC4\u5BA1/\u5206\u6570\uFF09"), value: bulkEval, onChange: (e) => setBulkEval(e.target.value) }),
|
|
4626
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("input", { style: hb.input, placeholder: tr("\u8BB0\u5FC6\u5F15\u7528 memory_refs\uFF08#id, \u9017\u53F7\u5206\u9694\uFF09"), value: bulkRefs, onChange: (e) => setBulkRefs(e.target.value) }),
|
|
4627
|
+
bulkMsg && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { style: { fontSize: 11, color: bulkMsg.startsWith(tr("\u6279\u91CF\u5B8C\u6210")) ? "#059669" : "#b45309" }, children: bulkMsg }),
|
|
4720
4628
|
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: { display: "flex", gap: 6 }, children: [
|
|
4721
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("button", { type: "button", style: hb.btnSolid, disabled: bulkBusy || selectedIds.size === 0, onClick: () => void closeSelected(), children: bulkBusy ? "\u2026" : "\u6309\u8BC1\u636E\u6279\u91CF\u95ED\u73AF" }),
|
|
4629
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("button", { type: "button", style: hb.btnSolid, disabled: bulkBusy || selectedIds.size === 0, onClick: () => void closeSelected(), children: bulkBusy ? "\u2026" : tr("\u6309\u8BC1\u636E\u6279\u91CF\u95ED\u73AF") }),
|
|
4722
4630
|
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("button", { type: "button", style: hb.btn, onClick: () => {
|
|
4723
4631
|
setBulkOpen(false);
|
|
4724
4632
|
setBulkMsg(null);
|
|
4725
|
-
}, children: "\u53D6\u6D88" })
|
|
4633
|
+
}, children: tr("\u53D6\u6D88") })
|
|
4726
4634
|
] })
|
|
4727
4635
|
] })
|
|
4728
4636
|
] }),
|
|
4729
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { style: hb.columns, children:
|
|
4637
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { style: hb.columns, children: columns().map((col) => /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { "data-col": col.key, style: { ...hb.column, borderTop: `2px solid ${col.color}` }, children: [
|
|
4730
4638
|
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: hb.colHead, children: [
|
|
4731
4639
|
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { style: { fontWeight: 700, fontSize: 12.5 }, children: col.title }),
|
|
4732
4640
|
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { style: { ...hb.count, color: col.color, background: `${col.color}1f` }, children: columnCounts[col.key] })
|
|
@@ -4739,7 +4647,7 @@ function EngramBoard({ api, onRequestClose }) {
|
|
|
4739
4647
|
"input",
|
|
4740
4648
|
{
|
|
4741
4649
|
type: "checkbox",
|
|
4742
|
-
"aria-label":
|
|
4650
|
+
"aria-label": tr("\u9009\u62E9 {0}", { "0": t.name }),
|
|
4743
4651
|
checked: selectedIds.has(t.id),
|
|
4744
4652
|
disabled: col.key === "stable" || col.key === "draft",
|
|
4745
4653
|
onChange: () => toggleSelect(t.id),
|
|
@@ -4749,7 +4657,7 @@ function EngramBoard({ api, onRequestClose }) {
|
|
|
4749
4657
|
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { style: { ...hb.state, background: col.color }, children: col.key === "stable" ? "\u2713" : "\u25CF" }),
|
|
4750
4658
|
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
4751
4659
|
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { style: { fontWeight: 600, fontSize: 12.5, lineHeight: "17px", overflowWrap: "anywhere" }, children: t.name }),
|
|
4752
|
-
t.summary && /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: hb.compacted, title: "\u5DF2\u538B\u7F29 \xB7 \u539F\u6587\u4FDD\u7559\u5728\u5FEB\u7167\u4E2D\uFF08\u53EF\u56DE\u770B\uFF09", children: [
|
|
4660
|
+
t.summary && /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: hb.compacted, title: tr("\u5DF2\u538B\u7F29 \xB7 \u539F\u6587\u4FDD\u7559\u5728\u5FEB\u7167\u4E2D\uFF08\u53EF\u56DE\u770B\uFF09"), children: [
|
|
4753
4661
|
"\u{1F5DC} ",
|
|
4754
4662
|
t.summary
|
|
4755
4663
|
] }),
|
|
@@ -4766,7 +4674,7 @@ function EngramBoard({ api, onRequestClose }) {
|
|
|
4766
4674
|
),
|
|
4767
4675
|
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { style: hb.meta, children: shortId(t.id) }),
|
|
4768
4676
|
ws === "" && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { style: hb.meta, children: t.workspace.replace(/^.*[\\/]/, "") }),
|
|
4769
|
-
blockedBy(t, allTasks) > 0 && /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("span", { style: hb.lock, title:
|
|
4677
|
+
blockedBy(t, allTasks) > 0 && /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("span", { style: hb.lock, title: tr("\u88AB {0} \u4E2A\u672A\u95ED\u73AF\u4EFB\u52A1\u963B\u585E\uFF0C\u5148\u5B8C\u6210\u5B83\u4EEC\u7684 deps", { "0": blockedBy(t, allTasks) }), children: [
|
|
4770
4678
|
"\u{1F512} ",
|
|
4771
4679
|
blockedBy(t, allTasks)
|
|
4772
4680
|
] }),
|
|
@@ -4790,45 +4698,47 @@ function EngramBoard({ api, onRequestClose }) {
|
|
|
4790
4698
|
] })
|
|
4791
4699
|
] })
|
|
4792
4700
|
] }),
|
|
4793
|
-
col.key === "draft" && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { style: hb.cardHint, children: "\u8349\u7A3F \xB7 \u7528 esr_task \u53EF\u5C06\u5176\u63A8\u8FDB\u4E3A active" }),
|
|
4701
|
+
col.key === "draft" && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { style: hb.cardHint, children: tr("\u8349\u7A3F \xB7 \u7528 esr_task \u53EF\u5C06\u5176\u63A8\u8FDB\u4E3A active") }),
|
|
4794
4702
|
(col.key === "gapped" || col.key === "ready") && closingFor === t.id ? /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: { ...hb.closeForm, borderColor: col.color }, children: [
|
|
4795
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("input", { style: hb.input, placeholder: "\u4EA7\u7269 artifact\uFF08\u6587\u4EF6/PR/\u8DEF\uFF09", value: closeArtifact, onChange: (e) => setCloseArtifact(e.target.value) }),
|
|
4796
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("input", { style: hb.input, placeholder: "\u8BC4\u4F30 evaluation\uFF08\u6D4B\u8BD5/\u8BC4\u5BA1/\u5206\u6570\uFF09", value: closeEval, onChange: (e) => setCloseEval(e.target.value) }),
|
|
4797
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("input", { style: hb.input, placeholder: "\u8BB0\u5FC6\u5F15\u7528 memory_refs\uFF08#id, \u9017\u53F7\u5206\u9694\uFF09", value: closeRefs, onChange: (e) => setCloseRefs(e.target.value) }),
|
|
4703
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("input", { style: hb.input, placeholder: tr("\u4EA7\u7269 artifact\uFF08\u6587\u4EF6/PR/\u8DEF\uFF09"), value: closeArtifact, onChange: (e) => setCloseArtifact(e.target.value) }),
|
|
4704
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("input", { style: hb.input, placeholder: tr("\u8BC4\u4F30 evaluation\uFF08\u6D4B\u8BD5/\u8BC4\u5BA1/\u5206\u6570\uFF09"), value: closeEval, onChange: (e) => setCloseEval(e.target.value) }),
|
|
4705
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("input", { style: hb.input, placeholder: tr("\u8BB0\u5FC6\u5F15\u7528 memory_refs\uFF08#id, \u9017\u53F7\u5206\u9694\uFF09"), value: closeRefs, onChange: (e) => setCloseRefs(e.target.value) }),
|
|
4798
4706
|
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: { display: "flex", gap: 6 }, children: [
|
|
4799
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("button", { type: "button", style: hb.btnSolid, disabled: busy, onClick: () => void submitClose(t), children: busy ? "\u2026" : "\u6309\u8BC1\u636E\u95ED\u73AF" }),
|
|
4800
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("button", { type: "button", style: hb.btn, onClick: () => setClosingFor(null), children: "\u53D6\u6D88" })
|
|
4707
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("button", { type: "button", style: hb.btnSolid, disabled: busy, onClick: () => void submitClose(t), children: busy ? "\u2026" : tr("\u6309\u8BC1\u636E\u95ED\u73AF") }),
|
|
4708
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("button", { type: "button", style: hb.btn, onClick: () => setClosingFor(null), children: tr("\u53D6\u6D88") })
|
|
4801
4709
|
] })
|
|
4802
4710
|
] }) : (col.key === "gapped" || col.key === "ready") && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("button", { type: "button", style: hb.advance, onClick: () => {
|
|
4803
4711
|
setClosingFor(t.id);
|
|
4804
|
-
}, children: "\u8865\u9F50\u8BC1\u636E \u2192 \u5173\u95ED" })
|
|
4712
|
+
}, children: tr("\u8865\u9F50\u8BC1\u636E \u2192 \u5173\u95ED") })
|
|
4805
4713
|
] }, t.id)),
|
|
4806
4714
|
filtered.filter(col.match).length > 20 && /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: hb.more, children: [
|
|
4807
4715
|
"+",
|
|
4808
4716
|
filtered.filter(col.match).length - 20,
|
|
4809
|
-
"
|
|
4717
|
+
" ",
|
|
4718
|
+
tr(" \u66F4\u591A\u2026")
|
|
4810
4719
|
] }),
|
|
4811
|
-
filtered.filter(col.match).length === 0 && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { style: hb.empty, children: col.key === "stable" ? "\u8FD8\u6CA1\u6709\u95ED\u73AF\u4EFB\u52A1" : "\u6682\u65E0\u4EFB\u52A1" })
|
|
4720
|
+
filtered.filter(col.match).length === 0 && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { style: hb.empty, children: col.key === "stable" ? tr("\u8FD8\u6CA1\u6709\u95ED\u73AF\u4EFB\u52A1") : tr("\u6682\u65E0\u4EFB\u52A1") })
|
|
4812
4721
|
] })
|
|
4813
4722
|
] }, col.key)) })
|
|
4814
4723
|
] }) : /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: hb.graphWrap, children: [
|
|
4815
|
-
denied && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { style: hb.warn, children: "ESR \u770B\u677F\u6570\u636E\u4E0D\u53EF\u8FBE\uFF08loopback-only \u5B88\u536B\uFF09\u2014 \u4EFB\u52A1/\u5173\u7CFB/\u56FE\u8C31\u5C06\u65E0\u6CD5\u52A0\u8F7D\uFF1B\u8BF7\u901A\u8FC7\u672C\u673A\u8BBF\u95EE GUI\uFF0C\u6216\u653E\u5165\u53D7\u4FE1\u7F51\u7EDC\u8BBF\u95EE\u3002" }),
|
|
4724
|
+
denied && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { style: hb.warn, children: tr("ESR \u770B\u677F\u6570\u636E\u4E0D\u53EF\u8FBE\uFF08loopback-only \u5B88\u536B\uFF09\u2014 \u4EFB\u52A1/\u5173\u7CFB/\u56FE\u8C31\u5C06\u65E0\u6CD5\u52A0\u8F7D\uFF1B\u8BF7\u901A\u8FC7\u672C\u673A\u8BBF\u95EE GUI\uFF0C\u6216\u653E\u5165\u53D7\u4FE1\u7F51\u7EDC\u8BBF\u95EE\u3002") }),
|
|
4816
4725
|
error && /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: hb.error, children: [
|
|
4817
4726
|
"\u26A0 ",
|
|
4818
4727
|
error
|
|
4819
4728
|
] }),
|
|
4820
4729
|
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: hb.graphPanel, children: [
|
|
4821
4730
|
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { style: hb.graphHead, children: [
|
|
4822
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { style: { fontWeight: 700, fontSize: 13 }, children: "\u5173\u7CFB\u56FE\u8C31\uFF08esr_node / esr_link \u529B\u5BFC\u5411\u56FE\uFF09" }),
|
|
4731
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { style: { fontWeight: 700, fontSize: 13 }, children: tr("\u5173\u7CFB\u56FE\u8C31\uFF08esr_node / esr_link \u529B\u5BFC\u5411\u56FE\uFF09") }),
|
|
4823
4732
|
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("span", { style: { fontSize: 11.5, fontWeight: 400, color: "var(--dsw-alias-label-tertiary, var(--dsh-color-muted, #6b7280))" }, children: [
|
|
4824
|
-
ws === "" ? "\u5168\u90E8\u5DE5\u4F5C\u533A" : ws.replace(/^.*[\\/]/, ""),
|
|
4825
|
-
"
|
|
4733
|
+
ws === "" ? tr("\u5168\u90E8\u5DE5\u4F5C\u533A") : ws.replace(/^.*[\\/]/, ""),
|
|
4734
|
+
" ",
|
|
4735
|
+
tr(" \xB7 \u5B9E\u4F53\u4E3A\u5706\u5F62\u8282\u70B9\uFF0C\u4EFB\u52A1\u4E3A\u52FE\u9009\u5FBD\u6807\uFF1B\u70B9\u9009\u8282\u70B9\u67E5\u770B\u5173\u7CFB\u660E\u7EC6")
|
|
4826
4736
|
] })
|
|
4827
4737
|
] }),
|
|
4828
4738
|
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(EngramGraph, { workspace: ws, entities: allNodes, tasks: allTasks, links: allLinks, nameOf })
|
|
4829
4739
|
] })
|
|
4830
4740
|
] }),
|
|
4831
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { style: hb.footer, children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { children: viewMode === "board" ?
|
|
4741
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { style: hb.footer, children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { children: viewMode === "board" ? tr("{0} \u4E2A\u4EFB\u52A1\uFF08\u5F53\u524D\u7B5B\u9009\uFF09\xB7 \u6BCF 20s \u81EA\u52A8\u5237\u65B0 \xB7 \u6570\u636E\u6E90 ~/.dsh/storages/dsh_engram.json", { "0": columnCounts.all }) : tr("{0} \u4E2A\u5B9E\u4F53 \xB7 {1} \u6761\u5173\u7CFB \xB7 {2} \u4E2A\u4EFB\u52A1 \xB7 \u6BCF 20s \u81EA\u52A8\u5237\u65B0 \xB7 \u6570\u636E\u6E90 ~/.dsh/storages/dsh_engram.json", { "0": allNodes.length, "1": allLinks.length, "2": allTasks.length }) }) })
|
|
4832
4742
|
] });
|
|
4833
4743
|
}
|
|
4834
4744
|
var hb = {
|
|
@@ -5205,7 +5115,7 @@ function newSessionButton(root) {
|
|
|
5205
5115
|
function centerColumn() {
|
|
5206
5116
|
return document.querySelector(CENTER_COLUMN_SELECTOR) ?? void 0;
|
|
5207
5117
|
}
|
|
5208
|
-
function mountEngramBoard(api) {
|
|
5118
|
+
function mountEngramBoard(api, subscribeLocale) {
|
|
5209
5119
|
ensureBoardStyles();
|
|
5210
5120
|
if (typeof document === "undefined") return () => {
|
|
5211
5121
|
};
|
|
@@ -5214,6 +5124,7 @@ function mountEngramBoard(api) {
|
|
|
5214
5124
|
let container;
|
|
5215
5125
|
let entry;
|
|
5216
5126
|
let boardUnmounted = false;
|
|
5127
|
+
let lastTotal = 0;
|
|
5217
5128
|
const close = () => {
|
|
5218
5129
|
if (!open) return;
|
|
5219
5130
|
open = false;
|
|
@@ -5227,12 +5138,13 @@ function mountEngramBoard(api) {
|
|
|
5227
5138
|
document.dispatchEvent(new CustomEvent(ACTIVATE_EVENT, { detail: PANEL_NAME }));
|
|
5228
5139
|
};
|
|
5229
5140
|
const toggle = () => open ? close() : openPanel();
|
|
5141
|
+
const entryLabel = () => tr("ESR \u770B\u677F");
|
|
5230
5142
|
const createEntryRow = () => {
|
|
5231
5143
|
const row = document.createElement("button");
|
|
5232
5144
|
row.type = "button";
|
|
5233
5145
|
row.dataset.dshEngramEntry = "";
|
|
5234
|
-
row.setAttribute("aria-label",
|
|
5235
|
-
row.innerHTML = `<span style="display:inline-flex;flex:0 0 auto;color:var(--dsw-alias-label-primary-bluish,#4338ca);">${ICON}</span><span class="engram-entry-label"
|
|
5146
|
+
row.setAttribute("aria-label", entryLabel());
|
|
5147
|
+
row.innerHTML = `<span style="display:inline-flex;flex:0 0 auto;color:var(--dsw-alias-label-primary-bluish,#4338ca);">${ICON}</span><span class="engram-entry-label"></span><span class="engram-entry-badge">0</span>`;
|
|
5236
5148
|
row.addEventListener("click", (e) => {
|
|
5237
5149
|
e.stopPropagation();
|
|
5238
5150
|
toggle();
|
|
@@ -5240,6 +5152,14 @@ function mountEngramBoard(api) {
|
|
|
5240
5152
|
return row;
|
|
5241
5153
|
};
|
|
5242
5154
|
entry = createEntryRow();
|
|
5155
|
+
const refreshEntryText = () => {
|
|
5156
|
+
if (entry === void 0) return;
|
|
5157
|
+
entry.setAttribute("aria-label", entryLabel());
|
|
5158
|
+
const label = entry.querySelector(".engram-entry-label");
|
|
5159
|
+
if (label !== null) label.textContent = entryLabel();
|
|
5160
|
+
entry.title = tr("ESR \u770B\u677F \xB7 {0} \u4E2A\u8FDB\u884C\u4E2D\u4EFB\u52A1", { "0": lastTotal });
|
|
5161
|
+
};
|
|
5162
|
+
refreshEntryText();
|
|
5243
5163
|
const placeEntry = (rootEl) => {
|
|
5244
5164
|
const button = newSessionButton(rootEl);
|
|
5245
5165
|
if (button === void 0) return false;
|
|
@@ -5282,12 +5202,12 @@ function mountEngramBoard(api) {
|
|
|
5282
5202
|
if (!entry || !entry.isConnected) return;
|
|
5283
5203
|
try {
|
|
5284
5204
|
const ov = await api.overview();
|
|
5285
|
-
|
|
5205
|
+
lastTotal = Object.values(ov.workspaces).reduce((a, w) => a + (w.tasks ?? 0), 0);
|
|
5286
5206
|
const badge = entry.querySelector(".engram-entry-badge");
|
|
5287
5207
|
if (badge) {
|
|
5288
|
-
badge.textContent = String(
|
|
5289
|
-
entry.toggleAttribute("data-dsh-engram-idle",
|
|
5290
|
-
entry.title =
|
|
5208
|
+
badge.textContent = String(lastTotal);
|
|
5209
|
+
entry.toggleAttribute("data-dsh-engram-idle", lastTotal === 0);
|
|
5210
|
+
entry.title = tr("ESR \u770B\u677F \xB7 {0} \u4E2A\u8FDB\u884C\u4E2D\u4EFB\u52A1", { "0": lastTotal });
|
|
5291
5211
|
}
|
|
5292
5212
|
} catch {
|
|
5293
5213
|
entry.toggleAttribute("data-dsh-engram-idle", true);
|
|
@@ -5303,11 +5223,18 @@ function mountEngramBoard(api) {
|
|
|
5303
5223
|
container.dataset.dshEngramBoard = "";
|
|
5304
5224
|
column.appendChild(container);
|
|
5305
5225
|
root = (0, import_client.createRoot)(container);
|
|
5306
|
-
|
|
5226
|
+
renderBoard();
|
|
5227
|
+
};
|
|
5228
|
+
const renderBoard = () => {
|
|
5229
|
+
root?.render(/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(EngramBoard, { api, onRequestClose: close }));
|
|
5307
5230
|
};
|
|
5308
5231
|
const boardWatcher = new MutationObserver(() => ensureContainer());
|
|
5309
5232
|
boardWatcher.observe(document.body, { childList: true, subtree: true });
|
|
5310
5233
|
ensureContainer();
|
|
5234
|
+
const offLocale = subscribeLocale?.(() => {
|
|
5235
|
+
refreshEntryText();
|
|
5236
|
+
renderBoard();
|
|
5237
|
+
});
|
|
5311
5238
|
const onOtherActivate = (event) => {
|
|
5312
5239
|
if (event.detail !== PANEL_NAME && open) close();
|
|
5313
5240
|
};
|
|
@@ -5320,6 +5247,7 @@ function mountEngramBoard(api) {
|
|
|
5320
5247
|
document.addEventListener("click", onClickSidebarRow, true);
|
|
5321
5248
|
return () => {
|
|
5322
5249
|
boardUnmounted = true;
|
|
5250
|
+
offLocale?.();
|
|
5323
5251
|
window.clearInterval(badgeTimer);
|
|
5324
5252
|
bodyObserver.disconnect();
|
|
5325
5253
|
boardWatcher.disconnect();
|
|
@@ -5335,6 +5263,467 @@ function mountEngramBoard(api) {
|
|
|
5335
5263
|
};
|
|
5336
5264
|
}
|
|
5337
5265
|
|
|
5266
|
+
// client/src/i18n/ru.ts
|
|
5267
|
+
var ru = {
|
|
5268
|
+
"nav": "\u041F\u0430\u043C\u044F\u0442\u044C Engram",
|
|
5269
|
+
"refresh": "\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C",
|
|
5270
|
+
"error": "\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C",
|
|
5271
|
+
"\u8349\u7A3F": "\u0427\u0435\u0440\u043D\u043E\u0432\u0438\u043A",
|
|
5272
|
+
"\u672A\u88AB\u6FC0\u6D3B": "\u041D\u0435 \u0430\u043A\u0442\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u043D\u0430",
|
|
5273
|
+
"\u8FDB\u884C\u4E2D": "\u0412 \u0440\u0430\u0431\u043E\u0442\u0435",
|
|
5274
|
+
"\u8BC1\u636E\u6709\u7F3A\u53E3": "\u041D\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u0434\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432",
|
|
5275
|
+
"\u5C31\u7EEA": "\u0413\u043E\u0442\u043E\u0432\u0430",
|
|
5276
|
+
"\u8BC1\u636E\u9F50\uFF0C\u53EF\u95ED\u73AF": "\u0414\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u0430 \u0441\u043E\u0431\u0440\u0430\u043D\u044B",
|
|
5277
|
+
"\u5DF2\u95ED\u73AF": "\u0417\u0430\u043A\u0440\u044B\u0442\u0430",
|
|
5278
|
+
"\u51ED\u636E\u9F50\u5907": "\u0412\u0441\u0435 \u0434\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u0430",
|
|
5279
|
+
"\u65B0": "\u041D\u043E\u0432\u043E\u0435",
|
|
5280
|
+
"\u589E\u5F3A": "\u0423\u0441\u0438\u043B\u0438\u0432\u0430\u0435\u0442\u0441\u044F",
|
|
5281
|
+
"\u7A33\u5B9A": "\u0421\u0442\u0430\u0431\u0438\u043B\u044C\u043D\u043E",
|
|
5282
|
+
"\u51CF\u5F31": "\u041E\u0441\u043B\u0430\u0431\u0435\u0432\u0430\u0435\u0442",
|
|
5283
|
+
"\u9648\u65E7": "\u0423\u0441\u0442\u0430\u0440\u0435\u043B\u043E",
|
|
5284
|
+
"Context GC\xB7\u4E3B\u673A": "Context GC \xB7 \u0445\u043E\u0441\u0442",
|
|
5285
|
+
"\u9ED8\u8BA4\u6458\u8981": "\u0421\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u043E\u0435 \u0440\u0435\u0437\u044E\u043C\u0435",
|
|
5286
|
+
"GC \u4E0D\u53EF\u7528": "GC \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D",
|
|
5287
|
+
"GC \u72B6\u6001\u2026": "\u0421\u0442\u0430\u0442\u0443\u0441 GC\u2026",
|
|
5288
|
+
"\xB7{0} \u9884\u8BBE": "\xB7{0} \u043F\u0440\u0435\u0441\u0435\u0442\u043E\u0432",
|
|
5289
|
+
"host \u5E73\u9762\uFF1A{0}\nweb \u5E73\u9762\uFF1A{1}\uFF08{2} \u4E2A\u9884\u8BBE\u5DF2\u63A5\u7BA1\uFF09\n\u5173\u6389\u81EA\u52A8\u88C5\u914D\u89C1\u8BBE\u7F6E\u5361\u300Cweb \u9762\u81EA\u52A8\u542F\u7528 Context GC\u300D\uFF1B\u8FD8\u539F\u7528 npx dsh-engram revert": "\u041F\u043B\u043E\u0441\u043A\u043E\u0441\u0442\u044C host: {0}\n\u041F\u043B\u043E\u0441\u043A\u043E\u0441\u0442\u044C web: {1} ({2} \u043F\u0440\u0435\u0441\u0435\u0442\u043E\u0432 \u043F\u0435\u0440\u0435\u0445\u0432\u0430\u0447\u0435\u043D\u043E)\n\u041E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0430\u0432\u0442\u043E\u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u2014 \u0432 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A \xAB\u0410\u0432\u0442\u043E\u0432\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 Context GC \u043D\u0430 web-\u043F\u043B\u043E\u0441\u043A\u043E\u0441\u0442\u0438\xBB; \u043E\u0442\u043A\u0430\u0442: npx dsh-engram revert",
|
|
5290
|
+
"\u6279\u91CF\u5B8C\u6210\uFF1A{0} \u4E2A\u4EFB\u52A1\u5DF2\u95ED\u73AF{1}": "\u041C\u0430\u0441\u0441\u043E\u0432\u043E\u0435 \u0437\u0430\u043A\u0440\u044B\u0442\u0438\u0435: \u0437\u0430\u043A\u0440\u044B\u0442\u043E \u0437\u0430\u0434\u0430\u0447 \u2014 {0}{1}",
|
|
5291
|
+
" \xB7 {0} \u4E2A\u672A\u8FBE\u8BC1\u636E\u95E8\uFF08\u89C1\u5355\u5361\u8868\u5355\u8865\uFF09": " \xB7 \u043D\u0435 \u043F\u0440\u043E\u0448\u043B\u0438 \u0432\u043E\u0440\u043E\u0442\u0430 \u0434\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432: {0} (\u0434\u043E\u0437\u0430\u043F\u043E\u043B\u043D\u0438\u0442\u0435 \u0432 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0435)",
|
|
5292
|
+
"\u672A\u95ED\u73AF\uFF1A{0} \u4E2A\u672A\u8FBE\u8BC1\u636E\u95E8\uFF08\u89C1\u5355\u5361\u8868\u5355\u8865\uFF09": "\u041D\u0435 \u0437\u0430\u043A\u0440\u044B\u0442\u043E: {0} \u043D\u0435 \u043F\u0440\u043E\u0448\u043B\u0438 \u0432\u043E\u0440\u043E\u0442\u0430 \u0434\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432 (\u0434\u043E\u0437\u0430\u043F\u043E\u043B\u043D\u0438\u0442\u0435 \u0432 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0435)",
|
|
5293
|
+
"\u8BC1\u636E\u4ECD\u6709\u7F3A\u53E3\uFF1A{0}{1} \u2014 \u4EFB\u52A1\u4FDD\u6301 ACTIVE": "\u0414\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432 \u0432\u0441\u0451 \u0435\u0449\u0451 \u043D\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442: {0}{1} \u2014 \u0437\u0430\u0434\u0430\u0447\u0430 \u043E\u0441\u0442\u0430\u0451\u0442\u0441\u044F ACTIVE",
|
|
5294
|
+
"ESR \u4EFB\u52A1\u770B\u677F": "\u0414\u043E\u0441\u043A\u0430 \u0437\u0430\u0434\u0430\u0447 ESR",
|
|
5295
|
+
"draft \u2192 active(\u8BC1\u636E) \u2192 stable \xB7 \u8DE8\u5DE5\u4F5C\u533A \xB7 \u4E0E esr_task/esr_close \u540C\u4E00\u8BC1\u636E\u95E8": "draft \u2192 active (\u0434\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u0430) \u2192 stable \xB7 \u043C\u0435\u0436\u0434\u0443 \u0440\u0430\u0431\u043E\u0447\u0438\u043C\u0438 \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u0430\u043C\u0438 \xB7 \u0442\u0435 \u0436\u0435 \u0432\u043E\u0440\u043E\u0442\u0430 \u0434\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432, \u0447\u0442\u043E \u0443 esr_task/esr_close",
|
|
5296
|
+
"\u4EC5 ESR \xB7 \u4F1A\u8BDD\u5185 todo \u89C1\u8F93\u5165\u6846\u4E0A\u65B9\u4EFB\u52A1\u6761": "\u0422\u043E\u043B\u044C\u043A\u043E ESR \xB7 todo \u0442\u0435\u043A\u0443\u0449\u0435\u0439 \u0441\u0435\u0441\u0441\u0438\u0438 \u2014 \u0432 \u043F\u043E\u043B\u043E\u0441\u0435 \u043D\u0430\u0434 \u043F\u043E\u043B\u0435\u043C \u0432\u0432\u043E\u0434\u0430",
|
|
5297
|
+
"\u56DB\u5217\u4EFB\u52A1\u770B\u677F": "\u0414\u043E\u0441\u043A\u0430 \u0437\u0430\u0434\u0430\u0447 \u0432 \u0447\u0435\u0442\u044B\u0440\u0435 \u043A\u043E\u043B\u043E\u043D\u043A\u0438",
|
|
5298
|
+
"\u770B\u677F": "\u0414\u043E\u0441\u043A\u0430",
|
|
5299
|
+
"\u5B9E\u4F53\u5173\u7CFB\u56FE\u8C31\uFF08esr_node / esr_link\uFF09": "\u0413\u0440\u0430\u0444 \u0441\u0432\u044F\u0437\u0435\u0439 \u0441\u0443\u0449\u043D\u043E\u0441\u0442\u0435\u0439 (esr_node / esr_link)",
|
|
5300
|
+
"\u56FE\u8C31": "\u0413\u0440\u0430\u0444",
|
|
5301
|
+
"\u8BC1\u636E\u5B8C\u5907\u5EA6 {0}% \xB7 {1}/{2} \u4E2A\u8FDB\u884C\u4E2D\u4EFB\u52A1\u8BC1\u636E\u9F50 \xB7 {3} \u5DF2\u95ED\u73AF": "\u0413\u043E\u0442\u043E\u0432\u043D\u043E\u0441\u0442\u044C \u0434\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432 {0}% \xB7 {1}/{2} \u0437\u0430\u0434\u0430\u0447 \u0432 \u0440\u0430\u0431\u043E\u0442\u0435 \u0441 \u043F\u043E\u043B\u043D\u044B\u043C\u0438 \u0434\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u0430\u043C\u0438 \xB7 \u0437\u0430\u043A\u0440\u044B\u0442\u043E: {3}",
|
|
5302
|
+
"\u65E0\u8FDB\u884C\u4E2D": "\u041D\u0435\u0442 \u0437\u0430\u0434\u0430\u0447 \u0432 \u0440\u0430\u0431\u043E\u0442\u0435",
|
|
5303
|
+
"{0} \u5C31\u7EEA \xB7 \u5B8C\u5907 {1}%": "{0} \u0433\u043E\u0442\u043E\u0432\u044B \xB7 \u043F\u043E\u043B\u043D\u043E\u0442\u0430 {1}%",
|
|
5304
|
+
"\u5DE5\u4F5C\u533A\u7B5B\u9009": "\u0424\u0438\u043B\u044C\u0442\u0440 \u043F\u043E \u0440\u0430\u0431\u043E\u0447\u0435\u043C\u0443 \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u0443",
|
|
5305
|
+
"\u5168\u90E8\u5DE5\u4F5C\u533A \xB7 {0} \u8FDB\u884C\u4E2D": "\u0412\u0441\u0435 \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u0430 \xB7 {0} \u0432 \u0440\u0430\u0431\u043E\u0442\u0435",
|
|
5306
|
+
" \u8FDB\u884C\u4E2D": " \u0432 \u0440\u0430\u0431\u043E\u0442\u0435",
|
|
5307
|
+
"\u641C\u7D22\u4EFB\u52A1\u2026": "\u041F\u043E\u0438\u0441\u043A \u0437\u0430\u0434\u0430\u0447\u2026",
|
|
5308
|
+
"\u6279\u91CF\u95ED\u73AF\uFF08{0}\uFF09": "\u041C\u0430\u0441\u0441\u043E\u0432\u043E\u0435 \u0437\u0430\u043A\u0440\u044B\u0442\u0438\u0435 ({0})",
|
|
5309
|
+
"\u5BFC\u51FA\u5F53\u524D\u7B5B\u9009\u4E3A markdown": "\u042D\u043A\u0441\u043F\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0442\u0435\u043A\u0443\u0449\u0438\u0439 \u0444\u0438\u043B\u044C\u0442\u0440 \u0432 Markdown",
|
|
5310
|
+
"\u5BFC\u51FA": "\u042D\u043A\u0441\u043F\u043E\u0440\u0442",
|
|
5311
|
+
"\uFF0B \u65B0\u5EFA": "\uFF0B \u0421\u043E\u0437\u0434\u0430\u0442\u044C",
|
|
5312
|
+
"\u5237\u65B0": "\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C",
|
|
5313
|
+
"\u5173\u95ED\u770B\u677F": "\u0417\u0430\u043A\u0440\u044B\u0442\u044C \u0434\u043E\u0441\u043A\u0443",
|
|
5314
|
+
"\u539F\u751F todo \xB7 \u4F1A\u8BDD\u5185": "\u0420\u043E\u0434\u043D\u043E\u0439 todo \xB7 \u0432 \u0441\u0435\u0441\u0441\u0438\u0438",
|
|
5315
|
+
"\u7531 todo_write \u9A71\u52A8\uFF0C\u968F\u4F1A\u8BDD\u7ED3\u675F\uFF0C\u4E0D\u8DE8\u4F1A\u8BDD\u4FDD\u7559\uFF1B\u8981\u957F\u671F\u6C89\u6DC0\u7684\u591A\u6B65\u5DE5\u4F5C\uFF0C\u8BF7\u7528": "\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442\u0441\u044F todo_write, \u0436\u0438\u0432\u0451\u0442 \u0434\u043E \u043A\u043E\u043D\u0446\u0430 \u0441\u0435\u0441\u0441\u0438\u0438 \u0438 \u043D\u0435 \u0441\u043E\u0445\u0440\u0430\u043D\u044F\u0435\u0442\u0441\u044F \u043C\u0435\u0436\u0434\u0443 \u0441\u0435\u0441\u0441\u0438\u044F\u043C\u0438. \u0414\u043B\u044F \u043C\u043D\u043E\u0433\u043E\u0448\u0430\u0433\u043E\u0432\u043E\u0439 \u0440\u0430\u0431\u043E\u0442\u044B, \u043A\u043E\u0442\u043E\u0440\u0443\u044E \u043D\u0443\u0436\u043D\u043E \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 ",
|
|
5316
|
+
" esr_task / \u672C\u677F\u300C\u65B0\u5EFA\u300D": " esr_task \u0438\u043B\u0438 \u043A\u043D\u043E\u043F\u043A\u0443 \xAB\u0421\u043E\u0437\u0434\u0430\u0442\u044C\xBB \u043D\u0430 \u0434\u043E\u0441\u043A\u0435",
|
|
5317
|
+
"\u5EFA\u4E3A ESR \u4EFB\u52A1\uFF08": ", \u0447\u0442\u043E\u0431\u044B \u0441\u043E\u0437\u0434\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 ESR (",
|
|
5318
|
+
"ESR \xB7 \u8DE8\u4F1A\u8BDD\u95ED\u73AF": "\u043A\u0440\u043E\u0441\u0441-\u0441\u0435\u0441\u0441\u0438\u043E\u043D\u043D\u043E\u0435 \u0437\u0430\u043A\u0440\u044B\u0442\u0438\u0435",
|
|
5319
|
+
"\uFF09\uFF0C\u95ED\u73AF\uFF08artifact + evaluation + memory_refs \u8BC1\u636E\u95E8\uFF09\u540E\u8FDB [ENGRAM]\u3002": "). \u041F\u043E\u0441\u043B\u0435 \u0437\u0430\u043A\u0440\u044B\u0442\u0438\u044F (\u0432\u043E\u0440\u043E\u0442\u0430: artifact + evaluation + memory_refs) \u043E\u043D\u0430 \u043F\u043E\u043F\u0430\u0434\u0451\u0442 \u0432 [ENGRAM].",
|
|
5320
|
+
"\u5B9E\u4F53\u5EFA\u6A21": "\u041C\u043E\u0434\u0435\u043B\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u0441\u0443\u0449\u043D\u043E\u0441\u0442\u0435\u0439",
|
|
5321
|
+
"\u8BE5\u8303\u56F4\u8FD8\u6CA1\u6709\u5B9E\u4F53\u56FE \u2014 \u7528 ": "\u0412 \u044D\u0442\u043E\u0439 \u043E\u0431\u043B\u0430\u0441\u0442\u0438 \u0435\u0449\u0451 \u043D\u0435\u0442 \u0433\u0440\u0430\u0444\u0430 \u0441\u0443\u0449\u043D\u043E\u0441\u0442\u0435\u0439 \u2014 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 ",
|
|
5322
|
+
" \u5EFA\u6A21\u53CD\u590D\u51FA\u73B0\u7684\u9886\u57DF\u5BF9\u8C61\uFF08\u5305/\u670D\u52A1/\u6587\u6863/\u6982\u5FF5\uFF09\uFF0C \u518D\u7528 ": ", \u0447\u0442\u043E\u0431\u044B \u0441\u043C\u043E\u0434\u0435\u043B\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u044E\u0449\u0438\u0435\u0441\u044F \u043E\u0431\u044A\u0435\u043A\u0442\u044B (\u043F\u0430\u043A\u0435\u0442\u044B/\u0441\u0435\u0440\u0432\u0438\u0441\u044B/\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u044B/\u043A\u043E\u043D\u0446\u0435\u043F\u0446\u0438\u0438), \u0437\u0430\u0442\u0435\u043C ",
|
|
5323
|
+
" \u5173\u8054\u5230\u4EFB\u52A1\u4E0E\u8282\u70B9\uFF0C\u4E0A\u65B9\u5207\u5230\u300C\u56FE\u8C31\u300D\u5373\u53EF\u67E5\u770B\u5B8C\u6574\u5B9E\u4F53\u5173\u7CFB\u56FE\u3002": " \u0441\u0432\u044F\u0436\u0438\u0442\u0435 \u0438\u0445 \u0441 \u0437\u0430\u0434\u0430\u0447\u0430\u043C\u0438 \u0438 \u0443\u0437\u043B\u0430\u043C\u0438 \u0438 \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u0435\u0441\u044C \u043D\u0430 \xAB\u0413\u0440\u0430\u0444\xBB \u0432\u044B\u0448\u0435 \u2014 \u0442\u0430\u043C \u043F\u043E\u043B\u043D\u044B\u0439 \u0433\u0440\u0430\u0444 \u0441\u0432\u044F\u0437\u0435\u0439.",
|
|
5324
|
+
"\u5207\u6362\u5E38\u9A7B\u6458\u8981": "\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043F\u043E\u0441\u0442\u043E\u044F\u043D\u043D\u0443\u044E \u0441\u0432\u043E\u0434\u043A\u0443",
|
|
5325
|
+
"\u5E38\u9A7B\u6458\u8981 \xB7 {0}": "\u041F\u043E\u0441\u0442\u043E\u044F\u043D\u043D\u0430\u044F \u0441\u0432\u043E\u0434\u043A\u0430 \xB7 {0}",
|
|
5326
|
+
"\u5168\u90E8\u5DE5\u4F5C\u533A": "\u0412\u0441\u0435 \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u0430",
|
|
5327
|
+
"\u5168\u90E8": "\u0412\u0441\u0435",
|
|
5328
|
+
"\u751F\u6210\u4E8E {0} \u5206\u949F\u524D {1}": "\u0421\u043E\u0437\u0434\u0430\u043D\u043E {0} \u043C\u0438\u043D \u043D\u0430\u0437\u0430\u0434 {1}",
|
|
5329
|
+
"\u5207\u6362\u89C2\u6D4B\u5217\u8868": "\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0441\u043F\u0438\u0441\u043E\u043A \u043D\u0430\u0431\u043B\u044E\u0434\u0435\u043D\u0438\u0439",
|
|
5330
|
+
"\u89C2\u6D4B \xB7 \u4FE1\u5FF5 {0}": "\u041D\u0430\u0431\u043B\u044E\u0434\u0435\u043D\u0438\u044F \xB7 \u0443\u0431\u0435\u0436\u0434\u0435\u043D\u0438\u044F {0}",
|
|
5331
|
+
"\u7D2F\u8BA1 {0} \u6761\u8BC1\u636E \xB7 {1} {2}": "\u0412\u0441\u0435\u0433\u043E \u0434\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432: {0} \xB7 {1} {2}",
|
|
5332
|
+
"\u8BC1\u636E {0} \u6761\uFF1A{1}": "\u0414\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432: {0} \u2014 {1}",
|
|
5333
|
+
" \xB7 \u53CD\u8BC1{0}": " \xB7 \u043A\u043E\u043D\u0442\u0440\u0434\u043E\u0432\u043E\u0434\u043E\u0432: {0}",
|
|
5334
|
+
"ESR \u770B\u677F\u6570\u636E\u4E0D\u53EF\u8FBE\uFF08loopback-only \u5B88\u536B\uFF09\u2014 \u4EFB\u52A1/\u5173\u7CFB\u5C06\u65E0\u6CD5\u52A0\u8F7D\uFF1B\u8BF7\u901A\u8FC7\u672C\u673A\u8BBF\u95EE GUI\uFF0C\u6216\u653E\u5165\u53D7\u4FE1\u7F51\u7EDC\u8BBF\u95EE\u3002": "\u0414\u0430\u043D\u043D\u044B\u0435 \u0434\u043E\u0441\u043A\u0438 ESR \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B (\u0437\u0430\u0449\u0438\u0442\u0430 loopback-only) \u2014 \u0437\u0430\u0434\u0430\u0447\u0438 \u0438 \u0441\u0432\u044F\u0437\u0438 \u043D\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u044F\u0442\u0441\u044F; \u043E\u0442\u043A\u0440\u043E\u0439\u0442\u0435 GUI \u0441 \u044D\u0442\u043E\u0439 \u043C\u0430\u0448\u0438\u043D\u044B \u0438\u043B\u0438 \u0434\u043E\u0431\u0430\u0432\u044C\u0442\u0435 \u0445\u043E\u0441\u0442 \u0432 \u0434\u043E\u0432\u0435\u0440\u0435\u043D\u043D\u044B\u0435.",
|
|
5335
|
+
"\u9009\u62E9\u5DE5\u4F5C\u533A\u2026": "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0440\u0430\u0431\u043E\u0447\u0435\u0435 \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u043E\u2026",
|
|
5336
|
+
"\u4EFB\u52A1\u540D\u2026": "\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438\u2026",
|
|
5337
|
+
"\u8981\u4EA7\u51FA / \u6EE1\u8DB3\u4EC0\u4E48\uFF08\u53EF\u9009\uFF09": "\u0427\u0442\u043E \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u0441\u043E\u0437\u0434\u0430\u043D\u043E / \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043E (\u043D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E)",
|
|
5338
|
+
"\u521B\u5EFA": "\u0421\u043E\u0437\u0434\u0430\u0442\u044C",
|
|
5339
|
+
"\u53D6\u6D88": "\u041E\u0442\u043C\u0435\u043D\u0430",
|
|
5340
|
+
"\u6279\u91CF\u95ED\u73AF {0} \u4E2A\u4EFB\u52A1 \u2014 \u4E09\u9879\u8BC1\u636E\u5E94\u7528\u5230\u6240\u6709\u9009\u4E2D\u9879\uFF08\u5355\u5361\u5DF2\u6709\u7684\u8BC1\u636E\u81EA\u52A8\u4FDD\u7559\uFF09": "\u041C\u0430\u0441\u0441\u043E\u0432\u043E\u0435 \u0437\u0430\u043A\u0440\u044B\u0442\u0438\u0435: {0} \u0437\u0430\u0434\u0430\u0447 \u2014 \u0442\u0440\u0438 \u0434\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u0430 \u043F\u0440\u0438\u043C\u0435\u043D\u044F\u0442\u0441\u044F \u043A\u043E \u0432\u0441\u0435\u043C \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u043C (\u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D\u043D\u044B\u0435 \u0432 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0435 \u0441\u043E\u0445\u0440\u0430\u043D\u044F\u0442\u0441\u044F)",
|
|
5341
|
+
"\u4EA7\u7269 artifact\uFF08\u6587\u4EF6/PR/\u8DEF\u5F84\uFF09": "\u0410\u0440\u0442\u0435\u0444\u0430\u043A\u0442 artifact (\u0444\u0430\u0439\u043B/PR/\u043F\u0443\u0442\u044C)",
|
|
5342
|
+
"\u8BC4\u4F30 evaluation\uFF08\u6D4B\u8BD5/\u8BC4\u5BA1/\u5206\u6570\uFF09": "\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 evaluation (\u0442\u0435\u0441\u0442\u044B/\u0440\u0435\u0432\u044C\u044E/\u043E\u0446\u0435\u043D\u043A\u0430)",
|
|
5343
|
+
"\u8BB0\u5FC6\u5F15\u7528 memory_refs\uFF08#id, \u9017\u53F7\u5206\u9694\uFF09": "\u0421\u0441\u044B\u043B\u043A\u0438 \u043D\u0430 \u043F\u0430\u043C\u044F\u0442\u044C memory_refs (#id \u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u043F\u044F\u0442\u0443\u044E)",
|
|
5344
|
+
"\u6279\u91CF\u5B8C\u6210": "\u0417\u0430\u043A\u0440\u044B\u0442\u044C \u0432\u0441\u0435",
|
|
5345
|
+
"\u6309\u8BC1\u636E\u6279\u91CF\u95ED\u73AF": "\u0417\u0430\u043A\u0440\u044B\u0442\u044C \u0432\u0441\u0435 \u0441 \u0434\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u0430\u043C\u0438",
|
|
5346
|
+
"\u9009\u62E9 {0}": "\u0412\u044B\u0431\u0440\u0430\u0442\u044C {0}",
|
|
5347
|
+
"\u5DF2\u538B\u7F29 \xB7 \u539F\u6587\u4FDD\u7559\u5728\u5FEB\u7167\u4E2D\uFF08\u53EF\u56DE\u770B\uFF09": "\u0421\u0436\u0430\u0442\u043E \xB7 \u0438\u0441\u0445\u043E\u0434\u043D\u044B\u0439 \u0442\u0435\u043A\u0441\u0442 \u0441\u043E\u0445\u0440\u0430\u043D\u0451\u043D \u0432 \u0441\u043D\u0438\u043C\u043A\u0435 (\u043C\u043E\u0436\u043D\u043E \u043E\u0442\u043A\u0440\u044B\u0442\u044C)",
|
|
5348
|
+
"\u88AB {0} \u4E2A\u672A\u95ED\u73AF\u4EFB\u52A1\u963B\u585E\uFF0C\u5148\u5B8C\u6210\u5B83\u4EEC\u7684 deps": "\u0417\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D\u043E \u043D\u0435\u0437\u0430\u043A\u0440\u044B\u0442\u044B\u043C\u0438 \u0437\u0430\u0434\u0430\u0447\u0430\u043C\u0438: {0} \u2014 \u0441\u043D\u0430\u0447\u0430\u043B\u0430 \u0437\u0430\u043A\u0440\u043E\u0439\u0442\u0435 \u0438\u0445 deps",
|
|
5349
|
+
"\u8349\u7A3F \xB7 \u7528 esr_task \u53EF\u5C06\u5176\u63A8\u8FDB\u4E3A active": "\u0427\u0435\u0440\u043D\u043E\u0432\u0438\u043A \xB7 esr_task \u043F\u0435\u0440\u0435\u0432\u0435\u0434\u0451\u0442 \u0435\u0451 \u0432 active",
|
|
5350
|
+
"\u4EA7\u7269 artifact\uFF08\u6587\u4EF6/PR/\u8DEF\uFF09": "\u0410\u0440\u0442\u0435\u0444\u0430\u043A\u0442 artifact (\u0444\u0430\u0439\u043B/PR/\u043F\u0443\u0442\u044C)",
|
|
5351
|
+
"\u6309\u8BC1\u636E\u95ED\u73AF": "\u0417\u0430\u043A\u0440\u044B\u0442\u044C \u0441 \u0434\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u0430\u043C\u0438",
|
|
5352
|
+
"\u8865\u9F50\u8BC1\u636E \u2192 \u5173\u95ED": "\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0434\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u0430 \u2192 \u0437\u0430\u043A\u0440\u044B\u0442\u044C",
|
|
5353
|
+
" \u66F4\u591A\u2026": " \u0435\u0449\u0451\u2026",
|
|
5354
|
+
"\u8FD8\u6CA1\u6709\u95ED\u73AF\u4EFB\u52A1": "\u0417\u0430\u043A\u0440\u044B\u0442\u044B\u0445 \u0437\u0430\u0434\u0430\u0447 \u043F\u043E\u043A\u0430 \u043D\u0435\u0442",
|
|
5355
|
+
"\u6682\u65E0\u4EFB\u52A1": "\u0417\u0430\u0434\u0430\u0447 \u043F\u043E\u043A\u0430 \u043D\u0435\u0442",
|
|
5356
|
+
"ESR \u770B\u677F\u6570\u636E\u4E0D\u53EF\u8FBE\uFF08loopback-only \u5B88\u536B\uFF09\u2014 \u4EFB\u52A1/\u5173\u7CFB/\u56FE\u8C31\u5C06\u65E0\u6CD5\u52A0\u8F7D\uFF1B\u8BF7\u901A\u8FC7\u672C\u673A\u8BBF\u95EE GUI\uFF0C\u6216\u653E\u5165\u53D7\u4FE1\u7F51\u7EDC\u8BBF\u95EE\u3002": "\u0414\u0430\u043D\u043D\u044B\u0435 \u0434\u043E\u0441\u043A\u0438 ESR \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B (\u0437\u0430\u0449\u0438\u0442\u0430 loopback-only) \u2014 \u0437\u0430\u0434\u0430\u0447\u0438, \u0441\u0432\u044F\u0437\u0438 \u0438 \u0433\u0440\u0430\u0444 \u043D\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u044F\u0442\u0441\u044F; \u043E\u0442\u043A\u0440\u043E\u0439\u0442\u0435 GUI \u0441 \u044D\u0442\u043E\u0439 \u043C\u0430\u0448\u0438\u043D\u044B \u0438\u043B\u0438 \u0434\u043E\u0431\u0430\u0432\u044C\u0442\u0435 \u0445\u043E\u0441\u0442 \u0432 \u0434\u043E\u0432\u0435\u0440\u0435\u043D\u043D\u044B\u0435.",
|
|
5357
|
+
"\u5173\u7CFB\u56FE\u8C31\uFF08esr_node / esr_link \u529B\u5BFC\u5411\u56FE\uFF09": "\u0413\u0440\u0430\u0444 \u0441\u0432\u044F\u0437\u0435\u0439 (\u0441\u0438\u043B\u043E\u0432\u043E\u0439 \u0433\u0440\u0430\u0444 esr_node / esr_link)",
|
|
5358
|
+
" \xB7 \u5B9E\u4F53\u4E3A\u5706\u5F62\u8282\u70B9\uFF0C\u4EFB\u52A1\u4E3A\u52FE\u9009\u5FBD\u6807\uFF1B\u70B9\u9009\u8282\u70B9\u67E5\u770B\u5173\u7CFB\u660E\u7EC6": " \xB7 \u0441\u0443\u0449\u043D\u043E\u0441\u0442\u0438 \u2014 \u043A\u0440\u0443\u0433\u043B\u044B\u0435 \u0443\u0437\u043B\u044B, \u0437\u0430\u0434\u0430\u0447\u0438 \u2014 \u0431\u0435\u0439\u0434\u0436\u0438 \u0441 \u0433\u0430\u043B\u043E\u0447\u043A\u043E\u0439; \u0449\u0451\u043B\u043A\u043D\u0438\u0442\u0435 \u0443\u0437\u0435\u043B, \u0447\u0442\u043E\u0431\u044B \u0443\u0432\u0438\u0434\u0435\u0442\u044C \u0441\u0432\u044F\u0437\u0438",
|
|
5359
|
+
"{0} \u4E2A\u4EFB\u52A1\uFF08\u5F53\u524D\u7B5B\u9009\uFF09\xB7 \u6BCF 20s \u81EA\u52A8\u5237\u65B0 \xB7 \u6570\u636E\u6E90 ~/.dsh/storages/dsh_engram.json": "\u0417\u0430\u0434\u0430\u0447: {0} (\u0442\u0435\u043A\u0443\u0449\u0438\u0439 \u0444\u0438\u043B\u044C\u0442\u0440) \xB7 \u0430\u0432\u0442\u043E\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u043A\u0430\u0436\u0434\u044B\u0435 20 \u0441 \xB7 \u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A ~/.dsh/storages/dsh_engram.json",
|
|
5360
|
+
"{0} \u4E2A\u5B9E\u4F53 \xB7 {1} \u6761\u5173\u7CFB \xB7 {2} \u4E2A\u4EFB\u52A1 \xB7 \u6BCF 20s \u81EA\u52A8\u5237\u65B0 \xB7 \u6570\u636E\u6E90 ~/.dsh/storages/dsh_engram.json": "\u0421\u0443\u0449\u043D\u043E\u0441\u0442\u0435\u0439: {0} \xB7 \u0441\u0432\u044F\u0437\u0435\u0439: {1} \xB7 \u0437\u0430\u0434\u0430\u0447: {2} \xB7 \u0430\u0432\u0442\u043E\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u043A\u0430\u0436\u0434\u044B\u0435 20 \u0441 \xB7 \u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A ~/.dsh/storages/dsh_engram.json",
|
|
5361
|
+
"ESR \u770B\u677F": "\u0414\u043E\u0441\u043A\u0430 ESR",
|
|
5362
|
+
"ESR \u770B\u677F \xB7 {0} \u4E2A\u8FDB\u884C\u4E2D\u4EFB\u52A1": "\u0414\u043E\u0441\u043A\u0430 ESR \xB7 \u0437\u0430\u0434\u0430\u0447 \u0432 \u0440\u0430\u0431\u043E\u0442\u0435: {0}",
|
|
5363
|
+
"\u81EA\u52A8\u6355\u83B7": "\u0410\u0432\u0442\u043E\u0437\u0430\u0445\u0432\u0430\u0442",
|
|
5364
|
+
"\u96F6 LLM \u4ECE\u5DE5\u5177\u7ED3\u679C\u63D0\u53D6\u8BB0\u5FC6\uFF08git/\u5173\u952E\u6587\u4EF6/\u9519\u8BEF\uFF09": "\u0418\u0437\u0432\u043B\u0435\u0447\u0435\u043D\u0438\u0435 \u043F\u0430\u043C\u044F\u0442\u0438 \u0438\u0437 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u043E\u0432 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u0431\u0435\u0437 LLM (git / \u043A\u043B\u044E\u0447\u0435\u0432\u044B\u0435 \u0444\u0430\u0439\u043B\u044B / \u043E\u0448\u0438\u0431\u043A\u0438)",
|
|
5365
|
+
"\u504F\u597D\u6355\u83B7": "\u0417\u0430\u0445\u0432\u0430\u0442 \u043F\u0440\u0435\u0434\u043F\u043E\u0447\u0442\u0435\u043D\u0438\u0439",
|
|
5366
|
+
"\u7528\u6237\u7EA0\u6B63/\u504F\u597D\u5B66\u4E60\uFF1A\u68C0\u6D4B\u6D88\u606F\u91CC\u7684\u300C\u4E0D\u8981\u7528X/\u6539\u7528Y/prefer/never use\u300D\u53E5\u5F0F\uFF0C\u81EA\u52A8\u6C89\u6DC0\u4E3A preference \u8BB0\u5FC6\u5E76\u7F6E\u9876 [ENGRAM]\uFF08correx/PAHF \u5F0F\uFF0C\u96F6 LLM\uFF09": "\u041E\u0431\u0443\u0447\u0435\u043D\u0438\u0435 \u043D\u0430 \u043F\u0440\u0430\u0432\u043A\u0430\u0445 \u0438 \u043F\u0440\u0435\u0434\u043F\u043E\u0447\u0442\u0435\u043D\u0438\u044F\u0445: \u043D\u0430\u0445\u043E\u0434\u0438\u0442 \u0432 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F\u0445 \u043A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0446\u0438\u0438 \xAB\u043D\u0435 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439 X / \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439 Y / prefer / never use\xBB, \u0441\u043E\u0445\u0440\u0430\u043D\u044F\u0435\u0442 \u0438\u0445 \u043A\u0430\u043A \u043F\u0430\u043C\u044F\u0442\u044C \u0442\u0438\u043F\u0430 preference \u0438 \u0432\u044B\u0432\u043E\u0434\u0438\u0442 \u0432 \u043D\u0430\u0447\u0430\u043B\u043E [ENGRAM] (\u0432 \u0434\u0443\u0445\u0435 correx/PAHF, \u0431\u0435\u0437 LLM)",
|
|
5367
|
+
"\u8FB9\u754C\u526A\u679D": "\u041E\u0431\u0440\u0435\u0437\u043A\u0430 \u043D\u0430 \u0433\u0440\u0430\u043D\u0438\u0446\u0430\u0445",
|
|
5368
|
+
"ResultPack L1\uFF1Atodo \u5B8C\u6210/goal \u7EC8\u6001\u8FB9\u754C\u4E3B\u52A8\u526A\u6389\u8D85\u9608\u503C\u65E7\u5DE5\u5177\u7ED3\u679C\uFF08DSH \u786E\u5B9A\u6027 surface-replace\u3001\u507F\u8FD8\u95E8\u3001\u96F6 LLM\uFF1B\u9ED8\u8BA4\u5F00\uFF0C\u5173=opt-out\uFF09": "ResultPack L1: \u043D\u0430 \u0433\u0440\u0430\u043D\u0438\u0446\u0430\u0445 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F todo / \u0444\u0438\u043D\u0430\u043B\u044C\u043D\u043E\u0433\u043E goal \u043E\u0431\u0440\u0435\u0437\u0430\u0435\u0442 \u0441\u0442\u0430\u0440\u044B\u0435 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u044B \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u0441\u0432\u0435\u0440\u0445 \u043F\u043E\u0440\u043E\u0433\u0430 (\u0434\u0435\u0442\u0435\u0440\u043C\u0438\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0430\u044F \u0437\u0430\u043C\u0435\u043D\u0430 surface-replace \u0432 DSH, \u043F\u043E\u0440\u043E\u0433 \u043E\u043A\u0443\u043F\u0430\u0435\u043C\u043E\u0441\u0442\u0438, \u0431\u0435\u0437 LLM; \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u043E \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E, \u0432\u044B\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 = opt-out)",
|
|
5369
|
+
"\u526A\u679D\u81EA\u9002\u5E94": "\u0410\u0434\u0430\u043F\u0442\u0438\u0432\u043D\u0430\u044F \u043E\u0431\u0440\u0435\u0437\u043A\u0430",
|
|
5370
|
+
"\u8D26\u672C\u5426\u51B3\uFF1A\u8BE5 workspace \u771F\u5B9E\u526A\u679D\u540E\u51C0\u6536\u76CA\u4E3A\u8D1F\uFF08\u22653 \u6B21\uFF09\u65F6\u81EA\u52A8\u505C\u6B62\u7EE7\u7EED\u526A\uFF1B\u8BC1\u636E\u53EA\u80FD\u5173\u3001\u4E0D\u4F1A\u81EA\u884C\u5F00": "\u0412\u0435\u0442\u043E \u043F\u043E \u0436\u0443\u0440\u043D\u0430\u043B\u0443: \u0435\u0441\u043B\u0438 \u043F\u043E\u0441\u043B\u0435 \u0440\u0435\u0430\u043B\u044C\u043D\u043E\u0439 \u043E\u0431\u0440\u0435\u0437\u043A\u0438 \u0447\u0438\u0441\u0442\u044B\u0439 \u0432\u044B\u0438\u0433\u0440\u044B\u0448 \u0432 \u044D\u0442\u043E\u043C workspace \u043E\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043B\u0435\u043D (\u22653 \u0440\u0430\u0437), \u043E\u0431\u0440\u0435\u0437\u043A\u0430 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u043E\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0435\u0442\u0441\u044F; \u0434\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u0430 \u043C\u043E\u0433\u0443\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u0432\u044B\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0435\u0451, \u043D\u043E \u043D\u0435 \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0441\u0430\u043C\u0438",
|
|
5371
|
+
"\u526A\u679D\u9608\u503C(\u5B57\u7B26)": "\u041F\u043E\u0440\u043E\u0433 \u043E\u0431\u0440\u0435\u0437\u043A\u0438 (\u0441\u0438\u043C\u0432\u043E\u043B\u044B)",
|
|
5372
|
+
"\u8986\u76D6\u5BBF\u4E3B 8192\uFF1A\u8BBE 2048 \u53EF\u66F4\u65E9\u5F00\u526A\uFF0C\u5E76\u914D L2 \u5F52\u6863\u627E\u56DE\u88AB\u526A\u4E2D\u6BB5\uFF1B\u7559\u7A7A=\u5BBF\u4E3B\u9ED8\u8BA4\u3002\u5EFA\u8BAE\u540C\u65F6\u628A\u4FDD\u7559\u8FB9\u7F18\u8C03\u5C0F\uFF08\u5982 1024/256\uFF09\u4EE5\u83B7\u5F97\u6700\u5927\u8282\u7701": "\u041F\u0435\u0440\u0435\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442 \u043F\u043E\u0440\u043E\u0433 host 8192: \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440 2048 \u043D\u0430\u0447\u043D\u0451\u0442 \u043E\u0431\u0440\u0435\u0437\u0430\u0442\u044C \u0440\u0430\u043D\u044C\u0448\u0435 \u2014 \u0432 \u043F\u0430\u0440\u0435 \u0441 \u0430\u0440\u0445\u0438\u0432\u043E\u043C L2, \u0447\u0442\u043E\u0431\u044B \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044C \u0432\u044B\u0440\u0435\u0437\u0430\u043D\u043D\u0443\u044E \u0441\u0435\u0440\u0435\u0434\u0438\u043D\u0443. \u041F\u0443\u0441\u0442\u043E = \u043F\u043E\u0440\u043E\u0433 host. \u0420\u0435\u043A\u043E\u043C\u0435\u043D\u0434\u0443\u0435\u0442\u0441\u044F \u0443\u043C\u0435\u043D\u044C\u0448\u0438\u0442\u044C \u0438 \u043A\u0440\u0430\u044F (1024/256) \u0434\u043B\u044F \u043C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0439 \u044D\u043A\u043E\u043D\u043E\u043C\u0438\u0438",
|
|
5373
|
+
"\u7ED3\u679C\u5F52\u6863\u53EC\u56DE": "\u0410\u0440\u0445\u0438\u0432 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u043E\u0432",
|
|
5374
|
+
"ResultPack L2\uFF1A\u526A\u6389\u7684\u4E2D\u6BB5\u8131\u654F\u5F52\u6863\uFF0C\u8282\u70B9\u5C3E\u90E8\u9644 handle\uFF0C\u6A21\u578B\u53EF\u7528 result_recall(callId) \u6309\u9875\u53EC\u56DE\uFF08\u5B8C\u6574 ObservationPack\uFF1B\u9ED8\u8BA4\u5F00\uFF0C\u4FDD\u8BC1\u9ED8\u8BA4\u526A\u679D\u65E0\u635F\uFF1B\u9700\u4E0E\u8FB9\u754C\u526A\u679D\u4E00\u8D77\u5F00\uFF09": "ResultPack L2: \u0432\u044B\u0440\u0435\u0437\u0430\u043D\u043D\u0430\u044F \u0441\u0435\u0440\u0435\u0434\u0438\u043D\u0430 \u0434\u0435\u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u0443\u0435\u0442\u0441\u044F, \u0432 \u043A\u043E\u043D\u0446\u0435 \u0443\u0437\u043B\u0430 \u0434\u043E\u0431\u0430\u0432\u043B\u044F\u0435\u0442\u0441\u044F handle; \u043C\u043E\u0434\u0435\u043B\u044C \u043C\u043E\u0436\u0435\u0442 \u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0435\u0451 \u0447\u0435\u0440\u0435\u0437 result_recall(callId) (\u043F\u043E\u043B\u043D\u044B\u0439 ObservationPack; \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u043E \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E, \u0447\u0442\u043E\u0431\u044B \u043E\u0431\u0440\u0435\u0437\u043A\u0430 \u0431\u044B\u043B\u0430 \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0439; \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0432\u043A\u043B\u044E\u0447\u0451\u043D\u043D\u043E\u0439 \u043E\u0431\u0440\u0435\u0437\u043A\u0438 \u043D\u0430 \u0433\u0440\u0430\u043D\u0438\u0446\u0430\u0445)",
|
|
5375
|
+
"\u4F1A\u8BDD\u542F\u52A8\u81EA\u52A8\u53EC\u56DE": "\u0410\u0432\u0442\u043E\u043F\u043E\u0434\u0431\u043E\u0440 \u043F\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435 \u0441\u0435\u0441\u0441\u0438\u0438",
|
|
5376
|
+
"\u65B0\u4F1A\u8BDD\u6309\u9996\u6761\u6D88\u606F\u81EA\u52A8\u628A\u6700\u76F8\u5173\u8BB0\u5FC6\u6CE8\u5165 [RECALL] \u5757\uFF08\u65E0\u9700\u6A21\u578B\u60F3\u8D77\u8C03 engram_recall\uFF09\uFF1B\u5173\u6389=\u56DE\u5230\u7EAF\u62C9\u53D6": "\u041F\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435 \u043D\u043E\u0432\u043E\u0439 \u0441\u0435\u0441\u0441\u0438\u0438 \u043F\u043E \u043F\u0435\u0440\u0432\u043E\u043C\u0443 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044E \u0432\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u0442 \u0441\u0430\u043C\u044B\u0435 \u0440\u0435\u043B\u0435\u0432\u0430\u043D\u0442\u043D\u044B\u0435 \u0432\u043E\u0441\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F \u0432 \u0431\u043B\u043E\u043A [RECALL] (\u043C\u043E\u0434\u0435\u043B\u0438 \u043D\u0435 \u043D\u0443\u0436\u043D\u043E \u0432\u0441\u043F\u043E\u043C\u0438\u043D\u0430\u0442\u044C \u043F\u0440\u043E engram_recall); \u0432\u044B\u043A\u043B\u044E\u0447\u0435\u043D\u043E = \u0442\u043E\u043B\u044C\u043A\u043E \u0440\u0443\u0447\u043D\u043E\u0439 \u043F\u043E\u0434\u0431\u043E\u0440",
|
|
5377
|
+
"JIT \u63A8\u9001": "JIT-\u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u0438",
|
|
5378
|
+
"\u9519\u8BEF\u590D\u53D1 / \u6587\u4EF6\u7126\u70B9 / goal \u5B8C\u6210\u65F6\uFF0C\u628A\u5DF2\u6709\u8BB0\u5FC6\u538B\u6210\u4E00\u884C\u63A8\u8FDB\u4E0A\u4E0B\u6587\uFF08append-only\u3001\u6BCF\u4F1A\u8BDD\u22643 \u884C\u3001\u65E0\u547D\u4E2D\u6C89\u9ED8\uFF1B\u6BCF\u6B21\u63A8\u9001\u6309\u524D\u7F00\u91CD\u5199\u8BA1\u5165\u8D26\u672C\uFF09": "\u041F\u0440\u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u043D\u043E\u0439 \u043E\u0448\u0438\u0431\u043A\u0435 / \u0444\u043E\u043A\u0443\u0441\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B\u0435 / \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u0438 goal \u043F\u043E\u0434\u0442\u0430\u043B\u043A\u0438\u0432\u0430\u0435\u0442 \u0443\u0436\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043D\u0443\u044E \u043F\u0430\u043C\u044F\u0442\u044C \u043E\u0434\u043D\u043E\u0439 \u0441\u0442\u0440\u043E\u043A\u043E\u0439 \u0432 \u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442 (append-only, \u22643 \u0441\u0442\u0440\u043E\u043A \u043D\u0430 \u0441\u0435\u0441\u0441\u0438\u044E, \u043C\u043E\u043B\u0447\u0438\u0442 \u043F\u0440\u0438 \u043F\u0440\u043E\u043C\u0430\u0445\u0435; \u043A\u0430\u0436\u0434\u0430\u044F \u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u0430 \u0443\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u0432 \u0436\u0443\u0440\u043D\u0430\u043B\u0435 \u043A\u0430\u043A \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u044C \u043F\u0440\u0435\u0444\u0438\u043A\u0441\u0430)",
|
|
5379
|
+
"\u4F1A\u8BDD\u7EAA\u8981": "\u0418\u0442\u043E\u0433\u0438 \u0441\u0435\u0441\u0441\u0438\u0438",
|
|
5380
|
+
"\u4F1A\u8BDD\u7ED3\u675F\u65F6\u7528\u96F6 LLM \u89C4\u5219\u751F\u6210\u4E00\u6761 episode\uFF08\u6587\u4EF6/\u547D\u4EE4/\u5931\u8D25\u2192\u4FEE\u590D/\u51B3\u7B56/\u672A\u95ED\u73AF\uFF09\uFF0C\u4E0D\u8FDB\u7D22\u5F15\uFF0C\u4F9B\u6062\u590D\u7B80\u62A5\u4F7F\u7528\uFF1B\u6BCF workspace \u4FDD\u7559\u6700\u8FD1 20 \u6761": "\u0412 \u043A\u043E\u043D\u0446\u0435 \u0441\u0435\u0441\u0441\u0438\u0438 \u043F\u043E \u043F\u0440\u0430\u0432\u0438\u043B\u0430\u043C \u0431\u0435\u0437 LLM \u0441\u043E\u0437\u0434\u0430\u0451\u0442 \u043E\u0434\u043D\u0443 \u0437\u0430\u043F\u0438\u0441\u044C episode (\u0444\u0430\u0439\u043B\u044B/\u043A\u043E\u043C\u0430\u043D\u0434\u044B/\u0441\u0431\u043E\u0438\u2192\u0438\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F/\u0440\u0435\u0448\u0435\u043D\u0438\u044F/\u043D\u0435\u0437\u0430\u043A\u0440\u044B\u0442\u043E\u0435), \u043D\u0435 \u043F\u043E\u043F\u0430\u0434\u0430\u0435\u0442 \u0432 \u0438\u043D\u0434\u0435\u043A\u0441 \u0438 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u0432 \u0441\u0432\u043E\u0434\u043A\u0435 \u0432\u043E\u0441\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u044F; \u043D\u0430 \u043A\u0430\u0436\u0434\u043E\u0435 \u0440\u0430\u0431\u043E\u0447\u0435\u0435 \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u043E \u0445\u0440\u0430\u043D\u0438\u0442\u0441\u044F 20 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0445",
|
|
5381
|
+
"\u6062\u590D\u7B80\u62A5": "\u0421\u0432\u043E\u0434\u043A\u0430 \u0432\u043E\u0441\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u044F",
|
|
5382
|
+
"\u65B0\u4F1A\u8BDD\u542F\u52A8\u65F6\u6CE8\u5165\u6700\u8FD1 7 \u5929\u7684\u6700\u65B0 episode\uFF08\u2264240 \u5B57\u7B26 + engram_detail \u6307\u9488\uFF09\uFF0C\u9694\u5929\u7EE7\u7EED\u4E0D\u7528\u91CD\u65B0\u4EA4\u4EE3\u80CC\u666F": "\u041F\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435 \u043D\u043E\u0432\u043E\u0439 \u0441\u0435\u0441\u0441\u0438\u0438 \u0432\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u0442 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0439 episode \u0437\u0430 7 \u0434\u043D\u0435\u0439 (\u2264240 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 + \u0443\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C engram_detail), \u0447\u0442\u043E\u0431\u044B \u043D\u0430 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0439 \u0434\u0435\u043D\u044C \u043D\u0435 \u043F\u0435\u0440\u0435\u0441\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442",
|
|
5383
|
+
"\u5B9E\u4F53\u5361": "\u041A\u0430\u0440\u0442\u043E\u0447\u043A\u0438 \u0441\u0443\u0449\u043D\u043E\u0441\u0442\u0435\u0439",
|
|
5384
|
+
"[ENGRAM] \u7D22\u5F15\u4E3A\u6D3B\u8DC3\u5B9E\u4F53\uFF08\u6709\u951A\u5B9A\u8BB0\u5FC6\u6216\u672A\u95ED\u73AF\u4EFB\u52A1\uFF09\u6E32\u67D3\u4E00\u884C\u300C\u5F53\u524D\u771F\u76F8 + \u6253\u5F00\u4EFB\u52A1 + engram_detail(entity=\u2026) \u6307\u9488\u300D\uFF0C\u6700\u591A 2 \u5F20\uFF0C\u66FF\u4EE3\u8FD9\u4E9B\u5B9E\u4F53\u7684\u5E73\u94FA\u8BB0\u5FC6\u884C": "[ENGRAM] \u0434\u043B\u044F \u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0445 \u0441\u0443\u0449\u043D\u043E\u0441\u0442\u0435\u0439 (\u0441 \u043F\u0440\u0438\u0432\u044F\u0437\u0430\u043D\u043D\u043E\u0439 \u043F\u0430\u043C\u044F\u0442\u044C\u044E \u0438\u043B\u0438 \u043D\u0435\u0437\u0430\u043A\u0440\u044B\u0442\u044B\u043C\u0438 \u0437\u0430\u0434\u0430\u0447\u0430\u043C\u0438) \u0432\u044B\u0432\u043E\u0434\u0438\u0442 \u0441\u0442\u0440\u043E\u043A\u0443 \xAB\u0442\u0435\u043A\u0443\u0449\u0430\u044F \u0438\u0441\u0442\u0438\u043D\u0430 + \u043E\u0442\u043A\u0440\u044B\u0442\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 + \u0443\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C engram_detail(entity=\u2026)\xBB, \u043C\u0430\u043A\u0441\u0438\u043C\u0443\u043C 2 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0438 \u0432\u043C\u0435\u0441\u0442\u043E \u043F\u043B\u043E\u0441\u043A\u0438\u0445 \u0441\u0442\u0440\u043E\u043A \u043F\u0430\u043C\u044F\u0442\u0438 \u043F\u043E \u044D\u0442\u0438\u043C \u0441\u0443\u0449\u043D\u043E\u0441\u0442\u044F\u043C",
|
|
5385
|
+
"\u6BCF\u4F1A\u8BDD\u53BB\u91CD\u4E0A\u9650": "\u041B\u0438\u043C\u0438\u0442 \u0434\u0435\u0434\u0443\u043F\u043B\u0438\u043A\u0430\u0446\u0438\u0438 \u043D\u0430 \u0441\u0435\u0441\u0441\u0438\u044E",
|
|
5386
|
+
"recall \u6BCF\u4F1A\u8BDD\u6700\u591A\u4FDD\u7559 N \u6761\uFF08\u8DE8\u4F1A\u8BDD\u53BB\u91CD\uFF09": "\u041F\u043E\u0434\u0431\u043E\u0440: \u043D\u0435 \u0431\u043E\u043B\u0435\u0435 N \u0437\u0430\u043F\u0438\u0441\u0435\u0439 \u043D\u0430 \u0441\u0435\u0441\u0441\u0438\u044E (\u0434\u0435\u0434\u0443\u043F\u043B\u0438\u043A\u0430\u0446\u0438\u044F \u043C\u0435\u0436\u0434\u0443 \u0441\u0435\u0441\u0441\u0438\u044F\u043C\u0438)",
|
|
5387
|
+
"TTL\uFF08\u5929\uFF09": "TTL (\u0434\u043D\u0435\u0439)",
|
|
5388
|
+
"0 = \u4E0D\u8FC7\u671F": "0 = \u0431\u0435\u0437 \u0441\u0440\u043E\u043A\u0430 \u0438\u0441\u0442\u0435\u0447\u0435\u043D\u0438\u044F",
|
|
5389
|
+
"\u7D22\u5F15\u5B57\u7B26\u4E0A\u9650": "\u041B\u0438\u043C\u0438\u0442 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u0432 \u0438\u043D\u0434\u0435\u043A\u0441\u0435",
|
|
5390
|
+
"[ENGRAM] \u5757 token \u9884\u7B97": "\u0411\u044E\u0434\u0436\u0435\u0442 \u0442\u043E\u043A\u0435\u043D\u043E\u0432 \u0431\u043B\u043E\u043A\u0430 [ENGRAM]",
|
|
5391
|
+
"\u6355\u83B7\u4E0E\u68C0\u7D22\uFF08\u9AD8\u7EA7\uFF09": "\u0417\u0430\u0445\u0432\u0430\u0442 \u0438 \u043F\u043E\u0438\u0441\u043A (\u0434\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u043E)",
|
|
5392
|
+
"\u5176\u4F59\u6355\u83B7/\u641C\u7D22\u65CB\u94AE": "\u041E\u0441\u0442\u0430\u043B\u044C\u043D\u044B\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0437\u0430\u0445\u0432\u0430\u0442\u0430 \u0438 \u043F\u043E\u0438\u0441\u043A\u0430",
|
|
5393
|
+
"\u6BCF\u4F1A\u8BDD\u6355\u83B7\u4E0A\u9650": "\u041B\u0438\u043C\u0438\u0442 \u0437\u0430\u0445\u0432\u0430\u0442\u0430 \u043D\u0430 \u0441\u0435\u0441\u0441\u0438\u044E",
|
|
5394
|
+
"\u5355\u4F1A\u8BDD\u81EA\u52A8\u6355\u83B7\u6761\u6570\u4E0A\u9650": "\u0421\u043A\u043E\u043B\u044C\u043A\u043E \u0437\u0430\u043F\u0438\u0441\u0435\u0439 \u0430\u0432\u0442\u043E\u0437\u0430\u0445\u0432\u0430\u0442 \u043C\u043E\u0436\u0435\u0442 \u0441\u043E\u0437\u0434\u0430\u0442\u044C \u0437\u0430 \u043E\u0434\u043D\u0443 \u0441\u0435\u0441\u0441\u0438\u044E",
|
|
5395
|
+
"\u526A\u679D\u4FDD\u7559\u5934\u90E8(\u5B57\u7B26)": "\u041E\u0431\u0440\u0435\u0437\u043A\u0430: \u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043D\u0430\u0447\u0430\u043B\u043E (\u0441\u0438\u043C\u0432\u043E\u043B\u044B)",
|
|
5396
|
+
"\u9608\u503C\u8986\u76D6\u751F\u6548\u65F6\u7ED3\u679C\u5F00\u5934\u4FDD\u7559\u957F\u5EA6\uFF08\u9ED8\u8BA4 4096\uFF09\uFF1B\u8C03\u5C0F\uFF08\u5982 1024\uFF09\u914D\u5408 T2048 \u66F4\u7701": "\u0414\u043B\u0438\u043D\u0430 \u0441\u043E\u0445\u0440\u0430\u043D\u044F\u0435\u043C\u043E\u0433\u043E \u043D\u0430\u0447\u0430\u043B\u0430 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0430 \u043F\u0440\u0438 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u043C \u043F\u0435\u0440\u0435\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u0438 \u043F\u043E\u0440\u043E\u0433\u0430 (\u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E 4096); \u043C\u0435\u043D\u044C\u0448\u0435\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 (\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440 1024) \u0432\u043C\u0435\u0441\u0442\u0435 \u0441 T2048 \u044D\u043A\u043E\u043D\u043E\u043C\u0438\u0442 \u0431\u043E\u043B\u044C\u0448\u0435",
|
|
5397
|
+
"\u526A\u679D\u4FDD\u7559\u5C3E\u90E8(\u5B57\u7B26)": "\u041E\u0431\u0440\u0435\u0437\u043A\u0430: \u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043A\u043E\u043D\u0435\u0446 (\u0441\u0438\u043C\u0432\u043E\u043B\u044B)",
|
|
5398
|
+
"\u9608\u503C\u8986\u76D6\u751F\u6548\u65F6\u7ED3\u679C\u7ED3\u5C3E\u4FDD\u7559\u957F\u5EA6\uFF08\u9ED8\u8BA4 1024\uFF09\uFF1B\u8C03\u5C0F\uFF08\u5982 256\uFF09\u914D\u5408 T2048 \u66F4\u7701": "\u0414\u043B\u0438\u043D\u0430 \u0441\u043E\u0445\u0440\u0430\u043D\u044F\u0435\u043C\u043E\u0433\u043E \u043A\u043E\u043D\u0446\u0430 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0430 \u043F\u0440\u0438 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u043C \u043F\u0435\u0440\u0435\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u0438 \u043F\u043E\u0440\u043E\u0433\u0430 (\u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E 1024); \u043C\u0435\u043D\u044C\u0448\u0435\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 (\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440 256) \u0432\u043C\u0435\u0441\u0442\u0435 \u0441 T2048 \u044D\u043A\u043E\u043D\u043E\u043C\u0438\u0442 \u0431\u043E\u043B\u044C\u0448\u0435",
|
|
5399
|
+
"\u7A7A\u95F2\u6B65\u6570\u8FB9\u754C": "\u0413\u0440\u0430\u043D\u0438\u0446\u0430 \u043F\u043E \u0447\u0438\u0441\u043B\u0443 \u043F\u0443\u0441\u0442\u044B\u0445 \u0448\u0430\u0433\u043E\u0432",
|
|
5400
|
+
"\u6700\u591A\u6BCF N \u8BF7\u6C42\u89E6\u53D1\u4E00\u6B21\u526A\u679D\uFF0C\u8986\u76D6\u65E0 todo/goal \u7684\u4F1A\u8BDD\uFF08\u7EA6 62% \u4F1A\u8BDD\uFF09\uFF1B\u4ECD\u53D7\u507F\u8FD8\u95E8\u7EA6\u675F\uFF1B\u7559\u7A7A=\u4EC5\u4E8B\u4EF6\u8FB9\u754C": "\u041E\u0431\u0440\u0435\u0437\u0430\u0442\u044C \u043D\u0435 \u0447\u0430\u0449\u0435 \u043E\u0434\u043D\u043E\u0433\u043E \u0440\u0430\u0437\u0430 \u043D\u0430 N \u0437\u0430\u043F\u0440\u043E\u0441\u043E\u0432 \u2014 \u043F\u043E\u043A\u0440\u044B\u0432\u0430\u0435\u0442 \u0441\u0435\u0441\u0441\u0438\u0438 \u0431\u0435\u0437 todo/goal (\u043E\u043A\u043E\u043B\u043E 62%); \u043F\u043E-\u043F\u0440\u0435\u0436\u043D\u0435\u043C\u0443 \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u043E \u043F\u043E\u0440\u043E\u0433\u043E\u043C \u043E\u043A\u0443\u043F\u0430\u0435\u043C\u043E\u0441\u0442\u0438; \u043F\u0443\u0441\u0442\u043E = \u0442\u043E\u043B\u044C\u043A\u043E \u0441\u043E\u0431\u044B\u0442\u0438\u0439\u043D\u044B\u0435 \u0433\u0440\u0430\u043D\u0438\u0446\u044B",
|
|
5401
|
+
"\u81EA\u52A8\u53EC\u56DE\u6761\u6570": "\u0421\u043A\u043E\u043B\u044C\u043A\u043E \u0437\u0430\u043F\u0438\u0441\u0435\u0439 \u043F\u043E\u0434\u0431\u0438\u0440\u0430\u0442\u044C \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438",
|
|
5402
|
+
"[RECALL] \u5757\u6700\u591A\u6CE8\u5165\u7684\u8BB0\u5FC6\u6761\u6570\uFF08\u5C11\u800C\u51C6\uFF09": "\u0421\u043A\u043E\u043B\u044C\u043A\u043E \u0432\u043E\u0441\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0439 \u043C\u0430\u043A\u0441\u0438\u043C\u0443\u043C \u0432\u0441\u0442\u0430\u0432\u043B\u044F\u0442\u044C \u0432 \u0431\u043B\u043E\u043A [RECALL] (\u043C\u0430\u043B\u043E \u0438 \u0442\u043E\u0447\u043D\u043E)",
|
|
5403
|
+
"\u4F1A\u8BDD\u5386\u53F2\u641C\u7D22": "\u041F\u043E\u0438\u0441\u043A \u043F\u043E \u0438\u0441\u0442\u043E\u0440\u0438\u0438 \u0441\u0435\u0441\u0441\u0438\u0439",
|
|
5404
|
+
"engram_recall \u652F\u6301\u8DE8\u4F1A\u8BDD FTS \u515C\u5E95": "engram_recall \u0434\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u0438\u0449\u0435\u0442 \u043F\u043E FTS \u0432 \u043F\u0440\u043E\u0448\u043B\u044B\u0445 \u0441\u0435\u0441\u0441\u0438\u044F\u0445",
|
|
5405
|
+
"\u53EC\u56DE\u8303\u56F4": "\u041E\u0431\u043B\u0430\u0441\u0442\u044C \u043F\u043E\u0434\u0431\u043E\u0440\u0430",
|
|
5406
|
+
"workspace=\u4E25\u683C\u5F53\u524D\u5DE5\u4F5C\u533A\u9694\u79BB\uFF08\u9ED8\u8BA4\uFF0Ctoken \u7EAA\u5F8B\uFF09\uFF1Bglobal=\u672C\u5DE5\u4F5C\u533A\u547D\u4E2D\u5F31/\u7A7A\u65F6\u4ECE\u5176\u5B83\u5DE5\u4F5C\u533A\u6C60\u53EC\u56DE\u5E76\u6807 [W:<workspace>] \u6765\u6E90\uFF08\u4F1A\u6253\u7834\u9694\u79BB\uFF09": "workspace = \u0441\u0442\u0440\u043E\u0433\u0430\u044F \u0438\u0437\u043E\u043B\u044F\u0446\u0438\u044F \u0442\u0435\u043A\u0443\u0449\u0435\u0433\u043E \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u0430 (\u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E, \u044D\u043A\u043E\u043D\u043E\u043C\u0438\u044F \u0442\u043E\u043A\u0435\u043D\u043E\u0432); global = \u043F\u0440\u0438 \u0441\u043B\u0430\u0431\u043E\u043C/\u043F\u0443\u0441\u0442\u043E\u043C \u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0438 \u0434\u043E\u0431\u0438\u0440\u0430\u0442\u044C \u0438\u0437 \u043F\u0443\u043B\u043E\u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432 \u0441 \u043F\u043E\u043C\u0435\u0442\u043A\u043E\u0439 [W:<workspace>] (\u043D\u0430\u0440\u0443\u0448\u0430\u0435\u0442 \u0438\u0437\u043E\u043B\u044F\u0446\u0438\u044E)",
|
|
5407
|
+
"\u7D22\u5F15\uFF08\u9AD8\u7EA7\uFF09": "\u0418\u043D\u0434\u0435\u043A\u0441 (\u0434\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u043E)",
|
|
5408
|
+
"\u884C\u6570\u3001\u5165\u7D22\u5F15\u4FE1\u53F7\u4E0E\u664B\u5347\u89C4\u5219": "\u0421\u0442\u0440\u043E\u043A\u0438, \u043F\u043E\u0440\u043E\u0433 \u0441\u0438\u0433\u043D\u0430\u043B\u0430 \u0438 \u043F\u0440\u0430\u0432\u0438\u043B\u0430 \u043F\u0440\u043E\u0434\u0432\u0438\u0436\u0435\u043D\u0438\u044F",
|
|
5409
|
+
"\u7D22\u5F15\u6700\u5927\u884C\u6570": "\u041C\u0430\u043A\u0441\u0438\u043C\u0443\u043C \u0441\u0442\u0440\u043E\u043A \u0438\u043D\u0434\u0435\u043A\u0441\u0430",
|
|
5410
|
+
"[ENGRAM] \u5757\u6700\u591A\u663E\u793A\u7684\u6761\u76EE\u884C\u6570": "\u0421\u043A\u043E\u043B\u044C\u043A\u043E \u0441\u0442\u0440\u043E\u043A \u043C\u0430\u043A\u0441\u0438\u043C\u0443\u043C \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u0432 \u0431\u043B\u043E\u043A\u0435 [ENGRAM]",
|
|
5411
|
+
"\u5165\u7D22\u5F15\u4FE1\u53F7\u9608\u503C": "\u041F\u043E\u0440\u043E\u0433 \u0441\u0438\u0433\u043D\u0430\u043B\u0430 \u0434\u043B\u044F \u0438\u043D\u0434\u0435\u043A\u0441\u0430",
|
|
5412
|
+
"signal \u2265 \u6B64\u503C\u7684\u81EA\u52A8\u6355\u83B7\u624D\u8FDB\u7D22\u5F15": "\u0412 \u0438\u043D\u0434\u0435\u043A\u0441 \u043F\u043E\u043F\u0430\u0434\u0430\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u0430\u0432\u0442\u043E\u0437\u0430\u0445\u0432\u0430\u0442 \u0441 signal \u2265 \u044D\u0442\u043E\u0433\u043E \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F",
|
|
5413
|
+
"\u664B\u5347\u547D\u4E2D\u6570": "\u0425\u0438\u0442\u044B \u0434\u043B\u044F \u043F\u0440\u043E\u0434\u0432\u0438\u0436\u0435\u043D\u0438\u044F",
|
|
5414
|
+
"hit \u6570\u8FBE\u6B64\u503C\u7684\u4F4E\u4FE1\u53F7\u6761\u76EE\u8FDB\u7D22\u5F15": "\u0417\u0430\u043F\u0438\u0441\u0438 \u0441 \u043D\u0438\u0437\u043A\u0438\u043C \u0441\u0438\u0433\u043D\u0430\u043B\u043E\u043C \u043F\u043E\u043F\u0430\u0434\u0430\u044E\u0442 \u0432 \u0438\u043D\u0434\u0435\u043A\u0441 \u043F\u043E\u0441\u043B\u0435 \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u043E\u0433\u043E \u0447\u0438\u0441\u043B\u0430 \u043F\u043E\u043F\u0430\u0434\u0430\u043D\u0438\u0439",
|
|
5415
|
+
"\u751F\u547D\u5468\u671F\u4E0E GC\uFF08\u9AD8\u7EA7\uFF09": "\u0416\u0438\u0437\u043D\u0435\u043D\u043D\u044B\u0439 \u0446\u0438\u043A\u043B \u0438 GC (\u0434\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u043E)",
|
|
5416
|
+
"\u5BB9\u91CF\u4E0A\u9650\u4E0E\u5B9A\u671F\u56DE\u6536\uFF08\u81EA\u52A8 GC = \u66FF\u4EE3 DSH \u81EA\u52A8 compact\uFF09": "\u041B\u0438\u043C\u0438\u0442\u044B \u0445\u0440\u0430\u043D\u0435\u043D\u0438\u044F \u0438 \u043F\u0435\u0440\u0438\u043E\u0434\u0438\u0447\u0435\u0441\u043A\u0430\u044F \u043E\u0447\u0438\u0441\u0442\u043A\u0430 (\u0430\u0432\u0442\u043E-GC \u0437\u0430\u043C\u0435\u043D\u044F\u0435\u0442 \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u044B\u0439 compact DSH)",
|
|
5417
|
+
"\u5DE5\u4F5C\u533A\u8BB0\u5FC6\u4E0A\u9650": "\u041B\u0438\u043C\u0438\u0442 \u043F\u0430\u043C\u044F\u0442\u0438 \u043D\u0430 \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u043E",
|
|
5418
|
+
"\u5355\u5DE5\u4F5C\u533A\u5BB9\u91CF\u4E0A\u9650\uFF08GC \u5F52\u6863\u8D85\u9650\u6761\u76EE\uFF09": "\u041C\u0430\u043A\u0441\u0438\u043C\u0443\u043C \u0437\u0430\u043F\u0438\u0441\u0435\u0439 \u043D\u0430 \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u043E (\u043B\u0438\u0448\u043D\u0435\u0435 \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u0443\u0435\u0442 GC)",
|
|
5419
|
+
"\u8BB0\u5FC6 GC": "GC \u043F\u0430\u043C\u044F\u0442\u0438",
|
|
5420
|
+
"\u5B9A\u65F6\u56DE\u6536\uFF08\u8FC7\u671F/\u8D85\u5BB9\u91CF/stable \u8D85\u7A97/\u60AC\u7A7A\u94FE\u63A5\uFF09": "\u041F\u0435\u0440\u0438\u043E\u0434\u0438\u0447\u0435\u0441\u043A\u0430\u044F \u043E\u0447\u0438\u0441\u0442\u043A\u0430 (\u0438\u0441\u0442\u0451\u043A\u0448\u0438\u0435 / \u0441\u0432\u0435\u0440\u0445 \u043B\u0438\u043C\u0438\u0442\u0430 / \u0437\u0430\u043A\u0440\u044B\u0442\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432\u043D\u0435 \u043E\u043A\u043D\u0430 / \u0432\u0438\u0441\u044F\u0447\u0438\u0435 \u0441\u0432\u044F\u0437\u0438)",
|
|
5421
|
+
"Context GC \u53D9\u4E8B\u515C\u5E95": "\u0420\u0435\u0437\u044E\u043C\u0435-\u0444\u043E\u043B\u0431\u044D\u043A Context GC",
|
|
5422
|
+
"\u81EA\u52A8 compact \u65F6\u65E0\u951A\u8F6E\u6B21\u7528 LLM \u6458\u8981\uFF1B\u5173\u6389=\u7EAF\u673A\u68B0\uFF08\u96F6 LLM\uFF09": "\u041F\u0440\u0438 \u0430\u0432\u0442\u043E\u043A\u043E\u043C\u043F\u0430\u043A\u0446\u0438\u0438 \u0445\u043E\u0434\u044B \u0431\u0435\u0437 \u043F\u0440\u0438\u0432\u044F\u0437\u043A\u0438 \u0441\u0443\u043C\u043C\u0438\u0440\u0443\u044E\u0442\u0441\u044F \u0447\u0435\u0440\u0435\u0437 LLM; \u0432\u044B\u043A\u043B\u044E\u0447\u0435\u043D\u043E = \u0442\u043E\u043B\u044C\u043A\u043E \u043C\u0435\u0445\u0430\u043D\u0438\u043A\u0430 (\u0431\u0435\u0437 LLM)",
|
|
5423
|
+
"stable \u4EFB\u52A1\u4FDD\u7559\uFF08\u5929\uFF09": "\u0425\u0440\u0430\u043D\u0435\u043D\u0438\u0435 \u0437\u0430\u043A\u0440\u044B\u0442\u044B\u0445 \u0437\u0430\u0434\u0430\u0447 (\u0434\u043D\u0435\u0439)",
|
|
5424
|
+
"\u8D85\u7A97\u540E\u7531 GC \u5F52\u6863\u3001\u79BB\u5F00 [ESR] \u8868\u9762": "\u041F\u043E\u0441\u043B\u0435 \u043E\u043A\u043D\u0430 GC \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u0443\u0435\u0442 \u0438\u0445, \u0438 \u043E\u043D\u0438 \u0443\u0445\u043E\u0434\u044F\u0442 \u0438\u0437 [ESR]",
|
|
5425
|
+
"\u6821\u9A8C artifact \u5B58\u5728": "\u041F\u0440\u043E\u0432\u0435\u0440\u044F\u0442\u044C \u043D\u0430\u043B\u0438\u0447\u0438\u0435 artifact",
|
|
5426
|
+
"esr_close \u7684 artifact \u987B\u5728\u5DE5\u4F5C\u533A\u78C1\u76D8\u4E0A\u771F\u5B9E\u5B58\u5728\uFF08URL \u8C41\u514D\uFF09\uFF1Bforce:true/\u5173\u6389\u53EF\u8DF3\u8FC7": "artifact \u0432 esr_close \u0434\u043E\u043B\u0436\u0435\u043D \u0440\u0435\u0430\u043B\u044C\u043D\u043E \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043E\u0432\u0430\u0442\u044C \u043D\u0430 \u0434\u0438\u0441\u043A\u0435 \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u0430 (URL \u2014 \u0438\u0441\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435); force:true \u0438\u043B\u0438 \u0432\u044B\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u043F\u043E\u0437\u0432\u043E\u043B\u044F\u044E\u0442 \u043F\u0440\u043E\u043F\u0443\u0441\u0442\u0438\u0442\u044C",
|
|
5427
|
+
"\u4F1A\u8BDD\u7ED3\u675F\u81EA\u52A8\u6C89\u6DC0 todo": "\u041F\u0435\u0440\u0435\u043D\u043E\u0441\u0438\u0442\u044C todo \u043F\u0440\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u0438 \u0441\u0435\u0441\u0441\u0438\u0438",
|
|
5428
|
+
"\u4F1A\u8BDD\u7ED3\u675F\u65F6\u4ECD pending \u7684 todo \u81EA\u52A8\u8F6C\u6210 ESR draft\uFF08\u6309\u540D\u53BB\u91CD\u3001\u53D7\u4EFB\u52A1\u4E0A\u9650\u7EA6\u675F\uFF09\uFF1B\u5173\u6389=\u968F\u4F1A\u8BDD\u5F03\u53BB": "\u041F\u043E \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u0438 \u0441\u0435\u0441\u0441\u0438\u0438 \u043D\u0435\u0437\u0430\u043A\u0440\u044B\u0442\u044B\u0435 todo \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0441\u0442\u0430\u043D\u043E\u0432\u044F\u0442\u0441\u044F \u0447\u0435\u0440\u043D\u043E\u0432\u0438\u043A\u0430\u043C\u0438 ESR (\u0434\u0435\u0434\u0443\u043F\u043B\u0438\u043A\u0430\u0446\u0438\u044F \u043F\u043E \u0438\u043C\u0435\u043D\u0438, \u0441 \u0443\u0447\u0451\u0442\u043E\u043C \u043B\u0438\u043C\u0438\u0442\u0430 \u0437\u0430\u0434\u0430\u0447); \u0432\u044B\u043A\u043B\u044E\u0447\u0435\u043D\u043E = \u043F\u0440\u043E\u043F\u0430\u0434\u0430\u044E\u0442 \u0432\u043C\u0435\u0441\u0442\u0435 \u0441 \u0441\u0435\u0441\u0441\u0438\u0435\u0439",
|
|
5429
|
+
"web \u9762\u81EA\u52A8\u542F\u7528 Context GC": "\u0410\u0432\u0442\u043E\u0432\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 Context GC \u043D\u0430 web-\u043F\u043B\u043E\u0441\u043A\u043E\u0441\u0442\u0438",
|
|
5430
|
+
"\u542F\u52A8\u65F6\u628A\u5168\u90E8 stock \u5E03\u5C40\u7684 agent \u9884\u8BBE\uFF08shipped + \u81EA\u5B9A\u4E49\u6839\uFF09\u7684 compaction \u7EC4\u81EA\u52A8\u6362\u6210 dsh-engram/compaction\uFF1B\u5173\u6389=\u4E0D\u518D\u81EA\u52A8\u63A5\u7BA1\uFF08\u5DF2\u63A5\u7BA1\u7684\u9700 web-compaction:revert \u8FD8\u539F\uFF09": "\u041F\u0440\u0438 \u0437\u0430\u043F\u0443\u0441\u043A\u0435 \u0432\u043E \u0432\u0441\u0435\u0445 \u043F\u0440\u0435\u0441\u0435\u0442\u0430\u0445 \u0430\u0433\u0435\u043D\u0442\u0430 \u0441\u043E \u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u044B\u043C (stock) layout (\u043F\u043E\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u043C\u044B\u0435 + \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0435 \u043A\u043E\u0440\u043D\u0438) \u0433\u0440\u0443\u043F\u043F\u0430 compaction \u0437\u0430\u043C\u0435\u043D\u044F\u0435\u0442\u0441\u044F \u043D\u0430 dsh-engram/compaction; \u0432\u044B\u043A\u043B\u044E\u0447\u0435\u043D\u043E = \u0430\u0432\u0442\u043E\u043F\u0435\u0440\u0435\u0445\u0432\u0430\u0442 \u043D\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u0442\u0441\u044F (\u0443\u0436\u0435 \u043F\u0435\u0440\u0435\u0445\u0432\u0430\u0447\u0435\u043D\u043D\u043E\u0435 \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044F \u0447\u0435\u0440\u0435\u0437 web-compaction:revert)",
|
|
5431
|
+
"\u8BB0\u5FC6\u8BED\u4E49\uFF08\u9AD8\u7EA7\uFF09": "\u0421\u0435\u043C\u0430\u043D\u0442\u0438\u043A\u0430 \u043F\u0430\u043C\u044F\u0442\u0438 (\u0434\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u043E)",
|
|
5432
|
+
"supersedes / contradict \u7684\u542F\u53D1\u5F0F": "\u042D\u0432\u0440\u0438\u0441\u0442\u0438\u043A\u0438 supersedes / contradict",
|
|
5433
|
+
"\u81EA\u52A8 supersedes": "\u0410\u0432\u0442\u043E-supersedes",
|
|
5434
|
+
"\u5B9E\u4F53\u951A\u5B9A + \u66FF\u6362\u5F0F\u66F4\u65B0\uFF08\u6539\u7528/\u4E0D\u518D/no longer\u2026\uFF09\u81EA\u52A8\u628A\u65E7\u8BB0\u5FC6\u6807\u4E3A superseded\uFF1B\u65E7\u884C\u4FDD\u7559\u3001\u53EC\u56DE\u964D\u7EA7\u3002\u9ED8\u8BA4\u5173\uFF0C\u663E\u5F0F supersedes \u6C38\u8FDC\u4F18\u5148": "\u041F\u0440\u0438\u0432\u044F\u0437\u043A\u0430 \u043A \u0441\u0443\u0449\u043D\u043E\u0441\u0442\u0438 + \u0437\u0430\u043C\u0435\u043D\u0430 (\u043F\u0435\u0440\u0435\u0448\u0451\u043B \u043D\u0430 / \u0431\u043E\u043B\u044C\u0448\u0435 \u043D\u0435 / no longer\u2026) \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u043F\u043E\u043C\u0435\u0447\u0430\u044E\u0442 \u0441\u0442\u0430\u0440\u0443\u044E \u043F\u0430\u043C\u044F\u0442\u044C \u043A\u0430\u043A superseded; \u0441\u0442\u0430\u0440\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430 \u0441\u043E\u0445\u0440\u0430\u043D\u044F\u0435\u0442\u0441\u044F, \u043D\u043E \u0445\u0443\u0436\u0435 \u043D\u0430\u0445\u043E\u0434\u0438\u0442\u0441\u044F. \u041F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0432\u044B\u043A\u043B\u044E\u0447\u0435\u043D\u043E; \u044F\u0432\u043D\u044B\u0439 supersedes \u0432\u0441\u0435\u0433\u0434\u0430 \u0432 \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442\u0435",
|
|
5435
|
+
"\u5B89\u5168": "\u0411\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u044C",
|
|
5436
|
+
"\u8BBF\u95EE\u56F4\u680F\u4E0E\u96A7\u9053\u6388\u6743": "\u041E\u0433\u0440\u0430\u0436\u0434\u0435\u043D\u0438\u0435 \u0434\u043E\u0441\u0442\u0443\u043F\u0430 \u0438 \u0434\u043E\u0432\u0435\u0440\u0438\u0435 \u0442\u0443\u043D\u043D\u0435\u043B\u044F\u043C",
|
|
5437
|
+
"\u53D7\u4FE1\u96A7\u9053\u57DF\u540D": "\u0414\u043E\u0432\u0435\u0440\u0435\u043D\u043D\u044B\u0435 \u0434\u043E\u043C\u0435\u043D\u044B \u0442\u0443\u043D\u043D\u0435\u043B\u044F",
|
|
5438
|
+
"\u5141\u8BB8\u7ECF\u96A7\u9053\u8BBF\u95EE\u8BB0\u5FC6\u67E5\u770B\u5668\u7684\u57DF\u540D\uFF0C\u9017\u53F7\u5206\u9694\uFF1B\u7559\u7A7A = \u4EC5\u672C\u673A\u3002\u6539\u540E\u9700\u91CD\u542F dsh web \u751F\u6548": "\u0414\u043E\u043C\u0435\u043D\u044B, \u043A\u043E\u0442\u043E\u0440\u044B\u043C \u0440\u0430\u0437\u0440\u0435\u0448\u0451\u043D \u0434\u043E\u0441\u0442\u0443\u043F \u043A \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0449\u0438\u043A\u0443 \u043F\u0430\u043C\u044F\u0442\u0438 \u0447\u0435\u0440\u0435\u0437 \u0442\u0443\u043D\u043D\u0435\u043B\u044C, \u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u043F\u044F\u0442\u0443\u044E; \u043F\u0443\u0441\u0442\u043E = \u0442\u043E\u043B\u044C\u043A\u043E \u044D\u0442\u0430 \u043C\u0430\u0448\u0438\u043D\u0430. \u041F\u043E\u0441\u043B\u0435 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u0435 dsh web",
|
|
5439
|
+
"\u63A7\u5236 engram \u8BB0\u5FC6\u7684\u6355\u83B7\u3001\u7D22\u5F15\u3001\u4FDD\u7559\u4E0E\u96A7\u9053\u8BBF\u95EE": "\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u0437\u0430\u0445\u0432\u0430\u0442\u043E\u043C, \u0438\u043D\u0434\u0435\u043A\u0441\u043E\u043C, \u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435\u043C \u043F\u0430\u043C\u044F\u0442\u0438 engram \u0438 \u0434\u043E\u0441\u0442\u0443\u043F\u043E\u043C \u0447\u0435\u0440\u0435\u0437 \u0442\u0443\u043D\u043D\u0435\u043B\u044C",
|
|
5440
|
+
"[dsh-engram] settings scope unavailable \u2014 Plugins \u914D\u7F6E\u5361\u5DF2\u9690\u85CF:": "[dsh-engram] settings scope unavailable \u2014 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A \u0432 Plugins \u0441\u043A\u0440\u044B\u0442\u0430:",
|
|
5441
|
+
"host.domain, \u53E6\u4E00\u57DF\u540D\u2026": "host.domain, \u0434\u0440\u0443\u0433\u043E\u0439-\u0434\u043E\u043C\u0435\u043D\u2026",
|
|
5442
|
+
"\u91CD\u7F6E\u4E3A\u9ED8\u8BA4": "\u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C \u043A \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044E \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E",
|
|
5443
|
+
"\u91CD\u7F6E": "\u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C",
|
|
5444
|
+
"{0} dsh-engram \u8BBE\u7F6E": "{0} \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 dsh-engram",
|
|
5445
|
+
"\u6536\u8D77": "\u0421\u0432\u0435\u0440\u043D\u0443\u0442\u044C",
|
|
5446
|
+
"\u5C55\u5F00": "\u0420\u0430\u0437\u0432\u0435\u0440\u043D\u0443\u0442\u044C",
|
|
5447
|
+
"\u672A\u4FDD\u5B58": "\u041D\u0435 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u043E",
|
|
5448
|
+
"\u672C\u90E8\u7F72\u7684\u8BBE\u7F6E\u4E3A\u53EA\u8BFB\uFF08\u5BBF\u4E3B\u672A\u6388\u6743\u5199\u5165\u6216\u9700\u91CD\u542F\u5E94\u7528\uFF09\u3002": "\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0432 \u044D\u0442\u043E\u043C \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044B\u0432\u0430\u043D\u0438\u0438 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B \u0442\u043E\u043B\u044C\u043A\u043E \u0434\u043B\u044F \u0447\u0442\u0435\u043D\u0438\u044F (host \u043D\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u043B \u0437\u0430\u043F\u0438\u0441\u044C \u0438\u043B\u0438 \u043D\u0443\u0436\u043D\u043E \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435).",
|
|
5449
|
+
"\u5E38\u7528": "\u041E\u0441\u043D\u043E\u0432\u043D\u044B\u0435",
|
|
5450
|
+
"\u6BCF\u5929\u4F1A\u78B0\u5230\u7684\u65CB\u94AE \xB7 \u5176\u4F59\u6536\u5728\u4E0B\u65B9\u9AD8\u7EA7\u8BBE\u7F6E": "\u0422\u043E, \u0447\u0442\u043E \u043D\u0443\u0436\u043D\u043E \u043A\u0430\u0436\u0434\u044B\u0439 \u0434\u0435\u043D\u044C \xB7 \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u043E\u0435 \u2014 \u0432 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u043D\u044B\u0445 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430\u0445 \u043D\u0438\u0436\u0435",
|
|
5451
|
+
"\u9AD8\u7EA7\u8BBE\u7F6E\uFF08{0} \u9879\uFF09": "\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u043D\u044B\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 ({0})",
|
|
5452
|
+
"\u8BBE\u7F6E\u5BF9\u65B0\u5EFA\u4F1A\u8BDD\u5373\u65F6\u751F\u6548\uFF1B\u5DF2\u51BB\u7ED3\u7684 [ENGRAM] \u5757\u4FDD\u6301\u524D\u7F00\u7A33\u5B9A\u3002": "\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u043F\u0440\u0438\u043C\u0435\u043D\u044F\u044E\u0442\u0441\u044F \u043A \u043D\u043E\u0432\u044B\u043C \u0441\u0435\u0441\u0441\u0438\u044F\u043C \u0441\u0440\u0430\u0437\u0443; \u0443\u0436\u0435 \u0437\u0430\u043C\u043E\u0440\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u0431\u043B\u043E\u043A\u0438 [ENGRAM] \u0441\u043E\u0445\u0440\u0430\u043D\u044F\u044E\u0442 \u0441\u0442\u0430\u0431\u0438\u043B\u044C\u043D\u044B\u0439 \u043F\u0440\u0435\u0444\u0438\u043A\u0441.",
|
|
5453
|
+
"\u653E\u5F03\u4FEE\u6539": "\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F",
|
|
5454
|
+
"\u4FDD\u5B58\u4E2D\u2026": "\u0421\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435\u2026",
|
|
5455
|
+
"\u4FDD\u5B58": "\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C",
|
|
5456
|
+
"\u504F\u597D": "\u041F\u0440\u0435\u0434\u043F\u043E\u0447\u0442\u0435\u043D\u0438\u0435",
|
|
5457
|
+
"\u51B3\u5B9A": "\u0420\u0435\u0448\u0435\u043D\u0438\u0435",
|
|
5458
|
+
"\u9519\u8BEF": "\u041E\u0448\u0438\u0431\u043A\u0430",
|
|
5459
|
+
"\u6D41\u7A0B": "\u041F\u0440\u043E\u0446\u0435\u0434\u0443\u0440\u0430",
|
|
5460
|
+
"\u4E8B\u5B9E": "\u0424\u0430\u043A\u0442",
|
|
5461
|
+
"\u6D1E\u5BDF": "\u0418\u043D\u0441\u0430\u0439\u0442",
|
|
5462
|
+
"\u4EA4\u63A5": "\u041F\u0435\u0440\u0435\u0434\u0430\u0447\u0430",
|
|
5463
|
+
"\u4EFB\u52A1": "\u0417\u0430\u0434\u0430\u0447\u0430",
|
|
5464
|
+
"\u5DF2\u8FC7\u671F": "\u041F\u0440\u043E\u0441\u0440\u043E\u0447\u0435\u043D\u043E",
|
|
5465
|
+
"\u5DF2\u95ED\u73AF \u2192 STABLE \u2713": "\u0417\u0430\u043A\u0440\u044B\u0442\u043E \u2192 STABLE \u2713",
|
|
5466
|
+
"\u4ECD\u6709\u7F3A\u53E3\uFF1A{0}{1}": "\u0412\u0441\u0451 \u0435\u0449\u0451 \u0435\u0441\u0442\u044C \u043F\u0440\u043E\u0431\u0435\u043B\u044B: {0}{1}",
|
|
5467
|
+
"\u5173\u95ED\u5931\u8D25\uFF1A{0}": "\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u043A\u0440\u044B\u0442\u044C: {0}",
|
|
5468
|
+
"\u8282\u70B9": "\u0423\u0437\u0435\u043B",
|
|
5469
|
+
"\u5173\u7CFB": "\u0421\u0432\u044F\u0437\u044C",
|
|
5470
|
+
"\u5173\u95ED\u8BE6\u60C5": "\u0417\u0430\u043A\u0440\u044B\u0442\u044C \u0434\u0435\u0442\u0430\u043B\u0438",
|
|
5471
|
+
"\u4EFB\u52A1\u4E0D\u5B58\u5728\uFF08\u53EF\u80FD\u5DF2\u88AB\u5173\u95ED/\u5F52\u6863\uFF09\u3002": "\u0417\u0430\u0434\u0430\u0447\u0430 \u043D\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 (\u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E, \u0443\u0436\u0435 \u0437\u0430\u043A\u0440\u044B\u0442\u0430 \u0438\u043B\u0438 \u0432 \u0430\u0440\u0445\u0438\u0432\u0435).",
|
|
5472
|
+
"\u72B6\u6001": "\u0421\u0442\u0430\u0442\u0443\u0441",
|
|
5473
|
+
"\u521B\u5EFA {0}": "\u0421\u043E\u0437\u0434\u0430\u043D\u043E {0}",
|
|
5474
|
+
"\u66F4\u65B0 {0}": "\u041E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u043E {0}",
|
|
5475
|
+
"\u63CF\u8FF0": "\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435",
|
|
5476
|
+
"\u8BC1\u636E\u7F3A\u53E3": "\u041F\u0440\u043E\u0431\u0435\u043B\u044B \u0432 \u0434\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u0430\u0445",
|
|
5477
|
+
"\u8BB0\u5FC6\u5F15\u7528": "\u0421\u0441\u044B\u043B\u043A\u0438 \u043D\u0430 \u043F\u0430\u043C\u044F\u0442\u044C",
|
|
5478
|
+
"\u6253\u5F00\u8BB0\u5FC6 {0}": "\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u043F\u0430\u043C\u044F\u0442\u044C {0}",
|
|
5479
|
+
"\u8865\u9F50\u8BC1\u636E \u2192 \u5173\u95ED\uFF08\u4E09\u9879\u5168\u9F50\u8F6C STABLE\uFF09": "\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0434\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u0430 \u2192 \u0437\u0430\u043A\u0440\u044B\u0442\u044C (\u043A\u043E\u0433\u0434\u0430 \u0432\u0441\u0435 \u0442\u0440\u0438 \u0435\u0441\u0442\u044C, \u0441\u0442\u0430\u0442\u0443\u0441 STABLE)",
|
|
5480
|
+
"artifact \u4EA7\u7269\uFF08\u6587\u4EF6/PR/\u8DEF\uFF09": "\u0410\u0440\u0442\u0435\u0444\u0430\u043A\u0442 artifact (\u0444\u0430\u0439\u043B/PR/\u043F\u0443\u0442\u044C)",
|
|
5481
|
+
"evaluation \u8BC4\u4F30\uFF08\u6D4B\u8BD5/\u8BC4\u5BA1/\u5206\u6570\uFF09": "\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 evaluation (\u0442\u0435\u0441\u0442\u044B/\u0440\u0435\u0432\u044C\u044E/\u043E\u0446\u0435\u043D\u043A\u0430)",
|
|
5482
|
+
"memory_refs\uFF08#id, \u9017\u53F7\u5206\u9694\uFF09": "memory_refs (#id \u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u043F\u044F\u0442\u0443\u044E)",
|
|
5483
|
+
"\u786E\u8BA4\u63D0\u4EA4\uFF1F": "\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C \u043E\u0442\u043F\u0440\u0430\u0432\u043A\u0443?",
|
|
5484
|
+
"\u786E\u8BA4": "\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C",
|
|
5485
|
+
"\u5DF2\u95ED\u73AF \u2713 \u2014 \u5168\u90E8\u8BC1\u636E\u95E8\u5DF2\u6EE1\u8DB3\uFF0C\u53EF\u4EE5\u4ECE\u770B\u677F/\u6E05\u5355\u79FB\u9664": "\u0417\u0430\u043A\u0440\u044B\u0442\u043E \u2713 \u2014 \u0432\u0441\u0435 \u0432\u043E\u0440\u043E\u0442\u0430 \u0434\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432 \u043F\u0440\u043E\u0439\u0434\u0435\u043D\u044B, \u0437\u0430\u0434\u0430\u0447\u0443 \u043C\u043E\u0436\u043D\u043E \u0443\u0431\u0440\u0430\u0442\u044C \u0441 \u0434\u043E\u0441\u043A\u0438/\u0438\u0437 \u0441\u043F\u0438\u0441\u043A\u0430",
|
|
5486
|
+
"\u5185\u5BB9": "\u0421\u043E\u0434\u0435\u0440\u0436\u0430\u043D\u0438\u0435",
|
|
5487
|
+
"\u6807\u7B7E": "\u0422\u0435\u0433\u0438",
|
|
5488
|
+
"\u66FF\u6362 / \u51B2\u7A81": "\u0417\u0430\u043C\u0435\u043D\u0430 / \u043A\u043E\u043D\u0444\u043B\u0438\u043A\u0442",
|
|
5489
|
+
"\u672C\u6761\u66FF\u4EE3 {0}\uFF08\u65E7\u884C\u4FDD\u7559\u3001\u53EC\u56DE\u964D\u7EA7\uFF09": "\u042D\u0442\u0430 \u0437\u0430\u043F\u0438\u0441\u044C \u0437\u0430\u043C\u0435\u043D\u044F\u0435\u0442 {0} (\u0441\u0442\u0430\u0440\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0430, \u0445\u0443\u0436\u0435 \u043D\u0430\u0445\u043E\u0434\u0438\u0442\u0441\u044F)",
|
|
5490
|
+
"\u66FF\u4EE3 #{0}": "\u0417\u0430\u043C\u0435\u043D\u044F\u0435\u0442 #{0}",
|
|
5491
|
+
"\u672C\u6761\u4E0E {0} \u51B2\u7A81\uFF08\u4E24\u6761\u90FD\u4FDD\u7559\uFF09": "\u042D\u0442\u0430 \u0437\u0430\u043F\u0438\u0441\u044C \u043A\u043E\u043D\u0444\u043B\u0438\u043A\u0442\u0443\u0435\u0442 \u0441 {0} (\u043E\u0431\u0435 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u044B)",
|
|
5492
|
+
"\u51B2\u7A81 #{0}": "\u041A\u043E\u043D\u0444\u043B\u0438\u043A\u0442 #{0}",
|
|
5493
|
+
"\u5DF2\u88AB {0}\u2026 \u66FF\u4EE3": "\u0417\u0430\u043C\u0435\u043D\u0435\u043D\u043E \u043D\u0430 {0}\u2026",
|
|
5494
|
+
"\u2190 \u88AB #{0} \u66FF\u4EE3": "\u2190 \u0437\u0430\u043C\u0435\u043D\u0435\u043D\u043E \u043D\u0430 #{0}",
|
|
5495
|
+
"{0}\u2026 \u4E0E\u672C\u6761\u51B2\u7A81": "{0}\u2026 \u043A\u043E\u043D\u0444\u043B\u0438\u043A\u0442\u0443\u0435\u0442 \u0441 \u044D\u0442\u043E\u0439 \u0437\u0430\u043F\u0438\u0441\u044C\u044E",
|
|
5496
|
+
" \u51B2\u7A81": " \u043A\u043E\u043D\u0444\u043B\u0438\u043A\u0442",
|
|
5497
|
+
"\u5143\u6570\u636E": "\u041C\u0435\u0442\u0430\u0434\u0430\u043D\u043D\u044B\u0435",
|
|
5498
|
+
"\u8282\u70B9\u4E0D\u5B58\u5728\u3002": "\u0423\u0437\u0435\u043B \u043D\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442.",
|
|
5499
|
+
"\u5173\u8054\u5173\u7CFB\uFF08{0}\uFF09": "\u0421\u0432\u044F\u0437\u0438 ({0})",
|
|
5500
|
+
"\u6682\u65E0\u5173\u7CFB \u2014 \u7528 esr_link \u5173\u8054": "\u0421\u0432\u044F\u0437\u0435\u0439 \u043F\u043E\u043A\u0430 \u043D\u0435\u0442 \u2014 \u0441\u0432\u044F\u0436\u0438\u0442\u0435 \u0447\u0435\u0440\u0435\u0437 esr_link",
|
|
5501
|
+
"\u4F9D\u8D56": "\u0417\u0430\u0432\u0438\u0441\u0438\u043C\u043E\u0441\u0442\u044C",
|
|
5502
|
+
"\u5B9E\u73B0": "\u0420\u0435\u0430\u043B\u0438\u0437\u0443\u0435\u0442",
|
|
5503
|
+
"\u7EC6\u5316": "\u0423\u0442\u043E\u0447\u043D\u044F\u0435\u0442",
|
|
5504
|
+
"\u77DB\u76FE": "\u041F\u0440\u043E\u0442\u0438\u0432\u043E\u0440\u0435\u0447\u0438\u0442",
|
|
5505
|
+
"\u8FFD\u8E2A": "\u041E\u0442\u0441\u043B\u0435\u0436\u0438\u0432\u0430\u0435\u0442",
|
|
5506
|
+
"\u5173\u8054": "\u0421\u0432\u044F\u0437\u0430\u043D\u043E \u0441",
|
|
5507
|
+
"\u6682\u65E0\u8282\u70B9/\u5173\u7CFB\u53EF\u7ED8\u5236 \u2014 \u6A21\u578B\u7528 esr_node / esr_link \u767B\u8BB0\u9886\u57DF\u5BF9\u8C61\u5E76\u4E92\u8FDE\u540E\uFF0C\u8FD9\u91CC\u4F1A\u51FA\u73B0\u529B\u5BFC\u5411\u5173\u7CFB\u56FE\u3002": "\u041F\u043E\u043A\u0430 \u043D\u0435\u0447\u0435\u0433\u043E \u0440\u0438\u0441\u043E\u0432\u0430\u0442\u044C \u2014 \u043A\u043E\u0433\u0434\u0430 \u043C\u043E\u0434\u0435\u043B\u044C \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442 \u043E\u0431\u044A\u0435\u043A\u0442\u044B \u0447\u0435\u0440\u0435\u0437 esr_node / esr_link \u0438 \u0441\u0432\u044F\u0436\u0435\u0442 \u0438\u0445, \u0437\u0434\u0435\u0441\u044C \u043F\u043E\u044F\u0432\u0438\u0442\u0441\u044F \u0441\u0438\u043B\u043E\u0432\u043E\u0439 \u0433\u0440\u0430\u0444 \u0441\u0432\u044F\u0437\u0435\u0439.",
|
|
5508
|
+
" \u8282\u70B9": " \u0443\u0437\u043B\u043E\u0432",
|
|
5509
|
+
" \u5173\u7CFB": " \u0441\u0432\u044F\u0437\u0435\u0439",
|
|
5510
|
+
" \u60AC\u7A7A\u94FE\u63A5\uFF08\u7AEF\u70B9\u7F3A\u5931\uFF0C\u672A\u7ED8\u5236\uFF09": " \u0432\u0438\u0441\u044F\u0447\u0438\u0435 \u0441\u0432\u044F\u0437\u0438 (\u043A\u043E\u043D\u0435\u0446 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442, \u043D\u0435 \u043D\u0430\u0440\u0438\u0441\u043E\u0432\u0430\u043D\u044B)",
|
|
5511
|
+
"\u62D6\u62FD\u8282\u70B9 \xB7 \u6EDA\u8F6E\u7F29\u653E \xB7 \u7A7A\u767D\u5904\u62D6\u62FD\u53EF\u5E73\u79FB": "\u041F\u0435\u0440\u0435\u0442\u0430\u0441\u043A\u0438\u0432\u0430\u0439\u0442\u0435 \u0443\u0437\u043B\u044B \xB7 \u043A\u043E\u043B\u0435\u0441\u043E \u2014 \u043C\u0430\u0441\u0448\u0442\u0430\u0431 \xB7 \u043F\u0435\u0440\u0435\u0442\u0430\u0441\u043A\u0438\u0432\u0430\u043D\u0438\u0435 \u043F\u043E \u043F\u0443\u0441\u0442\u043E\u043C\u0443 \u043C\u0435\u0441\u0442\u0443 \u2014 \u043F\u0430\u043D\u043E\u0440\u0430\u043C\u0430",
|
|
5512
|
+
"\u91CD\u7EC4": "\u041F\u0435\u0440\u0435\u0441\u0442\u0440\u043E\u0438\u0442\u044C",
|
|
5513
|
+
"\u5173\u95ED": "\u0417\u0430\u043A\u0440\u044B\u0442\u044C",
|
|
5514
|
+
" \u6761\u5173\u8054 \xB7 {0} \u6761\u5173\u7CFB": " \u0441\u0432\u044F\u0437\u0435\u0439 \xB7 \u043F\u043E\u043A\u0430\u0437\u0430\u043D\u043E: {0}",
|
|
5515
|
+
"\u6682\u65E0\u5173\u7CFB": "\u0421\u0432\u044F\u0437\u0435\u0439 \u043D\u0435\u0442",
|
|
5516
|
+
" \u6761\u66F4\u591A\u2026": " \u0435\u0449\u0451\u2026",
|
|
5517
|
+
"\u56FE\u4F8B\uFF1A": "\u041B\u0435\u0433\u0435\u043D\u0434\u0430: ",
|
|
5518
|
+
" \u4EFB\u52A1": " \u0437\u0430\u0434\u0430\u0447\u0438",
|
|
5519
|
+
" \u5B9E\u4F53": " \u0441\u0443\u0449\u043D\u043E\u0441\u0442\u0438",
|
|
5520
|
+
"\u8FD8\u6CA1\u6709\u53EF\u7528\u5DE5\u4F5C\u533A \u2014 \u5148\u521B\u5EFA/\u6253\u5F00\u4E00\u4E2A\u5DE5\u4F5C\u533A\uFF0C[ENGRAM] \u6CE8\u5165\u5757\u4F1A\u6309\u5DE5\u4F5C\u533A\u72EC\u7ACB\u6E32\u67D3\u3002": "\u0420\u0430\u0431\u043E\u0447\u0438\u0445 \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432 \u043F\u043E\u043A\u0430 \u043D\u0435\u0442 \u2014 \u0441\u043E\u0437\u0434\u0430\u0439\u0442\u0435 \u0438\u043B\u0438 \u043E\u0442\u043A\u0440\u043E\u0439\u0442\u0435 \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u043E: \u0431\u043B\u043E\u043A [ENGRAM] \u0440\u0435\u043D\u0434\u0435\u0440\u0438\u0442\u0441\u044F \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u043E \u0434\u043B\u044F \u043A\u0430\u0436\u0434\u043E\u0433\u043E.",
|
|
5521
|
+
"\u6CE8\u5165\u9884\u89C8\uFF08[ENGRAM] \xB7 [ESR]\uFF09": "\u041F\u0440\u0435\u0434\u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440 \u0432\u043D\u0435\u0434\u0440\u0435\u043D\u0438\u044F ([ENGRAM] \xB7 [ESR])",
|
|
5522
|
+
"\u6BCF\u4E2A\u4F1A\u8BDD\u5B9E\u9645\u6CE8\u5165\u7684\u63D0\u793A\u5757 \xB7 \u4F1A\u8BDD\u5185\u51BB\u7ED3\u4E00\u6B21\uFF08order 40/41\uFF0C\u524D\u7F00\u7A33\u5B9A\u590D\u7528 KV \u7F13\u5B58\uFF09": "\u0411\u043B\u043E\u043A\u0438, \u0440\u0435\u0430\u043B\u044C\u043D\u043E \u0432\u043D\u0435\u0434\u0440\u044F\u0435\u043C\u044B\u0435 \u0432 \u043A\u0430\u0436\u0434\u0443\u044E \u0441\u0435\u0441\u0441\u0438\u044E \xB7 \u0444\u0438\u043A\u0441\u0438\u0440\u0443\u044E\u0442\u0441\u044F \u043E\u0434\u0438\u043D \u0440\u0430\u0437 \u0437\u0430 \u0441\u0435\u0441\u0441\u0438\u044E (order 40/41, \u0441\u0442\u0430\u0431\u0438\u043B\u044C\u043D\u044B\u0439 \u043F\u0440\u0435\u0444\u0438\u043A\u0441 \u043F\u0435\u0440\u0435\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442 KV-\u043A\u044D\u0448)",
|
|
5523
|
+
"\u8BB0\u5FC6 {0}": "\u041F\u0430\u043C\u044F\u0442\u044C {0}",
|
|
5524
|
+
"\u4EFB\u52A1 {0} active": "\u0417\u0430\u0434\u0430\u0447\u0438 {0} active",
|
|
5525
|
+
"\u5173\u7CFB {0}": "\u0421\u0432\u044F\u0437\u0438 {0}",
|
|
5526
|
+
"\u8282\u70B9 {0}": "\u0423\u0437\u043B\u044B {0}",
|
|
5527
|
+
"\u5171 ~{0} tokens": "\u0412\u0441\u0435\u0433\u043E ~{0} \u0442\u043E\u043A\u0435\u043D\u043E\u0432",
|
|
5528
|
+
"\u8BFB\u53D6\u4E2D\u2026": "\u0427\u0442\u0435\u043D\u0438\u0435\u2026",
|
|
5529
|
+
"\u7D22\u5F15\u5757": "\u0411\u043B\u043E\u043A \u0438\u043D\u0434\u0435\u043A\u0441\u0430",
|
|
5530
|
+
"\u5DF2\u590D\u5236 \u2713": "\u0421\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u043D\u043E \u2713",
|
|
5531
|
+
"\u590D\u5236": "\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C",
|
|
5532
|
+
"\u6E32\u67D3\u4E2D\u2026": "\u0420\u0435\u043D\u0434\u0435\u0440\u0438\u043D\u0433\u2026",
|
|
5533
|
+
"\u8BE5\u5DE5\u4F5C\u533A\u6CA1\u6709\u53EF\u6CE8\u5165\u7684\u8BB0\u5FC6/\u4EFB\u52A1/\u5173\u7CFB ([ENGRAM] \u5757\u4E3A\u7A7A)\u3002": "\u0412 \u044D\u0442\u043E\u043C \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u0435 \u043D\u0435\u0442 \u043F\u0430\u043C\u044F\u0442\u0438/\u0437\u0430\u0434\u0430\u0447/\u0441\u0432\u044F\u0437\u0435\u0439 \u0434\u043B\u044F \u0432\u043D\u0435\u0434\u0440\u0435\u043D\u0438\u044F (\u0431\u043B\u043E\u043A [ENGRAM] \u043F\u0443\u0441\u0442).",
|
|
5534
|
+
" \u884C": " \u0441\u0442\u0440\u043E\u043A",
|
|
5535
|
+
" \u5B57\u7B26": " \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432",
|
|
5536
|
+
"\u4EFB\u52A1 \xB7 \u95ED\u73AF\u5757": "\u0417\u0430\u0434\u0430\u0447\u0438 \xB7 \u0431\u043B\u043E\u043A \u0437\u0430\u043A\u0440\u044B\u0442\u0438\u044F",
|
|
5537
|
+
"\u8BE5\u5DE5\u4F5C\u533A\u6CA1\u6709\u4EFB\u52A1 ([ESR] \u5757\u4E3A\u7A7A)\u3002": "\u0412 \u044D\u0442\u043E\u043C \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u0435 \u043D\u0435\u0442 \u0437\u0430\u0434\u0430\u0447 (\u0431\u043B\u043E\u043A [ESR] \u043F\u0443\u0441\u0442).",
|
|
5538
|
+
"\u8BF4\u660E\uFF1A\u5757\u7531\u4E0E\u7CFB\u7EDF\u63D0\u793A\u76F8\u540C\u7684\u7EAF\u51FD\u6570\u5B9E\u65F6\u6E32\u67D3\uFF08\u6BCF 20s \u5237\u65B0\uFF09\uFF1B\u300Cescalate:\u300D\u884C\u662F\u6700\u8FD1 14 \u5929 mem/esr \u8C03\u7528\u5931\u8861\u65F6\u81EA\u52A8\u9644\u52A0\u7684\u6570\u636E\u9A71\u52A8\u63D0\u9192\uFF0C\u884C\u4E3A\u6539\u5584\u540E\u81EA\u52A8\u6D88\u5931\u3002\u590D\u5236\u6309\u94AE\u53EF\u76F4\u63A5\u628A\u6CE8\u5165\u5757 \u8D34\u8FDB\u63D0\u793A\u8BCD\u5BA1\u8BA1\u3002": "\u041F\u043E\u044F\u0441\u043D\u0435\u043D\u0438\u0435: \u0431\u043B\u043E\u043A\u0438 \u0440\u0435\u043D\u0434\u0435\u0440\u044F\u0442\u0441\u044F \u0442\u043E\u0439 \u0436\u0435 \u0447\u0438\u0441\u0442\u043E\u0439 \u0444\u0443\u043D\u043A\u0446\u0438\u0435\u0439, \u0447\u0442\u043E \u0438 \u0441\u0438\u0441\u0442\u0435\u043C\u043D\u044B\u0439 \u043F\u0440\u043E\u043C\u043F\u0442 (\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u043A\u0430\u0436\u0434\u044B\u0435 20 \u0441); \u0441\u0442\u0440\u043E\u043A\u0430 \xABescalate:\xBB \u2014 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0430\u044F \u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u0430 \u043F\u043E \u0434\u0430\u043D\u043D\u044B\u043C, \u0434\u043E\u0431\u0430\u0432\u043B\u044F\u0435\u043C\u0430\u044F \u043F\u0440\u0438 \u0434\u0438\u0441\u0431\u0430\u043B\u0430\u043D\u0441\u0435 \u0432\u044B\u0437\u043E\u0432\u043E\u0432 mem/esr \u0437\u0430 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435 14 \u0434\u043D\u0435\u0439, \u0438 \u0438\u0441\u0447\u0435\u0437\u0430\u0435\u0442 \u043F\u0440\u0438 \u0443\u043B\u0443\u0447\u0448\u0435\u043D\u0438\u0438. \u041A\u043D\u043E\u043F\u043A\u0430 \u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0438\u0442 \u0431\u043B\u043E\u043A \u043F\u0440\u044F\u043C\u043E \u0432 \u0430\u0443\u0434\u0438\u0442 \u043F\u0440\u043E\u043C\u043F\u0442\u0430.",
|
|
5539
|
+
"\u65E0\u6CD5\u89E3\u6790 {0}\uFF1A{1}": "\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0440\u0430\u0437\u043E\u0431\u0440\u0430\u0442\u044C {0}: {1}",
|
|
5540
|
+
"\u66FF\u6362\u6A21\u5F0F\u4F1A\u5148\u6E05\u7A7A\u76EE\u6807\u5DE5\u4F5C\u533A \u2014 \u8BF7\u5148\u52FE\u9009\u786E\u8BA4": "\u0420\u0435\u0436\u0438\u043C \u0437\u0430\u043C\u0435\u043D\u044B \u0441\u043D\u0430\u0447\u0430\u043B\u0430 \u043E\u0447\u0438\u0449\u0430\u0435\u0442 \u0446\u0435\u043B\u0435\u0432\u043E\u0435 \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u043E \u2014 \u043E\u0442\u043C\u0435\u0442\u044C\u0442\u0435 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u0435",
|
|
5541
|
+
"\u8BC1\u636E\u4ECD\u6709\u7F3A\u53E3\uFF1A{0}{1} \u2014 \u4EFB\u52A1\u4FDD\u6301 ACTIVE\uFF0C\u8865\u9F50\u540E\u518D\u63D0\u4EA4": "\u0414\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432 \u0432\u0441\u0451 \u0435\u0449\u0451 \u043D\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442: {0}{1} \u2014 \u0437\u0430\u0434\u0430\u0447\u0430 \u043E\u0441\u0442\u0430\u0451\u0442\u0441\u044F ACTIVE; \u0434\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435 \u0438 \u043E\u0442\u043F\u0440\u0430\u0432\u044C\u0442\u0435 \u0441\u043D\u043E\u0432\u0430",
|
|
5542
|
+
"\u8BB0\u5FC6 {0} \u4E0D\u5728\u5F53\u524D\u52A0\u8F7D\u5217\u8868 \u2014 \u5207\u6362\u5230\u300C\u8BB0\u5FC6\u300D\u9875\u52A0\u8F7D\u540E\u53EF\u7528": "\u041F\u0430\u043C\u044F\u0442\u044C {0} \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 \u0442\u0435\u043A\u0443\u0449\u0435\u043C \u0441\u043F\u0438\u0441\u043A\u0435 \u2014 \u043F\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u043D\u0430 \u0432\u043A\u043B\u0430\u0434\u043A\u0443 \xAB\u041F\u0430\u043C\u044F\u0442\u044C\xBB, \u0447\u0442\u043E\u0431\u044B \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0435\u0451",
|
|
5543
|
+
"Engram \u8BB0\u5FC6": "\u041F\u0430\u043C\u044F\u0442\u044C Engram",
|
|
5544
|
+
"\u8DE8\u4F1A\u8BDD\u8BB0\u5FC6 \xB7 \u96F6 LLM \u81EA\u52A8\u6355\u83B7 \xB7 \u7B26\u53F7\u7D22\u5F15\u6E10\u8FDB\u62AB\u9732 \u2014 \u6570\u636E\u6E90 ~/.dsh/storages/dsh_engram.json": "\u041F\u0430\u043C\u044F\u0442\u044C \u043C\u0435\u0436\u0434\u0443 \u0441\u0435\u0441\u0441\u0438\u044F\u043C\u0438 \xB7 \u0430\u0432\u0442\u043E\u0437\u0430\u0445\u0432\u0430\u0442 \u0431\u0435\u0437 LLM \xB7 \u043F\u043E\u0441\u0442\u0435\u043F\u0435\u043D\u043D\u043E\u0435 \u0440\u0430\u0441\u043A\u0440\u044B\u0442\u0438\u0435 \u0441\u0438\u043C\u0432\u043E\u043B\u044C\u043D\u043E\u0433\u043E \u0438\u043D\u0434\u0435\u043A\u0441\u0430 \u2014 \u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A ~/.dsh/storages/dsh_engram.json",
|
|
5545
|
+
"\u8BB0\u5FC6": "\u041F\u0430\u043C\u044F\u0442\u044C",
|
|
5546
|
+
"ESR\uFF08\u4EFB\u52A1 \xB7 \u8282\u70B9 \xB7 \u5173\u7CFB\uFF09": "ESR (\u0437\u0430\u0434\u0430\u0447\u0438 \xB7 \u0443\u0437\u043B\u044B \xB7 \u0441\u0432\u044F\u0437\u0438)",
|
|
5547
|
+
"\u6CE8\u5165\u9884\u89C8": "\u041F\u0440\u0435\u0434\u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440 \u0432\u043D\u0435\u0434\u0440\u0435\u043D\u0438\u044F",
|
|
5548
|
+
"\u9065\u6D4B": "\u0422\u0435\u043B\u0435\u043C\u0435\u0442\u0440\u0438\u044F",
|
|
5549
|
+
"\u8BBE\u7F6E": "\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438",
|
|
5550
|
+
"\u5DE5\u4F5C\u533A\uFF1A": "\u0420\u0430\u0431\u043E\u0447\u0435\u0435 \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u043E: ",
|
|
5551
|
+
" \u6761\uFF09": " \u0437\u0430\u043F\u0438\u0441\u0435\u0439)",
|
|
5552
|
+
"Playbook \u5F85\u6279\u51C6\uFF08{0} \u6761 / \u5171 {1}\uFF09": "Playbook \u0436\u0434\u0451\u0442 \u043E\u0434\u043E\u0431\u0440\u0435\u043D\u0438\u044F ({0} \u0438\u0437 {1})",
|
|
5553
|
+
"\u8BC1\u636E\u5DF2\u8FC7\u5173\uFF08\u22653 \u6B21\u9A8C\u8BC1\u300114 \u5929\u5185\uFF09\u3002\u5199\u6587\u4EF6\u7ED9\u5BBF\u4E3B\u5E7F\u544A\u9700\u8981\u4F60\u70B9\u5934 \u2014\u2014 \u8BC1\u636E\u8BC1\u660E\u547D\u4EE4\u8DD1\u901A\u8FC7\uFF0C\u4E0D\u8BC1\u660E\u6307\u4EE4\u662F\u5BF9\u7684\u3002 \u6279\u51C6\u540E\uFF1A": "\u0414\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u0430 \u043F\u0440\u043E\u0448\u043B\u0438 (\u22653 \u043F\u0440\u043E\u0432\u0435\u0440\u043E\u043A \u0437\u0430 14 \u0434\u043D\u0435\u0439). \u0417\u0430\u043F\u0438\u0441\u044C \u0444\u0430\u0439\u043B\u0430 \u0441 \u0440\u0435\u043A\u043B\u0430\u043C\u043E\u0439 host \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0432\u0430\u0448\u0435\u0433\u043E \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u044F \u2014 \u0434\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u0430 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u044E\u0442, \u0447\u0442\u043E \u043A\u043E\u043C\u0430\u043D\u0434\u0430 \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u043B\u0430\u0441\u044C, \u043D\u043E \u043D\u0435 \u0435\u0451 \u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u043E\u0441\u0442\u044C. \u041F\u043E\u0441\u043B\u0435 \u043E\u0434\u043E\u0431\u0440\u0435\u043D\u0438\u044F:",
|
|
5554
|
+
" \xB7 \u8BC1\u636E {0} \u6B21": " \xB7 \u0434\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432: {0}",
|
|
5555
|
+
"\u64A4\u9500": "\u041E\u0442\u043E\u0437\u0432\u0430\u0442\u044C",
|
|
5556
|
+
"\u6279\u51C6": "\u041E\u0434\u043E\u0431\u0440\u0438\u0442\u044C",
|
|
5557
|
+
"\u8BB0\u5FC6 (active)": "\u041F\u0430\u043C\u044F\u0442\u044C (active)",
|
|
5558
|
+
"\u8BB0\u5FC6 (active, \u5168\u5C40)": "\u041F\u0430\u043C\u044F\u0442\u044C (active, \u0432\u0441\u0435 \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u0430)",
|
|
5559
|
+
"\u4EFB\u52A1 (active)": "\u0417\u0430\u0434\u0430\u0447\u0438 (active)",
|
|
5560
|
+
"\u4EFB\u52A1 (active, \u5168\u5C40)": "\u0417\u0430\u0434\u0430\u0447\u0438 (active, \u0432\u0441\u0435 \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u0430)",
|
|
5561
|
+
"\u5173\u7CFB (\u5168\u5C40)": "\u0421\u0432\u044F\u0437\u0438 (\u0432\u0441\u0435 \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u0430)",
|
|
5562
|
+
"\u8282\u70B9 (\u5168\u5C40)": "\u0423\u0437\u043B\u044B (\u0432\u0441\u0435 \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u0430)",
|
|
5563
|
+
"\u5DE5\u4F5C\u533A": "\u041F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u043E",
|
|
5564
|
+
"[ENGRAM] \u7D22\u5F15 token / \u5DE5\u4F5C\u533A": "\u0422\u043E\u043A\u0435\u043D\u044B \u0438\u043D\u0434\u0435\u043A\u0441\u0430 [ENGRAM] \u043D\u0430 \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u043E",
|
|
5565
|
+
"GC \u5DF2\u5F52\u6863 \xB7 \u94FE\u63A5-{0}": "GC \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u043B \xB7 \u0441\u0432\u044F\u0437\u0435\u0439: {0}",
|
|
5566
|
+
"\u4E0A\u4E0B\u6587\u51C0 token \xB7 \u8BF7\u6C42 {0}": "\u0427\u0438\u0441\u0442\u044B\u0435 \u0442\u043E\u043A\u0435\u043D\u044B \u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442\u0430 \xB7 \u0437\u0430\u043F\u0440\u043E\u0441\u043E\u0432: {0}",
|
|
5567
|
+
"\u8BB0\u5FC6 GC\uFF08pi-esr \u7EA6\u675F\uFF09": "GC \u043F\u0430\u043C\u044F\u0442\u0438 (\u043F\u0440\u0430\u0432\u0438\u043B\u0430 pi-esr)",
|
|
5568
|
+
"\u4EC5\u9884\u89C8\uFF08dry run\uFF09": "\u0422\u043E\u043B\u044C\u043A\u043E \u043F\u0440\u0435\u0434\u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440 (dry run)",
|
|
5569
|
+
"\u8FD0\u884C GC": "\u0417\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C GC",
|
|
5570
|
+
"\u4E0A\u6B21 {0}": "\u041F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0439 \u0440\u0430\u0437 {0}",
|
|
5571
|
+
"\u5DE5\u4F5C\u96C6\uFF08active \u4EFB\u52A1\u5F15\u7528 / \u4EFB\u52A1\u8BB0\u5FC6 / \u5DF2\u5165\u7D22\u5F15\u547D\u4E2D\uFF09\u6C38\u4E0D\u9A71\u9010\uFF1BTTL \u8FC7\u671F\u5F52\u6863\u3001\u8D85\u5BB9\u91CF\u6DD8\u6C70\u3001stable \u4EFB\u52A1\u8D85\u7A97\u5F52\u6863\u3001\u60AC\u7A7A\u94FE\u63A5\u6E05\u7406\u3002\u53EA\u5F52\u6863\u4E0D\u786C\u5220\u2014\u2014\u6761\u76EE id \u4FDD\u6301\u53EF\u91CD\u53D6\u3002": "\u0420\u0430\u0431\u043E\u0447\u0438\u0439 \u043D\u0430\u0431\u043E\u0440 (\u0441\u0441\u044B\u043B\u043A\u0438 \u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0445 \u0437\u0430\u0434\u0430\u0447 / \u043F\u0430\u043C\u044F\u0442\u044C \u0437\u0430\u0434\u0430\u0447 / \u043F\u043E\u043F\u0430\u0434\u0430\u043D\u0438\u044F \u0432 \u0438\u043D\u0434\u0435\u043A\u0441) \u043D\u0438\u043A\u043E\u0433\u0434\u0430 \u043D\u0435 \u0432\u044B\u0442\u0435\u0441\u043D\u044F\u0435\u0442\u0441\u044F; \u0438\u0441\u0442\u0451\u043A\u0448\u0438\u0435 \u043F\u043E TTL \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u0443\u044E\u0442\u0441\u044F, \u0441\u0432\u0435\u0440\u0445 \u043B\u0438\u043C\u0438\u0442\u0430 \u0432\u044B\u0442\u0435\u0441\u043D\u044F\u044E\u0442\u0441\u044F, \u0437\u0430\u043A\u0440\u044B\u0442\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432\u043D\u0435 \u043E\u043A\u043D\u0430 \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u0443\u044E\u0442\u0441\u044F, \u0432\u0438\u0441\u044F\u0447\u0438\u0435 \u0441\u0432\u044F\u0437\u0438 \u0447\u0438\u0441\u0442\u044F\u0442\u0441\u044F. \u0422\u043E\u043B\u044C\u043A\u043E \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435, \u0431\u0435\u0437 \u0436\u0451\u0441\u0442\u043A\u043E\u0433\u043E \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u044F \u2014 id \u043E\u0441\u0442\u0430\u0451\u0442\u0441\u044F \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u043C \u0434\u043B\u044F \u043F\u043E\u0432\u0442\u043E\u0440\u043D\u043E\u0433\u043E \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F.",
|
|
5572
|
+
"dry-run \u9884\u89C8\uFF1A": "\u041F\u0440\u0435\u0434\u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440 dry-run: ",
|
|
5573
|
+
"\u5DF2\u6267\u884C\uFF1A": "\u0412\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043E: ",
|
|
5574
|
+
"\u5F52\u6863\u8BB0\u5FC6 ": "\u0412 \u0430\u0440\u0445\u0438\u0432 \u043F\u0430\u043C\u044F\u0442\u0438: ",
|
|
5575
|
+
" \xB7 \u5F52\u6863\u4EFB\u52A1 ": " \xB7 \u0432 \u0430\u0440\u0445\u0438\u0432 \u0437\u0430\u0434\u0430\u0447: ",
|
|
5576
|
+
" \xB7 \u6E05\u7406\u94FE\u63A5 ": " \xB7 \u043E\u0447\u0438\u0449\u0435\u043D\u043E \u0441\u0432\u044F\u0437\u0435\u0439: ",
|
|
5577
|
+
" \xB7 \u4FDD\u62A4 ": " \xB7 \u0437\u0430\u0449\u0438\u0449\u0435\u043D\u043E: ",
|
|
5578
|
+
"\u6570\u636E\u5907\u4EFD\uFF08export / import\uFF09": "\u0420\u0435\u0437\u0435\u0440\u0432\u043D\u0430\u044F \u043A\u043E\u043F\u0438\u044F (export / import)",
|
|
5579
|
+
"\u4E0B\u8F7D\u5F53\u524D\u5DE5\u4F5C\u533A\uFF08\u6216\u5168\u90E8\uFF09\u7684 dsh-engram/export v1 \u8F6C\u50A8": "\u0421\u043A\u0430\u0447\u0430\u0442\u044C \u0434\u0430\u043C\u043F dsh-engram/export v1 \u0442\u0435\u043A\u0443\u0449\u0435\u0433\u043E (\u0438\u043B\u0438 \u0432\u0441\u0435\u0445) \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u0430",
|
|
5580
|
+
"\u5BFC\u51FA JSON": "\u042D\u043A\u0441\u043F\u043E\u0440\u0442 JSON",
|
|
5581
|
+
"\u9009\u62E9\u5BFC\u5165\u6587\u4EF6\u2026": "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0444\u0430\u0439\u043B \u0434\u043B\u044F \u0438\u043C\u043F\u043E\u0440\u0442\u0430\u2026",
|
|
5582
|
+
"\u5BFC\u51FA\u5373\u53EF\u79FB\u690D\u5907\u4EFD\uFF08\u8BB0\u5FC6/\u4EFB\u52A1/\u5173\u7CFB/\u8282\u70B9\uFF0C\u542B\u5F52\u6863\uFF09\uFF1B": "\u042D\u043A\u0441\u043F\u043E\u0440\u0442 \u2014 \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0438\u043C\u0430\u044F \u043A\u043E\u043F\u0438\u044F (\u043F\u0430\u043C\u044F\u0442\u044C/\u0437\u0430\u0434\u0430\u0447\u0438/\u0441\u0432\u044F\u0437\u0438/\u0443\u0437\u043B\u044B, \u0432\u043A\u043B\u044E\u0447\u0430\u044F \u0430\u0440\u0445\u0438\u0432); ",
|
|
5583
|
+
" \u53EA\u8865\u7F3A\u5931\uFF08\u5E42\u7B49\uFF09\uFF0C": " \u0434\u043E\u0431\u0430\u0432\u043B\u044F\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044E\u0449\u0435\u0435 (\u0438\u0434\u0435\u043C\u043F\u043E\u0442\u0435\u043D\u0442\u043D\u043E), ",
|
|
5584
|
+
" \u5148\u6E05\u7A7A\u76EE\u6807\u5DE5\u4F5C\u533A\u518D\u6062\u590D\u3002\u8BB0\u5FC6\u6B63\u6587\u4E0E\u6240\u6709\u5199\u5165\u8DEF\u5F84\u4E00\u6837\u8FC7\u8131\u654F\u3002": " \u0441\u043D\u0430\u0447\u0430\u043B\u0430 \u043E\u0447\u0438\u0449\u0430\u0435\u0442 \u0446\u0435\u043B\u0435\u0432\u043E\u0435 \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u043E, \u0437\u0430\u0442\u0435\u043C \u0432\u043E\u0441\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0435\u0442. \u0422\u0435\u043A\u0441\u0442 \u043F\u0430\u043C\u044F\u0442\u0438, \u043A\u0430\u043A \u0438 \u0432\u0441\u0435 \u043F\u0443\u0442\u0438 \u0437\u0430\u043F\u0438\u0441\u0438, \u043F\u0440\u043E\u0445\u043E\u0434\u0438\u0442 \u0434\u0435\u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044E.",
|
|
5585
|
+
"\u5408\u5E76\uFF08merge\uFF0C\u5E42\u7B49\uFF09": "\u0421\u043B\u0438\u044F\u043D\u0438\u0435 (merge, \u0438\u0434\u0435\u043C\u043F\u043E\u0442\u0435\u043D\u0442\u043D\u043E)",
|
|
5586
|
+
"\u66FF\u6362\uFF08replace\uFF0C\u5148\u6E05\u7A7A\u5DE5\u4F5C\u533A\uFF09": "\u0417\u0430\u043C\u0435\u043D\u0430 (replace, \u0441\u043D\u0430\u0447\u0430\u043B\u0430 \u043E\u0447\u0438\u0449\u0430\u0435\u0442 \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u043E)",
|
|
5587
|
+
"\u6211\u786E\u8BA4\u66FF\u6362{0}": "\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u044E \u0437\u0430\u043C\u0435\u043D\u0443{0}",
|
|
5588
|
+
"\uFF08\u9700\u5148\u9009\u5DE5\u4F5C\u533A\uFF09": " (\u0441\u043D\u0430\u0447\u0430\u043B\u0430 \u0432\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u043E)",
|
|
5589
|
+
"\u9884\u89C8\u5BFC\u5165": "\u041F\u0440\u0435\u0434\u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440 \u0438\u043C\u043F\u043E\u0440\u0442\u0430",
|
|
5590
|
+
"\u6267\u884C\u5BFC\u5165": "\u0412\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u044C \u0438\u043C\u043F\u043E\u0440\u0442",
|
|
5591
|
+
"\u5DF2\u5BFC\u5165\uFF1A": "\u0418\u043C\u043F\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u043E: ",
|
|
5592
|
+
" \xB7 \u8DF3\u8FC7 {0}": " \xB7 \u043F\u0440\u043E\u043F\u0443\u0449\u0435\u043D\u043E: {0}",
|
|
5593
|
+
"\u5168\u90E8\u7C7B\u578B": "\u0412\u0441\u0435 \u0442\u0438\u043F\u044B",
|
|
5594
|
+
"\u4EC5\u6D3B\u52A8": "\u0422\u043E\u043B\u044C\u043A\u043E \u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0435",
|
|
5595
|
+
"\u5168\u90E8\u72B6\u6001": "\u0412\u0441\u0435 \u0441\u0442\u0430\u0442\u0443\u0441\u044B",
|
|
5596
|
+
"\u5DF2\u5F52\u6863": "\u0412 \u0430\u0440\u0445\u0438\u0432\u0435",
|
|
5597
|
+
"\u641C\u7D22\u8BB0\u5FC6\u2026": "\u041F\u043E\u0438\u0441\u043A \u043F\u0430\u043C\u044F\u0442\u0438\u2026",
|
|
5598
|
+
" \u884C / {0} \u5B57\u7B26": " \u0441\u0442\u0440\u043E\u043A / {0} \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432",
|
|
5599
|
+
"\u7C7B\u578B": "\u0422\u0438\u043F",
|
|
5600
|
+
"\u6682\u65E0\u8BB0\u5FC6 \u2014 \u4F7F\u7528 engram_store \u663E\u5F0F\u8BB0\u5F55\uFF0C\u6216\u8BA9\u81EA\u52A8\u6355\u83B7\u5DE5\u4F5C\uFF08git \u63D0\u4EA4 / \u5173\u952E\u6587\u4EF6\u7F16\u8F91 / \u5DE5\u5177\u9519\u8BEF\uFF09": "\u041F\u0430\u043C\u044F\u0442\u0438 \u043F\u043E\u043A\u0430 \u043D\u0435\u0442 \u2014 \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u0435 \u044F\u0432\u043D\u043E \u0447\u0435\u0440\u0435\u0437 engram_store \u0438\u043B\u0438 \u0434\u0430\u0439\u0442\u0435 \u0441\u0440\u0430\u0431\u043E\u0442\u0430\u0442\u044C \u0430\u0432\u0442\u043E\u0437\u0430\u0445\u0432\u0430\u0442\u0443 (git-\u043A\u043E\u043C\u043C\u0438\u0442\u044B / \u043F\u0440\u0430\u0432\u043A\u0438 \u043A\u043B\u044E\u0447\u0435\u0432\u044B\u0445 \u0444\u0430\u0439\u043B\u043E\u0432 / \u043E\u0448\u0438\u0431\u043A\u0438 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432)",
|
|
5601
|
+
" \u6761": " \u0437\u0430\u043F\u0438\u0441\u0435\u0439",
|
|
5602
|
+
"\u5DF2\u88AB {0} \u66FF\u4EE3\uFF08\u65E7\u884C\u4FDD\u7559\u3001\u53EC\u56DE\u964D\u7EA7\uFF09": "\u0417\u0430\u043C\u0435\u043D\u0435\u043D\u043E \u043D\u0430 {0} (\u0441\u0442\u0430\u0440\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0430, \u0445\u0443\u0436\u0435 \u043D\u0430\u0445\u043E\u0434\u0438\u0442\u0441\u044F)",
|
|
5603
|
+
"\u5DF2\u66FF\u6362": "\u0417\u0430\u043C\u0435\u043D\u0435\u043D\u043E",
|
|
5604
|
+
"\u5C55\u5F00\u5168\u6587": "\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043F\u043E\u043B\u043D\u043E\u0441\u0442\u044C\u044E",
|
|
5605
|
+
"\u6253\u5F00\u88AB\u66FF\u4EE3\u7684\u65E7\u8BB0\u5FC6 {0}": "\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0441\u0442\u0430\u0440\u0443\u044E \u0437\u0430\u043C\u0435\u043D\u0451\u043D\u043D\u0443\u044E \u043F\u0430\u043C\u044F\u0442\u044C {0}",
|
|
5606
|
+
"\u5728\u4FA7\u680F\u6253\u5F00\u8BE6\u60C5": "\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0434\u0435\u0442\u0430\u043B\u0438 \u0432 \u0431\u043E\u043A\u043E\u0432\u043E\u0439 \u043F\u0430\u043D\u0435\u043B\u0438",
|
|
5607
|
+
"\u8BE6\u60C5": "\u0414\u0435\u0442\u0430\u043B\u0438",
|
|
5608
|
+
"\u5F52\u6863\uFF08TTL/\u8F6F\u5220\uFF0C\u53EF\u6062\u590D\u4E0D\u8F7D\u5165\u7D22\u5F15\uFF09": "\u0410\u0440\u0445\u0438\u0432 (TTL/\u043C\u044F\u0433\u043A\u043E\u0435 \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0435, \u0432\u043E\u0441\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u043C\u0430, \u043D\u0435 \u043F\u043E\u043F\u0430\u0434\u0430\u0435\u0442 \u0432 \u0438\u043D\u0434\u0435\u043A\u0441)",
|
|
5609
|
+
"\u5F52\u6863": "\u0410\u0440\u0445\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u0442\u044C",
|
|
5610
|
+
"\u6C38\u4E45\u5220\u9664": "\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u043D\u0430\u0432\u0441\u0435\u0433\u0434\u0430",
|
|
5611
|
+
"\u5220\u9664\u8FD9\u6761\u8BB0\u5FC6?\n{0}": "\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u044D\u0442\u0443 \u0437\u0430\u043F\u0438\u0441\u044C?\n{0}",
|
|
5612
|
+
"\u5220\u9664": "\u0423\u0434\u0430\u043B\u0438\u0442\u044C",
|
|
5613
|
+
"\u2039 \u4E0A\u4E00\u9875": "\u2039 \u041D\u0430\u0437\u0430\u0434",
|
|
5614
|
+
"\u7B2C {0} / {1} \u9875 \xB7 \u5171 {2} \u6761": "\u0421\u0442\u0440\u0430\u043D\u0438\u0446\u0430 {0} \u0438\u0437 {1} \xB7 \u0432\u0441\u0435\u0433\u043E {2}",
|
|
5615
|
+
"\u4E0B\u4E00\u9875 \u203A": "\u0412\u043F\u0435\u0440\u0451\u0434 \u203A",
|
|
5616
|
+
"\u5DE5\u5177\u8C03\u7528\u4E0E\u547D\u4E2D\u7EDF\u8BA1\u89C1\u300C\u9065\u6D4B\u300Dtab\uFF1B[ESR] \u6CE8\u5165\u5757\u7684 escalate \u63D0\u9192\u4F9D\u636E\u771F\u5B9E\u6570\u636E\u52A8\u6001\u51FA\u73B0\u3002": "\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430 \u0432\u044B\u0437\u043E\u0432\u043E\u0432 \u0438 \u043F\u043E\u043F\u0430\u0434\u0430\u043D\u0438\u0439 \u2014 \u043D\u0430 \u0432\u043A\u043B\u0430\u0434\u043A\u0435 \xAB\u0422\u0435\u043B\u0435\u043C\u0435\u0442\u0440\u0438\u044F\xBB; \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F escalate \u0432 \u0431\u043B\u043E\u043A\u0435 [ESR] \u043F\u043E\u044F\u0432\u043B\u044F\u044E\u0442\u0441\u044F \u043F\u043E \u0440\u0435\u0430\u043B\u044C\u043D\u044B\u043C \u0434\u0430\u043D\u043D\u044B\u043C.",
|
|
5617
|
+
"\u5217\u8868": "\u0421\u043F\u0438\u0441\u043E\u043A",
|
|
5618
|
+
"\u5173\u7CFB\u56FE\u8C31\uFF08esr_link \u529B\u5BFC\u5411\u56FE\uFF09": "\u0413\u0440\u0430\u0444 \u0441\u0432\u044F\u0437\u0435\u0439 (\u0441\u0438\u043B\u043E\u0432\u043E\u0439 \u0433\u0440\u0430\u0444 esr_link)",
|
|
5619
|
+
"\u5DE5\u4F5C\u533A\uFF1A{0}": "\u0420\u0430\u0431\u043E\u0447\u0435\u0435 \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u043E: {0}",
|
|
5620
|
+
"ESR \u4EFB\u52A1\uFF08\u8BC1\u636E\u95ED\u73AF\uFF09": "\u0417\u0430\u0434\u0430\u0447\u0438 ESR (\u0437\u0430\u043A\u0440\u044B\u0442\u0438\u0435 \u0441 \u0434\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u0430\u043C\u0438)",
|
|
5621
|
+
"\xB7 \u5168\u90E8\u5DE5\u4F5C\u533A": "\xB7 \u0412\u0441\u0435 \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u0430",
|
|
5622
|
+
"\u65B0\u5EFA\u4EFB\u52A1": "\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443",
|
|
5623
|
+
"\u6682\u65E0\u4EFB\u52A1 \u2014 \u7528\u4E0A\u65B9\u300C\u65B0\u5EFA\u4EFB\u52A1\u300D\u6216 esr_task \u5DE5\u5177\u521B\u5EFA": "\u0417\u0430\u0434\u0430\u0447 \u043F\u043E\u043A\u0430 \u043D\u0435\u0442 \u2014 \u0441\u043E\u0437\u0434\u0430\u0439\u0442\u0435 \u0447\u0435\u0440\u0435\u0437 \xAB\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443\xBB \u0432\u044B\u0448\u0435 \u0438\u043B\u0438 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442 esr_task",
|
|
5624
|
+
" \u4E2A\u4EFB\u52A1": " \u0437\u0430\u0434\u0430\u0447",
|
|
5625
|
+
"\u586B\u5199\u8BC1\u636E\u5173\u95ED\u2026": "\u0417\u0430\u043A\u0440\u044B\u0442\u044C \u0441 \u0434\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u0430\u043C\u0438\u2026",
|
|
5626
|
+
"\u7F3A\u53E3\uFF1A{0} \u2014 \u63D0\u4F9B artifact / evaluation / memory_ref \u540E\u8F6C\u4E3A STABLE": "\u041F\u0440\u043E\u0431\u0435\u043B\u044B: {0} \u2014 \u043F\u043E\u0441\u043B\u0435 artifact / evaluation / memory_ref \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u0442\u0430\u043D\u0435\u0442 STABLE",
|
|
5627
|
+
"\u8BB0\u5FC6\u5F15\u7528\uFF1A": "\u0421\u0441\u044B\u043B\u043A\u0438 \u043D\u0430 \u043F\u0430\u043C\u044F\u0442\u044C: ",
|
|
5628
|
+
"\u63D0\u4F9B\u8BC1\u636E\u540E\u5173\u95ED\uFF08\u4E09\u9879\u5168\u9F50\u624D\u8F6C STABLE\uFF09": "\u0417\u0430\u043A\u0440\u044B\u0442\u044C \u0441 \u0434\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u0430\u043C\u0438 (STABLE \u0442\u043E\u043B\u044C\u043A\u043E \u043A\u043E\u0433\u0434\u0430 \u0432\u0441\u0435 \u0442\u0440\u0438 \u0435\u0441\u0442\u044C)",
|
|
5629
|
+
"artifact \u8DEF\u5F84/URL": "\u041F\u0443\u0442\u044C/URL artifact",
|
|
5630
|
+
"evaluation \u9A8C\u8BC1\u8BC1\u636E": "\u0414\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u043E \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 evaluation",
|
|
5631
|
+
"memory_refs \u9017\u53F7\u5206\u9694": "memory_refs \u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u043F\u044F\u0442\u0443\u044E",
|
|
5632
|
+
"\u63D0\u4EA4\u5173\u95ED": "\u041E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u0437\u0430\u043A\u0440\u044B\u0442\u0438\u0435",
|
|
5633
|
+
"\u8282\u70B9\u4E0E\u5173\u7CFB\uFF08esr_node / esr_link\uFF09": "\u0423\u0437\u043B\u044B \u0438 \u0441\u0432\u044F\u0437\u0438 (esr_node / esr_link)",
|
|
5634
|
+
"\u6682\u65E0\u8282\u70B9 \u2014 \u6A21\u578B\u4F1A\u4E3A\u53CD\u590D\u51FA\u73B0\u7684\u9886\u57DF\u5BF9\u8C61\u4E3B\u52A8\u767B\u8BB0\uFF08esr_node\uFF09\uFF0C\u6B64\u5904\u4E5F\u53EF\u67E5\u770B\u5173\u7CFB": "\u0423\u0437\u043B\u043E\u0432 \u043F\u043E\u043A\u0430 \u043D\u0435\u0442 \u2014 \u043C\u043E\u0434\u0435\u043B\u044C \u0441\u0430\u043C\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u044E\u0449\u0438\u0435\u0441\u044F \u043E\u0431\u044A\u0435\u043A\u0442\u044B (esr_node); \u0437\u0434\u0435\u0441\u044C \u0436\u0435 \u043C\u043E\u0436\u043D\u043E \u0441\u043C\u043E\u0442\u0440\u0435\u0442\u044C \u0441\u0432\u044F\u0437\u0438",
|
|
5635
|
+
" \u4E2A\u8282\u70B9": " \u0443\u0437\u043B\u043E\u0432",
|
|
5636
|
+
"\u5728\u4FA7\u680F\u6253\u5F00\u8282\u70B9\u8BE6\u60C5": "\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0434\u0435\u0442\u0430\u043B\u0438 \u0443\u0437\u043B\u0430 \u0432 \u0431\u043E\u043A\u043E\u0432\u043E\u0439 \u043F\u0430\u043D\u0435\u043B\u0438",
|
|
5637
|
+
"\u5173\u7CFB\uFF1A": "\u0421\u0432\u044F\u0437\u0438: ",
|
|
5638
|
+
"\u6682\u65E0\u5173\u7CFB \u2014 esr_link \u521B\u5EFA": "\u0421\u0432\u044F\u0437\u0435\u0439 \u043D\u0435\u0442 \u2014 \u0441\u043E\u0437\u0434\u0430\u0439\u0442\u0435 \u0447\u0435\u0440\u0435\u0437 esr_link",
|
|
5639
|
+
" \u6761\u5173\u7CFB": " \u0441\u0432\u044F\u0437\u0435\u0439",
|
|
5640
|
+
"\u5728\u4FA7\u680F\u6253\u5F00\u5173\u7CFB\u8BE6\u60C5": "\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0434\u0435\u0442\u0430\u043B\u0438 \u0441\u0432\u044F\u0437\u0438 \u0432 \u0431\u043E\u043A\u043E\u0432\u043E\u0439 \u043F\u0430\u043D\u0435\u043B\u0438",
|
|
5641
|
+
"\u8BBE\u7F6E\u9762\u677F\u4E0D\u53EF\u7528\uFF1Ahost \u6CA1\u6709\u4E3A dsh-engram \u63D0\u4F9B\u8BBE\u7F6E\u547D\u540D\u7A7A\u95F4\uFF08\u65E7\u7248 DSH \u8D70\u300C\u63D2\u4EF6\u300D\u2192 \u914D\u7F6E tab\uFF09\u3002": "\u041F\u0430\u043D\u0435\u043B\u044C \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0430: host \u043D\u0435 \u043F\u0440\u0435\u0434\u043E\u0441\u0442\u0430\u0432\u0438\u043B \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u043E \u0438\u043C\u0451\u043D \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A \u0434\u043B\u044F dsh-engram (\u0432 \u0441\u0442\u0430\u0440\u044B\u0445 DSH \u2014 \u0432\u043A\u043B\u0430\u0434\u043A\u0430 \xAB\u041F\u043B\u0430\u0433\u0438\u043D\u044B\xBB \u2192 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F).",
|
|
5642
|
+
"\u6E90\u81EA\u4F1A\u8BDD\u8BA1\u5212\uFF08todo_write \u4E00\u952E\u6C89\u6DC0\uFF09": "\u0418\u0437 \u043F\u043B\u0430\u043D\u0430 \u0441\u0435\u0441\u0441\u0438\u0438 (\u043F\u0435\u0440\u0435\u043D\u043E\u0441 \u0438\u0437 todo_write)",
|
|
5643
|
+
"\u6C89\u6DC0\u5931\u8D25\uFF1A{0} \u9879\u672A\u80FD\u521B\u5EFA\uFF08\u5DE5\u4F5C\u533A\u5DF2\u6EE1\u6216\u670D\u52A1\u4E0D\u53EF\u8FBE\uFF09\uFF0C\u8BF7\u5237\u65B0\u540E\u91CD\u8BD5": "\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043F\u0435\u0440\u0435\u043D\u0435\u0441\u0442\u0438: {0} \u0437\u0430\u043F\u0438\u0441\u0435\u0439 \u043D\u0435 \u0441\u043E\u0437\u0434\u0430\u043D\u043E (\u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u043E \u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D\u043E \u0438\u043B\u0438 \u0441\u0435\u0440\u0432\u0438\u0441 \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D); \u043E\u0431\u043D\u043E\u0432\u0438\u0442\u0435 \u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435",
|
|
5644
|
+
"\u90E8\u5206\u5931\u8D25\uFF1A{0}/{1} \u9879\u672A\u80FD\u521B\u5EFA": "\u0427\u0430\u0441\u0442\u0438\u0447\u043D\u0430\u044F \u043E\u0448\u0438\u0431\u043A\u0430: \u043D\u0435 \u0441\u043E\u0437\u0434\u0430\u043D\u043E {0} \u0438\u0437 {1}",
|
|
5645
|
+
"\u8DDF\u968F\u5F53\u524D\u4F1A\u8BDD \xB7 \u5DE5\u4F5C\u533A {0}\uFF08\u70B9\u51FB\u5207\u6362 ESR \u4EFB\u52A1\u6765\u6E90\uFF09": "\u0421\u043B\u0435\u0434\u0443\u0435\u0442 \u0437\u0430 \u0441\u0435\u0441\u0441\u0438\u0435\u0439 \xB7 \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u043E {0} (\u043D\u0430\u0436\u043C\u0438\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u0441\u043C\u0435\u043D\u0438\u0442\u044C \u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A \u0437\u0430\u0434\u0430\u0447 ESR)",
|
|
5646
|
+
"\u5DF2\u56FA\u5B9A\u5230 {0}\uFF08\u70B9\u51FB\u5207\u6362\uFF09": "\u0417\u0430\u043A\u0440\u0435\u043F\u043B\u0435\u043D\u043E \u0437\u0430 {0} (\u043D\u0430\u0436\u043C\u0438\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u0441\u043C\u0435\u043D\u0438\u0442\u044C)",
|
|
5647
|
+
"\u6062\u590D\u8DDF\u968F\u5F53\u524D\u4F1A\u8BDD": "\u0412\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F \u043A \u0442\u0435\u043A\u0443\u0449\u0435\u0439 \u0441\u0435\u0441\u0441\u0438\u0438",
|
|
5648
|
+
"\u8DDF\u968F\u4F1A\u8BDD \xB7 {0}{1}": "\u0421\u043B\u0435\u0434\u0443\u0435\u0442 \u0437\u0430 \u0441\u0435\u0441\u0441\u0438\u0435\u0439 \xB7 {0}{1}",
|
|
5649
|
+
"\u6682\u65E0\u5176\u4ED6\u5DE5\u4F5C\u533A": "\u0414\u0440\u0443\u0433\u0438\u0445 \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432 \u043D\u0435\u0442",
|
|
5650
|
+
"\u4EC5\u5207\u6362 ESR \u4EFB\u52A1/\u5173\u7CFB\u6765\u6E90\uFF1B\u5185\u7F6E todo \u4ECD\u5C5E\u672C\u4F1A\u8BDD": "\u041C\u0435\u043D\u044F\u0435\u0442 \u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A \u0442\u043E\u043B\u044C\u043A\u043E \u0437\u0430\u0434\u0430\u0447/\u0441\u0432\u044F\u0437\u0435\u0439 ESR; \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u044B\u0439 todo \u043E\u0441\u0442\u0430\u0451\u0442\u0441\u044F \u0432 \u044D\u0442\u043E\u0439 \u0441\u0435\u0441\u0441\u0438\u0438",
|
|
5651
|
+
"\u672C\u8F6E\u8BA1\u5212 {0}": "\u041F\u043B\u0430\u043D \u0445\u043E\u0434\u0430 {0}",
|
|
5652
|
+
"\u8FDB\u884C\u4E2D {0}": "\u0412 \u0440\u0430\u0431\u043E\u0442\u0435 {0}",
|
|
5653
|
+
"\u5C31\u7EEA {0}": "\u0413\u043E\u0442\u043E\u0432\u043E {0}",
|
|
5654
|
+
"\u5DF2\u95ED\u73AF {0}": "\u0417\u0430\u043A\u0440\u044B\u0442\u043E {0}",
|
|
5655
|
+
"API \u5931\u8D25": "\u041E\u0448\u0438\u0431\u043A\u0430 API",
|
|
5656
|
+
"ESR \u5DE5\u4F5C\u533A\u6570\u636E\u4E0D\u53EF\u8FBE\uFF08loopback-only \u5B88\u536B\uFF09\u2014 \u672C\u8F6E\u8BA1\u5212\u7167\u5E38\u5C55\u793A\uFF1B\u5B8C\u6574\u4EFB\u52A1\u4E0E\u5173\u7CFB\u89C1 \u8BBE\u7F6E \u2192 Engram \u8BB0\u5FC6\u3002": "\u0414\u0430\u043D\u043D\u044B\u0435 \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u0430 ESR \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B (\u0437\u0430\u0449\u0438\u0442\u0430 loopback-only) \u2014 \u043F\u043B\u0430\u043D \u0445\u043E\u0434\u0430 \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u043A\u0430\u043A \u043E\u0431\u044B\u0447\u043D\u043E; \u043F\u043E\u043B\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0438 \u0441\u0432\u044F\u0437\u0438 \u2014 \u0432 \u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u2192 \u041F\u0430\u043C\u044F\u0442\u044C Engram.",
|
|
5657
|
+
"\u8FD1 {0} \u5929 \xB7 todo ": "\u0417\u0430 {0} \u0434\u043D. \xB7 todo ",
|
|
5658
|
+
"\u8BB0\u5FC6 ": "\u043F\u0430\u043C\u044F\u0442\u044C ",
|
|
5659
|
+
"\u8C03\u7528 {0}": "\u0432\u044B\u0437\u043E\u0432\u043E\u0432: {0}",
|
|
5660
|
+
"\u2014 ESR \u4E3A\u96F6\uFF0Ctodo \u53EF\u7528\u300C\u6C89\u6DC0\u5230 ESR\u300D\u8F6C\u8349\u7A3F": "\u2014 ESR \u043F\u0443\u0441\u0442, todo \u043C\u043E\u0436\u043D\u043E \u043F\u0435\u0440\u0435\u043D\u0435\u0441\u0442\u0438 \u0432 \u0447\u0435\u0440\u043D\u043E\u0432\u0438\u043A \u043A\u043D\u043E\u043F\u043A\u043E\u0439 \xAB\u041F\u0435\u0440\u0435\u043D\u0435\u0441\u0442\u0438 \u0432 ESR\xBB",
|
|
5661
|
+
"\u672C\u8F6E\u8BA1\u5212": "\u041F\u043B\u0430\u043D \u0445\u043E\u0434\u0430",
|
|
5662
|
+
" \u5B8C\u6210 \xB7 \u8DDF\u968F\u4F1A\u8BDD\u81EA\u52A8\u66F4\u65B0": " \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043E \xB7 \u043E\u0431\u043D\u043E\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0432\u043C\u0435\u0441\u0442\u0435 \u0441 \u0441\u0435\u0441\u0441\u0438\u0435\u0439",
|
|
5663
|
+
"\u628A\u672C\u8F6E\u5F85\u529E\u8F6C\u6210 ESR \u4EFB\u52A1\u8349\u7A3F\uFF08\u8DE8\u4F1A\u8BDD\u4FDD\u7559\uFF09": "\u041F\u0435\u0440\u0435\u043D\u0435\u0441\u0442\u0438 todo \u0442\u0435\u043A\u0443\u0449\u0435\u0433\u043E \u0445\u043E\u0434\u0430 \u0432 \u0447\u0435\u0440\u043D\u043E\u0432\u0438\u043A\u0438 \u0437\u0430\u0434\u0430\u0447 ESR (\u0441\u043E\u0445\u0440\u0430\u043D\u044F\u044E\u0442\u0441\u044F \u043C\u0435\u0436\u0434\u0443 \u0441\u0435\u0441\u0441\u0438\u044F\u043C\u0438)",
|
|
5664
|
+
"\u5DF2\u6C89\u6DC0 {0} \u9879 \xB7 \u518D\u6C89\u6DC0 {1} \u9879": "\u041F\u0435\u0440\u0435\u043D\u0435\u0441\u0435\u043D\u043E: {0} \xB7 \u0435\u0449\u0451 {1}",
|
|
5665
|
+
"\u5DF2\u6C89\u6DC0 {0} \u9879": "\u041F\u0435\u0440\u0435\u043D\u0435\u0441\u0435\u043D\u043E: {0}",
|
|
5666
|
+
"\u6C89\u6DC0\u5230 ESR\uFF08{0} \u9879\uFF09": "\u041F\u0435\u0440\u0435\u043D\u0435\u0441\u0442\u0438 \u0432 ESR ({0})",
|
|
5667
|
+
"\u8F6C\u8349\u7A3F \xB7 \u8DE8\u4F1A\u8BDD\u95ED\u73AF": "\u0412 \u0447\u0435\u0440\u043D\u043E\u0432\u0438\u043A\u0438 \xB7 \u0437\u0430\u043A\u0440\u044B\u0442\u0438\u0435 \u043C\u0435\u0436\u0434\u0443 \u0441\u0435\u0441\u0441\u0438\u044F\u043C\u0438",
|
|
5668
|
+
"\u672C\u8F6E\u8BA1\u5212\u662F": "\u041F\u043B\u0430\u043D \u0445\u043E\u0434\u0430 \u2014 \u044D\u0442\u043E ",
|
|
5669
|
+
"\u4F1A\u8BDD\u5185": "\u0432\u043D\u0443\u0442\u0440\u0438\u0441\u0435\u0441\u0441\u0438\u043E\u043D\u043D\u044B\u0439",
|
|
5670
|
+
"\u539F\u751F todo\uFF0C\u968F\u4F1A\u8BDD\u7ED3\u675F\uFF1B\u591A\u6B65/\u9700\u957F\u671F\u4FDD\u7559\u7684\u5DE5\u4F5C\u5EFA\u8BAE": " \u0440\u043E\u0434\u043D\u043E\u0439 todo, \u0438\u0441\u0447\u0435\u0437\u0430\u0435\u0442 \u0441 \u043A\u043E\u043D\u0446\u043E\u043C \u0441\u0435\u0441\u0441\u0438\u0438; \u0434\u043B\u044F \u043C\u043D\u043E\u0433\u043E\u0448\u0430\u0433\u043E\u0432\u043E\u0439 \u0440\u0430\u0431\u043E\u0442\u044B, \u043A\u043E\u0442\u043E\u0440\u0443\u044E \u043D\u0430\u0434\u043E \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C, \u043B\u0443\u0447\u0448\u0435 ",
|
|
5671
|
+
"\u7528 esr_task \u5EFA ESR \u4EFB\u52A1": "\u0441\u043E\u0437\u0434\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 ESR \u0447\u0435\u0440\u0435\u0437 esr_task",
|
|
5672
|
+
"\uFF08\u8DE8\u4F1A\u8BDD\u95ED\u73AF\uFF0C\u5E26\u8BC1\u636E\u95E8\uFF09\u6C89\u6DC0\u4E0B\u6765\u3002": " (\u0437\u0430\u043A\u0440\u044B\u0442\u0438\u0435 \u043C\u0435\u0436\u0434\u0443 \u0441\u0435\u0441\u0441\u0438\u044F\u043C\u0438, \u0441 \u0432\u043E\u0440\u043E\u0442\u0430\u043C\u0438 \u0434\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432).",
|
|
5673
|
+
"\u5DE5\u4F5C\u533A ESR \u4EFB\u52A1 \xB7 {0} \u8FDB\u884C\u4E2D": "\u0417\u0430\u0434\u0430\u0447\u0438 ESR \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u0430 \xB7 \u0432 \u0440\u0430\u0431\u043E\u0442\u0435: {0}",
|
|
5674
|
+
"\u8BA1\u5212 {0} \u6761 todo": "\u0412 \u043F\u043B\u0430\u043D\u0435 todo: {0}",
|
|
5675
|
+
" \u65B0\u5EFA": " \u0421\u043E\u0437\u0434\u0430\u0442\u044C",
|
|
5676
|
+
"\u6682\u65E0\u6D3B\u52A8\u4EFB\u52A1 \u2014 \u70B9\u300C\u65B0\u5EFA\u300D\u6216\u5728\u5BF9\u8BDD\u4E2D\u8BA9 agent \u7528 esr_task \u5EFA\u4EFB\u52A1": "\u0410\u043A\u0442\u0438\u0432\u043D\u044B\u0445 \u0437\u0430\u0434\u0430\u0447 \u043D\u0435\u0442 \u2014 \u043D\u0430\u0436\u043C\u0438\u0442\u0435 \xAB\u0421\u043E\u0437\u0434\u0430\u0442\u044C\xBB \u0438\u043B\u0438 \u043F\u043E\u043F\u0440\u043E\u0441\u0438\u0442\u0435 \u0430\u0433\u0435\u043D\u0442\u0430 \u0441\u043E\u0437\u0434\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u0447\u0435\u0440\u0435\u0437 esr_task",
|
|
5677
|
+
"\u6536\u8D77\u8BE6\u60C5": "\u0421\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u0434\u0435\u0442\u0430\u043B\u0438",
|
|
5678
|
+
"\u5C55\u5F00\u8BE6\u60C5": "\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0434\u0435\u0442\u0430\u043B\u0438",
|
|
5679
|
+
"{0} \xB7 \u8BC1\u636E\u7F3A\u53E3: {1}": "{0} \xB7 \u043F\u0440\u043E\u0431\u0435\u043B\u044B: {1}",
|
|
5680
|
+
"\u8865\u9F50\u8BC1\u636E": "\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0434\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u0430",
|
|
5681
|
+
"\u63D0\u4F9B\u4E09\u9879\u8BC1\u636E\u540E\u8F6C STABLE\uFF08artifact \xB7 evaluation \xB7 memory_ref\uFF09": "\u041F\u043E\u0441\u043B\u0435 \u0442\u0440\u0451\u0445 \u0434\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432 \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u0442\u0430\u043D\u0435\u0442 STABLE (artifact \xB7 evaluation \xB7 memory_ref)",
|
|
5682
|
+
"evaluation \u8BC1\u636E": "\u0414\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u043E evaluation",
|
|
5683
|
+
"\u5171 {0} \xB7 {1}/{2}": "\u0412\u0441\u0435\u0433\u043E {0} \xB7 {1}/{2}",
|
|
5684
|
+
"\u6837\u672C\u4E0D\u8DB3\uFF08{0} \u6B21\uFF09\uFF0C\u6BD4\u4F8B\u4EC5\u4F9B\u53C2\u8003": "\u041C\u0430\u043B\u043E \u0434\u0430\u043D\u043D\u044B\u0445 ({0} \u0432\u044B\u0437\u043E\u0432\u043E\u0432) \u2014 \u043F\u0440\u043E\u043F\u043E\u0440\u0446\u0438\u0438 \u043E\u0440\u0438\u0435\u043D\u0442\u0438\u0440\u043E\u0432\u043E\u0447\u043D\u044B",
|
|
5685
|
+
"agent \u884C\u4E3A\u9065\u6D4B\u4EEA\u8868\u76D8": "\u041F\u0430\u043D\u0435\u043B\u044C \u0442\u0435\u043B\u0435\u043C\u0435\u0442\u0440\u0438\u0438 \u043F\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u044F \u0430\u0433\u0435\u043D\u0442\u0430",
|
|
5686
|
+
"\u57FA\u4E8E /stats \u771F\u5B9E\u8C03\u7528\u7D2F\u8BA1\uFF08\u5DE5\u4F5C\u533A \xD7 \u5929\u6EDA\u52A8\uFF09\xB7 20s \u81EA\u52A8\u5237\u65B0{0}": "\u041F\u043E \u0440\u0435\u0430\u043B\u044C\u043D\u044B\u043C \u0432\u044B\u0437\u043E\u0432\u0430\u043C \u0438\u0437 /stats (\u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u043E \xD7 \u0434\u0435\u043D\u044C) \xB7 \u0430\u0432\u0442\u043E\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 20 \u0441{0}",
|
|
5687
|
+
" \xB7 \u5168\u90E8\u5DE5\u4F5C\u533A": " \xB7 \u0432\u0441\u0435 \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u0430",
|
|
5688
|
+
"\u52A0\u8F7D\u4E2D\u2026": "\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430\u2026",
|
|
5689
|
+
"ESR \u4E3B\u52A8\u6027\uFF08\u76EE\u6807 \u2265 34%\uFF09": "\u0410\u043A\u0442\u0438\u0432\u043D\u043E\u0441\u0442\u044C ESR (\u0446\u0435\u043B\u044C \u2265 34%)",
|
|
5690
|
+
"ESR \u4E3B\u52A8\u6027": "\u0410\u043A\u0442\u0438\u0432\u043D\u043E\u0441\u0442\u044C ESR",
|
|
5691
|
+
" \xB7 \u5171 {0}": " \xB7 \u0432\u0441\u0435\u0433\u043E {0}",
|
|
5692
|
+
"\u5065\u5EB7": "\u041D\u043E\u0440\u043C\u0430",
|
|
5693
|
+
"\u504F\u4F4E \u2192 \u4E0B\u4F1A\u8BDD\u6CE8\u5165 escalate \u63D0\u9192": "\u041D\u0438\u0436\u0435 \u043D\u043E\u0440\u043C\u044B \u2192 \u0432 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0439 \u0441\u0435\u0441\u0441\u0438\u0438 \u043F\u043E\u044F\u0432\u0438\u0442\u0441\u044F \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 escalate",
|
|
5694
|
+
"\u53EC\u56DE\u547D\u4E2D\u7387": "\u0414\u043E\u043B\u044F \u043F\u043E\u043F\u0430\u0434\u0430\u043D\u0438\u0439 \u043F\u043E\u0434\u0431\u043E\u0440\u0430",
|
|
5695
|
+
"\u6709\u547D\u4E2D\u7684 engram_recall \u5360\u6BD4": "\u0414\u043E\u043B\u044F engram_recall \u0441 \u043F\u043E\u043F\u0430\u0434\u0430\u043D\u0438\u044F\u043C\u0438",
|
|
5696
|
+
"detail \u8F6C\u5316": "\u041F\u0435\u0440\u0435\u0445\u043E\u0434 \u0432 detail",
|
|
5697
|
+
"\u547D\u4E2D\u53EC\u56DE\u540E 8 \u4E8B\u4EF6\u5185\u8DDF engram_detail": "engram_detail \u0432 \u0442\u0435\u0447\u0435\u043D\u0438\u0435 8 \u0441\u043E\u0431\u044B\u0442\u0438\u0439 \u043F\u043E\u0441\u043B\u0435 \u043F\u043E\u043F\u0430\u0434\u0430\u043D\u0438\u044F \u043F\u043E\u0434\u0431\u043E\u0440\u0430",
|
|
5698
|
+
"\u7D2F\u8BA1\u5DE5\u5177\u8C03\u7528": "\u0412\u0441\u0435\u0433\u043E \u0432\u044B\u0437\u043E\u0432\u043E\u0432 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432",
|
|
5699
|
+
"esr_* \u8C03\u7528": "\u0412\u044B\u0437\u043E\u0432\u044B esr_*",
|
|
5700
|
+
"\u8BB0\u5FC6\u7C7B\u8C03\u7528": "\u0412\u044B\u0437\u043E\u0432\u044B \u043F\u0430\u043C\u044F\u0442\u0438",
|
|
5701
|
+
"\u5E73\u5747\u547D\u4E2D/\u67E5\u8BE2": "\u041F\u043E\u043F\u0430\u0434\u0430\u043D\u0438\u0439 \u043D\u0430 \u0437\u0430\u043F\u0440\u043E\u0441",
|
|
5702
|
+
"\u5931\u8D25\u6B21\u6570": "\u041E\u0448\u0438\u0431\u043A\u0438",
|
|
5703
|
+
"Context Ledger \xB7 \u4E0A\u4E0B\u6587\u51C0\u6536\u76CA": "Context Ledger \xB7 \u0447\u0438\u0441\u0442\u044B\u0439 \u0432\u044B\u0438\u0433\u0440\u044B\u0448 \u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442\u0430",
|
|
5704
|
+
"\u8D26\u672C\u672A\u542F\u7528\uFF08`ledgerEnabled:false`\uFF09\u6216\u5BBF\u4E3B API \u672A\u5C31\u7EEA\u3002": "\u0416\u0443\u0440\u043D\u0430\u043B \u043E\u0442\u043A\u043B\u044E\u0447\u0451\u043D (`ledgerEnabled:false`) \u0438\u043B\u0438 API host \u043D\u0435 \u0433\u043E\u0442\u043E\u0432.",
|
|
5705
|
+
"\u8BE5\u5DE5\u4F5C\u533A\u8FD8\u6CA1\u6709\u8D26\u672C\u8BB0\u5F55\u3002": "\u0412 \u044D\u0442\u043E\u043C \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u0435 \u0435\u0449\u0451 \u043D\u0435\u0442 \u0437\u0430\u043F\u0438\u0441\u0435\u0439 \u0436\u0443\u0440\u043D\u0430\u043B\u0430.",
|
|
5706
|
+
"\u51C0 token\uFF08\u8282\u7701 \u2212 \u6CE8\u5165 \u2212 \u91CD\u5199\u7F5A\u91D1\uFF09": "\u0427\u0438\u0441\u0442\u044B\u0435 \u0442\u043E\u043A\u0435\u043D\u044B (\u044D\u043A\u043E\u043D\u043E\u043C\u0438\u044F \u2212 \u0432\u043D\u0435\u0434\u0440\u0435\u043D\u0438\u0435 \u2212 \u0448\u0442\u0440\u0430\u0444 \u0437\u0430 \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u044C)",
|
|
5707
|
+
"\u8BF7\u6C42 {0} \xB7 \u4F1A\u8BDD {1} \xB7 open {2}{3}": "\u0417\u0430\u043F\u0440\u043E\u0441\u044B {0} \xB7 \u0441\u0435\u0441\u0441\u0438\u0438 {1} \xB7 \u043E\u0442\u043A\u0440\u044B\u0442\u043E {2}{3}",
|
|
5708
|
+
" \xB7 JIT \u63A8\u9001 {0}": " \xB7 JIT-\u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043E\u043A {0}",
|
|
5709
|
+
"\u8282\u7701 \xB7 \u526A\u679D/\u538B\u7F29\uFF08\u5DF2\u5165\u8D26\uFF09": "\u042D\u043A\u043E\u043D\u043E\u043C\u0438\u044F \xB7 \u043E\u0431\u0440\u0435\u0437\u043A\u0430/\u043A\u043E\u043C\u043F\u0430\u043A\u0446\u0438\u044F (\u0443\u0447\u0442\u0435\u043D\u043E)",
|
|
5710
|
+
"\u6CE8\u5165\u6210\u672C \xB7 \u7D22\u5F15/\u53EC\u56DE/ESR\uFF08\u6BCF\u8BF7\u6C42\u91CD\u8BA1\uFF09": "\u0421\u0442\u043E\u0438\u043C\u043E\u0441\u0442\u044C \u0432\u043D\u0435\u0434\u0440\u0435\u043D\u0438\u044F \xB7 \u0438\u043D\u0434\u0435\u043A\u0441/\u043F\u043E\u0434\u0431\u043E\u0440/ESR (\u043F\u0435\u0440\u0435\u0441\u0447\u0451\u0442 \u043A\u0430\u0436\u0434\u044B\u0439 \u0437\u0430\u043F\u0440\u043E\u0441)",
|
|
5711
|
+
"\u91CD\u5199\u7F5A\u91D1 \xB7 {0} \u6B21": "\u0428\u0442\u0440\u0430\u0444 \u0437\u0430 \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u044C \xB7 {0} \u0440\u0430\u0437",
|
|
5712
|
+
"\u8282\u7701\u4ECD\u4E3A 0\uFF1A\u672C\u5DE5\u4F5C\u533A\u8FD8\u6CA1\u6709\u526A\u679D/\u538B\u7F29\u8282\u7701\u5165\u8D26\u2014\u2014L1 \u8FB9\u754C\u526A\u679D\u9700\u8981 host \u5E73\u9762\u7684 toolResultPruner\uFF08DSH \u2265 0.2.0 \u7531 bundle patch \u91CD\u65B0\u542F\u7528\u8BE5\u884C\uFF09\uFF0C\u538B\u7F29\u8282\u7701\u7531 Context GC \u5F15\u64CE\u5728 checkpoint \u65F6\u4E0A\u62A5\uFF1B\u51C0\u503C\u4E3A\u8D1F = \u6CE8\u5165\u6210\u672C + \u91CD\u5199\u7F5A\u91D1\u7684\u5408\u8BA1\u3002": "\u042D\u043A\u043E\u043D\u043E\u043C\u0438\u044F \u043F\u043E\u043A\u0430 0: \u0432 \u044D\u0442\u043E\u043C \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u0435 \u0435\u0449\u0451 \u043D\u0435\u0442 \u0443\u0447\u0442\u0451\u043D\u043D\u043E\u0439 \u044D\u043A\u043E\u043D\u043E\u043C\u0438\u0438 \u043E\u0442 \u043E\u0431\u0440\u0435\u0437\u043A\u0438/\u043A\u043E\u043C\u043F\u0430\u043A\u0446\u0438\u0438 \u2014 L1-\u043E\u0431\u0440\u0435\u0437\u043A\u0435 \u043D\u0430 \u0433\u0440\u0430\u043D\u0438\u0446\u0430\u0445 \u043D\u0443\u0436\u0435\u043D toolResultPruner \u043D\u0430 \u043F\u043B\u043E\u0441\u043A\u043E\u0441\u0442\u0438 host (\u0432 DSH \u2265 0.2.0 \u044D\u0442\u0430 \u0441\u0442\u0440\u043E\u043A\u0430 \u0441\u043D\u043E\u0432\u0430 \u0432\u043A\u043B\u044E\u0447\u0430\u0435\u0442\u0441\u044F bundle-\u043F\u0430\u0442\u0447\u0435\u043C), \u0430 \u044D\u043A\u043E\u043D\u043E\u043C\u0438\u044E \u043A\u043E\u043C\u043F\u0430\u043A\u0446\u0438\u0438 \u0441\u043E\u043E\u0431\u0449\u0430\u0435\u0442 \u0434\u0432\u0438\u0436\u043E\u043A Context GC \u043F\u0440\u0438 checkpoint; \u043E\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0439 \u0431\u0430\u043B\u0430\u043D\u0441 = \u0441\u0442\u043E\u0438\u043C\u043E\u0441\u0442\u044C \u0432\u043D\u0435\u0434\u0440\u0435\u043D\u0438\u044F + \u0448\u0442\u0440\u0430\u0444 \u0437\u0430 \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u044C.",
|
|
5713
|
+
"\u53E3\u5F84\uFF1Achars/{0} \u4F30\u7B97 \xB7 \u7F13\u5B58\u6298\u4EF7 {1}% \uFF08\u91CD\u5199\u6309 {2}% \u8BA1\uFF09\xB7 \u672A\u8BA1\u6A21\u578B\u8D28\u91CF\u5DEE": "\u041C\u0435\u0442\u043E\u0434\u0438\u043A\u0430: \u043E\u0446\u0435\u043D\u043A\u0430 \u043F\u043E chars/{0} \xB7 \u0441\u043A\u0438\u0434\u043A\u0430 \u043A\u044D\u0448\u0430 {1}% (\u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u044C \u043F\u043E {2}%) \xB7 \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u043E \u043C\u043E\u0434\u0435\u043B\u0438 \u043D\u0435 \u0443\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442\u0441\u044F",
|
|
5714
|
+
"{0} \xB7 net {1} tok \xB7 \u8BF7\u6C42 {2}": "{0} \xB7 \u0447\u0438\u0441\u0442\u044B\u0435 {1} \u0442\u043E\u043A. \xB7 \u0437\u0430\u043F\u0440\u043E\u0441\u043E\u0432 {2}",
|
|
5715
|
+
"\u7EFF = \u5F53\u65E5\u51C0\u7701 \xB7 \u7EA2 = \u5F53\u65E5\u51C0\u4E8F\uFF08\u6309\u5929\u6EDA\u52A8\uFF0C\u6700\u8FD1 14 \u5929\uFF09": "\u0417\u0435\u043B\u0451\u043D\u044B\u0439 = \u0447\u0438\u0441\u0442\u044B\u0439 \u0432\u044B\u0438\u0433\u0440\u044B\u0448 \u0437\u0430 \u0434\u0435\u043D\u044C \xB7 \u043A\u0440\u0430\u0441\u043D\u044B\u0439 = \u0447\u0438\u0441\u0442\u044B\u0439 \u0443\u0431\u044B\u0442\u043E\u043A (\u043F\u043E \u0434\u043D\u044F\u043C, \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435 14 \u0434\u043D\u0435\u0439)",
|
|
5716
|
+
"\u8FD1 14 \u5929\u6BCF\u65E5\u6D3B\u52A8 \xB7 mem vs esr": "\u0410\u043A\u0442\u0438\u0432\u043D\u043E\u0441\u0442\u044C \u0437\u0430 14 \u0434\u043D\u0435\u0439 \xB7 mem vs esr",
|
|
5717
|
+
"\u8FD8\u6CA1\u6709\u6309\u5929\u6570\u636E\uFF08\u5DE5\u5177\u8C03\u7528\u4F1A\u5B9E\u65F6\u7D2F\u8BA1\uFF09\u3002": "\u0414\u0430\u043D\u043D\u044B\u0445 \u043F\u043E \u0434\u043D\u044F\u043C \u043F\u043E\u043A\u0430 \u043D\u0435\u0442 (\u0432\u044B\u0437\u043E\u0432\u044B \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u043D\u0430\u043A\u0430\u043F\u043B\u0438\u0432\u0430\u044E\u0442\u0441\u044F \u0432 \u0440\u0435\u0430\u043B\u044C\u043D\u043E\u043C \u0432\u0440\u0435\u043C\u0435\u043D\u0438).",
|
|
5718
|
+
" \u8BB0\u5FC6\u7C7B (engram_*/loom_*)": " \u043F\u0430\u043C\u044F\u0442\u044C (engram_*/loom_*)",
|
|
5719
|
+
"\u5DE5\u5177\u8C03\u7528\u5206\u5E03\uFF08Top 8\uFF09": "\u0420\u0430\u0441\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u0435 \u0432\u044B\u0437\u043E\u0432\u043E\u0432 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432 (Top 8)",
|
|
5720
|
+
"\u8FD8\u6CA1\u6709\u5DE5\u5177\u8C03\u7528\u8BB0\u5F55\u3002": "\u0417\u0430\u043F\u0438\u0441\u0435\u0439 \u043E \u0432\u044B\u0437\u043E\u0432\u0430\u0445 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u043F\u043E\u043A\u0430 \u043D\u0435\u0442.",
|
|
5721
|
+
"\u8BC1\u636E\u5B8C\u5907\u5EA6 {0}%": "\u0413\u043E\u0442\u043E\u0432\u043D\u043E\u0441\u0442\u044C \u0434\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432 {0}%",
|
|
5722
|
+
"\u8BC1\u636E\u95ED\u73AF\uFF1Aartifact{0} \xB7 evaluation{1} \xB7 memory_ref{2} ({3}/3)": "\u0412\u043E\u0440\u043E\u0442\u0430 \u0434\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432: artifact{0} \xB7 evaluation{1} \xB7 memory_ref{2} ({3}/3)",
|
|
5723
|
+
"# ESR \u4EFB\u52A1\u5BFC\u51FA \xB7 {0}\n\n| \u72B6\u6001 | \u4EFB\u52A1 | \u5DE5\u4F5C\u533A | \u8BC1\u636E\u7F3A\u53E3 | \u8BC1\u636E | \u521B\u5EFA |\n|---|---|---|---|---|---|\n{1}": "# \u042D\u043A\u0441\u043F\u043E\u0440\u0442 \u0437\u0430\u0434\u0430\u0447 ESR \xB7 {0}\n\n| \u0421\u0442\u0430\u0442\u0443\u0441 | \u0417\u0430\u0434\u0430\u0447\u0430 | \u041F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u043E | \u041F\u0440\u043E\u0431\u0435\u043B\u044B \u0432 \u0434\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u0430\u0445 | \u0414\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u0430 | \u0421\u043E\u0437\u0434\u0430\u043D\u043E |\n|---|---|---|---|---|---|\n{1}",
|
|
5724
|
+
"(\u65E0\u4EFB\u52A1)": "(\u043D\u0435\u0442 \u0437\u0430\u0434\u0430\u0447)"
|
|
5725
|
+
};
|
|
5726
|
+
|
|
5338
5727
|
// client/src/entry.tsx
|
|
5339
5728
|
var NS = "dsh-engram";
|
|
5340
5729
|
var zh = {
|
|
@@ -5349,9 +5738,10 @@ var en = {
|
|
|
5349
5738
|
};
|
|
5350
5739
|
var inject = ["slots", "locale", "sessions", "workspaces"];
|
|
5351
5740
|
function apply(ctx) {
|
|
5352
|
-
ctx.effect(() => ctx.locale.register(NS, { zh, en }), "dsh-engram: dictionaries");
|
|
5741
|
+
ctx.effect(() => ctx.locale.register(NS, { zh, en, ru }), "dsh-engram: dictionaries");
|
|
5353
5742
|
const api = new EngramApi();
|
|
5354
5743
|
const t = ctx.locale.bind(NS);
|
|
5744
|
+
installTranslator(t, ctx.locale.getLocale?.().active);
|
|
5355
5745
|
const scope = new EngramScopeImpl(api, "dsh-engram");
|
|
5356
5746
|
const sectionInjected = () => ({ api, t, scope });
|
|
5357
5747
|
try {
|
|
@@ -5363,6 +5753,7 @@ function apply(ctx) {
|
|
|
5363
5753
|
id: "todo",
|
|
5364
5754
|
order: 0,
|
|
5365
5755
|
priority: -1,
|
|
5756
|
+
locale: NS,
|
|
5366
5757
|
inject: () => ({ api })
|
|
5367
5758
|
},
|
|
5368
5759
|
EngramTaskDock
|
|
@@ -5409,7 +5800,8 @@ function apply(ctx) {
|
|
|
5409
5800
|
}
|
|
5410
5801
|
try {
|
|
5411
5802
|
ctx.effect(
|
|
5412
|
-
() => mountEngramBoard(api)
|
|
5803
|
+
() => mountEngramBoard(api, (onChange) => ctx.locale.subscribe?.(onChange) ?? (() => {
|
|
5804
|
+
})),
|
|
5413
5805
|
"dsh-engram: ESR task board mount"
|
|
5414
5806
|
);
|
|
5415
5807
|
} catch (error) {
|