troxy-cli 1.30.11 → 1.30.12

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": "troxy-cli",
3
- "version": "1.30.11",
3
+ "version": "1.30.12",
4
4
  "description": "A secure control layer for AI agents: policies across payments, messages, logins, destructive actions, model usage, and secrets, all enforceable from the CLI",
5
5
  "homepage": "https://troxy.io",
6
6
  "bugs": {
@@ -74,7 +74,7 @@ const HAIKU_BANDS = [[0.2, 'haiku']];
74
74
  // A Haiku session moves up to Sonnet, once and for good, when a later prompt scores above
75
75
  // this or the context passes the Haiku price break (Haiku 5.5 is 5x dearer past 100k tokens).
76
76
  // Never back down: every switch re-writes the cache.
77
- const HAIKU_ESCALATE_ABOVE = 0.6;
77
+ const HAIKU_ESCALATE_ABOVE = 0.3; // job B's bug and fix prompts scored 0.4 to 0.5 and Sonnet won them 8 to 2; at 0.6 they stayed on Haiku
78
78
  const HAIKU_MAX_TOKENS = 100000;
79
79
  const ROUTE_CONTEXT_FLOOR_TOKENS = 50000;
80
80
  const SCORE_TIMEOUT_MS = 3000;
@@ -107,7 +107,8 @@ test('stepModel: a Haiku session moves up to Sonnet on a hard prompt or a long c
107
107
  assert.equal(stepModel({ ...base, cold: true, score: 0.1, warm: null, tokens: 150000 }), MODELS.sonnet); // too long to start on Haiku
108
108
  assert.equal(stepModel({ ...base, cold: false, score: 0.1, warm: MODELS.haiku }), MODELS.haiku); // easy prompt: hold
109
109
  assert.equal(stepModel({ ...base, cold: false, score: null, warm: MODELS.haiku }), MODELS.haiku); // no score: hold
110
- assert.equal(stepModel({ ...base, cold: false, score: 0.7, warm: MODELS.haiku }), MODELS.sonnet); // hard prompt: up
110
+ assert.equal(stepModel({ ...base, cold: false, score: 0.4, warm: MODELS.haiku }), MODELS.sonnet); // harder prompt: up
111
+ assert.equal(stepModel({ ...base, cold: false, score: 0.3, warm: MODELS.haiku }), MODELS.haiku); // 0.3 or lower: hold
111
112
  assert.equal(stepModel({ ...base, cold: false, score: 0.1, warm: MODELS.haiku, tokens: 120000 }), MODELS.sonnet); // long: up
112
113
  assert.equal(stepModel({ ...base, cold: false, score: 0.1, warm: MODELS.sonnet }), MODELS.sonnet); // Sonnet never goes down
113
114
  assert.equal(stepModel({ ...base, haiku: false, cold: false, score: 0.1, warm: MODELS.haiku }), MODELS.sonnet); // flag off: up