@nklisch/pi-enhanced 0.1.1 → 0.1.2
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/node_modules/@nklisch/pi-conveniences/package.json +5 -2
- package/node_modules/@nklisch/pi-fff-compat/package.json +5 -2
- package/node_modules/@nklisch/pi-plugins/README.md +16 -13
- package/node_modules/@nklisch/pi-plugins/dist/application/automatic-update-coordinator.d.ts +0 -2
- package/node_modules/@nklisch/pi-plugins/dist/application/automatic-update-coordinator.js +15 -21
- package/node_modules/@nklisch/pi-plugins/dist/application/automatic-update-coordinator.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/automatic-update-eligibility.d.ts +0 -3
- package/node_modules/@nklisch/pi-plugins/dist/application/automatic-update-eligibility.js +0 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/automatic-update-eligibility.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/installed-trust-grant-service.d.ts +110 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/installed-trust-grant-service.js +186 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/installed-trust-grant-service.js.map +1 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/lifecycle-transition-reconciler.d.ts +3 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/lifecycle-transition-reconciler.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-plugin-probe.d.ts +0 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-plugin-probe.js +38 -11
- package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-plugin-probe.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-refresh-service.d.ts +2 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-refresh-service.js +22 -2
- package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-refresh-service.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-automatic-run-presenter.d.ts +11 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/native-automatic-run-presenter.js +58 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/native-automatic-run-presenter.js.map +1 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-contract.d.ts +1 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-dispatcher.js +1 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-dispatcher.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-help.d.ts +3 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-mutation-dispatch.js +38 -2
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-mutation-dispatch.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-operation.d.ts +2505 -2439
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-parser.d.ts +1 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-parser.js +2 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-parser.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-progress.d.ts +2 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-registry.d.ts +23 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-registry.js +5 -2
- package/node_modules/@nklisch/pi-plugins/dist/application/native-control-registry.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-diagnostic-registry.d.ts +12 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-diagnostic-registry.js +2 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-diagnostic-registry.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-failure-presenter.js +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-failure-presenter.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-inspection-contract.d.ts +5 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/native-installed-inspection.js +7 -2
- package/node_modules/@nklisch/pi-plugins/dist/application/native-installed-inspection.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation-contract.d.ts +464 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation-contract.js +3 -2
- package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation-contract.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation-session.js +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation-session.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation.d.ts +77 -11
- package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-result.js +3 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-result.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-update-contract.d.ts +11 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-update-contract.js +9 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/native-update-contract.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/plugin-lifecycle-service.d.ts +22 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/plugin-lifecycle-service.js +21 -2
- package/node_modules/@nklisch/pi-plugins/dist/application/plugin-lifecycle-service.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/ports/automatic-update-lifecycle.d.ts +4 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/ports/native-control-applications.d.ts +2 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-contract.d.ts +15 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-contract.js +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-contract.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-service.js +4 -0
- package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-service.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/composition/automatic-update-lifecycle-adapter.js +88 -80
- package/node_modules/@nklisch/pi-plugins/dist/composition/automatic-update-lifecycle-adapter.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/composition/complete-plugin-reload.js +32 -4
- package/node_modules/@nklisch/pi-plugins/dist/composition/complete-plugin-reload.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/composition/create-native-update-management-service.d.ts +0 -2
- package/node_modules/@nklisch/pi-plugins/dist/composition/create-native-update-management-service.js +0 -1
- package/node_modules/@nklisch/pi-plugins/dist/composition/create-native-update-management-service.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/composition/create-packaged-plugin-host.js +43 -9
- package/node_modules/@nklisch/pi-plugins/dist/composition/create-packaged-plugin-host.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/composition/packaged-host-startup.js +4 -3
- package/node_modules/@nklisch/pi-plugins/dist/composition/packaged-host-startup.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/composition/packaged-plugin-host-contract.d.ts +2 -2
- package/node_modules/@nklisch/pi-plugins/dist/composition/runtime-desired-state.js +21 -7
- package/node_modules/@nklisch/pi-plugins/dist/composition/runtime-desired-state.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/domain/mcp-session-environment.d.ts +23 -0
- package/node_modules/@nklisch/pi-plugins/dist/domain/mcp-session-environment.js +30 -0
- package/node_modules/@nklisch/pi-plugins/dist/domain/mcp-session-environment.js.map +1 -0
- package/node_modules/@nklisch/pi-plugins/dist/domain/update-policy.js +2 -0
- package/node_modules/@nklisch/pi-plugins/dist/domain/update-policy.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/index.d.ts +0 -1
- package/node_modules/@nklisch/pi-plugins/dist/index.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/project/node-project-root-resolver.js +8 -1
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/project/node-project-root-resolver.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/local-recovery-filesystem.d.ts +0 -2
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/local-recovery-filesystem.js +3 -52
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/local-recovery-filesystem.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/process-revision-leases.js +6 -8
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/process-revision-leases.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/sqlite-revision-retention.js +6 -6
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/sqlite-revision-retention.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/sqlite-transition-journal.js +4 -49
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/sqlite-transition-journal.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/sqlite-lifecycle-state-store.js +9 -18
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/sqlite-lifecycle-state-store.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/sqlite-open.d.ts +23 -0
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/sqlite-open.js +80 -0
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/sqlite-open.js.map +1 -0
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/sqlite-scope-lock.d.ts +1 -11
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/sqlite-scope-lock.js +59 -593
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/sqlite-scope-lock.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/pi/extension.js +2 -1
- package/node_modules/@nklisch/pi-plugins/dist/pi/extension.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-install-component.js +2 -2
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-install-component.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-actions.d.ts +7 -1
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-actions.js +26 -2
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-actions.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-commands.d.ts +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-commands.js +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-commands.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-component.d.ts +4 -0
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-component.js +24 -2
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-component.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-controller.js +9 -1
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-controller.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-model.d.ts +4 -0
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-model.js +5 -0
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-model.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-render.d.ts +3 -0
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-render.js +20 -12
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-render.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-session.js +43 -14
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-session.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-operation-view.js +13 -8
- package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-operation-view.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/pi/native-control-human.js +2 -2
- package/node_modules/@nklisch/pi-plugins/dist/pi/native-control-human.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/pi/pi-reload-broker.d.ts +2 -2
- package/node_modules/@nklisch/pi-plugins/dist/pi/pi-trust-review.d.ts +8 -0
- package/node_modules/@nklisch/pi-plugins/dist/pi/pi-trust-review.js +93 -0
- package/node_modules/@nklisch/pi-plugins/dist/pi/pi-trust-review.js.map +1 -0
- package/node_modules/@nklisch/pi-plugins/dist/pi/plugin-command.js +3 -3
- package/node_modules/@nklisch/pi-plugins/dist/pi/plugin-command.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/pi/plugin-manager-lifecycle.d.ts +2 -0
- package/node_modules/@nklisch/pi-plugins/dist/pi/plugin-manager-lifecycle.js +8 -2
- package/node_modules/@nklisch/pi-plugins/dist/pi/plugin-manager-lifecycle.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/launch-value-provider.js +24 -0
- package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/launch-value-provider.js.map +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/pi-mcp-adapter-package.js +1 -1
- package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/pi-mcp-adapter-runtime.js +1 -1
- package/node_modules/@nklisch/pi-plugins/package.json +2 -2
- package/package.json +7 -7
- package/node_modules/@nklisch/pi-conveniences/extensions/agents-context.test.ts +0 -140
- package/node_modules/@nklisch/pi-conveniences/extensions/context-window-footer.test.ts +0 -30
- package/node_modules/@nklisch/pi-conveniences/extensions/exit.test.ts +0 -44
- package/node_modules/@nklisch/pi-conveniences/extensions/model-list.test.ts +0 -34
- package/node_modules/@nklisch/pi-fff-compat/extensions/fff-compat-search.test.ts +0 -76
- package/node_modules/@nklisch/pi-plugins/dist/application/ports/update-activation-context.d.ts +0 -4
- package/node_modules/@nklisch/pi-plugins/dist/application/ports/update-activation-context.js +0 -2
- package/node_modules/@nklisch/pi-plugins/dist/application/ports/update-activation-context.js.map +0 -1
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/identity-bound-sqlite.d.ts +0 -22
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/identity-bound-sqlite.js +0 -256
- package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/identity-bound-sqlite.js.map +0 -1
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { DatabaseSync } from "node:sqlite";
|
|
2
|
+
export type OpenSqliteDatabase = Readonly<{
|
|
3
|
+
database: DatabaseSync;
|
|
4
|
+
close(): void;
|
|
5
|
+
}>;
|
|
6
|
+
/**
|
|
7
|
+
* Open (creating when absent) a SQLite database and validate its schema.
|
|
8
|
+
* Schema inspection, first-use initialization, and validation run inside one
|
|
9
|
+
* exclusive transaction so concurrent first-use processes serialize on the
|
|
10
|
+
* database itself; no sidecar marker or claim files exist to drift, go stale,
|
|
11
|
+
* or strand a later process. Busy contention retries with backoff until the
|
|
12
|
+
* caller's signal aborts or the budget is exhausted.
|
|
13
|
+
*/
|
|
14
|
+
export declare function openSqliteDatabase(input: Readonly<{
|
|
15
|
+
path: string;
|
|
16
|
+
signal: AbortSignal;
|
|
17
|
+
busyTimeoutMs?: number;
|
|
18
|
+
/** Connection and journal pragmas, executed once after open before any transaction. */
|
|
19
|
+
configure?(database: DatabaseSync): void;
|
|
20
|
+
/** First-use schema and seed data (DDL/DML only — no journal pragmas). */
|
|
21
|
+
initialize(database: DatabaseSync): void;
|
|
22
|
+
validate(database: DatabaseSync): void;
|
|
23
|
+
}>): Promise<OpenSqliteDatabase>;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { chmodSync, lstatSync } from "node:fs";
|
|
2
|
+
import { DatabaseSync } from "node:sqlite";
|
|
3
|
+
import { LOCAL_LOCK_DATABASE_MODE } from "./local-lock-filesystem.js";
|
|
4
|
+
const SQLITE_BUSY = 5;
|
|
5
|
+
// Waiting out a busy database must tolerate loaded hosts (parallel test
|
|
6
|
+
// runners, several Pi sessions on one agent dir); the budget below totals
|
|
7
|
+
// roughly five seconds while staying sub-second locally.
|
|
8
|
+
const MAX_RETRIES = 24;
|
|
9
|
+
function isBusy(error) {
|
|
10
|
+
return typeof error === "object" && error !== null && error.errcode === SQLITE_BUSY;
|
|
11
|
+
}
|
|
12
|
+
async function wait(signal, attempt) {
|
|
13
|
+
signal.throwIfAborted();
|
|
14
|
+
const delay = Math.min(250, 2 ** Math.min(attempt, 8));
|
|
15
|
+
await new Promise((resolve, reject) => {
|
|
16
|
+
const timer = setTimeout(() => { signal.removeEventListener("abort", onAbort); resolve(); }, delay);
|
|
17
|
+
const onAbort = () => { clearTimeout(timer); signal.removeEventListener("abort", onAbort); reject(signal.reason); };
|
|
18
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
function assertRegularFile(path) {
|
|
22
|
+
const stats = lstatSync(path);
|
|
23
|
+
if (!stats.isFile() || stats.isSymbolicLink())
|
|
24
|
+
throw new Error("SQLite database path is not a regular file");
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Open (creating when absent) a SQLite database and validate its schema.
|
|
28
|
+
* Schema inspection, first-use initialization, and validation run inside one
|
|
29
|
+
* exclusive transaction so concurrent first-use processes serialize on the
|
|
30
|
+
* database itself; no sidecar marker or claim files exist to drift, go stale,
|
|
31
|
+
* or strand a later process. Busy contention retries with backoff until the
|
|
32
|
+
* caller's signal aborts or the budget is exhausted.
|
|
33
|
+
*/
|
|
34
|
+
export async function openSqliteDatabase(input) {
|
|
35
|
+
const busyTimeoutMs = input.busyTimeoutMs ?? 0;
|
|
36
|
+
if (!Number.isInteger(busyTimeoutMs) || busyTimeoutMs < 0 || busyTimeoutMs > 60_000)
|
|
37
|
+
throw new TypeError("SQLite busy timeout is invalid");
|
|
38
|
+
for (let attempt = 0; attempt <= MAX_RETRIES; attempt += 1) {
|
|
39
|
+
input.signal.throwIfAborted();
|
|
40
|
+
const database = new DatabaseSync(input.path, { allowExtension: false, defensive: true, enableForeignKeyConstraints: true, timeout: busyTimeoutMs });
|
|
41
|
+
try {
|
|
42
|
+
input.configure?.(database);
|
|
43
|
+
assertRegularFile(input.path);
|
|
44
|
+
chmodSync(input.path, LOCAL_LOCK_DATABASE_MODE);
|
|
45
|
+
database.exec("BEGIN EXCLUSIVE");
|
|
46
|
+
try {
|
|
47
|
+
const objects = database.prepare("SELECT name FROM sqlite_master WHERE name NOT LIKE 'sqlite_%'").all();
|
|
48
|
+
if (objects.length === 0)
|
|
49
|
+
input.initialize(database);
|
|
50
|
+
input.validate(database);
|
|
51
|
+
database.exec("COMMIT");
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
try {
|
|
55
|
+
if (database.isTransaction)
|
|
56
|
+
database.exec("ROLLBACK");
|
|
57
|
+
}
|
|
58
|
+
catch { /* preserve primary failure */ }
|
|
59
|
+
throw error;
|
|
60
|
+
}
|
|
61
|
+
let closed = false;
|
|
62
|
+
return Object.freeze({
|
|
63
|
+
database,
|
|
64
|
+
close() { if (closed)
|
|
65
|
+
return; closed = true; database.close(); },
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
try {
|
|
70
|
+
database.close();
|
|
71
|
+
}
|
|
72
|
+
catch { /* preserve primary failure */ }
|
|
73
|
+
if (!isBusy(error) || attempt === MAX_RETRIES)
|
|
74
|
+
throw error;
|
|
75
|
+
await wait(input.signal, attempt);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
throw new Error("SQLite database open retry budget exhausted");
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=sqlite-open.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqlite-open.js","sourceRoot":"","sources":["../../../src/infrastructure/state/sqlite-open.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
import { type ScopeReference } from "../../domain/state/scope.js";
|
|
2
2
|
import type { ScopeLockManager } from "../../application/ports/scope-lock.js";
|
|
3
|
-
type InitializationMarkerReadHook = (context: Readonly<{
|
|
4
|
-
path: string;
|
|
5
|
-
databaseName: string;
|
|
6
|
-
markerState: "absent" | "initializing" | "ready";
|
|
7
|
-
}>) => Promise<void> | void;
|
|
8
3
|
export type SqliteScopeLockOptions = Readonly<{
|
|
9
4
|
lockRoot: string;
|
|
10
5
|
retryDelayMs: Readonly<{
|
|
@@ -13,13 +8,8 @@ export type SqliteScopeLockOptions = Readonly<{
|
|
|
13
8
|
}>;
|
|
14
9
|
random?: () => number;
|
|
15
10
|
verifyLocalFilesystem?: (root: string) => Promise<void>;
|
|
16
|
-
/** Test seam for forcing a cross-process marker/path interleaving. */
|
|
17
|
-
initializationMarkerRead?: InitializationMarkerReadHook;
|
|
18
11
|
}>;
|
|
19
12
|
declare function scopeDatabaseName(scope: ScopeReference): string;
|
|
20
|
-
/**
|
|
21
|
-
* Create a scope lock manager after proving the configured root has the
|
|
22
|
-
* capabilities this safety boundary needs. No process-local fallback exists.
|
|
23
|
-
*/
|
|
13
|
+
/** Create a scope lock manager rooted at a private, local-filesystem directory. */
|
|
24
14
|
export declare function createSqliteScopeLockManager(options: SqliteScopeLockOptions): Promise<ScopeLockManager>;
|
|
25
15
|
export { scopeDatabaseName };
|