@intentface/latch-core 0.9.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/LICENSE +21 -0
- package/README.md +45 -0
- package/dist/agent.d.ts +200 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +9 -0
- package/dist/agent.js.map +1 -0
- package/dist/compaction.d.ts +33 -0
- package/dist/compaction.d.ts.map +1 -0
- package/dist/compaction.js +104 -0
- package/dist/compaction.js.map +1 -0
- package/dist/connections.d.ts +16 -0
- package/dist/connections.d.ts.map +1 -0
- package/dist/connections.js +41 -0
- package/dist/connections.js.map +1 -0
- package/dist/context.d.ts +41 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +25 -0
- package/dist/context.js.map +1 -0
- package/dist/current-date.d.ts +12 -0
- package/dist/current-date.d.ts.map +1 -0
- package/dist/current-date.js +25 -0
- package/dist/current-date.js.map +1 -0
- package/dist/extensions.d.ts +333 -0
- package/dist/extensions.d.ts.map +1 -0
- package/dist/extensions.js +569 -0
- package/dist/extensions.js.map +1 -0
- package/dist/harness/index.d.ts +17 -0
- package/dist/harness/index.d.ts.map +1 -0
- package/dist/harness/index.js +15 -0
- package/dist/harness/index.js.map +1 -0
- package/dist/harness/tools.d.ts +88 -0
- package/dist/harness/tools.d.ts.map +1 -0
- package/dist/harness/tools.js +296 -0
- package/dist/harness/tools.js.map +1 -0
- package/dist/harness/web-fetch.d.ts +47 -0
- package/dist/harness/web-fetch.d.ts.map +1 -0
- package/dist/harness/web-fetch.js +247 -0
- package/dist/harness/web-fetch.js.map +1 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -0
- package/dist/limits.d.ts +152 -0
- package/dist/limits.d.ts.map +1 -0
- package/dist/limits.js +97 -0
- package/dist/limits.js.map +1 -0
- package/dist/memory.d.ts +93 -0
- package/dist/memory.d.ts.map +1 -0
- package/dist/memory.js +13 -0
- package/dist/memory.js.map +1 -0
- package/dist/message.d.ts +46 -0
- package/dist/message.d.ts.map +1 -0
- package/dist/message.js +2 -0
- package/dist/message.js.map +1 -0
- package/dist/models/catalog.d.ts +56 -0
- package/dist/models/catalog.d.ts.map +1 -0
- package/dist/models/catalog.js +211 -0
- package/dist/models/catalog.js.map +1 -0
- package/dist/models/defaults.d.ts +23 -0
- package/dist/models/defaults.d.ts.map +1 -0
- package/dist/models/defaults.js +19 -0
- package/dist/models/defaults.js.map +1 -0
- package/dist/models/index.d.ts +23 -0
- package/dist/models/index.d.ts.map +1 -0
- package/dist/models/index.js +19 -0
- package/dist/models/index.js.map +1 -0
- package/dist/models/prompt-caching.d.ts +19 -0
- package/dist/models/prompt-caching.d.ts.map +1 -0
- package/dist/models/prompt-caching.js +18 -0
- package/dist/models/prompt-caching.js.map +1 -0
- package/dist/models/provider.d.ts +19 -0
- package/dist/models/provider.d.ts.map +1 -0
- package/dist/models/provider.js +22 -0
- package/dist/models/provider.js.map +1 -0
- package/dist/models/reasoning.d.ts +21 -0
- package/dist/models/reasoning.d.ts.map +1 -0
- package/dist/models/reasoning.js +59 -0
- package/dist/models/reasoning.js.map +1 -0
- package/dist/pricing.d.ts +52 -0
- package/dist/pricing.d.ts.map +1 -0
- package/dist/pricing.js +37 -0
- package/dist/pricing.js.map +1 -0
- package/dist/principal.d.ts +37 -0
- package/dist/principal.d.ts.map +1 -0
- package/dist/principal.js +30 -0
- package/dist/principal.js.map +1 -0
- package/dist/projections.d.ts +37 -0
- package/dist/projections.d.ts.map +1 -0
- package/dist/projections.js +128 -0
- package/dist/projections.js.map +1 -0
- package/dist/prompt-caching.d.ts +106 -0
- package/dist/prompt-caching.d.ts.map +1 -0
- package/dist/prompt-caching.js +165 -0
- package/dist/prompt-caching.js.map +1 -0
- package/dist/runtime.d.ts +670 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +2425 -0
- package/dist/runtime.js.map +1 -0
- package/dist/scheduler.d.ts +31 -0
- package/dist/scheduler.d.ts.map +1 -0
- package/dist/scheduler.js +43 -0
- package/dist/scheduler.js.map +1 -0
- package/dist/storage.d.ts +389 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/storage.js +38 -0
- package/dist/storage.js.map +1 -0
- package/dist/telemetry.d.ts +155 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/telemetry.js +2 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/vault-node.d.ts +20 -0
- package/dist/vault-node.d.ts.map +1 -0
- package/dist/vault-node.js +30 -0
- package/dist/vault-node.js.map +1 -0
- package/dist/vault.d.ts +62 -0
- package/dist/vault.d.ts.map +1 -0
- package/dist/vault.js +88 -0
- package/dist/vault.js.map +1 -0
- package/package.json +95 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Scheduler seam.
|
|
3
|
+
*
|
|
4
|
+
* Something has to drive the reaper (`runtime.sweep()`) on a cadence. That
|
|
5
|
+
* "something" is pluggable: a long-running node uses the in-process interval
|
|
6
|
+
* scheduler below; a serverless deploy points a platform cron at an HTTP route
|
|
7
|
+
* that calls `sweep()`. Either way the work is the same and multi-node safe —
|
|
8
|
+
* reclaiming a run is an atomic, exactly-once DB transition, so firing `sweep()`
|
|
9
|
+
* on every node at once is fine (only one wins each run).
|
|
10
|
+
*/
|
|
11
|
+
export interface Scheduler {
|
|
12
|
+
/** Begin firing `onTick` on the configured cadence. Idempotent. */
|
|
13
|
+
start(): void;
|
|
14
|
+
/** Stop firing. Resolves once no further ticks will start. */
|
|
15
|
+
stop(): Promise<void>;
|
|
16
|
+
}
|
|
17
|
+
export interface IntervalSchedulerConfig {
|
|
18
|
+
/** Cadence in ms. */
|
|
19
|
+
intervalMs: number;
|
|
20
|
+
/** The work to run each tick (e.g. `() => runtime.sweep()`). */
|
|
21
|
+
onTick: () => Promise<void> | void;
|
|
22
|
+
/** Observe tick errors (a throwing tick never stops the loop). */
|
|
23
|
+
onError?: (error: unknown) => void;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* A single-process interval scheduler. Ticks never overlap (a slow tick skips
|
|
27
|
+
* the next fire rather than stacking), and the timer is `unref`'d so it won't
|
|
28
|
+
* keep a Node process alive on its own.
|
|
29
|
+
*/
|
|
30
|
+
export declare function createIntervalScheduler(config: IntervalSchedulerConfig): Scheduler;
|
|
31
|
+
//# sourceMappingURL=scheduler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../src/scheduler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,WAAW,SAAS;IACxB,mEAAmE;IACnE,KAAK,IAAI,IAAI,CAAC;IACd,8DAA8D;IAC9D,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAED,MAAM,WAAW,uBAAuB;IACtC,qBAAqB;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACnC,kEAAkE;IAClE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,uBAAuB,GAC9B,SAAS,CAkCX"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A single-process interval scheduler. Ticks never overlap (a slow tick skips
|
|
3
|
+
* the next fire rather than stacking), and the timer is `unref`'d so it won't
|
|
4
|
+
* keep a Node process alive on its own.
|
|
5
|
+
*/
|
|
6
|
+
export function createIntervalScheduler(config) {
|
|
7
|
+
let timer;
|
|
8
|
+
let running = false;
|
|
9
|
+
let inFlight;
|
|
10
|
+
const fire = async () => {
|
|
11
|
+
if (running)
|
|
12
|
+
return; // don't stack ticks
|
|
13
|
+
running = true;
|
|
14
|
+
inFlight = (async () => {
|
|
15
|
+
try {
|
|
16
|
+
await config.onTick();
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
config.onError?.(error);
|
|
20
|
+
}
|
|
21
|
+
finally {
|
|
22
|
+
running = false;
|
|
23
|
+
}
|
|
24
|
+
})();
|
|
25
|
+
await inFlight;
|
|
26
|
+
};
|
|
27
|
+
return {
|
|
28
|
+
start() {
|
|
29
|
+
if (timer !== undefined)
|
|
30
|
+
return;
|
|
31
|
+
timer = setInterval(() => void fire(), config.intervalMs);
|
|
32
|
+
timer.unref?.();
|
|
33
|
+
},
|
|
34
|
+
async stop() {
|
|
35
|
+
if (timer !== undefined) {
|
|
36
|
+
clearInterval(timer);
|
|
37
|
+
timer = undefined;
|
|
38
|
+
}
|
|
39
|
+
await inFlight; // let an in-progress tick finish
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=scheduler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../src/scheduler.ts"],"names":[],"mappings":"AA0BA;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CACrC,MAA+B;IAE/B,IAAI,KAAiD,CAAC;IACtD,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,QAAmC,CAAC;IAExC,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;QACtB,IAAI,OAAO;YAAE,OAAO,CAAC,oBAAoB;QACzC,OAAO,GAAG,IAAI,CAAC;QACf,QAAQ,GAAG,CAAC,KAAK,IAAI,EAAE;YACrB,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;YACxB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;oBAAS,CAAC;gBACT,OAAO,GAAG,KAAK,CAAC;YAClB,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QACL,MAAM,QAAQ,CAAC;IACjB,CAAC,CAAC;IAEF,OAAO;QACL,KAAK;YACH,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO;YAChC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;YACzD,KAAgC,CAAC,KAAK,EAAE,EAAE,CAAC;QAC9C,CAAC;QACD,KAAK,CAAC,IAAI;YACR,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,aAAa,CAAC,KAAK,CAAC,CAAC;gBACrB,KAAK,GAAG,SAAS,CAAC;YACpB,CAAC;YACD,MAAM,QAAQ,CAAC,CAAC,iCAAiC;QACnD,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,389 @@
|
|
|
1
|
+
import type { AppMessage } from "./message.js";
|
|
2
|
+
/**
|
|
3
|
+
* The single persistence contract.
|
|
4
|
+
*
|
|
5
|
+
* One adapter interface for every backend — no "SQL-only" tier. Drizzle
|
|
6
|
+
* (Postgres/SQLite) is the first implementation; Mongo etc. are first-class
|
|
7
|
+
* behind the same contract.
|
|
8
|
+
*
|
|
9
|
+
* Isolation lives HERE, not in the framework. Per-principal methods receive the
|
|
10
|
+
* opaque customer `Principal` (`P`); the adapter scopes by it however it wants
|
|
11
|
+
* (the default adapter derives an `owner` key; a custom one can use RLS / its
|
|
12
|
+
* own schema). The framework never reads a field of `P`. System ops (the reaper
|
|
13
|
+
* / resume) act by id without a principal and recover identity from the run.
|
|
14
|
+
*
|
|
15
|
+
* CONTRACT — the owner key is derived ONCE, at root-resource creation; child
|
|
16
|
+
* rows inherit their parent's stamped owner (messages → chat, usage → run,
|
|
17
|
+
* OAuth tokens → the flow that started them). Never re-derive an owner from a
|
|
18
|
+
* live principal in a DIFFERENT request context than the one that created the
|
|
19
|
+
* root — callbacks, webhooks, and cron arrive with degraded or absent
|
|
20
|
+
* sessions, and a re-derived key silently lands data in the wrong bucket.
|
|
21
|
+
* Identity that must cross requests is pinned as data (a run's identity blob,
|
|
22
|
+
* the OAuth flow state) and rebuilt via `reconstructPrincipal`.
|
|
23
|
+
*
|
|
24
|
+
* v1 surface = the four tables in the plan: chats, messages, runs, usage.
|
|
25
|
+
* `messages` is the source of truth (content + execution metadata on the row).
|
|
26
|
+
*/
|
|
27
|
+
export type RunStatus = "active" | "awaiting_input" | "completed" | "errored";
|
|
28
|
+
/**
|
|
29
|
+
* Thrown by `createChat` when the requested chat id already exists (typically a
|
|
30
|
+
* client-supplied id colliding with a chat the caller doesn't own — the scoped
|
|
31
|
+
* `getChat` missed, so the create raced into the PK). Carries a stable `code`
|
|
32
|
+
* so the server layer can map it to a 409 instead of a 500.
|
|
33
|
+
*/
|
|
34
|
+
export declare class ChatConflictError extends Error {
|
|
35
|
+
readonly code = "chat_conflict";
|
|
36
|
+
constructor(chatId: string);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Thrown by `createRun` / `claimRun` when the chat already has a LIVE active
|
|
40
|
+
* run — one turn per conversation is a storage-level invariant (a partial
|
|
41
|
+
* unique index in the shipped adapters), so two tabs, a webhook retry racing a
|
|
42
|
+
* reply, or a schedule firing mid-conversation can never interleave one
|
|
43
|
+
* history. `retryAfterMs` is the live run's remaining lease (or the stale
|
|
44
|
+
* timeout for a non-durable run). Stable `code` → the server maps it to 409.
|
|
45
|
+
*/
|
|
46
|
+
export declare class ChatBusyError extends Error {
|
|
47
|
+
readonly chatId: string;
|
|
48
|
+
/** Milliseconds until the live run's lease expires — when a retry can succeed at the latest. */
|
|
49
|
+
readonly retryAfterMs: number;
|
|
50
|
+
readonly code = "chat_busy";
|
|
51
|
+
constructor(chatId: string,
|
|
52
|
+
/** Milliseconds until the live run's lease expires — when a retry can succeed at the latest. */
|
|
53
|
+
retryAfterMs: number);
|
|
54
|
+
}
|
|
55
|
+
export declare function isChatBusyError(e: unknown): e is ChatBusyError;
|
|
56
|
+
export interface ChatRecord {
|
|
57
|
+
id: string;
|
|
58
|
+
/** Opaque ownership key the adapter scoped this row by (e.g. `tenant/user`). */
|
|
59
|
+
owner: string;
|
|
60
|
+
agent: string;
|
|
61
|
+
title?: string;
|
|
62
|
+
/**
|
|
63
|
+
* What kind of chat this is. `'user'` (the default) = a user-facing
|
|
64
|
+
* conversation; `'internal'` = a runtime-created sub-thread (the `sub_…`
|
|
65
|
+
* chats `spawn_agent` mints) that should stay out of the main chat list.
|
|
66
|
+
* Open vocabulary — a host may stamp its own kinds via `createChat`.
|
|
67
|
+
*/
|
|
68
|
+
kind?: string;
|
|
69
|
+
/**
|
|
70
|
+
* Status of the chat's most recent run, derived at READ time by `listChats`
|
|
71
|
+
* (never stored — the message log stays the source of truth). Lets a list UI
|
|
72
|
+
* flag chats parked on a human (`awaiting_input` = an approval or question is
|
|
73
|
+
* waiting) without loading each chat's messages. "Most recent" makes it
|
|
74
|
+
* self-healing: a continuation opens a new run, so a superseded pause stops
|
|
75
|
+
* showing the moment the conversation moves on. Optional — an adapter MAY
|
|
76
|
+
* omit it, and `getChat`/`createChat` never populate it.
|
|
77
|
+
*/
|
|
78
|
+
lastRunStatus?: RunStatus;
|
|
79
|
+
createdAt: number;
|
|
80
|
+
updatedAt: number;
|
|
81
|
+
}
|
|
82
|
+
export interface RunRecord {
|
|
83
|
+
id: string;
|
|
84
|
+
chatId: string;
|
|
85
|
+
agent: string;
|
|
86
|
+
status: RunStatus;
|
|
87
|
+
/**
|
|
88
|
+
* Opaque identity blob (the serialized `Principal`) captured when the run was
|
|
89
|
+
* created, so resume/cron — which have no request — can rebuild the principal
|
|
90
|
+
* via `reconstructPrincipal`. Never interpreted by the framework.
|
|
91
|
+
*/
|
|
92
|
+
identity?: unknown;
|
|
93
|
+
/** Single-writer lease (T2 durability). Null for T1 / non-durable runs. */
|
|
94
|
+
leaseOwner?: string | null;
|
|
95
|
+
leaseExpiresAt?: number | null;
|
|
96
|
+
/** Monotonic per claim; bumped when reaped/reclaimed. Guards stale-writer writes. */
|
|
97
|
+
fencingToken?: number | null;
|
|
98
|
+
/** Last heartbeat time (observability; the lease expiry is the functional gate). */
|
|
99
|
+
heartbeatAt?: number | null;
|
|
100
|
+
/** How many times this run has been claimed (1 on first claim). */
|
|
101
|
+
attempt?: number | null;
|
|
102
|
+
usageInputTokens?: number;
|
|
103
|
+
usageOutputTokens?: number;
|
|
104
|
+
usageCacheReadTokens?: number;
|
|
105
|
+
usageCacheWriteTokens?: number;
|
|
106
|
+
costTotal?: number;
|
|
107
|
+
/**
|
|
108
|
+
* Run kind: `'turn'` (default when absent) vs `'compaction'` (the runtime's
|
|
109
|
+
* internal summarize-and-mark run) — lets stats/rollups exclude non-turn runs.
|
|
110
|
+
*/
|
|
111
|
+
kind?: string | null;
|
|
112
|
+
/**
|
|
113
|
+
* Opaque fingerprint of the turn's sorted tool names — same hash ⇔ same
|
|
114
|
+
* toolset, so churn across a chat's runs (MCP drops, auth-gated `connect_*`
|
|
115
|
+
* toggles) is detectable without storing the full list. Produced by
|
|
116
|
+
* `toolsetHash` (currently 16 hex chars); treat the width as unspecified and
|
|
117
|
+
* store it as variable-length text.
|
|
118
|
+
*/
|
|
119
|
+
toolsHash?: string | null;
|
|
120
|
+
error?: string | null;
|
|
121
|
+
startedAt: number;
|
|
122
|
+
endedAt?: number | null;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Proof of single-writer ownership for a run. Pass to guarded writes so a stale
|
|
126
|
+
* worker (whose lease was reaped and reassigned) can't overwrite newer state —
|
|
127
|
+
* the write only lands if `(owner, fencingToken)` still match the row.
|
|
128
|
+
*/
|
|
129
|
+
export interface RunLease {
|
|
130
|
+
owner: string;
|
|
131
|
+
fencingToken: number;
|
|
132
|
+
}
|
|
133
|
+
export interface UsageRecord {
|
|
134
|
+
id: string;
|
|
135
|
+
/** Opaque ownership key (for per-tenant billing/quota rollups). */
|
|
136
|
+
owner: string;
|
|
137
|
+
runId: string;
|
|
138
|
+
model: string;
|
|
139
|
+
inputTokens: number;
|
|
140
|
+
outputTokens: number;
|
|
141
|
+
/** Prompt-cache breakdown (subsets of `inputTokens`); absent = none reported. */
|
|
142
|
+
cacheReadTokens?: number;
|
|
143
|
+
cacheWriteTokens?: number;
|
|
144
|
+
cost: number;
|
|
145
|
+
createdAt: number;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* A scheduled agent run. Like a run, it carries the opaque `identity` blob so a
|
|
149
|
+
* cron tick (no request) can rebuild the principal and run the turn. `cron` is a
|
|
150
|
+
* customer-evaluated expression (the runtime takes a `cron` evaluator); null =
|
|
151
|
+
* one-shot.
|
|
152
|
+
*
|
|
153
|
+
* The `lease` alone does NOT make an occurrence exactly-once: it is stamped at
|
|
154
|
+
* claim time and never renewed, so it only serializes claimers within one TTL.
|
|
155
|
+
* What prevents a double fire is the runtime consuming the occurrence
|
|
156
|
+
* (advancing `nextRunAt` via `completeSchedule`) immediately after the claim,
|
|
157
|
+
* before the fire — after that write the row is no longer due, whatever the
|
|
158
|
+
* lease says.
|
|
159
|
+
*/
|
|
160
|
+
export interface ScheduleRecord {
|
|
161
|
+
id: string;
|
|
162
|
+
/** Opaque ownership key derived from the principal. */
|
|
163
|
+
owner: string;
|
|
164
|
+
agent: string;
|
|
165
|
+
/** Serialized Principal blob — rebuilt at fire time via `reconstructPrincipal`. */
|
|
166
|
+
identity?: unknown;
|
|
167
|
+
/** Cron expression (evaluated by the runtime's `cron` fn); null = one-shot. */
|
|
168
|
+
cron: string | null;
|
|
169
|
+
/** IANA timezone the cron is interpreted in (e.g. "Europe/Helsinki"); UTC if unset. */
|
|
170
|
+
timezone?: string;
|
|
171
|
+
/** The user message to send the agent each fire. */
|
|
172
|
+
prompt: string;
|
|
173
|
+
/**
|
|
174
|
+
* Where this schedule's output should go, or undefined for the default
|
|
175
|
+
* (a fresh chat, no push). OPAQUE to core, exactly like `identity`: only the
|
|
176
|
+
* host's `runSchedule` hook interprets it, so core never learns what a
|
|
177
|
+
* "channel" is. Hosts should keep it small and JSON-serializable.
|
|
178
|
+
*/
|
|
179
|
+
delivery?: unknown;
|
|
180
|
+
/** Epoch ms of the next due fire. */
|
|
181
|
+
nextRunAt: number;
|
|
182
|
+
lastRunAt?: number | null;
|
|
183
|
+
/**
|
|
184
|
+
* What a fire does when the PREVIOUS fire's chat is still parked waiting on
|
|
185
|
+
* a human (an undecided approval or question). `"skip"` (the default when
|
|
186
|
+
* absent) consumes the occurrence without running — no new parked chat, no
|
|
187
|
+
* paid tokens, and the next occurrence re-checks. `"fire"` always runs
|
|
188
|
+
* (pre-existing behavior): pick it for schedules whose every occurrence
|
|
189
|
+
* matters even while one waits, e.g. a daily digest.
|
|
190
|
+
*/
|
|
191
|
+
onParked?: "skip" | "fire";
|
|
192
|
+
/**
|
|
193
|
+
* The chat the LAST default-path fire ran in (stamped via
|
|
194
|
+
* `noteScheduleFire`), so the next occurrence can see a parked predecessor.
|
|
195
|
+
* Null/absent until the first fire, or when the host's `runSchedule` hook
|
|
196
|
+
* handles fires itself.
|
|
197
|
+
*/
|
|
198
|
+
lastChatId?: string | null;
|
|
199
|
+
enabled: boolean;
|
|
200
|
+
/** Single-fire lease (exactly-once claim), same shape as runs. */
|
|
201
|
+
leaseOwner?: string | null;
|
|
202
|
+
leaseExpiresAt?: number | null;
|
|
203
|
+
createdAt: number;
|
|
204
|
+
}
|
|
205
|
+
export interface StorageAdapter<P> {
|
|
206
|
+
createChat(principal: P, input: {
|
|
207
|
+
/** Optional explicit id (e.g. a client-chosen key); generated if omitted. */
|
|
208
|
+
id?: string;
|
|
209
|
+
agent: string;
|
|
210
|
+
title?: string;
|
|
211
|
+
/** Chat kind (see `ChatRecord.kind`). Defaults to `'user'`. */
|
|
212
|
+
kind?: string;
|
|
213
|
+
}): Promise<ChatRecord>;
|
|
214
|
+
/** Scoped: returns null if the chat isn't the caller's. */
|
|
215
|
+
getChat(principal: P, id: string): Promise<ChatRecord | null>;
|
|
216
|
+
/**
|
|
217
|
+
* Scoped list of the caller's chats, most-recently-updated first.
|
|
218
|
+
* `opts.kind` filters to one kind (e.g. `'user'` for a sidebar that must not
|
|
219
|
+
* show internal sub-threads); omitted → ALL kinds (back-compatible default).
|
|
220
|
+
*/
|
|
221
|
+
listChats(principal: P, opts?: {
|
|
222
|
+
limit?: number;
|
|
223
|
+
kind?: string;
|
|
224
|
+
}): Promise<ChatRecord[]>;
|
|
225
|
+
/** Scoped read of the conversation, oldest first. */
|
|
226
|
+
loadMessages(principal: P, chatId: string): Promise<AppMessage[]>;
|
|
227
|
+
/** Upsert messages by id (incremental per-step persistence is allowed). */
|
|
228
|
+
appendMessages(chatId: string, messages: AppMessage[]): Promise<void>;
|
|
229
|
+
/** T1 / non-durable: an unleased run. Stores the identity blob for resume. */
|
|
230
|
+
/**
|
|
231
|
+
* Open a non-durable run. ONE ACTIVE RUN PER CHAT: throws `ChatBusyError` if
|
|
232
|
+
* the chat already has a live active run. An active run with no lease that is
|
|
233
|
+
* older than the adapter's stale timeout is superseded (marked errored) first,
|
|
234
|
+
* so a crashed non-durable turn can't block its chat forever.
|
|
235
|
+
*/
|
|
236
|
+
createRun(principal: P, input: {
|
|
237
|
+
chatId: string;
|
|
238
|
+
agent: string;
|
|
239
|
+
kind?: string;
|
|
240
|
+
}): Promise<RunRecord>;
|
|
241
|
+
/**
|
|
242
|
+
* T2 durable: create a run already leased to `owner` (fencingToken starts at 1,
|
|
243
|
+
* lease expires at now + ttlMs). `owner` here is the LEASE owner (instance id),
|
|
244
|
+
* unrelated to tenancy. Stores the identity blob for resume.
|
|
245
|
+
*/
|
|
246
|
+
claimRun(input: {
|
|
247
|
+
principal: P;
|
|
248
|
+
chatId: string;
|
|
249
|
+
agent: string;
|
|
250
|
+
owner: string;
|
|
251
|
+
ttlMs: number;
|
|
252
|
+
}): Promise<RunRecord>;
|
|
253
|
+
/**
|
|
254
|
+
* Open a turn ATOMICALLY: the run row (the one-active-run-per-chat check) and
|
|
255
|
+
* the messages that start it — a fresh user message, or the assistant message
|
|
256
|
+
* a decision / tool result just changed — in one transaction, so a refused
|
|
257
|
+
* turn persists nothing and a crash can never leave a run without its
|
|
258
|
+
* messages (or vice versa). Messages upsert by (chat, id) like `appendMessages`. With
|
|
259
|
+
* `lease`, the run is claimed durably like `claimRun`; without, like
|
|
260
|
+
* `createRun`. Optional for compatibility: the runtime falls back to run-
|
|
261
|
+
* then-message when an adapter doesn't implement it — but that fallback has a
|
|
262
|
+
* crash window (a run without its message), so a DURABLE adapter should
|
|
263
|
+
* implement `openTurn` atomically. The shipped adapters do, in every driver.
|
|
264
|
+
*/
|
|
265
|
+
openTurn?(principal: P, input: {
|
|
266
|
+
chatId: string;
|
|
267
|
+
agent: string;
|
|
268
|
+
messages: AppMessage[];
|
|
269
|
+
lease?: {
|
|
270
|
+
owner: string;
|
|
271
|
+
ttlMs: number;
|
|
272
|
+
};
|
|
273
|
+
}): Promise<RunRecord>;
|
|
274
|
+
/**
|
|
275
|
+
* Extend our lease by `ttlMs`. Fenced: the extension only applies while
|
|
276
|
+
* `(owner, fencingToken)` still match the row, so a stale holder whose run was
|
|
277
|
+
* reaped and re-claimed (same owner id, bumped token) can't resurrect the
|
|
278
|
+
* lease. Returns false if we no longer own the active run — stop work.
|
|
279
|
+
*/
|
|
280
|
+
heartbeatRun(id: string, owner: string, ttlMs: number, fencingToken: number): Promise<boolean>;
|
|
281
|
+
/**
|
|
282
|
+
* Re-claim an interrupted run for a new owner (resume). Succeeds only if the
|
|
283
|
+
* run is not completed AND was leased at some point with the lease now
|
|
284
|
+
* expired (`leaseExpiresAt < now`) — so two nodes racing to resume the same
|
|
285
|
+
* run resolve to exactly one, and a live never-leased (T1) run can never be
|
|
286
|
+
* seized out from under its writer. Bumps the fencing
|
|
287
|
+
* token and attempt, clears the error/end, and re-leases. Returns the
|
|
288
|
+
* re-claimed record (carrying `identity`), or null if it wasn't resumable.
|
|
289
|
+
*/
|
|
290
|
+
reclaimRun(id: string, owner: string, ttlMs: number): Promise<RunRecord | null>;
|
|
291
|
+
/**
|
|
292
|
+
* Patch a run. With `guard`, the write only applies while `(leaseOwner,
|
|
293
|
+
* fencingToken)` still match — stale-writer protection (fencing). Without it,
|
|
294
|
+
* an unconditional update (T1). Returns whether the patch was applied — a
|
|
295
|
+
* guarded caller must treat `false` as "I'm a stale writer" and skip any
|
|
296
|
+
* follow-up persistence.
|
|
297
|
+
*/
|
|
298
|
+
updateRun(id: string, patch: Partial<RunRecord>, guard?: RunLease): Promise<boolean>;
|
|
299
|
+
getRun(id: string): Promise<RunRecord | null>;
|
|
300
|
+
/** Scoped list of the caller's runs (joined via chats), most-recent first. */
|
|
301
|
+
listRuns(principal: P, opts?: {
|
|
302
|
+
limit?: number;
|
|
303
|
+
}): Promise<RunRecord[]>;
|
|
304
|
+
/**
|
|
305
|
+
* Reaper: mark active runs whose lease has expired (`leaseExpiresAt < now`) as
|
|
306
|
+
* `errored`, clear the owner, and bump the fencing token (invalidating any
|
|
307
|
+
* zombie holder). Returns the reaped runs. Safe to run on many nodes — each
|
|
308
|
+
* row transitions once (the UPDATE is atomic per row).
|
|
309
|
+
*/
|
|
310
|
+
reapExpiredRuns(now: number, opts?: {
|
|
311
|
+
error?: string;
|
|
312
|
+
}): Promise<RunRecord[]>;
|
|
313
|
+
recordUsage(principal: P, input: Omit<UsageRecord, "id" | "createdAt" | "owner">): Promise<void>;
|
|
314
|
+
/** Create a schedule owned by the caller; stores the identity blob for fire-time. */
|
|
315
|
+
createSchedule(principal: P, input: {
|
|
316
|
+
agent: string;
|
|
317
|
+
cron: string | null;
|
|
318
|
+
timezone?: string;
|
|
319
|
+
prompt: string;
|
|
320
|
+
nextRunAt: number;
|
|
321
|
+
/** Host-defined delivery target, stored verbatim (see `ScheduleRecord.delivery`). */
|
|
322
|
+
delivery?: unknown;
|
|
323
|
+
/** Parked-predecessor policy (see `ScheduleRecord.onParked`); absent = `"skip"`. */
|
|
324
|
+
onParked?: "skip" | "fire";
|
|
325
|
+
}): Promise<ScheduleRecord>;
|
|
326
|
+
/** The caller's schedules, most-recently-created first. */
|
|
327
|
+
listSchedules(principal: P): Promise<ScheduleRecord[]>;
|
|
328
|
+
/** Delete one of the caller's schedules. */
|
|
329
|
+
deleteSchedule(principal: P, id: string): Promise<void>;
|
|
330
|
+
/**
|
|
331
|
+
* Make one of the caller's schedules due immediately ("run now"): set
|
|
332
|
+
* `nextRunAt` to 0 so the next `runDue` claims it through the ordinary path.
|
|
333
|
+
* Owner-fenced like `deleteSchedule`, and enabled-only — a finished one-shot
|
|
334
|
+
* shouldn't be resurrectable by re-arming its clock.
|
|
335
|
+
*
|
|
336
|
+
* Returns whether a schedule was actually armed, so a caller can tell "it's
|
|
337
|
+
* queued" from "unknown, not yours, or already spent" instead of reporting
|
|
338
|
+
* success for a no-op.
|
|
339
|
+
*/
|
|
340
|
+
bumpSchedule(principal: P, id: string): Promise<boolean>;
|
|
341
|
+
/**
|
|
342
|
+
* System op (no principal): atomically claim due schedules (`enabled`,
|
|
343
|
+
* `nextRunAt <= now`, lease unset/expired) for `owner`, stamping a lease.
|
|
344
|
+
* Returns the claimed records (with `identity`). Mirrors the run reclaim
|
|
345
|
+
* transition.
|
|
346
|
+
*
|
|
347
|
+
* The lease serializes claimers only within one `ttlMs` window — it is never
|
|
348
|
+
* renewed, and the predicate re-claims (same owner included) the moment it
|
|
349
|
+
* expires. Callers MUST consume the occurrence via `completeSchedule` before
|
|
350
|
+
* doing anything slower than the TTL, or a long fire is re-claimable for its
|
|
351
|
+
* whole duration.
|
|
352
|
+
*/
|
|
353
|
+
claimDueSchedules(now: number, ttlMs: number, owner: string): Promise<ScheduleRecord[]>;
|
|
354
|
+
/**
|
|
355
|
+
* Consume a claimed occurrence: advance `nextRunAt`/`enabled`, set
|
|
356
|
+
* `lastRunAt`, clear the lease. The runtime calls this between the claim and
|
|
357
|
+
* the fire — after this write the row is no longer due (or no longer
|
|
358
|
+
* enabled), so the occurrence cannot be claimed twice. Fenced by `owner`:
|
|
359
|
+
* only the node holding the claim lease may apply it, so a node whose lease
|
|
360
|
+
* expired can't clobber a newer claim.
|
|
361
|
+
*/
|
|
362
|
+
completeSchedule(id: string, patch: {
|
|
363
|
+
nextRunAt: number;
|
|
364
|
+
lastRunAt: number;
|
|
365
|
+
enabled: boolean;
|
|
366
|
+
}, owner: string): Promise<void>;
|
|
367
|
+
/**
|
|
368
|
+
* OPTIONAL system op (no principal): remember which chat a fire ran in, so
|
|
369
|
+
* the next occurrence can check `onParked` against it. Best-effort, and
|
|
370
|
+
* fenced by the OCCURRENCE rather than the lease: `firedAt` is the
|
|
371
|
+
* `lastRunAt` this fire's `completeSchedule` just wrote, and the stamp only
|
|
372
|
+
* lands while the row still carries it — a delayed stamp from an older fire
|
|
373
|
+
* no-ops once a newer occurrence has consumed (e.g. a `runScheduleNow` bump
|
|
374
|
+
* overlapping a long turn), so `lastChatId` always names the newest fire's
|
|
375
|
+
* chat. ACCEPTED residual: two occurrences consumed in the SAME millisecond
|
|
376
|
+
* share a fence value — that takes a consume + bump + re-claim + re-consume
|
|
377
|
+
* across independent actors inside 1ms, and the worst outcome is one
|
|
378
|
+
* skipped or one extra fire that self-corrects next occurrence; closing it
|
|
379
|
+
* would mean widening `completeSchedule`'s contract to return a unique
|
|
380
|
+
* revision, which this best-effort field doesn't justify. Adapters that
|
|
381
|
+
* don't implement it simply never skip parked fires (the pre-`onParked`
|
|
382
|
+
* behavior).
|
|
383
|
+
*/
|
|
384
|
+
noteScheduleFire?(id: string, patch: {
|
|
385
|
+
lastChatId: string;
|
|
386
|
+
firedAt: number;
|
|
387
|
+
}): Promise<void>;
|
|
388
|
+
}
|
|
389
|
+
//# sourceMappingURL=storage.d.ts.map
|