@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.
- package/CHANGELOG.md +36 -0
- package/LICENSE +29 -0
- package/README.md +920 -0
- package/dist/__test-helpers__.d.ts +95 -0
- package/dist/__test-helpers__.d.ts.map +1 -0
- package/dist/__test-helpers__.js +174 -0
- package/dist/__test-helpers__.js.map +1 -0
- package/dist/bin/pi-steering.d.ts +9 -0
- package/dist/bin/pi-steering.d.ts.map +1 -0
- package/dist/bin/pi-steering.js +506 -0
- package/dist/bin/pi-steering.js.map +1 -0
- package/dist/compat.d.ts +50 -0
- package/dist/compat.d.ts.map +1 -0
- package/dist/compat.js +180 -0
- package/dist/compat.js.map +1 -0
- package/dist/defaults.d.ts +61 -0
- package/dist/defaults.d.ts.map +1 -0
- package/dist/defaults.js +106 -0
- package/dist/defaults.js.map +1 -0
- package/dist/define-config.d.ts +235 -0
- package/dist/define-config.d.ts.map +1 -0
- package/dist/define-config.js +118 -0
- package/dist/define-config.js.map +1 -0
- package/dist/define-predicate.d.ts +49 -0
- package/dist/define-predicate.d.ts.map +1 -0
- package/dist/define-predicate.js +35 -0
- package/dist/define-predicate.js.map +1 -0
- package/dist/evaluator-internals/context.d.ts +186 -0
- package/dist/evaluator-internals/context.d.ts.map +1 -0
- package/dist/evaluator-internals/context.js +219 -0
- package/dist/evaluator-internals/context.js.map +1 -0
- package/dist/evaluator-internals/override.d.ts +19 -0
- package/dist/evaluator-internals/override.d.ts.map +1 -0
- package/dist/evaluator-internals/override.js +79 -0
- package/dist/evaluator-internals/override.js.map +1 -0
- package/dist/evaluator-internals/predicates.d.ts +152 -0
- package/dist/evaluator-internals/predicates.d.ts.map +1 -0
- package/dist/evaluator-internals/predicates.js +849 -0
- package/dist/evaluator-internals/predicates.js.map +1 -0
- package/dist/evaluator-internals/speculative-synthesis.d.ts +102 -0
- package/dist/evaluator-internals/speculative-synthesis.d.ts.map +1 -0
- package/dist/evaluator-internals/speculative-synthesis.js +101 -0
- package/dist/evaluator-internals/speculative-synthesis.js.map +1 -0
- package/dist/evaluator.d.ts +101 -0
- package/dist/evaluator.d.ts.map +1 -0
- package/dist/evaluator.js +714 -0
- package/dist/evaluator.js.map +1 -0
- package/dist/helpers/walker-unknown-cwd-reason.d.ts +68 -0
- package/dist/helpers/walker-unknown-cwd-reason.d.ts.map +1 -0
- package/dist/helpers/walker-unknown-cwd-reason.js +73 -0
- package/dist/helpers/walker-unknown-cwd-reason.js.map +1 -0
- package/dist/index.d.ts +42 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +93 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/drop-unused-observers.d.ts +43 -0
- package/dist/internal/drop-unused-observers.d.ts.map +1 -0
- package/dist/internal/drop-unused-observers.js +50 -0
- package/dist/internal/drop-unused-observers.js.map +1 -0
- package/dist/internal/finalize-plugin-state.d.ts +22 -0
- package/dist/internal/finalize-plugin-state.d.ts.map +1 -0
- package/dist/internal/finalize-plugin-state.js +14 -0
- package/dist/internal/finalize-plugin-state.js.map +1 -0
- package/dist/internal/merge-observers.d.ts +30 -0
- package/dist/internal/merge-observers.d.ts.map +1 -0
- package/dist/internal/merge-observers.js +27 -0
- package/dist/internal/merge-observers.js.map +1 -0
- package/dist/internal/pattern-utils.d.ts +33 -0
- package/dist/internal/pattern-utils.d.ts.map +1 -0
- package/dist/internal/pattern-utils.js +20 -0
- package/dist/internal/pattern-utils.js.map +1 -0
- package/dist/internal/ref-text.d.ts +11 -0
- package/dist/internal/ref-text.d.ts.map +1 -0
- package/dist/internal/ref-text.js +15 -0
- package/dist/internal/ref-text.js.map +1 -0
- package/dist/internal/session-runtime.d.ts +44 -0
- package/dist/internal/session-runtime.d.ts.map +1 -0
- package/dist/internal/session-runtime.js +143 -0
- package/dist/internal/session-runtime.js.map +1 -0
- package/dist/internal/watch-matcher.d.ts +56 -0
- package/dist/internal/watch-matcher.d.ts.map +1 -0
- package/dist/internal/watch-matcher.js +179 -0
- package/dist/internal/watch-matcher.js.map +1 -0
- package/dist/loader.d.ts +97 -0
- package/dist/loader.d.ts.map +1 -0
- package/dist/loader.js +527 -0
- package/dist/loader.js.map +1 -0
- package/dist/observer-dispatcher.d.ts +69 -0
- package/dist/observer-dispatcher.d.ts.map +1 -0
- package/dist/observer-dispatcher.js +184 -0
- package/dist/observer-dispatcher.js.map +1 -0
- package/dist/plugin-merger.d.ts +175 -0
- package/dist/plugin-merger.d.ts.map +1 -0
- package/dist/plugin-merger.js +450 -0
- package/dist/plugin-merger.js.map +1 -0
- package/dist/plugins/git/branch-tracker.d.ts +85 -0
- package/dist/plugins/git/branch-tracker.d.ts.map +1 -0
- package/dist/plugins/git/branch-tracker.js +181 -0
- package/dist/plugins/git/branch-tracker.js.map +1 -0
- package/dist/plugins/git/cwd-extensions.d.ts +10 -0
- package/dist/plugins/git/cwd-extensions.d.ts.map +1 -0
- package/dist/plugins/git/cwd-extensions.js +155 -0
- package/dist/plugins/git/cwd-extensions.js.map +1 -0
- package/dist/plugins/git/git-ops.d.ts +89 -0
- package/dist/plugins/git/git-ops.d.ts.map +1 -0
- package/dist/plugins/git/git-ops.js +107 -0
- package/dist/plugins/git/git-ops.js.map +1 -0
- package/dist/plugins/git/index.d.ts +225 -0
- package/dist/plugins/git/index.d.ts.map +1 -0
- package/dist/plugins/git/index.js +52 -0
- package/dist/plugins/git/index.js.map +1 -0
- package/dist/plugins/git/predicates.d.ts +312 -0
- package/dist/plugins/git/predicates.d.ts.map +1 -0
- package/dist/plugins/git/predicates.js +580 -0
- package/dist/plugins/git/predicates.js.map +1 -0
- package/dist/plugins/git/rules.d.ts +209 -0
- package/dist/plugins/git/rules.d.ts.map +1 -0
- package/dist/plugins/git/rules.js +267 -0
- package/dist/plugins/git/rules.js.map +1 -0
- package/dist/schema.d.ts +1799 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +4 -0
- package/dist/schema.js.map +1 -0
- package/dist/testing/index.d.ts +621 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +747 -0
- package/dist/testing/index.js.map +1 -0
- package/examples/README.md +83 -0
- package/examples/combined-git-discipline/README.md +52 -0
- package/examples/combined-git-discipline/node_modules/.bin/pi-steering +43 -0
- package/examples/combined-git-discipline/package.json +18 -0
- package/examples/combined-git-discipline/steering.json +27 -0
- package/examples/combined-git-discipline/steering.test.ts +42 -0
- package/examples/combined-git-discipline/steering.ts +64 -0
- package/examples/combined-git-discipline/tsconfig.json +7 -0
- package/examples/draft-prs-only/README.md +42 -0
- package/examples/draft-prs-only/node_modules/.bin/pi-steering +43 -0
- package/examples/draft-prs-only/package.json +18 -0
- package/examples/draft-prs-only/steering.json +12 -0
- package/examples/draft-prs-only/steering.test.ts +48 -0
- package/examples/draft-prs-only/steering.ts +36 -0
- package/examples/draft-prs-only/tsconfig.json +7 -0
- package/examples/dynamic-reason-runtime-cwd/README.md +148 -0
- package/examples/dynamic-reason-runtime-cwd/node_modules/.bin/pi-steering +43 -0
- package/examples/dynamic-reason-runtime-cwd/package.json +18 -0
- package/examples/dynamic-reason-runtime-cwd/steering.test.ts +130 -0
- package/examples/dynamic-reason-runtime-cwd/steering.ts +82 -0
- package/examples/dynamic-reason-runtime-cwd/tsconfig.json +7 -0
- package/examples/force-push-strict/README.md +75 -0
- package/examples/force-push-strict/node_modules/.bin/pi-steering +43 -0
- package/examples/force-push-strict/package.json +18 -0
- package/examples/force-push-strict/steering.json +12 -0
- package/examples/force-push-strict/steering.test.ts +51 -0
- package/examples/force-push-strict/steering.ts +54 -0
- package/examples/force-push-strict/tsconfig.json +7 -0
- package/examples/no-amend/README.md +52 -0
- package/examples/no-amend/node_modules/.bin/pi-steering +43 -0
- package/examples/no-amend/package.json +18 -0
- package/examples/no-amend/steering.cwd-scoped.json +12 -0
- package/examples/no-amend/steering.json +11 -0
- package/examples/no-amend/steering.test.ts +49 -0
- package/examples/no-amend/steering.ts +38 -0
- package/examples/no-amend/tsconfig.json +7 -0
- package/examples/work-item-plugin/README.md +103 -0
- package/examples/work-item-plugin/node_modules/.bin/pi-steering +43 -0
- package/examples/work-item-plugin/package.json +19 -0
- package/examples/work-item-plugin/src/index.test.ts +168 -0
- package/examples/work-item-plugin/src/index.ts +122 -0
- package/examples/work-item-plugin/src/observers/npm-test-tracker.test.ts +95 -0
- package/examples/work-item-plugin/src/observers/npm-test-tracker.ts +88 -0
- package/examples/work-item-plugin/src/observers/retest-required-tracker.test.ts +81 -0
- package/examples/work-item-plugin/src/observers/retest-required-tracker.ts +81 -0
- package/examples/work-item-plugin/src/predicates/work-item-format.test.ts +157 -0
- package/examples/work-item-plugin/src/predicates/work-item-format.ts +99 -0
- package/examples/work-item-plugin/src/rules/commit-description-check.test.ts +107 -0
- package/examples/work-item-plugin/src/rules/commit-description-check.ts +83 -0
- package/examples/work-item-plugin/src/rules/commit-requires-work-item.test.ts +79 -0
- package/examples/work-item-plugin/src/rules/commit-requires-work-item.ts +56 -0
- package/examples/work-item-plugin/src/rules/push-requires-tests.test.ts +245 -0
- package/examples/work-item-plugin/src/rules/push-requires-tests.ts +62 -0
- package/examples/work-item-plugin/tsconfig.json +8 -0
- package/package.json +88 -0
- package/skills/steering-authoring/SKILL.md +102 -0
- package/src/INVARIANTS.md +116 -0
- package/src/__test-helpers__.ts +243 -0
- package/src/bin/pi-steering.test.ts +920 -0
- package/src/bin/pi-steering.ts +584 -0
- package/src/compat.test.ts +431 -0
- package/src/compat.ts +282 -0
- package/src/defaults.test.ts +585 -0
- package/src/defaults.ts +148 -0
- package/src/define-config.test.ts +888 -0
- package/src/define-config.ts +375 -0
- package/src/define-predicate.test.ts +70 -0
- package/src/define-predicate.ts +57 -0
- package/src/evaluator-internals/context.ts +290 -0
- package/src/evaluator-internals/override.test.ts +99 -0
- package/src/evaluator-internals/override.ts +83 -0
- package/src/evaluator-internals/predicates.ts +1037 -0
- package/src/evaluator-internals/speculative-synthesis.test.ts +411 -0
- package/src/evaluator-internals/speculative-synthesis.ts +199 -0
- package/src/evaluator.test.ts +6296 -0
- package/src/evaluator.ts +1106 -0
- package/src/factory-time-load.test.ts +630 -0
- package/src/helpers/walker-unknown-cwd-reason.test.ts +73 -0
- package/src/helpers/walker-unknown-cwd-reason.ts +83 -0
- package/src/index.test.ts +836 -0
- package/src/index.ts +229 -0
- package/src/internal/drop-unused-observers.test.ts +141 -0
- package/src/internal/drop-unused-observers.ts +81 -0
- package/src/internal/finalize-plugin-state.ts +43 -0
- package/src/internal/merge-observers.ts +51 -0
- package/src/internal/pattern-utils.test.ts +52 -0
- package/src/internal/pattern-utils.ts +38 -0
- package/src/internal/ref-text.test.ts +54 -0
- package/src/internal/ref-text.ts +17 -0
- package/src/internal/session-runtime.test.ts +629 -0
- package/src/internal/session-runtime.ts +201 -0
- package/src/internal/watch-matcher.test.ts +326 -0
- package/src/internal/watch-matcher.ts +200 -0
- package/src/jsdoc-propagation.test.ts +277 -0
- package/src/loader.test.ts +1098 -0
- package/src/loader.ts +581 -0
- package/src/not-block-onunknown.test.ts +554 -0
- package/src/observer-dispatcher.test.ts +939 -0
- package/src/observer-dispatcher.ts +290 -0
- package/src/per-predicate-typing.test.ts +361 -0
- package/src/plugin-merger.test.ts +790 -0
- package/src/plugin-merger.ts +598 -0
- package/src/plugins/git/README.md +485 -0
- package/src/plugins/git/branch-tracker.test.ts +281 -0
- package/src/plugins/git/branch-tracker.ts +187 -0
- package/src/plugins/git/cwd-extensions.test.ts +230 -0
- package/src/plugins/git/cwd-extensions.ts +160 -0
- package/src/plugins/git/git-ops.test.ts +397 -0
- package/src/plugins/git/git-ops.ts +173 -0
- package/src/plugins/git/index.ts +253 -0
- package/src/plugins/git/integration.test.ts +705 -0
- package/src/plugins/git/predicates.test.ts +1401 -0
- package/src/plugins/git/predicates.ts +693 -0
- package/src/plugins/git/rules.test.ts +1001 -0
- package/src/plugins/git/rules.ts +307 -0
- package/src/schema.test.ts +259 -0
- package/src/schema.ts +1963 -0
- package/src/testing/index.test.ts +1696 -0
- 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":"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"}
|
|
@@ -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"}
|