@fenglimg/fabric-shared 1.5.2 → 1.7.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.
@@ -48,20 +48,11 @@ var enMessages = {
48
48
  "cli.config.install.no-config-path": "Skipping {client}: no config path detected.",
49
49
  "cli.config.install.dry-run": "[dry-run] {client}: would write {path}",
50
50
  "cli.config.install.wrote": "{client}: wrote {path}",
51
- "cli.doctor.description": "Run Fabric doctor checks and optional compliance audit reporting.",
51
+ "cli.doctor.description": "Run Fabric target-state diagnostics.",
52
52
  "cli.doctor.args.target.description": "Target project path. Defaults to CLI arg, EXTERNAL_FIXTURE_PATH, fabric.config.json, then cwd.",
53
- "cli.doctor.args.audit.description": "Print fab_get_rules compliance violations for AI edit intents.",
54
- "cli.doctor.args.fix.description": "Migrate the legacy root ledger into .fabric/.intent-ledger.jsonl when needed.",
55
- "cli.doctor.args.window-minutes.description": "Audit lookback window in minutes for matching fab_get_rules calls. Default 5.",
56
- "cli.doctor.errors.invalid-window": "Invalid audit window: {value}",
57
- "cli.doctor.audit.preview-only": "auditMode is off in fabric.config.json; running fab doctor --audit as a manual preview only.",
58
- "cli.doctor.audit.none": "No AI edit intents recorded yet for compliance audit.",
59
- "cli.doctor.audit.clean": "All {count} audited edit paths have a preceding fab_get_rules call within {window}.",
60
- "cli.doctor.audit.violations": "{count} audited edit paths are missing a preceding fab_get_rules call within {window}.",
61
- "cli.doctor.audit.table.path": "Path",
62
- "cli.doctor.audit.table.edit": "Edit time",
63
- "cli.doctor.audit.table.rules": "Last rules",
64
- "cli.doctor.audit.table.intent": "Intent",
53
+ "cli.doctor.args.fix.description": "Repair deterministic derived Fabric state, including meta, rule-test index, bootstrap, and events ledger.",
54
+ "cli.doctor.args.json.description": "Print the doctor report as JSON.",
55
+ "cli.doctor.args.strict.description": "Treat warnings as failures.",
65
56
  "cli.hooks.description": "Manage Fabric Git hook templates.",
66
57
  "cli.hooks.install.description": "Install the Fabric Husky pre-commit hook template.",
67
58
  "cli.hooks.install.args.target.description": "Target project path, default is the current working directory.",
@@ -230,49 +221,28 @@ var enMessages = {
230
221
  "cli.sync-meta.drift-detected": "Fabric metadata drift detected. Run fab sync-meta to update.",
231
222
  "cli.sync-meta.updated": "{label} {path}",
232
223
  "dashboard.app.nav.aria-label": "Dashboard views",
233
- "dashboard.app.nav.module-a.label": "Rule Topology",
234
- "dashboard.app.nav.module-a.label-bilingual": "\u89C4\u5219\u547D\u4E2D Rule Topology",
235
- "dashboard.app.nav.module-a.subtitle": "coverage + hit reasons",
236
- "dashboard.app.nav.module-b.label": "Cognitive Forensic",
237
- "dashboard.app.nav.module-b.label-bilingual": "\u8BA4\u77E5\u626B\u63CF Cognitive Forensic",
238
- "dashboard.app.nav.module-b.subtitle": "placeholder",
239
- "dashboard.app.nav.module-c.label": "Semantic Timeline",
240
- "dashboard.app.nav.module-c.label-bilingual": "\u8BED\u4E49\u65F6\u95F4\u7EBF Semantic Timeline",
241
- "dashboard.app.nav.module-c.subtitle": "placeholder",
242
- "dashboard.app.nav.module-d.label": "Historical Ledger",
243
- "dashboard.app.nav.module-d.label-bilingual": "\u5386\u53F2\u8BB0\u5F55 Historical Ledger",
244
- "dashboard.app.nav.module-d.subtitle": "placeholder",
245
- "dashboard.app.nav.rules.label": "Rules Tree",
246
- "dashboard.app.nav.rules.label-bilingual": "\u89C4\u5219\u6811 Rules Tree",
247
- "dashboard.app.nav.rules.subtitle": "rule structure",
248
- "dashboard.app.nav.locks.label": "Human Lock",
249
- "dashboard.app.nav.locks.label-bilingual": "\u4EBA\u5DE5\u4FDD\u62A4 Human Lock",
250
- "dashboard.app.nav.locks.subtitle": "protected regions",
251
- "dashboard.app.nav.timeline.label": "Intent Timeline",
252
- "dashboard.app.nav.timeline.label-bilingual": "\u610F\u56FE\u65F6\u95F4\u7EBF Intent Timeline",
253
- "dashboard.app.nav.timeline.subtitle": "change log",
254
- "dashboard.app.nav.history.label": "History Replay",
255
- "dashboard.app.nav.history.label-bilingual": "\u5386\u53F2\u56DE\u653E History Replay",
256
- "dashboard.app.nav.history.subtitle": "time travel",
257
- "dashboard.app.nav.doctor.label": "Doctor",
258
- "dashboard.app.nav.doctor.label-bilingual": "\u8BCA\u65AD\u53F0 Doctor",
259
- "dashboard.app.nav.doctor.subtitle": "health checks",
260
- "dashboard.app.nav.section.modules-status": "Module Status",
261
- "dashboard.app.nav.section.diagnostics": "Diagnostics",
224
+ "dashboard.app.nav.readiness.label": "Readiness",
225
+ "dashboard.app.nav.readiness.label-bilingual": "\u51C6\u5907\u60C5\u51B5 Readiness",
226
+ "dashboard.app.nav.readiness.subtitle": "project status",
227
+ "dashboard.app.nav.rules-explain.label": "Rules Explain",
228
+ "dashboard.app.nav.rules-explain.label-bilingual": "\u89C4\u5219\u89E3\u6790 Rules Explain",
229
+ "dashboard.app.nav.rules-explain.subtitle": "topology & context",
230
+ "dashboard.app.nav.timeline.label": "Timeline",
231
+ "dashboard.app.nav.timeline.label-bilingual": "\u65F6\u95F4\u7EBF Timeline",
232
+ "dashboard.app.nav.timeline.subtitle": "audit & history",
233
+ "dashboard.app.nav.health.label": "Health",
234
+ "dashboard.app.nav.health.label-bilingual": "\u7CFB\u7EDF\u5065\u5EB7 Health",
235
+ "dashboard.app.nav.health.subtitle": "doctor & diagnostics",
236
+ "dashboard.app.nav.section.insights": "Insights",
262
237
  "dashboard.app.nav.drift-check": "Drift Check",
263
238
  "dashboard.app.nav.modules.read-only": "read-only dashboard",
264
239
  "dashboard.app.header.connected": "CONNECTED",
265
240
  "dashboard.app.header.connecting": "CONNECTING",
266
241
  "dashboard.app.live-region.received": "Received {type}",
267
- "dashboard.app.breadcrumb.topology": "rule-topology",
268
- "dashboard.app.breadcrumb.forensic": "cognitive-forensic",
269
- "dashboard.app.breadcrumb.semantic": "semantic-timeline",
270
- "dashboard.app.breadcrumb.ledger": "historical-ledger",
271
- "dashboard.app.breadcrumb.rules": "rules-tree",
272
- "dashboard.app.breadcrumb.locks": "human-lock",
273
- "dashboard.app.breadcrumb.timeline": "intent-timeline",
274
- "dashboard.app.breadcrumb.history": "history-replay",
275
- "dashboard.app.breadcrumb.doctor": "doctor",
242
+ "dashboard.app.breadcrumb.readiness": "readiness",
243
+ "dashboard.app.breadcrumb.rules-explain": "rules-explain",
244
+ "dashboard.app.breadcrumb.timeline": "timeline",
245
+ "dashboard.app.breadcrumb.health": "health",
276
246
  "dashboard.rule-topology.title": "Rule Topology",
277
247
  "dashboard.rule-topology.subtitle": "See which rules match the current path and why",
278
248
  "dashboard.rule-topology.path.placeholder": "Sample path for rules context",
@@ -427,7 +397,30 @@ var enMessages = {
427
397
  "dashboard.lock-card.diff.no-changes": "no changes",
428
398
  "dashboard.lock-card.diff.with-bytes": "+{added} / -{removed} \xB7 {bytes} bytes",
429
399
  "dashboard.lock-card.diff.without-bytes": "+{added} / -{removed}",
430
- "dashboard.approve-button.retry": "Retry"
400
+ "dashboard.approve-button.retry": "Retry",
401
+ "dashboard.readiness.filter.analysis": "Project Analysis",
402
+ "dashboard.readiness.loading": "Loading scan data...",
403
+ "dashboard.readiness.summary.framework": "Framework",
404
+ "dashboard.readiness.summary.files": "Files",
405
+ "dashboard.readiness.summary.status": "Fabric Status",
406
+ "dashboard.readiness.card.evidence": "Readiness Evidence",
407
+ "dashboard.readiness.card.recommendations": "Recommendations & Next Steps",
408
+ "dashboard.readiness.readme.description": "Quality of project documentation",
409
+ "dashboard.readiness.contributing.description": "Contribution guidelines for AI/Human",
410
+ "dashboard.readiness.fully-ready": "Project is fully ready.",
411
+ "dashboard.readiness.init-prompt": "Run this command to initialize:",
412
+ "dashboard.rules-explain.analyze": "Analyze Path",
413
+ "dashboard.rules-explain.detail.topology-type": "Topology Type",
414
+ "dashboard.timeline.history-replay.title": "History Replay",
415
+ "dashboard.timeline.close": "Close",
416
+ "dashboard.health.ledger-path.label": "Event Ledger Path",
417
+ "dashboard.health.ledger-path.detail": "Append-only timeline source",
418
+ "dashboard.health.boundary.title": "Control Plane Boundaries",
419
+ "dashboard.health.boundary.description": "The Web Dashboard operates as a Viewer. All rules, metadata, and fixes must be managed via the CLI.",
420
+ "dashboard.health.boundary.cli-action": "CLI Action Required:",
421
+ "dashboard.health.boundary.cli-prompt": "You have {count} fixable issues. Run the following command in your terminal to repair metadata automatically.",
422
+ "dashboard.health.runtime.connected": "MCP Runtime Connected",
423
+ "dashboard.health.runtime.disconnected": "MCP Runtime Disconnected"
431
424
  };
432
425
 
433
426
  // src/i18n/locales/zh-CN.ts
@@ -480,20 +473,11 @@ var zhCNMessages = {
480
473
  "cli.config.install.no-config-path": "\u8DF3\u8FC7 {client}\uFF1A\u672A\u68C0\u6D4B\u5230\u914D\u7F6E\u8DEF\u5F84\u3002",
481
474
  "cli.config.install.dry-run": "[dry-run] {client}\uFF1A\u5C06\u5199\u5165 {path}",
482
475
  "cli.config.install.wrote": "{client}\uFF1A\u5DF2\u5199\u5165 {path}",
483
- "cli.doctor.description": "\u8FD0\u884C Fabric doctor \u68C0\u67E5\uFF0C\u5E76\u53EF\u9009\u8F93\u51FA\u5408\u89C4\u5BA1\u8BA1\u62A5\u544A\u3002",
476
+ "cli.doctor.description": "\u8FD0\u884C Fabric \u76EE\u6807\u6001\u8BCA\u65AD\u3002",
484
477
  "cli.doctor.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",
485
- "cli.doctor.args.audit.description": "\u8F93\u51FA AI \u7F16\u8F91\u610F\u56FE\u7F3A\u5C11 fab_get_rules \u524D\u7F6E\u8C03\u7528\u7684\u8FDD\u89C4\u9879\u3002",
486
- "cli.doctor.args.fix.description": "\u9700\u8981\u65F6\u5C06\u65E7\u7684\u6839\u76EE\u5F55 ledger \u8FC1\u79FB\u5230 .fabric/.intent-ledger.jsonl\u3002",
487
- "cli.doctor.args.window-minutes.description": "\u5339\u914D fab_get_rules \u8C03\u7528\u7684\u56DE\u770B\u65F6\u95F4\u7A97\u53E3\uFF0C\u5355\u4F4D\u4E3A\u5206\u949F\u3002\u9ED8\u8BA4 5 \u5206\u949F\u3002",
488
- "cli.doctor.errors.invalid-window": "\u65E0\u6548\u7684\u5BA1\u8BA1\u65F6\u95F4\u7A97\u53E3\uFF1A{value}",
489
- "cli.doctor.audit.preview-only": "fabric.config.json \u4E2D auditMode \u4E3A off\uFF1B\u5F53\u524D fab doctor --audit \u4EC5\u6267\u884C\u624B\u52A8\u9884\u89C8\uFF0C\u4E0D\u4F1A\u6539\u53D8\u9000\u51FA\u7801\u3002",
490
- "cli.doctor.audit.none": "\u5F53\u524D\u8FD8\u6CA1\u6709\u53EF\u7528\u4E8E\u5408\u89C4\u5BA1\u8BA1\u7684 AI \u7F16\u8F91\u610F\u56FE\u8BB0\u5F55\u3002",
491
- "cli.doctor.audit.clean": "\u5DF2\u5BA1\u8BA1\u7684 {count} \u4E2A\u7F16\u8F91\u8DEF\u5F84\u90FD\u5728 {window} \u5185\u5B58\u5728\u524D\u7F6E fab_get_rules \u8C03\u7528\u3002",
492
- "cli.doctor.audit.violations": "\u6709 {count} \u4E2A\u5DF2\u5BA1\u8BA1\u7F16\u8F91\u8DEF\u5F84\u5728 {window} \u5185\u7F3A\u5C11\u524D\u7F6E fab_get_rules \u8C03\u7528\u3002",
493
- "cli.doctor.audit.table.path": "\u8DEF\u5F84",
494
- "cli.doctor.audit.table.edit": "\u7F16\u8F91\u65F6\u95F4",
495
- "cli.doctor.audit.table.rules": "\u6700\u8FD1\u89C4\u5219\u8C03\u7528",
496
- "cli.doctor.audit.table.intent": "\u610F\u56FE",
478
+ "cli.doctor.args.fix.description": "\u4FEE\u590D\u786E\u5B9A\u6027\u6D3E\u751F\u7684 Fabric \u72B6\u6001\uFF0C\u5305\u62EC meta\u3001rule-test index\u3001bootstrap \u548C events ledger\u3002",
479
+ "cli.doctor.args.json.description": "\u4EE5 JSON \u8F93\u51FA doctor \u62A5\u544A\u3002",
480
+ "cli.doctor.args.strict.description": "\u5C06 warning \u4E5F\u89C6\u4E3A\u5931\u8D25\u3002",
497
481
  "cli.hooks.description": "\u7BA1\u7406 Fabric Git \u94A9\u5B50\u6A21\u677F\u3002",
498
482
  "cli.hooks.install.description": "\u5B89\u88C5 Fabric Husky pre-commit \u94A9\u5B50\u6A21\u677F\u3002",
499
483
  "cli.hooks.install.args.target.description": "\u76EE\u6807\u9879\u76EE\u8DEF\u5F84\uFF0C\u9ED8\u8BA4\u4E3A\u5F53\u524D\u5DE5\u4F5C\u76EE\u5F55\u3002",
@@ -662,49 +646,28 @@ var zhCNMessages = {
662
646
  "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",
663
647
  "cli.sync-meta.updated": "{label} {path}",
664
648
  "dashboard.app.nav.aria-label": "\u4EEA\u8868\u76D8\u89C6\u56FE\u5BFC\u822A",
665
- "dashboard.app.nav.module-a.label": "\u89C4\u5219\u62D3\u6251",
666
- "dashboard.app.nav.module-a.label-bilingual": "\u89C4\u5219\u547D\u4E2D Rule Topology",
667
- "dashboard.app.nav.module-a.subtitle": "\u8986\u76D6\u70ED\u529B\u56FE + \u547D\u4E2D\u539F\u56E0",
668
- "dashboard.app.nav.module-b.label": "\u8BA4\u77E5\u626B\u63CF",
669
- "dashboard.app.nav.module-b.label-bilingual": "\u8BA4\u77E5\u626B\u63CF Cognitive Forensic",
670
- "dashboard.app.nav.module-b.subtitle": "\u5360\u4F4D",
671
- "dashboard.app.nav.module-c.label": "\u8BED\u4E49\u65F6\u95F4\u7EBF",
672
- "dashboard.app.nav.module-c.label-bilingual": "\u8BED\u4E49\u65F6\u95F4\u7EBF Semantic Timeline",
673
- "dashboard.app.nav.module-c.subtitle": "\u5360\u4F4D",
674
- "dashboard.app.nav.module-d.label": "\u5386\u53F2\u8BB0\u5F55",
675
- "dashboard.app.nav.module-d.label-bilingual": "\u5386\u53F2\u8BB0\u5F55 Historical Ledger",
676
- "dashboard.app.nav.module-d.subtitle": "\u5360\u4F4D",
677
- "dashboard.app.nav.rules.label": "\u89C4\u5219\u6811",
678
- "dashboard.app.nav.rules.label-bilingual": "\u89C4\u5219\u6811 Rules Tree",
679
- "dashboard.app.nav.rules.subtitle": "\u89C4\u5219\u7ED3\u6784",
680
- "dashboard.app.nav.locks.label": "\u4EBA\u5DE5\u4FDD\u62A4",
681
- "dashboard.app.nav.locks.label-bilingual": "\u4EBA\u5DE5\u4FDD\u62A4 Human Lock",
682
- "dashboard.app.nav.locks.subtitle": "\u53D7\u4FDD\u62A4\u533A\u57DF",
683
- "dashboard.app.nav.timeline.label": "\u610F\u56FE\u65F6\u95F4\u7EBF",
684
- "dashboard.app.nav.timeline.label-bilingual": "\u610F\u56FE\u65F6\u95F4\u7EBF Intent Timeline",
685
- "dashboard.app.nav.timeline.subtitle": "\u53D8\u66F4\u8BB0\u5F55",
686
- "dashboard.app.nav.history.label": "\u5386\u53F2\u56DE\u653E",
687
- "dashboard.app.nav.history.label-bilingual": "\u5386\u53F2\u56DE\u653E History Replay",
688
- "dashboard.app.nav.history.subtitle": "\u65F6\u95F4\u56DE\u6EAF",
689
- "dashboard.app.nav.doctor.label": "\u8BCA\u65AD\u53F0",
690
- "dashboard.app.nav.doctor.label-bilingual": "\u8BCA\u65AD\u53F0 Doctor",
691
- "dashboard.app.nav.doctor.subtitle": "\u72B6\u6001\u68C0\u67E5",
692
- "dashboard.app.nav.section.modules-status": "\u6A21\u5757\u72B6\u6001",
693
- "dashboard.app.nav.section.diagnostics": "\u8BCA\u65AD",
649
+ "dashboard.app.nav.readiness.label": "\u51C6\u5907\u60C5\u51B5",
650
+ "dashboard.app.nav.readiness.label-bilingual": "\u51C6\u5907\u60C5\u51B5 Readiness",
651
+ "dashboard.app.nav.readiness.subtitle": "\u9879\u76EE\u72B6\u6001",
652
+ "dashboard.app.nav.rules-explain.label": "\u89C4\u5219\u89E3\u6790",
653
+ "dashboard.app.nav.rules-explain.label-bilingual": "\u89C4\u5219\u89E3\u6790 Rules Explain",
654
+ "dashboard.app.nav.rules-explain.subtitle": "\u62D3\u6251\u4E0E\u4E0A\u4E0B\u6587",
655
+ "dashboard.app.nav.timeline.label": "\u65F6\u95F4\u7EBF",
656
+ "dashboard.app.nav.timeline.label-bilingual": "\u65F6\u95F4\u7EBF Timeline",
657
+ "dashboard.app.nav.timeline.subtitle": "\u5BA1\u8BA1\u4E0E\u5386\u53F2",
658
+ "dashboard.app.nav.health.label": "\u7CFB\u7EDF\u5065\u5EB7",
659
+ "dashboard.app.nav.health.label-bilingual": "\u7CFB\u7EDF\u5065\u5EB7 Health",
660
+ "dashboard.app.nav.health.subtitle": "\u8BCA\u65AD\u53F0",
661
+ "dashboard.app.nav.section.insights": "\u6D1E\u5BDF",
694
662
  "dashboard.app.nav.drift-check": "\u6F02\u79FB\u68C0\u67E5",
695
663
  "dashboard.app.nav.modules.read-only": "\u53EA\u8BFB\u4EEA\u8868\u76D8",
696
664
  "dashboard.app.header.connected": "\u5DF2\u8FDE\u63A5",
697
665
  "dashboard.app.header.connecting": "\u8FDE\u63A5\u4E2D",
698
666
  "dashboard.app.live-region.received": "\u5DF2\u6536\u5230 {type}",
699
- "dashboard.app.breadcrumb.topology": "rule-topology",
700
- "dashboard.app.breadcrumb.forensic": "cognitive-forensic",
701
- "dashboard.app.breadcrumb.semantic": "semantic-timeline",
702
- "dashboard.app.breadcrumb.ledger": "historical-ledger",
703
- "dashboard.app.breadcrumb.rules": "rules-tree",
704
- "dashboard.app.breadcrumb.locks": "human-lock",
705
- "dashboard.app.breadcrumb.timeline": "intent-timeline",
706
- "dashboard.app.breadcrumb.history": "history-replay",
707
- "dashboard.app.breadcrumb.doctor": "doctor",
667
+ "dashboard.app.breadcrumb.readiness": "readiness",
668
+ "dashboard.app.breadcrumb.rules-explain": "rules-explain",
669
+ "dashboard.app.breadcrumb.timeline": "timeline",
670
+ "dashboard.app.breadcrumb.health": "health",
708
671
  "dashboard.rule-topology.title": "\u89C4\u5219\u547D\u4E2D",
709
672
  "dashboard.rule-topology.subtitle": "\u67E5\u770B\u5F53\u524D\u8DEF\u5F84\u4F1A\u547D\u4E2D\u54EA\u4E9B\u89C4\u5219\uFF0C\u4EE5\u53CA\u4E3A\u4EC0\u4E48\u4F1A\u547D\u4E2D",
710
673
  "dashboard.rule-topology.path.placeholder": "\u7528\u4E8E\u89C4\u5219\u4E0A\u4E0B\u6587\u7684\u6837\u672C\u8DEF\u5F84",
@@ -859,7 +822,30 @@ var zhCNMessages = {
859
822
  "dashboard.lock-card.diff.no-changes": "\u65E0\u53D8\u66F4",
860
823
  "dashboard.lock-card.diff.with-bytes": "+{added} / -{removed} \xB7 {bytes} \u5B57\u8282",
861
824
  "dashboard.lock-card.diff.without-bytes": "+{added} / -{removed}",
862
- "dashboard.approve-button.retry": "\u91CD\u8BD5"
825
+ "dashboard.approve-button.retry": "\u91CD\u8BD5",
826
+ "dashboard.readiness.filter.analysis": "\u9879\u76EE\u5206\u6790",
827
+ "dashboard.readiness.loading": "\u6B63\u5728\u52A0\u8F7D\u626B\u63CF\u6570\u636E...",
828
+ "dashboard.readiness.summary.framework": "\u6846\u67B6",
829
+ "dashboard.readiness.summary.files": "\u6587\u4EF6",
830
+ "dashboard.readiness.summary.status": "Fabric \u72B6\u6001",
831
+ "dashboard.readiness.card.evidence": "\u51C6\u5907\u60C5\u51B5\u51ED\u8BC1",
832
+ "dashboard.readiness.card.recommendations": "\u5EFA\u8BAE\u4E0E\u540E\u7EED\u6B65\u9AA4",
833
+ "dashboard.readiness.readme.description": "\u9879\u76EE\u6587\u6863\u7684\u8D28\u91CF",
834
+ "dashboard.readiness.contributing.description": "AI\u4E0E\u4EBA\u7C7B\u534F\u4F5C\u7684\u8D21\u732E\u6307\u5357",
835
+ "dashboard.readiness.fully-ready": "\u9879\u76EE\u5DF2\u5B8C\u5168\u51C6\u5907\u5C31\u7EEA\u3002",
836
+ "dashboard.readiness.init-prompt": "\u8FD0\u884C\u6B64\u547D\u4EE4\u8FDB\u884C\u521D\u59CB\u5316\uFF1A",
837
+ "dashboard.rules-explain.analyze": "\u5206\u6790\u8DEF\u5F84",
838
+ "dashboard.rules-explain.detail.topology-type": "\u62D3\u6251\u7C7B\u578B",
839
+ "dashboard.timeline.history-replay.title": "\u5386\u53F2\u56DE\u653E",
840
+ "dashboard.timeline.close": "\u5173\u95ED",
841
+ "dashboard.health.ledger-path.label": "\u4E8B\u4EF6\u8D26\u672C\u8DEF\u5F84",
842
+ "dashboard.health.ledger-path.detail": "\u53EA\u80FD\u8FFD\u52A0\u5199\u5165\u7684\u65F6\u95F4\u7EBF\u6570\u636E\u6E90",
843
+ "dashboard.health.boundary.title": "\u63A7\u5236\u5E73\u9762\u8FB9\u754C",
844
+ "dashboard.health.boundary.description": "Web \u63A7\u5236\u53F0\u4F5C\u4E3A\u7EAF\u67E5\u770B\u5668 (Viewer) \u8FD0\u884C\u3002\u6240\u6709\u89C4\u5219\u3001\u5143\u6570\u636E\u548C\u4FEE\u590D\u64CD\u4F5C\u90FD\u5FC5\u987B\u901A\u8FC7 CLI \u8FDB\u884C\u7BA1\u7406\u3002",
845
+ "dashboard.health.boundary.cli-action": "\u9700\u8981\u6267\u884C CLI \u64CD\u4F5C\uFF1A",
846
+ "dashboard.health.boundary.cli-prompt": "\u68C0\u6D4B\u5230 {count} \u4E2A\u53EF\u4FEE\u590D\u7684\u95EE\u9898\u3002\u8BF7\u5728\u7EC8\u7AEF\u4E2D\u8FD0\u884C\u4EE5\u4E0B\u547D\u4EE4\u4EE5\u81EA\u52A8\u4FEE\u590D\u5143\u6570\u636E\u3002",
847
+ "dashboard.health.runtime.connected": "MCP \u8FD0\u884C\u65F6\u5DF2\u8FDE\u63A5",
848
+ "dashboard.health.runtime.disconnected": "MCP \u8FD0\u884C\u65F6\u5DF2\u65AD\u5F00"
863
849
  };
864
850
 
865
851
  // src/i18n/create-translator.ts
@@ -911,9 +897,8 @@ function detectNodeLocale() {
911
897
 
912
898
  // src/i18n/protected-tokens.ts
913
899
  var PROTECTED_TOKENS = [
914
- "fab_get_rules",
915
- "fab_append_intent",
916
- "fab_update_registry",
900
+ "fab_plan_context",
901
+ "fab_get_rule_sections",
917
902
  "fabric_rules",
918
903
  "ledger_entry",
919
904
  "ledger_entry_id",
@@ -927,6 +912,7 @@ var PROTECTED_TOKENS = [
927
912
  ".fabric/init-context.json",
928
913
  ".fabric/forensic.json",
929
914
  ".fabric/.intent-ledger.jsonl",
915
+ ".fabric/events.jsonl",
930
916
  "@HUMAN",
931
917
  "shadow constraints",
932
918
  "Shadow Mirroring",
@@ -12,7 +12,7 @@ declare function detectNodeLocale(): Locale;
12
12
 
13
13
  declare function normalizeLocale(raw: string | null | undefined): Locale;
14
14
 
15
- declare const PROTECTED_TOKENS: readonly ["fab_get_rules", "fab_append_intent", "fab_update_registry", "fabric_rules", "ledger_entry", "ledger_entry_id", "agent_meta", "AGENTS.md", "FABRIC.md", ".fabric/agents/", ".fabric/agents/_cross/", ".fabric/agents.meta.json", ".fabric/human-lock.json", ".fabric/init-context.json", ".fabric/forensic.json", ".fabric/.intent-ledger.jsonl", "@HUMAN", "shadow constraints", "Shadow Mirroring", "CORE RULES", "DO NOT TRANSLATE", "MUST", "NEVER"];
15
+ declare const PROTECTED_TOKENS: readonly ["fab_plan_context", "fab_get_rule_sections", "fabric_rules", "ledger_entry", "ledger_entry_id", "agent_meta", "AGENTS.md", "FABRIC.md", ".fabric/agents/", ".fabric/agents/_cross/", ".fabric/agents.meta.json", ".fabric/human-lock.json", ".fabric/init-context.json", ".fabric/forensic.json", ".fabric/.intent-ledger.jsonl", ".fabric/events.jsonl", "@HUMAN", "shadow constraints", "Shadow Mirroring", "CORE RULES", "DO NOT TRANSLATE", "MUST", "NEVER"];
16
16
  type ProtectedToken = (typeof PROTECTED_TOKENS)[number];
17
17
 
18
18
  declare const enMessages: Messages;
@@ -6,7 +6,7 @@ import {
6
6
  enMessages,
7
7
  normalizeLocale,
8
8
  zhCNMessages
9
- } from "../chunk-KNZIX6IL.js";
9
+ } from "../chunk-5H2PVNB2.js";
10
10
  export {
11
11
  PROTECTED_TOKENS,
12
12
  createTranslator,