@opensip-cli/yagni 0.1.11 → 0.1.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.
Files changed (118) hide show
  1. package/README.md +3 -3
  2. package/dist/__tests__/apply-advisory-exit.test.js +2 -1
  3. package/dist/__tests__/apply-advisory-exit.test.js.map +1 -1
  4. package/dist/__tests__/architecture-invariants.test.d.ts +6 -0
  5. package/dist/__tests__/architecture-invariants.test.d.ts.map +1 -0
  6. package/dist/__tests__/architecture-invariants.test.js +37 -0
  7. package/dist/__tests__/architecture-invariants.test.js.map +1 -0
  8. package/dist/__tests__/detector-progress.test.d.ts +2 -0
  9. package/dist/__tests__/detector-progress.test.d.ts.map +1 -0
  10. package/dist/__tests__/detector-progress.test.js +77 -0
  11. package/dist/__tests__/detector-progress.test.js.map +1 -0
  12. package/dist/__tests__/duplicate-parity.test.d.ts +15 -0
  13. package/dist/__tests__/duplicate-parity.test.d.ts.map +1 -0
  14. package/dist/__tests__/duplicate-parity.test.js +304 -0
  15. package/dist/__tests__/duplicate-parity.test.js.map +1 -0
  16. package/dist/__tests__/hardening.test.d.ts +2 -0
  17. package/dist/__tests__/hardening.test.d.ts.map +1 -0
  18. package/dist/__tests__/hardening.test.js +102 -0
  19. package/dist/__tests__/hardening.test.js.map +1 -0
  20. package/dist/__tests__/session-payload.test.d.ts +2 -0
  21. package/dist/__tests__/session-payload.test.d.ts.map +1 -0
  22. package/dist/__tests__/session-payload.test.js +61 -0
  23. package/dist/__tests__/session-payload.test.js.map +1 -0
  24. package/dist/__tests__/walk-typescript-files.test.js +15 -1
  25. package/dist/__tests__/walk-typescript-files.test.js.map +1 -1
  26. package/dist/__tests__/yagni-coverage.test.js +49 -202
  27. package/dist/__tests__/yagni-coverage.test.js.map +1 -1
  28. package/dist/__tests__/yagni-golden.test.js +8 -24
  29. package/dist/__tests__/yagni-golden.test.js.map +1 -1
  30. package/dist/__tests__/yagni-presentation.test.js +5 -5
  31. package/dist/__tests__/yagni-presentation.test.js.map +1 -1
  32. package/dist/baseline-strategy.d.ts +1 -2
  33. package/dist/baseline-strategy.d.ts.map +1 -1
  34. package/dist/baseline-strategy.js +21 -16
  35. package/dist/baseline-strategy.js.map +1 -1
  36. package/dist/cli/__tests__/yagni-runner.test.js +10 -7
  37. package/dist/cli/__tests__/yagni-runner.test.js.map +1 -1
  38. package/dist/cli/execute-yagni.d.ts +15 -4
  39. package/dist/cli/execute-yagni.d.ts.map +1 -1
  40. package/dist/cli/execute-yagni.js +68 -30
  41. package/dist/cli/execute-yagni.js.map +1 -1
  42. package/dist/cli/report-data.d.ts +0 -2
  43. package/dist/cli/report-data.d.ts.map +1 -1
  44. package/dist/cli/report-data.js +0 -2
  45. package/dist/cli/report-data.js.map +1 -1
  46. package/dist/cli/yagni-command-spec.d.ts.map +1 -1
  47. package/dist/cli/yagni-command-spec.js +4 -19
  48. package/dist/cli/yagni-command-spec.js.map +1 -1
  49. package/dist/cli/yagni-config-schema.d.ts +1 -7
  50. package/dist/cli/yagni-config-schema.d.ts.map +1 -1
  51. package/dist/cli/yagni-config-schema.js +4 -6
  52. package/dist/cli/yagni-config-schema.js.map +1 -1
  53. package/dist/cli/yagni-config.d.ts.map +1 -1
  54. package/dist/cli/yagni-config.js +3 -7
  55. package/dist/cli/yagni-config.js.map +1 -1
  56. package/dist/cli/yagni-presentation.d.ts +1 -2
  57. package/dist/cli/yagni-presentation.d.ts.map +1 -1
  58. package/dist/cli/yagni-presentation.js +4 -4
  59. package/dist/cli/yagni-presentation.js.map +1 -1
  60. package/dist/cli/yagni-runner.d.ts +0 -2
  61. package/dist/cli/yagni-runner.d.ts.map +1 -1
  62. package/dist/cli/yagni-runner.js +40 -8
  63. package/dist/cli/yagni-runner.js.map +1 -1
  64. package/dist/detectors/duplicate-body-candidate.d.ts +9 -2
  65. package/dist/detectors/duplicate-body-candidate.d.ts.map +1 -1
  66. package/dist/detectors/duplicate-body-candidate.js +123 -120
  67. package/dist/detectors/duplicate-body-candidate.js.map +1 -1
  68. package/dist/detectors/registry.d.ts +9 -1
  69. package/dist/detectors/registry.d.ts.map +1 -1
  70. package/dist/detectors/registry.js +9 -1
  71. package/dist/detectors/registry.js.map +1 -1
  72. package/dist/detectors/types.d.ts +1 -2
  73. package/dist/detectors/types.d.ts.map +1 -1
  74. package/dist/detectors/unused-config-surface.d.ts.map +1 -1
  75. package/dist/detectors/unused-config-surface.js +0 -2
  76. package/dist/detectors/unused-config-surface.js.map +1 -1
  77. package/dist/index.d.ts +1 -1
  78. package/dist/index.d.ts.map +1 -1
  79. package/dist/lib/build-ts-inventory.d.ts +33 -0
  80. package/dist/lib/build-ts-inventory.d.ts.map +1 -0
  81. package/dist/lib/build-ts-inventory.js +252 -0
  82. package/dist/lib/build-ts-inventory.js.map +1 -0
  83. package/dist/persistence/session-payload.d.ts +7 -10
  84. package/dist/persistence/session-payload.d.ts.map +1 -1
  85. package/dist/persistence/session-payload.js +64 -6
  86. package/dist/persistence/session-payload.js.map +1 -1
  87. package/dist/scoring/__tests__/confidence.test.js +3 -4
  88. package/dist/scoring/__tests__/confidence.test.js.map +1 -1
  89. package/dist/scoring/confidence.d.ts +1 -1
  90. package/dist/scoring/confidence.d.ts.map +1 -1
  91. package/dist/scoring/confidence.js +1 -2
  92. package/dist/scoring/confidence.js.map +1 -1
  93. package/dist/tool.d.ts.map +1 -1
  94. package/dist/tool.js +3 -1
  95. package/dist/tool.js.map +1 -1
  96. package/dist/types/yagni-config.d.ts +1 -4
  97. package/dist/types/yagni-config.d.ts.map +1 -1
  98. package/dist/types/yagni-config.js +0 -1
  99. package/dist/types/yagni-config.js.map +1 -1
  100. package/dist/types/yagni-metadata.d.ts +0 -1
  101. package/dist/types/yagni-metadata.d.ts.map +1 -1
  102. package/package.json +10 -10
  103. package/dist/__tests__/graph-evidence.test.d.ts +0 -2
  104. package/dist/__tests__/graph-evidence.test.d.ts.map +0 -1
  105. package/dist/__tests__/graph-evidence.test.js +0 -159
  106. package/dist/__tests__/graph-evidence.test.js.map +0 -1
  107. package/dist/evidence/graph-evidence.d.ts +0 -15
  108. package/dist/evidence/graph-evidence.d.ts.map +0 -1
  109. package/dist/evidence/graph-evidence.js +0 -89
  110. package/dist/evidence/graph-evidence.js.map +0 -1
  111. package/dist/evidence/load-graph-adapters.d.ts +0 -13
  112. package/dist/evidence/load-graph-adapters.d.ts.map +0 -1
  113. package/dist/evidence/load-graph-adapters.js +0 -67
  114. package/dist/evidence/load-graph-adapters.js.map +0 -1
  115. package/dist/lib/isolate-exit-code.d.ts +0 -8
  116. package/dist/lib/isolate-exit-code.d.ts.map +0 -1
  117. package/dist/lib/isolate-exit-code.js +0 -27
  118. package/dist/lib/isolate-exit-code.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"execute-yagni.js","sourceRoot":"","sources":["../../src/cli/execute-yagni.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execute-yagni.js","sourceRoot":"","sources":["../../src/cli/execute-yagni.ts"],"names":[],"mappings":"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"}
@@ -7,12 +7,10 @@ export interface YagniDetectorCatalogEntry {
7
7
  readonly id: string;
8
8
  readonly slug: string;
9
9
  readonly description: string;
10
- readonly requiresGraph: boolean;
11
10
  }
12
11
  /** Static summary of the bundled detector catalog. */
13
12
  export interface YagniSummaryCatalog {
14
13
  readonly detectorCount: number;
15
- readonly graphBackedCount: number;
16
14
  readonly contractVersion: string;
17
15
  }
18
16
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"report-data.d.ts","sourceRoot":"","sources":["../../src/cli/report-data.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,gDAAgD;AAChD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;CACjC;AAED,sDAAsD;AACtD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAajF"}
1
+ {"version":3,"file":"report-data.d.ts","sourceRoot":"","sources":["../../src/cli/report-data.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,gDAAgD;AAChD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,sDAAsD;AACtD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAWjF"}
@@ -11,11 +11,9 @@ export function collectYagniReportData(_scope) {
11
11
  id: d.id,
12
12
  slug: d.slug,
13
13
  description: d.description,
14
- requiresGraph: d.requiresGraph,
15
14
  }));
16
15
  const yagniSummary = {
17
16
  detectorCount: YAGNI_DETECTORS.length,
18
- graphBackedCount: YAGNI_DETECTORS.filter((d) => d.requiresGraph).length,
19
17
  contractVersion: '1.0.0',
20
18
  };
21
19
  return { yagniCatalog, yagniSummary };
@@ -1 +1 @@
1
- {"version":3,"file":"report-data.js","sourceRoot":"","sources":["../../src/cli/report-data.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAmB3D;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAiB;IACtD,MAAM,YAAY,GAAgC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5E,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,aAAa,EAAE,CAAC,CAAC,aAAa;KAC/B,CAAC,CAAC,CAAC;IACJ,MAAM,YAAY,GAAwB;QACxC,aAAa,EAAE,eAAe,CAAC,MAAM;QACrC,gBAAgB,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM;QACvE,eAAe,EAAE,OAAO;KACzB,CAAC;IACF,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"report-data.js","sourceRoot":"","sources":["../../src/cli/report-data.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAiB3D;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAiB;IACtD,MAAM,YAAY,GAAgC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5E,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,WAAW,EAAE,CAAC,CAAC,WAAW;KAC3B,CAAC,CAAC,CAAC;IACJ,MAAM,YAAY,GAAwB;QACxC,aAAa,EAAE,eAAe,CAAC,MAAM;QACrC,eAAe,EAAE,OAAO;KACzB,CAAC;IACF,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;AACxC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"yagni-command-spec.d.ts","sourceRoot":"","sources":["../../src/cli/yagni-command-spec.ts"],"names":[],"mappings":"AAAA;;GAEG;AAgBH,OAAO,KAAK,EAAE,cAAc,EAAqB,MAAM,mBAAmB,CAAC;AAyI3E,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,IAAI,gFAmDjF"}
1
+ {"version":3,"file":"yagni-command-spec.d.ts","sourceRoot":"","sources":["../../src/cli/yagni-command-spec.ts"],"names":[],"mappings":"AAAA;;GAEG;AAeH,OAAO,KAAK,EAAE,cAAc,EAAqB,MAAM,mBAAmB,CAAC;AA8H3E,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,IAAI,gFA4CjF"}
@@ -8,11 +8,6 @@ import { resolveYagniPositionalPaths } from '../lib/resolve-positional-paths.js'
8
8
  import { executeYagni } from './execute-yagni.js';
9
9
  import { loadYagniConfig } from './yagni-config.js';
10
10
  import { buildYagniRunPresentation } from './yagni-presentation.js';
11
- function parseGraphMode(raw) {
12
- if (raw === 'auto' || raw === 'reuse' || raw === 'build' || raw === 'off')
13
- return raw;
14
- return undefined;
15
- }
16
11
  function parseMinConfidence(raw) {
17
12
  if (raw === 'low' || raw === 'medium' || raw === 'high')
18
13
  return raw;
@@ -23,12 +18,11 @@ function normalizeRepeatable(raw) {
23
18
  return [];
24
19
  return Array.isArray(raw) ? raw : [raw];
25
20
  }
26
- function buildYagniLiveArgs(opts, graphMode, pathRoots) {
21
+ function buildYagniLiveArgs(opts, pathRoots) {
27
22
  return {
28
23
  cwd: opts.cwd,
29
24
  verbose: opts.verbose === true,
30
25
  quiet: opts.quiet === true,
31
- graphMode,
32
26
  minConfidence: parseMinConfidence(opts.minConfidence),
33
27
  detectors: normalizeRepeatable(opts.detector),
34
28
  categories: normalizeRepeatable(opts.category),
@@ -52,14 +46,13 @@ async function deliverYagniRun(opts, cli, config, outcome) {
52
46
  async function runYagniCommand(rawOpts, cli, setUpLiveView) {
53
47
  const opts = rawOpts;
54
48
  const config = loadYagniConfig(opts.cwd);
55
- const graphMode = parseGraphMode(opts.graph) ?? config.graphMode ?? 'auto';
56
49
  const positionals = opts._args ?? [];
57
50
  const paths = (positionals[0] ?? []);
58
51
  const pathRoots = paths.length > 0 ? resolveYagniPositionalPaths(paths, opts.cwd) : undefined;
59
52
  const useLiveView = opts.json !== true && process.stdout.isTTY === true && pathRoots === undefined;
60
53
  if (useLiveView) {
61
54
  setUpLiveView(cli);
62
- const completion = await cli.renderLive(YAGNI_LIVE_VIEW_KEY, buildYagniLiveArgs(opts, graphMode, pathRoots));
55
+ const completion = await cli.renderLive(YAGNI_LIVE_VIEW_KEY, buildYagniLiveArgs(opts, pathRoots));
63
56
  const envelope = completion?.envelope;
64
57
  if (envelope !== undefined) {
65
58
  await deliverYagniRun(opts, cli, config, { envelope });
@@ -70,15 +63,14 @@ async function runYagniCommand(rawOpts, cli, setUpLiveView) {
70
63
  const outcome = await executeYagni({
71
64
  cwd: opts.cwd,
72
65
  config,
73
- graphMode,
74
66
  minConfidence: parseMinConfidence(opts.minConfidence),
75
67
  detectors: normalizeRepeatable(opts.detector),
76
68
  categories: normalizeRepeatable(opts.category),
77
69
  includeTests: opts.includeTests ?? config.includeTests,
78
70
  pathRoots,
79
71
  }, cli);
80
- // Clear exit codes leaked by in-process `executeGraph` before the host wraps
81
- // the envelope (emitEnvelope snapshots getExitCode at write time).
72
+ // Re-affirm advisory exit policy before the host wraps the envelope
73
+ // (emitEnvelope snapshots getExitCode at write time; --report-to may set exit 4).
82
74
  applyAdvisoryExitCode(cli, config);
83
75
  if (opts.json === true) {
84
76
  cli.emitEnvelope(outcome.envelope);
@@ -88,7 +80,6 @@ async function runYagniCommand(rawOpts, cli, setUpLiveView) {
88
80
  const presentation = buildYagniRunPresentation({
89
81
  envelope: outcome.envelope,
90
82
  cwd: opts.cwd,
91
- graphMode: outcome.session.payload.summary.graphMode ?? graphMode,
92
83
  skippedDetectors: outcome.session.payload.summary.skippedDetectors,
93
84
  verbose: opts.verbose === true,
94
85
  durationMs,
@@ -103,12 +94,6 @@ export function buildYagniCommandSpec(setUpLiveView) {
103
94
  description: 'Run YAGNI reduction audit detectors (advisory; exit 0 by default)',
104
95
  commonFlags: ['cwd', 'json', 'quiet', 'verbose', 'debug', 'reportTo', 'apiKey', 'open'],
105
96
  options: [
106
- {
107
- flag: '--graph',
108
- value: '<mode>',
109
- description: 'Graph evidence mode: auto (reuse or build), reuse, build, or off (default from config)',
110
- choices: ['auto', 'reuse', 'build', 'off'],
111
- },
112
97
  {
113
98
  flag: '--min-confidence',
114
99
  value: '<level>',
@@ -1 +1 @@
1
- {"version":3,"file":"yagni-command-spec.js","sourceRoot":"","sources":["../../src/cli/yagni-command-spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"yagni-command-spec.js","sourceRoot":"","sources":["../../src/cli/yagni-command-spec.ts"],"names":[],"mappings":"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"}
@@ -14,15 +14,9 @@ export declare const YagniConfigSchema: z.ZodObject<{
14
14
  medium: "medium";
15
15
  high: "high";
16
16
  }>>;
17
- graphMode: z.ZodOptional<z.ZodEnum<{
18
- auto: "auto";
19
- reuse: "reuse";
20
- build: "build";
21
- off: "off";
22
- }>>;
23
17
  includeTests: z.ZodOptional<z.ZodBoolean>;
24
18
  disabledDetectors: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
25
19
  detectorSettings: z.ZodOptional<z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>>;
26
- }, z.core.$strip>;
20
+ }, z.core.$strict>;
27
21
  export declare const yagniConfigDeclaration: ToolConfigDeclaration;
28
22
  //# sourceMappingURL=yagni-config-schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"yagni-config-schema.d.ts","sourceRoot":"","sources":["../../src/cli/yagni-config-schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAKjE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;iBAQ5B,CAAC;AAMH,eAAO,MAAM,sBAAsB,EAAE,qBAmBpC,CAAC"}
1
+ {"version":3,"file":"yagni-config-schema.d.ts","sourceRoot":"","sources":["../../src/cli/yagni-config-schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAIjE,eAAO,MAAM,iBAAiB;;;;;;;;;;;kBASnB,CAAC;AAMZ,eAAO,MAAM,sBAAsB,EAAE,qBAiBpC,CAAC"}
@@ -5,17 +5,17 @@
5
5
  * `failOnWarnings`) default to `0` so advisory findings never fail the run.
6
6
  */
7
7
  import { z } from 'zod';
8
- const graphMode = z.enum(['auto', 'reuse', 'build', 'off']);
9
8
  const confidenceLevel = z.enum(['low', 'medium', 'high']);
10
- export const YagniConfigSchema = z.object({
9
+ export const YagniConfigSchema = z
10
+ .object({
11
11
  failOnErrors: z.number().int().min(0).optional(),
12
12
  failOnWarnings: z.number().int().min(0).optional(),
13
13
  defaultMinConfidence: confidenceLevel.optional(),
14
- graphMode: graphMode.optional(),
15
14
  includeTests: z.boolean().optional(),
16
15
  disabledDetectors: z.array(z.string().min(1)).readonly().optional(),
17
16
  detectorSettings: z.record(z.string(), z.record(z.string(), z.unknown())).readonly().optional(),
18
- });
17
+ })
18
+ .strict();
19
19
  export const yagniConfigDeclaration = {
20
20
  namespace: 'yagni',
21
21
  schema: YagniConfigSchema,
@@ -23,11 +23,9 @@ export const yagniConfigDeclaration = {
23
23
  failOnErrors: 0,
24
24
  failOnWarnings: 0,
25
25
  defaultMinConfidence: 'medium',
26
- graphMode: 'auto',
27
26
  includeTests: false,
28
27
  },
29
28
  env: [
30
- { envVar: 'OPENSIP_YAGNI_GRAPH_MODE', key: 'graphMode' },
31
29
  { envVar: 'OPENSIP_YAGNI_MIN_CONFIDENCE', key: 'defaultMinConfidence' },
32
30
  {
33
31
  envVar: 'OPENSIP_YAGNI_INCLUDE_TESTS',
@@ -1 +1 @@
1
- {"version":3,"file":"yagni-config-schema.js","sourceRoot":"","sources":["../../src/cli/yagni-config-schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;AAC5D,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AAE1D,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAChD,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAClD,oBAAoB,EAAE,eAAe,CAAC,QAAQ,EAAE;IAChD,SAAS,EAAE,SAAS,CAAC,QAAQ,EAAE;IAC/B,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACpC,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACnE,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAChG,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,sBAAsB,GAA0B;IAC3D,SAAS,EAAE,OAAO;IAClB,MAAM,EAAE,iBAAiB;IACzB,QAAQ,EAAE;QACR,YAAY,EAAE,CAAC;QACf,cAAc,EAAE,CAAC;QACjB,oBAAoB,EAAE,QAAQ;QAC9B,SAAS,EAAE,MAAM;QACjB,YAAY,EAAE,KAAK;KACpB;IACD,GAAG,EAAE;QACH,EAAE,MAAM,EAAE,0BAA0B,EAAE,GAAG,EAAE,WAAW,EAAE;QACxD,EAAE,MAAM,EAAE,8BAA8B,EAAE,GAAG,EAAE,sBAAsB,EAAE;QACvE;YACE,MAAM,EAAE,6BAA6B;YACrC,GAAG,EAAE,cAAc;YACnB,IAAI,EAAE,SAAS;SAChB;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"yagni-config-schema.js","sourceRoot":"","sources":["../../src/cli/yagni-config-schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AAE1D,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,CAAC;IACN,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAChD,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAClD,oBAAoB,EAAE,eAAe,CAAC,QAAQ,EAAE;IAChD,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACpC,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACnE,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAChG,CAAC;KACD,MAAM,EAAE,CAAC;AAMZ,MAAM,CAAC,MAAM,sBAAsB,GAA0B;IAC3D,SAAS,EAAE,OAAO;IAClB,MAAM,EAAE,iBAAiB;IACzB,QAAQ,EAAE;QACR,YAAY,EAAE,CAAC;QACf,cAAc,EAAE,CAAC;QACjB,oBAAoB,EAAE,QAAQ;QAC9B,YAAY,EAAE,KAAK;KACpB;IACD,GAAG,EAAE;QACH,EAAE,MAAM,EAAE,8BAA8B,EAAE,GAAG,EAAE,sBAAsB,EAAE;QACvE;YACE,MAAM,EAAE,6BAA6B;YACrC,GAAG,EAAE,cAAc;YACnB,IAAI,EAAE,SAAS;SAChB;KACF;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"yagni-config.d.ts","sourceRoot":"","sources":["../../src/cli/yagni-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAQH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAoB5D;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,WAAW,CA0B/E"}
1
+ {"version":3,"file":"yagni-config.d.ts","sourceRoot":"","sources":["../../src/cli/yagni-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAaH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAe5D;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,WAAW,CA0B/E"}
@@ -19,18 +19,14 @@
19
19
  * `dogfood-one-config-document-ratchet` check's sanctioned config readers for
20
20
  * exactly this reason.
21
21
  */
22
- import { currentScope, readYamlFile, resolveProjectConfigPath } from '@opensip-cli/core';
22
+ import { currentScope, isPlainRecord, readYamlFile, resolveProjectConfigPath, } from '@opensip-cli/core';
23
23
  import { DEFAULT_YAGNI_CONFIG } from '../types/yagni-config.js';
24
24
  import { YagniConfigSchema } from './yagni-config-schema.js';
25
- function isPlainObject(v) {
26
- return typeof v === 'object' && v !== null && !Array.isArray(v);
27
- }
28
25
  function mergeDefaults(parsed) {
29
26
  return {
30
27
  failOnErrors: parsed.failOnErrors ?? DEFAULT_YAGNI_CONFIG.failOnErrors,
31
28
  failOnWarnings: parsed.failOnWarnings ?? DEFAULT_YAGNI_CONFIG.failOnWarnings,
32
29
  defaultMinConfidence: parsed.defaultMinConfidence ?? DEFAULT_YAGNI_CONFIG.defaultMinConfidence,
33
- graphMode: parsed.graphMode ?? DEFAULT_YAGNI_CONFIG.graphMode,
34
30
  includeTests: parsed.includeTests ?? DEFAULT_YAGNI_CONFIG.includeTests,
35
31
  ...(parsed.disabledDetectors === undefined
36
32
  ? {}
@@ -48,7 +44,7 @@ export function loadYagniConfig(cwd, explicitPath) {
48
44
  // YAML read below.
49
45
  const scope = currentScope();
50
46
  const scoped = scope?.toolConfig?.yagni;
51
- if (isPlainObject(scoped)) {
47
+ if (isPlainRecord(scoped)) {
52
48
  const parsed = YagniConfigSchema.safeParse(scoped);
53
49
  if (parsed.success)
54
50
  return mergeDefaults(parsed.data);
@@ -61,7 +57,7 @@ export function loadYagniConfig(cwd, explicitPath) {
61
57
  }
62
58
  const configPath = resolveProjectConfigPath(cwd, explicitPath);
63
59
  const doc = readYamlFile(configPath);
64
- if (!isPlainObject(doc) || !isPlainObject(doc.yagni)) {
60
+ if (!isPlainRecord(doc) || !isPlainRecord(doc.yagni)) {
65
61
  return mergeDefaults({});
66
62
  }
67
63
  const parsed = YagniConfigSchema.safeParse(doc.yagni);
@@ -1 +1 @@
1
- {"version":3,"file":"yagni-config.js","sourceRoot":"","sources":["../../src/cli/yagni-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAEzF,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAI7D,SAAS,aAAa,CAAC,CAAU;IAC/B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,aAAa,CAAC,MAAmB;IACxC,OAAO;QACL,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,oBAAoB,CAAC,YAAY;QACtE,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,oBAAoB,CAAC,cAAc;QAC5E,oBAAoB,EAAE,MAAM,CAAC,oBAAoB,IAAI,oBAAoB,CAAC,oBAAoB;QAC9F,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,oBAAoB,CAAC,SAAS;QAC7D,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,oBAAoB,CAAC,YAAY;QACtE,GAAG,CAAC,MAAM,CAAC,iBAAiB,KAAK,SAAS;YACxC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,EAAE,CAAC;QACpD,GAAG,CAAC,MAAM,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC;KAChG,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW,EAAE,YAAqB;IAChE,uEAAuE;IACvE,+EAA+E;IAC/E,gFAAgF;IAChF,mBAAmB;IACnB,MAAM,KAAK,GAAG,YAAY,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC;IACxC,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,MAAM,CAAC,OAAO;YAAE,OAAO,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,6EAA6E;QAC7E,6EAA6E;QAC7E,0EAA0E;QAC1E,OAAO,aAAa,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,UAAU,GAAG,wBAAwB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAC/D,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IACrC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACrD,OAAO,aAAa,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IACD,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACtD,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,aAAa,CAAC,EAAE,CAAC,CAAC;IAC9C,OAAO,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"yagni-config.js","sourceRoot":"","sources":["../../src/cli/yagni-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EACL,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,wBAAwB,GACzB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAI7D,SAAS,aAAa,CAAC,MAAmB;IACxC,OAAO;QACL,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,oBAAoB,CAAC,YAAY;QACtE,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,oBAAoB,CAAC,cAAc;QAC5E,oBAAoB,EAAE,MAAM,CAAC,oBAAoB,IAAI,oBAAoB,CAAC,oBAAoB;QAC9F,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,oBAAoB,CAAC,YAAY;QACtE,GAAG,CAAC,MAAM,CAAC,iBAAiB,KAAK,SAAS;YACxC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,EAAE,CAAC;QACpD,GAAG,CAAC,MAAM,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC;KAChG,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW,EAAE,YAAqB;IAChE,uEAAuE;IACvE,+EAA+E;IAC/E,gFAAgF;IAChF,mBAAmB;IACnB,MAAM,KAAK,GAAG,YAAY,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC;IACxC,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,MAAM,CAAC,OAAO;YAAE,OAAO,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,6EAA6E;QAC7E,6EAA6E;QAC7E,0EAA0E;QAC1E,OAAO,aAAa,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,UAAU,GAAG,wBAAwB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAC/D,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IACrC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACrD,OAAO,aAAa,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IACD,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACtD,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,aAAa,CAAC,EAAE,CAAC,CAAC;IAC9C,OAAO,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC"}
@@ -3,11 +3,10 @@
3
3
  */
4
4
  import type { SkippedDetector } from '../detectors/types.js';
5
5
  import type { RunPresentation, SignalEnvelope } from '@opensip-cli/contracts';
6
- export declare function buildYagniPresentationLines(envelope: SignalEnvelope, cwd: string, graphMode: string, skippedDetectors: readonly SkippedDetector[], verbose: boolean): string[];
6
+ export declare function buildYagniPresentationLines(envelope: SignalEnvelope, cwd: string, skippedDetectors: readonly SkippedDetector[], verbose: boolean): string[];
7
7
  export declare function buildYagniRunPresentation(input: {
8
8
  readonly envelope: SignalEnvelope;
9
9
  readonly cwd: string;
10
- readonly graphMode: string;
11
10
  readonly skippedDetectors: readonly SkippedDetector[];
12
11
  readonly verbose: boolean;
13
12
  readonly durationMs?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"yagni-presentation.d.ts","sourceRoot":"","sources":["../../src/cli/yagni-presentation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAiB,MAAM,wBAAwB,CAAC;AAqD7F,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,cAAc,EACxB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,SAAS,eAAe,EAAE,EAC5C,OAAO,EAAE,OAAO,GACf,MAAM,EAAE,CA8BV;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAC/C,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,gBAAgB,EAAE,SAAS,eAAe,EAAE,CAAC;IACtD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B,GAAG,eAAe,CAelB"}
1
+ {"version":3,"file":"yagni-presentation.d.ts","sourceRoot":"","sources":["../../src/cli/yagni-presentation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAiB,MAAM,wBAAwB,CAAC;AAqD7F,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,cAAc,EACxB,GAAG,EAAE,MAAM,EACX,gBAAgB,EAAE,SAAS,eAAe,EAAE,EAC5C,OAAO,EAAE,OAAO,GACf,MAAM,EAAE,CA8BV;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAC/C,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,gBAAgB,EAAE,SAAS,eAAe,EAAE,CAAC;IACtD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B,GAAG,eAAe,CAclB"}
@@ -53,8 +53,8 @@ function candidateLines(signals, cwd, verbose) {
53
53
  }
54
54
  return lines;
55
55
  }
56
- export function buildYagniPresentationLines(envelope, cwd, graphMode, skippedDetectors, verbose) {
57
- const summary = buildYagniRunSummary(envelope.signals, graphMode, skippedDetectors);
56
+ export function buildYagniPresentationLines(envelope, cwd, skippedDetectors, verbose) {
57
+ const summary = buildYagniRunSummary(envelope.signals, skippedDetectors);
58
58
  const visibleSignals = verbose
59
59
  ? envelope.signals
60
60
  : envelope.signals.filter((s) => {
@@ -65,7 +65,7 @@ export function buildYagniPresentationLines(envelope, cwd, graphMode, skippedDet
65
65
  const headline = `YAGNI audit: ${String(summary.totalCandidates)} reduction candidates (${String(high)} high, ${String(medium)} medium)`;
66
66
  const ran = envelope.units.length;
67
67
  const skipped = skippedDetectors.length;
68
- const metaLine = `Graph: ${graphMode} · ${String(ran)} detectors ran · ${String(skipped)} skipped`;
68
+ const metaLine = `${String(ran)} detectors ran · ${String(skipped)} skipped`;
69
69
  const lines = [headline, metaLine, ...candidateLines(visibleSignals, cwd, verbose)];
70
70
  if (summary.estimatedTotalLocReduction > 0) {
71
71
  lines.push('', `net: ~${String(summary.estimatedTotalLocReduction)} LOC possible`);
@@ -80,7 +80,7 @@ export function buildYagniPresentationLines(envelope, cwd, graphMode, skippedDet
80
80
  return lines;
81
81
  }
82
82
  export function buildYagniRunPresentation(input) {
83
- const lines = buildYagniPresentationLines(input.envelope, input.cwd, input.graphMode, input.skippedDetectors, input.verbose);
83
+ const lines = buildYagniPresentationLines(input.envelope, input.cwd, input.skippedDetectors, input.verbose);
84
84
  return {
85
85
  type: 'run-presentation',
86
86
  tool: 'yagni',
@@ -1 +1 @@
1
- {"version":3,"file":"yagni-presentation.js","sourceRoot":"","sources":["../../src/cli/yagni-presentation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"yagni-presentation.js","sourceRoot":"","sources":["../../src/cli/yagni-presentation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAOnF,MAAM,wBAAwB,GAA+B,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AAEvF,SAAS,yBAAyB,CAAC,MAAc,EAAE,GAAW;IAC5D,IAAI,MAAM,CAAC,QAAQ,KAAK,EAAE;QAAE,OAAO,WAAW,CAAC;IAC/C,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjE,OAAO,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;AAC3E,CAAC;AAED,SAAS,eAAe,CAAC,MAAc;IACrC,MAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,IAAI,EAAE,QAAQ,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IAC5C,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;IACpD,OAAO,KAAK,MAAM,CAAC,WAAW,CAAC,SAAS,YAAY,GAAG,CAAC;AAC1D,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAc,EAAE,GAAW,EAAE,OAAgB;IACzE,MAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IAClC,MAAM,GAAG,GAAG,yBAAyB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG;QACZ,KAAK,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE;QAC1E,gBAAgB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE;KAC7E,CAAC;IACF,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,4BAA4B,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;IACpE,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,0BAA0B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9D,CAAC;IACD,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,OAA0B,EAAE,GAAW,EAAE,OAAgB;IAC/E,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,UAAU,IAAI,wBAAwB,EAAE,CAAC;QAClD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,UAAU,KAAK,UAAU,CAAC,CAAC;QACtF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAClC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;QACzF,KAAK,MAAM,MAAM,IAAI,MAAM,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,QAAwB,EACxB,GAAW,EACX,gBAA4C,EAC5C,OAAgB;IAEhB,MAAM,OAAO,GAAG,oBAAoB,CAAC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IACzE,MAAM,cAAc,GAAG,OAAO;QAC5B,CAAC,CAAC,QAAQ,CAAC,OAAO;QAClB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YAC5B,MAAM,IAAI,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;YAC9C,OAAO,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,QAAQ,CAAC;QAC9C,CAAC,CAAC,CAAC;IAEP,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IAC9C,MAAM,QAAQ,GAAG,gBAAgB,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,0BAA0B,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;IACzI,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;IAClC,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC;IACxC,MAAM,QAAQ,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,oBAAoB,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;IAE7E,MAAM,KAAK,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC,cAAc,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IAEpF,IAAI,OAAO,CAAC,0BAA0B,GAAG,CAAC,EAAE,CAAC;QAC3C,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,MAAM,CAAC,OAAO,CAAC,0BAA0B,CAAC,eAAe,CAAC,CAAC;IACrF,CAAC;IAED,IAAI,OAAO,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3C,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,oBAAoB,CAAC,CAAC;QACrC,KAAK,MAAM,IAAI,IAAI,gBAAgB,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC;YACpE,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,KAMzC;IACC,MAAM,KAAK,GAAG,2BAA2B,CACvC,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,GAAG,EACT,KAAK,CAAC,gBAAgB,EACtB,KAAK,CAAC,OAAO,CACd,CAAC;IACF,OAAO;QACL,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAA0B,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7F,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;KAC5E,CAAC;AACJ,CAAC"}
@@ -2,14 +2,12 @@
2
2
  * yagni-runner — live-view entry for `opensip yagni` via @opensip-cli/cli-live.
3
3
  */
4
4
  import { type LiveViewContext, type ToolCliContext } from '@opensip-cli/core';
5
- import type { YagniGraphMode } from '../types/yagni-config.js';
6
5
  import type { YagniConfidence } from '../types/yagni-metadata.js';
7
6
  export { YAGNI_LIVE_VIEW_KEY } from '../identity.js';
8
7
  export interface YagniLiveArgs {
9
8
  readonly cwd: string;
10
9
  readonly verbose?: boolean;
11
10
  readonly quiet?: boolean;
12
- readonly graphMode: YagniGraphMode;
13
11
  readonly minConfidence?: YagniConfidence;
14
12
  readonly detectors?: readonly string[];
15
13
  readonly categories?: readonly string[];
@@ -1 +1 @@
1
- {"version":3,"file":"yagni-runner.d.ts","sourceRoot":"","sources":["../../src/cli/yagni-runner.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAC;AAM3B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AASlE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,aAAa,CAAC,EAAE,eAAe,CAAC;IACzC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AA2BD,wBAAsB,eAAe,CACnC,IAAI,EAAE,aAAa,EACnB,GAAG,EAAE,cAAc,EACnB,WAAW,CAAC,EAAE,eAAe,0DAmE9B"}
1
+ {"version":3,"file":"yagni-runner.d.ts","sourceRoot":"","sources":["../../src/cli/yagni-runner.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAC;AAQ3B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAmClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,aAAa,CAAC,EAAE,eAAe,CAAC;IACzC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AA2BD,wBAAsB,eAAe,CACnC,IAAI,EAAE,aAAa,EACnB,GAAG,EAAE,cAAc,EACnB,WAAW,CAAC,EAAE,eAAe,0DAyE9B"}
@@ -4,12 +4,37 @@
4
4
  import { runToolLiveView } from '@opensip-cli/cli-live';
5
5
  import { groupSignalsBySource } from '@opensip-cli/contracts';
6
6
  import { isErrorSignal, currentScope, } from '@opensip-cli/core';
7
+ import { YAGNI_DETECTORS } from '../detectors/registry.js';
7
8
  import { executeYagni } from './execute-yagni.js';
8
9
  import { loadYagniConfig } from './yagni-config.js';
9
10
  import { buildYagniPresentationLines } from './yagni-presentation.js';
10
11
  const YAGNI_TOOL_TITLE = 'YAGNI Audit';
11
12
  const YAGNI_TOOL_DESCRIPTION = 'Scanning for speculative surface to remove.';
12
- const YAGNI_RUNNING_SURFACE = { shape: 'pool', label: 'Running detectors...' };
13
+ /**
14
+ * Friendly checklist row label from a detector slug — drops the `yagni:`
15
+ * namespace and title-cases the kebab tail (`yagni:unused-config-surface` →
16
+ * `Unused Config Surface`).
17
+ */
18
+ function detectorLabel(slug) {
19
+ const name = slug.slice(slug.indexOf(':') + 1);
20
+ return name
21
+ .split('-')
22
+ .map((w) => (w.length === 0 ? w : w[0].toUpperCase() + w.slice(1)))
23
+ .join(' ');
24
+ }
25
+ /**
26
+ * Per-detector checklist (one phase per detector), mirroring graph's staged view.
27
+ * Detectors run serially, so each row spins, completes with its duration, then the
28
+ * next starts; a detector `planDetectors` excludes renders as a skipped row.
29
+ */
30
+ const YAGNI_RUNNING_SURFACE = {
31
+ shape: 'phases',
32
+ stages: YAGNI_DETECTORS.map((d) => ({
33
+ id: d.slug,
34
+ label: detectorLabel(d.slug),
35
+ runningDetail: 'Analyzing project...',
36
+ })),
37
+ };
13
38
  const YAGNI_LOADING_SURFACE = { shape: 'pool', label: 'Loading detectors...' };
14
39
  export { YAGNI_LIVE_VIEW_KEY } from '../identity.js';
15
40
  function rowStatus(unit) {
@@ -50,27 +75,34 @@ export async function renderYagniLive(args, cli, liveContext) {
50
75
  projectPath: args.cwd,
51
76
  walkedUp: currentScope()?.projectContext?.walkedUp,
52
77
  produce: async (emit, helpers) => {
53
- emit({ type: 'stage-start', stage: 'detectors', label: 'Running detectors...' });
54
78
  helpers.setRunning(() => {
55
- // In-process run — progress events flow through emit() directly.
79
+ // In-process run — per-detector phase events flow through emit() directly.
56
80
  });
57
81
  const executeOpts = {
58
82
  cwd: args.cwd,
59
83
  config,
60
- graphMode: args.graphMode,
61
84
  minConfidence: args.minConfidence,
62
85
  detectors: args.detectors,
63
86
  categories: args.categories,
64
87
  includeTests: args.includeTests,
65
88
  pathRoots: args.pathRoots,
66
- onProgress: (completed, total) => {
67
- emit({ type: 'stage-progress', stage: 'detectors', completed, total });
89
+ // Phases live view: one checklist row per detector (declared in
90
+ // YAGNI_RUNNING_SURFACE), driven by the detector lifecycle.
91
+ onDetectorStart: (slug) => {
92
+ emit({ type: 'stage-start', stage: slug, label: detectorLabel(slug) });
93
+ },
94
+ onDetectorDone: (slug, durationMs) => {
95
+ emit({ type: 'stage-done', stage: slug, durationMs });
96
+ },
97
+ onDetectorsSkipped: (slugs) => {
98
+ for (const slug of slugs) {
99
+ emit({ type: 'stage-done', stage: slug, durationMs: 0, detail: 'skipped' });
100
+ }
68
101
  },
69
102
  };
70
103
  const outcome = await executeYagni(executeOpts, cli);
71
- const graphMode = outcome.session.payload.summary.graphMode ?? args.graphMode;
72
104
  const skippedDetectors = outcome.session.payload.summary.skippedDetectors;
73
- const verboseLines = buildYagniPresentationLines(outcome.envelope, args.cwd, graphMode, skippedDetectors, args.verbose === true);
105
+ const verboseLines = buildYagniPresentationLines(outcome.envelope, args.cwd, skippedDetectors, args.verbose === true);
74
106
  return {
75
107
  kind: 'done',
76
108
  done: {
@@ -1 +1 @@
1
- {"version":3,"file":"yagni-runner.js","sourceRoot":"","sources":["../../src/cli/yagni-runner.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"yagni-runner.js","sourceRoot":"","sources":["../../src/cli/yagni-runner.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,13 @@
1
1
  /**
2
- * duplicate-body-candidate — surfaces cross-occurrence duplicate function bodies
3
- * from a graph catalog bodyHash grouping as consolidation candidates.
2
+ * duplicate-body-candidate — flags function bodies that are byte-identical (after comment
3
+ * strip + whitespace normalization) across two or more sites, so they can be consolidated.
4
+ *
5
+ * yagni owns NO detection math (ADR-0064): it builds its own TypeScript inventory
6
+ * (`buildTsInventory`, no `@opensip-cli/graph` dependency) and calls the shared
7
+ * `findDuplicateBodies` from `@opensip-cli/clone-detection` — the SAME implementation +
8
+ * curation policy graph's `graph:duplicated-function-body` rule uses, so the two tools
9
+ * cannot diverge (the cross-tool parity test is the standing guard). yagni adds only the
10
+ * reduction framing + confidence/metadata.
4
11
  */
5
12
  import type { YagniDetector } from './types.js';
6
13
  export declare const duplicateBodyCandidateDetector: YagniDetector;
@@ -1 +1 @@
1
- {"version":3,"file":"duplicate-body-candidate.d.ts","sourceRoot":"","sources":["../../src/detectors/duplicate-body-candidate.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,OAAO,KAAK,EAAE,aAAa,EAA6C,MAAM,YAAY,CAAC;AAuI3F,eAAO,MAAM,8BAA8B,EAAE,aAM5C,CAAC"}
1
+ {"version":3,"file":"duplicate-body-candidate.d.ts","sourceRoot":"","sources":["../../src/detectors/duplicate-body-candidate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAUH,OAAO,KAAK,EAAE,aAAa,EAA6C,MAAM,YAAY,CAAC;AAsI3F,eAAO,MAAM,8BAA8B,EAAE,aAK5C,CAAC"}