draken 0.2.0 → 0.4.0
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/ACCEPTANCE.md +6 -3
- package/CHANGELOG.md +64 -0
- package/CONTRIBUTING.md +1 -1
- package/MEMORY.md +30 -8
- package/README.md +25 -9
- package/SETUP.md +2 -2
- package/SOURCES.md +1 -1
- package/VOICE.md +11 -3
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +6 -0
- package/dist/db/schema.js.map +1 -1
- package/dist/memory/automatic.d.ts +12 -6
- package/dist/memory/automatic.d.ts.map +1 -1
- package/dist/memory/automatic.js +65 -21
- package/dist/memory/automatic.js.map +1 -1
- package/dist/memory/context.d.ts +4 -4
- package/dist/memory/context.d.ts.map +1 -1
- package/dist/memory/context.js +64 -16
- package/dist/memory/context.js.map +1 -1
- package/dist/memory/embedding-pool.d.ts +1 -1
- package/dist/memory/embedding-pool.d.ts.map +1 -1
- package/dist/memory/embedding-pool.js +1 -1
- package/dist/memory/embedding-pool.js.map +1 -1
- package/dist/memory/index.d.ts +8 -2
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +195 -37
- package/dist/memory/index.js.map +1 -1
- package/dist/memory/model-files.d.ts +9 -0
- package/dist/memory/model-files.d.ts.map +1 -0
- package/dist/memory/model-files.js +13 -0
- package/dist/memory/model-files.js.map +1 -0
- package/dist/memory/model.d.ts +1 -1
- package/dist/memory/model.d.ts.map +1 -1
- package/dist/memory/model.js +11 -16
- package/dist/memory/model.js.map +1 -1
- package/dist/memory/readiness.d.ts +16 -0
- package/dist/memory/readiness.d.ts.map +1 -0
- package/dist/memory/readiness.js +131 -0
- package/dist/memory/readiness.js.map +1 -0
- package/dist/memory/reconcile.d.ts +11 -0
- package/dist/memory/reconcile.d.ts.map +1 -0
- package/dist/memory/reconcile.js +132 -0
- package/dist/memory/reconcile.js.map +1 -0
- package/dist/memory/service.d.ts +4 -2
- package/dist/memory/service.d.ts.map +1 -1
- package/dist/memory/service.js +34 -8
- package/dist/memory/service.js.map +1 -1
- package/dist/memory/sources.d.ts +2 -2
- package/dist/memory/sources.d.ts.map +1 -1
- package/dist/memory/sources.js +12 -5
- package/dist/memory/sources.js.map +1 -1
- package/dist/memory/storage.d.ts.map +1 -1
- package/dist/memory/storage.js +9 -0
- package/dist/memory/storage.js.map +1 -1
- package/dist/memory/types.d.ts +22 -1
- package/dist/memory/types.d.ts.map +1 -1
- package/dist/memory/types.js.map +1 -1
- package/dist/memory/worker.js +4 -2
- package/dist/memory/worker.js.map +1 -1
- package/dist/routes/live-voice.d.ts.map +1 -1
- package/dist/routes/live-voice.js +7 -1
- package/dist/routes/live-voice.js.map +1 -1
- package/dist/routes/memory.d.ts.map +1 -1
- package/dist/routes/memory.js +12 -2
- package/dist/routes/memory.js.map +1 -1
- package/dist/routes/sync.d.ts.map +1 -1
- package/dist/routes/sync.js +44 -10
- package/dist/routes/sync.js.map +1 -1
- package/dist/sync/answer-references.d.ts +10 -0
- package/dist/sync/answer-references.d.ts.map +1 -0
- package/dist/sync/answer-references.js +47 -0
- package/dist/sync/answer-references.js.map +1 -0
- package/dist/sync/automatic.d.ts +7 -0
- package/dist/sync/automatic.d.ts.map +1 -0
- package/dist/sync/automatic.js +56 -0
- package/dist/sync/automatic.js.map +1 -0
- package/dist/sync/collector.d.ts +1 -1
- package/dist/sync/collector.d.ts.map +1 -1
- package/dist/sync/collector.js +109 -69
- package/dist/sync/collector.js.map +1 -1
- package/dist/sync/cost.d.ts +2 -1
- package/dist/sync/cost.d.ts.map +1 -1
- package/dist/sync/cost.js +10 -6
- package/dist/sync/cost.js.map +1 -1
- package/dist/sync/manager.d.ts +7 -1
- package/dist/sync/manager.d.ts.map +1 -1
- package/dist/sync/manager.js +104 -19
- package/dist/sync/manager.js.map +1 -1
- package/dist/sync/reconciliation.d.ts +16 -0
- package/dist/sync/reconciliation.d.ts.map +1 -0
- package/dist/sync/reconciliation.js +22 -0
- package/dist/sync/reconciliation.js.map +1 -0
- package/dist/sync/store.d.ts +8 -1
- package/dist/sync/store.d.ts.map +1 -1
- package/dist/sync/store.js +51 -5
- package/dist/sync/store.js.map +1 -1
- package/dist/sync/tree.d.ts.map +1 -1
- package/dist/sync/tree.js +13 -7
- package/dist/sync/tree.js.map +1 -1
- package/dist/sync/usage.d.ts +6 -0
- package/dist/sync/usage.d.ts.map +1 -0
- package/dist/sync/usage.js +91 -0
- package/dist/sync/usage.js.map +1 -0
- package/dist/types.d.ts +46 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/voice/continuation.d.ts.map +1 -1
- package/dist/voice/continuation.js +1 -0
- package/dist/voice/continuation.js.map +1 -1
- package/dist/voice/history-focus.d.ts +14 -0
- package/dist/voice/history-focus.d.ts.map +1 -0
- package/dist/voice/history-focus.js +39 -0
- package/dist/voice/history-focus.js.map +1 -0
- package/dist/voice/live-context.d.ts +1 -1
- package/dist/voice/live-context.d.ts.map +1 -1
- package/dist/voice/live-context.js +3 -3
- package/dist/voice/live-context.js.map +1 -1
- package/dist/voice/live.d.ts.map +1 -1
- package/dist/voice/live.js +47 -33
- package/dist/voice/live.js.map +1 -1
- package/dist/voice/preparation.d.ts +8 -0
- package/dist/voice/preparation.d.ts.map +1 -0
- package/dist/voice/preparation.js +59 -0
- package/dist/voice/preparation.js.map +1 -0
- package/package.json +1 -1
- package/public/assets/index-BCDcSZkB.css +1 -0
- package/public/assets/index-SXgKBqZw.js +131 -0
- package/public/assets/{persona-XbLvCqRT.js → persona-BgbqhiLa.js} +1 -1
- package/public/index.html +3 -3
- package/public/persona/chat-avatar.webp +0 -0
- package/public/persona.html +3 -3
- package/voice/realtime/native.mjs +1 -1
- package/public/assets/index-CYz_kpAp.js +0 -126
- package/public/assets/index-DmRid5xE.css +0 -1
- /package/public/assets/{index-Ymd62i3g.js → index-S46UUaj8.js} +0 -0
package/dist/sync/collector.js
CHANGED
|
@@ -46,7 +46,7 @@ async function hashRegion(file, start, length) {
|
|
|
46
46
|
return (0, normalize_1.digest)(buffer.subarray(0, bytesRead));
|
|
47
47
|
}
|
|
48
48
|
/** Read only complete LF-terminated records. Never mutate a pi session file. */
|
|
49
|
-
async function readRecords(handle, file, offset, size, warnings) {
|
|
49
|
+
async function readRecords(handle, file, offset, size, warnings, signal) {
|
|
50
50
|
const records = [];
|
|
51
51
|
let pending = Buffer.alloc(0);
|
|
52
52
|
let consumed = offset;
|
|
@@ -54,6 +54,7 @@ async function readRecords(handle, file, offset, size, warnings) {
|
|
|
54
54
|
if (end <= offset)
|
|
55
55
|
return { records, offset };
|
|
56
56
|
for await (const chunk of fs_1.default.createReadStream(file, { fd: handle.fd, autoClose: false, start: offset, end: end - 1 })) {
|
|
57
|
+
signal?.throwIfAborted();
|
|
57
58
|
pending = Buffer.concat([pending, chunk]);
|
|
58
59
|
let newline;
|
|
59
60
|
while ((newline = pending.indexOf(10)) !== -1) {
|
|
@@ -79,9 +80,7 @@ async function readRecords(handle, file, offset, size, warnings) {
|
|
|
79
80
|
break;
|
|
80
81
|
}
|
|
81
82
|
}
|
|
82
|
-
|
|
83
|
-
warnings.push(`Large session ${file}: scan again to index the remaining records.`);
|
|
84
|
-
return { records, offset: consumed };
|
|
83
|
+
return { records, offset: consumed, reachedEnd: end === size };
|
|
85
84
|
}
|
|
86
85
|
function updateProjection(sessionId, leaf, agent) {
|
|
87
86
|
const db = (0, schema_1.getDb)();
|
|
@@ -126,9 +125,9 @@ async function pointersMatch(file, sessionId) {
|
|
|
126
125
|
}
|
|
127
126
|
return true;
|
|
128
127
|
}
|
|
129
|
-
async function indexFile(filePath, agent, root, warnings) {
|
|
128
|
+
async function indexFile(filePath, agent, root, warnings, signal) {
|
|
130
129
|
const db = (0, schema_1.getDb)();
|
|
131
|
-
|
|
130
|
+
let previous = db.prepare('SELECT * FROM agent_sessions WHERE path = ?').get(filePath);
|
|
132
131
|
if (previous && previous.agent !== agent)
|
|
133
132
|
throw new Error('Session path belongs to another agent');
|
|
134
133
|
const real = fs_1.default.realpathSync(filePath), base = fs_1.default.realpathSync(root);
|
|
@@ -144,7 +143,7 @@ async function indexFile(filePath, agent, root, warnings) {
|
|
|
144
143
|
return { added: 0 };
|
|
145
144
|
const identity = `${stat.dev}:${stat.ino}`;
|
|
146
145
|
const modified = stat.mtime.toISOString();
|
|
147
|
-
let reset = !previous || previous.id !== header.id || previous.file_identity !== identity || stat.size < previous.byte_offset;
|
|
146
|
+
let reset = !previous || previous.id !== header.id || previous.file_identity !== identity || stat.size < previous.byte_offset || previous.scanned_bytes < 0 || (previous.scanned_bytes === 0 && stat.size === previous.byte_offset);
|
|
148
147
|
if (previous && !reset) {
|
|
149
148
|
const boundary = await hashRegion(file, Math.max(0, previous.byte_offset - 256), Math.min(256, previous.byte_offset));
|
|
150
149
|
const prefix = await hashRegion(file, 0, Math.min(512, previous.byte_offset));
|
|
@@ -154,65 +153,76 @@ async function indexFile(filePath, agent, root, warnings) {
|
|
|
154
153
|
// tail unchanged. Verify old pointers before treating it as append-only.
|
|
155
154
|
if (!reset && modified !== previous.modified_at)
|
|
156
155
|
reset = !await pointersMatch(file, previous.id);
|
|
157
|
-
if (!reset && stat.size === previous.byte_offset && modified === previous.modified_at) {
|
|
156
|
+
if (!reset && previous.scanned_bytes > 0 && stat.size === previous.byte_offset && modified === previous.modified_at) {
|
|
157
|
+
db.prepare('UPDATE agent_sessions SET scanned_bytes=? WHERE id=? AND scanned_bytes!=?').run(stat.size, previous.id, stat.size);
|
|
158
158
|
return { id: previous.id, added: 0 };
|
|
159
159
|
}
|
|
160
160
|
}
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
if (agent === 'pi' && record?.type === 'session_info' && typeof record.name === 'string')
|
|
181
|
-
name = (0, normalize_1.cleanText)(record.name, 200);
|
|
182
|
-
if (agent === 'claude' && record?.type === 'custom-title' && typeof record.customTitle === 'string')
|
|
183
|
-
name = (0, normalize_1.cleanText)(record.customTitle, 200);
|
|
184
|
-
const entry = (0, adapters_1.normalizeSource)(header, { ...pointer, value: record });
|
|
185
|
-
if (entry) {
|
|
186
|
-
if (agent === 'claude' && identities.has(entry.entry_id) && identities.get(entry.entry_id) !== entry.event_key)
|
|
187
|
-
throw new Error('Conflicting Claude message UUID; no earlier content was overwritten');
|
|
188
|
-
identities.set(entry.entry_id, entry.event_key);
|
|
189
|
-
entries.push({ ...entry, ...pointer });
|
|
190
|
-
// Claude progress/request metadata can carry UUIDs without selecting a
|
|
191
|
-
// new conversation branch. Keep them as structural links only.
|
|
192
|
-
if (agent !== 'claude' || ['user', 'assistant'].includes(record.type) || (record.type === 'system' && record.subtype === 'compact_boundary'))
|
|
193
|
-
leaf = entry.entry_id;
|
|
194
|
-
if (!name && entry.role === 'user' && entry.text)
|
|
195
|
-
name = (0, normalize_1.cleanText)(entry.text.replace(/\s+/g, ' '), 100);
|
|
161
|
+
if (previous)
|
|
162
|
+
db.prepare('UPDATE agent_sessions SET scanned_bytes=0 WHERE id=? AND scanned_bytes!=0').run(previous.id);
|
|
163
|
+
let addedTotal = 0;
|
|
164
|
+
// Drain bounded chunks to this file's captured EOF, not a moving live tail.
|
|
165
|
+
// Each committed chunk survives cancellation; partial imports never get a receipt.
|
|
166
|
+
for (;;) {
|
|
167
|
+
signal?.throwIfAborted();
|
|
168
|
+
const warningStart = warnings.length;
|
|
169
|
+
const result = await readRecords(file, filePath, reset ? 0 : previous.byte_offset, stat.size, warnings, signal);
|
|
170
|
+
if (agent !== 'pi' && warnings.slice(warningStart).some(warning => warning.startsWith('Skipped malformed JSON')))
|
|
171
|
+
throw new Error('Malformed agent transcript; no partial record set was admitted');
|
|
172
|
+
if (warnings.length !== warningStart)
|
|
173
|
+
throw new Error('Session import did not complete; check the scan warnings.');
|
|
174
|
+
const duplicate = db.prepare('SELECT path,agent FROM agent_sessions WHERE id = ?').get(header.id);
|
|
175
|
+
if (duplicate && duplicate.agent !== agent)
|
|
176
|
+
throw new Error('Agent session ID collision');
|
|
177
|
+
if (duplicate && duplicate.path !== filePath && fs_1.default.existsSync(duplicate.path)) {
|
|
178
|
+
warnings.push(`Ignored duplicate session ${header.id} at ${filePath}.`);
|
|
179
|
+
return { id: header.id, added: 0 };
|
|
196
180
|
}
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
181
|
+
const entries = [];
|
|
182
|
+
let name = reset ? '' : previous.name;
|
|
183
|
+
let leaf = reset ? null : previous.leaf_id;
|
|
184
|
+
const identities = new Map(agent === 'claude' && previous && !reset
|
|
185
|
+
? db.prepare('SELECT entry_id,event_key FROM agent_entries WHERE session_id=? AND present=1').all(previous.id).map(row => [row.entry_id, row.event_key]) : []);
|
|
186
|
+
for (const { value: record, ...pointer } of result.records) {
|
|
187
|
+
if (agent === 'pi' && record?.type === 'session')
|
|
188
|
+
continue;
|
|
189
|
+
if (agent === 'pi' && record?.type === 'session_info' && typeof record.name === 'string')
|
|
190
|
+
name = (0, normalize_1.cleanText)(record.name, 200);
|
|
191
|
+
if (agent === 'claude' && record?.type === 'custom-title' && typeof record.customTitle === 'string')
|
|
192
|
+
name = (0, normalize_1.cleanText)(record.customTitle, 200);
|
|
193
|
+
const entry = (0, adapters_1.normalizeSource)(header, { ...pointer, value: record });
|
|
194
|
+
if (entry) {
|
|
195
|
+
if (agent === 'claude' && identities.has(entry.entry_id) && identities.get(entry.entry_id) !== entry.event_key)
|
|
196
|
+
throw new Error('Conflicting Claude message UUID; no earlier content was overwritten');
|
|
197
|
+
identities.set(entry.entry_id, entry.event_key);
|
|
198
|
+
entries.push({ ...entry, ...pointer });
|
|
199
|
+
// Claude progress/request metadata can carry UUIDs without selecting a
|
|
200
|
+
// new conversation branch. Keep them as structural links only.
|
|
201
|
+
if (agent !== 'claude' || ['user', 'assistant'].includes(record.type) || (record.type === 'system' && record.subtype === 'compact_boundary'))
|
|
202
|
+
leaf = entry.entry_id;
|
|
203
|
+
if (!name && entry.role === 'user' && entry.text)
|
|
204
|
+
name = (0, normalize_1.cleanText)(entry.text.replace(/\s+/g, ' '), 100);
|
|
205
|
+
}
|
|
207
206
|
}
|
|
208
|
-
|
|
207
|
+
if (agent === 'codex' && !entries.some(entry => entry.is_activity) && (!previous || reset) && result.records.some(record => record.value?.type === 'event_msg' && ['user_message', 'agent_message'].includes(record.value?.payload?.type))) {
|
|
208
|
+
throw new Error('Codex event-only transcript layout is unsupported or not yet complete; response_item evidence is required');
|
|
209
|
+
}
|
|
210
|
+
const boundary = await hashRegion(file, Math.max(0, result.offset - 256), Math.min(256, result.offset));
|
|
211
|
+
const prefix = await hashRegion(file, 0, Math.min(512, result.offset));
|
|
212
|
+
const committed = db.transaction(() => {
|
|
213
|
+
// A replacement file may represent a different session; retain its old evidence/history.
|
|
214
|
+
if (previous && previous.id !== header.id) {
|
|
215
|
+
db.prepare('UPDATE agent_sessions SET path = ?, missing = 1 WHERE id = ?').run(`${filePath}#replaced:${previous.id}`, previous.id);
|
|
216
|
+
}
|
|
217
|
+
db.prepare(`INSERT INTO agent_sessions(id, path, cwd, name, modified_at, file_identity, byte_offset, boundary_hash, prefix_hash, leaf_id, agent, external_id)
|
|
209
218
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
210
219
|
ON CONFLICT(id) DO UPDATE SET path=excluded.path, cwd=excluded.cwd, name=excluded.name,
|
|
211
220
|
modified_at=excluded.modified_at, file_identity=excluded.file_identity, byte_offset=excluded.byte_offset,
|
|
212
221
|
boundary_hash=excluded.boundary_hash, prefix_hash=excluded.prefix_hash, leaf_id=excluded.leaf_id, missing=0`).run(header.id, filePath, header.cwd, name, modified, identity, result.offset, boundary, prefix, leaf, agent, header.external_id);
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
222
|
+
db.prepare('UPDATE agent_sessions SET scanned_bytes=0 WHERE id=?').run(header.id);
|
|
223
|
+
if (reset)
|
|
224
|
+
db.prepare('UPDATE agent_entries SET present = 0, active = 0 WHERE session_id = ?').run(header.id);
|
|
225
|
+
const upsert = db.prepare(`INSERT INTO agent_entries
|
|
216
226
|
(session_id,entry_id,parent_id,timestamp,type,role,event_key,is_activity,target_id,record_offset,record_bytes,record_hash,text_length,replacement_length,effective_length)
|
|
217
227
|
VALUES (@session_id,@entry_id,@parent_id,@timestamp,@type,@role,@event_key,@is_activity,@target_id,@record_offset,@record_bytes,@record_hash,@text_length,@replacement_length,@text_length)
|
|
218
228
|
ON CONFLICT(session_id,entry_id) DO UPDATE SET parent_id=excluded.parent_id,timestamp=excluded.timestamp,
|
|
@@ -220,28 +230,50 @@ async function indexFile(filePath, agent, root, warnings) {
|
|
|
220
230
|
record_offset=excluded.record_offset,record_bytes=excluded.record_bytes,record_hash=excluded.record_hash,
|
|
221
231
|
text_length=excluded.text_length,replacement_length=excluded.replacement_length,effective_length=excluded.text_length,
|
|
222
232
|
effective_id=NULL,normalization=2,present=1`);
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
233
|
+
let added = 0;
|
|
234
|
+
const exists = db.prepare('SELECT 1 FROM agent_entries WHERE session_id = ? AND entry_id = ?');
|
|
235
|
+
for (const entry of entries) {
|
|
236
|
+
if (!exists.get(header.id, entry.entry_id))
|
|
237
|
+
added++;
|
|
238
|
+
upsert.run({ ...entry, session_id: header.id, text_length: entry.text.length, replacement_length: entry.replacement?.length || 0 });
|
|
239
|
+
}
|
|
240
|
+
updateProjection(header.id, leaf, agent);
|
|
241
|
+
return { id: header.id, added };
|
|
242
|
+
})();
|
|
243
|
+
addedTotal += committed.added;
|
|
244
|
+
if (warnings.length !== warningStart)
|
|
245
|
+
return { id: header.id, added: addedTotal };
|
|
246
|
+
if (result.reachedEnd || result.offset === stat.size) {
|
|
247
|
+
const final = await file.stat();
|
|
248
|
+
if (final.size < stat.size || (final.size === stat.size && final.mtimeMs !== stat.mtimeMs))
|
|
249
|
+
throw new Error('Session changed during import; retry the scan.');
|
|
250
|
+
db.prepare('UPDATE agent_sessions SET scanned_bytes=? WHERE id=?').run(stat.size, header.id);
|
|
251
|
+
return { id: header.id, added: addedTotal };
|
|
229
252
|
}
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
253
|
+
if (result.offset <= (reset ? 0 : previous.byte_offset))
|
|
254
|
+
throw new Error('Session import made no progress.');
|
|
255
|
+
previous = db.prepare('SELECT * FROM agent_sessions WHERE id=?').get(header.id);
|
|
256
|
+
reset = false;
|
|
257
|
+
await new Promise(resolve => setImmediate(resolve));
|
|
258
|
+
}
|
|
233
259
|
}
|
|
234
260
|
finally {
|
|
235
261
|
await file.close();
|
|
236
262
|
}
|
|
237
263
|
}
|
|
238
264
|
let scanning = null;
|
|
239
|
-
function scanSessions() {
|
|
265
|
+
function scanSessions(signal) {
|
|
240
266
|
if (scanning)
|
|
241
|
-
return scanning
|
|
267
|
+
return scanning.catch(error => {
|
|
268
|
+
signal?.throwIfAborted();
|
|
269
|
+
if (error instanceof Error && error.name === 'AbortError')
|
|
270
|
+
return scanSessions(signal);
|
|
271
|
+
throw error;
|
|
272
|
+
});
|
|
242
273
|
scanning = (async () => {
|
|
243
274
|
const warnings = [];
|
|
244
275
|
const db = (0, schema_1.getDb)(), roots = (0, registry_1.getSourceRoots)(), seen = new Set();
|
|
276
|
+
db.prepare("INSERT INTO sync_settings(key,value) VALUES('source-scan-complete-v1','0') ON CONFLICT(key) DO UPDATE SET value='0'").run();
|
|
245
277
|
const agents = db.prepare('SELECT id FROM agent_sources WHERE enabled=1').all();
|
|
246
278
|
let added = 0, files = 0;
|
|
247
279
|
for (const { id: agent } of agents) {
|
|
@@ -251,18 +283,23 @@ function scanSessions() {
|
|
|
251
283
|
continue;
|
|
252
284
|
foundRoot = true;
|
|
253
285
|
for (const file of await discover(root, warnings)) {
|
|
286
|
+
signal?.throwIfAborted();
|
|
254
287
|
if (!db.prepare('SELECT enabled FROM agent_sources WHERE id=?').get(agent)?.enabled)
|
|
255
288
|
break;
|
|
256
289
|
if (agent === 'claude' && /\.orphaned-[^/]+\.jsonl$/.test(file))
|
|
257
290
|
continue;
|
|
258
291
|
files++;
|
|
259
292
|
try {
|
|
260
|
-
const result = await indexFile(file, agent, root, warnings);
|
|
293
|
+
const result = await indexFile(file, agent, root, warnings, signal);
|
|
261
294
|
if (result.id)
|
|
262
295
|
seen.add(result.id);
|
|
263
296
|
added += result.added;
|
|
264
297
|
}
|
|
265
298
|
catch (error) {
|
|
299
|
+
// A malformed append is an incomplete import, not a disappeared file.
|
|
300
|
+
const known = db.prepare('SELECT id FROM agent_sessions WHERE path=? AND agent=?').get(file, agent);
|
|
301
|
+
if (known)
|
|
302
|
+
seen.add(known.id);
|
|
266
303
|
warnings.push(`Could not index ${agent} session ${file}: ${error instanceof Error ? error.message : 'unknown error'}`);
|
|
267
304
|
}
|
|
268
305
|
}
|
|
@@ -270,6 +307,7 @@ function scanSessions() {
|
|
|
270
307
|
if (!foundRoot)
|
|
271
308
|
warnings.push(`Session directory not found for ${agent}: ${roots[agent].join(', ')}`);
|
|
272
309
|
}
|
|
310
|
+
signal?.throwIfAborted();
|
|
273
311
|
db.transaction(() => {
|
|
274
312
|
for (const { id } of agents)
|
|
275
313
|
db.prepare('UPDATE agent_sessions SET missing=1 WHERE agent=? AND agent IN (SELECT id FROM agent_sources WHERE enabled=1)').run(id);
|
|
@@ -277,6 +315,8 @@ function scanSessions() {
|
|
|
277
315
|
for (const id of seen)
|
|
278
316
|
mark.run(id);
|
|
279
317
|
})();
|
|
318
|
+
if (!warnings.length)
|
|
319
|
+
db.prepare("UPDATE sync_settings SET value='1' WHERE key='source-scan-complete-v1'").run();
|
|
280
320
|
return { files, added, warnings: warnings.slice(0, 100) };
|
|
281
321
|
})().finally(() => { scanning = null; });
|
|
282
322
|
return scanning;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collector.js","sourceRoot":"","sources":["../../src/sync/collector.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"collector.js","sourceRoot":"","sources":["../../src/sync/collector.ts"],"names":[],"mappings":";;;;;AAmOA,oCA8CC;AAjRD,4CAAoB;AACpB,gDAAwB;AACxB,yCAAiD;AAEjD,2CAAiE;AACjE,iDAA+E;AAC/E,kDAAqD;AACrD,kDAAsE;AAQtE,SAAS,MAAM,CAAC,SAAiB,EAAE,IAAY;IAC7C,MAAM,QAAQ,GAAG,cAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAChD,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,cAAI,CAAC,GAAG,EAAE,CAAC,IAAI,QAAQ,KAAK,IAAI,IAAI,CAAC,cAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvH,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,IAAY,EAAE,QAAkB;IACtD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,KAAK,GAAG,KAAK,EAAE,SAAiB,EAAE,KAAa,EAAiB,EAAE;QACtE,IAAI,KAAK,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,EAAE,IAAA,mBAAU,GAAE,CAAC;YAAE,OAAO;QACzD,IAAI,QAAqB,CAAC;QAC1B,IAAI,CAAC;YAAC,QAAQ,GAAG,MAAM,YAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAAC,CAAC;QACjF,MAAM,CAAC;YAAC,QAAQ,CAAC,IAAI,CAAC,kCAAkC,SAAS,EAAE,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QAC/E,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAChD,mDAAmD;YACnD,IAAI,KAAK,CAAC,WAAW,EAAE;gBAAE,MAAM,KAAK,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;iBACnD,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC,CAAC;IACF,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACrB,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,IAA4B,EAAE,KAAa,EAAE,MAAc;IACnF,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAChE,OAAO,IAAA,kBAAM,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,gFAAgF;AAChF,KAAK,UAAU,WAAW,CAAC,MAA8B,EAAE,IAAY,EAAE,MAAc,EAAE,IAAY,EAAE,QAAkB,EAAE,MAAoB;IAC7I,MAAM,OAAO,GAAuC,EAAE,CAAC;IACvD,IAAI,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9B,IAAI,QAAQ,GAAG,MAAM,CAAC;IACtB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;IACtD,IAAI,GAAG,IAAI,MAAM;QAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAC9C,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,YAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;QACtH,MAAM,EAAE,cAAc,EAAE,CAAC;QACzB,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,KAAe,CAAC,CAAC,CAAC;QACpD,IAAI,OAAe,CAAC;QACpB,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;YACjE,IAAI,KAAK,CAAC,MAAM,GAAG,2BAAY,EAAE,CAAC;gBAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,IAAI,4CAA4C,CAAC,CAAC;gBAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;YAAC,CAAC;YACrJ,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YAC3C,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC;YACzB,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;YACxC,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,IAAI,CAAC;gBAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,IAAA,kBAAM,EAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAAC,CAAC;YAChI,MAAM,CAAC;gBAAC,QAAQ,CAAC,IAAI,CAAC,6BAA6B,IAAI,cAAc,QAAQ,GAAG,CAAC,CAAC;YAAC,CAAC;QACtF,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;YACrC,QAAQ,CAAC,IAAI,CAAC,UAAU,IAAI,4CAA4C,CAAC,CAAC;YAC1E,MAAM;QACR,CAAC;IACH,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,KAAK,IAAI,EAAE,CAAC;AACjE,CAAC;AAED,SAAS,gBAAgB,CAAC,SAAiB,EAAE,IAAmB,EAAE,KAAgB;IAChF,MAAM,EAAE,GAAG,IAAA,cAAK,GAAE,CAAC;IACnB,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QAAC,EAAE,CAAC,OAAO,CAAC,2GAA2G,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAAC,OAAO;IAAC,CAAC;IAC1K,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,8EAA8E,CAAC,CAAC,GAAG,CAAC,SAAS,CAAU,CAAC;IAChI,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAU,EAAE,CAAC;IACzB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK;YAAE,MAAM;QAClB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnB,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IAC3B,CAAC;IACD,MAAM,CAAC,OAAO,EAAE,CAAC;IACjB,EAAE,CAAC,OAAO,CAAC,qGAAqG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACjI,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAC;IAChF,KAAK,MAAM,GAAG,IAAI,MAAM;QAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/C,wEAAwE;IACxE,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,2GAA2G,CAAC,CAAC;IACrI,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,IAAI,GAAG,CAAC,SAAS;YAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,kBAAkB,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;IACvH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,IAA4B,EAAE,SAAiB;IAC1E,MAAM,QAAQ,GAAG,IAAA,cAAK,GAAE,CAAC,OAAO,CAAC,mGAAmG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAoB,CAAC;IACxK,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,YAAY,GAAG,CAAC,IAAI,OAAO,CAAC,YAAY,GAAG,2BAAY,IAAI,CAAC,OAAO,CAAC,WAAW;YAAE,OAAO,KAAK,CAAC;QACtO,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;QAC5E,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,MAAM,IAAI,IAAA,kBAAM,EAAC,KAAK,CAAC,KAAK,OAAO,CAAC,WAAW;YAAE,OAAO,KAAK,CAAC;IAC7F,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,QAAgB,EAAE,KAAgB,EAAE,IAAY,EAAE,QAAkB,EAAE,MAAoB;IACjH,MAAM,EAAE,GAAG,IAAA,cAAK,GAAE,CAAC;IACnB,IAAI,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAuB,CAAC;IAC7G,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IACnG,MAAM,IAAI,GAAG,YAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,IAAI,GAAG,YAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACrE,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IACrG,MAAM,MAAM,GAAG,YAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,MAAM,YAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,YAAE,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,YAAE,CAAC,SAAS,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9H,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAC3H,MAAM,MAAM,GAAG,IAAA,yBAAc,EAAC,KAAK,EAAE,IAAA,0BAAW,EAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,2BAAY,CAAC,CAAC,CAAC,CAAC;QAC9F,IAAI,MAAM,CAAC,cAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAA,mBAAU,GAAE,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACxE,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAC1C,IAAI,KAAK,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,IAAI,QAAQ,CAAC,aAAa,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpO,IAAI,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;YACtH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;YAC9E,KAAK,GAAG,QAAQ,KAAK,QAAQ,CAAC,aAAa,IAAI,MAAM,KAAK,QAAQ,CAAC,WAAW;gBAC5E,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,WAAW,IAAI,QAAQ,KAAK,QAAQ,CAAC,WAAW,CAAC,CAAC;YAC5E,uEAAuE;YACvE,yEAAyE;YACzE,IAAI,CAAC,KAAK,IAAI,QAAQ,KAAK,QAAQ,CAAC,WAAW;gBAAE,KAAK,GAAG,CAAC,MAAM,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;YACjG,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,aAAa,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,WAAW,IAAI,QAAQ,KAAK,QAAQ,CAAC,WAAW,EAAE,CAAC;gBACpH,EAAE,CAAC,OAAO,CAAC,2EAA2E,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC/H,OAAO,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YACvC,CAAC;QACH,CAAC;QACD,IAAI,QAAQ;YAAE,EAAE,CAAC,OAAO,CAAC,2EAA2E,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACvH,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,4EAA4E;QAC5E,mFAAmF;QACnF,SAAS,CAAC;YACV,MAAM,EAAE,cAAc,EAAE,CAAC;YACzB,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC;YACrC,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAS,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YACjH,IAAI,KAAK,KAAK,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;YACpM,IAAI,QAAQ,CAAC,MAAM,KAAK,YAAY;gBAAE,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;YACnH,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,CAAC,oDAAoD,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAmD,CAAC;YACpJ,IAAI,SAAS,IAAI,SAAS,CAAC,KAAK,KAAK,KAAK;gBAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAC1F,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,QAAQ,IAAI,YAAE,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9E,QAAQ,CAAC,IAAI,CAAC,6BAA6B,MAAM,CAAC,EAAE,OAAO,QAAQ,GAAG,CAAC,CAAC;gBACxE,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YACrC,CAAC;YACD,MAAM,OAAO,GAAwC,EAAE,CAAC;YACxD,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAS,CAAC,IAAI,CAAC;YACvC,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAS,CAAC,OAAO,CAAC;YAC5C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAiB,KAAK,KAAK,QAAQ,IAAI,QAAQ,IAAI,CAAC,KAAK;gBACjF,CAAC,CAAE,EAAE,CAAC,OAAO,CAAC,+EAA+E,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAA0C,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC3M,KAAK,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC3D,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,EAAE,IAAI,KAAK,SAAS;oBAAE,SAAS;gBAC3D,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,EAAE,IAAI,KAAK,cAAc,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;oBAAE,IAAI,GAAG,IAAA,qBAAS,EAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC7H,IAAI,KAAK,KAAK,QAAQ,IAAI,MAAM,EAAE,IAAI,KAAK,cAAc,IAAI,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ;oBAAE,IAAI,GAAG,IAAA,qBAAS,EAAC,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;gBAC/I,MAAM,KAAK,GAAG,IAAA,0BAAe,EAAC,MAAM,EAAE,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;gBACrE,IAAI,KAAK,EAAE,CAAC;oBACV,IAAI,KAAK,KAAK,QAAQ,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,KAAK,CAAC,SAAS;wBAAE,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;oBACvM,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;oBAChD,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;oBACvC,uEAAuE;oBACvE,+DAA+D;oBAC/D,IAAI,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,KAAK,kBAAkB,CAAC;wBAAE,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC;oBACpK,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI;wBAAE,IAAI,GAAG,IAAA,qBAAS,EAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;gBAC3G,CAAC;YACH,CAAC;YACD,IAAI,KAAK,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,KAAK,WAAW,IAAI,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;gBAC3O,MAAM,IAAI,KAAK,CAAC,2GAA2G,CAAC,CAAC;YAC/H,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YACxG,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YACvE,MAAM,SAAS,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;gBACpC,yFAAyF;gBACzF,IAAI,QAAQ,IAAI,QAAQ,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC;oBAC1C,EAAE,CAAC,OAAO,CAAC,8DAA8D,CAAC,CAAC,GAAG,CAAC,GAAG,QAAQ,aAAa,QAAQ,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;gBACrI,CAAC;gBACD,EAAE,CAAC,OAAO,CAAC;;;;oHAImG,CAAC,CAAC,GAAG,CACjH,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,CAC5H,CAAC;gBACF,EAAE,CAAC,OAAO,CAAC,sDAAsD,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAClF,IAAI,KAAK;oBAAE,EAAE,CAAC,OAAO,CAAC,uEAAuE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC9G,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;;;oDAOoB,CAAC,CAAC;gBAChD,IAAI,KAAK,GAAG,CAAC,CAAC;gBACd,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,mEAAmE,CAAC,CAAC;gBAC/F,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;oBAC5B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC;wBAAE,KAAK,EAAE,CAAC;oBACpD,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC;gBACtI,CAAC;gBACD,gBAAgB,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;gBACzC,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,EAAY,EAAE,KAAK,EAAE,CAAC;YAC5C,CAAC,CAAC,EAAE,CAAC;YACL,UAAU,IAAI,SAAS,CAAC,KAAK,CAAC;YAC9B,IAAI,QAAQ,CAAC,MAAM,KAAK,YAAY;gBAAE,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;YAClF,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;gBACrD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;gBAChC,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;gBAC9J,EAAE,CAAC,OAAO,CAAC,sDAAsD,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC7F,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;YAC9C,CAAC;YACD,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAS,CAAC,WAAW,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;YAC9G,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAW,CAAC;YAC1F,KAAK,GAAG,KAAK,CAAC;YACd,MAAM,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;YAAS,CAAC;QAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IAAC,CAAC;AACnC,CAAC;AAED,IAAI,QAAQ,GAA+B,IAAI,CAAC;AAChD,SAAgB,YAAY,CAAC,MAAoB;IAC/C,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YAC1C,MAAM,EAAE,cAAc,EAAE,CAAC;YACzB,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;gBAAE,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;YACvF,MAAM,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;IACH,QAAQ,GAAG,CAAC,KAAK,IAAI,EAAE;QACrB,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,MAAM,EAAE,GAAG,IAAA,cAAK,GAAE,EAAE,KAAK,GAAG,IAAA,yBAAc,GAAE,EAAE,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QACvE,EAAE,CAAC,OAAO,CAAC,qHAAqH,CAAC,CAAC,GAAG,EAAE,CAAC;QACxI,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC,GAAG,EAAyB,CAAC;QACvG,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;QACzB,KAAK,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,MAAM,EAAE,CAAC;YACnC,IAAI,SAAS,GAAG,KAAK,CAAC;YACtB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,IAAI,CAAC;oBAAE,SAAS;gBACnC,SAAS,GAAG,IAAI,CAAC;gBACjB,KAAK,MAAM,IAAI,IAAI,MAAM,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC;oBAClD,MAAM,EAAE,cAAc,EAAE,CAAC;oBACzB,IAAI,CAAE,EAAE,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC,GAAG,CAAC,KAAK,CAAS,EAAE,OAAO;wBAAE,MAAM;oBACpG,IAAI,KAAK,KAAK,QAAQ,IAAI,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC;wBAAE,SAAS;oBAC1E,KAAK,EAAE,CAAC;oBACR,IAAI,CAAC;wBACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;wBACpE,IAAI,MAAM,CAAC,EAAE;4BAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;wBACnC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC;oBACxB,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,sEAAsE;wBACtE,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,wDAAwD,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAA+B,CAAC;wBAClI,IAAI,KAAK;4BAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;wBAC9B,QAAQ,CAAC,IAAI,CAAC,mBAAmB,KAAK,YAAY,IAAI,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;oBACzH,CAAC;gBACH,CAAC;YACH,CAAC;YACD,IAAI,CAAC,SAAS;gBAAE,QAAQ,CAAC,IAAI,CAAC,mCAAmC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxG,CAAC;QACD,MAAM,EAAE,cAAc,EAAE,CAAC;QACzB,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YAClB,KAAK,MAAM,EAAE,EAAE,EAAE,IAAI,MAAM;gBAAE,EAAE,CAAC,OAAO,CAAC,+GAA+G,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACjK,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,oDAAoD,CAAC,CAAC;YAC9E,KAAK,MAAM,EAAE,IAAI,IAAI;gBAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACtC,CAAC,CAAC,EAAE,CAAC;QACL,IAAI,CAAC,QAAQ,CAAC,MAAM;YAAE,EAAE,CAAC,OAAO,CAAC,wEAAwE,CAAC,CAAC,GAAG,EAAE,CAAC;QACjH,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;IAC5D,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
package/dist/sync/cost.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type Database from 'better-sqlite3';
|
|
2
|
-
import type { SyncCost } from '../types';
|
|
2
|
+
import type { ModelCallMetric, SyncCost } from '../types';
|
|
3
|
+
export declare function recordedCost(metric: ModelCallMetric): SyncCost;
|
|
3
4
|
/** Preparation only, across its retries/rebuilds. Follow-up questions, voice,
|
|
4
5
|
* embeddings and post-conversation recaps never enter this total. No backfill
|
|
5
6
|
* guesses from historical planning-token estimates or today's price catalog. */
|
package/dist/sync/cost.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cost.d.ts","sourceRoot":"","sources":["../../src/sync/cost.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"cost.d.ts","sourceRoot":"","sources":["../../src/sync/cost.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAE1D,wBAAgB,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,QAAQ,CAI9D;AAED;;gFAEgF;AAChF,wBAAgB,eAAe,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,UAAQ,GAAG,QAAQ,GAAG,IAAI,CAe3G"}
|
package/dist/sync/cost.js
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.recordedCost = recordedCost;
|
|
3
4
|
exports.aggregationCost = aggregationCost;
|
|
5
|
+
function recordedCost(metric) {
|
|
6
|
+
const value = metric.accounting;
|
|
7
|
+
const priced = value?.source === 'pi-usage/catalog-pricing' && typeof value.cost_usd === 'number' && Number.isFinite(value.cost_usd) && value.cost_usd >= 0;
|
|
8
|
+
return { usd: priced ? value.cost_usd : null, complete: Boolean(priced && value.complete === true) };
|
|
9
|
+
}
|
|
4
10
|
/** Preparation only, across its retries/rebuilds. Follow-up questions, voice,
|
|
5
11
|
* embeddings and post-conversation recaps never enter this total. No backfill
|
|
6
12
|
* guesses from historical planning-token estimates or today's price catalog. */
|
|
@@ -15,14 +21,12 @@ function aggregationCost(db, syncId, hasBriefing = false) {
|
|
|
15
21
|
if (run.status === 'running' || metrics.length !== run.invocations)
|
|
16
22
|
complete = false;
|
|
17
23
|
for (const metric of metrics) {
|
|
18
|
-
const
|
|
19
|
-
if (
|
|
20
|
-
usd +=
|
|
24
|
+
const cost = recordedCost(metric);
|
|
25
|
+
if (cost.usd !== null) {
|
|
26
|
+
usd += cost.usd;
|
|
21
27
|
priced++;
|
|
22
|
-
if (accounting.complete !== true)
|
|
23
|
-
complete = false;
|
|
24
28
|
}
|
|
25
|
-
|
|
29
|
+
if (!cost.complete)
|
|
26
30
|
complete = false;
|
|
27
31
|
}
|
|
28
32
|
}
|
package/dist/sync/cost.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cost.js","sourceRoot":"","sources":["../../src/sync/cost.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"cost.js","sourceRoot":"","sources":["../../src/sync/cost.ts"],"names":[],"mappings":";;AAGA,oCAIC;AAKD,0CAeC;AAxBD,SAAgB,YAAY,CAAC,MAAuB;IAClD,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC;IAChC,MAAM,MAAM,GAAG,KAAK,EAAE,MAAM,KAAK,0BAA0B,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;IAC5J,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,EAAE,CAAC;AACvG,CAAC;AAED;;gFAEgF;AAChF,SAAgB,eAAe,CAAC,EAAqB,EAAE,MAAc,EAAE,WAAW,GAAG,KAAK;IACxF,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,wGAAwG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAoE,CAAC;IACjN,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,OAAO,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7E,IAAI,GAAG,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,QAAQ,GAAG,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC;IACpD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,OAAO,GAAsB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAChE,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,GAAG,CAAC,WAAW;YAAE,QAAQ,GAAG,KAAK,CAAC;QACrF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YAClC,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;gBAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;gBAAC,MAAM,EAAE,CAAC;YAAC,CAAC;YACrD,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE,QAAQ,GAAG,KAAK,CAAC;QACvC,CAAC;IACH,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,MAAM,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC;AAC/D,CAAC"}
|
package/dist/sync/manager.d.ts
CHANGED
|
@@ -4,9 +4,15 @@ export declare function cancelReply(id: number): void;
|
|
|
4
4
|
/** Small lexical retrieval over ALL frozen evidence, including material a summary did not cite. */
|
|
5
5
|
export declare function retrieveEvidence(sync: SyncDetail, question: string): Evidence[];
|
|
6
6
|
export declare function validateVerdict(answer: string, allowedRefs: Set<string>): void;
|
|
7
|
-
export declare function generateReply(id: number, question?: string
|
|
7
|
+
export declare function generateReply(id: number, question?: string, requestId?: string, options?: {
|
|
8
|
+
signal?: AbortSignal;
|
|
9
|
+
deferHistory?: boolean;
|
|
10
|
+
}): Promise<SyncDetail>;
|
|
8
11
|
/** Derived call/sync recap only. Never writes notes, status, snapshot evidence or coverage. */
|
|
9
12
|
export declare function launchRecap(id: number): SyncDetail;
|
|
13
|
+
/** A chat request may be retried after a lost HTTP response without paying twice.
|
|
14
|
+
* Explicit retries after a failed/cancelled run use a new request ID. */
|
|
15
|
+
export declare function launchChat(id: number, question: string, requestId: string): SyncDetail;
|
|
10
16
|
/** A durable result + pollable job, not a multi-minute HTTP response. */
|
|
11
17
|
export declare function launchReply(id: number, question?: string): SyncDetail;
|
|
12
18
|
//# sourceMappingURL=manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/sync/manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/sync/manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAYhD,OAAO,EAAE,oBAAoB,EAAE,MAAM,MAAM,CAAC;AAc5C,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAM5C;AASD,mGAAmG;AACnG,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ,EAAE,CAO/E;AA0CD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAI9E;AAeD,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAmG1K;AAED,+FAA+F;AAC/F,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,CAqBlD;AAID;yEACyE;AACzE,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,UAAU,CActF;AAED,yEAAyE;AACzE,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,UAAU,CAOrE"}
|