@nielspeter/eess-ts 0.1.1 → 0.2.1

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 (41) hide show
  1. package/README.md +62 -11
  2. package/dist/cli/commands/explain.d.ts +2 -0
  3. package/dist/cli/commands/explain.d.ts.map +1 -1
  4. package/dist/cli/commands/explain.js +52 -1
  5. package/dist/cli/commands/explain.js.map +1 -1
  6. package/dist/cli/commands/init.d.ts +23 -0
  7. package/dist/cli/commands/init.d.ts.map +1 -0
  8. package/dist/cli/commands/init.js +387 -0
  9. package/dist/cli/commands/init.js.map +1 -0
  10. package/dist/cli/index.d.ts +5 -0
  11. package/dist/cli/index.d.ts.map +1 -1
  12. package/dist/cli/index.js +29 -5
  13. package/dist/cli/index.js.map +1 -1
  14. package/dist/cli/resolve-config.d.ts.map +1 -1
  15. package/dist/cli/resolve-config.js +11 -1
  16. package/dist/cli/resolve-config.js.map +1 -1
  17. package/dist/index.d.ts +2 -0
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +2 -0
  20. package/dist/index.js.map +1 -1
  21. package/dist/presets/agent-guardrails.d.ts +32 -0
  22. package/dist/presets/agent-guardrails.d.ts.map +1 -0
  23. package/dist/presets/agent-guardrails.js +87 -0
  24. package/dist/presets/agent-guardrails.js.map +1 -0
  25. package/dist/presets/index.d.ts +4 -0
  26. package/dist/presets/index.d.ts.map +1 -1
  27. package/dist/presets/index.js +2 -0
  28. package/dist/presets/index.js.map +1 -1
  29. package/dist/presets/recommended.d.ts +33 -0
  30. package/dist/presets/recommended.d.ts.map +1 -0
  31. package/dist/presets/recommended.js +81 -0
  32. package/dist/presets/recommended.js.map +1 -0
  33. package/dist/tsconfig/strict-family.d.ts +30 -0
  34. package/dist/tsconfig/strict-family.d.ts.map +1 -0
  35. package/dist/tsconfig/strict-family.js +45 -0
  36. package/dist/tsconfig/strict-family.js.map +1 -0
  37. package/dist/tsconfig/tsconfig-builder.d.ts +32 -0
  38. package/dist/tsconfig/tsconfig-builder.d.ts.map +1 -0
  39. package/dist/tsconfig/tsconfig-builder.js +149 -0
  40. package/dist/tsconfig/tsconfig-builder.js.map +1 -0
  41. package/package.json +2 -2
package/dist/cli/index.js CHANGED
@@ -7,6 +7,7 @@ import { resolveConfig } from './resolve-config.js';
7
7
  import { runCheck } from './commands/check.js';
8
8
  import { runBaseline } from './commands/baseline.js';
9
9
  import { runExplain } from './commands/explain.js';
10
+ import { runInit } from './commands/init.js';
10
11
  import { watchAndRerun } from './watch.js';
11
12
  function getVersion() {
12
13
  const pkgPath = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '../../package.json');
@@ -20,17 +21,24 @@ const HELP_TEXT = `
20
21
  eess-ts — Architecture testing for TypeScript
21
22
 
22
23
  Usage:
24
+ eess-ts init Scaffold a starter setup (config + rules + scripts)
23
25
  eess-ts check [files...] Run architecture rules
24
26
  eess-ts baseline [files...] Generate baseline file
25
27
  eess-ts explain [files...] Dump all active rules as JSON
26
28
 
27
29
  Options:
30
+ --preset <name> init: recommended (default) | agent-guardrails
31
+ --tsconfig <path> init: tsconfig the generated rules point at (default: tsconfig.json)
32
+ --force init: overwrite existing files
33
+ --dry-run init: print the plan, write nothing
34
+ --no-baseline init: skip arch-baseline.json
28
35
  --baseline <path> Baseline file for filtering known violations
29
36
  --output <path> Output path for baseline file (default: arch-baseline.json)
30
37
  --changed Only report violations in changed files (git diff)
31
38
  --base <branch> Base branch for diff (default: main)
32
- --format <format> Output format: terminal, json, github, auto (default: auto)
33
- --markdown Output explain results as markdown table
39
+ --format <format> check: terminal, json, github, auto (default: auto);
40
+ explain: json (default), markdown, agent
41
+ --markdown Output explain results as markdown table (alias for --format markdown)
34
42
  --fix Apply deterministic fixes; dry-run (preview) unless --apply
35
43
  --apply With --fix, write the fixes to disk
36
44
  -w, --watch Watch for changes and re-run (check command only)
@@ -55,6 +63,11 @@ export function parseCliArgs(args) {
55
63
  watch: { type: 'boolean', short: 'w', default: false },
56
64
  fix: { type: 'boolean', default: false },
57
65
  apply: { type: 'boolean', default: false },
66
+ preset: { type: 'string' },
67
+ tsconfig: { type: 'string' },
68
+ force: { type: 'boolean', default: false },
69
+ 'dry-run': { type: 'boolean', default: false },
70
+ 'no-baseline': { type: 'boolean', default: false },
58
71
  },
59
72
  allowPositionals: true,
60
73
  strict: true,
@@ -112,10 +125,10 @@ async function handleBaseline(ruleFiles, output) {
112
125
  await runBaseline({ ruleFiles, output });
113
126
  }
114
127
  /** Handle the `explain` subcommand. */
115
- async function handleExplain(ruleFiles, markdown) {
128
+ async function handleExplain(ruleFiles, markdown, format) {
116
129
  if (!requireRuleFiles(ruleFiles))
117
130
  return;
118
- await runExplain({ ruleFiles, markdown });
131
+ await runExplain({ ruleFiles, markdown, format });
119
132
  }
120
133
  export async function run(args) {
121
134
  const parsed = parseCliArgs(args);
@@ -134,6 +147,17 @@ export async function run(args) {
134
147
  process.exitCode = 1;
135
148
  return;
136
149
  }
150
+ // `init` scaffolds files; it needs no config resolution or rule files.
151
+ if (command === 'init') {
152
+ process.exitCode = runInit({
153
+ preset: values.preset,
154
+ tsconfig: values.tsconfig,
155
+ force: values.force,
156
+ dryRun: values['dry-run'],
157
+ noBaseline: values['no-baseline'],
158
+ });
159
+ return;
160
+ }
137
161
  if (values.watch === true && command !== 'check') {
138
162
  console.error('Error: --watch is only supported with the check command.');
139
163
  process.exitCode = 1;
@@ -158,7 +182,7 @@ export async function run(args) {
158
182
  await handleBaseline(ruleFiles, values.output ?? 'arch-baseline.json');
159
183
  }
160
184
  else if (command === 'explain') {
161
- await handleExplain(ruleFiles, values.markdown);
185
+ await handleExplain(ruleFiles, values.markdown, values.format);
162
186
  }
163
187
  else {
164
188
  console.error(`Error: Unknown command "${command}". Use --help for usage.`);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-config.d.ts","sourceRoot":"","sources":["../../src/cli/resolve-config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAK5C;;;;;;;GAOG;AACH,wBAAsB,aAAa,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAO7E"}
1
+ {"version":3,"file":"resolve-config.d.ts","sourceRoot":"","sources":["../../src/cli/resolve-config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAK5C;;;;;;;GAOG;AACH,wBAAsB,aAAa,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAgB7E"}
@@ -1,5 +1,6 @@
1
1
  import path from 'node:path';
2
2
  import fs from 'node:fs';
3
+ import { createJiti } from 'jiti';
3
4
  // Config file names, in resolution order. First match wins.
4
5
  const CONFIG_FILENAMES = ['eess-ts.config.ts', 'eess-ts.config.js'];
5
6
  /**
@@ -14,7 +15,16 @@ export async function resolveConfig(explicitPath) {
14
15
  const configPath = explicitPath ?? findConfigFile();
15
16
  if (configPath === undefined)
16
17
  return {};
17
- const mod = await import(path.resolve(configPath));
18
+ // jiti, not raw import(): Node decides a .ts file's module-ness from the
19
+ // CONSUMER project's package.json `type` field, so an ESM-syntax config
20
+ // crashes in a "type": "commonjs" project (what `npm init -y` writes) —
21
+ // bug 0074. Rule files already load via jiti (load-rules.ts); the config
22
+ // must behave identically regardless of the host package's type.
23
+ // interopDefault: false — extractDefault reads `.default` itself, and the
24
+ // interop proxy breaks on `export default null` (its `then` probe during
25
+ // await dereferences the null default).
26
+ const jiti = createJiti(import.meta.url, { interopDefault: false });
27
+ const mod = await jiti.import(path.resolve(configPath));
18
28
  return extractDefault(mod);
19
29
  }
20
30
  function findConfigFile() {
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-config.js","sourceRoot":"","sources":["../../src/cli/resolve-config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,MAAM,SAAS,CAAA;AAGxB,4DAA4D;AAC5D,MAAM,gBAAgB,GAAG,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAA;AAEnE;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,YAAqB;IACvD,MAAM,UAAU,GAAG,YAAY,IAAI,cAAc,EAAE,CAAA;IAEnD,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,EAAE,CAAA;IAEvC,MAAM,GAAG,GAAY,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAA;IAC3D,OAAO,cAAc,CAAC,GAAG,CAAC,CAAA;AAC5B,CAAC;AAED,SAAS,cAAc;IACrB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IACzB,KAAK,MAAM,IAAI,IAAI,gBAAgB,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QACtC,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAA;IAChD,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CAAC,GAAY;IAClC,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACjE,OAAO,EAAE,CAAA;IACX,CAAC;IACD,kEAAkE;IAClE,IAAI,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,CAAA;IACX,CAAC;IACD,MAAM,aAAa,GAAY,GAAG,CAAC,SAAS,CAAC,CAAA;IAC7C,IAAI,aAAa,KAAK,IAAI,IAAI,aAAa,KAAK,SAAS,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;QAC/F,OAAO,EAAE,CAAA;IACX,CAAC;IACD,8EAA8E;IAC9E,MAAM,MAAM,GAAc,EAAE,CAAA;IAC5B,IAAI,SAAS,IAAI,aAAa,IAAI,OAAO,aAAa,CAAC,OAAO,KAAK,QAAQ;QACzE,MAAM,CAAC,OAAO,GAAG,aAAa,CAAC,OAAO,CAAA;IACxC,IAAI,UAAU,IAAI,aAAa,IAAI,OAAO,aAAa,CAAC,QAAQ,KAAK,QAAQ;QAC3E,MAAM,CAAC,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAA;IAC1C,IAAI,QAAQ,IAAI,aAAa,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAA;QACnC,IAAI,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YAC3F,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;QACxB,CAAC;IACH,CAAC;IACD,IAAI,OAAO,IAAI,aAAa,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC;QAChE,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAA;IACtF,OAAO,MAAM,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"resolve-config.js","sourceRoot":"","sources":["../../src/cli/resolve-config.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -77,6 +77,8 @@ export type { ArchPattern, PropertyConstraint } from './helpers/pattern.js';
77
77
  export { followPattern } from './conditions/pattern.js';
78
78
  export { smells } from './smells/index.js';
79
79
  export { SmellBuilder } from './smells/smell-builder.js';
80
+ export { tsconfig, TsconfigBuilder } from './tsconfig/tsconfig-builder.js';
81
+ export { isStrictFamily, resolveFlag, STRICT_FAMILY_SIZE, type StrictFamilyFlag, } from './tsconfig/strict-family.js';
80
82
  export { DuplicateBodiesBuilder } from './smells/duplicate-bodies.js';
81
83
  export { InconsistentSiblingsBuilder } from './smells/inconsistent-siblings.js';
82
84
  export type { Fingerprint } from './smells/fingerprint.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -87,6 +87,8 @@ export { followPattern } from './conditions/pattern.js';
87
87
  // Smell detectors (plan 0018)
88
88
  export { smells } from './smells/index.js';
89
89
  export { SmellBuilder } from './smells/smell-builder.js';
90
+ export { tsconfig, TsconfigBuilder } from './tsconfig/tsconfig-builder.js';
91
+ export { isStrictFamily, resolveFlag, STRICT_FAMILY_SIZE, } from './tsconfig/strict-family.js';
90
92
  export { DuplicateBodiesBuilder } from './smells/duplicate-bodies.js';
91
93
  export { InconsistentSiblingsBuilder } from './smells/inconsistent-siblings.js';
92
94
  export { buildFingerprint, computeSimilarity } from './smells/fingerprint.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { ArchProject } from '../core/project.js';
2
+ import type { ArchViolation } from '../core/violation.js';
3
+ import type { PresetBaseOptions } from './shared.js';
4
+ export interface AgentGuardrailsOptions extends PresetBaseOptions {
5
+ /** Glob for the source files the rules apply to. */
6
+ src: string;
7
+ /** Banned call names — one rule generated per entry (e.g. `['parseInt', 'eval']`). */
8
+ noInlineLogic?: string[];
9
+ noGenericErrors?: boolean;
10
+ noStubs?: boolean;
11
+ noEmptyBodies?: boolean;
12
+ noCopyPaste?: boolean;
13
+ }
14
+ /**
15
+ * Preset targeting the mistakes AI coding agents make most often — inline
16
+ * logic, generic errors, stub comments, empty bodies, copy-paste.
17
+ *
18
+ * Returns `ArchViolation[]` (the eager ADR-008 form) and ends in `finishPreset`,
19
+ * so an agent's rules file / harness can `agentGuardrails(p, { report: 'return',
20
+ * format: 'json' })` and own emission of the error-severity violations. The
21
+ * copy-paste rule defaults to **warn**: warns are reported to stderr but are
22
+ * NOT aggregated into the returned array or the thrown error — override it to
23
+ * `'error'` (`overrides: { 'preset/agent/no-copy-paste': 'error' }`) to include
24
+ * it in the returned/JSON set. Each rule carries agent-facing `because` /
25
+ * `suggestion` / `imperative` metadata so `explain --format agent` and the check
26
+ * JSON give the agent an actionable fix.
27
+ *
28
+ * Uses function-variant rules so standalone functions, arrow functions, and
29
+ * class methods are all covered.
30
+ */
31
+ export declare function agentGuardrails(p: ArchProject, options: AgentGuardrailsOptions): ArchViolation[];
32
+ //# sourceMappingURL=agent-guardrails.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-guardrails.d.ts","sourceRoot":"","sources":["../../src/presets/agent-guardrails.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAMzD,OAAO,KAAK,EAAE,iBAAiB,EAAgB,MAAM,aAAa,CAAA;AAGlE,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;IAC/D,oDAAoD;IACpD,GAAG,EAAE,MAAM,CAAA;IACX,sFAAsF;IACtF,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAQD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,sBAAsB,GAAG,aAAa,EAAE,CA8EhG"}
@@ -0,0 +1,87 @@
1
+ import { functions } from '../builders/function-rule-builder.js';
2
+ import { call } from '../helpers/matchers.js';
3
+ import { functionNoGenericErrors } from '../rules/errors.js';
4
+ import { noStubComments, noEmptyBodies } from '../rules/hygiene.js';
5
+ import { smells } from '../smells/index.js';
6
+ import { dispatchRule, validateOverrides, finishPreset } from './shared.js';
7
+ /**
8
+ * Preset targeting the mistakes AI coding agents make most often — inline
9
+ * logic, generic errors, stub comments, empty bodies, copy-paste.
10
+ *
11
+ * Returns `ArchViolation[]` (the eager ADR-008 form) and ends in `finishPreset`,
12
+ * so an agent's rules file / harness can `agentGuardrails(p, { report: 'return',
13
+ * format: 'json' })` and own emission of the error-severity violations. The
14
+ * copy-paste rule defaults to **warn**: warns are reported to stderr but are
15
+ * NOT aggregated into the returned array or the thrown error — override it to
16
+ * `'error'` (`overrides: { 'preset/agent/no-copy-paste': 'error' }`) to include
17
+ * it in the returned/JSON set. Each rule carries agent-facing `because` /
18
+ * `suggestion` / `imperative` metadata so `explain --format agent` and the check
19
+ * JSON give the agent an actionable fix.
20
+ *
21
+ * Uses function-variant rules so standalone functions, arrow functions, and
22
+ * class methods are all covered.
23
+ */
24
+ export function agentGuardrails(p, options) {
25
+ validateOverrides(options.overrides, collectRuleIds(options));
26
+ const violations = [];
27
+ const push = (builder, meta, def) => {
28
+ violations.push(...dispatchRule(builder, meta, def, options.overrides));
29
+ };
30
+ for (const api of options.noInlineLogic ?? []) {
31
+ push(functions(p).that().resideInFile(options.src).should().notContain(call(api)), {
32
+ id: `preset/agent/no-inline-logic/${api}`,
33
+ because: `${api} inline in a function is logic that belongs behind a named helper`,
34
+ suggestion: `extract the ${api} call into a named helper function`,
35
+ imperative: `Do NOT call ${api} inline — extract it behind a named helper`,
36
+ }, 'error');
37
+ }
38
+ if (options.noGenericErrors) {
39
+ push(functions(p).that().resideInFile(options.src).should().satisfy(functionNoGenericErrors()), {
40
+ id: 'preset/agent/no-generic-errors',
41
+ because: 'a generic Error loses the type/context callers need to handle it',
42
+ suggestion: 'throw a domain-specific error (NotFoundError, ValidationError, …)',
43
+ imperative: 'Do NOT throw new Error() — throw a domain-specific error class',
44
+ }, 'error');
45
+ }
46
+ if (options.noStubs) {
47
+ push(functions(p).that().resideInFile(options.src).should().satisfy(noStubComments()), {
48
+ id: 'preset/agent/no-stubs',
49
+ because: 'stub comments (TODO/FIXME/"not implemented") ship unfinished work',
50
+ suggestion: 'implement the body or remove the stub before committing',
51
+ imperative: 'Do NOT leave stub comments (TODO/FIXME/"not implemented") in a function body',
52
+ }, 'error');
53
+ }
54
+ if (options.noEmptyBodies) {
55
+ push(functions(p).that().resideInFile(options.src).should().satisfy(noEmptyBodies()), {
56
+ id: 'preset/agent/no-empty-bodies',
57
+ because: 'an empty function body is almost always an unfinished stub',
58
+ suggestion: 'implement the body — every function must have at least one statement',
59
+ imperative: 'Do NOT leave a function body empty',
60
+ }, 'error');
61
+ }
62
+ if (options.noCopyPaste) {
63
+ push(smells.duplicateBodies(p).withMinSimilarity(0.9), {
64
+ id: 'preset/agent/no-copy-paste',
65
+ because: 'near-identical bodies are copy-paste instead of reuse',
66
+ suggestion: 'extract the shared logic into one function',
67
+ imperative: 'Do NOT duplicate a function body — extract the shared logic',
68
+ }, 'warn');
69
+ }
70
+ return finishPreset(violations, options);
71
+ }
72
+ /** All rule ids the given options would generate (for override validation). */
73
+ function collectRuleIds(options) {
74
+ const ids = [];
75
+ for (const api of options.noInlineLogic ?? [])
76
+ ids.push(`preset/agent/no-inline-logic/${api}`);
77
+ if (options.noGenericErrors)
78
+ ids.push('preset/agent/no-generic-errors');
79
+ if (options.noStubs)
80
+ ids.push('preset/agent/no-stubs');
81
+ if (options.noEmptyBodies)
82
+ ids.push('preset/agent/no-empty-bodies');
83
+ if (options.noCopyPaste)
84
+ ids.push('preset/agent/no-copy-paste');
85
+ return ids;
86
+ }
87
+ //# sourceMappingURL=agent-guardrails.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-guardrails.js","sourceRoot":"","sources":["../../src/presets/agent-guardrails.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,9 @@
1
1
  export type { RuleSeverity, PresetBaseOptions } from './shared.js';
2
2
  export { dispatchRule, validateOverrides, throwIfViolations } from './shared.js';
3
+ export type { RecommendedOptions } from './recommended.js';
4
+ export { recommended } from './recommended.js';
5
+ export type { AgentGuardrailsOptions } from './agent-guardrails.js';
6
+ export { agentGuardrails } from './agent-guardrails.js';
3
7
  export type { LayeredArchitectureOptions } from './layered.js';
4
8
  export { layeredArchitecture } from './layered.js';
5
9
  export type { DataLayerIsolationOptions } from './data-layer.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/presets/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAClE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAEhF,YAAY,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAA;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAElD,YAAY,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAA;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAEpD,YAAY,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/presets/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAClE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAEhF,YAAY,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,YAAY,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAEvD,YAAY,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAA;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAElD,YAAY,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAA;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAEpD,YAAY,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA"}
@@ -1,4 +1,6 @@
1
1
  export { dispatchRule, validateOverrides, throwIfViolations } from './shared.js';
2
+ export { recommended } from './recommended.js';
3
+ export { agentGuardrails } from './agent-guardrails.js';
2
4
  export { layeredArchitecture } from './layered.js';
3
5
  export { dataLayerIsolation } from './data-layer.js';
4
6
  export { strictBoundaries } from './boundaries.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/presets/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAGhF,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAGlD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAGpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/presets/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAGhF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAG9C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAGvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAGlD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAGpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA"}
@@ -0,0 +1,33 @@
1
+ import type { ArchProject } from '../core/project.js';
2
+ import type { ArchViolation } from '../core/violation.js';
3
+ import type { PresetBaseOptions } from './shared.js';
4
+ export interface RecommendedOptions extends PresetBaseOptions {
5
+ /**
6
+ * Source-file glob the rules apply to. Defaults to `'**\/src/**'`, matched
7
+ * against each file's absolute path (picomatch). This scopes the rules to your
8
+ * source tree by convention — it does NOT itself exclude `node_modules` or
9
+ * generated files (any `src/` segment anywhere in the path matches). Projects
10
+ * whose source lives outside a `src/` folder (e.g. `lib/`) should override.
11
+ */
12
+ include?: string;
13
+ }
14
+ /**
15
+ * A deliberately **thin, universal safety floor** for any TypeScript project —
16
+ * the handful of things dangerous regardless of project shape that fire ~never
17
+ * on healthy code. Not a full architecture: shape-specific rules (layer order,
18
+ * cycles, delegation) are yours to add.
19
+ *
20
+ * Returns `ArchViolation[]` (the eager ADR-008 form) and ends in `finishPreset`,
21
+ * so a caller can `recommended(p, { report: 'return' })` to own emission, or by
22
+ * default let it throw on any error-severity violation. The two `warn` rules
23
+ * (silent-catch, empty-bodies) are reported to stderr but never fail and are NOT
24
+ * aggregated into the returned array — they have known, suppressible false
25
+ * positives; override to `'error'` to include them. Severity is tunable via
26
+ * `overrides`.
27
+ *
28
+ * Overlaps `agentGuardrails` on empty bodies and `eval`. For agent-focused
29
+ * projects prefer `agentGuardrails` alone, or override the duplicated ids to
30
+ * `'off'` in one preset.
31
+ */
32
+ export declare function recommended(p: ArchProject, options?: RecommendedOptions): ArchViolation[];
33
+ //# sourceMappingURL=recommended.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recommended.d.ts","sourceRoot":"","sources":["../../src/presets/recommended.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAMzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAGpD,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AA0DD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,GAAE,kBAAuB,GAAG,aAAa,EAAE,CAiB7F"}
@@ -0,0 +1,81 @@
1
+ import { functions } from '../builders/function-rule-builder.js';
2
+ import { functionNoEval, functionNoFunctionConstructor } from '../rules/security.js';
3
+ import { functionNoSilentCatch } from '../rules/errors.js';
4
+ import { noEmptyBodies } from '../rules/hygiene.js';
5
+ import { dispatchRule, validateOverrides, finishPreset } from './shared.js';
6
+ /**
7
+ * Single source of truth for the floor. `RULE_IDS` (for override validation) and
8
+ * the dispatch loop both derive from this — add a rule here and nothing else
9
+ * needs updating.
10
+ */
11
+ const SPECS = [
12
+ {
13
+ condition: functionNoEval(),
14
+ meta: {
15
+ id: 'preset/recommended/no-eval',
16
+ because: 'eval() executes arbitrary code — a code-injection risk',
17
+ suggestion: 'remove eval(); parse or dispatch explicitly',
18
+ imperative: 'Do NOT call eval()',
19
+ },
20
+ default: 'error',
21
+ },
22
+ {
23
+ condition: functionNoFunctionConstructor(),
24
+ meta: {
25
+ id: 'preset/recommended/no-function-constructor',
26
+ because: 'the Function constructor is eval() in disguise',
27
+ suggestion: 'define the function directly instead of building it from a string',
28
+ imperative: 'Do NOT use the Function constructor',
29
+ },
30
+ default: 'error',
31
+ },
32
+ {
33
+ condition: functionNoSilentCatch(),
34
+ meta: {
35
+ id: 'preset/recommended/no-silent-catch',
36
+ because: 'a silent catch hides failures',
37
+ suggestion: 'handle or rethrow the caught error (reference it in the catch)',
38
+ imperative: 'Do NOT swallow errors in an empty catch',
39
+ },
40
+ default: 'warn',
41
+ },
42
+ {
43
+ condition: noEmptyBodies(),
44
+ meta: {
45
+ id: 'preset/recommended/no-empty-bodies',
46
+ because: 'an empty function body is usually an unfinished stub',
47
+ suggestion: 'implement the body or remove the function',
48
+ imperative: 'Do NOT leave a function body empty',
49
+ },
50
+ default: 'warn',
51
+ },
52
+ ];
53
+ const RULE_IDS = SPECS.map((s) => s.meta.id);
54
+ /**
55
+ * A deliberately **thin, universal safety floor** for any TypeScript project —
56
+ * the handful of things dangerous regardless of project shape that fire ~never
57
+ * on healthy code. Not a full architecture: shape-specific rules (layer order,
58
+ * cycles, delegation) are yours to add.
59
+ *
60
+ * Returns `ArchViolation[]` (the eager ADR-008 form) and ends in `finishPreset`,
61
+ * so a caller can `recommended(p, { report: 'return' })` to own emission, or by
62
+ * default let it throw on any error-severity violation. The two `warn` rules
63
+ * (silent-catch, empty-bodies) are reported to stderr but never fail and are NOT
64
+ * aggregated into the returned array — they have known, suppressible false
65
+ * positives; override to `'error'` to include them. Severity is tunable via
66
+ * `overrides`.
67
+ *
68
+ * Overlaps `agentGuardrails` on empty bodies and `eval`. For agent-focused
69
+ * projects prefer `agentGuardrails` alone, or override the duplicated ids to
70
+ * `'off'` in one preset.
71
+ */
72
+ export function recommended(p, options = {}) {
73
+ const include = options.include ?? '**/src/**';
74
+ validateOverrides(options.overrides, RULE_IDS);
75
+ const violations = [];
76
+ for (const { condition, meta, default: def } of SPECS) {
77
+ violations.push(...dispatchRule(functions(p).that().resideInFile(include).should().satisfy(condition), meta, def, options.overrides));
78
+ }
79
+ return finishPreset(violations, options);
80
+ }
81
+ //# sourceMappingURL=recommended.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recommended.js","sourceRoot":"","sources":["../../src/presets/recommended.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAA;AACpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEnD,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAmB3E;;;;GAIG;AACH,MAAM,KAAK,GAAwB;IACjC;QACE,SAAS,EAAE,cAAc,EAAE;QAC3B,IAAI,EAAE;YACJ,EAAE,EAAE,4BAA4B;YAChC,OAAO,EAAE,wDAAwD;YACjE,UAAU,EAAE,6CAA6C;YACzD,UAAU,EAAE,oBAAoB;SACjC;QACD,OAAO,EAAE,OAAO;KACjB;IACD;QACE,SAAS,EAAE,6BAA6B,EAAE;QAC1C,IAAI,EAAE;YACJ,EAAE,EAAE,4CAA4C;YAChD,OAAO,EAAE,gDAAgD;YACzD,UAAU,EAAE,mEAAmE;YAC/E,UAAU,EAAE,qCAAqC;SAClD;QACD,OAAO,EAAE,OAAO;KACjB;IACD;QACE,SAAS,EAAE,qBAAqB,EAAE;QAClC,IAAI,EAAE;YACJ,EAAE,EAAE,oCAAoC;YACxC,OAAO,EAAE,+BAA+B;YACxC,UAAU,EAAE,gEAAgE;YAC5E,UAAU,EAAE,yCAAyC;SACtD;QACD,OAAO,EAAE,MAAM;KAChB;IACD;QACE,SAAS,EAAE,aAAa,EAAE;QAC1B,IAAI,EAAE;YACJ,EAAE,EAAE,oCAAoC;YACxC,OAAO,EAAE,sDAAsD;YAC/D,UAAU,EAAE,2CAA2C;YACvD,UAAU,EAAE,oCAAoC;SACjD;QACD,OAAO,EAAE,MAAM;KAChB;CACF,CAAA;AAED,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAE5C;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,WAAW,CAAC,CAAc,EAAE,UAA8B,EAAE;IAC1E,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,WAAW,CAAA;IAC9C,iBAAiB,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;IAE9C,MAAM,UAAU,GAAoB,EAAE,CAAA;IACtC,KAAK,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,KAAK,EAAE,CAAC;QACtD,UAAU,CAAC,IAAI,CACb,GAAG,YAAY,CACb,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,EACrE,IAAI,EACJ,GAAG,EACH,OAAO,CAAC,SAAS,CAClB,CACF,CAAA;IACH,CAAC;IAED,OAAO,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;AAC1C,CAAC"}
@@ -0,0 +1,30 @@
1
+ import type { CompilerOptions } from 'ts-morph';
2
+ /**
3
+ * The compiler flags that `strict: true` turns on implicitly. tsc resolves each
4
+ * of these via `getStrictOptionValue` — `getCompilerOptions()` returns them
5
+ * UNSET when only `strict` is present, so the rule must mirror that resolution.
6
+ *
7
+ * NOTE: this list is a manual mirror of tsc's strict family and must be updated
8
+ * when TypeScript adds a strict-governed flag. Pinned to TypeScript ~5.9
9
+ * (`strictBuiltinIteratorReturn` added in 5.6). The `satisfies` check below fails
10
+ * to compile if a name here is not a real `CompilerOptions` key. A count check
11
+ * alone can't detect a NEW TS flag this list is missing (the array length never
12
+ * changes on its own), so the test suite also pins the TypeScript minor version
13
+ * — a bump trips it and forces a manual re-check of this family.
14
+ */
15
+ declare const STRICT_FAMILY: readonly ["alwaysStrict", "noImplicitAny", "noImplicitThis", "strictBindCallApply", "strictBuiltinIteratorReturn", "strictFunctionTypes", "strictNullChecks", "strictPropertyInitialization", "useUnknownInCatchVariables"];
16
+ export type StrictFamilyFlag = (typeof STRICT_FAMILY)[number];
17
+ /** How many flags the strict family governs. Guarded by a test against TS drift. */
18
+ export declare const STRICT_FAMILY_SIZE: 9;
19
+ export declare function isStrictFamily(key: string): key is StrictFamilyFlag;
20
+ /**
21
+ * Mirror of tsc's `getStrictOptionValue` for the strict family.
22
+ *
23
+ * The effective value of a strict-family flag is:
24
+ * 1. its explicit value, if set (true or false); otherwise
25
+ * 2. the value of `strict`, if set; otherwise
26
+ * 3. `false` (the TypeScript default before `strict`).
27
+ */
28
+ export declare function resolveFlag(opts: CompilerOptions, flag: StrictFamilyFlag): boolean;
29
+ export {};
30
+ //# sourceMappingURL=strict-family.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strict-family.d.ts","sourceRoot":"","sources":["../../src/tsconfig/strict-family.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE/C;;;;;;;;;;;;GAYG;AACH,QAAA,MAAM,aAAa,6NAUsC,CAAA;AAEzD,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAA;AAI7D,oFAAoF;AACpF,eAAO,MAAM,kBAAkB,GAAuB,CAAA;AAEtD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,IAAI,gBAAgB,CAEnE;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAIlF"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * The compiler flags that `strict: true` turns on implicitly. tsc resolves each
3
+ * of these via `getStrictOptionValue` — `getCompilerOptions()` returns them
4
+ * UNSET when only `strict` is present, so the rule must mirror that resolution.
5
+ *
6
+ * NOTE: this list is a manual mirror of tsc's strict family and must be updated
7
+ * when TypeScript adds a strict-governed flag. Pinned to TypeScript ~5.9
8
+ * (`strictBuiltinIteratorReturn` added in 5.6). The `satisfies` check below fails
9
+ * to compile if a name here is not a real `CompilerOptions` key. A count check
10
+ * alone can't detect a NEW TS flag this list is missing (the array length never
11
+ * changes on its own), so the test suite also pins the TypeScript minor version
12
+ * — a bump trips it and forces a manual re-check of this family.
13
+ */
14
+ const STRICT_FAMILY = [
15
+ 'alwaysStrict',
16
+ 'noImplicitAny',
17
+ 'noImplicitThis',
18
+ 'strictBindCallApply',
19
+ 'strictBuiltinIteratorReturn',
20
+ 'strictFunctionTypes',
21
+ 'strictNullChecks',
22
+ 'strictPropertyInitialization',
23
+ 'useUnknownInCatchVariables',
24
+ ];
25
+ const STRICT_FAMILY_SET = new Set(STRICT_FAMILY);
26
+ /** How many flags the strict family governs. Guarded by a test against TS drift. */
27
+ export const STRICT_FAMILY_SIZE = STRICT_FAMILY.length;
28
+ export function isStrictFamily(key) {
29
+ return STRICT_FAMILY_SET.has(key);
30
+ }
31
+ /**
32
+ * Mirror of tsc's `getStrictOptionValue` for the strict family.
33
+ *
34
+ * The effective value of a strict-family flag is:
35
+ * 1. its explicit value, if set (true or false); otherwise
36
+ * 2. the value of `strict`, if set; otherwise
37
+ * 3. `false` (the TypeScript default before `strict`).
38
+ */
39
+ export function resolveFlag(opts, flag) {
40
+ const explicit = opts[flag];
41
+ if (explicit !== undefined)
42
+ return Boolean(explicit);
43
+ return Boolean(opts.strict);
44
+ }
45
+ //# sourceMappingURL=strict-family.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strict-family.js","sourceRoot":"","sources":["../../src/tsconfig/strict-family.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,MAAM,aAAa,GAAG;IACpB,cAAc;IACd,eAAe;IACf,gBAAgB;IAChB,qBAAqB;IACrB,6BAA6B;IAC7B,qBAAqB;IACrB,kBAAkB;IAClB,8BAA8B;IAC9B,4BAA4B;CAC2B,CAAA;AAIzD,MAAM,iBAAiB,GAAwB,IAAI,GAAG,CAAC,aAAa,CAAC,CAAA;AAErE,oFAAoF;AACpF,MAAM,CAAC,MAAM,kBAAkB,GAAG,aAAa,CAAC,MAAM,CAAA;AAEtD,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,OAAO,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AACnC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAC,IAAqB,EAAE,IAAsB;IACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAA;IAC3B,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAA;IACpD,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AAC7B,CAAC"}