@cad0p/pi-steering 0.1.0 → 0.2.0-20260812.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 (107) hide show
  1. package/CHANGELOG.md +27 -4
  2. package/README.md +51 -6
  3. package/dist/__test-helpers__.d.ts +5 -4
  4. package/dist/__test-helpers__.d.ts.map +1 -1
  5. package/dist/__test-helpers__.js +5 -4
  6. package/dist/__test-helpers__.js.map +1 -1
  7. package/dist/bin/pi-steering.d.ts.map +1 -1
  8. package/dist/bin/pi-steering.js +57 -17
  9. package/dist/bin/pi-steering.js.map +1 -1
  10. package/dist/compat.d.ts.map +1 -1
  11. package/dist/compat.js +1 -0
  12. package/dist/compat.js.map +1 -1
  13. package/dist/define-config.d.ts +13 -2
  14. package/dist/define-config.d.ts.map +1 -1
  15. package/dist/define-config.js +6 -0
  16. package/dist/define-config.js.map +1 -1
  17. package/dist/evaluator-internals/predicates.d.ts +70 -2
  18. package/dist/evaluator-internals/predicates.d.ts.map +1 -1
  19. package/dist/evaluator-internals/predicates.js +164 -19
  20. package/dist/evaluator-internals/predicates.js.map +1 -1
  21. package/dist/evaluator.d.ts +0 -41
  22. package/dist/evaluator.d.ts.map +1 -1
  23. package/dist/evaluator.js +160 -6
  24. package/dist/evaluator.js.map +1 -1
  25. package/dist/index.d.ts +1 -1
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +1 -1
  28. package/dist/index.js.map +1 -1
  29. package/dist/internal/drop-unused-observers.d.ts +7 -2
  30. package/dist/internal/drop-unused-observers.d.ts.map +1 -1
  31. package/dist/internal/drop-unused-observers.js +21 -4
  32. package/dist/internal/drop-unused-observers.js.map +1 -1
  33. package/dist/internal/finalize-plugin-state.d.ts +7 -4
  34. package/dist/internal/finalize-plugin-state.d.ts.map +1 -1
  35. package/dist/internal/finalize-plugin-state.js +4 -3
  36. package/dist/internal/finalize-plugin-state.js.map +1 -1
  37. package/dist/internal/ref-text.d.ts.map +1 -1
  38. package/dist/internal/ref-text.js +1 -1
  39. package/dist/internal/ref-text.js.map +1 -1
  40. package/dist/internal/session-runtime.d.ts +3 -1
  41. package/dist/internal/session-runtime.d.ts.map +1 -1
  42. package/dist/internal/session-runtime.js +79 -5
  43. package/dist/internal/session-runtime.js.map +1 -1
  44. package/dist/loader.d.ts +23 -18
  45. package/dist/loader.d.ts.map +1 -1
  46. package/dist/loader.js +114 -87
  47. package/dist/loader.js.map +1 -1
  48. package/dist/plugin-merger.d.ts +13 -1
  49. package/dist/plugin-merger.d.ts.map +1 -1
  50. package/dist/plugin-merger.js +32 -0
  51. package/dist/plugin-merger.js.map +1 -1
  52. package/dist/plugins/git/cwd-extensions.d.ts.map +1 -1
  53. package/dist/plugins/git/cwd-extensions.js.map +1 -1
  54. package/dist/schema.d.ts +171 -4
  55. package/dist/schema.d.ts.map +1 -1
  56. package/dist/testing/index.d.ts +4 -5
  57. package/dist/testing/index.d.ts.map +1 -1
  58. package/dist/testing/index.js +5 -5
  59. package/dist/testing/index.js.map +1 -1
  60. package/examples/README.md +3 -3
  61. package/examples/combined-git-discipline/README.md +2 -2
  62. package/examples/combined-git-discipline/node_modules/.bin/pi-steering +16 -4
  63. package/examples/combined-git-discipline/package.json +16 -16
  64. package/examples/draft-prs-only/README.md +2 -2
  65. package/examples/draft-prs-only/node_modules/.bin/pi-steering +16 -4
  66. package/examples/draft-prs-only/package.json +16 -16
  67. package/examples/dynamic-reason-runtime-cwd/node_modules/.bin/pi-steering +16 -4
  68. package/examples/dynamic-reason-runtime-cwd/package.json +16 -16
  69. package/examples/dynamic-reason-runtime-cwd/steering.ts +5 -1
  70. package/examples/force-push-strict/README.md +1 -1
  71. package/examples/force-push-strict/node_modules/.bin/pi-steering +16 -4
  72. package/examples/force-push-strict/package.json +16 -16
  73. package/examples/no-amend/README.md +2 -2
  74. package/examples/no-amend/node_modules/.bin/pi-steering +16 -4
  75. package/examples/no-amend/package.json +16 -16
  76. package/examples/work-item-plugin/node_modules/.bin/pi-steering +16 -4
  77. package/examples/work-item-plugin/package.json +17 -17
  78. package/examples/work-item-plugin/src/observers/npm-test-tracker.ts +5 -1
  79. package/examples/work-item-plugin/src/observers/retest-required-tracker.ts +5 -1
  80. package/examples/work-item-plugin/src/rules/commit-requires-work-item.test.ts +5 -1
  81. package/package.json +2 -2
  82. package/src/INVARIANTS.md +65 -4
  83. package/src/__test-helpers__.ts +5 -4
  84. package/src/bin/pi-steering.test.ts +136 -4
  85. package/src/bin/pi-steering.ts +68 -16
  86. package/src/compat.test.ts +1 -0
  87. package/src/compat.ts +1 -0
  88. package/src/define-config.test.ts +194 -0
  89. package/src/define-config.ts +22 -1
  90. package/src/evaluator-internals/predicates.ts +189 -13
  91. package/src/evaluator.test.ts +593 -0
  92. package/src/evaluator.ts +158 -6
  93. package/src/factory-time-load.test.ts +68 -18
  94. package/src/index.test.ts +4 -4
  95. package/src/index.ts +3 -1
  96. package/src/internal/drop-unused-observers.ts +22 -4
  97. package/src/internal/finalize-plugin-state.ts +21 -5
  98. package/src/internal/ref-text.ts +5 -1
  99. package/src/internal/session-runtime.test.ts +50 -2
  100. package/src/internal/session-runtime.ts +87 -5
  101. package/src/loader.test.ts +261 -74
  102. package/src/loader.ts +124 -82
  103. package/src/plugin-merger.test.ts +169 -1
  104. package/src/plugin-merger.ts +49 -0
  105. package/src/plugins/git/cwd-extensions.ts +1 -1
  106. package/src/schema.ts +193 -4
  107. package/src/testing/index.ts +9 -7
package/CHANGELOG.md CHANGED
@@ -1,10 +1,33 @@
1
1
  # Changelog
2
2
 
3
- All notable changes to `@cad0p/pi-steering` are documented in this file.
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ ## [0.2.0] - 2026-08-11
6
+
7
+ <!-- USER-EDITABLE SECTION START -->
8
+ ### Breaking
9
+
10
+ - **Two-layer config resolution** (issue [#21](https://github.com/cad0p/pi-steering/issues/21)): the loader now mirrors pi's own settings model instead of walking up `cwd → $HOME`. Exactly two fixed layers — the project layer at `<cwd>/.pi/steering/` and the global layer at `<agentDir>/steering/` (`~/.pi/agent/steering/`, or `$PI_CODING_AGENT_DIR` when set) — merged project-first (project wins on rule-name collision). Intermediate ancestor layers no longer load, and `~/.pi/steering/` is no longer special (no alias, no deprecation diagnostic): it only works when pi is launched from `$HOME` itself, where the project layer IS that path.
11
+ - **Migration:** `mv ~/.pi/steering ~/.pi/agent/steering`. No fallback is provided — the old path stops being discovered once this version ships.
12
+ <!-- USER-EDITABLE SECTION END -->
13
+
14
+ ### 🚀 Features
15
+
16
+ - Two-layer config resolution — project `.pi/steering/` + global `agentDir/steering/`, walk-up removed ([#21](https://github.com/cad0p/pi-steering/pull/21)) ([#25](https://github.com/cad0p/pi-steering/pull/25))
17
+
18
+ ### 🐛 Bug Fixes
19
+
20
+ - Approve peer-graph build scripts (@google/genai, protobufjs) in pnpm-workspace.yaml ([#17](https://github.com/cad0p/pi-steering/pull/17))
21
+
22
+ ### 📚 Documentation
23
+
24
+ - PUBLISHING.md reflects scoped @cad0p publish + semver-calver-release flow ([#15](https://github.com/cad0p/pi-steering/pull/15))
25
+ - Npm install line for published scoped package ([#20](https://github.com/cad0p/pi-steering/pull/20))
26
+
27
+ ### 🎨 Styling
28
+
29
+ - Biome format + organizeImports after scoped-rename edits ([#18](https://github.com/cad0p/pi-steering/pull/18))
4
30
 
5
- The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
- and this project will adhere to [Semantic Versioning](https://semver.org/spec/v2.0.0.html)
7
- once `v0.1.0` publishes to npm.
8
31
 
9
32
  ## [0.1.0] — 2026-08-10
10
33
 
package/README.md CHANGED
@@ -15,7 +15,7 @@ Use it when:
15
15
  ## Install
16
16
 
17
17
  ```bash
18
- pi install pi-steering
18
+ pi install npm:@cad0p/pi-steering
19
19
  ```
20
20
 
21
21
  Requires **Node ≥ 22** — the loader reads `.pi/steering.ts` files via native type-stripping (no `tsx` / `ts-node` runtime). On older Node the loader throws with an upgrade message at startup.
@@ -61,6 +61,20 @@ What `/reload` still does **not** pick up:
61
61
 
62
62
  **Recommendation for plugin authors:** ship `.ts` source as the package entry to enable hot-reload during plugin development. The migration is small: switch `package.json#main` to `./src/index.ts`, drop the `tsc` build step (or keep it as `tsc --noEmit` for typecheck), set `allowImportingTsExtensions: true` and `noEmit: true` in `tsconfig.json`, optionally add `erasableSyntaxOnly: true` to reject non-strippable TS features (`enum`, namespaces, parameter properties) at compile time. Consumers must run Node ≥ 22.6 for native type-stripping.
63
63
 
64
+ ## Config layers
65
+
66
+ pi-steering resolves exactly two layers, mirroring pi's own settings model:
67
+
68
+ - **Project** — `<cwd>/.pi/steering/` (or the `.pi/steering.ts` single-file form), loaded from the directory pi was launched in.
69
+ - **Global** — `<agentDir>/steering/`, where `agentDir` is `$PI_CODING_AGENT_DIR` (tilde-expanded) or `~/.pi/agent` by default. Applies to every project.
70
+
71
+ The project layer is merged INNERMOST: on rule/plugin/observer-name collision the project entry wins, so a project can override or soften a global rule by declaring the same name. There is no walk-up discovery — intermediate directories contribute nothing, and nothing below `~/.pi/agent/` is special-cased.
72
+
73
+ **Breaking change (v0.2.0): the old global location `~/.pi/steering/` is no longer loaded** — no alias, no deprecation diagnostic. The only situation where it still works is launching pi from `$HOME` itself, where `<cwd>/.pi/steering/` happens to be `~/.pi/steering/`. Migrate with:
74
+
75
+ ```bash
76
+ mv ~/.pi/steering ~/.pi/agent/steering
77
+ ```
64
78
 
65
79
  ## Quick start
66
80
 
@@ -228,7 +242,7 @@ The important bits worth stressing:
228
242
  - **One parse, many rules.** The AST walk happens once per tool call; every rule sees the same extracted refs and walker state. Adding rules is cheap.
229
243
  - **Per-ref evaluation.** `cd /tmp && git log` evaluates the `git log` rule AT cwd `/tmp`, not at `/original`. Walker trackers (cwd by default; branch via the git plugin) update state as refs flow through the command chain.
230
244
  - **Source-tagged reasons.** Block reasons carry `[steering:<rule>@<source>]` where source is `user` or the shipping plugin name. The agent can see both what fired and where to look it up.
231
- - **First match wins.** Rule order matters within a layer, and inner config layers beat outer ones on rule-name collision.
245
+ - **First match wins.** Rule order matters within a layer, and the project layer beats the global layer on rule-name collision.
232
246
 
233
247
  ## Authoring rules
234
248
 
@@ -681,6 +695,37 @@ Changing more than the reason (tightening the pattern, scoping by cwd, swapping
681
695
 
682
696
  > **Always use a fresh `name` for the replacement.** Reusing the plugin rule's name has two failure modes — same name + no `disabledRules` keeps both rules (your customization silently fails to apply) and same name + `disabledRules` filters out both (silent fail-OPEN, the worst outcome for a safety rule). The git plugin's [Customization](./src/plugins/git/README.md#customization) section walks through worked examples (soften the reason text; cwd-based exemption with the array-form `cwd:` predicate's `onUnknown: "allow"` pin to keep `not:` carve-outs fail-closed under walker-unknown cwd).
683
697
 
698
+ ### Exemptions (the registry)
699
+
700
+ **Exemptions narrow a guard rule without copying or replacing it.** An `Exemption` is a name-keyed carve-out: when its `when` clause matches a candidate, the target rule does NOT fire — evaluation continues to the next rule exactly as if the rule had missed.
701
+
702
+ ```ts
703
+ import { defineConfig } from "@cad0p/pi-steering";
704
+ import gitPlugin from "@cad0p/pi-steering/plugins/git";
705
+
706
+ export default defineConfig({
707
+ plugins: [gitPlugin],
708
+ exemptions: [
709
+ {
710
+ rule: "no-main-commit",
711
+ when: { cwd: /\/Goldmine\// },
712
+ },
713
+ ],
714
+ });
715
+ ```
716
+
717
+ **Accumulation, not replacement.** Exemptions attach by target name to whichever rule wins that name after `disabledRules` filtering — the winning rule's body doesn't matter, only its name. Config-layer exemptions UNION across layers (project + global both apply, no inner-wins), and plugin-shipped exemptions (`Plugin.exemptions`) stack on top. Multiple exemptions for the same rule are OR-ed: ANY matching clause exempts. Duplicates are idempotent; there is no collision concept.
718
+
719
+ Inside `defineConfig`, `exemptions[].rule` is typo-checked against the same rule-name union as `disabledRules`, and `when.happened.event` narrows against the config's `writes` union.
720
+
721
+ **Fail-closed is STRICT — no escape hatch.** Exemption clauses evaluate with an "allow"-default projection — the OPPOSITE default from rule `when:` clauses. A predicate that can't resolve (walker-unknown cwd, a throwing handler, an unregistered predicate key) counts as "does not match", so the guard still fires. Exemptions are always fail-closed: an unknown walker value never exempts; the target rule's own `onUnknown` policy decides. `onUnknown` cannot be written inside an exemption (compile error; rejected at load if smuggled via `as any` / plain JS). A carve-out — even one shipped by a third-party plugin — can never weaken the guard's fail-closed posture.
722
+
723
+ **Interplay with disables.** An exemption targeting a rule that exists but is disabled (via `disabledRules` or a disabled plugin) is inert and silent — by-design disable, no diagnostic. An exemption targeting a rule name that doesn't exist anywhere in the merged config surfaces an `exemption-orphan` warning at factory time (strict mode throws), so typos fail loudly instead of silently shipping a dead carve-out.
724
+
725
+ **`unless` disambiguation.** `Rule.unless` is a per-rule, same-rule-scope optional exemption field. The registry is the cross-plugin ACCUMULATION mechanism: plugin A can exempt rule B (shipped by another plugin) by name, and multiple authors' carve-outs stack. `unless` cannot do that — it only lives on the rule it exempts.
726
+
727
+ `pi-steering list` renders the merged Exemptions section (only when non-empty) and the JSON output carries an additive `exemptions` key; see the [CLI](#cli) section.
728
+
684
729
  ## Walker extensibility
685
730
 
686
731
  Plugin authors who need a new walker state dimension (something beyond `cwd` / `env` / `branch`) register a `Tracker<T>` under `Plugin.trackers`. The engine composes trackers at config load and feeds the merged map into unbash-walker's `walk()`.
@@ -781,7 +826,7 @@ The `examples/work-item-plugin` tests use exactly this pattern.
781
826
 
782
827
  ### `pi-steering list`
783
828
 
784
- Walk up from cwd, load every `.pi/steering/index.ts` / `.pi/steering.ts` layer, and print the resolved state:
829
+ Load the project layer (`<cwd>/.pi/steering/`) and the global layer (`~/.pi/agent/steering/`), merge them project-first, and print the resolved state:
785
830
 
786
831
  ```bash
787
832
  $ pi-steering list
@@ -790,7 +835,7 @@ Resolved config: 1 plugin, 2 rules, 0 observers.
790
835
  git [pi-steering/plugins/git]
791
836
  no-main-commit bash when: branch
792
837
 
793
- User (.pi/steering/index.ts):
838
+ User (project + global):
794
839
  no-force-push bash
795
840
 
796
841
  Disabled: (none)
@@ -832,9 +877,9 @@ pi-steering is a guardrail layer, not a sandbox. Several parts of the system exe
832
877
 
833
878
  ### Config execution
834
879
 
835
- `.pi/steering/index.ts` (and the `.pi/steering.ts` shorthand) is **arbitrary TypeScript executed at extension factory time with your full user privileges**. The loader walks from the launch cwd up to `$HOME`, importing every `.pi/steering/` directory it finds along the way, and merges them inner-first. The bridge factory awaits the load before pi continues startup, so any throw from your config (or from a colliding plugin set) lands in pi's `[Extension issues]` diagnostic block at startup.
880
+ `.pi/steering/index.ts` (and the `.pi/steering.ts` shorthand) is **arbitrary TypeScript executed at extension factory time with your full user privileges**. The loader reads exactly two layers the project layer at `<launch-cwd>/.pi/steering/` and the global layer at `<agentDir>/steering/` and merges them project-first (the project layer wins on name collisions). The bridge factory awaits the load before pi continues startup, so any throw from your config (or from a colliding plugin set) lands in pi's `[Extension issues]` diagnostic block at startup.
836
881
 
837
- Implication: running pi inside a directory hierarchy whose steering configs you don't trust is equivalent to running `node -e '…'` with that same file. Symlinks in the walk-up chain are followed — a symlinked `.pi/steering/` landing in an unexpected directory executes as if it had been placed there directly.
882
+ Implication: running pi inside a directory hierarchy whose steering configs you don't trust is equivalent to running `node -e '…'` with that same file. Symlinked config directories are followed — a symlinked `.pi/steering/` landing in an unexpected directory executes as if it had been placed there directly.
838
883
 
839
884
  Only run pi in directory hierarchies whose steering configs you trust.
840
885
 
@@ -9,9 +9,10 @@ import type { EvaluatorHost } from "./evaluator-internals/context.ts";
9
9
  * - restore `process.env["HOME"]` and recursively remove the temp
10
10
  * dir on teardown.
11
11
  *
12
- * Used by every test surface that exercises the loader walk-up
13
- * (`index.test.ts`, `loader.test.ts`, `internal/session-runtime.test.ts`)
14
- * so the per-file scratch-HOME boilerplate stays in one place.
12
+ * Used by every test surface that exercises the loader's two-layer
13
+ * discovery (`index.test.ts`, `loader.test.ts`,
14
+ * `internal/session-runtime.test.ts`) so the per-file scratch-HOME
15
+ * boilerplate stays in one place.
15
16
  *
16
17
  * The temp dir path is exposed via the optional `onReady` callback,
17
18
  * fired inside `beforeEach`; tests typically stash it in a
@@ -19,7 +20,7 @@ import type { EvaluatorHost } from "./evaluator-internals/context.ts";
19
20
  */
20
21
  export declare function useIsolatedHome(prefix: string, onReady?: (tmp: string) => void): void;
21
22
  /**
22
- * Like {@link useIsolatedHome} but also chdirs into the scratch dir, so factory-time tests find the per-test config via the loader walk-up. macOS tmpdir is a symlink; canonicalized via `realpathSync` so cwd-mismatch tests don't see false-divergence.
23
+ * Like {@link useIsolatedHome} but also chdirs into the scratch dir, so factory-time tests find the per-test config via the loader's project layer. macOS tmpdir is a symlink; canonicalized via `realpathSync` so cwd-mismatch tests don't see false-divergence.
23
24
  */
24
25
  export declare function useScratchHome(prefix: string, onReady?: (tmp: string) => void): void;
25
26
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"__test-helpers__.d.ts","sourceRoot":"","sources":["../src/__test-helpers__.ts"],"names":[],"mappings":"AAoCA,OAAO,KAAK,EACV,gBAAgB,EAChB,UAAU,IAAI,YAAY,EAC3B,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAMtE;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAC9B,IAAI,CAcN;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAC9B,IAAI,CAkBN;AAMD;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAG7E;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAItE;AAMD;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,OAAO,CACrB,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,aAAa,CAAC,WAAW,CAAM,GACvC,gBAAgB,CAUlB;AAMD;;;;;;;;GAQG;AACH,MAAM,WAAW,WAAY,SAAQ,aAAa;IAChD,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxE,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC1D,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC;CACjC;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE;IACxC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;CAC5E,GAAG,WAAW,CA+Bd"}
1
+ {"version":3,"file":"__test-helpers__.d.ts","sourceRoot":"","sources":["../src/__test-helpers__.ts"],"names":[],"mappings":"AAoCA,OAAO,KAAK,EACV,gBAAgB,EAChB,UAAU,IAAI,YAAY,EAC3B,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAMtE;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAC9B,IAAI,CAcN;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAC9B,IAAI,CAkBN;AAMD;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAG7E;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAItE;AAMD;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,OAAO,CACrB,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,aAAa,CAAC,WAAW,CAAM,GACvC,gBAAgB,CAUlB;AAMD;;;;;;;;GAQG;AACH,MAAM,WAAW,WAAY,SAAQ,aAAa;IAChD,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxE,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC1D,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC;CACjC;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE;IACxC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;CAC5E,GAAG,WAAW,CA+Bd"}
@@ -38,9 +38,10 @@ import { afterEach, beforeEach } from "node:test";
38
38
  * - restore `process.env["HOME"]` and recursively remove the temp
39
39
  * dir on teardown.
40
40
  *
41
- * Used by every test surface that exercises the loader walk-up
42
- * (`index.test.ts`, `loader.test.ts`, `internal/session-runtime.test.ts`)
43
- * so the per-file scratch-HOME boilerplate stays in one place.
41
+ * Used by every test surface that exercises the loader's two-layer
42
+ * discovery (`index.test.ts`, `loader.test.ts`,
43
+ * `internal/session-runtime.test.ts`) so the per-file scratch-HOME
44
+ * boilerplate stays in one place.
44
45
  *
45
46
  * The temp dir path is exposed via the optional `onReady` callback,
46
47
  * fired inside `beforeEach`; tests typically stash it in a
@@ -64,7 +65,7 @@ export function useIsolatedHome(prefix, onReady) {
64
65
  });
65
66
  }
66
67
  /**
67
- * Like {@link useIsolatedHome} but also chdirs into the scratch dir, so factory-time tests find the per-test config via the loader walk-up. macOS tmpdir is a symlink; canonicalized via `realpathSync` so cwd-mismatch tests don't see false-divergence.
68
+ * Like {@link useIsolatedHome} but also chdirs into the scratch dir, so factory-time tests find the per-test config via the loader's project layer. macOS tmpdir is a symlink; canonicalized via `realpathSync` so cwd-mismatch tests don't see false-divergence.
68
69
  */
69
70
  export function useScratchHome(prefix, onReady) {
70
71
  let tmp;
@@ -1 +1 @@
1
- {"version":3,"file":"__test-helpers__.js","sourceRoot":"","sources":["../src/__test-helpers__.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"__test-helpers__.js","sourceRoot":"","sources":["../src/__test-helpers__.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"pi-steering.d.ts","sourceRoot":"","sources":["../../src/bin/pi-steering.ts"],"names":[],"mappings":";AAsCA;;;;;GAKG;AACH,wBAAsB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAkB1D"}
1
+ {"version":3,"file":"pi-steering.d.ts","sourceRoot":"","sources":["../../src/bin/pi-steering.ts"],"names":[],"mappings":";AAwCA;;;;;GAKG;AACH,wBAAsB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAkB1D"}
@@ -8,7 +8,8 @@
8
8
  * Convert a v1 JSON config to the v2 TS config shape.
9
9
  *
10
10
  * pi-steering list [--format=text|json]
11
- * Resolve the walk-up config from the CWD and print the
11
+ * Resolve the two-layer config (project `<cwd>/.pi/steering/` +
12
+ * global `<agentDir>/steering/`) from the CWD and print the
12
13
  * effective plugins / rules / observers / disables.
13
14
  *
14
15
  * Exit codes:
@@ -59,10 +60,12 @@ SUBCOMMANDS
59
60
  the JSON-to-TS conversion surface and rejected features.
60
61
 
61
62
  list [--format=text|json]
62
- Load the effective config for the current directory (walk-up
63
- from cwd) and print the resolved plugins, rules, and observers,
64
- grouped by source. Useful for answering "which rules are
65
- active here?" without reading the config files by hand.
63
+ Load the effective config for the current directory (project
64
+ layer at <cwd>/.pi/steering/ + global layer at
65
+ <agentDir>/steering/) and print the resolved plugins, rules,
66
+ and observers, grouped by source. Useful for answering "which
67
+ rules are active here?" without reading the config files by
68
+ hand.
66
69
 
67
70
  OPTIONS
68
71
  -h, --help Show this help.
@@ -184,8 +187,9 @@ async function runList(args) {
184
187
  return 1;
185
188
  }
186
189
  }
187
- // Walk up from cwd and merge. CLI deliberately omits
188
- // DEFAULT_PLUGINS / DEFAULT_RULES; runtime injects them.
190
+ // Load project layer (cwd) + global layer (agent dir) and merge.
191
+ // CLI deliberately omits DEFAULT_PLUGINS / DEFAULT_RULES; runtime
192
+ // injects them.
189
193
  let layers;
190
194
  let loaderDiagnostics = [];
191
195
  try {
@@ -240,10 +244,11 @@ async function runList(args) {
240
244
  /**
241
245
  * CLI variant of the merge pipeline. Redirects `console.info`
242
246
  * breadcrumbs (disabled-plugin / disabled-rule / dropped-observer)
243
- * onto stderr so stdout stays clean for `--format=json`. After
244
- * {@link runMergerPipeline}, mirrors {@link buildSessionRuntime}'s
245
- * `disabledRules` filter + `finalizePluginState` so `pi-steering
246
- * list` reports the same observer-drop set production sees.
247
+ * onto stderr so stdout stays clean for `--format=json`. Loads the
248
+ * project + global layers and merges them inner-first (project wins),
249
+ * then mirrors {@link buildSessionRuntime}'s `disabledRules` filter +
250
+ * `finalizePluginState` so `pi-steering list` reports the same
251
+ * observer-drop set production sees.
247
252
  */
248
253
  function runCliMergeWithInfoCapture(layers) {
249
254
  const originalInfo = console.info;
@@ -265,7 +270,7 @@ function runCliMergeWithInfoCapture(layers) {
265
270
  // what production sees.
266
271
  const disabledRules = new Set(merged.disabledRules ?? []);
267
272
  const userRules = (merged.rules ?? []).filter((r) => !disabledRules.has(r.name));
268
- finalizePluginState(userRules, resolved.rules, userObservers, resolved.observers);
273
+ finalizePluginState(userRules, resolved.rules, userObservers, resolved.observers, merged.exemptions ?? [], resolved.exemptions ?? []);
269
274
  }
270
275
  return { config: merged, diagnostics };
271
276
  }
@@ -279,9 +284,10 @@ function printListHelp() {
279
284
  USAGE
280
285
  pi-steering list [--format=text|json]
281
286
 
282
- Walks up from the current directory looking for .pi/steering/index.ts
283
- (or .pi/steering.ts) at each ancestor. Merges the layers inner-first
284
- and prints the effective plugins, rules, and observers.
287
+ Loads the project layer (<cwd>/.pi/steering/) and the global layer
288
+ (~/.pi/agent/steering/, or $PI_CODING_AGENT_DIR/steering) and prints
289
+ the effective plugins, rules, and observers. Project layer wins on
290
+ rule-name collision.
285
291
 
286
292
  FLAGS
287
293
  --format=text (default) human-readable grouped output
@@ -339,6 +345,13 @@ function renderListJSON(config) {
339
345
  plugins,
340
346
  userRules: (config.rules ?? []).map((r) => ruleJSON(r, disabledSet)),
341
347
  userObservers: (config.observers ?? []).map((o) => observerJSON(o)),
348
+ // Additive `exemptions` key: flat rows with source labels,
349
+ // mirroring the text section. Plugin exemptions carry the
350
+ // plugin's name; config-layer exemptions carry `"config"`.
351
+ exemptions: [
352
+ ...(config.plugins ?? []).flatMap((p) => (p.exemptions ?? []).map((e) => exemptionJSON(e, p.name))),
353
+ ...(config.exemptions ?? []).map((e) => exemptionJSON(e, "config")),
354
+ ],
342
355
  disabled: {
343
356
  rules: config.disabledRules ?? [],
344
357
  plugins: config.disabledPlugins ?? [],
@@ -352,6 +365,7 @@ function emptyListJSON() {
352
365
  plugins: [],
353
366
  userRules: [],
354
367
  userObservers: [],
368
+ exemptions: [],
355
369
  disabled: { rules: [], plugins: [] },
356
370
  defaultNoOverride: null,
357
371
  disableDefaults: null,
@@ -371,6 +385,13 @@ function observerJSON(o) {
371
385
  writes: o.writes ?? [],
372
386
  };
373
387
  }
388
+ function exemptionJSON(e, source) {
389
+ return {
390
+ rule: e.rule,
391
+ when: whenSummaryKeys(e.when),
392
+ source,
393
+ };
394
+ }
374
395
  /**
375
396
  * Render the config as a grouped text block.
376
397
  *
@@ -382,7 +403,7 @@ function observerJSON(o) {
382
403
  * no-main-commit bash when: branch
383
404
  * ...
384
405
  *
385
- * User (.pi/steering/index.ts):
406
+ * User (project + global):
386
407
  * (none)
387
408
  *
388
409
  * Disabled: (none)
@@ -415,7 +436,7 @@ function renderListText(config) {
415
436
  lines.push("");
416
437
  }
417
438
  // User block.
418
- lines.push("User (.pi/steering/index.ts):");
439
+ lines.push("User (project + global):");
419
440
  if (userRules.length === 0 && userObservers.length === 0) {
420
441
  lines.push(" (none)");
421
442
  }
@@ -424,6 +445,20 @@ function renderListText(config) {
424
445
  renderObserverLines(userObservers, lines);
425
446
  }
426
447
  lines.push("");
448
+ // Exemptions block — rendered ONLY when non-empty so the pinned
449
+ // empty-case output stays byte-identical. Plugin exemptions carry
450
+ // the plugin's name as source label; config-layer exemptions carry
451
+ // `config`. Rows: `no-main-commit ← napkin (when: cwd)`.
452
+ const exemptionLines = [];
453
+ for (const plugin of plugins) {
454
+ renderExemptionLines(plugin.exemptions ?? [], plugin.name, exemptionLines);
455
+ }
456
+ renderExemptionLines(config.exemptions ?? [], "config", exemptionLines);
457
+ if (exemptionLines.length > 0) {
458
+ lines.push("Exemptions:");
459
+ lines.push(...exemptionLines);
460
+ lines.push("");
461
+ }
427
462
  // Disabled block.
428
463
  if (disabled.length === 0 && disabledPlugins.length === 0) {
429
464
  lines.push("Disabled: (none)");
@@ -458,6 +493,11 @@ function renderObserverLines(observers, lines) {
458
493
  lines.push(` observer: ${o.name}${writes}`);
459
494
  }
460
495
  }
496
+ function renderExemptionLines(exemptions, source, lines) {
497
+ for (const ex of exemptions) {
498
+ lines.push(` ${ex.rule} ← ${source} (when: ${whenSummaryKeys(ex.when)})`);
499
+ }
500
+ }
461
501
  /**
462
502
  * Compact summary of a `TopLevelWhenClause`. Returns a comma-separated list
463
503
  * of keys (e.g. `branch, cwd`). Built-in keys get special labels so
@@ -1 +1 @@
1
- {"version":3,"file":"pi-steering.js","sourceRoot":"","sources":["../../src/bin/pi-steering.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pi-steering.js","sourceRoot":"","sources":["../../src/bin/pi-steering.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"compat.d.ts","sourceRoot":"","sources":["../src/compat.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAQ,cAAc,EAAc,MAAM,aAAa,CAAC;AAEpE;;;;;GAKG;AACH,qBAAa,aAAc,SAAQ,KAAK;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEV,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CAK1C;AAOD;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,cAAc,CAoEtD"}
1
+ {"version":3,"file":"compat.d.ts","sourceRoot":"","sources":["../src/compat.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAQ,cAAc,EAAc,MAAM,aAAa,CAAC;AAEpE;;;;;GAKG;AACH,qBAAa,aAAc,SAAQ,KAAK;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEV,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CAK1C;AAOD;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,cAAc,CAqEtD"}
package/dist/compat.js CHANGED
@@ -36,6 +36,7 @@ export function fromJSON(json) {
36
36
  for (const forbidden of [
37
37
  "plugins",
38
38
  "observers",
39
+ "exemptions",
39
40
  "disablePlugins",
40
41
  "disabledPlugins",
41
42
  "disabledRules",
@@ -1 +1 @@
1
- {"version":3,"file":"compat.js","sourceRoot":"","sources":["../src/compat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compat.js","sourceRoot":"","sources":["../src/compat.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,uBAAuB;AAmCvB;;;;;GAKG;AACH,MAAM,OAAO,aAAc,SAAQ,KAAK;IAC7B,IAAI,CAAS;IAEtB,YAAY,OAAe,EAAE,IAAY;QACvC,KAAK,CAAC,GAAG,OAAO,QAAQ,IAAI,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,sDAAsD;AACtD,SAAS,aAAa,CAAC,CAAU;IAC/B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAa;IACpC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,aAAa,CACrB,yCAAyC,EACzC,QAAQ,CACT,CAAC;IACJ,CAAC;IAED,kEAAkE;IAClE,kEAAkE;IAClE,gEAAgE;IAChE,kCAAkC;IAClC,KAAK,MAAM,SAAS,IAAI;QACtB,SAAS;QACT,WAAW;QACX,YAAY;QACZ,gBAAgB;QAChB,iBAAiB;QACjB,eAAe;QACf,iBAAiB;KACT,EAAE,CAAC;QACX,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;YACtB,MAAM,IAAI,aAAa,CACrB,gCAAgC,SAAS,MAAM;gBAC7C,0DAA0D,EAC5D,UAAU,SAAS,EAAE,CACtB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,GAAG,GAAmB,EAAE,CAAC;IAE/B,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;QAChC,IACE,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YACvB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EAC5C,CAAC;YACD,MAAM,IAAI,aAAa,CACrB,kCAAkC,EAClC,gBAAgB,CACjB,CAAC;QACJ,CAAC;QACD,+DAA+D;QAC/D,8DAA8D;QAC9D,wBAAwB;QACxB,GAAG,CAAC,aAAa,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,mBAAmB,IAAI,IAAI,EAAE,CAAC;QAChC,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACpC,IAAI,OAAO,CAAC,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,aAAa,CACrB,uCAAuC,EACvC,0BAA0B,CAC3B,CAAC;QACJ,CAAC;QACD,GAAG,CAAC,iBAAiB,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,aAAa,CAAC,0BAA0B,EAAE,cAAc,CAAC,CAAC;QACtE,CAAC;QACD,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,iEAAiE;AACjE,SAAS,WAAW,CAAC,GAAY,EAAE,IAAY;IAC7C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,aAAa,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;IAED,gDAAgD;IAChD,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,aAAa,CACrB,mCAAmC,EACnC,GAAG,IAAI,OAAO,CACf,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QAC3D,MAAM,IAAI,aAAa,CACrB,iDAAiD,EACjD,GAAG,IAAI,OAAO,CACf,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACnE,MAAM,IAAI,aAAa,CACrB,uDAAuD,EACvD,GAAG,IAAI,QAAQ,CAChB,CAAC;IACJ,CAAC;IACD,+DAA+D;IAC/D,8DAA8D;IAC9D,0CAA0C;IAC1C,IAAI,IAAI,KAAK,MAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC3C,MAAM,IAAI,aAAa,CACrB,kDAAkD,KAAK,IAAI,EAC3D,GAAG,IAAI,QAAQ,CAChB,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,MAAM,CAAC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACjE,MAAM,IAAI,aAAa,CACrB,GAAG,IAAI,4DAA4D;YACjE,iBAAiB,EACnB,GAAG,IAAI,QAAQ,CAChB,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;IAC/B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,aAAa,CACrB,kEAAkE,EAClE,GAAG,IAAI,UAAU,CAClB,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC7B,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,aAAa,CAAC,2BAA2B,EAAE,GAAG,IAAI,SAAS,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,IAAI,GACR,IAAI,KAAK,MAAM;QACb,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE;QACnD,CAAC,CAAC;YACE,IAAI;YACJ,IAAI;YACJ,6CAA6C;YAC7C,KAAK,EAAE,KAA2B;YAClC,OAAO;YACP,MAAM;SACP,CAAC;IAER,sDAAsD;IACtD,IAAI,UAAU,IAAI,GAAG,EAAE,CAAC;QACtB,MAAM,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC;QAC1B,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC1B,MAAM,IAAI,aAAa,CACrB,2EAA2E,EAC3E,GAAG,IAAI,WAAW,CACnB,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IACpB,CAAC;IACD,IAAI,QAAQ,IAAI,GAAG,EAAE,CAAC;QACpB,MAAM,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxB,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC1B,MAAM,IAAI,aAAa,CACrB,yEAAyE,EACzE,GAAG,IAAI,SAAS,CACjB,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAClB,CAAC;IAED,wBAAwB;IACxB,IAAI,YAAY,IAAI,GAAG,EAAE,CAAC;QACxB,MAAM,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC;QAC5B,IAAI,OAAO,CAAC,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,aAAa,CACrB,gCAAgC,EAChC,GAAG,IAAI,aAAa,CACrB,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;IACtB,CAAC;IAED,qEAAqE;IACrE,+DAA+D;IAC/D,qBAAqB;IACrB,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC;IACvD,CAAC;IAED,kEAAkE;IAClE,sEAAsE;IACtE,IAAI,UAAU,IAAI,GAAG,EAAE,CAAC;QACtB,MAAM,IAAI,aAAa,CACrB,mEAAmE,EACnE,GAAG,IAAI,WAAW,CACnB,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,iEAAiE;AACjE,SAAS,WAAW,CAAC,GAAY,EAAE,IAAY;IAC7C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,aAAa,CAAC,0BAA0B,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,GAAG,GAAe,EAAE,CAAC;IAC3B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;YAClB,MAAM,IAAI,aAAa,CACrB,qCAAqC,GAAG,MAAM;gBAC5C,qFAAqF,EACvF,GAAG,IAAI,IAAI,GAAG,EAAE,CACjB,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;QACjB,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;QACrB,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC1B,MAAM,IAAI,aAAa,CACrB,0CAA0C,EAC1C,GAAG,IAAI,MAAM,CACd,CAAC;QACJ,CAAC;QACD,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;IACd,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -31,7 +31,7 @@
31
31
  * is "use via defineConfig".
32
32
  */
33
33
  import type { DEFAULT_PLUGINS, DEFAULT_RULES } from "./defaults.ts";
34
- import type { Observer, Plugin, Rule, SteeringConfig } from "./schema.ts";
34
+ import type { Exemption, Observer, Plugin, Rule, SteeringConfig } from "./schema.ts";
35
35
  /**
36
36
  * Pull a single projection off every element of an array type.
37
37
  *
@@ -140,13 +140,24 @@ export type AllWrites<P extends readonly Plugin[], R extends readonly Rule[], In
140
140
  * Generic constraints:
141
141
  * - `disabledRules` / `disabledPlugins` typed against the rule / plugin
142
142
  * name unions — typos rejected at compile time.
143
+ * - `exemptions[].rule` typed against the same rule-name union as
144
+ * `disabledRules` — a carve-out targeting a typo'd rule name is
145
+ * rejected at compile time.
143
146
  * - `rules[].when.happened.event` and `rules[].when.happened.since`
144
147
  * are both typed against `AllWrites` — typos rejected at compile
145
- * time.
148
+ * time. `exemptions[].when.happened.*` narrows the same way.
146
149
  */
147
150
  export interface DefineConfigInput<P extends readonly Plugin[], Inline extends readonly Observer[], R extends readonly Rule<AllObserverNames<P, Inline>, AllWrites<P, R, Inline>>[]> extends SteeringConfig {
148
151
  disabledRules?: readonly AllRuleNames<P, R>[];
149
152
  disabledPlugins?: readonly AllPluginNames<P>[];
153
+ /**
154
+ * Guard-rule carve-outs, typed so `rule` must name a real rule
155
+ * (default rules, plugin rules, or inline rules — same union as
156
+ * {@link disabledRules}) and `when.happened.event` narrows against
157
+ * the config's `writes` union. See {@link Exemption} for the
158
+ * accumulation + fail-closed semantics.
159
+ */
160
+ exemptions?: readonly Exemption<AllWrites<P, R, Inline>, AllRuleNames<P, R>>[];
150
161
  plugins?: P;
151
162
  rules?: R;
152
163
  observers?: Inline;
@@ -1 +1 @@
1
- {"version":3,"file":"define-config.d.ts","sourceRoot":"","sources":["../src/define-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"define-config.d.ts","sourceRoot":"","sources":["../src/define-config.ts"],"names":[],"mappings":"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"}
@@ -113,6 +113,12 @@ export function defineConfig(config) {
113
113
  if (config.observers !== undefined) {
114
114
  out.observers = [...config.observers];
115
115
  }
116
+ if (config.exemptions !== undefined) {
117
+ // Shallow copy like the other array slots — the exemption `when`
118
+ // clauses carry function-typed leaves (`condition:`) that must
119
+ // survive the copy by reference; only the outer array is fresh.
120
+ out.exemptions = [...config.exemptions];
121
+ }
116
122
  return out;
117
123
  }
118
124
  //# sourceMappingURL=define-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"define-config.js","sourceRoot":"","sources":["../src/define-config.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,uBAAuB;AA4PvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8EG;AACH,MAAM,UAAU,YAAY,CAO1B,MAAuC;IACvC,kEAAkE;IAClE,6DAA6D;IAC7D,gEAAgE;IAChE,iEAAiE;IACjE,yDAAyD;IACzD,MAAM,GAAG,GAAmB,EAAE,CAAC;IAC/B,IAAI,MAAM,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;QAC3C,GAAG,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;IACnD,CAAC;IACD,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QACvC,GAAG,CAAC,aAAa,GAAG,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,MAAM,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QACzC,GAAG,CAAC,eAAe,GAAG,CAAC,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,MAAM,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QACzC,GAAG,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;IAC/C,CAAC;IACD,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QACxC,GAAG,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;IAC7C,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACjC,8DAA8D;QAC9D,yDAAyD;QACzD,6BAA6B;QAC7B,GAAG,CAAC,OAAO,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAW,CAAC;IAC1C,CAAC;IACD,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACnC,GAAG,CAAC,SAAS,GAAG,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"define-config.js","sourceRoot":"","sources":["../src/define-config.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,uBAAuB;AA2QvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8EG;AACH,MAAM,UAAU,YAAY,CAO1B,MAAuC;IACvC,kEAAkE;IAClE,6DAA6D;IAC7D,gEAAgE;IAChE,iEAAiE;IACjE,yDAAyD;IACzD,MAAM,GAAG,GAAmB,EAAE,CAAC;IAC/B,IAAI,MAAM,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;QAC3C,GAAG,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;IACnD,CAAC;IACD,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QACvC,GAAG,CAAC,aAAa,GAAG,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,MAAM,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QACzC,GAAG,CAAC,eAAe,GAAG,CAAC,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,MAAM,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QACzC,GAAG,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;IAC/C,CAAC;IACD,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QACxC,GAAG,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;IAC7C,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACjC,8DAA8D;QAC9D,yDAAyD;QACzD,6BAA6B;QAC7B,GAAG,CAAC,OAAO,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAW,CAAC;IAC1C,CAAC;IACD,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACnC,GAAG,CAAC,SAAS,GAAG,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACpC,iEAAiE;QACjE,+DAA+D;QAC/D,gEAAgE;QAChE,GAAG,CAAC,UAAU,GAAG,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}