@fenglimg/fabric-cli 2.0.0-rc.25 → 2.0.0-rc.26

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.
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env node
2
+
3
+ // src/i18n.ts
4
+ import {
5
+ createTranslator,
6
+ detectNodeLocale,
7
+ resolveFabricLocale
8
+ } from "@fenglimg/fabric-shared";
9
+ var locale = detectNodeLocale();
10
+ var t = createTranslator(locale);
11
+ function getDoctorTranslator(projectRoot) {
12
+ return createTranslator(resolveFabricLocale(projectRoot));
13
+ }
14
+
15
+ export {
16
+ t,
17
+ getDoctorTranslator
18
+ };
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-MF3OTILQ.js";
5
5
  import {
6
6
  t
7
- } from "./chunk-6ICJICVU.js";
7
+ } from "./chunk-PWLW3B57.js";
8
8
 
9
9
  // src/commands/config.ts
10
10
  import { existsSync, statSync } from "fs";
@@ -3,9 +3,9 @@ import {
3
3
  configCmd,
4
4
  config_default,
5
5
  installMcpClients
6
- } from "./chunk-STLR2GHP.js";
6
+ } from "./chunk-SRX7WZUG.js";
7
7
  import "./chunk-MF3OTILQ.js";
8
- import "./chunk-6ICJICVU.js";
8
+ import "./chunk-PWLW3B57.js";
9
9
  export {
10
10
  configCmd,
11
11
  config_default as default,
@@ -6,8 +6,9 @@ import {
6
6
  symbol
7
7
  } from "./chunk-G2CIOLD4.js";
8
8
  import {
9
+ getDoctorTranslator,
9
10
  t
10
- } from "./chunk-6ICJICVU.js";
11
+ } from "./chunk-PWLW3B57.js";
11
12
  import {
12
13
  resolveDevMode
13
14
  } from "./chunk-COI5VDFU.js";
@@ -129,6 +130,7 @@ var doctorCommand = defineCommand({
129
130
  async run({ args }) {
130
131
  const workspaceRoot = process.cwd();
131
132
  const resolution = resolveDevMode(args.target, workspaceRoot);
133
+ const dt = getDoctorTranslator(resolution.target);
132
134
  try {
133
135
  checkLockOrThrow(resolution.target);
134
136
  } catch (err) {
@@ -145,7 +147,7 @@ var doctorCommand = defineCommand({
145
147
  const archiveHistory = args["archive-history"] === true;
146
148
  if (archiveHistory) {
147
149
  if (fix || fixKnowledge || citeCoverage || enrichDesc) {
148
- writeStderr(t("cli.doctor.errors.archive-history-mutex"));
150
+ writeStderr(dt("cli.doctor.errors.archive-history-mutex"));
149
151
  process.exitCode = 1;
150
152
  return;
151
153
  }
@@ -154,7 +156,7 @@ var doctorCommand = defineCommand({
154
156
  try {
155
157
  sinceMs = parseSinceDuration(sinceInput);
156
158
  } catch {
157
- writeStderr(t("cli.doctor.errors.invalid-since", { input: sinceInput }));
159
+ writeStderr(dt("cli.doctor.errors.invalid-since", { input: sinceInput }));
158
160
  process.exitCode = 1;
159
161
  return;
160
162
  }
@@ -164,13 +166,13 @@ var doctorCommand = defineCommand({
164
166
  if (args.json === true) {
165
167
  writeStdout(JSON.stringify(report2, null, 2));
166
168
  } else {
167
- renderArchiveHistoryReport(report2, sinceInput);
169
+ renderArchiveHistoryReport(report2, sinceInput, dt);
168
170
  }
169
171
  return;
170
172
  }
171
173
  if (enrichDesc) {
172
174
  if (fix || fixKnowledge || citeCoverage) {
173
- writeStderr(t("cli.doctor.errors.enrich-descriptions-mutex"));
175
+ writeStderr(dt("cli.doctor.errors.enrich-descriptions-mutex"));
174
176
  process.exitCode = 1;
175
177
  return;
176
178
  }
@@ -183,13 +185,13 @@ var doctorCommand = defineCommand({
183
185
  if (args.json === true) {
184
186
  writeStdout(JSON.stringify(report2, null, 2));
185
187
  } else {
186
- renderEnrichDescriptionsReport(report2);
188
+ renderEnrichDescriptionsReport(report2, dt);
187
189
  }
188
190
  return;
189
191
  }
190
192
  if (citeCoverage) {
191
193
  if (fix || fixKnowledge) {
192
- writeStderr(t("cli.doctor.errors.cite-coverage-mutex"));
194
+ writeStderr(dt("cli.doctor.errors.cite-coverage-mutex"));
193
195
  process.exitCode = 1;
194
196
  return;
195
197
  }
@@ -197,19 +199,19 @@ var doctorCommand = defineCommand({
197
199
  try {
198
200
  sinceMs = parseSinceDuration(args.since ?? "7d");
199
201
  } catch {
200
- writeStderr(t("cli.doctor.errors.invalid-since", { input: args.since ?? "7d" }));
202
+ writeStderr(dt("cli.doctor.errors.invalid-since", { input: args.since ?? "7d" }));
201
203
  process.exitCode = 1;
202
204
  return;
203
205
  }
204
206
  const clientFilter = args.client ?? "all";
205
207
  if (!isValidClientFilter(clientFilter)) {
206
- writeStderr(t("cli.doctor.errors.invalid-client", { input: clientFilter }));
208
+ writeStderr(dt("cli.doctor.errors.invalid-client", { input: clientFilter }));
207
209
  process.exitCode = 1;
208
210
  return;
209
211
  }
210
212
  const layerFilter = args.layer ?? "all";
211
213
  if (!isValidLayerFilter(layerFilter)) {
212
- writeStderr(t("cli.doctor.errors.invalid-layer", { input: layerFilter }));
214
+ writeStderr(dt("cli.doctor.errors.invalid-layer", { input: layerFilter }));
213
215
  process.exitCode = 1;
214
216
  return;
215
217
  }
@@ -218,11 +220,11 @@ var doctorCommand = defineCommand({
218
220
  client: clientFilter,
219
221
  layer: layerFilter
220
222
  });
221
- renderCiteCoverageReport(report2, args.json === true);
223
+ renderCiteCoverageReport(report2, args.json === true, dt);
222
224
  return;
223
225
  }
224
226
  if (fixKnowledge && fix) {
225
- writeStderr(t("cli.doctor.errors.fix-knowledge-fix-mutually-exclusive"));
227
+ writeStderr(dt("cli.doctor.errors.fix-knowledge-fix-mutually-exclusive"));
226
228
  process.exitCode = 1;
227
229
  return;
228
230
  }
@@ -263,11 +265,11 @@ var doctorCommand = defineCommand({
263
265
  if (fixKnowledgeReport.aborted && fixKnowledgeReport.abort_reason !== void 0) {
264
266
  writeStderr(fixKnowledgeReport.abort_reason);
265
267
  }
266
- renderFixKnowledgeMutations(fixKnowledgeReport);
268
+ renderFixKnowledgeMutations(fixKnowledgeReport, dt);
267
269
  } else if (fixReport !== null) {
268
270
  writeStdout(fixReport.message);
269
271
  }
270
- renderHumanReport(report);
272
+ renderHumanReport(report, dt);
271
273
  }
272
274
  await emitDoctorRunEventBestEffort(resolution.target, {
273
275
  mode: fixKnowledge ? "fix-knowledge" : "lint",
@@ -290,21 +292,21 @@ var doctorCommand = defineCommand({
290
292
  }
291
293
  });
292
294
  var doctor_default = doctorCommand;
293
- function renderHumanReport(report) {
295
+ function renderHumanReport(report, dt) {
294
296
  writeStdout(`${renderStatus(report.status)} ${paint.ai("fabric doctor")} ${paint.human(report.summary.target)}`);
295
297
  for (const check of report.checks) {
296
298
  writeStdout(`${renderStatus(check.status)} ${check.name}: ${check.message}`);
297
299
  }
298
- writeIssueSection(t("doctor.section.fixable"), report.fixable_errors);
299
- writeIssueSection(t("doctor.section.manual"), report.manual_errors);
300
- writeIssueSection(t("doctor.section.warnings"), report.warnings);
300
+ writeIssueSection(dt("doctor.section.fixable"), report.fixable_errors);
301
+ writeIssueSection(dt("doctor.section.manual"), report.manual_errors);
302
+ writeIssueSection(dt("doctor.section.warnings"), report.warnings);
301
303
  }
302
- function renderFixKnowledgeMutations(fixKnowledgeReport) {
304
+ function renderFixKnowledgeMutations(fixKnowledgeReport, dt) {
303
305
  if (fixKnowledgeReport.mutations.length === 0) {
304
306
  return;
305
307
  }
306
308
  writeStdout("");
307
- writeStdout(t("doctor.section.fix-knowledge-mutations"));
309
+ writeStdout(dt("doctor.section.fix-knowledge-mutations"));
308
310
  for (const mutation of fixKnowledgeReport.mutations) {
309
311
  const marker = mutation.applied ? symbol.ok : symbol.error;
310
312
  const errSuffix = mutation.applied || mutation.error === void 0 ? "" : ` (${mutation.error})`;
@@ -319,6 +321,9 @@ function writeIssueSection(title, issues) {
319
321
  writeStdout(title);
320
322
  for (const issue of issues) {
321
323
  writeStdout(`- ${issue.code}: ${issue.message}`);
324
+ if (issue.actionHint !== void 0 && issue.actionHint.length > 0) {
325
+ writeStdout(` \u2192 ${issue.actionHint}`);
326
+ }
322
327
  }
323
328
  }
324
329
  function renderStatus(status) {
@@ -436,35 +441,35 @@ var CITE_COVERAGE_LAYER_FILTERS = /* @__PURE__ */ new Set([
436
441
  function isValidLayerFilter(input) {
437
442
  return CITE_COVERAGE_LAYER_FILTERS.has(input);
438
443
  }
439
- function renderCiteCoverageReport(report, jsonMode) {
444
+ function renderCiteCoverageReport(report, jsonMode, dt) {
440
445
  if (jsonMode) {
441
446
  writeStdout(JSON.stringify(report, null, 2));
442
447
  return;
443
448
  }
444
449
  if (report.status === "skipped") {
445
- writeStdout(t("doctor.cite.status.skipped"));
450
+ writeStdout(dt("doctor.cite.status.skipped"));
446
451
  return;
447
452
  }
448
453
  const lines = [];
449
- lines.push(t("doctor.section.cite-coverage"));
454
+ lines.push(dt("doctor.section.cite-coverage"));
450
455
  lines.push(
451
- t("doctor.cite.header", {
456
+ dt("doctor.cite.header", {
452
457
  since: new Date(report.since_ts).toISOString(),
453
458
  marker: new Date(report.marker_ts).toISOString()
454
459
  })
455
460
  );
456
461
  if (report.marker_emitted_now) {
457
- lines.push(t("doctor.cite.warning.justActivated"));
462
+ lines.push(dt("doctor.cite.warning.justActivated"));
458
463
  }
459
464
  lines.push("");
460
- lines.push(` ${t("doctor.cite.metric.editsTouched")}: ${report.metrics.edits_touched}`);
461
- lines.push(` ${t("doctor.cite.metric.qualifyingCites")}: ${report.metrics.qualifying_cites}`);
462
- lines.push(` ${t("doctor.cite.metric.recalledUnverified")}: ${report.metrics.recalled_unverified}`);
463
- lines.push(` ${t("doctor.cite.metric.expectedButMissed")}: ${report.metrics.expected_but_missed}`);
464
- lines.push(` ${t("doctor.cite.metric.totalTurns")}: ${report.metrics.total_turns}`);
465
+ lines.push(` ${dt("doctor.cite.metric.editsTouched")}: ${report.metrics.edits_touched}`);
466
+ lines.push(` ${dt("doctor.cite.metric.qualifyingCites")}: ${report.metrics.qualifying_cites}`);
467
+ lines.push(` ${dt("doctor.cite.metric.recalledUnverified")}: ${report.metrics.recalled_unverified}`);
468
+ lines.push(` ${dt("doctor.cite.metric.expectedButMissed")}: ${report.metrics.expected_but_missed}`);
469
+ lines.push(` ${dt("doctor.cite.metric.totalTurns")}: ${report.metrics.total_turns}`);
465
470
  if (report.per_client !== void 0 && Object.keys(report.per_client).length > 1) {
466
471
  lines.push("");
467
- lines.push(`### ${t("doctor.cite.section.perClient")}`);
472
+ lines.push(`### ${dt("doctor.cite.section.perClient")}`);
468
473
  for (const [client, metrics] of Object.entries(report.per_client)) {
469
474
  const summary = Object.entries(metrics).map(([k, v]) => `${k}=${v}`).join(" / ");
470
475
  lines.push(` ${client}: ${summary}`);
@@ -472,24 +477,24 @@ function renderCiteCoverageReport(report, jsonMode) {
472
477
  }
473
478
  if (report.dismissed_reason_histogram !== void 0 && Object.keys(report.dismissed_reason_histogram).length > 0) {
474
479
  lines.push("");
475
- lines.push(`### ${t("doctor.cite.section.dismissedReasons")}`);
480
+ lines.push(`### ${dt("doctor.cite.section.dismissedReasons")}`);
476
481
  for (const [reason, count] of Object.entries(report.dismissed_reason_histogram)) {
477
- const label = t(`doctor.cite.dismissed.${reason}`);
482
+ const label = dt(`doctor.cite.dismissed.${reason}`);
478
483
  lines.push(` ${label}: ${count}`);
479
484
  }
480
485
  }
481
486
  if (report.none_reason_histogram !== void 0 && Object.keys(report.none_reason_histogram).length > 0) {
482
487
  lines.push("");
483
- lines.push(`### ${t("doctor.cite.section.noneReasons")}`);
488
+ lines.push(`### ${dt("doctor.cite.section.noneReasons")}`);
484
489
  for (const [reason, count] of Object.entries(report.none_reason_histogram)) {
485
- const label = t(`doctor.cite.none.${reason}`);
490
+ const label = dt(`doctor.cite.none.${reason}`);
486
491
  lines.push(` ${label}: ${count}`);
487
492
  }
488
493
  }
489
- appendContractSection(lines, report);
494
+ appendContractSection(lines, report, dt);
490
495
  writeStdout(lines.join("\n"));
491
496
  }
492
- function appendContractSection(lines, report) {
497
+ function appendContractSection(lines, report, dt) {
493
498
  const status = report.contract_metrics_status;
494
499
  if (status === void 0) {
495
500
  return;
@@ -501,13 +506,13 @@ function appendContractSection(lines, report) {
501
506
  return;
502
507
  }
503
508
  lines.push("");
504
- lines.push(`### ${t("cite-coverage.contract.header")}`);
509
+ lines.push(`### ${dt("cite-coverage.contract.header")}`);
505
510
  if (status === "skipped:bootstrap_drift") {
506
- lines.push(` ${t("cite-coverage.contract.status.skipped_bootstrap_drift")}`);
511
+ lines.push(` ${dt("cite-coverage.contract.status.skipped_bootstrap_drift")}`);
507
512
  return;
508
513
  }
509
514
  const statusKey = status === "ok" ? "cite-coverage.contract.status.ok" : "cite-coverage.contract.status.awaiting_marker";
510
- lines.push(` status: ${t(statusKey)}`);
515
+ lines.push(` status: ${dt(statusKey)}`);
511
516
  if (typeof report.contract_marker_ts === "number" && report.contract_marker_ts > 0) {
512
517
  lines.push(` since: ${new Date(report.contract_marker_ts).toISOString()}`);
513
518
  }
@@ -515,14 +520,14 @@ function appendContractSection(lines, report) {
515
520
  lines.push(` layer filter: ${report.layer_filter}`);
516
521
  }
517
522
  if (metrics !== void 0) {
518
- lines.push(` ${t("cite-coverage.contract.decisions_cited")}: ${metrics.decisions_cited}`);
519
- lines.push(` ${t("cite-coverage.contract.pitfalls_cited")}: ${metrics.pitfalls_cited}`);
520
- lines.push(` ${t("cite-coverage.contract.with")}: ${metrics.contract_with}`);
521
- lines.push(` ${t("cite-coverage.contract.missing")}: ${metrics.contract_missing}`);
523
+ lines.push(` ${dt("cite-coverage.contract.decisions_cited")}: ${metrics.decisions_cited}`);
524
+ lines.push(` ${dt("cite-coverage.contract.pitfalls_cited")}: ${metrics.pitfalls_cited}`);
525
+ lines.push(` ${dt("cite-coverage.contract.with")}: ${metrics.contract_with}`);
526
+ lines.push(` ${dt("cite-coverage.contract.missing")}: ${metrics.contract_missing}`);
522
527
  if (metrics.hard_violated > 0) {
523
- const layerSuffix = report.layer_filter === "personal" ? t("cite-coverage.layer.personal_fyi") : t("cite-coverage.layer.team_review");
528
+ const layerSuffix = report.layer_filter === "personal" ? dt("cite-coverage.layer.personal_fyi") : dt("cite-coverage.layer.team_review");
524
529
  lines.push(
525
- ` ${t("cite-coverage.contract.hard_violated")} ${layerSuffix}: ${metrics.hard_violated}`
530
+ ` ${dt("cite-coverage.contract.hard_violated")} ${layerSuffix}: ${metrics.hard_violated}`
526
531
  );
527
532
  }
528
533
  }
@@ -535,39 +540,39 @@ function appendContractSection(lines, report) {
535
540
  );
536
541
  if (teamKeys.length > 0 || personalKeys.length > 0) {
537
542
  lines.push("");
538
- lines.push(`#### ${t("cite-coverage.layer.team")} \xD7 ${t("cite-coverage.layer.personal")}`);
543
+ lines.push(`#### ${dt("cite-coverage.layer.team")} \xD7 ${dt("cite-coverage.layer.personal")}`);
539
544
  for (const key of teamKeys) {
540
- const label = t(`cite-coverage.contract.type.${key}`);
541
- lines.push(` ${t("cite-coverage.layer.team")} \u2014 ${label}: ${perLayerType.team[key]}`);
545
+ const label = dt(`cite-coverage.contract.type.${key}`);
546
+ lines.push(` ${dt("cite-coverage.layer.team")} \u2014 ${label}: ${perLayerType.team[key]}`);
542
547
  }
543
548
  for (const key of personalKeys) {
544
- const label = t(`cite-coverage.contract.type.${key}`);
549
+ const label = dt(`cite-coverage.contract.type.${key}`);
545
550
  lines.push(
546
- ` ${t("cite-coverage.layer.personal")} \u2014 ${label}: ${perLayerType.personal[key]}`
551
+ ` ${dt("cite-coverage.layer.personal")} \u2014 ${label}: ${perLayerType.personal[key]}`
547
552
  );
548
553
  }
549
554
  }
550
555
  }
551
556
  if (metrics !== void 0 && Object.keys(metrics.skip_count).length > 0) {
552
557
  lines.push("");
553
- lines.push(`#### ${t("cite-coverage.contract.skip_count")}`);
558
+ lines.push(`#### ${dt("cite-coverage.contract.skip_count")}`);
554
559
  for (const [reason, count] of Object.entries(metrics.skip_count)) {
555
- const label = t(`cite-coverage.skip.${reason}`);
560
+ const label = dt(`cite-coverage.skip.${reason}`);
556
561
  lines.push(` ${label}: ${count}`);
557
562
  }
558
563
  }
559
564
  if (metrics !== void 0 && metrics.cite_id_unresolved > 0) {
560
565
  lines.push("");
561
566
  lines.push(
562
- `${symbol.warn} ${t("cite-coverage.contract.cite_id_unresolved")}: ${metrics.cite_id_unresolved}`
567
+ `${symbol.warn} ${dt("cite-coverage.contract.cite_id_unresolved")}: ${metrics.cite_id_unresolved}`
563
568
  );
564
569
  }
565
570
  }
566
- function renderEnrichDescriptionsReport(report) {
571
+ function renderEnrichDescriptionsReport(report, dt) {
567
572
  const header = `${symbol.ok} ${paint.ai("fab doctor --enrich-descriptions")} mode=${report.mode}${report.dryRun ? " (dry-run)" : ""} scanned=${report.scanned} modified=${report.modified} skipped=${report.skipped}`;
568
573
  writeStdout(header);
569
574
  if (report.candidates.length === 0) {
570
- writeStdout(t("doctor.enrich.allComplete"));
575
+ writeStdout(dt("doctor.enrich.allComplete"));
571
576
  return;
572
577
  }
573
578
  writeStdout("");
@@ -611,14 +616,14 @@ function parseSinceDuration(input) {
611
616
  }
612
617
  throw new Error(`invalid --since value: ${input}`);
613
618
  }
614
- function renderArchiveHistoryReport(report, sinceLabel) {
619
+ function renderArchiveHistoryReport(report, sinceLabel, dt) {
615
620
  if (report.entries.length === 0) {
616
- writeStdout(t("doctor.archive-history.empty", { sinceLabel }));
621
+ writeStdout(dt("doctor.archive-history.empty", { sinceLabel }));
617
622
  return;
618
623
  }
619
624
  const lines = [];
620
625
  lines.push(
621
- t("doctor.archive-history.header", {
626
+ dt("doctor.archive-history.header", {
622
627
  sinceLabel,
623
628
  count: String(report.total),
624
629
  plural: report.total === 1 ? "" : "s"
@@ -626,11 +631,11 @@ function renderArchiveHistoryReport(report, sinceLabel) {
626
631
  );
627
632
  lines.push("");
628
633
  lines.push(
629
- `| ${t("doctor.archive-history.table.session")} | ${t(
634
+ `| ${dt("doctor.archive-history.table.session")} | ${dt(
630
635
  "doctor.archive-history.table.lastAttempt"
631
- )} | ${t("doctor.archive-history.table.outcome")} | ${t(
636
+ )} | ${dt("doctor.archive-history.table.outcome")} | ${dt(
632
637
  "doctor.archive-history.table.candidates"
633
- )} | ${t("doctor.archive-history.table.coveredGap")} |`
638
+ )} | ${dt("doctor.archive-history.table.coveredGap")} |`
634
639
  );
635
640
  lines.push("| ------- | ---------------- | -------- | ---------- | ----------- |");
636
641
  for (const entry of report.entries) {
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  t
4
- } from "./chunk-6ICJICVU.js";
4
+ } from "./chunk-PWLW3B57.js";
5
5
 
6
6
  // src/index.ts
7
7
  import { realpathSync } from "fs";
@@ -11,11 +11,11 @@ import { defineCommand, runMain } from "citty";
11
11
 
12
12
  // src/commands/index.ts
13
13
  var allCommands = {
14
- install: () => import("./install-S2J76N2B.js").then((module) => module.default),
15
- doctor: () => import("./doctor-DXKPYPRC.js").then((module) => module.default),
16
- serve: () => import("./serve-NPCI342P.js").then((module) => module.default),
17
- uninstall: () => import("./uninstall-MQM6NUFM.js").then((module) => module.default),
18
- config: () => import("./config-XGUUAYX6.js").then((module) => module.default),
14
+ install: () => import("./install-3MWBW6N7.js").then((module) => module.default),
15
+ doctor: () => import("./doctor-ZIQXN2T2.js").then((module) => module.default),
16
+ serve: () => import("./serve-U3TPWDOB.js").then((module) => module.default),
17
+ uninstall: () => import("./uninstall-SUSIZHGL.js").then((module) => module.default),
18
+ config: () => import("./config-5CH4EJQ2.js").then((module) => module.default),
19
19
  "plan-context-hint": () => import("./plan-context-hint-KPGOW3QC.js").then((module) => module.default),
20
20
  // v2.0.0-rc.23 TASK-014 (F8c): S5 onboard-slot coverage. Used by the
21
21
  // fabric-archive Skill's first-run phase to detect unclaimed slots.
@@ -26,7 +26,7 @@ var allCommands = {
26
26
  var main = defineCommand({
27
27
  meta: {
28
28
  name: "fabric",
29
- version: "2.0.0-rc.25",
29
+ version: "2.0.0-rc.26",
30
30
  description: t("cli.main.description")
31
31
  },
32
32
  subCommands: allCommands
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  installMcpClients
4
- } from "./chunk-STLR2GHP.js";
4
+ } from "./chunk-SRX7WZUG.js";
5
5
  import {
6
6
  installArchiveHintHook,
7
7
  installFabricArchiveSkill,
@@ -31,7 +31,7 @@ import {
31
31
  } from "./chunk-G2CIOLD4.js";
32
32
  import {
33
33
  t
34
- } from "./chunk-6ICJICVU.js";
34
+ } from "./chunk-PWLW3B57.js";
35
35
  import {
36
36
  createDebugLogger,
37
37
  resolveDevMode
@@ -1348,7 +1348,7 @@ function readProjectName(target) {
1348
1348
  return basename(target);
1349
1349
  }
1350
1350
  function getCliVersion() {
1351
- return true ? "2.0.0-rc.25" : "unknown";
1351
+ return true ? "2.0.0-rc.26" : "unknown";
1352
1352
  }
1353
1353
  function sortRecord(record) {
1354
1354
  return Object.fromEntries(Object.entries(record).sort(([left], [right]) => left.localeCompare(right)));
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-G2CIOLD4.js";
8
8
  import {
9
9
  t
10
- } from "./chunk-6ICJICVU.js";
10
+ } from "./chunk-PWLW3B57.js";
11
11
  import {
12
12
  createDebugLogger,
13
13
  resolveDevMode
@@ -19,7 +19,7 @@ import {
19
19
  } from "./chunk-G2CIOLD4.js";
20
20
  import {
21
21
  t
22
- } from "./chunk-6ICJICVU.js";
22
+ } from "./chunk-PWLW3B57.js";
23
23
  import {
24
24
  createDebugLogger,
25
25
  resolveDevMode
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fenglimg/fabric-cli",
3
- "version": "2.0.0-rc.25",
3
+ "version": "2.0.0-rc.26",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "fab": "dist/index.js",
@@ -20,8 +20,8 @@
20
20
  "tree-sitter-javascript": "^0.25.0",
21
21
  "tree-sitter-typescript": "^0.23.2",
22
22
  "web-tree-sitter": "^0.26.8",
23
- "@fenglimg/fabric-server": "2.0.0-rc.25",
24
- "@fenglimg/fabric-shared": "2.0.0-rc.25"
23
+ "@fenglimg/fabric-server": "2.0.0-rc.26",
24
+ "@fenglimg/fabric-shared": "2.0.0-rc.26"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@types/node": "^22.15.0",
@@ -1,10 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- // src/i18n.ts
4
- import { createTranslator, detectNodeLocale } from "@fenglimg/fabric-shared";
5
- var locale = detectNodeLocale();
6
- var t = createTranslator(locale);
7
-
8
- export {
9
- t
10
- };