@cat-factory/server 0.166.2 → 0.167.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/dist/agents/ContainerAgentExecutor.d.ts.map +1 -1
- package/dist/agents/ContainerAgentExecutor.js +15 -1
- package/dist/agents/ContainerAgentExecutor.js.map +1 -1
- package/dist/agents/ContainerEnvConfigRepairer.d.ts.map +1 -1
- package/dist/agents/ContainerEnvConfigRepairer.js +3 -0
- package/dist/agents/ContainerEnvConfigRepairer.js.map +1 -1
- package/dist/agents/ContainerRepoBootstrapper.d.ts.map +1 -1
- package/dist/agents/ContainerRepoBootstrapper.js +3 -0
- package/dist/agents/ContainerRepoBootstrapper.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/modules/llmProxy/LlmProxyController.d.ts.map +1 -1
- package/dist/modules/llmProxy/LlmProxyController.js +273 -215
- package/dist/modules/llmProxy/LlmProxyController.js.map +1 -1
- package/dist/persistence/remoteRepositories.d.ts +9 -1
- package/dist/persistence/remoteRepositories.d.ts.map +1 -1
- package/dist/persistence/remoteRepositories.js +13 -1
- package/dist/persistence/remoteRepositories.js.map +1 -1
- package/dist/persistence/rpc-allowlist.d.ts +23 -0
- package/dist/persistence/rpc-allowlist.d.ts.map +1 -1
- package/dist/persistence/rpc-allowlist.js +50 -10
- package/dist/persistence/rpc-allowlist.js.map +1 -1
- package/dist/persistence/rpc-scope.logic.d.ts +15 -0
- package/dist/persistence/rpc-scope.logic.d.ts.map +1 -1
- package/dist/persistence/rpc-scope.logic.js +29 -0
- package/dist/persistence/rpc-scope.logic.js.map +1 -1
- package/dist/persistence/rpc.d.ts +11 -0
- package/dist/persistence/rpc.d.ts.map +1 -1
- package/dist/persistence/rpc.js +7 -1
- package/dist/persistence/rpc.js.map +1 -1
- package/package.json +8 -8
|
@@ -3,7 +3,7 @@ import { bodyLimit } from 'hono/body-limit';
|
|
|
3
3
|
import { promptCacheParams, readInputTokenClasses } from '@cat-factory/agents';
|
|
4
4
|
import { isLocalRunner } from '@cat-factory/contracts';
|
|
5
5
|
import { fetchLocalRunner } from '@cat-factory/integrations';
|
|
6
|
-
import { contextWindowFor, runBestEffort } from '@cat-factory/kernel';
|
|
6
|
+
import { contextWindowFor, normalizeCallPhase, runBestEffort, } from '@cat-factory/kernel';
|
|
7
7
|
import { openAiCompatibleBaseUrlError } from '../../agents/providerErrors.js';
|
|
8
8
|
import { ContainerSessionService, } from '../../containers/ContainerSessionService.js';
|
|
9
9
|
import { makeWaitUntil } from '../../http/waitUntil.js';
|
|
@@ -348,229 +348,287 @@ async function relayUpstream(c, ctx, target) {
|
|
|
348
348
|
* upload routes' explicit `bodyLimit`.
|
|
349
349
|
*/
|
|
350
350
|
const MAX_PROXY_BODY_BYTES = 32 * 1024 * 1024;
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
//
|
|
385
|
-
//
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
const
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
//
|
|
393
|
-
//
|
|
394
|
-
//
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
//
|
|
398
|
-
//
|
|
399
|
-
//
|
|
400
|
-
|
|
401
|
-
|
|
351
|
+
/**
|
|
352
|
+
* The completions paths this proxy serves. The second carries the RUN PHASE the caller was in
|
|
353
|
+
* when it made the call (`agent`, `validation-repair`, `reproduction-repair`, …): the harness
|
|
354
|
+
* points Pi's provider config at `${proxyBaseUrl}/phase/<phase>` for the pass it is about to
|
|
355
|
+
* run, so the phase axis on `llm_call_metrics` is stamped by the component that OWNS the phase
|
|
356
|
+
* boundary rather than inferred downstream from timestamps
|
|
357
|
+
* (`docs/initiatives/token-burn-instrumentation.md`).
|
|
358
|
+
*
|
|
359
|
+
* A URL segment rather than a header because the harness does not make these requests — Pi
|
|
360
|
+
* does, from a config file whose only per-run knobs are the base URL and the token. The
|
|
361
|
+
* unphased path stays the canonical one: an image that predates the phase axis keeps working,
|
|
362
|
+
* and its calls land in the unattributed `''` slice.
|
|
363
|
+
*/
|
|
364
|
+
const COMPLETIONS_PATHS = ['/v1/chat/completions', '/v1/phase/:phase/chat/completions'];
|
|
365
|
+
/**
|
|
366
|
+
* Build the per-call observation handler: (1) push a COMPACT live activity event (no
|
|
367
|
+
* prompt/response bodies) so an open "Model activity" panel updates in real time, independent
|
|
368
|
+
* of the durable driver — the proxy records calls even while the run's poll loop is evicted;
|
|
369
|
+
* (2) persist the full metric to the observability sink when it is wired.
|
|
370
|
+
*
|
|
371
|
+
* `upstreamMs` is supplied by whichever path made the call; `totalMs` is the proxy's end-to-end
|
|
372
|
+
* time. Both halves are best-effort and must never break the proxy. Extracted from
|
|
373
|
+
* {@link handleChatCompletion} because it is a cohesive collaborator (everything the metering
|
|
374
|
+
* boundary needs is in {@link CallMeterContext}) and the handler had no headroom left under the
|
|
375
|
+
* 300-line function budget.
|
|
376
|
+
*/
|
|
377
|
+
function makeCallObserver(meter, deps) {
|
|
378
|
+
const { session, callId, startedAt, streaming, phase, messageCount, toolCount, promptText } = meter;
|
|
379
|
+
const { waitUntil, log, executionEventPublisher, llmObservability } = deps;
|
|
380
|
+
return (obs) => {
|
|
381
|
+
const completionTokens = obs.usage?.completion_tokens ?? 0;
|
|
382
|
+
// The three input classes are recorded ORTHOGONALLY, so total input is their sum. An
|
|
383
|
+
// upstream path that already knows the split (a gateway whose own shape carries it)
|
|
384
|
+
// hands all three over together; otherwise they are read off the usage payload, which
|
|
385
|
+
// is where the inclusive-vs-exclusive reconciliation lives.
|
|
386
|
+
const input = obs.inputTokens ?? readInputTokenClasses(obs.usage);
|
|
387
|
+
const totalMs = Date.now() - startedAt;
|
|
388
|
+
const requestMaxTokens = meter.requestMaxTokens();
|
|
389
|
+
const totalTokens = input.fresh + input.cacheRead + input.cacheWrite + completionTokens;
|
|
390
|
+
// Emitted regardless of whether the persistence sink is wired, so the live view works
|
|
391
|
+
// even on a deployment that does not retain metrics. This fires on EVERY observed
|
|
392
|
+
// outcome, including refusals/errors (spend exhausted, unavailable provider, upstream
|
|
393
|
+
// non-2xx) where no model work ran: surfacing those live (with `ok:false`) is intentional
|
|
394
|
+
// and matches what the sink persists. Best-effort: a publish failure (no subscribers,
|
|
395
|
+
// transient hub error) must not break metering.
|
|
396
|
+
waitUntil(runBestEffort(log, 'llmProxy.publishCallObserved', () =>
|
|
397
|
+
// `?.` on the publisher itself, not just the method: a minimal container
|
|
398
|
+
// (e.g. the harness's real-proxy acceptance test) may omit it, and the live
|
|
399
|
+
// emit is best-effort — a missing publisher must never break metering.
|
|
400
|
+
executionEventPublisher?.llmCallObserved?.(session.workspaceId, {
|
|
401
|
+
id: callId,
|
|
402
|
+
workspaceId: session.workspaceId,
|
|
403
|
+
executionId: session.executionId,
|
|
404
|
+
agentKind: session.agentKind,
|
|
405
|
+
provider: session.provider,
|
|
406
|
+
model: session.model,
|
|
407
|
+
createdAt: Date.now(),
|
|
408
|
+
streaming,
|
|
409
|
+
phase,
|
|
410
|
+
messageCount,
|
|
411
|
+
toolCount,
|
|
412
|
+
requestMaxTokens,
|
|
413
|
+
promptTokens: input.fresh,
|
|
414
|
+
cacheReadTokens: input.cacheRead,
|
|
415
|
+
cacheWriteTokens: input.cacheWrite,
|
|
416
|
+
completionTokens,
|
|
417
|
+
totalTokens,
|
|
418
|
+
finishReason: obs.finishReason,
|
|
419
|
+
upstreamMs: obs.upstreamMs,
|
|
420
|
+
overheadMs: Math.max(0, totalMs - obs.upstreamMs),
|
|
421
|
+
totalMs,
|
|
422
|
+
ok: obs.ok,
|
|
423
|
+
httpStatus: obs.httpStatus,
|
|
424
|
+
errorMessage: obs.errorMessage,
|
|
425
|
+
})));
|
|
426
|
+
if (!llmObservability)
|
|
427
|
+
return;
|
|
428
|
+
waitUntil(llmObservability
|
|
429
|
+
.record({
|
|
430
|
+
id: callId,
|
|
402
431
|
workspaceId: session.workspaceId,
|
|
403
432
|
executionId: session.executionId,
|
|
404
433
|
agentKind: session.agentKind,
|
|
405
434
|
provider: session.provider,
|
|
406
435
|
model: session.model,
|
|
436
|
+
streaming,
|
|
437
|
+
phase,
|
|
438
|
+
// A proxied call carries no job-scoped turn counter — the proxy sees one HTTP
|
|
439
|
+
// request at a time — so its rows order by `createdAt`, never by a faked turn.
|
|
440
|
+
turnIndex: null,
|
|
441
|
+
messageCount,
|
|
442
|
+
toolCount,
|
|
443
|
+
requestMaxTokens,
|
|
444
|
+
promptTokens: input.fresh,
|
|
445
|
+
cacheReadTokens: input.cacheRead,
|
|
446
|
+
cacheWriteTokens: input.cacheWrite,
|
|
447
|
+
completionTokens,
|
|
448
|
+
totalTokens,
|
|
449
|
+
finishReason: obs.finishReason,
|
|
450
|
+
totalMs,
|
|
451
|
+
upstreamMs: obs.upstreamMs,
|
|
452
|
+
ok: obs.ok,
|
|
453
|
+
httpStatus: obs.httpStatus,
|
|
454
|
+
errorMessage: obs.errorMessage,
|
|
455
|
+
promptText,
|
|
456
|
+
responseText: obs.responseText,
|
|
457
|
+
reasoningText: obs.reasoningText ?? '',
|
|
458
|
+
})
|
|
459
|
+
// Observability must never break the proxy.
|
|
460
|
+
.catch((err) => log.warn('llm proxy: failed to record metric', {
|
|
461
|
+
err: err instanceof Error ? err.message : String(err),
|
|
462
|
+
})));
|
|
463
|
+
};
|
|
464
|
+
}
|
|
465
|
+
/**
|
|
466
|
+
* Serve one proxied chat completion: verify the container session, harden the payload, gate on
|
|
467
|
+
* spend, forward to the resolved upstream and meter the call. Registered on BOTH completions
|
|
468
|
+
* paths (see {@link COMPLETIONS_PATHS}), which differ only in whether the caller tagged its run
|
|
469
|
+
* phase — hence a named handler rather than an inline one.
|
|
470
|
+
*/
|
|
471
|
+
async function handleChatCompletion(c) {
|
|
472
|
+
// Proxy-entry clock: everything from here to the upstream dispatch (and after the
|
|
473
|
+
// response) is transport overhead; the slice spent waiting on the model is the
|
|
474
|
+
// actual execution. The two are split in the observability sink.
|
|
475
|
+
const t0 = Date.now();
|
|
476
|
+
const { config, spendService, gateways, llmObservability, executionEventPublisher, apiKeys, localModelEndpoints, } = c.get('container');
|
|
477
|
+
const secret = config.auth.sessionSecret;
|
|
478
|
+
if (!secret) {
|
|
479
|
+
logger.error('llm proxy: session secret not configured', { scope: 'llmProxy' });
|
|
480
|
+
return c.json({ error: { message: 'LLM proxy is not configured' } }, 503);
|
|
481
|
+
}
|
|
482
|
+
const sessions = new ContainerSessionService({ secret });
|
|
483
|
+
const session = await sessions.verify(bearer(c.req.header('authorization')));
|
|
484
|
+
if (!session) {
|
|
485
|
+
logger.warn('llm proxy: invalid or expired session token', { scope: 'llmProxy' });
|
|
486
|
+
return c.json({ error: { message: 'Invalid or expired session token' } }, 401);
|
|
487
|
+
}
|
|
488
|
+
// Parse + harden the request: lock the model to the session's, and ask for
|
|
489
|
+
// usage on the final streamed chunk so we can always meter. Parsed before the
|
|
490
|
+
// spend gate so a refusal is still recorded with its prompt/shape for analysis.
|
|
491
|
+
let payload;
|
|
492
|
+
try {
|
|
493
|
+
payload = (await c.req.json());
|
|
494
|
+
}
|
|
495
|
+
catch {
|
|
496
|
+
return c.json({ error: { message: 'Invalid JSON body' } }, 400);
|
|
497
|
+
}
|
|
498
|
+
payload.model = session.model;
|
|
499
|
+
// Prompt caching: route this conversation's calls to the same cached prefix on
|
|
500
|
+
// providers that support it (keyed on the execution id, stable across the run's
|
|
501
|
+
// turns). A no-op for providers that cache automatically on the prefix or not at
|
|
502
|
+
// all — see `promptCacheParams`.
|
|
503
|
+
Object.assign(payload, promptCacheParams(session.provider, session.executionId));
|
|
504
|
+
// The run phase this call belongs to, off the (optional) path segment the caller was
|
|
505
|
+
// pointed at. Read through the untyped `param()` map because the SAME handler serves the
|
|
506
|
+
// unphased path too. Untrusted like any request path — a session token is all it takes to
|
|
507
|
+
// write here — so it is normalised to the phase alphabet before it becomes a grouping
|
|
508
|
+
// key; anything else lands in the unattributed `''` slice.
|
|
509
|
+
const phase = normalizeCallPhase(c.req.param().phase);
|
|
510
|
+
const streaming = payload.stream === true;
|
|
511
|
+
const toolCount = Array.isArray(payload.tools) ? payload.tools.length : 0;
|
|
512
|
+
const messageCount = Array.isArray(payload.messages) ? payload.messages.length : 0;
|
|
513
|
+
// The EFFECTIVE output ceiling: updated below if the proxy overrides max_tokens
|
|
514
|
+
// (e.g. the Workers AI floor), so the recorded metric reflects what actually
|
|
515
|
+
// applied, not just what the client asked for.
|
|
516
|
+
let requestMaxTokens = typeof payload.max_tokens === 'number' ? payload.max_tokens : null;
|
|
517
|
+
const promptText = JSON.stringify(payload.messages ?? []);
|
|
518
|
+
// Correlate every proxied call with its run so a bootstrap/execution can be
|
|
519
|
+
// traced end to end. We log the tool count explicitly: an agent (Pi) that gets
|
|
520
|
+
// no tools back can't edit files, so a toolless call is the signature of a no-op.
|
|
521
|
+
const log = logger.child({
|
|
522
|
+
scope: 'llmProxy',
|
|
523
|
+
workspaceId: session.workspaceId,
|
|
524
|
+
executionId: session.executionId,
|
|
525
|
+
agentKind: session.agentKind,
|
|
526
|
+
provider: session.provider,
|
|
527
|
+
model: session.model,
|
|
528
|
+
});
|
|
529
|
+
log.info('llm proxy: forwarding chat completion', { streaming, toolCount });
|
|
530
|
+
const waitUntil = makeWaitUntil(c);
|
|
531
|
+
// One id per proxied call, minted here so the SAME id rides both the live
|
|
532
|
+
// `llmCall` activity event and the persisted metric row — the drill-down panel
|
|
533
|
+
// keys its lazy body-load by it, and a live-appended summary row reconciles with
|
|
534
|
+
// the stored row on reload instead of duplicating.
|
|
535
|
+
const callId = `llm_${crypto.randomUUID()}`;
|
|
536
|
+
// Per-call observation handling, off the response path — see `makeCallObserver`.
|
|
537
|
+
const observe = makeCallObserver({
|
|
538
|
+
session,
|
|
539
|
+
callId,
|
|
540
|
+
startedAt: t0,
|
|
541
|
+
streaming,
|
|
542
|
+
phase,
|
|
543
|
+
messageCount,
|
|
544
|
+
toolCount,
|
|
545
|
+
promptText,
|
|
546
|
+
// Read lazily: the proxy may still raise `max_tokens` below (the Workers AI floor),
|
|
547
|
+
// and the metric must report the ceiling that actually applied, not the one asked for.
|
|
548
|
+
requestMaxTokens: () => requestMaxTokens,
|
|
549
|
+
}, { waitUntil, log, executionEventPublisher, llmObservability });
|
|
550
|
+
// Spend gate: refuse once the monthly budget is exhausted, mirroring the
|
|
551
|
+
// engine's pre-step check so a container can't keep spending.
|
|
552
|
+
if (await spendService.isOverBudget(session.workspaceId, {
|
|
553
|
+
accountId: session.accountId,
|
|
554
|
+
userId: session.userId,
|
|
555
|
+
})) {
|
|
556
|
+
logger.warn('llm proxy: spend budget exhausted — refusing call', {
|
|
557
|
+
scope: 'llmProxy',
|
|
558
|
+
workspaceId: session.workspaceId,
|
|
559
|
+
executionId: session.executionId,
|
|
407
560
|
});
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
// must not break metering.
|
|
437
|
-
waitUntil(runBestEffort(log, 'llmProxy.publishCallObserved', () =>
|
|
438
|
-
// `?.` on the publisher itself, not just the method: a minimal container
|
|
439
|
-
// (e.g. the harness's real-proxy acceptance test) may omit it, and the live
|
|
440
|
-
// emit is best-effort — a missing publisher must never break metering.
|
|
441
|
-
executionEventPublisher?.llmCallObserved?.(session.workspaceId, {
|
|
442
|
-
id: callId,
|
|
443
|
-
workspaceId: session.workspaceId,
|
|
444
|
-
executionId: session.executionId,
|
|
445
|
-
agentKind: session.agentKind,
|
|
446
|
-
provider: session.provider,
|
|
447
|
-
model: session.model,
|
|
448
|
-
createdAt: Date.now(),
|
|
449
|
-
streaming,
|
|
450
|
-
messageCount,
|
|
451
|
-
toolCount,
|
|
452
|
-
requestMaxTokens,
|
|
453
|
-
promptTokens: input.fresh,
|
|
454
|
-
cacheReadTokens: input.cacheRead,
|
|
455
|
-
cacheWriteTokens: input.cacheWrite,
|
|
456
|
-
completionTokens,
|
|
457
|
-
totalTokens: input.fresh + input.cacheRead + input.cacheWrite + completionTokens,
|
|
458
|
-
finishReason: obs.finishReason,
|
|
459
|
-
upstreamMs: obs.upstreamMs,
|
|
460
|
-
overheadMs: Math.max(0, totalMs - obs.upstreamMs),
|
|
461
|
-
totalMs,
|
|
462
|
-
ok: obs.ok,
|
|
463
|
-
httpStatus: obs.httpStatus,
|
|
464
|
-
errorMessage: obs.errorMessage,
|
|
465
|
-
})));
|
|
466
|
-
if (!llmObservability)
|
|
467
|
-
return;
|
|
468
|
-
waitUntil(llmObservability
|
|
469
|
-
.record({
|
|
470
|
-
id: callId,
|
|
471
|
-
workspaceId: session.workspaceId,
|
|
472
|
-
executionId: session.executionId,
|
|
473
|
-
agentKind: session.agentKind,
|
|
474
|
-
provider: session.provider,
|
|
475
|
-
model: session.model,
|
|
476
|
-
streaming,
|
|
477
|
-
messageCount,
|
|
478
|
-
toolCount,
|
|
479
|
-
requestMaxTokens,
|
|
480
|
-
promptTokens: input.fresh,
|
|
481
|
-
cacheReadTokens: input.cacheRead,
|
|
482
|
-
cacheWriteTokens: input.cacheWrite,
|
|
483
|
-
completionTokens,
|
|
484
|
-
totalTokens: input.fresh + input.cacheRead + input.cacheWrite + completionTokens,
|
|
485
|
-
finishReason: obs.finishReason,
|
|
486
|
-
totalMs,
|
|
487
|
-
upstreamMs: obs.upstreamMs,
|
|
488
|
-
ok: obs.ok,
|
|
489
|
-
httpStatus: obs.httpStatus,
|
|
490
|
-
errorMessage: obs.errorMessage,
|
|
491
|
-
promptText,
|
|
492
|
-
responseText: obs.responseText,
|
|
493
|
-
reasoningText: obs.reasoningText ?? '',
|
|
494
|
-
})
|
|
495
|
-
// Observability must never break the proxy.
|
|
496
|
-
.catch((err) => log.warn('llm proxy: failed to record metric', {
|
|
497
|
-
err: err instanceof Error ? err.message : String(err),
|
|
498
|
-
})));
|
|
499
|
-
};
|
|
500
|
-
// Spend gate: refuse once the monthly budget is exhausted, mirroring the
|
|
501
|
-
// engine's pre-step check so a container can't keep spending.
|
|
502
|
-
if (await spendService.isOverBudget(session.workspaceId, {
|
|
561
|
+
observe({
|
|
562
|
+
usage: null,
|
|
563
|
+
finishReason: null,
|
|
564
|
+
responseText: '',
|
|
565
|
+
ok: false,
|
|
566
|
+
httpStatus: 402,
|
|
567
|
+
errorMessage: 'Spend budget exhausted',
|
|
568
|
+
upstreamMs: 0,
|
|
569
|
+
});
|
|
570
|
+
return c.json({ error: { message: 'Spend budget exhausted' } }, 402);
|
|
571
|
+
}
|
|
572
|
+
// Give container agents generous output room for in-process Workers AI models (a no-op
|
|
573
|
+
// for other providers); records the ceiling actually applied so the metric is accurate.
|
|
574
|
+
requestMaxTokens = applyWorkersAiCeiling(session, payload, promptText, requestMaxTokens);
|
|
575
|
+
// The pooled API key leased for this call (non-binding providers), so usage can be
|
|
576
|
+
// folded back into its rolling-window rotation counters when the call completes.
|
|
577
|
+
let leasedApiKeyId = null;
|
|
578
|
+
const record = (usage) => {
|
|
579
|
+
if (!usage)
|
|
580
|
+
return Promise.resolve(0);
|
|
581
|
+
const inputTokens = usage.prompt_tokens ?? 0;
|
|
582
|
+
const outputTokens = usage.completion_tokens ?? 0;
|
|
583
|
+
// Fold usage into the leased key's rotation counters (best-effort, off the meter).
|
|
584
|
+
if (leasedApiKeyId && apiKeys) {
|
|
585
|
+
void runBestEffort(log, 'apiKeys.recordUsage', () => apiKeys.recordUsage(leasedApiKeyId, { inputTokens, outputTokens }), { apiKeyId: leasedApiKeyId });
|
|
586
|
+
}
|
|
587
|
+
return spendService.record({
|
|
588
|
+
workspaceId: session.workspaceId,
|
|
503
589
|
accountId: session.accountId,
|
|
504
590
|
userId: session.userId,
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
model: `${session.provider}:${session.model}`,
|
|
544
|
-
usage: { inputTokens, outputTokens },
|
|
545
|
-
});
|
|
546
|
-
};
|
|
547
|
-
// The per-call state the dispatch helpers below thread through; `observe` / `record` stay
|
|
548
|
-
// bound to this handler's mutable `requestMaxTokens` / `leasedApiKeyId`.
|
|
549
|
-
const ctx = {
|
|
550
|
-
session,
|
|
551
|
-
payload,
|
|
552
|
-
streaming,
|
|
553
|
-
promptText,
|
|
554
|
-
log,
|
|
555
|
-
gateways,
|
|
556
|
-
apiKeys,
|
|
557
|
-
localModelEndpoints,
|
|
558
|
-
waitUntil,
|
|
559
|
-
observe,
|
|
560
|
-
record,
|
|
561
|
-
};
|
|
562
|
-
// Workers AI (and any binding-reached provider) has no external upstream: run it in-process
|
|
563
|
-
// via the facade's gateway. Null-provider (e.g. Node can't) surfaces as unavailable.
|
|
564
|
-
if (session.provider === 'workers-ai')
|
|
565
|
-
return dispatchInProcess(c, ctx);
|
|
566
|
-
// Resolve the upstream base URL + bearer key (local runner vs the DB-backed key pool), then
|
|
567
|
-
// forward + meter. A failure is already observed and returned ready-to-send.
|
|
568
|
-
const target = await resolveUpstreamTarget(c, ctx);
|
|
569
|
-
if ('failure' in target)
|
|
570
|
-
return target.failure;
|
|
571
|
-
leasedApiKeyId = target.leasedApiKeyId;
|
|
572
|
-
return relayUpstream(c, ctx, target);
|
|
591
|
+
executionId: session.executionId,
|
|
592
|
+
agentKind: session.agentKind,
|
|
593
|
+
model: `${session.provider}:${session.model}`,
|
|
594
|
+
usage: { inputTokens, outputTokens },
|
|
595
|
+
});
|
|
596
|
+
};
|
|
597
|
+
// The per-call state the dispatch helpers below thread through; `observe` / `record` stay
|
|
598
|
+
// bound to this handler's mutable `requestMaxTokens` / `leasedApiKeyId`.
|
|
599
|
+
const ctx = {
|
|
600
|
+
session,
|
|
601
|
+
payload,
|
|
602
|
+
streaming,
|
|
603
|
+
promptText,
|
|
604
|
+
log,
|
|
605
|
+
gateways,
|
|
606
|
+
apiKeys,
|
|
607
|
+
localModelEndpoints,
|
|
608
|
+
waitUntil,
|
|
609
|
+
observe,
|
|
610
|
+
record,
|
|
611
|
+
};
|
|
612
|
+
// Workers AI (and any binding-reached provider) has no external upstream: run it in-process
|
|
613
|
+
// via the facade's gateway. Null-provider (e.g. Node can't) surfaces as unavailable.
|
|
614
|
+
if (session.provider === 'workers-ai')
|
|
615
|
+
return dispatchInProcess(c, ctx);
|
|
616
|
+
// Resolve the upstream base URL + bearer key (local runner vs the DB-backed key pool), then
|
|
617
|
+
// forward + meter. A failure is already observed and returned ready-to-send.
|
|
618
|
+
const target = await resolveUpstreamTarget(c, ctx);
|
|
619
|
+
if ('failure' in target)
|
|
620
|
+
return target.failure;
|
|
621
|
+
leasedApiKeyId = target.leasedApiKeyId;
|
|
622
|
+
return relayUpstream(c, ctx, target);
|
|
623
|
+
}
|
|
624
|
+
export function llmProxyController() {
|
|
625
|
+
const app = new Hono();
|
|
626
|
+
const limit = bodyLimit({
|
|
627
|
+
maxSize: MAX_PROXY_BODY_BYTES,
|
|
628
|
+
onError: (c) => c.json({ error: { message: 'Request body exceeds size limit' } }, 413),
|
|
573
629
|
});
|
|
630
|
+
for (const path of COMPLETIONS_PATHS)
|
|
631
|
+
app.post(path, limit, handleChatCompletion);
|
|
574
632
|
return app;
|
|
575
633
|
}
|
|
576
634
|
/** Pull the assistant text out of a buffered completion (empty when tool-only). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LlmProxyController.js","sourceRoot":"","sources":["../../../src/modules/llmProxy/LlmProxyController.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LlmProxyController.js","sourceRoot":"","sources":["../../../src/modules/llmProxy/LlmProxyController.ts"],"names":[],"mappings":"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"}
|