@zhivex-ai/core 1.18.0 → 1.19.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/README.md +4 -0
- package/dist/agent/approvals.d.ts +7 -0
- package/dist/agent/approvals.d.ts.map +1 -0
- package/dist/agent/approvals.js +97 -0
- package/dist/agent/approvals.js.map +1 -0
- package/dist/agent/cancellation.d.ts +4 -0
- package/dist/agent/cancellation.d.ts.map +1 -0
- package/dist/agent/cancellation.js +69 -0
- package/dist/agent/cancellation.js.map +1 -0
- package/dist/agent/common.d.ts +20 -0
- package/dist/agent/common.d.ts.map +1 -0
- package/dist/agent/common.js +150 -0
- package/dist/agent/common.js.map +1 -0
- package/dist/agent/compaction.d.ts +6 -0
- package/dist/agent/compaction.d.ts.map +1 -0
- package/dist/agent/compaction.js +156 -0
- package/dist/agent/compaction.js.map +1 -0
- package/dist/agent/context.d.ts +58 -0
- package/dist/agent/context.d.ts.map +1 -0
- package/dist/agent/context.js +267 -0
- package/dist/agent/context.js.map +1 -0
- package/dist/agent/definition.d.ts +4 -0
- package/dist/agent/definition.d.ts.map +1 -0
- package/dist/agent/definition.js +35 -0
- package/dist/agent/definition.js.map +1 -0
- package/dist/agent/execution.d.ts +14 -0
- package/dist/agent/execution.d.ts.map +1 -0
- package/dist/agent/execution.js +1062 -0
- package/dist/agent/execution.js.map +1 -0
- package/dist/agent/groups.d.ts +3 -0
- package/dist/agent/groups.d.ts.map +1 -0
- package/dist/agent/groups.js +130 -0
- package/dist/agent/groups.js.map +1 -0
- package/dist/agent/guardrails.d.ts +4 -0
- package/dist/agent/guardrails.d.ts.map +1 -0
- package/dist/agent/guardrails.js +29 -0
- package/dist/agent/guardrails.js.map +1 -0
- package/dist/agent/instance.d.ts +42 -0
- package/dist/agent/instance.d.ts.map +1 -0
- package/dist/agent/instance.js +82 -0
- package/dist/agent/instance.js.map +1 -0
- package/dist/agent/lifecycle.d.ts +31 -0
- package/dist/agent/lifecycle.d.ts.map +1 -0
- package/dist/agent/lifecycle.js +184 -0
- package/dist/agent/lifecycle.js.map +1 -0
- package/dist/agent/state.d.ts +6 -0
- package/dist/agent/state.d.ts.map +1 -0
- package/dist/agent/state.js +119 -0
- package/dist/agent/state.js.map +1 -0
- package/dist/agent/telemetry.d.ts +12 -0
- package/dist/agent/telemetry.d.ts.map +1 -0
- package/dist/agent/telemetry.js +176 -0
- package/dist/agent/telemetry.js.map +1 -0
- package/dist/agent/tool-execution.d.ts +6 -0
- package/dist/agent/tool-execution.d.ts.map +1 -0
- package/dist/agent/tool-execution.js +176 -0
- package/dist/agent/tool-execution.js.map +1 -0
- package/dist/agent-run-view.d.ts +9 -0
- package/dist/agent-run-view.d.ts.map +1 -0
- package/dist/agent-run-view.js +42 -0
- package/dist/agent-run-view.js.map +1 -0
- package/dist/agent-store/file.d.ts +11 -0
- package/dist/agent-store/file.d.ts.map +1 -0
- package/dist/agent-store/file.js +534 -0
- package/dist/agent-store/file.js.map +1 -0
- package/dist/agent-store/memory.d.ts +9 -0
- package/dist/agent-store/memory.d.ts.map +1 -0
- package/dist/agent-store/memory.js +198 -0
- package/dist/agent-store/memory.js.map +1 -0
- package/dist/agent-store/postgres.d.ts +4 -0
- package/dist/agent-store/postgres.d.ts.map +1 -0
- package/dist/agent-store/postgres.js +374 -0
- package/dist/agent-store/postgres.js.map +1 -0
- package/dist/agent-store/shared.d.ts +19 -0
- package/dist/agent-store/shared.d.ts.map +1 -0
- package/dist/agent-store/shared.js +137 -0
- package/dist/agent-store/shared.js.map +1 -0
- package/dist/agent-store/sqlite.d.ts +4 -0
- package/dist/agent-store/sqlite.d.ts.map +1 -0
- package/dist/agent-store/sqlite.js +362 -0
- package/dist/agent-store/sqlite.js.map +1 -0
- package/dist/agent-store.d.ts +5 -21
- package/dist/agent-store.d.ts.map +1 -1
- package/dist/agent-store.js +5 -1588
- package/dist/agent-store.js.map +1 -1
- package/dist/agent.d.ts +6 -57
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +6 -2631
- package/dist/agent.js.map +1 -1
- package/dist/agents-entry.d.ts +19 -0
- package/dist/agents-entry.d.ts.map +1 -0
- package/dist/agents-entry.js +14 -0
- package/dist/agents-entry.js.map +1 -0
- package/dist/artifact/file.d.ts +6 -0
- package/dist/artifact/file.d.ts.map +1 -0
- package/dist/artifact/file.js +380 -0
- package/dist/artifact/file.js.map +1 -0
- package/dist/artifact/memory.d.ts +3 -0
- package/dist/artifact/memory.d.ts.map +1 -0
- package/dist/artifact/memory.js +80 -0
- package/dist/artifact/memory.js.map +1 -0
- package/dist/artifact/postgres.d.ts +3 -0
- package/dist/artifact/postgres.d.ts.map +1 -0
- package/dist/artifact/postgres.js +283 -0
- package/dist/artifact/postgres.js.map +1 -0
- package/dist/artifact/shared.d.ts +208 -0
- package/dist/artifact/shared.d.ts.map +1 -0
- package/dist/artifact/shared.js +523 -0
- package/dist/artifact/shared.js.map +1 -0
- package/dist/artifact/sqlite.d.ts +3 -0
- package/dist/artifact/sqlite.d.ts.map +1 -0
- package/dist/artifact/sqlite.js +283 -0
- package/dist/artifact/sqlite.js.map +1 -0
- package/dist/artifact.d.ts +6 -186
- package/dist/artifact.d.ts.map +1 -1
- package/dist/artifact.js +6 -1536
- package/dist/artifact.js.map +1 -1
- package/dist/catalog-contracts.d.ts +52 -0
- package/dist/catalog-contracts.d.ts.map +1 -0
- package/dist/catalog-contracts.js +250 -0
- package/dist/catalog-contracts.js.map +1 -0
- package/dist/catalog.d.ts +3 -52
- package/dist/catalog.d.ts.map +1 -1
- package/dist/catalog.js +3 -249
- package/dist/catalog.js.map +1 -1
- package/dist/generate-cache-file.d.ts +11 -0
- package/dist/generate-cache-file.d.ts.map +1 -0
- package/dist/generate-cache-file.js +124 -0
- package/dist/generate-cache-file.js.map +1 -0
- package/dist/generate-text.d.ts +2 -5
- package/dist/generate-text.d.ts.map +1 -1
- package/dist/generate-text.js +3 -18
- package/dist/generate-text.js.map +1 -1
- package/dist/generation-entry.d.ts +6 -0
- package/dist/generation-entry.d.ts.map +1 -0
- package/dist/generation-entry.js +6 -0
- package/dist/generation-entry.js.map +1 -0
- package/dist/middleware-runtime.d.ts +35 -0
- package/dist/middleware-runtime.d.ts.map +1 -0
- package/dist/middleware-runtime.js +532 -0
- package/dist/middleware-runtime.js.map +1 -0
- package/dist/middleware.d.ts +3 -43
- package/dist/middleware.d.ts.map +1 -1
- package/dist/middleware.js +3 -653
- package/dist/middleware.js.map +1 -1
- package/dist/normalize-messages.d.ts +3 -0
- package/dist/normalize-messages.d.ts.map +1 -0
- package/dist/normalize-messages.js +16 -0
- package/dist/normalize-messages.js.map +1 -0
- package/dist/provider-entry.d.ts +17 -0
- package/dist/provider-entry.d.ts.map +1 -0
- package/dist/provider-entry.js +13 -0
- package/dist/provider-entry.js.map +1 -0
- package/dist/realtime.d.ts +2 -0
- package/dist/realtime.d.ts.map +1 -1
- package/dist/realtime.js +6 -0
- package/dist/realtime.js.map +1 -1
- package/dist/store-key.d.ts +3 -0
- package/dist/store-key.d.ts.map +1 -0
- package/dist/store-key.js +5 -0
- package/dist/store-key.js.map +1 -0
- package/dist/store-security.d.ts +1 -2
- package/dist/store-security.d.ts.map +1 -1
- package/dist/store-security.js +2 -4
- package/dist/store-security.js.map +1 -1
- package/dist/types/agent-state.d.ts +236 -0
- package/dist/types/agent-state.d.ts.map +1 -0
- package/dist/types/agent-state.js +2 -0
- package/dist/types/agent-state.js.map +1 -0
- package/dist/types/agents.d.ts +429 -0
- package/dist/types/agents.d.ts.map +1 -0
- package/dist/types/agents.js +2 -0
- package/dist/types/agents.js.map +1 -0
- package/dist/types/common.d.ts +179 -0
- package/dist/types/common.d.ts.map +1 -0
- package/dist/types/common.js +2 -0
- package/dist/types/common.js.map +1 -0
- package/dist/types/generation.d.ts +109 -0
- package/dist/types/generation.d.ts.map +1 -0
- package/dist/types/generation.js +2 -0
- package/dist/types/generation.js.map +1 -0
- package/dist/types/media-data.d.ts +65 -0
- package/dist/types/media-data.d.ts.map +1 -0
- package/dist/types/media-data.js +2 -0
- package/dist/types/media-data.js.map +1 -0
- package/dist/types/media.d.ts +141 -0
- package/dist/types/media.d.ts.map +1 -0
- package/dist/types/media.js +2 -0
- package/dist/types/media.js.map +1 -0
- package/dist/types/messages.d.ts +82 -0
- package/dist/types/messages.d.ts.map +1 -0
- package/dist/types/messages.js +2 -0
- package/dist/types/messages.js.map +1 -0
- package/dist/types/middleware.d.ts +130 -0
- package/dist/types/middleware.d.ts.map +1 -0
- package/dist/types/middleware.js +2 -0
- package/dist/types/middleware.js.map +1 -0
- package/dist/types/model-tools.d.ts +409 -0
- package/dist/types/model-tools.d.ts.map +1 -0
- package/dist/types/model-tools.js +2 -0
- package/dist/types/model-tools.js.map +1 -0
- package/dist/types/persistence.d.ts +168 -0
- package/dist/types/persistence.d.ts.map +1 -0
- package/dist/types/persistence.js +2 -0
- package/dist/types/persistence.js.map +1 -0
- package/dist/types/provider-resources.d.ts +336 -0
- package/dist/types/provider-resources.d.ts.map +1 -0
- package/dist/types/provider-resources.js +2 -0
- package/dist/types/provider-resources.js.map +1 -0
- package/dist/types/provider.d.ts +23 -0
- package/dist/types/provider.d.ts.map +1 -0
- package/dist/types/provider.js +2 -0
- package/dist/types/provider.js.map +1 -0
- package/dist/types/resource-options.d.ts +88 -0
- package/dist/types/resource-options.d.ts.map +1 -0
- package/dist/types/resource-options.js +2 -0
- package/dist/types/resource-options.js.map +1 -0
- package/dist/types/stream.d.ts +70 -0
- package/dist/types/stream.d.ts.map +1 -0
- package/dist/types/stream.js +2 -0
- package/dist/types/stream.js.map +1 -0
- package/dist/types/ui.d.ts +110 -0
- package/dist/types/ui.d.ts.map +1 -0
- package/dist/types/ui.js +2 -0
- package/dist/types/ui.js.map +1 -0
- package/dist/types.d.ts +16 -2480
- package/dist/types.d.ts.map +1 -1
- package/dist/ui.d.ts.map +1 -1
- package/dist/ui.js +2 -0
- package/dist/ui.js.map +1 -1
- package/dist/workflow-state-service/file.d.ts +5 -0
- package/dist/workflow-state-service/file.d.ts.map +1 -0
- package/dist/workflow-state-service/file.js +142 -0
- package/dist/workflow-state-service/file.js.map +1 -0
- package/dist/workflow-state-service/memory.d.ts +3 -0
- package/dist/workflow-state-service/memory.d.ts.map +1 -0
- package/dist/workflow-state-service/memory.js +27 -0
- package/dist/workflow-state-service/memory.js.map +1 -0
- package/dist/workflow-state-service/postgres.d.ts +4 -0
- package/dist/workflow-state-service/postgres.d.ts.map +1 -0
- package/dist/workflow-state-service/postgres.js +179 -0
- package/dist/workflow-state-service/postgres.js.map +1 -0
- package/dist/workflow-state-service/shared.d.ts +43 -0
- package/dist/workflow-state-service/shared.d.ts.map +1 -0
- package/dist/workflow-state-service/shared.js +107 -0
- package/dist/workflow-state-service/shared.js.map +1 -0
- package/dist/workflow-state-service/sqlite.d.ts +4 -0
- package/dist/workflow-state-service/sqlite.d.ts.map +1 -0
- package/dist/workflow-state-service/sqlite.js +183 -0
- package/dist/workflow-state-service/sqlite.js.map +1 -0
- package/dist/workflow-state-service.d.ts +6 -33
- package/dist/workflow-state-service.d.ts.map +1 -1
- package/dist/workflow-state-service.js +6 -626
- package/dist/workflow-state-service.js.map +1 -1
- package/package.json +17 -1
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { AgentMemoryContext, AgentRunLease, AgentRunLeaseOptions, AgentRunListOptions, AgentRunPage, AgentRunState, AgentRunSaveOptions, AgentStoreScope, AgentToolCallJournalEntry, AgentToolCallJournalSaveOptions, ModelMessage } from "../types.js";
|
|
2
|
+
export declare const cloneState: (state: AgentRunState) => AgentRunState;
|
|
3
|
+
export declare const cloneJournalEntry: (entry: AgentToolCallJournalEntry) => AgentToolCallJournalEntry;
|
|
4
|
+
export declare const scopePrefix: (scope?: AgentStoreScope) => string;
|
|
5
|
+
export declare const scopedKey: (scope: AgentStoreScope | undefined, value: string) => string;
|
|
6
|
+
export declare const defaultMemoryKey: (context: AgentMemoryContext) => string;
|
|
7
|
+
export declare const sameScope: (left: AgentStoreScope, right: AgentStoreScope) => boolean;
|
|
8
|
+
export declare const resolveScope: (configured: AgentStoreScope | undefined, operation: AgentStoreScope | undefined) => AgentStoreScope | undefined;
|
|
9
|
+
export declare const validateLeaseOptions: (options: AgentRunLeaseOptions) => void;
|
|
10
|
+
export declare const listStates: (states: Iterable<AgentRunState>, options?: AgentRunListOptions) => AgentRunPage;
|
|
11
|
+
export declare const assertJournalRevision: (current: AgentToolCallJournalEntry | undefined, expectedRevision: number | undefined) => void;
|
|
12
|
+
export declare const assertLeaseOwner: (lease: AgentRunLease | undefined, ownerId: string | undefined) => void;
|
|
13
|
+
export declare const nextJournalEntry: (entry: AgentToolCallJournalEntry, options?: AgentToolCallJournalSaveOptions) => AgentToolCallJournalEntry;
|
|
14
|
+
export declare const defaultMemoryMessages: (state: AgentRunState) => ModelMessage[];
|
|
15
|
+
export declare const validateIdentifier: (value: string, fieldName: string) => string;
|
|
16
|
+
export declare const getRecordField: (value: unknown, candidates: string[]) => unknown;
|
|
17
|
+
export declare const assertExpectedRevision: (current: AgentRunState | undefined, expectedRevision: number | undefined) => void;
|
|
18
|
+
export declare const nextStoredState: (state: AgentRunState, options?: AgentRunSaveOptions) => AgentRunState;
|
|
19
|
+
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/agent-store/shared.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,kBAAkB,EAClB,aAAa,EACb,oBAAoB,EACpB,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,yBAAyB,EACzB,+BAA+B,EAC/B,YAAY,EACb,MAAM,aAAa,CAAC;AAErB,eAAO,MAAM,UAAU,UAAW,aAAa,KAAG,aAC0B,CAAC;AAE7E,eAAO,MAAM,iBAAiB,UAAW,yBAAyB,KAAG,yBACL,CAAC;AAEjE,eAAO,MAAM,WAAW,WAAY,eAAe,KAAG,MAEhD,CAAC;AAEP,eAAO,MAAM,SAAS,UAAW,eAAe,GAAG,SAAS,SAAS,MAAM,KAAG,MAAyC,CAAC;AAExH,eAAO,MAAM,gBAAgB,YAAa,kBAAkB,WAE3C,CAAC;AAElB,eAAO,MAAM,SAAS,SAAU,eAAe,SAAS,eAAe,KAAG,OAC8B,CAAC;AAezG,eAAO,MAAM,YAAY,eAAgB,eAAe,GAAG,SAAS,aAAa,eAAe,GAAG,SAAS,KAAG,eAAe,GAAG,SAOhI,CAAC;AAYF,eAAO,MAAM,oBAAoB,YAAa,oBAAoB,KAAG,IAQpE,CAAC;AAkBF,eAAO,MAAM,UAAU,WAAY,QAAQ,CAAC,aAAa,CAAC,YAAW,mBAAmB,KAAQ,YAgB/F,CAAC;AAEF,eAAO,MAAM,qBAAqB,YACvB,yBAAyB,GAAG,SAAS,oBAC5B,MAAM,GAAG,SAAS,SAKrC,CAAC;AAEF,eAAO,MAAM,gBAAgB,UAAW,aAAa,GAAG,SAAS,WAAW,MAAM,GAAG,SAAS,SAI7F,CAAC;AAEF,eAAO,MAAM,gBAAgB,UACpB,yBAAyB,YACtB,+BAA+B,KACxC,yBAQF,CAAC;AAEF,eAAO,MAAM,qBAAqB,UAAW,aAAa,KAAG,YAAY,EAGxE,CAAC;AAEF,eAAO,MAAM,kBAAkB,UAAW,MAAM,aAAa,MAAM,KAAG,MAKrE,CAAC;AAEF,eAAO,MAAM,cAAc,UAAW,OAAO,cAAc,MAAM,EAAE,KAAG,OAarE,CAAC;AAEF,eAAO,MAAM,sBAAsB,YACxB,aAAa,GAAG,SAAS,oBAChB,MAAM,GAAG,SAAS,SAKrC,CAAC;AAEF,eAAO,MAAM,eAAe,UAAW,aAAa,YAAY,mBAAmB,KAAG,aAKrF,CAAC"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { normalizeAgentRunState } from "../agent-state.js";
|
|
2
|
+
import { ConflictError, ValidationError } from "../errors.js";
|
|
3
|
+
export const cloneState = (state) => JSON.parse(JSON.stringify(normalizeAgentRunState(state)));
|
|
4
|
+
export const cloneJournalEntry = (entry) => JSON.parse(JSON.stringify(entry));
|
|
5
|
+
export const scopePrefix = (scope) => scope
|
|
6
|
+
? `${encodeURIComponent(scope.namespace ?? "default")}:${encodeURIComponent(scope.tenantId)}:${encodeURIComponent(scope.userId ?? "*")}:`
|
|
7
|
+
: "";
|
|
8
|
+
export const scopedKey = (scope, value) => `${scopePrefix(scope)}${value}`;
|
|
9
|
+
export const defaultMemoryKey = (context) => context.scope
|
|
10
|
+
? scopedKey(context.scope, context.agentId ?? context.runId)
|
|
11
|
+
: context.runId;
|
|
12
|
+
export const sameScope = (left, right) => left.tenantId === right.tenantId && left.userId === right.userId && left.namespace === right.namespace;
|
|
13
|
+
const validateScope = (value) => {
|
|
14
|
+
if (!value)
|
|
15
|
+
return undefined;
|
|
16
|
+
if (typeof value.tenantId !== "string" || value.tenantId.length === 0) {
|
|
17
|
+
throw new ValidationError('Agent store scope "tenantId" must be a non-empty string.');
|
|
18
|
+
}
|
|
19
|
+
for (const field of ["userId", "namespace"]) {
|
|
20
|
+
if (value[field] !== undefined && (typeof value[field] !== "string" || value[field].length === 0)) {
|
|
21
|
+
throw new ValidationError(`Agent store scope "${field}" must be a non-empty string when provided.`);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return value;
|
|
25
|
+
};
|
|
26
|
+
export const resolveScope = (configured, operation) => {
|
|
27
|
+
configured = validateScope(configured);
|
|
28
|
+
operation = validateScope(operation);
|
|
29
|
+
if (configured && operation && !sameScope(configured, operation)) {
|
|
30
|
+
throw new ValidationError("The operation scope does not match the store scope.");
|
|
31
|
+
}
|
|
32
|
+
return operation ?? configured;
|
|
33
|
+
};
|
|
34
|
+
const identifierPattern = /^[A-Za-z_][A-Za-z0-9_]*$/;
|
|
35
|
+
const normalizeLimit = (value, fallback = 50) => {
|
|
36
|
+
if (value === undefined)
|
|
37
|
+
return fallback;
|
|
38
|
+
if (!Number.isSafeInteger(value) || value < 1 || value > 1_000) {
|
|
39
|
+
throw new ValidationError('The "limit" option must be an integer between 1 and 1000.');
|
|
40
|
+
}
|
|
41
|
+
return value;
|
|
42
|
+
};
|
|
43
|
+
export const validateLeaseOptions = (options) => {
|
|
44
|
+
if (!options.ownerId.trim())
|
|
45
|
+
throw new ValidationError('The lease "ownerId" must not be empty.');
|
|
46
|
+
if (!Number.isSafeInteger(options.ttlMs) || options.ttlMs < 1 || options.ttlMs > 86_400_000) {
|
|
47
|
+
throw new ValidationError('The lease "ttlMs" must be an integer between 1 and 86400000.');
|
|
48
|
+
}
|
|
49
|
+
if (options.now !== undefined && (!Number.isSafeInteger(options.now) || options.now < 0)) {
|
|
50
|
+
throw new ValidationError('The lease "now" value must be a non-negative integer.');
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
const encodeCursor = (state) => Buffer.from(JSON.stringify([state.updatedAt ?? state.startedAt ?? 0, state.runId]), "utf8").toString("base64url");
|
|
54
|
+
const decodeCursor = (cursor) => {
|
|
55
|
+
if (!cursor)
|
|
56
|
+
return undefined;
|
|
57
|
+
try {
|
|
58
|
+
const value = JSON.parse(Buffer.from(cursor, "base64url").toString("utf8"));
|
|
59
|
+
if (!Array.isArray(value) || value.length !== 2 || typeof value[0] !== "number" || typeof value[1] !== "string") {
|
|
60
|
+
throw new Error("invalid");
|
|
61
|
+
}
|
|
62
|
+
return [value[0], value[1]];
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
throw new ValidationError('The "cursor" option is invalid.');
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
export const listStates = (states, options = {}) => {
|
|
69
|
+
const limit = normalizeLimit(options.limit);
|
|
70
|
+
const cursor = decodeCursor(options.cursor);
|
|
71
|
+
const filtered = [...states]
|
|
72
|
+
.filter((state) => options.agentId === undefined || state.agentId === options.agentId)
|
|
73
|
+
.filter((state) => options.parentRunId === undefined || state.parentRunId === options.parentRunId)
|
|
74
|
+
.filter((state) => !options.statuses?.length || options.statuses.includes(state.status))
|
|
75
|
+
.filter((state) => options.updatedAfter === undefined || (state.updatedAt ?? 0) > options.updatedAfter)
|
|
76
|
+
.filter((state) => options.updatedBefore === undefined || (state.updatedAt ?? 0) < options.updatedBefore)
|
|
77
|
+
.sort((left, right) => (right.updatedAt ?? right.startedAt ?? 0) - (left.updatedAt ?? left.startedAt ?? 0) || right.runId.localeCompare(left.runId))
|
|
78
|
+
.filter((state) => !cursor || (state.updatedAt ?? state.startedAt ?? 0) < cursor[0] || ((state.updatedAt ?? state.startedAt ?? 0) === cursor[0] && state.runId < cursor[1]));
|
|
79
|
+
const page = filtered.slice(0, limit);
|
|
80
|
+
return {
|
|
81
|
+
items: page.map(cloneState),
|
|
82
|
+
...(filtered.length > limit && page.at(-1) ? { nextCursor: encodeCursor(page.at(-1)) } : {})
|
|
83
|
+
};
|
|
84
|
+
};
|
|
85
|
+
export const assertJournalRevision = (current, expectedRevision) => {
|
|
86
|
+
if (expectedRevision !== undefined && (!current || current.revision !== expectedRevision)) {
|
|
87
|
+
throw new ConflictError("Agent tool-call journal revision conflict.");
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
export const assertLeaseOwner = (lease, ownerId) => {
|
|
91
|
+
if (ownerId !== undefined && (!lease || lease.ownerId !== ownerId || lease.expiresAt <= Date.now())) {
|
|
92
|
+
throw new ConflictError("Reconciliation lost execution ownership.");
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
export const nextJournalEntry = (entry, options) => {
|
|
96
|
+
if (!entry.runId || !entry.toolCallId || !entry.toolName || !entry.idempotencyKey) {
|
|
97
|
+
throw new ValidationError("Tool-call journal entries require runId, toolCallId, toolName, and idempotencyKey.");
|
|
98
|
+
}
|
|
99
|
+
return cloneJournalEntry({
|
|
100
|
+
...entry,
|
|
101
|
+
revision: options?.expectedRevision === undefined ? entry.revision : options.expectedRevision + 1
|
|
102
|
+
});
|
|
103
|
+
};
|
|
104
|
+
export const defaultMemoryMessages = (state) => {
|
|
105
|
+
const lastAssistantMessage = [...state.messages].reverse().find((message) => message.role === "assistant");
|
|
106
|
+
return lastAssistantMessage ? [lastAssistantMessage] : [];
|
|
107
|
+
};
|
|
108
|
+
export const validateIdentifier = (value, fieldName) => {
|
|
109
|
+
if (!identifierPattern.test(value)) {
|
|
110
|
+
throw new ValidationError(`The "${fieldName}" option must match the SQL identifier pattern [A-Za-z_][A-Za-z0-9_]*.`);
|
|
111
|
+
}
|
|
112
|
+
return value;
|
|
113
|
+
};
|
|
114
|
+
export const getRecordField = (value, candidates) => {
|
|
115
|
+
if (!value || typeof value !== "object") {
|
|
116
|
+
return undefined;
|
|
117
|
+
}
|
|
118
|
+
const record = value;
|
|
119
|
+
for (const candidate of candidates) {
|
|
120
|
+
if (candidate in record) {
|
|
121
|
+
return record[candidate];
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
return undefined;
|
|
125
|
+
};
|
|
126
|
+
export const assertExpectedRevision = (current, expectedRevision) => {
|
|
127
|
+
if (expectedRevision !== undefined && (current?.revision ?? 0) !== expectedRevision) {
|
|
128
|
+
throw new ConflictError("AgentRunState revision conflict.");
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
export const nextStoredState = (state, options) => {
|
|
132
|
+
const normalized = normalizeAgentRunState(state);
|
|
133
|
+
return options?.expectedRevision === undefined
|
|
134
|
+
? normalized
|
|
135
|
+
: { ...normalized, revision: options.expectedRevision + 1 };
|
|
136
|
+
};
|
|
137
|
+
//# sourceMappingURL=shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/agent-store/shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { AgentMemoryStore, AgentRunStore, SqliteAgentMemoryStoreOptions, SqliteAgentRunStoreOptions } from "../types.js";
|
|
2
|
+
export declare const createSqliteAgentRunStore: (options: SqliteAgentRunStoreOptions) => AgentRunStore;
|
|
3
|
+
export declare const createSqliteAgentMemoryStore: (options: SqliteAgentMemoryStoreOptions) => AgentMemoryStore;
|
|
4
|
+
//# sourceMappingURL=sqlite.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/agent-store/sqlite.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,gBAAgB,EAGhB,aAAa,EAIb,6BAA6B,EAC7B,0BAA0B,EAG3B,MAAM,aAAa,CAAC;AAoCrB,eAAO,MAAM,yBAAyB,YAAa,0BAA0B,KAAG,aA4U/E,CAAC;AAEF,eAAO,MAAM,4BAA4B,YAAa,6BAA6B,KAAG,gBAoCrF,CAAC"}
|
|
@@ -0,0 +1,362 @@
|
|
|
1
|
+
import { normalizeAgentRunState } from "../agent-state.js";
|
|
2
|
+
import { ConflictError, ValidationError } from "../errors.js";
|
|
3
|
+
import { validateIdentifier, scopedKey, resolveScope, getRecordField, assertExpectedRevision, nextStoredState, scopePrefix, listStates, validateLeaseOptions, assertJournalRevision, nextJournalEntry, defaultMemoryKey, defaultMemoryMessages } from "./shared.js";
|
|
4
|
+
const prepareSqliteStatement = (db, sql) => {
|
|
5
|
+
if (typeof db.prepare === "function") {
|
|
6
|
+
return db.prepare(sql);
|
|
7
|
+
}
|
|
8
|
+
if (typeof db.query === "function") {
|
|
9
|
+
return db.query(sql);
|
|
10
|
+
}
|
|
11
|
+
throw new ValidationError('The "db" option must expose either a "prepare()" or "query()" method.');
|
|
12
|
+
};
|
|
13
|
+
const initializeSqliteTable = (db, sql) => {
|
|
14
|
+
db.exec(sql);
|
|
15
|
+
};
|
|
16
|
+
export const createSqliteAgentRunStore = (options) => {
|
|
17
|
+
const tableName = validateIdentifier(options.tableName ?? "zhivex_agent_runs", "tableName");
|
|
18
|
+
const idempotencyTableName = `${tableName}_idempotency`;
|
|
19
|
+
const parentTableName = `${tableName}_parents`;
|
|
20
|
+
const leaseTableName = `${tableName}_leases`;
|
|
21
|
+
const journalTableName = `${tableName}_tool_journal`;
|
|
22
|
+
const dbKey = (value, scope) => scopedKey(resolveScope(options.scope, scope), value);
|
|
23
|
+
initializeSqliteTable(options.db, `CREATE TABLE IF NOT EXISTS ${tableName} (
|
|
24
|
+
run_id TEXT PRIMARY KEY,
|
|
25
|
+
state_json TEXT NOT NULL,
|
|
26
|
+
updated_at_ms INTEGER NOT NULL
|
|
27
|
+
)`);
|
|
28
|
+
initializeSqliteTable(options.db, `CREATE INDEX IF NOT EXISTS ${tableName}_updated_idx ON ${tableName} (updated_at_ms, run_id)`);
|
|
29
|
+
initializeSqliteTable(options.db, `CREATE TABLE IF NOT EXISTS ${leaseTableName} (
|
|
30
|
+
run_key TEXT PRIMARY KEY,
|
|
31
|
+
run_id TEXT NOT NULL,
|
|
32
|
+
owner_id TEXT NOT NULL,
|
|
33
|
+
expires_at_ms INTEGER NOT NULL
|
|
34
|
+
)`);
|
|
35
|
+
initializeSqliteTable(options.db, `CREATE INDEX IF NOT EXISTS ${leaseTableName}_expiry_idx ON ${leaseTableName} (expires_at_ms)`);
|
|
36
|
+
initializeSqliteTable(options.db, `CREATE TABLE IF NOT EXISTS ${journalTableName} (
|
|
37
|
+
run_key TEXT NOT NULL,
|
|
38
|
+
tool_call_id TEXT NOT NULL,
|
|
39
|
+
entry_json TEXT NOT NULL,
|
|
40
|
+
revision INTEGER NOT NULL,
|
|
41
|
+
updated_at_ms INTEGER NOT NULL,
|
|
42
|
+
PRIMARY KEY (run_key, tool_call_id)
|
|
43
|
+
)`);
|
|
44
|
+
initializeSqliteTable(options.db, `CREATE INDEX IF NOT EXISTS ${journalTableName}_run_idx ON ${journalTableName} (run_key, updated_at_ms)`);
|
|
45
|
+
initializeSqliteTable(options.db, `CREATE TABLE IF NOT EXISTS ${idempotencyTableName} (
|
|
46
|
+
idempotency_key TEXT PRIMARY KEY,
|
|
47
|
+
run_id TEXT NOT NULL,
|
|
48
|
+
updated_at_ms INTEGER NOT NULL
|
|
49
|
+
)`);
|
|
50
|
+
initializeSqliteTable(options.db, `CREATE TABLE IF NOT EXISTS ${parentTableName} (
|
|
51
|
+
run_id TEXT PRIMARY KEY,
|
|
52
|
+
parent_run_id TEXT NOT NULL,
|
|
53
|
+
updated_at_ms INTEGER NOT NULL
|
|
54
|
+
)`);
|
|
55
|
+
initializeSqliteTable(options.db, `CREATE INDEX IF NOT EXISTS ${parentTableName}_parent_idx ON ${parentTableName} (parent_run_id, updated_at_ms)`);
|
|
56
|
+
const loadStatement = prepareSqliteStatement(options.db, `SELECT state_json FROM ${tableName} WHERE run_id = ?`);
|
|
57
|
+
const saveStatement = prepareSqliteStatement(options.db, `
|
|
58
|
+
INSERT INTO ${tableName} (run_id, state_json, updated_at_ms)
|
|
59
|
+
VALUES (?, ?, ?)
|
|
60
|
+
ON CONFLICT(run_id) DO UPDATE SET
|
|
61
|
+
state_json = excluded.state_json,
|
|
62
|
+
updated_at_ms = excluded.updated_at_ms
|
|
63
|
+
`);
|
|
64
|
+
const deleteStatement = prepareSqliteStatement(options.db, `DELETE FROM ${tableName} WHERE run_id = ?`);
|
|
65
|
+
const findIdempotencyStatement = prepareSqliteStatement(options.db, `SELECT runs.state_json
|
|
66
|
+
FROM ${tableName} runs
|
|
67
|
+
INNER JOIN ${idempotencyTableName} keys ON keys.run_id = runs.run_id
|
|
68
|
+
WHERE keys.idempotency_key = ?`);
|
|
69
|
+
const saveIdempotencyStatement = prepareSqliteStatement(options.db, `
|
|
70
|
+
INSERT INTO ${idempotencyTableName} (idempotency_key, run_id, updated_at_ms)
|
|
71
|
+
VALUES (?, ?, ?)
|
|
72
|
+
ON CONFLICT(idempotency_key) DO NOTHING
|
|
73
|
+
`);
|
|
74
|
+
const deleteIdempotencyStatement = prepareSqliteStatement(options.db, `DELETE FROM ${idempotencyTableName} WHERE run_id = ?`);
|
|
75
|
+
const findParentStatement = prepareSqliteStatement(options.db, `SELECT runs.state_json
|
|
76
|
+
FROM ${tableName} runs
|
|
77
|
+
INNER JOIN ${parentTableName} parents ON parents.run_id = runs.run_id
|
|
78
|
+
WHERE parents.parent_run_id = ?`);
|
|
79
|
+
const saveParentStatement = prepareSqliteStatement(options.db, `
|
|
80
|
+
INSERT INTO ${parentTableName} (run_id, parent_run_id, updated_at_ms)
|
|
81
|
+
VALUES (?, ?, ?)
|
|
82
|
+
ON CONFLICT(run_id) DO UPDATE SET
|
|
83
|
+
parent_run_id = excluded.parent_run_id,
|
|
84
|
+
updated_at_ms = excluded.updated_at_ms
|
|
85
|
+
`);
|
|
86
|
+
const deleteParentStatement = prepareSqliteStatement(options.db, `DELETE FROM ${parentTableName} WHERE run_id = ?`);
|
|
87
|
+
const listStatement = prepareSqliteStatement(options.db, `SELECT state_json FROM ${tableName}`);
|
|
88
|
+
const loadLeaseStatement = prepareSqliteStatement(options.db, `SELECT owner_id, expires_at_ms FROM ${leaseTableName} WHERE run_key = ?`);
|
|
89
|
+
const saveLeaseStatement = prepareSqliteStatement(options.db, `INSERT INTO ${leaseTableName} (run_key, run_id, owner_id, expires_at_ms) VALUES (?, ?, ?, ?) ON CONFLICT(run_key) DO UPDATE SET owner_id = excluded.owner_id, expires_at_ms = excluded.expires_at_ms`);
|
|
90
|
+
const deleteLeaseStatement = prepareSqliteStatement(options.db, `DELETE FROM ${leaseTableName} WHERE run_key = ? AND owner_id = ?`);
|
|
91
|
+
const deleteRunLeaseStatement = prepareSqliteStatement(options.db, `DELETE FROM ${leaseTableName} WHERE run_key = ?`);
|
|
92
|
+
const deleteRunJournalStatement = prepareSqliteStatement(options.db, `DELETE FROM ${journalTableName} WHERE run_key = ?`);
|
|
93
|
+
const loadJournalStatement = prepareSqliteStatement(options.db, `SELECT entry_json FROM ${journalTableName} WHERE run_key = ? AND tool_call_id = ?`);
|
|
94
|
+
const listJournalStatement = prepareSqliteStatement(options.db, `SELECT entry_json FROM ${journalTableName} WHERE run_key = ? ORDER BY updated_at_ms, tool_call_id`);
|
|
95
|
+
const insertJournalStatement = prepareSqliteStatement(options.db, `INSERT INTO ${journalTableName} (run_key, tool_call_id, entry_json, revision, updated_at_ms) VALUES (?, ?, ?, ?, ?) ON CONFLICT(run_key, tool_call_id) DO NOTHING`);
|
|
96
|
+
const saveJournalStatement = prepareSqliteStatement(options.db, `INSERT INTO ${journalTableName} (run_key, tool_call_id, entry_json, revision, updated_at_ms) VALUES (?, ?, ?, ?, ?) ON CONFLICT(run_key, tool_call_id) DO UPDATE SET entry_json = excluded.entry_json, revision = excluded.revision, updated_at_ms = excluded.updated_at_ms`);
|
|
97
|
+
return {
|
|
98
|
+
load(runId, scope) {
|
|
99
|
+
const row = loadStatement.get([dbKey(runId, scope)]);
|
|
100
|
+
const stateJson = getRecordField(row, ["state_json", "stateJson"]);
|
|
101
|
+
return typeof stateJson === "string" ? normalizeAgentRunState(JSON.parse(stateJson)) : undefined;
|
|
102
|
+
},
|
|
103
|
+
findByIdempotencyKey(idempotencyKey, scope) {
|
|
104
|
+
const row = findIdempotencyStatement.get([dbKey(idempotencyKey, scope)]);
|
|
105
|
+
const stateJson = getRecordField(row, ["state_json", "stateJson"]);
|
|
106
|
+
return typeof stateJson === "string" ? normalizeAgentRunState(JSON.parse(stateJson)) : undefined;
|
|
107
|
+
},
|
|
108
|
+
findByParentRunId(parentRunId, scope) {
|
|
109
|
+
const rows = findParentStatement.all?.([dbKey(parentRunId, scope)]);
|
|
110
|
+
if (Array.isArray(rows)) {
|
|
111
|
+
return rows.flatMap((row) => {
|
|
112
|
+
const stateJson = getRecordField(row, ["state_json", "stateJson"]);
|
|
113
|
+
return typeof stateJson === "string" ? [normalizeAgentRunState(JSON.parse(stateJson))] : [];
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
const row = findParentStatement.get([dbKey(parentRunId, scope)]);
|
|
117
|
+
const stateJson = getRecordField(row, ["state_json", "stateJson"]);
|
|
118
|
+
return typeof stateJson === "string" ? [normalizeAgentRunState(JSON.parse(stateJson))] : [];
|
|
119
|
+
},
|
|
120
|
+
claimIdempotencyKey(state) {
|
|
121
|
+
options.db.exec("BEGIN IMMEDIATE");
|
|
122
|
+
try {
|
|
123
|
+
const scope = resolveScope(options.scope, state.scope);
|
|
124
|
+
const existingRow = findIdempotencyStatement.get([dbKey(state.idempotencyKey, scope)]);
|
|
125
|
+
const existingJson = getRecordField(existingRow, ["state_json", "stateJson"]);
|
|
126
|
+
if (typeof existingJson === "string") {
|
|
127
|
+
options.db.exec("COMMIT");
|
|
128
|
+
return { claimed: false, state: normalizeAgentRunState(JSON.parse(existingJson)) };
|
|
129
|
+
}
|
|
130
|
+
const normalized = normalizeAgentRunState({ ...state, ...(scope ? { scope } : {}) });
|
|
131
|
+
const updatedAt = Date.now();
|
|
132
|
+
saveStatement.run([dbKey(normalized.runId, scope), JSON.stringify(normalized), updatedAt]);
|
|
133
|
+
saveIdempotencyStatement.run([dbKey(state.idempotencyKey, scope), dbKey(normalized.runId, scope), updatedAt]);
|
|
134
|
+
if (normalized.parentRunId) {
|
|
135
|
+
saveParentStatement.run([dbKey(normalized.runId, scope), dbKey(normalized.parentRunId, scope), updatedAt]);
|
|
136
|
+
}
|
|
137
|
+
options.db.exec("COMMIT");
|
|
138
|
+
return { claimed: true, state: normalized };
|
|
139
|
+
}
|
|
140
|
+
catch (error) {
|
|
141
|
+
options.db.exec("ROLLBACK");
|
|
142
|
+
throw error;
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
save(state, saveOptions) {
|
|
146
|
+
options.db.exec("BEGIN IMMEDIATE");
|
|
147
|
+
try {
|
|
148
|
+
const scope = resolveScope(options.scope, state.scope);
|
|
149
|
+
const currentRow = loadStatement.get([dbKey(state.runId, scope)]);
|
|
150
|
+
const currentJson = getRecordField(currentRow, ["state_json", "stateJson"]);
|
|
151
|
+
const current = typeof currentJson === "string"
|
|
152
|
+
? normalizeAgentRunState(JSON.parse(currentJson))
|
|
153
|
+
: undefined;
|
|
154
|
+
assertExpectedRevision(current, saveOptions?.expectedRevision);
|
|
155
|
+
const normalized = nextStoredState(state, saveOptions);
|
|
156
|
+
if (normalized.idempotencyKey) {
|
|
157
|
+
const ownerRow = findIdempotencyStatement.get([dbKey(normalized.idempotencyKey, scope)]);
|
|
158
|
+
const ownerJson = getRecordField(ownerRow, ["state_json", "stateJson"]);
|
|
159
|
+
const owner = typeof ownerJson === "string"
|
|
160
|
+
? normalizeAgentRunState(JSON.parse(ownerJson))
|
|
161
|
+
: undefined;
|
|
162
|
+
if (owner && owner.runId !== normalized.runId) {
|
|
163
|
+
throw new ConflictError("AgentRunState idempotency key conflict.");
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
const updatedAt = Date.now();
|
|
167
|
+
const stored = { ...normalized, ...(scope ? { scope } : {}) };
|
|
168
|
+
saveStatement.run([dbKey(normalized.runId, scope), JSON.stringify(stored), updatedAt]);
|
|
169
|
+
if (normalized.idempotencyKey) {
|
|
170
|
+
saveIdempotencyStatement.run([dbKey(normalized.idempotencyKey, scope), dbKey(normalized.runId, scope), updatedAt]);
|
|
171
|
+
}
|
|
172
|
+
deleteParentStatement.run([dbKey(normalized.runId, scope)]);
|
|
173
|
+
if (normalized.parentRunId) {
|
|
174
|
+
saveParentStatement.run([dbKey(normalized.runId, scope), dbKey(normalized.parentRunId, scope), updatedAt]);
|
|
175
|
+
}
|
|
176
|
+
options.db.exec("COMMIT");
|
|
177
|
+
}
|
|
178
|
+
catch (error) {
|
|
179
|
+
options.db.exec("ROLLBACK");
|
|
180
|
+
throw error;
|
|
181
|
+
}
|
|
182
|
+
},
|
|
183
|
+
delete(runId, scope) {
|
|
184
|
+
const key = dbKey(runId, scope);
|
|
185
|
+
options.db.exec("BEGIN IMMEDIATE");
|
|
186
|
+
try {
|
|
187
|
+
deleteStatement.run([key]);
|
|
188
|
+
deleteIdempotencyStatement.run([key]);
|
|
189
|
+
deleteParentStatement.run([key]);
|
|
190
|
+
deleteRunLeaseStatement.run([key]);
|
|
191
|
+
deleteRunJournalStatement.run([key]);
|
|
192
|
+
options.db.exec("COMMIT");
|
|
193
|
+
}
|
|
194
|
+
catch (error) {
|
|
195
|
+
options.db.exec("ROLLBACK");
|
|
196
|
+
throw error;
|
|
197
|
+
}
|
|
198
|
+
},
|
|
199
|
+
list(listOptions, scope) {
|
|
200
|
+
const rows = listStatement.all?.([]) ?? [];
|
|
201
|
+
const prefix = scopePrefix(resolveScope(options.scope, scope));
|
|
202
|
+
const states = rows.flatMap((row) => {
|
|
203
|
+
const value = getRecordField(row, ["state_json", "stateJson"]);
|
|
204
|
+
if (typeof value !== "string")
|
|
205
|
+
return [];
|
|
206
|
+
const state = normalizeAgentRunState(JSON.parse(value));
|
|
207
|
+
return scopedKey(state.scope, state.runId).startsWith(prefix) ? [state] : [];
|
|
208
|
+
});
|
|
209
|
+
return listStates(states, listOptions);
|
|
210
|
+
},
|
|
211
|
+
deleteExpired(retention, scope) {
|
|
212
|
+
const page = this.list?.({ statuses: retention.statuses, updatedBefore: retention.before, limit: retention.limit ?? 1_000 }, scope);
|
|
213
|
+
for (const state of page.items)
|
|
214
|
+
this.delete?.(state.runId, state.scope);
|
|
215
|
+
return page.items.length;
|
|
216
|
+
},
|
|
217
|
+
acquireLease(runId, leaseOptions, scope) {
|
|
218
|
+
validateLeaseOptions(leaseOptions);
|
|
219
|
+
const now = leaseOptions.now ?? Date.now();
|
|
220
|
+
const key = dbKey(runId, scope);
|
|
221
|
+
options.db.exec("BEGIN IMMEDIATE");
|
|
222
|
+
try {
|
|
223
|
+
const row = loadLeaseStatement.get([key]);
|
|
224
|
+
const owner = getRecordField(row, ["owner_id", "ownerId"]);
|
|
225
|
+
const expiry = getRecordField(row, ["expires_at_ms", "expiresAtMs"]);
|
|
226
|
+
if (typeof owner === "string" && owner !== leaseOptions.ownerId && typeof expiry === "number" && expiry > now) {
|
|
227
|
+
options.db.exec("COMMIT");
|
|
228
|
+
return undefined;
|
|
229
|
+
}
|
|
230
|
+
const lease = { runId, ownerId: leaseOptions.ownerId, expiresAt: now + leaseOptions.ttlMs };
|
|
231
|
+
saveLeaseStatement.run([key, runId, lease.ownerId, lease.expiresAt]);
|
|
232
|
+
options.db.exec("COMMIT");
|
|
233
|
+
return lease;
|
|
234
|
+
}
|
|
235
|
+
catch (error) {
|
|
236
|
+
options.db.exec("ROLLBACK");
|
|
237
|
+
throw error;
|
|
238
|
+
}
|
|
239
|
+
},
|
|
240
|
+
renewLease(runId, leaseOptions, scope) {
|
|
241
|
+
validateLeaseOptions(leaseOptions);
|
|
242
|
+
const now = leaseOptions.now ?? Date.now();
|
|
243
|
+
const key = dbKey(runId, scope);
|
|
244
|
+
options.db.exec("BEGIN IMMEDIATE");
|
|
245
|
+
try {
|
|
246
|
+
const row = loadLeaseStatement.get([key]);
|
|
247
|
+
const owner = getRecordField(row, ["owner_id", "ownerId"]);
|
|
248
|
+
const expiry = getRecordField(row, ["expires_at_ms", "expiresAtMs"]);
|
|
249
|
+
if (owner !== leaseOptions.ownerId || typeof expiry !== "number" || expiry <= now) {
|
|
250
|
+
options.db.exec("COMMIT");
|
|
251
|
+
return undefined;
|
|
252
|
+
}
|
|
253
|
+
const lease = { runId, ownerId: leaseOptions.ownerId, expiresAt: now + leaseOptions.ttlMs };
|
|
254
|
+
saveLeaseStatement.run([key, runId, lease.ownerId, lease.expiresAt]);
|
|
255
|
+
options.db.exec("COMMIT");
|
|
256
|
+
return lease;
|
|
257
|
+
}
|
|
258
|
+
catch (error) {
|
|
259
|
+
options.db.exec("ROLLBACK");
|
|
260
|
+
throw error;
|
|
261
|
+
}
|
|
262
|
+
},
|
|
263
|
+
releaseLease(runId, ownerId, scope) {
|
|
264
|
+
const key = dbKey(runId, scope);
|
|
265
|
+
options.db.exec("BEGIN IMMEDIATE");
|
|
266
|
+
try {
|
|
267
|
+
const row = loadLeaseStatement.get([key]);
|
|
268
|
+
if (getRecordField(row, ["owner_id", "ownerId"]) !== ownerId) {
|
|
269
|
+
options.db.exec("COMMIT");
|
|
270
|
+
return false;
|
|
271
|
+
}
|
|
272
|
+
deleteLeaseStatement.run([key, ownerId]);
|
|
273
|
+
options.db.exec("COMMIT");
|
|
274
|
+
return true;
|
|
275
|
+
}
|
|
276
|
+
catch (error) {
|
|
277
|
+
options.db.exec("ROLLBACK");
|
|
278
|
+
throw error;
|
|
279
|
+
}
|
|
280
|
+
},
|
|
281
|
+
loadToolCall(runId, toolCallId, scope) {
|
|
282
|
+
const row = loadJournalStatement.get([dbKey(runId, scope), toolCallId]);
|
|
283
|
+
const value = getRecordField(row, ["entry_json", "entryJson"]);
|
|
284
|
+
return typeof value === "string" ? JSON.parse(value) : undefined;
|
|
285
|
+
},
|
|
286
|
+
loadToolExecution(runId, toolCallId, scope) {
|
|
287
|
+
return this.loadToolCall?.(runId, toolCallId, scope);
|
|
288
|
+
},
|
|
289
|
+
listToolCalls(runId, scope) {
|
|
290
|
+
const rows = listJournalStatement.all?.([dbKey(runId, scope)]) ?? [];
|
|
291
|
+
return rows.flatMap((row) => {
|
|
292
|
+
const value = getRecordField(row, ["entry_json", "entryJson"]);
|
|
293
|
+
return typeof value === "string" ? [JSON.parse(value)] : [];
|
|
294
|
+
});
|
|
295
|
+
},
|
|
296
|
+
saveToolCall(entry, journalOptions) {
|
|
297
|
+
options.db.exec("BEGIN IMMEDIATE");
|
|
298
|
+
try {
|
|
299
|
+
const current = this.loadToolCall?.(entry.runId, entry.toolCallId, entry.scope);
|
|
300
|
+
assertJournalRevision(current, journalOptions?.expectedRevision);
|
|
301
|
+
const next = nextJournalEntry(entry, journalOptions);
|
|
302
|
+
saveJournalStatement.run([dbKey(entry.runId, entry.scope), entry.toolCallId, JSON.stringify(next), next.revision, next.updatedAt]);
|
|
303
|
+
options.db.exec("COMMIT");
|
|
304
|
+
return next;
|
|
305
|
+
}
|
|
306
|
+
catch (error) {
|
|
307
|
+
options.db.exec("ROLLBACK");
|
|
308
|
+
throw error;
|
|
309
|
+
}
|
|
310
|
+
},
|
|
311
|
+
claimToolExecution(entry) {
|
|
312
|
+
options.db.exec("BEGIN IMMEDIATE");
|
|
313
|
+
try {
|
|
314
|
+
const current = this.loadToolCall?.(entry.runId, entry.toolCallId, entry.scope);
|
|
315
|
+
if (current) {
|
|
316
|
+
options.db.exec("COMMIT");
|
|
317
|
+
return { claimed: false, entry: current };
|
|
318
|
+
}
|
|
319
|
+
const next = nextJournalEntry({ ...entry, status: "running", revision: 0 });
|
|
320
|
+
insertJournalStatement.run([dbKey(entry.runId, entry.scope), entry.toolCallId, JSON.stringify(next), 0, next.updatedAt]);
|
|
321
|
+
options.db.exec("COMMIT");
|
|
322
|
+
return { claimed: true, entry: next };
|
|
323
|
+
}
|
|
324
|
+
catch (error) {
|
|
325
|
+
options.db.exec("ROLLBACK");
|
|
326
|
+
throw error;
|
|
327
|
+
}
|
|
328
|
+
},
|
|
329
|
+
completeToolExecution(entry, journalOptions) {
|
|
330
|
+
return this.saveToolCall?.({ ...entry, status: entry.status === "failed" ? "failed" : "completed" }, journalOptions);
|
|
331
|
+
}
|
|
332
|
+
};
|
|
333
|
+
};
|
|
334
|
+
export const createSqliteAgentMemoryStore = (options) => {
|
|
335
|
+
const tableName = validateIdentifier(options.tableName ?? "zhivex_agent_memory", "tableName");
|
|
336
|
+
const keyFor = (context) => (options.key ?? defaultMemoryKey)({ ...context, scope: resolveScope(options.scope, context.scope) });
|
|
337
|
+
const selectMessages = options.selectMessages ?? defaultMemoryMessages;
|
|
338
|
+
initializeSqliteTable(options.db, `CREATE TABLE IF NOT EXISTS ${tableName} (
|
|
339
|
+
memory_key TEXT PRIMARY KEY,
|
|
340
|
+
messages_json TEXT NOT NULL,
|
|
341
|
+
updated_at_ms INTEGER NOT NULL
|
|
342
|
+
)`);
|
|
343
|
+
const loadStatement = prepareSqliteStatement(options.db, `SELECT messages_json FROM ${tableName} WHERE memory_key = ?`);
|
|
344
|
+
const saveStatement = prepareSqliteStatement(options.db, `
|
|
345
|
+
INSERT INTO ${tableName} (memory_key, messages_json, updated_at_ms)
|
|
346
|
+
VALUES (?, ?, ?)
|
|
347
|
+
ON CONFLICT(memory_key) DO UPDATE SET
|
|
348
|
+
messages_json = excluded.messages_json,
|
|
349
|
+
updated_at_ms = excluded.updated_at_ms
|
|
350
|
+
`);
|
|
351
|
+
return {
|
|
352
|
+
load(context) {
|
|
353
|
+
const row = loadStatement.get([keyFor(context)]);
|
|
354
|
+
const messagesJson = getRecordField(row, ["messages_json", "messagesJson"]);
|
|
355
|
+
return typeof messagesJson === "string" ? JSON.parse(messagesJson) : [];
|
|
356
|
+
},
|
|
357
|
+
save(context) {
|
|
358
|
+
saveStatement.run([keyFor(context), JSON.stringify(selectMessages(context.state)), Date.now()]);
|
|
359
|
+
}
|
|
360
|
+
};
|
|
361
|
+
};
|
|
362
|
+
//# sourceMappingURL=sqlite.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/agent-store/sqlite.ts"],"names":[],"mappings":"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"}
|
package/dist/agent-store.d.ts
CHANGED
|
@@ -1,22 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
3
|
-
export
|
|
4
|
-
|
|
5
|
-
}
|
|
6
|
-
export declare const createInMemoryAgentMemoryStore: (options?: {
|
|
7
|
-
key?: (context: AgentMemoryContext) => string;
|
|
8
|
-
initialMessages?: Record<string, ModelMessage[]>;
|
|
9
|
-
selectMessages?: (state: AgentRunState) => ModelMessage[];
|
|
10
|
-
scope?: AgentStoreScope;
|
|
11
|
-
}) => AgentMemoryStore;
|
|
12
|
-
export declare const createFileAgentMemoryStore: (options: {
|
|
13
|
-
directory: string;
|
|
14
|
-
key?: (context: AgentMemoryContext) => string;
|
|
15
|
-
selectMessages?: (state: AgentRunState) => ModelMessage[];
|
|
16
|
-
scope?: AgentStoreScope;
|
|
17
|
-
}) => AgentMemoryStore;
|
|
18
|
-
export declare const createSqliteAgentRunStore: (options: SqliteAgentRunStoreOptions) => AgentRunStore;
|
|
19
|
-
export declare const createSqliteAgentMemoryStore: (options: SqliteAgentMemoryStoreOptions) => AgentMemoryStore;
|
|
20
|
-
export declare const createPostgresAgentRunStore: (options: PostgresAgentRunStoreOptions) => AgentRunStore;
|
|
21
|
-
export declare const createPostgresAgentMemoryStore: (options: PostgresAgentMemoryStoreOptions) => AgentMemoryStore;
|
|
1
|
+
/** Compatibility facade. Backend implementations live in dedicated internal modules. */
|
|
2
|
+
export { createInMemoryAgentRunStore, createInMemoryAgentMemoryStore } from "./agent-store/memory.js";
|
|
3
|
+
export { createFileAgentRunStore, createFileAgentMemoryStore } from "./agent-store/file.js";
|
|
4
|
+
export { createSqliteAgentRunStore, createSqliteAgentMemoryStore } from "./agent-store/sqlite.js";
|
|
5
|
+
export { createPostgresAgentRunStore, createPostgresAgentMemoryStore } from "./agent-store/postgres.js";
|
|
22
6
|
//# sourceMappingURL=agent-store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-store.d.ts","sourceRoot":"","sources":["../src/agent-store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agent-store.d.ts","sourceRoot":"","sources":["../src/agent-store.ts"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,OAAO,EACL,2BAA2B,EAC3B,8BAA8B,EAC/B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,yBAAyB,EACzB,4BAA4B,EAC7B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,2BAA2B,EAC3B,8BAA8B,EAC/B,MAAM,2BAA2B,CAAC"}
|