@davidorex/pi-behavior-monitors 0.14.4 → 0.14.6
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 +11 -0
- package/README.md +6 -1
- package/agents/commit-hygiene-classifier.agent.yaml +2 -1
- package/agents/fragility-classifier.agent.yaml +2 -1
- package/agents/hedge-classifier.agent.yaml +2 -1
- package/agents/unauthorized-action-classifier.agent.yaml +2 -1
- package/agents/work-quality-classifier.agent.yaml +2 -1
- package/dist/index.d.ts +72 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +308 -124
- package/dist/index.js.map +1 -1
- package/examples/fragility.monitor.json +1 -1
- package/examples/hedge.monitor.json +1 -1
- package/package.json +7 -7
- package/skills/pi-behavior-monitors/SKILL.md +21 -21
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.14.6] - 2026-04-27
|
|
4
|
+
|
|
5
|
+
### Changed
|
|
6
|
+
- Monitor discovery uses a three-tier multi-location loader (project `.pi/monitors/` > global `~/.pi/agent/monitors/` > bundled `<package>/examples/`) instead of the prior copy-on-first-run `seedExamples()` pattern. Bundled monitor changes (e.g., the `agent_end` routing fix in commit affe992) now propagate to all installations automatically because the bundled tier reads the package examples directly. First match by `monitor.name` wins; same-name shadowing across tiers logs a one-line warning at session_start so drift is visible.
|
|
7
|
+
- Existing files in `.pi/monitors/` continue to work as project-level overrides under the new model. To receive bundled-monitor updates, delete the per-monitor files in `.pi/monitors/`. The override warning at session_start identifies which monitors are currently shadowed and where the bundled version lives.
|
|
8
|
+
|
|
9
|
+
### Removed
|
|
10
|
+
- `seedExamples()` and the seeded-count notification — bundled monitors are no longer copied into user `.pi/monitors/` directories at first run.
|
|
11
|
+
- `resolveProjectMonitorsDir` export — replaced internally by a private `findProjectMonitorsDir(): string | null` helper that returns null instead of synthesizing a cwd-rooted fallback path.
|
|
12
|
+
- Internal `copyDirRecursive` helper — `scripts/generate-skills.js` retains its own private copy.
|
|
13
|
+
|
|
3
14
|
## [0.3.0] - 2026-03-18
|
|
4
15
|
|
|
5
16
|
## [0.2.0] - 2026-03-17
|
package/README.md
CHANGED
|
@@ -12,7 +12,12 @@ pi install npm:@davidorex/pi-behavior-monitors
|
|
|
12
12
|
|
|
13
13
|
Or install all three extensions at once: `pi install npm:@davidorex/pi-project-workflows`
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
Five example monitors ship bundled with the package and load by default from a
|
|
16
|
+
three-tier search (project `.pi/monitors/` > global `~/.pi/agent/monitors/` >
|
|
17
|
+
bundled `examples/`); first match by name wins. To customize one, create
|
|
18
|
+
`.pi/monitors/<name>.monitor.json` in your project — the override fully replaces
|
|
19
|
+
the bundled version by name. Delete the override to revert and pick up bundled
|
|
20
|
+
updates automatically.
|
|
16
21
|
|
|
17
22
|
## Bundled Example Monitors
|
|
18
23
|
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
name: commit-hygiene-classifier
|
|
2
2
|
role: sensor
|
|
3
3
|
description: Classifies whether agent committed changes with proper hygiene
|
|
4
|
-
|
|
4
|
+
# Route through openrouter (only credential in ~/.pi/agent/auth.json). Use dot form per openrouter registry; dash form (claude-sonnet-4-6) is the anthropic-direct id.
|
|
5
|
+
model: openrouter/anthropic/claude-sonnet-4.6
|
|
5
6
|
thinking: "on"
|
|
6
7
|
output:
|
|
7
8
|
format: json
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
name: fragility-classifier
|
|
2
2
|
role: sensor
|
|
3
3
|
description: Classifies whether agent left unaddressed fragilities
|
|
4
|
-
|
|
4
|
+
# Route through openrouter (only credential in ~/.pi/agent/auth.json). Use dot form per openrouter registry; dash form (claude-sonnet-4-6) is the anthropic-direct id.
|
|
5
|
+
model: openrouter/anthropic/claude-sonnet-4.6
|
|
5
6
|
thinking: "on"
|
|
6
7
|
output:
|
|
7
8
|
format: json
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
name: hedge-classifier
|
|
2
2
|
role: sensor
|
|
3
3
|
description: Classifies whether assistant deviated from user intent
|
|
4
|
-
|
|
4
|
+
# Route through openrouter (only credential in ~/.pi/agent/auth.json). Use dot form per openrouter registry; dash form (claude-sonnet-4-6) is the anthropic-direct id.
|
|
5
|
+
model: openrouter/anthropic/claude-sonnet-4.6
|
|
5
6
|
thinking: "on"
|
|
6
7
|
output:
|
|
7
8
|
format: json
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
name: unauthorized-action-classifier
|
|
2
2
|
role: sensor
|
|
3
3
|
description: Classifies whether agent is about to take an unauthorized action
|
|
4
|
-
|
|
4
|
+
# Route through openrouter (only credential in ~/.pi/agent/auth.json). Use dot form per openrouter registry; dash form (claude-sonnet-4-6) is the anthropic-direct id.
|
|
5
|
+
model: openrouter/anthropic/claude-sonnet-4.6
|
|
5
6
|
thinking: "on"
|
|
6
7
|
output:
|
|
7
8
|
format: json
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
name: work-quality-classifier
|
|
2
2
|
role: sensor
|
|
3
3
|
description: Classifies work quality issues in agent output
|
|
4
|
-
|
|
4
|
+
# Route through openrouter (only credential in ~/.pi/agent/auth.json). Use dot form per openrouter registry; dash form (claude-sonnet-4-6) is the anthropic-direct id.
|
|
5
|
+
model: openrouter/anthropic/claude-sonnet-4.6
|
|
5
6
|
thinking: "on"
|
|
6
7
|
output:
|
|
7
8
|
format: json
|
package/dist/index.d.ts
CHANGED
|
@@ -118,8 +118,78 @@ export interface MonitorMessageDetails {
|
|
|
118
118
|
}
|
|
119
119
|
type MonitorEvent = "message_end" | "turn_end" | "agent_end" | "command" | "tool_call";
|
|
120
120
|
export declare const VALID_EVENTS: Set<string>;
|
|
121
|
-
|
|
122
|
-
|
|
121
|
+
/**
|
|
122
|
+
* Tracks a monitor in a lower-precedence tier whose `name` was shadowed by an
|
|
123
|
+
* earlier (higher-precedence) tier. Surfaced at session_start so users see when
|
|
124
|
+
* a project- or user-level override is hiding a (potentially newer) bundled
|
|
125
|
+
* version. The drift signal is the substitute for copy-on-first-run seeding:
|
|
126
|
+
* package examples now load directly as the third tier, and any project file
|
|
127
|
+
* keeping its older shape is reported here rather than silently winning forever.
|
|
128
|
+
*/
|
|
129
|
+
export interface MonitorOverride {
|
|
130
|
+
name: string;
|
|
131
|
+
winnerDir: string;
|
|
132
|
+
losingDir: string;
|
|
133
|
+
}
|
|
134
|
+
/** Return value of `discoverMonitors`. `monitors` is the deduplicated set used
|
|
135
|
+
* by the runtime; `overrides` is the audit trail of shadowed lower-tier files. */
|
|
136
|
+
export interface MonitorDiscovery {
|
|
137
|
+
monitors: Monitor[];
|
|
138
|
+
overrides: MonitorOverride[];
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Discover monitors across three tiers; first match by `name` wins.
|
|
142
|
+
*
|
|
143
|
+
* Precedence (highest first):
|
|
144
|
+
* 1. project `.pi/monitors/` (walk-up to .git boundary)
|
|
145
|
+
* 2. global `~/.pi/agent/monitors/` (via `getAgentDir()`)
|
|
146
|
+
* 3. bundled `<package>/examples/` (built-in defaults shipped with this extension)
|
|
147
|
+
*
|
|
148
|
+
* Any monitor file in a lower tier whose `name` matches an already-seen
|
|
149
|
+
* higher-tier monitor is recorded in `overrides` (not loaded). This replaces
|
|
150
|
+
* the prior `seedExamples()` copy-on-first-run pattern: bundled fixes (e.g.
|
|
151
|
+
* commit affe992 routing fragility/hedge classifiers through `agent_end`) now
|
|
152
|
+
* propagate to users automatically because tier 3 is read live, not copied.
|
|
153
|
+
*/
|
|
154
|
+
export declare function discoverMonitors(): MonitorDiscovery;
|
|
155
|
+
/**
|
|
156
|
+
* Collect the assistant's response text for the current turn.
|
|
157
|
+
*
|
|
158
|
+
* Walks the branch backward from the tail and aggregates text from every
|
|
159
|
+
* assistant `MessageEntry` until it reaches the most recent user message
|
|
160
|
+
* (turn boundary), at which point the walk stops. Collected segments are
|
|
161
|
+
* reversed back to chronological order and joined with `\n\n`. Empty
|
|
162
|
+
* segments (from tool-call-only assistant messages with no text content)
|
|
163
|
+
* are dropped before joining.
|
|
164
|
+
*
|
|
165
|
+
* Encoded design decisions:
|
|
166
|
+
*
|
|
167
|
+
* - F-014 root-cause fix: previously the function returned from the FIRST
|
|
168
|
+
* assistant message it hit walking backward; when that latest assistant
|
|
169
|
+
* message was tool-call-only, the result was empty even though earlier
|
|
170
|
+
* assistant messages in the same turn carried the user-visible text.
|
|
171
|
+
* The walk now aggregates across all assistant messages in the turn so
|
|
172
|
+
* tool-call-only tail messages no longer mask prior text.
|
|
173
|
+
*
|
|
174
|
+
* - F-018 multi-message-turn semantics: "the assistant's response" is
|
|
175
|
+
* defined as all assistant text emitted from the most recent user
|
|
176
|
+
* message up to the present, joined with double-newline separator.
|
|
177
|
+
* Non-message entries (model_change, label, custom_message,
|
|
178
|
+
* branch_summary, etc.) are skipped — they are not part of the
|
|
179
|
+
* assistant's response.
|
|
180
|
+
*
|
|
181
|
+
* - `extractText` (text-only filter) is intentionally not modified here:
|
|
182
|
+
* tool-call blocks have no user-visible text, and thinking blocks are
|
|
183
|
+
* model-internal reasoning that should not leak into classifier prompts.
|
|
184
|
+
*
|
|
185
|
+
* Edge cases:
|
|
186
|
+
* - Empty branch: returns "".
|
|
187
|
+
* - No user message in branch (e.g., system-init turn): walks to start
|
|
188
|
+
* and returns all collected assistant text.
|
|
189
|
+
* - All assistant messages tool-call-only: returns "" (true empty
|
|
190
|
+
* response, distinct from the F-014 false-positive case).
|
|
191
|
+
*/
|
|
192
|
+
export declare function collectAssistantText(branch: SessionEntry[]): string;
|
|
123
193
|
/**
|
|
124
194
|
* Detect whether the current user message references prior conversation context
|
|
125
195
|
* via backreferences, affirmations, or short messages without action verbs.
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAIX,YAAY,EAEZ,YAAY,EAGZ,MAAM,+BAA+B,CAAC;AA0CvC,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,qBAAqB,EAAE,mBAAmB,EAkBtD,CAAC;AAEF,MAAM,WAAW,uBAAuB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;CACvB;AAED,eAAO,MAAM,eAAe,EAAE,uBAAuB,EAuBpD,CAAC;AAEF,eAAO,MAAM,aAAa,4CAA6C,CAAC;AACxE,eAAO,MAAM,aAAa,kDAAmD,CAAC;AAM9E,MAAM,WAAW,YAAY;IAC5B,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,KAAK,GAAG,UAAU,CAAC;IACjD;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,EAAE;QACR,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACF;AAED,MAAM,WAAW,aAAa;IAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,QAAQ,GAAG,QAAQ,CAAC;QAC3B,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACjC,CAAC;CACF;AAED,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,YAAY,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE;QACT,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;KACd,CAAC;IACF,QAAQ,EAAE;QACT,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,OAAO,CAAC;KACf,CAAC;IACF,YAAY,EAAE;QACb,IAAI,EAAE,MAAM,CAAC;KACb,CAAC;IACF,OAAO,EAAE;QACR,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;QAC/B,MAAM,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;QAC9B,QAAQ,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;KAChC,CAAC;IACF,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,OAAQ,SAAQ,WAAW;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,oBAAoB,EAAE,MAAM,CAAC;IAC7B,wBAAwB,EAAE,MAAM,CAAC;IAEjC,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,4DAA4D;IAC5D,gBAAgB,EAAE,MAAM,CAAC;IACzB,wEAAwE;IACxE,qBAAqB,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,cAAc;IAC9B,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CAChB;AAQD,KAAK,YAAY,GAAG,aAAa,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS,GAAG,WAAW,CAAC;AAEvF,eAAO,MAAM,YAAY,aAAoF,CAAC;AAU9G;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED;kFACkF;AAClF,MAAM,WAAW,gBAAgB;IAChC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,SAAS,EAAE,eAAe,EAAE,CAAC;CAC7B;AAwBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,IAAI,gBAAgB,CA0BnD;AA8ID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,CAcnE;AAiED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAK1D;AA0CD,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,CAgGzE;AAuDD,wFAAwF;AACxF,eAAO,MAAM,eAAe,UAA0B,CAAC;AAyIvD,MAAM,MAAM,eAAe,GACxB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,GACd;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GACf;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACpE;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtC,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,eAAe,CAgDxF;AAwGD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAaxD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAMlF;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,MAAM,CAU9E;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,cAAc,CAiB1F;AAoTD,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAEnF;AAoED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CA6B3G;AAmMD,MAAM,CAAC,OAAO,WAAW,EAAE,EAAE,YAAY,QAwvBxC"}
|
package/dist/index.js
CHANGED
|
@@ -12,20 +12,37 @@ import * as fs from "node:fs";
|
|
|
12
12
|
import * as os from "node:os";
|
|
13
13
|
import * as path from "node:path";
|
|
14
14
|
import { fileURLToPath } from "node:url";
|
|
15
|
+
import { dateRotatedPath, executeAgent } from "@davidorex/pi-jit-agents";
|
|
15
16
|
import { readBlock } from "@davidorex/pi-project/block-api";
|
|
16
17
|
import { validateFromFile } from "@davidorex/pi-project/schema-validator";
|
|
17
18
|
import { createAgentLoader } from "@davidorex/pi-workflows/agent-spec";
|
|
18
19
|
import { compileAgentSpec } from "@davidorex/pi-workflows/step-shared";
|
|
19
|
-
import {
|
|
20
|
+
import { StringEnum, Type } from "@mariozechner/pi-ai";
|
|
20
21
|
import { getAgentDir } from "@mariozechner/pi-coding-agent";
|
|
21
22
|
import { Box, Text } from "@mariozechner/pi-tui";
|
|
22
|
-
import { Type } from "@sinclair/typebox";
|
|
23
23
|
import nunjucks from "nunjucks";
|
|
24
24
|
const EXTENSION_DIR = path.dirname(fileURLToPath(import.meta.url));
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
/**
|
|
26
|
+
* Package root is one level up from `dist/` at runtime (compiled `dist/index.js`),
|
|
27
|
+
* or equal to `EXTENSION_DIR` when running from source (e.g. vitest). Detecting
|
|
28
|
+
* which case we're in by inspecting the basename keeps the bundled-content paths
|
|
29
|
+
* (`examples/`, `agents/`) reachable from both contexts without separate test
|
|
30
|
+
* fixtures.
|
|
31
|
+
*/
|
|
32
|
+
const PACKAGE_ROOT = path.basename(EXTENSION_DIR) === "dist" ? path.dirname(EXTENSION_DIR) : EXTENSION_DIR;
|
|
33
|
+
const EXAMPLES_DIR = path.join(PACKAGE_ROOT, "examples");
|
|
34
|
+
const AGENTS_DIR = path.join(PACKAGE_ROOT, "agents");
|
|
35
|
+
/**
|
|
36
|
+
* Tool definition for forcing structured verdict output from the classify LLM call.
|
|
37
|
+
*
|
|
38
|
+
* Retained as a documentation reference; the live phantom-tool used at dispatch
|
|
39
|
+
* time is now built by `buildPhantomTool(outputSchema)` inside pi-jit-agents'
|
|
40
|
+
* `executeAgent`, fed by the agent spec's `outputSchema` (canonical:
|
|
41
|
+
* `verdict.schema.json`). The shape below mirrors that schema. Underscore
|
|
42
|
+
* prefix suppresses the unused-symbol lint while preserving the on-file
|
|
43
|
+
* trace of the contract that the phantom-tool path now enforces.
|
|
44
|
+
*/
|
|
45
|
+
const _VERDICT_TOOL = {
|
|
29
46
|
name: "classify_verdict",
|
|
30
47
|
description: "Output the monitor classification verdict",
|
|
31
48
|
parameters: Type.Object({
|
|
@@ -84,41 +101,71 @@ export const VALID_EVENTS = new Set(["message_end", "turn_end", "agent_end", "co
|
|
|
84
101
|
function isValidEvent(event) {
|
|
85
102
|
return VALID_EVENTS.has(event);
|
|
86
103
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
104
|
+
/**
|
|
105
|
+
* Walk up from `process.cwd()` looking for a `.pi/monitors/` directory, stopping
|
|
106
|
+
* at the first `.git` boundary so we never escape into the user's home config.
|
|
107
|
+
* Returns the resolved path or `null` when no project-tier monitors directory
|
|
108
|
+
* exists. Single source for the project-tier walk used by both `discoverMonitors`
|
|
109
|
+
* and `createMonitorAgentTemplateEnv` (the previous `resolveProjectMonitorsDir`
|
|
110
|
+
* also returned a synthesized cwd-rooted fallback path even when no directory
|
|
111
|
+
* existed, which conflated "exists" with "would be created on seed"; that
|
|
112
|
+
* conflation is no longer needed and is removed here).
|
|
113
|
+
*/
|
|
114
|
+
function findProjectMonitorsDir() {
|
|
93
115
|
let cwd = process.cwd();
|
|
94
116
|
while (true) {
|
|
95
117
|
const candidate = path.join(cwd, ".pi", "monitors");
|
|
96
|
-
if (isDir(candidate))
|
|
97
|
-
|
|
98
|
-
break;
|
|
99
|
-
}
|
|
100
|
-
// Stop at project root (.git boundary) — don't traverse into user home config
|
|
118
|
+
if (isDir(candidate))
|
|
119
|
+
return candidate;
|
|
101
120
|
if (isDir(path.join(cwd, ".git")))
|
|
102
|
-
|
|
121
|
+
return null;
|
|
103
122
|
const parent = path.dirname(cwd);
|
|
104
123
|
if (parent === cwd)
|
|
105
|
-
|
|
124
|
+
return null;
|
|
106
125
|
cwd = parent;
|
|
107
126
|
}
|
|
108
|
-
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Discover monitors across three tiers; first match by `name` wins.
|
|
130
|
+
*
|
|
131
|
+
* Precedence (highest first):
|
|
132
|
+
* 1. project `.pi/monitors/` (walk-up to .git boundary)
|
|
133
|
+
* 2. global `~/.pi/agent/monitors/` (via `getAgentDir()`)
|
|
134
|
+
* 3. bundled `<package>/examples/` (built-in defaults shipped with this extension)
|
|
135
|
+
*
|
|
136
|
+
* Any monitor file in a lower tier whose `name` matches an already-seen
|
|
137
|
+
* higher-tier monitor is recorded in `overrides` (not loaded). This replaces
|
|
138
|
+
* the prior `seedExamples()` copy-on-first-run pattern: bundled fixes (e.g.
|
|
139
|
+
* commit affe992 routing fragility/hedge classifiers through `agent_end`) now
|
|
140
|
+
* propagate to users automatically because tier 3 is read live, not copied.
|
|
141
|
+
*/
|
|
142
|
+
export function discoverMonitors() {
|
|
143
|
+
const dirs = [];
|
|
144
|
+
const projectDir = findProjectMonitorsDir();
|
|
145
|
+
if (projectDir)
|
|
146
|
+
dirs.push(projectDir);
|
|
109
147
|
const globalDir = path.join(getAgentDir(), "monitors");
|
|
110
148
|
if (isDir(globalDir))
|
|
111
149
|
dirs.push(globalDir);
|
|
150
|
+
if (isDir(EXAMPLES_DIR))
|
|
151
|
+
dirs.push(EXAMPLES_DIR);
|
|
112
152
|
const seen = new Map();
|
|
153
|
+
const overrides = [];
|
|
113
154
|
for (const dir of dirs) {
|
|
114
155
|
for (const file of listMonitorFiles(dir)) {
|
|
115
156
|
const monitor = parseMonitorJson(path.join(dir, file), dir);
|
|
116
|
-
if (
|
|
157
|
+
if (!monitor)
|
|
158
|
+
continue;
|
|
159
|
+
const winner = seen.get(monitor.name);
|
|
160
|
+
if (!winner) {
|
|
117
161
|
seen.set(monitor.name, monitor);
|
|
118
162
|
}
|
|
163
|
+
else {
|
|
164
|
+
overrides.push({ name: monitor.name, winnerDir: winner.dir, losingDir: dir });
|
|
165
|
+
}
|
|
119
166
|
}
|
|
120
167
|
}
|
|
121
|
-
return Array.from(seen.values());
|
|
168
|
+
return { monitors: Array.from(seen.values()), overrides };
|
|
122
169
|
}
|
|
123
170
|
function isDir(p) {
|
|
124
171
|
try {
|
|
@@ -209,73 +256,6 @@ function parseMonitorJson(filePath, dir) {
|
|
|
209
256
|
};
|
|
210
257
|
}
|
|
211
258
|
// =============================================================================
|
|
212
|
-
// Example seeding
|
|
213
|
-
// =============================================================================
|
|
214
|
-
export function resolveProjectMonitorsDir() {
|
|
215
|
-
let cwd = process.cwd();
|
|
216
|
-
while (true) {
|
|
217
|
-
const piDir = path.join(cwd, ".pi");
|
|
218
|
-
if (isDir(piDir))
|
|
219
|
-
return path.join(piDir, "monitors");
|
|
220
|
-
// Stop at project root (.git boundary) — don't traverse into user home config
|
|
221
|
-
if (isDir(path.join(cwd, ".git")))
|
|
222
|
-
break;
|
|
223
|
-
const parent = path.dirname(cwd);
|
|
224
|
-
if (parent === cwd)
|
|
225
|
-
break;
|
|
226
|
-
cwd = parent;
|
|
227
|
-
}
|
|
228
|
-
return path.join(process.cwd(), ".pi", "monitors");
|
|
229
|
-
}
|
|
230
|
-
function seedExamples() {
|
|
231
|
-
if (discoverMonitors().length > 0)
|
|
232
|
-
return 0;
|
|
233
|
-
if (!isDir(EXAMPLES_DIR))
|
|
234
|
-
return 0;
|
|
235
|
-
const targetDir = resolveProjectMonitorsDir();
|
|
236
|
-
fs.mkdirSync(targetDir, { recursive: true });
|
|
237
|
-
if (listMonitorFiles(targetDir).length > 0)
|
|
238
|
-
return 0;
|
|
239
|
-
const entries = fs.readdirSync(EXAMPLES_DIR, { withFileTypes: true });
|
|
240
|
-
const files = entries.filter((e) => e.isFile() && e.name.endsWith(".json"));
|
|
241
|
-
let copied = 0;
|
|
242
|
-
for (const file of files) {
|
|
243
|
-
const dest = path.join(targetDir, file.name);
|
|
244
|
-
if (!fs.existsSync(dest)) {
|
|
245
|
-
fs.copyFileSync(path.join(EXAMPLES_DIR, file.name), dest);
|
|
246
|
-
copied++;
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
// Also copy template subdirectories (e.g., commit-hygiene/classify.md)
|
|
250
|
-
// These contain Nunjucks .md prompt templates referenced by promptTemplate
|
|
251
|
-
// fields in the monitor JSON specs.
|
|
252
|
-
const dirs = entries.filter((e) => e.isDirectory());
|
|
253
|
-
for (const dir of dirs) {
|
|
254
|
-
const srcDir = path.join(EXAMPLES_DIR, dir.name);
|
|
255
|
-
const destDir = path.join(targetDir, dir.name);
|
|
256
|
-
if (!fs.existsSync(destDir)) {
|
|
257
|
-
copyDirRecursive(srcDir, destDir);
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
return copied;
|
|
261
|
-
}
|
|
262
|
-
// =============================================================================
|
|
263
|
-
// Skill syncing
|
|
264
|
-
// =============================================================================
|
|
265
|
-
function copyDirRecursive(src, dest) {
|
|
266
|
-
fs.mkdirSync(dest, { recursive: true });
|
|
267
|
-
for (const entry of fs.readdirSync(src, { withFileTypes: true })) {
|
|
268
|
-
const srcPath = path.join(src, entry.name);
|
|
269
|
-
const destPath = path.join(dest, entry.name);
|
|
270
|
-
if (entry.isDirectory()) {
|
|
271
|
-
copyDirRecursive(srcPath, destPath);
|
|
272
|
-
}
|
|
273
|
-
else if (entry.isFile()) {
|
|
274
|
-
fs.copyFileSync(srcPath, destPath);
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
// =============================================================================
|
|
279
259
|
// Context collection
|
|
280
260
|
// =============================================================================
|
|
281
261
|
const TRUNCATE = 2000;
|
|
@@ -319,14 +299,59 @@ function collectUserText(branch) {
|
|
|
319
299
|
}
|
|
320
300
|
return "";
|
|
321
301
|
}
|
|
322
|
-
|
|
302
|
+
/**
|
|
303
|
+
* Collect the assistant's response text for the current turn.
|
|
304
|
+
*
|
|
305
|
+
* Walks the branch backward from the tail and aggregates text from every
|
|
306
|
+
* assistant `MessageEntry` until it reaches the most recent user message
|
|
307
|
+
* (turn boundary), at which point the walk stops. Collected segments are
|
|
308
|
+
* reversed back to chronological order and joined with `\n\n`. Empty
|
|
309
|
+
* segments (from tool-call-only assistant messages with no text content)
|
|
310
|
+
* are dropped before joining.
|
|
311
|
+
*
|
|
312
|
+
* Encoded design decisions:
|
|
313
|
+
*
|
|
314
|
+
* - F-014 root-cause fix: previously the function returned from the FIRST
|
|
315
|
+
* assistant message it hit walking backward; when that latest assistant
|
|
316
|
+
* message was tool-call-only, the result was empty even though earlier
|
|
317
|
+
* assistant messages in the same turn carried the user-visible text.
|
|
318
|
+
* The walk now aggregates across all assistant messages in the turn so
|
|
319
|
+
* tool-call-only tail messages no longer mask prior text.
|
|
320
|
+
*
|
|
321
|
+
* - F-018 multi-message-turn semantics: "the assistant's response" is
|
|
322
|
+
* defined as all assistant text emitted from the most recent user
|
|
323
|
+
* message up to the present, joined with double-newline separator.
|
|
324
|
+
* Non-message entries (model_change, label, custom_message,
|
|
325
|
+
* branch_summary, etc.) are skipped — they are not part of the
|
|
326
|
+
* assistant's response.
|
|
327
|
+
*
|
|
328
|
+
* - `extractText` (text-only filter) is intentionally not modified here:
|
|
329
|
+
* tool-call blocks have no user-visible text, and thinking blocks are
|
|
330
|
+
* model-internal reasoning that should not leak into classifier prompts.
|
|
331
|
+
*
|
|
332
|
+
* Edge cases:
|
|
333
|
+
* - Empty branch: returns "".
|
|
334
|
+
* - No user message in branch (e.g., system-init turn): walks to start
|
|
335
|
+
* and returns all collected assistant text.
|
|
336
|
+
* - All assistant messages tool-call-only: returns "" (true empty
|
|
337
|
+
* response, distinct from the F-014 false-positive case).
|
|
338
|
+
*/
|
|
339
|
+
export function collectAssistantText(branch) {
|
|
340
|
+
const segments = [];
|
|
323
341
|
for (let i = branch.length - 1; i >= 0; i--) {
|
|
324
342
|
const entry = branch[i];
|
|
325
|
-
if (isMessageEntry(entry)
|
|
326
|
-
|
|
343
|
+
if (!isMessageEntry(entry))
|
|
344
|
+
continue;
|
|
345
|
+
if (entry.message.role === "user")
|
|
346
|
+
break;
|
|
347
|
+
if (entry.message.role === "assistant") {
|
|
348
|
+
segments.push(extractText(entry.message.content));
|
|
327
349
|
}
|
|
328
350
|
}
|
|
329
|
-
return
|
|
351
|
+
return segments
|
|
352
|
+
.reverse()
|
|
353
|
+
.filter((s) => s.length > 0)
|
|
354
|
+
.join("\n\n");
|
|
330
355
|
}
|
|
331
356
|
function collectToolResults(branch, limit = 5) {
|
|
332
357
|
const results = [];
|
|
@@ -937,13 +962,13 @@ export function mapVerdictToClassifyResult(parsed) {
|
|
|
937
962
|
* Monitor paths take precedence.
|
|
938
963
|
*/
|
|
939
964
|
function createMonitorAgentTemplateEnv(cwd) {
|
|
940
|
-
const projectMonitorsDir =
|
|
965
|
+
const projectMonitorsDir = findProjectMonitorsDir();
|
|
941
966
|
const userMonitorsDir = path.join(os.homedir(), ".pi", "agent", "monitors");
|
|
942
967
|
const projectTemplatesDir = path.join(cwd, ".pi", "templates");
|
|
943
968
|
const userTemplatesDir = path.join(os.homedir(), ".pi", "agent", "templates");
|
|
944
969
|
const searchPaths = [];
|
|
945
970
|
// Monitor paths first — monitor templates take precedence
|
|
946
|
-
if (
|
|
971
|
+
if (projectMonitorsDir)
|
|
947
972
|
searchPaths.push(projectMonitorsDir);
|
|
948
973
|
if (isDir(userMonitorsDir))
|
|
949
974
|
searchPaths.push(userMonitorsDir);
|
|
@@ -964,6 +989,86 @@ function createMonitorAgentTemplateEnv(cwd) {
|
|
|
964
989
|
let cachedAgentLoader = null;
|
|
965
990
|
/** Module-level cached template environment for classify agent specs, populated at session_start. */
|
|
966
991
|
let cachedMonitorAgentEnv = null;
|
|
992
|
+
/**
|
|
993
|
+
* Module-level reference to the ExtensionAPI for CLI flag lookup at classify time.
|
|
994
|
+
* Set by the default export (activate function) so classifyViaAgent can read
|
|
995
|
+
* --trace, --no-trace, --trace-dir, and --trace-filter via pi.getFlag().
|
|
996
|
+
*
|
|
997
|
+
* Held as an opaque `getFlag` callable rather than the full ExtensionAPI to keep
|
|
998
|
+
* the surface narrow and to allow future-replacement by direct argv parsing
|
|
999
|
+
* without a wider refactor.
|
|
1000
|
+
*/
|
|
1001
|
+
let getCliFlag = null;
|
|
1002
|
+
/**
|
|
1003
|
+
* Resolve effective trace settings for a monitor classify call.
|
|
1004
|
+
*
|
|
1005
|
+
* Trace-path resolution precedence (highest to lowest):
|
|
1006
|
+
* 1. `--no-trace` CLI flag → null (explicit disable)
|
|
1007
|
+
* 2. `--trace-dir <dir>` CLI flag → dateRotatedPath(<dir>) — single shared dir,
|
|
1008
|
+
* no per-monitor subdir (caller chose the path explicitly)
|
|
1009
|
+
* 3. `PI_AGENT_TRACE_DIR` env var → dateRotatedPath(<env>/<monitor.name>) —
|
|
1010
|
+
* env var is the global base; per-monitor subdir appends
|
|
1011
|
+
* 4. `--trace` CLI flag → default per-monitor path (explicit enable)
|
|
1012
|
+
* 5. Default ON when no flags / env unset → default per-monitor path
|
|
1013
|
+
*
|
|
1014
|
+
* Default per-monitor path:
|
|
1015
|
+
* .workflows/monitors/<monitor.name>/<YYYY-MM-DD>.jsonl
|
|
1016
|
+
*
|
|
1017
|
+
* Redaction-config path resolution (highest to lowest):
|
|
1018
|
+
* 1. `--trace-filter <file>` CLI flag
|
|
1019
|
+
* 2. `PI_AGENT_TRACE_FILTER` env var
|
|
1020
|
+
* 3. .workflows/monitors/<monitor.name>/trace-config.json (if exists)
|
|
1021
|
+
* 4. null (builtin patterns only)
|
|
1022
|
+
*
|
|
1023
|
+
* Per DEC-0005 the trace stream is push-write inside executeAgent and is
|
|
1024
|
+
* intentionally divergent from pi-mono's pull/replay session model — this
|
|
1025
|
+
* resolver feeds DispatchContext fields the runtime consumes; trace-write
|
|
1026
|
+
* failures are non-fatal and never abort classify.
|
|
1027
|
+
*/
|
|
1028
|
+
function resolveTraceSettings(monitorName) {
|
|
1029
|
+
const flagNoTrace = getCliFlag?.("no-trace") === true;
|
|
1030
|
+
const flagTrace = getCliFlag?.("trace") === true;
|
|
1031
|
+
const flagTraceDirRaw = getCliFlag?.("trace-dir");
|
|
1032
|
+
const flagTraceDir = typeof flagTraceDirRaw === "string" && flagTraceDirRaw.length > 0 ? flagTraceDirRaw : null;
|
|
1033
|
+
const flagTraceFilterRaw = getCliFlag?.("trace-filter");
|
|
1034
|
+
const flagTraceFilter = typeof flagTraceFilterRaw === "string" && flagTraceFilterRaw.length > 0 ? flagTraceFilterRaw : null;
|
|
1035
|
+
const envTraceDir = process.env.PI_AGENT_TRACE_DIR;
|
|
1036
|
+
const envTraceFilter = process.env.PI_AGENT_TRACE_FILTER;
|
|
1037
|
+
const defaultTraceBaseDir = path.join(process.cwd(), ".workflows", "monitors", monitorName);
|
|
1038
|
+
const defaultTracePath = dateRotatedPath(defaultTraceBaseDir);
|
|
1039
|
+
let tracePath;
|
|
1040
|
+
if (flagNoTrace) {
|
|
1041
|
+
tracePath = null;
|
|
1042
|
+
}
|
|
1043
|
+
else if (flagTraceDir) {
|
|
1044
|
+
tracePath = dateRotatedPath(flagTraceDir);
|
|
1045
|
+
}
|
|
1046
|
+
else if (envTraceDir && envTraceDir.length > 0) {
|
|
1047
|
+
tracePath = dateRotatedPath(path.join(envTraceDir, monitorName));
|
|
1048
|
+
}
|
|
1049
|
+
else if (flagTrace) {
|
|
1050
|
+
tracePath = defaultTracePath;
|
|
1051
|
+
}
|
|
1052
|
+
else {
|
|
1053
|
+
// Default: trace ON to per-monitor path. Disable explicitly via --no-trace.
|
|
1054
|
+
tracePath = defaultTracePath;
|
|
1055
|
+
}
|
|
1056
|
+
const monitorTraceConfigPath = path.join(process.cwd(), ".workflows", "monitors", monitorName, "trace-config.json");
|
|
1057
|
+
let redactionConfigPath;
|
|
1058
|
+
if (flagTraceFilter) {
|
|
1059
|
+
redactionConfigPath = flagTraceFilter;
|
|
1060
|
+
}
|
|
1061
|
+
else if (envTraceFilter && envTraceFilter.length > 0) {
|
|
1062
|
+
redactionConfigPath = envTraceFilter;
|
|
1063
|
+
}
|
|
1064
|
+
else if (fs.existsSync(monitorTraceConfigPath)) {
|
|
1065
|
+
redactionConfigPath = monitorTraceConfigPath;
|
|
1066
|
+
}
|
|
1067
|
+
else {
|
|
1068
|
+
redactionConfigPath = null;
|
|
1069
|
+
}
|
|
1070
|
+
return { tracePath, redactionConfigPath };
|
|
1071
|
+
}
|
|
967
1072
|
/**
|
|
968
1073
|
* Classify via agent spec — the sole classify path.
|
|
969
1074
|
* Loads the agent YAML, builds context from collectors, compiles via
|
|
@@ -1012,38 +1117,88 @@ async function classifyViaAgent(ctx, monitor, branch, extraContext, signal) {
|
|
|
1012
1117
|
const auth = await ctx.modelRegistry.getApiKeyAndHeaders(model);
|
|
1013
1118
|
if (!auth.ok)
|
|
1014
1119
|
throw new Error(auth.error);
|
|
1120
|
+
// --- Trace-capture wiring (issue-023 T6) -------------------------------
|
|
1121
|
+
// Resolve effective tracePath / redactionConfigPath / monitorName for this
|
|
1122
|
+
// classify call. See resolveTraceSettings() for precedence rules. The
|
|
1123
|
+
// dispatch surface is pi-jit-agents' executeAgent (DEC-0005 push-write
|
|
1124
|
+
// trace pipeline); failures inside the trace path are non-fatal and never
|
|
1125
|
+
// abort the classify call.
|
|
1126
|
+
const { tracePath, redactionConfigPath } = resolveTraceSettings(monitor.name);
|
|
1127
|
+
// Resolve absolute outputSchema path. The pi-workflows compileAgentSpec
|
|
1128
|
+
// preserves the relative path that the agent YAML declared; executeAgent
|
|
1129
|
+
// requires an absolute filesystem path for validateFromFile / phantom-tool
|
|
1130
|
+
// construction. AGENTS_DIR is the canonical fallback resolution base.
|
|
1131
|
+
let resolvedOutputSchema;
|
|
1132
|
+
if (compiled.outputSchema) {
|
|
1133
|
+
resolvedOutputSchema = path.isAbsolute(compiled.outputSchema)
|
|
1134
|
+
? compiled.outputSchema
|
|
1135
|
+
: path.resolve(AGENTS_DIR, compiled.outputSchema);
|
|
1136
|
+
}
|
|
1137
|
+
// Build a synthetic CompiledAgent from the pi-workflows compileAgentSpec
|
|
1138
|
+
// output. The two AgentSpec shapes are not identical — pi-jit-agents only
|
|
1139
|
+
// reads `name` off `spec` for trace stamping; we stub `loadedFrom` so the
|
|
1140
|
+
// type-check passes. `contextValues` carries the resolved collector output
|
|
1141
|
+
// keyed by collector name so executeAgent can emit one context_collection
|
|
1142
|
+
// entry per resolved key.
|
|
1143
|
+
const synthCompiled = {
|
|
1144
|
+
spec: {
|
|
1145
|
+
name: agentSpec.name,
|
|
1146
|
+
loadedFrom: "<monitor-classify>",
|
|
1147
|
+
},
|
|
1148
|
+
systemPrompt: compiled.systemPrompt,
|
|
1149
|
+
taskPrompt: prompt,
|
|
1150
|
+
model: modelSpec,
|
|
1151
|
+
outputSchema: resolvedOutputSchema,
|
|
1152
|
+
contextValues: { ...collected, ...(extraContext ?? {}) },
|
|
1153
|
+
};
|
|
1154
|
+
const dispatch = {
|
|
1155
|
+
model: model,
|
|
1156
|
+
// JitAgentAuth requires non-optional apiKey/headers; the
|
|
1157
|
+
// ResolvedRequestAuth ok-branch leaves both optional. Default empty
|
|
1158
|
+
// values match the legacy behavior where pi-ai's `complete` accepted
|
|
1159
|
+
// undefined values transparently.
|
|
1160
|
+
auth: { apiKey: auth.apiKey ?? "", headers: auth.headers ?? {} },
|
|
1161
|
+
maxTokens: 1024,
|
|
1162
|
+
signal,
|
|
1163
|
+
tracePath,
|
|
1164
|
+
redactionConfigPath,
|
|
1165
|
+
monitorName: monitor.name,
|
|
1166
|
+
};
|
|
1015
1167
|
// Thinking is disabled for classify calls — Anthropic API rejects
|
|
1016
1168
|
// thinking + forced toolChoice. The phantom tool enforces output shape;
|
|
1017
1169
|
// thinking support requires Structured Outputs (output_config.format)
|
|
1018
|
-
// which pi-ai does not yet expose.
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
signal,
|
|
1027
|
-
toolChoice: { type: "tool", name: "classify_verdict" },
|
|
1028
|
-
});
|
|
1029
|
-
const toolCall = response.content.find((c) => c.type === "toolCall");
|
|
1030
|
-
if (!toolCall) {
|
|
1031
|
-
const contentTypes = response.content.map((c) => c.type).join(", ");
|
|
1032
|
-
const errMsg = response.errorMessage ? ` error: ${response.errorMessage}` : "";
|
|
1170
|
+
// which pi-ai does not yet expose. executeAgent enforces the same
|
|
1171
|
+
// constraint internally.
|
|
1172
|
+
let result;
|
|
1173
|
+
try {
|
|
1174
|
+
result = await executeAgent(synthCompiled, dispatch);
|
|
1175
|
+
}
|
|
1176
|
+
catch (err) {
|
|
1177
|
+
const errMsg = err instanceof Error ? err.message : String(err);
|
|
1033
1178
|
return {
|
|
1034
1179
|
verdict: "error",
|
|
1035
|
-
error:
|
|
1180
|
+
error: errMsg,
|
|
1036
1181
|
};
|
|
1037
1182
|
}
|
|
1038
|
-
|
|
1039
|
-
//
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1183
|
+
// executeAgent returns the validated tool-call arguments as `output` when
|
|
1184
|
+
// outputSchema is set (verdict schema). Otherwise `output` is the extracted
|
|
1185
|
+
// text — fall back to parseVerdict for unstructured responses to preserve
|
|
1186
|
+
// the legacy free-text classify path used by some agent specs.
|
|
1187
|
+
if (resolvedOutputSchema && result.output && typeof result.output === "object") {
|
|
1188
|
+
const parsed = result.output;
|
|
1189
|
+
// Re-validate at the call site for parity with the prior implementation
|
|
1190
|
+
// (executeAgent already validated; the duplicate call is a no-op on the
|
|
1191
|
+
// happy path and preserves the existing error-surfacing label).
|
|
1192
|
+
validateFromFile(resolvedOutputSchema, parsed, `verdict for monitor '${monitor.name}'`);
|
|
1193
|
+
return mapVerdictToClassifyResult(parsed);
|
|
1194
|
+
}
|
|
1195
|
+
if (!resolvedOutputSchema && typeof result.output === "string") {
|
|
1196
|
+
return parseVerdict(result.output);
|
|
1045
1197
|
}
|
|
1046
|
-
return
|
|
1198
|
+
return {
|
|
1199
|
+
verdict: "error",
|
|
1200
|
+
error: `Unexpected executeAgent output shape (type=${typeof result.output})`,
|
|
1201
|
+
};
|
|
1047
1202
|
}
|
|
1048
1203
|
// =============================================================================
|
|
1049
1204
|
// Pattern learning (JSON)
|
|
@@ -1357,8 +1512,32 @@ async function escalate(monitor, _pi, ctx) {
|
|
|
1357
1512
|
// Extension entry point
|
|
1358
1513
|
// =============================================================================
|
|
1359
1514
|
export default function (pi) {
|
|
1360
|
-
|
|
1361
|
-
|
|
1515
|
+
// Cache pi for classify-time CLI flag lookup. classifyViaAgent reads
|
|
1516
|
+
// --trace / --no-trace / --trace-dir / --trace-filter via getCliFlag()
|
|
1517
|
+
// to resolve the trace destination passed through DispatchContext.
|
|
1518
|
+
getCliFlag = (name) => pi.getFlag(name);
|
|
1519
|
+
// CLI flag registration for the agent-trace pipeline (issue-023 T6).
|
|
1520
|
+
// pi-coding-agent's convention is `--no-<name>` for boolean disable, plain
|
|
1521
|
+
// `--<name>` for boolean enable, and `--<name> <value>` for value flags.
|
|
1522
|
+
pi.registerFlag("trace", {
|
|
1523
|
+
type: "boolean",
|
|
1524
|
+
default: false,
|
|
1525
|
+
description: "Enable agent-trace JSONL emission for monitor classify calls (default location: .workflows/monitors/<name>/<YYYY-MM-DD>.jsonl).",
|
|
1526
|
+
});
|
|
1527
|
+
pi.registerFlag("no-trace", {
|
|
1528
|
+
type: "boolean",
|
|
1529
|
+
default: false,
|
|
1530
|
+
description: "Disable agent-trace JSONL emission for monitor classify calls.",
|
|
1531
|
+
});
|
|
1532
|
+
pi.registerFlag("trace-dir", {
|
|
1533
|
+
type: "string",
|
|
1534
|
+
description: "Override the base directory for agent-trace JSONL files. Date-rotated filename appended.",
|
|
1535
|
+
});
|
|
1536
|
+
pi.registerFlag("trace-filter", {
|
|
1537
|
+
type: "string",
|
|
1538
|
+
description: "Path to a trace-config.json with custom redaction patterns layered atop the builtin set.",
|
|
1539
|
+
});
|
|
1540
|
+
const { monitors, overrides } = discoverMonitors();
|
|
1362
1541
|
loadedMonitors = monitors;
|
|
1363
1542
|
if (monitors.length === 0)
|
|
1364
1543
|
return;
|
|
@@ -1391,9 +1570,14 @@ export default function (pi) {
|
|
|
1391
1570
|
try {
|
|
1392
1571
|
statusCtx = ctx;
|
|
1393
1572
|
invokeCtx = ctx;
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1573
|
+
// Surface drift between project/user overrides and bundled defaults.
|
|
1574
|
+
// One notification per shadowed lower-tier monitor; users decide
|
|
1575
|
+
// whether to delete the override (and pick up bundled updates) or
|
|
1576
|
+
// keep it (preserving local customisations).
|
|
1577
|
+
if (ctx.hasUI && overrides.length > 0) {
|
|
1578
|
+
for (const o of overrides) {
|
|
1579
|
+
ctx.ui.notify(`[monitors] override active for '${o.name}' — using ${o.winnerDir}/${o.name}.monitor.json; bundled version at ${o.losingDir} may be newer (delete the override to receive updates)`, "warning");
|
|
1580
|
+
}
|
|
1397
1581
|
}
|
|
1398
1582
|
// Reset per-monitor state for the new session. This covers both
|
|
1399
1583
|
// fresh sessions and what was previously handled by session_switch
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@davidorex/pi-behavior-monitors",
|
|
3
|
-
"version": "0.14.
|
|
3
|
+
"version": "0.14.6",
|
|
4
4
|
"description": "Behavior monitors for pi that watch agent activity and steer corrections",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
@@ -42,12 +42,12 @@
|
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
44
|
"nunjucks": "^3.2.4",
|
|
45
|
-
"@davidorex/pi-
|
|
46
|
-
"@davidorex/pi-
|
|
47
|
-
"@
|
|
48
|
-
"@mariozechner/pi-
|
|
49
|
-
"@mariozechner/pi-
|
|
50
|
-
"@
|
|
45
|
+
"@davidorex/pi-jit-agents": "^0.14.6",
|
|
46
|
+
"@davidorex/pi-project": "^0.14.6",
|
|
47
|
+
"@davidorex/pi-workflows": "^0.14.6",
|
|
48
|
+
"@mariozechner/pi-ai": "^0.70.2",
|
|
49
|
+
"@mariozechner/pi-coding-agent": "^0.70.2",
|
|
50
|
+
"@mariozechner/pi-tui": "^0.70.2"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
53
|
"@types/nunjucks": "^3.2.6",
|
|
@@ -131,32 +131,31 @@ write structured findings to JSON files for downstream consumption.
|
|
|
131
131
|
</objective>
|
|
132
132
|
|
|
133
133
|
<monitor_locations>
|
|
134
|
-
Monitors are discovered from
|
|
134
|
+
Monitors are discovered from three tiers, checked in precedence order; the first match
|
|
135
|
+
by `monitor.name` wins:
|
|
135
136
|
|
|
136
|
-
1. **Project**: `.pi/monitors/*.monitor.json` (walks up from cwd to find `.pi
|
|
137
|
+
1. **Project**: `.pi/monitors/*.monitor.json` (walks up from cwd to find `.pi/`, stops at the `.git` boundary)
|
|
137
138
|
2. **Global**: `~/.pi/agent/monitors/*.monitor.json` (via `getAgentDir()`)
|
|
139
|
+
3. **Bundled**: `<package>/examples/*.monitor.json` (the five built-in defaults that ship with the extension)
|
|
138
140
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
discovered
|
|
141
|
+
When a higher-precedence tier shadows a same-name monitor in a lower tier, the override
|
|
142
|
+
is logged once at session_start so drift is visible. The extension silently exits if
|
|
143
|
+
zero monitors are discovered across all three tiers.
|
|
142
144
|
</monitor_locations>
|
|
143
145
|
|
|
144
|
-
<
|
|
145
|
-
|
|
146
|
-
`.
|
|
146
|
+
<overrides>
|
|
147
|
+
To customize a bundled monitor, create `.pi/monitors/<name>.monitor.json` (and its
|
|
148
|
+
`.patterns.json` and `.instructions.json` sidecars) in your project. The override fully
|
|
149
|
+
replaces the bundled version by name. Per-monitor template subdirectories (e.g.,
|
|
150
|
+
`fragility/classify.md`) follow the same multi-tier search via
|
|
151
|
+
`createMonitorAgentTemplateEnv`, so an override directory tree mirrors the bundled
|
|
152
|
+
layout.
|
|
147
153
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
instructions files) into `.pi/monitors/`. It skips files that already exist at the
|
|
154
|
-
destination. The user is notified: "Edit or delete them to customize."
|
|
155
|
-
|
|
156
|
-
To customize seeded monitors, edit the copies in `.pi/monitors/` directly. To remove a
|
|
157
|
-
bundled monitor, delete its three files (`.monitor.json`, `.patterns.json`,
|
|
158
|
-
`.instructions.json`). Seeding never re-runs once any monitors exist.
|
|
159
|
-
</seeding>
|
|
154
|
+
Delete the override to revert to bundled behavior — bundled updates are picked up
|
|
155
|
+
automatically on the next session because tier 3 reads the package examples directly,
|
|
156
|
+
not a copied snapshot. This replaces the prior copy-on-first-run pattern that left
|
|
157
|
+
seeded `.pi/monitors/` files frozen at the package version they were seeded from.
|
|
158
|
+
</overrides>
|
|
160
159
|
|
|
161
160
|
<file_structure>
|
|
162
161
|
Each monitor is a set of files sharing a name prefix:
|
|
@@ -468,7 +467,8 @@ for other extensions or workflows to invoke classification directly.
|
|
|
468
467
|
</commands>
|
|
469
468
|
|
|
470
469
|
<bundled_monitors>
|
|
471
|
-
Five example monitors ship in `examples/` and
|
|
470
|
+
Five example monitors ship in `examples/` and load directly from the package as the
|
|
471
|
+
third discovery tier. Each has a
|
|
472
472
|
Nunjucks classify template in `examples/<name>/classify.md` with iteration-aware
|
|
473
473
|
acknowledgment support:
|
|
474
474
|
|