@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.
Files changed (68) hide show
  1. package/README.md +15 -3
  2. package/dist/internal/automate/main.d.ts.map +1 -1
  3. package/dist/internal/automate/main.js +9 -2
  4. package/dist/internal/automate/main.js.map +1 -1
  5. package/dist/internal/connect/declared.d.ts +225 -0
  6. package/dist/internal/connect/declared.d.ts.map +1 -0
  7. package/dist/internal/connect/declared.js +521 -0
  8. package/dist/internal/connect/declared.js.map +1 -0
  9. package/dist/internal/connect/index.d.ts +4 -2
  10. package/dist/internal/connect/index.d.ts.map +1 -1
  11. package/dist/internal/connect/index.js +3 -1
  12. package/dist/internal/connect/index.js.map +1 -1
  13. package/dist/internal/connect/main.d.ts.map +1 -1
  14. package/dist/internal/connect/main.js +356 -10
  15. package/dist/internal/connect/main.js.map +1 -1
  16. package/dist/internal/connect/run.d.ts +47 -1
  17. package/dist/internal/connect/run.d.ts.map +1 -1
  18. package/dist/internal/connect/run.js +81 -33
  19. package/dist/internal/connect/run.js.map +1 -1
  20. package/dist/internal/connect/source.d.ts +33 -2
  21. package/dist/internal/connect/source.d.ts.map +1 -1
  22. package/dist/internal/connect/source.js +168 -8
  23. package/dist/internal/connect/source.js.map +1 -1
  24. package/dist/internal/connect/template.d.ts +18 -0
  25. package/dist/internal/connect/template.d.ts.map +1 -1
  26. package/dist/internal/connect/template.js +28 -0
  27. package/dist/internal/connect/template.js.map +1 -1
  28. package/dist/internal/ingest/main.d.ts.map +1 -1
  29. package/dist/internal/ingest/main.js +19 -2
  30. package/dist/internal/ingest/main.js.map +1 -1
  31. package/dist/internal/mcp/main.d.ts +1 -1
  32. package/dist/internal/mcp/main.d.ts.map +1 -1
  33. package/dist/internal/mcp/main.js +15 -3
  34. package/dist/internal/mcp/main.js.map +1 -1
  35. package/dist/internal/rules/rule.d.ts.map +1 -1
  36. package/dist/internal/rules/rule.js +1 -22
  37. package/dist/internal/rules/rule.js.map +1 -1
  38. package/dist/internal/sync/sync.d.ts +2 -3
  39. package/dist/internal/sync/sync.d.ts.map +1 -1
  40. package/dist/internal/sync/sync.js +3 -15
  41. package/dist/internal/sync/sync.js.map +1 -1
  42. package/dist/internal/view/main.d.ts.map +1 -1
  43. package/dist/internal/view/main.js +4 -3
  44. package/dist/internal/view/main.js.map +1 -1
  45. package/dist/src/cli.d.ts +15 -1
  46. package/dist/src/cli.d.ts.map +1 -1
  47. package/dist/src/cli.js +227 -54
  48. package/dist/src/cli.js.map +1 -1
  49. package/dist/src/commands.d.ts +2 -2
  50. package/dist/src/commands.js +2 -2
  51. package/dist/src/commands.js.map +1 -1
  52. package/dist/src/dispatch.d.ts.map +1 -1
  53. package/dist/src/dispatch.js +7 -1
  54. package/dist/src/dispatch.js.map +1 -1
  55. package/dist/src/doctor.d.ts +1 -1
  56. package/dist/src/doctor.d.ts.map +1 -1
  57. package/dist/src/doctor.js +27 -2
  58. package/dist/src/doctor.js.map +1 -1
  59. package/dist/src/index.d.ts +1 -1
  60. package/dist/src/index.d.ts.map +1 -1
  61. package/dist/src/index.js +1 -1
  62. package/dist/src/index.js.map +1 -1
  63. package/package.json +19 -19
  64. package/src/cli.ts +258 -53
  65. package/src/commands.ts +2 -2
  66. package/src/dispatch.ts +7 -1
  67. package/src/doctor.ts +29 -3
  68. package/src/index.ts +1 -1
package/README.md CHANGED
@@ -76,7 +76,19 @@ annotations), which is the language interchange contract rather than JSON.
76
76
 
77
77
  Every command answers `--help` with its options and examples (also
78
78
  `cave help <command>`). `--db` is optional everywhere: it defaults to
79
- `$CAVE_DB`, or `cave.db` in the current directory.
79
+ `$CAVE_DB`, or `cave.db` in the current directory. It names a store by
80
+ content, not by extension: a SQLite file opens as usual, and any other file
81
+ is CAVE text, replayed into an in-memory store before a read-only command
82
+ runs (`query`, `search`, `resolve`, `check`, `export`, `report`, `generate`,
83
+ `serve`, `mcp --read-only`, dry-run and `--list` modes), exactly as `cave
84
+ import` would store it. Commands that append refuse a text file and point at
85
+ `cave import --db <store.db> <file>`; a read against a missing path is an
86
+ error rather than a fresh empty database, and a read never migrates an older
87
+ store — it names the writing command that does (spec §13.7). Dry runs
88
+ (`derive --dry-run`, `act --dry-run`, `sync --dry-run`, `connect --query`)
89
+ append inside a rolled-back transaction, so they open writable but likewise
90
+ create and migrate nothing; `ingest --plan` and `--dry-run` only read, and
91
+ plan against an empty in-memory store when no store exists yet.
80
92
 
81
93
  All commands—synchronous, asynchronous, and long-running—enter through one
82
94
  promise-based dispatcher. It owns argument-exception formatting, stdout and
@@ -91,7 +103,7 @@ is reported. Unexpected errors are one-line and stack-free by default; set
91
103
  | `highlight [file…]` | | ANSI syntax colors from the tree-sitter grammar's own highlight query (see [`@cavelang/highlight`](../highlight)); `cave export` colors the same way on a terminal. |
92
104
  | `add [--db p] [file…]` | `--strict`, `--check`, `--no-prelude`, `--no-src` | Ingest. Lenient by default (problems on stderr, valid lines land); `--strict` rolls back on any problem; `--check` is the shape gate (spec §20.3) — the append rolls back if it introduces new expectation violations; `--no-prelude` starts from an empty registry instead of the standard §5.5 pairs. Claims without a `@src:` context are stamped `@src:cli` (spec §9.5); `--no-src` opts out. |
93
105
  | `import [--db p] [file…]` | `--strict`, `--no-prelude` | Restore/merge a database from CAVE text — `add` minus provenance stamping, because canonical text *is* the interchange format and replayed claims must keep their exported claim keys (spec §9.5). |
94
- | `query [--db p] <pattern…>` | `--json`, `--limit <n>`, `--cursor <t>`, `--all`, `--aliases`, `--as-of <t>`, `--at <t>`, `--resolve`, `--no-prelude` | Bounded CAVE-Q page (100 matches by default, maximum 1,000). Extra positionals join as lines, so `WHERE` filters ride as separate arguments. Bindings print as `?x = value`, followed by ` ; comment` when the matched claim carries one (a multi-line comment opens as `;` lines above the binding line, as it does above a claim), so evidence written next to a claim travels with the answer; fully bound patterns print the matched raw line, comment block included (or the pattern itself for transitive matches, which carry no row). Human output ends with `next: <token>` when another page exists; pass it to `--cursor` to continue the first page's frozen transaction snapshot. `--aliases` widens matching through the §13.6 closure; `--as-of <t>` reconstructs belief at a past date/timestamp/tx (spec §12.3); `--at <t>` selects valid-time claims and interpolates trajectories (spec §32.4); `--resolve` matches only the winners the §26 resolution policy picks among contested facts (incompatible with `--all`). `--no-prelude` aligns the read-time registry with a store written via `add --no-prelude`. |
106
+ | `query [--db p] <pattern…>` | `--json`, `--limit <n>`, `--cursor <t>`, `--all`, `--aliases`, `--as-of <t>`, `--at <t>`, `--resolve`, `--sources`, `--no-prelude` | Bounded CAVE-Q page (100 matches by default, maximum 1,000). Extra positionals join as lines, so `WHERE` filters ride as separate arguments. Bindings print as `?x = value`, followed by ` ; comment` when the matched claim carries one (a multi-line comment opens as `;` lines above the binding line, as it does above a claim), so evidence written next to a claim travels with the answer; fully bound patterns print the matched raw line, comment block included (or the pattern itself for transitive matches, which carry no row). Human output ends with `next: <token>` when another page exists; pass it to `--cursor` to continue the first page's frozen transaction snapshot. `--aliases` widens matching through the §13.6 closure; `--as-of <t>` reconstructs belief at a past date/timestamp/tx (spec §12.3); `--at <t>` selects valid-time claims and interpolates trajectories (spec §32.4); `--resolve` matches only the winners the §26 resolution policy picks among contested facts (incompatible with `--all`). `--sources` overlays the store's declared sources (spec §23.4) inside a rolled-back transaction — federation-lite, nothing persists, URLs included; the answer is whole (no `--cursor`), and a text store, which followed its local sources on open, loads only its URL sources here. `--no-prelude` aligns the read-time registry with a store written via `add --no-prelude`. |
95
107
  | `search [--db p] <terms…>` | `--raw`, `--limit <n>`, `--json`, `--no-prelude` | FTS5 full-text search over the store's index (spec §13.2): subject, verb, object, attribute name, value text, comment, and the raw line as written, so tags, contexts, and inverse spellings match too. The terms are one literal phrase by default (hyphenated names such as `token-expiry` are safe); `--raw` passes FTS5 MATCH syntax through (`AND`/`OR`/`NOT`, `NEAR`, `prefix*`, column filters such as `comment:heap`). Newest first, one raw line per match with its comment; `--limit` defaults to 100 (maximum 1,000) and a trailing `more matches beyond <n>` line reports a cap. `--json` emits a `cave.search/v1` object whose matches are `cave.claim/v1` records. Superseded and retracted rows stay searchable (spec §9.6); confirm currency with `query`. |
96
108
  | `resolve [--db p]` | `--aliases`, `--policy`, `--json`, `--no-prelude` | Contested facts under the §26 resolution policy: every fact more than one belief series speaks about, candidates ranked (precedence class, reliability-weighted confidence, tx) with the winner first — what `query --resolve` would match. `--policy` prints the effective policy instead: the built-in precedence ladder merged with in-band `source/<name> HAS precedence:` / `HAS reliability:` declarations. |
97
109
  | `derive [--db p] [rules.cave…]` | `--dry-run`, `--full`, `--aliases`, `--min-conf <p>`, `--max-passes <n>`, `--list`, `--retract <r>`, `--json`, `--no-prelude` | Declare and fire rules (spec §24, see [`@cavelang/rules`](../rules)): `premises => conclusion` forward chaining over current beliefs, `BECAUSE`/`VIA` lineage, watermark-incremental and idempotent; retracts conclusions whose premises no longer hold. |
@@ -109,7 +121,7 @@ is reported. Unexpected errors are one-line and stack-free by default; set
109
121
  | `mcp [--db p]` | `--read-only`, `--permissions <list>`, `--tools <list>`, `--hooks <file>`, `--no-prelude`, `--src <ctx>`, `--no-src` | Serve the engine as an MCP server on stdio (see [`@cavelang/mcp`](../mcp)) — static tools for version-matched help plus add/query/fuse/search/about/neighbors/reconstruct/derive/export/lint, and one generated `act_<name>` tool per current action. Permission classes separate `read`, ephemeral `evaluate`, durable `record`, and effect-capable `action`; `--read-only` keeps only read/evaluate. Permission, tool, and read-only scopes intersect. `--hooks` supplies reviewed out-of-band commands for action tools. Appends are stamped `@src:agent/<client-name>` (spec §9.5); `--src` replaces the stamp, `--no-src` disables it. |
110
122
  | `ingest [--db p] <globs/urls…>` | `--agent <template>`, `--stdout`, `--lenient`, `--plan`, `--dry-run`, `--json`, `--no-prelude` | LLM-driven ingestion of files and web pages (fetched and readability-extracted) through any headless agent (see [`@cavelang/ingest`](../ingest)): strict atomic staging by default; explicit lenient partial progress with a complete per-source manifest; isolated URL outcomes classified as retryable network/HTTP or permanent HTTP failures; batching, hybrid context, MCP or stdout agents, incremental retry digests, and `--plan` NDJSON for SDK drivers. |
111
123
  | `eval <suite…>` | `--agent <template>`, `--judge <template>`, `--runs <n>`, `--stdout`, `--min <p>`, `--json`, `--no-prelude` | Golden-fixture extraction/query evals (see [`@cavelang/eval`](../eval)): N fresh-store runs against any agent, claim-key + value scoring with §9.5 actor-stamp normalization, CAVE-Q expectations, optional LLM judge, `--min` CI gate. |
112
- | `connect <source>` | `--map <file>`, `--key <field>`, `--watch`, `--prune`, `--query <pattern>`, `--dry-run`, `--no-prelude` | Deterministic structured ingestion (spec §9.8, §23, see [`@cavelang/connect`](../connect)): CSV/TSV/JSON/JSONL/SQLite/URL records through `?field` templates, physical source identity and CSV/TSV/JSONL line spans, per-record digests, `--watch`, `--prune`, query-time overlay. |
124
+ | `connect [<source>]` | `--map <file\|inline>`, `--key <field>`, `--sql <query>`, `--watch`, `--prune`, `--query <pattern>`, `--dry-run`, `--list`, `--no-prelude` | Deterministic structured ingestion (spec §9.8, §23, see [`@cavelang/connect`](../connect)): CSV/TSV/JSON/JSONL/SQLite/URL records through `?field` templates (a file, or inline as a comma-separated list of claim lines), `--sql` reshaping any tabular source through a temporary SQLite table first, physical source identity and CSV/TSV/JSONL line spans, per-record digests, `--watch`, `--prune`, query-time overlay. Without a source, the store's declared sources run (spec §23.4): `source/<name> HAS path: …` claims with `map`, `key`, `format`, `delimiter`, `table`, `sql`, and `records` attributes mirror the options, a `.cave` path needs no map, and paths resolve against the store's directory; `--list` prints them, `--name` selects one, `--query` overlays them all, `--watch` re-runs on any of their files. A CAVE text file used as `--db` follows its declared sources on every open. |
113
125
  | `reconstruct [--db p] <seed…>` | `--query <text>`, `--agent <template>`, `--steps <n>`, `--claims <n>`, `--timeout <s>`, `--trace`, `--no-prelude` | Active memory reconstruction from seed cues (spec §18, see [`@cavelang/loop`](../loop)): best-first traversal collecting related claims as canonical CAVE text; the heuristic policy by default, an LLM select/stop policy with `--agent`. |
114
126
  | `doctor [--db p]` | `--hooks <file>`, `--json` | Read-only runtime, package-layout, configuration, and store-health diagnostics. Missing optional configuration is advisory; unsupported runtimes, broken assets, malformed configured hooks, and unreadable or corrupt stores fail. Reports identify configuration sources but never expose paths, hook content, URLs, or environment values, so both human and `cave.doctor/v1` JSON output are safe to share. |
115
127
  | `demo` | | The cave-loop multi-hop recovery demo (§18). |
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAG5C,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AA0E9D,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,cAAc,CAAA;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAA;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAA;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAC9B,CAAA;AAoFD;;;;;;;;;GASG;AACH,eAAO,MAAM,UAAU,GACrB,OAAO,KAAK,EACZ,SAAS,aAAa,EACtB,UAAU,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,KACvC,OAAO,CAAC,IAAI,GAAG,MAAM,CAQvB,CAAA;AAuCD,eAAO,MAAM,WAAW,GAAU,MAAM,SAAS,MAAM,EAAE,EAAE,UAAS,UAAe,KAAG,OAAO,CAAC,MAAM,CA8GnG,CAAA"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAG5C,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AA0E9D,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,cAAc,CAAA;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAA;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAA;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAC9B,CAAA;AAoFD;;;;;;;;;GASG;AACH,eAAO,MAAM,UAAU,GACrB,OAAO,KAAK,EACZ,SAAS,aAAa,EACtB,UAAU,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,KACvC,OAAO,CAAC,IAAI,GAAG,MAAM,CAQvB,CAAA;AAuCD,eAAO,MAAM,WAAW,GAAU,MAAM,SAAS,MAAM,EAAE,EAAE,UAAS,UAAe,KAAG,OAAO,CAAC,MAAM,CAoHnG,CAAA"}
@@ -7,7 +7,8 @@ import { readFileSync } from 'node:fs';
7
7
  import { parseArgs } from 'node:util';
8
8
  import { Registry } from '@cavelang/canonical';
9
9
  import { shellComplete } from '@cavelang/cli/loop';
10
- import { defaultDbPath, open } from '@cavelang/store';
10
+ import { defaultDbPath, openAt } from '@cavelang/store';
11
+ import { assemble } from '@cavelang/cli/connect';
11
12
  import { declareAutomations, listAutomations, retractAutomation } from "./declare.js";
12
13
  import { defaultAgentTimeoutSeconds, defaultMaxPasses, settle, settled } from "./engine.js";
13
14
  const usage = `cave automate — the event-driven loop (spec §29)
@@ -233,7 +234,13 @@ export const runAutomate = async (argv, context = {}) => {
233
234
  io.stderr.write(`cave automate: --timeout must be a positive number of seconds, got '${values.timeout}'\n`);
234
235
  return 1;
235
236
  }
236
- const store = open(values.db ?? defaultDbPath(), values['no-prelude'] === true ? { registry: Registry.empty } : {});
237
+ // The intent follows the branch order below: declaring writes before
238
+ // listing is considered.
239
+ const store = openAt(values.db ?? defaultDbPath(), {
240
+ intent: values.declare === true ? 'write' : values.list === true ? 'read' : 'write',
241
+ assemble,
242
+ ...values['no-prelude'] === true ? { registry: Registry.empty } : {}
243
+ });
237
244
  try {
238
245
  if (values.declare === true) {
239
246
  const declaration = declareAutomations(store, await readInput(positionals, io.stdin));
@@ -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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"}
@@ -0,0 +1,225 @@
1
+ /**
2
+ * Declared sources (spec §23.4) — a `cave connect` invocation persisted
3
+ * in-band as ordinary attribute claims on a `source/<name>` entity:
4
+ *
5
+ * ```cave
6
+ * source/people HAS path: people.csv
7
+ * source/people HAS map: people.map.cave
8
+ * source/people HAS key: id
9
+ * source/verbs HAS path: verbs.cave ; a .cave file needs no map
10
+ * ```
11
+ *
12
+ * The entity is the one §26.3 already uses for source policy, so
13
+ * `source/people HAS reliability: 80%` applies to what the source yields:
14
+ * declared sources stamp `@src:<name>/<key>` and keep their digests under
15
+ * `source/<name>/<key>` (`declaredNaming`), the stamp and the entity
16
+ * mirroring each other. Paths resolve against the store's directory — a
17
+ * store and its sources travel together — never the working directory.
18
+ *
19
+ * `assemble` follows every declared source of a store synchronously, which
20
+ * is what a CAVE text file used as `--db` needs (spec §13.7): the file and
21
+ * what it declares are one store. `cave connect` with no source runs the
22
+ * same declarations against a SQLite store, URLs included.
23
+ */
24
+ import type { Store } from '@cavelang/store';
25
+ import * as Source from './source.ts';
26
+ import * as Template from './template.ts';
27
+ import type { Report } from './run.ts';
28
+ /** Entity prefix of source declarations and policy (spec §26.3). */
29
+ export declare const prefix = "source/";
30
+ /** The declaration attributes, one per `cave connect` option. */
31
+ export declare const attributes: readonly ["path", "map", "key", "format", "delimiter", "table", "sql", "records"];
32
+ export type Attribute = typeof attributes[number];
33
+ export type Declared = {
34
+ /** The entity name after `source/`. */
35
+ readonly name: string;
36
+ /** File path (relative to the store's directory) or URL. */
37
+ readonly path: string;
38
+ /** Mapping template path, or an inline template (`?name IS person, …`); a `.cave` source needs none. */
39
+ readonly map?: string;
40
+ readonly key?: string;
41
+ /** `csv | tsv | json | jsonl | sqlite`, or `cave`; by extension when omitted. */
42
+ readonly format?: string;
43
+ readonly delimiter?: string;
44
+ readonly table?: string;
45
+ readonly sql?: string;
46
+ readonly records?: string;
47
+ };
48
+ export type t = Declared;
49
+ /** A source's declaration attributes as one text carries them — possibly partial, a delta over what the store knows. */
50
+ export type Delta = {
51
+ readonly name: string;
52
+ readonly fields: Partial<Record<Attribute, string>>;
53
+ };
54
+ /**
55
+ * A stored attribute value as declared: the store keeps a literal's
56
+ * delimiters (`"SELECT …"`, `` `?name IS person, …` ``), and a path, a
57
+ * query, or an inline mapping is the text inside them.
58
+ */
59
+ export declare const unwrap: (value: string) => string;
60
+ /** Every `source/<name>` attribute claim current in the store, grouped by source — complete or not. */
61
+ export declare const deltasOf: (store: Store) => Delta[];
62
+ /** A delta applied over a known declaration; a source without a `path` is not declared. */
63
+ export declare const merge: (known: undefined | Declared, delta: Delta) => undefined | Declared;
64
+ /**
65
+ * The store's declared sources: every `source/<name>` whose current belief
66
+ * carries a positive `path`, with the other declaration attributes that
67
+ * are current alongside it. Retracting the `path` (`… @ 0%`) removes the
68
+ * source; superseding it moves it.
69
+ */
70
+ export declare const declaredSources: (store: Store) => Declared[];
71
+ /**
72
+ * The sources a CAVE text declares, read without touching any store: the
73
+ * text is replayed into a scratch in-memory store. This is how an overlay
74
+ * or a dry run discovers what a followed `.cave` source declares in turn,
75
+ * before anything is appended.
76
+ */
77
+ export declare const declaredIn: (text: string) => Declared[];
78
+ /**
79
+ * Every source declaration attribute a CAVE text carries, complete or
80
+ * partial: a followed `.cave` source may change just the map or key of a
81
+ * source the store already declares, and that delta must reach whatever
82
+ * reads declarations without appending (`discover`, `--name`).
83
+ */
84
+ export declare const declarationsIn: (text: string) => Delta[];
85
+ /** Where a declared path points: URLs as they are, files against the store's directory. */
86
+ export declare const resolvePath: (path: string, dir: string) => string;
87
+ /** A mapping-free CAVE text source: the file is its own template (all prelude). */
88
+ export declare const isCave: (declared: Declared) => boolean;
89
+ /** The declaration as the equivalent `cave connect` invocation, for listings. */
90
+ export declare const describe: (declared: Declared) => string;
91
+ /** The store directory a root path implies: the file's directory, or the working directory for `:memory:`. */
92
+ export declare const directoryOf: (root: string) => string;
93
+ /** The declaration's content, for change detection between passes of one run. */
94
+ export declare const signature: (declared: Declared) => string;
95
+ /** Bookkeeping attribute recording which declaration a source was last run under. */
96
+ export declare const declarationAttribute = "connect-declaration";
97
+ /** Digest of a declaration — what a run records, and what `followed` compares. */
98
+ export declare const declarationDigest: (declared: Declared) => string;
99
+ /**
100
+ * @returns `true` when the store followed the source under exactly this
101
+ * declaration: every run records the declaration's digest on the source
102
+ * entity (`source/<name> HAS connect-declaration: …`), so a source
103
+ * re-declared since — a local file that became a URL, say — is not
104
+ * followed, whatever digests its earlier version left behind.
105
+ */
106
+ export declare const followed: (store: Store, declared: Declared) => boolean;
107
+ /** A selection and everything it owns, transitively — what a named watch must watch. */
108
+ export declare const closure: (store: Store, names: readonly string[]) => Declared[];
109
+ /** A declared source loaded and ready for a pass. */
110
+ export type Prepared = {
111
+ readonly declared: Declared;
112
+ readonly mapping: Template.Mapping;
113
+ readonly records: readonly Record<string, unknown>[];
114
+ readonly spans?: NonNullable<Source.Loaded['spans']>;
115
+ /** The path or URL the records came from, as declared — portable in `@src:` spans. */
116
+ readonly source?: string;
117
+ readonly cave: boolean;
118
+ };
119
+ /** Loads a declared source synchronously — local files only (`assemble`); a URL is refused. */
120
+ export declare const prepareSync: (declared: Declared, dir: string) => Prepared;
121
+ /** Loads a declared source, URLs included — a `.cave` URL is fetched and parsed as the template (`cave connect`). */
122
+ export declare const prepare: (declared: Declared, dir: string, fetchImpl?: Source.FetchLike) => Promise<Prepared>;
123
+ export type DiscoverOptions = {
124
+ readonly fetchImpl?: Source.FetchLike;
125
+ /** Only this declared source (and what it declares in turn). */
126
+ readonly only?: string;
127
+ /** Simulate a `--force` pass: every followed text is applied, digest or not. */
128
+ readonly force?: boolean;
129
+ /** Simulate a `--prune` pass: records that left a source retract, declarations they made included. */
130
+ readonly prune?: boolean;
131
+ /**
132
+ * Skip sources the store has already followed (they carry a digest claim)
133
+ * — what a text store's overlay needs: assembly followed every local
134
+ * source on open, so only the URL ones, and what they declare, are left.
135
+ */
136
+ readonly skipFollowed?: boolean;
137
+ };
138
+ /** Counts a source's declaration versions within one pass and refuses a cycle. */
139
+ export declare const versionCounter: () => (name: string) => void;
140
+ /**
141
+ * Loads every declared source of the store without leaving anything in
142
+ * it, URLs included, and returns the exact sequence a pass would run —
143
+ * a source re-declared along the way appears again, later. Nothing is
144
+ * simulated: the sources run through the real pass against a private
145
+ * snapshot of the store, each exactly once as it is discovered, and the
146
+ * declarations are read from that copy as they stand after each run; so
147
+ * precedence, deltas, retractions, and what an unchanged source skips
148
+ * come out exactly as in the pass, and the real database holds no lock
149
+ * while sources load. `force` replays every text (the overlay applies
150
+ * everything it loads); `prune` retracts what vanished records declared.
151
+ */
152
+ export declare const discover: (origin: Store, root: string, options?: DiscoverOptions) => Promise<Prepared[]>;
153
+ /** A discovery's run sequence with the declaration state it started from — what an overlay must still see before replaying. */
154
+ export type Discovery = {
155
+ readonly sequence: Prepared[];
156
+ readonly baseline: ReadonlyMap<string, string>;
157
+ };
158
+ /**
159
+ * The declaration state an overlay depends on: the current row of every
160
+ * `source/…` claim key — effective declarations, shadowed series, partial
161
+ * deltas, bookkeeping, and the provenance ownership follows — keyed by
162
+ * claim key. Any change a writer makes to those inputs, even one that
163
+ * leaves every effective declaration and owner the same, changes it.
164
+ */
165
+ export declare const declarationState: (store: Store) => Map<string, string>;
166
+ /** Whether two declaration snapshots agree, name by name. */
167
+ export declare const sameDeclarations: (a: ReadonlyMap<string, string>, b: ReadonlyMap<string, string>) => boolean;
168
+ /** How many times an overlay rediscovers when the declarations changed underneath it. */
169
+ export declare const overlayAttempts = 3;
170
+ export declare const staleOverlay: () => Error;
171
+ /** `discover`, also returning the declarations the snapshot started from. */
172
+ export declare const discovery: (origin: Store, root: string, options?: DiscoverOptions) => Promise<Discovery>;
173
+ /**
174
+ * Names of the sources whose current declaration claims a followed source
175
+ * owns — appended under its run — so a selection keeps a source's
176
+ * descendants even when its run changed nothing.
177
+ */
178
+ export declare const ownedDeclarations: (store: Store, owner: string) => string[];
179
+ /**
180
+ * Who owns which declarations, in one pass over the current declaration
181
+ * rows: the prelude runs as `<owner>`, a record as `<owner>/<key>`, so a
182
+ * mapping that emits declarations per record owns them through its
183
+ * records.
184
+ */
185
+ export declare const ownership: (store: Store) => Map<string, Set<string>>;
186
+ /** Declaration signatures by name. */
187
+ export declare const signatures: (declared: readonly Declared[]) => Map<string, string>;
188
+ /** Names whose declaration was added, changed, or removed between two snapshots. */
189
+ export declare const changedNames: (before: ReadonlyMap<string, string>, after: ReadonlyMap<string, string>) => string[];
190
+ export type RunOptions = {
191
+ readonly force?: boolean;
192
+ readonly prune?: boolean;
193
+ };
194
+ /** The digest of the declaration a source was last run under, if any. */
195
+ export declare const recordedDeclaration: (store: Store, name: string) => undefined | string;
196
+ /**
197
+ * One pass of a prepared declared source under `declaredNaming` (spec
198
+ * §23.4), recording the declaration it ran under. A source whose
199
+ * declaration changed since its last run — another path, key, query, or
200
+ * record selector — prunes as it runs: records the new version does not
201
+ * produce are retired, since the per-record diff never visits them. A
202
+ * source that was followed without a recorded declaration (digests, no
203
+ * marker) is treated as changed, conservatively.
204
+ */
205
+ export declare const run: (store: Store, ready: Prepared, options?: RunOptions) => Report;
206
+ export type Assembled = {
207
+ readonly declared: Declared;
208
+ readonly report: Report;
209
+ };
210
+ /**
211
+ * Follows every declared source of the store, the ones the followed
212
+ * sources declare in turn included, until none is left. `root` is the
213
+ * store's own file (or `:memory:`): paths resolve against its directory
214
+ * and the root file itself is never re-read as a source, so a file that
215
+ * declares itself, directly or through a cycle, is loaded exactly once —
216
+ * one file under several names, with different mappings say, is followed
217
+ * under each. URL sources are skipped, not errors: fetching cannot be
218
+ * synchronous, and `cave connect` follows them. Other failures are
219
+ * `LocateError`s — the store is incomplete without its sources, exactly
220
+ * as with a text file that does not parse.
221
+ */
222
+ export declare const assemble: (store: Store, root: string, options?: {
223
+ readonly force?: boolean;
224
+ }) => Assembled[];
225
+ //# sourceMappingURL=declared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"declared.d.ts","sourceRoot":"","sources":["../../src/declared.ts"],"names":[],"mappings":"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"}