@fenglimg/fabric-shared 1.3.0 → 1.4.0

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.
@@ -69,9 +69,13 @@ var enMessages = {
69
69
  "cli.init.args.target.description": "Target project path. Defaults to CLI arg, EXTERNAL_FIXTURE_PATH, fabric.config.json, then cwd.",
70
70
  "cli.init.args.debug.description": "Print target resolution details to stderr.",
71
71
  "cli.init.args.force.description": "Overwrite existing files (bypass non-destructive guard)",
72
- "cli.init.args.no-bootstrap.description": "Skip running bootstrap installer as part of init",
73
- "cli.init.args.no-mcp.description": "Skip configuring MCP clients as part of init",
74
- "cli.init.args.no-hooks.description": "Skip installing git hooks as part of init",
72
+ "cli.init.args.yes.description": "Accept the current init plan and run without the TTY wizard",
73
+ "cli.init.args.plan.description": "Print the init plan without writing files or running follow-up stages",
74
+ "cli.init.args.reapply.description": "Reapply Fabric-managed files and stage installers over an existing setup",
75
+ "cli.init.args.no-bootstrap.description": "Compatibility flag: remove bootstrap from the init plan",
76
+ "cli.init.args.no-mcp.description": "Compatibility flag: remove MCP configuration from the init plan",
77
+ "cli.init.args.no-hooks.description": "Compatibility flag: remove git hooks from the init plan",
78
+ "cli.init.args.interactive.description": "Compatibility flag: disable the TTY wizard and use direct execution",
75
79
  "cli.init.mcp.install.global": "Using globally-installed @fenglimg/fabric-server",
76
80
  "cli.init.mcp.install.local": "Installing @fenglimg/fabric-server to project devDependencies",
77
81
  "cli.init.mcp.install.prompt": "MCP server install scope (global|local)",
@@ -93,8 +97,70 @@ var enMessages = {
93
97
  "cli.init.stages.summary.failed": "failed",
94
98
  "cli.init.next-step": "{label} {message}",
95
99
  "cli.init.reason-message": "{label} {message}",
100
+ "cli.init.plan.title": "Fabric init plan",
101
+ "cli.init.plan.mode-banner.default": "[mode: apply] Standard init execution",
102
+ "cli.init.plan.mode-banner.plan": "[mode: plan] Dry run only, no files will be written",
103
+ "cli.init.plan.mode-banner.reapply": "[mode: reapply] Force reapplying Fabric-managed assets",
104
+ "cli.init.plan.mode-banner.plan-reapply": "[mode: plan+reapply] Previewing a forced reapply without writing files",
105
+ "cli.init.plan.target": "Target: {target}",
106
+ "cli.init.plan.actions": "Plan: bootstrap={bootstrap} mcp={mcp} hooks={hooks} mcp-install={mcpInstall}",
107
+ "cli.init.plan.detected": "Detected clients: {clients}",
108
+ "cli.init.plan.writes": "Core writes:",
109
+ "cli.init.plan.preview-title": "Fabric init dry run",
110
+ "cli.init.plan.preview-result": "Mode={mode} bootstrap={bootstrap} mcp={mcp} hooks={hooks}",
111
+ "cli.init.mode.default": "default",
112
+ "cli.init.mode.reapply": "reapply",
113
+ "cli.init.mode.badge.default": "APPLY",
114
+ "cli.init.mode.badge.plan": "PLAN",
115
+ "cli.init.mode.badge.reapply": "REAPPLY",
116
+ "cli.init.mode.badge.plan-reapply": "PLAN + REAPPLY",
117
+ "cli.init.compat.plan": "Using canonical --plan mode: no files will be written.",
118
+ "cli.init.compat.interactive": "Compatibility: --interactive=false disables the TTY wizard.",
119
+ "cli.init.compat.legacy-stage-flags": "Compatibility: legacy --no-* flags are being mapped into the init plan.",
120
+ "cli.init.wizard.title": "Fabric init wizard",
121
+ "cli.init.wizard.intro": "Fabric init",
122
+ "cli.init.wizard.overview.title": "Install overview",
123
+ "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.",
124
+ "cli.init.wizard.step.target": "Confirm target",
125
+ "cli.init.wizard.step.plan": "Shape init plan",
126
+ "cli.init.wizard.step.review": "Review final plan",
127
+ "cli.init.wizard.target.confirm": "Continue initializing Fabric in {target}? [Y/n]",
128
+ "cli.init.wizard.stage.bootstrap": "Install bootstrap templates? [{defaultValue}]",
129
+ "cli.init.wizard.stage.mcp": "Configure MCP clients? [{defaultValue}]",
130
+ "cli.init.wizard.stage.hooks": "Install git hooks? [{defaultValue}]",
131
+ "cli.init.wizard.mcp-install": "MCP server install scope (global/local) [{defaultValue}]",
132
+ "cli.init.wizard.execute.confirm": "Execute this init plan now? [Y/n]",
133
+ "cli.init.wizard.outro": "Init plan accepted. Running Fabric init...",
134
+ "cli.init.wizard.invalid-yes-no": "Please answer yes or no.",
135
+ "cli.init.wizard.invalid-select": "Invalid value. Use one of: {options}.",
136
+ "cli.init.wizard.cancelled": "Fabric init cancelled before execution.",
137
+ "cli.init.capabilities.title": "Client capability summary",
138
+ "cli.init.capabilities.none": "No supported client was detected for bootstrap or MCP follow-up.",
139
+ "cli.init.capabilities.header.client": "Client",
140
+ "cli.init.capabilities.header.bootstrap": "Bootstrap",
141
+ "cli.init.capabilities.header.mcp": "MCP",
142
+ "cli.init.capabilities.header.hook": "Hook",
143
+ "cli.init.capabilities.header.skill": "Skill",
144
+ "cli.init.capabilities.header.follow-up": "Follow-up",
145
+ "cli.init.capabilities.status.ready": "ready",
146
+ "cli.init.capabilities.status.installed": "installed",
147
+ "cli.init.capabilities.status.supported": "supported",
148
+ "cli.init.capabilities.status.manual": "manual",
149
+ "cli.init.capabilities.status.skipped": "skipped",
150
+ "cli.init.capabilities.status.failed": "failed",
151
+ "cli.init.capabilities.status.na": "n/a",
152
+ "cli.init.capabilities.follow-up.ready": "continue in client",
153
+ "cli.init.capabilities.follow-up.install": "install client assets",
154
+ "cli.init.capabilities.follow-up.manual": "manual step required",
96
155
  "cli.init.next-step.message": "run fab hooks install to add the Day 4 pre-commit pipeline.",
97
- "cli.init.reason-message.body": ".fabric/forensic.json is ready; use the agents-md-init skill to finish AGENTS.md initialization.",
156
+ "cli.init.reason-message.claude-body": ".fabric/forensic.json is ready; use the agents-md-init skill to finish internal Fabric initialization.",
157
+ "cli.init.reason-message.codex-body": ".fabric/forensic.json is ready; continue with the repo skill at .agents/skills/fabric-init/SKILL.md and enable features.codex_hooks = true for Codex hooks.",
158
+ "cli.init.reason-message.multi-body": ".fabric/forensic.json is ready; continue in your installed client flow: Claude can use agents-md-init, and Codex can use .agents/skills/fabric-init/SKILL.md with features.codex_hooks = true.",
159
+ "cli.init.reason-message.installable-body": ".fabric/forensic.json is ready; some detected clients support Fabric follow-up but still need client assets installed.",
160
+ "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.",
161
+ "cli.init.codex-hooks.created": "{label} {path} with Codex hooks config (requires features.codex_hooks = true).",
162
+ "cli.init.codex-hooks.updated": "{label} {path} with Codex hooks config (requires features.codex_hooks = true).",
163
+ "cli.init.codex-hooks.skipped": "{label} {path}: Codex hooks config already present.",
98
164
  "cli.init.claude-settings.created": "{label} {path} with Claude Stop hook.",
99
165
  "cli.init.claude-settings.updated": "{label} {path} with Claude Stop hook.",
100
166
  "cli.init.claude-settings.skipped": "{label} {path}: Claude Stop hook already present.",
@@ -129,11 +195,11 @@ var enMessages = {
129
195
  "cli.scan.report.recommendations": "Recommendations:",
130
196
  "cli.scan.readme-quality.ok": "ok",
131
197
  "cli.scan.readme-quality.stub": "stub",
132
- "cli.scan.recommendation.init": "L0: Run fab init to scaffold AGENTS.md with TODO markers.",
133
- "cli.scan.recommendation.readme": "L0: Expand README.md before promoting project facts into AGENTS.md references.",
134
- "cli.scan.recommendation.contributing": "L0: Add CONTRIBUTING.md or leave an AGENTS.md TODO reference for contribution flow.",
198
+ "cli.scan.recommendation.init": "L0: Run fab init to scaffold .fabric/bootstrap/README.md with TODO markers.",
199
+ "cli.scan.recommendation.readme": "L0: Expand README.md before promoting project facts into Fabric references.",
200
+ "cli.scan.recommendation.contributing": "L0: Add CONTRIBUTING.md or leave a bootstrap TODO reference for contribution flow.",
135
201
  "cli.scan.recommendation.unknown-framework": "L1: Add tech-stack TODOs manually because no framework marker was detected.",
136
- "cli.scan.recommendation.framework-dirs": "L1: Review {framework} directories for future scoped AGENTS.md files.",
202
+ "cli.scan.recommendation.framework-dirs": "L1: Review {framework} directories for future scoped Fabric rule files.",
137
203
  "cli.serve.description": "Start the local Fabric MCP HTTP service. Set FABRIC_AUTH_TOKEN to enable Bearer auth for non-localhost binding.",
138
204
  "cli.serve.args.port.description": "Listen port, default 7373.",
139
205
  "cli.serve.args.host.description": "Listen host, default 127.0.0.1. Set FABRIC_AUTH_TOKEN to enable Bearer auth for non-localhost binding.",
@@ -146,7 +212,7 @@ var enMessages = {
146
212
  "cli.update.args.target.description": "Target project path. Defaults to CLI arg, EXTERNAL_FIXTURE_PATH, fabric.config.json, then cwd.",
147
213
  "cli.update.args.no-mcp.description": "Skip re-configuring MCP clients",
148
214
  "cli.update.args.no-hooks.description": "Skip re-installing git hooks",
149
- "cli.sync-meta.description": "Sync Fabric metadata from AGENTS.md files.",
215
+ "cli.sync-meta.description": "Sync Fabric metadata from internal rule files.",
150
216
  "cli.sync-meta.args.target.description": "Target project path, default is the current working directory.",
151
217
  "cli.sync-meta.args.check-only.description": "Exit with code 1 when .fabric/agents.meta.json is out of date.",
152
218
  "cli.sync-meta.drift-detected": "Fabric metadata drift detected. Run fab sync-meta to update.",
@@ -371,9 +437,13 @@ var zhCNMessages = {
371
437
  "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",
372
438
  "cli.init.args.debug.description": "\u5C06\u76EE\u6807\u89E3\u6790\u7EC6\u8282\u8F93\u51FA\u5230 stderr\u3002",
373
439
  "cli.init.args.force.description": "\u8986\u76D6\u73B0\u6709\u6587\u4EF6\uFF08\u7ED5\u8FC7\u975E\u7834\u574F\u6027\u4FDD\u62A4\uFF09",
374
- "cli.init.args.no-bootstrap.description": "\u521D\u59CB\u5316\u65F6\u8DF3\u8FC7\u8FD0\u884C bootstrap \u5B89\u88C5\u5668",
375
- "cli.init.args.no-mcp.description": "\u521D\u59CB\u5316\u65F6\u8DF3\u8FC7\u914D\u7F6E MCP \u5BA2\u6237\u7AEF",
376
- "cli.init.args.no-hooks.description": "\u521D\u59CB\u5316\u65F6\u8DF3\u8FC7\u5B89\u88C5 git hooks",
440
+ "cli.init.args.yes.description": "\u63A5\u53D7\u5F53\u524D\u521D\u59CB\u5316\u8BA1\u5212\u5E76\u8DF3\u8FC7 TTY \u5411\u5BFC\u76F4\u63A5\u6267\u884C",
441
+ "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",
442
+ "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",
443
+ "cli.init.args.no-bootstrap.description": "\u517C\u5BB9\u6807\u5FD7\uFF1A\u4ECE\u521D\u59CB\u5316\u8BA1\u5212\u4E2D\u79FB\u9664 bootstrap",
444
+ "cli.init.args.no-mcp.description": "\u517C\u5BB9\u6807\u5FD7\uFF1A\u4ECE\u521D\u59CB\u5316\u8BA1\u5212\u4E2D\u79FB\u9664 MCP \u914D\u7F6E",
445
+ "cli.init.args.no-hooks.description": "\u517C\u5BB9\u6807\u5FD7\uFF1A\u4ECE\u521D\u59CB\u5316\u8BA1\u5212\u4E2D\u79FB\u9664 git hooks",
446
+ "cli.init.args.interactive.description": "\u517C\u5BB9\u6807\u5FD7\uFF1A\u7981\u7528 TTY \u5411\u5BFC\u5E76\u76F4\u63A5\u6267\u884C",
377
447
  "cli.init.mcp.install.global": "\u4F7F\u7528\u5168\u5C40\u5B89\u88C5\u7684 @fenglimg/fabric-server",
378
448
  "cli.init.mcp.install.local": "\u5C06 @fenglimg/fabric-server \u5B89\u88C5\u5230\u9879\u76EE devDependencies",
379
449
  "cli.init.mcp.install.prompt": "MCP \u670D\u52A1\u7AEF\u5B89\u88C5\u8303\u56F4\uFF08global|local\uFF09",
@@ -395,8 +465,70 @@ var zhCNMessages = {
395
465
  "cli.init.stages.summary.failed": "\u5931\u8D25",
396
466
  "cli.init.next-step": "{label} {message}",
397
467
  "cli.init.reason-message": "{label} {message}",
468
+ "cli.init.plan.title": "Fabric \u521D\u59CB\u5316\u8BA1\u5212",
469
+ "cli.init.plan.mode-banner.default": "[mode: apply] \u6807\u51C6\u521D\u59CB\u5316\u6267\u884C",
470
+ "cli.init.plan.mode-banner.plan": "[mode: plan] \u4EC5\u9884\u89C8\uFF0C\u4E0D\u4F1A\u5199\u5165\u6587\u4EF6",
471
+ "cli.init.plan.mode-banner.reapply": "[mode: reapply] \u5C06\u5F3A\u5236\u91CD\u65B0\u5E94\u7528 Fabric \u7BA1\u7406\u8D44\u4EA7",
472
+ "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",
473
+ "cli.init.plan.target": "\u76EE\u6807\uFF1A{target}",
474
+ "cli.init.plan.actions": "\u8BA1\u5212\uFF1Abootstrap={bootstrap} mcp={mcp} hooks={hooks} mcp-install={mcpInstall}",
475
+ "cli.init.plan.detected": "\u68C0\u6D4B\u5230\u7684\u5BA2\u6237\u7AEF\uFF1A{clients}",
476
+ "cli.init.plan.writes": "\u6838\u5FC3\u5199\u5165\uFF1A",
477
+ "cli.init.plan.preview-title": "Fabric \u521D\u59CB\u5316 dry run",
478
+ "cli.init.plan.preview-result": "\u6A21\u5F0F={mode} bootstrap={bootstrap} mcp={mcp} hooks={hooks}",
479
+ "cli.init.mode.default": "default",
480
+ "cli.init.mode.reapply": "reapply",
481
+ "cli.init.mode.badge.default": "APPLY",
482
+ "cli.init.mode.badge.plan": "PLAN",
483
+ "cli.init.mode.badge.reapply": "REAPPLY",
484
+ "cli.init.mode.badge.plan-reapply": "PLAN + REAPPLY",
485
+ "cli.init.compat.plan": "\u5DF2\u542F\u7528 canonical --plan \u6A21\u5F0F\uFF1A\u4E0D\u4F1A\u5199\u5165\u4EFB\u4F55\u6587\u4EF6\u3002",
486
+ "cli.init.compat.interactive": "\u517C\u5BB9\u63D0\u793A\uFF1A--interactive=false \u4F1A\u7981\u7528 TTY \u5411\u5BFC\u3002",
487
+ "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",
488
+ "cli.init.wizard.title": "Fabric \u521D\u59CB\u5316\u5411\u5BFC",
489
+ "cli.init.wizard.intro": "Fabric init",
490
+ "cli.init.wizard.overview.title": "\u5B89\u88C5\u6982\u89C8",
491
+ "cli.init.wizard.overview.body": "\u76EE\u6807\uFF1A{target}\n\u6A21\u5F0F\uFF1A{mode}\n\u8FD9\u4E2A\u5411\u5BFC\u53EA\u8D1F\u8D23\u91CD\u5851\u521D\u59CB\u5316\u8BA1\u5212\uFF1B\u771F\u6B63\u6267\u884C\u4ECD\u7136\u8D70\u73B0\u6709\u7684 Fabric init \u9636\u6BB5\u3002",
492
+ "cli.init.wizard.step.target": "\u786E\u8BA4\u76EE\u6807",
493
+ "cli.init.wizard.step.plan": "\u914D\u7F6E\u521D\u59CB\u5316\u8BA1\u5212",
494
+ "cli.init.wizard.step.review": "\u590D\u6838\u6700\u7EC8\u8BA1\u5212",
495
+ "cli.init.wizard.target.confirm": "\u786E\u8BA4\u5728 {target} \u4E2D\u7EE7\u7EED\u521D\u59CB\u5316 Fabric\uFF1F[Y/n]",
496
+ "cli.init.wizard.stage.bootstrap": "\u662F\u5426\u5B89\u88C5 bootstrap \u6A21\u677F\uFF1F[{defaultValue}]",
497
+ "cli.init.wizard.stage.mcp": "\u662F\u5426\u914D\u7F6E MCP \u5BA2\u6237\u7AEF\uFF1F[{defaultValue}]",
498
+ "cli.init.wizard.stage.hooks": "\u662F\u5426\u5B89\u88C5 git hooks\uFF1F[{defaultValue}]",
499
+ "cli.init.wizard.mcp-install": "MCP \u670D\u52A1\u7AEF\u5B89\u88C5\u8303\u56F4\uFF08global/local\uFF09[{defaultValue}]",
500
+ "cli.init.wizard.execute.confirm": "\u73B0\u5728\u6267\u884C\u8BE5\u521D\u59CB\u5316\u8BA1\u5212\uFF1F[Y/n]",
501
+ "cli.init.wizard.outro": "\u521D\u59CB\u5316\u8BA1\u5212\u5DF2\u786E\u8BA4\uFF0C\u5F00\u59CB\u6267\u884C Fabric init...",
502
+ "cli.init.wizard.invalid-yes-no": "\u8BF7\u8F93\u5165 yes \u6216 no\u3002",
503
+ "cli.init.wizard.invalid-select": "\u65E0\u6548\u8F93\u5165\u3002\u53EF\u9009\u503C\uFF1A{options}\u3002",
504
+ "cli.init.wizard.cancelled": "Fabric \u521D\u59CB\u5316\u5DF2\u5728\u6267\u884C\u524D\u53D6\u6D88\u3002",
505
+ "cli.init.capabilities.title": "\u5BA2\u6237\u7AEF\u80FD\u529B\u6458\u8981",
506
+ "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",
507
+ "cli.init.capabilities.header.client": "\u5BA2\u6237\u7AEF",
508
+ "cli.init.capabilities.header.bootstrap": "Bootstrap",
509
+ "cli.init.capabilities.header.mcp": "MCP",
510
+ "cli.init.capabilities.header.hook": "Hook",
511
+ "cli.init.capabilities.header.skill": "Skill",
512
+ "cli.init.capabilities.header.follow-up": "\u540E\u7EED\u52A8\u4F5C",
513
+ "cli.init.capabilities.status.ready": "\u5DF2\u5C31\u7EEA",
514
+ "cli.init.capabilities.status.installed": "\u5DF2\u5B89\u88C5",
515
+ "cli.init.capabilities.status.supported": "\u5DF2\u652F\u6301",
516
+ "cli.init.capabilities.status.manual": "\u624B\u52A8\u5904\u7406",
517
+ "cli.init.capabilities.status.skipped": "\u5DF2\u8DF3\u8FC7",
518
+ "cli.init.capabilities.status.failed": "\u5931\u8D25",
519
+ "cli.init.capabilities.status.na": "\u4E0D\u9002\u7528",
520
+ "cli.init.capabilities.follow-up.ready": "\u53EF\u5728\u5BA2\u6237\u7AEF\u7EE7\u7EED",
521
+ "cli.init.capabilities.follow-up.install": "\u5B89\u88C5\u5BA2\u6237\u7AEF\u8D44\u4EA7",
522
+ "cli.init.capabilities.follow-up.manual": "\u9700\u8981\u624B\u52A8\u540E\u7EED\u5904\u7406",
398
523
  "cli.init.next-step.message": "\u8FD0\u884C fab hooks install \u4EE5\u6DFB\u52A0\u7B2C 4 \u5929\u7684 pre-commit \u6D41\u6C34\u7EBF\u3002",
399
- "cli.init.reason-message.body": ".fabric/forensic.json \u5DF2\u5C31\u7EEA\uFF1B\u8BF7\u4F7F\u7528 agents-md-init skill \u5B8C\u6210 AGENTS.md \u521D\u59CB\u5316\u3002",
524
+ "cli.init.reason-message.claude-body": ".fabric/forensic.json \u5DF2\u5C31\u7EEA\uFF1B\u8BF7\u4F7F\u7528 agents-md-init skill \u5B8C\u6210 Fabric \u5185\u90E8\u521D\u59CB\u5316\u3002",
525
+ "cli.init.reason-message.codex-body": ".fabric/forensic.json \u5DF2\u5C31\u7EEA\uFF1B\u8BF7\u7EE7\u7EED\u4F7F\u7528\u4ED3\u5E93\u5185\u7684 .agents/skills/fabric-init/SKILL.md\uFF0C\u5E76\u4E3A Codex hooks \u542F\u7528 features.codex_hooks = true\u3002",
526
+ "cli.init.reason-message.multi-body": ".fabric/forensic.json \u5DF2\u5C31\u7EEA\uFF1B\u8BF7\u6309\u5DF2\u5B89\u88C5\u5BA2\u6237\u7AEF\u7EE7\u7EED\u540E\u7EED\u6D41\u7A0B\uFF1AClaude \u4F7F\u7528 agents-md-init\uFF0CCodex \u4F7F\u7528 .agents/skills/fabric-init/SKILL.md\uFF0C\u5E76\u542F\u7528 features.codex_hooks = true\u3002",
527
+ "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",
528
+ "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",
529
+ "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",
530
+ "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",
531
+ "cli.init.codex-hooks.skipped": "{label} {path}\uFF1ACodex hooks \u914D\u7F6E\u5DF2\u5B58\u5728\u3002",
400
532
  "cli.init.claude-settings.created": "{label} {path}\uFF0C\u5E76\u5199\u5165 Claude Stop hook\u3002",
401
533
  "cli.init.claude-settings.updated": "{label} {path}\uFF0C\u5E76\u5199\u5165 Claude Stop hook\u3002",
402
534
  "cli.init.claude-settings.skipped": "{label} {path}\uFF1AClaude Stop hook \u5DF2\u5B58\u5728\u3002",
@@ -431,11 +563,11 @@ var zhCNMessages = {
431
563
  "cli.scan.report.recommendations": "\u5EFA\u8BAE\uFF1A",
432
564
  "cli.scan.readme-quality.ok": "\u826F\u597D",
433
565
  "cli.scan.readme-quality.stub": "\u8349\u7A3F",
434
- "cli.scan.recommendation.init": "L0\uFF1A\u8FD0\u884C fab init\uFF0C\u4E3A AGENTS.md \u751F\u6210\u5E26 TODO \u6807\u8BB0\u7684\u521D\u59CB\u9AA8\u67B6\u3002",
435
- "cli.scan.recommendation.readme": "L0\uFF1A\u5148\u8865\u5145 README.md\uFF0C\u518D\u628A\u9879\u76EE\u4E8B\u5B9E\u6C89\u6DC0\u5230 AGENTS.md \u5F15\u7528\u4E2D\u3002",
436
- "cli.scan.recommendation.contributing": "L0\uFF1A\u6DFB\u52A0 CONTRIBUTING.md\uFF0C\u6216\u5728 AGENTS.md \u4E2D\u7559\u4E0B\u8D21\u732E\u6D41\u7A0B\u7684 TODO \u5F15\u7528\u3002",
566
+ "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\u9AA8\u67B6\u3002",
567
+ "cli.scan.recommendation.readme": "L0\uFF1A\u5148\u8865\u5145 README.md\uFF0C\u518D\u628A\u9879\u76EE\u4E8B\u5B9E\u6C89\u6DC0\u5230 Fabric \u5F15\u7528\u4E2D\u3002",
568
+ "cli.scan.recommendation.contributing": "L0\uFF1A\u6DFB\u52A0 CONTRIBUTING.md\uFF0C\u6216\u5728 bootstrap \u4E2D\u7559\u4E0B\u8D21\u732E\u6D41\u7A0B\u7684 TODO \u5F15\u7528\u3002",
437
569
  "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 TODO\u3002",
438
- "cli.scan.recommendation.framework-dirs": "L1\uFF1A\u68C0\u67E5 {framework} \u76EE\u5F55\uFF0C\u540E\u7EED\u4E3A\u5176\u8865\u5145\u4F5C\u7528\u57DF\u5316 AGENTS.md \u6587\u4EF6\u3002",
570
+ "cli.scan.recommendation.framework-dirs": "L1\uFF1A\u68C0\u67E5 {framework} \u76EE\u5F55\uFF0C\u540E\u7EED\u4E3A\u5176\u8865\u5145\u4F5C\u7528\u57DF\u5316 Fabric \u89C4\u5219\u6587\u4EF6\u3002",
439
571
  "cli.serve.description": "\u542F\u52A8\u672C\u5730 Fabric MCP HTTP \u670D\u52A1\u3002\u82E5\u9700\u7ED1\u5B9A\u5230\u975E localhost\uFF0C\u8BF7\u8BBE\u7F6E FABRIC_AUTH_TOKEN \u4EE5\u542F\u7528 Bearer \u9274\u6743\u3002",
440
572
  "cli.serve.args.port.description": "\u76D1\u542C\u7AEF\u53E3\uFF0C\u9ED8\u8BA4 7373\u3002",
441
573
  "cli.serve.args.host.description": "\u76D1\u542C\u4E3B\u673A\uFF0C\u9ED8\u8BA4 127.0.0.1\u3002\u82E5\u9700\u7ED1\u5B9A\u5230\u975E localhost\uFF0C\u8BF7\u8BBE\u7F6E FABRIC_AUTH_TOKEN \u4EE5\u542F\u7528 Bearer \u9274\u6743\u3002",
@@ -448,7 +580,7 @@ var zhCNMessages = {
448
580
  "cli.update.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",
449
581
  "cli.update.args.no-mcp.description": "\u8DF3\u8FC7\u91CD\u65B0\u914D\u7F6E MCP \u5BA2\u6237\u7AEF",
450
582
  "cli.update.args.no-hooks.description": "\u8DF3\u8FC7\u91CD\u65B0\u5B89\u88C5 git hooks",
451
- "cli.sync-meta.description": "\u4ECE AGENTS.md \u6587\u4EF6\u540C\u6B65 Fabric \u5143\u6570\u636E\u3002",
583
+ "cli.sync-meta.description": "\u4ECE\u5185\u90E8\u89C4\u5219\u6587\u4EF6\u540C\u6B65 Fabric \u5143\u6570\u636E\u3002",
452
584
  "cli.sync-meta.args.target.description": "\u76EE\u6807\u9879\u76EE\u8DEF\u5F84\uFF0C\u9ED8\u8BA4\u4E3A\u5F53\u524D\u5DE5\u4F5C\u76EE\u5F55\u3002",
453
585
  "cli.sync-meta.args.check-only.description": "\u5982\u679C .fabric/agents.meta.json \u5DF2\u8FC7\u671F\uFF0C\u5219\u4EE5\u4EE3\u7801 1 \u9000\u51FA\u3002",
454
586
  "cli.sync-meta.drift-detected": "\u68C0\u6D4B\u5230 Fabric \u5143\u6570\u636E\u6F02\u79FB\u3002\u8BF7\u8FD0\u884C fab sync-meta \u8FDB\u884C\u66F4\u65B0\u3002",
@@ -6,7 +6,7 @@ import {
6
6
  enMessages,
7
7
  normalizeLocale,
8
8
  zhCNMessages
9
- } from "../chunk-CRB6JO57.js";
9
+ } from "../chunk-HE4L3Z7P.js";
10
10
  export {
11
11
  PROTECTED_TOKENS,
12
12
  createTranslator,
package/dist/index.js CHANGED
@@ -6,7 +6,7 @@ import {
6
6
  enMessages,
7
7
  normalizeLocale,
8
8
  zhCNMessages
9
- } from "./chunk-CRB6JO57.js";
9
+ } from "./chunk-HE4L3Z7P.js";
10
10
  import "./chunk-LXNCAKJZ.js";
11
11
 
12
12
  // src/schemas/agents-meta.ts
@@ -44,7 +44,7 @@ function withDerivedAgentsMetaNodeDefaults(node) {
44
44
  }
45
45
  function deriveAgentsMetaLayer(file) {
46
46
  const normalized = normalizePath(file);
47
- if (normalized === "AGENTS.md") {
47
+ if (normalized === "AGENTS.md" || normalized === ".fabric/bootstrap/README.md") {
48
48
  return "L0";
49
49
  }
50
50
  if (hasCrossCuttingSegment(normalized)) {
package/dist/node.js CHANGED
@@ -16,6 +16,15 @@ function detectFramework(root) {
16
16
  const packageJsonPath = join(root, "package.json");
17
17
  if (existsSync(packageJsonPath)) {
18
18
  const packageJson = readPackageJson(packageJsonPath);
19
+ const creatorVersion = packageJson.creator?.version;
20
+ if (typeof creatorVersion === "string" && creatorVersion.trim().length > 0) {
21
+ return {
22
+ kind: "cocos-creator",
23
+ version: creatorVersion,
24
+ subkind: inferCocosSubkind(root, creatorVersion),
25
+ evidence: [`package.json: creator.version=${creatorVersion}`]
26
+ };
27
+ }
19
28
  const deps = collectDependencyVersions(packageJson);
20
29
  for (const [dependencyName, kind] of [
21
30
  ["next", "next"],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fenglimg/fabric-shared",
3
- "version": "1.3.0",
3
+ "version": "1.4.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",