@opum-ai/lore 0.1.0 → 0.1.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 +33 -22
- package/bin/lore.cjs +35 -7
- package/package.json +17 -17
- package/src/adapters/backlog.ts +0 -1084
- package/src/adapters/git.ts +0 -221
- package/src/cli.ts +0 -667
- package/src/commands/agent.ts +0 -301
- package/src/commands/agents.ts +0 -302
- package/src/commands/args.ts +0 -209
- package/src/commands/changed.ts +0 -70
- package/src/commands/check.ts +0 -1031
- package/src/commands/codex-bridge.ts +0 -49
- package/src/commands/concurrency.ts +0 -48
- package/src/commands/context.ts +0 -292
- package/src/commands/discover.ts +0 -89
- package/src/commands/explorer.ts +0 -253
- package/src/commands/export.ts +0 -93
- package/src/commands/fswrite.ts +0 -928
- package/src/commands/graph.ts +0 -291
- package/src/commands/help.ts +0 -151
- package/src/commands/impact.ts +0 -59
- package/src/commands/init.ts +0 -583
- package/src/commands/instructions.ts +0 -91
- package/src/commands/link.ts +0 -929
- package/src/commands/new.ts +0 -476
- package/src/commands/orphans.ts +0 -457
- package/src/commands/path.ts +0 -67
- package/src/commands/provenance.ts +0 -68
- package/src/commands/query.ts +0 -312
- package/src/commands/reconcile-shared.ts +0 -280
- package/src/commands/rename.ts +0 -585
- package/src/commands/replace.ts +0 -320
- package/src/commands/scaffold.ts +0 -346
- package/src/commands/schema.ts +0 -293
- package/src/commands/snapshot.ts +0 -130
- package/src/commands/supersede.ts +0 -400
- package/src/commands/sync.ts +0 -371
- package/src/commands/tasks.ts +0 -271
- package/src/commands/traversal.ts +0 -151
- package/src/commands/validate.ts +0 -226
- package/src/config.ts +0 -598
- package/src/core/agent-bridge.ts +0 -287
- package/src/core/agent-context.ts +0 -498
- package/src/core/agent-profile.ts +0 -447
- package/src/core/bundle.ts +0 -893
- package/src/core/check.ts +0 -853
- package/src/core/codex-bridge.ts +0 -100
- package/src/core/concept.ts +0 -597
- package/src/core/consumer-scaffold.ts +0 -433
- package/src/core/context.ts +0 -271
- package/src/core/explorer-contract.ts +0 -441
- package/src/core/explorer-qualification.ts +0 -58
- package/src/core/explorer.ts +0 -518
- package/src/core/finding.ts +0 -31
- package/src/core/graph.ts +0 -201
- package/src/core/indexes.ts +0 -436
- package/src/core/instructions.ts +0 -209
- package/src/core/ladybug-driver.ts +0 -1795
- package/src/core/ladybug-lifecycle.ts +0 -1178
- package/src/core/ladybug-native.ts +0 -95
- package/src/core/ladybug-source.ts +0 -667
- package/src/core/links.ts +0 -681
- package/src/core/log.ts +0 -253
- package/src/core/managed-block.ts +0 -540
- package/src/core/manifest.ts +0 -718
- package/src/core/order.ts +0 -13
- package/src/core/profile.ts +0 -1007
- package/src/core/projection.ts +0 -195
- package/src/core/query.ts +0 -542
- package/src/core/reconcile.ts +0 -236
- package/src/core/replace.ts +0 -419
- package/src/core/retrieval.ts +0 -213
- package/src/core/rewrite.ts +0 -940
- package/src/core/scaffold.ts +0 -255
- package/src/core/schema.ts +0 -366
- package/src/core/snapshot-runtime.ts +0 -52
- package/src/core/snapshot-store.ts +0 -287
- package/src/core/snapshot.ts +0 -711
- package/src/core/template.ts +0 -429
- package/src/core/traversal.ts +0 -487
- package/src/core/validate.ts +0 -517
- package/src/core/workspace-contract.ts +0 -473
- package/src/core/workspace-projection.ts +0 -365
- package/src/core/workspace-retrieval.ts +0 -196
- package/src/core/workspace-source.ts +0 -174
- package/src/errors.ts +0 -697
- package/src/meta.ts +0 -7
- package/src/output.ts +0 -589
- package/src/scripts/upstream-backlog-watch.ts +0 -288
- package/src/state.ts +0 -390
package/README.md
CHANGED
|
@@ -19,18 +19,21 @@ semantic exit codes, machine-readable `--json`).
|
|
|
19
19
|
|
|
20
20
|
- Built on **Bun + TypeScript** with an exact-pinned **Commander** parser fed by
|
|
21
21
|
Lore's capability manifest; Lore still owns output, errors, and process lifecycle.
|
|
22
|
-
-
|
|
23
|
-
|
|
22
|
+
- Published on npm as **`@opum-ai/lore@0.1.0`** (bin `lore`) with five
|
|
23
|
+
exact-pinned platform packages.
|
|
24
|
+
- The next release matrix adds a sixth native package for **Windows ARM64**;
|
|
25
|
+
`0.1.0` itself remains the immutable five-platform release described below.
|
|
24
26
|
- The agent bridge is a generated **`.claude/skills/lore/SKILL.md`** plus a tiny
|
|
25
27
|
CLAUDE.md nudge and `lore instructions`. An **MCP server is secondary and
|
|
26
28
|
deferred to v2**.
|
|
27
29
|
|
|
28
|
-
> **Status:
|
|
29
|
-
>
|
|
30
|
-
>
|
|
31
|
-
>
|
|
32
|
-
>
|
|
33
|
-
>
|
|
30
|
+
> **Status: 0.1.0 released.** Tag `v0.1.0`, the qualified workflow artifacts,
|
|
31
|
+
> all six public `@opum-ai/lore*` npm packages, a clean registry install, and
|
|
32
|
+
> the private repository's GitHub Release agree on `0.1.0`. Trusted Publishing
|
|
33
|
+
> is configured for every package. LCLI-278 still blocks future automated
|
|
34
|
+
> `publish: true` dispatches; it does not invalidate the explicitly authorized
|
|
35
|
+
> interactive `0.1.0` bootstrap. See
|
|
36
|
+
> [Lore CLI release truth](docs/reference/lore-cli-release-truth.md).
|
|
34
37
|
|
|
35
38
|
---
|
|
36
39
|
|
|
@@ -71,44 +74,52 @@ Full details: [Backlog CLI contract](docs/reference/backlog-cli-contract.md) and
|
|
|
71
74
|
|
|
72
75
|
## Install
|
|
73
76
|
|
|
74
|
-
`@opum-ai/lore`
|
|
75
|
-
complete, use a trusted source checkout and its pinned toolchain; do not expect
|
|
76
|
-
these planned registry commands to work.
|
|
77
|
-
|
|
78
|
-
After a verified release, the intended package and bin are
|
|
79
|
-
`@opum-ai/lore` and `lore`:
|
|
77
|
+
The package and bin are `@opum-ai/lore` and `lore`:
|
|
80
78
|
|
|
81
79
|
```bash
|
|
82
80
|
# Node / npm
|
|
83
|
-
npx @opum-ai/lore --help
|
|
81
|
+
npx @opum-ai/lore@0.1.0 --help
|
|
84
82
|
|
|
85
83
|
# Bun
|
|
86
|
-
bunx @opum-ai/lore --help
|
|
84
|
+
bunx @opum-ai/lore@0.1.0 --help
|
|
85
|
+
|
|
86
|
+
# Global npm install
|
|
87
|
+
npm install -g @opum-ai/lore@0.1.0
|
|
87
88
|
```
|
|
88
89
|
|
|
90
|
+
`0.1.0` declared LadybugDB as a runtime dependency, so npm versions with
|
|
91
|
+
install-script approval may require
|
|
92
|
+
`npm install -g --allow-scripts=@ladybugdb/core @opum-ai/lore@0.1.0`. The next
|
|
93
|
+
release removes that exception: the launcher installs only the matching
|
|
94
|
+
script-free platform package, while qualified macOS/Linux executables embed
|
|
95
|
+
LadybugDB's native addon at build time. Windows continues to use the reference
|
|
96
|
+
backend and installs no LadybugDB package.
|
|
97
|
+
|
|
89
98
|
Or add it to a project:
|
|
90
99
|
|
|
91
100
|
```bash
|
|
92
|
-
bun add -d @opum-ai/lore # or: npm i -D @opum-ai/lore
|
|
101
|
+
bun add -d @opum-ai/lore@0.1.0 # or: npm i -D @opum-ai/lore@0.1.0
|
|
93
102
|
```
|
|
94
103
|
|
|
95
|
-
The
|
|
104
|
+
The npm package is a dual artifact: a Node `.cjs` launcher plus a
|
|
96
105
|
per-platform compiled binary delivered as `optionalDependencies` (built with
|
|
97
|
-
`bun build --compile`, `-baseline` x64 targets).
|
|
106
|
+
`bun build --compile`, `-baseline` x64 targets). Starting with the next release,
|
|
107
|
+
all JavaScript libraries are build-only and are not installed transitively with
|
|
108
|
+
the launcher. You also need a
|
|
98
109
|
`--json`-capable Backlog.md (>=1.49.0) on `PATH` — e.g. `npm install -g
|
|
99
110
|
backlog.md`; see the [runbook](docs/runbooks/backlog-json-patch.md).
|
|
100
111
|
|
|
101
|
-
### Private-repository CI
|
|
112
|
+
### Private-repository CI
|
|
102
113
|
|
|
103
114
|
Repositories inside the `opum-ai` organization can run strict Lore gates
|
|
104
|
-
|
|
115
|
+
from the private source repository through the immutable composite action:
|
|
105
116
|
|
|
106
117
|
```yaml
|
|
107
118
|
- uses: actions/checkout@v6
|
|
108
119
|
- uses: opum-ai/lore-cli/.github/actions/strict-check@<full-commit-sha>
|
|
109
120
|
```
|
|
110
121
|
|
|
111
|
-
The private composite action installs Bun 1.
|
|
122
|
+
The private composite action installs Bun 1.3.14 and this action revision's
|
|
112
123
|
frozen dependencies, installs the published JSON-capable `backlog.md` version
|
|
113
124
|
pinned by the Docker E2E harness, then runs `lore validate --strict` and `lore
|
|
114
125
|
check --strict` against the caller workspace. Consumer workflows must replace
|
package/bin/lore.cjs
CHANGED
|
@@ -11,11 +11,10 @@
|
|
|
11
11
|
* `os`/`cpu` fields so only the matching one lands in `node_modules`) and exec it,
|
|
12
12
|
* forwarding argv/stdio/exit code verbatim.
|
|
13
13
|
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
* standing state — see docs/runbooks/release-publishing.md.
|
|
14
|
+
* This is the active `bin` target since the `0.1.0` release. It resolves only
|
|
15
|
+
* published platform packages, so source contributors should use `bun run lore`
|
|
16
|
+
* when exercising an unpublished platform addition; see
|
|
17
|
+
* docs/runbooks/release-publishing.md.
|
|
19
18
|
*
|
|
20
19
|
* Kept deliberately tiny and dependency-free plain CommonJS (`.cjs`, so it runs as
|
|
21
20
|
* CJS regardless of the package's own `"type": "module"`) — per ADR-0001, "the
|
|
@@ -24,7 +23,7 @@
|
|
|
24
23
|
* never imports `src/`.
|
|
25
24
|
*/
|
|
26
25
|
|
|
27
|
-
const { spawnSync } = require("node:child_process");
|
|
26
|
+
const { spawn, spawnSync } = require("node:child_process");
|
|
28
27
|
const os = require("node:os");
|
|
29
28
|
const path = require("node:path");
|
|
30
29
|
|
|
@@ -77,6 +76,30 @@ function exitCodeForSignal(signal) {
|
|
|
77
76
|
return signalNumber === undefined ? 1 : 128 + signalNumber;
|
|
78
77
|
}
|
|
79
78
|
|
|
79
|
+
/**
|
|
80
|
+
* Windows Bun executables can lose output when they inherit a redirected file
|
|
81
|
+
* handle through Node. Give the executable real Node-owned pipes instead, then
|
|
82
|
+
* stream those pipes to the launcher's own stdout/stderr. This preserves live
|
|
83
|
+
* output without imposing spawnSync's maxBuffer limit.
|
|
84
|
+
*/
|
|
85
|
+
function spawnWindowsBinary(binaryPath) {
|
|
86
|
+
const child = spawn(binaryPath, process.argv.slice(2), {
|
|
87
|
+
stdio: ["inherit", "pipe", "pipe"],
|
|
88
|
+
});
|
|
89
|
+
child.stdout.pipe(process.stdout);
|
|
90
|
+
child.stderr.pipe(process.stderr);
|
|
91
|
+
|
|
92
|
+
let spawnFailed = false;
|
|
93
|
+
child.once("error", (err) => {
|
|
94
|
+
spawnFailed = true;
|
|
95
|
+
process.stderr.write(`lore: failed to run the compiled binary at ${binaryPath}: ${err.message}\n`);
|
|
96
|
+
process.exitCode = 1;
|
|
97
|
+
});
|
|
98
|
+
child.once("close", (status, signal) => {
|
|
99
|
+
if (!spawnFailed) process.exitCode = status === null ? exitCodeForSignal(signal) : status;
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
|
|
80
103
|
function main() {
|
|
81
104
|
let binaryPath;
|
|
82
105
|
try {
|
|
@@ -92,12 +115,17 @@ function main() {
|
|
|
92
115
|
`lore: no compiled binary found for this platform (${process.platform}-${process.arch}).\n` +
|
|
93
116
|
`Expected the optional dependency "${platformPackageName()}" to be installed alongside\n` +
|
|
94
117
|
`@opum-ai/lore, but it is missing. If your platform/architecture is one lore\n` +
|
|
95
|
-
`ships (macOS x64/arm64, Linux x64/arm64, Windows x64), try reinstalling with npm;\n` +
|
|
118
|
+
`ships (macOS x64/arm64, Linux x64/arm64, Windows x64/arm64), try reinstalling with npm;\n` +
|
|
96
119
|
`otherwise this platform is not yet supported.\n`,
|
|
97
120
|
);
|
|
98
121
|
process.exit(1);
|
|
99
122
|
}
|
|
100
123
|
|
|
124
|
+
if (process.platform === "win32") {
|
|
125
|
+
spawnWindowsBinary(binaryPath);
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
|
|
101
129
|
const result = spawnSync(binaryPath, process.argv.slice(2), { stdio: "inherit" });
|
|
102
130
|
if (result.error) {
|
|
103
131
|
process.stderr.write(`lore: failed to run the compiled binary at ${binaryPath}: ${result.error.message}\n`);
|
package/package.json
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opum-ai/lore",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "Thin, OKF-native documentation CLI that couples repo-resident docs to Backlog.md and serves them to agents and humans.",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
8
8
|
"type": "module",
|
|
9
|
-
"module": "src/cli.ts",
|
|
10
9
|
"bin": {
|
|
11
10
|
"lore": "bin/lore.cjs"
|
|
12
11
|
},
|
|
@@ -16,26 +15,26 @@
|
|
|
16
15
|
"type": "git",
|
|
17
16
|
"url": "git+https://github.com/opum-ai/lore-cli.git"
|
|
18
17
|
},
|
|
19
|
-
"packageManager": "bun@1.
|
|
18
|
+
"packageManager": "bun@1.3.14",
|
|
20
19
|
"engines": {
|
|
21
|
-
"bun": ">=1.
|
|
20
|
+
"bun": ">=1.3.14"
|
|
22
21
|
},
|
|
23
22
|
"files": [
|
|
24
|
-
"src",
|
|
25
23
|
"bin",
|
|
26
24
|
"README.md",
|
|
27
25
|
"LICENSE"
|
|
28
26
|
],
|
|
29
27
|
"optionalDependencies": {
|
|
30
|
-
"@opum-ai/lore-darwin-arm64": "0.1.
|
|
31
|
-
"@opum-ai/lore-darwin-x64": "0.1.
|
|
32
|
-
"@opum-ai/lore-linux-arm64": "0.1.
|
|
33
|
-
"@opum-ai/lore-linux-x64": "0.1.
|
|
34
|
-
"@opum-ai/lore-win32-
|
|
28
|
+
"@opum-ai/lore-darwin-arm64": "0.1.1",
|
|
29
|
+
"@opum-ai/lore-darwin-x64": "0.1.1",
|
|
30
|
+
"@opum-ai/lore-linux-arm64": "0.1.1",
|
|
31
|
+
"@opum-ai/lore-linux-x64": "0.1.1",
|
|
32
|
+
"@opum-ai/lore-win32-arm64": "0.1.1",
|
|
33
|
+
"@opum-ai/lore-win32-x64": "0.1.1"
|
|
35
34
|
},
|
|
36
35
|
"scripts": {
|
|
37
36
|
"lore": "bun run src/cli.ts",
|
|
38
|
-
"build": "bun build --compile src/
|
|
37
|
+
"build": "bun build --compile src/compiled.ts --outfile dist/lore",
|
|
39
38
|
"typecheck": "tsc --noEmit",
|
|
40
39
|
"format": "biome format --write .",
|
|
41
40
|
"lint": "biome check .",
|
|
@@ -45,23 +44,24 @@
|
|
|
45
44
|
"test:coverage": "bun test --coverage"
|
|
46
45
|
},
|
|
47
46
|
"devDependencies": {
|
|
47
|
+
"@ladybugdb/core": "0.19.0",
|
|
48
48
|
"@biomejs/biome": "2.4.12",
|
|
49
49
|
"@playwright/test": "1.62.1",
|
|
50
|
-
"@types/bun": "^1.
|
|
50
|
+
"@types/bun": "^1.3.14",
|
|
51
51
|
"@types/mdast": "4.0.4",
|
|
52
|
-
"typescript": "^5"
|
|
53
|
-
},
|
|
54
|
-
"dependencies": {
|
|
55
|
-
"@ladybugdb/core": "0.19.0",
|
|
56
52
|
"commander": "15.0.0",
|
|
57
53
|
"github-slugger": "2.0.0",
|
|
58
54
|
"ipaddr.js": "2.4.0",
|
|
59
55
|
"js-yaml": "5.2.2",
|
|
60
56
|
"mdast-util-from-markdown": "2.0.3",
|
|
61
57
|
"string-width": "8.2.2",
|
|
58
|
+
"typescript": "^5",
|
|
62
59
|
"zod": "4.4.3"
|
|
63
60
|
},
|
|
64
61
|
"trustedDependencies": [
|
|
65
62
|
"@ladybugdb/core"
|
|
66
|
-
]
|
|
63
|
+
],
|
|
64
|
+
"patchedDependencies": {
|
|
65
|
+
"@ladybugdb/core@0.19.0": "patches/@ladybugdb%2Fcore@0.19.0.patch"
|
|
66
|
+
}
|
|
67
67
|
}
|