@fenglimg/fabric-shared 2.3.0-rc.2 → 2.3.0-rc.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-ANUDBQBK.js → chunk-ASS2KBB7.js} +13 -1
- package/dist/{chunk-OAYQHN6J.js → chunk-KFFBQRL5.js} +1 -1
- package/dist/{chunk-ZYBWITH7.js → chunk-UPYKUYHN.js} +104 -5
- package/dist/i18n/index.js +2 -2
- package/dist/{index-BO7itJ8e.d.ts → index-C0cijMSw.d.ts} +6 -6
- package/dist/index.d.ts +2 -2
- package/dist/index.js +20 -13
- package/dist/templates/bootstrap-canonical.js +2 -2
- package/dist/theme.d.ts +2 -1
- package/dist/theme.js +7 -0
- package/dist/types/index.d.ts +1 -1
- package/package.json +1 -1
|
@@ -192,8 +192,20 @@ var globalConfigSchema = z.object({
|
|
|
192
192
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
|
|
193
193
|
import { homedir } from "os";
|
|
194
194
|
import { join } from "path";
|
|
195
|
+
function isTestRuntime() {
|
|
196
|
+
return process.env.VITEST !== void 0 || process.env.VITEST_WORKER_ID !== void 0;
|
|
197
|
+
}
|
|
195
198
|
function resolveGlobalRoot() {
|
|
196
|
-
|
|
199
|
+
const fabricHome = process.env.FABRIC_HOME;
|
|
200
|
+
if (fabricHome !== void 0 && fabricHome !== "") {
|
|
201
|
+
return join(fabricHome, ".fabric");
|
|
202
|
+
}
|
|
203
|
+
if (isTestRuntime()) {
|
|
204
|
+
throw new Error(
|
|
205
|
+
"resolveGlobalRoot(): FABRIC_HOME must be set under the test runner \u2014 refusing to fall back to the real home dir (~/.fabric). Repoint process.env.FABRIC_HOME to an isolated temp dir in beforeEach (see plan-context.test.ts for the pattern)."
|
|
206
|
+
);
|
|
207
|
+
}
|
|
208
|
+
return join(homedir(), ".fabric");
|
|
197
209
|
}
|
|
198
210
|
function globalConfigPath(globalRoot = resolveGlobalRoot()) {
|
|
199
211
|
return join(globalRoot, "fabric-global.json");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
resolveGlobalLocale
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-ASS2KBB7.js";
|
|
4
4
|
|
|
5
5
|
// src/i18n/locales/en.ts
|
|
6
6
|
var enMessages = {
|
|
@@ -18,6 +18,12 @@ var enMessages = {
|
|
|
18
18
|
"cli.shared.none": "none",
|
|
19
19
|
"cli.shared.loading": "loading",
|
|
20
20
|
"cli.shared.refresh": "Refresh",
|
|
21
|
+
// flat-design-system Wave4 (TASK-004): gutter-free ✓/x receipt printed after a
|
|
22
|
+
// clack control (select/multiselect/confirm/text) resolves. The clack control
|
|
23
|
+
// stays native (C-006); the receipt is a separate flat line.
|
|
24
|
+
"cli.prompt.receipt.selected": "Selected",
|
|
25
|
+
"cli.prompt.receipt.set": "Set",
|
|
26
|
+
"cli.prompt.receipt.cancelled": "Cancelled",
|
|
21
27
|
"cli.shared.target-invalid": "Target must be an existing directory: {target}",
|
|
22
28
|
"cli.shared.target-invalid.action-hint": "Choose an existing project directory, or create it before running the command again.",
|
|
23
29
|
"cli.shared.template-not-found": "Template not found: {path}",
|
|
@@ -54,6 +60,9 @@ var enMessages = {
|
|
|
54
60
|
// Keys consumed by packages/cli/src/commands/config.ts (menu loop +
|
|
55
61
|
// per-field prompts) and by getPanelFields() (label_i18n_key references).
|
|
56
62
|
"cli.config.intro": "Fabric Configuration",
|
|
63
|
+
// flat-design-system Wave5 (TASK-005): B-横线 title above the flat key/value
|
|
64
|
+
// panel printed before the clack edit menu.
|
|
65
|
+
"cli.config.panel.title": "Current configuration",
|
|
57
66
|
"cli.config.outro": "Configuration saved.",
|
|
58
67
|
"cli.config.outro-no-changes": "No changes made.",
|
|
59
68
|
"cli.config.cancel": "Cancelled.",
|
|
@@ -96,12 +105,19 @@ var enMessages = {
|
|
|
96
105
|
"cli.config.fields.nudge_mode.label": "Nudge level",
|
|
97
106
|
"cli.config.fields.nudge_mode.description": "Preset for human-visible nudges (silent / minimal / normal / verbose). Governs only the human channel \u2014 never the knowledge injected to the AI.",
|
|
98
107
|
"cli.config.fields.embed_enabled.label": "Vector semantic search",
|
|
99
|
-
"cli.config.fields.embed_enabled.description": "Enable vector semantic recall (true / false). Note:
|
|
108
|
+
"cli.config.fields.embed_enabled.description": "Enable vector semantic recall (true / false). Note: true is just intent \u2014 it only takes effect when the running server can resolve the fastembed package AND the model is downloaded (auto-fetched to ~/.fabric/cache/embed on first recall). Check actual state with `fabric info recall`.",
|
|
109
|
+
"cli.config.fields.fusion.label": "Recall fusion strategy",
|
|
110
|
+
"cli.config.fields.fusion.description": "How the signals combine into one score: additive = weighted sum (BM25-led, small vector weight) / rrf = Reciprocal Rank Fusion (BM25 and vector on equal footing, so semantics actually count) / auto = adaptive (default: rrf when the vector channel is scoring, else additive \u2014 avoids degenerate single-channel rrf being worse).",
|
|
100
111
|
"cli.doctor.description": "Run Fabric target-state diagnostics (meta sync, knowledge index, bootstrap, events ledger, human-lock drift).\n\nExamples:\n fabric doctor read-only diagnostics report\n fabric doctor --fix repair derived state (meta + indexes)\n fabric doctor --fix-knowledge apply lint mutations (counter / archive / cache)\n fabric doctor --json machine-readable output",
|
|
101
112
|
"doctor.section.fixable": "Fixable errors:",
|
|
102
113
|
"doctor.section.manual": "Manual errors:",
|
|
103
114
|
"doctor.section.warnings": "Warnings:",
|
|
104
115
|
"doctor.section.fix-knowledge-mutations": "Fix-knowledge mutations:",
|
|
116
|
+
// flat-design-system Wave5 (TASK-005): C-圆点 group headers for the reskinned
|
|
117
|
+
// doctor surface (`● Store Health` / `● Checks`), replacing the old hardcoded
|
|
118
|
+
// sectionBar literals so the wording is localized in both locales.
|
|
119
|
+
"doctor.group.store-health": "Store Health",
|
|
120
|
+
"doctor.group.checks": "Checks",
|
|
105
121
|
// v2.0.0-rc.29 REVIEW (codex LOW-2): F2's payload-limit defaults reach the JSON
|
|
106
122
|
// envelope but never surfaced in the human renderer, so operators tuning
|
|
107
123
|
// `mcpPayloadLimits` had no fast `fabric doctor` confirmation that their config
|
|
@@ -617,12 +633,29 @@ var enMessages = {
|
|
|
617
633
|
"cli.install.pipeline.title": "Fabric Install",
|
|
618
634
|
"cli.install.pipeline.complete": "Fabric Install Complete",
|
|
619
635
|
"cli.install.pipeline.running": "Running {count} stages...",
|
|
636
|
+
// TASK-002 (G1): summary-card completion + count words. Formerly hardcoded
|
|
637
|
+
// English in ConsoleOutputRenderer (Done! / succeeded / skipped / failed /
|
|
638
|
+
// "All steps completed successfully"); routed through t() + dual-locale tables
|
|
639
|
+
// so locale-parity.test.ts guards both en + zh-CN carry every key.
|
|
640
|
+
"cli.summary.done": "Done!",
|
|
641
|
+
"cli.summary.all-ok": "All steps completed successfully",
|
|
642
|
+
"cli.summary.n-failed": "{count} step(s) failed",
|
|
643
|
+
"cli.summary.n-of-total": "{done}/{total} steps completed",
|
|
644
|
+
"cli.summary.count.succeeded": "succeeded",
|
|
645
|
+
"cli.summary.count.skipped": "skipped",
|
|
646
|
+
"cli.summary.count.failed": "failed",
|
|
620
647
|
// TASK-004: a first-ever install gets an onboarding-tone intro; a re-install
|
|
621
648
|
// keeps the terse "Running N stages" line. {count} = total stages.
|
|
622
649
|
"cli.install.pipeline.intro.firstRun": "Welcome to Fabric \u2014 this is your first install. I'll walk you through a one-time setup ({count} stages); later runs skip anything already in place.",
|
|
623
650
|
// TASK-004: the single collapsed health-check card title for a fully-idempotent
|
|
624
651
|
// re-install. {count} = total stages. Detail is behind --verbose.
|
|
625
652
|
"cli.install.healthcheck.title": "\u2713 Fabric is up to date \xB7 {count} stages ready \xB7 no changes",
|
|
653
|
+
// TASK-003 (G2 root a): the per-stage summary-detail status word now branches on
|
|
654
|
+
// r.changed (not installed.length) — a no-change re-ensure says "up to date"
|
|
655
|
+
// instead of misreporting "N installed". installed-count is used only when the
|
|
656
|
+
// stage actually changed something.
|
|
657
|
+
"cli.install.stage.uptodate": "up to date",
|
|
658
|
+
"cli.install.stage.installed-count": "{count} installed",
|
|
626
659
|
"cli.install.pipeline.label.preflight": "Preflight check",
|
|
627
660
|
"cli.install.pipeline.label.env": "Environment setup",
|
|
628
661
|
"cli.install.pipeline.label.store": "Store configuration",
|
|
@@ -632,6 +665,10 @@ var enMessages = {
|
|
|
632
665
|
"cli.install.pipeline.label.guidance": "Next steps",
|
|
633
666
|
"cli.install.pipeline.desc.store": "Bind the current project's read/write store; refresh the resolved-bindings snapshot.",
|
|
634
667
|
"cli.install.next-step": "{label} {message}",
|
|
668
|
+
// TASK-002 (G6): a single golden-action anchor that closes the summary card.
|
|
669
|
+
// The verbose capability table is gated behind --verbose; this one line is the
|
|
670
|
+
// honest "what to do next" footer. {action} = the concrete next command.
|
|
671
|
+
"cli.install.next-step.anchor": "Next \u2192 {action}",
|
|
635
672
|
"cli.install.reason-message": "{label} {message}",
|
|
636
673
|
"cli.install.language.prompt": "Choose the Fabric language (used for both UI and knowledge; change later via `fabric config`):",
|
|
637
674
|
"cli.install.language.option.zh-CN": "\u7B80\u4F53\u4E2D\u6587 (zh-CN)",
|
|
@@ -659,6 +696,10 @@ var enMessages = {
|
|
|
659
696
|
"cli.install.wizard.stage.bootstrap": "Install bootstrap templates? [{defaultValue}]",
|
|
660
697
|
"cli.install.wizard.stage.mcp": "Configure MCP clients? [{defaultValue}]",
|
|
661
698
|
"cli.install.wizard.stage.hooks": "Install git hooks? [{defaultValue}]",
|
|
699
|
+
// flat-design-system Wave4 (TASK-004): short stage labels for the post-group ✓ receipt.
|
|
700
|
+
"cli.install.wizard.stage.bootstrap.short": "bootstrap templates",
|
|
701
|
+
"cli.install.wizard.stage.mcp.short": "MCP clients",
|
|
702
|
+
"cli.install.wizard.stage.hooks.short": "git hooks",
|
|
662
703
|
"cli.install.wizard.mcp-install": "MCP server install scope (global/local) [{defaultValue}]",
|
|
663
704
|
"cli.install.wizard.execute.confirm": "Execute this install plan now? [Y/n]",
|
|
664
705
|
"cli.install.wizard.outro": "Install plan accepted. Running Fabric install...",
|
|
@@ -793,7 +834,14 @@ var enMessages = {
|
|
|
793
834
|
// C3: mirror install's phase banner ("Fabric install 将按 N 个阶段执行").
|
|
794
835
|
"cli.uninstall.plan.phase-banner": "Fabric uninstall runs in {total} phases",
|
|
795
836
|
"cli.uninstall.plan.target": "Target: {target}",
|
|
796
|
-
|
|
837
|
+
// flat-design-system Wave5 (TASK-004 G3): the plan preview speaks human action
|
|
838
|
+
// sentences, one per ENABLED stage, instead of the `key=yes/no` jargon line.
|
|
839
|
+
"cli.uninstall.plan.will-remove": "Will remove:",
|
|
840
|
+
"cli.uninstall.plan.will-keep": "Will keep:",
|
|
841
|
+
"cli.uninstall.plan.action.bootstrap": "client skills & hook scripts",
|
|
842
|
+
"cli.uninstall.plan.action.mcp": "MCP server registration",
|
|
843
|
+
"cli.uninstall.plan.action.scaffold": "project scaffold files",
|
|
844
|
+
"cli.uninstall.plan.action.store": "team store binding (this project)",
|
|
797
845
|
"cli.uninstall.plan.detected": "Detected clients: {clients}",
|
|
798
846
|
"cli.uninstall.plan.preserves": "Preserves:",
|
|
799
847
|
"cli.uninstall.plan.preserves.stores": "global knowledge stores, never deleted by project uninstall",
|
|
@@ -814,6 +862,10 @@ var enMessages = {
|
|
|
814
862
|
"cli.uninstall.stages.uptodate": "nothing to remove ({count} already absent)",
|
|
815
863
|
"cli.uninstall.stages.summary": "removed={removed} skipped={skipped} errors={errors}",
|
|
816
864
|
"cli.uninstall.stages.removed-count": "{count} removed",
|
|
865
|
+
// flat-design-system Wave5 (TASK-006 G3): human result words for the summary
|
|
866
|
+
// card detail rows, symmetric with install's `{count} installed` / `up to date`.
|
|
867
|
+
"cli.uninstall.stage.cleaned-count": "{count} cleaned",
|
|
868
|
+
"cli.uninstall.stage.already-clean": "already clean",
|
|
817
869
|
"cli.uninstall.summary.title": "Uninstall summary",
|
|
818
870
|
"cli.uninstall.summary.body": "removed={removed} skipped={skipped} errors={errors}",
|
|
819
871
|
"cli.uninstall.healthcheck.title": "\u2713 Fabric already absent \xB7 nothing to remove",
|
|
@@ -1100,6 +1152,11 @@ var zhCNMessages = {
|
|
|
1100
1152
|
"cli.shared.none": "\u65E0",
|
|
1101
1153
|
"cli.shared.loading": "\u52A0\u8F7D\u4E2D",
|
|
1102
1154
|
"cli.shared.refresh": "\u5237\u65B0",
|
|
1155
|
+
// flat-design-system Wave4 (TASK-004): clack 控件(select/multiselect/confirm/text)
|
|
1156
|
+
// 落定后打印的平铺无沟槽 ✓/x 回执行。控件保持原生(C-006),回执是独立的一行。
|
|
1157
|
+
"cli.prompt.receipt.selected": "\u5DF2\u9009",
|
|
1158
|
+
"cli.prompt.receipt.set": "\u5DF2\u8BBE\u7F6E",
|
|
1159
|
+
"cli.prompt.receipt.cancelled": "\u5DF2\u53D6\u6D88",
|
|
1103
1160
|
"cli.shared.target-invalid": "\u76EE\u6807\u5FC5\u987B\u662F\u5DF2\u5B58\u5728\u7684\u76EE\u5F55\uFF1A{target}",
|
|
1104
1161
|
"cli.shared.target-invalid.action-hint": "\u8BF7\u9009\u62E9\u4E00\u4E2A\u5DF2\u5B58\u5728\u7684\u9879\u76EE\u76EE\u5F55\uFF0C\u6216\u5148\u521B\u5EFA\u8BE5\u76EE\u5F55\u540E\u518D\u91CD\u65B0\u8FD0\u884C\u547D\u4EE4\u3002",
|
|
1105
1162
|
"cli.shared.template-not-found": "\u672A\u627E\u5230\u6A21\u677F\uFF1A{path}",
|
|
@@ -1131,6 +1188,9 @@ var zhCNMessages = {
|
|
|
1131
1188
|
// 由 packages/cli/src/commands/config.ts(菜单循环 + 字段编辑)以及
|
|
1132
1189
|
// getPanelFields() 的 label_i18n_key 引用消费。
|
|
1133
1190
|
"cli.config.intro": "Fabric \u914D\u7F6E",
|
|
1191
|
+
// flat-design-system Wave5 (TASK-005): clack 编辑菜单前那块平铺键值面板的
|
|
1192
|
+
// B-横线标题。
|
|
1193
|
+
"cli.config.panel.title": "\u5F53\u524D\u914D\u7F6E",
|
|
1134
1194
|
"cli.config.outro": "\u914D\u7F6E\u5DF2\u4FDD\u5B58\u3002",
|
|
1135
1195
|
"cli.config.outro-no-changes": "\u672A\u505A\u4EFB\u4F55\u4FEE\u6539\u3002",
|
|
1136
1196
|
"cli.config.cancel": "\u5DF2\u53D6\u6D88\u3002",
|
|
@@ -1173,12 +1233,18 @@ var zhCNMessages = {
|
|
|
1173
1233
|
"cli.config.fields.nudge_mode.label": "\u63D0\u793A\u6863\u4F4D",
|
|
1174
1234
|
"cli.config.fields.nudge_mode.description": "\u4EBA\u7C7B\u53EF\u89C1 nudge \u7684\u603B\u6863\u4F4D\uFF08silent \u9759\u9ED8 / minimal \u7CBE\u7B80 / normal \u6B63\u5E38 / verbose \u8BE6\u5C3D\uFF09\uFF1B\u4EC5\u63A7\u4EBA\u7C7B\u63D0\u793A\u901A\u9053\uFF0C\u4E0D\u5F71\u54CD\u6CE8\u5165\u7ED9 AI \u7684\u77E5\u8BC6\u3002",
|
|
1175
1235
|
"cli.config.fields.embed_enabled.label": "\u5411\u91CF\u8BED\u4E49\u68C0\u7D22",
|
|
1176
|
-
"cli.config.fields.embed_enabled.description": "\u662F\u5426\u542F\u7528\u5411\u91CF\u8BED\u4E49\u68C0\u7D22\uFF08true / false\uFF09\u3002\u6CE8\u610F\
|
|
1236
|
+
"cli.config.fields.embed_enabled.description": "\u662F\u5426\u542F\u7528\u5411\u91CF\u8BED\u4E49\u68C0\u7D22\uFF08true / false\uFF09\u3002\u6CE8\u610F\uFF1Atrue \u53EA\u662F\u610F\u56FE\u5F00\u5173\u2014\u2014\u771F\u6B63\u751F\u6548\u8FD8\u9700\u8FD0\u884C\u4E2D\u7684 server \u80FD\u89E3\u6790\u5230 fastembed \u5305\u3001\u4E14\u6A21\u578B\u5DF2\u4E0B\u8F7D\uFF08\u9996\u6B21\u53EC\u56DE\u65F6\u81EA\u52A8\u4E0B\u5230 ~/.fabric/cache/embed\uFF09\u3002\u7528 `fabric info recall` \u67E5\u5B9E\u9645\u72B6\u6001\u3002",
|
|
1237
|
+
"cli.config.fields.fusion.label": "\u53EC\u56DE\u878D\u5408\u7B56\u7565",
|
|
1238
|
+
"cli.config.fields.fusion.description": "\u591A\u4FE1\u53F7\u5408\u6210\u603B\u5206\u7684\u7B97\u6CD5\uFF1Aadditive \u52A0\u6743\u6C42\u548C\uFF08BM25 \u4E3B\u5BFC\uFF0C\u5411\u91CF\u6743\u91CD\u5C0F\uFF09/ rrf \u5012\u6570\u6392\u540D\u878D\u5408\uFF08BM25 \u4E0E\u5411\u91CF\u5E73\u8D77\u5E73\u5750\uFF0C\u8BED\u4E49\u624D\u771F\u6B63\u751F\u6548\uFF09/ auto \u81EA\u9002\u5E94\uFF08\u9ED8\u8BA4\uFF1A\u5411\u91CF\u5728\u51FA\u5206\u65F6\u7528 rrf\uFF0C\u5426\u5219\u56DE\u843D additive\u2014\u2014\u907F\u514D\u65E0\u5411\u91CF\u65F6 rrf \u9000\u5316\u53CD\u800C\u66F4\u5DEE\uFF09\u3002",
|
|
1177
1239
|
"cli.doctor.description": "\u8FD0\u884C Fabric \u76EE\u6807\u6001\u8BCA\u65AD\uFF08meta \u540C\u6B65\u3001\u77E5\u8BC6\u7D22\u5F15\u3001bootstrap\u3001events ledger\u3001human-lock \u6F02\u79FB\uFF09\u3002\n\n\u793A\u4F8B\uFF1A\n fabric doctor \u53EA\u8BFB\u8BCA\u65AD\u62A5\u544A\n fabric doctor --fix \u4FEE\u590D\u6D3E\u751F\u72B6\u6001\uFF08meta + \u7D22\u5F15\uFF09\n fabric doctor --fix-knowledge \u5E94\u7528\u77E5\u8BC6\u5E93 lint \u53D8\u66F4\uFF08\u8BA1\u6570\u5668 / \u5F52\u6863 / \u7F13\u5B58\uFF09\n fabric doctor --json \u673A\u5668\u53EF\u8BFB\u8F93\u51FA",
|
|
1178
1240
|
"doctor.section.fixable": "\u53EF\u4FEE\u590D\u9519\u8BEF\uFF1A",
|
|
1179
1241
|
"doctor.section.manual": "\u9700\u624B\u52A8\u4FEE\u590D\uFF1A",
|
|
1180
1242
|
"doctor.section.warnings": "\u8B66\u544A\uFF1A",
|
|
1181
1243
|
"doctor.section.fix-knowledge-mutations": "Fix-knowledge \u53D8\u66F4\uFF1A",
|
|
1244
|
+
// flat-design-system Wave5 (TASK-005): 重排后的 doctor C-圆点分组标题
|
|
1245
|
+
// (`● 存储健康` / `● 检查项`),取代原硬编码 sectionBar 字面量。
|
|
1246
|
+
"doctor.group.store-health": "\u5B58\u50A8\u5065\u5EB7",
|
|
1247
|
+
"doctor.group.checks": "\u68C0\u67E5\u9879",
|
|
1182
1248
|
// v2.0.0-rc.29 REVIEW (codex LOW-2): F2 的 payload 阈值之前只出现在 JSON envelope,
|
|
1183
1249
|
// 人类输出看不到,导致改了 mcpPayloadLimits 之后没法用 `fabric doctor` 快速确认是否生效。
|
|
1184
1250
|
"doctor.section.payload-limits": "MCP payload \u9608\u503C\uFF1A",
|
|
@@ -1684,12 +1750,27 @@ var zhCNMessages = {
|
|
|
1684
1750
|
"cli.install.pipeline.title": "Fabric \u5B89\u88C5",
|
|
1685
1751
|
"cli.install.pipeline.complete": "Fabric \u5B89\u88C5\u5B8C\u6210",
|
|
1686
1752
|
"cli.install.pipeline.running": "\u5C06\u6309 {count} \u4E2A\u9636\u6BB5\u6267\u884C",
|
|
1753
|
+
// TASK-002 (G1):总结卡收尾 + 计数词。原先在 ConsoleOutputRenderer 中硬编码英文
|
|
1754
|
+
// (Done! / succeeded / skipped / failed / "All steps completed successfully"),
|
|
1755
|
+
// 全部收进 t() + 双语表,locale-parity.test.ts 守护 en + zh-CN 每个 key 齐备。
|
|
1756
|
+
"cli.summary.done": "\u5B8C\u6210!",
|
|
1757
|
+
"cli.summary.all-ok": "\u5168\u90E8\u6B65\u9AA4\u5DF2\u5B8C\u6210",
|
|
1758
|
+
"cli.summary.n-failed": "{count} \u4E2A\u6B65\u9AA4\u5931\u8D25",
|
|
1759
|
+
"cli.summary.n-of-total": "{done}/{total} \u6B65\u5DF2\u5B8C\u6210",
|
|
1760
|
+
"cli.summary.count.succeeded": "\u6210\u529F",
|
|
1761
|
+
"cli.summary.count.skipped": "\u8DF3\u8FC7",
|
|
1762
|
+
"cli.summary.count.failed": "\u5931\u8D25",
|
|
1687
1763
|
// TASK-004: 首装走 onboarding 定调(欢迎语 + 一次性设置说明);重装保持简洁的
|
|
1688
1764
|
// "将按 N 阶段执行"。{count} = 阶段总数。
|
|
1689
1765
|
"cli.install.pipeline.intro.firstRun": "\u6B22\u8FCE\u4F7F\u7528 Fabric \u2014\u2014 \u8FD9\u662F\u9996\u6B21\u5B89\u88C5,\u6211\u4F1A\u5F15\u5BFC\u4F60\u5B8C\u6210\u4E00\u6B21\u6027\u8BBE\u7F6E(\u5171 {count} \u4E2A\u9636\u6BB5);\u4E4B\u540E\u518D\u8DD1\u4F1A\u81EA\u52A8\u8DF3\u8FC7\u5DF2\u5C31\u7EEA\u9879\u3002",
|
|
1690
1766
|
// TASK-004: 重装且全程幂等(无任何 install)时折叠成的单张体检卡片标题。
|
|
1691
1767
|
// {count} = 阶段总数。明细走 --verbose。
|
|
1692
1768
|
"cli.install.healthcheck.title": "\u2713 Fabric \u5DF2\u662F\u6700\u65B0 \xB7 {count} \u9636\u6BB5\u5C31\u7EEA \xB7 \u65E0\u6539\u52A8",
|
|
1769
|
+
// TASK-003 (G2 root a):每阶段总结明细的状态词改按 r.changed 判定(不再用
|
|
1770
|
+
// installed.length)—— 无改动的重装走"已最新",不再误报"N 项已安装"。
|
|
1771
|
+
// installed-count 仅在该阶段确有改动时使用。
|
|
1772
|
+
"cli.install.stage.uptodate": "\u5DF2\u6700\u65B0",
|
|
1773
|
+
"cli.install.stage.installed-count": "{count} \u9879\u5DF2\u5B89\u88C5",
|
|
1693
1774
|
"cli.install.pipeline.label.preflight": "\u5168\u5C40\u4E0E\u9879\u76EE\u9884\u68C0",
|
|
1694
1775
|
"cli.install.pipeline.label.env": "\u9879\u76EE\u73AF\u5883\u521D\u59CB\u5316",
|
|
1695
1776
|
"cli.install.pipeline.label.store": "\u77E5\u8BC6\u5E93\u62D3\u6251",
|
|
@@ -1699,6 +1780,9 @@ var zhCNMessages = {
|
|
|
1699
1780
|
"cli.install.pipeline.label.guidance": "\u540E\u7EED\u6307\u5F15",
|
|
1700
1781
|
"cli.install.pipeline.desc.store": "\u7ED1\u5B9A\u5F53\u524D\u9879\u76EE\u7684 read/write store\uFF0C\u5237\u65B0 resolved-bindings snapshot\u3002",
|
|
1701
1782
|
"cli.install.next-step": "{label} {message}",
|
|
1783
|
+
// TASK-002 (G6): 收口总结卡的单一黄金动作锚点。能力明细表收进 --verbose,
|
|
1784
|
+
// 这一行才是诚实的「下一步做什么」。{action} = 具体下一条命令。
|
|
1785
|
+
"cli.install.next-step.anchor": "\u4E0B\u4E00\u6B65 \u2192 {action}",
|
|
1702
1786
|
"cli.install.reason-message": "{label} {message}",
|
|
1703
1787
|
"cli.install.language.prompt": "\u9009\u62E9 Fabric \u8BED\u8A00\uFF08\u754C\u9762\u4E0E\u77E5\u8BC6\u7EDF\u4E00\u4F7F\u7528\uFF0C\u4E4B\u540E\u53EF\u7528 fabric config \u4FEE\u6539\uFF09\uFF1A",
|
|
1704
1788
|
"cli.install.language.option.zh-CN": "\u7B80\u4F53\u4E2D\u6587 (zh-CN)",
|
|
@@ -1726,6 +1810,10 @@ var zhCNMessages = {
|
|
|
1726
1810
|
"cli.install.wizard.stage.bootstrap": "\u662F\u5426\u5B89\u88C5 bootstrap \u6A21\u677F\uFF1F[{defaultValue}]",
|
|
1727
1811
|
"cli.install.wizard.stage.mcp": "\u662F\u5426\u914D\u7F6E MCP \u5BA2\u6237\u7AEF\uFF1F[{defaultValue}]",
|
|
1728
1812
|
"cli.install.wizard.stage.hooks": "\u662F\u5426\u5B89\u88C5 git hooks\uFF1F[{defaultValue}]",
|
|
1813
|
+
// flat-design-system Wave4 (TASK-004): post-group ✓ 回执用的短阶段标签。
|
|
1814
|
+
"cli.install.wizard.stage.bootstrap.short": "bootstrap \u6A21\u677F",
|
|
1815
|
+
"cli.install.wizard.stage.mcp.short": "MCP \u5BA2\u6237\u7AEF",
|
|
1816
|
+
"cli.install.wizard.stage.hooks.short": "git hooks",
|
|
1729
1817
|
"cli.install.wizard.mcp-install": "MCP \u670D\u52A1\u7AEF\u5B89\u88C5\u8303\u56F4\uFF08global/local\uFF09[{defaultValue}]",
|
|
1730
1818
|
"cli.install.wizard.execute.confirm": "\u73B0\u5728\u6267\u884C\u8BE5\u5B89\u88C5\u8BA1\u5212\uFF1F[Y/n]",
|
|
1731
1819
|
"cli.install.wizard.outro": "\u5B89\u88C5\u8BA1\u5212\u5DF2\u786E\u8BA4\uFF0C\u5F00\u59CB\u6267\u884C Fabric install...",
|
|
@@ -1858,7 +1946,14 @@ var zhCNMessages = {
|
|
|
1858
1946
|
// C3: 镜像 install 的阶段提示 (install 用 "Fabric install 将按 N 个阶段执行")。
|
|
1859
1947
|
"cli.uninstall.plan.phase-banner": "Fabric uninstall \u5C06\u6309 {total} \u4E2A\u9636\u6BB5\u6267\u884C",
|
|
1860
1948
|
"cli.uninstall.plan.target": "\u76EE\u6807\uFF1A{target}",
|
|
1861
|
-
|
|
1949
|
+
// flat-design-system Wave5 (TASK-004 G3): 计划预览用人话动作句,按启用的阶段逐条列,
|
|
1950
|
+
// 不再输出 `key=是/否` 黑话行。
|
|
1951
|
+
"cli.uninstall.plan.will-remove": "\u5C06\u79FB\u9664\uFF1A",
|
|
1952
|
+
"cli.uninstall.plan.will-keep": "\u5C06\u4FDD\u7559\uFF1A",
|
|
1953
|
+
"cli.uninstall.plan.action.bootstrap": "\u5BA2\u6237\u7AEF\u6280\u80FD\u4E0E hook \u811A\u672C",
|
|
1954
|
+
"cli.uninstall.plan.action.mcp": "MCP \u670D\u52A1\u6CE8\u518C",
|
|
1955
|
+
"cli.uninstall.plan.action.scaffold": "\u9879\u76EE\u811A\u624B\u67B6\u6587\u4EF6",
|
|
1956
|
+
"cli.uninstall.plan.action.store": "\u56E2\u961F store \u7ED1\u5B9A\uFF08\u672C\u9879\u76EE\uFF09",
|
|
1862
1957
|
"cli.uninstall.plan.detected": "\u68C0\u6D4B\u5230\u7684\u5BA2\u6237\u7AEF\uFF1A{clients}",
|
|
1863
1958
|
"cli.uninstall.plan.preserves": "\u4FDD\u7559\u9879\uFF1A",
|
|
1864
1959
|
"cli.uninstall.plan.preserves.stores": "\u5168\u5C40\u77E5\u8BC6 stores\uFF0C\u9879\u76EE\u5378\u8F7D\u6C38\u4E0D\u5220\u9664",
|
|
@@ -1879,6 +1974,10 @@ var zhCNMessages = {
|
|
|
1879
1974
|
"cli.uninstall.stages.uptodate": "\u65E0\u53EF\u79FB\u9664\uFF08{count} \u9879\u5DF2\u4E0D\u5B58\u5728\uFF09",
|
|
1880
1975
|
"cli.uninstall.stages.summary": "removed={removed} skipped={skipped} errors={errors}",
|
|
1881
1976
|
"cli.uninstall.stages.removed-count": "\u5DF2\u79FB\u9664 {count} \u9879",
|
|
1977
|
+
// flat-design-system Wave5 (TASK-006 G3): 总结卡明细行的人话结果词,与 install 的
|
|
1978
|
+
// `已安装 {count} 项` / `已最新` 对称。
|
|
1979
|
+
"cli.uninstall.stage.cleaned-count": "\u5DF2\u6E05\u7406 {count} \u9879",
|
|
1980
|
+
"cli.uninstall.stage.already-clean": "\u5DF2\u662F\u5E72\u51C0",
|
|
1882
1981
|
"cli.uninstall.summary.title": "\u5378\u8F7D\u6458\u8981",
|
|
1883
1982
|
"cli.uninstall.summary.body": "removed={removed} skipped={skipped} errors={errors}",
|
|
1884
1983
|
"cli.uninstall.healthcheck.title": "\u2713 Fabric \u5DF2\u4E0D\u5B58\u5728 \xB7 \u65E0\u53EF\u79FB\u9664",
|
package/dist/i18n/index.js
CHANGED
|
@@ -5,12 +5,12 @@ import {
|
|
|
5
5
|
enMessages,
|
|
6
6
|
resolveFabricLocale,
|
|
7
7
|
zhCNMessages
|
|
8
|
-
} from "../chunk-
|
|
8
|
+
} from "../chunk-UPYKUYHN.js";
|
|
9
9
|
import {
|
|
10
10
|
detectNodeLocale,
|
|
11
11
|
normalizeLocale,
|
|
12
12
|
resolveGlobalLocale
|
|
13
|
-
} from "../chunk-
|
|
13
|
+
} from "../chunk-ASS2KBB7.js";
|
|
14
14
|
export {
|
|
15
15
|
PROTECTED_TOKENS,
|
|
16
16
|
createTranslator,
|
|
@@ -496,7 +496,7 @@ declare const fabricConfigSchema: z.ZodObject<{
|
|
|
496
496
|
embed_enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
497
497
|
embed_weight: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
498
498
|
embed_model: z.ZodDefault<z.ZodOptional<z.ZodEnum<["fast-bge-small-zh-v1.5", "fast-multilingual-e5-large", "fast-bge-small-en-v1.5", "fast-bge-small-en", "fast-bge-base-en-v1.5", "fast-bge-base-en", "fast-all-MiniLM-L6-v2"]>>>;
|
|
499
|
-
fusion: z.ZodDefault<z.ZodOptional<z.ZodEnum<["additive", "rrf"]>>>;
|
|
499
|
+
fusion: z.ZodDefault<z.ZodOptional<z.ZodEnum<["additive", "rrf", "auto"]>>>;
|
|
500
500
|
}, "strip", z.ZodTypeAny, {
|
|
501
501
|
default_layer_filter: "personal" | "team" | "both";
|
|
502
502
|
nudge_mode: "silent" | "minimal" | "normal" | "verbose";
|
|
@@ -525,7 +525,7 @@ declare const fabricConfigSchema: z.ZodObject<{
|
|
|
525
525
|
embed_enabled: boolean;
|
|
526
526
|
embed_weight: number;
|
|
527
527
|
embed_model: "fast-bge-small-zh-v1.5" | "fast-multilingual-e5-large" | "fast-bge-small-en-v1.5" | "fast-bge-small-en" | "fast-bge-base-en-v1.5" | "fast-bge-base-en" | "fast-all-MiniLM-L6-v2";
|
|
528
|
-
fusion: "additive" | "rrf";
|
|
528
|
+
fusion: "additive" | "rrf" | "auto";
|
|
529
529
|
clientPaths?: {
|
|
530
530
|
claudeCodeCLI?: string | undefined;
|
|
531
531
|
claudeCodeDesktop?: string | undefined;
|
|
@@ -632,7 +632,7 @@ declare const fabricConfigSchema: z.ZodObject<{
|
|
|
632
632
|
embed_enabled?: boolean | undefined;
|
|
633
633
|
embed_weight?: number | undefined;
|
|
634
634
|
embed_model?: "fast-bge-small-zh-v1.5" | "fast-multilingual-e5-large" | "fast-bge-small-en-v1.5" | "fast-bge-small-en" | "fast-bge-base-en-v1.5" | "fast-bge-base-en" | "fast-all-MiniLM-L6-v2" | undefined;
|
|
635
|
-
fusion?: "additive" | "rrf" | undefined;
|
|
635
|
+
fusion?: "additive" | "rrf" | "auto" | undefined;
|
|
636
636
|
}>;
|
|
637
637
|
declare const fabricConfigLoadSchema: z.ZodObject<{
|
|
638
638
|
clientPaths: z.ZodOptional<z.ZodObject<{
|
|
@@ -725,7 +725,7 @@ declare const fabricConfigLoadSchema: z.ZodObject<{
|
|
|
725
725
|
embed_enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
726
726
|
embed_weight: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
727
727
|
embed_model: z.ZodDefault<z.ZodOptional<z.ZodEnum<["fast-bge-small-zh-v1.5", "fast-multilingual-e5-large", "fast-bge-small-en-v1.5", "fast-bge-small-en", "fast-bge-base-en-v1.5", "fast-bge-base-en", "fast-all-MiniLM-L6-v2"]>>>;
|
|
728
|
-
fusion: z.ZodDefault<z.ZodOptional<z.ZodEnum<["additive", "rrf"]>>>;
|
|
728
|
+
fusion: z.ZodDefault<z.ZodOptional<z.ZodEnum<["additive", "rrf", "auto"]>>>;
|
|
729
729
|
} & {
|
|
730
730
|
required_stores: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
731
731
|
id: z.ZodString;
|
|
@@ -765,7 +765,7 @@ declare const fabricConfigLoadSchema: z.ZodObject<{
|
|
|
765
765
|
embed_enabled: boolean;
|
|
766
766
|
embed_weight: number;
|
|
767
767
|
embed_model: "fast-bge-small-zh-v1.5" | "fast-multilingual-e5-large" | "fast-bge-small-en-v1.5" | "fast-bge-small-en" | "fast-bge-base-en-v1.5" | "fast-bge-base-en" | "fast-all-MiniLM-L6-v2";
|
|
768
|
-
fusion: "additive" | "rrf";
|
|
768
|
+
fusion: "additive" | "rrf" | "auto";
|
|
769
769
|
clientPaths?: {
|
|
770
770
|
claudeCodeCLI?: string | undefined;
|
|
771
771
|
claudeCodeDesktop?: string | undefined;
|
|
@@ -872,7 +872,7 @@ declare const fabricConfigLoadSchema: z.ZodObject<{
|
|
|
872
872
|
embed_enabled?: boolean | undefined;
|
|
873
873
|
embed_weight?: number | undefined;
|
|
874
874
|
embed_model?: "fast-bge-small-zh-v1.5" | "fast-multilingual-e5-large" | "fast-bge-small-en-v1.5" | "fast-bge-small-en" | "fast-bge-base-en-v1.5" | "fast-bge-base-en" | "fast-all-MiniLM-L6-v2" | undefined;
|
|
875
|
-
fusion?: "additive" | "rrf" | undefined;
|
|
875
|
+
fusion?: "additive" | "rrf" | "auto" | undefined;
|
|
876
876
|
}>;
|
|
877
877
|
|
|
878
878
|
interface ClientPaths {
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { A as AgentsMetaNode, a as AgentsIdentitySource, b as AgentsTopologyType, H as HumanLockEntry, f as fabricConfigSchema, S as StoreIdentity, c as StoreProject, G as GlobalConfig, F as FabricConfig, M as MountedStore, R as RequiredStoreEntry, d as AgentsMeta, L as LedgerEntry } from './index-
|
|
2
|
-
export { e as AgentsMetaCountersEnvelope, g as AgentsMetaKnowledgeTypeCounters, h as AiLedgerEntry, i as AuditMode, C as ClientPaths, D as DefaultLayerFilter, j as FabricLanguage, k as GLOBAL_BINDINGS_DIR, l as GLOBAL_STATE_DIR, m as HumanLedgerEntry, n as McpPayloadLimits, P as PERSONAL_STORE_SENTINEL, o as RecallScore, p as RecallScoreBreakdown, q as RuleDescription, r as RuleDescriptionIndexItem, s as STORES_ROOT_DIR, t as STORE_ALIAS_PATTERN, u as STORE_KNOWLEDGE_TYPE_DIRS, v as STORE_LAYOUT, w as STORE_MOUNT_GROUPS, x as STORE_MOUNT_NAME_PATTERN, y as STORE_PROJECT_ID_PATTERN, z as STORE_UUID_PATTERN, B as StoreLayout, E as StoreMountGroup, I as StoreProjectsFile, J as auditModeSchema, K as clientPathsSchema, N as defaultLayerFilterSchema, O as deriveMountLabel, Q as fabricConfigLoadSchema, T as fabricLanguageSchema, U as globalConfigSchema, V as isNonPersonalRequiredStore, W as mcpPayloadLimitsSchema, X as migrateRequiredStores, Y as mountedStoreSchema, Z as nudgeModeSchema, _ as observeConfigSchema, $ as planContextTopKSchema, a0 as requiredStoreEntrySchema, a1 as selectionTokenTtlMsSchema, a2 as storeAliasSchema, a3 as storeIdentitySchema, a4 as storeKnowledgeTypeDir, a5 as storeMountGroup, a6 as storeMountNameSchema, a7 as storeMountSubPath, a8 as storeProjectSchema, a9 as storeProjectsFileSchema, aa as storeRelativePath, ab as storeRelativePathForMount, ac as storeUuidSchema, ad as writeRouteSchema } from './index-
|
|
1
|
+
import { A as AgentsMetaNode, a as AgentsIdentitySource, b as AgentsTopologyType, H as HumanLockEntry, f as fabricConfigSchema, S as StoreIdentity, c as StoreProject, G as GlobalConfig, F as FabricConfig, M as MountedStore, R as RequiredStoreEntry, d as AgentsMeta, L as LedgerEntry } from './index-C0cijMSw.js';
|
|
2
|
+
export { e as AgentsMetaCountersEnvelope, g as AgentsMetaKnowledgeTypeCounters, h as AiLedgerEntry, i as AuditMode, C as ClientPaths, D as DefaultLayerFilter, j as FabricLanguage, k as GLOBAL_BINDINGS_DIR, l as GLOBAL_STATE_DIR, m as HumanLedgerEntry, n as McpPayloadLimits, P as PERSONAL_STORE_SENTINEL, o as RecallScore, p as RecallScoreBreakdown, q as RuleDescription, r as RuleDescriptionIndexItem, s as STORES_ROOT_DIR, t as STORE_ALIAS_PATTERN, u as STORE_KNOWLEDGE_TYPE_DIRS, v as STORE_LAYOUT, w as STORE_MOUNT_GROUPS, x as STORE_MOUNT_NAME_PATTERN, y as STORE_PROJECT_ID_PATTERN, z as STORE_UUID_PATTERN, B as StoreLayout, E as StoreMountGroup, I as StoreProjectsFile, J as auditModeSchema, K as clientPathsSchema, N as defaultLayerFilterSchema, O as deriveMountLabel, Q as fabricConfigLoadSchema, T as fabricLanguageSchema, U as globalConfigSchema, V as isNonPersonalRequiredStore, W as mcpPayloadLimitsSchema, X as migrateRequiredStores, Y as mountedStoreSchema, Z as nudgeModeSchema, _ as observeConfigSchema, $ as planContextTopKSchema, a0 as requiredStoreEntrySchema, a1 as selectionTokenTtlMsSchema, a2 as storeAliasSchema, a3 as storeIdentitySchema, a4 as storeKnowledgeTypeDir, a5 as storeMountGroup, a6 as storeMountNameSchema, a7 as storeMountSubPath, a8 as storeProjectSchema, a9 as storeProjectsFileSchema, aa as storeRelativePath, ab as storeRelativePathForMount, ac as storeUuidSchema, ad as writeRouteSchema } from './index-C0cijMSw.js';
|
|
3
3
|
import { T as Translator } from './types-qg4xXVuT.js';
|
|
4
4
|
export { L as Locale, M as Messages, a as TranslationKey } from './types-qg4xXVuT.js';
|
|
5
5
|
export { PROTECTED_TOKENS, ProtectedToken, createTranslator, defaultMessages, detectNodeLocale, enMessages, normalizeLocale, resolveFabricLocale, resolveGlobalLocale, zhCNMessages } from './i18n/index.js';
|
package/dist/index.js
CHANGED
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
BOOTSTRAP_REGEX,
|
|
8
8
|
matchBootstrapCanonicalLocale,
|
|
9
9
|
resolveBootstrapCanonical
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-KFFBQRL5.js";
|
|
11
11
|
import "./chunk-LXNCAKJZ.js";
|
|
12
12
|
import {
|
|
13
13
|
PROTECTED_TOKENS,
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
enMessages,
|
|
17
17
|
resolveFabricLocale,
|
|
18
18
|
zhCNMessages
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-UPYKUYHN.js";
|
|
20
20
|
import {
|
|
21
21
|
GLOBAL_BINDINGS_DIR,
|
|
22
22
|
GLOBAL_STATE_DIR,
|
|
@@ -51,7 +51,7 @@ import {
|
|
|
51
51
|
storeRelativePath,
|
|
52
52
|
storeRelativePathForMount,
|
|
53
53
|
storeUuidSchema
|
|
54
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-ASS2KBB7.js";
|
|
55
55
|
import {
|
|
56
56
|
atomicWriteJson,
|
|
57
57
|
withFileLock
|
|
@@ -766,15 +766,18 @@ var fabricConfigSchema = z5.object({
|
|
|
766
766
|
"fast-bge-base-en",
|
|
767
767
|
"fast-all-MiniLM-L6-v2"
|
|
768
768
|
]).optional().default("fast-bge-small-zh-v1.5"),
|
|
769
|
-
// P1 recall-engine-refactor (TASK-003): content-channel fusion
|
|
770
|
-
// 'additive'
|
|
771
|
-
//
|
|
772
|
-
//
|
|
773
|
-
//
|
|
774
|
-
//
|
|
775
|
-
//
|
|
776
|
-
//
|
|
777
|
-
|
|
769
|
+
// P1 recall-engine-refactor (TASK-003 + follow-up): content-channel fusion
|
|
770
|
+
// strategy. 'additive' = the weighted-sum path (BM25_WEIGHT·bm25 + vectorWeight·
|
|
771
|
+
// vector + structural); the vector term is structurally minor (cosine·30 vs an
|
|
772
|
+
// unbounded BM25), so additive is effectively BM25-led. 'rrf' = Reciprocal Rank
|
|
773
|
+
// Fusion over the two CONTENT channels (bm25_rank, vector_rank, equal footing)
|
|
774
|
+
// + a re-scaled structural tiebreaker — lets semantic recall actually matter.
|
|
775
|
+
// 'auto' (DEFAULT) = adaptive: use 'rrf' WHEN the vector channel is actually
|
|
776
|
+
// producing scores (embeddings installed + model warm), else fall back to
|
|
777
|
+
// 'additive'. This is the safe default — real-store shadow showed single-channel
|
|
778
|
+
// rrf (no vectors) is strictly worse than additive, so auto never lets that
|
|
779
|
+
// happen. no-query ranking is byte-identical under every value.
|
|
780
|
+
fusion: z5.enum(["additive", "rrf", "auto"]).optional().default("auto")
|
|
778
781
|
});
|
|
779
782
|
var fabricConfigLoadSchema = fabricConfigSchema.merge(
|
|
780
783
|
z5.object({
|
|
@@ -949,7 +952,11 @@ var PANEL_FIELDS = [
|
|
|
949
952
|
// when absent) — this introspection default mirrors the runtime read in
|
|
950
953
|
// config-loader.ts so the panel never shows a default that contradicts behavior.
|
|
951
954
|
makeEnumField("nudge_mode", "D_behavior", nudgeModeSchema.options, "normal"),
|
|
952
|
-
makeBooleanField("embed_enabled", true)
|
|
955
|
+
makeBooleanField("embed_enabled", true),
|
|
956
|
+
// P1 recall-engine-refactor (follow-up): the content-channel fusion strategy,
|
|
957
|
+
// panel-editable so it sits next to embed_enabled (the two go together — rrf
|
|
958
|
+
// only pays off when embeddings are on). 'auto' is the safe adaptive default.
|
|
959
|
+
makeEnumField("fusion", "D_behavior", ["additive", "rrf", "auto"], "auto")
|
|
953
960
|
];
|
|
954
961
|
|
|
955
962
|
// src/schemas/store-stable-id.ts
|
|
@@ -7,8 +7,8 @@ import {
|
|
|
7
7
|
BOOTSTRAP_REGEX,
|
|
8
8
|
matchBootstrapCanonicalLocale,
|
|
9
9
|
resolveBootstrapCanonical
|
|
10
|
-
} from "../chunk-
|
|
11
|
-
import "../chunk-
|
|
10
|
+
} from "../chunk-KFFBQRL5.js";
|
|
11
|
+
import "../chunk-ASS2KBB7.js";
|
|
12
12
|
export {
|
|
13
13
|
BOOTSTRAP_CANONICAL_BY_LOCALE,
|
|
14
14
|
BOOTSTRAP_CANONICAL_EN,
|
package/dist/theme.d.ts
CHANGED
|
@@ -23,6 +23,7 @@ declare const SYMBOL_ASCII: {
|
|
|
23
23
|
};
|
|
24
24
|
declare function symbol(kind: keyof typeof SYMBOL_ASCII, colorOn?: boolean): string;
|
|
25
25
|
declare function sectionBar(title: string, colorOn?: boolean): string;
|
|
26
|
+
declare function headerRule(title: string, colorOn?: boolean): string;
|
|
26
27
|
declare const SCOPE_BADGE_TOKEN: {
|
|
27
28
|
readonly team: "drift";
|
|
28
29
|
readonly project: "ai";
|
|
@@ -30,4 +31,4 @@ declare const SCOPE_BADGE_TOKEN: {
|
|
|
30
31
|
};
|
|
31
32
|
declare function scopeBadge(scope: keyof typeof SCOPE_BADGE_TOKEN, colorOn?: boolean): string;
|
|
32
33
|
|
|
33
|
-
export { ANSI, PALETTE, SYMBOL_ASCII, type ThemeToken, isColorEnabled, paint, scopeBadge, sectionBar, symbol };
|
|
34
|
+
export { ANSI, PALETTE, SYMBOL_ASCII, type ThemeToken, headerRule, isColorEnabled, paint, scopeBadge, sectionBar, symbol };
|
package/dist/theme.js
CHANGED
|
@@ -40,6 +40,12 @@ function symbol(kind, colorOn = isColorEnabled()) {
|
|
|
40
40
|
function sectionBar(title, colorOn = isColorEnabled()) {
|
|
41
41
|
return colorOn ? `${ANSI.bold}${PALETTE.accent}\u258C ${title}${ANSI.reset}` : `# ${title}`;
|
|
42
42
|
}
|
|
43
|
+
function headerRule(title, colorOn = isColorEnabled()) {
|
|
44
|
+
const head = colorOn ? `${ANSI.bold}${PALETTE.accent}${title}${ANSI.reset}` : title;
|
|
45
|
+
const rule = paint("muted", (colorOn ? "\u2500" : "-").repeat(40), colorOn);
|
|
46
|
+
return `${head}
|
|
47
|
+
${rule}`;
|
|
48
|
+
}
|
|
43
49
|
var SCOPE_BADGE_TOKEN = { team: "drift", project: "ai", personal: "human" };
|
|
44
50
|
function scopeBadge(scope, colorOn = isColorEnabled()) {
|
|
45
51
|
const text = `[${scope}]`;
|
|
@@ -49,6 +55,7 @@ export {
|
|
|
49
55
|
ANSI,
|
|
50
56
|
PALETTE,
|
|
51
57
|
SYMBOL_ASCII,
|
|
58
|
+
headerRule,
|
|
52
59
|
isColorEnabled,
|
|
53
60
|
paint,
|
|
54
61
|
scopeBadge,
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { a as AgentsIdentitySource, d as AgentsMeta, e as AgentsMetaCountersEnvelope, g as AgentsMetaKnowledgeTypeCounters, A as AgentsMetaNode, b as AgentsTopologyType, h as AiLedgerEntry, i as AuditMode, C as ClientPaths, D as DefaultLayerFilter, F as FabricConfig, j as FabricLanguage, m as HumanLedgerEntry, H as HumanLockEntry, L as LedgerEntry, n as McpPayloadLimits, o as RecallScore, p as RecallScoreBreakdown, q as RuleDescription, r as RuleDescriptionIndexItem } from '../index-
|
|
1
|
+
export { a as AgentsIdentitySource, d as AgentsMeta, e as AgentsMetaCountersEnvelope, g as AgentsMetaKnowledgeTypeCounters, A as AgentsMetaNode, b as AgentsTopologyType, h as AiLedgerEntry, i as AuditMode, C as ClientPaths, D as DefaultLayerFilter, F as FabricConfig, j as FabricLanguage, m as HumanLedgerEntry, H as HumanLockEntry, L as LedgerEntry, n as McpPayloadLimits, o as RecallScore, p as RecallScoreBreakdown, q as RuleDescription, r as RuleDescriptionIndexItem } from '../index-C0cijMSw.js';
|
|
2
2
|
import 'zod';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fenglimg/fabric-shared",
|
|
3
|
-
"version": "2.3.0-rc.
|
|
3
|
+
"version": "2.3.0-rc.3",
|
|
4
4
|
"description": "Fabric shared types — Zod schemas, i18n, atomic-write helpers, MCP payload guard, error classes. Consumed by @fenglimg/fabric-server + @fenglimg/fabric-cli.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "wangzhichao <fenglimg90@gmail.com>",
|