@cat-factory/local-server 0.84.2 → 0.85.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/container.d.ts.map +1 -1
- package/dist/container.js +15 -2
- package/dist/container.js.map +1 -1
- package/dist/harnessImage.d.ts +1 -1
- package/dist/harnessImage.js +1 -1
- package/dist/mothership.d.ts +13 -1
- package/dist/mothership.d.ts.map +1 -1
- package/dist/mothership.js +24 -4
- package/dist/mothership.js.map +1 -1
- package/dist/sqlite/telemetryStore.d.ts +26 -0
- package/dist/sqlite/telemetryStore.d.ts.map +1 -0
- package/dist/sqlite/telemetryStore.js +518 -0
- package/dist/sqlite/telemetryStore.js.map +1 -0
- package/dist/telemetryRetention.d.ts +32 -0
- package/dist/telemetryRetention.d.ts.map +1 -0
- package/dist/telemetryRetention.js +92 -0
- package/dist/telemetryRetention.js.map +1 -0
- package/package.json +12 -12
package/dist/container.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAGV,oBAAoB,EACrB,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAGV,oBAAoB,EACrB,MAAM,0BAA0B,CAAA;AAYjC,OAAO,KAAK,EAAqC,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAO7F,OAAO,KAAK,EACV,WAAW,EAGZ,MAAM,qBAAqB,CAAA;AAwtB5B,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,eAAe,CAuSlF;AAiDD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GACjC,WAAW,EAAE,CAMf;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GACjC,WAAW,EAAE,CAUf"}
|
package/dist/container.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { CryptoIdGenerator, DrizzleEnvironmentUserHandlerRepository, DrizzleGitHubInstallationRepository, DrizzleLocalSettingsRepository, DrizzleRunnerPoolConnectionRepository, LayeredEventPropagator, ProvisioningLogRecorder, SystemClock, buildNodeContainer, buildNodeResolveTransport, createDrizzleRepositories, executionRuntime, loadNodeConfig, withProvisioningLog, } from '@cat-factory/node-server';
|
|
2
2
|
import { SqliteWorkRunner, composeMothership, createMothershipConnector, isMothershipMode, } from './mothership.js';
|
|
3
|
+
import { startLocalTelemetryRetention } from './telemetryRetention.js';
|
|
3
4
|
import { ConflictError, MODEL_PRESET_SEED_IDS, runBestEffort } from '@cat-factory/kernel';
|
|
4
5
|
import { WorkspaceSettingsService } from '@cat-factory/orchestration';
|
|
5
6
|
import { buildInfrastructureCapabilities, logger, RunnerJobClient } from '@cat-factory/server';
|
|
@@ -741,6 +742,14 @@ export function buildLocalContainer(options) {
|
|
|
741
742
|
localPreflightProbes,
|
|
742
743
|
inProcessRunner,
|
|
743
744
|
}));
|
|
745
|
+
// Telemetry retention (docs/initiatives/mothership-mode.md, PR 5): the local telemetry store is
|
|
746
|
+
// written on every LLM call / dispatch / provisioning attempt and nothing else prunes it — the
|
|
747
|
+
// mothership's cron owns ITS tables, and the Node facade's retention sweeper runs from `start()`,
|
|
748
|
+
// which a mothership-mode boot never calls. Started here (not in the boot path) so it shares the
|
|
749
|
+
// store's lifecycle: opened by `composeMothership`, pruned here, closed in `onShutdown` below.
|
|
750
|
+
const stopTelemetryRetention = mothership
|
|
751
|
+
? startLocalTelemetryRetention(mothership.telemetryStore, config.retention, clock, container.logger)
|
|
752
|
+
: undefined;
|
|
744
753
|
// Real-time INBOUND (docs/initiatives/mothership-mode.md, PR 2): hold one machine-authed
|
|
745
754
|
// subscription to the mothership per workspace someone is watching here, so org activity raised
|
|
746
755
|
// by a hosted teammate (or relayed up by a peer laptop) animates this board too. Bound to the
|
|
@@ -776,11 +785,15 @@ export function buildLocalContainer(options) {
|
|
|
776
785
|
// On shutdown (the boot paths call this from their SIGTERM/SIGINT handlers): stop the
|
|
777
786
|
// native host-process harnesses (agent + deploy) so a graceful exit tears them down —
|
|
778
787
|
// aborting their in-flight CLI children — rather than relying on the parent-exit
|
|
779
|
-
// backstop kill; in mothership mode ALSO stop the work runner's recovery poll
|
|
780
|
-
//
|
|
788
|
+
// backstop kill; in mothership mode ALSO stop the work runner's recovery poll AND the
|
|
789
|
+
// telemetry retention sweep FIRST so neither can touch a store mid-close, then release
|
|
790
|
+
// the local SQLite handles.
|
|
781
791
|
onShutdown: async () => {
|
|
782
792
|
if (mothership) {
|
|
783
793
|
inProcessRunner?.stop();
|
|
794
|
+
// Awaited, not fire-and-forget: an in-flight prune must finish touching the SQLite
|
|
795
|
+
// handle before `close()` pulls it out from under it.
|
|
796
|
+
await stopTelemetryRetention?.();
|
|
784
797
|
mothership.close();
|
|
785
798
|
}
|
|
786
799
|
await getNativeProcessTransport()?.shutdown();
|
package/dist/container.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container.js","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"container.js","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":"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"}
|
package/dist/harnessImage.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* `@cat-factory/executor-harness`'s version (the value CI tags the published image with, and
|
|
4
4
|
* the same tag `deploy/backend` pins). Bump it whenever the harness image bumps.
|
|
5
5
|
*/
|
|
6
|
-
export declare const RECOMMENDED_HARNESS_IMAGE = "ghcr.io/kibertoad/cat-factory-executor:1.
|
|
6
|
+
export declare const RECOMMENDED_HARNESS_IMAGE = "ghcr.io/kibertoad/cat-factory-executor:1.70.0";
|
|
7
7
|
/**
|
|
8
8
|
* The effective harness image ref: an explicit `LOCAL_HARNESS_IMAGE` wins (a custom build, a
|
|
9
9
|
* different pin, or a mutable tag), else the backend-matched {@link RECOMMENDED_HARNESS_IMAGE}.
|
package/dist/harnessImage.js
CHANGED
|
@@ -22,7 +22,7 @@ import { isOffValue } from './envFlags.js';
|
|
|
22
22
|
* `@cat-factory/executor-harness`'s version (the value CI tags the published image with, and
|
|
23
23
|
* the same tag `deploy/backend` pins). Bump it whenever the harness image bumps.
|
|
24
24
|
*/
|
|
25
|
-
export const RECOMMENDED_HARNESS_IMAGE = 'ghcr.io/kibertoad/cat-factory-executor:1.
|
|
25
|
+
export const RECOMMENDED_HARNESS_IMAGE = 'ghcr.io/kibertoad/cat-factory-executor:1.70.0';
|
|
26
26
|
/**
|
|
27
27
|
* The effective harness image ref: an explicit `LOCAL_HARNESS_IMAGE` wins (a custom build, a
|
|
28
28
|
* different pin, or a mutable tag), else the backend-matched {@link RECOMMENDED_HARNESS_IMAGE}.
|
package/dist/mothership.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ import { MothershipWebSocketPropagator } from './mothershipPropagator.js';
|
|
|
5
5
|
import { MothershipEventSubscriber } from './mothershipSubscriber.js';
|
|
6
6
|
import { type LocalCredentialStore } from './sqlite/credentialStore.js';
|
|
7
7
|
import { type LocalSettingsStore } from './sqlite/localSettingsStore.js';
|
|
8
|
+
import { type LocalTelemetryStore } from './sqlite/telemetryStore.js';
|
|
8
9
|
import { type LocalMachineTokenStore } from './sqlite/machineTokenStore.js';
|
|
9
10
|
import { SqliteWorkQueue } from './sqlite/workQueue.js';
|
|
10
11
|
/** True when this local node should boot in mothership mode (a mothership URL is configured). */
|
|
@@ -12,7 +13,8 @@ export declare function isMothershipMode(env: NodeJS.ProcessEnv): boolean;
|
|
|
12
13
|
/** The composed mothership persistence: remote org repos + the local credential store. */
|
|
13
14
|
export interface MothershipComposition {
|
|
14
15
|
/**
|
|
15
|
-
* The full {@link CoreRepositories} surface,
|
|
16
|
+
* The full {@link CoreRepositories} surface, remote (RPC-backed) except the local-first
|
|
17
|
+
* TELEMETRY bucket layered over it from {@link telemetryStore}. The server-side
|
|
16
18
|
* allow-list (`REMOTE_PERSISTENCE_METHODS`) gates which repo+method actually executes on the
|
|
17
19
|
* mothership; an un-allow-listed call returns `unknown_method`. The allow-list covers the
|
|
18
20
|
* board-load + run paths (resolved by the Phase-3 merge gate — see
|
|
@@ -36,6 +38,16 @@ export interface MothershipComposition {
|
|
|
36
38
|
* facade's own differentiator — so it lives on the laptop, not the mothership.
|
|
37
39
|
*/
|
|
38
40
|
localSettingsStore: LocalSettingsStore;
|
|
41
|
+
/**
|
|
42
|
+
* The local-sqlite TELEMETRY store (product decision 5: telemetry/logs are local-first). Holds
|
|
43
|
+
* the per-call LLM metrics, agent-context snapshots, performed web searches, provisioning log
|
|
44
|
+
* and modeled subscription quota cycles a run produces on this machine — append-heavy,
|
|
45
|
+
* high-volume, short-retention state that must never ride the per-call persistence RPC. Layered
|
|
46
|
+
* over the remote registry in {@link repos}, so every consumer (recorders, the observability
|
|
47
|
+
* endpoints, the board's per-step rollups) resolves it with no per-consumer wiring; the local
|
|
48
|
+
* retention sweep prunes it to the deployment's configured window.
|
|
49
|
+
*/
|
|
50
|
+
telemetryStore: LocalTelemetryStore;
|
|
39
51
|
/**
|
|
40
52
|
* Delegated GitHub token source: installation tokens minted BY THE MOTHERSHIP over
|
|
41
53
|
* `POST /internal/github/installation-token` (the mothership owns the GitHub App; its
|
package/dist/mothership.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mothership.d.ts","sourceRoot":"","sources":["../src/mothership.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,WAAW,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAClG,OAAO,EACL,uBAAuB,
|
|
1
|
+
{"version":3,"file":"mothership.d.ts","sourceRoot":"","sources":["../src/mothership.ts"],"names":[],"mappings":"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"}
|
package/dist/mothership.js
CHANGED
|
@@ -7,15 +7,18 @@ import { MothershipWebSocketPropagator } from './mothershipPropagator.js';
|
|
|
7
7
|
import { MothershipEventSubscriber } from './mothershipSubscriber.js';
|
|
8
8
|
import { createLocalCredentialStore } from './sqlite/credentialStore.js';
|
|
9
9
|
import { createLocalSettingsStore } from './sqlite/localSettingsStore.js';
|
|
10
|
+
import { createLocalTelemetryStore } from './sqlite/telemetryStore.js';
|
|
10
11
|
import { createLocalMachineTokenStore, } from './sqlite/machineTokenStore.js';
|
|
11
12
|
import { SqliteWorkQueue, createWorkQueue } from './sqlite/workQueue.js';
|
|
12
13
|
// Mothership mode (docs/initiatives/mothership-mode.md): the local node keeps NO main
|
|
13
14
|
// database. Org/durable state lives on a hosted "mothership" cat-factory (Node or Cloudflare)
|
|
14
15
|
// and is reached over the authenticated `/internal/persistence` machine API; agent/model
|
|
15
16
|
// CREDENTIALS stay on the laptop in a file-based `node:sqlite` store, sealed with the LOCAL
|
|
16
|
-
// key (the mothership's ENCRYPTION_KEY never reaches the machine)
|
|
17
|
-
//
|
|
18
|
-
//
|
|
17
|
+
// key (the mothership's ENCRYPTION_KEY never reaches the machine); and run TELEMETRY is
|
|
18
|
+
// local-first in a second `node:sqlite` store (append-heavy and hot-path, so it must never
|
|
19
|
+
// ride the per-call RPC). This module composes those halves into the seams
|
|
20
|
+
// `buildLocalContainer` threads into `buildNodeContainer`, and supplies the in-process work
|
|
21
|
+
// runner that replaces pg-boss when there is no Postgres.
|
|
19
22
|
/** True when this local node should boot in mothership mode (a mothership URL is configured). */
|
|
20
23
|
export function isMothershipMode(env) {
|
|
21
24
|
return !!env.LOCAL_MOTHERSHIP_URL?.trim();
|
|
@@ -62,7 +65,22 @@ export function composeMothership(env) {
|
|
|
62
65
|
const envToken = env.LOCAL_MOTHERSHIP_TOKEN?.trim();
|
|
63
66
|
const machineToken = () => envToken || validCachedToken(machineTokenStore);
|
|
64
67
|
const client = new HttpPersistenceRpcClient({ baseUrl, token: machineToken });
|
|
65
|
-
|
|
68
|
+
// Telemetry is LOCAL-FIRST (product decision 5), so its repositories are layered over the
|
|
69
|
+
// remote registry rather than proxied: they are written on the hot path of every LLM call,
|
|
70
|
+
// dispatch and provisioning attempt, and none of their methods is (or should be) allow-listed
|
|
71
|
+
// on the machine API. Opened before the registry so the composition is a single expression.
|
|
72
|
+
const telemetryStore = createLocalTelemetryStore(localDbPath(env.LOCAL_MOTHERSHIP_TELEMETRY_DB, 'telemetry.sqlite'));
|
|
73
|
+
// Typed by `LocalFirstPersistenceRepository` (the server-side declaration of the bucket), so
|
|
74
|
+
// the map can never be HALF-wired: omitting an entry fails to typecheck rather than silently
|
|
75
|
+
// leaving that repository on a remote proxy the allow-list only ever answers `unknown_method`.
|
|
76
|
+
const localFirst = {
|
|
77
|
+
llmCallMetricRepository: telemetryStore.llmCallMetricRepository,
|
|
78
|
+
agentContextSnapshotRepository: telemetryStore.agentContextSnapshotRepository,
|
|
79
|
+
agentSearchQueryRepository: telemetryStore.agentSearchQueryRepository,
|
|
80
|
+
provisioningLogRepository: telemetryStore.provisioningLogRepository,
|
|
81
|
+
subscriptionQuotaCycleRepository: telemetryStore.subscriptionQuotaCycleRepository,
|
|
82
|
+
};
|
|
83
|
+
const repos = createRemoteRepositoryRegistry(client, localFirst);
|
|
66
84
|
// Same base URL + per-request token as the persistence RPC, so GitHub delegation follows
|
|
67
85
|
// the exact connect/expiry lifecycle of the rest of the machine API.
|
|
68
86
|
const githubTokenSource = new DelegatedAppTokenSource({ baseUrl, token: machineToken });
|
|
@@ -102,12 +120,14 @@ export function composeMothership(env) {
|
|
|
102
120
|
notificationChannel,
|
|
103
121
|
credentialStore,
|
|
104
122
|
localSettingsStore,
|
|
123
|
+
telemetryStore,
|
|
105
124
|
workQueue,
|
|
106
125
|
machineTokenStore,
|
|
107
126
|
close: () => {
|
|
108
127
|
realtimeSubscriber.stop();
|
|
109
128
|
credentialStore.close();
|
|
110
129
|
localSettingsStore.close();
|
|
130
|
+
telemetryStore.close();
|
|
111
131
|
workQueue.close();
|
|
112
132
|
machineTokenStore.close();
|
|
113
133
|
},
|
package/dist/mothership.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mothership.js","sourceRoot":"","sources":["../src/mothership.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAA2C,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAClG,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,6BAA6B,EAC7B,wBAAwB,EAGxB,yBAAyB,EACzB,8BAA8B,EAC9B,MAAM,GACP,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAA;AACzE,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAA;AACrE,OAAO,EAA6B,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;AACnG,OAAO,EAA2B,wBAAwB,EAAE,MAAM,gCAAgC,CAAA;AAClG,OAAO,EAEL,4BAA4B,GAC7B,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAExE,sFAAsF;AACtF,8FAA8F;AAC9F,yFAAyF;AACzF,4FAA4F;AAC5F,8FAA8F;AAC9F,yFAAyF;AACzF,uFAAuF;AAEvF,iGAAiG;AACjG,MAAM,UAAU,gBAAgB,CAAC,GAAsB;IACrD,OAAO,CAAC,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,EAAE,CAAA;AAC3C,CAAC;AAED,qGAAqG;AACrG,SAAS,gBAAgB,CAAC,KAA6B;IACrD,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;IAC3B,OAAO,MAAM,IAAI,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;AAChE,CAAC;AAED;;;;GAIG;AACH,SAAS,WAAW,CAAC,QAA4B,EAAE,QAAgB;IACjE,MAAM,QAAQ,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAA;IACjC,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAA;IAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,cAAc,CAAC,CAAA;IAC3C,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACnC,OAAO,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;AAC5B,CAAC;AA+ED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAsB;IACtD,MAAM,OAAO,GAAG,GAAG,CAAC,oBAAoB,EAAE,IAAI,EAAE,CAAA;IAChD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAA;IAC9E,CAAC;IACD,MAAM,iBAAiB,GAAG,4BAA4B,CACpD,WAAW,CAAC,GAAG,CAAC,yBAAyB,EAAE,sBAAsB,CAAC,CACnE,CAAA;IACD,MAAM,QAAQ,GAAG,GAAG,CAAC,sBAAsB,EAAE,IAAI,EAAE,CAAA;IACnD,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,QAAQ,IAAI,gBAAgB,CAAC,iBAAiB,CAAC,CAAA;IAC1E,MAAM,MAAM,GAAG,IAAI,wBAAwB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAA;IAC7E,MAAM,KAAK,GAAG,8BAA8B,CAAC,MAAM,CAAgC,CAAA;IACnF,yFAAyF;IACzF,qEAAqE;IACrE,MAAM,iBAAiB,GAAG,IAAI,uBAAuB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAA;IACvF,kGAAkG;IAClG,0FAA0F;IAC1F,kFAAkF;IAClF,EAAE;IACF,8FAA8F;IAC9F,+FAA+F;IAC/F,6FAA6F;IAC7F,MAAM,gBAAgB,GAAG,mBAAmB,MAAM,CAAC,UAAU,EAAE,EAAE,CAAA;IACjE,MAAM,eAAe,GAAG,IAAI,6BAA6B,CACvD,IAAI,sBAAsB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,EAC5D,gBAAgB,CACjB,CAAA;IACD,MAAM,kBAAkB,GAAG,IAAI,yBAAyB,CAAC;QACvD,OAAO;QACP,KAAK,EAAE,YAAY;QACnB,YAAY,EAAE,gBAAgB;QAC9B,GAAG,EAAE,MAAM;KACZ,CAAC,CAAA;IACF,gGAAgG;IAChG,+FAA+F;IAC/F,6DAA6D;IAC7D,MAAM,mBAAmB,GAAG,IAAI,yBAAyB,CAAC;QACxD,MAAM,EAAE,IAAI,6BAA6B,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;QAC3E,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CACtB,MAAM,CAAC,IAAI,CAAC,yCAAyC,EAAE;YACrD,GAAG,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YAC3D,GAAG,GAAG;SACP,CAAC;KACL,CAAC,CAAA;IACF,MAAM,eAAe,GAAG,0BAA0B,CAChD,WAAW,CAAC,GAAG,CAAC,8BAA8B,EAAE,oBAAoB,CAAC,CACtE,CAAA;IACD,MAAM,kBAAkB,GAAG,wBAAwB,CACjD,WAAW,CAAC,GAAG,CAAC,4BAA4B,EAAE,uBAAuB,CAAC,CACvE,CAAA;IACD,MAAM,SAAS,GAAG,eAAe,CAAC,WAAW,CAAC,GAAG,CAAC,wBAAwB,EAAE,mBAAmB,CAAC,CAAC,CAAA;IACjG,OAAO;QACL,KAAK;QACL,iBAAiB;QACjB,eAAe;QACf,kBAAkB;QAClB,mBAAmB;QACnB,eAAe;QACf,kBAAkB;QAClB,SAAS;QACT,iBAAiB;QACjB,KAAK,EAAE,GAAG,EAAE;YACV,kBAAkB,CAAC,IAAI,EAAE,CAAA;YACzB,eAAe,CAAC,KAAK,EAAE,CAAA;YACvB,kBAAkB,CAAC,KAAK,EAAE,CAAA;YAC1B,SAAS,CAAC,KAAK,EAAE,CAAA;YACjB,iBAAiB,CAAC,KAAK,EAAE,CAAA;QAC3B,CAAC;KACF,CAAA;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,yBAAyB,CAAC,IAIzC;IACC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,KAAK,CAAA;IACzC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAC/C,OAAO;QACL,KAAK,CAAC,OAAO,CAAC,OAAO;YACnB,IAAI,GAAa,CAAA;YACjB,IAAI,CAAC;gBACH,GAAG,GAAG,MAAM,SAAS,CAAC,GAAG,OAAO,qBAAqB,EAAE;oBACrD,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,aAAa,EAAE,UAAU,OAAO,EAAE,EAAE;oBACnF,qFAAqF;oBACrF,iFAAiF;oBACjF,IAAI,EAAE,IAAI;iBACX,CAAC,CAAA;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,MAAM,EAAE,GAAG;oBACX,OAAO,EAAE,mCAAmC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;iBAC/F,CAAA;YACH,CAAC;YACD,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAcxC,CAAA;YACR,IACE,CAAC,GAAG,CAAC,EAAE;gBACP,CAAC,IAAI,EAAE,KAAK;gBACZ,CAAC,IAAI,CAAC,MAAM;gBACZ,CAAC,IAAI,CAAC,MAAM;gBACZ,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;gBAC/B,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ;gBAC5B,CAAC,IAAI,CAAC,IAAI,EACV,CAAC;gBACD,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,GAAG;oBACzB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,IAAI,qCAAqC;iBACvE,CAAA;YACH,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;gBACf,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC,CAAA;YACF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAA;QAClF,CAAC;KACF,CAAA;AACH,CAAC;AAsBD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,OAAO,gBAAgB;IAQR,KAAK;IACL,IAAI;IACJ,GAAG;IACH,GAAG;IAVd,IAAI,CAAmB;IACvB,SAAS,CAAqB;IACrB,OAAO,GAAG,IAAI,GAAG,EAAU,CAAA;IACpC,UAAU,CAAiC;IAC3C,OAAO,GAAG,KAAK,CAAA;IAEvB,YACmB,KAAsB,EACtB,IAA6B,EAC7B,GAAW,EACX,GAAG,GAAiB,IAAI,CAAC,GAAG;qBAH5B,KAAK;oBACL,IAAI;mBACJ,GAAG;mBACH,GAAG;IACnB,CAAC;IAEJ;;;;;;;OAOG;IACH,IAAI,CAAC,IAAsB,EAAE,SAA8B;QACzD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,+FAA+F;QAC/F,gEAAgE;QAChE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAA;QACzC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oEAAoE,EAAE;gBAClF,OAAO;aACR,CAAC,CAAA;QACJ,CAAC;QACD,IAAI,CAAC,KAAK,EAAE,CAAA;QACZ,8FAA8F;QAC9F,qFAAqF;QACrF,KAAK,IAAI,CAAC,gBAAgB,EAAE,CAAA;QAC5B,gGAAgG;QAChG,yFAAyF;QACzF,qFAAqF;QACrF,IAAI,IAAI,CAAC,UAAU;YAAE,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACnD,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;YACjC,IAAI,CAAC,KAAK,EAAE,CAAA;YACZ,KAAK,IAAI,CAAC,gBAAgB,EAAE,CAAA;QAC9B,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QAC7B,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAA;IAC3B,CAAC;IAED,sGAAsG;IACtG,IAAI;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;QACnB,IAAI,IAAI,CAAC,UAAU;YAAE,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACnD,IAAI,CAAC,UAAU,GAAG,SAAS,CAAA;IAC7B,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,WAAmB,EAAE,WAAmB;QACrD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;IACrC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,WAAmB,EAAE,WAAmB;QAC3D,8FAA8F;QAC9F,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;IACrC,CAAC;IAED,KAAK,CAAC,SAAS;QACb,0FAA0F;QAC1F,8FAA8F;IAChG,CAAC;IAED;;;;;;OAMG;IACK,IAAI,CAAC,WAAmB,EAAE,WAAmB;QACnD,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;QACnC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;QAC1D,CAAC;QACD,IAAI,CAAC,KAAK,EAAE,CAAA;IACd,CAAC;IAED,sGAAsG;IAC9F,KAAK;QACX,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO;YAAE,OAAM;QACtC,6FAA6F;QAC7F,gGAAgG;QAChG,4CAA4C;QAC5C,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,CAC7C,IAAI,CAAC,GAAG,EAAE,EACV,IAAI,CAAC,IAAI,CAAC,WAAW,EACrB,IAAI,CAAC,OAAO,CACb,EAAE,CAAC;YACF,KAAK,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;QACnF,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACjD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;YACzE,IAAI,CAAC,GAAG;gBAAE,MAAK;YACf,KAAK,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,WAAW,CAAC,CAAA;QAC1D,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,WAAmB,EAAE,WAAmB;QACjE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACtB,IAAI,CAAC,IAAI;YAAE,OAAM;QACjB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QAC7B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;gBACpF,GAAG,EAAE,IAAI,CAAC,GAAG;aACd,CAAC,CAAA;YACF,0FAA0F;YAC1F,IAAI,IAAI,CAAC,OAAO;gBAAE,OAAM;YACxB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;gBACxB,0FAA0F;gBAC1F,yFAAyF;gBACzF,qFAAqF;gBACrF,2FAA2F;gBAC3F,yFAAyF;gBACzF,8CAA8C;gBAC9C,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;gBAC5F,IAAI,CAAC,QAAQ;oBAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;YAC1D,CAAC;iBAAM,CAAC;gBACN,2FAA2F;gBAC3F,+EAA+E;gBAC/E,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;YAChC,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,IAAI,CAAC,OAAO;gBAAE,OAAM;YACxB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,+CAA+C,EAAE;gBAC9D,WAAW;gBACX,WAAW;gBACX,GAAG,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACtD,CAAC,CAAA;YACF,6FAA6F;YAC7F,yFAAyF;YACzF,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;YAC3E,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAC7C,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;QAClC,CAAC;QACD,8FAA8F;QAC9F,IAAI,CAAC,KAAK,EAAE,CAAA;IACd,CAAC;IAED,gGAAgG;IACxF,YAAY,CAAC,OAAe;QAClC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;QAClE,KAAK,CAAC,KAAK,EAAE,EAAE,CAAA;IACjB,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,WAAW,CACvB,WAAmB,EACnB,WAAmB,EACnB,QAAgB;QAEhB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,mEAAmE,EAAE;YAClF,WAAW;YACX,WAAW;YACX,QAAQ;SACT,CAAC,CAAA;QACF,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,EAAE,OAAO,CACtB,WAAW,EACX,WAAW,EACX,2BAA2B,QAAQ,6BAA6B,EAChE,SAAS,EACT,IAAI,CACL,CAAA;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,6DAA6D,EAAE;gBAC5E,WAAW;gBACX,WAAW;gBACX,GAAG,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACtD,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACK,KAAK,CAAC,gBAAgB;QAC5B,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO;YAAE,OAAM;QAC3C,IAAI,SAAS,GAAG,CAAC,CAAA;QACjB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAC5E,IAAI,IAAI,CAAC,OAAO;gBAAE,OAAM;YACxB,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;gBACxB,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW;oBAAE,SAAQ;gBACtC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBAAE,SAAQ;gBACtC,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;oBAAE,SAAS,EAAE,CAAA;YAClF,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,gFAAgF;YAChF,OAAM;QACR,CAAC;QACD,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YAClB,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,oFAAoF,EACpF,EAAE,SAAS,EAAE,CACd,CAAA;YACD,IAAI,CAAC,KAAK,EAAE,CAAA;QACd,CAAC;IACH,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"mothership.js","sourceRoot":"","sources":["../src/mothership.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type AgentContextSnapshotRepository, type AgentSearchQueryRepository, type LlmCallMetricRepository, type ProvisioningLogRepository, type SubscriptionQuotaCycleRepository } from '@cat-factory/kernel';
|
|
2
|
+
/**
|
|
3
|
+
* The telemetry repositories a mothership-mode node serves LOCALLY, keyed by the name the engine
|
|
4
|
+
* (and the remote registry) addresses them by. `composeMothership` layers this map over the remote
|
|
5
|
+
* repository registry, so every consumer — the recorders, the observability read endpoints, the
|
|
6
|
+
* board's per-step rollups and the retention sweep — resolves the local store with no per-consumer
|
|
7
|
+
* wiring.
|
|
8
|
+
*/
|
|
9
|
+
export interface LocalTelemetryRepositories {
|
|
10
|
+
llmCallMetricRepository: LlmCallMetricRepository;
|
|
11
|
+
agentContextSnapshotRepository: AgentContextSnapshotRepository;
|
|
12
|
+
agentSearchQueryRepository: AgentSearchQueryRepository;
|
|
13
|
+
provisioningLogRepository: ProvisioningLogRepository;
|
|
14
|
+
subscriptionQuotaCycleRepository: SubscriptionQuotaCycleRepository;
|
|
15
|
+
}
|
|
16
|
+
/** The local telemetry repositories plus a handle to close the underlying db. */
|
|
17
|
+
export interface LocalTelemetryStore extends LocalTelemetryRepositories {
|
|
18
|
+
close(): void;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Open the local telemetry store at `path` (a file under the developer's config dir, or
|
|
22
|
+
* `:memory:` in tests). Holds ONLY high-volume run telemetry — never a credential, never org
|
|
23
|
+
* state — and is pruned to the deployment's retention window by the local retention sweep.
|
|
24
|
+
*/
|
|
25
|
+
export declare function createLocalTelemetryStore(path: string): LocalTelemetryStore;
|
|
26
|
+
//# sourceMappingURL=telemetryStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetryStore.d.ts","sourceRoot":"","sources":["../../src/sqlite/telemetryStore.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,KAAK,8BAA8B,EAEnC,KAAK,0BAA0B,EAE/B,KAAK,uBAAuB,EAK5B,KAAK,yBAAyB,EAE9B,KAAK,gCAAgC,EAGtC,MAAM,qBAAqB,CAAA;AAgwB5B;;;;;;GAMG;AACH,MAAM,WAAW,0BAA0B;IACzC,uBAAuB,EAAE,uBAAuB,CAAA;IAChD,8BAA8B,EAAE,8BAA8B,CAAA;IAC9D,0BAA0B,EAAE,0BAA0B,CAAA;IACtD,yBAAyB,EAAE,yBAAyB,CAAA;IACpD,gCAAgC,EAAE,gCAAgC,CAAA;CACnE;AAED,iFAAiF;AACjF,MAAM,WAAW,mBAAoB,SAAQ,0BAA0B;IACrE,KAAK,IAAI,IAAI,CAAA;CACd;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,CAU3E"}
|
|
@@ -0,0 +1,518 @@
|
|
|
1
|
+
import { LLM_WARNING_FINISH_REASONS, } from '@cat-factory/kernel';
|
|
2
|
+
import { isWebSearchProvider, subscriptionVendorSchema, } from '@cat-factory/contracts';
|
|
3
|
+
import { decodeEnum } from '@cat-factory/server';
|
|
4
|
+
import { openSqliteDb } from './db.js';
|
|
5
|
+
// The mothership-mode LOCAL telemetry store (docs/initiatives/mothership-mode.md, PR 5).
|
|
6
|
+
//
|
|
7
|
+
// Telemetry is the third bucket, distinct from both the remote org/durable state and the local
|
|
8
|
+
// CREDENTIALS: it is append-heavy, high-volume and short-retention (product decision 5 —
|
|
9
|
+
// "telemetry/logs are local-first"). Routing it through the per-call persistence RPC would put a
|
|
10
|
+
// network round trip on the hot path of every LLM call, every dispatch and every provisioning
|
|
11
|
+
// attempt — so a mothership-mode node writes it HERE, to a file-based `node:sqlite` database on
|
|
12
|
+
// the laptop, and reads it back from the same place.
|
|
13
|
+
//
|
|
14
|
+
// Before this store existed those repositories resolved to the remote registry, where none of
|
|
15
|
+
// their methods is allow-listed: every write came back `unknown_method` (swallowed by the
|
|
16
|
+
// best-effort recorders) and every read came back empty. So a mothership-mode developer's
|
|
17
|
+
// observability panel, per-step token rollups, web-search log and provisioning "View logs"
|
|
18
|
+
// surfaces were all blank, and the board's per-run token counters read zero — the run telemetry
|
|
19
|
+
// most worth inspecting silently did not exist.
|
|
20
|
+
//
|
|
21
|
+
// What is NOT here: `tokenUsageRepository`. The spend ledger looks like telemetry but is the
|
|
22
|
+
// org's BUDGET SAFEGUARD — the gate reads its rollups remotely (`totalsSinceFor*`, long
|
|
23
|
+
// allow-listed), so a laptop-local ledger would leave every local run invisible to the
|
|
24
|
+
// workspace/account/user budget it is supposed to answer to. It stays remote, with `record` now
|
|
25
|
+
// allow-listed under a scope rule that pins the row's denormalized account/user to the caller
|
|
26
|
+
// (see `REMOTE_PERSISTENCE_METHODS`).
|
|
27
|
+
//
|
|
28
|
+
// The schema mirrors the D1 telemetry/provisioning databases column-for-column (D1 IS SQLite, so
|
|
29
|
+
// `D1LlmCallMetricRepository` et al. are the closest reference) and each repository mirrors its
|
|
30
|
+
// `D1*` counterpart's SQL, so a mothership-mode node chains prompt deltas, aggregates per-kind
|
|
31
|
+
// rollups and prunes exactly like a Postgres or D1 one. `DatabaseSync` is synchronous, so the
|
|
32
|
+
// ports' async methods execute synchronously here.
|
|
33
|
+
/** `length` / `content_filter` as a SQL list literal — shared constant, so the two agree. */
|
|
34
|
+
const WARNING_REASONS_SQL = LLM_WARNING_FINISH_REASONS.map((r) => `'${r}'`).join(', ');
|
|
35
|
+
const SCHEMA = `
|
|
36
|
+
CREATE TABLE IF NOT EXISTS llm_call_metrics (
|
|
37
|
+
id TEXT PRIMARY KEY,
|
|
38
|
+
workspace_id TEXT NOT NULL,
|
|
39
|
+
execution_id TEXT,
|
|
40
|
+
agent_kind TEXT NOT NULL,
|
|
41
|
+
provider TEXT NOT NULL,
|
|
42
|
+
model TEXT NOT NULL,
|
|
43
|
+
created_at INTEGER NOT NULL,
|
|
44
|
+
streaming INTEGER NOT NULL DEFAULT 0,
|
|
45
|
+
message_count INTEGER NOT NULL DEFAULT 0,
|
|
46
|
+
tool_count INTEGER NOT NULL DEFAULT 0,
|
|
47
|
+
request_max_tokens INTEGER,
|
|
48
|
+
prompt_tokens INTEGER NOT NULL DEFAULT 0,
|
|
49
|
+
cache_read_tokens INTEGER NOT NULL DEFAULT 0,
|
|
50
|
+
cache_write_tokens INTEGER NOT NULL DEFAULT 0,
|
|
51
|
+
completion_tokens INTEGER NOT NULL DEFAULT 0,
|
|
52
|
+
total_tokens INTEGER NOT NULL DEFAULT 0,
|
|
53
|
+
finish_reason TEXT,
|
|
54
|
+
upstream_ms INTEGER NOT NULL DEFAULT 0,
|
|
55
|
+
overhead_ms INTEGER NOT NULL DEFAULT 0,
|
|
56
|
+
total_ms INTEGER NOT NULL DEFAULT 0,
|
|
57
|
+
ok INTEGER NOT NULL DEFAULT 1,
|
|
58
|
+
http_status INTEGER,
|
|
59
|
+
error_message TEXT,
|
|
60
|
+
prompt_text TEXT NOT NULL DEFAULT '',
|
|
61
|
+
prompt_prefix_count INTEGER NOT NULL DEFAULT 0,
|
|
62
|
+
prompt_hash TEXT NOT NULL DEFAULT '',
|
|
63
|
+
response_text TEXT NOT NULL DEFAULT '',
|
|
64
|
+
reasoning_text TEXT NOT NULL DEFAULT '',
|
|
65
|
+
-- The phase/turn axes, mirroring D1 telemetry migration 0004 including its nullability: phase
|
|
66
|
+
-- defaults to '' so an older harness image's rows are a REAL rollup group rather than dropped,
|
|
67
|
+
-- and turn_index stays NULLABLE because the proxy path has no job-scoped counter -- a 0 there
|
|
68
|
+
-- would read as "the first turn" and sort every proxied call to the front of its phase.
|
|
69
|
+
phase TEXT NOT NULL DEFAULT '',
|
|
70
|
+
turn_index INTEGER
|
|
71
|
+
);
|
|
72
|
+
CREATE INDEX IF NOT EXISTS idx_llm_call_metrics_execution
|
|
73
|
+
ON llm_call_metrics (workspace_id, execution_id, created_at);
|
|
74
|
+
CREATE INDEX IF NOT EXISTS idx_llm_call_metrics_created ON llm_call_metrics (created_at);
|
|
75
|
+
|
|
76
|
+
CREATE TABLE IF NOT EXISTS agent_context_snapshots (
|
|
77
|
+
id TEXT PRIMARY KEY,
|
|
78
|
+
workspace_id TEXT NOT NULL,
|
|
79
|
+
execution_id TEXT NOT NULL,
|
|
80
|
+
agent_kind TEXT NOT NULL,
|
|
81
|
+
step_index INTEGER NOT NULL,
|
|
82
|
+
created_at INTEGER NOT NULL,
|
|
83
|
+
model TEXT,
|
|
84
|
+
harness TEXT,
|
|
85
|
+
system_prompt TEXT NOT NULL DEFAULT '',
|
|
86
|
+
user_prompt TEXT NOT NULL DEFAULT '',
|
|
87
|
+
fragments TEXT NOT NULL DEFAULT '[]',
|
|
88
|
+
context_files TEXT NOT NULL DEFAULT '[]',
|
|
89
|
+
extras TEXT NOT NULL DEFAULT '{}'
|
|
90
|
+
);
|
|
91
|
+
CREATE INDEX IF NOT EXISTS idx_agent_context_snapshots_execution
|
|
92
|
+
ON agent_context_snapshots (workspace_id, execution_id, created_at);
|
|
93
|
+
CREATE INDEX IF NOT EXISTS idx_agent_context_snapshots_created
|
|
94
|
+
ON agent_context_snapshots (created_at);
|
|
95
|
+
|
|
96
|
+
CREATE TABLE IF NOT EXISTS agent_search_queries (
|
|
97
|
+
id TEXT PRIMARY KEY,
|
|
98
|
+
workspace_id TEXT NOT NULL,
|
|
99
|
+
execution_id TEXT NOT NULL,
|
|
100
|
+
agent_kind TEXT NOT NULL,
|
|
101
|
+
provider TEXT,
|
|
102
|
+
query TEXT NOT NULL DEFAULT '',
|
|
103
|
+
result_count INTEGER NOT NULL DEFAULT 0,
|
|
104
|
+
created_at INTEGER NOT NULL
|
|
105
|
+
);
|
|
106
|
+
CREATE INDEX IF NOT EXISTS idx_agent_search_queries_execution
|
|
107
|
+
ON agent_search_queries (workspace_id, execution_id, created_at);
|
|
108
|
+
CREATE INDEX IF NOT EXISTS idx_agent_search_queries_created
|
|
109
|
+
ON agent_search_queries (created_at);
|
|
110
|
+
|
|
111
|
+
CREATE TABLE IF NOT EXISTS provisioning_log (
|
|
112
|
+
id TEXT PRIMARY KEY,
|
|
113
|
+
workspace_id TEXT NOT NULL,
|
|
114
|
+
subsystem TEXT NOT NULL,
|
|
115
|
+
operation TEXT NOT NULL,
|
|
116
|
+
target_id TEXT,
|
|
117
|
+
provider_id TEXT,
|
|
118
|
+
block_id TEXT,
|
|
119
|
+
execution_id TEXT,
|
|
120
|
+
outcome TEXT NOT NULL,
|
|
121
|
+
error TEXT,
|
|
122
|
+
detail TEXT,
|
|
123
|
+
created_at INTEGER NOT NULL
|
|
124
|
+
);
|
|
125
|
+
CREATE INDEX IF NOT EXISTS idx_provisioning_log_workspace
|
|
126
|
+
ON provisioning_log (workspace_id, created_at);
|
|
127
|
+
CREATE INDEX IF NOT EXISTS idx_provisioning_log_execution
|
|
128
|
+
ON provisioning_log (workspace_id, execution_id, created_at);
|
|
129
|
+
CREATE INDEX IF NOT EXISTS idx_provisioning_log_created ON provisioning_log (created_at);
|
|
130
|
+
|
|
131
|
+
CREATE TABLE IF NOT EXISTS subscription_quota_cycles (
|
|
132
|
+
id TEXT PRIMARY KEY,
|
|
133
|
+
scope TEXT NOT NULL,
|
|
134
|
+
scope_id TEXT NOT NULL,
|
|
135
|
+
vendor TEXT NOT NULL,
|
|
136
|
+
window_kind TEXT NOT NULL,
|
|
137
|
+
window_started_at INTEGER NOT NULL,
|
|
138
|
+
input_tokens INTEGER NOT NULL DEFAULT 0,
|
|
139
|
+
output_tokens INTEGER NOT NULL DEFAULT 0,
|
|
140
|
+
request_count INTEGER NOT NULL DEFAULT 0,
|
|
141
|
+
updated_at INTEGER NOT NULL,
|
|
142
|
+
UNIQUE (scope, scope_id, vendor, window_kind)
|
|
143
|
+
);
|
|
144
|
+
CREATE INDEX IF NOT EXISTS idx_subscription_quota_cycles_window
|
|
145
|
+
ON subscription_quota_cycles (window_started_at);
|
|
146
|
+
`;
|
|
147
|
+
function rowToMetric(row) {
|
|
148
|
+
return {
|
|
149
|
+
id: row.id,
|
|
150
|
+
workspaceId: row.workspace_id,
|
|
151
|
+
executionId: row.execution_id,
|
|
152
|
+
agentKind: row.agent_kind,
|
|
153
|
+
provider: row.provider,
|
|
154
|
+
model: row.model,
|
|
155
|
+
createdAt: row.created_at,
|
|
156
|
+
streaming: row.streaming === 1,
|
|
157
|
+
messageCount: row.message_count,
|
|
158
|
+
toolCount: row.tool_count,
|
|
159
|
+
requestMaxTokens: row.request_max_tokens,
|
|
160
|
+
promptTokens: row.prompt_tokens,
|
|
161
|
+
cacheReadTokens: row.cache_read_tokens,
|
|
162
|
+
cacheWriteTokens: row.cache_write_tokens,
|
|
163
|
+
completionTokens: row.completion_tokens,
|
|
164
|
+
totalTokens: row.total_tokens,
|
|
165
|
+
finishReason: row.finish_reason,
|
|
166
|
+
upstreamMs: row.upstream_ms,
|
|
167
|
+
overheadMs: row.overhead_ms,
|
|
168
|
+
totalMs: row.total_ms,
|
|
169
|
+
ok: row.ok === 1,
|
|
170
|
+
httpStatus: row.http_status,
|
|
171
|
+
errorMessage: row.error_message,
|
|
172
|
+
promptText: row.prompt_text,
|
|
173
|
+
promptPrefixCount: row.prompt_prefix_count,
|
|
174
|
+
promptHash: row.prompt_hash,
|
|
175
|
+
responseText: row.response_text,
|
|
176
|
+
reasoningText: row.reasoning_text,
|
|
177
|
+
phase: row.phase,
|
|
178
|
+
turnIndex: row.turn_index,
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
/** The per-call LLM telemetry sink — the local-sqlite mirror of `D1LlmCallMetricRepository`. */
|
|
182
|
+
class SqliteLlmCallMetricRepository {
|
|
183
|
+
db;
|
|
184
|
+
constructor(db) {
|
|
185
|
+
this.db = db;
|
|
186
|
+
}
|
|
187
|
+
async record(metric) {
|
|
188
|
+
// First write wins, and ONLY a duplicate id is ignored — `ON CONFLICT(id) DO NOTHING`, never
|
|
189
|
+
// `INSERT OR IGNORE` (which would also swallow a NOT NULL/CHECK violation and silently drop a
|
|
190
|
+
// malformed metric here while the other runtimes throw). The harness-call recorder deliberately
|
|
191
|
+
// re-offers a deterministic id (live drain, terminal list, durable-driver replay), so ignoring
|
|
192
|
+
// the repeat is what makes those paths idempotent; overwriting would invalidate the row's
|
|
193
|
+
// stored prompt DELTA, which is only meaningful against the tip that preceded its FIRST write.
|
|
194
|
+
this.db
|
|
195
|
+
.prepare(`INSERT INTO llm_call_metrics
|
|
196
|
+
(id, workspace_id, execution_id, agent_kind, provider, model, created_at,
|
|
197
|
+
streaming, message_count, tool_count, request_max_tokens,
|
|
198
|
+
prompt_tokens, cache_read_tokens, cache_write_tokens, completion_tokens,
|
|
199
|
+
total_tokens, finish_reason,
|
|
200
|
+
upstream_ms, overhead_ms, total_ms, ok, http_status, error_message,
|
|
201
|
+
prompt_text, prompt_prefix_count, prompt_hash, response_text, reasoning_text,
|
|
202
|
+
phase, turn_index)
|
|
203
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
204
|
+
ON CONFLICT(id) DO NOTHING`)
|
|
205
|
+
.run(metric.id, metric.workspaceId, metric.executionId, metric.agentKind, metric.provider, metric.model, metric.createdAt, metric.streaming ? 1 : 0, metric.messageCount, metric.toolCount, metric.requestMaxTokens, metric.promptTokens, metric.cacheReadTokens, metric.cacheWriteTokens, metric.completionTokens, metric.totalTokens, metric.finishReason, metric.upstreamMs, metric.overheadMs, metric.totalMs, metric.ok ? 1 : 0, metric.httpStatus, metric.errorMessage, metric.promptText, metric.promptPrefixCount, metric.promptHash, metric.responseText, metric.reasoningText, metric.phase, metric.turnIndex);
|
|
206
|
+
}
|
|
207
|
+
async latestChainTip(workspaceId, executionId, agentKind) {
|
|
208
|
+
// `message_count > 0` skips rows that can never BE a tip: a subagent call carries no
|
|
209
|
+
// re-sendable prompt chain, and those interleave with the parent's now that harness telemetry
|
|
210
|
+
// streams live — treating one as the tip makes every following parent call unchainable.
|
|
211
|
+
// message_count breaks a same-millisecond createdAt tie; id is the last resort.
|
|
212
|
+
const row = this.db
|
|
213
|
+
.prepare(`SELECT message_count, prompt_hash FROM llm_call_metrics
|
|
214
|
+
WHERE workspace_id = ? AND execution_id = ? AND agent_kind = ? AND message_count > 0
|
|
215
|
+
ORDER BY created_at DESC, message_count DESC, id DESC
|
|
216
|
+
LIMIT 1`)
|
|
217
|
+
.get(workspaceId, executionId, agentKind);
|
|
218
|
+
return row ? { messageCount: row.message_count, promptHash: row.prompt_hash } : null;
|
|
219
|
+
}
|
|
220
|
+
async listByExecution(workspaceId, executionId, limit, agentKind) {
|
|
221
|
+
// Newest first; `LIMIT -1` means "no limit" in SQLite, so an omitted cap reads all.
|
|
222
|
+
const rows = this.db
|
|
223
|
+
.prepare(`SELECT * FROM llm_call_metrics
|
|
224
|
+
WHERE workspace_id = ? AND execution_id = ?
|
|
225
|
+
AND (? IS NULL OR agent_kind = ?)
|
|
226
|
+
ORDER BY created_at DESC, id DESC
|
|
227
|
+
LIMIT ?`)
|
|
228
|
+
.all(workspaceId, executionId, agentKind ?? null, agentKind ?? null, limit ?? -1);
|
|
229
|
+
return rows.map(rowToMetric);
|
|
230
|
+
}
|
|
231
|
+
async summarizeByExecution(workspaceId, executionId) {
|
|
232
|
+
// Aggregate-only: selects no prompt/response text, so it stays cheap enough to run on every
|
|
233
|
+
// execution emit (it backs the live board rollups).
|
|
234
|
+
const rows = this.db
|
|
235
|
+
.prepare(`SELECT
|
|
236
|
+
agent_kind AS agent_kind,
|
|
237
|
+
COUNT(*) AS calls,
|
|
238
|
+
COALESCE(SUM(prompt_tokens), 0) AS prompt_tokens,
|
|
239
|
+
COALESCE(SUM(cache_read_tokens), 0) AS cache_read_tokens,
|
|
240
|
+
COALESCE(SUM(cache_write_tokens), 0) AS cache_write_tokens,
|
|
241
|
+
COALESCE(SUM(completion_tokens), 0) AS completion_tokens,
|
|
242
|
+
COALESCE(MAX(completion_tokens), 0) AS peak_completion_tokens,
|
|
243
|
+
MAX(request_max_tokens) AS max_output_tokens,
|
|
244
|
+
COALESCE(SUM(CASE WHEN finish_reason = 'length' THEN 1 ELSE 0 END), 0) AS truncated_calls,
|
|
245
|
+
COALESCE(SUM(upstream_ms), 0) AS upstream_ms,
|
|
246
|
+
COALESCE(SUM(overhead_ms), 0) AS overhead_ms,
|
|
247
|
+
COALESCE(SUM(CASE WHEN ok = 0 THEN 1 ELSE 0 END), 0) AS errors,
|
|
248
|
+
COALESCE(SUM(CASE WHEN ok = 1 AND finish_reason IN (${WARNING_REASONS_SQL}) THEN 1 ELSE 0 END), 0) AS warnings
|
|
249
|
+
FROM llm_call_metrics
|
|
250
|
+
WHERE workspace_id = ? AND execution_id = ?
|
|
251
|
+
GROUP BY agent_kind`)
|
|
252
|
+
.all(workspaceId, executionId);
|
|
253
|
+
return rows.map((r) => ({
|
|
254
|
+
agentKind: r.agent_kind,
|
|
255
|
+
calls: r.calls,
|
|
256
|
+
promptTokens: r.prompt_tokens,
|
|
257
|
+
cacheReadTokens: r.cache_read_tokens,
|
|
258
|
+
cacheWriteTokens: r.cache_write_tokens,
|
|
259
|
+
completionTokens: r.completion_tokens,
|
|
260
|
+
peakCompletionTokens: r.peak_completion_tokens,
|
|
261
|
+
maxOutputTokens: r.max_output_tokens,
|
|
262
|
+
truncatedCalls: r.truncated_calls,
|
|
263
|
+
upstreamMs: r.upstream_ms,
|
|
264
|
+
overheadMs: r.overhead_ms,
|
|
265
|
+
errors: r.errors,
|
|
266
|
+
warnings: r.warnings,
|
|
267
|
+
}));
|
|
268
|
+
}
|
|
269
|
+
async deleteOlderThan(epochMs) {
|
|
270
|
+
const res = this.db.prepare('DELETE FROM llm_call_metrics WHERE created_at < ?').run(epochMs);
|
|
271
|
+
return Number(res.changes);
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
function parseArray(text) {
|
|
275
|
+
try {
|
|
276
|
+
const parsed = JSON.parse(text);
|
|
277
|
+
return Array.isArray(parsed) ? parsed : [];
|
|
278
|
+
}
|
|
279
|
+
catch {
|
|
280
|
+
return [];
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
function parseObject(text) {
|
|
284
|
+
try {
|
|
285
|
+
const parsed = JSON.parse(text);
|
|
286
|
+
return parsed && typeof parsed === 'object' && !Array.isArray(parsed)
|
|
287
|
+
? parsed
|
|
288
|
+
: {};
|
|
289
|
+
}
|
|
290
|
+
catch {
|
|
291
|
+
return {};
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
/** The per-dispatch agent-context sink — the local-sqlite mirror of `D1AgentContextSnapshotRepository`. */
|
|
295
|
+
class SqliteAgentContextSnapshotRepository {
|
|
296
|
+
db;
|
|
297
|
+
constructor(db) {
|
|
298
|
+
this.db = db;
|
|
299
|
+
}
|
|
300
|
+
async record(snapshot) {
|
|
301
|
+
this.db
|
|
302
|
+
.prepare(`INSERT INTO agent_context_snapshots
|
|
303
|
+
(id, workspace_id, execution_id, agent_kind, step_index, created_at,
|
|
304
|
+
model, harness, system_prompt, user_prompt, fragments, context_files, extras)
|
|
305
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`)
|
|
306
|
+
.run(snapshot.id, snapshot.workspaceId, snapshot.executionId, snapshot.agentKind, snapshot.stepIndex, snapshot.createdAt, snapshot.model, snapshot.harness, snapshot.systemPrompt, snapshot.userPrompt, JSON.stringify(snapshot.fragments), JSON.stringify(snapshot.contextFiles), JSON.stringify(snapshot.extras));
|
|
307
|
+
}
|
|
308
|
+
async listByExecution(workspaceId, executionId) {
|
|
309
|
+
const rows = this.db
|
|
310
|
+
.prepare(`SELECT * FROM agent_context_snapshots
|
|
311
|
+
WHERE workspace_id = ? AND execution_id = ?
|
|
312
|
+
ORDER BY created_at DESC, id DESC`)
|
|
313
|
+
.all(workspaceId, executionId);
|
|
314
|
+
return rows.map((row) => ({
|
|
315
|
+
id: row.id,
|
|
316
|
+
workspaceId: row.workspace_id,
|
|
317
|
+
executionId: row.execution_id,
|
|
318
|
+
agentKind: row.agent_kind,
|
|
319
|
+
stepIndex: row.step_index,
|
|
320
|
+
createdAt: row.created_at,
|
|
321
|
+
model: row.model,
|
|
322
|
+
harness: row.harness,
|
|
323
|
+
systemPrompt: row.system_prompt,
|
|
324
|
+
userPrompt: row.user_prompt,
|
|
325
|
+
fragments: parseArray(row.fragments),
|
|
326
|
+
contextFiles: parseArray(row.context_files),
|
|
327
|
+
extras: parseObject(row.extras),
|
|
328
|
+
}));
|
|
329
|
+
}
|
|
330
|
+
async deleteOlderThan(epochMs) {
|
|
331
|
+
const res = this.db
|
|
332
|
+
.prepare('DELETE FROM agent_context_snapshots WHERE created_at < ?')
|
|
333
|
+
.run(epochMs);
|
|
334
|
+
return Number(res.changes);
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
/** The performed-web-search sink — the local-sqlite mirror of `D1AgentSearchQueryRepository`. */
|
|
338
|
+
class SqliteAgentSearchQueryRepository {
|
|
339
|
+
db;
|
|
340
|
+
constructor(db) {
|
|
341
|
+
this.db = db;
|
|
342
|
+
}
|
|
343
|
+
async record(query) {
|
|
344
|
+
this.db
|
|
345
|
+
.prepare(`INSERT INTO agent_search_queries
|
|
346
|
+
(id, workspace_id, execution_id, agent_kind, provider, query, result_count, created_at)
|
|
347
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?)`)
|
|
348
|
+
.run(query.id, query.workspaceId, query.executionId, query.agentKind, query.provider, query.query, query.resultCount, query.createdAt);
|
|
349
|
+
}
|
|
350
|
+
async listByExecution(workspaceId, executionId) {
|
|
351
|
+
const rows = this.db
|
|
352
|
+
.prepare(`SELECT * FROM agent_search_queries
|
|
353
|
+
WHERE workspace_id = ? AND execution_id = ?
|
|
354
|
+
ORDER BY created_at DESC, id DESC`)
|
|
355
|
+
.all(workspaceId, executionId);
|
|
356
|
+
return rows.map((row) => ({
|
|
357
|
+
id: row.id,
|
|
358
|
+
workspaceId: row.workspace_id,
|
|
359
|
+
executionId: row.execution_id,
|
|
360
|
+
agentKind: row.agent_kind,
|
|
361
|
+
// The stored provider column is free-text TEXT; narrow it back to the wire union.
|
|
362
|
+
provider: isWebSearchProvider(row.provider) ? row.provider : null,
|
|
363
|
+
query: row.query,
|
|
364
|
+
resultCount: row.result_count,
|
|
365
|
+
createdAt: row.created_at,
|
|
366
|
+
}));
|
|
367
|
+
}
|
|
368
|
+
async deleteOlderThan(epochMs) {
|
|
369
|
+
const res = this.db
|
|
370
|
+
.prepare('DELETE FROM agent_search_queries WHERE created_at < ?')
|
|
371
|
+
.run(epochMs);
|
|
372
|
+
return Number(res.changes);
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
/** The provisioning event log — the local-sqlite mirror of `D1ProvisioningLogRepository`. */
|
|
376
|
+
class SqliteProvisioningLogRepository {
|
|
377
|
+
db;
|
|
378
|
+
constructor(db) {
|
|
379
|
+
this.db = db;
|
|
380
|
+
}
|
|
381
|
+
async append(record) {
|
|
382
|
+
this.db
|
|
383
|
+
.prepare(`INSERT INTO provisioning_log
|
|
384
|
+
(id, workspace_id, subsystem, operation, target_id, provider_id, block_id,
|
|
385
|
+
execution_id, outcome, error, detail, created_at)
|
|
386
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`)
|
|
387
|
+
.run(record.id, record.workspaceId, record.subsystem, record.operation, record.targetId, record.providerId, record.blockId, record.executionId, record.outcome, record.error, record.detail, record.createdAt);
|
|
388
|
+
}
|
|
389
|
+
async list(workspaceId, query = {}) {
|
|
390
|
+
const clauses = ['workspace_id = ?'];
|
|
391
|
+
const binds = [workspaceId];
|
|
392
|
+
if (query.subsystem) {
|
|
393
|
+
clauses.push('subsystem = ?');
|
|
394
|
+
binds.push(query.subsystem);
|
|
395
|
+
}
|
|
396
|
+
if (query.executionId) {
|
|
397
|
+
clauses.push('execution_id = ?');
|
|
398
|
+
binds.push(query.executionId);
|
|
399
|
+
}
|
|
400
|
+
if (query.targetId) {
|
|
401
|
+
clauses.push('target_id = ?');
|
|
402
|
+
binds.push(query.targetId);
|
|
403
|
+
}
|
|
404
|
+
if (query.before != null) {
|
|
405
|
+
clauses.push('created_at < ?');
|
|
406
|
+
binds.push(query.before);
|
|
407
|
+
}
|
|
408
|
+
// Newest first; `LIMIT -1` means "no limit" in SQLite, so an omitted cap reads all.
|
|
409
|
+
binds.push(query.limit ?? -1);
|
|
410
|
+
const rows = this.db
|
|
411
|
+
.prepare(`SELECT * FROM provisioning_log
|
|
412
|
+
WHERE ${clauses.join(' AND ')}
|
|
413
|
+
ORDER BY created_at DESC, id DESC
|
|
414
|
+
LIMIT ?`)
|
|
415
|
+
.all(...binds);
|
|
416
|
+
return rows.map((row) => ({
|
|
417
|
+
id: row.id,
|
|
418
|
+
workspaceId: row.workspace_id,
|
|
419
|
+
subsystem: row.subsystem,
|
|
420
|
+
operation: row.operation,
|
|
421
|
+
targetId: row.target_id,
|
|
422
|
+
providerId: row.provider_id,
|
|
423
|
+
blockId: row.block_id,
|
|
424
|
+
executionId: row.execution_id,
|
|
425
|
+
outcome: row.outcome,
|
|
426
|
+
error: row.error,
|
|
427
|
+
detail: row.detail,
|
|
428
|
+
createdAt: row.created_at,
|
|
429
|
+
}));
|
|
430
|
+
}
|
|
431
|
+
async deleteOlderThan(epochMs) {
|
|
432
|
+
const res = this.db.prepare('DELETE FROM provisioning_log WHERE created_at < ?').run(epochMs);
|
|
433
|
+
return Number(res.changes);
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
/**
|
|
437
|
+
* The modeled subscription quota-cycle counters — the local-sqlite mirror of
|
|
438
|
+
* `D1SubscriptionQuotaCycleRepository`. Local by construction as well as by policy: in mothership
|
|
439
|
+
* mode BOTH scopes a cycle can key on live on the laptop (a `pooled` cycle's scopeId is a
|
|
440
|
+
* `provider_subscription_tokens` row in the local credential store, and a `user` cycle counts a
|
|
441
|
+
* personal subscription kept there too), so remoting the counters would split a cycle from the
|
|
442
|
+
* credential it models.
|
|
443
|
+
*/
|
|
444
|
+
class SqliteSubscriptionQuotaCycleRepository {
|
|
445
|
+
db;
|
|
446
|
+
constructor(db) {
|
|
447
|
+
this.db = db;
|
|
448
|
+
}
|
|
449
|
+
async recordUsage(key, usage, at, windowMs) {
|
|
450
|
+
// Windowed UPSERT: INSERT anchors a fresh window at `at`; ON CONFLICT accumulates when the
|
|
451
|
+
// existing window is still active (`at - window_started_at < windowMs`) or resets it to `at`
|
|
452
|
+
// otherwise. SQLite evaluates every SET right-hand side against the row's PRE-update values,
|
|
453
|
+
// so referencing `window_started_at` in the counter branches is safe even though the first SET
|
|
454
|
+
// reassigns it (identical to the D1 repo).
|
|
455
|
+
const active = '(? - window_started_at < ?)';
|
|
456
|
+
this.db
|
|
457
|
+
.prepare(`INSERT INTO subscription_quota_cycles
|
|
458
|
+
(id, scope, scope_id, vendor, window_kind, window_started_at,
|
|
459
|
+
input_tokens, output_tokens, request_count, updated_at)
|
|
460
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, 1, ?)
|
|
461
|
+
ON CONFLICT (scope, scope_id, vendor, window_kind) DO UPDATE SET
|
|
462
|
+
window_started_at = CASE WHEN ${active} THEN window_started_at ELSE ? END,
|
|
463
|
+
input_tokens = CASE WHEN ${active} THEN input_tokens ELSE 0 END + ?,
|
|
464
|
+
output_tokens = CASE WHEN ${active} THEN output_tokens ELSE 0 END + ?,
|
|
465
|
+
request_count = CASE WHEN ${active} THEN request_count ELSE 0 END + 1,
|
|
466
|
+
updated_at = ?`)
|
|
467
|
+
.run(
|
|
468
|
+
// INSERT values
|
|
469
|
+
key.id, key.scope, key.scopeId, key.vendor, key.windowKind, at, usage.inputTokens, usage.outputTokens, at,
|
|
470
|
+
// UPDATE branches
|
|
471
|
+
at, windowMs, at, at, windowMs, usage.inputTokens, at, windowMs, usage.outputTokens, at, windowMs, at);
|
|
472
|
+
}
|
|
473
|
+
async listByScopeVendor(scope, scopeId, vendor) {
|
|
474
|
+
const rows = this.db
|
|
475
|
+
.prepare(`SELECT * FROM subscription_quota_cycles
|
|
476
|
+
WHERE scope = ? AND scope_id = ? AND vendor = ?`)
|
|
477
|
+
.all(scope, scopeId, vendor);
|
|
478
|
+
return rows.map((row) => ({
|
|
479
|
+
id: row.id,
|
|
480
|
+
scope: row.scope,
|
|
481
|
+
scopeId: row.scope_id,
|
|
482
|
+
vendor: decodeEnum(subscriptionVendorSchema, row.vendor, {
|
|
483
|
+
table: 'subscription_quota_cycles',
|
|
484
|
+
column: 'vendor',
|
|
485
|
+
id: row.id,
|
|
486
|
+
}),
|
|
487
|
+
windowKind: row.window_kind,
|
|
488
|
+
windowStartedAt: row.window_started_at,
|
|
489
|
+
inputTokens: row.input_tokens,
|
|
490
|
+
outputTokens: row.output_tokens,
|
|
491
|
+
requestCount: row.request_count,
|
|
492
|
+
updatedAt: row.updated_at,
|
|
493
|
+
}));
|
|
494
|
+
}
|
|
495
|
+
async deleteOlderThan(epochMs) {
|
|
496
|
+
const res = this.db
|
|
497
|
+
.prepare('DELETE FROM subscription_quota_cycles WHERE window_started_at < ?')
|
|
498
|
+
.run(epochMs);
|
|
499
|
+
return Number(res.changes);
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
/**
|
|
503
|
+
* Open the local telemetry store at `path` (a file under the developer's config dir, or
|
|
504
|
+
* `:memory:` in tests). Holds ONLY high-volume run telemetry — never a credential, never org
|
|
505
|
+
* state — and is pruned to the deployment's retention window by the local retention sweep.
|
|
506
|
+
*/
|
|
507
|
+
export function createLocalTelemetryStore(path) {
|
|
508
|
+
const db = openSqliteDb(path, SCHEMA);
|
|
509
|
+
return {
|
|
510
|
+
llmCallMetricRepository: new SqliteLlmCallMetricRepository(db),
|
|
511
|
+
agentContextSnapshotRepository: new SqliteAgentContextSnapshotRepository(db),
|
|
512
|
+
agentSearchQueryRepository: new SqliteAgentSearchQueryRepository(db),
|
|
513
|
+
provisioningLogRepository: new SqliteProvisioningLogRepository(db),
|
|
514
|
+
subscriptionQuotaCycleRepository: new SqliteSubscriptionQuotaCycleRepository(db),
|
|
515
|
+
close: () => db.close(),
|
|
516
|
+
};
|
|
517
|
+
}
|
|
518
|
+
//# sourceMappingURL=telemetryStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetryStore.js","sourceRoot":"","sources":["../../src/sqlite/telemetryStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { Clock, Logger } from '@cat-factory/kernel';
|
|
2
|
+
import type { RetentionConfig } from '@cat-factory/server';
|
|
3
|
+
import type { LocalTelemetryStore } from './sqlite/telemetryStore.js';
|
|
4
|
+
/** Rows reclaimed from each local telemetry table, for logging. */
|
|
5
|
+
export interface LocalTelemetryRetentionResult {
|
|
6
|
+
llmCallMetrics: number;
|
|
7
|
+
agentContextSnapshots: number;
|
|
8
|
+
agentSearchQueries: number;
|
|
9
|
+
provisioningLog: number;
|
|
10
|
+
subscriptionQuotaCycles: number;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Prune each local telemetry table to its retention window. Pure over the store, so it is
|
|
14
|
+
* unit-testable without a timer (mirrors the Node facade's `sweepRetention`). The three
|
|
15
|
+
* agent-observability sinks share the LLM-call window — they are the same run's heavy bodies —
|
|
16
|
+
* while the provisioning log keeps its own and the quota cycles a fixed one.
|
|
17
|
+
*/
|
|
18
|
+
export declare function sweepLocalTelemetryRetention(store: LocalTelemetryStore, retention: RetentionConfig, now: number): Promise<LocalTelemetryRetentionResult>;
|
|
19
|
+
/**
|
|
20
|
+
* Start the periodic local telemetry prune. Runs once immediately (so a restart reclaims promptly)
|
|
21
|
+
* then hourly, non-overlapping and best-effort — a failed pass is logged and retried next tick,
|
|
22
|
+
* never thrown, because losing observability must never take the node down.
|
|
23
|
+
*
|
|
24
|
+
* The returned stop function is ASYNC and must be AWAITED before the store is closed. That is not
|
|
25
|
+
* tidiness: the immediate first pass is asynchronous, so on a short-lived node (a test, a boot that
|
|
26
|
+
* fails straight after) it is still mid-flight when shutdown closes the SQLite handle underneath
|
|
27
|
+
* it — the pass then dies on "database is not open" and every such exit carries a spurious error
|
|
28
|
+
* line. Awaiting the in-flight pass makes teardown ordered instead of racy; the stop flag covers
|
|
29
|
+
* the case where the pass has not started yet.
|
|
30
|
+
*/
|
|
31
|
+
export declare function startLocalTelemetryRetention(store: LocalTelemetryStore, retention: RetentionConfig, clock: Clock, log: Logger): () => Promise<void>;
|
|
32
|
+
//# sourceMappingURL=telemetryRetention.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetryRetention.d.ts","sourceRoot":"","sources":["../src/telemetryRetention.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAExD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AA4BrE,mEAAmE;AACnE,MAAM,WAAW,6BAA6B;IAC5C,cAAc,EAAE,MAAM,CAAA;IACtB,qBAAqB,EAAE,MAAM,CAAA;IAC7B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,eAAe,EAAE,MAAM,CAAA;IACvB,uBAAuB,EAAE,MAAM,CAAA;CAChC;AAYD;;;;;GAKG;AACH,wBAAsB,4BAA4B,CAChD,KAAK,EAAE,mBAAmB,EAC1B,SAAS,EAAE,eAAe,EAC1B,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,6BAA6B,CAAC,CAkBxC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,mBAAmB,EAC1B,SAAS,EAAE,eAAe,EAC1B,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,MAAM,GACV,MAAM,OAAO,CAAC,IAAI,CAAC,CA8BrB"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { startSweeper } from '@cat-factory/node-server';
|
|
2
|
+
// Retention for the mothership-mode LOCAL telemetry store (docs/initiatives/mothership-mode.md,
|
|
3
|
+
// PR 5). Telemetry is local-first on a mothership-mode node, so nothing else prunes it: the
|
|
4
|
+
// mothership's own cron owns ITS tables, and the Node facade's `startRetentionSweeper` runs from
|
|
5
|
+
// `start()`, which a mothership-mode boot never calls (there is no Postgres and no pg-boss). Left
|
|
6
|
+
// unpruned, the `llm_call_metrics` table — full per-call prompt + response bodies — grows without
|
|
7
|
+
// bound on the developer's disk, which is exactly the failure the configured window exists to
|
|
8
|
+
// prevent on the other two runtimes.
|
|
9
|
+
//
|
|
10
|
+
// The windows are the SAME `RetentionConfig` the Node/Worker sweeps use, so a developer's laptop
|
|
11
|
+
// keeps telemetry for as long as the deployment says. Only the tables this store actually owns are
|
|
12
|
+
// pruned; everything else on a mothership-mode node is org state the mothership prunes.
|
|
13
|
+
/**
|
|
14
|
+
* How often the local telemetry prune runs. Matches the Node facade's retention cadence: the
|
|
15
|
+
* windows are measured in days, so an hourly indexed range delete costs nothing and usually
|
|
16
|
+
* reclaims nothing.
|
|
17
|
+
*/
|
|
18
|
+
const LOCAL_TELEMETRY_SWEEP_INTERVAL_MS = 60 * 60 * 1000;
|
|
19
|
+
/**
|
|
20
|
+
* Idle quota-cycle rows are pruned after a fixed 30 days, deliberately far beyond the longest
|
|
21
|
+
* quota window (the 7-day weekly one) so a live cycle is never deleted mid-window. Mirrors the
|
|
22
|
+
* Node facade's `SUBSCRIPTION_QUOTA_CYCLE_RETENTION_MS`; a stale window re-anchors on next use.
|
|
23
|
+
*/
|
|
24
|
+
const SUBSCRIPTION_QUOTA_CYCLE_RETENTION_MS = 30 * 24 * 60 * 60 * 1000;
|
|
25
|
+
/** Delete rows older than `now - windowMs`, treating a non-positive window as "disabled". */
|
|
26
|
+
async function prune(windowMs, now, del) {
|
|
27
|
+
if (windowMs <= 0)
|
|
28
|
+
return 0;
|
|
29
|
+
return del(now - windowMs);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Prune each local telemetry table to its retention window. Pure over the store, so it is
|
|
33
|
+
* unit-testable without a timer (mirrors the Node facade's `sweepRetention`). The three
|
|
34
|
+
* agent-observability sinks share the LLM-call window — they are the same run's heavy bodies —
|
|
35
|
+
* while the provisioning log keeps its own and the quota cycles a fixed one.
|
|
36
|
+
*/
|
|
37
|
+
export async function sweepLocalTelemetryRetention(store, retention, now) {
|
|
38
|
+
return {
|
|
39
|
+
llmCallMetrics: await prune(retention.llmCallMetricsMs, now, (c) => store.llmCallMetricRepository.deleteOlderThan(c)),
|
|
40
|
+
agentContextSnapshots: await prune(retention.llmCallMetricsMs, now, (c) => store.agentContextSnapshotRepository.deleteOlderThan(c)),
|
|
41
|
+
agentSearchQueries: await prune(retention.llmCallMetricsMs, now, (c) => store.agentSearchQueryRepository.deleteOlderThan(c)),
|
|
42
|
+
provisioningLog: await prune(retention.provisioningLogMs, now, (c) => store.provisioningLogRepository.deleteOlderThan(c)),
|
|
43
|
+
subscriptionQuotaCycles: await prune(SUBSCRIPTION_QUOTA_CYCLE_RETENTION_MS, now, (c) => store.subscriptionQuotaCycleRepository.deleteOlderThan(c)),
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Start the periodic local telemetry prune. Runs once immediately (so a restart reclaims promptly)
|
|
48
|
+
* then hourly, non-overlapping and best-effort — a failed pass is logged and retried next tick,
|
|
49
|
+
* never thrown, because losing observability must never take the node down.
|
|
50
|
+
*
|
|
51
|
+
* The returned stop function is ASYNC and must be AWAITED before the store is closed. That is not
|
|
52
|
+
* tidiness: the immediate first pass is asynchronous, so on a short-lived node (a test, a boot that
|
|
53
|
+
* fails straight after) it is still mid-flight when shutdown closes the SQLite handle underneath
|
|
54
|
+
* it — the pass then dies on "database is not open" and every such exit carries a spurious error
|
|
55
|
+
* line. Awaiting the in-flight pass makes teardown ordered instead of racy; the stop flag covers
|
|
56
|
+
* the case where the pass has not started yet.
|
|
57
|
+
*/
|
|
58
|
+
export function startLocalTelemetryRetention(store, retention, clock, log) {
|
|
59
|
+
let stopped = false;
|
|
60
|
+
let inFlight;
|
|
61
|
+
const stopSweeper = startSweeper({
|
|
62
|
+
name: 'local-telemetry-retention',
|
|
63
|
+
intervalMs: LOCAL_TELEMETRY_SWEEP_INTERVAL_MS,
|
|
64
|
+
log,
|
|
65
|
+
failureMessage: 'local telemetry retention sweep failed',
|
|
66
|
+
tick: async () => {
|
|
67
|
+
if (stopped)
|
|
68
|
+
return;
|
|
69
|
+
const pass = sweepLocalTelemetryRetention(store, retention, clock.now());
|
|
70
|
+
inFlight = pass;
|
|
71
|
+
try {
|
|
72
|
+
const reclaimed = await pass;
|
|
73
|
+
if (Object.values(reclaimed).some((n) => n > 0)) {
|
|
74
|
+
log.info('local telemetry retention sweep reclaimed rows', { ...reclaimed });
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
finally {
|
|
78
|
+
if (inFlight === pass)
|
|
79
|
+
inFlight = undefined;
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
});
|
|
83
|
+
return async () => {
|
|
84
|
+
stopped = true;
|
|
85
|
+
stopSweeper();
|
|
86
|
+
// silent-catch-ok: the sweeper's own error handler already logged this pass's failure; here we
|
|
87
|
+
// only need it to have FINISHED touching the store before the caller closes it, so re-reporting
|
|
88
|
+
// would duplicate the line and rethrowing would fail an otherwise clean shutdown.
|
|
89
|
+
await inFlight?.catch(() => undefined);
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=telemetryRetention.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetryRetention.js","sourceRoot":"","sources":["../src/telemetryRetention.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cat-factory/local-server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.85.0",
|
|
4
4
|
"description": "Local-mode runtime facade for the Agent Architecture Board: the @cat-factory/node-server stack with agent jobs run as local Docker/Podman containers and GitHub accessed via a personal access token — a developer can run the whole product on their own machine.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -27,23 +27,23 @@
|
|
|
27
27
|
"@hono/node-server": "^2.0.12",
|
|
28
28
|
"drizzle-orm": "1.0.0-rc.4",
|
|
29
29
|
"ws": "^8.21.1",
|
|
30
|
-
"@cat-factory/
|
|
31
|
-
"@cat-factory/
|
|
32
|
-
"@cat-factory/
|
|
33
|
-
"@cat-factory/
|
|
34
|
-
"@cat-factory/
|
|
35
|
-
"@cat-factory/
|
|
36
|
-
"@cat-factory/
|
|
37
|
-
"@cat-factory/
|
|
38
|
-
"@cat-factory/
|
|
30
|
+
"@cat-factory/agents": "0.81.1",
|
|
31
|
+
"@cat-factory/contracts": "0.186.0",
|
|
32
|
+
"@cat-factory/gitlab": "0.13.27",
|
|
33
|
+
"@cat-factory/integrations": "0.108.0",
|
|
34
|
+
"@cat-factory/kernel": "0.179.0",
|
|
35
|
+
"@cat-factory/node-server": "0.130.0",
|
|
36
|
+
"@cat-factory/orchestration": "0.159.0",
|
|
37
|
+
"@cat-factory/server": "0.167.0",
|
|
38
|
+
"@cat-factory/executor-harness": "1.70.0"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@types/node": "^26.1.1",
|
|
42
42
|
"@types/ws": "^8.18.1",
|
|
43
43
|
"typescript": "7.0.2",
|
|
44
44
|
"vitest": "^4.1.10",
|
|
45
|
-
"@cat-factory/conformance": "0.14.
|
|
46
|
-
"@cat-factory/gates": "0.8.
|
|
45
|
+
"@cat-factory/conformance": "0.14.1",
|
|
46
|
+
"@cat-factory/gates": "0.8.7"
|
|
47
47
|
},
|
|
48
48
|
"scripts": {
|
|
49
49
|
"build": "tsc -b tsconfig.build.json",
|