@miller-tech/uap 1.129.2 → 1.129.4

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.
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/cli/model.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAitBpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgE5D"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/cli/model.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2uBpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiE5D"}
package/dist/cli/model.js CHANGED
@@ -12,7 +12,7 @@ import { createRouter, createPlanner, createExecutor, MockModelClient, ModelPres
12
12
  import { MultiModelSchema } from '../types/config.js';
13
13
  // Config loading delegated to shared utility
14
14
  import { loadUapConfig, loadUapConfigRaw, findUapConfigPath, modifyUapConfig } from '../utils/config-loader.js';
15
- import { upsertProxyEnvVars } from './systemd-services.js';
15
+ import { upsertProxyEnvVars, readProxyEnvVar } from './systemd-services.js';
16
16
  import { profileForModelId, clearToolCallProfilePin } from '../models/profile-map.js';
17
17
  const loadConfig = () => loadUapConfig();
18
18
  /**
@@ -534,13 +534,28 @@ async function routingUseCommand(id, options) {
534
534
  // ANTHROPIC_PASSTHROUGH_MODELS and silently serves cloud tiers on qwen.
535
535
  try {
536
536
  const passthrough = passthroughModelsForPreset(preset);
537
- const envPath = upsertProxyEnvVars({ ANTHROPIC_PASSTHROUGH_MODELS: passthrough });
538
- const desc = passthrough === '__local_only__'
539
- ? 'all models served locally (no Anthropic passthrough)'
540
- : 'cloud tiers (planner/reviewer) pass through to the Anthropic API';
541
- console.log(chalk.green(`✓ Proxy passthrough wired in ${envPath}`));
542
- console.log(chalk.dim(` ${desc}`));
543
- console.log(chalk.dim(' Restart to apply: systemctl --user restart uap-anthropic-proxy.service'));
537
+ // Honor an operator LOCAL-ONLY pin. `ANTHROPIC_PASSTHROUGH_MODELS=__local_only__`
538
+ // is a deliberate lockdown of api.anthropic.com routing; routing to a
539
+ // cloud-inclusive preset must NOT silently clear it (that re-enabled cloud
540
+ // passthrough repeatedly against policy). Preserve the pin and tell the
541
+ // operator how to override, unless they explicitly opt in.
542
+ const pinnedLocalOnly = readProxyEnvVar('ANTHROPIC_PASSTHROUGH_MODELS') === '__local_only__';
543
+ const allowPassthrough = process.env.UAP_ALLOW_PROXY_PASSTHROUGH === '1' || options.allowPassthrough === true;
544
+ if (pinnedLocalOnly && passthrough !== '__local_only__' && !allowPassthrough) {
545
+ console.log(chalk.yellow('⚠ Proxy is pinned LOCAL-ONLY (ANTHROPIC_PASSTHROUGH_MODELS=__local_only__) — keeping it.'));
546
+ console.log(chalk.dim(` This preset would route cloud tiers to Anthropic; not enabling it against the pin.\n` +
547
+ ` To allow passthrough: re-run with --allow-passthrough (or UAP_ALLOW_PROXY_PASSTHROUGH=1),\n` +
548
+ ` or remove the pin (env file + the systemd Environment= line if present).`));
549
+ }
550
+ else {
551
+ const envPath = upsertProxyEnvVars({ ANTHROPIC_PASSTHROUGH_MODELS: passthrough });
552
+ const desc = passthrough === '__local_only__'
553
+ ? 'all models served locally (no Anthropic passthrough)'
554
+ : 'cloud tiers (planner/reviewer) pass through to the Anthropic API';
555
+ console.log(chalk.green(`✓ Proxy passthrough wired in ${envPath}`));
556
+ console.log(chalk.dim(` ${desc}`));
557
+ console.log(chalk.dim(' Restart to apply: systemctl --user restart uap-anthropic-proxy.service'));
558
+ }
544
559
  }
545
560
  catch (err) {
546
561
  console.warn(chalk.yellow(`\n⚠ Saved routing, but could not update proxy env: ${err.message}`));
@@ -636,6 +651,7 @@ export function registerModelCommands(program) {
636
651
  .command('use <id>')
637
652
  .description('Apply a routing option (writes multiModel to .uap.json)')
638
653
  .option('--save', 'Persist to .uap.json (otherwise preview only)')
654
+ .option('--allow-passthrough', 'Allow enabling Anthropic cloud passthrough even if the proxy is pinned __local_only__ (operator override)')
639
655
  .action(routingUseCommand);
640
656
  routing
641
657
  .command('on')
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/cli/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/cli/model.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,12 @@ export interface SystemdServiceSetupResult {
11
11
  export declare function installSystemdUserServices(projectDir: string, options?: SystemdServiceSetupOptions): SystemdServiceSetupResult;
12
12
  /** Absolute path to the proxy's systemd EnvironmentFile. */
13
13
  export declare function proxyEnvPath(homeDir?: string): string;
14
+ /**
15
+ * Read the last (last-wins) value of KEY in the proxy env file, or null if the
16
+ * file is missing or the key is unset. Used to honor an operator local-only pin
17
+ * before overwriting ANTHROPIC_PASSTHROUGH_MODELS.
18
+ */
19
+ export declare function readProxyEnvVar(key: string, homeDir?: string): string | null;
14
20
  /**
15
21
  * Idempotently set KEY=value lines in the proxy's systemd EnvironmentFile — the
16
22
  * file the running uap-anthropic-proxy service reads. Creates the file/dir if
@@ -1 +1 @@
1
- {"version":3,"file":"systemd-services.d.ts","sourceRoot":"","sources":["../../src/cli/systemd-services.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,0BAA0B;IACzC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAkBD,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,0BAA+B,GACvC,yBAAyB,CA4N3B;AAGD,4DAA4D;AAC5D,wBAAgB,YAAY,CAAC,OAAO,GAAE,MAAqB,GAAG,MAAM,CAEnE;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,OAAO,GAAE,MAAqB,GAC7B,MAAM,CAwBR"}
1
+ {"version":3,"file":"systemd-services.d.ts","sourceRoot":"","sources":["../../src/cli/systemd-services.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,0BAA0B;IACzC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAkBD,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,0BAA+B,GACvC,yBAAyB,CA4N3B;AAGD,4DAA4D;AAC5D,wBAAgB,YAAY,CAAC,OAAO,GAAE,MAAqB,GAAG,MAAM,CAEnE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,MAAqB,GAAG,MAAM,GAAG,IAAI,CAQ1F;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,OAAO,GAAE,MAAqB,GAC7B,MAAM,CAwBR"}
@@ -186,6 +186,22 @@ export function installSystemdUserServices(projectDir, options = {}) {
186
186
  export function proxyEnvPath(homeDir = os.homedir()) {
187
187
  return join(homeDir, '.config', 'uap', 'anthropic-proxy.env');
188
188
  }
189
+ /**
190
+ * Read the last (last-wins) value of KEY in the proxy env file, or null if the
191
+ * file is missing or the key is unset. Used to honor an operator local-only pin
192
+ * before overwriting ANTHROPIC_PASSTHROUGH_MODELS.
193
+ */
194
+ export function readProxyEnvVar(key, homeDir = os.homedir()) {
195
+ const path = proxyEnvPath(homeDir);
196
+ if (!existsSync(path))
197
+ return null;
198
+ const lines = readFileSync(path, 'utf8').split('\n');
199
+ for (let i = lines.length - 1; i >= 0; i--) {
200
+ if (lines[i].startsWith(`${key}=`))
201
+ return lines[i].slice(key.length + 1);
202
+ }
203
+ return null;
204
+ }
189
205
  /**
190
206
  * Idempotently set KEY=value lines in the proxy's systemd EnvironmentFile — the
191
207
  * file the running uap-anthropic-proxy service reads. Creates the file/dir if
@@ -1 +1 @@
1
- {"version":3,"file":"systemd-services.js","sourceRoot":"","sources":["../../src/cli/systemd-services.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACnF,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAc5B,SAAS,cAAc,CACrB,QAAgB,EAChB,OAAe,EACf,SAAmB,EACnB,OAAiB,EACjB,KAAK,GAAG,KAAK;IAEb,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvB,OAAO;IACT,CAAC;IAED,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,UAAkB,EAClB,UAAsC,EAAE;IAExC,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC;IAErC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAC/C,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE3C,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,EAAE,mCAAmC,CAAC,CAAC;IAC9E,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,EAAE,gCAAgC,CAAC,CAAC;IAE3E,cAAc,CACZ,eAAe,EACf;QACE,qBAAqB;QACrB,mBAAmB;QACnB,EAAE;QACF,6DAA6D;QAC7D,EAAE;QACF,yCAAyC;QACzC,qEAAqE;QACrE,mDAAmD;QACnD,EAAE;QACF,uDAAuD;QACvD,oDAAoD;QACpD,wEAAwE;QACxE,+DAA+D;QAC/D,wEAAwE;QACxE,mFAAmF;QACnF,6DAA6D;QAC7D,iEAAiE;QACjE,EAAE;QACF,gBAAgB;QAChB,sDAAsD;QACtD,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,SAAS,EACT,OAAO,EACP,KAAK,CACN,CAAC;IAEF,cAAc,CACZ,eAAe,EACf;QACE,qBAAqB;QACrB,mBAAmB;QACnB,EAAE;QACF,8EAA8E;QAC9E,qFAAqF;QACrF,EAAE;QACF,kCAAkC;QAClC,6DAA6D;QAC7D,UAAU;QACV,IAAI;QACJ,EAAE;QACF,oCAAoC;QACpC,yDAAyD;QACzD,UAAU;QACV,IAAI;QACJ,EAAE;QACF,4CAA4C;QAC5C,yCAAyC;QACzC,mDAAmD;QACnD,6CAA6C;QAC7C,mDAAmD;QACnD,oDAAoD;QACpD,sDAAsD;QACtD,0DAA0D;QAC1D,2EAA2E;QAC3E,6DAA6D;QAC7D,EAAE;QACF,sBAAsB;QACtB,6BAA6B;QAC7B,2BAA2B;QAC3B,2BAA2B;QAC3B,iCAAiC;QACjC,mCAAmC;QACnC,0BAA0B;QAC1B,0BAA0B;QAC1B,uCAAuC;QACvC,sBAAsB;QACtB,uCAAuC;QACvC,yCAAyC;QACzC,mBAAmB;QACnB,yBAAyB;QACzB,wBAAwB;QACxB,2BAA2B;QAC3B,yBAAyB;QACzB,qCAAqC;QACrC,gCAAgC;QAChC,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,SAAS,EACT,OAAO,EACP,KAAK,CACN,CAAC;IAEF,SAAS,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IAClC,SAAS,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IAElC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IAChD,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACnE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAC/C,SAAS,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEvC,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,EAAE,6BAA6B,CAAC,CAAC;IAC7E,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC;IAC1E,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IACzD,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAEtD,cAAc,CACZ,gBAAgB,EAChB;QACE,QAAQ;QACR,mDAAmD;QACnD,sDAAsD;QACtD,6BAA6B;QAC7B,EAAE;QACF,WAAW;QACX,aAAa;QACb,oBAAoB,UAAU,EAAE;QAChC,mBAAmB,YAAY,EAAE;QACjC,aAAa,eAAe,EAAE;QAC9B,gBAAgB;QAChB,cAAc;QACd,mBAAmB;QACnB,EAAE;QACF,WAAW;QACX,yBAAyB;QACzB,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,SAAS,EACT,OAAO,EACP,KAAK,CACN,CAAC;IAEF,cAAc,CACZ,gBAAgB,EAChB;QACE,QAAQ;QACR,mDAAmD;QACnD,6BAA6B;QAC7B,6BAA6B;QAC7B,EAAE;QACF,WAAW;QACX,aAAa;QACb,oBAAoB,UAAU,EAAE;QAChC,mBAAmB,YAAY,EAAE;QACjC,aAAa,eAAe,EAAE;QAC9B,gBAAgB;QAChB,cAAc;QACd,mBAAmB;QACnB,EAAE;QACF,WAAW;QACX,yBAAyB;QACzB,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,SAAS,EACT,OAAO,EACP,KAAK,CACN,CAAC;IAEF,cAAc,CACZ,YAAY,EACZ;QACE,iBAAiB;QACjB,yCAAyC;QACzC,sBAAsB;QACtB,EAAE;QACF,uBAAuB;QACvB,qBAAqB;QACrB,+BAA+B;QAC/B,2BAA2B;QAC3B,+BAA+B;QAC/B,sCAAsC;QACtC,0BAA0B;QAC1B,6BAA6B;QAC7B,EAAE;QACF,yEAAyE;QACzE,yEAAyE;QACzE,8DAA8D;QAC9D,2EAA2E;QAC3E,+BAA+B;QAC/B,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,SAAS,EACT,OAAO,EACP,KAAK,CACN,CAAC;IAEF,cAAc,CACZ,YAAY,EACZ;QACE,8DAA8D;QAC9D,mEAAmE;QACnE,EAAE;QACF,oBAAoB;QACpB,iBAAiB;QACjB,uBAAuB;QACvB,kBAAkB;QAClB,qBAAqB;QACrB,sBAAsB;QACtB,uBAAuB;QACvB,6BAA6B;QAC7B,mCAAmC;QACnC,iCAAiC;QACjC,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,SAAS,EACT,OAAO,EACP,KAAK,CACN,CAAC;IAEF,OAAO;QACL,SAAS;QACT,OAAO;QACP,cAAc;QACd,MAAM;KACP,CAAC;AACJ,CAAC;AAGD,4DAA4D;AAC5D,MAAM,UAAU,YAAY,CAAC,UAAkB,EAAE,CAAC,OAAO,EAAE;IACzD,OAAO,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,qBAAqB,CAAC,CAAC;AAChE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAA4B,EAC5B,UAAkB,EAAE,CAAC,OAAO,EAAE;IAE9B,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACnC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpE,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,MAAM,UAAU,GAAG,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;QACrC,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC;gBACnC,KAAK,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;gBACtB,QAAQ,GAAG,IAAI,CAAC;gBAChB,MAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE;gBAAE,KAAK,CAAC,GAAG,EAAE,CAAC;YAChE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IACD,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,GAAG,IAAI,IAAI,CAAC;IACrC,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACzB,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"systemd-services.js","sourceRoot":"","sources":["../../src/cli/systemd-services.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@miller-tech/uap",
3
- "version": "1.129.2",
3
+ "version": "1.129.4",
4
4
  "description": "Autonomous AI agent memory system with CLAUDE.md protocol enforcement",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -21,7 +21,7 @@
21
21
  "start": "node dist/bin/cli.js",
22
22
  "test": "vitest",
23
23
  "test:ci": "vitest run",
24
- "test:enforcers": "python3 -m unittest tools.agents.tests.test_enforcement_self_protect tools.agents.tests.test_schema_diff_gate tools.agents.tests.test_stream_telemetry tools.agents.tests.test_workdir_scope_enforcer tools.agents.tests.test_path_containment tools.agents.tests.test_path_normalizer_hardened tools.agents.tests.test_sandbox_tool_strip tools.agents.tests.test_proxy_env_loader tools.agents.tests.test_stream_required_tool tools.agents.tests.test_tool_call_wrapper_profiles tools.agents.tests.test_tool_convert_cache",
24
+ "test:enforcers": "python3 -m unittest tools.agents.tests.test_enforcement_self_protect tools.agents.tests.test_schema_diff_gate tools.agents.tests.test_stream_telemetry tools.agents.tests.test_project_telemetry_events tools.agents.tests.test_workdir_scope_enforcer tools.agents.tests.test_path_containment tools.agents.tests.test_path_normalizer_hardened tools.agents.tests.test_sandbox_tool_strip tools.agents.tests.test_proxy_env_loader tools.agents.tests.test_stream_required_tool tools.agents.tests.test_tool_call_wrapper_profiles tools.agents.tests.test_tool_convert_cache",
25
25
  "test:coverage": "vitest --coverage",
26
26
  "bench": "vitest --config vitest.bench.config.ts",
27
27
  "lint": "eslint src --ext .ts",
@@ -536,18 +536,19 @@ except Exception: # pragma: no cover - optional middleware
536
536
  _TOOLCALL_NORMALIZER_OK = False
537
537
 
538
538
 
539
- def _record_project_telemetry(body, model, usage) -> None:
539
+ def _record_project_telemetry(body, model, usage, duration_ms: float = 0.0) -> None:
540
540
  """Fail-open per-project routing/cost telemetry: derive the request's project
541
- dir and append a task_outcomes row to its analytics DB so per-project
542
- dashboards see the model calls this shared proxy makes. See
543
- tools/agents/scripts/project_telemetry.py. Never raises."""
541
+ dir and append a task_outcomes row (plus a dashboard live-feed event) to its
542
+ analytics/telemetry DBs so per-project dashboards see the model calls this
543
+ shared proxy makes. See tools/agents/scripts/project_telemetry.py. Never
544
+ raises."""
544
545
  try:
545
546
  import sys as _s
546
547
  _d = os.path.dirname(os.path.abspath(__file__))
547
548
  if _d not in _s.path:
548
549
  _s.path.insert(0, _d)
549
550
  import project_telemetry as _pt
550
- _pt.record_from_request(body, model, usage)
551
+ _pt.record_from_request(body, model, usage, duration_ms=duration_ms)
551
552
  except Exception:
552
553
  pass
553
554
 
@@ -8930,6 +8931,7 @@ async def stream_anthropic_response(
8930
8931
  - Proper upstream response closure on client disconnect
8931
8932
  """
8932
8933
  msg_id = f"msg_{uuid.uuid4().hex[:24]}"
8934
+ stream_started = time.monotonic()
8933
8935
 
8934
8936
  # message_start
8935
8937
  yield (
@@ -9257,16 +9259,40 @@ async def stream_anthropic_response(
9257
9259
  upstream_input = int(upstream_usage.get("prompt_tokens") or 0)
9258
9260
  if upstream_input > 0:
9259
9261
  monitor.last_input_tokens = upstream_input
9262
+ final_output = int(upstream_usage.get("completion_tokens") or 0)
9263
+ if final_output <= 0:
9264
+ # Upstream sent no usable usage (older servers ignore stream_options):
9265
+ # estimate from everything actually generated — text, tool-call
9266
+ # arguments, and reasoning — at ~4 chars/token, never below the
9267
+ # per-delta chunk count.
9268
+ generated_chars = (
9269
+ sum(len(c) for c in text_chunks)
9270
+ # isinstance guard: the XML-recovery path stores a bare sentinel
9271
+ # (tool_calls_by_index["_xml_recovered"] = True) in this map.
9272
+ + sum(
9273
+ len(tc.get("arguments", ""))
9274
+ for tc in tool_calls_by_index.values()
9275
+ if isinstance(tc, dict)
9276
+ )
9277
+ + sum(len(c) for c in reasoning_chunks)
9278
+ )
9279
+ final_output = max(output_tokens, (generated_chars + 3) // 4)
9260
9280
  usage_final = {
9261
9281
  "input_tokens": upstream_input or getattr(monitor, "last_input_tokens", 0) or 0,
9262
- "output_tokens": int(upstream_usage.get("completion_tokens") or 0) or output_tokens,
9282
+ "output_tokens": final_output,
9263
9283
  }
9264
9284
  # After message_stop (never delays the client's final frame; a disconnect
9265
9285
  # parked exactly on that yield skips recording, matching the non-stream
9266
9286
  # "completed responses only" semantics) and off the event loop (a locked
9267
9287
  # analytics DB must not stall token delivery for concurrent sessions).
9268
9288
  try:
9269
- await asyncio.to_thread(_record_project_telemetry, anthropic_body, model, usage_final)
9289
+ await asyncio.to_thread(
9290
+ _record_project_telemetry,
9291
+ anthropic_body,
9292
+ model,
9293
+ usage_final,
9294
+ (time.monotonic() - stream_started) * 1000.0,
9295
+ )
9270
9296
  except Exception:
9271
9297
  pass
9272
9298
 
@@ -9836,7 +9862,12 @@ async def messages(request: Request):
9836
9862
  upstream_input = anthropic_resp.get("usage", {}).get("input_tokens", 0)
9837
9863
  if upstream_input > 0:
9838
9864
  monitor.last_input_tokens = upstream_input
9839
- _record_project_telemetry(body, model, anthropic_resp.get("usage", {}))
9865
+ # Off the event loop: the recorder now writes TWO DBs (analytics +
9866
+ # dashboard telemetry) with 2s busy timeouts — a lock stall here
9867
+ # would block every concurrent session's turn.
9868
+ await asyncio.to_thread(
9869
+ _record_project_telemetry, body, model, anthropic_resp.get("usage", {})
9870
+ )
9840
9871
  if PROXY_FORCE_NON_STREAM:
9841
9872
  logger.info(
9842
9873
  "FORCED NON-STREAM: served stream response via guarded non-stream path"
@@ -9877,6 +9908,10 @@ async def messages(request: Request):
9877
9908
 
9878
9909
  if is_stream:
9879
9910
  openai_body["stream"] = True
9911
+ # Without this, OpenAI-compat upstreams (llama-server included) omit
9912
+ # completion_tokens from the final stream chunk — the reason streamed
9913
+ # tool-use turns recorded tokensOut=0 in per-project telemetry.
9914
+ openai_body["stream_options"] = {"include_usage": True}
9880
9915
 
9881
9916
  # Retry upstream connection with backoff to handle
9882
9917
  # llama-server restarts gracefully instead of 500-ing to the client.
@@ -10276,7 +10311,10 @@ async def messages(request: Request):
10276
10311
  if upstream_input > 0:
10277
10312
  monitor.last_input_tokens = upstream_input
10278
10313
 
10279
- _record_project_telemetry(body, model, anthropic_resp.get("usage", {}))
10314
+ # Off the event loop — see the guarded-non-stream call site.
10315
+ await asyncio.to_thread(
10316
+ _record_project_telemetry, body, model, anthropic_resp.get("usage", {})
10317
+ )
10280
10318
  return anthropic_resp
10281
10319
 
10282
10320
 
@@ -18,6 +18,7 @@ Design constraints (it runs in the hot path of a live proxy):
18
18
 
19
19
  from __future__ import annotations
20
20
 
21
+ import json
21
22
  import os
22
23
  import re
23
24
  import sqlite3
@@ -171,19 +172,135 @@ def record_task_outcome(
171
172
  return False
172
173
 
173
174
 
174
- def record_from_request(body: dict, model: str, usage: dict, *, task_id: str = "") -> bool:
175
+ # ── dashboard live-feed (telemetry.db) ─────────────────────────────────────
176
+ # The Live Events / Performance panels read <project>/agents/data/memory/
177
+ # telemetry.db, which is otherwise written only by the TS producers
178
+ # (mcp-router/executor). Plain claude+proxy sessions never run those, so the
179
+ # panels stayed empty forever. The proxy is the one process that sees every
180
+ # turn — mirror the turn into the same store. Compression stats are NOT
181
+ # fabricated here: the proxy does no compression, that panel is honestly
182
+ # empty for plain sessions.
183
+ #
184
+ # DDL matches src/utils/telemetry-store.ts exactly (CREATE IF NOT EXISTS
185
+ # no-ops when the TS side created the tables first; the shape only matters
186
+ # when the proxy creates them for a fresh project).
187
+ _TELEMETRY_CREATE_SQL = """
188
+ CREATE TABLE IF NOT EXISTS perf_samples (
189
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
190
+ metric TEXT NOT NULL,
191
+ duration_ms REAL NOT NULL,
192
+ ts TEXT NOT NULL DEFAULT (datetime('now'))
193
+ );
194
+ CREATE INDEX IF NOT EXISTS idx_perf_samples_metric ON perf_samples(metric);
195
+ CREATE TABLE IF NOT EXISTS dashboard_events (
196
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
197
+ ts TEXT NOT NULL DEFAULT (datetime('now')),
198
+ category TEXT NOT NULL,
199
+ type TEXT NOT NULL,
200
+ severity TEXT NOT NULL DEFAULT 'info',
201
+ title TEXT NOT NULL,
202
+ detail TEXT,
203
+ metadata TEXT
204
+ );
205
+ """
206
+
207
+ # NOTE: the TS side trims events harder (MAX_PERSISTED_EVENTS = 500); this
208
+ # looser cap only matters for proxy-only projects where no TS producer runs.
209
+ _EVENTS_KEEP = 5000
210
+ _PERF_KEEP_PER_METRIC = 1000 # mirrors telemetry-store.ts PERF_SAMPLES_PER_METRIC
211
+ # Best-effort trim trigger: global across projects and not thread-safe, so a
212
+ # given DB trims roughly every 50*N-projects inserts — overshoot is bounded
213
+ # by the DELETEs themselves, precision is not needed here.
214
+ _trim_counter = 0
215
+
216
+
217
+ def record_dashboard_turn(
218
+ project_dir: str,
219
+ model: str,
220
+ tokens_in: int,
221
+ tokens_out: int,
222
+ duration_ms: float = 0.0,
223
+ ) -> bool:
224
+ """Mirror one completed proxy turn into the project's telemetry.db so the
225
+ dashboard's Live Events and Performance panels move for plain
226
+ claude+proxy sessions. Never raises; a dropped event is strictly better
227
+ than a stalled turn."""
228
+ global _trim_counter
229
+ try:
230
+ db_dir = os.path.join(project_dir, "agents", "data", "memory")
231
+ if not os.path.isdir(db_dir):
232
+ return False
233
+ conn = sqlite3.connect(os.path.join(db_dir, "telemetry.db"), timeout=1.0)
234
+ try:
235
+ # Match the TS producers' settings so cross-process writes don't
236
+ # silently drop under lock contention (busy_timeout 2000: telemetry
237
+ # must never stall the hot path).
238
+ conn.execute("PRAGMA journal_mode = WAL")
239
+ conn.execute("PRAGMA synchronous = NORMAL")
240
+ conn.execute("PRAGMA busy_timeout = 2000")
241
+ conn.executescript(_TELEMETRY_CREATE_SQL)
242
+ conn.execute(
243
+ "INSERT INTO dashboard_events (category, type, severity, title, metadata) "
244
+ "VALUES ('model', 'turn', 'info', ?, ?)",
245
+ (
246
+ f"{model}: {int(tokens_out or 0)} tok out / {int(tokens_in or 0)} in",
247
+ json.dumps(
248
+ {
249
+ "model": str(model or "unknown"),
250
+ "tokensIn": int(tokens_in or 0),
251
+ "tokensOut": int(tokens_out or 0),
252
+ "durationMs": round(float(duration_ms or 0), 1),
253
+ }
254
+ ),
255
+ ),
256
+ )
257
+ if duration_ms and duration_ms > 0:
258
+ conn.execute(
259
+ "INSERT INTO perf_samples (metric, duration_ms) VALUES ('proxy_turn_ms', ?)",
260
+ (float(duration_ms),),
261
+ )
262
+ _trim_counter += 1
263
+ if _trim_counter % 50 == 0:
264
+ conn.execute(
265
+ "DELETE FROM dashboard_events WHERE id NOT IN "
266
+ "(SELECT id FROM dashboard_events ORDER BY id DESC LIMIT ?)",
267
+ (_EVENTS_KEEP,),
268
+ )
269
+ conn.execute(
270
+ "DELETE FROM perf_samples WHERE metric = 'proxy_turn_ms' AND id NOT IN "
271
+ "(SELECT id FROM perf_samples WHERE metric = 'proxy_turn_ms' "
272
+ "ORDER BY id DESC LIMIT ?)",
273
+ (_PERF_KEEP_PER_METRIC,),
274
+ )
275
+ conn.commit()
276
+ finally:
277
+ conn.close()
278
+ return True
279
+ except Exception:
280
+ return False
281
+
282
+
283
+ def record_from_request(
284
+ body: dict, model: str, usage: dict, *, task_id: str = "", duration_ms: float = 0.0
285
+ ) -> bool:
175
286
  """Proxy hot-path entry point: derive project + record. Never raises."""
176
287
  try:
177
288
  project_dir = derive_project_dir(body or {})
178
289
  if not project_dir:
179
290
  return False
180
291
  u = usage or {}
181
- return record_task_outcome(
292
+ tokens_in = int(u.get("input_tokens") or 0)
293
+ tokens_out = int(u.get("output_tokens") or 0)
294
+ wrote = record_task_outcome(
182
295
  project_dir,
183
296
  model,
184
- int(u.get("input_tokens") or 0),
185
- int(u.get("output_tokens") or 0),
297
+ tokens_in,
298
+ tokens_out,
299
+ duration_ms=int(duration_ms or 0),
186
300
  task_id=task_id,
187
301
  )
302
+ if wrote:
303
+ record_dashboard_turn(project_dir, model, tokens_in, tokens_out, duration_ms)
304
+ return wrote
188
305
  except Exception:
189
306
  return False