@cavelang/cli 0.33.0 → 0.35.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/README.md +15 -3
- package/dist/internal/automate/main.d.ts.map +1 -1
- package/dist/internal/automate/main.js +9 -2
- package/dist/internal/automate/main.js.map +1 -1
- package/dist/internal/connect/declared.d.ts +225 -0
- package/dist/internal/connect/declared.d.ts.map +1 -0
- package/dist/internal/connect/declared.js +521 -0
- package/dist/internal/connect/declared.js.map +1 -0
- package/dist/internal/connect/index.d.ts +4 -2
- package/dist/internal/connect/index.d.ts.map +1 -1
- package/dist/internal/connect/index.js +3 -1
- package/dist/internal/connect/index.js.map +1 -1
- package/dist/internal/connect/main.d.ts.map +1 -1
- package/dist/internal/connect/main.js +356 -10
- package/dist/internal/connect/main.js.map +1 -1
- package/dist/internal/connect/run.d.ts +47 -1
- package/dist/internal/connect/run.d.ts.map +1 -1
- package/dist/internal/connect/run.js +81 -33
- package/dist/internal/connect/run.js.map +1 -1
- package/dist/internal/connect/source.d.ts +33 -2
- package/dist/internal/connect/source.d.ts.map +1 -1
- package/dist/internal/connect/source.js +168 -8
- package/dist/internal/connect/source.js.map +1 -1
- package/dist/internal/connect/template.d.ts +18 -0
- package/dist/internal/connect/template.d.ts.map +1 -1
- package/dist/internal/connect/template.js +28 -0
- package/dist/internal/connect/template.js.map +1 -1
- package/dist/internal/ingest/main.d.ts.map +1 -1
- package/dist/internal/ingest/main.js +19 -2
- package/dist/internal/ingest/main.js.map +1 -1
- package/dist/internal/mcp/main.d.ts +1 -1
- package/dist/internal/mcp/main.d.ts.map +1 -1
- package/dist/internal/mcp/main.js +15 -3
- package/dist/internal/mcp/main.js.map +1 -1
- package/dist/internal/rules/rule.d.ts.map +1 -1
- package/dist/internal/rules/rule.js +1 -22
- package/dist/internal/rules/rule.js.map +1 -1
- package/dist/internal/sync/sync.d.ts +2 -3
- package/dist/internal/sync/sync.d.ts.map +1 -1
- package/dist/internal/sync/sync.js +3 -15
- package/dist/internal/sync/sync.js.map +1 -1
- package/dist/internal/view/main.d.ts.map +1 -1
- package/dist/internal/view/main.js +4 -3
- package/dist/internal/view/main.js.map +1 -1
- package/dist/src/cli.d.ts +15 -1
- package/dist/src/cli.d.ts.map +1 -1
- package/dist/src/cli.js +227 -54
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands.d.ts +2 -2
- package/dist/src/commands.js +2 -2
- package/dist/src/commands.js.map +1 -1
- package/dist/src/dispatch.d.ts.map +1 -1
- package/dist/src/dispatch.js +7 -1
- package/dist/src/dispatch.js.map +1 -1
- package/dist/src/doctor.d.ts +1 -1
- package/dist/src/doctor.d.ts.map +1 -1
- package/dist/src/doctor.js +27 -2
- package/dist/src/doctor.js.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/index.js.map +1 -1
- package/package.json +19 -19
- package/src/cli.ts +258 -53
- package/src/commands.ts +2 -2
- package/src/dispatch.ts +7 -1
- package/src/doctor.ts +29 -3
- package/src/index.ts +1 -1
|
@@ -6,8 +6,9 @@ import { existsSync, readFileSync, watch as watchFs } from 'node:fs';
|
|
|
6
6
|
import { basename, dirname, resolve } from 'node:path';
|
|
7
7
|
import { parseArgs } from 'node:util';
|
|
8
8
|
import { Registry } from '@cavelang/canonical';
|
|
9
|
-
import { defaultDbPath, open } from '@cavelang/store';
|
|
10
|
-
import { Record as QueryRecord } from '@cavelang/query';
|
|
9
|
+
import { LocateError, defaultDbPath, kindOf, open, openAt } from '@cavelang/store';
|
|
10
|
+
import { Record as QueryRecord, query as caveQuery } from '@cavelang/query';
|
|
11
|
+
import * as Declared from "./declared.js";
|
|
11
12
|
import * as Source from "./source.js";
|
|
12
13
|
import * as Template from "./template.js";
|
|
13
14
|
import { connect, federatedQuery } from "./run.js";
|
|
@@ -15,26 +16,47 @@ const usage = `cave connect — deterministic structured ingestion through a map
|
|
|
15
16
|
|
|
16
17
|
Usage:
|
|
17
18
|
cave connect [--db <path>] <source> --map <file> [options]
|
|
19
|
+
cave connect [--db <path>] [--name <n>] [--force] [--prune] [--dry-run] [--watch]
|
|
20
|
+
cave connect [--db <path>] --list
|
|
21
|
+
cave connect [--db <path>] --query '<pattern>'
|
|
18
22
|
|
|
19
23
|
The source is a .csv/.tsv/.json/.jsonl/.ndjson file, a SQLite database
|
|
20
24
|
(with --table or --sql), or an http(s) URL serving JSON or CSV. The
|
|
21
25
|
mapping is an ordinary CAVE document whose ?field variables stand for
|
|
22
26
|
record fields; variable-free blocks append once per run, variable blocks
|
|
23
27
|
instantiate once per record — no LLM in the loop, same input, same claims.
|
|
28
|
+
A short mapping can be written inline, and --sql reshapes any tabular
|
|
29
|
+
source through SQLite before the mapping sees it.
|
|
24
30
|
Mapped claims retain the physical source; CSV/TSV and JSONL records also carry
|
|
25
31
|
their exact one-based inclusive line span (spec §9.8).
|
|
26
32
|
|
|
33
|
+
Without a source, the store's declared sources run (spec §23.4): every
|
|
34
|
+
source/<name> entity whose current claims name a path, with the other
|
|
35
|
+
options as attributes — HAS map:, key:, format:, delimiter:, table:, sql:,
|
|
36
|
+
records:. A .cave path needs no map (the file is its own template). Paths
|
|
37
|
+
resolve against the store's directory. Declared sources stamp
|
|
38
|
+
@src:<name>/<key> and keep digests under source/<name>/<key>, so the
|
|
39
|
+
source/<name> entity also carries the §26.3 policy for what it yields. A
|
|
40
|
+
CAVE text file used as --db follows its declared sources on every open.
|
|
41
|
+
|
|
27
42
|
Options:
|
|
28
43
|
--db <path> knowledge database (default: $CAVE_DB, or cave.db)
|
|
29
|
-
--map <file>
|
|
44
|
+
--map <file|inline> mapping template (required): a file, or the template
|
|
45
|
+
itself — a comma-separated list of claim lines,
|
|
46
|
+
'?name IS person, ?name WORKS-AT ?company'
|
|
30
47
|
--name <name> source name for record identity (default: file basename)
|
|
31
48
|
--key <field> record key field — keyed records diff against their
|
|
32
49
|
previous claims on change; unkeyed records are
|
|
33
50
|
content-addressed
|
|
34
51
|
--format <fmt> csv | tsv | json | jsonl | sqlite (default: by extension)
|
|
35
52
|
--delimiter <char> CSV field delimiter (default , — tab for .tsv)
|
|
36
|
-
--table <name> SQLite table to read (SELECT *)
|
|
37
|
-
|
|
53
|
+
--table <name> SQLite table to read (SELECT *); for other formats
|
|
54
|
+
the temporary table --sql runs against (records)
|
|
55
|
+
--sql <query> SQLite query (alternative to --table); for csv, tsv,
|
|
56
|
+
json and jsonl the records load into a temporary
|
|
57
|
+
in-memory table, values as parsed (CSV cells are
|
|
58
|
+
text: cast for arithmetic), and the query's rows are
|
|
59
|
+
the records
|
|
38
60
|
--records <path> dot path to the record array inside a JSON document
|
|
39
61
|
--force re-map records whose digest is unchanged
|
|
40
62
|
--prune retract claims of records that disappeared from the source
|
|
@@ -42,13 +64,20 @@ Options:
|
|
|
42
64
|
--watch keep running; re-map when the source or mapping changes
|
|
43
65
|
--query <pattern> federation-lite (spec §23.3): map, query the union,
|
|
44
66
|
roll back — nothing persists; uses an in-memory store
|
|
45
|
-
when the database file does not exist
|
|
67
|
+
when the database file does not exist; without a
|
|
68
|
+
source, overlays every declared source
|
|
69
|
+
--list print the declared sources as cave connect invocations
|
|
70
|
+
--name <name> without a source: run only this declared source
|
|
46
71
|
--json with --query: emit matches as JSON
|
|
47
72
|
--all with --query: match all beliefs, not just current ones
|
|
48
73
|
--aliases with --query: resolve entities through ALIAS claims
|
|
49
74
|
--no-prelude open the store without the standard §5.5 registry
|
|
50
75
|
|
|
51
76
|
Examples:
|
|
77
|
+
cave connect --db k.db --list
|
|
78
|
+
cave connect --db k.db
|
|
79
|
+
cave connect --db k.db --watch
|
|
80
|
+
cave query --db notes.cave '?who WORKS-AT acme' # a text store follows its sources
|
|
52
81
|
cave connect people.csv --map people.map.cave --db k.db --key id
|
|
53
82
|
cave connect crm.sqlite --table contacts --map contacts.map.cave --key email
|
|
54
83
|
cave connect https://api.example.com/deps.json --records data.items --map deps.map.cave
|
|
@@ -73,7 +102,10 @@ const renderReport = (report) => {
|
|
|
73
102
|
}
|
|
74
103
|
return lines.join('\n');
|
|
75
104
|
};
|
|
76
|
-
|
|
105
|
+
/** `--map` is a template file, or the template itself written inline (spec §23.1). */
|
|
106
|
+
const loadMapping = (spec) => Template.isInline(spec) && !existsSync(spec) ?
|
|
107
|
+
Template.parse(Template.inlineDocument(spec)) :
|
|
108
|
+
Template.parse(readFileSync(spec, 'utf8'));
|
|
77
109
|
const sourceOptions = (values, context) => ({
|
|
78
110
|
...values.format === undefined ? {} : { format: values.format },
|
|
79
111
|
...values.delimiter === undefined ? {} : { delimiter: values.delimiter },
|
|
@@ -144,7 +176,8 @@ const runQuery = async (source, values, name, io, context) => {
|
|
|
144
176
|
const loaded = await loadSource(source, values, context);
|
|
145
177
|
const db = values.db ?? defaultDbPath();
|
|
146
178
|
const registry = values['no-prelude'] === true ? { registry: Registry.empty } : {};
|
|
147
|
-
|
|
179
|
+
// Federation over a store that does not exist yet queries the source alone.
|
|
180
|
+
const store = kindOf(db) === 'missing' ? open(':memory:', registry) : openAt(db, { intent: 'scratch', assemble: Declared.assemble, ...registry });
|
|
148
181
|
try {
|
|
149
182
|
const { matches, report } = federatedQuery(store, mapping, loaded.records, {
|
|
150
183
|
name,
|
|
@@ -224,7 +257,7 @@ const runWatch = async (store, source, values, name, io, context) => {
|
|
|
224
257
|
};
|
|
225
258
|
// Watch the parent directories — editors replace files on save, and a
|
|
226
259
|
// watcher on the file itself dies with the old inode.
|
|
227
|
-
const targets = [...new Set([resolve(source), resolve(values.map)])];
|
|
260
|
+
const targets = [...new Set([resolve(source), ...Template.isInline(values.map) && !existsSync(values.map) ? [] : [resolve(values.map)]])];
|
|
228
261
|
const watch = context.watch ?? ((path, listener) => watchFs(path, listener));
|
|
229
262
|
const watchers = targets.map(target => watch(dirname(target), (_event, filename) => {
|
|
230
263
|
// Some platforms and watcher backends cannot identify the changed
|
|
@@ -249,6 +282,308 @@ const runWatch = async (store, source, values, name, io, context) => {
|
|
|
249
282
|
await active;
|
|
250
283
|
}
|
|
251
284
|
};
|
|
285
|
+
const printMatches = (store, matches, pattern, values, io) => {
|
|
286
|
+
if (values.json === true) {
|
|
287
|
+
io.stdout.write(`${JSON.stringify(matches.map(match => QueryRecord.of(store, match)), undefined, 2)}\n`);
|
|
288
|
+
return;
|
|
289
|
+
}
|
|
290
|
+
if (matches.length === 0) {
|
|
291
|
+
io.stdout.write('no matches\n');
|
|
292
|
+
return;
|
|
293
|
+
}
|
|
294
|
+
const lines = matches.map(match => {
|
|
295
|
+
const bindings = Object.entries(match.bindings)
|
|
296
|
+
.map(([variable, value]) => `?${variable} = ${value}`)
|
|
297
|
+
.join(' ');
|
|
298
|
+
return bindings !== '' ? bindings : match.row?.raw_line ?? pattern;
|
|
299
|
+
});
|
|
300
|
+
io.stdout.write(`${lines.join('\n')}\n`);
|
|
301
|
+
};
|
|
302
|
+
const registryOf = (values) => values['no-prelude'] === true ? { registry: Registry.empty } : {};
|
|
303
|
+
/** The declared sources of the store, or the one `--name` selects. */
|
|
304
|
+
const selectDeclared = (store, values) => {
|
|
305
|
+
const declared = Declared.declaredSources(store);
|
|
306
|
+
if (values.name === undefined) {
|
|
307
|
+
return declared;
|
|
308
|
+
}
|
|
309
|
+
const selected = declared.filter(source => source.name === values.name);
|
|
310
|
+
if (selected.length === 0) {
|
|
311
|
+
throw new Error(`no declared source/${values.name}` +
|
|
312
|
+
(declared.length === 0 ? ' — the store declares no sources' : ` — declared: ${declared.map(source => source.name).join(', ')}`));
|
|
313
|
+
}
|
|
314
|
+
return selected;
|
|
315
|
+
};
|
|
316
|
+
const declaredPass = async (store, root, values, io, context) => {
|
|
317
|
+
const dir = Declared.directoryOf(root);
|
|
318
|
+
let failed = 0;
|
|
319
|
+
const done = new Map();
|
|
320
|
+
// `--name` selects one declaration and what it declares in turn. The
|
|
321
|
+
// declarations are re-read after every source: a followed .cave source
|
|
322
|
+
// may declare new sources or re-declare existing ones, and the current
|
|
323
|
+
// declaration is what runs, until nothing changes — as `assemble` does.
|
|
324
|
+
// The selection starts as the named source and everything it already
|
|
325
|
+
// owns, so a parent that fails to load does not hide its descendants.
|
|
326
|
+
const allowed = values.name === undefined ? undefined :
|
|
327
|
+
new Set(Declared.closure(store, selectDeclared(store, values).map(declared => declared.name)).map(declared => declared.name));
|
|
328
|
+
const version = Declared.versionCounter();
|
|
329
|
+
for (;;) {
|
|
330
|
+
const next = Declared.declaredSources(store)
|
|
331
|
+
.find(declared => (allowed === undefined || allowed.has(declared.name)) && done.get(declared.name) !== Declared.signature(declared));
|
|
332
|
+
if (next === undefined) {
|
|
333
|
+
return failed > 0 ? 1 : 0;
|
|
334
|
+
}
|
|
335
|
+
version(next.name);
|
|
336
|
+
done.set(next.name, Declared.signature(next));
|
|
337
|
+
try {
|
|
338
|
+
const ready = await Declared.prepare(next, dir, context.fetchImpl);
|
|
339
|
+
const before = Declared.signatures(Declared.declaredSources(store));
|
|
340
|
+
const report = Declared.run(store, ready, { force: values.force === true, prune: values.prune === true });
|
|
341
|
+
if (allowed !== undefined) {
|
|
342
|
+
// The selection grows by whatever this source changed — added,
|
|
343
|
+
// re-declared, or retracted declarations alike — and by what it
|
|
344
|
+
// still owns, so an unchanged source keeps its descendants.
|
|
345
|
+
for (const name of Declared.changedNames(before, Declared.signatures(Declared.declaredSources(store))))
|
|
346
|
+
allowed.add(name);
|
|
347
|
+
for (const name of Declared.ownedDeclarations(store, next.name))
|
|
348
|
+
allowed.add(name);
|
|
349
|
+
}
|
|
350
|
+
io.stdout.write(`source/${next.name}: ${renderReport(report).replace(/^connect: /, '')}\n`);
|
|
351
|
+
if (report.failures.length > 0)
|
|
352
|
+
failed += 1;
|
|
353
|
+
}
|
|
354
|
+
catch (error) {
|
|
355
|
+
io.stderr.write(`source/${next.name} (${next.path}): ${error instanceof Error ? error.message : String(error)}\n`);
|
|
356
|
+
failed += 1;
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
};
|
|
360
|
+
const discoverOptions = (values, context, force = values.force === true) => ({
|
|
361
|
+
...values.name === undefined ? {} : { only: values.name },
|
|
362
|
+
...context.fetchImpl === undefined ? {} : { fetchImpl: context.fetchImpl },
|
|
363
|
+
force,
|
|
364
|
+
prune: values.prune === true
|
|
365
|
+
});
|
|
366
|
+
/** Previews every declared source, nested declarations included, without touching the store. */
|
|
367
|
+
const declaredDry = async (store, root, values, io, context) => {
|
|
368
|
+
const sections = [];
|
|
369
|
+
let failures = 0;
|
|
370
|
+
for (const ready of await Declared.discover(store, root, discoverOptions(values, context))) {
|
|
371
|
+
sections.push(`; === source/${ready.declared.name} (${ready.declared.path})`);
|
|
372
|
+
if (ready.mapping.prelude !== '') {
|
|
373
|
+
sections.push(`; --- prelude\n\n${ready.mapping.prelude.trimEnd()}`);
|
|
374
|
+
}
|
|
375
|
+
ready.records.forEach((record, at) => {
|
|
376
|
+
const instantiation = Template.instantiate(ready.mapping.templates, name => Template.fieldOf(record, name));
|
|
377
|
+
if (instantiation.problems.length > 0) {
|
|
378
|
+
failures += 1;
|
|
379
|
+
sections.push([`; --- record ${at + 1}`, ...instantiation.problems.map(problem => `; FAILED — ${problem}`)].join('\n'));
|
|
380
|
+
return;
|
|
381
|
+
}
|
|
382
|
+
sections.push(`; --- record ${at + 1}\n\n${instantiation.text.trimEnd()}`);
|
|
383
|
+
});
|
|
384
|
+
}
|
|
385
|
+
io.stdout.write(`${sections.join('\n\n')}\n`);
|
|
386
|
+
return failures > 0 ? 1 : 0;
|
|
387
|
+
};
|
|
388
|
+
const rollback = Symbol('cave-connect declared query rollback');
|
|
389
|
+
/**
|
|
390
|
+
* Federation-lite over every declared source (spec §23.3, §23.4): the
|
|
391
|
+
* sources load first, URLs included, then append inside one transaction
|
|
392
|
+
* that rolls back after the query.
|
|
393
|
+
*/
|
|
394
|
+
const stale = Symbol('cave-connect declared query stale');
|
|
395
|
+
const declaredQuery = async (store, root, values, io, context) => {
|
|
396
|
+
// The overlay applies every source (force), so discovery simulates that.
|
|
397
|
+
// The sequence was discovered on a snapshot; a writer may have changed
|
|
398
|
+
// the declarations since, so the replay checks and rediscovers if so.
|
|
399
|
+
for (let attempt = 0; attempt < Declared.overlayAttempts; attempt += 1) {
|
|
400
|
+
const { sequence, baseline } = await Declared.discovery(store, root, discoverOptions(values, context, true));
|
|
401
|
+
let matches;
|
|
402
|
+
let failed = 0;
|
|
403
|
+
try {
|
|
404
|
+
store.transaction(() => {
|
|
405
|
+
if (!Declared.sameDeclarations(baseline, Declared.declarationState(store))) {
|
|
406
|
+
throw stale;
|
|
407
|
+
}
|
|
408
|
+
for (const source of sequence) {
|
|
409
|
+
const report = Declared.run(store, source, { force: true, prune: values.prune === true });
|
|
410
|
+
if (report.failures.length > 0) {
|
|
411
|
+
failed += 1;
|
|
412
|
+
io.stderr.write(`source/${source.declared.name}: ${renderReport(report).replace(/^connect: /, '')}\n`);
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
matches = caveQuery(store, values.query, { all: values.all === true, aliases: values.aliases === true });
|
|
416
|
+
throw rollback;
|
|
417
|
+
});
|
|
418
|
+
}
|
|
419
|
+
catch (error) {
|
|
420
|
+
if (error === stale) {
|
|
421
|
+
continue;
|
|
422
|
+
}
|
|
423
|
+
if (error !== rollback) {
|
|
424
|
+
throw error;
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
printMatches(store, matches, values.query, values, io);
|
|
428
|
+
return failed > 0 ? 1 : 0;
|
|
429
|
+
}
|
|
430
|
+
throw Declared.staleOverlay();
|
|
431
|
+
};
|
|
432
|
+
const declaredWatch = async (store, root, values, io, context) => {
|
|
433
|
+
const dir = Declared.directoryOf(root);
|
|
434
|
+
const passOnce = async () => {
|
|
435
|
+
try {
|
|
436
|
+
await declaredPass(store, root, values, io, context);
|
|
437
|
+
}
|
|
438
|
+
catch (error) {
|
|
439
|
+
io.stderr.write(`cave connect watch pass: ${error instanceof Error ? error.message : String(error)}\n`);
|
|
440
|
+
}
|
|
441
|
+
refreshWatchers();
|
|
442
|
+
};
|
|
443
|
+
let running = false;
|
|
444
|
+
let queued = false;
|
|
445
|
+
let timer;
|
|
446
|
+
let active;
|
|
447
|
+
const fire = async () => {
|
|
448
|
+
if (running) {
|
|
449
|
+
queued = true;
|
|
450
|
+
return;
|
|
451
|
+
}
|
|
452
|
+
running = true;
|
|
453
|
+
do {
|
|
454
|
+
queued = false;
|
|
455
|
+
await passOnce();
|
|
456
|
+
} while (queued);
|
|
457
|
+
running = false;
|
|
458
|
+
};
|
|
459
|
+
const schedule = context.schedule ?? ((callback, delayMs) => setTimeout(() => { void callback(); }, delayMs));
|
|
460
|
+
const cancelScheduled = context.cancelScheduled ?? (handle => clearTimeout(handle));
|
|
461
|
+
const trigger = () => {
|
|
462
|
+
if (running) {
|
|
463
|
+
queued = true;
|
|
464
|
+
return;
|
|
465
|
+
}
|
|
466
|
+
if (timer !== undefined)
|
|
467
|
+
cancelScheduled(timer);
|
|
468
|
+
timer = schedule(async () => {
|
|
469
|
+
timer = undefined;
|
|
470
|
+
// Retained so shutdown waits for a pass in flight (a URL fetch, say)
|
|
471
|
+
// instead of closing the store under it.
|
|
472
|
+
const pass = fire();
|
|
473
|
+
active = pass;
|
|
474
|
+
await pass;
|
|
475
|
+
if (active === pass)
|
|
476
|
+
active = undefined;
|
|
477
|
+
}, 200);
|
|
478
|
+
};
|
|
479
|
+
// Every local declared file and mapping; URL sources only run on file
|
|
480
|
+
// changes. A followed .cave source may declare more, so the set is
|
|
481
|
+
// refreshed after every pass.
|
|
482
|
+
const watch = context.watch ?? ((path, listener) => watchFs(path, listener));
|
|
483
|
+
const watched = new Map();
|
|
484
|
+
const refreshWatchers = () => {
|
|
485
|
+
let declared;
|
|
486
|
+
try {
|
|
487
|
+
// A named watch watches the selection and everything it owns.
|
|
488
|
+
declared = values.name === undefined ?
|
|
489
|
+
selectDeclared(store, values) :
|
|
490
|
+
Declared.closure(store, selectDeclared(store, values).map(source => source.name));
|
|
491
|
+
}
|
|
492
|
+
catch {
|
|
493
|
+
return;
|
|
494
|
+
}
|
|
495
|
+
for (const target of new Set(declared.flatMap(source => [
|
|
496
|
+
...Source.isUrl(source.path) ? [] : [Declared.resolvePath(source.path, dir)],
|
|
497
|
+
// A map is a file when it resolves to one, as the loader decides; only
|
|
498
|
+
// otherwise is it inline and nothing to watch.
|
|
499
|
+
...source.map === undefined || (Template.isInline(source.map) && !existsSync(Declared.resolvePath(source.map, dir))) ?
|
|
500
|
+
[] : [Declared.resolvePath(source.map, dir)]
|
|
501
|
+
]))) {
|
|
502
|
+
if (watched.has(target))
|
|
503
|
+
continue;
|
|
504
|
+
watched.set(target, watch(dirname(target), (_event, filename) => {
|
|
505
|
+
if (filename === null || filename.toString() === basename(target)) {
|
|
506
|
+
trigger();
|
|
507
|
+
}
|
|
508
|
+
}));
|
|
509
|
+
}
|
|
510
|
+
};
|
|
511
|
+
refreshWatchers();
|
|
512
|
+
if (watched.size === 0) {
|
|
513
|
+
io.stderr.write('cave connect: nothing to watch — no declared local source\n');
|
|
514
|
+
return 1;
|
|
515
|
+
}
|
|
516
|
+
try {
|
|
517
|
+
await passOnce();
|
|
518
|
+
refreshWatchers();
|
|
519
|
+
io.stdout.write('watching (ctrl-c to stop)\n');
|
|
520
|
+
await waitForAbort(io.signal);
|
|
521
|
+
return 0;
|
|
522
|
+
}
|
|
523
|
+
finally {
|
|
524
|
+
if (timer !== undefined)
|
|
525
|
+
cancelScheduled(timer);
|
|
526
|
+
for (const watcher of watched.values())
|
|
527
|
+
watcher.close();
|
|
528
|
+
if (active !== undefined)
|
|
529
|
+
await active;
|
|
530
|
+
}
|
|
531
|
+
};
|
|
532
|
+
/**
|
|
533
|
+
* `cave connect` without a source (spec §23.4): the store's declared
|
|
534
|
+
* sources. `--list` prints them, `--dry-run` previews, `--query` overlays
|
|
535
|
+
* them in a rolled-back transaction, `--watch` re-runs on file changes,
|
|
536
|
+
* and the plain form runs one pass over each.
|
|
537
|
+
*/
|
|
538
|
+
const runDeclared = async (values, io, context) => {
|
|
539
|
+
const perSource = ['map', 'key', 'format', 'delimiter', 'table', 'sql', 'records']
|
|
540
|
+
.filter(option => values[option] !== undefined);
|
|
541
|
+
if (perSource.length > 0) {
|
|
542
|
+
io.stderr.write(`cave connect: ${perSource.map(option => `--${option}`).join(', ')} describe a source argument — ` +
|
|
543
|
+
'without one, declare them on the source/<name> entity (spec §23.4)\n');
|
|
544
|
+
return 1;
|
|
545
|
+
}
|
|
546
|
+
const db = values.db ?? defaultDbPath();
|
|
547
|
+
try {
|
|
548
|
+
if (values.list === true) {
|
|
549
|
+
const store = openAt(db, { intent: 'read', assemble: Declared.assemble, ...registryOf(values) });
|
|
550
|
+
try {
|
|
551
|
+
const declared = selectDeclared(store, values);
|
|
552
|
+
io.stdout.write(declared.length === 0 ? 'no declared sources\n' : `${declared.map(Declared.describe).join('\n')}\n`);
|
|
553
|
+
return 0;
|
|
554
|
+
}
|
|
555
|
+
finally {
|
|
556
|
+
store.close();
|
|
557
|
+
}
|
|
558
|
+
}
|
|
559
|
+
if (values['dry-run'] === true || values.query !== undefined) {
|
|
560
|
+
// Discovery works on a private snapshot, so the dry run only reads;
|
|
561
|
+
// the overlay appends into the store's own rolled-back transaction.
|
|
562
|
+
const store = openAt(db, { intent: values.query === undefined ? 'read' : 'scratch', assemble: Declared.assemble, ...registryOf(values) });
|
|
563
|
+
try {
|
|
564
|
+
return values.query === undefined ?
|
|
565
|
+
await declaredDry(store, db, values, io, context) :
|
|
566
|
+
await declaredQuery(store, db, values, io, context);
|
|
567
|
+
}
|
|
568
|
+
finally {
|
|
569
|
+
store.close();
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
const store = openAt(db, { intent: 'write', ...registryOf(values) });
|
|
573
|
+
try {
|
|
574
|
+
return values.watch === true ?
|
|
575
|
+
await declaredWatch(store, db, values, io, context) :
|
|
576
|
+
await declaredPass(store, db, values, io, context);
|
|
577
|
+
}
|
|
578
|
+
finally {
|
|
579
|
+
store.close();
|
|
580
|
+
}
|
|
581
|
+
}
|
|
582
|
+
catch (error) {
|
|
583
|
+
io.stderr.write(`cave connect: ${error instanceof Error ? error.message : String(error)}\n`);
|
|
584
|
+
return error instanceof LocateError ? 1 : 1;
|
|
585
|
+
}
|
|
586
|
+
};
|
|
252
587
|
export const runConnect = async (argv, context = {}) => {
|
|
253
588
|
const io = {
|
|
254
589
|
stdout: context.stdout ?? process.stdout,
|
|
@@ -276,6 +611,7 @@ export const runConnect = async (argv, context = {}) => {
|
|
|
276
611
|
all: { type: 'boolean' },
|
|
277
612
|
aliases: { type: 'boolean' },
|
|
278
613
|
'no-prelude': { type: 'boolean' },
|
|
614
|
+
list: { type: 'boolean' },
|
|
279
615
|
help: { type: 'boolean', short: 'h' }
|
|
280
616
|
},
|
|
281
617
|
allowPositionals: true
|
|
@@ -284,11 +620,18 @@ export const runConnect = async (argv, context = {}) => {
|
|
|
284
620
|
io.stdout.write(`${usage}\n`);
|
|
285
621
|
return 0;
|
|
286
622
|
}
|
|
623
|
+
if (positionals.length === 0) {
|
|
624
|
+
return runDeclared(values, io, context);
|
|
625
|
+
}
|
|
287
626
|
const [source] = positionals;
|
|
288
627
|
if (source === undefined || positionals.length !== 1) {
|
|
289
628
|
io.stderr.write(`cave connect: exactly one source is required\n\n${usage}\n`);
|
|
290
629
|
return 1;
|
|
291
630
|
}
|
|
631
|
+
if (values.list === true) {
|
|
632
|
+
io.stderr.write('cave connect: --list takes no source\n');
|
|
633
|
+
return 1;
|
|
634
|
+
}
|
|
292
635
|
if (values.map === undefined) {
|
|
293
636
|
io.stderr.write(`cave connect: --map <file> is required\n\n${usage}\n`);
|
|
294
637
|
return 1;
|
|
@@ -313,7 +656,10 @@ export const runConnect = async (argv, context = {}) => {
|
|
|
313
656
|
if (values.query !== undefined) {
|
|
314
657
|
return await runQuery(source, values, name, io, context);
|
|
315
658
|
}
|
|
316
|
-
const store =
|
|
659
|
+
const store = openAt(values.db ?? defaultDbPath(), {
|
|
660
|
+
intent: 'write',
|
|
661
|
+
...values['no-prelude'] === true ? { registry: Registry.empty } : {}
|
|
662
|
+
});
|
|
317
663
|
try {
|
|
318
664
|
if (values.watch === true) {
|
|
319
665
|
return await runWatch(store, source, values, name, io, context);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,18 +16,62 @@
|
|
|
16
16
|
* `@src:` context (both are kept).
|
|
17
17
|
*/
|
|
18
18
|
import type { LineSpan } from '@cavelang/core';
|
|
19
|
-
import type { Store } from '@cavelang/store';
|
|
19
|
+
import type { Row, Store } from '@cavelang/store';
|
|
20
20
|
import type { Match, Options as QueryOptions } from '@cavelang/query';
|
|
21
21
|
import * as Template from './template.ts';
|
|
22
22
|
export declare const digestAttribute = "connect-digest";
|
|
23
23
|
export declare const provenanceContext = "src:cave-connect";
|
|
24
24
|
/** First 12 hex chars of SHA-256, mirroring `@cavelang/cli/ingest` (spec §9.5). */
|
|
25
25
|
export declare const digestOf: (content: string) => string;
|
|
26
|
+
/**
|
|
27
|
+
* Claim key of a bookkeeping claim — `subject HAS attribute: … @src:cave-connect`.
|
|
28
|
+
* The value is excluded from keys (spec §9.2), so the key is stable while
|
|
29
|
+
* the value evolves, and the context makes it the connector's own series:
|
|
30
|
+
* an authored claim with the same attribute is another series entirely.
|
|
31
|
+
*/
|
|
32
|
+
export declare const bookkeepingKey: (subject: string, attribute: string) => string;
|
|
33
|
+
/**
|
|
34
|
+
* The current row of every claim key whose subject starts with `under`,
|
|
35
|
+
* read with one indexed range query: the range goes into the grouped
|
|
36
|
+
* subquery too, so the latest-per-key aggregation runs over those rows
|
|
37
|
+
* alone, never the whole store.
|
|
38
|
+
*/
|
|
39
|
+
export declare const currentRowsUnder: (store: Store, under: string) => Row.t[];
|
|
40
|
+
/** The current digest rows of a unit prefix — the connector's bookkeeping under `source/<name>/` or `connect/<name>/`. */
|
|
41
|
+
export declare const currentDigestsUnder: (store: Store, under: string) => Row.t[];
|
|
42
|
+
/** @returns `true` when the unit has been connected at all — a current digest claim of any value. */
|
|
43
|
+
export declare const hasDigest: (store: Store, subject: string) => boolean;
|
|
26
44
|
/** @returns `true` when the unit's current digest claim matches `digest`. */
|
|
27
45
|
export declare const isConnected: (store: Store, subject: string, digest: string) => boolean;
|
|
46
|
+
/**
|
|
47
|
+
* How a pass names its units (spec §23.2, §23.4). `unit` is the digest
|
|
48
|
+
* bookkeeping entity of the prelude (no key) or a record; `run` is the
|
|
49
|
+
* lifecycle run and `@src:` stamp of the same unit; `recordPrefix` is what
|
|
50
|
+
* `--prune` scans for. An ad-hoc `cave connect <source>` uses
|
|
51
|
+
* `connect/<name>` for both; a declared `source/<name>` keeps its digests
|
|
52
|
+
* under its own entity and stamps `@src:<name>/<key>`, so the stamp and
|
|
53
|
+
* the entity that describes the source mirror each other (§26.3).
|
|
54
|
+
*/
|
|
55
|
+
export type Naming = {
|
|
56
|
+
readonly unit: (key?: string) => string;
|
|
57
|
+
readonly run: (key?: string) => string;
|
|
58
|
+
readonly recordPrefix: string;
|
|
59
|
+
};
|
|
60
|
+
/** Naming of an ad-hoc `cave connect <source>` pass: `connect/<name>[/<key>]` throughout. */
|
|
61
|
+
export declare const adHocNaming: (name: string) => Naming;
|
|
62
|
+
/** Naming of a declared `source/<name>` (spec §23.4): digests under `source/<name>[/<key>]`, stamps `@src:<name>[/<key>]`. */
|
|
63
|
+
export declare const declaredNaming: (name: string) => Naming;
|
|
28
64
|
export type ConnectOptions = {
|
|
29
65
|
/** Source name for record identity (spec §23.2): `connect/<name>/<key>`. */
|
|
30
66
|
readonly name: string;
|
|
67
|
+
/** Unit naming; ad-hoc `connect/<name>` naming when omitted. */
|
|
68
|
+
readonly naming?: Naming;
|
|
69
|
+
/**
|
|
70
|
+
* Treat the prelude as a lifecycle unit: claims it no longer yields are
|
|
71
|
+
* retracted when it changes, as for a record. A declared `.cave` source is
|
|
72
|
+
* all prelude, and its file is data that changes (spec §23.4).
|
|
73
|
+
*/
|
|
74
|
+
readonly preludeLifecycle?: boolean;
|
|
31
75
|
/** Record key field; unkeyed records are content-addressed by digest. */
|
|
32
76
|
readonly key?: string;
|
|
33
77
|
/** Underlying file/URL identity attached to generated record claims. */
|
|
@@ -63,6 +107,8 @@ export type Report = {
|
|
|
63
107
|
/** Run-level notes (duplicate keys, prelude state). */
|
|
64
108
|
readonly notes: readonly string[];
|
|
65
109
|
};
|
|
110
|
+
/** Retracts every current claim a lifecycle run owns — a unit whose declaration changed shape is retired whole. */
|
|
111
|
+
export declare const retireRun: (store: Store, run: string) => number;
|
|
66
112
|
/**
|
|
67
113
|
* One connect pass: prelude (digest-skipped as a unit under
|
|
68
114
|
* `connect/<name>`), then each record (digest-skipped under
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/run.ts"],"names":[],"mappings":"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"}
|