etymd 0.16.0 → 0.19.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 (30) hide show
  1. package/CHANGELOG.md +83 -0
  2. package/README.md +28 -5
  3. package/dist/{approve-K5FFTPA4.js → approve-Y36ZO6IL.js} +3 -3
  4. package/dist/audit-RONSEYFS.js +11 -0
  5. package/dist/{brief-DOQ2DQEG.js → brief-ILB6RMSQ.js} +3 -3
  6. package/dist/{chunk-FKDT4RBP.js → chunk-4IESOWHQ.js} +2 -2
  7. package/dist/{chunk-EJM47PIF.js → chunk-DLHC7QON.js} +83 -10
  8. package/dist/{chunk-Y4E6ERCM.js → chunk-EYUW3UJU.js} +59 -11
  9. package/dist/chunk-EZRK4MV3.js +109 -0
  10. package/dist/{chunk-OKJ3RGJB.js → chunk-HSRHOVII.js} +113 -117
  11. package/dist/{chunk-UV3YIBDW.js → chunk-KIPD3N77.js} +11 -6
  12. package/dist/{chunk-UYCGP5BS.js → chunk-L4KIIKXI.js} +1 -1
  13. package/dist/{chunk-YQZDYDAK.js → chunk-U7BCBJIH.js} +1 -1
  14. package/dist/{chunk-ANXGT7V3.js → chunk-ZCOIZVSM.js} +37 -5
  15. package/dist/cli.js +17 -17
  16. package/dist/{doctor-X6XAGKV7.js → doctor-EHRADIUZ.js} +6 -6
  17. package/dist/{fleet-UEFLKIRI.js → fleet-KFF3N2O7.js} +22 -6
  18. package/dist/{gates-NVWWKMT2.js → gates-UJ23THID.js} +9 -5
  19. package/dist/{generate-YEARCSHW.js → generate-6IPTCLYG.js} +3 -2
  20. package/dist/index.d.ts +29 -3
  21. package/dist/index.js +313 -52
  22. package/dist/{init-Z5O2WVRJ.js → init-7HWVHZMF.js} +5 -4
  23. package/dist/{premise-4QRU7LRI.js → premise-U6JIB2QG.js} +9 -5
  24. package/dist/{propose-IKE4CUIM.js → propose-NZMEPZIL.js} +6 -6
  25. package/dist/{scan-H3NF5IV5.js → scan-DLKYG5BB.js} +3 -3
  26. package/dist/scan-V53PGAQ6.js +5 -0
  27. package/dist/{screen-E4FC7W5N.js → screen-S736DXQ5.js} +56 -24
  28. package/package.json +2 -2
  29. package/dist/audit-HBNXNGD6.js +0 -11
  30. package/dist/scan-64Z6SNYF.js +0 -5
@@ -1,11 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  import { applyFiles } from './chunk-GWGKEPRX.js';
3
- import { deriveFailOn, derivedCommands, planWorkflow, runPrefix, isSafeGateCommand } from './chunk-OKJ3RGJB.js';
3
+ import { deriveFailOn, derivedCommands, planWorkflow } from './chunk-EZRK4MV3.js';
4
+ import { runPrefix, isSafeGateCommand } from './chunk-HSRHOVII.js';
4
5
  import { section, print, glyph, theme, renderPlan } from './chunk-HI7NWPRA.js';
5
- import { scanProject } from './chunk-EJM47PIF.js';
6
- import './chunk-UYCGP5BS.js';
6
+ import { scanProject } from './chunk-DLHC7QON.js';
7
+ import './chunk-L4KIIKXI.js';
7
8
  import { readConfig, CONFIG_FILE, configPath } from './chunk-P6ATKV2R.js';
8
- import './chunk-YQZDYDAK.js';
9
+ import './chunk-U7BCBJIH.js';
9
10
  import { readText, git } from './chunk-4VPBP6K6.js';
10
11
  import { promises } from 'fs';
11
12
  import path from 'path';
@@ -202,7 +203,10 @@ async function run(opts) {
202
203
  const files = await planWorkflow(opts.cwd, facts, {
203
204
  agents: false,
204
205
  gates: true,
205
- gateConfig
206
+ gateConfig,
207
+ // A pinned tier is a decision planWorkflow must not lower; an unpinned one it derives —
208
+ // the same flag the fleet's drift comparison passes, so both generate identical bytes.
209
+ gateFailOnPinned: explicit.gatesFailOn
206
210
  });
207
211
  return files.filter((f) => f.executable);
208
212
  };
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env node
2
- export { deriveFailOn, derivedCommands, planWorkflow, riskReachability } from './chunk-OKJ3RGJB.js';
2
+ export { deriveFailOn, derivedCommands, planWorkflow, riskReachability } from './chunk-EZRK4MV3.js';
3
+ import './chunk-HSRHOVII.js';
3
4
  import './chunk-P6ATKV2R.js';
4
- import './chunk-YQZDYDAK.js';
5
+ import './chunk-U7BCBJIH.js';
5
6
  import './chunk-4VPBP6K6.js';
package/dist/index.d.ts CHANGED
@@ -66,6 +66,11 @@ interface GitFacts {
66
66
  isRepo: boolean;
67
67
  branch?: string;
68
68
  head?: string;
69
+ /**
70
+ * `core.hooksPath`, stated repo-relative whenever the directory sits inside the worktree — git
71
+ * accepts an absolute spelling of the same directory, and the spelling is neither a fact nor
72
+ * something a committed baseline should carry. Absolute only when it points outside the repo.
73
+ */
69
74
  hooksPath?: string;
70
75
  husky: boolean;
71
76
  /** Distinct commit authors in recent history — the solo-vs-team profile signal. */
@@ -303,6 +308,14 @@ interface PlanOptions {
303
308
  publishGate?: boolean;
304
309
  /** Recorded gate choices; absent means derive everything from the scan. */
305
310
  gateConfig?: GateConfig;
311
+ /**
312
+ * Whether `gateConfig.failOn` was PINNED by the repo's committed config, versus a default the
313
+ * config loader filled in. The tier derivation may only choose between defaults — a recorded
314
+ * tier is a decision and is never lowered (see `deriveFailOn`). Callers that read the config
315
+ * pass `explicit.gatesFailOn` from `readConfig`; callers planning from a bare scan leave it
316
+ * unset, which is the same as unpinned.
317
+ */
318
+ gateFailOnPinned?: boolean;
306
319
  }
307
320
  /** Build the file set an onboarding would write, flagging which exist and which differ. */
308
321
  declare function planWorkflow(root: string, facts: ProjectFacts, opts: PlanOptions): Promise<GeneratedFile[]>;
@@ -785,8 +798,12 @@ interface TruthEnv {
785
798
  manifestExists: boolean;
786
799
  /** The root plus every workspace package dir — where claims are resolved. */
787
800
  bases: string[];
788
- /** A repo-relative claim resolves in the root, any workspace package, or their src/ scripts/. */
789
- pathResolves(claim: string): Promise<boolean>;
801
+ /**
802
+ * A repo-relative claim resolves in the root, any workspace package, their src/ scripts/, or
803
+ * the directory of the file making the claim (`fromDir`) — a nested instruction file writes
804
+ * references the way an agent reading it resolves them: against its siblings.
805
+ */
806
+ pathResolves(claim: string, fromDir?: string): Promise<boolean>;
790
807
  /** `yarn X` / `pnpm X` may legitimately run an installed node_modules/.bin binary. */
791
808
  binResolves(name: string): Promise<boolean>;
792
809
  }
@@ -799,6 +816,8 @@ interface ClaimCounters {
799
816
  unverifiableCommands: number;
800
817
  gitignoredSkipped: number;
801
818
  prospectiveSkipped: number;
819
+ /** Path claims whose every mention sits beside the URL it is fetched from — another tree. */
820
+ fetchedSkipped: number;
802
821
  placeholderSkipped: number;
803
822
  /** Decision references naming another record (a fleet-level ledger) — not this repo's. */
804
823
  qualifiedRefsSkipped: number;
@@ -987,8 +1006,15 @@ declare function extractCommandClaims(text: string): CommandClaims;
987
1006
  interface PathClaims {
988
1007
  /** Claims to verify against the repo. */
989
1008
  paths: string[];
1009
+ /** Slash-terminated directory claims — candidate bases for resolving sibling references. */
1010
+ dirs: string[];
990
1011
  /** Claims whose every mention sits in create-this prose — skipped, counted, disclosed. */
991
1012
  prospective: string[];
1013
+ /**
1014
+ * Claims whose every mention sits beside the URL they are fetched from — another tree's
1015
+ * files, unverifiable here. Skipped, counted, disclosed.
1016
+ */
1017
+ fetched: string[];
992
1018
  /** Claims whose every mention sits behind a namespace prefix (`pc:`) — another repo's tree. */
993
1019
  namespaced: string[];
994
1020
  /** Naming stand-ins (`my-custom-skill`) — never real claims. */
@@ -1101,7 +1127,7 @@ declare const gateIntegrityLens: Lens;
1101
1127
  * Gaps in the sequence are deliberate: a number stays retired even when the change that took it
1102
1128
  * never shipped, so a version cited in a baseline or a record means exactly one pack, ever.
1103
1129
  */
1104
- declare const PACK_VERSION = "12";
1130
+ declare const PACK_VERSION = "14";
1105
1131
 
1106
1132
  declare const VERSION: string;
1107
1133
  declare const NAME: string;