@markusylisiurunen/tau 0.3.39 → 0.3.40

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.
@@ -22,9 +22,11 @@ const DIGEST_TEXT_CONFIG = {
22
22
  },
23
23
  };
24
24
  const MAX_BODY_BYTES = 8 * 1024 * 1024;
25
+ const MAX_ENTRY_BYTES = 1024 * 1024;
26
+ const MAX_ENTRY_SEARCH_TEXT_BYTES = 512 * 1024;
25
27
  const MAX_OPERATIONS = 10;
26
28
  const MAX_ENTRIES_PER_OPERATION = 25;
27
- const MAX_SEARCH_LIMIT = 100;
29
+ const MAX_SEARCH_LIMIT = 75;
28
30
  const MAX_READ_LIMIT = 100;
29
31
  const MAX_READ_PAGE_PAYLOAD_BYTES = 12 * 1024 * 1024;
30
32
  const DIGEST_NEW_ENTRY_THRESHOLD = 8;
@@ -38,78 +40,7 @@ const DIGEST_SOURCE_MAX_BYTES = 12 * 1024 * 1024;
38
40
  const DIGEST_MAX_SPLIT_DEPTH = 3;
39
41
  const DIGEST_IDLE_MS = 10 * 60 * 1_000;
40
42
  const DIGEST_LEASE_MS = 30 * 60 * 1_000;
41
- const HISTORY_SCHEMA_MIGRATIONS = [
42
- {
43
- version: 1,
44
- statements: [
45
- `CREATE TABLE IF NOT EXISTS sessions (
46
- session_id TEXT PRIMARY KEY,
47
- attributes_json TEXT NOT NULL,
48
- created_at INTEGER NOT NULL,
49
- updated_at INTEGER NOT NULL,
50
- transcript_revision INTEGER NOT NULL DEFAULT 0,
51
- digest_title TEXT,
52
- digest_summary TEXT,
53
- digest_through_entry_id TEXT
54
- )`,
55
- `CREATE TABLE IF NOT EXISTS attributes (
56
- session_id TEXT NOT NULL,
57
- key TEXT NOT NULL,
58
- value TEXT NOT NULL,
59
- PRIMARY KEY (session_id, key)
60
- )`,
61
- "CREATE INDEX IF NOT EXISTS attributes_lookup ON attributes(key, value, session_id)",
62
- `CREATE TABLE IF NOT EXISTS entries (
63
- session_id TEXT NOT NULL,
64
- position INTEGER NOT NULL,
65
- entry_id TEXT NOT NULL,
66
- timestamp INTEGER NOT NULL,
67
- payload_json TEXT NOT NULL,
68
- search_text TEXT NOT NULL,
69
- PRIMARY KEY (session_id, entry_id),
70
- UNIQUE (session_id, position)
71
- )`,
72
- "CREATE INDEX IF NOT EXISTS entries_order ON entries(session_id, position)",
73
- `CREATE VIRTUAL TABLE IF NOT EXISTS entries_fts USING fts5(
74
- session_id UNINDEXED,
75
- entry_id UNINDEXED,
76
- position UNINDEXED,
77
- text
78
- )`,
79
- `CREATE VIRTUAL TABLE IF NOT EXISTS sessions_fts USING fts5(
80
- session_id UNINDEXED,
81
- title,
82
- summary
83
- )`,
84
- `CREATE TABLE IF NOT EXISTS operations (
85
- operation_id TEXT PRIMARY KEY,
86
- session_id TEXT NOT NULL,
87
- applied_at INTEGER NOT NULL
88
- )`,
89
- ],
90
- },
91
- {
92
- version: 2,
93
- statements: [
94
- `CREATE TABLE IF NOT EXISTS digest_worker_lease (
95
- singleton INTEGER PRIMARY KEY CHECK (singleton = 1),
96
- claimed_at INTEGER
97
- )`,
98
- "INSERT OR IGNORE INTO digest_worker_lease (singleton, claimed_at) VALUES (1, NULL)",
99
- ],
100
- },
101
- {
102
- version: 3,
103
- statements: [
104
- "ALTER TABLE sessions ADD COLUMN digest_failure_count INTEGER NOT NULL DEFAULT 0",
105
- "ALTER TABLE sessions ADD COLUMN digest_next_attempt_at INTEGER",
106
- "ALTER TABLE sessions ADD COLUMN digest_last_attempt_at INTEGER",
107
- "ALTER TABLE sessions ADD COLUMN digest_last_success_at INTEGER",
108
- "ALTER TABLE sessions ADD COLUMN digest_last_error TEXT",
109
- ],
110
- },
111
- ];
112
- let initialization;
43
+ const DIGEST_SESSIONS_PER_CRON = 3;
113
44
  class HistoryApiError extends Error {
114
45
  code;
115
46
  status;
@@ -130,7 +61,6 @@ export default {
130
61
  if (request.method !== "POST")
131
62
  return error("method_not_allowed", "Use POST", 405);
132
63
  try {
133
- await initialize(env.DB);
134
64
  if (new URL(request.url).pathname === "/v1/operations") {
135
65
  const body = await readJson(request);
136
66
  const operations = parseOperations(body);
@@ -160,7 +90,6 @@ export default {
160
90
  }
161
91
  },
162
92
  async scheduled(_controller, env, _context) {
163
- await initialize(env.DB);
164
93
  const claimedAt = Date.now();
165
94
  const lease = await env.DB.prepare(`UPDATE digest_worker_lease
166
95
  SET claimed_at = ?
@@ -171,59 +100,14 @@ export default {
171
100
  .first();
172
101
  if (!lease)
173
102
  return;
174
- let sessionId;
175
- let failureCount = 0;
176
103
  try {
177
- const stale = await env.DB.prepare(`SELECT s.session_id, s.digest_failure_count
178
- FROM sessions s
179
- JOIN entries latest ON latest.session_id = s.session_id
180
- AND latest.position = (SELECT MAX(position) FROM entries WHERE session_id = s.session_id)
181
- LEFT JOIN entries digested ON digested.session_id = s.session_id
182
- AND digested.entry_id = s.digest_through_entry_id
183
- WHERE (s.digest_through_entry_id IS NULL OR s.digest_through_entry_id != latest.entry_id)
184
- AND s.updated_at <= ?
185
- AND (s.digest_next_attempt_at IS NULL OR s.digest_next_attempt_at <= ?)
186
- AND (
187
- s.digest_through_entry_id IS NULL
188
- OR latest.position - COALESCE(digested.position, 0) >= ?
189
- OR s.updated_at <= ?
190
- )
191
- ORDER BY COALESCE(s.digest_last_attempt_at, 0), s.updated_at, s.session_id
192
- LIMIT 1`)
193
- .bind(claimedAt - DIGEST_IDLE_MS, claimedAt, DIGEST_NEW_ENTRY_THRESHOLD, claimedAt - DIGEST_MAX_STALENESS_MS)
194
- .first();
195
- if (!stale)
196
- return;
197
- sessionId = stale.session_id;
198
- failureCount = Number(stale.digest_failure_count);
199
- await env.DB.prepare("UPDATE sessions SET digest_last_attempt_at = ? WHERE session_id = ?")
200
- .bind(claimedAt, sessionId)
201
- .run();
202
- const updated = await refreshDigestIfNeeded(env, sessionId);
203
- await env.DB.prepare(`UPDATE sessions
204
- SET digest_failure_count = 0,
205
- digest_next_attempt_at = NULL,
206
- digest_last_error = NULL,
207
- digest_last_success_at = CASE WHEN ? THEN ? ELSE digest_last_success_at END
208
- WHERE session_id = ?`)
209
- .bind(updated ? 1 : 0, Date.now(), sessionId)
210
- .run();
211
- }
212
- catch (caught) {
213
- if (sessionId) {
214
- const failedAt = Date.now();
215
- const nextAttemptAt = failedAt + digestRetryDelayMs(failureCount + 1);
216
- await env.DB.prepare(`UPDATE sessions
217
- SET digest_failure_count = ?,
218
- digest_next_attempt_at = ?,
219
- digest_last_error = ?
220
- WHERE session_id = ?`)
221
- .bind(failureCount + 1, nextAttemptAt, digestErrorMessage(caught), sessionId)
222
- .run();
104
+ for (let index = 0; index < DIGEST_SESSIONS_PER_CRON; index += 1) {
105
+ const attemptedAt = Date.now();
106
+ const candidate = await selectDigestCandidate(env.DB, attemptedAt);
107
+ if (!candidate)
108
+ return;
109
+ await attemptScheduledDigest(env, candidate, attemptedAt);
223
110
  }
224
- logWorkerError("history_digest_refresh_failed", caught, {
225
- sessionId: sessionId ?? "unknown",
226
- });
227
111
  }
228
112
  finally {
229
113
  await env.DB.prepare("UPDATE digest_worker_lease SET claimed_at = NULL WHERE singleton = 1 AND claimed_at = ?")
@@ -232,12 +116,100 @@ export default {
232
116
  }
233
117
  },
234
118
  };
235
- export function digestRetryDelayMs(failureCount) {
236
- return Math.min(DIGEST_RETRY_BASE_MS * 2 ** Math.max(0, failureCount - 1), DIGEST_RETRY_MAX_MS);
119
+ async function selectDigestCandidate(database, now) {
120
+ const candidate = await database
121
+ .prepare(`SELECT s.session_id, s.digest_failure_count
122
+ FROM sessions s
123
+ JOIN entries latest ON latest.session_id = s.session_id
124
+ AND latest.position = (SELECT MAX(position) FROM entries WHERE session_id = s.session_id)
125
+ LEFT JOIN entries digested ON digested.session_id = s.session_id
126
+ AND digested.entry_id = s.digest_through_entry_id
127
+ WHERE (s.digest_through_entry_id IS NULL OR s.digest_through_entry_id != latest.entry_id)
128
+ AND s.updated_at <= ?
129
+ AND (s.digest_next_attempt_at IS NULL OR s.digest_next_attempt_at <= ?)
130
+ AND (
131
+ s.digest_through_entry_id IS NULL
132
+ OR latest.position - COALESCE(digested.position, 0) >= ?
133
+ OR s.updated_at <= ?
134
+ )
135
+ ORDER BY COALESCE(s.digest_last_attempt_at, 0), s.updated_at, s.session_id
136
+ LIMIT 1`)
137
+ .bind(now - DIGEST_IDLE_MS, now, DIGEST_NEW_ENTRY_THRESHOLD, now - DIGEST_MAX_STALENESS_MS)
138
+ .first();
139
+ if (!candidate)
140
+ return undefined;
141
+ return {
142
+ sessionId: candidate.session_id,
143
+ failureCount: Number(candidate.digest_failure_count),
144
+ };
145
+ }
146
+ async function attemptScheduledDigest(env, candidate, attemptedAt) {
147
+ try {
148
+ await env.DB.prepare("UPDATE sessions SET digest_last_attempt_at = ? WHERE session_id = ?")
149
+ .bind(attemptedAt, candidate.sessionId)
150
+ .run();
151
+ const updated = await refreshDigestIfNeeded(env, candidate.sessionId);
152
+ await env.DB.prepare(`UPDATE sessions
153
+ SET digest_failure_count = 0,
154
+ digest_next_attempt_at = NULL,
155
+ digest_last_error = NULL,
156
+ digest_last_success_at = CASE WHEN ? THEN ? ELSE digest_last_success_at END
157
+ WHERE session_id = ?`)
158
+ .bind(updated ? 1 : 0, Date.now(), candidate.sessionId)
159
+ .run();
160
+ }
161
+ catch (caught) {
162
+ const failedAt = Date.now();
163
+ await env.DB.prepare(`UPDATE sessions
164
+ SET digest_failure_count = ?,
165
+ digest_next_attempt_at = ?,
166
+ digest_last_error = ?
167
+ WHERE session_id = ?`)
168
+ .bind(candidate.failureCount + 1, failedAt +
169
+ digestRetryDelayMs(candidate.failureCount + 1, retryAfterDelayMs(caught, failedAt)), digestErrorMessage(caught), candidate.sessionId)
170
+ .run();
171
+ logWorkerError("history_digest_refresh_failed", caught, {
172
+ sessionId: candidate.sessionId,
173
+ });
174
+ }
175
+ }
176
+ export function digestRetryDelayMs(failureCount, retryAfterMs = 0) {
177
+ const backoff = Math.min(DIGEST_RETRY_BASE_MS * 2 ** Math.max(0, failureCount - 1), DIGEST_RETRY_MAX_MS);
178
+ return Math.min(Math.max(backoff, retryAfterMs), DIGEST_RETRY_MAX_MS);
179
+ }
180
+ function retryAfterDelayMs(caught, now) {
181
+ const value = retryAfterValue(caught, new Set());
182
+ if (typeof value === "number")
183
+ return Number.isFinite(value) && value > 0 ? value * 1_000 : 0;
184
+ if (typeof value !== "string")
185
+ return 0;
186
+ const seconds = Number(value);
187
+ if (Number.isFinite(seconds) && seconds > 0)
188
+ return seconds * 1_000;
189
+ const date = Date.parse(value);
190
+ return Number.isFinite(date) && date > now ? date - now : 0;
191
+ }
192
+ function retryAfterValue(value, visited) {
193
+ if (value instanceof Headers)
194
+ return value.get("retry-after");
195
+ if (typeof value !== "object" || value === null || visited.has(value))
196
+ return undefined;
197
+ visited.add(value);
198
+ const record = value;
199
+ const direct = record["retry-after"] ?? record["Retry-After"];
200
+ if (direct !== undefined)
201
+ return direct;
202
+ for (const key of ["headers", "response", "cause"]) {
203
+ const nested = retryAfterValue(record[key], visited);
204
+ if (nested !== undefined)
205
+ return nested;
206
+ }
207
+ return undefined;
237
208
  }
238
209
  function digestErrorMessage(caught) {
239
- if (caught instanceof Error)
210
+ if (caught instanceof Error && caught.cause === undefined) {
240
211
  return `${caught.name}: ${caught.message}`.slice(0, 2_000);
212
+ }
241
213
  if (typeof caught === "object" && caught !== null) {
242
214
  const details = providerErrorDetails(caught);
243
215
  return JSON.stringify(details).slice(0, 2_000);
@@ -245,26 +217,35 @@ function digestErrorMessage(caught) {
245
217
  return String(caught).slice(0, 2_000);
246
218
  }
247
219
  function logWorkerError(event, caught, context) {
248
- const error = caught instanceof Error
220
+ const error = typeof caught === "object" && caught !== null
249
221
  ? {
250
- name: caught.name,
251
- message: caught.message.slice(0, 2_000),
252
- ...(caught.stack ? { stack: caught.stack.slice(0, 4_000) } : {}),
222
+ ...providerErrorDetails(caught),
223
+ ...(caught instanceof Error && caught.stack
224
+ ? { stack: caught.stack.slice(0, 4_000) }
225
+ : {}),
253
226
  }
254
- : typeof caught === "object" && caught !== null
255
- ? providerErrorDetails(caught)
256
- : { message: String(caught).slice(0, 2_000) };
227
+ : { message: String(caught).slice(0, 2_000) };
257
228
  console.error(JSON.stringify({ event, ...context, error }));
258
229
  }
259
- function providerErrorDetails(error) {
230
+ function providerErrorDetails(error, depth = 0) {
260
231
  const details = {};
261
- for (const key of ["name", "message", "code", "status", "statusCode", "internalCode"]) {
232
+ for (const key of ["name", "message", "state", "code", "status", "statusCode", "internalCode"]) {
262
233
  const value = error[key];
263
234
  if (typeof value === "string")
264
235
  details[key] = value.slice(0, 2_000);
265
236
  if (typeof value === "number" || typeof value === "boolean")
266
237
  details[key] = value;
267
238
  }
239
+ if (depth < 2) {
240
+ for (const key of ["error", "cause"]) {
241
+ const value = error[key];
242
+ if (typeof value === "string")
243
+ details[key] = value.slice(0, 2_000);
244
+ if (typeof value === "object" && value !== null) {
245
+ details[key] = providerErrorDetails(value, depth + 1);
246
+ }
247
+ }
248
+ }
268
249
  return details;
269
250
  }
270
251
  function authorize(request, env) {
@@ -273,47 +254,6 @@ function authorize(request, env) {
273
254
  return false;
274
255
  return request.headers.get("authorization") === `Bearer ${expected}`;
275
256
  }
276
- async function initialize(database) {
277
- if (!initialization) {
278
- initialization = migrateHistoryDatabase(database).catch((caught) => {
279
- initialization = undefined;
280
- throw caught;
281
- });
282
- }
283
- await initialization;
284
- }
285
- export async function migrateHistoryDatabase(database) {
286
- await database
287
- .prepare(`CREATE TABLE IF NOT EXISTS history_schema_migrations (
288
- version INTEGER PRIMARY KEY,
289
- applied_at INTEGER NOT NULL
290
- )`)
291
- .run();
292
- const rows = await database
293
- .prepare("SELECT version FROM history_schema_migrations ORDER BY version")
294
- .all();
295
- const applied = new Set(rows.results.map((row) => Number(row.version)));
296
- const latestKnown = HISTORY_SCHEMA_MIGRATIONS.at(-1)?.version ?? 0;
297
- const latestApplied = Math.max(0, ...applied);
298
- if (latestApplied > latestKnown) {
299
- throw new Error(`history database schema ${latestApplied} is newer than supported version ${latestKnown}`);
300
- }
301
- for (let version = 1; version <= latestApplied; version += 1) {
302
- if (!applied.has(version)) {
303
- throw new Error(`history database schema migrations are not sequential at version ${version}`);
304
- }
305
- }
306
- for (const migration of HISTORY_SCHEMA_MIGRATIONS) {
307
- if (applied.has(migration.version))
308
- continue;
309
- await database.batch([
310
- ...migration.statements.map((statement) => database.prepare(statement)),
311
- database
312
- .prepare("INSERT OR IGNORE INTO history_schema_migrations (version, applied_at) VALUES (?, ?)")
313
- .bind(migration.version, Date.now()),
314
- ]);
315
- }
316
- }
317
257
  export async function applyOperation(database, operation) {
318
258
  const existing = await database
319
259
  .prepare("SELECT 1 AS found FROM operations WHERE operation_id = ?")
@@ -352,15 +292,18 @@ export async function applyOperation(database, operation) {
352
292
  .prepare("SELECT COALESCE(MAX(position), 0) AS position FROM entries WHERE session_id = ?")
353
293
  .bind(operation.sessionId)
354
294
  .first();
295
+ const existingEntries = await database
296
+ .prepare(`SELECT entry_id FROM entries
297
+ WHERE session_id = ? AND entry_id IN (${operation.entries.map(() => "?").join(", ")})`)
298
+ .bind(operation.sessionId, ...operation.entries.map((entry) => entry.id))
299
+ .all();
300
+ const existingEntryIds = new Set(existingEntries.results.map((row) => row.entry_id));
355
301
  let position = Number(current?.position ?? 0);
356
302
  let updatedAt = 0;
357
303
  for (const entry of operation.entries) {
358
- const duplicate = await database
359
- .prepare("SELECT 1 AS found FROM entries WHERE session_id = ? AND entry_id = ?")
360
- .bind(operation.sessionId, entry.id)
361
- .first();
362
- if (duplicate)
304
+ if (existingEntryIds.has(entry.id))
363
305
  continue;
306
+ existingEntryIds.add(entry.id);
364
307
  position += 1;
365
308
  updatedAt = Math.max(updatedAt, entry.timestamp);
366
309
  const searchText = entrySearchText(entry);
@@ -726,10 +669,17 @@ export async function runAi(ai, prompt, text) {
726
669
  reasoning: { effort: "medium" },
727
670
  ...(text ? { text } : {}),
728
671
  });
729
- const outputText = result.output_text || responsesOutputText(result.output ?? []);
730
- if (!outputText)
731
- throw new Error("Cloudflare AI returned an invalid digest response");
732
- return outputText;
672
+ const response = result;
673
+ const outputText = response.output_text || responsesOutputText(response.output ?? []);
674
+ if (outputText)
675
+ return outputText;
676
+ if (response.state === "Failed" || response.error !== undefined) {
677
+ const message = typeof response.error === "string"
678
+ ? response.error
679
+ : JSON.stringify(providerErrorDetails(response));
680
+ throw new Error(`Cloudflare AI failed: ${message}`, { cause: response });
681
+ }
682
+ throw new Error("Cloudflare AI returned an invalid digest response");
733
683
  }
734
684
  function responsesOutputText(output) {
735
685
  return output
@@ -817,7 +767,7 @@ function parseEntry(raw) {
817
767
  if (!Object.hasOwn(entry, "content")) {
818
768
  throw invalidRequest(`${type} entry.content is required`);
819
769
  }
820
- return { ...base, type, content: entry.content };
770
+ return validateEntrySize({ ...base, type, content: entry.content });
821
771
  }
822
772
  if (!Object.hasOwn(entry, "arguments") || !Object.hasOwn(entry, "result")) {
823
773
  throw invalidRequest("tool entry.arguments and entry.result are required");
@@ -829,14 +779,20 @@ function parseEntry(raw) {
829
779
  outcome !== "cancelled") {
830
780
  throw invalidRequest("tool entry.outcome is invalid");
831
781
  }
832
- return {
782
+ return validateEntrySize({
833
783
  ...base,
834
784
  type,
835
785
  name: requiredString(entry.name, "tool entry.name", 256),
836
786
  arguments: entry.arguments,
837
787
  result: entry.result,
838
788
  outcome,
839
- };
789
+ });
790
+ }
791
+ function validateEntrySize(entry) {
792
+ if (utf8ByteLength(JSON.stringify(entry)) > MAX_ENTRY_BYTES) {
793
+ throw invalidRequest(`entries must not exceed ${MAX_ENTRY_BYTES} serialized bytes`);
794
+ }
795
+ return entry;
840
796
  }
841
797
  function parseAttributeFilters(raw) {
842
798
  if (raw === undefined)
@@ -907,7 +863,8 @@ async function readJson(request) {
907
863
  }
908
864
  }
909
865
  function entrySearchText(entry) {
910
- return recursiveText(entry).slice(0, 1_000_000);
866
+ const bytes = new TextEncoder().encode(recursiveText(entry));
867
+ return decodeUtf8Head(bytes, MAX_ENTRY_SEARCH_TEXT_BYTES);
911
868
  }
912
869
  function recursiveText(value) {
913
870
  if (typeof value === "string")
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/history/worker/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/history/worker/index.ts"],"names":[],"mappings":"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"}
@@ -562,7 +562,7 @@ class LocalHostedSessionHandle {
562
562
  if (userMessage && hasGoalTurnMetadata(userMessage.message)) {
563
563
  throw new SessionRetryUnavailableError("goal-controlled turns cannot be retried; resume a blocked goal or start a new goal");
564
564
  }
565
- if (!userMessage || !(await this.session.prepareRetry(userMessage.id))) {
565
+ if (!userMessage) {
566
566
  throw new SessionRetryUnavailableError("no user turn is available to retry");
567
567
  }
568
568
  return await this.runTurn();