holistic 0.2.0 → 0.2.3
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/CHANGELOG.md +31 -0
- package/CONTRIBUTING.md +15 -8
- package/README.md +45 -29
- package/bin/holistic.js +90 -59
- package/dist/__tests__/mcp-notification.test.js +1 -1
- package/dist/__tests__/mcp-notification.test.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +43 -21
- package/dist/cli.js.map +1 -1
- package/dist/core/cli-fallback.d.ts +12 -0
- package/dist/core/cli-fallback.d.ts.map +1 -0
- package/dist/core/cli-fallback.js +32 -0
- package/dist/core/cli-fallback.js.map +1 -0
- package/dist/core/docs.d.ts.map +1 -1
- package/dist/core/docs.js +104 -74
- package/dist/core/docs.js.map +1 -1
- package/dist/core/git.d.ts.map +1 -1
- package/dist/core/git.js +16 -1
- package/dist/core/git.js.map +1 -1
- package/dist/core/lock.d.ts.map +1 -1
- package/dist/core/lock.js +30 -0
- package/dist/core/lock.js.map +1 -1
- package/dist/core/setup.d.ts.map +1 -1
- package/dist/core/setup.js +22 -0
- package/dist/core/setup.js.map +1 -1
- package/dist/core/splash.d.ts.map +1 -1
- package/dist/core/splash.js +16 -0
- package/dist/core/splash.js.map +1 -1
- package/dist/core/state.d.ts.map +1 -1
- package/dist/core/state.js +17 -5
- package/dist/core/state.js.map +1 -1
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +5 -0
- package/dist/daemon.js.map +1 -1
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +4 -0
- package/dist/mcp-server.js.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,36 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.2.3 - 2026-03-22
|
|
4
|
+
|
|
5
|
+
Stopped teaching agents to visibly fail on missing PATH before recovering.
|
|
6
|
+
|
|
7
|
+
- Changed generated Holistic docs to recommend repo-local helper commands first in bootstrapped repos.
|
|
8
|
+
- Changed resume output to recommend repo-local commands directly instead of bare `holistic ...` commands.
|
|
9
|
+
- Tightened startup, checkpoint, and handoff guidance so agents use repo-local commands by default.
|
|
10
|
+
- Added regression coverage for the repo-local-first command recommendations.
|
|
11
|
+
|
|
12
|
+
## 0.2.2 - 2026-03-22
|
|
13
|
+
|
|
14
|
+
Improved first-run recovery when Holistic is available in the repo but missing from the current shell PATH.
|
|
15
|
+
|
|
16
|
+
- Added generated repo-local CLI fallback wrappers under `.holistic/system/` for Windows and macOS/Linux.
|
|
17
|
+
- Surfaced repo-local fallback commands in bootstrap output, resume output, and generated Holistic docs.
|
|
18
|
+
- Updated the README to document the repo-local fallback command for bootstrapped repos.
|
|
19
|
+
- Added regression coverage for the generated fallback wrappers and startup guidance.
|
|
20
|
+
|
|
21
|
+
## 0.2.1 - 2026-03-22
|
|
22
|
+
|
|
23
|
+
Hardened for real-world use after dogfooding on the project that inspired Holistic.
|
|
24
|
+
|
|
25
|
+
- Added `holistic --version` / `-v` / `version` command.
|
|
26
|
+
- Added version display in the ASCII splash banner.
|
|
27
|
+
- Fixed repo snapshot performance — now skips `node_modules` and other heavy generated directories instead of stat-ing tens of thousands of irrelevant files on every checkpoint.
|
|
28
|
+
- Fixed stale lock recovery — a crashed daemon or CLI no longer permanently blocks all state operations.
|
|
29
|
+
- Fixed corrupt session resilience — a single bad JSON file in `.holistic/sessions/` no longer crashes the entire tool.
|
|
30
|
+
- Fixed `bin/holistic.js` to respect `holistic.repo.json` runtime overrides in the post-handoff auto-commit flow.
|
|
31
|
+
- Fixed git hook refresh — hooks now self-heal from daemon startup and MCP client connections, not just CLI commands.
|
|
32
|
+
- Improved first-run experience — softened empty-state language in generated docs so agents don't editorialize about missing plans.
|
|
33
|
+
|
|
3
34
|
## 0.2.0 - 2026-03-21
|
|
4
35
|
|
|
5
36
|
First public npm-ready release of Holistic.
|
package/CONTRIBUTING.md
CHANGED
|
@@ -37,19 +37,28 @@ npm test
|
|
|
37
37
|
| `tests/run-tests.ts` | end-to-end regression harness |
|
|
38
38
|
| `.holistic-local/` | ignored local Holistic runtime for this public product repo |
|
|
39
39
|
|
|
40
|
-
##
|
|
40
|
+
## Working On This Repo
|
|
41
41
|
|
|
42
|
-
This public product repo
|
|
42
|
+
This repository is the public Holistic product repo. That makes it a special case.
|
|
43
43
|
|
|
44
|
-
Holistic
|
|
44
|
+
Normal user repos are expected to commit portable Holistic runtime files such as `.holistic/` and sync them through the hidden portable state ref. This repo should not publish a contributor's live runtime state, handoff history, or local dogfooding artifacts.
|
|
45
45
|
|
|
46
|
-
|
|
46
|
+
### Repo-specific dogfooding rules
|
|
47
|
+
|
|
48
|
+
- Keep self-dogfooding runtime local-only and untracked.
|
|
49
|
+
- Use `.holistic-local/`, `HOLISTIC.local.md`, and `AGENTS.local.md` for repo-local runtime state.
|
|
50
|
+
- Do not initialize tracked `.holistic/` runtime state in this repo.
|
|
51
|
+
- Do not use a visible `holistic/state` branch for self-dogfooding here.
|
|
52
|
+
|
|
53
|
+
### Recommended local setup
|
|
54
|
+
|
|
55
|
+
If you want Holistic active while working on Holistic itself, use this non-invasive local setup:
|
|
47
56
|
|
|
48
57
|
```bash
|
|
49
58
|
node --experimental-strip-types src/cli.ts bootstrap --install-daemon false --configure-mcp false --install-hooks false
|
|
50
59
|
```
|
|
51
60
|
|
|
52
|
-
Common local flows
|
|
61
|
+
### Common local flows
|
|
53
62
|
|
|
54
63
|
```bash
|
|
55
64
|
node --experimental-strip-types src/cli.ts resume --agent codex
|
|
@@ -57,9 +66,7 @@ node --experimental-strip-types src/cli.ts checkpoint --reason "milestone"
|
|
|
57
66
|
node --experimental-strip-types src/cli.ts handoff
|
|
58
67
|
```
|
|
59
68
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
For normal user repos, tracked `.holistic/` runtime plus the hidden portable state ref (`refs/holistic/state`) is the standard path. This product repo itself should stay public, clean, and main-only.
|
|
69
|
+
For normal user repos, tracked `.holistic/` runtime plus the hidden portable state ref (`refs/holistic/state`) remains the standard path.
|
|
63
70
|
|
|
64
71
|
## Contribution guidelines
|
|
65
72
|
|
package/README.md
CHANGED
|
@@ -12,33 +12,52 @@ Your repo remembers, so your next agent doesn't have to guess.
|
|
|
12
12
|
Shared memory for AI agents, built into your repo.
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
-
### One command. Every agent. Zero re-explaining.
|
|
15
|
+
### One command. Every agent. Zero re-explaining. ✨
|
|
16
16
|
|
|
17
17
|
Holistic gives your AI agents shared memory inside the repo itself. When you switch from Claude to Codex to Gemini, the next agent can see what happened last time, what not to break, and what should happen next.
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Get started in 30 seconds ⚡
|
|
22
|
+
|
|
23
|
+
Open your project repo in PowerShell, Terminal, Command Prompt, or whatever shell you normally use.
|
|
24
|
+
|
|
25
|
+
Requires Node.js 24+.
|
|
26
|
+
|
|
27
|
+
Run these two commands:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
npm install -g holistic
|
|
31
|
+
holistic bootstrap
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
After that, open the repo in your agent app and use this startup prompt:
|
|
20
35
|
|
|
21
|
-
|
|
36
|
+
```text
|
|
37
|
+
Before doing any other work, read AGENTS.md and HOLISTIC.md, recap the current state briefly, and ask me exactly one question: continue as planned, tweak the plan, or start something new.
|
|
38
|
+
```
|
|
22
39
|
|
|
23
|
-
|
|
40
|
+
That is enough to get the basic Holistic workflow working.
|
|
41
|
+
|
|
42
|
+
If you want the fuller install and setup details, jump to [Quick start](#quick-start-).
|
|
24
43
|
|
|
25
44
|
---
|
|
26
45
|
|
|
27
|
-
## The problem
|
|
46
|
+
## The problem 😵
|
|
28
47
|
|
|
29
48
|
If you use more than one AI coding assistant, the workflow usually falls apart:
|
|
30
49
|
|
|
31
|
-
- You re-explain the project every session.
|
|
32
|
-
- Bugs come back because the next agent does not know what was already fixed.
|
|
33
|
-
- Progress gets lost when context windows end.
|
|
34
|
-
- Agents undo each other because there is no durable handoff.
|
|
35
|
-
- It is hard to tell what is actually done.
|
|
50
|
+
- 🔁 You re-explain the project every session.
|
|
51
|
+
- 🐞 Bugs come back because the next agent does not know what was already fixed.
|
|
52
|
+
- 🧠 Progress gets lost when context windows end.
|
|
53
|
+
- 💥 Agents undo each other because there is no durable handoff.
|
|
54
|
+
- 🌫️ It is hard to tell what is actually done.
|
|
36
55
|
|
|
37
56
|
Holistic fixes that by making the repo the source of truth.
|
|
38
57
|
|
|
39
58
|
---
|
|
40
59
|
|
|
41
|
-
## What it feels like now
|
|
60
|
+
## What it feels like now 🌿
|
|
42
61
|
|
|
43
62
|
Run one setup command on a machine:
|
|
44
63
|
|
|
@@ -59,7 +78,7 @@ Most days, you do not need to run `npm start`, keep a terminal process open, or
|
|
|
59
78
|
|
|
60
79
|
---
|
|
61
80
|
|
|
62
|
-
## How it works
|
|
81
|
+
## How it works 🧭
|
|
63
82
|
|
|
64
83
|
```text
|
|
65
84
|
holistic bootstrap
|
|
@@ -79,9 +98,9 @@ The next agent picks up without a long re-explanation
|
|
|
79
98
|
|
|
80
99
|
---
|
|
81
100
|
|
|
82
|
-
## Quick start
|
|
101
|
+
## Quick start 🚀
|
|
83
102
|
|
|
84
|
-
### Install
|
|
103
|
+
### Install 📦
|
|
85
104
|
|
|
86
105
|
Requires Node.js 24+.
|
|
87
106
|
|
|
@@ -113,7 +132,7 @@ npm install
|
|
|
113
132
|
npm link
|
|
114
133
|
```
|
|
115
134
|
|
|
116
|
-
### Set up a repo
|
|
135
|
+
### Set up a repo 🛠️
|
|
117
136
|
|
|
118
137
|
```bash
|
|
119
138
|
cd my-project
|
|
@@ -147,21 +166,13 @@ holistic bootstrap --install-daemon false --configure-mcp false
|
|
|
147
166
|
- `.holistic/sessions/` - session history files
|
|
148
167
|
|
|
149
168
|
**What NOT to commit:**
|
|
150
|
-
- `.holistic/system
|
|
169
|
+
- `.holistic/system/` - machine-local helper scripts and wrappers with absolute paths (already in `.gitignore`)
|
|
151
170
|
|
|
152
171
|
The portable repo memory is meant to be committed and synced. Machine-local helper scripts are generated for each machine and stay local.
|
|
153
172
|
|
|
154
|
-
After that, open the repo in your agent app and use a startup prompt like:
|
|
155
|
-
|
|
156
|
-
```text
|
|
157
|
-
Before doing any other work, read AGENTS.md and HOLISTIC.md, recap the current state briefly, and ask me exactly one question: continue as planned, tweak the plan, or start something new.
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
That is enough for normal repo-first continuity.
|
|
161
|
-
|
|
162
173
|
---
|
|
163
174
|
|
|
164
|
-
## Daily workflow
|
|
175
|
+
## Daily workflow 🔄
|
|
165
176
|
|
|
166
177
|
One-time machine setup:
|
|
167
178
|
|
|
@@ -184,9 +195,14 @@ holistic checkpoint --reason "..."
|
|
|
184
195
|
holistic handoff
|
|
185
196
|
```
|
|
186
197
|
|
|
198
|
+
If `holistic` is not on `PATH` in a given shell, every bootstrapped repo also has a repo-local fallback:
|
|
199
|
+
|
|
200
|
+
- Windows: `.\.holistic\system\holistic.cmd <command>`
|
|
201
|
+
- macOS/Linux: `./.holistic/system/holistic <command>`
|
|
202
|
+
|
|
187
203
|
---
|
|
188
204
|
|
|
189
|
-
## Regression protection
|
|
205
|
+
## Regression protection 🛡️
|
|
190
206
|
|
|
191
207
|
When an agent fixes something delicate, lock it in:
|
|
192
208
|
|
|
@@ -201,7 +217,7 @@ Future agents will see that warning in the repo docs before they touch the risky
|
|
|
201
217
|
|
|
202
218
|
---
|
|
203
219
|
|
|
204
|
-
## Works with multiple agent apps
|
|
220
|
+
## Works with multiple agent apps 🤝
|
|
205
221
|
|
|
206
222
|
Holistic is model-agnostic. It works through repo files first, and can also expose a thin MCP server where supported.
|
|
207
223
|
|
|
@@ -215,7 +231,7 @@ Holistic is model-agnostic. It works through repo files first, and can also expo
|
|
|
215
231
|
|
|
216
232
|
---
|
|
217
233
|
|
|
218
|
-
## What lives in your repo
|
|
234
|
+
## What lives in your repo 🗂️
|
|
219
235
|
|
|
220
236
|
```text
|
|
221
237
|
my-project/
|
|
@@ -234,7 +250,7 @@ my-project/
|
|
|
234
250
|
`- adapters/
|
|
235
251
|
```
|
|
236
252
|
|
|
237
|
-
The portable repo memory (config, state, context, sessions) is meant to be committed and synced. Machine-local helper scripts under `.holistic/system/` are generated for each machine and stay local (already in `.gitignore`).
|
|
253
|
+
The portable repo memory (config, state, context, sessions) is meant to be committed and synced. Machine-local helper scripts and repo-local CLI fallbacks under `.holistic/system/` are generated for each machine and stay local (already in `.gitignore`).
|
|
238
254
|
|
|
239
255
|
---
|
|
240
256
|
|
package/bin/holistic.js
CHANGED
|
@@ -1,59 +1,90 @@
|
|
|
1
|
-
|
|
2
|
-
import { spawnSync } from "node:child_process";
|
|
3
|
-
import { fileURLToPath } from "node:url";
|
|
4
|
-
import fs from "node:fs";
|
|
5
|
-
import path from "node:path";
|
|
6
|
-
|
|
7
|
-
const currentFile = fileURLToPath(import.meta.url);
|
|
8
|
-
const repoRoot = path.resolve(path.dirname(currentFile), "..");
|
|
9
|
-
const cliPath = path.resolve(repoRoot, "dist/cli.js");
|
|
10
|
-
const args = process.argv.slice(2);
|
|
11
|
-
const result = spawnSync(process.execPath, [cliPath, ...args], {
|
|
12
|
-
stdio: "inherit",
|
|
13
|
-
cwd: process.cwd(),
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
if (result.status !== 0) {
|
|
17
|
-
process.exit(result.status ?? 1);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { spawnSync } from "node:child_process";
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
4
|
+
import fs from "node:fs";
|
|
5
|
+
import path from "node:path";
|
|
6
|
+
|
|
7
|
+
const currentFile = fileURLToPath(import.meta.url);
|
|
8
|
+
const repoRoot = path.resolve(path.dirname(currentFile), "..");
|
|
9
|
+
const cliPath = path.resolve(repoRoot, "dist/cli.js");
|
|
10
|
+
const args = process.argv.slice(2);
|
|
11
|
+
const result = spawnSync(process.execPath, [cliPath, ...args], {
|
|
12
|
+
stdio: "inherit",
|
|
13
|
+
cwd: process.cwd(),
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
if (result.status !== 0) {
|
|
17
|
+
process.exit(result.status ?? 1);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Resolve the Holistic directory and tracked file names for the current repo.
|
|
22
|
+
* Reads holistic.repo.json if present, otherwise falls back to defaults.
|
|
23
|
+
*/
|
|
24
|
+
function resolveRepoPaths(rootDir) {
|
|
25
|
+
const defaults = {
|
|
26
|
+
holisticDir: ".holistic",
|
|
27
|
+
masterDoc: "HOLISTIC.md",
|
|
28
|
+
agentsDoc: "AGENTS.md",
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
const configPath = path.join(rootDir, "holistic.repo.json");
|
|
32
|
+
if (fs.existsSync(configPath)) {
|
|
33
|
+
try {
|
|
34
|
+
const config = JSON.parse(fs.readFileSync(configPath, "utf8"));
|
|
35
|
+
const runtime = config.runtime ?? {};
|
|
36
|
+
return {
|
|
37
|
+
holisticDir: runtime.holisticDir ?? defaults.holisticDir,
|
|
38
|
+
masterDoc: runtime.masterDoc ?? defaults.masterDoc,
|
|
39
|
+
agentsDoc: runtime.agentsDoc ?? defaults.agentsDoc,
|
|
40
|
+
};
|
|
41
|
+
} catch {
|
|
42
|
+
// Fall through to defaults on corrupt config.
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
return defaults;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
if (args[0] === "handoff") {
|
|
50
|
+
const rootDir = process.cwd();
|
|
51
|
+
const repoPaths = resolveRepoPaths(rootDir);
|
|
52
|
+
const pendingCommitPath = path.join(rootDir, repoPaths.holisticDir, "context", "pending-commit.txt");
|
|
53
|
+
if (fs.existsSync(pendingCommitPath)) {
|
|
54
|
+
const message = fs.readFileSync(pendingCommitPath, "utf8").split(/\r?\n/)[0]?.trim();
|
|
55
|
+
if (message) {
|
|
56
|
+
const addResult = spawnSync("git", ["add", "--", repoPaths.masterDoc, repoPaths.agentsDoc, repoPaths.holisticDir], {
|
|
57
|
+
stdio: "inherit",
|
|
58
|
+
cwd: rootDir,
|
|
59
|
+
});
|
|
60
|
+
if ((addResult.status ?? 1) === 0) {
|
|
61
|
+
const commitResult = spawnSync("git", ["commit", "-m", message], {
|
|
62
|
+
stdio: "inherit",
|
|
63
|
+
cwd: rootDir,
|
|
64
|
+
});
|
|
65
|
+
if ((commitResult.status ?? 1) === 0) {
|
|
66
|
+
const syncScript = path.join(rootDir, repoPaths.holisticDir, "system", process.platform === "win32" ? "sync-state.ps1" : "sync-state.sh");
|
|
67
|
+
if (fs.existsSync(syncScript)) {
|
|
68
|
+
if (process.platform === "win32") {
|
|
69
|
+
spawnSync("powershell", ["-NoProfile", "-ExecutionPolicy", "Bypass", "-File", syncScript], {
|
|
70
|
+
stdio: "inherit",
|
|
71
|
+
cwd: rootDir,
|
|
72
|
+
});
|
|
73
|
+
} else {
|
|
74
|
+
spawnSync("/bin/sh", [syncScript], {
|
|
75
|
+
stdio: "inherit",
|
|
76
|
+
cwd: rootDir,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
spawnSync(process.execPath, [cliPath, "internal-mark-commit", "--message", message], {
|
|
81
|
+
stdio: "inherit",
|
|
82
|
+
cwd: rootDir,
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
process.exit(0);
|
|
@@ -248,7 +248,7 @@ export const tests = [
|
|
|
248
248
|
});
|
|
249
249
|
const greeting = buildStartupGreeting(state, "claude");
|
|
250
250
|
assert.ok(greeting);
|
|
251
|
-
assert.match(greeting, /Recommended command: holistic resume --continue
|
|
251
|
+
assert.match(greeting, /Recommended command: Windows `?\.\\\.holistic\\system\\holistic\.cmd resume --continue`?; macOS\/Linux `?\.\/\.holistic\/system\/holistic resume --continue`?/);
|
|
252
252
|
},
|
|
253
253
|
},
|
|
254
254
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-notification.test.js","sourceRoot":"","sources":["../../src/__tests__/mcp-notification.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"mcp-notification.test.js","sourceRoot":"","sources":["../../src/__tests__/mcp-notification.test.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAA4C,YAAY,EAAE,aAAa,EAAgB,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AA+FvJ,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD;AAyED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,YAAY,GAAG,YAAY,CAcnG;AAMD,wBAAgB,UAAU,CAAC,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,GAAG,MAAM,CAoE1G;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CA4DzD"}
|
package/dist/cli.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
1
2
|
import path from "node:path";
|
|
2
3
|
import { createInterface } from "node:readline/promises";
|
|
3
4
|
import { stdin as input, stdout as output } from "node:process";
|
|
4
5
|
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
6
|
+
import { renderRepoLocalCliCommands } from './core/cli-fallback.js';
|
|
5
7
|
import { captureRepoSnapshot, clearPendingCommit, writePendingCommit } from './core/git.js';
|
|
6
8
|
import { writeDerivedDocs } from './core/docs.js';
|
|
7
9
|
import { bootstrapHolistic, initializeHolistic, refreshHolisticHooks } from './core/setup.js';
|
|
@@ -54,8 +56,19 @@ function asAgent(value) {
|
|
|
54
56
|
function printJson(payload) {
|
|
55
57
|
process.stdout.write(JSON.stringify(payload, null, 2) + "\n");
|
|
56
58
|
}
|
|
59
|
+
function getVersion() {
|
|
60
|
+
const currentFile = fileURLToPath(import.meta.url);
|
|
61
|
+
const packagePath = path.resolve(path.dirname(currentFile), "..", "package.json");
|
|
62
|
+
try {
|
|
63
|
+
const pkg = JSON.parse(fs.readFileSync(packagePath, "utf8"));
|
|
64
|
+
return pkg.version ?? "unknown";
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
return "unknown";
|
|
68
|
+
}
|
|
69
|
+
}
|
|
57
70
|
function printHelp() {
|
|
58
|
-
process.stdout.write(`Holistic CLI
|
|
71
|
+
process.stdout.write(`Holistic CLI v${getVersion()}
|
|
59
72
|
|
|
60
73
|
Usage:
|
|
61
74
|
holistic init [--install-daemon] [--install-hooks] [--platform win32|darwin|linux] [--interval 30] [--remote origin] [--state-ref refs/holistic/state] [--state-branch holistic/state]
|
|
@@ -63,15 +76,15 @@ Usage:
|
|
|
63
76
|
holistic start [--agent codex|claude|antigravity|gemini|copilot|cursor|goose|gsd] [--continue] [--json]
|
|
64
77
|
holistic resume [--agent codex|claude|antigravity|gemini|copilot|cursor|goose|gsd] [--continue] [--json]
|
|
65
78
|
holistic checkpoint --reason "<reason>" [--goal "<goal>"] [--status "<status>"] [--plan "<step>"]...
|
|
66
|
-
holistic checkpoint --fixed "<bug>" [--fix-files "<file>"] [--fix-risk "<what reintroduces it>"]
|
|
67
|
-
holistic handoff [--draft] [--summary "<summary>"] [--next "<step>"]...
|
|
68
|
-
holistic start-new --goal "<goal>" [--title "<title>"] [--plan "<step>"]...
|
|
69
|
-
holistic status
|
|
70
|
-
holistic diff --from "<session-id>" --to "<session-id>" [--format text|json]
|
|
71
|
-
holistic serve
|
|
72
|
-
holistic watch [--agent codex|claude|antigravity|gemini|copilot|cursor|goose|gsd] [--interval 60]
|
|
73
|
-
|
|
74
|
-
'holistic start' is an alias for 'holistic resume'.
|
|
79
|
+
holistic checkpoint --fixed "<bug>" [--fix-files "<file>"] [--fix-risk "<what reintroduces it>"]
|
|
80
|
+
holistic handoff [--draft] [--summary "<summary>"] [--next "<step>"]...
|
|
81
|
+
holistic start-new --goal "<goal>" [--title "<title>"] [--plan "<step>"]...
|
|
82
|
+
holistic status
|
|
83
|
+
holistic diff --from "<session-id>" --to "<session-id>" [--format text|json]
|
|
84
|
+
holistic serve
|
|
85
|
+
holistic watch [--agent codex|claude|antigravity|gemini|copilot|cursor|goose|gsd] [--interval 60]
|
|
86
|
+
|
|
87
|
+
'holistic start' is an alias for 'holistic resume'.
|
|
75
88
|
`);
|
|
76
89
|
}
|
|
77
90
|
export function renderResumeOutput(body) {
|
|
@@ -300,10 +313,12 @@ async function handleInit(rootDir, parsed) {
|
|
|
300
313
|
showStatus: true,
|
|
301
314
|
statusItems,
|
|
302
315
|
});
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
316
|
+
const initFallback = renderRepoLocalCliCommands(path.relative(rootDir, path.join(result.systemDir, "..", "context")).replaceAll("\\", "/"), "resume --agent codex");
|
|
317
|
+
process.stdout.write(`System files: ${result.systemDir}
|
|
318
|
+
Config: ${result.configFile}
|
|
319
|
+
Platform: ${result.platform}
|
|
320
|
+
Daemon install: ${result.installed ? `enabled at ${result.startupTarget}` : "not installed"}
|
|
321
|
+
Repo-local CLI: ${initFallback}
|
|
307
322
|
`);
|
|
308
323
|
if (result.gitHooksInstalled) {
|
|
309
324
|
process.stdout.write(`Git hooks installed: ${result.gitHooks.join(", ")}\n`);
|
|
@@ -343,13 +358,15 @@ async function handleBootstrap(rootDir, parsed) {
|
|
|
343
358
|
showStatus: true,
|
|
344
359
|
statusItems,
|
|
345
360
|
});
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
361
|
+
const bootstrapFallback = renderRepoLocalCliCommands(path.relative(rootDir, path.join(result.systemDir, "..", "context")).replaceAll("\\", "/"), "resume --agent codex");
|
|
362
|
+
process.stdout.write(`System files: ${result.systemDir}
|
|
363
|
+
Config: ${result.configFile}
|
|
364
|
+
Platform: ${result.platform}
|
|
365
|
+
Daemon install: ${result.installed ? `enabled at ${result.startupTarget}` : "not installed"}
|
|
366
|
+
Git hooks: ${result.gitHooksInstalled ? result.gitHooks.join(", ") : "not installed"}
|
|
367
|
+
MCP config: ${result.mcpConfigured ? result.mcpConfigFile : "skipped"}
|
|
368
|
+
Checks: ${result.checks.join(", ")}
|
|
369
|
+
Repo-local CLI: ${bootstrapFallback}
|
|
353
370
|
`);
|
|
354
371
|
return 0;
|
|
355
372
|
}
|
|
@@ -596,6 +613,11 @@ async function main() {
|
|
|
596
613
|
const parsed = parseArgs(process.argv.slice(2));
|
|
597
614
|
const rootDir = process.cwd();
|
|
598
615
|
switch (parsed.command) {
|
|
616
|
+
case "version":
|
|
617
|
+
case "--version":
|
|
618
|
+
case "-v":
|
|
619
|
+
process.stdout.write(`${getVersion()}\n`);
|
|
620
|
+
return 0;
|
|
599
621
|
case "init":
|
|
600
622
|
return handleInit(rootDir, parsed);
|
|
601
623
|
case "bootstrap":
|