@cat-factory/node-server 0.140.0 → 0.141.1
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/container-model-deps.d.ts.map +1 -1
- package/dist/container-model-deps.js +28 -21
- package/dist/container-model-deps.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/modelProvider.d.ts +18 -12
- package/dist/modelProvider.d.ts.map +1 -1
- package/dist/modelProvider.js +8 -25
- package/dist/modelProvider.js.map +1 -1
- package/package.json +18 -18
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container-model-deps.d.ts","sourceRoot":"","sources":["../src/container-model-deps.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,KAAK,iBAAiB,EAGvB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EACV,aAAa,EACb,yBAAyB,EACzB,sBAAsB,EACvB,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,EACV,SAAS,EACT,uBAAuB,EACvB,4BAA4B,EAC5B,qBAAqB,EACrB,8BAA8B,EAC9B,wBAAwB,EACxB,mCAAmC,EACnC,sBAAsB,EACtB,gCAAgC,EAChC,mBAAmB,EACnB,2BAA2B,EAC5B,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,EACL,KAAK,SAAS,EAGf,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAA;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"container-model-deps.d.ts","sourceRoot":"","sources":["../src/container-model-deps.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,KAAK,iBAAiB,EAGvB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EACV,aAAa,EACb,yBAAyB,EACzB,sBAAsB,EACvB,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,EACV,SAAS,EACT,uBAAuB,EACvB,4BAA4B,EAC5B,qBAAqB,EACrB,8BAA8B,EAC9B,wBAAwB,EACxB,mCAAmC,EACnC,sBAAsB,EACtB,gCAAgC,EAChC,mBAAmB,EACnB,2BAA2B,EAC5B,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,EACL,KAAK,SAAS,EAGf,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAA;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAwC/C,yEAAyE;AACzE,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAA;IACtB,MAAM,EAAE,SAAS,CAAA;IACjB,EAAE,EAAE,SAAS,CAAA;IACb,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,WAAW,EAAE,WAAW,CAAA;IACxB,KAAK,EAAE,KAAK,CAAA;IACZ,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,sBAAsB,EAAE,sBAAsB,CAAA;IAC9C,4BAA4B,EAAE,CAC5B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,MAAM,KACnB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAChC,wBAAwB,CAAC,EAAE,wBAAwB,CAAA;IACnD,4BAA4B,CAAC,EAAE,4BAA4B,CAAA;IAC3D,mCAAmC,CAAC,EAAE,mCAAmC,CAAA;IACzE,8BAA8B,CAAC,EAAE,8BAA8B,CAAA;IAC/D,gCAAgC,CAAC,EAAE,gCAAgC,CAAA;IACnE,yBAAyB,CAAC,EAAE,CAC1B,KAAK,EAAE,qBAAqB,EAC5B,IAAI,EAAE,6BAA6B,KAChC,qBAAqB,CAAA;IAC1B,uBAAuB,CAAC,EAAE,OAAO,CAAA;IACjC,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB;;;;OAIG;IACH,2BAA2B,CAAC,EAAE,2BAA2B,CAAA;IACzD;;;;;OAKG;IACH,uBAAuB,CAAC,EAAE,uBAAuB,CAAA;CAClD;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,kBAAkB;;;;;;;;;;;;;EA6L3D"}
|
|
@@ -1,31 +1,29 @@
|
|
|
1
1
|
import { AiAgentExecutor, inlineWebSearchOptionsFromEnv, vendorConcurrencyLimiterFromEnv, } from '@cat-factory/agents';
|
|
2
|
-
import { createInlineInstrumentation,
|
|
2
|
+
import { createInlineInstrumentation, wrapResolverWithTelemetry, } from '@cat-factory/server';
|
|
3
3
|
import { buildTraceSink } from './container-executor-deps.js';
|
|
4
4
|
import { createNodeModelProviderResolver } from './modelProvider.js';
|
|
5
5
|
import { buildNodeApiKeyService, buildNodeLocalModelEndpointService, buildNodeOpenRouterCatalogService, buildNodePersonalSubscriptionService, buildNodePublicApiKeyService, buildNodeSubscriptionService, buildNodeUserSecretService, } from './wireCredentialServices.js';
|
|
6
6
|
/**
|
|
7
|
-
* The Node model-provider
|
|
8
|
-
*
|
|
9
|
-
*
|
|
7
|
+
* The Node BASE model-provider resolver, shared per `(env, db)`. Builds a per-scope provider
|
|
8
|
+
* from the DB-backed API-key pool plus opt-in Cloudflare-REST / Bedrock registries. Mirrors the
|
|
9
|
+
* Worker's buildModelProviderResolver.
|
|
10
|
+
*
|
|
11
|
+
* Deliberately un-instrumented, and cached that way: the telemetry wrap and the facade's own
|
|
12
|
+
* wraps are composed per container in {@link buildNodeModelDeps} (they close over that
|
|
13
|
+
* container's trace sink, metric store and subscription-lease seams, none of which may leak
|
|
14
|
+
* across two containers sharing a Drizzle client).
|
|
10
15
|
*/
|
|
11
16
|
const modelResolverCache = new WeakMap();
|
|
12
|
-
function buildModelProviderResolver(env, db, apiKeys, localModelEndpoints
|
|
13
|
-
// The shared inline instrument (one trace sink for the proxied path, the core AND the
|
|
14
|
-
// inline calls) so the OTel SDK exporter isn't rebuilt per wiring site.
|
|
15
|
-
instrument,
|
|
16
|
-
// The workspace-settings store the inline body gate reads. Passed alongside `instrument`
|
|
17
|
-
// (rather than only inside it) so the env-fallback path in `createNodeModelProviderResolver`
|
|
18
|
-
// builds the same gate rather than defaulting to the deployment switch.
|
|
19
|
-
workspaceSettingsRepository) {
|
|
17
|
+
function buildModelProviderResolver(env, db, apiKeys, localModelEndpoints) {
|
|
20
18
|
// The cache keys on the db handle (one resolver per Drizzle client). Mothership mode has no
|
|
21
19
|
// db, so skip the cache entirely (WeakMap keys must be objects) and build a fresh resolver —
|
|
22
20
|
// a mothership node builds one container, so there is nothing to share it with anyway.
|
|
23
21
|
if (!db)
|
|
24
|
-
return createNodeModelProviderResolver(env, apiKeys, localModelEndpoints
|
|
22
|
+
return createNodeModelProviderResolver(env, apiKeys, localModelEndpoints);
|
|
25
23
|
const cached = modelResolverCache.get(db);
|
|
26
24
|
if (cached)
|
|
27
25
|
return cached;
|
|
28
|
-
const resolver = createNodeModelProviderResolver(env, apiKeys, localModelEndpoints
|
|
26
|
+
const resolver = createNodeModelProviderResolver(env, apiKeys, localModelEndpoints);
|
|
29
27
|
modelResolverCache.set(db, resolver);
|
|
30
28
|
return resolver;
|
|
31
29
|
}
|
|
@@ -97,7 +95,7 @@ export function buildNodeModelDeps(input) {
|
|
|
97
95
|
idGenerator,
|
|
98
96
|
clock,
|
|
99
97
|
});
|
|
100
|
-
const baseModelProviderResolver = buildModelProviderResolver(env, db, apiKeys, localModelEndpoints
|
|
98
|
+
const baseModelProviderResolver = buildModelProviderResolver(env, db, apiKeys, localModelEndpoints);
|
|
101
99
|
const wrappedModelProviderResolver = wrapModelProviderResolver
|
|
102
100
|
? wrapModelProviderResolver(baseModelProviderResolver, {
|
|
103
101
|
...(personalSubscriptions
|
|
@@ -112,12 +110,21 @@ export function buildNodeModelDeps(input) {
|
|
|
112
110
|
: {}),
|
|
113
111
|
})
|
|
114
112
|
: baseModelProviderResolver;
|
|
115
|
-
//
|
|
116
|
-
//
|
|
117
|
-
//
|
|
118
|
-
//
|
|
119
|
-
//
|
|
120
|
-
|
|
113
|
+
// Observe inline calls and cap their concurrency, both applied on top of the facade wrap above
|
|
114
|
+
// — never beneath it. That wrap SUBSTITUTES the resolved model for a subscription harness ref
|
|
115
|
+
// (local mode answers one with its own `CliInlineLanguageModel` rather than delegating), so
|
|
116
|
+
// instrumenting underneath it left every inline step on a host `claude`/`codex` CLI — the
|
|
117
|
+
// default local shape — recording nothing at all while the same step on a metered API model
|
|
118
|
+
// recorded fine. The composer owns that order (and keeps the limiter outermost, so a queue wait
|
|
119
|
+
// is not generation time and it sees the un-degraded subscription ref); passing the
|
|
120
|
+
// already-wrapped resolver in is this facade's only remaining obligation. One limiter per
|
|
121
|
+
// container = per process for a stock node, per tenant in mothership mode; a pass-through when
|
|
122
|
+
// nothing is capped. Symmetric with the Worker's `buildModelProviderResolver` (see "Keep the
|
|
123
|
+
// runtimes symmetric").
|
|
124
|
+
const modelProviderResolver = wrapResolverWithTelemetry(wrappedModelProviderResolver, {
|
|
125
|
+
...(instrument ? { instrument } : {}),
|
|
126
|
+
limiter: vendorConcurrencyLimiterFromEnv((key) => env[key]),
|
|
127
|
+
});
|
|
121
128
|
// Cloudflare Workers AI is opt-in on Node: enabled when the REST creds are present.
|
|
122
129
|
const cloudflareModelsEnabled = cloudflareModelsEnabledOverride ?? !!(env.CLOUDFLARE_ACCOUNT_ID && env.CLOUDFLARE_API_TOKEN);
|
|
123
130
|
const inline = new AiAgentExecutor({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container-model-deps.js","sourceRoot":"","sources":["../src/container-model-deps.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAEf,6BAA6B,EAC7B,+BAA+B,GAChC,MAAM,qBAAqB,CAAA;AAoB5B,OAAO,EAEL,2BAA2B,EAC3B,
|
|
1
|
+
{"version":3,"file":"container-model-deps.js","sourceRoot":"","sources":["../src/container-model-deps.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export { loadNodeConfig } from './config.js';
|
|
|
11
11
|
export { startBootClock, type BootClock } from './bootTimings.js';
|
|
12
12
|
export { DEFAULT_APP_CACHES_PROFILE, type AppCachesProfile } from '@cat-factory/caching';
|
|
13
13
|
export { createNodeGateways } from './gateways.js';
|
|
14
|
-
export { createNodeModelProviderResolver } from './modelProvider.js';
|
|
14
|
+
export { createNodeModelProviderResolver, inlineInstrumentFromEnv } from './modelProvider.js';
|
|
15
15
|
export { AgentKindRegistry, defaultAgentKindRegistry, type AgentKindDefinition, } from '@cat-factory/agents';
|
|
16
16
|
export { defaultInitiativePresetRegistry } from '@cat-factory/agents';
|
|
17
17
|
export { InitiativePresetRegistry, type InitiativePresetRegistration } from '@cat-factory/kernel';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,qBAAqB,EACrB,SAAS,EACT,YAAY,EACZ,oBAAoB,EACpB,kBAAkB,EAClB,KAAK,EACL,KAAK,mBAAmB,GACzB,MAAM,aAAa,CAAA;AAGpB,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAA;AAIhE,OAAO,EAAE,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAA;AAIhE,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,GACzB,MAAM,eAAe,CAAA;AAItB,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,KAAK,eAAe,EACpB,KAAK,mBAAmB,GACzB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,KAAK,+BAA+B,GACrC,MAAM,sBAAsB,CAAA;AAI7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AAC/D,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,wBAAwB,EACxB,gBAAgB,EAChB,8BAA8B,EAC9B,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,GACvB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,mBAAmB,EACnB,KAAK,oBAAoB,GAC1B,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAG5C,OAAO,EAAE,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAIjE,OAAO,EAAE,0BAA0B,EAAE,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACxF,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -35,7 +35,10 @@ export { startBootClock } from './bootTimings.js';
|
|
|
35
35
|
// with no invalidation bus). It imports only from `@cat-factory/node-server`.
|
|
36
36
|
export { DEFAULT_APP_CACHES_PROFILE } from '@cat-factory/caching';
|
|
37
37
|
export { createNodeGateways } from './gateways.js';
|
|
38
|
-
|
|
38
|
+
// The BASE resolver plus the env-built trace-sink instrument. A caller assembling its own
|
|
39
|
+
// container composes them with `wrapResolverWithInstrumentation` — in that order, never the
|
|
40
|
+
// reverse; see the wrap's own doc for what instrumenting innermost hides.
|
|
41
|
+
export { createNodeModelProviderResolver, inlineInstrumentFromEnv } from './modelProvider.js';
|
|
39
42
|
// Installation-level extension point (mirroring the Worker facade): a deployment news a
|
|
40
43
|
// `defaultAgentKindRegistry()`, registers its own kinds on it by reference, and injects it
|
|
41
44
|
// through `buildNodeContainer`/`start()`'s `agentKindRegistry` option — the app-owned DI seam
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,qFAAqF;AACrF,qFAAqF;AACrF,uFAAuF;AACvF,6EAA6E;AAC7E,OAAO,EACL,qBAAqB,EACrB,SAAS,EACT,YAAY,EACZ,oBAAoB,EACpB,kBAAkB,EAClB,KAAK,GAEN,MAAM,aAAa,CAAA;AACpB,2FAA2F;AAC3F,0EAA0E;AAC1E,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAA;AAChE,4FAA4F;AAC5F,+FAA+F;AAC/F,yFAAyF;AACzF,OAAO,EAAE,YAAY,EAAuB,MAAM,cAAc,CAAA;AAChE,0FAA0F;AAC1F,4FAA4F;AAC5F,yEAAyE;AACzE,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,cAAc,GAKf,MAAM,eAAe,CAAA;AACtB,+FAA+F;AAC/F,6FAA6F;AAC7F,4DAA4D;AAC5D,OAAO,EACL,sBAAsB,EACtB,uBAAuB,GAGxB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,wBAAwB,EACxB,wBAAwB,GAEzB,MAAM,sBAAsB,CAAA;AAC7B,qFAAqF;AACrF,0FAA0F;AAC1F,qDAAqD;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AAC/D,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,wBAAwB,EACxB,gBAAgB,EAChB,8BAA8B,GAG/B,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,mBAAmB,GAEpB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,8FAA8F;AAC9F,gFAAgF;AAChF,OAAO,EAAE,cAAc,EAAkB,MAAM,kBAAkB,CAAA;AACjE,6FAA6F;AAC7F,8FAA8F;AAC9F,8EAA8E;AAC9E,OAAO,EAAE,0BAA0B,EAAyB,MAAM,sBAAsB,CAAA;AACxF,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,+BAA+B,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/modelProvider.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import { type WorkspaceBodiesGate } from '@cat-factory/agents';
|
|
1
2
|
import type { ApiKeyService, LocalModelEndpointService } from '@cat-factory/integrations';
|
|
2
|
-
import { type ModelProviderResolver
|
|
3
|
+
import { type ModelProviderResolver } from '@cat-factory/kernel';
|
|
3
4
|
import { type InlineInstrumentation } from '@cat-factory/server';
|
|
4
5
|
/**
|
|
5
|
-
* The instrumentation
|
|
6
|
-
*
|
|
7
|
-
*
|
|
6
|
+
* The instrumentation an inline-call wrap takes: the metric recorder (so inline calls reach
|
|
7
|
+
* `llm_call_metrics` and every in-app observability surface) and/or one shared external trace
|
|
8
|
+
* sink, at least one of the two.
|
|
8
9
|
*
|
|
9
10
|
* An ALIAS of the server layer's composed shape rather than a second declaration of it — the
|
|
10
11
|
* pairing rule between the two exits (the recorder's service owns the trace fan-out, so both
|
|
@@ -13,6 +14,18 @@ import { type InlineInstrumentation } from '@cat-factory/server';
|
|
|
13
14
|
* it. Kept as a named export because it is what this module's public signature takes.
|
|
14
15
|
*/
|
|
15
16
|
export type InlineInstrument = InlineInstrumentation;
|
|
17
|
+
/**
|
|
18
|
+
* Build the inline instrumentation from the process env — Langfuse (fetch) and/or the
|
|
19
|
+
* OpenTelemetry SDK sink, composed via a fan-out. This is the trace-sink-only shape, for a
|
|
20
|
+
* caller assembling its own container (and for the wiring tests). The real container build
|
|
21
|
+
* composes `createInlineInstrumentation` instead: it adds the `llm_call_metrics` recorder and
|
|
22
|
+
* builds the sink ONCE (memoised, shutdown wired) so the SDK exporter's batch
|
|
23
|
+
* processors/timers aren't duplicated across wiring sites.
|
|
24
|
+
*
|
|
25
|
+
* `workspaceBodiesEnabled` is threaded in rather than built here because this function sees
|
|
26
|
+
* only `env` — it has no persistence to read the per-workspace opt-out from.
|
|
27
|
+
*/
|
|
28
|
+
export declare function inlineInstrumentFromEnv(env: NodeJS.ProcessEnv, workspaceBodiesEnabled: WorkspaceBodiesGate): InlineInstrument | undefined;
|
|
16
29
|
/**
|
|
17
30
|
* The base URL for a direct provider: the `${PROVIDER}_BASE_URL` env override (e.g.
|
|
18
31
|
* QWEN_BASE_URL), else the built-in default. The override-vs-default precedence and the
|
|
@@ -20,12 +33,5 @@ export type InlineInstrument = InlineInstrumentation;
|
|
|
20
33
|
* `litellm` has no default and so resolves only once LITELLM_BASE_URL is set.
|
|
21
34
|
*/
|
|
22
35
|
export declare function baseUrlForNode(provider: string, env: NodeJS.ProcessEnv): string | undefined;
|
|
23
|
-
export declare function createNodeModelProviderResolver(env: NodeJS.ProcessEnv, apiKeys: ApiKeyService | undefined, localModelEndpoints?: LocalModelEndpointService
|
|
24
|
-
/**
|
|
25
|
-
* The workspace-settings store the per-workspace `storeAgentContext` body gate reads.
|
|
26
|
-
* Only consulted when `instrument` is omitted (the env-fallback path builds its own
|
|
27
|
-
* instrument); a supplied instrument already carries its gate. Absent ⇒ no settings
|
|
28
|
-
* source, so the deployment's `LLM_RECORD_PROMPTS` switch alone governs bodies.
|
|
29
|
-
*/
|
|
30
|
-
workspaceSettingsRepository?: WorkspaceSettingsRepository): ModelProviderResolver;
|
|
36
|
+
export declare function createNodeModelProviderResolver(env: NodeJS.ProcessEnv, apiKeys: ApiKeyService | undefined, localModelEndpoints?: LocalModelEndpointService): ModelProviderResolver;
|
|
31
37
|
//# sourceMappingURL=modelProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modelProvider.d.ts","sourceRoot":"","sources":["../src/modelProvider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"modelProvider.d.ts","sourceRoot":"","sources":["../src/modelProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,mBAAmB,EAEzB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAA;AACzF,OAAO,EAAE,KAAK,qBAAqB,EAAqB,MAAM,qBAAqB,CAAA;AAMnF,OAAO,EAAE,KAAK,qBAAqB,EAAqC,MAAM,qBAAqB,CAAA;AAenG;;;;;;;;;;GAUG;AACH,MAAM,MAAM,gBAAgB,GAAG,qBAAqB,CAAA;AAEpD;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,sBAAsB,EAAE,mBAAmB,GAC1C,gBAAgB,GAAG,SAAS,CA2B9B;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,GAAG,SAAS,CAE3F;AAED,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,OAAO,EAAE,aAAa,GAAG,SAAS,EAClC,mBAAmB,CAAC,EAAE,yBAAyB,GAC9C,qBAAqB,CAsCvB"}
|
package/dist/modelProvider.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { resolveOpenAiCompatibleBaseUrl, } from '@cat-factory/agents';
|
|
2
|
-
import { composeTraceSinks
|
|
2
|
+
import { composeTraceSinks } from '@cat-factory/kernel';
|
|
3
3
|
import { bedrockRegistry } from '@cat-factory/provider-bedrock';
|
|
4
4
|
import { cloudflareRestRegistry } from '@cat-factory/provider-cloudflare';
|
|
5
5
|
import { createLangfuseSink } from '@cat-factory/observability-langfuse';
|
|
@@ -8,15 +8,16 @@ import { createNodeOtelSink } from '@cat-factory/observability-otel/node';
|
|
|
8
8
|
import { createScopedModelProviderResolver } from '@cat-factory/server';
|
|
9
9
|
/**
|
|
10
10
|
* Build the inline instrumentation from the process env — Langfuse (fetch) and/or the
|
|
11
|
-
* OpenTelemetry SDK sink, composed via a fan-out. This is the
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* so the SDK exporter's batch
|
|
11
|
+
* OpenTelemetry SDK sink, composed via a fan-out. This is the trace-sink-only shape, for a
|
|
12
|
+
* caller assembling its own container (and for the wiring tests). The real container build
|
|
13
|
+
* composes `createInlineInstrumentation` instead: it adds the `llm_call_metrics` recorder and
|
|
14
|
+
* builds the sink ONCE (memoised, shutdown wired) so the SDK exporter's batch
|
|
15
|
+
* processors/timers aren't duplicated across wiring sites.
|
|
15
16
|
*
|
|
16
17
|
* `workspaceBodiesEnabled` is threaded in rather than built here because this function sees
|
|
17
18
|
* only `env` — it has no persistence to read the per-workspace opt-out from.
|
|
18
19
|
*/
|
|
19
|
-
function
|
|
20
|
+
export function inlineInstrumentFromEnv(env, workspaceBodiesEnabled) {
|
|
20
21
|
const langfuseSink = env.LANGFUSE_ENABLED?.trim() === 'true' &&
|
|
21
22
|
env.LANGFUSE_PUBLIC_KEY?.trim() &&
|
|
22
23
|
env.LANGFUSE_SECRET_KEY?.trim()
|
|
@@ -51,18 +52,7 @@ function buildInstrumentFromEnv(env, workspaceBodiesEnabled) {
|
|
|
51
52
|
export function baseUrlForNode(provider, env) {
|
|
52
53
|
return resolveOpenAiCompatibleBaseUrl(provider, env[`${provider.toUpperCase()}_BASE_URL`]);
|
|
53
54
|
}
|
|
54
|
-
export function createNodeModelProviderResolver(env, apiKeys, localModelEndpoints
|
|
55
|
-
// The already-composed inline instrument (one trace sink shared with the proxied path +
|
|
56
|
-
// the core, so the SDK exporter isn't built twice). Omitted by direct callers/tests, which
|
|
57
|
-
// fall back to building it from `env`.
|
|
58
|
-
instrument,
|
|
59
|
-
/**
|
|
60
|
-
* The workspace-settings store the per-workspace `storeAgentContext` body gate reads.
|
|
61
|
-
* Only consulted when `instrument` is omitted (the env-fallback path builds its own
|
|
62
|
-
* instrument); a supplied instrument already carries its gate. Absent ⇒ no settings
|
|
63
|
-
* source, so the deployment's `LLM_RECORD_PROMPTS` switch alone governs bodies.
|
|
64
|
-
*/
|
|
65
|
-
workspaceSettingsRepository) {
|
|
55
|
+
export function createNodeModelProviderResolver(env, apiKeys, localModelEndpoints) {
|
|
66
56
|
const extraRegistries = [];
|
|
67
57
|
// Opt-in Cloudflare Workers AI over REST.
|
|
68
58
|
if (env.CLOUDFLARE_ACCOUNT_ID && env.CLOUDFLARE_API_TOKEN) {
|
|
@@ -85,12 +75,6 @@ workspaceSettingsRepository) {
|
|
|
85
75
|
supportedModels: supportedModels?.length ? supportedModels : undefined,
|
|
86
76
|
}));
|
|
87
77
|
}
|
|
88
|
-
// Instrument inline (non-proxied) calls with the SAME external trace sink(s) the proxied
|
|
89
|
-
// path uses — Langfuse (fetch) and/or OpenTelemetry (official SDK). The container build
|
|
90
|
-
// passes a pre-built, shared instrument (so the SDK exporter is created once); a direct
|
|
91
|
-
// caller / test that omits it falls back to building one from `env`.
|
|
92
|
-
const resolvedInstrument = instrument ??
|
|
93
|
-
buildInstrumentFromEnv(env, createStoreAgentContextGate({ repository: workspaceSettingsRepository }));
|
|
94
78
|
return createScopedModelProviderResolver({
|
|
95
79
|
apiKeys,
|
|
96
80
|
baseUrlFor: (provider) => baseUrlForNode(provider, env),
|
|
@@ -98,7 +82,6 @@ workspaceSettingsRepository) {
|
|
|
98
82
|
localEndpointsFor: localModelEndpoints
|
|
99
83
|
? (userId) => localModelEndpoints.listResolved(userId)
|
|
100
84
|
: undefined,
|
|
101
|
-
instrument: resolvedInstrument,
|
|
102
85
|
});
|
|
103
86
|
}
|
|
104
87
|
//# sourceMappingURL=modelProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modelProvider.js","sourceRoot":"","sources":["../src/modelProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,8BAA8B,GAC/B,MAAM,qBAAqB,CAAA;AAE5B,OAAO,
|
|
1
|
+
{"version":3,"file":"modelProvider.js","sourceRoot":"","sources":["../src/modelProvider.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cat-factory/node-server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.141.1",
|
|
4
4
|
"description": "Node.js runtime facade for the Agent Architecture Board: serves the shared @cat-factory/server Hono app via @hono/node-server, wiring Node implementations of the runtime ports (persistence, gateways, model provisioning).",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -33,24 +33,24 @@
|
|
|
33
33
|
"pg-boss": "^12.26.3",
|
|
34
34
|
"toad-scheduler": "^4.1.0",
|
|
35
35
|
"ws": "^8.21.1",
|
|
36
|
-
"@cat-factory/agents": "0.
|
|
37
|
-
"@cat-factory/caching": "0.11.
|
|
38
|
-
"@cat-factory/consensus": "0.13.
|
|
36
|
+
"@cat-factory/agents": "0.89.0",
|
|
37
|
+
"@cat-factory/caching": "0.11.24",
|
|
38
|
+
"@cat-factory/consensus": "0.13.4",
|
|
39
39
|
"@cat-factory/contracts": "0.197.0",
|
|
40
|
-
"@cat-factory/eks": "0.1.
|
|
41
|
-
"@cat-factory/
|
|
42
|
-
"@cat-factory/
|
|
43
|
-
"@cat-factory/
|
|
44
|
-
"@cat-factory/observability-
|
|
45
|
-
"@cat-factory/
|
|
40
|
+
"@cat-factory/eks": "0.1.177",
|
|
41
|
+
"@cat-factory/integrations": "0.111.2",
|
|
42
|
+
"@cat-factory/kernel": "0.195.0",
|
|
43
|
+
"@cat-factory/gates": "0.8.24",
|
|
44
|
+
"@cat-factory/observability-otel": "0.4.21",
|
|
45
|
+
"@cat-factory/orchestration": "0.172.0",
|
|
46
|
+
"@cat-factory/provider-bedrock": "0.7.329",
|
|
47
|
+
"@cat-factory/provider-cloudflare": "0.7.330",
|
|
46
48
|
"@cat-factory/prompt-fragments": "0.15.20",
|
|
47
|
-
"@cat-factory/
|
|
48
|
-
"@cat-factory/provider-
|
|
49
|
-
"@cat-factory/
|
|
50
|
-
"@cat-factory/
|
|
51
|
-
"@cat-factory/
|
|
52
|
-
"@cat-factory/spend": "0.12.123",
|
|
53
|
-
"@cat-factory/kernel": "0.193.0"
|
|
49
|
+
"@cat-factory/observability-langfuse": "0.9.21",
|
|
50
|
+
"@cat-factory/provider-s3": "0.2.249",
|
|
51
|
+
"@cat-factory/server": "0.180.0",
|
|
52
|
+
"@cat-factory/spend": "0.12.125",
|
|
53
|
+
"@cat-factory/gitlab": "0.14.7"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
56
|
"@types/node": "^26.1.1",
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
"drizzle-kit": "1.0.0-rc.4",
|
|
60
60
|
"typescript": "7.0.2",
|
|
61
61
|
"vitest": "^4.1.10",
|
|
62
|
-
"@cat-factory/conformance": "0.16.
|
|
62
|
+
"@cat-factory/conformance": "0.16.3"
|
|
63
63
|
},
|
|
64
64
|
"optionalDependencies": {
|
|
65
65
|
"ioredis": "^5.11.1"
|