@yourtechtribe-labs/koncept-cli 0.1.0-alpha.6 → 0.2.0-alpha.1
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 +14 -3
- package/dist/commands/affected.d.ts +9 -0
- package/dist/commands/affected.d.ts.map +1 -0
- package/dist/commands/affected.js +0 -0
- package/dist/commands/affected.js.map +1 -0
- package/dist/commands/verify.d.ts.map +1 -1
- package/dist/commands/verify.js +20 -1
- package/dist/commands/verify.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +29 -3
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# @yourtechtribe-labs/koncept-cli
|
|
2
2
|
|
|
3
|
-
> CLI for [koncepto](https://github.com/yourtechtribe-labs/koncept-mcp) — initialize, verify, list, and
|
|
3
|
+
> CLI for [koncepto](https://github.com/yourtechtribe-labs/koncept-mcp) — initialize, verify (with auto-link suggestions), list, link, and impact analysis (`affected`) on `.koncept/` semantic concept graphs.
|
|
4
4
|
|
|
5
|
-
**Status**: pre-alpha (`v0.
|
|
5
|
+
**Status**: pre-alpha (`v0.2.0-alpha.0`).
|
|
6
6
|
|
|
7
7
|
## Install
|
|
8
8
|
|
|
@@ -28,10 +28,11 @@ npx koncepto init
|
|
|
28
28
|
|
|
29
29
|
### `koncepto verify`
|
|
30
30
|
|
|
31
|
-
Validates every concept YAML against the schema, checks cross-references, and writes the index. Exits non-zero on any issue (parse error, duplicate id, unresolved related concept, missing participant file).
|
|
31
|
+
Validates every concept YAML against the schema, checks cross-references, and writes the index. Exits non-zero on any issue (parse error, duplicate id, unresolved related concept, missing participant file). On a clean run, also surfaces auto-link suggestions (pairs of concepts that share participants or tags but are not linked via `related_concepts`) — non-blocking; pass `--no-suggestions` to silence.
|
|
32
32
|
|
|
33
33
|
```bash
|
|
34
34
|
npx koncepto verify
|
|
35
|
+
npx koncepto verify --no-suggestions
|
|
35
36
|
```
|
|
36
37
|
|
|
37
38
|
### `koncepto list`
|
|
@@ -52,6 +53,16 @@ npx koncepto link concept-schema src/lib/foo.ts --role=reader --purpose="parses
|
|
|
52
53
|
|
|
53
54
|
Roles: `writer`, `reader`, `tester`, `docs`.
|
|
54
55
|
|
|
56
|
+
### `koncepto affected [--from <ref>] [--files=a,b,c] [--json]`
|
|
57
|
+
|
|
58
|
+
Reports which concepts and invariants are touched by a set of changed files. Defaults to `git diff --name-only HEAD`; pass `--from HEAD~3` for a wider range or `--files=path1,path2` to bypass git entirely. Output is grouped by concept, ordered by max severity. Exits `1` when any touched invariant has severity `high` (useful as a pre-commit gate), `0` otherwise, `2` on operational failure.
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
npx koncepto affected
|
|
62
|
+
npx koncepto affected --from HEAD~5 --json
|
|
63
|
+
npx koncepto affected --files=src/auth.ts,src/db.ts
|
|
64
|
+
```
|
|
65
|
+
|
|
55
66
|
## Companion package
|
|
56
67
|
|
|
57
68
|
Pair this CLI with [`@yourtechtribe-labs/koncept-mcp-server`](https://www.npmjs.com/package/@yourtechtribe-labs/koncept-mcp-server) to expose your concept graph to AI coding agents (Claude Code, Cursor, etc.) over MCP.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { CommandContext } from '../index.js';
|
|
2
|
+
export interface AffectedOptions {
|
|
3
|
+
rootDir: string;
|
|
4
|
+
from: string;
|
|
5
|
+
filesOverride: string[] | null;
|
|
6
|
+
json: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare function runAffected(ctx: CommandContext): Promise<number>;
|
|
9
|
+
//# sourceMappingURL=affected.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"affected.d.ts","sourceRoot":"","sources":["../../src/commands/affected.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IAC9B,IAAI,EAAE,OAAO,CAAA;CACd;AAED,wBAAsB,WAAW,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CA0BtE"}
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"affected.js","sourceRoot":"","sources":["../../src/commands/affected.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD,wBAAsB,SAAS,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAyCpE"}
|
package/dist/commands/verify.js
CHANGED
|
@@ -1,14 +1,19 @@
|
|
|
1
|
-
import { indexConcepts, isIndexClean, writeIndex, } from '@yourtechtribe-labs/koncept-core';
|
|
1
|
+
import { indexConcepts, isIndexClean, loadConcepts, suggestLinks, writeIndex, } from '@yourtechtribe-labs/koncept-core';
|
|
2
2
|
export async function runVerify(ctx) {
|
|
3
3
|
const result = await indexConcepts(ctx.rootDir);
|
|
4
4
|
await writeIndex(ctx.rootDir, result.entries);
|
|
5
5
|
const quiet = ctx.flags.quiet === true;
|
|
6
|
+
const wantSuggestions = ctx.flags['no-suggestions'] !== true;
|
|
6
7
|
if (!quiet) {
|
|
7
8
|
process.stdout.write(`koncepto verify: ${result.entries.length} concept(s) indexed\n`);
|
|
8
9
|
}
|
|
9
10
|
if (isIndexClean(result)) {
|
|
10
11
|
if (!quiet)
|
|
11
12
|
process.stdout.write('koncepto verify: ✓ all checks passed\n');
|
|
13
|
+
if (wantSuggestions && !quiet) {
|
|
14
|
+
const loaded = await loadConcepts(ctx.rootDir);
|
|
15
|
+
printSuggestions(suggestLinks(loaded.concepts));
|
|
16
|
+
}
|
|
12
17
|
return 0;
|
|
13
18
|
}
|
|
14
19
|
for (const e of result.errors) {
|
|
@@ -30,4 +35,18 @@ export async function runVerify(ctx) {
|
|
|
30
35
|
}
|
|
31
36
|
return 1;
|
|
32
37
|
}
|
|
38
|
+
function printSuggestions(suggestions) {
|
|
39
|
+
if (suggestions.length === 0)
|
|
40
|
+
return;
|
|
41
|
+
process.stdout.write(`\nSuggestions (${suggestions.length}, not blocking — pass --no-suggestions to silence):\n`);
|
|
42
|
+
for (const s of suggestions) {
|
|
43
|
+
process.stdout.write(` ◦ ${s.a} ↔ ${s.b}\n`);
|
|
44
|
+
if (s.shared_participants.length > 0) {
|
|
45
|
+
process.stdout.write(` shared participants: ${s.shared_participants.join(', ')}\n`);
|
|
46
|
+
}
|
|
47
|
+
if (s.shared_tags.length > 0) {
|
|
48
|
+
process.stdout.write(` shared tags: ${s.shared_tags.join(', ')}\n`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
33
52
|
//# sourceMappingURL=verify.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,YAAY,EACZ,UAAU,
|
|
1
|
+
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,UAAU,GAEX,MAAM,kCAAkC,CAAA;AAGzC,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,GAAmB;IACjD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAC/C,MAAM,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;IAE7C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,CAAA;IACtC,MAAM,eAAe,GAAG,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAA;IAC5D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,MAAM,CAAC,OAAO,CAAC,MAAM,uBAAuB,CAAC,CAAA;IACxF,CAAC;IAED,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAA;QAC1E,IAAI,eAAe,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YAC9C,gBAAgB,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA;QACjD,CAAC;QACD,OAAO,CAAC,CAAA;IACV,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAA;QAChD,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;YAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,OAAO,IAAI,CAAC,CAAA;QAChG,CAAC;IACH,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACpC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;QACtD,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK;YAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7D,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;QACzC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,0BAA0B,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,gBAAgB,KAAK,CACrE,CAAA;IACH,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACpC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,gCAAgC,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,WAAW,KAAK,CACtE,CAAA;IACH,CAAC;IAED,OAAO,CAAC,CAAA;AACV,CAAC;AAED,SAAS,gBAAgB,CAAC,WAA6B;IACrD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAM;IACpC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,kBAAkB,WAAW,CAAC,MAAM,uDAAuD,CAC5F,CAAA;IACD,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;QAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QAC7C,IAAI,CAAC,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,8BAA8B,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CACnE,CAAA;QACH,CAAC;QACD,IAAI,CAAC,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC1E,CAAC;IACH,CAAC;AACH,CAAC"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AA6BA,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAA;CACxC;AAYD,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CAuBtF"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import { realpathSync } from 'node:fs';
|
|
2
3
|
import { resolve } from 'node:path';
|
|
3
4
|
import { pathToFileURL } from 'node:url';
|
|
4
5
|
import { parseArgs } from './args.js';
|
|
@@ -6,16 +7,20 @@ import { runInit } from './commands/init.js';
|
|
|
6
7
|
import { runVerify } from './commands/verify.js';
|
|
7
8
|
import { runList } from './commands/list.js';
|
|
8
9
|
import { runLink } from './commands/link.js';
|
|
10
|
+
import { runAffected } from './commands/affected.js';
|
|
9
11
|
import { VERSION } from './version.js';
|
|
10
12
|
const HELP = `koncepto ${VERSION}
|
|
11
13
|
|
|
12
14
|
Usage:
|
|
13
15
|
koncepto init Bootstrap .koncept/ in cwd
|
|
14
16
|
koncepto verify Validate concepts and write index.json
|
|
17
|
+
[--no-suggestions] (suppress auto-link suggestions)
|
|
15
18
|
koncepto list [--type] [--tag] List concepts (with optional filters)
|
|
16
19
|
[--status]
|
|
17
20
|
koncepto link <id> <file> Add a participant to an existing concept
|
|
18
21
|
--role=<r> --purpose=<p>
|
|
22
|
+
koncepto affected [--from <ref>] Report concepts/invariants touched by a diff
|
|
23
|
+
[--files=a,b,c] [--json]
|
|
19
24
|
|
|
20
25
|
Flags:
|
|
21
26
|
--help, --version
|
|
@@ -25,6 +30,7 @@ const COMMANDS = {
|
|
|
25
30
|
verify: runVerify,
|
|
26
31
|
list: runList,
|
|
27
32
|
link: runLink,
|
|
33
|
+
affected: runAffected,
|
|
28
34
|
};
|
|
29
35
|
export async function run(argv, cwd = process.cwd()) {
|
|
30
36
|
const { command, positional, flags } = parseArgs(argv);
|
|
@@ -47,9 +53,29 @@ export async function run(argv, cwd = process.cwd()) {
|
|
|
47
53
|
}
|
|
48
54
|
return handler({ rootDir: resolve(cwd), positional, flags });
|
|
49
55
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
56
|
+
/**
|
|
57
|
+
* True when this module is the process entrypoint (i.e. run as a CLI).
|
|
58
|
+
*
|
|
59
|
+
* `import.meta.url` is realpath-resolved by Node's ESM loader, but
|
|
60
|
+
* `process.argv[1]` is NOT: package managers expose the bin as a symlink
|
|
61
|
+
* (npm `node_modules/.bin/koncepto`, pnpm's `.pnpm` store indirection).
|
|
62
|
+
* Comparing the two raw paths therefore never matches under `pnpm run` /
|
|
63
|
+
* `npx` / `node_modules/.bin`, so the CLI silently no-ops (exit 0, no
|
|
64
|
+
* output). Resolve argv[1] through realpath before comparing so symlinked
|
|
65
|
+
* bin invocations are detected correctly.
|
|
66
|
+
*/
|
|
67
|
+
function invokedAsScript() {
|
|
68
|
+
const argv1 = process.argv[1];
|
|
69
|
+
if (argv1 === undefined)
|
|
70
|
+
return false;
|
|
71
|
+
try {
|
|
72
|
+
return import.meta.url === pathToFileURL(realpathSync(argv1)).href;
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
if (invokedAsScript()) {
|
|
53
79
|
run(process.argv.slice(2))
|
|
54
80
|
.then((code) => process.exit(code))
|
|
55
81
|
.catch((err) => {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,MAAM,IAAI,GAAG,YAAY,OAAO
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yourtechtribe-labs/koncept-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0-alpha.1",
|
|
4
4
|
"description": "CLI for koncepto — init, verify, list, link operations on .koncept/ concept graphs.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"mcp",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"node": ">=18.0.0"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@yourtechtribe-labs/koncept-core": "^0.
|
|
33
|
+
"@yourtechtribe-labs/koncept-core": "^0.2.0-alpha.0",
|
|
34
34
|
"glob": "13.0.6",
|
|
35
35
|
"yaml": "2.8.4"
|
|
36
36
|
},
|