@nac3/forge-cli 1.21.3 → 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 (137) 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 +148 -16
  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 +27 -4
  31. package/dist/chat/tools/pending.js.map +1 -1
  32. package/dist/chat/tools/urazuke.d.ts.map +1 -1
  33. package/dist/chat/tools/urazuke.js +7 -3
  34. package/dist/chat/tools/urazuke.js.map +1 -1
  35. package/dist/chat/tools.d.ts +6 -0
  36. package/dist/chat/tools.d.ts.map +1 -1
  37. package/dist/chat/tools.js +4 -0
  38. package/dist/chat/tools.js.map +1 -1
  39. package/dist/chat/turn_control.d.ts +2 -0
  40. package/dist/chat/turn_control.d.ts.map +1 -1
  41. package/dist/chat/turn_control.js +30 -1
  42. package/dist/chat/turn_control.js.map +1 -1
  43. package/dist/commands/pending.d.ts.map +1 -1
  44. package/dist/commands/pending.js +4 -2
  45. package/dist/commands/pending.js.map +1 -1
  46. package/dist/commands/urazuke.d.ts.map +1 -1
  47. package/dist/commands/urazuke.js +206 -16
  48. package/dist/commands/urazuke.js.map +1 -1
  49. package/dist/core/cost_router.d.ts +7 -0
  50. package/dist/core/cost_router.d.ts.map +1 -1
  51. package/dist/core/cost_router.js +8 -5
  52. package/dist/core/cost_router.js.map +1 -1
  53. package/dist/core/limits_config.d.ts +37 -6
  54. package/dist/core/limits_config.d.ts.map +1 -1
  55. package/dist/core/limits_config.js +74 -8
  56. package/dist/core/limits_config.js.map +1 -1
  57. package/dist/core/whats_new.d.ts.map +1 -1
  58. package/dist/core/whats_new.js +12 -0
  59. package/dist/core/whats_new.js.map +1 -1
  60. package/dist/nac3/danger_zone.d.ts +39 -0
  61. package/dist/nac3/danger_zone.d.ts.map +1 -0
  62. package/dist/nac3/danger_zone.js +31 -0
  63. package/dist/nac3/danger_zone.js.map +1 -0
  64. package/dist/nac3/internal_manifest.d.ts.map +1 -1
  65. package/dist/nac3/internal_manifest.js +33 -0
  66. package/dist/nac3/internal_manifest.js.map +1 -1
  67. package/dist/pending/store.d.ts +7 -0
  68. package/dist/pending/store.d.ts.map +1 -1
  69. package/dist/pending/store.js +41 -0
  70. package/dist/pending/store.js.map +1 -1
  71. package/dist/urazuke/catalog.d.ts +1 -1
  72. package/dist/urazuke/catalog.d.ts.map +1 -1
  73. package/dist/urazuke/catalog.js.map +1 -1
  74. package/dist/urazuke/current.d.ts +2 -2
  75. package/dist/urazuke/current.d.ts.map +1 -1
  76. package/dist/urazuke/current.js +32 -12
  77. package/dist/urazuke/current.js.map +1 -1
  78. package/dist/urazuke/gate.d.ts +45 -7
  79. package/dist/urazuke/gate.d.ts.map +1 -1
  80. package/dist/urazuke/gate.js +190 -20
  81. package/dist/urazuke/gate.js.map +1 -1
  82. package/dist/urazuke/gates_data.d.ts +170 -0
  83. package/dist/urazuke/gates_data.d.ts.map +1 -1
  84. package/dist/urazuke/gates_data.js +98 -5
  85. package/dist/urazuke/gates_data.js.map +1 -1
  86. package/dist/urazuke/gates_ledger.d.ts +75 -0
  87. package/dist/urazuke/gates_ledger.d.ts.map +1 -0
  88. package/dist/urazuke/gates_ledger.js +183 -0
  89. package/dist/urazuke/gates_ledger.js.map +1 -0
  90. package/dist/urazuke/gates_pull.d.ts +97 -0
  91. package/dist/urazuke/gates_pull.d.ts.map +1 -0
  92. package/dist/urazuke/gates_pull.js +303 -0
  93. package/dist/urazuke/gates_pull.js.map +1 -0
  94. package/dist/urazuke/heuristics.d.ts +108 -0
  95. package/dist/urazuke/heuristics.d.ts.map +1 -0
  96. package/dist/urazuke/heuristics.js +248 -0
  97. package/dist/urazuke/heuristics.js.map +1 -0
  98. package/dist/urazuke/manual_cases.d.ts +31 -0
  99. package/dist/urazuke/manual_cases.d.ts.map +1 -0
  100. package/dist/urazuke/manual_cases.js +87 -0
  101. package/dist/urazuke/manual_cases.js.map +1 -0
  102. package/dist/urazuke/project_config.d.ts +25 -0
  103. package/dist/urazuke/project_config.d.ts.map +1 -0
  104. package/dist/urazuke/project_config.js +65 -0
  105. package/dist/urazuke/project_config.js.map +1 -0
  106. package/dist/urazuke/quality.d.ts +0 -8
  107. package/dist/urazuke/quality.d.ts.map +1 -1
  108. package/dist/urazuke/quality.js +4 -29
  109. package/dist/urazuke/quality.js.map +1 -1
  110. package/dist/urazuke/retro.d.ts.map +1 -1
  111. package/dist/urazuke/retro.js +4 -1
  112. package/dist/urazuke/retro.js.map +1 -1
  113. package/dist/urazuke/scoreboard.d.ts +85 -0
  114. package/dist/urazuke/scoreboard.d.ts.map +1 -0
  115. package/dist/urazuke/scoreboard.js +260 -0
  116. package/dist/urazuke/scoreboard.js.map +1 -0
  117. package/dist/urazuke/section.d.ts +2 -2
  118. package/dist/urazuke/section.d.ts.map +1 -1
  119. package/dist/urazuke/section.js +31 -6
  120. package/dist/urazuke/section.js.map +1 -1
  121. package/dist/version.d.ts +1 -1
  122. package/dist/version.js +1 -1
  123. package/dist/workflow/orchestrator.d.ts +9 -0
  124. package/dist/workflow/orchestrator.d.ts.map +1 -1
  125. package/dist/workflow/orchestrator.js +17 -16
  126. package/dist/workflow/orchestrator.js.map +1 -1
  127. package/package.json +1 -1
  128. package/src/i18n/catalogs/ar.json +558 -550
  129. package/src/i18n/catalogs/de.json +558 -550
  130. package/src/i18n/catalogs/en.json +558 -550
  131. package/src/i18n/catalogs/es.json +558 -550
  132. package/src/i18n/catalogs/fr.json +558 -550
  133. package/src/i18n/catalogs/hi.json +558 -550
  134. package/src/i18n/catalogs/it.json +558 -550
  135. package/src/i18n/catalogs/ja.json +558 -550
  136. package/src/i18n/catalogs/pt.json +558 -550
  137. package/src/i18n/catalogs/zh.json +558 -550
@@ -241,6 +241,45 @@ function publishedStepToResolved(s) {
241
241
  evaluators: evaluatorsOf(s.evaluators),
242
242
  };
243
243
  }
244
+ /** Top-level keys this resolver gives a name of its own to. Everything else
245
+ * goes to `extras`, verbatim. */
246
+ const NAMED_KEYS = new Set([
247
+ 'schema_version', 'catalog_version', 'content_hash', 'steps', 'stations',
248
+ 'evaluators', 'heuristics', 'adapters', 'project_config', 'method_identity',
249
+ 'what', 'generated_at', 'git_commit', 'git_commit_note', 'source', 'license',
250
+ 'frozen_at', 'frozen_from', 'frozen_reason', 'frozen_ledger',
251
+ ]);
252
+ /** WHICH version of the method a file pins.
253
+ *
254
+ * Read from the file's own `method_identity` when it carries one (a freeze
255
+ * written by this Forge always does). Otherwise derived, and the only
256
+ * derivation that is honest: a file that came from the method carries a
257
+ * `catalog_version` the method issued and a hash we recomputed, so it IS
258
+ * declared; a file that carries the compiled catalogue's own version string
259
+ * declares nothing the method can name. */
260
+ export function methodIdentityOf(file, hash) {
261
+ const raw = file['method_identity'];
262
+ if (raw && typeof raw === 'object' && typeof raw.declared === 'boolean') {
263
+ const m = raw;
264
+ return {
265
+ declared: m.declared,
266
+ catalog_version: m.declared ? (m.catalog_version ?? file.catalog_version) : null,
267
+ content_hash: m.declared ? (m.content_hash ?? hash) : null,
268
+ ...(m.why ? { why: m.why } : {}),
269
+ };
270
+ }
271
+ if (file.catalog_version === FORGE_COMPILED_GATES_VERSION || file.catalog_version.startsWith('forge-')) {
272
+ return {
273
+ declared: false,
274
+ catalog_version: null,
275
+ content_hash: null,
276
+ why: 'this definition is the catalogue compiled into Forge (' + file.catalog_version
277
+ + '): it is not a version of the method, it is not recorded in the method version ledger,'
278
+ + ' and nothing can be audited against a source other than this installation.',
279
+ };
280
+ }
281
+ return { declared: true, catalog_version: file.catalog_version, content_hash: hash };
282
+ }
244
283
  /** The published definition, in the resolved shape. */
245
284
  export function publishedToResolved(file, source, hash) {
246
285
  const notices = [];
@@ -250,6 +289,14 @@ export function publishedToResolved(file, source, hash) {
250
289
  + 'Nothing is approximated -- an evaluator this installation does not implement is reported as declared, not measured.');
251
290
  }
252
291
  const declared = (file.evaluators ?? []).map((e) => e.name).filter((n) => typeof n === 'string').sort();
292
+ const bag = file;
293
+ const extras = {};
294
+ for (const k of Object.keys(bag))
295
+ if (!NAMED_KEYS.has(k))
296
+ extras[k] = bag[k];
297
+ const heuristics = bag['heuristics'];
298
+ const adapters = bag['adapters'];
299
+ const project_config = bag['project_config'];
253
300
  return {
254
301
  source,
255
302
  version: file.catalog_version,
@@ -258,6 +305,11 @@ export function publishedToResolved(file, source, hash) {
258
305
  steps: file.steps.map(publishedStepToResolved),
259
306
  stations: (file.stations ?? []).map(publishedStepToResolved),
260
307
  declared_evaluators: declared,
308
+ method_identity: methodIdentityOf(file, hash),
309
+ ...(heuristics ? { heuristics } : {}),
310
+ ...(adapters ? { adapters } : {}),
311
+ ...(project_config ? { project_config } : {}),
312
+ extras,
261
313
  notices,
262
314
  };
263
315
  }
@@ -295,9 +347,23 @@ export function compiledGatesResolved() {
295
347
  ...URAZUKE_STEPS.map((s) => s.evaluator),
296
348
  ...URAZUKE_LEGACY_STATIONS.map((s) => s.evaluator),
297
349
  ])].sort(),
350
+ method_identity: COMPILED_METHOD_IDENTITY,
351
+ extras: {},
298
352
  notices: [],
299
353
  };
300
354
  }
355
+ /** The compiled catalogue declares NO version of the method, and says so.
356
+ * It is the honest reading: `forge-compiled/base-schema-1` is a string this
357
+ * tool invented for its own base, and the method's version ledger has no
358
+ * entry for it. */
359
+ const COMPILED_METHOD_IDENTITY = {
360
+ declared: false,
361
+ catalog_version: null,
362
+ content_hash: null,
363
+ why: 'the catalogue compiled into this Forge (' + FORGE_COMPILED_GATES_VERSION + ') is not a version of'
364
+ + ' the method: the method cannot name it and the append-only version ledger does not record it,'
365
+ + ' so it cannot be audited against any source other than this installation.',
366
+ };
301
367
  export async function readFrozenGates(projectRoot) {
302
368
  let text;
303
369
  try {
@@ -354,8 +420,13 @@ export function compiledAsPublishedFile() {
354
420
  evaluators: s.evaluators.map((e) => ({ name: e.name, since_schema: e.since_schema, required: e.required })),
355
421
  })),
356
422
  };
357
- const covers = ['schema_version', 'catalog_version', 'evaluators', 'steps', 'stations'];
358
- const excludes = ['content_hash', 'what', 'frozen_at', 'frozen_from'];
423
+ /* The identity goes INSIDE the seal. A provenance claim nobody protects is
424
+ * a claim anybody can edit: a frozen copy whose `method_identity` said
425
+ * "declared: true, 2026.10.6" after a hand edit would be read as audited
426
+ * against the ledger when nothing of the sort happened. */
427
+ body['method_identity'] = COMPILED_METHOD_IDENTITY;
428
+ const covers = ['schema_version', 'catalog_version', 'evaluators', 'steps', 'stations', 'method_identity'];
429
+ const excludes = ['content_hash', 'what', 'frozen_at', 'frozen_from', 'frozen_reason', 'frozen_ledger'];
359
430
  const payload = {};
360
431
  for (const k of covers)
361
432
  payload[k] = body[k];
@@ -386,15 +457,33 @@ export function compiledAsPublishedFile() {
386
457
  * refused frozen copy does NOT promote the portal and does not fail the
387
458
  * read: it falls back to the compiled catalogue, which is the safe state
388
459
  * (nothing can tighten without an install), and it says so. */
460
+ export async function readProjectConfig(projectRoot) {
461
+ const configPath = path.join(projectRoot, '.forge', 'project-settings.json');
462
+ try {
463
+ const raw = await fs.readFile(configPath, 'utf-8');
464
+ return JSON.parse(raw);
465
+ }
466
+ catch {
467
+ return undefined;
468
+ }
469
+ }
389
470
  export async function resolveGates(projectRoot) {
471
+ let projectConfig;
390
472
  if (projectRoot) {
473
+ projectConfig = await readProjectConfig(projectRoot);
391
474
  const frozen = await readFrozenGates(projectRoot);
392
- if (frozen.gates)
393
- return frozen.gates;
475
+ if (frozen.gates) {
476
+ const gates = frozen.gates;
477
+ return {
478
+ ...gates,
479
+ ...(projectConfig ? { project_settings: projectConfig } : {}),
480
+ };
481
+ }
394
482
  if (frozen.refused?.length) {
395
483
  const base = compiledGatesResolved();
396
484
  return {
397
485
  ...base,
486
+ ...(projectConfig ? { project_settings: projectConfig } : {}),
398
487
  notices: [
399
488
  'the frozen gate definition of this project was REFUSED and the compiled catalogue is'
400
489
  + ' judging instead: ' + frozen.refused.join('; ')
@@ -404,7 +493,11 @@ export async function resolveGates(projectRoot) {
404
493
  };
405
494
  }
406
495
  }
407
- return compiledGatesResolved();
496
+ const base = compiledGatesResolved();
497
+ return {
498
+ ...base,
499
+ ...(projectConfig ? { project_settings: projectConfig } : {}),
500
+ };
408
501
  }
409
502
  /** Bring the published definition over the network.
410
503
  *
@@ -1 +1 @@
1
- {"version":3,"file":"gates_data.js","sourceRoot":"","sources":["../../src/urazuke/gates_data.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gates_data.js","sourceRoot":"","sources":["../../src/urazuke/gates_data.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ import { type PublishedGatesFile } from './gates_data.js';
2
+ /** The directory of the data interface: the one resource a consumer can ask
3
+ * for without knowing anything else beforehand. */
4
+ export declare const DEFAULT_INDEX_URL = "https://yujin.app/urazuke/api/index.json";
5
+ export type LedgerStatus = 'match' | 'mismatch' | 'absent' | 'could_not_verify';
6
+ export interface LedgerVerdict {
7
+ status: LedgerStatus;
8
+ /** What this verdict actually looked at, with its address. A verdict that
9
+ * does not say where it looked is not auditable either. */
10
+ ledger_url: string;
11
+ index_url: string;
12
+ catalog_version: string;
13
+ /** The hash the ledger records for that version, when it was readable. */
14
+ expected?: string;
15
+ /** The hash recomputed here from the payload in hand. Never read from the
16
+ * file's own `content_hash.value`. */
17
+ found: string;
18
+ /** How many entries the ledger carries, when it was readable. */
19
+ entries?: number;
20
+ detail: string;
21
+ }
22
+ export interface LedgerOptions {
23
+ fetchImpl?: typeof fetch;
24
+ index_url?: string;
25
+ /** Skip the discovery and go straight at this ledger (tests, and an owner
26
+ * auditing a mirror). */
27
+ ledger_url?: string;
28
+ timeout_ms?: number;
29
+ }
30
+ /** One entry of the append-only changelog. */
31
+ export interface LedgerEntry {
32
+ catalog_version: string;
33
+ content_hash: string;
34
+ date?: string;
35
+ decision?: string;
36
+ changed?: string;
37
+ }
38
+ /** The ledger lives in a git repository, and the index publishes the address
39
+ * of its HUMAN page (`.../blob/main/...`). Fetching that returns HTML, so a
40
+ * consumer has to derive the raw address. Done here, in one place, and
41
+ * reported in the verdict so the owner sees which address answered.
42
+ *
43
+ * Anything that is not a recognised blob page is returned untouched: a
44
+ * mirror, a raw address already, or a host this function knows nothing
45
+ * about. Guessing would be worse than passing it through. */
46
+ export declare function rawUrlForBlob(url: string): string;
47
+ export interface LedgerLocation {
48
+ index_url: string;
49
+ /** The address the index publishes (the page), before deriving raw. */
50
+ declared_url?: string;
51
+ /** What this consumer will actually fetch. */
52
+ url?: string;
53
+ field: string;
54
+ problem?: string;
55
+ }
56
+ /** Discover where the ledger lives, from the index the method publishes. */
57
+ export declare function discoverLedger(opts?: LedgerOptions): Promise<LedgerLocation>;
58
+ /** Read the ledger entries. Returns the problem rather than throwing: the
59
+ * caller has to be able to tell "could not verify" apart from "does not
60
+ * match", and an exception collapses the two. */
61
+ export declare function fetchVersionLedger(opts?: LedgerOptions): Promise<{
62
+ entries?: LedgerEntry[];
63
+ location: LedgerLocation;
64
+ problem?: string;
65
+ }>;
66
+ /** Contrast a definition against the append-only ledger.
67
+ *
68
+ * The hash is RECOMPUTED from the covered payload, never read from the
69
+ * file's own declaration: comparing a file's self-declared hash against the
70
+ * ledger would prove only that two strings agree, which a hand edit
71
+ * satisfies. */
72
+ export declare function verifyAgainstLedger(file: PublishedGatesFile, opts?: LedgerOptions): Promise<LedgerVerdict>;
73
+ /** One line for the CLI and the reports. */
74
+ export declare function renderLedgerVerdict(v: LedgerVerdict): string;
75
+ //# sourceMappingURL=gates_ledger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gates_ledger.d.ts","sourceRoot":"","sources":["../../src/urazuke/gates_ledger.ts"],"names":[],"mappings":"AAyCA,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1E;oDACoD;AACpD,eAAO,MAAM,iBAAiB,6CAA6C,CAAC;AAE5E,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,GAAG,kBAAkB,CAAC;AAEhF,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,YAAY,CAAC;IACrB;gEAC4D;IAC5D,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;2CACuC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;8BAC0B;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,8CAA8C;AAC9C,MAAM,WAAW,WAAW;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;8DAO8D;AAC9D,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAIjD;AAeD,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8CAA8C;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,4EAA4E;AAC5E,wBAAsB,cAAc,CAAC,IAAI,GAAE,aAAkB,GAAG,OAAO,CAAC,cAAc,CAAC,CAiBtF;AAED;;kDAEkD;AAClD,wBAAsB,kBAAkB,CAAC,IAAI,GAAE,aAAkB,GAAG,OAAO,CAAC;IAC1E,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IAAC,QAAQ,EAAE,cAAc,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CACrE,CAAC,CAkBD;AAED;;;;;iBAKiB;AACjB,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,kBAAkB,EAAE,IAAI,GAAE,aAAkB,GACjD,OAAO,CAAC,aAAa,CAAC,CAkDxB;AAED,4CAA4C;AAC5C,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,CAM5D"}
@@ -0,0 +1,183 @@
1
+ /**
2
+ * THE VERSION LEDGER -- auditing a frozen definition against a source other
3
+ * than the server that handed it over (PND-212).
4
+ *
5
+ * Why this file exists. A content hash is self-consistent: whoever can edit
6
+ * the file can recompute it. It detects truncation, a bad merge and a hand
7
+ * edit -- which is exactly what the method's own note promises -- and it does
8
+ * NOT detect somebody who controls the host. The method publishes the anchor
9
+ * that does: an append-only ledger, in the method's repository and not on
10
+ * the serving host, with one entry per declared version and the content hash
11
+ * that version produced. A hash already recorded is never edited.
12
+ *
13
+ * So the pair (catalog_version -> content_hash) can be checked against two
14
+ * independent sources, and that is the whole point of this module. The
15
+ * owner's decision of 2026-10-27 (option 3) made it an obligation of the
16
+ * consumer, not a courtesy: a freeze records the version and the hash, and
17
+ * contrasts them.
18
+ *
19
+ * FOUR verdicts, and the fourth is the one that matters:
20
+ *
21
+ * match the ledger records this version with this hash.
22
+ * mismatch the ledger records this version with ANOTHER hash.
23
+ * The copy in hand is not what the method published.
24
+ * absent the ledger is readable and has no entry for this
25
+ * version. Not a pass: an unrecorded version is a
26
+ * version nobody can audit.
27
+ * could_not_verify the ledger could not be read (no network, a 404, bad
28
+ * JSON). A THIRD state, never a synonym of match and
29
+ * never of mismatch. This is the lesson of the doctor
30
+ * (PND-184) and of the publish check that reported forty
31
+ * failed attempts over a publish that had worked: a
32
+ * check may only assert what it actually looked at.
33
+ *
34
+ * The ledger address is DISCOVERED, never guessed: `index.json` publishes it
35
+ * per resource (`version_ledger.url` + `field`). If the index cannot be
36
+ * read, the verdict is could_not_verify and it says which address it tried
37
+ * -- inventing a fallback URL would be the same defect one layer down.
38
+ *
39
+ * ASCII-only.
40
+ */
41
+ import { canonicalJson, sha256Hex } from './ruleset.js';
42
+ import { coveredPayload } from './gates_data.js';
43
+ /** The directory of the data interface: the one resource a consumer can ask
44
+ * for without knowing anything else beforehand. */
45
+ export const DEFAULT_INDEX_URL = 'https://yujin.app/urazuke/api/index.json';
46
+ /** The ledger lives in a git repository, and the index publishes the address
47
+ * of its HUMAN page (`.../blob/main/...`). Fetching that returns HTML, so a
48
+ * consumer has to derive the raw address. Done here, in one place, and
49
+ * reported in the verdict so the owner sees which address answered.
50
+ *
51
+ * Anything that is not a recognised blob page is returned untouched: a
52
+ * mirror, a raw address already, or a host this function knows nothing
53
+ * about. Guessing would be worse than passing it through. */
54
+ export function rawUrlForBlob(url) {
55
+ const m = /^https?:\/\/github\.com\/([^/]+)\/([^/]+)\/blob\/(.+)$/.exec(url);
56
+ if (!m)
57
+ return url;
58
+ return 'https://raw.githubusercontent.com/' + m[1] + '/' + m[2] + '/' + m[3];
59
+ }
60
+ async function getJson(url, opts) {
61
+ const impl = opts.fetchImpl ?? fetch;
62
+ const ctrl = new AbortController();
63
+ const timer = setTimeout(() => ctrl.abort(), opts.timeout_ms ?? 10000);
64
+ try {
65
+ const r = await impl(url, { signal: ctrl.signal });
66
+ if (!r.ok)
67
+ throw new Error('GET ' + url + ' answered ' + r.status);
68
+ return await r.json();
69
+ }
70
+ finally {
71
+ clearTimeout(timer);
72
+ }
73
+ }
74
+ /** Discover where the ledger lives, from the index the method publishes. */
75
+ export async function discoverLedger(opts = {}) {
76
+ const index_url = opts.index_url ?? DEFAULT_INDEX_URL;
77
+ if (opts.ledger_url)
78
+ return { index_url, declared_url: opts.ledger_url, url: opts.ledger_url, field: 'changelog' };
79
+ try {
80
+ const idx = await getJson(index_url, opts);
81
+ const res = (idx.resources ?? []).find((r) => r.name === 'gates.json') ?? (idx.resources ?? [])[0];
82
+ const declared = res?.version_ledger?.url;
83
+ const field = res?.version_ledger?.field ?? 'changelog';
84
+ if (!declared) {
85
+ return { index_url, field, problem: index_url + ' does not publish a version_ledger for gates.json' };
86
+ }
87
+ return { index_url, declared_url: declared, url: rawUrlForBlob(declared), field };
88
+ }
89
+ catch (e) {
90
+ return { index_url, field: 'changelog', problem: 'no pude leer el indice ' + index_url + ': ' + e.message };
91
+ }
92
+ }
93
+ /** Read the ledger entries. Returns the problem rather than throwing: the
94
+ * caller has to be able to tell "could not verify" apart from "does not
95
+ * match", and an exception collapses the two. */
96
+ export async function fetchVersionLedger(opts = {}) {
97
+ const location = await discoverLedger(opts);
98
+ if (!location.url)
99
+ return { location, ...(location.problem ? { problem: location.problem } : {}) };
100
+ try {
101
+ const body = await getJson(location.url, opts);
102
+ const raw = body[location.field];
103
+ if (!Array.isArray(raw)) {
104
+ return { location, problem: location.url + ' has no array field "' + location.field + '"' };
105
+ }
106
+ const entries = raw
107
+ .filter((e) => !!e && typeof e === 'object'
108
+ && typeof e.catalog_version === 'string'
109
+ && typeof e.content_hash === 'string');
110
+ if (!entries.length)
111
+ return { location, problem: location.url + ' records no usable entry' };
112
+ return { entries, location };
113
+ }
114
+ catch (e) {
115
+ return { location, problem: 'no pude leer el registro ' + location.url + ': ' + e.message };
116
+ }
117
+ }
118
+ /** Contrast a definition against the append-only ledger.
119
+ *
120
+ * The hash is RECOMPUTED from the covered payload, never read from the
121
+ * file's own declaration: comparing a file's self-declared hash against the
122
+ * ledger would prove only that two strings agree, which a hand edit
123
+ * satisfies. */
124
+ export async function verifyAgainstLedger(file, opts = {}) {
125
+ const found = sha256Hex(canonicalJson(coveredPayload(file)));
126
+ const version = file.catalog_version;
127
+ const r = await fetchVersionLedger(opts);
128
+ const base = {
129
+ ledger_url: r.location.url ?? r.location.declared_url ?? '(no publicada por el indice)',
130
+ index_url: r.location.index_url,
131
+ catalog_version: version,
132
+ found,
133
+ };
134
+ if (!r.entries) {
135
+ return {
136
+ ...base,
137
+ status: 'could_not_verify',
138
+ detail: (r.problem ?? 'el registro no se pudo leer')
139
+ + '. No puedo afirmar que esta definicion sea la que el metodo publico ni que no lo sea:'
140
+ + ' es un tercer estado, y no es sinonimo de ninguno de los otros dos.',
141
+ };
142
+ }
143
+ const hit = r.entries.find((e) => e.catalog_version === version);
144
+ if (!hit) {
145
+ return {
146
+ ...base,
147
+ status: 'absent',
148
+ entries: r.entries.length,
149
+ detail: 'el registro tiene ' + r.entries.length + ' entradas (' + r.entries[0]?.catalog_version
150
+ + ' .. ' + r.entries[r.entries.length - 1]?.catalog_version + ') y ninguna es ' + version
151
+ + '. Una version que el registro no anota no se puede auditar contra otra fuente que el servidor.',
152
+ };
153
+ }
154
+ if (hit.content_hash !== found) {
155
+ return {
156
+ ...base,
157
+ status: 'mismatch',
158
+ expected: hit.content_hash,
159
+ entries: r.entries.length,
160
+ detail: 'el registro anota ' + version + ' con la huella ' + hit.content_hash.slice(0, 16)
161
+ + ' y la copia en mano recalcula ' + found.slice(0, 16)
162
+ + ': lo que tengo NO es lo que el metodo publico con ese numero de version.',
163
+ };
164
+ }
165
+ return {
166
+ ...base,
167
+ status: 'match',
168
+ expected: hit.content_hash,
169
+ entries: r.entries.length,
170
+ detail: 'el registro append-only anota ' + version + ' con esta misma huella'
171
+ + (hit.date ? ' (' + hit.date + (hit.decision ? ', ' + hit.decision : '') + ')' : '')
172
+ + ', y el registro vive fuera del host que sirve el archivo.',
173
+ };
174
+ }
175
+ /** One line for the CLI and the reports. */
176
+ export function renderLedgerVerdict(v) {
177
+ const head = v.status === 'match' ? 'verificada contra el registro de versiones'
178
+ : v.status === 'mismatch' ? 'NO COINCIDE con el registro de versiones'
179
+ : v.status === 'absent' ? 'el registro no anota esta version'
180
+ : 'no pude verificar contra el registro';
181
+ return head + ' -- ' + v.detail + ' [miro: ' + v.ledger_url + ']';
182
+ }
183
+ //# sourceMappingURL=gates_ledger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gates_ledger.js","sourceRoot":"","sources":["../../src/urazuke/gates_ledger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,97 @@
1
+ import { type PublishedGatesFile } from './gates_data.js';
2
+ import { type LedgerVerdict } from './gates_ledger.js';
3
+ import { type UrazukeProbes, type UrazukeStepStatus } from './gate.js';
4
+ export interface GatesPullOptions {
5
+ fetchImpl?: typeof fetch;
6
+ url?: string;
7
+ /** Do not touch the version ledger. For the tests, and for an owner with
8
+ * no access to the method repository; the verdict then says so. */
9
+ skip_ledger?: boolean;
10
+ /** The same probes the ladder uses, so the measured impact is the impact
11
+ * on THIS project and not on an empty one. */
12
+ probes?: UrazukeProbes;
13
+ timeout_ms?: number;
14
+ }
15
+ export interface UnmeasurableStep {
16
+ step: number;
17
+ id: string;
18
+ title: string;
19
+ evaluators: string[];
20
+ }
21
+ export interface GatesPullPreview {
22
+ ok: boolean;
23
+ problems: string[];
24
+ from: {
25
+ source: string;
26
+ version: string;
27
+ hash: string;
28
+ method_declared: boolean;
29
+ };
30
+ to?: {
31
+ version: string;
32
+ hash: string;
33
+ schema_version: number;
34
+ };
35
+ ledger?: LedgerVerdict;
36
+ /** Steps whose definition requires an evaluator this installation cannot
37
+ * measure. These do not advance after adopting. */
38
+ unmeasurable_required: UnmeasurableStep[];
39
+ /** Same, but declared `required: false`: a warning, the step may advance. */
40
+ unmeasurable_warning: UnmeasurableStep[];
41
+ /** Artifact requirements the candidate definition asks for and the one in
42
+ * force does not: a new path, and ALSO a new pattern on a path that was
43
+ * already required. Measured by comparing the two definitions, not
44
+ * guessed -- step 15 of 2026.10.6 is exactly the second case (the same
45
+ * docs/DEPLOYMENT.md, now with the undo plan of the migration), and a
46
+ * comparison by path alone would have reported zero. */
47
+ new_requirements: {
48
+ step: number;
49
+ path: string;
50
+ must_contain?: string[];
51
+ }[];
52
+ /** Measured, by evaluating both definitions over this project root. */
53
+ would_turn: {
54
+ num: number;
55
+ title: string;
56
+ before: UrazukeStepStatus;
57
+ after: UrazukeStepStatus;
58
+ }[];
59
+ adoptable: boolean;
60
+ why_not: string[];
61
+ }
62
+ /** What it would cost to adopt the published definition. Reads only. */
63
+ export declare function previewPublishedGates(projectRoot: string, opts?: GatesPullOptions): Promise<GatesPullPreview>;
64
+ export interface GatesAdoptOptions extends GatesPullOptions {
65
+ /** The owner's written reason. Without it nothing is written: replacing
66
+ * the version of the method a project lives on is a decision with an
67
+ * author, not a refresh. */
68
+ reason: string;
69
+ /** Replace a freeze that is already there. Off by default for the same
70
+ * reason `freezeProjectVersion` never overwrites. */
71
+ replace?: boolean;
72
+ }
73
+ export interface GatesAdoptResult {
74
+ written: boolean;
75
+ problems: string[];
76
+ preview?: GatesPullPreview;
77
+ path: string;
78
+ version?: string;
79
+ }
80
+ /** Adopt the published definition into the project freeze. The double lock:
81
+ * a validated file, a ledger that does not contradict it, and the owner's
82
+ * written reason. */
83
+ export declare function adoptPublishedGates(projectRoot: string, opts: GatesAdoptOptions): Promise<GatesAdoptResult>;
84
+ /** The preview as lines for the CLI and the panel. */
85
+ export declare function renderPullPreview(p: GatesPullPreview): string[];
86
+ /** Does the project have a freeze on disk at all? Used by the CLI to tell
87
+ * "no freeze" apart from "a freeze that does not verify". */
88
+ export declare function frozenExists(projectRoot: string): Promise<boolean>;
89
+ /** The frozen copy as the PAYLOAD on disk, for an audit that needs the file
90
+ * and not the resolved shape (the ledger contrast recomputes the hash over
91
+ * the covered keys, so it needs them verbatim).
92
+ *
93
+ * Returned even when the seal does not recompute: in that case the ledger
94
+ * contrast is exactly what the owner needs to see, and refusing to hand the
95
+ * payload over would hide it. */
96
+ export declare function readFrozenRaw(projectRoot: string): Promise<PublishedGatesFile | undefined>;
97
+ //# sourceMappingURL=gates_pull.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gates_pull.d.ts","sourceRoot":"","sources":["../../src/urazuke/gates_pull.ts"],"names":[],"mappings":"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"}