@fenglimg/fabric-shared 2.0.0-rc.11 → 2.0.0-rc.13

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.
@@ -77,113 +77,114 @@ var enMessages = {
77
77
  "cli.human-lint.table.location": "Location",
78
78
  "cli.human-lint.table.expected": "Expected",
79
79
  "cli.human-lint.table.got": "Got",
80
- "cli.init.description": "Initialize Fabric in the target project.",
81
- "cli.init.args.target.description": "Target project path. Defaults to CLI arg, EXTERNAL_FIXTURE_PATH, fabric.config.json, then cwd.",
82
- "cli.init.args.debug.description": "Print target resolution details to stderr.",
83
- "cli.init.args.force.description": "Overwrite existing files (bypass non-destructive guard)",
84
- "cli.init.args.yes.description": "Accept the current init plan and run without the TTY wizard",
85
- "cli.init.args.plan.description": "Print the init plan without writing files or running follow-up stages",
86
- "cli.init.args.reapply.description": "Reapply Fabric-managed files and stage installers over an existing setup",
87
- "cli.init.args.no-bootstrap.description": "Compatibility flag: remove bootstrap from the init plan",
88
- "cli.init.args.no-mcp.description": "Compatibility flag: remove MCP configuration from the init plan",
89
- "cli.init.args.no-hooks.description": "Compatibility flag: remove git hooks from the init plan",
90
- "cli.init.args.interactive.description": "Compatibility flag: disable the TTY wizard and use direct execution",
91
- "cli.init.mcp.install.global": "Using globally-installed @fenglimg/fabric-server",
92
- "cli.init.mcp.install.local": "Installing @fenglimg/fabric-server to project devDependencies",
93
- "cli.init.mcp.install.prompt": "MCP server install scope (global|local)",
94
- "cli.init.mcp.install.invalid": 'Invalid --mcp-install value "{value}" \u2014 falling back to global',
95
- "cli.init.mcp.local.installing": "Running {manager} add -D @fenglimg/fabric-server...",
96
- "cli.init.mcp.local.installed": "Installed to devDependencies",
97
- "cli.init.mcp.scope.description": "Claude MCP config scope: project (writes .mcp.json) or user (writes ~/.claude.json)",
98
- "cli.init.mcp.scope.invalid": 'Invalid --scope value "{value}" \u2014 falling back to project',
99
- "cli.init.mcp.scope.project": "Writes .mcp.json in project root (per Claude Code spec)",
100
- "cli.init.mcp.scope.user": "Writes ~/.claude.json (user-scoped, applies to all projects)",
101
- "cli.init.wizard.mcp-scope": "Claude MCP config scope (project/.mcp.json or user/~/.claude.json) [{defaultValue}]",
102
- "cli.init.created-path": "{label} {path}",
103
- "cli.init.skipped-existing-path": "{label} {path}: already exists.",
104
- "cli.init.force.overwritten": "Overwritten",
105
- "cli.init.force.warning": "--force will overwrite existing Fabric artifacts in {path}",
106
- "cli.init.stages.bootstrap": "Installing bootstrap templates...",
107
- "cli.init.stages.mcp": "Configuring MCP clients...",
108
- "cli.init.stages.hooks": "Installing git hooks...",
109
- "cli.init.stages.skipped": "skipped",
110
- "cli.init.stages.completed": "completed",
111
- "cli.init.stages.failed": "failed",
112
- "cli.init.stages.summary.ran": "ran",
113
- "cli.init.stages.summary.skipped": "skipped",
114
- "cli.init.stages.summary.failed": "failed",
115
- "cli.init.next-step": "{label} {message}",
116
- "cli.init.reason-message": "{label} {message}",
117
- "cli.init.plan.title": "Fabric init plan",
118
- "cli.init.plan.mode-banner.default": "[mode: apply] Standard init execution",
119
- "cli.init.plan.mode-banner.plan": "[mode: plan] Dry run only, no files will be written",
120
- "cli.init.plan.mode-banner.reapply": "[mode: reapply] Force reapplying Fabric-managed assets",
121
- "cli.init.plan.mode-banner.plan-reapply": "[mode: plan+reapply] Previewing a forced reapply without writing files",
122
- "cli.init.plan.target": "Target: {target}",
123
- "cli.init.plan.actions": "Plan: bootstrap={bootstrap} mcp={mcp} hooks={hooks} mcp-install={mcpInstall}",
124
- "cli.init.plan.detected": "Detected clients: {clients}",
125
- "cli.init.plan.writes": "Core writes:",
126
- "cli.init.plan.preview-title": "Fabric init dry run",
127
- "cli.init.plan.preview-result": "Mode={mode} bootstrap={bootstrap} mcp={mcp} hooks={hooks}",
128
- "cli.init.mode.default": "default",
129
- "cli.init.mode.reapply": "reapply",
130
- "cli.init.mode.badge.default": "APPLY",
131
- "cli.init.mode.badge.plan": "PLAN",
132
- "cli.init.mode.badge.reapply": "REAPPLY",
133
- "cli.init.mode.badge.plan-reapply": "PLAN + REAPPLY",
134
- "cli.init.compat.plan": "Using standard --plan mode: no files will be written.",
135
- "cli.init.compat.interactive": "Compatibility: --interactive=false disables the TTY wizard.",
136
- "cli.init.compat.legacy-stage-flags": "Compatibility: legacy --no-* flags are being mapped into the init plan.",
137
- "cli.init.wizard.title": "Fabric init wizard",
138
- "cli.init.wizard.intro": "Fabric init",
139
- "cli.init.wizard.overview.title": "Install overview",
140
- "cli.init.wizard.overview.body": "Target: {target}\nMode: {mode}\nThis wizard only reshapes the init plan; execution still runs through the existing Fabric init stages.",
141
- "cli.init.wizard.step.target": "Confirm target",
142
- "cli.init.wizard.step.plan": "Shape init plan",
143
- "cli.init.wizard.step.review": "Review final plan",
144
- "cli.init.wizard.target.confirm": "Continue initializing Fabric in {target}? [Y/n]",
145
- "cli.init.wizard.stage.bootstrap": "Install bootstrap templates? [{defaultValue}]",
146
- "cli.init.wizard.stage.mcp": "Configure MCP clients? [{defaultValue}]",
147
- "cli.init.wizard.stage.hooks": "Install git hooks? [{defaultValue}]",
148
- "cli.init.wizard.mcp-install": "MCP server install scope (global/local) [{defaultValue}]",
149
- "cli.init.wizard.execute.confirm": "Execute this init plan now? [Y/n]",
150
- "cli.init.wizard.outro": "Init plan accepted. Running Fabric init...",
151
- "cli.init.wizard.invalid-yes-no": "Please answer yes or no.",
152
- "cli.init.wizard.invalid-select": "Invalid value. Use one of: {options}.",
153
- "cli.init.wizard.cancelled": "Fabric init cancelled before execution.",
154
- "cli.init.capabilities.title": "Client capability summary",
155
- "cli.init.capabilities.none": "No supported client was detected for bootstrap or MCP follow-up.",
156
- "cli.init.capabilities.header.client": "Client",
157
- "cli.init.capabilities.header.bootstrap": "Bootstrap",
158
- "cli.init.capabilities.header.mcp": "MCP",
159
- "cli.init.capabilities.header.hook": "Hook",
160
- "cli.init.capabilities.header.skill": "Skill",
161
- "cli.init.capabilities.header.follow-up": "Follow-up",
162
- "cli.init.capabilities.status.ready": "ready",
163
- "cli.init.capabilities.status.installed": "installed",
164
- "cli.init.capabilities.status.supported": "supported",
165
- "cli.init.capabilities.status.manual": "manual",
166
- "cli.init.capabilities.status.skipped": "skipped",
167
- "cli.init.capabilities.status.failed": "failed",
168
- "cli.init.capabilities.status.na": "n/a",
169
- "cli.init.capabilities.follow-up.ready": "continue in client",
170
- "cli.init.capabilities.follow-up.install": "install client assets",
171
- "cli.init.capabilities.follow-up.manual": "manual step required",
172
- "cli.init.next-step.message": "run fab hooks install to add the Day 4 pre-commit pipeline.",
173
- "cli.init.reason-message.installable-body": ".fabric/forensic.json is ready; some detected clients support Fabric follow-up but still need client assets installed.",
174
- "cli.init.reason-message.manual-body": ".fabric/forensic.json is ready; some detected clients still need manual follow-up because no Fabric skill is installed for them yet.",
175
- "cli.init.codex-hooks.created": "{label} {path} with Codex hooks config (requires features.codex_hooks = true).",
176
- "cli.init.codex-hooks.updated": "{label} {path} with Codex hooks config (requires features.codex_hooks = true).",
177
- "cli.init.codex-hooks.skipped": "{label} {path}: Codex hooks config already present.",
178
- "cli.init.claude-settings.created": "{label} {path} with Claude Stop hook.",
179
- "cli.init.claude-settings.updated": "{label} {path} with Claude Stop hook.",
180
- "cli.init.claude-settings.skipped": "{label} {path}: Claude Stop hook already present.",
181
- "cli.init.claude-settings.skipped-invalid": "{label} {path}: unable to merge Claude Stop hook.",
182
- "cli.init.claude-settings.invalid-object": "{label} {path}: expected a JSON object.",
183
- "cli.init.claude-settings.invalid-json": "{label} {path}: invalid JSON ({reason}).",
184
- "cli.init.claude-settings.invalid-hooks": '{label} {path}: "hooks" must be a JSON object.',
185
- "cli.init.claude-settings.invalid-stop-array": '{label} {path}: "hooks.Stop" must be an array.',
186
- "cli.init.errors.abort-existing": "ABORT: {path} already exists. fab init is non-destructive.",
80
+ "cli.install.description": "Install Fabric in the target project.",
81
+ "cli.install.args.target.description": "Target project path. Defaults to CLI arg, EXTERNAL_FIXTURE_PATH, fabric.config.json, then cwd.",
82
+ "cli.install.args.debug.description": "Print target resolution details to stderr.",
83
+ "cli.install.args.force.description": "Overwrite existing files (bypass non-destructive guard)",
84
+ "cli.install.args.yes.description": "Accept the current install plan and run without the TTY wizard",
85
+ "cli.install.args.plan.description": "Print the install plan without writing files or running follow-up stages",
86
+ "cli.install.args.reapply.description": "Reapply Fabric-managed files and stage installers over an existing setup",
87
+ "cli.install.args.no-bootstrap.description": "Compatibility flag: remove bootstrap from the install plan",
88
+ "cli.install.args.no-mcp.description": "Compatibility flag: remove MCP configuration from the install plan",
89
+ "cli.install.args.no-hooks.description": "Compatibility flag: remove git hooks from the install plan",
90
+ "cli.install.args.interactive.description": "Compatibility flag: disable the TTY wizard and use direct execution",
91
+ "cli.install.mcp.install.global": "Using globally-installed @fenglimg/fabric-server",
92
+ "cli.install.mcp.install.local": "Installing @fenglimg/fabric-server to project devDependencies",
93
+ "cli.install.mcp.install.prompt": "MCP server install scope (global|local)",
94
+ "cli.install.mcp.install.invalid": 'Invalid --mcp-install value "{value}" \u2014 falling back to global',
95
+ "cli.install.mcp.local.installing": "Running {manager} add -D @fenglimg/fabric-server...",
96
+ "cli.install.mcp.local.installed": "Installed to devDependencies",
97
+ "cli.install.mcp.scope.description": "Claude MCP config scope: project (writes .mcp.json) or user (writes ~/.claude.json)",
98
+ "cli.install.mcp.scope.invalid": 'Invalid --scope value "{value}" \u2014 falling back to project',
99
+ "cli.install.mcp.scope.project": "Writes .mcp.json in project root (per Claude Code spec)",
100
+ "cli.install.mcp.scope.user": "Writes ~/.claude.json (user-scoped, applies to all projects)",
101
+ "cli.install.wizard.mcp-scope": "Claude MCP config scope (project/.mcp.json or user/~/.claude.json) [{defaultValue}]",
102
+ "cli.install.created-path": "{label} {path}",
103
+ "cli.install.skipped-existing-path": "{label} {path}: already exists.",
104
+ "cli.install.force.overwritten": "Overwritten",
105
+ "cli.install.force.warning": "--force will overwrite existing Fabric artifacts in {path}",
106
+ "cli.install.stages.bootstrap": "Installing bootstrap templates...",
107
+ "cli.install.stages.mcp": "Configuring MCP clients...",
108
+ "cli.install.stages.hooks": "Installing git hooks...",
109
+ "cli.install.stages.skipped": "skipped",
110
+ "cli.install.stages.completed": "completed",
111
+ "cli.install.stages.failed": "failed",
112
+ "cli.install.stages.summary.ran": "ran",
113
+ "cli.install.stages.summary.skipped": "skipped",
114
+ "cli.install.stages.summary.failed": "failed",
115
+ "cli.install.next-step": "{label} {message}",
116
+ "cli.install.reason-message": "{label} {message}",
117
+ "cli.install.language_preference_hint": "Fabric language preference: {value}. To change, edit `fabric_language` in `.fabric/fabric-config.json` (values: match-existing | zh-CN | en | zh-CN-hybrid).",
118
+ "cli.install.plan.title": "Fabric install plan",
119
+ "cli.install.plan.mode-banner.default": "[mode: apply] Standard install execution",
120
+ "cli.install.plan.mode-banner.plan": "[mode: plan] Dry run only, no files will be written",
121
+ "cli.install.plan.mode-banner.reapply": "[mode: reapply] Force reapplying Fabric-managed assets",
122
+ "cli.install.plan.mode-banner.plan-reapply": "[mode: plan+reapply] Previewing a forced reapply without writing files",
123
+ "cli.install.plan.target": "Target: {target}",
124
+ "cli.install.plan.actions": "Plan: bootstrap={bootstrap} mcp={mcp} hooks={hooks} mcp-install={mcpInstall}",
125
+ "cli.install.plan.detected": "Detected clients: {clients}",
126
+ "cli.install.plan.writes": "Core writes:",
127
+ "cli.install.plan.preview-title": "Fabric install dry run",
128
+ "cli.install.plan.preview-result": "Mode={mode} bootstrap={bootstrap} mcp={mcp} hooks={hooks}",
129
+ "cli.install.mode.default": "default",
130
+ "cli.install.mode.reapply": "reapply",
131
+ "cli.install.mode.badge.default": "APPLY",
132
+ "cli.install.mode.badge.plan": "PLAN",
133
+ "cli.install.mode.badge.reapply": "REAPPLY",
134
+ "cli.install.mode.badge.plan-reapply": "PLAN + REAPPLY",
135
+ "cli.install.compat.plan": "Using standard --plan mode: no files will be written.",
136
+ "cli.install.compat.interactive": "Compatibility: --interactive=false disables the TTY wizard.",
137
+ "cli.install.compat.legacy-stage-flags": "Compatibility: legacy --no-* flags are being mapped into the install plan.",
138
+ "cli.install.wizard.title": "Fabric install wizard",
139
+ "cli.install.wizard.intro": "Fabric install",
140
+ "cli.install.wizard.overview.title": "Install overview",
141
+ "cli.install.wizard.overview.body": "Target: {target}\nMode: {mode}\nThis wizard only reshapes the install plan; execution still runs through the existing Fabric install stages.",
142
+ "cli.install.wizard.step.target": "Confirm target",
143
+ "cli.install.wizard.step.plan": "Shape install plan",
144
+ "cli.install.wizard.step.review": "Review final plan",
145
+ "cli.install.wizard.target.confirm": "Continue installing Fabric in {target}? [Y/n]",
146
+ "cli.install.wizard.stage.bootstrap": "Install bootstrap templates? [{defaultValue}]",
147
+ "cli.install.wizard.stage.mcp": "Configure MCP clients? [{defaultValue}]",
148
+ "cli.install.wizard.stage.hooks": "Install git hooks? [{defaultValue}]",
149
+ "cli.install.wizard.mcp-install": "MCP server install scope (global/local) [{defaultValue}]",
150
+ "cli.install.wizard.execute.confirm": "Execute this install plan now? [Y/n]",
151
+ "cli.install.wizard.outro": "Install plan accepted. Running Fabric install...",
152
+ "cli.install.wizard.invalid-yes-no": "Please answer yes or no.",
153
+ "cli.install.wizard.invalid-select": "Invalid value. Use one of: {options}.",
154
+ "cli.install.wizard.cancelled": "Fabric install cancelled before execution.",
155
+ "cli.install.capabilities.title": "Client capability summary",
156
+ "cli.install.capabilities.none": "No supported client was detected for bootstrap or MCP follow-up.",
157
+ "cli.install.capabilities.header.client": "Client",
158
+ "cli.install.capabilities.header.bootstrap": "Bootstrap",
159
+ "cli.install.capabilities.header.mcp": "MCP",
160
+ "cli.install.capabilities.header.hook": "Hook",
161
+ "cli.install.capabilities.header.skill": "Skill",
162
+ "cli.install.capabilities.header.follow-up": "Follow-up",
163
+ "cli.install.capabilities.status.ready": "ready",
164
+ "cli.install.capabilities.status.installed": "installed",
165
+ "cli.install.capabilities.status.supported": "supported",
166
+ "cli.install.capabilities.status.manual": "manual",
167
+ "cli.install.capabilities.status.skipped": "skipped",
168
+ "cli.install.capabilities.status.failed": "failed",
169
+ "cli.install.capabilities.status.na": "n/a",
170
+ "cli.install.capabilities.follow-up.ready": "continue in client",
171
+ "cli.install.capabilities.follow-up.install": "install client assets",
172
+ "cli.install.capabilities.follow-up.manual": "manual step required",
173
+ "cli.install.next-step.message": "run fab hooks install to add the Day 4 pre-commit pipeline.",
174
+ "cli.install.reason-message.installable-body": ".fabric/forensic.json is ready; some detected clients support Fabric follow-up but still need client assets installed.",
175
+ "cli.install.reason-message.manual-body": ".fabric/forensic.json is ready; some detected clients still need manual follow-up because no Fabric skill is installed for them yet.",
176
+ "cli.install.codex-hooks.created": "{label} {path} with Codex hooks config (requires features.codex_hooks = true).",
177
+ "cli.install.codex-hooks.updated": "{label} {path} with Codex hooks config (requires features.codex_hooks = true).",
178
+ "cli.install.codex-hooks.skipped": "{label} {path}: Codex hooks config already present.",
179
+ "cli.install.claude-settings.created": "{label} {path} with Claude Stop hook.",
180
+ "cli.install.claude-settings.updated": "{label} {path} with Claude Stop hook.",
181
+ "cli.install.claude-settings.skipped": "{label} {path}: Claude Stop hook already present.",
182
+ "cli.install.claude-settings.skipped-invalid": "{label} {path}: unable to merge Claude Stop hook.",
183
+ "cli.install.claude-settings.invalid-object": "{label} {path}: expected a JSON object.",
184
+ "cli.install.claude-settings.invalid-json": "{label} {path}: invalid JSON ({reason}).",
185
+ "cli.install.claude-settings.invalid-hooks": '{label} {path}: "hooks" must be a JSON object.',
186
+ "cli.install.claude-settings.invalid-stop-array": '{label} {path}: "hooks.Stop" must be an array.',
187
+ "cli.install.errors.abort-existing": "ABORT: {path} already exists. fab install is non-destructive.",
187
188
  "cli.uninstall.description": "Uninstall Fabric from the target project.",
188
189
  "cli.uninstall.args.target.description": "Target project path. Defaults to CLI arg, EXTERNAL_FIXTURE_PATH, fabric.config.json, then cwd.",
189
190
  "cli.uninstall.args.debug.description": "Print target resolution details to stderr.",
@@ -244,7 +245,7 @@ var enMessages = {
244
245
  "cli.scan.args.target.description": "Target absolute path. Defaults to CLI arg, EXTERNAL_FIXTURE_PATH, fabric.config.json, then cwd.",
245
246
  "cli.scan.args.debug.description": "Print detection evidence in formatted output.",
246
247
  "cli.scan.args.json.description": "Print the diagnostic report as JSON.",
247
- "cli.scan.error.missing-forensic": "forensic.json not found at {path}; run `fabric init` first to produce the deterministic project snapshot.",
248
+ "cli.scan.error.missing-forensic": "forensic.json not found at {path}; run `fabric install` first to produce the deterministic project snapshot.",
248
249
  "cli.scan.summary.created": "Wrote {count} knowledge entries to .fabric/knowledge/.",
249
250
  "cli.scan.summary.skipped": "No changes detected; {count} entries already up-to-date.",
250
251
  "cli.scan.report.title": "Fabric scan report",
@@ -259,7 +260,7 @@ var enMessages = {
259
260
  "cli.scan.report.recommendations": "Recommendations:",
260
261
  "cli.scan.readme-quality.ok": "ok",
261
262
  "cli.scan.readme-quality.stub": "stub",
262
- "cli.scan.recommendation.init": "L0: Run fab init to scaffold .fabric/bootstrap/README.md with TODO markers.",
263
+ "cli.scan.recommendation.init": "L0: Run fab install to scaffold .fabric/bootstrap/README.md with TODO markers.",
263
264
  "cli.scan.recommendation.readme": "L0: Expand README.md before promoting project facts into Fabric references.",
264
265
  "cli.scan.recommendation.contributing": "L0: Add CONTRIBUTING.md or leave a bootstrap TODO reference for contribution flow.",
265
266
  "cli.scan.recommendation.unknown-framework": "L1: Add tech-stack TODOs manually because no framework marker was detected.",
@@ -564,113 +565,114 @@ var zhCNMessages = {
564
565
  "cli.human-lint.table.location": "\u4F4D\u7F6E",
565
566
  "cli.human-lint.table.expected": "\u9884\u671F",
566
567
  "cli.human-lint.table.got": "\u5B9E\u9645",
567
- "cli.init.description": "\u5728\u76EE\u6807\u9879\u76EE\u4E2D\u521D\u59CB\u5316 Fabric\u3002",
568
- "cli.init.args.target.description": "\u76EE\u6807\u9879\u76EE\u8DEF\u5F84\u3002\u9ED8\u8BA4\u4F9D\u6B21\u4F7F\u7528 CLI \u53C2\u6570\u3001EXTERNAL_FIXTURE_PATH\u3001fabric.config.json\u3001\u5F53\u524D\u76EE\u5F55\u3002",
569
- "cli.init.args.debug.description": "\u5C06\u76EE\u6807\u89E3\u6790\u7EC6\u8282\u8F93\u51FA\u5230 stderr\u3002",
570
- "cli.init.args.force.description": "\u8986\u76D6\u73B0\u6709\u6587\u4EF6\uFF08\u7ED5\u8FC7\u975E\u7834\u574F\u6027\u4FDD\u62A4\uFF09",
571
- "cli.init.args.yes.description": "\u63A5\u53D7\u5F53\u524D\u521D\u59CB\u5316\u8BA1\u5212\u5E76\u8DF3\u8FC7 TTY \u5411\u5BFC\u76F4\u63A5\u6267\u884C",
572
- "cli.init.args.plan.description": "\u4EC5\u8F93\u51FA\u521D\u59CB\u5316\u8BA1\u5212\uFF0C\u4E0D\u5199\u6587\u4EF6\u4E5F\u4E0D\u6267\u884C\u540E\u7EED\u9636\u6BB5",
573
- "cli.init.args.reapply.description": "\u5728\u5DF2\u6709 setup \u4E0A\u91CD\u65B0\u5E94\u7528 Fabric \u7BA1\u7406\u7684\u6587\u4EF6\u548C\u9636\u6BB5\u5B89\u88C5\u5668",
574
- "cli.init.args.no-bootstrap.description": "\u517C\u5BB9\u6807\u5FD7\uFF1A\u4ECE\u521D\u59CB\u5316\u8BA1\u5212\u4E2D\u79FB\u9664 bootstrap",
575
- "cli.init.args.no-mcp.description": "\u517C\u5BB9\u6807\u5FD7\uFF1A\u4ECE\u521D\u59CB\u5316\u8BA1\u5212\u4E2D\u79FB\u9664 MCP \u914D\u7F6E",
576
- "cli.init.args.no-hooks.description": "\u517C\u5BB9\u6807\u5FD7\uFF1A\u4ECE\u521D\u59CB\u5316\u8BA1\u5212\u4E2D\u79FB\u9664 git hooks",
577
- "cli.init.args.interactive.description": "\u517C\u5BB9\u6807\u5FD7\uFF1A\u7981\u7528 TTY \u5411\u5BFC\u5E76\u76F4\u63A5\u6267\u884C",
578
- "cli.init.mcp.install.global": "\u4F7F\u7528\u5168\u5C40\u5B89\u88C5\u7684 @fenglimg/fabric-server",
579
- "cli.init.mcp.install.local": "\u5C06 @fenglimg/fabric-server \u5B89\u88C5\u5230\u9879\u76EE devDependencies",
580
- "cli.init.mcp.install.prompt": "MCP \u670D\u52A1\u7AEF\u5B89\u88C5\u8303\u56F4\uFF08global|local\uFF09",
581
- "cli.init.mcp.install.invalid": "\u65E0\u6548\u7684 --mcp-install \u503C\u201C{value}\u201D\uFF0C\u5C06\u56DE\u9000\u5230 global",
582
- "cli.init.mcp.local.installing": "\u6B63\u5728\u8FD0\u884C {manager} add -D @fenglimg/fabric-server...",
583
- "cli.init.mcp.local.installed": "\u5DF2\u5B89\u88C5\u5230 devDependencies",
584
- "cli.init.mcp.scope.description": "Claude MCP \u914D\u7F6E\u8303\u56F4\uFF1Aproject\uFF08\u5199\u5165 .mcp.json\uFF09\u6216 user\uFF08\u5199\u5165 ~/.claude.json\uFF09",
585
- "cli.init.mcp.scope.invalid": "\u65E0\u6548\u7684 --scope \u503C\u201C{value}\u201D\uFF0C\u5C06\u56DE\u9000\u5230 project",
586
- "cli.init.mcp.scope.project": "\u5199\u5165\u9879\u76EE\u6839\u76EE\u5F55\u7684 .mcp.json\uFF08\u7B26\u5408 Claude Code \u89C4\u8303\uFF09",
587
- "cli.init.mcp.scope.user": "\u5199\u5165 ~/.claude.json\uFF08\u7528\u6237\u8303\u56F4\uFF0C\u9002\u7528\u4E8E\u6240\u6709\u9879\u76EE\uFF09",
588
- "cli.init.wizard.mcp-scope": "Claude MCP \u914D\u7F6E\u8303\u56F4\uFF08project/.mcp.json \u6216 user/~/.claude.json\uFF09[{defaultValue}]",
589
- "cli.init.created-path": "{label} {path}",
590
- "cli.init.skipped-existing-path": "{label} {path}\uFF1A\u5DF2\u5B58\u5728\u3002",
591
- "cli.init.force.overwritten": "\u5DF2\u8986\u76D6",
592
- "cli.init.force.warning": "--force \u5C06\u8986\u76D6 {path} \u4E2D\u73B0\u6709\u7684 Fabric \u4EA7\u7269",
593
- "cli.init.stages.bootstrap": "\u6B63\u5728\u5B89\u88C5 bootstrap \u6A21\u677F...",
594
- "cli.init.stages.mcp": "\u6B63\u5728\u914D\u7F6E MCP \u5BA2\u6237\u7AEF...",
595
- "cli.init.stages.hooks": "\u6B63\u5728\u5B89\u88C5 git hooks...",
596
- "cli.init.stages.skipped": "\u5DF2\u8DF3\u8FC7",
597
- "cli.init.stages.completed": "\u5DF2\u5B8C\u6210",
598
- "cli.init.stages.failed": "\u5931\u8D25",
599
- "cli.init.stages.summary.ran": "\u5DF2\u6267\u884C",
600
- "cli.init.stages.summary.skipped": "\u5DF2\u8DF3\u8FC7",
601
- "cli.init.stages.summary.failed": "\u5931\u8D25",
602
- "cli.init.next-step": "{label} {message}",
603
- "cli.init.reason-message": "{label} {message}",
604
- "cli.init.plan.title": "Fabric \u521D\u59CB\u5316\u8BA1\u5212",
605
- "cli.init.plan.mode-banner.default": "[mode: apply] \u6807\u51C6\u521D\u59CB\u5316\u6267\u884C",
606
- "cli.init.plan.mode-banner.plan": "[mode: plan] \u4EC5\u9884\u89C8\uFF0C\u4E0D\u4F1A\u5199\u5165\u6587\u4EF6",
607
- "cli.init.plan.mode-banner.reapply": "[mode: reapply] \u5C06\u5F3A\u5236\u91CD\u65B0\u5E94\u7528 Fabric \u7BA1\u7406\u8D44\u4EA7",
608
- "cli.init.plan.mode-banner.plan-reapply": "[mode: plan+reapply] \u6B63\u5728\u9884\u89C8\u4E00\u6B21\u5F3A\u5236 reapply\uFF0C\u4E0D\u4F1A\u5199\u5165\u6587\u4EF6",
609
- "cli.init.plan.target": "\u76EE\u6807\uFF1A{target}",
610
- "cli.init.plan.actions": "\u8BA1\u5212\uFF1Abootstrap={bootstrap} mcp={mcp} hooks={hooks} mcp-install={mcpInstall}",
611
- "cli.init.plan.detected": "\u68C0\u6D4B\u5230\u7684\u5BA2\u6237\u7AEF\uFF1A{clients}",
612
- "cli.init.plan.writes": "\u6838\u5FC3\u5199\u5165\uFF1A",
613
- "cli.init.plan.preview-title": "Fabric \u521D\u59CB\u5316 dry run",
614
- "cli.init.plan.preview-result": "\u6A21\u5F0F={mode} bootstrap={bootstrap} mcp={mcp} hooks={hooks}",
615
- "cli.init.mode.default": "default",
616
- "cli.init.mode.reapply": "reapply",
617
- "cli.init.mode.badge.default": "APPLY",
618
- "cli.init.mode.badge.plan": "PLAN",
619
- "cli.init.mode.badge.reapply": "REAPPLY",
620
- "cli.init.mode.badge.plan-reapply": "PLAN + REAPPLY",
621
- "cli.init.compat.plan": "\u5DF2\u542F\u7528\u6807\u51C6 --plan \u6A21\u5F0F\uFF1A\u4E0D\u4F1A\u5199\u5165\u4EFB\u4F55\u6587\u4EF6\u3002",
622
- "cli.init.compat.interactive": "\u517C\u5BB9\u63D0\u793A\uFF1A--interactive=false \u4F1A\u7981\u7528 TTY \u5411\u5BFC\u3002",
623
- "cli.init.compat.legacy-stage-flags": "\u517C\u5BB9\u63D0\u793A\uFF1A\u65E7\u7684 --no-* \u6807\u5FD7\u6B63\u5728\u6620\u5C04\u5230\u521D\u59CB\u5316\u8BA1\u5212\u4E2D\u3002",
624
- "cli.init.wizard.title": "Fabric \u521D\u59CB\u5316\u5411\u5BFC",
625
- "cli.init.wizard.intro": "Fabric init",
626
- "cli.init.wizard.overview.title": "\u5B89\u88C5\u6982\u89C8",
627
- "cli.init.wizard.overview.body": "\u76EE\u6807\uFF1A{target}\n\u6A21\u5F0F\uFF1A{mode}\n\u8FD9\u4E2A\u5411\u5BFC\u53EA\u8D1F\u8D23\u8C03\u6574\u521D\u59CB\u5316\u8BA1\u5212\uFF1B\u771F\u6B63\u6267\u884C\u4ECD\u7136\u8D70\u73B0\u6709\u7684 Fabric init \u9636\u6BB5\u3002",
628
- "cli.init.wizard.step.target": "\u786E\u8BA4\u76EE\u6807",
629
- "cli.init.wizard.step.plan": "\u914D\u7F6E\u521D\u59CB\u5316\u8BA1\u5212",
630
- "cli.init.wizard.step.review": "\u590D\u6838\u6700\u7EC8\u8BA1\u5212",
631
- "cli.init.wizard.target.confirm": "\u786E\u8BA4\u5728 {target} \u4E2D\u7EE7\u7EED\u521D\u59CB\u5316 Fabric\uFF1F[Y/n]",
632
- "cli.init.wizard.stage.bootstrap": "\u662F\u5426\u5B89\u88C5 bootstrap \u6A21\u677F\uFF1F[{defaultValue}]",
633
- "cli.init.wizard.stage.mcp": "\u662F\u5426\u914D\u7F6E MCP \u5BA2\u6237\u7AEF\uFF1F[{defaultValue}]",
634
- "cli.init.wizard.stage.hooks": "\u662F\u5426\u5B89\u88C5 git hooks\uFF1F[{defaultValue}]",
635
- "cli.init.wizard.mcp-install": "MCP \u670D\u52A1\u7AEF\u5B89\u88C5\u8303\u56F4\uFF08global/local\uFF09[{defaultValue}]",
636
- "cli.init.wizard.execute.confirm": "\u73B0\u5728\u6267\u884C\u8BE5\u521D\u59CB\u5316\u8BA1\u5212\uFF1F[Y/n]",
637
- "cli.init.wizard.outro": "\u521D\u59CB\u5316\u8BA1\u5212\u5DF2\u786E\u8BA4\uFF0C\u5F00\u59CB\u6267\u884C Fabric init...",
638
- "cli.init.wizard.invalid-yes-no": "\u8BF7\u8F93\u5165 yes \u6216 no\u3002",
639
- "cli.init.wizard.invalid-select": "\u65E0\u6548\u8F93\u5165\u3002\u53EF\u9009\u503C\uFF1A{options}\u3002",
640
- "cli.init.wizard.cancelled": "Fabric \u521D\u59CB\u5316\u5DF2\u5728\u6267\u884C\u524D\u53D6\u6D88\u3002",
641
- "cli.init.capabilities.title": "\u5BA2\u6237\u7AEF\u80FD\u529B\u6458\u8981",
642
- "cli.init.capabilities.none": "\u6CA1\u6709\u68C0\u6D4B\u5230\u53EF\u7528\u4E8E bootstrap \u6216 MCP \u540E\u7EED\u63A5\u529B\u7684\u53D7\u652F\u6301\u5BA2\u6237\u7AEF\u3002",
643
- "cli.init.capabilities.header.client": "\u5BA2\u6237\u7AEF",
644
- "cli.init.capabilities.header.bootstrap": "Bootstrap",
645
- "cli.init.capabilities.header.mcp": "MCP",
646
- "cli.init.capabilities.header.hook": "Hook",
647
- "cli.init.capabilities.header.skill": "Skill",
648
- "cli.init.capabilities.header.follow-up": "\u540E\u7EED\u52A8\u4F5C",
649
- "cli.init.capabilities.status.ready": "\u5DF2\u5C31\u7EEA",
650
- "cli.init.capabilities.status.installed": "\u5DF2\u5B89\u88C5",
651
- "cli.init.capabilities.status.supported": "\u5DF2\u652F\u6301",
652
- "cli.init.capabilities.status.manual": "\u624B\u52A8\u5904\u7406",
653
- "cli.init.capabilities.status.skipped": "\u5DF2\u8DF3\u8FC7",
654
- "cli.init.capabilities.status.failed": "\u5931\u8D25",
655
- "cli.init.capabilities.status.na": "\u4E0D\u9002\u7528",
656
- "cli.init.capabilities.follow-up.ready": "\u53EF\u5728\u5BA2\u6237\u7AEF\u7EE7\u7EED",
657
- "cli.init.capabilities.follow-up.install": "\u5B89\u88C5\u5BA2\u6237\u7AEF\u8D44\u4EA7",
658
- "cli.init.capabilities.follow-up.manual": "\u9700\u8981\u624B\u52A8\u540E\u7EED\u5904\u7406",
659
- "cli.init.next-step.message": "\u8FD0\u884C fab hooks install \u4EE5\u6DFB\u52A0\u7B2C 4 \u5929\u7684 pre-commit \u6D41\u6C34\u7EBF\u3002",
660
- "cli.init.reason-message.installable-body": ".fabric/forensic.json \u5DF2\u5C31\u7EEA\uFF1B\u90E8\u5206\u5DF2\u68C0\u6D4B\u5230\u7684\u5BA2\u6237\u7AEF\u5DF2\u652F\u6301 Fabric \u540E\u7EED\u63A5\u529B\uFF0C\u4F46\u4ECD\u9700\u5B89\u88C5\u5BA2\u6237\u7AEF\u8D44\u4EA7\u3002",
661
- "cli.init.reason-message.manual-body": ".fabric/forensic.json \u5DF2\u5C31\u7EEA\uFF1B\u90E8\u5206\u5DF2\u68C0\u6D4B\u5230\u7684\u5BA2\u6237\u7AEF\u5C1A\u672A\u5B89\u88C5 Fabric skill\uFF0C\u9700\u8981\u624B\u52A8\u5B8C\u6210\u540E\u7EED\u521D\u59CB\u5316\u3002",
662
- "cli.init.codex-hooks.created": "{label} {path}\uFF0C\u5E76\u5199\u5165 Codex hooks \u914D\u7F6E\uFF08\u9700\u542F\u7528 features.codex_hooks = true\uFF09\u3002",
663
- "cli.init.codex-hooks.updated": "{label} {path}\uFF0C\u5E76\u5199\u5165 Codex hooks \u914D\u7F6E\uFF08\u9700\u542F\u7528 features.codex_hooks = true\uFF09\u3002",
664
- "cli.init.codex-hooks.skipped": "{label} {path}\uFF1ACodex hooks \u914D\u7F6E\u5DF2\u5B58\u5728\u3002",
665
- "cli.init.claude-settings.created": "{label} {path}\uFF0C\u5E76\u5199\u5165 Claude Stop hook\u3002",
666
- "cli.init.claude-settings.updated": "{label} {path}\uFF0C\u5E76\u5199\u5165 Claude Stop hook\u3002",
667
- "cli.init.claude-settings.skipped": "{label} {path}\uFF1AClaude Stop hook \u5DF2\u5B58\u5728\u3002",
668
- "cli.init.claude-settings.skipped-invalid": "{label} {path}\uFF1A\u65E0\u6CD5\u5408\u5E76 Claude Stop hook\u3002",
669
- "cli.init.claude-settings.invalid-object": "{label} {path}\uFF1A\u9884\u671F\u4E3A JSON \u5BF9\u8C61\u3002",
670
- "cli.init.claude-settings.invalid-json": "{label} {path}\uFF1AJSON \u65E0\u6548\uFF08{reason}\uFF09\u3002",
671
- "cli.init.claude-settings.invalid-hooks": '{label} {path}\uFF1A"hooks" \u5FC5\u987B\u662F JSON \u5BF9\u8C61\u3002',
672
- "cli.init.claude-settings.invalid-stop-array": '{label} {path}\uFF1A"hooks.Stop" \u5FC5\u987B\u662F\u6570\u7EC4\u3002',
673
- "cli.init.errors.abort-existing": "\u4E2D\u6B62\uFF1A{path} \u5DF2\u5B58\u5728\u3002fab init \u662F\u975E\u7834\u574F\u6027\u7684\u3002",
568
+ "cli.install.description": "\u5728\u76EE\u6807\u9879\u76EE\u4E2D\u5B89\u88C5 Fabric\u3002",
569
+ "cli.install.args.target.description": "\u76EE\u6807\u9879\u76EE\u8DEF\u5F84\u3002\u9ED8\u8BA4\u4F9D\u6B21\u4F7F\u7528 CLI \u53C2\u6570\u3001EXTERNAL_FIXTURE_PATH\u3001fabric.config.json\u3001\u5F53\u524D\u76EE\u5F55\u3002",
570
+ "cli.install.args.debug.description": "\u5C06\u76EE\u6807\u89E3\u6790\u7EC6\u8282\u8F93\u51FA\u5230 stderr\u3002",
571
+ "cli.install.args.force.description": "\u8986\u76D6\u73B0\u6709\u6587\u4EF6\uFF08\u7ED5\u8FC7\u975E\u7834\u574F\u6027\u4FDD\u62A4\uFF09",
572
+ "cli.install.args.yes.description": "\u63A5\u53D7\u5F53\u524D\u5B89\u88C5\u8BA1\u5212\u5E76\u8DF3\u8FC7 TTY \u5411\u5BFC\u76F4\u63A5\u6267\u884C",
573
+ "cli.install.args.plan.description": "\u4EC5\u8F93\u51FA\u5B89\u88C5\u8BA1\u5212\uFF0C\u4E0D\u5199\u6587\u4EF6\u4E5F\u4E0D\u6267\u884C\u540E\u7EED\u9636\u6BB5",
574
+ "cli.install.args.reapply.description": "\u5728\u5DF2\u6709 setup \u4E0A\u91CD\u65B0\u5E94\u7528 Fabric \u7BA1\u7406\u7684\u6587\u4EF6\u548C\u9636\u6BB5\u5B89\u88C5\u5668",
575
+ "cli.install.args.no-bootstrap.description": "\u517C\u5BB9\u6807\u5FD7\uFF1A\u4ECE\u5B89\u88C5\u8BA1\u5212\u4E2D\u79FB\u9664 bootstrap",
576
+ "cli.install.args.no-mcp.description": "\u517C\u5BB9\u6807\u5FD7\uFF1A\u4ECE\u5B89\u88C5\u8BA1\u5212\u4E2D\u79FB\u9664 MCP \u914D\u7F6E",
577
+ "cli.install.args.no-hooks.description": "\u517C\u5BB9\u6807\u5FD7\uFF1A\u4ECE\u5B89\u88C5\u8BA1\u5212\u4E2D\u79FB\u9664 git hooks",
578
+ "cli.install.args.interactive.description": "\u517C\u5BB9\u6807\u5FD7\uFF1A\u7981\u7528 TTY \u5411\u5BFC\u5E76\u76F4\u63A5\u6267\u884C",
579
+ "cli.install.mcp.install.global": "\u4F7F\u7528\u5168\u5C40\u5B89\u88C5\u7684 @fenglimg/fabric-server",
580
+ "cli.install.mcp.install.local": "\u5C06 @fenglimg/fabric-server \u5B89\u88C5\u5230\u9879\u76EE devDependencies",
581
+ "cli.install.mcp.install.prompt": "MCP \u670D\u52A1\u7AEF\u5B89\u88C5\u8303\u56F4\uFF08global|local\uFF09",
582
+ "cli.install.mcp.install.invalid": "\u65E0\u6548\u7684 --mcp-install \u503C\u201C{value}\u201D\uFF0C\u5C06\u56DE\u9000\u5230 global",
583
+ "cli.install.mcp.local.installing": "\u6B63\u5728\u8FD0\u884C {manager} add -D @fenglimg/fabric-server...",
584
+ "cli.install.mcp.local.installed": "\u5DF2\u5B89\u88C5\u5230 devDependencies",
585
+ "cli.install.mcp.scope.description": "Claude MCP \u914D\u7F6E\u8303\u56F4\uFF1Aproject\uFF08\u5199\u5165 .mcp.json\uFF09\u6216 user\uFF08\u5199\u5165 ~/.claude.json\uFF09",
586
+ "cli.install.mcp.scope.invalid": "\u65E0\u6548\u7684 --scope \u503C\u201C{value}\u201D\uFF0C\u5C06\u56DE\u9000\u5230 project",
587
+ "cli.install.mcp.scope.project": "\u5199\u5165\u9879\u76EE\u6839\u76EE\u5F55\u7684 .mcp.json\uFF08\u7B26\u5408 Claude Code \u89C4\u8303\uFF09",
588
+ "cli.install.mcp.scope.user": "\u5199\u5165 ~/.claude.json\uFF08\u7528\u6237\u8303\u56F4\uFF0C\u9002\u7528\u4E8E\u6240\u6709\u9879\u76EE\uFF09",
589
+ "cli.install.wizard.mcp-scope": "Claude MCP \u914D\u7F6E\u8303\u56F4\uFF08project/.mcp.json \u6216 user/~/.claude.json\uFF09[{defaultValue}]",
590
+ "cli.install.created-path": "{label} {path}",
591
+ "cli.install.skipped-existing-path": "{label} {path}\uFF1A\u5DF2\u5B58\u5728\u3002",
592
+ "cli.install.force.overwritten": "\u5DF2\u8986\u76D6",
593
+ "cli.install.force.warning": "--force \u5C06\u8986\u76D6 {path} \u4E2D\u73B0\u6709\u7684 Fabric \u4EA7\u7269",
594
+ "cli.install.stages.bootstrap": "\u6B63\u5728\u5B89\u88C5 bootstrap \u6A21\u677F...",
595
+ "cli.install.stages.mcp": "\u6B63\u5728\u914D\u7F6E MCP \u5BA2\u6237\u7AEF...",
596
+ "cli.install.stages.hooks": "\u6B63\u5728\u5B89\u88C5 git hooks...",
597
+ "cli.install.stages.skipped": "\u5DF2\u8DF3\u8FC7",
598
+ "cli.install.stages.completed": "\u5DF2\u5B8C\u6210",
599
+ "cli.install.stages.failed": "\u5931\u8D25",
600
+ "cli.install.stages.summary.ran": "\u5DF2\u6267\u884C",
601
+ "cli.install.stages.summary.skipped": "\u5DF2\u8DF3\u8FC7",
602
+ "cli.install.stages.summary.failed": "\u5931\u8D25",
603
+ "cli.install.next-step": "{label} {message}",
604
+ "cli.install.reason-message": "{label} {message}",
605
+ "cli.install.language_preference_hint": "Fabric \u8BED\u8A00\u504F\u597D\uFF1A{value}\u3002\u5982\u9700\u8C03\u6574\uFF0C\u8BF7\u7F16\u8F91 .fabric/fabric-config.json \u4E2D\u7684 fabric_language \u5B57\u6BB5\uFF08\u53EF\u9009\u503C\uFF1Amatch-existing | zh-CN | en | zh-CN-hybrid\uFF09\u3002",
606
+ "cli.install.plan.title": "Fabric \u5B89\u88C5\u8BA1\u5212",
607
+ "cli.install.plan.mode-banner.default": "[mode: apply] \u6807\u51C6\u5B89\u88C5\u6267\u884C",
608
+ "cli.install.plan.mode-banner.plan": "[mode: plan] \u4EC5\u9884\u89C8\uFF0C\u4E0D\u4F1A\u5199\u5165\u6587\u4EF6",
609
+ "cli.install.plan.mode-banner.reapply": "[mode: reapply] \u5C06\u5F3A\u5236\u91CD\u65B0\u5E94\u7528 Fabric \u7BA1\u7406\u8D44\u4EA7",
610
+ "cli.install.plan.mode-banner.plan-reapply": "[mode: plan+reapply] \u6B63\u5728\u9884\u89C8\u4E00\u6B21\u5F3A\u5236 reapply\uFF0C\u4E0D\u4F1A\u5199\u5165\u6587\u4EF6",
611
+ "cli.install.plan.target": "\u76EE\u6807\uFF1A{target}",
612
+ "cli.install.plan.actions": "\u8BA1\u5212\uFF1Abootstrap={bootstrap} mcp={mcp} hooks={hooks} mcp-install={mcpInstall}",
613
+ "cli.install.plan.detected": "\u68C0\u6D4B\u5230\u7684\u5BA2\u6237\u7AEF\uFF1A{clients}",
614
+ "cli.install.plan.writes": "\u6838\u5FC3\u5199\u5165\uFF1A",
615
+ "cli.install.plan.preview-title": "Fabric \u5B89\u88C5 dry run",
616
+ "cli.install.plan.preview-result": "\u6A21\u5F0F={mode} bootstrap={bootstrap} mcp={mcp} hooks={hooks}",
617
+ "cli.install.mode.default": "default",
618
+ "cli.install.mode.reapply": "reapply",
619
+ "cli.install.mode.badge.default": "APPLY",
620
+ "cli.install.mode.badge.plan": "PLAN",
621
+ "cli.install.mode.badge.reapply": "REAPPLY",
622
+ "cli.install.mode.badge.plan-reapply": "PLAN + REAPPLY",
623
+ "cli.install.compat.plan": "\u5DF2\u542F\u7528\u6807\u51C6 --plan \u6A21\u5F0F\uFF1A\u4E0D\u4F1A\u5199\u5165\u4EFB\u4F55\u6587\u4EF6\u3002",
624
+ "cli.install.compat.interactive": "\u517C\u5BB9\u63D0\u793A\uFF1A--interactive=false \u4F1A\u7981\u7528 TTY \u5411\u5BFC\u3002",
625
+ "cli.install.compat.legacy-stage-flags": "\u517C\u5BB9\u63D0\u793A\uFF1A\u65E7\u7684 --no-* \u6807\u5FD7\u6B63\u5728\u6620\u5C04\u5230\u5B89\u88C5\u8BA1\u5212\u4E2D\u3002",
626
+ "cli.install.wizard.title": "Fabric \u5B89\u88C5\u5411\u5BFC",
627
+ "cli.install.wizard.intro": "Fabric install",
628
+ "cli.install.wizard.overview.title": "\u5B89\u88C5\u6982\u89C8",
629
+ "cli.install.wizard.overview.body": "\u76EE\u6807\uFF1A{target}\n\u6A21\u5F0F\uFF1A{mode}\n\u8FD9\u4E2A\u5411\u5BFC\u53EA\u8D1F\u8D23\u8C03\u6574\u5B89\u88C5\u8BA1\u5212\uFF1B\u771F\u6B63\u6267\u884C\u4ECD\u7136\u8D70\u73B0\u6709\u7684 Fabric install \u9636\u6BB5\u3002",
630
+ "cli.install.wizard.step.target": "\u786E\u8BA4\u76EE\u6807",
631
+ "cli.install.wizard.step.plan": "\u914D\u7F6E\u5B89\u88C5\u8BA1\u5212",
632
+ "cli.install.wizard.step.review": "\u590D\u6838\u6700\u7EC8\u8BA1\u5212",
633
+ "cli.install.wizard.target.confirm": "\u786E\u8BA4\u5728 {target} \u4E2D\u7EE7\u7EED\u5B89\u88C5 Fabric\uFF1F[Y/n]",
634
+ "cli.install.wizard.stage.bootstrap": "\u662F\u5426\u5B89\u88C5 bootstrap \u6A21\u677F\uFF1F[{defaultValue}]",
635
+ "cli.install.wizard.stage.mcp": "\u662F\u5426\u914D\u7F6E MCP \u5BA2\u6237\u7AEF\uFF1F[{defaultValue}]",
636
+ "cli.install.wizard.stage.hooks": "\u662F\u5426\u5B89\u88C5 git hooks\uFF1F[{defaultValue}]",
637
+ "cli.install.wizard.mcp-install": "MCP \u670D\u52A1\u7AEF\u5B89\u88C5\u8303\u56F4\uFF08global/local\uFF09[{defaultValue}]",
638
+ "cli.install.wizard.execute.confirm": "\u73B0\u5728\u6267\u884C\u8BE5\u5B89\u88C5\u8BA1\u5212\uFF1F[Y/n]",
639
+ "cli.install.wizard.outro": "\u5B89\u88C5\u8BA1\u5212\u5DF2\u786E\u8BA4\uFF0C\u5F00\u59CB\u6267\u884C Fabric install...",
640
+ "cli.install.wizard.invalid-yes-no": "\u8BF7\u8F93\u5165 yes \u6216 no\u3002",
641
+ "cli.install.wizard.invalid-select": "\u65E0\u6548\u8F93\u5165\u3002\u53EF\u9009\u503C\uFF1A{options}\u3002",
642
+ "cli.install.wizard.cancelled": "Fabric \u5B89\u88C5\u5DF2\u5728\u6267\u884C\u524D\u53D6\u6D88\u3002",
643
+ "cli.install.capabilities.title": "\u5BA2\u6237\u7AEF\u80FD\u529B\u6458\u8981",
644
+ "cli.install.capabilities.none": "\u6CA1\u6709\u68C0\u6D4B\u5230\u53EF\u7528\u4E8E bootstrap \u6216 MCP \u540E\u7EED\u63A5\u529B\u7684\u53D7\u652F\u6301\u5BA2\u6237\u7AEF\u3002",
645
+ "cli.install.capabilities.header.client": "\u5BA2\u6237\u7AEF",
646
+ "cli.install.capabilities.header.bootstrap": "Bootstrap",
647
+ "cli.install.capabilities.header.mcp": "MCP",
648
+ "cli.install.capabilities.header.hook": "Hook",
649
+ "cli.install.capabilities.header.skill": "Skill",
650
+ "cli.install.capabilities.header.follow-up": "\u540E\u7EED\u52A8\u4F5C",
651
+ "cli.install.capabilities.status.ready": "\u5DF2\u5C31\u7EEA",
652
+ "cli.install.capabilities.status.installed": "\u5DF2\u5B89\u88C5",
653
+ "cli.install.capabilities.status.supported": "\u5DF2\u652F\u6301",
654
+ "cli.install.capabilities.status.manual": "\u624B\u52A8\u5904\u7406",
655
+ "cli.install.capabilities.status.skipped": "\u5DF2\u8DF3\u8FC7",
656
+ "cli.install.capabilities.status.failed": "\u5931\u8D25",
657
+ "cli.install.capabilities.status.na": "\u4E0D\u9002\u7528",
658
+ "cli.install.capabilities.follow-up.ready": "\u53EF\u5728\u5BA2\u6237\u7AEF\u7EE7\u7EED",
659
+ "cli.install.capabilities.follow-up.install": "\u5B89\u88C5\u5BA2\u6237\u7AEF\u8D44\u4EA7",
660
+ "cli.install.capabilities.follow-up.manual": "\u9700\u8981\u624B\u52A8\u540E\u7EED\u5904\u7406",
661
+ "cli.install.next-step.message": "\u8FD0\u884C fab hooks install \u4EE5\u6DFB\u52A0\u7B2C 4 \u5929\u7684 pre-commit \u6D41\u6C34\u7EBF\u3002",
662
+ "cli.install.reason-message.installable-body": ".fabric/forensic.json \u5DF2\u5C31\u7EEA\uFF1B\u90E8\u5206\u5DF2\u68C0\u6D4B\u5230\u7684\u5BA2\u6237\u7AEF\u5DF2\u652F\u6301 Fabric \u540E\u7EED\u63A5\u529B\uFF0C\u4F46\u4ECD\u9700\u5B89\u88C5\u5BA2\u6237\u7AEF\u8D44\u4EA7\u3002",
663
+ "cli.install.reason-message.manual-body": ".fabric/forensic.json \u5DF2\u5C31\u7EEA\uFF1B\u90E8\u5206\u5DF2\u68C0\u6D4B\u5230\u7684\u5BA2\u6237\u7AEF\u5C1A\u672A\u5B89\u88C5 Fabric skill\uFF0C\u9700\u8981\u624B\u52A8\u5B8C\u6210\u540E\u7EED\u5B89\u88C5\u3002",
664
+ "cli.install.codex-hooks.created": "{label} {path}\uFF0C\u5E76\u5199\u5165 Codex hooks \u914D\u7F6E\uFF08\u9700\u542F\u7528 features.codex_hooks = true\uFF09\u3002",
665
+ "cli.install.codex-hooks.updated": "{label} {path}\uFF0C\u5E76\u5199\u5165 Codex hooks \u914D\u7F6E\uFF08\u9700\u542F\u7528 features.codex_hooks = true\uFF09\u3002",
666
+ "cli.install.codex-hooks.skipped": "{label} {path}\uFF1ACodex hooks \u914D\u7F6E\u5DF2\u5B58\u5728\u3002",
667
+ "cli.install.claude-settings.created": "{label} {path}\uFF0C\u5E76\u5199\u5165 Claude Stop hook\u3002",
668
+ "cli.install.claude-settings.updated": "{label} {path}\uFF0C\u5E76\u5199\u5165 Claude Stop hook\u3002",
669
+ "cli.install.claude-settings.skipped": "{label} {path}\uFF1AClaude Stop hook \u5DF2\u5B58\u5728\u3002",
670
+ "cli.install.claude-settings.skipped-invalid": "{label} {path}\uFF1A\u65E0\u6CD5\u5408\u5E76 Claude Stop hook\u3002",
671
+ "cli.install.claude-settings.invalid-object": "{label} {path}\uFF1A\u9884\u671F\u4E3A JSON \u5BF9\u8C61\u3002",
672
+ "cli.install.claude-settings.invalid-json": "{label} {path}\uFF1AJSON \u65E0\u6548\uFF08{reason}\uFF09\u3002",
673
+ "cli.install.claude-settings.invalid-hooks": '{label} {path}\uFF1A"hooks" \u5FC5\u987B\u662F JSON \u5BF9\u8C61\u3002',
674
+ "cli.install.claude-settings.invalid-stop-array": '{label} {path}\uFF1A"hooks.Stop" \u5FC5\u987B\u662F\u6570\u7EC4\u3002',
675
+ "cli.install.errors.abort-existing": "\u4E2D\u6B62\uFF1A{path} \u5DF2\u5B58\u5728\u3002fab install \u662F\u975E\u7834\u574F\u6027\u7684\u3002",
674
676
  "cli.uninstall.description": "\u4ECE\u76EE\u6807\u9879\u76EE\u4E2D\u5378\u8F7D Fabric\u3002",
675
677
  "cli.uninstall.args.target.description": "\u76EE\u6807\u9879\u76EE\u8DEF\u5F84\u3002\u9ED8\u8BA4\u4F9D\u6B21\u4F7F\u7528 CLI \u53C2\u6570\u3001EXTERNAL_FIXTURE_PATH\u3001fabric.config.json\u3001\u5F53\u524D\u76EE\u5F55\u3002",
676
678
  "cli.uninstall.args.debug.description": "\u5C06\u76EE\u6807\u89E3\u6790\u7EC6\u8282\u8F93\u51FA\u5230 stderr\u3002",
@@ -731,7 +733,7 @@ var zhCNMessages = {
731
733
  "cli.scan.args.target.description": "\u76EE\u6807\u7EDD\u5BF9\u8DEF\u5F84\u3002\u9ED8\u8BA4\u4F9D\u6B21\u4F7F\u7528 CLI \u53C2\u6570\u3001EXTERNAL_FIXTURE_PATH\u3001fabric.config.json\u3001\u5F53\u524D\u76EE\u5F55\u3002",
732
734
  "cli.scan.args.debug.description": "\u4EE5\u683C\u5F0F\u5316\u8F93\u51FA\u6253\u5370\u68C0\u6D4B\u8BC1\u636E\u3002",
733
735
  "cli.scan.args.json.description": "\u4EE5 JSON \u683C\u5F0F\u8F93\u51FA\u8BCA\u65AD\u62A5\u544A\u3002",
734
- "cli.scan.error.missing-forensic": "\u672A\u627E\u5230 forensic.json\uFF08\u8DEF\u5F84 {path}\uFF09\uFF1B\u8BF7\u5148\u8FD0\u884C `fabric init` \u751F\u6210\u9879\u76EE\u5FEB\u7167\u3002",
736
+ "cli.scan.error.missing-forensic": "\u672A\u627E\u5230 forensic.json\uFF08\u8DEF\u5F84 {path}\uFF09\uFF1B\u8BF7\u5148\u8FD0\u884C `fabric install` \u751F\u6210\u9879\u76EE\u5FEB\u7167\u3002",
735
737
  "cli.scan.summary.created": "\u5DF2\u5199\u5165 {count} \u6761\u77E5\u8BC6\u6761\u76EE\u81F3 .fabric/knowledge/\u3002",
736
738
  "cli.scan.summary.skipped": "\u65E0\u5DEE\u5F02\uFF1B{count} \u6761\u5DF2\u5B58\u5728\u7684\u6761\u76EE\u4FDD\u6301\u4E0D\u53D8\u3002",
737
739
  "cli.scan.report.title": "Fabric \u626B\u63CF\u62A5\u544A",
@@ -746,7 +748,7 @@ var zhCNMessages = {
746
748
  "cli.scan.report.recommendations": "\u5EFA\u8BAE\uFF1A",
747
749
  "cli.scan.readme-quality.ok": "\u826F\u597D",
748
750
  "cli.scan.readme-quality.stub": "\u8349\u7A3F",
749
- "cli.scan.recommendation.init": "L0\uFF1A\u8FD0\u884C fab init\uFF0C\u5728 .fabric/bootstrap/README.md \u751F\u6210\u5E26 TODO \u6807\u8BB0\u7684\u521D\u59CB\u8BF4\u660E\u3002",
751
+ "cli.scan.recommendation.init": "L0\uFF1A\u8FD0\u884C fab install\uFF0C\u5728 .fabric/bootstrap/README.md \u751F\u6210\u5E26 TODO \u6807\u8BB0\u7684\u521D\u59CB\u8BF4\u660E\u3002",
750
752
  "cli.scan.recommendation.readme": "L0\uFF1A\u5148\u8865\u5145 README.md\uFF0C\u518D\u628A\u9879\u76EE\u4E8B\u5B9E\u6574\u7406\u5230 Fabric \u53C2\u8003\u6587\u4EF6\u4E2D\u3002",
751
753
  "cli.scan.recommendation.contributing": "L0\uFF1A\u6DFB\u52A0 CONTRIBUTING.md\uFF0C\u6216\u5728 bootstrap \u4E2D\u7559\u4E0B\u8D21\u732E\u6D41\u7A0B\u7684 TODO \u8BF4\u660E\u3002",
752
754
  "cli.scan.recommendation.unknown-framework": "L1\uFF1A\u5F53\u524D\u672A\u68C0\u6D4B\u5230\u6846\u67B6\u6807\u8BB0\uFF0C\u9700\u8981\u624B\u52A8\u8865\u5145\u6280\u672F\u6808\u8BF4\u660E\u3002",
@@ -6,7 +6,7 @@ import {
6
6
  enMessages,
7
7
  normalizeLocale,
8
8
  zhCNMessages
9
- } from "../chunk-W4TKEXRG.js";
9
+ } from "../chunk-WIH5HBKU.js";
10
10
  export {
11
11
  PROTECTED_TOKENS,
12
12
  createTranslator,
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { AgentsMetaNode, AgentsIdentitySource, AgentsLayer, AgentsTopologyType, HumanLockEntry, AgentsMeta, LedgerEntry } from './types/index.js';
2
- export { AgentsActivationTier, AgentsMetaCountersEnvelope, AgentsMetaKnowledgeTypeCounters, AgentsMetaNodeActivation, AiLedgerEntry, AuditMode, ClientPaths, DefaultLayerFilter, FabricConfig, HumanLedgerEntry, KnowledgeLanguage, McpPayloadLimits, RuleDescription, RuleDescriptionIndexItem } from './types/index.js';
2
+ export { AgentsActivationTier, AgentsMetaCountersEnvelope, AgentsMetaKnowledgeTypeCounters, AgentsMetaNodeActivation, AiLedgerEntry, AuditMode, ClientPaths, DefaultLayerFilter, FabricConfig, FabricLanguage, HumanLedgerEntry, McpPayloadLimits, RuleDescription, RuleDescriptionIndexItem } from './types/index.js';
3
3
  export { Locale, Messages, PROTECTED_TOKENS, ProtectedToken, TranslationKey, Translator, createTranslator, defaultMessages, detectNodeLocale, enMessages, normalizeLocale, zhCNMessages } from './i18n/index.js';
4
4
  import { z } from 'zod';
5
5
  import { Layer, KnowledgeType, StableId } from './schemas/api-contracts.js';
@@ -1335,7 +1335,7 @@ declare const mcpPayloadLimitsSchema: z.ZodOptional<z.ZodObject<{
1335
1335
  warnBytes?: number | undefined;
1336
1336
  hardBytes?: number | undefined;
1337
1337
  }>>;
1338
- declare const knowledgeLanguageSchema: z.ZodEnum<["match-existing", "zh-CN", "en"]>;
1338
+ declare const fabricLanguageSchema: z.ZodEnum<["match-existing", "zh-CN", "en", "zh-CN-hybrid"]>;
1339
1339
  declare const defaultLayerFilterSchema: z.ZodEnum<["team", "personal", "both"]>;
1340
1340
  declare const fabricConfigSchema: z.ZodObject<{
1341
1341
  clientPaths: z.ZodOptional<z.ZodObject<{
@@ -1368,7 +1368,7 @@ declare const fabricConfigSchema: z.ZodObject<{
1368
1368
  warnBytes?: number | undefined;
1369
1369
  hardBytes?: number | undefined;
1370
1370
  }>>;
1371
- knowledge_language: z.ZodDefault<z.ZodOptional<z.ZodEnum<["match-existing", "zh-CN", "en"]>>>;
1371
+ fabric_language: z.ZodDefault<z.ZodOptional<z.ZodEnum<["match-existing", "zh-CN", "en", "zh-CN-hybrid"]>>>;
1372
1372
  default_layer_filter: z.ZodDefault<z.ZodOptional<z.ZodEnum<["team", "personal", "both"]>>>;
1373
1373
  archive_hint_cooldown_hours: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1374
1374
  underseed_node_threshold: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
@@ -1389,7 +1389,7 @@ declare const fabricConfigSchema: z.ZodObject<{
1389
1389
  review_topic_result_cap: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1390
1390
  review_stale_pending_days: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1391
1391
  }, "strip", z.ZodTypeAny, {
1392
- knowledge_language: "match-existing" | "zh-CN" | "en";
1392
+ fabric_language: "match-existing" | "zh-CN" | "en" | "zh-CN-hybrid";
1393
1393
  default_layer_filter: "personal" | "team" | "both";
1394
1394
  archive_hint_cooldown_hours: number;
1395
1395
  underseed_node_threshold: number;
@@ -1438,7 +1438,7 @@ declare const fabricConfigSchema: z.ZodObject<{
1438
1438
  warnBytes?: number | undefined;
1439
1439
  hardBytes?: number | undefined;
1440
1440
  } | undefined;
1441
- knowledge_language?: "match-existing" | "zh-CN" | "en" | undefined;
1441
+ fabric_language?: "match-existing" | "zh-CN" | "en" | "zh-CN-hybrid" | undefined;
1442
1442
  default_layer_filter?: "personal" | "team" | "both" | undefined;
1443
1443
  archive_hint_cooldown_hours?: number | undefined;
1444
1444
  underseed_node_threshold?: number | undefined;
@@ -7362,4 +7362,4 @@ type EventLedgerEventType = EventLedgerEvent["event_type"];
7362
7362
  type EventLedgerEventInputFor<T extends EventLedgerEvent> = T extends EventLedgerEvent ? Omit<T, "kind" | "id" | "ts" | "schema_version" | "correlation_id" | "session_id"> & Partial<Pick<T, "id" | "ts" | "correlation_id" | "session_id">> : never;
7363
7363
  type EventLedgerEventInput = EventLedgerEventInputFor<EventLedgerEvent>;
7364
7364
 
7365
- export { AGENTS_META_IDENTITY_SOURCES, AGENTS_META_LAYERS, AGENTS_META_TOPOLOGY_TYPES, AgentsIdentitySource, AgentsLayer, AgentsMeta, type AgentsMetaCounters, AgentsMetaCountersSchema, AgentsMetaNode, AgentsTopologyType, type CandidateFileEntry, type CandidateFileFamily, type ClaudeHookPathMigratedEvent, type ClaudeSkillPathMigratedEvent, type CodexSkillPathMigratedEvent, type DoctorRunEvent, type DriftDetectedEvent, type EditIntentCheckedEvent, type EventLedgerEvent, type EventLedgerEventInput, type EventLedgerEventType, type EventLedgerTruncatedEvent, type FabricEvent, type ForensicAssertion, type ForensicAssertionConfidence, type ForensicAssertionCoverage, type ForensicAssertionType, type ForensicCodeSample, type ForensicEntryPoint, type ForensicEvidenceAnchor, type ForensicFramework, type ForensicReadme, type ForensicReport, type ForensicSamplingBudget, type ForensicTopology, HumanLockEntry, type HumanLockFile, type InitContext, type InitContextDomainGroup, type InitContextFramework, type InitContextInterviewTrailEntry, type InitContextInvariant, type InitContextInvariantConfidenceSnapshot, type InitContextSourceEvidence, type InitScanCompletedEvent, KNOWLEDGE_TEST_INDEX_SCHEMA_VERSION, type KnowledgeArchiveAttemptedEvent, type KnowledgeArchivedEvent, type KnowledgeConsumedEvent, type KnowledgeContextPlannedEvent, type KnowledgeDeferredEvent, type KnowledgeDemotedEvent, type KnowledgeDriftDetectedEvent, type KnowledgeLayerChangedEvent, type KnowledgePathDangledEvent, type KnowledgePromoteFailedEvent, type KnowledgePromoteStartedEvent, type KnowledgePromotedEvent, type KnowledgeProposedEvent, type KnowledgeRejectedEvent, type KnowledgeScopeDegradedEvent, type KnowledgeSectionsFetchedEvent, type KnowledgeSelectionEvent, type KnowledgeSlugRenamedEvent, type KnowledgeTestIndex, type KnowledgeTestLink, type KnowledgeTestOrphanAnnotation, KnowledgeType, Layer, type LedgerAppendedEvent, LedgerEntry, type LockApprovedEvent, type LockDriftEvent, type McpConfigMigratedEvent, type McpEventLedgerEvent, type MetaReconciledEvent, type MetaReconciledOnStartupEvent, type MetaUpdatedEvent, type PendingAutoArchivedEvent, type ReapplyCompletedEvent, type RelevanceMigrationRunEvent, StableId, agentsIdentitySourceSchema, agentsLayerSchema, agentsMetaNodeSchema, agentsMetaSchema, agentsTopologyTypeSchema, aiLedgerEntrySchema, allocateKnowledgeId, auditModeSchema, candidateFileEntrySchema, claudeHookPathMigratedEventSchema, claudeSkillPathMigratedEventSchema, clientPathsSchema, codexSkillPathMigratedEventSchema, defaultAgentsMetaCounters, defaultLayerFilterSchema, deriveAgentsMetaIdentitySource, deriveAgentsMetaLayer, deriveAgentsMetaStableId, deriveAgentsMetaTopologyType, doctorRunEventSchema, driftDetectedEventSchema, editIntentCheckedEventSchema, eventLedgerEventSchema, eventLedgerTruncatedEventSchema, fabricConfigSchema, fabricEventSchema, forensicAssertionCoverageSchema, forensicAssertionSchema, forensicCodeSampleSchema, forensicEntryPointSchema, forensicEvidenceAnchorSchema, forensicFrameworkSchema, forensicReadmeSchema, forensicReportSchema, forensicSamplingBudgetSchema, forensicTopologySchema, humanLedgerEntrySchema, humanLockEntrySchema, humanLockFileSchema, initContextDomainGroupSchema, initContextFrameworkSchema, initContextInterviewTrailEntrySchema, initContextInvariantConfidenceSnapshotSchema, initContextInvariantSchema, initContextSchema, initContextSourceEvidenceSchema, initScanCompletedEventSchema, isKnowledgeStableId, knowledgeArchiveAttemptedEventSchema, knowledgeArchivedEventSchema, knowledgeConsumedEventSchema, knowledgeContextPlannedEventSchema, knowledgeDeferredEventSchema, knowledgeDemotedEventSchema, knowledgeDriftDetectedEventSchema, knowledgeLanguageSchema, knowledgeLayerChangedEventSchema, knowledgePathDangledEventSchema, knowledgePromoteFailedEventSchema, knowledgePromoteStartedEventSchema, knowledgePromotedEventSchema, knowledgeProposedEventSchema, knowledgeRejectedEventSchema, knowledgeScopeDegradedEventSchema, knowledgeSectionsFetchedEventSchema, knowledgeSelectionEventSchema, knowledgeSlugRenamedEventSchema, knowledgeTestIndexSchema, knowledgeTestLinkSchema, knowledgeTestOrphanAnnotationSchema, ledgerAppendedEventSchema, ledgerEntrySchema, lockApprovedEventSchema, lockDriftEventSchema, mcpConfigMigratedEventSchema, mcpEventLedgerEventSchema, mcpPayloadLimitsSchema, metaReconciledEventSchema, metaReconciledOnStartupEventSchema, metaUpdatedEventSchema, pendingAutoArchivedEventSchema, reapplyCompletedEventSchema, relevanceMigrationRunEventSchema, ruleDescriptionIndexItemSchema, ruleDescriptionSchema, withDerivedAgentsMetaNodeDefaults };
7365
+ export { AGENTS_META_IDENTITY_SOURCES, AGENTS_META_LAYERS, AGENTS_META_TOPOLOGY_TYPES, AgentsIdentitySource, AgentsLayer, AgentsMeta, type AgentsMetaCounters, AgentsMetaCountersSchema, AgentsMetaNode, AgentsTopologyType, type CandidateFileEntry, type CandidateFileFamily, type ClaudeHookPathMigratedEvent, type ClaudeSkillPathMigratedEvent, type CodexSkillPathMigratedEvent, type DoctorRunEvent, type DriftDetectedEvent, type EditIntentCheckedEvent, type EventLedgerEvent, type EventLedgerEventInput, type EventLedgerEventType, type EventLedgerTruncatedEvent, type FabricEvent, type ForensicAssertion, type ForensicAssertionConfidence, type ForensicAssertionCoverage, type ForensicAssertionType, type ForensicCodeSample, type ForensicEntryPoint, type ForensicEvidenceAnchor, type ForensicFramework, type ForensicReadme, type ForensicReport, type ForensicSamplingBudget, type ForensicTopology, HumanLockEntry, type HumanLockFile, type InitContext, type InitContextDomainGroup, type InitContextFramework, type InitContextInterviewTrailEntry, type InitContextInvariant, type InitContextInvariantConfidenceSnapshot, type InitContextSourceEvidence, type InitScanCompletedEvent, KNOWLEDGE_TEST_INDEX_SCHEMA_VERSION, type KnowledgeArchiveAttemptedEvent, type KnowledgeArchivedEvent, type KnowledgeConsumedEvent, type KnowledgeContextPlannedEvent, type KnowledgeDeferredEvent, type KnowledgeDemotedEvent, type KnowledgeDriftDetectedEvent, type KnowledgeLayerChangedEvent, type KnowledgePathDangledEvent, type KnowledgePromoteFailedEvent, type KnowledgePromoteStartedEvent, type KnowledgePromotedEvent, type KnowledgeProposedEvent, type KnowledgeRejectedEvent, type KnowledgeScopeDegradedEvent, type KnowledgeSectionsFetchedEvent, type KnowledgeSelectionEvent, type KnowledgeSlugRenamedEvent, type KnowledgeTestIndex, type KnowledgeTestLink, type KnowledgeTestOrphanAnnotation, KnowledgeType, Layer, type LedgerAppendedEvent, LedgerEntry, type LockApprovedEvent, type LockDriftEvent, type McpConfigMigratedEvent, type McpEventLedgerEvent, type MetaReconciledEvent, type MetaReconciledOnStartupEvent, type MetaUpdatedEvent, type PendingAutoArchivedEvent, type ReapplyCompletedEvent, type RelevanceMigrationRunEvent, StableId, agentsIdentitySourceSchema, agentsLayerSchema, agentsMetaNodeSchema, agentsMetaSchema, agentsTopologyTypeSchema, aiLedgerEntrySchema, allocateKnowledgeId, auditModeSchema, candidateFileEntrySchema, claudeHookPathMigratedEventSchema, claudeSkillPathMigratedEventSchema, clientPathsSchema, codexSkillPathMigratedEventSchema, defaultAgentsMetaCounters, defaultLayerFilterSchema, deriveAgentsMetaIdentitySource, deriveAgentsMetaLayer, deriveAgentsMetaStableId, deriveAgentsMetaTopologyType, doctorRunEventSchema, driftDetectedEventSchema, editIntentCheckedEventSchema, eventLedgerEventSchema, eventLedgerTruncatedEventSchema, fabricConfigSchema, fabricEventSchema, fabricLanguageSchema, forensicAssertionCoverageSchema, forensicAssertionSchema, forensicCodeSampleSchema, forensicEntryPointSchema, forensicEvidenceAnchorSchema, forensicFrameworkSchema, forensicReadmeSchema, forensicReportSchema, forensicSamplingBudgetSchema, forensicTopologySchema, humanLedgerEntrySchema, humanLockEntrySchema, humanLockFileSchema, initContextDomainGroupSchema, initContextFrameworkSchema, initContextInterviewTrailEntrySchema, initContextInvariantConfidenceSnapshotSchema, initContextInvariantSchema, initContextSchema, initContextSourceEvidenceSchema, initScanCompletedEventSchema, isKnowledgeStableId, knowledgeArchiveAttemptedEventSchema, knowledgeArchivedEventSchema, knowledgeConsumedEventSchema, knowledgeContextPlannedEventSchema, knowledgeDeferredEventSchema, knowledgeDemotedEventSchema, knowledgeDriftDetectedEventSchema, knowledgeLayerChangedEventSchema, knowledgePathDangledEventSchema, knowledgePromoteFailedEventSchema, knowledgePromoteStartedEventSchema, knowledgePromotedEventSchema, knowledgeProposedEventSchema, knowledgeRejectedEventSchema, knowledgeScopeDegradedEventSchema, knowledgeSectionsFetchedEventSchema, knowledgeSelectionEventSchema, knowledgeSlugRenamedEventSchema, knowledgeTestIndexSchema, knowledgeTestLinkSchema, knowledgeTestOrphanAnnotationSchema, ledgerAppendedEventSchema, ledgerEntrySchema, lockApprovedEventSchema, lockDriftEventSchema, mcpConfigMigratedEventSchema, mcpEventLedgerEventSchema, mcpPayloadLimitsSchema, metaReconciledEventSchema, metaReconciledOnStartupEventSchema, metaUpdatedEventSchema, pendingAutoArchivedEventSchema, reapplyCompletedEventSchema, relevanceMigrationRunEventSchema, ruleDescriptionIndexItemSchema, ruleDescriptionSchema, withDerivedAgentsMetaNodeDefaults };
package/dist/index.js CHANGED
@@ -6,7 +6,7 @@ import {
6
6
  enMessages,
7
7
  normalizeLocale,
8
8
  zhCNMessages
9
- } from "./chunk-W4TKEXRG.js";
9
+ } from "./chunk-WIH5HBKU.js";
10
10
  import {
11
11
  FabExtractKnowledgeInputSchema,
12
12
  FabExtractKnowledgeInputShape,
@@ -306,7 +306,12 @@ var mcpPayloadLimitsSchema = z5.object({
306
306
  warnBytes: z5.number().int().positive().optional(),
307
307
  hardBytes: z5.number().int().positive().optional()
308
308
  }).optional();
309
- var knowledgeLanguageSchema = z5.enum(["match-existing", "zh-CN", "en"]);
309
+ var fabricLanguageSchema = z5.enum([
310
+ "match-existing",
311
+ "zh-CN",
312
+ "en",
313
+ "zh-CN-hybrid"
314
+ ]);
310
315
  var defaultLayerFilterSchema = z5.enum(["team", "personal", "both"]);
311
316
  var fabricConfigSchema = z5.object({
312
317
  clientPaths: clientPathsSchema.optional(),
@@ -318,7 +323,7 @@ var fabricConfigSchema = z5.object({
318
323
  // Backward-compat: both fields are optional with defaults so existing
319
324
  // fabric-config.json files (pre-grill-followup) parse unchanged. The default
320
325
  // values themselves are load-bearing — see docs/data-schema.md.
321
- knowledge_language: knowledgeLanguageSchema.optional().default("match-existing"),
326
+ fabric_language: fabricLanguageSchema.optional().default("match-existing"),
322
327
  default_layer_filter: defaultLayerFilterSchema.optional().default("both"),
323
328
  // Cooldown for the fabric-hint Stop hook (formerly archive-hint, renamed in
324
329
  // rc.5 TASK-010). After ANY of the three signals (archive / review / import)
@@ -962,6 +967,7 @@ export {
962
967
  fabReviewAnnotations,
963
968
  fabricConfigSchema,
964
969
  fabricEventSchema,
970
+ fabricLanguageSchema,
965
971
  forensicAssertionCoverageSchema,
966
972
  forensicAssertionSchema,
967
973
  forensicCodeSampleSchema,
@@ -998,7 +1004,6 @@ export {
998
1004
  knowledgeDeferredEventSchema,
999
1005
  knowledgeDemotedEventSchema,
1000
1006
  knowledgeDriftDetectedEventSchema,
1001
- knowledgeLanguageSchema,
1002
1007
  knowledgeLayerChangedEventSchema,
1003
1008
  knowledgePathDangledEventSchema,
1004
1009
  knowledgePromoteFailedEventSchema,
@@ -107,7 +107,7 @@ interface McpPayloadLimits {
107
107
  warnBytes?: number;
108
108
  hardBytes?: number;
109
109
  }
110
- type KnowledgeLanguage = "match-existing" | "zh-CN" | "en";
110
+ type FabricLanguage = "match-existing" | "zh-CN" | "en" | "zh-CN-hybrid";
111
111
  type DefaultLayerFilter = "team" | "personal" | "both";
112
112
  interface FabricConfig {
113
113
  clientPaths?: ClientPaths;
@@ -116,8 +116,8 @@ interface FabricConfig {
116
116
  auditMode?: AuditMode;
117
117
  audit_mode?: AuditMode;
118
118
  mcpPayloadLimits?: McpPayloadLimits;
119
- knowledge_language?: KnowledgeLanguage;
119
+ fabric_language?: FabricLanguage;
120
120
  default_layer_filter?: DefaultLayerFilter;
121
121
  }
122
122
 
123
- export type { AgentsActivationTier, AgentsIdentitySource, AgentsLayer, AgentsMeta, AgentsMetaCountersEnvelope, AgentsMetaKnowledgeTypeCounters, AgentsMetaNode, AgentsMetaNodeActivation, AgentsTopologyType, AiLedgerEntry, AuditMode, ClientPaths, DefaultLayerFilter, FabricConfig, HumanLedgerEntry, HumanLockEntry, KnowledgeLanguage, LedgerEntry, McpPayloadLimits, RuleDescription, RuleDescriptionIndexItem };
123
+ export type { AgentsActivationTier, AgentsIdentitySource, AgentsLayer, AgentsMeta, AgentsMetaCountersEnvelope, AgentsMetaKnowledgeTypeCounters, AgentsMetaNode, AgentsMetaNodeActivation, AgentsTopologyType, AiLedgerEntry, AuditMode, ClientPaths, DefaultLayerFilter, FabricConfig, FabricLanguage, HumanLedgerEntry, HumanLockEntry, LedgerEntry, McpPayloadLimits, RuleDescription, RuleDescriptionIndexItem };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fenglimg/fabric-shared",
3
- "version": "2.0.0-rc.11",
3
+ "version": "2.0.0-rc.13",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",