@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.
Files changed (119) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +45 -0
  3. package/dist/agent.d.ts +200 -0
  4. package/dist/agent.d.ts.map +1 -0
  5. package/dist/agent.js +9 -0
  6. package/dist/agent.js.map +1 -0
  7. package/dist/compaction.d.ts +33 -0
  8. package/dist/compaction.d.ts.map +1 -0
  9. package/dist/compaction.js +104 -0
  10. package/dist/compaction.js.map +1 -0
  11. package/dist/connections.d.ts +16 -0
  12. package/dist/connections.d.ts.map +1 -0
  13. package/dist/connections.js +41 -0
  14. package/dist/connections.js.map +1 -0
  15. package/dist/context.d.ts +41 -0
  16. package/dist/context.d.ts.map +1 -0
  17. package/dist/context.js +25 -0
  18. package/dist/context.js.map +1 -0
  19. package/dist/current-date.d.ts +12 -0
  20. package/dist/current-date.d.ts.map +1 -0
  21. package/dist/current-date.js +25 -0
  22. package/dist/current-date.js.map +1 -0
  23. package/dist/extensions.d.ts +333 -0
  24. package/dist/extensions.d.ts.map +1 -0
  25. package/dist/extensions.js +569 -0
  26. package/dist/extensions.js.map +1 -0
  27. package/dist/harness/index.d.ts +17 -0
  28. package/dist/harness/index.d.ts.map +1 -0
  29. package/dist/harness/index.js +15 -0
  30. package/dist/harness/index.js.map +1 -0
  31. package/dist/harness/tools.d.ts +88 -0
  32. package/dist/harness/tools.d.ts.map +1 -0
  33. package/dist/harness/tools.js +296 -0
  34. package/dist/harness/tools.js.map +1 -0
  35. package/dist/harness/web-fetch.d.ts +47 -0
  36. package/dist/harness/web-fetch.d.ts.map +1 -0
  37. package/dist/harness/web-fetch.js +247 -0
  38. package/dist/harness/web-fetch.js.map +1 -0
  39. package/dist/index.d.ts +25 -0
  40. package/dist/index.d.ts.map +1 -0
  41. package/dist/index.js +25 -0
  42. package/dist/index.js.map +1 -0
  43. package/dist/limits.d.ts +152 -0
  44. package/dist/limits.d.ts.map +1 -0
  45. package/dist/limits.js +97 -0
  46. package/dist/limits.js.map +1 -0
  47. package/dist/memory.d.ts +93 -0
  48. package/dist/memory.d.ts.map +1 -0
  49. package/dist/memory.js +13 -0
  50. package/dist/memory.js.map +1 -0
  51. package/dist/message.d.ts +46 -0
  52. package/dist/message.d.ts.map +1 -0
  53. package/dist/message.js +2 -0
  54. package/dist/message.js.map +1 -0
  55. package/dist/models/catalog.d.ts +56 -0
  56. package/dist/models/catalog.d.ts.map +1 -0
  57. package/dist/models/catalog.js +211 -0
  58. package/dist/models/catalog.js.map +1 -0
  59. package/dist/models/defaults.d.ts +23 -0
  60. package/dist/models/defaults.d.ts.map +1 -0
  61. package/dist/models/defaults.js +19 -0
  62. package/dist/models/defaults.js.map +1 -0
  63. package/dist/models/index.d.ts +23 -0
  64. package/dist/models/index.d.ts.map +1 -0
  65. package/dist/models/index.js +19 -0
  66. package/dist/models/index.js.map +1 -0
  67. package/dist/models/prompt-caching.d.ts +19 -0
  68. package/dist/models/prompt-caching.d.ts.map +1 -0
  69. package/dist/models/prompt-caching.js +18 -0
  70. package/dist/models/prompt-caching.js.map +1 -0
  71. package/dist/models/provider.d.ts +19 -0
  72. package/dist/models/provider.d.ts.map +1 -0
  73. package/dist/models/provider.js +22 -0
  74. package/dist/models/provider.js.map +1 -0
  75. package/dist/models/reasoning.d.ts +21 -0
  76. package/dist/models/reasoning.d.ts.map +1 -0
  77. package/dist/models/reasoning.js +59 -0
  78. package/dist/models/reasoning.js.map +1 -0
  79. package/dist/pricing.d.ts +52 -0
  80. package/dist/pricing.d.ts.map +1 -0
  81. package/dist/pricing.js +37 -0
  82. package/dist/pricing.js.map +1 -0
  83. package/dist/principal.d.ts +37 -0
  84. package/dist/principal.d.ts.map +1 -0
  85. package/dist/principal.js +30 -0
  86. package/dist/principal.js.map +1 -0
  87. package/dist/projections.d.ts +37 -0
  88. package/dist/projections.d.ts.map +1 -0
  89. package/dist/projections.js +128 -0
  90. package/dist/projections.js.map +1 -0
  91. package/dist/prompt-caching.d.ts +106 -0
  92. package/dist/prompt-caching.d.ts.map +1 -0
  93. package/dist/prompt-caching.js +165 -0
  94. package/dist/prompt-caching.js.map +1 -0
  95. package/dist/runtime.d.ts +670 -0
  96. package/dist/runtime.d.ts.map +1 -0
  97. package/dist/runtime.js +2425 -0
  98. package/dist/runtime.js.map +1 -0
  99. package/dist/scheduler.d.ts +31 -0
  100. package/dist/scheduler.d.ts.map +1 -0
  101. package/dist/scheduler.js +43 -0
  102. package/dist/scheduler.js.map +1 -0
  103. package/dist/storage.d.ts +389 -0
  104. package/dist/storage.d.ts.map +1 -0
  105. package/dist/storage.js +38 -0
  106. package/dist/storage.js.map +1 -0
  107. package/dist/telemetry.d.ts +155 -0
  108. package/dist/telemetry.d.ts.map +1 -0
  109. package/dist/telemetry.js +2 -0
  110. package/dist/telemetry.js.map +1 -0
  111. package/dist/vault-node.d.ts +20 -0
  112. package/dist/vault-node.d.ts.map +1 -0
  113. package/dist/vault-node.js +30 -0
  114. package/dist/vault-node.js.map +1 -0
  115. package/dist/vault.d.ts +62 -0
  116. package/dist/vault.d.ts.map +1 -0
  117. package/dist/vault.js +88 -0
  118. package/dist/vault.js.map +1 -0
  119. 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