@nac3/forge-cli 1.21.4 → 1.23.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.
Files changed (108) hide show
  1. package/dist/chat/bridge.d.ts +43 -1
  2. package/dist/chat/bridge.d.ts.map +1 -1
  3. package/dist/chat/bridge.js +176 -31
  4. package/dist/chat/bridge.js.map +1 -1
  5. package/dist/chat/bridge_inbox.d.ts +143 -0
  6. package/dist/chat/bridge_inbox.d.ts.map +1 -0
  7. package/dist/chat/bridge_inbox.js +219 -0
  8. package/dist/chat/bridge_inbox.js.map +1 -0
  9. package/dist/chat/claude.d.ts +10 -0
  10. package/dist/chat/claude.d.ts.map +1 -1
  11. package/dist/chat/claude.js.map +1 -1
  12. package/dist/chat/panel.d.ts.map +1 -1
  13. package/dist/chat/panel.js +142 -15
  14. package/dist/chat/panel.js.map +1 -1
  15. package/dist/chat/recent_sessions_recap.d.ts.map +1 -1
  16. package/dist/chat/recent_sessions_recap.js +18 -6
  17. package/dist/chat/recent_sessions_recap.js.map +1 -1
  18. package/dist/chat/server.d.ts +1 -1
  19. package/dist/chat/server.d.ts.map +1 -1
  20. package/dist/chat/server.js +346 -53
  21. package/dist/chat/server.js.map +1 -1
  22. package/dist/chat/tools/bridge_verbs.d.ts +10 -0
  23. package/dist/chat/tools/bridge_verbs.d.ts.map +1 -1
  24. package/dist/chat/tools/bridge_verbs.js +66 -3
  25. package/dist/chat/tools/bridge_verbs.js.map +1 -1
  26. package/dist/chat/tools/nac3_invoke.d.ts.map +1 -1
  27. package/dist/chat/tools/nac3_invoke.js +20 -3
  28. package/dist/chat/tools/nac3_invoke.js.map +1 -1
  29. package/dist/chat/tools/pending.d.ts.map +1 -1
  30. package/dist/chat/tools/pending.js +19 -2
  31. package/dist/chat/tools/pending.js.map +1 -1
  32. package/dist/chat/tools.d.ts +6 -0
  33. package/dist/chat/tools.d.ts.map +1 -1
  34. package/dist/chat/tools.js +4 -0
  35. package/dist/chat/tools.js.map +1 -1
  36. package/dist/chat/turn_control.d.ts +2 -0
  37. package/dist/chat/turn_control.d.ts.map +1 -1
  38. package/dist/chat/turn_control.js +30 -1
  39. package/dist/chat/turn_control.js.map +1 -1
  40. package/dist/commands/urazuke.d.ts.map +1 -1
  41. package/dist/commands/urazuke.js +68 -6
  42. package/dist/commands/urazuke.js.map +1 -1
  43. package/dist/core/cost_router.d.ts +7 -0
  44. package/dist/core/cost_router.d.ts.map +1 -1
  45. package/dist/core/cost_router.js +8 -5
  46. package/dist/core/cost_router.js.map +1 -1
  47. package/dist/core/limits_config.d.ts +37 -6
  48. package/dist/core/limits_config.d.ts.map +1 -1
  49. package/dist/core/limits_config.js +74 -8
  50. package/dist/core/limits_config.js.map +1 -1
  51. package/dist/nac3/danger_zone.d.ts +39 -0
  52. package/dist/nac3/danger_zone.d.ts.map +1 -0
  53. package/dist/nac3/danger_zone.js +31 -0
  54. package/dist/nac3/danger_zone.js.map +1 -0
  55. package/dist/nac3/internal_manifest.d.ts.map +1 -1
  56. package/dist/nac3/internal_manifest.js +33 -0
  57. package/dist/nac3/internal_manifest.js.map +1 -1
  58. package/dist/pending/store.d.ts +7 -0
  59. package/dist/pending/store.d.ts.map +1 -1
  60. package/dist/pending/store.js +41 -0
  61. package/dist/pending/store.js.map +1 -1
  62. package/dist/urazuke/catalog.d.ts +1 -1
  63. package/dist/urazuke/catalog.d.ts.map +1 -1
  64. package/dist/urazuke/catalog.js.map +1 -1
  65. package/dist/urazuke/gate.d.ts.map +1 -1
  66. package/dist/urazuke/gate.js +98 -6
  67. package/dist/urazuke/gate.js.map +1 -1
  68. package/dist/urazuke/gates_data.d.ts +8 -1
  69. package/dist/urazuke/gates_data.d.ts.map +1 -1
  70. package/dist/urazuke/gates_data.js +25 -3
  71. package/dist/urazuke/gates_data.js.map +1 -1
  72. package/dist/urazuke/heuristics.d.ts +108 -0
  73. package/dist/urazuke/heuristics.d.ts.map +1 -0
  74. package/dist/urazuke/heuristics.js +248 -0
  75. package/dist/urazuke/heuristics.js.map +1 -0
  76. package/dist/urazuke/manual_cases.d.ts +31 -0
  77. package/dist/urazuke/manual_cases.d.ts.map +1 -0
  78. package/dist/urazuke/manual_cases.js +87 -0
  79. package/dist/urazuke/manual_cases.js.map +1 -0
  80. package/dist/urazuke/project_config.d.ts +25 -0
  81. package/dist/urazuke/project_config.d.ts.map +1 -0
  82. package/dist/urazuke/project_config.js +65 -0
  83. package/dist/urazuke/project_config.js.map +1 -0
  84. package/dist/urazuke/quality.d.ts +0 -8
  85. package/dist/urazuke/quality.d.ts.map +1 -1
  86. package/dist/urazuke/quality.js +4 -29
  87. package/dist/urazuke/quality.js.map +1 -1
  88. package/dist/urazuke/scoreboard.d.ts +85 -0
  89. package/dist/urazuke/scoreboard.d.ts.map +1 -0
  90. package/dist/urazuke/scoreboard.js +260 -0
  91. package/dist/urazuke/scoreboard.js.map +1 -0
  92. package/dist/version.d.ts +1 -1
  93. package/dist/version.js +1 -1
  94. package/dist/workflow/orchestrator.d.ts +7 -3
  95. package/dist/workflow/orchestrator.d.ts.map +1 -1
  96. package/dist/workflow/orchestrator.js +1 -1
  97. package/dist/workflow/orchestrator.js.map +1 -1
  98. package/package.json +1 -1
  99. package/src/i18n/catalogs/ar.json +558 -550
  100. package/src/i18n/catalogs/de.json +558 -550
  101. package/src/i18n/catalogs/en.json +558 -550
  102. package/src/i18n/catalogs/es.json +558 -550
  103. package/src/i18n/catalogs/fr.json +558 -550
  104. package/src/i18n/catalogs/hi.json +558 -550
  105. package/src/i18n/catalogs/it.json +558 -550
  106. package/src/i18n/catalogs/ja.json +558 -550
  107. package/src/i18n/catalogs/pt.json +558 -550
  108. package/src/i18n/catalogs/zh.json +558 -550
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manual_cases.js","sourceRoot":"","sources":["../../src/urazuke/manual_cases.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * PROJECT CONFIGURATION: validation and semantics.
3
+ *
4
+ * A project's .forge/project-config.json can declare switches to
5
+ * turn off rules of the method. Each off-switch requires a 4-field
6
+ * audit record (rule, reason, authorized_by, review_date), and
7
+ * an evaluator can only read a rule as off if the record is complete.
8
+ *
9
+ * ASCII-only.
10
+ */
11
+ export interface SwitchOffRecord {
12
+ rule: string;
13
+ reason: string;
14
+ authorized_by: string;
15
+ review_date: string;
16
+ }
17
+ export interface ValidationResult {
18
+ ok: boolean;
19
+ invalid: string[];
20
+ problems: string[];
21
+ }
22
+ export declare function isSwitchOffValid(record: unknown): record is SwitchOffRecord;
23
+ export declare function validateSwitchOffRecord(records: unknown): ValidationResult;
24
+ export declare function isRuleSwitchedOff(rule: string, switched_off: string[] | undefined, switch_off_record: unknown): boolean;
25
+ //# sourceMappingURL=project_config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project_config.d.ts","sourceRoot":"","sources":["../../src/urazuke/project_config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAQD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,eAAe,CAM3E;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,gBAAgB,CAkC1E;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EAAE,GAAG,SAAS,EAClC,iBAAiB,EAAE,OAAO,GACzB,OAAO,CAQT"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * PROJECT CONFIGURATION: validation and semantics.
3
+ *
4
+ * A project's .forge/project-config.json can declare switches to
5
+ * turn off rules of the method. Each off-switch requires a 4-field
6
+ * audit record (rule, reason, authorized_by, review_date), and
7
+ * an evaluator can only read a rule as off if the record is complete.
8
+ *
9
+ * ASCII-only.
10
+ */
11
+ const REQUIRED_FIELDS = ['rule', 'reason', 'authorized_by', 'review_date'];
12
+ function isRecord(v) {
13
+ return v != null && typeof v === 'object' && !Array.isArray(v);
14
+ }
15
+ export function isSwitchOffValid(record) {
16
+ if (!isRecord(record))
17
+ return false;
18
+ for (const field of REQUIRED_FIELDS) {
19
+ if (typeof record[field] !== 'string')
20
+ return false;
21
+ }
22
+ return true;
23
+ }
24
+ export function validateSwitchOffRecord(records) {
25
+ const invalid = [];
26
+ const problems = [];
27
+ const input = Array.isArray(records) ? records : [];
28
+ for (const rec of input) {
29
+ if (!isRecord(rec)) {
30
+ /* Reading `.rule` off this is what used to throw: a null left behind
31
+ * by a hand-edited config crashed the validator instead of being
32
+ * reported as the invalid entry it is. */
33
+ invalid.push('?');
34
+ problems.push('record is not an object: ' + JSON.stringify(rec ?? null));
35
+ continue;
36
+ }
37
+ const rule = rec.rule;
38
+ if (typeof rule !== 'string') {
39
+ invalid.push('?');
40
+ problems.push('rule is not a string');
41
+ continue;
42
+ }
43
+ for (const field of REQUIRED_FIELDS) {
44
+ if (typeof rec[field] !== 'string') {
45
+ invalid.push(rule);
46
+ problems.push(`rule ${rule}: ${field} is missing or not a string`);
47
+ break;
48
+ }
49
+ }
50
+ }
51
+ return {
52
+ ok: invalid.length === 0,
53
+ invalid,
54
+ problems,
55
+ };
56
+ }
57
+ export function isRuleSwitchedOff(rule, switched_off, switch_off_record) {
58
+ const list = switched_off ?? [];
59
+ if (!list.includes(rule))
60
+ return false;
61
+ const records = Array.isArray(switch_off_record) ? switch_off_record : [];
62
+ const recordForRule = records.find((r) => isRecord(r) && r.rule === rule);
63
+ return isSwitchOffValid(recordForRule);
64
+ }
65
+ //# sourceMappingURL=project_config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project_config.js","sourceRoot":"","sources":["../../src/urazuke/project_config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAeH,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,CAAC,CAAC;AAE3E,SAAS,QAAQ,CAAC,CAAU;IAC1B,OAAO,CAAC,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAe;IAC9C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IACpC,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;QACpC,IAAI,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;IACtD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAEpD,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB;;sDAE0C;YAC1C,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClB,QAAQ,CAAC,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC;YACzE,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACtB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClB,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YACtC,SAAS;QACX,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;YACpC,IAAI,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACnC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnB,QAAQ,CAAC,IAAI,CAAC,QAAQ,IAAI,KAAK,KAAK,6BAA6B,CAAC,CAAC;gBACnE,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC;QACxB,OAAO;QACP,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,IAAY,EACZ,YAAkC,EAClC,iBAA0B;IAE1B,MAAM,IAAI,GAAG,YAAY,IAAI,EAAE,CAAC;IAChC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAEvC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAE1E,OAAO,gBAAgB,CAAC,aAAa,CAAC,CAAC;AACzC,CAAC"}
@@ -2,9 +2,6 @@ import { type StackAdapter } from './stacks.js';
2
2
  export interface QualityLimits {
3
3
  max_file_lines: number;
4
4
  max_function_lines: number;
5
- max_complexity: number;
6
- /** Lines in a duplicated block to count it. */
7
- dup_block_lines: number;
8
5
  }
9
6
  export declare const DEFAULT_LIMITS: QualityLimits;
10
7
  export interface Violation {
@@ -20,8 +17,6 @@ export interface NativeMeasure {
20
17
  violations: Violation[];
21
18
  max_file_lines: number;
22
19
  max_function_lines: number;
23
- max_complexity: number;
24
- duplicated_blocks: number;
25
20
  }
26
21
  interface FnSpan {
27
22
  name: string;
@@ -39,14 +34,12 @@ export interface Ratchet {
39
34
  coverage_pct?: number;
40
35
  mutation_score?: number;
41
36
  violations?: number;
42
- duplicated_blocks?: number;
43
37
  updated_at: number;
44
38
  history: Array<{
45
39
  at: number;
46
40
  coverage_pct?: number;
47
41
  mutation_score?: number;
48
42
  violations: number;
49
- duplicated_blocks: number;
50
43
  }>;
51
44
  }
52
45
  export declare function ratchetPath(root: string): string;
@@ -63,7 +56,6 @@ export declare function applyRatchet(prev: Ratchet, m: {
63
56
  coverage_pct?: number;
64
57
  mutation_score?: number;
65
58
  violations: number;
66
- duplicated_blocks: number;
67
59
  }, now?: number): RatchetVerdict;
68
60
  export interface QualityCheckResult {
69
61
  stack: StackAdapter;
@@ -1 +1 @@
1
- {"version":3,"file":"quality.d.ts","sourceRoot":"","sources":["../../src/urazuke/quality.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quality.d.ts","sourceRoot":"","sources":["../../src/urazuke/quality.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@
18
18
  import fs from 'node:fs/promises';
19
19
  import path from 'node:path';
20
20
  import { detectStack, readCoveragePct, readMutationScore } from './stacks.js';
21
- export const DEFAULT_LIMITS = { max_file_lines: 300, max_function_lines: 40, max_complexity: 10, dup_block_lines: 8 };
21
+ export const DEFAULT_LIMITS = { max_file_lines: 300, max_function_lines: 40 };
22
22
  /* ---------------- scanning ---------------- */
23
23
  async function walk(root, a) {
24
24
  const out = [];
@@ -121,27 +121,9 @@ export async function measureNative(root, a, limits = DEFAULT_LIMITS) {
121
121
  maxCx = Math.max(maxCx, fn.complexity);
122
122
  if (len > limits.max_function_lines)
123
123
  violations.push({ kind: 'function_lines', where: rel + ':' + fn.start + ' ' + fn.name, value: len, limit: limits.max_function_lines });
124
- if (fn.complexity > limits.max_complexity)
125
- violations.push({ kind: 'complexity', where: rel + ':' + fn.start + ' ' + fn.name, value: fn.complexity, limit: limits.max_complexity });
126
- }
127
- const norm = code.map(normalise).filter((l) => l.length > 12);
128
- for (let i = 0; i + limits.dup_block_lines <= norm.length; i++) {
129
- const key = norm.slice(i, i + limits.dup_block_lines).join('\n');
130
- const arr = blocks.get(key) ?? [];
131
- arr.push(rel + ':' + (i + 1));
132
- blocks.set(key, arr);
133
- }
134
- }
135
- let dup = 0;
136
- for (const [, where] of blocks) {
137
- const distinctFiles = new Set(where.map((w) => w.split(':')[0]));
138
- if (where.length > 1 && (distinctFiles.size > 1 || where.length > 2)) {
139
- dup += 1;
140
- if (violations.filter((v) => v.kind === 'duplication').length < 50)
141
- violations.push({ kind: 'duplication', where: where.slice(0, 3).join(' = '), value: where.length, limit: 1 });
142
124
  }
143
125
  }
144
- return { files: files.length, lines, functions, violations, max_file_lines: maxFile, max_function_lines: maxFn, max_complexity: maxCx, duplicated_blocks: dup };
126
+ return { files: files.length, lines, functions, violations, max_file_lines: maxFile, max_function_lines: maxFn };
145
127
  }
146
128
  export function ratchetPath(root) { return path.join(root, '.forge', 'quality-ratchet.json'); }
147
129
  export async function readRatchet(root) {
@@ -167,16 +149,13 @@ export function applyRatchet(prev, m, now = Date.now()) {
167
149
  reasons.push('mutation score dropped ' + prev.mutation_score + ' -> ' + m.mutation_score);
168
150
  if (prev.violations != null && m.violations > prev.violations)
169
151
  reasons.push('violations rose ' + prev.violations + ' -> ' + m.violations);
170
- if (prev.duplicated_blocks != null && m.duplicated_blocks > prev.duplicated_blocks)
171
- reasons.push('duplicated blocks rose ' + prev.duplicated_blocks + ' -> ' + m.duplicated_blocks);
172
152
  const ok = reasons.length === 0;
173
153
  const next = {
174
154
  version: 1, updated_at: now,
175
155
  coverage_pct: ok ? Math.max(prev.coverage_pct ?? -1, m.coverage_pct ?? -1) : prev.coverage_pct,
176
156
  mutation_score: ok ? Math.max(prev.mutation_score ?? -1, m.mutation_score ?? -1) : prev.mutation_score,
177
157
  violations: ok ? Math.min(prev.violations ?? Infinity, m.violations) : prev.violations,
178
- duplicated_blocks: ok ? Math.min(prev.duplicated_blocks ?? Infinity, m.duplicated_blocks) : prev.duplicated_blocks,
179
- history: [...prev.history.slice(-199), { at: now, ...(m.coverage_pct != null ? { coverage_pct: m.coverage_pct } : {}), ...(m.mutation_score != null ? { mutation_score: m.mutation_score } : {}), violations: m.violations, duplicated_blocks: m.duplicated_blocks }],
158
+ history: [...prev.history.slice(-199), { at: now, ...(m.coverage_pct != null ? { coverage_pct: m.coverage_pct } : {}), ...(m.mutation_score != null ? { mutation_score: m.mutation_score } : {}), violations: m.violations }],
180
159
  };
181
160
  if (next.coverage_pct === -1)
182
161
  delete next.coverage_pct;
@@ -184,8 +163,6 @@ export function applyRatchet(prev, m, now = Date.now()) {
184
163
  delete next.mutation_score;
185
164
  if (next.violations === Infinity)
186
165
  delete next.violations;
187
- if (next.duplicated_blocks === Infinity)
188
- delete next.duplicated_blocks;
189
166
  return { ok, reasons, next };
190
167
  }
191
168
  export async function runQualityCheck(root, opts = {}) {
@@ -215,7 +192,7 @@ export async function runQualityCheck(root, opts = {}) {
215
192
  mutation_score = (await readMutationScore(root, stack, r.output))?.score;
216
193
  }
217
194
  const prev = await readRatchet(root);
218
- const ratchet = applyRatchet(prev, { ...(coverage_pct != null ? { coverage_pct } : {}), ...(mutation_score != null ? { mutation_score } : {}), violations: native.violations.length, duplicated_blocks: native.duplicated_blocks });
195
+ const ratchet = applyRatchet(prev, { ...(coverage_pct != null ? { coverage_pct } : {}), ...(mutation_score != null ? { mutation_score } : {}), violations: native.violations.length });
219
196
  const lintOk = lint.every((l) => l.exit_code === 0);
220
197
  const ok = lintOk && ratchet.ok;
221
198
  if (ok && opts.persist !== false)
@@ -247,8 +224,6 @@ export function renderCodeQuality(r, prevBody) {
247
224
  '|---|---|---|---|',
248
225
  '| Lineas por archivo (max) | ' + r.limits.max_file_lines + ' | ' + r.native.max_file_lines + ' | ' + (by('file_lines').length ? by('file_lines').length + ' archivos pasan el limite' : 'ok') + ' |',
249
226
  '| Lineas por funcion (max) | ' + r.limits.max_function_lines + ' | ' + r.native.max_function_lines + ' | ' + (by('function_lines').length ? by('function_lines').length + ' funciones pasan el limite' : 'ok') + ' |',
250
- '| Complejidad por funcion (max) | ' + r.limits.max_complexity + ' | ' + r.native.max_complexity + ' | ' + (by('complexity').length ? by('complexity').length + ' funciones pasan el limite' : 'ok') + ' |',
251
- '| Bloques duplicados (' + r.limits.dup_block_lines + ' lineas) | 0 | ' + r.native.duplicated_blocks + ' | ' + (r.native.duplicated_blocks ? 'hay duplicacion' : 'ok') + ' |',
252
227
  '| Cobertura de lineas (%) | piso ' + (r.ratchet.next.coverage_pct ?? '-') + ' | ' + (r.coverage_pct ?? '-') + ' | ' + (r.coverage_pct != null ? 'trinquete' : 'sin medir') + ' |',
253
228
  '| Puntaje de mutacion (%) | piso ' + (r.ratchet.next.mutation_score ?? '-') + ' | ' + (r.mutation_score ?? '-') + ' | ' + (r.mutation_score != null ? 'trinquete' : 'sin medir') + ' |',
254
229
  '| Lint / formato | 0 fallos | ' + r.lint.filter((l) => l.exit_code !== 0).length + ' fallos | ' + (r.lint.every((l) => l.exit_code === 0) ? 'ok' : 'rojo') + ' |',
@@ -1 +1 @@
1
- {"version":3,"file":"quality.js","sourceRoot":"","sources":["../../src/urazuke/quality.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quality.js","sourceRoot":"","sources":["../../src/urazuke/quality.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ import type { Ruleset, SwitchOffRecord, ThresholdView } from './heuristics.js';
2
+ export interface Figures {
3
+ compliance: number;
4
+ gate_coverage: number;
5
+ }
6
+ export interface FingerprintParts {
7
+ catalog_version: string;
8
+ rules_active: number;
9
+ rules_switched_off: number;
10
+ adapter: string | null;
11
+ tool_versions: Record<string, string>;
12
+ }
13
+ export interface HumanVerdictView {
14
+ id: string;
15
+ severity: string;
16
+ judged_by?: string;
17
+ at?: string;
18
+ note?: string;
19
+ }
20
+ export interface Scoreboard {
21
+ /** The binary verdict. It, and not the percentage, is what closes a
22
+ * block (`closes_blocks: false` on the figures). */
23
+ verdict: 'green' | 'red';
24
+ /** Why it is red, in the order a reader needs it. Empty when green. */
25
+ verdict_because: string[];
26
+ /** Absent when the ruleset is invalid: `invalid_ruleset_emits_no_figures`. */
27
+ figures?: Figures;
28
+ rules_declared: number;
29
+ rules_active: number;
30
+ rules_switched_off: number;
31
+ rules_out_of_scope: number;
32
+ /** Active AND inside the percentage: the denominator actually used. */
33
+ rules_in_percentage: number;
34
+ rules_passing: number;
35
+ /** Active, inside the percentage, and nobody could measure them. */
36
+ rules_not_measured: number;
37
+ switched_off: SwitchOffRecord[];
38
+ group_off: string[];
39
+ /** The groups a reader must not see as fulfilled, whatever the figures
40
+ * say (`group_switched_off: never read as fulfilled`). */
41
+ never_fulfilled: string[];
42
+ human_passed: HumanVerdictView[];
43
+ human_failed: HumanVerdictView[];
44
+ human_awaiting: HumanVerdictView[];
45
+ thresholds: ThresholdView[];
46
+ could_not_verify: string[];
47
+ problems: string[];
48
+ fingerprint: string;
49
+ fingerprint_parts: FingerprintParts;
50
+ }
51
+ export declare function scoreboardOf(rs: Ruleset): Scoreboard;
52
+ export interface ComplianceMark {
53
+ compliance: number;
54
+ at: number;
55
+ fingerprint: string;
56
+ }
57
+ /** The decision that allows compliance to go down. Same three fields the
58
+ * method asks of any exception minus the rule (this is about the figure,
59
+ * not about one rule): a reason, who authorised it and when it is
60
+ * reviewed. The field NAME this record lives under is not published by the
61
+ * method, so Forge keeps it in its own file and says so rather than
62
+ * writing an invented key into the method's namespace. */
63
+ export interface ComplianceDecision {
64
+ reason: string;
65
+ authorized_by: string;
66
+ review_date: string;
67
+ }
68
+ export interface ComplianceRatchetVerdict {
69
+ ok: boolean;
70
+ reasons: string[];
71
+ next: ComplianceMark;
72
+ }
73
+ export declare function applyComplianceRatchet(prev: ComplianceMark | undefined, now: {
74
+ compliance: number;
75
+ fingerprint: string;
76
+ at?: number;
77
+ }, decision: ComplianceDecision | undefined): ComplianceRatchetVerdict;
78
+ export declare function scoreboardMarkPath(root: string): string;
79
+ export declare function readComplianceMark(root: string): Promise<ComplianceMark | undefined>;
80
+ export declare function writeComplianceMark(root: string, mark: ComplianceMark, history?: ComplianceMark[]): Promise<void>;
81
+ /** The report, in the order the method publishes (`report_order`): the
82
+ * binary verdict, the two figures, what is switched off and until when,
83
+ * and the movement against the previous block with its cause. */
84
+ export declare function renderHeuristicsReport(sb: Scoreboard, prev?: ComplianceMark): string;
85
+ //# sourceMappingURL=scoreboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scoreboard.d.ts","sourceRoot":"","sources":["../../src/urazuke/scoreboard.ts"],"names":[],"mappings":"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"}