@cleocode/core 2026.7.2 → 2026.8.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/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +57 -27
- package/dist/bootstrap.js.map +1 -1
- package/dist/conduit/local-transport.d.ts +3 -6
- package/dist/conduit/local-transport.d.ts.map +1 -1
- package/dist/conduit/local-transport.js +6 -7
- package/dist/conduit/local-transport.js.map +1 -1
- package/dist/db/index.d.ts +28 -1
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +28 -1
- package/dist/db/index.js.map +1 -1
- package/dist/docs/display-alias.js +1 -1
- package/dist/docs/display-alias.js.map +1 -1
- package/dist/docs/export-document.js +16292 -22315
- package/dist/docs/export-document.js.map +3 -3
- package/dist/docs/numbering.js +1 -1
- package/dist/docs/numbering.js.map +1 -1
- package/dist/docs/supersede.js +1 -1
- package/dist/docs/supersede.js.map +1 -1
- package/dist/goal/store.d.ts.map +1 -1
- package/dist/goal/store.js.map +1 -1
- package/dist/hooks/payload-schemas.d.ts +9 -9
- package/dist/injection.d.ts.map +1 -1
- package/dist/injection.js +44 -3
- package/dist/injection.js.map +1 -1
- package/dist/lifecycle/index.js +1 -1
- package/dist/lifecycle/index.js.map +1 -1
- package/dist/llm/pi/pi-session-storage.d.ts.map +1 -1
- package/dist/llm/pi/pi-session-storage.js +6 -1
- package/dist/llm/pi/pi-session-storage.js.map +1 -1
- package/dist/llm/plugin-facade.js +5726 -16641
- package/dist/llm/plugin-facade.js.map +3 -3
- package/dist/memory/brain-backfill.js +3 -3
- package/dist/memory/brain-backfill.js.map +1 -1
- package/dist/memory/brain-consolidator.js +2 -2
- package/dist/memory/brain-consolidator.js.map +1 -1
- package/dist/memory/brain-doctor.js +1 -1
- package/dist/memory/brain-doctor.js.map +1 -1
- package/dist/memory/brain-health-dashboard.js +1 -1
- package/dist/memory/brain-health-dashboard.js.map +1 -1
- package/dist/memory/brain-lifecycle.js +10 -10
- package/dist/memory/brain-lifecycle.js.map +1 -1
- package/dist/memory/brain-links.d.ts +26 -2
- package/dist/memory/brain-links.d.ts.map +1 -1
- package/dist/memory/brain-links.js +65 -19
- package/dist/memory/brain-links.js.map +1 -1
- package/dist/memory/brain-maintenance.js +1 -1
- package/dist/memory/brain-maintenance.js.map +1 -1
- package/dist/memory/brain-page-nodes.js +4 -4
- package/dist/memory/brain-page-nodes.js.map +1 -1
- package/dist/memory/brain-reasoning.js +1 -1
- package/dist/memory/brain-reasoning.js.map +1 -1
- package/dist/memory/brain-search.js +1 -1
- package/dist/memory/brain-search.js.map +1 -1
- package/dist/memory/brain-similarity.js +1 -1
- package/dist/memory/brain-similarity.js.map +1 -1
- package/dist/memory/brain-stdp.js +6 -6
- package/dist/memory/brain-stdp.js.map +1 -1
- package/dist/memory/brain-sweep-executor.js +1 -1
- package/dist/memory/brain-sweep-executor.js.map +1 -1
- package/dist/memory/brain-writer-handlers.js +2 -2
- package/dist/memory/brain-writer-handlers.js.map +1 -1
- package/dist/memory/brain-writer-thread.d.ts.map +1 -1
- package/dist/memory/brain-writer-thread.js +31 -40
- package/dist/memory/brain-writer-thread.js.map +1 -1
- package/dist/memory/claude-mem-migration.d.ts.map +1 -1
- package/dist/memory/claude-mem-migration.js +9 -3
- package/dist/memory/claude-mem-migration.js.map +1 -1
- package/dist/memory/dialectic-evaluator.d.ts +11 -6
- package/dist/memory/dialectic-evaluator.d.ts.map +1 -1
- package/dist/memory/dialectic-evaluator.js +8 -2
- package/dist/memory/dialectic-evaluator.js.map +1 -1
- package/dist/memory/engine-compat.js +4 -4
- package/dist/memory/engine-compat.js.map +1 -1
- package/dist/memory/extraction-gate.js +3 -3
- package/dist/memory/extraction-gate.js.map +1 -1
- package/dist/memory/graph-memory-bridge.d.ts.map +1 -1
- package/dist/memory/graph-memory-bridge.js +12 -10
- package/dist/memory/graph-memory-bridge.js.map +1 -1
- package/dist/memory/graph-queries.js +4 -4
- package/dist/memory/graph-queries.js.map +1 -1
- package/dist/memory/learnings.d.ts +8 -8
- package/dist/memory/llm-extraction.js +1 -1
- package/dist/memory/llm-extraction.js.map +1 -1
- package/dist/memory/memory-bridge.js +1 -1
- package/dist/memory/memory-bridge.js.map +1 -1
- package/dist/memory/nexus-plasticity.js +1 -1
- package/dist/memory/nexus-plasticity.js.map +1 -1
- package/dist/memory/observer-reflector.js +1 -1
- package/dist/memory/observer-reflector.js.map +1 -1
- package/dist/memory/patterns.d.ts +14 -14
- package/dist/memory/pipeline-manifest-sqlite.d.ts.map +1 -1
- package/dist/memory/pipeline-manifest-sqlite.js +13 -3
- package/dist/memory/pipeline-manifest-sqlite.js.map +1 -1
- package/dist/memory/quality-feedback.js +4 -4
- package/dist/memory/quality-feedback.js.map +1 -1
- package/dist/memory/retrieval/build-retrieval-bundle.d.ts +1 -1
- package/dist/memory/retrieval/build-retrieval-bundle.d.ts.map +1 -1
- package/dist/memory/retrieval/build-retrieval-bundle.js.map +1 -1
- package/dist/memory/retrieval/increment-citation-counts.js +1 -1
- package/dist/memory/retrieval/increment-citation-counts.js.map +1 -1
- package/dist/memory/retrieval/log-retrieval.js +1 -1
- package/dist/memory/retrieval/log-retrieval.js.map +1 -1
- package/dist/memory/retrieval/observe.d.ts.map +1 -1
- package/dist/memory/retrieval/observe.js +32 -17
- package/dist/memory/retrieval/observe.js.map +1 -1
- package/dist/memory/retrieval/search.js +1 -1
- package/dist/memory/retrieval/search.js.map +1 -1
- package/dist/memory/retrieval/timeline.js +1 -1
- package/dist/memory/retrieval/timeline.js.map +1 -1
- package/dist/memory/session-memory.d.ts.map +1 -1
- package/dist/memory/session-memory.js +35 -1
- package/dist/memory/session-memory.js.map +1 -1
- package/dist/memory/sleep-consolidation.js +4 -4
- package/dist/memory/sleep-consolidation.js.map +1 -1
- package/dist/memory/temporal-supersession.js +5 -5
- package/dist/memory/temporal-supersession.js.map +1 -1
- package/dist/memory/transcript-extractor.js +1 -1
- package/dist/memory/transcript-extractor.js.map +1 -1
- package/dist/memory/transcript-ingestor.js +1 -1
- package/dist/memory/transcript-ingestor.js.map +1 -1
- package/dist/memory/transcript-scanner.js +1 -1
- package/dist/memory/transcript-scanner.js.map +1 -1
- package/dist/nexus/living-brain.js +7 -7
- package/dist/nexus/living-brain.js.map +1 -1
- package/dist/nexus/migrations/M-split-graph.d.ts.map +1 -1
- package/dist/nexus/migrations/M-split-graph.js +4 -1
- package/dist/nexus/migrations/M-split-graph.js.map +1 -1
- package/dist/nexus/sigil.d.ts +1 -2
- package/dist/nexus/sigil.d.ts.map +1 -1
- package/dist/nexus/tasks-bridge.js +4 -4
- package/dist/nexus/tasks-bridge.js.map +1 -1
- package/dist/nexus/user-profile.d.ts +1 -2
- package/dist/nexus/user-profile.d.ts.map +1 -1
- package/dist/orchestration/spawn-prompt.d.ts.map +1 -1
- package/dist/orchestration/spawn-prompt.js +4 -2
- package/dist/orchestration/spawn-prompt.js.map +1 -1
- package/dist/release/reconcile.d.ts.map +1 -1
- package/dist/release/reconcile.js +5 -1
- package/dist/release/reconcile.js.map +1 -1
- package/dist/sagas/migrate-containment.d.ts.map +1 -1
- package/dist/sagas/migrate-containment.js +4 -2
- package/dist/sagas/migrate-containment.js.map +1 -1
- package/dist/scaffold/ensure-dirs.js +1 -1
- package/dist/scaffold/ensure-dirs.js.map +1 -1
- package/dist/scaffold/ensure-skills.d.ts.map +1 -1
- package/dist/scaffold/ensure-skills.js +67 -0
- package/dist/scaffold/ensure-skills.js.map +1 -1
- package/dist/selfimprove/dhq-adapter.d.ts.map +1 -1
- package/dist/selfimprove/dhq-adapter.js +6 -2
- package/dist/selfimprove/dhq-adapter.js.map +1 -1
- package/dist/selfimprove/fix-gen.js +5833 -16627
- package/dist/selfimprove/fix-gen.js.map +3 -3
- package/dist/sentient/dream-cycle.js +1 -1
- package/dist/sentient/dream-cycle.js.map +1 -1
- package/dist/sentient/hygiene-scan.js +1 -1
- package/dist/sentient/hygiene-scan.js.map +1 -1
- package/dist/sentient/propose-tick.js +3 -3
- package/dist/sentient/propose-tick.js.map +1 -1
- package/dist/sentient/stage-drift-tick.js +1 -1
- package/dist/sentient/stage-drift-tick.js.map +1 -1
- package/dist/sequence/index.js +1 -1
- package/dist/sequence/index.js.map +1 -1
- package/dist/store/agent-registry-store.d.ts.map +1 -1
- package/dist/store/agent-registry-store.js +72 -30
- package/dist/store/agent-registry-store.js.map +1 -1
- package/dist/store/attachment-store.js +3 -3
- package/dist/store/attachment-store.js.map +1 -1
- package/dist/store/background-jobs.d.ts +1 -2
- package/dist/store/background-jobs.d.ts.map +1 -1
- package/dist/store/background-jobs.js.map +1 -1
- package/dist/store/conduit-sqlite.d.ts +21 -1
- package/dist/store/conduit-sqlite.d.ts.map +1 -1
- package/dist/store/conduit-sqlite.js +43 -58
- package/dist/store/conduit-sqlite.js.map +1 -1
- package/dist/store/cross-db-cleanup.d.ts +38 -0
- package/dist/store/cross-db-cleanup.d.ts.map +1 -1
- package/dist/store/cross-db-cleanup.js +125 -0
- package/dist/store/cross-db-cleanup.js.map +1 -1
- package/dist/store/db-helpers.d.ts +1 -2
- package/dist/store/db-helpers.d.ts.map +1 -1
- package/dist/store/dual-scope-db.d.ts +343 -4
- package/dist/store/dual-scope-db.d.ts.map +1 -1
- package/dist/store/dual-scope-db.js +665 -262
- package/dist/store/dual-scope-db.js.map +1 -1
- package/dist/store/memory-accessor.d.ts +1 -1
- package/dist/store/memory-accessor.d.ts.map +1 -1
- package/dist/store/memory-accessor.js.map +1 -1
- package/dist/store/memory-sqlite.d.ts +58 -4
- package/dist/store/memory-sqlite.d.ts.map +1 -1
- package/dist/store/memory-sqlite.js +70 -78
- package/dist/store/memory-sqlite.js.map +1 -1
- package/dist/store/migration-manager.d.ts +7 -4
- package/dist/store/migration-manager.d.ts.map +1 -1
- package/dist/store/migration-manager.js +10 -10
- package/dist/store/migration-manager.js.map +1 -1
- package/dist/store/migration-sqlite.js +1 -1
- package/dist/store/migration-sqlite.js.map +1 -1
- package/dist/store/nexus-sqlite.d.ts +43 -1
- package/dist/store/nexus-sqlite.d.ts.map +1 -1
- package/dist/store/nexus-sqlite.js +80 -116
- package/dist/store/nexus-sqlite.js.map +1 -1
- package/dist/store/ports/domain-binding.d.ts +233 -0
- package/dist/store/ports/domain-binding.d.ts.map +1 -0
- package/dist/store/ports/domain-binding.js +500 -0
- package/dist/store/ports/domain-binding.js.map +1 -0
- package/dist/store/ports/fk-integrity.d.ts +155 -0
- package/dist/store/ports/fk-integrity.d.ts.map +1 -0
- package/dist/store/ports/fk-integrity.js +182 -0
- package/dist/store/ports/fk-integrity.js.map +1 -0
- package/dist/store/role-accessors-impl.js +2 -2
- package/dist/store/role-accessors-impl.js.map +1 -1
- package/dist/store/schema/attachments.d.ts +1 -1
- package/dist/store/schema/audit.d.ts +2 -2
- package/dist/store/schema/background-jobs.d.ts +1 -1
- package/dist/store/schema/cleo-global/agent-registry.d.ts +1 -1
- package/dist/store/schema/cleo-global/models-catalog.d.ts +1 -1
- package/dist/store/schema/cleo-global/skills.d.ts +2 -2
- package/dist/store/schema/cleo-project/audit.d.ts +2 -2
- package/dist/store/schema/cleo-project/docs.d.ts +1 -1
- package/dist/store/schema/cleo-project/lifecycle.d.ts +4 -4
- package/dist/store/schema/cleo-project/nexus-graph.d.ts +2 -2
- package/dist/store/schema/cleo-project/provenance-rest.d.ts +3 -3
- package/dist/store/schema/cleo-project/runtime.d.ts +2 -2
- package/dist/store/schema/cleo-project/tasks-core-batch2.d.ts +1 -1
- package/dist/store/schema/cleo-project/tasks-core.d.ts +3 -3
- package/dist/store/schema/cleo-shared/brain.d.ts +5 -5
- package/dist/store/schema/jsonb.js +1 -1
- package/dist/store/schema/jsonb.js.map +1 -1
- package/dist/store/schema/lifecycle.d.ts +4 -4
- package/dist/store/schema/memory-schema.d.ts +3 -3
- package/dist/store/schema/nexus-schema.d.ts +1 -1
- package/dist/store/schema/provenance/releases.d.ts +3 -3
- package/dist/store/schema/skills-schema.d.ts +2 -2
- package/dist/store/schema/tasks.d.ts +2 -2
- package/dist/store/skills-db.d.ts +20 -1
- package/dist/store/skills-db.d.ts.map +1 -1
- package/dist/store/skills-db.js +80 -72
- package/dist/store/skills-db.js.map +1 -1
- package/dist/store/sqlite-backup.js +2 -2
- package/dist/store/sqlite-backup.js.map +1 -1
- package/dist/store/sqlite-data-accessor.js +1 -1
- package/dist/store/sqlite-data-accessor.js.map +1 -1
- package/dist/store/sqlite.d.ts +73 -11
- package/dist/store/sqlite.d.ts.map +1 -1
- package/dist/store/sqlite.js +173 -138
- package/dist/store/sqlite.js.map +1 -1
- package/dist/store/tasks-sqlite.js +2 -2
- package/dist/store/tasks-sqlite.js.map +1 -1
- package/dist/store/validation-schemas.d.ts +35 -35
- package/dist/store/writer-lease.d.ts +85 -53
- package/dist/store/writer-lease.d.ts.map +1 -1
- package/dist/store/writer-lease.js +194 -112
- package/dist/store/writer-lease.js.map +1 -1
- package/dist/system/health.d.ts +0 -4
- package/dist/system/health.d.ts.map +1 -1
- package/dist/system/health.js +58 -2
- package/dist/system/health.js.map +1 -1
- package/dist/tasks/add.d.ts.map +1 -1
- package/dist/tasks/add.js +9 -2
- package/dist/tasks/add.js.map +1 -1
- package/dist/tasks/backfill-child-projections.d.ts.map +1 -1
- package/dist/tasks/backfill-child-projections.js +3 -1
- package/dist/tasks/backfill-child-projections.js.map +1 -1
- package/dist/tasks/evidence.d.ts +17 -0
- package/dist/tasks/evidence.d.ts.map +1 -1
- package/dist/tasks/evidence.js +145 -35
- package/dist/tasks/evidence.js.map +1 -1
- package/dist/tasks/infer-add-params.d.ts.map +1 -1
- package/dist/tasks/infer-add-params.js +6 -1
- package/dist/tasks/infer-add-params.js.map +1 -1
- package/dist/tasks/tool-cache.d.ts +29 -0
- package/dist/tasks/tool-cache.d.ts.map +1 -1
- package/dist/tasks/tool-cache.js +166 -6
- package/dist/tasks/tool-cache.js.map +1 -1
- package/dist/tasks/tool-resolver.d.ts +5 -1
- package/dist/tasks/tool-resolver.d.ts.map +1 -1
- package/dist/tasks/tool-resolver.js +28 -20
- package/dist/tasks/tool-resolver.js.map +1 -1
- package/dist/telemetry/index.d.ts.map +1 -1
- package/dist/telemetry/index.js +4 -1
- package/dist/telemetry/index.js.map +1 -1
- package/dist/telemetry/sqlite.d.ts +1 -2
- package/dist/telemetry/sqlite.d.ts.map +1 -1
- package/dist/telemetry/sqlite.js +1 -2
- package/dist/telemetry/sqlite.js.map +1 -1
- package/dist/upgrade.js +2 -2
- package/dist/upgrade.js.map +1 -1
- package/dist/validation/doctor/checks.d.ts +23 -1
- package/dist/validation/doctor/checks.d.ts.map +1 -1
- package/dist/validation/doctor/checks.js +79 -19
- package/dist/validation/doctor/checks.js.map +1 -1
- package/dist/worktree/list.js +1 -1
- package/dist/worktree/list.js.map +1 -1
- package/package.json +24 -14
- package/schemas/project-context.schema.json +69 -0
- package/templates/workflows/release-prepare.yml.tmpl +10 -0
|
@@ -269,6 +269,13 @@ export async function reconcileOrphanedRefs(cwd) {
|
|
|
269
269
|
}
|
|
270
270
|
return result;
|
|
271
271
|
}
|
|
272
|
+
/**
|
|
273
|
+
* Verify a session ID through the caller's shared tasks database handle.
|
|
274
|
+
*
|
|
275
|
+
* @param sessionId - Session ID to verify.
|
|
276
|
+
* @param tasksDb - Shared tasks database handle.
|
|
277
|
+
* @returns True when the session exists.
|
|
278
|
+
*/
|
|
272
279
|
export async function sessionExistsInTasksDb(sessionId, tasksDb) {
|
|
273
280
|
const { sessions } = await import('./tasks-schema.js');
|
|
274
281
|
const { eq: eqOp } = await import('drizzle-orm');
|
|
@@ -279,6 +286,124 @@ export async function sessionExistsInTasksDb(sessionId, tasksDb) {
|
|
|
279
286
|
.all();
|
|
280
287
|
return result.length > 0;
|
|
281
288
|
}
|
|
289
|
+
const FRESH_PROBE_ATTEMPTS = 3;
|
|
290
|
+
const FRESH_PROBE_RETRY_DELAY_MS = 25;
|
|
291
|
+
function projectRecordExists(probe, id, tableNames) {
|
|
292
|
+
const availableRows = probe
|
|
293
|
+
.prepare("SELECT name FROM sqlite_master WHERE type = 'table' AND name IN (?, ?)")
|
|
294
|
+
.all(...tableNames);
|
|
295
|
+
const availableNames = new Set();
|
|
296
|
+
for (const row of availableRows) {
|
|
297
|
+
const name = row['name'];
|
|
298
|
+
if (name === 'sessions' ||
|
|
299
|
+
name === 'tasks_sessions' ||
|
|
300
|
+
name === 'tasks' ||
|
|
301
|
+
name === 'tasks_tasks') {
|
|
302
|
+
availableNames.add(name);
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
for (const tableName of tableNames) {
|
|
306
|
+
if (!availableNames.has(tableName))
|
|
307
|
+
continue;
|
|
308
|
+
const row = probe
|
|
309
|
+
.prepare(`SELECT 1 AS present FROM ${tableName} WHERE id = ? LIMIT 1`)
|
|
310
|
+
.get(id);
|
|
311
|
+
if (row !== undefined)
|
|
312
|
+
return true;
|
|
313
|
+
}
|
|
314
|
+
return false;
|
|
315
|
+
}
|
|
316
|
+
async function recordExistsInTasksDbFresh(id, tableNames, tasksDb, cwd) {
|
|
317
|
+
const [{ resolveDualScopeDbPath }, { openNativeDatabase }] = await Promise.all([
|
|
318
|
+
import('./dual-scope-db.js'),
|
|
319
|
+
import('./sqlite-native.js'),
|
|
320
|
+
]);
|
|
321
|
+
const sharedNative = tasksDb?.$client;
|
|
322
|
+
const preferredPath = cwd !== undefined
|
|
323
|
+
? resolveDualScopeDbPath('project', cwd)
|
|
324
|
+
: (sharedNative?.location() ?? resolveDualScopeDbPath('project'));
|
|
325
|
+
const sharedPath = sharedNative?.location();
|
|
326
|
+
const probePath = (dbPath) => {
|
|
327
|
+
const probe = openNativeDatabase(dbPath, {
|
|
328
|
+
readonly: true,
|
|
329
|
+
});
|
|
330
|
+
try {
|
|
331
|
+
return projectRecordExists(probe, id, tableNames);
|
|
332
|
+
}
|
|
333
|
+
finally {
|
|
334
|
+
probe.close();
|
|
335
|
+
}
|
|
336
|
+
};
|
|
337
|
+
const candidatePaths = sharedPath != null && sharedPath !== preferredPath
|
|
338
|
+
? [preferredPath, sharedPath]
|
|
339
|
+
: [preferredPath];
|
|
340
|
+
let completedProbe = false;
|
|
341
|
+
for (let attempt = 0; attempt < FRESH_PROBE_ATTEMPTS; attempt += 1) {
|
|
342
|
+
for (const dbPath of candidatePaths) {
|
|
343
|
+
try {
|
|
344
|
+
const exists = probePath(dbPath);
|
|
345
|
+
completedProbe = true;
|
|
346
|
+
if (exists)
|
|
347
|
+
return true;
|
|
348
|
+
}
|
|
349
|
+
catch {
|
|
350
|
+
// A stale candidate may disappear between path discovery and the read-only open.
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
if (sharedNative?.isOpen) {
|
|
354
|
+
try {
|
|
355
|
+
const exists = projectRecordExists(sharedNative, id, tableNames);
|
|
356
|
+
completedProbe = true;
|
|
357
|
+
if (exists)
|
|
358
|
+
return true;
|
|
359
|
+
}
|
|
360
|
+
catch {
|
|
361
|
+
// The caller's handle may close after the liveness check.
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
if (attempt + 1 < FRESH_PROBE_ATTEMPTS) {
|
|
365
|
+
await new Promise((resolve) => setTimeout(resolve, FRESH_PROBE_RETRY_DELAY_MS));
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
if (completedProbe)
|
|
369
|
+
return false;
|
|
370
|
+
throw new Error(`Unable to verify project record ${id}: no readable tasks database candidate`);
|
|
371
|
+
}
|
|
372
|
+
/**
|
|
373
|
+
* Verify a session ID through fresh read-only connections and the caller's live handle.
|
|
374
|
+
*
|
|
375
|
+
* This is the bounded fallback for callers whose shared project handle either
|
|
376
|
+
* closed during the primary query or returned a stale empty result. It does not
|
|
377
|
+
* evict the dual-scope cache, so other domains retaining the shared handle stay
|
|
378
|
+
* live while the probe runs. The live handle is checked last because it can own
|
|
379
|
+
* a committed, unlinked SQLite file that is no longer reachable by path.
|
|
380
|
+
*
|
|
381
|
+
* @param sessionId - Session ID to verify.
|
|
382
|
+
* @param tasksDb - Shared tasks handle whose native path anchors the probe when available.
|
|
383
|
+
* @param cwd - Project root used to resolve the project-scope cleo.db.
|
|
384
|
+
* @returns True when the session is present in any live project session table.
|
|
385
|
+
* @throws Error when no database candidate can be read, distinguishing unavailable validation from absence.
|
|
386
|
+
* @task T12034
|
|
387
|
+
*/
|
|
388
|
+
export async function sessionExistsInTasksDbFresh(sessionId, tasksDb, cwd) {
|
|
389
|
+
return recordExistsInTasksDbFresh(sessionId, ['sessions', 'tasks_sessions'], tasksDb, cwd);
|
|
390
|
+
}
|
|
391
|
+
/**
|
|
392
|
+
* Verify a task ID through fresh read-only connections and the caller's live handle.
|
|
393
|
+
*
|
|
394
|
+
* Checks both the active legacy tasks table and its consolidated prefixed
|
|
395
|
+
* counterpart so callers remain correct during the E3-to-E6 transition.
|
|
396
|
+
*
|
|
397
|
+
* @param taskId - Task ID to verify.
|
|
398
|
+
* @param tasksDb - Shared tasks handle used only when no project root is available.
|
|
399
|
+
* @param cwd - Project root used to resolve the authoritative project database.
|
|
400
|
+
* @returns True when the task exists in either supported project table.
|
|
401
|
+
* @throws Error when no database candidate can be read, distinguishing unavailable validation from absence.
|
|
402
|
+
* @task T12034
|
|
403
|
+
*/
|
|
404
|
+
export async function taskExistsInTasksDbFresh(taskId, tasksDb, cwd) {
|
|
405
|
+
return recordExistsInTasksDbFresh(taskId, ['tasks', 'tasks_tasks'], tasksDb, cwd);
|
|
406
|
+
}
|
|
282
407
|
/**
|
|
283
408
|
* Verify an agent exists in the global Agent Registry before creating cross-DB references.
|
|
284
409
|
* Returns true if the agent_id exists in the global cleo.db agent_registry_agents table.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cross-db-cleanup.js","sourceRoot":"","sources":["../../src/store/cross-db-cleanup.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cross-db-cleanup.js","sourceRoot":"","sources":["../../src/store/cross-db-cleanup.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,9 +9,8 @@
|
|
|
9
9
|
import type { ArchiveReasonValue, Session, Task } from '@cleocode/contracts';
|
|
10
10
|
import type { NodeSQLiteDatabase } from 'drizzle-orm/node-sqlite';
|
|
11
11
|
import type { NewTaskRow } from './tasks-schema.js';
|
|
12
|
-
import * as schema from './tasks-schema.js';
|
|
13
12
|
/** Drizzle database instance type. */
|
|
14
|
-
type DrizzleDb = NodeSQLiteDatabase
|
|
13
|
+
type DrizzleDb = NodeSQLiteDatabase;
|
|
15
14
|
/** Archive-specific fields for task upsert. */
|
|
16
15
|
export interface ArchiveFields {
|
|
17
16
|
archivedAt?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db-helpers.d.ts","sourceRoot":"","sources":["../../src/store/db-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAE7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"db-helpers.d.ts","sourceRoot":"","sources":["../../src/store/db-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAE7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAKpD,sCAAsC;AACtC,KAAK,SAAS,GAAG,kBAAkB,CAAC;AAEpC,+CAA+C;AAC/C,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,UAAU,CAC9B,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,UAAU,EACf,aAAa,CAAC,EAAE,aAAa,EAC7B,iBAAiB,UAAQ,GACxB,OAAO,CAAC,IAAI,CAAC,CA2Ff;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,EAAE,CAa3E;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,SAAS,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EAAE,GACf,OAAO,CAAC,IAAI,CAAC,CAQf;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA4ClF;AAED;;;;;GAKG;AACH,MAAM,MAAM,uBAAuB,GAAG,WAAW,GAAG,oBAAoB,GAAG,kBAAkB,CAAC;AAS9F;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,qBAAqB,CACzC,EAAE,EAAE,SAAS,EACb,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,uBAAuB,EAC/B,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAUf;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,SAAS,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EAAE,EACjB,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACrB,OAAO,CAAC,IAAI,CAAC,CAWf;AAED;;;;;;;GAOG;AACH,wBAAsB,uBAAuB,CAC3C,EAAE,EAAE,SAAS,EACb,KAAK,EAAE,KAAK,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,EAChD,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACrB,OAAO,CAAC,IAAI,CAAC,CAyBf;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,EAAE,EAAE,SAAS,EACb,KAAK,EAAE,IAAI,EAAE,EACb,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAC1B,OAAO,CAAC,IAAI,CAAC,CA6Bf;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BvF"}
|
|
@@ -51,8 +51,7 @@
|
|
|
51
51
|
*/
|
|
52
52
|
import type { NodeSQLiteDatabase } from 'drizzle-orm/node-sqlite';
|
|
53
53
|
import { type ExodusAbortDetail } from './exodus/abort-events.js';
|
|
54
|
-
import type
|
|
55
|
-
import type * as CleoProjectSchemaTypes from './schema/cleo-project/index.js';
|
|
54
|
+
import { type WriterLeaseIdentity } from './writer-lease.js';
|
|
56
55
|
/**
|
|
57
56
|
* The two canonical scopes for the consolidated dual-scope `cleo.db` substrate.
|
|
58
57
|
*
|
|
@@ -61,9 +60,9 @@ import type * as CleoProjectSchemaTypes from './schema/cleo-project/index.js';
|
|
|
61
60
|
*/
|
|
62
61
|
export type DualScope = 'project' | 'global';
|
|
63
62
|
/** Typed Drizzle handle for the project-scope `cleo.db`. */
|
|
64
|
-
export type CleoProjectDb = NodeSQLiteDatabase
|
|
63
|
+
export type CleoProjectDb = NodeSQLiteDatabase;
|
|
65
64
|
/** Typed Drizzle handle for the global-scope `cleo.db`. */
|
|
66
|
-
export type CleoGlobalDb = NodeSQLiteDatabase
|
|
65
|
+
export type CleoGlobalDb = NodeSQLiteDatabase;
|
|
67
66
|
/**
|
|
68
67
|
* Handle returned by {@link openDualScopeDb}.
|
|
69
68
|
*
|
|
@@ -78,6 +77,18 @@ export interface DualScopeDbHandle<TScope extends DualScope = DualScope> {
|
|
|
78
77
|
readonly scope: TScope;
|
|
79
78
|
/** Absolute path to the underlying SQLite file. */
|
|
80
79
|
readonly dbPath: string;
|
|
80
|
+
/**
|
|
81
|
+
* Immutable writer-lease identity bound to this exact handle at construction
|
|
82
|
+
* (T12042). The chokepoint write primitives derive scope + dbPath from this
|
|
83
|
+
* identity via {@link resolveDbIdentity} — a caller cannot pair file-A
|
|
84
|
+
* identity with file-B DB. Frozen and normalized.
|
|
85
|
+
*/
|
|
86
|
+
readonly identity: WriterLeaseIdentity;
|
|
87
|
+
/**
|
|
88
|
+
* Whether the underlying native `DatabaseSync` connection is still
|
|
89
|
+
* open. Reflects `nativeDb.isOpen` and is `false` after `close()`.
|
|
90
|
+
*/
|
|
91
|
+
readonly isOpen: boolean;
|
|
81
92
|
/**
|
|
82
93
|
* Set ONLY when the exodus-on-open data-continuity gate ABORTED the first-open
|
|
83
94
|
* auto-migration for this scope (T11828 · DHQ-059). When present, the handle is
|
|
@@ -253,6 +264,324 @@ export declare function openDualScopeDbAtPath(scope: 'global', dbPath: string, e
|
|
|
253
264
|
* @internal
|
|
254
265
|
*/
|
|
255
266
|
export declare function _resetDualScopeDbCache(scope?: DualScope): void;
|
|
267
|
+
/**
|
|
268
|
+
* A typed handle to a single project's consolidated `cleo.db`, keyed by canonical
|
|
269
|
+
* database path. Obtained from {@link CleoRuntime.openProject}.
|
|
270
|
+
*
|
|
271
|
+
* Each {@link ProjectStore} wraps ONE shared {@link DualScopeDbHandle} — closing
|
|
272
|
+
* it affects only this project; other projects and the global scope are untouched.
|
|
273
|
+
*
|
|
274
|
+
* ## Lifecycle identity
|
|
275
|
+
*
|
|
276
|
+
* Every store carries an opaque identity tag. Its `close()` is stale-safe: it only
|
|
277
|
+
* evicts the registry entry when that entry still belongs to THIS store (not a
|
|
278
|
+
* replacement opened after close). An old stale `close()` is a no-op.
|
|
279
|
+
*
|
|
280
|
+
* @task T12036 (E6-L12)
|
|
281
|
+
* @epic T11249 (E6)
|
|
282
|
+
* @saga T11242
|
|
283
|
+
*/
|
|
284
|
+
export interface ProjectStore {
|
|
285
|
+
/** The literal scope discriminator. */
|
|
286
|
+
readonly scope: 'project';
|
|
287
|
+
/** Absolute on-disk path to this project's `cleo.db`. */
|
|
288
|
+
readonly dbPath: string;
|
|
289
|
+
/**
|
|
290
|
+
* Immutable writer-lease identity bound to this store's underlying
|
|
291
|
+
* {@link DualScopeDbHandle} at construction (T12042).
|
|
292
|
+
*/
|
|
293
|
+
readonly identity: WriterLeaseIdentity;
|
|
294
|
+
/** The typed Drizzle ORM handle for the project-scope consolidated schema. */
|
|
295
|
+
readonly db: CleoProjectDb;
|
|
296
|
+
/**
|
|
297
|
+
* Whether the underlying native `DatabaseSync` connection is still
|
|
298
|
+
* open. `false` after `close()`. Delegates to
|
|
299
|
+
* {@link DualScopeDbHandle.isOpen}.
|
|
300
|
+
*/
|
|
301
|
+
readonly isOpen: boolean;
|
|
302
|
+
/**
|
|
303
|
+
* Set when the exodus-on-open auto-migration aborted for this project
|
|
304
|
+
* (T11828 · DHQ-059). `undefined` on a normal open.
|
|
305
|
+
*/
|
|
306
|
+
readonly exodusAbort?: ExodusAbortDetail;
|
|
307
|
+
/**
|
|
308
|
+
* Close this project's handle and evict it from the runtime registry
|
|
309
|
+
* if-and-only-if the registry still points to this store. Safe to call
|
|
310
|
+
* multiple times (idempotent). Does NOT affect the global scope or other
|
|
311
|
+
* open projects.
|
|
312
|
+
*/
|
|
313
|
+
close(): void;
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* A typed handle to the global consolidated `cleo.db`, keyed by canonical
|
|
317
|
+
* database path. Obtained from {@link CleoRuntime.openGlobal}.
|
|
318
|
+
*
|
|
319
|
+
* The {@link GlobalStore} wraps the shared dual-scope chokepoint handle —
|
|
320
|
+
* closing it only disposes the global entry, never any project.
|
|
321
|
+
*
|
|
322
|
+
* ## Lifecycle identity
|
|
323
|
+
*
|
|
324
|
+
* Same stale-safe semantics as {@link ProjectStore}: an old `close()` after a
|
|
325
|
+
* reopen is a no-op.
|
|
326
|
+
*
|
|
327
|
+
* @task T12036 (E6-L12)
|
|
328
|
+
* @epic T11249 (E6)
|
|
329
|
+
* @saga T11242
|
|
330
|
+
*/
|
|
331
|
+
export interface GlobalStore {
|
|
332
|
+
/** The literal scope discriminator. */
|
|
333
|
+
readonly scope: 'global';
|
|
334
|
+
/** Absolute on-disk path to the global `cleo.db`. */
|
|
335
|
+
readonly dbPath: string;
|
|
336
|
+
/**
|
|
337
|
+
* Immutable writer-lease identity bound to this store's underlying
|
|
338
|
+
* {@link DualScopeDbHandle} at construction (T12042).
|
|
339
|
+
*/
|
|
340
|
+
readonly identity: WriterLeaseIdentity;
|
|
341
|
+
/** The typed Drizzle ORM handle for the global-scope consolidated schema. */
|
|
342
|
+
readonly db: CleoGlobalDb;
|
|
343
|
+
/**
|
|
344
|
+
* Whether the underlying native `DatabaseSync` connection is still
|
|
345
|
+
* open. `false` after `close()`. Delegates to
|
|
346
|
+
* {@link DualScopeDbHandle.isOpen}.
|
|
347
|
+
*/
|
|
348
|
+
readonly isOpen: boolean;
|
|
349
|
+
/**
|
|
350
|
+
* Set when the exodus-on-open auto-migration aborted for the global scope
|
|
351
|
+
* (T11828 · DHQ-059). `undefined` on a normal open.
|
|
352
|
+
*/
|
|
353
|
+
readonly exodusAbort?: ExodusAbortDetail;
|
|
354
|
+
/**
|
|
355
|
+
* Close the global handle and evict it from the runtime registry
|
|
356
|
+
* if-and-only-if the registry still points to this store. Safe to call
|
|
357
|
+
* multiple times (idempotent).
|
|
358
|
+
*/
|
|
359
|
+
close(): void;
|
|
360
|
+
}
|
|
361
|
+
/**
|
|
362
|
+
* The CleoRuntime store registry — the explicit composition root that owns
|
|
363
|
+
* project and global database entries keyed by canonical database path.
|
|
364
|
+
*
|
|
365
|
+
* Created via {@link createCleoRuntime}. Each entry in the registry is a
|
|
366
|
+
* {@link ProjectStore} or {@link GlobalStore} that wraps a shared consolidated
|
|
367
|
+
* {@link DualScopeDbHandle} obtained from the dual-scope chokepoint
|
|
368
|
+
* ({@link openDualScopeDbAtPath}). The registry provides:
|
|
369
|
+
*
|
|
370
|
+
* - **Path-keyed identity** — entries are keyed by `${scope}::${canonical
|
|
371
|
+
* dbPath}` (scoped composite key), not cwd or "last opened project".
|
|
372
|
+
* Equivalent path spellings are normalized via `path.resolve` before keying
|
|
373
|
+
* so `/path/./to/cleo.db` and `/path/to/cleo.db` single-flight together.
|
|
374
|
+
* - **Single-flight** — concurrent `openProject(p)` or `openGlobal()` calls
|
|
375
|
+
* for the same key share one initialization. If the entry is closed during
|
|
376
|
+
* that initialization, the acquired handle is closed and the openers reject.
|
|
377
|
+
* - **Scoped disposal** — closing a project never closes another project or
|
|
378
|
+
* the global scope. `closeAll()` disposes every entry. Each store's `close()`
|
|
379
|
+
* is stale-safe: only evicts if the registry still references that exact
|
|
380
|
+
* store instance.
|
|
381
|
+
* - **Cache-hit liveness** — when the underlying `DatabaseSync` was externally
|
|
382
|
+
* closed, the registry evicts and reopens (mirrors the dual-scope chokepoint
|
|
383
|
+
* pattern).
|
|
384
|
+
*
|
|
385
|
+
* ## Cross-runtime sharing
|
|
386
|
+
*
|
|
387
|
+
* Two separate {@link CleoRuntime} instances (created by independent calls to
|
|
388
|
+
* {@link createCleoRuntime}) share the **process-global** dual-scope handle
|
|
389
|
+
* cache (`_cache` in this module). A project opened by runtime A returns a
|
|
390
|
+
* store whose `close()` closes that shared handle — runtime B's store for the
|
|
391
|
+
* same path will observe `isOpen === false` on its store, and the
|
|
392
|
+
* **cache-hit liveness** check in this runtime will reacquire a fresh handle
|
|
393
|
+
* on the next `openProject`/`openGlobal`. This is by design: the runtime
|
|
394
|
+
* registry owns **entry lifecycle**, not the underlying connection.
|
|
395
|
+
*
|
|
396
|
+
* For connection-level isolation, pass `{ dedicated: true }` to
|
|
397
|
+
* {@link CleoRuntime.openProject} or {@link CleoRuntime.openGlobal}. This
|
|
398
|
+
* opens a second `DatabaseSync` connection to the same file (WAL allows
|
|
399
|
+
* concurrent connections), bypasses the shared chokepoint cache, and returns
|
|
400
|
+
* a store whose `close()` closes only that dedicated connection. Dedicated
|
|
401
|
+
* entries are NOT keyed or tracked by the runtime registry — they are
|
|
402
|
+
* returned directly and the caller is responsible for closing them.
|
|
403
|
+
*
|
|
404
|
+
* @task T12036 (E6-L12)
|
|
405
|
+
* @epic T11249 (E6)
|
|
406
|
+
* @saga T11242
|
|
407
|
+
*/
|
|
408
|
+
/**
|
|
409
|
+
* Options for {@link CleoRuntime.openProject} and
|
|
410
|
+
* {@link CleoRuntime.openGlobal}.
|
|
411
|
+
*
|
|
412
|
+
* @task T12036 (E6-L12)
|
|
413
|
+
*/
|
|
414
|
+
export interface CleoRuntimeOpenOptions {
|
|
415
|
+
/**
|
|
416
|
+
* When `true`, open a DEDICATED, NON-cached connection — a second SQLite
|
|
417
|
+
* handle to the same file, independent of the singleton `_cache`. The
|
|
418
|
+
* returned store is NOT tracked in the runtime registry and its `close()`
|
|
419
|
+
* closes only that dedicated connection. Used for isolation between
|
|
420
|
+
* concurrent consumers (e.g. a snapshot worker, a migration engine).
|
|
421
|
+
*
|
|
422
|
+
* @default false
|
|
423
|
+
*/
|
|
424
|
+
readonly dedicated?: boolean;
|
|
425
|
+
/**
|
|
426
|
+
* The project working directory that this open was resolved FROM.
|
|
427
|
+
*
|
|
428
|
+
* Forwarded verbatim to {@link openDualScopeDbAtPath} as its `exodusCwd`
|
|
429
|
+
* argument, which is what arms the exodus-on-open legacy-fleet
|
|
430
|
+
* auto-migration (E6 · T11553). {@link openDualScopeDb} passes its own
|
|
431
|
+
* `cwd` for exactly this reason; a runtime open that omits it would
|
|
432
|
+
* silently DISABLE auto-migration for users still carrying legacy
|
|
433
|
+
* standalone `tasks.db` / `brain.db` files.
|
|
434
|
+
*
|
|
435
|
+
* Domain ports that replace a `getDb(cwd)`-style facade MUST forward the
|
|
436
|
+
* caller's `cwd` here so behaviour is identical to the facade they retire.
|
|
437
|
+
* Leave `undefined` for explicit-path opens (test fixtures, snapshots)
|
|
438
|
+
* that must never auto-migrate.
|
|
439
|
+
*
|
|
440
|
+
* @task T12037 (E6-L13)
|
|
441
|
+
*/
|
|
442
|
+
readonly exodusCwd?: string;
|
|
443
|
+
}
|
|
444
|
+
export interface CleoRuntime {
|
|
445
|
+
/**
|
|
446
|
+
* Open (or reuse) the project-scope `cleo.db` at the given path.
|
|
447
|
+
*
|
|
448
|
+
* The path may be relative or absolute — it is normalized via
|
|
449
|
+
* `path.resolve()` before keying. The path MUST resolve to a project's
|
|
450
|
+
* canonical `cleo.db` file (use {@link resolveDualScopeDbPath} to compute
|
|
451
|
+
* it from a project root directory).
|
|
452
|
+
*
|
|
453
|
+
* Concurrent calls for the same normalized path single-flight — all callers
|
|
454
|
+
* receive the same {@link ProjectStore} instance unless `dedicated: true`
|
|
455
|
+
* was passed.
|
|
456
|
+
*
|
|
457
|
+
* @param dbPath - Absolute or relative path to the project's `cleo.db`.
|
|
458
|
+
* Normalized via `path.resolve()` before keying.
|
|
459
|
+
* @param options - Optional open mode (e.g. `{ dedicated: true }`).
|
|
460
|
+
* @returns A typed {@link ProjectStore} bound to the requested path.
|
|
461
|
+
*/
|
|
462
|
+
openProject(dbPath: string, options?: CleoRuntimeOpenOptions): Promise<ProjectStore>;
|
|
463
|
+
/**
|
|
464
|
+
* Open (or reuse) the global-scope `cleo.db`. The path is resolved
|
|
465
|
+
* internally via {@link getCleoHome}.
|
|
466
|
+
*
|
|
467
|
+
* Concurrent calls single-flight — all callers receive the same
|
|
468
|
+
* {@link GlobalStore} instance unless `dedicated: true`.
|
|
469
|
+
*
|
|
470
|
+
* @param options - Optional open mode (e.g. `{ dedicated: true }`).
|
|
471
|
+
* @returns A typed {@link GlobalStore} bound to the global scope.
|
|
472
|
+
*/
|
|
473
|
+
openGlobal(options?: CleoRuntimeOpenOptions): Promise<GlobalStore>;
|
|
474
|
+
/**
|
|
475
|
+
* Open (or reuse) a global-scope `cleo.db` at an EXPLICIT path, bypassing the
|
|
476
|
+
* `getCleoHome()` resolver.
|
|
477
|
+
*
|
|
478
|
+
* The path-aware sibling of {@link openGlobal}, mirroring
|
|
479
|
+
* {@link openProject}. Exists for domains whose lifecycle API accepts an
|
|
480
|
+
* explicit on-disk path — notably the skills registry's test-sandbox
|
|
481
|
+
* `{ path }` override — so those opens still flow through ONE registry
|
|
482
|
+
* instead of a private cache.
|
|
483
|
+
*
|
|
484
|
+
* Keyed as `global::<normalized path>`, so a sandbox file and the canonical
|
|
485
|
+
* global `cleo.db` are distinct entries that never collide.
|
|
486
|
+
*
|
|
487
|
+
* @param dbPath - Absolute or relative path to a global-scope `cleo.db`.
|
|
488
|
+
* Normalized via `path.resolve()` before keying.
|
|
489
|
+
* @param options - Optional open mode (e.g. `{ dedicated: true }`).
|
|
490
|
+
* @returns A typed {@link GlobalStore} bound to the requested path.
|
|
491
|
+
*
|
|
492
|
+
* @task T12039 (E6-L15)
|
|
493
|
+
*/
|
|
494
|
+
openGlobalAt(dbPath: string, options?: CleoRuntimeOpenOptions): Promise<GlobalStore>;
|
|
495
|
+
/**
|
|
496
|
+
* Close and evict a single project entry from the registry. The
|
|
497
|
+
* underlying dual-scope handle is closed (evicted from the chokepoint
|
|
498
|
+
* cache) and this project is removed from the registry map. Other
|
|
499
|
+
* projects and the global scope are unaffected.
|
|
500
|
+
*
|
|
501
|
+
* If the project is mid-initialization, the in-flight open is cancelled:
|
|
502
|
+
* its acquired handle is closed and its promise rejects.
|
|
503
|
+
*
|
|
504
|
+
* Idempotent — a path not in the registry is a no-op.
|
|
505
|
+
*
|
|
506
|
+
* @param dbPath - The path previously passed to {@link openProject}.
|
|
507
|
+
* Normalized internally.
|
|
508
|
+
*/
|
|
509
|
+
closeProject(dbPath: string): void;
|
|
510
|
+
/**
|
|
511
|
+
* Close and evict every entry in the registry. Disposes all project
|
|
512
|
+
* handles and the global handle if open. Cancels any in-flight opens.
|
|
513
|
+
* Safe to call multiple times.
|
|
514
|
+
*/
|
|
515
|
+
closeAll(): void;
|
|
516
|
+
/**
|
|
517
|
+
* The set of composite registry keys (`scope::normalizedDbPath`)
|
|
518
|
+
* currently tracked by this runtime. The key format matches the
|
|
519
|
+
* internal scope-qualified cache key and distinguishes a project
|
|
520
|
+
* path from a global path that happens to share the same spelling.
|
|
521
|
+
*
|
|
522
|
+
* Read-only snapshot — concurrent opens/closes may race the snapshot.
|
|
523
|
+
*/
|
|
524
|
+
readonly openPaths: ReadonlySet<string>;
|
|
525
|
+
}
|
|
526
|
+
/**
|
|
527
|
+
* Override the dual-scope opener function used by the given
|
|
528
|
+
* {@link CleoRuntime} instance. Tests inject a custom opener to return a
|
|
529
|
+
* pre-closed handle, exercising the post-await liveness and bounded-
|
|
530
|
+
* reacquisition code paths.
|
|
531
|
+
*
|
|
532
|
+
* The injected function receives the same `(scope, dbPath)` signature as
|
|
533
|
+
* {@link openDualScopeDbAtPath} and must return a
|
|
534
|
+
* {@link DualScopeDbHandle}. Only non-dedicated opens (
|
|
535
|
+
* {@link CleoRuntime.openProject} and {@link CleoRuntime.openGlobal}
|
|
536
|
+
* without `{ dedicated: true }`) are affected. Dedicated opens always
|
|
537
|
+
* call {@link openDualScopeDbAtPath} directly — a custom opener can
|
|
538
|
+
* never turn a dedicated store into a cached/shared store.
|
|
539
|
+
*
|
|
540
|
+
* Pass `undefined` to restore the default (`openDualScopeDbAtPath`).
|
|
541
|
+
*
|
|
542
|
+
* @param runtime - The runtime instance to configure.
|
|
543
|
+
* @param fn - The opener to use, or `undefined` to reset.
|
|
544
|
+
*
|
|
545
|
+
* @internal Test seam; imported directly from this module, not the barrel.
|
|
546
|
+
*/
|
|
547
|
+
export declare function setRuntimeOpenFn(runtime: CleoRuntime, fn: typeof openDualScopeDbAtPath | undefined): void;
|
|
548
|
+
/**
|
|
549
|
+
* Create a new {@link CleoRuntime} store registry.
|
|
550
|
+
*
|
|
551
|
+
* The returned runtime is the explicit composition root for project and
|
|
552
|
+
* global database entries. Use {@link CleoRuntime.openProject} to open a
|
|
553
|
+
* project's `cleo.db` at a canonical path, and {@link CleoRuntime.openGlobal}
|
|
554
|
+
* for the global scope. Closing a project via {@link CleoRuntime.closeProject}
|
|
555
|
+
* or the store's own `close()` disposes only that entry.
|
|
556
|
+
*
|
|
557
|
+
* ## Cross-runtime behavior
|
|
558
|
+
*
|
|
559
|
+
* Two separate runtime instances SHARE the **process-global dual-scope
|
|
560
|
+
* handle cache** (`_cache`). Closing a store in one runtime closes the
|
|
561
|
+
* shared `DatabaseSync` — another runtime referencing the same path
|
|
562
|
+
* will observe a closed connection. The **cache-hit liveness** check in
|
|
563
|
+
* this runtime reacquires a fresh handle on the next `openProject`/
|
|
564
|
+
* `openGlobal`. This is by design: the runtime owns **entry lifecycle**,
|
|
565
|
+
* not the underlying connection. Use a dedicated connection for isolation.
|
|
566
|
+
*
|
|
567
|
+
* @returns A fresh {@link CleoRuntime} instance with an empty registry.
|
|
568
|
+
*
|
|
569
|
+
* @example
|
|
570
|
+
* ```ts
|
|
571
|
+
* import { createCleoRuntime, resolveDualScopeDbPath } from '@cleocode/core/db';
|
|
572
|
+
*
|
|
573
|
+
* const runtime = createCleoRuntime();
|
|
574
|
+
* const projectA = await runtime.openProject(resolveDualScopeDbPath('project', '/path/to/projA'));
|
|
575
|
+
* const projectB = await runtime.openProject(resolveDualScopeDbPath('project', '/path/to/projB'));
|
|
576
|
+
* // projectA and projectB are distinct, independent handles.
|
|
577
|
+
* projectA.close(); // Only closes projectA; projectB and any global handle are intact.
|
|
578
|
+
* ```
|
|
579
|
+
*
|
|
580
|
+
* @task T12036 (E6-L12)
|
|
581
|
+
* @epic T11249 (E6)
|
|
582
|
+
* @saga T11242
|
|
583
|
+
*/
|
|
584
|
+
export declare function createCleoRuntime(): CleoRuntime;
|
|
256
585
|
import type { InferInsertModel } from 'drizzle-orm';
|
|
257
586
|
import type { SQLiteTableWithColumns, TableConfig } from 'drizzle-orm/sqlite-core';
|
|
258
587
|
/**
|
|
@@ -276,6 +605,11 @@ import type { SQLiteTableWithColumns, TableConfig } from 'drizzle-orm/sqlite-cor
|
|
|
276
605
|
* the consolidated-schema MUTATION primitives, so the guard is write-only and
|
|
277
606
|
* never affects read paths.
|
|
278
607
|
*
|
|
608
|
+
* Derives the writer-lease identity from the DB handle itself via
|
|
609
|
+
* {@link resolveDbIdentity} — the identity was registered at
|
|
610
|
+
* {@link DualScopeDbHandle} construction, so a caller cannot pair file-A
|
|
611
|
+
* identity with file-B DB (T12042).
|
|
612
|
+
*
|
|
279
613
|
* @example
|
|
280
614
|
* ```ts
|
|
281
615
|
* import { tasksTasksTable } from '@cleocode/core/store/schema/cleo-project';
|
|
@@ -284,6 +618,7 @@ import type { SQLiteTableWithColumns, TableConfig } from 'drizzle-orm/sqlite-cor
|
|
|
284
618
|
*
|
|
285
619
|
* @task T11513 (E4-T2)
|
|
286
620
|
* @task T11828 (write-side exodus-abort guard)
|
|
621
|
+
* @task T12042 (E6-L12b — exact DB-bound identity)
|
|
287
622
|
* @epic T11247 (E4)
|
|
288
623
|
* @saga T11242
|
|
289
624
|
*/
|
|
@@ -309,6 +644,9 @@ export declare function insertIdempotent<TTable extends SQLiteTableWithColumns<T
|
|
|
309
644
|
* Refuses the write (throws {@link ExodusAbortWriteUnsafeError}) when a prior
|
|
310
645
|
* exodus-on-open aborted in this process (T11828 · DHQ-059) — write-only guard.
|
|
311
646
|
*
|
|
647
|
+
* Derives the writer-lease identity from the DB handle itself via
|
|
648
|
+
* {@link resolveDbIdentity} (T12042 — exact DB-bound identity, no fallback).
|
|
649
|
+
*
|
|
312
650
|
* @example
|
|
313
651
|
* ```ts
|
|
314
652
|
* await upsertIdempotent(db, tasksTasksTable, updatedTask, 'idempotencyKey',
|
|
@@ -317,6 +655,7 @@ export declare function insertIdempotent<TTable extends SQLiteTableWithColumns<T
|
|
|
317
655
|
*
|
|
318
656
|
* @task T11513 (E4-T2)
|
|
319
657
|
* @task T11828 (write-side exodus-abort guard)
|
|
658
|
+
* @task T12042 (E6-L12b — exact DB-bound identity)
|
|
320
659
|
* @epic T11247 (E4)
|
|
321
660
|
* @saga T11242
|
|
322
661
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dual-scope-db.d.ts","sourceRoot":"","sources":["../../src/store/dual-scope-db.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAMH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAGlE,OAAO,EAAE,KAAK,iBAAiB,EAA0B,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"dual-scope-db.d.ts","sourceRoot":"","sources":["../../src/store/dual-scope-db.ts"],"names":[],"mappings":"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"}
|