@cavelang/cli 0.2.1 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/cli.d.ts +3 -1
- package/dist/src/cli.d.ts.map +1 -1
- package/dist/src/cli.js +26 -1
- package/dist/src/cli.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 +9 -9
- package/src/cli.ts +29 -1
- package/src/index.ts +1 -1
package/dist/src/cli.d.ts
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
* - `cave query '<pattern>' --db <path>` — CAVE-Q (`--json`, `--all`)
|
|
11
11
|
* - `cave export --db <path>` — canonical text out (`--current`)
|
|
12
12
|
* - `cave demo` — the cave-loop multi-hop recovery demo
|
|
13
|
+
* - `cave version` — print the cave version
|
|
13
14
|
*
|
|
14
15
|
* `file` defaults to stdin (`-`).
|
|
15
16
|
*/
|
|
@@ -18,7 +19,7 @@ export type Output = {
|
|
|
18
19
|
readonly out: string;
|
|
19
20
|
readonly err: string;
|
|
20
21
|
};
|
|
21
|
-
export declare const usage = "cave \u2014 Compressed Atomic Verb Expressions\n\nUsage:\n cave parse [file] [--json] lint CAVE text (stdin when no file)\n cave add [file...] --db <path> ingest into a store [--strict] [--no-prelude]\n cave import [file...] --db <path> restore/merge a database from CAVE text (same as add)\n cave query <pattern> --db <path> run a CAVE-Q pattern [--json] [--all] [--no-prelude]\n cave export --db <path> [--out <file>] emit canonical CAVE text [--current] [--no-prelude]\n cave mcp --db <path> serve the engine as an MCP server on stdio [--no-prelude]\n cave ingest <globs/urls...> --db <path> LLM-driven ingestion of files and web pages (cave ingest --help)\n cave demo run the cave-loop reconstruction demo\n cave help this text\n\nThe spec lives in the .claude/skills/ directory at the repository root\n(section index in README.md).";
|
|
22
|
+
export declare const usage = "cave \u2014 Compressed Atomic Verb Expressions\n\nUsage:\n cave parse [file] [--json] lint CAVE text (stdin when no file)\n cave add [file...] --db <path> ingest into a store [--strict] [--no-prelude]\n cave import [file...] --db <path> restore/merge a database from CAVE text (same as add)\n cave query <pattern> --db <path> run a CAVE-Q pattern [--json] [--all] [--no-prelude]\n cave export --db <path> [--out <file>] emit canonical CAVE text [--current] [--no-prelude]\n cave mcp --db <path> serve the engine as an MCP server on stdio [--no-prelude]\n cave ingest <globs/urls...> --db <path> LLM-driven ingestion of files and web pages (cave ingest --help)\n cave demo run the cave-loop reconstruction demo\n cave version print the cave version\n cave help this text\n\nThe spec lives in the .claude/skills/ directory at the repository root\n(section index in README.md).";
|
|
22
23
|
export declare const parseCommand: (argv: readonly string[]) => Output;
|
|
23
24
|
export declare const addCommand: (argv: readonly string[]) => Output;
|
|
24
25
|
/**
|
|
@@ -35,6 +36,7 @@ export declare const importCommand: (argv: readonly string[]) => Output;
|
|
|
35
36
|
export declare const queryCommand: (argv: readonly string[]) => Output;
|
|
36
37
|
export declare const exportCommand: (argv: readonly string[]) => Output;
|
|
37
38
|
export declare const demoCommand: () => Output;
|
|
39
|
+
export declare const versionCommand: () => Output;
|
|
38
40
|
/** Dispatches one invocation. */
|
|
39
41
|
export declare const cave: (argv: readonly string[]) => Output;
|
|
40
42
|
//# sourceMappingURL=cli.d.ts.map
|
package/dist/src/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAYH,MAAM,MAAM,MAAM,GAAG;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CACrB,CAAA;AAQD,eAAO,MAAM,KAAK,+/BAeY,CAAA;AAO9B,eAAO,MAAM,YAAY,GAAI,MAAM,SAAS,MAAM,EAAE,KAAG,MAyBtD,CAAA;AAkCD,eAAO,MAAM,UAAU,SAhCwB,SAAS,MAAM,EAAE,KAAG,MAgCrB,CAAA;AAE9C;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,SA5CqB,SAAS,MAAM,EAAE,KAAG,MA4Cf,CAAA;AAEpD,eAAO,MAAM,YAAY,GAAI,MAAM,SAAS,MAAM,EAAE,KAAG,MAyCtD,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,MAAM,SAAS,MAAM,EAAE,KAAG,MA0BvD,CAAA;AAED,eAAO,MAAM,WAAW,QAAO,MACS,CAAA;AAmBxC,eAAO,MAAM,cAAc,QAAO,MACL,CAAA;AAE7B,iCAAiC;AACjC,eAAO,MAAM,IAAI,GAAI,MAAM,SAAS,MAAM,EAAE,KAAG,MAgC9C,CAAA"}
|
package/dist/src/cli.js
CHANGED
|
@@ -10,10 +10,13 @@
|
|
|
10
10
|
* - `cave query '<pattern>' --db <path>` — CAVE-Q (`--json`, `--all`)
|
|
11
11
|
* - `cave export --db <path>` — canonical text out (`--current`)
|
|
12
12
|
* - `cave demo` — the cave-loop multi-hop recovery demo
|
|
13
|
+
* - `cave version` — print the cave version
|
|
13
14
|
*
|
|
14
15
|
* `file` defaults to stdin (`-`).
|
|
15
16
|
*/
|
|
16
|
-
import { readFileSync, writeFileSync } from 'node:fs';
|
|
17
|
+
import { existsSync, readFileSync, writeFileSync } from 'node:fs';
|
|
18
|
+
import { dirname, join } from 'node:path';
|
|
19
|
+
import { fileURLToPath } from 'node:url';
|
|
17
20
|
import { parseArgs } from 'node:util';
|
|
18
21
|
import { parseDocument } from '@cavelang/parser';
|
|
19
22
|
import { Registry, standardRegistry } from '@cavelang/canonical';
|
|
@@ -33,6 +36,7 @@ Usage:
|
|
|
33
36
|
cave mcp --db <path> serve the engine as an MCP server on stdio [--no-prelude]
|
|
34
37
|
cave ingest <globs/urls...> --db <path> LLM-driven ingestion of files and web pages (cave ingest --help)
|
|
35
38
|
cave demo run the cave-loop reconstruction demo
|
|
39
|
+
cave version print the cave version
|
|
36
40
|
cave help this text
|
|
37
41
|
|
|
38
42
|
The spec lives in the .claude/skills/ directory at the repository root
|
|
@@ -184,6 +188,23 @@ export const exportCommand = (argv) => {
|
|
|
184
188
|
}
|
|
185
189
|
};
|
|
186
190
|
export const demoCommand = () => ok(`${Demo.run().lines.join('\n')}\n`);
|
|
191
|
+
/**
|
|
192
|
+
* The CLI runs from `src/` in development and `dist/src/` when published,
|
|
193
|
+
* so find our package.json by walking up from this module — the nearest
|
|
194
|
+
* one is always the @cavelang/cli manifest.
|
|
195
|
+
*/
|
|
196
|
+
const packageVersion = () => {
|
|
197
|
+
for (let dir = dirname(fileURLToPath(import.meta.url));; dir = dirname(dir)) {
|
|
198
|
+
const candidate = join(dir, 'package.json');
|
|
199
|
+
if (existsSync(candidate)) {
|
|
200
|
+
return JSON.parse(readFileSync(candidate, 'utf8')).version;
|
|
201
|
+
}
|
|
202
|
+
if (dir === dirname(dir)) {
|
|
203
|
+
return 'unknown';
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
};
|
|
207
|
+
export const versionCommand = () => ok(`${packageVersion()}\n`);
|
|
187
208
|
/** Dispatches one invocation. */
|
|
188
209
|
export const cave = (argv) => {
|
|
189
210
|
const [command, ...rest] = argv;
|
|
@@ -202,6 +223,10 @@ export const cave = (argv) => {
|
|
|
202
223
|
return exportCommand(rest);
|
|
203
224
|
case 'demo':
|
|
204
225
|
return demoCommand();
|
|
226
|
+
case 'version':
|
|
227
|
+
case '--version':
|
|
228
|
+
case '-v':
|
|
229
|
+
return versionCommand();
|
|
205
230
|
case undefined:
|
|
206
231
|
case 'help':
|
|
207
232
|
case '--help':
|
package/dist/src/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
* `@cavelang/cli` — the `cave` command (parse / add / query / export / demo).
|
|
3
3
|
* Programmatic access to the same implementations lives here.
|
|
4
4
|
*/
|
|
5
|
-
export { addCommand, cave, demoCommand, exportCommand, importCommand, parseCommand, queryCommand, usage } from './cli.ts';
|
|
5
|
+
export { addCommand, cave, demoCommand, exportCommand, importCommand, parseCommand, queryCommand, usage, versionCommand } from './cli.ts';
|
|
6
6
|
export type { Output } from './cli.ts';
|
|
7
7
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AACzI,YAAY,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA"}
|
package/dist/src/index.js
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* `@cavelang/cli` — the `cave` command (parse / add / query / export / demo).
|
|
3
3
|
* Programmatic access to the same implementations lives here.
|
|
4
4
|
*/
|
|
5
|
-
export { addCommand, cave, demoCommand, exportCommand, importCommand, parseCommand, queryCommand, usage } from "./cli.js";
|
|
5
|
+
export { addCommand, cave, demoCommand, exportCommand, importCommand, parseCommand, queryCommand, usage, versionCommand } from "./cli.js";
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cavelang/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "cave — CLI for parsing, storing, querying and exporting CAVE knowledge.",
|
|
6
6
|
"license": "CC0-1.0",
|
|
@@ -39,14 +39,14 @@
|
|
|
39
39
|
"access": "public"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@cavelang/canonical": "0.
|
|
43
|
-
"@cavelang/
|
|
44
|
-
"@cavelang/
|
|
45
|
-
"@cavelang/mcp": "0.
|
|
46
|
-
"@cavelang/
|
|
47
|
-
"@cavelang/
|
|
48
|
-
"@cavelang/
|
|
49
|
-
"@cavelang/
|
|
42
|
+
"@cavelang/canonical": "0.3.0",
|
|
43
|
+
"@cavelang/ingest": "0.3.0",
|
|
44
|
+
"@cavelang/core": "0.3.0",
|
|
45
|
+
"@cavelang/mcp": "0.3.0",
|
|
46
|
+
"@cavelang/query": "0.3.0",
|
|
47
|
+
"@cavelang/loop": "0.3.0",
|
|
48
|
+
"@cavelang/parser": "0.3.0",
|
|
49
|
+
"@cavelang/store": "0.3.0"
|
|
50
50
|
},
|
|
51
51
|
"scripts": {
|
|
52
52
|
"build": "tsc -b",
|
package/src/cli.ts
CHANGED
|
@@ -10,11 +10,14 @@
|
|
|
10
10
|
* - `cave query '<pattern>' --db <path>` — CAVE-Q (`--json`, `--all`)
|
|
11
11
|
* - `cave export --db <path>` — canonical text out (`--current`)
|
|
12
12
|
* - `cave demo` — the cave-loop multi-hop recovery demo
|
|
13
|
+
* - `cave version` — print the cave version
|
|
13
14
|
*
|
|
14
15
|
* `file` defaults to stdin (`-`).
|
|
15
16
|
*/
|
|
16
17
|
|
|
17
|
-
import { readFileSync, writeFileSync } from 'node:fs'
|
|
18
|
+
import { existsSync, readFileSync, writeFileSync } from 'node:fs'
|
|
19
|
+
import { dirname, join } from 'node:path'
|
|
20
|
+
import { fileURLToPath } from 'node:url'
|
|
18
21
|
import { parseArgs } from 'node:util'
|
|
19
22
|
import { parseDocument } from '@cavelang/parser'
|
|
20
23
|
import { Registry, standardRegistry } from '@cavelang/canonical'
|
|
@@ -45,6 +48,7 @@ Usage:
|
|
|
45
48
|
cave mcp --db <path> serve the engine as an MCP server on stdio [--no-prelude]
|
|
46
49
|
cave ingest <globs/urls...> --db <path> LLM-driven ingestion of files and web pages (cave ingest --help)
|
|
47
50
|
cave demo run the cave-loop reconstruction demo
|
|
51
|
+
cave version print the cave version
|
|
48
52
|
cave help this text
|
|
49
53
|
|
|
50
54
|
The spec lives in the .claude/skills/ directory at the repository root
|
|
@@ -202,6 +206,26 @@ export const exportCommand = (argv: readonly string[]): Output => {
|
|
|
202
206
|
export const demoCommand = (): Output =>
|
|
203
207
|
ok(`${Demo.run().lines.join('\n')}\n`)
|
|
204
208
|
|
|
209
|
+
/**
|
|
210
|
+
* The CLI runs from `src/` in development and `dist/src/` when published,
|
|
211
|
+
* so find our package.json by walking up from this module — the nearest
|
|
212
|
+
* one is always the @cavelang/cli manifest.
|
|
213
|
+
*/
|
|
214
|
+
const packageVersion = (): string => {
|
|
215
|
+
for (let dir = dirname(fileURLToPath(import.meta.url)); ; dir = dirname(dir)) {
|
|
216
|
+
const candidate = join(dir, 'package.json')
|
|
217
|
+
if (existsSync(candidate)) {
|
|
218
|
+
return (JSON.parse(readFileSync(candidate, 'utf8')) as { version: string }).version
|
|
219
|
+
}
|
|
220
|
+
if (dir === dirname(dir)) {
|
|
221
|
+
return 'unknown'
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
export const versionCommand = (): Output =>
|
|
227
|
+
ok(`${packageVersion()}\n`)
|
|
228
|
+
|
|
205
229
|
/** Dispatches one invocation. */
|
|
206
230
|
export const cave = (argv: readonly string[]): Output => {
|
|
207
231
|
const [command, ...rest] = argv
|
|
@@ -220,6 +244,10 @@ export const cave = (argv: readonly string[]): Output => {
|
|
|
220
244
|
return exportCommand(rest)
|
|
221
245
|
case 'demo':
|
|
222
246
|
return demoCommand()
|
|
247
|
+
case 'version':
|
|
248
|
+
case '--version':
|
|
249
|
+
case '-v':
|
|
250
|
+
return versionCommand()
|
|
223
251
|
case undefined:
|
|
224
252
|
case 'help':
|
|
225
253
|
case '--help':
|
package/src/index.ts
CHANGED
|
@@ -3,5 +3,5 @@
|
|
|
3
3
|
* Programmatic access to the same implementations lives here.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
export { addCommand, cave, demoCommand, exportCommand, importCommand, parseCommand, queryCommand, usage } from './cli.ts'
|
|
6
|
+
export { addCommand, cave, demoCommand, exportCommand, importCommand, parseCommand, queryCommand, usage, versionCommand } from './cli.ts'
|
|
7
7
|
export type { Output } from './cli.ts'
|