@cad0p/pi-steering 0.1.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 (246) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/LICENSE +29 -0
  3. package/README.md +920 -0
  4. package/dist/__test-helpers__.d.ts +95 -0
  5. package/dist/__test-helpers__.d.ts.map +1 -0
  6. package/dist/__test-helpers__.js +174 -0
  7. package/dist/__test-helpers__.js.map +1 -0
  8. package/dist/bin/pi-steering.d.ts +9 -0
  9. package/dist/bin/pi-steering.d.ts.map +1 -0
  10. package/dist/bin/pi-steering.js +506 -0
  11. package/dist/bin/pi-steering.js.map +1 -0
  12. package/dist/compat.d.ts +50 -0
  13. package/dist/compat.d.ts.map +1 -0
  14. package/dist/compat.js +180 -0
  15. package/dist/compat.js.map +1 -0
  16. package/dist/defaults.d.ts +61 -0
  17. package/dist/defaults.d.ts.map +1 -0
  18. package/dist/defaults.js +106 -0
  19. package/dist/defaults.js.map +1 -0
  20. package/dist/define-config.d.ts +235 -0
  21. package/dist/define-config.d.ts.map +1 -0
  22. package/dist/define-config.js +118 -0
  23. package/dist/define-config.js.map +1 -0
  24. package/dist/define-predicate.d.ts +49 -0
  25. package/dist/define-predicate.d.ts.map +1 -0
  26. package/dist/define-predicate.js +35 -0
  27. package/dist/define-predicate.js.map +1 -0
  28. package/dist/evaluator-internals/context.d.ts +186 -0
  29. package/dist/evaluator-internals/context.d.ts.map +1 -0
  30. package/dist/evaluator-internals/context.js +219 -0
  31. package/dist/evaluator-internals/context.js.map +1 -0
  32. package/dist/evaluator-internals/override.d.ts +19 -0
  33. package/dist/evaluator-internals/override.d.ts.map +1 -0
  34. package/dist/evaluator-internals/override.js +79 -0
  35. package/dist/evaluator-internals/override.js.map +1 -0
  36. package/dist/evaluator-internals/predicates.d.ts +152 -0
  37. package/dist/evaluator-internals/predicates.d.ts.map +1 -0
  38. package/dist/evaluator-internals/predicates.js +849 -0
  39. package/dist/evaluator-internals/predicates.js.map +1 -0
  40. package/dist/evaluator-internals/speculative-synthesis.d.ts +102 -0
  41. package/dist/evaluator-internals/speculative-synthesis.d.ts.map +1 -0
  42. package/dist/evaluator-internals/speculative-synthesis.js +101 -0
  43. package/dist/evaluator-internals/speculative-synthesis.js.map +1 -0
  44. package/dist/evaluator.d.ts +101 -0
  45. package/dist/evaluator.d.ts.map +1 -0
  46. package/dist/evaluator.js +714 -0
  47. package/dist/evaluator.js.map +1 -0
  48. package/dist/helpers/walker-unknown-cwd-reason.d.ts +68 -0
  49. package/dist/helpers/walker-unknown-cwd-reason.d.ts.map +1 -0
  50. package/dist/helpers/walker-unknown-cwd-reason.js +73 -0
  51. package/dist/helpers/walker-unknown-cwd-reason.js.map +1 -0
  52. package/dist/index.d.ts +42 -0
  53. package/dist/index.d.ts.map +1 -0
  54. package/dist/index.js +93 -0
  55. package/dist/index.js.map +1 -0
  56. package/dist/internal/drop-unused-observers.d.ts +43 -0
  57. package/dist/internal/drop-unused-observers.d.ts.map +1 -0
  58. package/dist/internal/drop-unused-observers.js +50 -0
  59. package/dist/internal/drop-unused-observers.js.map +1 -0
  60. package/dist/internal/finalize-plugin-state.d.ts +22 -0
  61. package/dist/internal/finalize-plugin-state.d.ts.map +1 -0
  62. package/dist/internal/finalize-plugin-state.js +14 -0
  63. package/dist/internal/finalize-plugin-state.js.map +1 -0
  64. package/dist/internal/merge-observers.d.ts +30 -0
  65. package/dist/internal/merge-observers.d.ts.map +1 -0
  66. package/dist/internal/merge-observers.js +27 -0
  67. package/dist/internal/merge-observers.js.map +1 -0
  68. package/dist/internal/pattern-utils.d.ts +33 -0
  69. package/dist/internal/pattern-utils.d.ts.map +1 -0
  70. package/dist/internal/pattern-utils.js +20 -0
  71. package/dist/internal/pattern-utils.js.map +1 -0
  72. package/dist/internal/ref-text.d.ts +11 -0
  73. package/dist/internal/ref-text.d.ts.map +1 -0
  74. package/dist/internal/ref-text.js +15 -0
  75. package/dist/internal/ref-text.js.map +1 -0
  76. package/dist/internal/session-runtime.d.ts +44 -0
  77. package/dist/internal/session-runtime.d.ts.map +1 -0
  78. package/dist/internal/session-runtime.js +143 -0
  79. package/dist/internal/session-runtime.js.map +1 -0
  80. package/dist/internal/watch-matcher.d.ts +56 -0
  81. package/dist/internal/watch-matcher.d.ts.map +1 -0
  82. package/dist/internal/watch-matcher.js +179 -0
  83. package/dist/internal/watch-matcher.js.map +1 -0
  84. package/dist/loader.d.ts +97 -0
  85. package/dist/loader.d.ts.map +1 -0
  86. package/dist/loader.js +527 -0
  87. package/dist/loader.js.map +1 -0
  88. package/dist/observer-dispatcher.d.ts +69 -0
  89. package/dist/observer-dispatcher.d.ts.map +1 -0
  90. package/dist/observer-dispatcher.js +184 -0
  91. package/dist/observer-dispatcher.js.map +1 -0
  92. package/dist/plugin-merger.d.ts +175 -0
  93. package/dist/plugin-merger.d.ts.map +1 -0
  94. package/dist/plugin-merger.js +450 -0
  95. package/dist/plugin-merger.js.map +1 -0
  96. package/dist/plugins/git/branch-tracker.d.ts +85 -0
  97. package/dist/plugins/git/branch-tracker.d.ts.map +1 -0
  98. package/dist/plugins/git/branch-tracker.js +181 -0
  99. package/dist/plugins/git/branch-tracker.js.map +1 -0
  100. package/dist/plugins/git/cwd-extensions.d.ts +10 -0
  101. package/dist/plugins/git/cwd-extensions.d.ts.map +1 -0
  102. package/dist/plugins/git/cwd-extensions.js +155 -0
  103. package/dist/plugins/git/cwd-extensions.js.map +1 -0
  104. package/dist/plugins/git/git-ops.d.ts +89 -0
  105. package/dist/plugins/git/git-ops.d.ts.map +1 -0
  106. package/dist/plugins/git/git-ops.js +107 -0
  107. package/dist/plugins/git/git-ops.js.map +1 -0
  108. package/dist/plugins/git/index.d.ts +225 -0
  109. package/dist/plugins/git/index.d.ts.map +1 -0
  110. package/dist/plugins/git/index.js +52 -0
  111. package/dist/plugins/git/index.js.map +1 -0
  112. package/dist/plugins/git/predicates.d.ts +312 -0
  113. package/dist/plugins/git/predicates.d.ts.map +1 -0
  114. package/dist/plugins/git/predicates.js +580 -0
  115. package/dist/plugins/git/predicates.js.map +1 -0
  116. package/dist/plugins/git/rules.d.ts +209 -0
  117. package/dist/plugins/git/rules.d.ts.map +1 -0
  118. package/dist/plugins/git/rules.js +267 -0
  119. package/dist/plugins/git/rules.js.map +1 -0
  120. package/dist/schema.d.ts +1799 -0
  121. package/dist/schema.d.ts.map +1 -0
  122. package/dist/schema.js +4 -0
  123. package/dist/schema.js.map +1 -0
  124. package/dist/testing/index.d.ts +621 -0
  125. package/dist/testing/index.d.ts.map +1 -0
  126. package/dist/testing/index.js +747 -0
  127. package/dist/testing/index.js.map +1 -0
  128. package/examples/README.md +83 -0
  129. package/examples/combined-git-discipline/README.md +52 -0
  130. package/examples/combined-git-discipline/node_modules/.bin/pi-steering +43 -0
  131. package/examples/combined-git-discipline/package.json +18 -0
  132. package/examples/combined-git-discipline/steering.json +27 -0
  133. package/examples/combined-git-discipline/steering.test.ts +42 -0
  134. package/examples/combined-git-discipline/steering.ts +64 -0
  135. package/examples/combined-git-discipline/tsconfig.json +7 -0
  136. package/examples/draft-prs-only/README.md +42 -0
  137. package/examples/draft-prs-only/node_modules/.bin/pi-steering +43 -0
  138. package/examples/draft-prs-only/package.json +18 -0
  139. package/examples/draft-prs-only/steering.json +12 -0
  140. package/examples/draft-prs-only/steering.test.ts +48 -0
  141. package/examples/draft-prs-only/steering.ts +36 -0
  142. package/examples/draft-prs-only/tsconfig.json +7 -0
  143. package/examples/dynamic-reason-runtime-cwd/README.md +148 -0
  144. package/examples/dynamic-reason-runtime-cwd/node_modules/.bin/pi-steering +43 -0
  145. package/examples/dynamic-reason-runtime-cwd/package.json +18 -0
  146. package/examples/dynamic-reason-runtime-cwd/steering.test.ts +130 -0
  147. package/examples/dynamic-reason-runtime-cwd/steering.ts +82 -0
  148. package/examples/dynamic-reason-runtime-cwd/tsconfig.json +7 -0
  149. package/examples/force-push-strict/README.md +75 -0
  150. package/examples/force-push-strict/node_modules/.bin/pi-steering +43 -0
  151. package/examples/force-push-strict/package.json +18 -0
  152. package/examples/force-push-strict/steering.json +12 -0
  153. package/examples/force-push-strict/steering.test.ts +51 -0
  154. package/examples/force-push-strict/steering.ts +54 -0
  155. package/examples/force-push-strict/tsconfig.json +7 -0
  156. package/examples/no-amend/README.md +52 -0
  157. package/examples/no-amend/node_modules/.bin/pi-steering +43 -0
  158. package/examples/no-amend/package.json +18 -0
  159. package/examples/no-amend/steering.cwd-scoped.json +12 -0
  160. package/examples/no-amend/steering.json +11 -0
  161. package/examples/no-amend/steering.test.ts +49 -0
  162. package/examples/no-amend/steering.ts +38 -0
  163. package/examples/no-amend/tsconfig.json +7 -0
  164. package/examples/work-item-plugin/README.md +103 -0
  165. package/examples/work-item-plugin/node_modules/.bin/pi-steering +43 -0
  166. package/examples/work-item-plugin/package.json +19 -0
  167. package/examples/work-item-plugin/src/index.test.ts +168 -0
  168. package/examples/work-item-plugin/src/index.ts +122 -0
  169. package/examples/work-item-plugin/src/observers/npm-test-tracker.test.ts +95 -0
  170. package/examples/work-item-plugin/src/observers/npm-test-tracker.ts +88 -0
  171. package/examples/work-item-plugin/src/observers/retest-required-tracker.test.ts +81 -0
  172. package/examples/work-item-plugin/src/observers/retest-required-tracker.ts +81 -0
  173. package/examples/work-item-plugin/src/predicates/work-item-format.test.ts +157 -0
  174. package/examples/work-item-plugin/src/predicates/work-item-format.ts +99 -0
  175. package/examples/work-item-plugin/src/rules/commit-description-check.test.ts +107 -0
  176. package/examples/work-item-plugin/src/rules/commit-description-check.ts +83 -0
  177. package/examples/work-item-plugin/src/rules/commit-requires-work-item.test.ts +79 -0
  178. package/examples/work-item-plugin/src/rules/commit-requires-work-item.ts +56 -0
  179. package/examples/work-item-plugin/src/rules/push-requires-tests.test.ts +245 -0
  180. package/examples/work-item-plugin/src/rules/push-requires-tests.ts +62 -0
  181. package/examples/work-item-plugin/tsconfig.json +8 -0
  182. package/package.json +88 -0
  183. package/skills/steering-authoring/SKILL.md +102 -0
  184. package/src/INVARIANTS.md +116 -0
  185. package/src/__test-helpers__.ts +243 -0
  186. package/src/bin/pi-steering.test.ts +920 -0
  187. package/src/bin/pi-steering.ts +584 -0
  188. package/src/compat.test.ts +431 -0
  189. package/src/compat.ts +282 -0
  190. package/src/defaults.test.ts +585 -0
  191. package/src/defaults.ts +148 -0
  192. package/src/define-config.test.ts +888 -0
  193. package/src/define-config.ts +375 -0
  194. package/src/define-predicate.test.ts +70 -0
  195. package/src/define-predicate.ts +57 -0
  196. package/src/evaluator-internals/context.ts +290 -0
  197. package/src/evaluator-internals/override.test.ts +99 -0
  198. package/src/evaluator-internals/override.ts +83 -0
  199. package/src/evaluator-internals/predicates.ts +1037 -0
  200. package/src/evaluator-internals/speculative-synthesis.test.ts +411 -0
  201. package/src/evaluator-internals/speculative-synthesis.ts +199 -0
  202. package/src/evaluator.test.ts +6296 -0
  203. package/src/evaluator.ts +1106 -0
  204. package/src/factory-time-load.test.ts +630 -0
  205. package/src/helpers/walker-unknown-cwd-reason.test.ts +73 -0
  206. package/src/helpers/walker-unknown-cwd-reason.ts +83 -0
  207. package/src/index.test.ts +836 -0
  208. package/src/index.ts +229 -0
  209. package/src/internal/drop-unused-observers.test.ts +141 -0
  210. package/src/internal/drop-unused-observers.ts +81 -0
  211. package/src/internal/finalize-plugin-state.ts +43 -0
  212. package/src/internal/merge-observers.ts +51 -0
  213. package/src/internal/pattern-utils.test.ts +52 -0
  214. package/src/internal/pattern-utils.ts +38 -0
  215. package/src/internal/ref-text.test.ts +54 -0
  216. package/src/internal/ref-text.ts +17 -0
  217. package/src/internal/session-runtime.test.ts +629 -0
  218. package/src/internal/session-runtime.ts +201 -0
  219. package/src/internal/watch-matcher.test.ts +326 -0
  220. package/src/internal/watch-matcher.ts +200 -0
  221. package/src/jsdoc-propagation.test.ts +277 -0
  222. package/src/loader.test.ts +1098 -0
  223. package/src/loader.ts +581 -0
  224. package/src/not-block-onunknown.test.ts +554 -0
  225. package/src/observer-dispatcher.test.ts +939 -0
  226. package/src/observer-dispatcher.ts +290 -0
  227. package/src/per-predicate-typing.test.ts +361 -0
  228. package/src/plugin-merger.test.ts +790 -0
  229. package/src/plugin-merger.ts +598 -0
  230. package/src/plugins/git/README.md +485 -0
  231. package/src/plugins/git/branch-tracker.test.ts +281 -0
  232. package/src/plugins/git/branch-tracker.ts +187 -0
  233. package/src/plugins/git/cwd-extensions.test.ts +230 -0
  234. package/src/plugins/git/cwd-extensions.ts +160 -0
  235. package/src/plugins/git/git-ops.test.ts +397 -0
  236. package/src/plugins/git/git-ops.ts +173 -0
  237. package/src/plugins/git/index.ts +253 -0
  238. package/src/plugins/git/integration.test.ts +705 -0
  239. package/src/plugins/git/predicates.test.ts +1401 -0
  240. package/src/plugins/git/predicates.ts +693 -0
  241. package/src/plugins/git/rules.test.ts +1001 -0
  242. package/src/plugins/git/rules.ts +307 -0
  243. package/src/schema.test.ts +259 -0
  244. package/src/schema.ts +1963 -0
  245. package/src/testing/index.test.ts +1696 -0
  246. package/src/testing/index.ts +1472 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"predicates.js","sourceRoot":"","sources":["../../src/evaluator-internals/predicates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Unified speculative-entry synthesis for `when.happened`'s tool_call-
3
+ * scope speculative allow.
4
+ *
5
+ * Replaces the pre-PR-5 specialized speculative-allow path (a pair of
6
+ * helpers on the evaluator that matched observers against prior `&&`
7
+ * refs on a per-call boolean basis). For every bash command
8
+ * ref in an unconditionally-`&&`-reachable segment, for every observer
9
+ * writing an event AND matching the ref via the shared
10
+ * {@link matchesWatch} contract, we produce a synthetic entry that
11
+ * later `happened` evaluations merge with real entries via timestamp
12
+ * ordering.
13
+ *
14
+ * Pure function of `(refs, observers)`. The evaluator wires the
15
+ * output into per-ref `walkerState.events` before running predicates.
16
+ *
17
+ * ## Timestamp convention
18
+ *
19
+ * speculativeTimestamp(ref_j) = SPECULATIVE_BASELINE + 1 + j
20
+ *
21
+ * where `SPECULATIVE_BASELINE = 2^52` — a literal chosen far above
22
+ * any epoch-ms timestamp pi writes on real entries (`Date.now()`
23
+ * returns < 2^48 for any date through ~year 10,890 AD). The speculative
24
+ * timestamp is thus strictly greater than ANY real entry's timestamp,
25
+ * regardless of type or scope. So a speculative `sync-done` at ts
26
+ * `2^52 + 1` beats a real `upstream-failed` at ts `Date.now()` in
27
+ * the since-invalidator comparison.
28
+ *
29
+ * Two properties follow (see the `unification-reconsider` review's
30
+ * "Timestamp reframing" section for the full walk-through):
31
+ *
32
+ * 1. **Strictly newer than every real entry across all types and
33
+ * scopes.** The reserved-range literal sidesteps a per-type
34
+ * max-plus-one approach — which would fail on a two-writes
35
+ * scenario where the since-invalidator's latest real entry is
36
+ * newer than the event type's latest real entry. A speculative
37
+ * entry newer than ALL real entries is newer than any subset.
38
+ *
39
+ * 2. **Relative ordering among multiple speculative writes follows
40
+ * AST order.** Ref at index `j` gets `BASELINE + 1 + j`; a later
41
+ * ref at `k > j` gets `BASELINE + 1 + k`. So
42
+ * `when.happened: { event: X, since: Y }` correctly reads X as
43
+ * stale when Y is written later — the two-speculative-writes-
44
+ * with-since-invalidator correctness case pinned by the
45
+ * `A && B && cr` test in this commit pack.
46
+ *
47
+ * ## Safety
48
+ *
49
+ * **Chain reachability**: only refs with joiner `&&` in an
50
+ * unconditionally-reached segment qualify as eligible producers. The
51
+ * `&&` short-circuit guarantees any later ref that runs saw the
52
+ * producer complete successfully first.
53
+ *
54
+ * **Observer eligibility**: observers must declare
55
+ * `watch.inputMatches.command`. Any-bash-event observers would grant
56
+ * allow for every `foo && cr` regardless of what `foo` does. Non-bash
57
+ * `toolName` watches are rejected early (prior `&&` refs always
58
+ * originate from bash). Other filter fields are delegated to
59
+ * {@link matchesWatch} against a synthesized success event — the
60
+ * single-source-of-truth filter contract gates future new `watch`
61
+ * fields automatically.
62
+ *
63
+ * @internal — not part of the public pi-steering surface.
64
+ */
65
+ import type { CommandRef } from "@cad0p/unbash-walker";
66
+ import type { Observer } from "../schema.ts";
67
+ /**
68
+ * Speculative baseline timestamp. All synthetic entries carry
69
+ * `SPECULATIVE_BASELINE + 1 + astIndex` so they order strictly above
70
+ * any real entry's `timestamp` (real entries are epoch-ms from
71
+ * `Date.now()`, well under `2^48` for any realistic date). See the
72
+ * file-level JSDoc's "Timestamp convention" section for the full
73
+ * rationale and the acknowledged numerical-convention caveat.
74
+ *
75
+ * @internal
76
+ */
77
+ export declare const SPECULATIVE_BASELINE: number;
78
+ /**
79
+ * Speculative session entry. Structurally a superset of real entries
80
+ * (`{ data, timestamp }`) plus a `speculative: true` marker so the
81
+ * built-in `happened` predicate and plugin filters over
82
+ * `walkerState.events` can distinguish synthetic writes from real
83
+ * ones. Default direction (include speculative) matches what
84
+ * `happened` wants; plugins wanting pure historical semantics filter
85
+ * with `.filter(e => !e.speculative)`.
86
+ */
87
+ export interface SyntheticEntry<T = unknown> {
88
+ readonly data: T;
89
+ readonly timestamp: number;
90
+ readonly speculative: true;
91
+ }
92
+ /** Per-ref view: `walkerState.events[customType] → SyntheticEntry[]`. */
93
+ type SyntheticEventsByType = Readonly<Record<string, readonly SyntheticEntry[]>>;
94
+ /** Per-ref output keyed by {@link CommandRef} identity. */
95
+ export type SpeculativeEventsByRef = ReadonlyMap<CommandRef, SyntheticEventsByType>;
96
+ /**
97
+ * Compute per-ref speculative events. See file-level JSDoc for the
98
+ * timestamp convention, reachability model, and observer eligibility.
99
+ */
100
+ export declare function synthesizeSpeculativeEntries(refs: readonly CommandRef[], observers: readonly Observer[]): SpeculativeEventsByRef;
101
+ export {};
102
+ //# sourceMappingURL=speculative-synthesis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"speculative-synthesis.d.ts","sourceRoot":"","sources":["../../src/evaluator-internals/speculative-synthesis.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,QAAU,CAAC;AAE5C;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,OAAO;IACzC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACjB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC;CAC5B;AAED,yEAAyE;AACzE,KAAK,qBAAqB,GAAG,QAAQ,CACnC,MAAM,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,CAAC,CAC1C,CAAC;AAEF,2DAA2D;AAC3D,MAAM,MAAM,sBAAsB,GAAG,WAAW,CAC9C,UAAU,EACV,qBAAqB,CACtB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,SAAS,UAAU,EAAE,EAC3B,SAAS,EAAE,SAAS,QAAQ,EAAE,GAC7B,sBAAsB,CA8ExB"}
@@ -0,0 +1,101 @@
1
+ // SPDX-License-Identifier: MIT
2
+ // Part of pi-steering.
3
+ import { refToText } from "../internal/ref-text.js";
4
+ import { matchesWatch } from "../internal/watch-matcher.js";
5
+ /**
6
+ * Speculative baseline timestamp. All synthetic entries carry
7
+ * `SPECULATIVE_BASELINE + 1 + astIndex` so they order strictly above
8
+ * any real entry's `timestamp` (real entries are epoch-ms from
9
+ * `Date.now()`, well under `2^48` for any realistic date). See the
10
+ * file-level JSDoc's "Timestamp convention" section for the full
11
+ * rationale and the acknowledged numerical-convention caveat.
12
+ *
13
+ * @internal
14
+ */
15
+ export const SPECULATIVE_BASELINE = 2 ** 52;
16
+ /**
17
+ * Compute per-ref speculative events. See file-level JSDoc for the
18
+ * timestamp convention, reachability model, and observer eligibility.
19
+ */
20
+ export function synthesizeSpeculativeEntries(refs, observers) {
21
+ const result = new Map();
22
+ // Reverse index `customType -> observers writing it`, pre-filtered
23
+ // to eligible observers. Stricter than `matchesWatch` on purpose —
24
+ // layered on top, not a reimplementation.
25
+ const observersByWrite = new Map();
26
+ for (const obs of observers) {
27
+ const watch = obs.watch;
28
+ if (!obs.writes || !watch)
29
+ continue;
30
+ if (watch.toolName !== undefined && watch.toolName !== "bash")
31
+ continue;
32
+ if (watch.inputMatches?.["command"] === undefined)
33
+ continue;
34
+ for (const event of obs.writes) {
35
+ const bucket = observersByWrite.get(event);
36
+ if (bucket)
37
+ bucket.push(obs);
38
+ else
39
+ observersByWrite.set(event, [obs]);
40
+ }
41
+ }
42
+ // Fast path: no producing observers → every ref gets empty events.
43
+ if (observersByWrite.size === 0) {
44
+ for (const ref of refs)
45
+ result.set(ref, EMPTY_EVENTS);
46
+ return result;
47
+ }
48
+ // Single left-to-right walk. Each ref sees the active `&&`-chain's
49
+ // speculative events; the switch below carries the joiner semantics.
50
+ let chainEvents = {};
51
+ let reachable = true;
52
+ for (let i = 0; i < refs.length; i++) {
53
+ const ref = refs[i];
54
+ result.set(ref, Object.keys(chainEvents).length === 0 ? EMPTY_EVENTS : chainEvents);
55
+ if (ref.joiner === ";") {
56
+ chainEvents = {};
57
+ reachable = true;
58
+ continue;
59
+ }
60
+ if (ref.joiner !== "&&" || !reachable) {
61
+ chainEvents = {};
62
+ reachable = false;
63
+ continue;
64
+ }
65
+ // Eligible producer: test every (customType, observer) against
66
+ // the shared `matchesWatch` with a synthesized success event.
67
+ // First matching observer per customType wins — a second match
68
+ // is redundant for `happened`'s presence + latest-timestamp
69
+ // verdict. Clone the chain before extending: earlier consumer
70
+ // refs hold frozen references to the old map.
71
+ const refText = refToText(ref);
72
+ let next = null;
73
+ for (const [customType, observersForType] of observersByWrite) {
74
+ for (const obs of observersForType) {
75
+ const matched = matchesWatch(obs.watch, {
76
+ toolName: "bash",
77
+ input: { command: refText },
78
+ output: undefined,
79
+ exitCode: 0,
80
+ });
81
+ if (!matched)
82
+ continue;
83
+ if (next === null)
84
+ next = { ...chainEvents };
85
+ const entry = {
86
+ data: {},
87
+ timestamp: SPECULATIVE_BASELINE + 1 + i,
88
+ speculative: true,
89
+ };
90
+ const existing = next[customType];
91
+ next[customType] = existing ? [...existing, entry] : [entry];
92
+ break;
93
+ }
94
+ }
95
+ if (next !== null)
96
+ chainEvents = next;
97
+ }
98
+ return result;
99
+ }
100
+ const EMPTY_EVENTS = Object.freeze({});
101
+ //# sourceMappingURL=speculative-synthesis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"speculative-synthesis.js","sourceRoot":"","sources":["../../src/evaluator-internals/speculative-synthesis.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,uBAAuB;AAoEvB,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAG5D;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,IAAI,EAAE,CAAC;AA4B5C;;;GAGG;AACH,MAAM,UAAU,4BAA4B,CAC1C,IAA2B,EAC3B,SAA8B;IAE9B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAqC,CAAC;IAE5D,mEAAmE;IACnE,mEAAmE;IACnE,0CAA0C;IAC1C,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAsB,CAAC;IACvD,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK;YAAE,SAAS;QACpC,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,QAAQ,KAAK,MAAM;YAAE,SAAS;QACxE,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,KAAK,SAAS;YAAE,SAAS;QAC5D,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC3C,IAAI,MAAM;gBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;gBACxB,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,IAAI,gBAAgB,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QAChC,KAAK,MAAM,GAAG,IAAI,IAAI;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QACtD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,mEAAmE;IACnE,qEAAqE;IACrE,IAAI,WAAW,GAA8C,EAAE,CAAC;IAChE,IAAI,SAAS,GAAG,IAAI,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;QACrB,MAAM,CAAC,GAAG,CACR,GAAG,EACH,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CACnE,CAAC;QAEF,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACvB,WAAW,GAAG,EAAE,CAAC;YACjB,SAAS,GAAG,IAAI,CAAC;YACjB,SAAS;QACX,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,WAAW,GAAG,EAAE,CAAC;YACjB,SAAS,GAAG,KAAK,CAAC;YAClB,SAAS;QACX,CAAC;QAED,+DAA+D;QAC/D,8DAA8D;QAC9D,+DAA+D;QAC/D,4DAA4D;QAC5D,8DAA8D;QAC9D,8CAA8C;QAC9C,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,IAAI,GAAqD,IAAI,CAAC;QAClE,KAAK,MAAM,CAAC,UAAU,EAAE,gBAAgB,CAAC,IAAI,gBAAgB,EAAE,CAAC;YAC9D,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;gBACnC,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE;oBACtC,QAAQ,EAAE,MAAM;oBAChB,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;oBAC3B,MAAM,EAAE,SAAS;oBACjB,QAAQ,EAAE,CAAC;iBACZ,CAAC,CAAC;gBACH,IAAI,CAAC,OAAO;oBAAE,SAAS;gBACvB,IAAI,IAAI,KAAK,IAAI;oBAAE,IAAI,GAAG,EAAE,GAAG,WAAW,EAAE,CAAC;gBAC7C,MAAM,KAAK,GAAmB;oBAC5B,IAAI,EAAE,EAAE;oBACR,SAAS,EAAE,oBAAoB,GAAG,CAAC,GAAG,CAAC;oBACvC,WAAW,EAAE,IAAI;iBAClB,CAAC;gBACF,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;gBAClC,IAAI,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBAC7D,MAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,IAAI,KAAK,IAAI;YAAE,WAAW,GAAG,IAAI,CAAC;IACxC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,YAAY,GAA0B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * v2 steering evaluator.
3
+ *
4
+ * Assembles the per-tool_call pipeline on top of:
5
+ *
6
+ * - `unbash-walker` — AST parse + command extraction +
7
+ * wrapper expansion + per-ref walker
8
+ * state (cwd today; branch/others once
9
+ * plugins register them).
10
+ * - {@link matchesPatternOrFn} / {@link evaluateWhen} — shared
11
+ * predicate resolution (see
12
+ * `./evaluator-internals/predicates.ts`).
13
+ * - {@link extractOverride} — inline override-comment detection
14
+ * ported from v1 (see
15
+ * `./evaluator-internals/override.ts`).
16
+ * - {@link createExecCache} / {@link createFindEntries} — per-call
17
+ * exec memoization + session-entry
18
+ * filtering (see
19
+ * `./evaluator-internals/context.ts`).
20
+ *
21
+ * Public surface is deliberately small: {@link buildEvaluator} returns
22
+ * an {@link EvaluatorRuntime} whose sole method, {@link
23
+ * EvaluatorRuntime.evaluate}, drives one `tool_call` event through
24
+ * every applicable rule. Phase 3c wires it into the pi extension's
25
+ * `tool_call` listener.
26
+ *
27
+ * Rule ordering (per ADR "Precedence: first-wins everywhere"):
28
+ *
29
+ * 1. `config.rules` — user's top-level rules, first-match-wins.
30
+ * 2. `resolved.rules` — plugin-shipped rules (already deduped /
31
+ * disabled-filtered by the plugin merger).
32
+ *
33
+ * First rule that fires AND isn't overridden wins and returns a block.
34
+ *
35
+ * Internal shape: each applicable rule is fed to {@link
36
+ * evaluateCandidate}, the single predicate-chain used for every tool.
37
+ * Bash rules loop over extracted command refs (one candidate per ref);
38
+ * write / edit produce exactly one candidate. The per-tool axes of
39
+ * variation live in the {@link Candidate} input — the body of
40
+ * `evaluateCandidate` stays tool-agnostic.
41
+ */
42
+ import type { ExtensionContext, ToolCallEvent, ToolCallEventResult } from "@earendil-works/pi-coding-agent";
43
+ import { type EvaluatorHost } from "./evaluator-internals/context.ts";
44
+ import type { ResolvedPluginState } from "./plugin-merger.ts";
45
+ import type { SteeringConfig } from "./schema.ts";
46
+ /**
47
+ * Names of trackers the evaluator wires in directly (not via a plugin).
48
+ * `resolvePlugins` accepts this list as `knownBuiltinTrackers`: plugin
49
+ * `trackerExtensions` targeting these names are kept (so plugins can
50
+ * compose modifiers onto them) without emitting an `extension-orphan`
51
+ * diagnostic.
52
+ *
53
+ * All call sites (`buildSessionRuntime`, `loadHarness`,
54
+ * `loadSteeringConfig`, the `pi-steering list` CLI) import this
55
+ * constant so a future addition (e.g. an `argv` tracker) lights up
56
+ * uniformly across production and the test harness.
57
+ */
58
+ export declare const EVALUATOR_BUILTIN_TRACKERS: readonly ["cwd", "env"];
59
+ /**
60
+ * Runtime-facing evaluator handle. Phase 3c holds an instance per
61
+ * session and calls {@link evaluate} from the pi `tool_call`
62
+ * listener.
63
+ */
64
+ export interface EvaluatorRuntime {
65
+ /**
66
+ * Evaluate a single `tool_call` event against every rule in
67
+ * `config.rules` + `resolved.rules`. Returns:
68
+ * - `{ block: true, reason }` — a rule matched + wasn't overridden.
69
+ * - `undefined` — no rule fires; tool call proceeds.
70
+ */
71
+ evaluate(event: ToolCallEvent, ctx: ExtensionContext, agentLoopIndex: number): Promise<ToolCallEventResult | void>;
72
+ }
73
+ /**
74
+ * Construct an {@link EvaluatorRuntime}.
75
+ *
76
+ * Arguments:
77
+ * - `config` — the user-facing {@link SteeringConfig}. Top-level
78
+ * rules and `defaultNoOverride` live here.
79
+ * - `resolved` — merged plugin state from
80
+ * {@link resolvePlugins}. Source of plugin rules,
81
+ * predicate handlers, and the composed tracker
82
+ * registry for the walker.
83
+ * - `host` — narrow surface exposing pi's `exec` + `appendEntry`
84
+ * (typically `pi` itself in production; tests pass
85
+ * a stub). Kept separate from `ExtensionContext`
86
+ * because the ctx shape does not expose these.
87
+ *
88
+ * Observers (`config.observers + resolved.observers`, user-first
89
+ * deduplicated via {@link mergeObserversUserFirst}) are threaded into
90
+ * {@link prepareBashState} where the walker-level synthesis pass
91
+ * turns them into per-ref speculative events on
92
+ * `walkerState.events`. The built-in `when.happened` predicate merges
93
+ * those with real entries via timestamp ordering. If future versions
94
+ * add a dynamic-reload path (observers added at runtime), this merged
95
+ * list must be rebuilt on change — otherwise `when.happened` with
96
+ * `in: "tool_call"` scope consults a stale observer list. Today
97
+ * there is no dynamic-reload path.
98
+ */
99
+ export declare function buildEvaluator(config: SteeringConfig, resolved: ResolvedPluginState, host: EvaluatorHost): EvaluatorRuntime;
100
+ export type { EvaluatorHost } from "./evaluator-internals/context.ts";
101
+ //# sourceMappingURL=evaluator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../src/evaluator.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AAgBzC,OAAO,EAKL,KAAK,aAAa,EACnB,MAAM,kCAAkC,CAAC;AAc1C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,KAAK,EAKV,cAAc,EAEf,MAAM,aAAa,CAAC;AAMrB;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,0BAA0B,yBAA0B,CAAC;AAMlE;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;OAKG;IACH,QAAQ,CACN,KAAK,EAAE,aAAa,EACpB,GAAG,EAAE,gBAAgB,EACrB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC;CACxC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,mBAAmB,EAC7B,IAAI,EAAE,aAAa,GAClB,gBAAgB,CA8GlB;AA4zBD,YAAY,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC"}