@claudexor/daemon 5.0.1 → 5.1.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/dist/client.d.ts +56 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/command-store.d.ts +2 -0
- package/dist/command-store.d.ts.map +1 -1
- package/dist/command-store.js.map +1 -1
- package/dist/deferred-message-owner.d.ts +14 -1
- package/dist/deferred-message-owner.d.ts.map +1 -1
- package/dist/deferred-messages.d.ts +22 -1
- package/dist/deferred-messages.d.ts.map +1 -1
- package/dist/deferred-messages.js +60 -18
- package/dist/deferred-messages.js.map +1 -1
- package/dist/enqueue-command.d.ts +19 -4
- package/dist/enqueue-command.d.ts.map +1 -1
- package/dist/enqueue-command.js +72 -8
- package/dist/enqueue-command.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/interactions.d.ts.map +1 -1
- package/dist/interactions.js +29 -7
- package/dist/interactions.js.map +1 -1
- package/dist/job-record.d.ts.map +1 -1
- package/dist/job-record.js +4 -3
- package/dist/job-record.js.map +1 -1
- package/dist/job-settlement.d.ts +3 -1
- package/dist/job-settlement.d.ts.map +1 -1
- package/dist/job-settlement.js +13 -0
- package/dist/job-settlement.js.map +1 -1
- package/dist/model-operation-execution.d.ts +10 -0
- package/dist/model-operation-execution.d.ts.map +1 -1
- package/dist/model-operation-execution.js +12 -5
- package/dist/model-operation-execution.js.map +1 -1
- package/dist/model-operations.d.ts +1 -0
- package/dist/model-operations.d.ts.map +1 -1
- package/dist/model-operations.js +20 -10
- package/dist/model-operations.js.map +1 -1
- package/dist/quota-registry-support.d.ts.map +1 -1
- package/dist/quota-registry-support.js +14 -9
- package/dist/quota-registry-support.js.map +1 -1
- package/dist/server.d.ts +2 -3
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +12 -38
- package/dist/server.js.map +1 -1
- package/dist/store/blob-files.d.ts +17 -6
- package/dist/store/blob-files.d.ts.map +1 -1
- package/dist/store/blob-files.js +29 -5
- package/dist/store/blob-files.js.map +1 -1
- package/dist/store/command-prune.d.ts.map +1 -1
- package/dist/store/command-prune.js +4 -0
- package/dist/store/command-prune.js.map +1 -1
- package/dist/store/commands.d.ts +29 -2
- package/dist/store/commands.d.ts.map +1 -1
- package/dist/store/commands.js +136 -26
- package/dist/store/commands.js.map +1 -1
- package/dist/store/deferred-message-rows.d.ts +10 -0
- package/dist/store/deferred-message-rows.d.ts.map +1 -1
- package/dist/store/deferred-message-rows.js +28 -1
- package/dist/store/deferred-message-rows.js.map +1 -1
- package/dist/store/deferred-messages.d.ts +19 -5
- package/dist/store/deferred-messages.d.ts.map +1 -1
- package/dist/store/deferred-messages.js +93 -30
- package/dist/store/deferred-messages.js.map +1 -1
- package/dist/store/event-store.d.ts +2 -0
- package/dist/store/event-store.d.ts.map +1 -1
- package/dist/store/event-store.js +3 -1
- package/dist/store/event-store.js.map +1 -1
- package/dist/store/external-files.d.ts +57 -2
- package/dist/store/external-files.d.ts.map +1 -1
- package/dist/store/external-files.js +178 -3
- package/dist/store/external-files.js.map +1 -1
- package/dist/store/idempotency.d.ts +1 -1
- package/dist/store/idempotency.d.ts.map +1 -1
- package/dist/store/idempotency.js +2 -1
- package/dist/store/idempotency.js.map +1 -1
- package/dist/store/import-context.js +1 -1
- package/dist/store/import-context.js.map +1 -1
- package/dist/store/libuv-pool.d.ts +25 -0
- package/dist/store/libuv-pool.d.ts.map +1 -0
- package/dist/store/libuv-pool.js +96 -0
- package/dist/store/libuv-pool.js.map +1 -0
- package/dist/store/maintenance-worker.d.ts.map +1 -1
- package/dist/store/maintenance-worker.js +45 -0
- package/dist/store/maintenance-worker.js.map +1 -1
- package/dist/store/maintenance.d.ts +28 -2
- package/dist/store/maintenance.d.ts.map +1 -1
- package/dist/store/maintenance.js +36 -6
- package/dist/store/maintenance.js.map +1 -1
- package/dist/store/project-router.d.ts +108 -1
- package/dist/store/project-router.d.ts.map +1 -1
- package/dist/store/project-router.js +38 -0
- package/dist/store/project-router.js.map +1 -1
- package/dist/store/publish-blob.d.ts.map +1 -1
- package/dist/store/publish-blob.js +36 -14
- package/dist/store/publish-blob.js.map +1 -1
- package/dist/store/purge-files.d.ts +11 -2
- package/dist/store/purge-files.d.ts.map +1 -1
- package/dist/store/purge-files.js +34 -7
- package/dist/store/purge-files.js.map +1 -1
- package/dist/store/resource-release.d.ts +15 -0
- package/dist/store/resource-release.d.ts.map +1 -0
- package/dist/store/resource-release.js +56 -0
- package/dist/store/resource-release.js.map +1 -0
- package/dist/store/resource-rows.d.ts +2 -0
- package/dist/store/resource-rows.d.ts.map +1 -1
- package/dist/store/resource-rows.js.map +1 -1
- package/dist/store/resource-uses.d.ts +84 -0
- package/dist/store/resource-uses.d.ts.map +1 -0
- package/dist/store/resource-uses.js +129 -0
- package/dist/store/resource-uses.js.map +1 -0
- package/dist/store/resources.d.ts +16 -2
- package/dist/store/resources.d.ts.map +1 -1
- package/dist/store/resources.js +42 -3
- package/dist/store/resources.js.map +1 -1
- package/dist/store/retention-changes.d.ts +8 -2
- package/dist/store/retention-changes.d.ts.map +1 -1
- package/dist/store/retention-changes.js +24 -11
- package/dist/store/retention-changes.js.map +1 -1
- package/dist/store/retention-generations.d.ts +7 -2
- package/dist/store/retention-generations.d.ts.map +1 -1
- package/dist/store/retention-generations.js +71 -26
- package/dist/store/retention-generations.js.map +1 -1
- package/dist/store/retention-reference-reader.d.ts +26 -1
- package/dist/store/retention-reference-reader.d.ts.map +1 -1
- package/dist/store/retention-reference-reader.js +31 -7
- package/dist/store/retention-reference-reader.js.map +1 -1
- package/dist/store/retention-references.d.ts +5 -0
- package/dist/store/retention-references.d.ts.map +1 -1
- package/dist/store/retention-references.js +35 -6
- package/dist/store/retention-references.js.map +1 -1
- package/dist/store/schema.d.ts +2 -2
- package/dist/store/schema.d.ts.map +1 -1
- package/dist/store/schema.js +17 -2
- package/dist/store/schema.js.map +1 -1
- package/dist/store/sql-command-router.d.ts +12 -1
- package/dist/store/sql-command-router.d.ts.map +1 -1
- package/dist/store/sql-command-router.js +19 -1
- package/dist/store/sql-command-router.js.map +1 -1
- package/dist/store/sql-daemon-services.d.ts.map +1 -1
- package/dist/store/sql-daemon-services.js +9 -8
- package/dist/store/sql-daemon-services.js.map +1 -1
- package/dist/store/sql-validation.d.ts.map +1 -1
- package/dist/store/sql-validation.js +1 -0
- package/dist/store/sql-validation.js.map +1 -1
- package/dist/store/store.d.ts +9 -0
- package/dist/store/store.d.ts.map +1 -1
- package/dist/store/store.js +19 -0
- package/dist/store/store.js.map +1 -1
- package/dist/store/terminal-files.d.ts +24 -2
- package/dist/store/terminal-files.d.ts.map +1 -1
- package/dist/store/terminal-files.js +153 -31
- package/dist/store/terminal-files.js.map +1 -1
- package/dist/store/thread-closure.d.ts +62 -0
- package/dist/store/thread-closure.d.ts.map +1 -0
- package/dist/store/thread-closure.js +290 -0
- package/dist/store/thread-closure.js.map +1 -0
- package/dist/store/thread-retirement.d.ts +29 -0
- package/dist/store/thread-retirement.d.ts.map +1 -0
- package/dist/store/thread-retirement.js +123 -0
- package/dist/store/thread-retirement.js.map +1 -0
- package/dist/store/threads.d.ts +2 -0
- package/dist/store/threads.d.ts.map +1 -1
- package/dist/store/threads.js +10 -1
- package/dist/store/threads.js.map +1 -1
- package/dist/store/upload-imports.d.ts.map +1 -1
- package/dist/store/upload-imports.js +16 -3
- package/dist/store/upload-imports.js.map +1 -1
- package/dist/store/uploads.d.ts +13 -2
- package/dist/store/uploads.d.ts.map +1 -1
- package/dist/store/uploads.js +76 -30
- package/dist/store/uploads.js.map +1 -1
- package/dist/store-contracts.d.ts +32 -2
- package/dist/store-contracts.d.ts.map +1 -1
- package/dist/terminal-authority.d.ts +9 -1
- package/dist/terminal-authority.d.ts.map +1 -1
- package/dist/terminal-authority.js +32 -0
- package/dist/terminal-authority.js.map +1 -1
- package/dist/thread-lifecycle.d.ts +3 -1
- package/dist/thread-lifecycle.d.ts.map +1 -1
- package/dist/thread-lifecycle.js +2 -2
- package/dist/thread-lifecycle.js.map +1 -1
- package/dist/writer-lease.d.ts.map +1 -1
- package/dist/writer-lease.js +6 -3
- package/dist/writer-lease.js.map +1 -1
- package/package.json +5 -5
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Thread } from "@claudexor/schema";
|
|
2
2
|
import { setImmediate as yieldToAdmission } from "node:timers/promises";
|
|
3
3
|
import { access } from "node:fs/promises";
|
|
4
|
+
import { projectRuntimeDir } from "@claudexor/util";
|
|
4
5
|
import { decodeBody } from "./thread-rows.js";
|
|
5
6
|
import { isServedPid } from "./generations.js";
|
|
6
7
|
import { retentionPages } from "./retention-pages.js";
|
|
@@ -57,10 +58,24 @@ export async function diskRetentionReferences(store, ignoreThreadIds = new Set()
|
|
|
57
58
|
const version = changes.get().n;
|
|
58
59
|
const isCurrent = () => changes.get().n === version;
|
|
59
60
|
const generations = retentionGenerations(store);
|
|
61
|
+
// The observer retains every spelling through queued relinks and deletion.
|
|
62
|
+
const deferred = new Set();
|
|
63
|
+
const runtimeByRoot = new Map();
|
|
64
|
+
const deferRoots = (changedRoots) => {
|
|
65
|
+
for (const root of changedRoots) {
|
|
66
|
+
let runtime = runtimeByRoot.get(root);
|
|
67
|
+
if (!runtime) {
|
|
68
|
+
runtime = projectRuntimeDir(root);
|
|
69
|
+
runtimeByRoot.set(root, runtime);
|
|
70
|
+
}
|
|
71
|
+
deferred.add(runtime);
|
|
72
|
+
}
|
|
73
|
+
};
|
|
60
74
|
const { registeredProjectRoots, archivedProjectRoots, protectedProjectRoots, errors, blocked } = generations;
|
|
61
75
|
const roots = new Set([...registeredProjectRoots, ...protectedProjectRoots]);
|
|
62
76
|
const retained = blocked ? () => false : generations.retained;
|
|
63
77
|
const reader = new RetentionReferenceReader(store, ignoreThreadIds, retained);
|
|
78
|
+
reader.addQuarantinedLaneThreadIds();
|
|
64
79
|
for await (const rows of retentionPages(store, "thread", "id,pid,state,body", signal)) {
|
|
65
80
|
for (const row of rows) {
|
|
66
81
|
await yieldToAdmission();
|
|
@@ -88,7 +103,7 @@ export async function diskRetentionReferences(store, ignoreThreadIds = new Set()
|
|
|
88
103
|
reader.add(row.run_id);
|
|
89
104
|
const refreshDraft = await deferredRetentionReferences(store, retained, (id) => reader.add(id), signal);
|
|
90
105
|
const commands = await commandRetentionReferences(store, retained, reader.runs, signal);
|
|
91
|
-
const readChange = ({ table, id, }) => {
|
|
106
|
+
const readChange = ({ table, id, roots: changedRoots, }) => {
|
|
92
107
|
if (table === "command")
|
|
93
108
|
commands.refresh(id);
|
|
94
109
|
else if (table === "deferred_message")
|
|
@@ -100,10 +115,20 @@ export async function diskRetentionReferences(store, ignoreThreadIds = new Set()
|
|
|
100
115
|
if (owner)
|
|
101
116
|
throw new Error(`immutable retention command ${owner.id} in partition ${owner.pid}: params blob ${id} changed during inventory`);
|
|
102
117
|
}
|
|
103
|
-
else if (table
|
|
118
|
+
else if (table === "project") {
|
|
119
|
+
deferRoots(changedRoots);
|
|
120
|
+
generations.refreshProject(id);
|
|
121
|
+
}
|
|
122
|
+
else if (table === "partition") {
|
|
123
|
+
const reason = generations.changed(Number(id));
|
|
124
|
+
if (reason)
|
|
125
|
+
changesObserved.hold(reason);
|
|
126
|
+
reader.addQuarantinedLaneThreadIds(Number(id));
|
|
127
|
+
}
|
|
128
|
+
else
|
|
104
129
|
reader.refresh(table, id);
|
|
105
130
|
};
|
|
106
|
-
const recheck = () => changesObserved.current(readChange);
|
|
131
|
+
const recheck = () => changesObserved.current(readChange) && !generations.blocked;
|
|
107
132
|
const refresh = () => changesObserved.refresh(readChange, signal);
|
|
108
133
|
await refresh();
|
|
109
134
|
for (const root of reader.roots)
|
|
@@ -112,18 +137,22 @@ export async function diskRetentionReferences(store, ignoreThreadIds = new Set()
|
|
|
112
137
|
isCurrent,
|
|
113
138
|
refresh,
|
|
114
139
|
recheck,
|
|
140
|
+
held: changesObserved.held,
|
|
115
141
|
nativeCurrent: recheck,
|
|
116
|
-
laneThreadIds: (
|
|
142
|
+
laneThreadIds: () => {
|
|
117
143
|
if (!recheck())
|
|
118
144
|
throw new Error("lane ownership changed; a fresh retention pass must resume");
|
|
119
|
-
return reader.
|
|
145
|
+
return reader.laneThreadIds;
|
|
120
146
|
},
|
|
121
147
|
nativeRunDirs: commands.nativeRunDirs,
|
|
122
148
|
nativeWatchRunDirs: commands.nativeWatchRunDirs,
|
|
123
149
|
nativeReferenceError: commands.nativeReferenceError,
|
|
124
150
|
hasActiveCommands: commands.hasActiveCommands,
|
|
151
|
+
deferredRuntimes: () => deferred,
|
|
125
152
|
close: changesObserved.close,
|
|
126
|
-
blocked
|
|
153
|
+
get blocked() {
|
|
154
|
+
return generations.blocked;
|
|
155
|
+
},
|
|
127
156
|
errors,
|
|
128
157
|
holds: generations.holds,
|
|
129
158
|
projectRoots: [...roots],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retention-references.js","sourceRoot":"","sources":["../../src/store/retention-references.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAe,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"retention-references.js","sourceRoot":"","sources":["../../src/store/retention-references.ts"],"names":[],"mappings":"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"}
|
package/dist/store/schema.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { DatabaseSync } from "node:sqlite";
|
|
|
2
2
|
/** `PRAGMA application_id` of every engine store ("CXEN"). */
|
|
3
3
|
export declare const ENGINE_APPLICATION_ID = 1129858382;
|
|
4
4
|
/** `PRAGMA user_version`: the one schema this engine creates and serves. */
|
|
5
|
-
export declare const ENGINE_SCHEMA_VERSION =
|
|
5
|
+
export declare const ENGINE_SCHEMA_VERSION = 7;
|
|
6
6
|
/** Version 5: guard both the expression key and partial predicate against non-JSON bodies.
|
|
7
7
|
* Acceptance is mutable query policy, not index membership. */
|
|
8
8
|
export declare const PLAN_ANSWER_RUN_SQL = "CASE WHEN json_valid(CAST(body AS TEXT))\n THEN json_extract(CAST(body AS TEXT),'$.answers_plan_run_id') END";
|
|
@@ -15,7 +15,7 @@ export declare const PLAN_ANSWER_PRESENT_SQL = "CASE WHEN json_valid(CAST(body A
|
|
|
15
15
|
* history. `pid` is the surrogate of one partition generation and the only
|
|
16
16
|
* partition key a row carries.
|
|
17
17
|
*/
|
|
18
|
-
export declare const ENGINE_SCHEMA_SQL = "\nCREATE TABLE meta(key TEXT PRIMARY KEY, value TEXT NOT NULL) STRICT;\nCREATE TABLE partition(id INTEGER PRIMARY KEY, name TEXT NOT NULL, epoch TEXT NOT NULL, status TEXT NOT NULL,\n next_seq INTEGER NOT NULL, project_id TEXT, created_at TEXT NOT NULL, UNIQUE(name, epoch)) STRICT;\nCREATE TABLE event(pid INTEGER NOT NULL, seq INTEGER NOT NULL, time TEXT NOT NULL, type TEXT NOT NULL,\n payload BLOB NOT NULL, payload_sha TEXT, slot_key TEXT, group_key TEXT, PRIMARY KEY(pid, seq)) WITHOUT ROWID, STRICT;\nCREATE INDEX event_type ON event(pid, type, seq);\nCREATE INDEX event_slot ON event(pid, slot_key) WHERE slot_key IS NOT NULL;\nCREATE INDEX event_group ON event(pid, group_key) WHERE group_key IS NOT NULL;\nCREATE INDEX event_payload ON event(payload_sha) WHERE payload_sha IS NOT NULL;\nCREATE INDEX event_command_age ON event(time,pid,seq) WHERE type IN ('command.accepted','command.updated');\nCREATE TABLE blob(sha256 TEXT PRIMARY KEY, size INTEGER NOT NULL, inline BLOB) STRICT;\nCREATE TABLE command(id TEXT PRIMARY KEY, pid INTEGER NOT NULL, operation TEXT NOT NULL, state TEXT NOT NULL, client_id TEXT,\n run_id TEXT, task_id TEXT, run_dir TEXT, thread_id TEXT, turn_id TEXT, delegated_from TEXT, continue_from TEXT, scope_root TEXT,\n created_at TEXT NOT NULL, started_at TEXT, finished_at TEXT, summary BLOB NOT NULL, params_sha TEXT NOT NULL, result_sha TEXT,\n error BLOB, last_event_seq INTEGER, response_state TEXT, response_expires_at TEXT, request_resource_id TEXT, response_resource_id TEXT,\n kind TEXT NOT NULL, live INTEGER NOT NULL DEFAULT 1, needs_decision INTEGER NOT NULL DEFAULT 0, task_group_id TEXT) STRICT;\nCREATE INDEX command_run ON command(run_id);\nCREATE INDEX command_partition ON command(pid);\nCREATE INDEX command_active ON command(state, pid) WHERE live = 1 AND state IN ('queued','running');\nCREATE INDEX command_thread ON command(thread_id, state);\nCREATE INDEX command_turn ON command(turn_id, created_at);\nCREATE INDEX command_request_resource ON command(request_resource_id) WHERE request_resource_id IS NOT NULL;\nCREATE INDEX command_response_resource ON command(response_resource_id) WHERE response_resource_id IS NOT NULL;\nCREATE INDEX command_parent ON command(delegated_from);\nCREATE INDEX command_continue ON command(continue_from);\nCREATE INDEX command_list ON command(created_at DESC, id DESC) WHERE live = 1 AND kind = 'product';\nCREATE INDEX command_list_state ON command(state, created_at DESC, id DESC) WHERE live = 1 AND kind = 'product';\nCREATE INDEX command_terminal ON command(created_at, id)\n WHERE live = 1 AND kind IN ('product','delivery','maintenance') AND finished_at IS NOT NULL;\nCREATE INDEX command_prunable ON command(created_at, id)\n WHERE live = 1 AND kind IN ('product','delivery','maintenance') AND finished_at IS NOT NULL AND needs_decision = 0;\nCREATE INDEX command_expiry ON command(response_state, response_expires_at) WHERE kind = 'model';\nCREATE INDEX command_maintenance_harness ON command(json_extract(CAST(summary AS TEXT),'$.params.harness'),created_at)\n WHERE live=1 AND kind='maintenance';\nCREATE INDEX command_params ON command(params_sha);\nCREATE INDEX command_result ON command(result_sha) WHERE result_sha IS NOT NULL;\nCREATE TABLE run_terminal(run_id TEXT PRIMARY KEY, pid INTEGER NOT NULL, event BLOB NOT NULL) STRICT;\nCREATE TABLE effect_obligation(kind TEXT NOT NULL, key TEXT NOT NULL, pid INTEGER NOT NULL, created_at TEXT NOT NULL, payload BLOB NOT NULL,\n state TEXT NOT NULL DEFAULT 'pending', materialized_g INTEGER, PRIMARY KEY(kind, key)) WITHOUT ROWID, STRICT;\nCREATE TABLE idempotency(owner TEXT NOT NULL, pid INTEGER NOT NULL, key_digest TEXT NOT NULL, operation TEXT NOT NULL,\n request_digest TEXT NOT NULL, target_id TEXT NOT NULL, result BLOB, created_at TEXT NOT NULL,\n PRIMARY KEY(owner, pid, key_digest)) WITHOUT ROWID, STRICT;\nCREATE INDEX idempotency_target ON idempotency(target_id);\nCREATE TABLE thread(id TEXT PRIMARY KEY, pid INTEGER NOT NULL, state TEXT NOT NULL, updated_at TEXT NOT NULL,\n head_revision INTEGER NOT NULL DEFAULT 0, body BLOB NOT NULL) STRICT;\nCREATE INDEX thread_list ON thread(pid, state, updated_at DESC);\nCREATE TABLE turn(id TEXT PRIMARY KEY, pid INTEGER NOT NULL, thread_id TEXT NOT NULL, ordinal INTEGER NOT NULL, run_id TEXT,\n created_at TEXT NOT NULL, prompt_sha TEXT NOT NULL, body BLOB NOT NULL) STRICT;\nCREATE UNIQUE INDEX turn_thread ON turn(thread_id, ordinal);\nCREATE UNIQUE INDEX turn_run ON turn(run_id) WHERE run_id IS NOT NULL;\nCREATE INDEX turn_prompt ON turn(prompt_sha);\nCREATE TABLE session(id TEXT PRIMARY KEY, thread_id TEXT NOT NULL, harness_id TEXT NOT NULL, profile_id TEXT NOT NULL DEFAULT '', pid INTEGER NOT NULL,\n insertion_ordinal INTEGER NOT NULL DEFAULT 0, body BLOB NOT NULL) WITHOUT ROWID, STRICT;\nCREATE INDEX session_lane ON session(thread_id, harness_id, profile_id);\nCREATE INDEX session_order ON session(thread_id, insertion_ordinal);\nCREATE INDEX session_partition ON session(pid, insertion_ordinal);\nCREATE TABLE lane_checkpoint(thread_id TEXT NOT NULL, harness_id TEXT NOT NULL, profile_id TEXT NOT NULL DEFAULT '', pid INTEGER NOT NULL,\n insertion_ordinal INTEGER NOT NULL DEFAULT 0, turn_id TEXT NOT NULL, body BLOB NOT NULL, PRIMARY KEY(thread_id, harness_id, profile_id)) WITHOUT ROWID, STRICT;\nCREATE INDEX lane_checkpoint_order ON lane_checkpoint(thread_id, insertion_ordinal);\nCREATE INDEX lane_checkpoint_partition ON lane_checkpoint(pid, insertion_ordinal);\nCREATE TABLE interaction(id TEXT PRIMARY KEY, pid INTEGER NOT NULL, run_id TEXT NOT NULL, state TEXT NOT NULL,\n request BLOB NOT NULL, resolution BLOB) STRICT;\nCREATE INDEX interaction_pending ON interaction(run_id) WHERE state = 'pending';\nCREATE INDEX interaction_run ON interaction(run_id);\nCREATE INDEX interaction_partition_pending ON interaction(pid,run_id) WHERE state = 'pending';\nCREATE TABLE operator_decision(run_id TEXT PRIMARY KEY, pid INTEGER NOT NULL, body BLOB NOT NULL) STRICT;\nCREATE TABLE project(id TEXT PRIMARY KEY, pid INTEGER NOT NULL, root TEXT NOT NULL, status TEXT NOT NULL,\n current_pid INTEGER, creation_key_digest TEXT, created_at TEXT NOT NULL, updated_at TEXT NOT NULL, body BLOB NOT NULL) STRICT;\nCREATE UNIQUE INDEX project_root_active ON project(pid, root) WHERE status = 'active';\nCREATE INDEX project_current_pid ON project(current_pid) WHERE status = 'active';\nCREATE TABLE pruned_root(root TEXT PRIMARY KEY) STRICT;\nCREATE TABLE resource(id TEXT PRIMARY KEY, purpose TEXT, kind TEXT NOT NULL, sha256 TEXT NOT NULL, size_bytes INTEGER NOT NULL,\n state TEXT NOT NULL, created_at TEXT NOT NULL, expires_at TEXT, released_at TEXT, body BLOB NOT NULL) STRICT;\nCREATE INDEX resource_sha ON resource(sha256);\nCREATE INDEX resource_expiry ON resource(state, expires_at);\nCREATE TABLE upload(id TEXT PRIMARY KEY, state TEXT NOT NULL, received_bytes INTEGER NOT NULL, expected_bytes INTEGER,\n finalize_sha TEXT, body BLOB NOT NULL) STRICT;\nCREATE INDEX upload_finalize ON upload(finalize_sha) WHERE finalize_sha IS NOT NULL;\nCREATE TABLE import_partition(name TEXT PRIMARY KEY, status TEXT NOT NULL, pid INTEGER, epoch TEXT, next_seq INTEGER,\n previous_frame_hash TEXT, source_size INTEGER, source_mtime TEXT, fingerprint TEXT, records INTEGER, digest TEXT, problem TEXT) STRICT;\nCREATE TABLE unclassified(pid INTEGER NOT NULL, seq INTEGER NOT NULL, type TEXT NOT NULL, reason TEXT NOT NULL, payload BLOB NOT NULL,\n PRIMARY KEY(pid, seq)) WITHOUT ROWID, STRICT;\n\nCREATE TABLE account_last_service(harness_id TEXT NOT NULL, profile_id TEXT NOT NULL, requested_model_key TEXT NOT NULL,\n binding_digest TEXT NOT NULL, service_seq INTEGER NOT NULL, observed_at TEXT NOT NULL, run_id TEXT NOT NULL,\n attempt_id TEXT NOT NULL, try_index INTEGER NOT NULL,\n PRIMARY KEY(harness_id, profile_id, requested_model_key, binding_digest)) WITHOUT ROWID, STRICT;\n\nCREATE TABLE deferred_message(id TEXT PRIMARY KEY, pid INTEGER NOT NULL, predecessor_job_id TEXT NOT NULL,\n revision INTEGER NOT NULL, state TEXT NOT NULL CHECK(state IN ('waiting','held','dispatched','cleared')),\n body_sha TEXT, hold BLOB, successor_job_id TEXT, dispatched_revision INTEGER, created_at TEXT NOT NULL) STRICT;\nCREATE UNIQUE INDEX deferred_message_slot ON deferred_message(pid,predecessor_job_id) WHERE state IN ('waiting','held');\nCREATE INDEX deferred_message_predecessor ON deferred_message(predecessor_job_id);\nCREATE INDEX deferred_message_successor ON deferred_message(successor_job_id) WHERE successor_job_id IS NOT NULL;\nCREATE INDEX deferred_message_body ON deferred_message(body_sha) WHERE body_sha IS NOT NULL;\n\nCREATE INDEX turn_plan_answer ON turn(thread_id,CASE WHEN json_valid(CAST(body AS TEXT))\n THEN json_extract(CAST(body AS TEXT),'$.answers_plan_run_id') END,ordinal)\n WHERE CASE WHEN json_valid(CAST(body AS TEXT))\n THEN json_extract(CAST(body AS TEXT),'$.answers_plan_run_id') END IS NOT NULL;\n\nCREATE INDEX command_task_group ON command(task_group_id,created_at DESC,id DESC)\n WHERE live=1 AND kind='product' AND task_group_id IS NOT NULL;\nCREATE INDEX command_task_group_state ON command(task_group_id,state,created_at DESC,id DESC)\n WHERE live=1 AND kind='product' AND task_group_id IS NOT NULL;\n";
|
|
18
|
+
export declare const ENGINE_SCHEMA_SQL = "\nCREATE TABLE meta(key TEXT PRIMARY KEY, value TEXT NOT NULL) STRICT;\nCREATE TABLE partition(id INTEGER PRIMARY KEY, name TEXT NOT NULL, epoch TEXT NOT NULL, status TEXT NOT NULL,\n next_seq INTEGER NOT NULL, project_id TEXT, created_at TEXT NOT NULL, UNIQUE(name, epoch)) STRICT;\nCREATE TABLE event(pid INTEGER NOT NULL, seq INTEGER NOT NULL, time TEXT NOT NULL, type TEXT NOT NULL,\n payload BLOB NOT NULL, payload_sha TEXT, slot_key TEXT, group_key TEXT, PRIMARY KEY(pid, seq)) WITHOUT ROWID, STRICT;\nCREATE INDEX event_type ON event(pid, type, seq);\nCREATE INDEX event_slot ON event(pid, slot_key) WHERE slot_key IS NOT NULL;\nCREATE INDEX event_group ON event(pid, group_key) WHERE group_key IS NOT NULL;\nCREATE INDEX event_payload ON event(payload_sha) WHERE payload_sha IS NOT NULL;\nCREATE INDEX event_command_age ON event(time,pid,seq) WHERE type IN ('command.accepted','command.updated');\nCREATE TABLE blob(sha256 TEXT PRIMARY KEY, size INTEGER NOT NULL, inline BLOB) STRICT;\nCREATE TABLE command(id TEXT PRIMARY KEY, pid INTEGER NOT NULL, operation TEXT NOT NULL, state TEXT NOT NULL, client_id TEXT,\n run_id TEXT, task_id TEXT, run_dir TEXT, thread_id TEXT, turn_id TEXT, delegated_from TEXT, continue_from TEXT, scope_root TEXT,\n created_at TEXT NOT NULL, started_at TEXT, finished_at TEXT, summary BLOB NOT NULL, params_sha TEXT NOT NULL, result_sha TEXT,\n error BLOB, last_event_seq INTEGER, response_state TEXT, response_expires_at TEXT, request_resource_id TEXT, response_resource_id TEXT,\n kind TEXT NOT NULL, live INTEGER NOT NULL DEFAULT 1, needs_decision INTEGER NOT NULL DEFAULT 0, task_group_id TEXT) STRICT;\nCREATE INDEX command_run ON command(run_id);\nCREATE INDEX command_partition ON command(pid);\nCREATE INDEX command_active ON command(state, pid) WHERE live = 1 AND state IN ('queued','running');\nCREATE INDEX command_thread ON command(thread_id, state);\nCREATE INDEX command_turn ON command(turn_id, created_at);\nCREATE INDEX command_request_resource ON command(request_resource_id) WHERE request_resource_id IS NOT NULL;\nCREATE INDEX command_response_resource ON command(response_resource_id) WHERE response_resource_id IS NOT NULL;\nCREATE INDEX command_parent ON command(delegated_from);\nCREATE INDEX command_continue ON command(continue_from);\nCREATE INDEX command_list ON command(created_at DESC, id DESC) WHERE live = 1 AND kind = 'product';\nCREATE INDEX command_list_state ON command(state, created_at DESC, id DESC) WHERE live = 1 AND kind = 'product';\nCREATE INDEX command_terminal ON command(created_at, id)\n WHERE live = 1 AND kind IN ('product','delivery','maintenance') AND finished_at IS NOT NULL;\nCREATE INDEX command_prunable ON command(created_at, id)\n WHERE live = 1 AND kind IN ('product','delivery','maintenance') AND finished_at IS NOT NULL AND needs_decision = 0;\nCREATE INDEX command_expiry ON command(response_state, response_expires_at) WHERE kind = 'model';\nCREATE INDEX command_maintenance_harness ON command(json_extract(CAST(summary AS TEXT),'$.params.harness'),created_at)\n WHERE live=1 AND kind='maintenance';\nCREATE INDEX command_params ON command(params_sha);\nCREATE INDEX command_result ON command(result_sha) WHERE result_sha IS NOT NULL;\nCREATE TABLE run_terminal(run_id TEXT PRIMARY KEY, pid INTEGER NOT NULL, event BLOB NOT NULL) STRICT;\nCREATE TABLE effect_obligation(kind TEXT NOT NULL, key TEXT NOT NULL, pid INTEGER NOT NULL, created_at TEXT NOT NULL, payload BLOB NOT NULL,\n state TEXT NOT NULL DEFAULT 'pending', materialized_g INTEGER, PRIMARY KEY(kind, key)) WITHOUT ROWID, STRICT;\nCREATE TABLE idempotency(owner TEXT NOT NULL, pid INTEGER NOT NULL, key_digest TEXT NOT NULL, operation TEXT NOT NULL,\n request_digest TEXT NOT NULL, target_id TEXT NOT NULL, result BLOB, created_at TEXT NOT NULL,\n PRIMARY KEY(owner, pid, key_digest)) WITHOUT ROWID, STRICT;\nCREATE INDEX idempotency_target ON idempotency(target_id);\nCREATE TABLE thread(id TEXT PRIMARY KEY, pid INTEGER NOT NULL, state TEXT NOT NULL, updated_at TEXT NOT NULL,\n head_revision INTEGER NOT NULL DEFAULT 0, body BLOB NOT NULL) STRICT;\nCREATE INDEX thread_list ON thread(pid, state, updated_at DESC);\nCREATE TABLE turn(id TEXT PRIMARY KEY, pid INTEGER NOT NULL, thread_id TEXT NOT NULL, ordinal INTEGER NOT NULL, run_id TEXT,\n created_at TEXT NOT NULL, prompt_sha TEXT NOT NULL, body BLOB NOT NULL) STRICT;\nCREATE UNIQUE INDEX turn_thread ON turn(thread_id, ordinal);\nCREATE UNIQUE INDEX turn_run ON turn(run_id) WHERE run_id IS NOT NULL;\nCREATE INDEX turn_prompt ON turn(prompt_sha);\nCREATE TABLE session(id TEXT PRIMARY KEY, thread_id TEXT NOT NULL, harness_id TEXT NOT NULL, profile_id TEXT NOT NULL DEFAULT '', pid INTEGER NOT NULL,\n insertion_ordinal INTEGER NOT NULL DEFAULT 0, body BLOB NOT NULL) WITHOUT ROWID, STRICT;\nCREATE INDEX session_lane ON session(thread_id, harness_id, profile_id);\nCREATE INDEX session_order ON session(thread_id, insertion_ordinal);\nCREATE INDEX session_partition ON session(pid, insertion_ordinal);\nCREATE TABLE lane_checkpoint(thread_id TEXT NOT NULL, harness_id TEXT NOT NULL, profile_id TEXT NOT NULL DEFAULT '', pid INTEGER NOT NULL,\n insertion_ordinal INTEGER NOT NULL DEFAULT 0, turn_id TEXT NOT NULL, body BLOB NOT NULL, PRIMARY KEY(thread_id, harness_id, profile_id)) WITHOUT ROWID, STRICT;\nCREATE INDEX lane_checkpoint_order ON lane_checkpoint(thread_id, insertion_ordinal);\nCREATE INDEX lane_checkpoint_partition ON lane_checkpoint(pid, insertion_ordinal);\nCREATE TABLE interaction(id TEXT PRIMARY KEY, pid INTEGER NOT NULL, run_id TEXT NOT NULL, state TEXT NOT NULL,\n request BLOB NOT NULL, resolution BLOB) STRICT;\nCREATE INDEX interaction_pending ON interaction(run_id) WHERE state = 'pending';\nCREATE INDEX interaction_run ON interaction(run_id);\nCREATE INDEX interaction_partition_pending ON interaction(pid,run_id) WHERE state = 'pending';\nCREATE TABLE operator_decision(run_id TEXT PRIMARY KEY, pid INTEGER NOT NULL, body BLOB NOT NULL) STRICT;\nCREATE TABLE project(id TEXT PRIMARY KEY, pid INTEGER NOT NULL, root TEXT NOT NULL, status TEXT NOT NULL,\n current_pid INTEGER, creation_key_digest TEXT, created_at TEXT NOT NULL, updated_at TEXT NOT NULL, body BLOB NOT NULL) STRICT;\nCREATE UNIQUE INDEX project_root_active ON project(pid, root) WHERE status = 'active';\nCREATE INDEX project_current_pid ON project(current_pid) WHERE status = 'active';\nCREATE TABLE pruned_root(root TEXT PRIMARY KEY) STRICT;\nCREATE TABLE resource(id TEXT PRIMARY KEY, purpose TEXT, kind TEXT NOT NULL, sha256 TEXT NOT NULL, size_bytes INTEGER NOT NULL,\n state TEXT NOT NULL, created_at TEXT NOT NULL, expires_at TEXT, released_at TEXT, body BLOB NOT NULL) STRICT;\nCREATE INDEX resource_sha ON resource(sha256);\nCREATE INDEX resource_expiry ON resource(state, expires_at);\nCREATE TABLE upload(id TEXT PRIMARY KEY, state TEXT NOT NULL, received_bytes INTEGER NOT NULL, expected_bytes INTEGER,\n finalize_sha TEXT, body BLOB NOT NULL) STRICT;\nCREATE INDEX upload_finalize ON upload(finalize_sha) WHERE finalize_sha IS NOT NULL;\nCREATE TABLE import_partition(name TEXT PRIMARY KEY, status TEXT NOT NULL, pid INTEGER, epoch TEXT, next_seq INTEGER,\n previous_frame_hash TEXT, source_size INTEGER, source_mtime TEXT, fingerprint TEXT, records INTEGER, digest TEXT, problem TEXT) STRICT;\nCREATE TABLE unclassified(pid INTEGER NOT NULL, seq INTEGER NOT NULL, type TEXT NOT NULL, reason TEXT NOT NULL, payload BLOB NOT NULL,\n PRIMARY KEY(pid, seq)) WITHOUT ROWID, STRICT;\n\nCREATE TABLE account_last_service(harness_id TEXT NOT NULL, profile_id TEXT NOT NULL, requested_model_key TEXT NOT NULL,\n binding_digest TEXT NOT NULL, service_seq INTEGER NOT NULL, observed_at TEXT NOT NULL, run_id TEXT NOT NULL,\n attempt_id TEXT NOT NULL, try_index INTEGER NOT NULL,\n PRIMARY KEY(harness_id, profile_id, requested_model_key, binding_digest)) WITHOUT ROWID, STRICT;\n\nCREATE TABLE deferred_message(id TEXT PRIMARY KEY, pid INTEGER NOT NULL, predecessor_job_id TEXT NOT NULL,\n revision INTEGER NOT NULL, state TEXT NOT NULL CHECK(state IN ('waiting','held','dispatched','cleared')),\n body_sha TEXT, hold BLOB, successor_job_id TEXT, dispatched_revision INTEGER, created_at TEXT NOT NULL) STRICT;\nCREATE UNIQUE INDEX deferred_message_slot ON deferred_message(pid,predecessor_job_id) WHERE state IN ('waiting','held');\nCREATE INDEX deferred_message_predecessor ON deferred_message(predecessor_job_id);\nCREATE INDEX deferred_message_successor ON deferred_message(successor_job_id) WHERE successor_job_id IS NOT NULL;\nCREATE INDEX deferred_message_body ON deferred_message(body_sha) WHERE body_sha IS NOT NULL;\n\nCREATE INDEX turn_plan_answer ON turn(thread_id,CASE WHEN json_valid(CAST(body AS TEXT))\n THEN json_extract(CAST(body AS TEXT),'$.answers_plan_run_id') END,ordinal)\n WHERE CASE WHEN json_valid(CAST(body AS TEXT))\n THEN json_extract(CAST(body AS TEXT),'$.answers_plan_run_id') END IS NOT NULL;\n\nCREATE INDEX command_task_group ON command(task_group_id,created_at DESC,id DESC)\n WHERE live=1 AND kind='product' AND task_group_id IS NOT NULL;\nCREATE INDEX command_task_group_state ON command(task_group_id,state,created_at DESC,id DESC)\n WHERE live=1 AND kind='product' AND task_group_id IS NOT NULL;\n\nCREATE TABLE resource_use(resource_id TEXT NOT NULL, owner TEXT NOT NULL\n CHECK(owner IN ('command','turn','deferred_message')), owner_id TEXT NOT NULL, sha256 TEXT NOT NULL,\n PRIMARY KEY(resource_id, owner, owner_id)) WITHOUT ROWID, STRICT;\nCREATE INDEX resource_use_owner ON resource_use(owner, owner_id);\nCREATE INDEX resource_use_sha ON resource_use(sha256);\nALTER TABLE deferred_message ADD COLUMN held_revision INTEGER;\nALTER TABLE deferred_message ADD COLUMN resumed BLOB;\nALTER TABLE turn ADD COLUMN dispatched_at TEXT;\n";
|
|
19
19
|
/** Every table the DDL creates, in creation order (for tests and the importer seam). */
|
|
20
20
|
export declare const ENGINE_TABLES: readonly string[];
|
|
21
21
|
export interface SchemaIdentity {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/store/schema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,8DAA8D;AAC9D,eAAO,MAAM,qBAAqB,aAAa,CAAC;AAChD,4EAA4E;AAC5E,eAAO,MAAM,qBAAqB,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/store/schema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,8DAA8D;AAC9D,eAAO,MAAM,qBAAqB,aAAa,CAAC;AAChD,4EAA4E;AAC5E,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAwDvC;+DAC+D;AAC/D,eAAO,MAAM,mBAAmB,kHACoC,CAAC;AACrE,eAAO,MAAM,uBAAuB,8HAAuC,CAAC;AA4B5E;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,8qTAmF2F,CAAC;AAE1H,wFAAwF;AACxF,eAAO,MAAM,aAAa,EAAE,SAAS,MAAM,EAE1C,CAAC;AAiBF,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,oGAAoG;IACpG,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,YAAY,GAAG,cAAc,CAYnE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAqB9F;AAED,uFAAuF;AACvF,wBAAgB,YAAY,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,GAAE,MAAM,IAAuB,GAAG,IAAI,CAkCvF"}
|
package/dist/store/schema.js
CHANGED
|
@@ -3,7 +3,21 @@ import { StoreSchemaUnsupportedError } from "./errors.js";
|
|
|
3
3
|
/** `PRAGMA application_id` of every engine store ("CXEN"). */
|
|
4
4
|
export const ENGINE_APPLICATION_ID = 0x4358454e;
|
|
5
5
|
/** `PRAGMA user_version`: the one schema this engine creates and serves. */
|
|
6
|
-
export const ENGINE_SCHEMA_VERSION =
|
|
6
|
+
export const ENGINE_SCHEMA_VERSION = 7;
|
|
7
|
+
/** Version 7: accepted owners holding managed ordinary resources (#249) and the
|
|
8
|
+
* instant a thread turn's first product command was accepted (its durable dispatch
|
|
9
|
+
* fact, which outlives command retention); the revision a deferred draft's hold was
|
|
10
|
+
* applied at and its visible return from a process-custody hold (#613). */
|
|
11
|
+
const SCHEMA_V7_SQL = `
|
|
12
|
+
CREATE TABLE resource_use(resource_id TEXT NOT NULL, owner TEXT NOT NULL
|
|
13
|
+
CHECK(owner IN ('command','turn','deferred_message')), owner_id TEXT NOT NULL, sha256 TEXT NOT NULL,
|
|
14
|
+
PRIMARY KEY(resource_id, owner, owner_id)) WITHOUT ROWID, STRICT;
|
|
15
|
+
CREATE INDEX resource_use_owner ON resource_use(owner, owner_id);
|
|
16
|
+
CREATE INDEX resource_use_sha ON resource_use(sha256);
|
|
17
|
+
ALTER TABLE deferred_message ADD COLUMN held_revision INTEGER;
|
|
18
|
+
ALTER TABLE deferred_message ADD COLUMN resumed BLOB;
|
|
19
|
+
ALTER TABLE turn ADD COLUMN dispatched_at TEXT;
|
|
20
|
+
`;
|
|
7
21
|
/** Version 4: one reserved editable next message; accepted params stay immutable. */
|
|
8
22
|
const DEFERRED_MESSAGE_SQL = `
|
|
9
23
|
CREATE TABLE deferred_message(id TEXT PRIMARY KEY, pid INTEGER NOT NULL, predecessor_job_id TEXT NOT NULL,
|
|
@@ -159,7 +173,7 @@ CREATE TABLE import_partition(name TEXT PRIMARY KEY, status TEXT NOT NULL, pid I
|
|
|
159
173
|
previous_frame_hash TEXT, source_size INTEGER, source_mtime TEXT, fingerprint TEXT, records INTEGER, digest TEXT, problem TEXT) STRICT;
|
|
160
174
|
CREATE TABLE unclassified(pid INTEGER NOT NULL, seq INTEGER NOT NULL, type TEXT NOT NULL, reason TEXT NOT NULL, payload BLOB NOT NULL,
|
|
161
175
|
PRIMARY KEY(pid, seq)) WITHOUT ROWID, STRICT;
|
|
162
|
-
${ACCOUNT_LAST_SERVICE_SQL}${DEFERRED_MESSAGE_SQL}${PLAN_ANSWER_INDEX_SQL}${TASK_GROUP_COLUMN_INDEX_SQL}`;
|
|
176
|
+
${ACCOUNT_LAST_SERVICE_SQL}${DEFERRED_MESSAGE_SQL}${PLAN_ANSWER_INDEX_SQL}${TASK_GROUP_COLUMN_INDEX_SQL}${SCHEMA_V7_SQL}`;
|
|
163
177
|
/** Every table the DDL creates, in creation order (for tests and the importer seam). */
|
|
164
178
|
export const ENGINE_TABLES = Object.freeze([...ENGINE_SCHEMA_SQL.matchAll(/CREATE TABLE (\w+)\(/g)].map((match) => match[1]));
|
|
165
179
|
/**
|
|
@@ -174,6 +188,7 @@ const SCHEMA_MIGRATIONS = new Map([
|
|
|
174
188
|
[3, (db) => db.exec(DEFERRED_MESSAGE_SQL)],
|
|
175
189
|
[4, (db) => db.exec(PLAN_ANSWER_INDEX_SQL)],
|
|
176
190
|
[5, (db) => db.exec(TASK_GROUP_COLUMN_SQL)],
|
|
191
|
+
[6, (db) => db.exec(SCHEMA_V7_SQL)],
|
|
177
192
|
]);
|
|
178
193
|
export function readSchemaIdentity(db) {
|
|
179
194
|
const scalar = (sql) => {
|
package/dist/store/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/store/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAE1D,8DAA8D;AAC9D,MAAM,CAAC,MAAM,qBAAqB,GAAG,UAAU,CAAC;AAChD,4EAA4E;AAC5E,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAEvC,qFAAqF;AACrF,MAAM,oBAAoB,GAAG;;;;;;;;CAQ5B,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,wBAAwB,GAAG;;;;;CAKhC,CAAC;AAEF,oEAAoE;AACpE,MAAM,sBAAsB,GAAG;kFACmD,CAAC;AAEnF;+CAC+C;AAC/C,MAAM,oBAAoB,GAAG;;8EAEiD,sBAAsB;;8EAEtB,sBAAsB;CACnG,CAAC;AAEF;+DAC+D;AAC/D,MAAM,CAAC,MAAM,mBAAmB,GAAG;oEACiC,CAAC;AACrE,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,mBAAmB,cAAc,CAAC;AAC5E,MAAM,qBAAqB,GAAG;kDACoB,mBAAmB;UAC3D,uBAAuB;CAChC,CAAC;AAEF,oEAAoE;AACpE,MAAM,2BAA2B,GAAG;;;;;CAKnC,CAAC;AAEF;;iFAEiF;AACjF,MAAM,qBAAqB,GAAG;;;;8EAIgD,sBAAsB;;8EAEtB,sBAAsB;;;EAGlG,2BAA2B,EAAE,CAAC;AAEhC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmF/B,wBAAwB,GAAG,oBAAoB,GAAG,qBAAqB,GAAG,2BAA2B,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/store/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,22 +8,31 @@ import { SqlCommandStore } from "./commands.js";
|
|
|
8
8
|
import { SqlDeferredMessages } from "./deferred-messages.js";
|
|
9
9
|
import { SqlEventLedger } from "./event-store.js";
|
|
10
10
|
import { SqlInteractionStore } from "./interactions.js";
|
|
11
|
+
import type { MaintenanceController } from "./maintenance.js";
|
|
11
12
|
import type { Obligations } from "./obligations.js";
|
|
12
13
|
import { type PartitionGeneration } from "./partitions.js";
|
|
13
14
|
import { SqlProjectRouter } from "./project-router.js";
|
|
14
15
|
import type { SqlProjectStore } from "./projects.js";
|
|
15
16
|
import type { SqlTerminalFiles } from "./terminal-files.js";
|
|
17
|
+
import type { ThreadClosure } from "./thread-closure.js";
|
|
16
18
|
/** One addressed router over current generations. These lightweight writers
|
|
17
19
|
* carry no restored history or separate partition cache. */
|
|
18
20
|
export declare class SqlCommandRouter extends SqlProjectRouter implements CommandBackend, ProjectThreadPort {
|
|
19
21
|
private readonly persistence;
|
|
22
|
+
/** The store's maintenance worker: its read-only snapshot answers closure observations. */
|
|
23
|
+
private readonly snapshots;
|
|
20
24
|
readonly queries: SqlCommandQueries;
|
|
21
25
|
constructor(projects: SqlProjectStore, persistence: {
|
|
22
26
|
obligations: Obligations;
|
|
23
27
|
terminalFiles: SqlTerminalFiles;
|
|
24
28
|
pruner: SqlCommandPruner;
|
|
25
29
|
validateRefs?: ConstructorParameters<typeof SqlDeferredMessages>[4];
|
|
26
|
-
}
|
|
30
|
+
},
|
|
31
|
+
/** The store's maintenance worker: its read-only snapshot answers closure observations. */
|
|
32
|
+
snapshots: Pick<MaintenanceController, "threadClosure">);
|
|
33
|
+
/** An observation, read in that snapshot off the writer's thread. Retirement never
|
|
34
|
+
* trusts it: it reads the closure again inside its deciding transaction. */
|
|
35
|
+
threadClosure(id: string, signal?: AbortSignal): Promise<ThreadClosure | null>;
|
|
27
36
|
commandStore(generation: PartitionGeneration): SqlCommandStore;
|
|
28
37
|
current(): SqlCommandStore;
|
|
29
38
|
forRequest(params: unknown): SqlCommandStore;
|
|
@@ -47,6 +56,8 @@ export declare class SqlCommandRouter extends SqlProjectRouter implements Comman
|
|
|
47
56
|
request: unknown;
|
|
48
57
|
}): import("../operator-decisions.js").RecordedOperatorDecision;
|
|
49
58
|
recordRunEvent(params: unknown, event: RunEvent): RunEvent;
|
|
59
|
+
/** Off-loop staging ahead of `persistTerminal` (best effort; it decides). */
|
|
60
|
+
stageTerminal(jobId: string, event: RunEvent, telemetry: RunTelemetry | null): Promise<void>;
|
|
50
61
|
persistTerminal(jobId: string, event: RunEvent, telemetry: RunTelemetry | null): {
|
|
51
62
|
state: "materialized";
|
|
52
63
|
} | {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql-command-router.d.ts","sourceRoot":"","sources":["../../src/store/sql-command-router.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAM9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAoB,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAiB,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"sql-command-router.d.ts","sourceRoot":"","sources":["../../src/store/sql-command-router.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,12 +15,21 @@ import { SqlRunEventStore } from "./run-events.js";
|
|
|
15
15
|
* carry no restored history or separate partition cache. */
|
|
16
16
|
export class SqlCommandRouter extends SqlProjectRouter {
|
|
17
17
|
persistence;
|
|
18
|
+
snapshots;
|
|
18
19
|
queries;
|
|
19
|
-
constructor(projects, persistence
|
|
20
|
+
constructor(projects, persistence,
|
|
21
|
+
/** The store's maintenance worker: its read-only snapshot answers closure observations. */
|
|
22
|
+
snapshots) {
|
|
20
23
|
super(projects);
|
|
21
24
|
this.persistence = persistence;
|
|
25
|
+
this.snapshots = snapshots;
|
|
22
26
|
this.queries = new SqlCommandQueries(this.store, projects.blobs);
|
|
23
27
|
}
|
|
28
|
+
/** An observation, read in that snapshot off the writer's thread. Retirement never
|
|
29
|
+
* trusts it: it reads the closure again inside its deciding transaction. */
|
|
30
|
+
threadClosure(id, signal) {
|
|
31
|
+
return this.snapshots.threadClosure(id, signal);
|
|
32
|
+
}
|
|
24
33
|
commandStore(generation) {
|
|
25
34
|
return new SqlCommandStore(this.store, this.projects.blobs, generation, {
|
|
26
35
|
...this.persistence,
|
|
@@ -92,6 +101,15 @@ export class SqlCommandRouter extends SqlProjectRouter {
|
|
|
92
101
|
// filtered event cannot fail merely because its old project is unavailable.
|
|
93
102
|
return event;
|
|
94
103
|
}
|
|
104
|
+
/** Off-loop staging ahead of `persistTerminal` (best effort; it decides). */
|
|
105
|
+
async stageTerminal(jobId, event, telemetry) {
|
|
106
|
+
try {
|
|
107
|
+
await this.findById(jobId)?.stageTerminal(jobId, event, telemetry);
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
/* persistTerminal decides and reports */
|
|
111
|
+
}
|
|
112
|
+
}
|
|
95
113
|
persistTerminal(jobId, event, telemetry) {
|
|
96
114
|
const owner = this.findById(jobId);
|
|
97
115
|
if (!owner)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql-command-router.js","sourceRoot":"","sources":["../../src/store/sql-command-router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAGnE,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"sql-command-router.js","sourceRoot":"","sources":["../../src/store/sql-command-router.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql-daemon-services.d.ts","sourceRoot":"","sources":["../../src/store/sql-daemon-services.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAwB,KAAK,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAGlF,OAAO,EAAE,qBAAqB,EAAE,KAAK,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AAC5F,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,aAAa,EAAyB,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC/F,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,gBAAgB,CAAC;IAC7B,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,UAAU,CAAC,EAAE,SAAS,CAAC,cAAc,GAAG,oBAAoB,CAAC,EAAE,CAAC;IAChE,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC,WAAW,CAAC,EAAE,IAAI,CAAC,4BAA4B,EAAE,OAAO,CAAC,CAAC;CAC3D;AAED;;gFAEgF;AAChF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"sql-daemon-services.d.ts","sourceRoot":"","sources":["../../src/store/sql-daemon-services.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAwB,KAAK,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAGlF,OAAO,EAAE,qBAAqB,EAAE,KAAK,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AAC5F,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,aAAa,EAAyB,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC/F,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,gBAAgB,CAAC;IAC7B,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,UAAU,CAAC,EAAE,SAAS,CAAC,cAAc,GAAG,oBAAoB,CAAC,EAAE,CAAC;IAChE,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC,WAAW,CAAC,EAAE,IAAI,CAAC,4BAA4B,EAAE,OAAO,CAAC,CAAC;CAC3D;AAED;;gFAEgF;AAChF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;IA6EzF;;iEAE6D;;+BAElC,MAAM,YAAY,uBAAuB;;IA+BpE,+EAA+E;;EAelF"}
|
|
@@ -28,25 +28,26 @@ export function createSqlDaemonServices(store, options) {
|
|
|
28
28
|
const terminalFiles = new SqlTerminalFiles(store, obligations);
|
|
29
29
|
const pruner = new SqlCommandPruner(store, blobs, { log: options.log });
|
|
30
30
|
const projects = new SqlProjectStore(store, blobs, obligations);
|
|
31
|
+
// One maintenance worker per store; its read-only snapshot also answers closure observations.
|
|
32
|
+
const maintenance = new MaintenanceController(store, {
|
|
33
|
+
...options.maintenance,
|
|
34
|
+
log: options.log,
|
|
35
|
+
blobs,
|
|
36
|
+
});
|
|
31
37
|
const threads = new SqlCommandRouter(projects, {
|
|
32
38
|
obligations,
|
|
33
39
|
terminalFiles,
|
|
34
40
|
pruner,
|
|
35
|
-
validateRefs: (refs) => {
|
|
36
|
-
resources.resolve(refs);
|
|
41
|
+
validateRefs: (refs, heldBy) => {
|
|
42
|
+
resources.resolve(refs, heldBy);
|
|
37
43
|
},
|
|
38
|
-
});
|
|
44
|
+
}, maintenance);
|
|
39
45
|
let globalEvents = null;
|
|
40
46
|
resources = new SqlResourceStore(store, blobs, obligations, options.log);
|
|
41
47
|
const purgeFiles = new SqlPurgeFiles(store, obligations);
|
|
42
48
|
obligations.registerHandler("purge_fs", purgeFiles.handler(options.purgeFiles));
|
|
43
49
|
obligations.registerHandler("archive_fs", partitionFilesHandler(store));
|
|
44
50
|
obligations.registerHandler("quarantine_fs", partitionFilesHandler(store));
|
|
45
|
-
const maintenance = new MaintenanceController(store, {
|
|
46
|
-
...options.maintenance,
|
|
47
|
-
log: options.log,
|
|
48
|
-
blobs,
|
|
49
|
-
});
|
|
50
51
|
const quotaFor = (events) => new QuotaRegistry(events, options.refreshers, store.now, options.subjects, options.pacerStore);
|
|
51
52
|
let quota = null;
|
|
52
53
|
const rebindGlobal = () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql-daemon-services.js","sourceRoot":"","sources":["../../src/store/sql-daemon-services.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAIrD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,oBAAoB,EAAgC,MAAM,cAAc,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAqC,MAAM,kBAAkB,CAAC;AAC5F,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAyB,MAAM,kBAAkB,CAAC;AAC/F,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAWvD;;gFAEgF;AAChF,MAAM,UAAU,uBAAuB,CAAC,KAAkB,EAAE,OAAiC;IAC3F,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;IACnC,IAAI,SAA2B,CAAC;IAChC,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,KAAK,EAAE;QACzC,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC;KAC1D,CAAC,CAAC;IACH,MAAM,aAAa,GAAG,IAAI,gBAAgB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACxE,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IAChE,MAAM,OAAO,GAAG,IAAI,gBAAgB,
|
|
1
|
+
{"version":3,"file":"sql-daemon-services.js","sourceRoot":"","sources":["../../src/store/sql-daemon-services.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql-validation.d.ts","sourceRoot":"","sources":["../../src/store/sql-validation.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9C;;yDAEyD;AACzD,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,SAAS,EAChB,UAAU,EAAE,mBAAmB,EAC/B,aAAa,EAAE,CAAC,UAAU,EAAE,mBAAmB,KAAK,IAAI,GACvD,qBAAqB,EAAE,
|
|
1
|
+
{"version":3,"file":"sql-validation.d.ts","sourceRoot":"","sources":["../../src/store/sql-validation.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9C;;yDAEyD;AACzD,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,SAAS,EAChB,UAAU,EAAE,mBAAmB,EAC/B,aAAa,EAAE,CAAC,UAAU,EAAE,mBAAmB,KAAK,IAAI,GACvD,qBAAqB,EAAE,CAuGzB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql-validation.js","sourceRoot":"","sources":["../../src/store/sql-validation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sql-validation.js","sourceRoot":"","sources":["../../src/store/sql-validation.ts"],"names":[],"mappings":"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"}
|
package/dist/store/store.d.ts
CHANGED
|
@@ -79,6 +79,7 @@ export declare class EngineStore {
|
|
|
79
79
|
private readonly commits;
|
|
80
80
|
private integrityState;
|
|
81
81
|
private closed;
|
|
82
|
+
private bodyDirectoryReady;
|
|
82
83
|
private closing;
|
|
83
84
|
private constructor();
|
|
84
85
|
/**
|
|
@@ -103,6 +104,14 @@ export declare class EngineStore {
|
|
|
103
104
|
* automatic checkpoint SQLite runs inside it (see `pragmas.ts`).
|
|
104
105
|
*/
|
|
105
106
|
transaction<T>(fn: () => T): T;
|
|
107
|
+
/** Names a slow external write in the daemon log (`writeExternalFile`). */
|
|
108
|
+
logSlowWrite(line: string): void;
|
|
109
|
+
/**
|
|
110
|
+
* The body directory, for writes staged off the request thread (which create
|
|
111
|
+
* no directory): on first use it is created and each new level registered
|
|
112
|
+
* with the flusher, on the request thread, as a synchronous owner would.
|
|
113
|
+
*/
|
|
114
|
+
bodyDirectory(): string;
|
|
106
115
|
/** A `{g, dir}` registration after a rename/link in `dir` (SYNTHESIS_R5 §4.4). */
|
|
107
116
|
registerExternal(dir: string): number;
|
|
108
117
|
/** A generation covering every commit so far, acknowledged by the next pass (no waiter). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAgC,iBAAiB,EAAc,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"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"}
|
package/dist/store/store.js
CHANGED
|
@@ -2,6 +2,7 @@ import { LatencyHistogram, processTiming } from "@claudexor/util";
|
|
|
2
2
|
import { mkdirSync } from "node:fs";
|
|
3
3
|
import { join } from "node:path";
|
|
4
4
|
import { isBusyFailure, mapStoreError, StoreCorruptError, StoreError } from "./errors.js";
|
|
5
|
+
import { ensureDirectory } from "./external-files.js";
|
|
5
6
|
import { FlusherController } from "./flusher.js";
|
|
6
7
|
import { ObservationNotices } from "./observation-notices.js";
|
|
7
8
|
import { OwnerGenerations } from "./owner-generations.js";
|
|
@@ -44,6 +45,7 @@ export class EngineStore {
|
|
|
44
45
|
};
|
|
45
46
|
integrityState = "pending";
|
|
46
47
|
closed = false;
|
|
48
|
+
bodyDirectoryReady = false;
|
|
47
49
|
closing = null;
|
|
48
50
|
constructor(runtime, paths, connection, options, storeId) {
|
|
49
51
|
this.options = options;
|
|
@@ -185,6 +187,23 @@ export class EngineStore {
|
|
|
185
187
|
}
|
|
186
188
|
}
|
|
187
189
|
}
|
|
190
|
+
/** Names a slow external write in the daemon log (`writeExternalFile`). */
|
|
191
|
+
logSlowWrite(line) {
|
|
192
|
+
this.options.log?.(line);
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* The body directory, for writes staged off the request thread (which create
|
|
196
|
+
* no directory): on first use it is created and each new level registered
|
|
197
|
+
* with the flusher, on the request thread, as a synchronous owner would.
|
|
198
|
+
*/
|
|
199
|
+
bodyDirectory() {
|
|
200
|
+
if (!this.bodyDirectoryReady) {
|
|
201
|
+
ensureDirectory(this, this.paths.resourceStore);
|
|
202
|
+
ensureDirectory(this, this.paths.blobs);
|
|
203
|
+
this.bodyDirectoryReady = true;
|
|
204
|
+
}
|
|
205
|
+
return this.paths.blobs;
|
|
206
|
+
}
|
|
188
207
|
/** A `{g, dir}` registration after a rename/link in `dir` (SYNTHESIS_R5 §4.4). */
|
|
189
208
|
registerExternal(dir) {
|
|
190
209
|
this.assertOpen();
|