sawbuck 0.1.45 → 0.1.46

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sawbuck",
3
- "version": "0.1.45",
3
+ "version": "0.1.46",
4
4
  "description": "Sign your agent to a contract: a deterministic, zero-LLM check re-proves each win from the agent's source edits alone, so a test that went green by editing the test, grader, or config is sent back. For Claude Code, with Codex untested.",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -34,7 +34,7 @@
34
34
  },
35
35
  "dependencies": {
36
36
  "@promptwheel/logbook": "0.11.0",
37
- "promptwheel": "0.7.16"
37
+ "promptwheel": "0.8.0"
38
38
  },
39
39
  "files": [
40
40
  "sawbuck.mjs",
package/repo-state.mjs CHANGED
@@ -14,7 +14,7 @@ export function repoState(repo) {
14
14
  const armed = hasConfig || has('package.json');
15
15
  const state = has('.sawbuck/state.json') ? 'watching' : armed ? 'ready' : (has('LOGBOOK.md') || has('events.jsonl')) ? 'memory' : '';
16
16
  // the reins engine's file; reins does the model work, never sawbuck. A rate nobody has updated for a week is
17
- // history, not a reading, and the judge is off unless someone turned it on.
17
+ // history, not a reading: the judge was turned off, or the plugin is not running.
18
18
  const s = record('steer.json');
19
19
  const live = s && s.scored && !(s.at && Date.now() - Date.parse(s.at) > WEEK);
20
20
  const steer = live ? { rate: Math.round(((s.ema != null ? s.ema : s.steeringRate) || 0) * 100), scored: s.scored } : null;
package/steers.mjs CHANGED
@@ -37,7 +37,7 @@ export function steersReport({ json = false, home } = {}) {
37
37
  const groups = groupSteers(steers);
38
38
  const repeated = groups.filter((g) => g.n >= 3 && g.sessions >= 2);
39
39
  if (json) return JSON.stringify({ steers: steers.length, scored: stats.scored, unscored: stats.lost, repeated });
40
- if (!steers.length && !stats.scored) return '🐴 sawbuck: no steers recorded. The plugin\'s live judge is off by default; /sawbuck-reins:rules reads your history instead.';
40
+ if (!steers.length && !stats.scored) return '🐴 sawbuck: no steers recorded yet. They appear as you work with the plugin\'s live judge on.';
41
41
  const out = [`🐴 ${steers.length} steers kept, from ${stats.scored} replies scored${stats.lost ? ` (${stats.lost} could not be scored, so this undercounts)` : ''}. Measured, not estimated.`];
42
42
  if (repeated.length) {
43
43
  out.push('', 'You keep saying:');