draken 0.6.0 → 0.8.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/CHANGELOG.md +43 -0
- package/MEMORY.md +64 -13
- package/README.md +25 -19
- package/SETUP.md +26 -3
- package/TRAY.md +3 -3
- package/VOICE.md +8 -6
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +65 -0
- package/dist/db/schema.js.map +1 -1
- package/dist/memory/readiness.d.ts +4 -3
- package/dist/memory/readiness.d.ts.map +1 -1
- package/dist/memory/readiness.js +128 -35
- package/dist/memory/readiness.js.map +1 -1
- package/dist/memory/storage.d.ts.map +1 -1
- package/dist/memory/storage.js +1 -0
- package/dist/memory/storage.js.map +1 -1
- package/dist/routes/sync.d.ts.map +1 -1
- package/dist/routes/sync.js +9 -0
- package/dist/routes/sync.js.map +1 -1
- package/dist/sync/activity.d.ts +11 -1
- package/dist/sync/activity.d.ts.map +1 -1
- package/dist/sync/activity.js +18 -3
- package/dist/sync/activity.js.map +1 -1
- package/dist/sync/background.d.ts +7 -2
- package/dist/sync/background.d.ts.map +1 -1
- package/dist/sync/background.js +66 -19
- package/dist/sync/background.js.map +1 -1
- package/dist/sync/conversation.d.ts +20 -0
- package/dist/sync/conversation.d.ts.map +1 -0
- package/dist/sync/conversation.js +127 -0
- package/dist/sync/conversation.js.map +1 -0
- package/dist/sync/manager.d.ts.map +1 -1
- package/dist/sync/manager.js +56 -16
- package/dist/sync/manager.js.map +1 -1
- package/dist/sync/preparation.d.ts +1 -1
- package/dist/sync/preparation.d.ts.map +1 -1
- package/dist/sync/preparation.js +23 -5
- package/dist/sync/preparation.js.map +1 -1
- package/dist/sync/store.d.ts +4 -1
- package/dist/sync/store.d.ts.map +1 -1
- package/dist/sync/store.js +24 -7
- package/dist/sync/store.js.map +1 -1
- package/dist/sync/summary-preparation.d.ts +14 -0
- package/dist/sync/summary-preparation.d.ts.map +1 -0
- package/dist/sync/summary-preparation.js +205 -0
- package/dist/sync/summary-preparation.js.map +1 -0
- package/dist/sync/tree.d.ts +17 -1
- package/dist/sync/tree.d.ts.map +1 -1
- package/dist/sync/tree.js +94 -29
- package/dist/sync/tree.js.map +1 -1
- package/dist/sync/update-status.d.ts +9 -0
- package/dist/sync/update-status.d.ts.map +1 -0
- package/dist/sync/update-status.js +21 -0
- package/dist/sync/update-status.js.map +1 -0
- package/dist/sync/usage.d.ts +3 -1
- package/dist/sync/usage.d.ts.map +1 -1
- package/dist/sync/usage.js +24 -6
- package/dist/sync/usage.js.map +1 -1
- package/dist/types.d.ts +21 -1
- package/dist/types.d.ts.map +1 -1
- 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 +1 -1
- package/dist/voice/live.d.ts.map +1 -1
- package/dist/voice/live.js +265 -32
- package/dist/voice/live.js.map +1 -1
- package/package.json +1 -1
- package/public/assets/index-sHcfjDUD.js +131 -0
- package/public/index.html +1 -1
- package/public/assets/index-DXPfCm7z.js +0 -131
package/VOICE.md
CHANGED
|
@@ -32,8 +32,8 @@ Choosing chat while a one-click call is still preparing consumes that browser ca
|
|
|
32
32
|
## Start and use a call
|
|
33
33
|
|
|
34
34
|
1. Open Draken on **localhost or trusted HTTPS**. Plain LAN HTTP normally cannot access the microphone.
|
|
35
|
-
2. **Sync with Draken** finishes importing each discovered file's captured prefix, prepares the briefing and searchable history, then opens its call. Import errors stop preparation instead of silently freezing an old prefix. On an existing sync, **Call Draken** stays disabled until both
|
|
36
|
-
3.
|
|
35
|
+
2. **Sync with Draken** finishes importing each discovered file's captured prefix, prepares the briefing and searchable history, then opens its call. Import errors stop preparation instead of silently freezing an old prefix. On an existing non-ended sync, **Call Draken** stays disabled until both have initially been prepared. Use **Prepare history** if that initial preparation is missing. Ordinary appends and scans do not invalidate already captured context; an already-ready sync also offers **Refresh history** without rebuilding its frozen briefing.
|
|
36
|
+
3. Initial history download/indexing happens on the sync page, before a call can start. Progress and **Cancel preparation** are available there; the microphone remains off. Once ready, start the call and allow microphone access. A failed or cancelled preparation does not request permission, and if the page is hidden when preparation finishes, start the call again explicitly. You can also type if microphone permission is unavailable.
|
|
37
37
|
4. Speaker-safe mode pauses input during replies. Use **Stop reply** to speak, or enable **Headphone mode** to allow spoken interruption. Headphones are recommended.
|
|
38
38
|
5. **Mute** releases the microphone tracks. **Stop reply** cuts playback locally and asks the provider to stop; it does not prove immediate remote cancellation. **End call** stops capture/playback and keeps the text history.
|
|
39
39
|
|
|
@@ -41,22 +41,24 @@ Capture follows a transient browser action, never a URL flag. Reloading or openi
|
|
|
41
41
|
|
|
42
42
|
Reply waiting is owned by the server's identified user transcript and pending-answer events. Unkeyed WebRTC user events can arrive late and must not switch an already pending reply back to listening, erase its waiting caption, or restart a settled reply. A lookup acknowledgement such as “I’ll check what’s recorded” is not meant to end the answer. Draken keeps the question pending and can automatically resume ChatGPT speech when its context arrives; you should not need to ask “have you checked?” Quiet captions in the dragon scene show **[Thinking...]**, **[Hmmm...]** and **[Hmmmmmm...]** during a pending reply, including silence after an acknowledgement. They change every five seconds without animation. **[Checking...]** and **[Looking that up...]** are used only while the local history worker reports fresh lookup activity; these labels are not proof of a match or exhaustive search. These are visual waiting cues—not the model’s private thoughts, spoken messages, a percentage or an ETA. They are never saved in the transcript or sent to the model. The separate waiting banner and elapsed-wait timer have been removed. Stop, a newer question, interruption, or ending the call cancels the old pending continuation. There is at most one automatic completion cue per question—not a retry loop or a fabricated user message. A failed lookup must be disclosed; a failed or silent continuation produces a visible notice instead of silently retrying.
|
|
43
43
|
|
|
44
|
-
Work questions use the same original-project evidence selection and deterministic later-report checking as chat: up to sixteen sources in a 32,000-byte historical packet per lookup. A new call inherits project focus from actual saved user turns, not generated answers; explicit switches and follow-ups retain the same scope rules as chat. Old conversation recall remains available when requested.
|
|
44
|
+
Work questions use the same original-project evidence selection and deterministic later-report checking as chat: up to sixteen sources in a 32,000-byte historical packet per lookup. A new call inherits project focus from actual saved user turns, not generated answers; explicit switches and follow-ups retain the same scope rules as chat. Old conversation recall remains available when requested. Each voice turn pins one prepared-history cutoff. Newly prepared original history can be adopted between turns as dated H evidence; it is not an unprepared live feed and does not rewrite the initial snapshot, E/C references, briefing, saved transcript or notes.
|
|
45
45
|
|
|
46
46
|
The native context envelope remains bounded to 8 KiB. Larger evidence is delivered losslessly in ordered, JSON-quoted parts with a final completion record; the helper's small handoff returns a receipt rather than truncating evidence. Interrupted/failed transfers are not marked complete, and old-turn parts cannot restart speech after Stop. Three distinct archive lookups per turn and duplicate-result/delivery reuse remain. This sends more evidence without another pi call, changing voice engine or raising the concise speaking target. Native quota use is not guaranteed unchanged.
|
|
47
47
|
|
|
48
48
|
Supplied IDs and later-report candidates do not prove that each spoken claim was verified, heard or agreed with. The bounded pi answer-repair pass remains text-only; streamed speech is not post-validated or retractable. Protocol tests and evidence-packet comparisons are not physical-audio or exhaustive answer-quality acceptance. See [MEMORY.md](MEMORY.md) for retrieval limits.
|
|
49
49
|
|
|
50
|
-
|
|
50
|
+
A conversation shows **Session ended** after 30 minutes without a real user chat message or voice turn; creation counts as initial intent and an ongoing reply finishes first. Background updates, assistant responses, polling and connection heartbeats do not extend that deadline. Last activity and ending persist across restart. The transcript remains readable and explicit notes/review remain available for the initial snapshot; idle ending neither reviews work nor requests a recap. It releases unreviewed reservations for the next explicit sync. Return home and **Start new sync** to talk again; reopening or replay cannot revive an ended session.
|
|
51
|
+
|
|
52
|
+
One call may be active at a time, with a separate 30-minute connection limit, at most 60 user messages and a 90-second disconnect timeout. These resource limits remain in addition to conversation idle expiry; they are not spending guarantees or unlimited calling. A new call cannot start until helper cleanup is confirmed. The browser chooses its reservation UUID before sending creation, so End can release a reservation even if the create response is lost. If End overtakes creation, the server retains a bounded cancellation marker for five minutes; an already-created ID can never be reused. Network loss can still require the disconnect timeout or explicit End previous call.
|
|
51
53
|
|
|
52
54
|
## Evidence, records and recap
|
|
53
55
|
|
|
54
|
-
- Voice questions do **not** start pi, local transcription or local synthesis. The call receives a bounded briefing, saved notes and source excerpts. Explicit source/history questions can request more data from the same frozen snapshot. Calls use bounded semantic + keyword retrieval across retained older records, using the local index described in [MEMORY.md](MEMORY.md). The local model/index must be prepared before calling is enabled; first preparation may take minutes. During
|
|
56
|
+
- Voice questions do **not** start pi, local transcription or local synthesis. The call receives a bounded briefing, saved notes and source excerpts. Explicit source/history questions can request more data from the same frozen snapshot. Calls use bounded semantic + keyword retrieval across retained older records, using the local index described in [MEMORY.md](MEMORY.md). The local model/index must be prepared before calling is enabled; first preparation may take minutes. During each turn, retrieval uses its pinned prepared cutoff and verifies originals without building new corpus embeddings in the reply. New prepared H history can be adopted only between turns. Missing/damaged captured originals still fail closed; if extra archive lookup is unavailable during an update, disclose that limitation rather than guess or silently fall back. Expand **Conversation & details** for the full transcript, sources and any later history progress. With **Settings → Automatically index history** enabled, active conversations check once a minute and index any positive source changes. Without an active conversation, local indexing retains 64-record batching with no timed small-tail flush. A connected idle call permits local background work between turns, never during a pending response or context delivery; a user turn preempts and drains owned indexing. Updates do not interrupt replies or disable prepared chat. Status is **Up to date**, **Preparing new info…** or **New info ready**, with honest off/unavailable states when applicable. Local indexing alone never creates syncs, summaries or briefings and makes no provider model calls. The NEW **Prepare summaries ahead** switch is a separate paid opt-in, default off even on upgrades with indexing enabled, and requires local indexing. It warms validated summary leaves plus reconciliation/compact final input using the configured summary model, not a final briefing or recap. Creating a sync and generating its final briefing always require an explicit user action; neither background path starts capture, calls or review. Changed unfinished per-session tails and reconciliation can still need work at **Start chat**; cached preparation is not an instant-call promise. Foreground work cancels and awaits owned background provider work. Disabling either setting stops paid work and preserves cache; paid failures pause until explicit retry, while local indexing retains its five-minute retry delay. See [paid preparation](MEMORY.md#optional-paid-summary-preparation) for independent 64-record batching, durable spending and accounting. Only inactive local tails and separately paid batches retain the 64-record wait; live H updates are local-only, not per-minute paid calls. Initial history and briefing preparation remain required once. This block starts collapsed for every call; its progress polling reads metadata only. Those dated excerpts also go to ChatGPT; they are not new snapshot membership or review coverage. The embedding runtime is text-only and is not a replacement speech engine.
|
|
55
57
|
- The read-only lookup service is not a coding model or a general web search. Tool-execution and approval requests are denied. Calls cannot edit files, deploy work, save decisions by model instruction, finish syncs or advance coverage.
|
|
56
58
|
- Speech may paraphrase. **Sources supplied** means context was given to the model, not that every spoken claim was verified. Responses are not held for whole-answer JSON validation before playback.
|
|
57
59
|
- History stores ordered user/assistant messages with generated/interrupted labels. It does not invent question–answer pairs, exact played words, human hearing or agreement. Historical records from the retired engine retain their original playback reports and are labelled separately.
|
|
58
60
|
- No raw microphone recording is persisted locally. Text, source references and call status are stored in the private SQLite database. There is no retention/purge UI yet.
|
|
59
|
-
- Ending the call does not mark the sync reviewed.
|
|
61
|
+
- Ending the call does not mark the sync reviewed; idle session expiry does not request a recap. Explicitly closing the call UI requests a short text recap through pi using the sync's cheaper summary model. This is separate from live audio; a browser exit cannot guarantee the request is sent or completes. You can explicitly refresh the recap later.
|
|
60
62
|
|
|
61
63
|
See [the native implementation guide](voice/realtime/README.md) for packet limits, helper restrictions, recall rules and verification details. Provider retention and exact subscription accounting are not promised by Draken.
|
|
62
64
|
|
package/dist/db/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAUtC,wBAAgB,KAAK,IAAI,QAAQ,CAAC,QAAQ,CAazC;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAUtC,wBAAgB,KAAK,IAAI,QAAQ,CAAC,QAAQ,CAazC;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAkQ5D;AAED,wBAAgB,OAAO,IAAI,IAAI,CAG9B"}
|
package/dist/db/schema.js
CHANGED
|
@@ -145,6 +145,28 @@ function initSchema(database) {
|
|
|
145
145
|
completed_at TEXT
|
|
146
146
|
);
|
|
147
147
|
CREATE INDEX IF NOT EXISTS sync_runs_sync ON sync_runs(sync_id, id);
|
|
148
|
+
-- Paid cache preparation has no snapshot, reservation or coverage identity.
|
|
149
|
+
CREATE TABLE IF NOT EXISTS background_runs (
|
|
150
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
151
|
+
status TEXT NOT NULL DEFAULT 'running',
|
|
152
|
+
stage TEXT NOT NULL DEFAULT 'Planning',
|
|
153
|
+
summary_model TEXT NOT NULL,
|
|
154
|
+
final_model TEXT NOT NULL,
|
|
155
|
+
invocations INTEGER NOT NULL DEFAULT 0,
|
|
156
|
+
max_invocations INTEGER NOT NULL,
|
|
157
|
+
processed_entries INTEGER NOT NULL DEFAULT 0,
|
|
158
|
+
total_entries INTEGER NOT NULL,
|
|
159
|
+
cache_hits INTEGER NOT NULL DEFAULT 0,
|
|
160
|
+
error TEXT NOT NULL DEFAULT '',
|
|
161
|
+
started_at TEXT NOT NULL,
|
|
162
|
+
completed_at TEXT,
|
|
163
|
+
metrics_json TEXT NOT NULL DEFAULT '[]',
|
|
164
|
+
input_key TEXT NOT NULL,
|
|
165
|
+
source_keys_json TEXT NOT NULL DEFAULT '{}',
|
|
166
|
+
cache_receipt_json TEXT NOT NULL DEFAULT '[]',
|
|
167
|
+
failure_events_json TEXT NOT NULL DEFAULT '[]'
|
|
168
|
+
);
|
|
169
|
+
CREATE INDEX IF NOT EXISTS background_runs_input ON background_runs(input_key, id);
|
|
148
170
|
CREATE TABLE IF NOT EXISTS voice_calls (
|
|
149
171
|
id TEXT PRIMARY KEY,
|
|
150
172
|
sync_id INTEGER NOT NULL REFERENCES syncs(id),
|
|
@@ -210,6 +232,9 @@ function initSchema(database) {
|
|
|
210
232
|
snapshot_at: 'TEXT',
|
|
211
233
|
model_config_json: "TEXT NOT NULL DEFAULT '{}'",
|
|
212
234
|
compression_complete: 'INTEGER NOT NULL DEFAULT 0',
|
|
235
|
+
conversation_last_user_at: 'TEXT',
|
|
236
|
+
conversation_ended_at: 'TEXT',
|
|
237
|
+
conversation_before: 'TEXT',
|
|
213
238
|
})) {
|
|
214
239
|
if (!columns.has(name))
|
|
215
240
|
database.exec(`ALTER TABLE syncs ADD COLUMN ${name} ${definition}`);
|
|
@@ -221,6 +246,44 @@ function initSchema(database) {
|
|
|
221
246
|
database.exec('ALTER TABLE sync_runs ADD COLUMN request_id TEXT');
|
|
222
247
|
database.exec('CREATE UNIQUE INDEX IF NOT EXISTS sync_run_request ON sync_runs(request_id) WHERE request_id IS NOT NULL');
|
|
223
248
|
database.prepare('UPDATE syncs SET snapshot_at = created_at WHERE snapshot_at IS NULL').run();
|
|
249
|
+
if (!columns.has('conversation_last_user_at')) {
|
|
250
|
+
// Only real user activity seeds the idle clock. Generated replies, polls,
|
|
251
|
+
// receipts and background runs are deliberately absent from this migration.
|
|
252
|
+
database.exec(`UPDATE syncs SET conversation_last_user_at=MAX(created_at,
|
|
253
|
+
COALESCE((SELECT MAX(created_at) FROM sync_messages WHERE sync_id=syncs.id AND role='user'),created_at),
|
|
254
|
+
COALESCE((SELECT MAX(m.started_at) FROM live_messages m JOIN live_calls c ON c.id=m.call_id
|
|
255
|
+
WHERE c.sync_id=syncs.id AND m.role='user' AND TRIM(m.text)!=''),created_at)) WHERE status='open'`);
|
|
256
|
+
// An already used v0.7 chat/call passed explicit history preparation. Retain
|
|
257
|
+
// a conservative cutoff even when a newer receipt format needs refreshing.
|
|
258
|
+
database.exec(`UPDATE syncs SET conversation_before=snapshot_at WHERE status='open'
|
|
259
|
+
AND briefing!='' AND compression_complete=1 AND (
|
|
260
|
+
EXISTS(SELECT 1 FROM sync_runs WHERE sync_id=syncs.id AND request_id IS NOT NULL)
|
|
261
|
+
OR EXISTS(SELECT 1 FROM live_calls WHERE sync_id=syncs.id))`);
|
|
262
|
+
// Also preserve prepared-but-not-yet-used chats from the old read-only
|
|
263
|
+
// receipt. This is historical preparation, NOT validation of current inputs.
|
|
264
|
+
const file = path_1.default.join((0, data_dir_1.getDataDir)(), 'memory', 'index.sqlite');
|
|
265
|
+
let memory;
|
|
266
|
+
try {
|
|
267
|
+
if (fs_1.default.existsSync(file)) {
|
|
268
|
+
memory = new better_sqlite3_1.default(file, { readonly: true, fileMustExist: true });
|
|
269
|
+
const raw = memory.prepare("SELECT value FROM meta WHERE key='call-history-ready-v1'").get();
|
|
270
|
+
const marker = raw && raw.value.length <= 1024 ? JSON.parse(raw.value) : null;
|
|
271
|
+
if (marker && typeof marker.before === 'string' && Number.isFinite(Date.parse(marker.before))
|
|
272
|
+
&& new Date(marker.before).toISOString() === marker.before && marker.before <= new Date().toISOString()
|
|
273
|
+
&& typeof marker.stamp === 'string' && /^[a-f0-9]{64}$/.test(marker.stamp)
|
|
274
|
+
&& typeof marker.model === 'string' && marker.model.length > 0
|
|
275
|
+
&& marker.model === memory.prepare("SELECT value FROM meta WHERE key='model'").get()?.value
|
|
276
|
+
&& memory.prepare("SELECT value FROM meta WHERE key='schema'").get()?.value === 'history-index-v3-contentless') {
|
|
277
|
+
database.prepare(`UPDATE syncs SET conversation_before=? WHERE status='open' AND conversation_before IS NULL
|
|
278
|
+
AND briefing!='' AND compression_complete=1 AND snapshot_at<=?`).run(marker.before, marker.before);
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
catch { /* Missing/old caches do not prevent opening the original database. */ }
|
|
283
|
+
finally {
|
|
284
|
+
memory?.close();
|
|
285
|
+
}
|
|
286
|
+
}
|
|
224
287
|
(0, pointer_migration_1.migratePointers)(database);
|
|
225
288
|
(0, snapshot_pointers_1.migrateSnapshotPointers)(database);
|
|
226
289
|
(0, agent_migration_1.migrateAgents)(database);
|
|
@@ -231,6 +294,8 @@ function initSchema(database) {
|
|
|
231
294
|
const seed = database.prepare('INSERT INTO sync_settings(key,value) VALUES (?,?)');
|
|
232
295
|
seed.run('auto_index', 'true');
|
|
233
296
|
}
|
|
297
|
+
// An absent auto_summary preference means false. Never seed paid consent from
|
|
298
|
+
// auto_index or the retired automatic-conversation preference on upgrades.
|
|
234
299
|
// Preserve the saved indexing choice while withdrawing the retired permission
|
|
235
300
|
// to create snapshots and spend provider quota in the background.
|
|
236
301
|
database.exec(`INSERT OR IGNORE INTO sync_settings(key,value)
|
package/dist/db/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":";;;;;AAUA,sBAaC;AAED,
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,9 +5,10 @@ export interface HistoryReadiness {
|
|
|
5
5
|
before: string | null;
|
|
6
6
|
}
|
|
7
7
|
/** A scheduling/readiness hint, not evidence. Original bytes are still verified
|
|
8
|
-
* when preparing and retrieving.
|
|
9
|
-
*
|
|
10
|
-
|
|
8
|
+
* when preparing and retrieving. Identity covers admitted records, not mutable
|
|
9
|
+
* import cursors: an append followed by a scan must preserve a prepared prefix.
|
|
10
|
+
* Frozen aliases need their own links even when sourceStamps coalesces them. */
|
|
11
|
+
export declare function historyStamp(source: Database.Database, before?: string, roots?: RootInput, capturedOnly?: boolean): string;
|
|
11
12
|
export declare function saveHistoryReadiness(db: Database.Database, source: Database.Database, before: string, stamp: string, model: string, roots?: RootInput): void;
|
|
12
13
|
export declare function indexReadiness(db: Database.Database, source: Database.Database, capturedOnly?: boolean): HistoryReadiness;
|
|
13
14
|
/** Read-only metadata. Never creates a cache, scans source logs, starts a worker,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readiness.d.ts","sourceRoot":"","sources":["../../src/memory/readiness.ts"],"names":[],"mappings":"AAGA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"readiness.d.ts","sourceRoot":"","sources":["../../src/memory/readiness.ts"],"names":[],"mappings":"AAGA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAQlE,MAAM,WAAW,gBAAgB;IAAG,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE;AA0B3E;;;gFAGgF;AAChF,wBAAgB,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,YAAY,UAAQ,GAAG,MAAM,CA4FxH;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,SAAS,GAAG,IAAI,CAY5J;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,QAAQ,EAAE,YAAY,UAAQ,GAAG,gBAAgB,CAqBvH;AAED;oFACoF;AACpF,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,QAAQ,EAAE,YAAY,UAAQ,GAAG,gBAAgB,CAa3H"}
|
package/dist/memory/readiness.js
CHANGED
|
@@ -16,47 +16,135 @@ const registry_1 = require("../sources/registry");
|
|
|
16
16
|
const model_files_1 = require("./model-files");
|
|
17
17
|
const model_assets_1 = require("./model-assets");
|
|
18
18
|
const KEY = 'call-history-ready-v1';
|
|
19
|
+
// Keep the storage key so old receipts are replaced by explicit preparation,
|
|
20
|
+
// not mistaken for current coverage. Compatible passages/vectors remain intact.
|
|
21
|
+
const VERSION = 2;
|
|
22
|
+
// Two replaceable slots, not a map of every preparation/cutoff ever requested.
|
|
23
|
+
// Retain only required-file descriptors and digests, never per-entry/frozen JSON.
|
|
19
24
|
const cached = new WeakMap();
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
function historyStamp(source, before, roots) {
|
|
24
|
-
if (source.prepare("SELECT value FROM sync_settings WHERE key='source-scan-complete-v1'").get()?.value === '0')
|
|
25
|
-
throw new Error('History import has not completed. Scan sessions before calling.');
|
|
26
|
-
const now = Date.now(), cutoff = before || new Date(now).toISOString();
|
|
27
|
-
const files = (0, crypto_1.createHash)('sha256').update(JSON.stringify((0, registry_1.sourceRoots)(roots)));
|
|
28
|
-
for (const row of source.prepare('SELECT s.path,s.file_identity,s.byte_offset,s.scanned_bytes,s.modified_at FROM agent_sessions s JOIN agent_sources a ON a.id=s.agent WHERE s.included=1 AND s.missing=0 AND a.enabled=1 AND EXISTS (SELECT 1 FROM agent_entries e WHERE e.session_id=s.id AND e.is_activity=1) ORDER BY s.id').iterate()) {
|
|
25
|
+
function fileMetadata(files) {
|
|
26
|
+
const metadata = (0, crypto_1.createHash)('sha256');
|
|
27
|
+
for (const row of files) {
|
|
29
28
|
const stat = fs_1.default.lstatSync(row.path);
|
|
30
29
|
if (!stat.isFile() || `${stat.dev}:${stat.ino}` !== row.file_identity || stat.size < row.scanned_bytes)
|
|
31
30
|
throw new Error('Original session file is unavailable.');
|
|
32
31
|
if (stat.size === row.scanned_bytes && stat.mtime.toISOString() !== row.modified_at)
|
|
33
32
|
throw new Error('Original session file is unavailable or changed. Prepare history again.');
|
|
34
|
-
if (
|
|
33
|
+
if (row.scanned_bytes <= 0 || row.scanned_bytes < row.byte_offset || row.byte_offset < row.end)
|
|
35
34
|
throw new Error('Finish importing history before calling.');
|
|
36
|
-
//
|
|
37
|
-
//
|
|
38
|
-
|
|
35
|
+
// This is only a cache invalidator, NOT receipt identity. A valid append may
|
|
36
|
+
// rebuild metadata without changing the captured stamp. Never read bodies.
|
|
37
|
+
metadata.update(JSON.stringify([stat.dev, stat.ino, stat.size, stat.mtimeMs, stat.ctimeMs]));
|
|
38
|
+
}
|
|
39
|
+
return metadata.digest('hex');
|
|
40
|
+
}
|
|
41
|
+
/** A scheduling/readiness hint, not evidence. Original bytes are still verified
|
|
42
|
+
* when preparing and retrieving. Identity covers admitted records, not mutable
|
|
43
|
+
* import cursors: an append followed by a scan must preserve a prepared prefix.
|
|
44
|
+
* Frozen aliases need their own links even when sourceStamps coalesces them. */
|
|
45
|
+
function historyStamp(source, before, roots, capturedOnly = false) {
|
|
46
|
+
// A failed discovery of a NEW file must block new global coverage, but cannot
|
|
47
|
+
// revoke a previously captured context. Its own files still need completed
|
|
48
|
+
// imports below. Preparing a receipt always uses the strict check.
|
|
49
|
+
if (!capturedOnly && source.prepare("SELECT value FROM sync_settings WHERE key='source-scan-complete-v1'").get()?.value === '0')
|
|
50
|
+
throw new Error('History import has not completed. Scan sessions before calling.');
|
|
51
|
+
const now = Date.now(), cutoff = before || new Date(now).toISOString();
|
|
52
|
+
const rootKey = JSON.stringify((0, registry_1.sourceRoots)(roots));
|
|
53
|
+
const revision = `${VERSION}:${source.pragma('data_version', { simple: true })}:${source.prepare('SELECT total_changes() AS n').get().n}`;
|
|
54
|
+
const slots = cached.get(source) || {};
|
|
55
|
+
cached.set(source, slots);
|
|
56
|
+
const slot = before === undefined ? 'current' : 'captured', prior = slots[slot];
|
|
57
|
+
// Drop before validation/rebuilding so failures cannot leave reusable state.
|
|
58
|
+
delete slots[slot];
|
|
59
|
+
if (prior?.revision === revision && prior.before === before && prior.roots === rootKey
|
|
60
|
+
&& now < prior.until && (before !== undefined || now >= prior.from)) {
|
|
61
|
+
// SQL metadata can be cached, external file changes cannot. In particular,
|
|
62
|
+
// frozen-only branches still require their original file on every poll.
|
|
63
|
+
if (fileMetadata(prior.files) === prior.metadata) {
|
|
64
|
+
slots[slot] = prior;
|
|
65
|
+
return prior.stamp;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
let until = Infinity;
|
|
69
|
+
const since = source.prepare("SELECT value FROM sync_settings WHERE key='history_since'").get()?.value || '';
|
|
70
|
+
const sessions = new Map(source.prepare(`SELECT s.id,s.path,s.file_identity,s.byte_offset,s.scanned_bytes,s.modified_at
|
|
71
|
+
FROM agent_sessions s JOIN agent_sources a ON a.id=s.agent
|
|
72
|
+
WHERE s.included=1 AND s.missing=0 AND a.enabled=1 ORDER BY s.id`).all().map(row => [row.id, row]));
|
|
73
|
+
const required = new Map();
|
|
74
|
+
const requirePointer = (session, pointer) => {
|
|
75
|
+
const end = pointer.record_offset + pointer.record_bytes;
|
|
76
|
+
if (!Number.isSafeInteger(pointer.record_offset) || pointer.record_offset < 0 || !Number.isSafeInteger(pointer.record_bytes) || pointer.record_bytes <= 0 || !Number.isSafeInteger(end))
|
|
77
|
+
throw new Error('Invalid history source pointer.');
|
|
78
|
+
required.set(session, Math.max(required.get(session) || 0, end));
|
|
79
|
+
};
|
|
80
|
+
for (const row of source.prepare(`SELECT e.session_id,e.record_offset,e.record_bytes,edit.record_offset AS edit_offset,edit.record_bytes AS edit_bytes
|
|
81
|
+
FROM agent_entries e LEFT JOIN agent_entries edit ON edit.id=e.effective_id
|
|
82
|
+
WHERE e.active=1 AND e.present=1 AND e.is_activity=1 AND e.effective_length>0 AND e.timestamp>=? AND e.timestamp<=?`).iterate(since, cutoff)) {
|
|
83
|
+
if (!sessions.has(row.session_id))
|
|
84
|
+
continue;
|
|
85
|
+
requirePointer(row.session_id, row);
|
|
86
|
+
if (row.edit_offset !== null)
|
|
87
|
+
requirePointer(row.session_id, { record_offset: row.edit_offset, record_bytes: row.edit_bytes });
|
|
88
|
+
}
|
|
89
|
+
const aliases = (0, crypto_1.createHash)('sha256');
|
|
90
|
+
const original = source.prepare('SELECT record_offset,record_bytes,record_hash,present FROM agent_entries WHERE session_id=? AND entry_id=?');
|
|
91
|
+
const verified = new Set();
|
|
92
|
+
const frozenPointer = (session, entry, pointer) => {
|
|
93
|
+
requirePointer(session, pointer);
|
|
94
|
+
const key = JSON.stringify([session, entry, pointer]);
|
|
95
|
+
if (verified.has(key))
|
|
96
|
+
return;
|
|
97
|
+
// A frozen-only superseded branch is not represented by the live stamps.
|
|
98
|
+
// A rescan that removed/rewrote its bytes must still revoke readiness, even
|
|
99
|
+
// though the immutable frozen pointer itself (correctly) never changes.
|
|
100
|
+
const row = original.get(session, entry);
|
|
101
|
+
if (!row?.present || row.record_hash !== pointer.record_hash || row.record_offset !== pointer.record_offset || row.record_bytes !== pointer.record_bytes)
|
|
102
|
+
throw new Error('Original frozen session record is unavailable or changed.');
|
|
103
|
+
verified.add(key);
|
|
104
|
+
};
|
|
105
|
+
const frozen = (sync, item) => {
|
|
106
|
+
if (!sessions.has(item.session_id) || item.timestamp < since)
|
|
107
|
+
return;
|
|
108
|
+
if (item.timestamp > cutoff) {
|
|
109
|
+
if (before === undefined)
|
|
110
|
+
until = Math.min(until, Date.parse(item.timestamp));
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
if (!item.source_pointer)
|
|
114
|
+
throw new Error('History requires verified frozen pointers.');
|
|
115
|
+
frozenPointer(item.session_id, item.entry_id, item.source_pointer.original);
|
|
116
|
+
if (item.source_pointer.edit)
|
|
117
|
+
frozenPointer(item.session_id, item.source_pointer.edit.entry_id, item.source_pointer.edit);
|
|
118
|
+
aliases.update(JSON.stringify([sync, item]));
|
|
119
|
+
};
|
|
120
|
+
for (const row of source.prepare("SELECT i.sync_id,i.evidence_json FROM sync_items i JOIN syncs s ON s.id=i.sync_id WHERE s.status!='discarded' ORDER BY i.sync_id,i.rowid").iterate())
|
|
121
|
+
frozen(row.sync_id, JSON.parse(row.evidence_json));
|
|
122
|
+
for (const row of source.prepare("SELECT id,context_json FROM syncs WHERE status!='discarded' ORDER BY id").iterate()) {
|
|
123
|
+
for (const item of JSON.parse(row.context_json))
|
|
124
|
+
frozen(row.id, item);
|
|
125
|
+
}
|
|
126
|
+
const files = (0, crypto_1.createHash)('sha256').update(rootKey).update(aliases.digest('hex'));
|
|
127
|
+
const descriptors = [];
|
|
128
|
+
for (const [id, row] of sessions) {
|
|
129
|
+
const end = required.get(id);
|
|
130
|
+
if (end === undefined)
|
|
131
|
+
continue;
|
|
132
|
+
descriptors.push({ ...row, end });
|
|
133
|
+
// Cursors are validated, never hashed. They advance on normal append+scan;
|
|
134
|
+
// old record hashes/projections/admission below still detect actual damage.
|
|
135
|
+
files.update(JSON.stringify([id, row.path, row.file_identity]));
|
|
39
136
|
}
|
|
137
|
+
const metadata = fileMetadata(descriptors);
|
|
40
138
|
const fileStamp = files.digest('hex');
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
if (prior?.revision === revision && prior.before === before && now < prior.until)
|
|
44
|
-
return prior.stamp;
|
|
45
|
-
const hash = (0, crypto_1.createHash)('sha256').update(fileStamp).update(JSON.stringify([...(0, stamps_1.sourceStamps)(source, cutoff)]));
|
|
46
|
-
for (const row of source.prepare("SELECT i.sync_id,i.evidence_json FROM sync_items i JOIN syncs s ON s.id=i.sync_id WHERE s.status!='discarded' ORDER BY i.rowid").iterate())
|
|
47
|
-
hash.update(JSON.stringify(row));
|
|
48
|
-
for (const row of source.prepare("SELECT id,context_json FROM syncs WHERE status!='discarded' ORDER BY id").iterate())
|
|
49
|
-
hash.update(JSON.stringify(row));
|
|
50
|
-
const stamp = hash.digest('hex');
|
|
51
|
-
if (!before) {
|
|
139
|
+
const stamp = (0, crypto_1.createHash)('sha256').update(fileStamp).update(JSON.stringify([...(0, stamps_1.sourceStamps)(source, cutoff)])).digest('hex');
|
|
140
|
+
if (before === undefined) {
|
|
52
141
|
const next = source.prepare(`SELECT MIN(at) AS at FROM (
|
|
53
142
|
SELECT timestamp AS at FROM agent_entries WHERE timestamp>?
|
|
54
143
|
UNION ALL SELECT created_at FROM sync_messages WHERE created_at>?
|
|
55
144
|
UNION ALL SELECT completed_at FROM syncs WHERE completed_at>?)`).get(cutoff, cutoff, cutoff);
|
|
56
|
-
|
|
145
|
+
until = Math.min(until, next.at ? Date.parse(next.at) : Infinity);
|
|
57
146
|
}
|
|
58
|
-
|
|
59
|
-
cached.set(source, { revision, until: Infinity, stamp, before });
|
|
147
|
+
slots[slot] = { revision, roots: rootKey, before, from: now, until, stamp, files: descriptors, metadata };
|
|
60
148
|
return stamp;
|
|
61
149
|
}
|
|
62
150
|
function saveHistoryReadiness(db, source, before, stamp, model, roots) {
|
|
@@ -67,13 +155,13 @@ function saveHistoryReadiness(db, source, before, stamp, model, roots) {
|
|
|
67
155
|
if (prior && prior.value.length <= 1024) {
|
|
68
156
|
try {
|
|
69
157
|
const value = JSON.parse(prior.value);
|
|
70
|
-
if (value.stamp === stamp && value.model === model && typeof value.before === 'string'
|
|
158
|
+
if (value.version === VERSION && value.stamp === stamp && value.model === model && typeof value.before === 'string'
|
|
71
159
|
&& new Date(value.before).toISOString() === value.before && value.before <= before)
|
|
72
160
|
return;
|
|
73
161
|
}
|
|
74
162
|
catch { /* Explicit preparation can replace an invalid receipt, not source evidence. */ }
|
|
75
163
|
}
|
|
76
|
-
db.prepare('INSERT INTO meta(key,value) VALUES(?,?) ON CONFLICT(key) DO UPDATE SET value=excluded.value').run(KEY, JSON.stringify({ before, stamp, model }));
|
|
164
|
+
db.prepare('INSERT INTO meta(key,value) VALUES(?,?) ON CONFLICT(key) DO UPDATE SET value=excluded.value').run(KEY, JSON.stringify({ version: VERSION, before, stamp, model }));
|
|
77
165
|
}
|
|
78
166
|
function indexReadiness(db, source, capturedOnly = false) {
|
|
79
167
|
const absent = { ready: false, before: null };
|
|
@@ -84,16 +172,21 @@ function indexReadiness(db, source, capturedOnly = false) {
|
|
|
84
172
|
if (!row || row.value.length > 1024)
|
|
85
173
|
return absent;
|
|
86
174
|
const marker = JSON.parse(row.value);
|
|
87
|
-
if (typeof marker.before !== 'string' || !Number.isFinite(Date.parse(marker.before)) || new Date(marker.before).toISOString() !== marker.before || marker.before > new Date().toISOString()
|
|
175
|
+
if (marker.version !== VERSION || typeof marker.before !== 'string' || !Number.isFinite(Date.parse(marker.before)) || new Date(marker.before).toISOString() !== marker.before || marker.before > new Date().toISOString()
|
|
88
176
|
|| typeof marker.stamp !== 'string' || !/^[a-f0-9]{64}$/.test(marker.stamp)
|
|
89
177
|
|| marker.model !== db.prepare("SELECT value FROM meta WHERE key='model'").get()?.value)
|
|
90
178
|
return absent;
|
|
91
|
-
|
|
179
|
+
// Start with incomplete physical passages, not every occurrence/alias. The
|
|
180
|
+
// correlated lookup uses links_passage; new caches also have a tiny partial
|
|
181
|
+
// passages index. Older read-only schemas need no migration to run this.
|
|
182
|
+
if (db.prepare(`SELECT 1 FROM passages p WHERE p.embedded=0 AND EXISTS (
|
|
183
|
+
SELECT 1 FROM chunk_links c JOIN records r ON r.ref=c.ref
|
|
184
|
+
WHERE c.passage_id=p.id AND r.at<=?) LIMIT 1`).get(marker.before))
|
|
92
185
|
return absent;
|
|
93
|
-
//
|
|
94
|
-
//
|
|
95
|
-
//
|
|
96
|
-
return marker.stamp === historyStamp(source, capturedOnly ? marker.before : undefined) ? { ready: true, before: marker.before } : absent;
|
|
186
|
+
// New post-cutoff entries/messages/sessions are not claimed as indexed.
|
|
187
|
+
// An alias of an OLD record still needs a link, regardless of snapshot age;
|
|
188
|
+
// unlike an alias of a post-cutoff record, it must invalidate this receipt.
|
|
189
|
+
return marker.stamp === historyStamp(source, capturedOnly ? marker.before : undefined, undefined, capturedOnly) ? { ready: true, before: marker.before } : absent;
|
|
97
190
|
}
|
|
98
191
|
catch {
|
|
99
192
|
return absent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readiness.js","sourceRoot":"","sources":["../../src/memory/readiness.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"readiness.js","sourceRoot":"","sources":["../../src/memory/readiness.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/memory/storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAG3C;0EAC0E;AAC1E,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/memory/storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAG3C;0EAC0E;AAC1E,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAiGnF"}
|
package/dist/memory/storage.js
CHANGED
|
@@ -27,6 +27,7 @@ function initHistoryStorage(db, fingerprint) {
|
|
|
27
27
|
CREATE TABLE IF NOT EXISTS chunk_links(id INTEGER PRIMARY KEY AUTOINCREMENT,ref TEXT NOT NULL REFERENCES records(ref) ON DELETE CASCADE,offset INTEGER NOT NULL,passage_id INTEGER NOT NULL REFERENCES passages(id));
|
|
28
28
|
CREATE INDEX IF NOT EXISTS links_ref ON chunk_links(ref);
|
|
29
29
|
CREATE INDEX IF NOT EXISTS links_passage ON chunk_links(passage_id);
|
|
30
|
+
CREATE INDEX IF NOT EXISTS passages_incomplete ON passages(id) WHERE embedded=0;
|
|
30
31
|
CREATE VIRTUAL TABLE IF NOT EXISTS passage_vectors USING vec0(embedding float[${embedding_contract_1.EMBEDDING_DIMENSIONS}] distance_metric=cosine);
|
|
31
32
|
`);
|
|
32
33
|
if (prior === 'history-index-v1') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/memory/storage.ts"],"names":[],"mappings":";;AAKA,
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/memory/storage.ts"],"names":[],"mappings":";;AAKA,gDAiGC;AArGD,6DAA6F;AAE7F;0EAC0E;AAC1E,SAAgB,kBAAkB,CAAC,EAAqB,EAAE,WAAmB;IAC3E,MAAM,OAAO,GAAG,8BAA8B,CAAC;IAC/C,IAAI,EAAE,CAAC,OAAO,CAAC,gEAAgE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;QACvF,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;QAC7D,uEAAuE;QACvE,2EAA2E;QAC3E,IAAK,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAmC,EAAE,KAAK,KAAK,OAAO;eACrE,GAAG,CAAC,GAAG,CAAC,OAAO,CAAmC,EAAE,KAAK,KAAK,WAAW;eACzE,GAAG,CAAC,GAAG,CAAC,uBAAuB,CAAmC,EAAE,KAAK,KAAK,GAAG;YAAE,OAAO;IAClG,CAAC;IACD,EAAE,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAC;IACrF,MAAM,KAAK,GAAI,EAAE,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC,GAAG,EAAU,EAAE,KAAK,CAAC;IAC5F,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,kBAAkB,EAAE,2BAA2B,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,OAAO,CAAC,qFAAqF,CAAC,CAAC,GAAG,EAAE,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IACnS,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;QAClB,EAAE,CAAC,IAAI,CAAC;;;;;;;;sFAQ0E,yCAAoB;KACrG,CAAC,CAAC;QACH,IAAI,KAAK,KAAK,kBAAkB,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAI,EAAE,CAAC,OAAO,CAAC,qDAAqD,CAAC,CAAC,GAAG,EAAU,EAAE,GAAG,IAAI,CAAC,CAAC;YAC5G,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,uDAAuD,CAAC,CAAC;YACnF,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC;YACnE,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,mEAAmE,CAAC,CAAC;YAC7F,KAAK,MAAM,GAAG,IAAI,EAAE,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC,GAAG,EAAW,EAAE,CAAC;gBAChF,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;gBAAC,MAAM,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAQ,CAAC;gBACxE,IAAI,OAAO,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;gBAC3E,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;YACpD,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,oEAAoE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAO,IAAI,QAAQ;gBAAE,EAAE,CAAC,OAAO,CAAC,mDAAmD,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;YACtN,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,oDAAoD,CAAC,CAAC;YAC/E,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC;YACzE,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,0DAA0D,CAAC,CAAC;YACpF,yEAAyE;YACzE,oEAAoE;YACpE,KAAK,MAAM,GAAG,IAAI,EAAE,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC,GAAG,EAAW;gBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC5G,KAAK,MAAM,OAAO,IAAI,EAAE,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC,GAAG,EAAW,EAAE,CAAC;gBAC5F,IAAI,KAAK,GAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAS,EAAE,SAA+B,CAAC;gBAC9E,KAAK,MAAM,GAAG,IAAI,EAAE,CAAC,OAAO,CAAC,mDAAmD,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAU,EAAE,CAAC;oBAC7G,MAAM,KAAK,GAAI,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAS,EAAE,SAA+B,CAAC;oBACnF,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;oBAClH,KAAK,KAAK,KAAK,CAAC;gBAClB,CAAC;gBACD,IAAI,CAAC,KAAK;oBAAE,SAAS;gBACrB,IAAI,KAAK,CAAC,MAAM,KAAK,oCAAe,IAAI,CAAC,IAAA,mCAAc,EAAC,IAAI,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;gBACxJ,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;gBAAC,EAAE,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC/G,CAAC;YACD,wEAAwE;YACxE,wEAAwE;YACxE,EAAE,CAAC,IAAI,CAAC,+IAA+I,CAAC,CAAC;YACzJ,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,sDAAsD,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;gBAC9E,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;gBAChE,KAAK,MAAM,GAAG,IAAI,EAAE,CAAC,OAAO,CAAC;;8FAEyD,CAAC,CAAC,GAAG,EAAW,EAAE,CAAC;oBACvG,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;oBACvC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;wBAChE,4EAA4E;wBAC5E,MAAM,IAAI,GAAI,EAAE,CAAC,OAAO,CAAC,kFAAkF,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAS,CAAC,IAAI,CAAC;wBACtI,EAAE,CAAC,OAAO,CAAC,0DAA0D,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;wBAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC/G,CAAC;gBACH,CAAC;YACH,CAAC;YACD,EAAE,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;QAChE,CAAC;QACD,IAAK,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,CAAC;YACrG,IAAI,EAAE,CAAC,OAAO,CAAC,+FAA+F,CAAC,CAAC,GAAG,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;YACjM,sEAAsE;YACtE,wEAAwE;YACxE,EAAE,CAAC,IAAI,CAAC;;;;;+CAKiC,CAAC,CAAC;QAC7C,CAAC;QACD,EAAE,CAAC,IAAI,CAAC;;;;;;KAMP,CAAC,CAAC;QACH,MAAM,QAAQ,GAAI,EAAE,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC,GAAG,EAAU,EAAE,KAAK,CAAC;QAC9F,IAAI,QAAQ,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;YACzC,mFAAmF;YACnF,EAAE,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;QACvD,CAAC;QACD,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,8HAA8H,CAAC,CAAC;QAC5J,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACpE,EAAE,CAAC,OAAO,CAAC,gEAAgE,CAAC,CAAC,GAAG,EAAE,CAAC;IACrF,CAAC,CAAC,EAAE,CAAC;AACP,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/routes/sync.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/routes/sync.ts"],"names":[],"mappings":"AAgBA,QAAA,MAAM,MAAM,4CAAW,CAAC;AA0HxB,eAAe,MAAM,CAAC"}
|
package/dist/routes/sync.js
CHANGED
|
@@ -12,7 +12,9 @@ const manager_1 = require("../sync/manager");
|
|
|
12
12
|
const background_1 = require("../sync/background");
|
|
13
13
|
const preparation_1 = require("../sync/preparation");
|
|
14
14
|
const usage_1 = require("../sync/usage");
|
|
15
|
+
const summary_preparation_1 = require("../sync/summary-preparation");
|
|
15
16
|
const activity_1 = require("../sync/activity");
|
|
17
|
+
const conversation_1 = require("../sync/conversation");
|
|
16
18
|
const router = (0, express_1.Router)();
|
|
17
19
|
function id(req) {
|
|
18
20
|
const value = Number(req.params.id);
|
|
@@ -37,6 +39,12 @@ router.patch('/settings/auto-index', (0, http_1.route)((req, res) => {
|
|
|
37
39
|
throw new errors_1.HttpError(400, 'Only boolean enabled is accepted');
|
|
38
40
|
res.json((0, background_1.setAutoIndex)(req.body.enabled));
|
|
39
41
|
}));
|
|
42
|
+
router.get('/settings/auto-summary', (0, http_1.route)((_req, res) => res.json((0, summary_preparation_1.summaryPreparationSettings)())));
|
|
43
|
+
router.patch('/settings/auto-summary', (0, http_1.route)(async (req, res) => {
|
|
44
|
+
if (!req.body || Array.isArray(req.body) || typeof req.body.enabled !== 'boolean' || Object.keys(req.body).some(key => key !== 'enabled'))
|
|
45
|
+
throw new errors_1.HttpError(400, 'Only boolean enabled is accepted');
|
|
46
|
+
res.json(await (0, background_1.setAutoSummary)(req.body.enabled));
|
|
47
|
+
}));
|
|
40
48
|
router.use((req, _res, next) => {
|
|
41
49
|
if (['POST', 'PATCH', 'DELETE'].includes(req.method))
|
|
42
50
|
void (0, background_1.yieldBackgroundIndexing)().then(() => next(), next);
|
|
@@ -103,6 +111,7 @@ router.post('/syncs', (0, http_1.route)(async (req, res) => {
|
|
|
103
111
|
res.json({ sync: (0, store_1.startSync)(since), scan });
|
|
104
112
|
}));
|
|
105
113
|
router.get('/syncs/:id', (0, http_1.route)((req, res) => res.json((0, store_1.getSync)(id(req)))));
|
|
114
|
+
router.get('/syncs/:id/conversation', (0, http_1.route)((req, res) => res.json((0, conversation_1.conversationStatus)(id(req)))));
|
|
106
115
|
router.get('/syncs/:id/progress', (0, http_1.route)((req, res) => res.json((0, store_1.getProgress)(id(req)))));
|
|
107
116
|
router.get('/syncs/:id/call-readiness', (0, http_1.route)((req, res) => res.json((0, preparation_1.callReadiness)(id(req)))));
|
|
108
117
|
router.get('/syncs/:id/chat-readiness', (0, http_1.route)((req, res) => { res.json((0, preparation_1.callReadiness)(id(req), true)); }));
|
package/dist/routes/sync.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/routes/sync.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/routes/sync.ts"],"names":[],"mappings":"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"}
|