@duetso/agent 0.1.101 → 0.1.103
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/package.json +1 -1
- package/dist/src/memory/embedding-worker.d.ts +38 -0
- package/dist/src/memory/embedding-worker.d.ts.map +1 -1
- package/dist/src/memory/embedding-worker.js +106 -20
- package/dist/src/memory/embedding-worker.js.map +1 -1
- package/dist/src/memory/migrations.d.ts.map +1 -1
- package/dist/src/memory/migrations.js +37 -0
- package/dist/src/memory/migrations.js.map +1 -1
- package/package.json +1 -1
package/dist/package.json
CHANGED
|
@@ -7,9 +7,42 @@ export interface EmbeddingBackfillWorkerOptions {
|
|
|
7
7
|
embed: EmbedFn;
|
|
8
8
|
/** Path to append progress lines to. Optional; when omitted the worker logs nothing. */
|
|
9
9
|
logPath?: string;
|
|
10
|
+
/**
|
|
11
|
+
* Idle delay between outer drain ticks in milliseconds. Defaults to
|
|
12
|
+
* 10s, which gives a peer duet CLI room to acquire the lock between
|
|
13
|
+
* drains. Tests override this to drive several ticks per second.
|
|
14
|
+
*/
|
|
15
|
+
idleSleepMs?: number;
|
|
16
|
+
/**
|
|
17
|
+
* Backoff after a failed drain in milliseconds. Defaults to 60s.
|
|
18
|
+
* Tests override this so a transient-error case does not block the
|
|
19
|
+
* suite for a full minute.
|
|
20
|
+
*/
|
|
21
|
+
errorSleepMs?: number;
|
|
22
|
+
/**
|
|
23
|
+
* Minimum time between re-embed attempts for the same observation
|
|
24
|
+
* id, in milliseconds. Defaults to 5 minutes. Caps unbounded
|
|
25
|
+
* re-embedding when something (typically the reflector's
|
|
26
|
+
* delete-and-reinsert cycle) keeps wiping a row's embedding behind
|
|
27
|
+
* the worker's back.
|
|
28
|
+
*/
|
|
29
|
+
attemptCooldownMs?: number;
|
|
30
|
+
/**
|
|
31
|
+
* Maximum size of the live log file in bytes before it is rotated
|
|
32
|
+
* to `<logPath>.1` (replacing any prior rotation). Defaults to 1 MB.
|
|
33
|
+
* Each call to `log` checks the current size first and rotates
|
|
34
|
+
* before appending, so a chronic failure cannot grow the log without
|
|
35
|
+
* bound.
|
|
36
|
+
*/
|
|
37
|
+
logMaxBytes?: number;
|
|
10
38
|
}
|
|
11
39
|
export declare class EmbeddingBackfillWorker {
|
|
12
40
|
private readonly options;
|
|
41
|
+
private readonly idleSleepMs;
|
|
42
|
+
private readonly errorSleepMs;
|
|
43
|
+
private readonly attemptCooldownMs;
|
|
44
|
+
private readonly logMaxBytes;
|
|
45
|
+
private readonly recentAttempts;
|
|
13
46
|
private abortController?;
|
|
14
47
|
private runningPromise?;
|
|
15
48
|
constructor(options: EmbeddingBackfillWorkerOptions);
|
|
@@ -23,6 +56,11 @@ export declare class EmbeddingBackfillWorker {
|
|
|
23
56
|
stop(): Promise<void>;
|
|
24
57
|
private run;
|
|
25
58
|
private selectBatch;
|
|
59
|
+
/**
|
|
60
|
+
* Return the ids currently inside the attempt-cooldown window and
|
|
61
|
+
* forget anything older so the map cannot grow unbounded.
|
|
62
|
+
*/
|
|
63
|
+
private collectCooledIds;
|
|
26
64
|
private persistBatch;
|
|
27
65
|
private log;
|
|
28
66
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embedding-worker.d.ts","sourceRoot":"","sources":["../../../src/memory/embedding-worker.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"embedding-worker.d.ts","sourceRoot":"","sources":["../../../src/memory/embedding-worker.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAuClD,MAAM,WAAW,8BAA8B;IAC7C,sEAAsE;IACtE,OAAO,EAAE,aAAa,CAAC;IACvB,+EAA+E;IAC/E,KAAK,EAAE,OAAO,CAAC;IACf,wFAAwF;IACxF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAID,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IACzD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IAKrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6B;IAC5D,OAAO,CAAC,eAAe,CAAC,CAAkB;IAC1C,OAAO,CAAC,cAAc,CAAC,CAAgB;gBAE3B,OAAO,EAAE,8BAA8B;IAQnD,wEAAwE;IACxE,KAAK,IAAI,IAAI;IAMb;;;;OAIG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAOb,GAAG;YAsCH,WAAW;IAyBzB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;YAcV,YAAY;IAqC1B,OAAO,CAAC,GAAG;CA+BZ"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { appendFileSync, mkdirSync } from "node:fs";
|
|
1
|
+
import { appendFileSync, mkdirSync, renameSync, statSync } from "node:fs";
|
|
2
2
|
import { dirname } from "node:path";
|
|
3
3
|
/**
|
|
4
4
|
* Background worker that fills missing embeddings while the CLI is
|
|
@@ -22,14 +22,40 @@ import { dirname } from "node:path";
|
|
|
22
22
|
* after a backoff. The worker never throws to the caller.
|
|
23
23
|
*/
|
|
24
24
|
const BATCH_SIZE = 50;
|
|
25
|
-
const
|
|
26
|
-
const
|
|
25
|
+
const DEFAULT_IDLE_SLEEP_MS = 10_000;
|
|
26
|
+
const DEFAULT_ERROR_SLEEP_MS = 60_000;
|
|
27
|
+
// Cap how often a single observation may be re-embedded. The production
|
|
28
|
+
// memory store can churn rows (the reflector deletes and re-inserts a
|
|
29
|
+
// session's observations, which cascade-deletes their embeddings). If
|
|
30
|
+
// the embedding row vanishes between drains we should re-embed at
|
|
31
|
+
// most once per cooldown rather than running an unbounded hot loop
|
|
32
|
+
// over the same ids.
|
|
33
|
+
const DEFAULT_ATTEMPT_COOLDOWN_MS = 5 * 60_000;
|
|
34
|
+
// Snippet length for embedding-failure log lines. The remote endpoint
|
|
35
|
+
// occasionally responds with a full HTML page when misrouted (404 from
|
|
36
|
+
// the marketing site) and dumping the whole body fills the log with
|
|
37
|
+
// tens of kilobytes per failure.
|
|
38
|
+
const ERROR_BODY_LOG_MAX = 200;
|
|
39
|
+
const DEFAULT_LOG_MAX_BYTES = 1024 * 1024;
|
|
27
40
|
export class EmbeddingBackfillWorker {
|
|
28
41
|
options;
|
|
42
|
+
idleSleepMs;
|
|
43
|
+
errorSleepMs;
|
|
44
|
+
attemptCooldownMs;
|
|
45
|
+
logMaxBytes;
|
|
46
|
+
// Per-id record of the last attempt timestamp. selectBatch filters
|
|
47
|
+
// out ids attempted within the cooldown, breaking the hot loop when
|
|
48
|
+
// a row's embedding keeps disappearing between drains. Entries are
|
|
49
|
+
// purged lazily as they expire.
|
|
50
|
+
recentAttempts = new Map();
|
|
29
51
|
abortController;
|
|
30
52
|
runningPromise;
|
|
31
53
|
constructor(options) {
|
|
32
54
|
this.options = options;
|
|
55
|
+
this.idleSleepMs = options.idleSleepMs ?? DEFAULT_IDLE_SLEEP_MS;
|
|
56
|
+
this.errorSleepMs = options.errorSleepMs ?? DEFAULT_ERROR_SLEEP_MS;
|
|
57
|
+
this.attemptCooldownMs = options.attemptCooldownMs ?? DEFAULT_ATTEMPT_COOLDOWN_MS;
|
|
58
|
+
this.logMaxBytes = options.logMaxBytes ?? DEFAULT_LOG_MAX_BYTES;
|
|
33
59
|
}
|
|
34
60
|
/** Start the background loop. Idempotent — a second call is a no-op. */
|
|
35
61
|
start() {
|
|
@@ -63,6 +89,12 @@ export class EmbeddingBackfillWorker {
|
|
|
63
89
|
const batch = await this.selectBatch(db);
|
|
64
90
|
if (batch.length === 0)
|
|
65
91
|
return;
|
|
92
|
+
// Stamp the attempt before we await the embedding so a
|
|
93
|
+
// failure mid-call still counts as an attempt and the same
|
|
94
|
+
// ids do not get retried in a tight loop on the next drain.
|
|
95
|
+
const attemptAt = Date.now();
|
|
96
|
+
for (const row of batch)
|
|
97
|
+
this.recentAttempts.set(row.id, attemptAt);
|
|
66
98
|
const result = await this.options.embed(batch.map((row) => row.content));
|
|
67
99
|
if (result.embeddings.length !== batch.length) {
|
|
68
100
|
throw new Error(`Embedding response length (${result.embeddings.length}) did not match batch size (${batch.length})`);
|
|
@@ -73,14 +105,13 @@ export class EmbeddingBackfillWorker {
|
|
|
73
105
|
});
|
|
74
106
|
if (signal.aborted)
|
|
75
107
|
return;
|
|
76
|
-
await sleep(
|
|
108
|
+
await sleep(this.idleSleepMs, signal);
|
|
77
109
|
}
|
|
78
110
|
catch (error) {
|
|
79
111
|
if (signal.aborted)
|
|
80
112
|
return;
|
|
81
|
-
|
|
82
|
-
this.
|
|
83
|
-
await sleep(ERROR_SLEEP_MS, signal);
|
|
113
|
+
this.log(`Embedding batch failed: ${summarizeError(error)}`);
|
|
114
|
+
await sleep(this.errorSleepMs, signal);
|
|
84
115
|
}
|
|
85
116
|
}
|
|
86
117
|
}
|
|
@@ -89,16 +120,39 @@ export class EmbeddingBackfillWorker {
|
|
|
89
120
|
// rows with no embedding yet. The composite index on
|
|
90
121
|
// (kind, priority, created_at DESC) carries the ORDER BY without a
|
|
91
122
|
// separate sort.
|
|
123
|
+
//
|
|
124
|
+
// The exclusion list comes from `recentAttempts` and caps how
|
|
125
|
+
// often the worker may retry the same id, even if its embedding
|
|
126
|
+
// row keeps being cascade-deleted between drains.
|
|
127
|
+
const excludedIds = this.collectCooledIds();
|
|
92
128
|
const result = await db.query(`SELECT o.id, o.content
|
|
93
129
|
FROM observations o
|
|
94
130
|
LEFT JOIN observation_embeddings e ON e.observation_id = o.id
|
|
95
131
|
WHERE e.observation_id IS NULL
|
|
132
|
+
AND NOT (o.id = ANY($2::text[]))
|
|
96
133
|
ORDER BY
|
|
97
134
|
CASE o.priority WHEN 'high' THEN 3 WHEN 'medium' THEN 2 ELSE 1 END DESC,
|
|
98
135
|
o.created_at DESC
|
|
99
|
-
LIMIT $1`, [BATCH_SIZE]);
|
|
136
|
+
LIMIT $1`, [BATCH_SIZE, excludedIds]);
|
|
100
137
|
return result.rows;
|
|
101
138
|
}
|
|
139
|
+
/**
|
|
140
|
+
* Return the ids currently inside the attempt-cooldown window and
|
|
141
|
+
* forget anything older so the map cannot grow unbounded.
|
|
142
|
+
*/
|
|
143
|
+
collectCooledIds() {
|
|
144
|
+
const now = Date.now();
|
|
145
|
+
const cutoff = now - this.attemptCooldownMs;
|
|
146
|
+
const active = [];
|
|
147
|
+
for (const [id, at] of this.recentAttempts) {
|
|
148
|
+
if (at < cutoff) {
|
|
149
|
+
this.recentAttempts.delete(id);
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
152
|
+
active.push(id);
|
|
153
|
+
}
|
|
154
|
+
return active;
|
|
155
|
+
}
|
|
102
156
|
async persistBatch(db, batch, vectors, model) {
|
|
103
157
|
// One transaction so a partial network or write failure does not
|
|
104
158
|
// leave the embeddings table half-populated relative to the
|
|
@@ -107,21 +161,19 @@ export class EmbeddingBackfillWorker {
|
|
|
107
161
|
// future re-embedding pass match the deprecated tag and refresh
|
|
108
162
|
// only the affected rows.
|
|
109
163
|
//
|
|
110
|
-
//
|
|
111
|
-
//
|
|
112
|
-
//
|
|
113
|
-
//
|
|
114
|
-
//
|
|
115
|
-
//
|
|
116
|
-
// and lets the surviving rows commit.
|
|
164
|
+
// No FK exists between `observation_embeddings` and `observations`
|
|
165
|
+
// (migration 7 dropped the cascade), so a bare INSERT is safe even
|
|
166
|
+
// if the parent row was deleted between `selectBatch` and here.
|
|
167
|
+
// Any resulting orphan embedding is harmless — the recall path
|
|
168
|
+
// JOINs back to `observations` and filters orphans out — and it
|
|
169
|
+
// survives a same-id reinsert without forcing a re-embed.
|
|
117
170
|
await db.transaction(async (tx) => {
|
|
118
171
|
const now = Date.now();
|
|
119
172
|
for (let index = 0; index < batch.length; index++) {
|
|
120
173
|
const row = batch[index];
|
|
121
174
|
const vector = vectors[index];
|
|
122
175
|
await tx.query(`INSERT INTO observation_embeddings (observation_id, model, vector, created_at)
|
|
123
|
-
|
|
124
|
-
WHERE EXISTS (SELECT 1 FROM observations WHERE id = $1)
|
|
176
|
+
VALUES ($1, $2, $3::vector, $4)
|
|
125
177
|
ON CONFLICT (observation_id) DO UPDATE SET
|
|
126
178
|
model = EXCLUDED.model,
|
|
127
179
|
vector = EXCLUDED.vector,
|
|
@@ -130,11 +182,29 @@ export class EmbeddingBackfillWorker {
|
|
|
130
182
|
});
|
|
131
183
|
}
|
|
132
184
|
log(message) {
|
|
133
|
-
|
|
185
|
+
const logPath = this.options.logPath;
|
|
186
|
+
if (!logPath)
|
|
134
187
|
return;
|
|
135
188
|
try {
|
|
136
|
-
mkdirSync(dirname(
|
|
137
|
-
|
|
189
|
+
mkdirSync(dirname(logPath), { recursive: true });
|
|
190
|
+
// Rotate before appending so the live file never exceeds the
|
|
191
|
+
// cap by more than one line. The single `.1` rotation keeps the
|
|
192
|
+
// most recent overflow available for post-mortem without
|
|
193
|
+
// accumulating an unbounded ring of files.
|
|
194
|
+
try {
|
|
195
|
+
if (statSync(logPath).size >= this.logMaxBytes) {
|
|
196
|
+
renameSync(logPath, `${logPath}.1`);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
catch {
|
|
200
|
+
// No existing file or stat failed; appendFileSync will create.
|
|
201
|
+
}
|
|
202
|
+
// Include the pid so multi-CLI runs (which share the log file
|
|
203
|
+
// via the same HOME-backed `.duet/logs/` path) can be
|
|
204
|
+
// disambiguated. Each appendFileSync call writes a single line
|
|
205
|
+
// well under PIPE_BUF, so O_APPEND keeps lines from different
|
|
206
|
+
// processes intact even when they interleave.
|
|
207
|
+
appendFileSync(logPath, `[${new Date().toISOString()} pid=${process.pid}] ${message}\n`, "utf8");
|
|
138
208
|
}
|
|
139
209
|
catch {
|
|
140
210
|
// Logging is best-effort; failures here must not bring the worker
|
|
@@ -150,6 +220,22 @@ export class EmbeddingBackfillWorker {
|
|
|
150
220
|
function formatVector(values) {
|
|
151
221
|
return `[${values.join(",")}]`;
|
|
152
222
|
}
|
|
223
|
+
/**
|
|
224
|
+
* Render an error for the worker log without dumping multi-kilobyte
|
|
225
|
+
* HTML bodies. The embedding endpoint can respond with a full Next.js
|
|
226
|
+
* 404 page (over 50KB) when misrouted, and the raw message would
|
|
227
|
+
* otherwise be appended verbatim on every retry.
|
|
228
|
+
*/
|
|
229
|
+
function summarizeError(error) {
|
|
230
|
+
const raw = error instanceof Error ? error.message : String(error);
|
|
231
|
+
const collapsed = raw
|
|
232
|
+
.replace(/<[^>]+>/g, " ")
|
|
233
|
+
.replace(/\s+/g, " ")
|
|
234
|
+
.trim();
|
|
235
|
+
if (collapsed.length <= ERROR_BODY_LOG_MAX)
|
|
236
|
+
return collapsed;
|
|
237
|
+
return `${collapsed.slice(0, ERROR_BODY_LOG_MAX)}… (truncated ${collapsed.length - ERROR_BODY_LOG_MAX} chars)`;
|
|
238
|
+
}
|
|
153
239
|
function sleep(ms, signal) {
|
|
154
240
|
return new Promise((resolve) => {
|
|
155
241
|
if (signal.aborted) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embedding-worker.js","sourceRoot":"","sources":["../../../src/memory/embedding-worker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"embedding-worker.js","sourceRoot":"","sources":["../../../src/memory/embedding-worker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../../src/memory/migrations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,WAAW,SAAS;IACxB,oFAAoF;IACpF,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,WAAW,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,EAAE,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC;
|
|
1
|
+
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../../src/memory/migrations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,WAAW,SAAS;IACxB,oFAAoF;IACpF,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,WAAW,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,EAAE,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC;AAiVD,MAAM,WAAW,eAAe;IAC9B,4EAA4E;IAC5E,WAAW,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,SAAS,EAAE,MAAM,CAAC;IAClB,2EAA2E;IAC3E,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAwCxE;AAED,8DAA8D;AAC9D,eAAO,MAAM,qBAAqB,EAAE,MAAwC,CAAC;AAE7E,qDAAqD;AACrD,eAAO,MAAM,qBAAqB,EAAE,SAAS,SAAS,EAAe,CAAC"}
|
|
@@ -267,6 +267,43 @@ const MIGRATIONS = [
|
|
|
267
267
|
`);
|
|
268
268
|
},
|
|
269
269
|
},
|
|
270
|
+
{
|
|
271
|
+
version: 7,
|
|
272
|
+
description: "drop FK cascade on observation_embeddings so embeddings survive parent churn",
|
|
273
|
+
up: async (tx) => {
|
|
274
|
+
// The original `REFERENCES observations(id) ON DELETE CASCADE`
|
|
275
|
+
// caused a hot-loop bug: the reflector's session-scoped
|
|
276
|
+
// delete-and-reinsert cycle would wipe every embedding for a
|
|
277
|
+
// session via cascade, and the backfill worker would then
|
|
278
|
+
// re-embed the same ids over and over (or, after the cooldown
|
|
279
|
+
// was added, leave them silently un-embedded for five minutes).
|
|
280
|
+
//
|
|
281
|
+
// Rebuild the table without the FK so an embedding row outlives
|
|
282
|
+
// a parent delete. Orphans are harmless: the recall path JOINs
|
|
283
|
+
// back to `observations` and naturally filters them out, and a
|
|
284
|
+
// future reinsert of the same id keeps its existing embedding
|
|
285
|
+
// until the worker refreshes it through the ON CONFLICT path.
|
|
286
|
+
//
|
|
287
|
+
// Data-preserving rebuild: create the new table under a temp
|
|
288
|
+
// name, copy every row across, drop the old table, then rename
|
|
289
|
+
// the new one into place. The PK constraint inherits the temp
|
|
290
|
+
// name (`observation_embeddings_new_pkey`); renaming it after
|
|
291
|
+
// the table rename would collide with the v6 PK that the DROP
|
|
292
|
+
// is about to remove.
|
|
293
|
+
await tx.exec(`
|
|
294
|
+
CREATE TABLE observation_embeddings_new (
|
|
295
|
+
observation_id TEXT PRIMARY KEY,
|
|
296
|
+
model TEXT NOT NULL,
|
|
297
|
+
vector vector(3072) NOT NULL,
|
|
298
|
+
created_at BIGINT NOT NULL
|
|
299
|
+
)
|
|
300
|
+
`);
|
|
301
|
+
await tx.exec(`INSERT INTO observation_embeddings_new (observation_id, model, vector, created_at)
|
|
302
|
+
SELECT observation_id, model, vector, created_at FROM observation_embeddings`);
|
|
303
|
+
await tx.exec(`DROP TABLE observation_embeddings`);
|
|
304
|
+
await tx.exec(`ALTER TABLE observation_embeddings_new RENAME TO observation_embeddings`);
|
|
305
|
+
},
|
|
306
|
+
},
|
|
270
307
|
];
|
|
271
308
|
/**
|
|
272
309
|
* Bring the database up to the latest known schema version. Idempotent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../../src/memory/migrations.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../../src/memory/migrations.ts"],"names":[],"mappings":"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"}
|