@varveai/adit-cli 0.2.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/LICENSE +21 -0
- package/dist/commands/cloud.d.ts +51 -0
- package/dist/commands/cloud.d.ts.map +1 -0
- package/dist/commands/cloud.js +430 -0
- package/dist/commands/cloud.js.map +1 -0
- package/dist/commands/config.d.ts +8 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +30 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/db.d.ts +17 -0
- package/dist/commands/db.d.ts.map +1 -0
- package/dist/commands/db.js +48 -0
- package/dist/commands/db.js.map +1 -0
- package/dist/commands/diff.d.ts +30 -0
- package/dist/commands/diff.d.ts.map +1 -0
- package/dist/commands/diff.js +265 -0
- package/dist/commands/diff.js.map +1 -0
- package/dist/commands/doctor.d.ts +15 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +265 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/export.d.ts +24 -0
- package/dist/commands/export.d.ts.map +1 -0
- package/dist/commands/export.js +219 -0
- package/dist/commands/export.js.map +1 -0
- package/dist/commands/init.d.ts +12 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +137 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/list.d.ts +20 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +110 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/perf.d.ts +19 -0
- package/dist/commands/perf.d.ts.map +1 -0
- package/dist/commands/perf.js +102 -0
- package/dist/commands/perf.js.map +1 -0
- package/dist/commands/plugin.d.ts +28 -0
- package/dist/commands/plugin.d.ts.map +1 -0
- package/dist/commands/plugin.js +516 -0
- package/dist/commands/plugin.js.map +1 -0
- package/dist/commands/project-link.d.ts +16 -0
- package/dist/commands/project-link.d.ts.map +1 -0
- package/dist/commands/project-link.js +143 -0
- package/dist/commands/project-link.js.map +1 -0
- package/dist/commands/resume.d.ts +28 -0
- package/dist/commands/resume.d.ts.map +1 -0
- package/dist/commands/resume.js +229 -0
- package/dist/commands/resume.js.map +1 -0
- package/dist/commands/revert.d.ts +30 -0
- package/dist/commands/revert.d.ts.map +1 -0
- package/dist/commands/revert.js +271 -0
- package/dist/commands/revert.js.map +1 -0
- package/dist/commands/search.d.ts +16 -0
- package/dist/commands/search.d.ts.map +1 -0
- package/dist/commands/search.js +72 -0
- package/dist/commands/search.js.map +1 -0
- package/dist/commands/self-update.d.ts +12 -0
- package/dist/commands/self-update.d.ts.map +1 -0
- package/dist/commands/self-update.js +161 -0
- package/dist/commands/self-update.js.map +1 -0
- package/dist/commands/show.d.ts +5 -0
- package/dist/commands/show.d.ts.map +1 -0
- package/dist/commands/show.js +86 -0
- package/dist/commands/show.js.map +1 -0
- package/dist/commands/status.d.ts +11 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +237 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/task.d.ts +18 -0
- package/dist/commands/task.d.ts.map +1 -0
- package/dist/commands/task.js +131 -0
- package/dist/commands/task.js.map +1 -0
- package/dist/commands/transcript.d.ts +40 -0
- package/dist/commands/transcript.d.ts.map +1 -0
- package/dist/commands/transcript.js +275 -0
- package/dist/commands/transcript.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +385 -0
- package/dist/index.js.map +1 -0
- package/dist/tui/App.d.ts +8 -0
- package/dist/tui/App.d.ts.map +1 -0
- package/dist/tui/App.js +132 -0
- package/dist/tui/App.js.map +1 -0
- package/dist/tui/components/DiffView.d.ts +11 -0
- package/dist/tui/components/DiffView.d.ts.map +1 -0
- package/dist/tui/components/DiffView.js +29 -0
- package/dist/tui/components/DiffView.js.map +1 -0
- package/dist/tui/components/EventDetail.d.ts +11 -0
- package/dist/tui/components/EventDetail.d.ts.map +1 -0
- package/dist/tui/components/EventDetail.js +36 -0
- package/dist/tui/components/EventDetail.js.map +1 -0
- package/dist/tui/components/EventList.d.ts +15 -0
- package/dist/tui/components/EventList.d.ts.map +1 -0
- package/dist/tui/components/EventList.js +77 -0
- package/dist/tui/components/EventList.js.map +1 -0
- package/dist/tui/components/FilterBar.d.ts +12 -0
- package/dist/tui/components/FilterBar.d.ts.map +1 -0
- package/dist/tui/components/FilterBar.js +20 -0
- package/dist/tui/components/FilterBar.js.map +1 -0
- package/dist/tui/components/StatusBar.d.ts +16 -0
- package/dist/tui/components/StatusBar.d.ts.map +1 -0
- package/dist/tui/components/StatusBar.js +13 -0
- package/dist/tui/components/StatusBar.js.map +1 -0
- package/dist/tui/hooks/useKeyboard.d.ts +22 -0
- package/dist/tui/hooks/useKeyboard.d.ts.map +1 -0
- package/dist/tui/hooks/useKeyboard.js +64 -0
- package/dist/tui/hooks/useKeyboard.js.map +1 -0
- package/dist/tui/hooks/useTimeline.d.ts +31 -0
- package/dist/tui/hooks/useTimeline.d.ts.map +1 -0
- package/dist/tui/hooks/useTimeline.js +136 -0
- package/dist/tui/hooks/useTimeline.js.map +1 -0
- package/dist/tui/index.d.ts +5 -0
- package/dist/tui/index.d.ts.map +1 -0
- package/dist/tui/index.js +10 -0
- package/dist/tui/index.js.map +1 -0
- package/dist/tui/screens/DiffScreen.d.ts +12 -0
- package/dist/tui/screens/DiffScreen.d.ts.map +1 -0
- package/dist/tui/screens/DiffScreen.js +25 -0
- package/dist/tui/screens/DiffScreen.js.map +1 -0
- package/dist/tui/screens/EnvScreen.d.ts +11 -0
- package/dist/tui/screens/EnvScreen.d.ts.map +1 -0
- package/dist/tui/screens/EnvScreen.js +25 -0
- package/dist/tui/screens/EnvScreen.js.map +1 -0
- package/dist/tui/screens/SearchScreen.d.ts +13 -0
- package/dist/tui/screens/SearchScreen.d.ts.map +1 -0
- package/dist/tui/screens/SearchScreen.js +56 -0
- package/dist/tui/screens/SearchScreen.js.map +1 -0
- package/dist/tui/screens/TimelineScreen.d.ts +19 -0
- package/dist/tui/screens/TimelineScreen.d.ts.map +1 -0
- package/dist/tui/screens/TimelineScreen.js +10 -0
- package/dist/tui/screens/TimelineScreen.js.map +1 -0
- package/dist/utils/format.d.ts +23 -0
- package/dist/utils/format.d.ts.map +1 -0
- package/dist/utils/format.js +65 -0
- package/dist/utils/format.js.map +1 -0
- package/dist/utils/summary.d.ts +26 -0
- package/dist/utils/summary.d.ts.map +1 -0
- package/dist/utils/summary.js +87 -0
- package/dist/utils/summary.js.map +1 -0
- package/dist/version.d.ts +8 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +11 -0
- package/dist/version.js.map +1 -0
- package/package.json +48 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `adit snapshot diff <id>` — Show the diff for a checkpoint event.
|
|
3
|
+
* `adit prompt <id>` — Show the prompt text for an event.
|
|
4
|
+
* `adit snapshot env` — Show/compare environment snapshots.
|
|
5
|
+
*/
|
|
6
|
+
export declare function diffCommand(eventId: string, opts: {
|
|
7
|
+
maxLines?: number;
|
|
8
|
+
offsetLines?: number;
|
|
9
|
+
file?: string;
|
|
10
|
+
}): Promise<void>;
|
|
11
|
+
export declare function promptCommand(eventId: string, opts?: {
|
|
12
|
+
maxChars?: number;
|
|
13
|
+
offset?: number;
|
|
14
|
+
}): Promise<void>;
|
|
15
|
+
/** Show environment snapshot for a specific event (legacy command) */
|
|
16
|
+
export declare function envCommand(eventId: string): Promise<void>;
|
|
17
|
+
/** `adit env latest` — show the most recent env snapshot for the active session */
|
|
18
|
+
export declare function envLatestCommand(opts?: {
|
|
19
|
+
json?: boolean;
|
|
20
|
+
}): Promise<void>;
|
|
21
|
+
/** `adit env diff <id1> <id2>` — compare two environment snapshots */
|
|
22
|
+
export declare function envDiffCommand(id1: string, id2: string, opts?: {
|
|
23
|
+
json?: boolean;
|
|
24
|
+
}): Promise<void>;
|
|
25
|
+
/** `adit env history` — list env snapshots for the session */
|
|
26
|
+
export declare function envHistoryCommand(opts?: {
|
|
27
|
+
limit?: number;
|
|
28
|
+
json?: boolean;
|
|
29
|
+
}): Promise<void>;
|
|
30
|
+
//# sourceMappingURL=diff.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/commands/diff.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAcH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/D,OAAO,CAAC,IAAI,CAAC,CAyBf;AAsBD,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5C,OAAO,CAAC,IAAI,CAAC,CA8Bf;AAED,sEAAsE;AACtE,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA0B/D;AAED,mFAAmF;AACnF,wBAAsB,gBAAgB,CAAC,IAAI,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAyB/E;AAED,sEAAsE;AACtE,wBAAsB,cAAc,CAClC,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GACxB,OAAO,CAAC,IAAI,CAAC,CAuCf;AAED,8DAA8D;AAC9D,wBAAsB,iBAAiB,CACrC,IAAI,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GACxC,OAAO,CAAC,IAAI,CAAC,CAgCf"}
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `adit snapshot diff <id>` — Show the diff for a checkpoint event.
|
|
3
|
+
* `adit prompt <id>` — Show the prompt text for an event.
|
|
4
|
+
* `adit snapshot env` — Show/compare environment snapshots.
|
|
5
|
+
*/
|
|
6
|
+
import { loadConfig, openDatabase, closeDatabase, getEnvSnapshotById, getLatestEnvSnapshot, getActiveSession, listEnvSnapshots, } from "@varveai/adit-core";
|
|
7
|
+
import { createTimelineManager, diffEnvironments } from "@varveai/adit-engine";
|
|
8
|
+
export async function diffCommand(eventId, opts) {
|
|
9
|
+
const config = loadConfig();
|
|
10
|
+
const db = openDatabase(config.dbPath);
|
|
11
|
+
const timeline = createTimelineManager(db, config);
|
|
12
|
+
try {
|
|
13
|
+
let diff = await timeline.getDiff(eventId, opts.maxLines, opts.offsetLines);
|
|
14
|
+
if (!diff) {
|
|
15
|
+
console.error(`No diff found for event ${eventId}`);
|
|
16
|
+
process.exit(1);
|
|
17
|
+
}
|
|
18
|
+
// Filter to a specific file if requested
|
|
19
|
+
if (opts.file) {
|
|
20
|
+
diff = filterDiffByFile(diff, opts.file);
|
|
21
|
+
if (!diff.trim()) {
|
|
22
|
+
console.error(`No changes found for file: ${opts.file}`);
|
|
23
|
+
process.exit(1);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
console.log(diff);
|
|
27
|
+
}
|
|
28
|
+
finally {
|
|
29
|
+
closeDatabase(db);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/** Extract diff hunks for a specific file from a unified diff */
|
|
33
|
+
function filterDiffByFile(diff, filePath) {
|
|
34
|
+
const lines = diff.split("\n");
|
|
35
|
+
const result = [];
|
|
36
|
+
let capturing = false;
|
|
37
|
+
for (const line of lines) {
|
|
38
|
+
if (line.startsWith("diff --git")) {
|
|
39
|
+
// Check if this diff section matches the requested file
|
|
40
|
+
capturing =
|
|
41
|
+
line.includes(`a/${filePath}`) || line.includes(`b/${filePath}`);
|
|
42
|
+
}
|
|
43
|
+
if (capturing) {
|
|
44
|
+
result.push(line);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return result.join("\n");
|
|
48
|
+
}
|
|
49
|
+
export async function promptCommand(eventId, opts) {
|
|
50
|
+
const config = loadConfig();
|
|
51
|
+
const db = openDatabase(config.dbPath);
|
|
52
|
+
const timeline = createTimelineManager(db, config);
|
|
53
|
+
try {
|
|
54
|
+
const event = await timeline.get(eventId);
|
|
55
|
+
if (!event) {
|
|
56
|
+
console.error(`Event not found: ${eventId}`);
|
|
57
|
+
process.exit(1);
|
|
58
|
+
}
|
|
59
|
+
if (!event.promptText) {
|
|
60
|
+
console.error(`No prompt text for event ${eventId}`);
|
|
61
|
+
process.exit(1);
|
|
62
|
+
}
|
|
63
|
+
let text = event.promptText;
|
|
64
|
+
const start = opts?.offset ?? 0;
|
|
65
|
+
if (start > 0 || opts?.maxChars) {
|
|
66
|
+
const end = opts?.maxChars ? start + opts.maxChars : text.length;
|
|
67
|
+
text = text.slice(start, end);
|
|
68
|
+
if (end < event.promptText.length) {
|
|
69
|
+
text += `\n... (truncated, ${event.promptText.length - end} chars remaining)`;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
console.log(text);
|
|
73
|
+
}
|
|
74
|
+
finally {
|
|
75
|
+
closeDatabase(db);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/** Show environment snapshot for a specific event (legacy command) */
|
|
79
|
+
export async function envCommand(eventId) {
|
|
80
|
+
const config = loadConfig();
|
|
81
|
+
const db = openDatabase(config.dbPath);
|
|
82
|
+
const timeline = createTimelineManager(db, config);
|
|
83
|
+
try {
|
|
84
|
+
const event = await timeline.get(eventId);
|
|
85
|
+
if (!event) {
|
|
86
|
+
console.error(`Event not found: ${eventId}`);
|
|
87
|
+
process.exit(1);
|
|
88
|
+
}
|
|
89
|
+
if (!event.envSnapshotId) {
|
|
90
|
+
console.error(`No environment snapshot for event ${eventId}`);
|
|
91
|
+
process.exit(1);
|
|
92
|
+
}
|
|
93
|
+
const snap = getEnvSnapshotById(db, event.envSnapshotId);
|
|
94
|
+
if (!snap) {
|
|
95
|
+
console.error(`Environment snapshot not found: ${event.envSnapshotId}`);
|
|
96
|
+
process.exit(1);
|
|
97
|
+
}
|
|
98
|
+
printEnvSnapshot(snap);
|
|
99
|
+
}
|
|
100
|
+
finally {
|
|
101
|
+
closeDatabase(db);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
/** `adit env latest` — show the most recent env snapshot for the active session */
|
|
105
|
+
export async function envLatestCommand(opts) {
|
|
106
|
+
const config = loadConfig();
|
|
107
|
+
const db = openDatabase(config.dbPath);
|
|
108
|
+
try {
|
|
109
|
+
const session = getActiveSession(db, config.projectId, config.clientId);
|
|
110
|
+
if (!session) {
|
|
111
|
+
console.error("No active session. Run 'adit init' first.");
|
|
112
|
+
process.exit(1);
|
|
113
|
+
}
|
|
114
|
+
const snap = getLatestEnvSnapshot(db, session.id);
|
|
115
|
+
if (!snap) {
|
|
116
|
+
console.error("No environment snapshots found for this session.");
|
|
117
|
+
process.exit(1);
|
|
118
|
+
}
|
|
119
|
+
if (opts?.json) {
|
|
120
|
+
console.log(JSON.stringify(snap, null, 2));
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
printEnvSnapshot(snap);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
finally {
|
|
127
|
+
closeDatabase(db);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/** `adit env diff <id1> <id2>` — compare two environment snapshots */
|
|
131
|
+
export async function envDiffCommand(id1, id2, opts) {
|
|
132
|
+
const config = loadConfig();
|
|
133
|
+
const db = openDatabase(config.dbPath);
|
|
134
|
+
try {
|
|
135
|
+
const snap1 = getEnvSnapshotById(db, id1);
|
|
136
|
+
const snap2 = getEnvSnapshotById(db, id2);
|
|
137
|
+
if (!snap1) {
|
|
138
|
+
console.error(`Snapshot not found: ${id1}`);
|
|
139
|
+
process.exit(1);
|
|
140
|
+
}
|
|
141
|
+
if (!snap2) {
|
|
142
|
+
console.error(`Snapshot not found: ${id2}`);
|
|
143
|
+
process.exit(1);
|
|
144
|
+
}
|
|
145
|
+
const diff = diffEnvironments(snap1, snap2);
|
|
146
|
+
if (opts?.json) {
|
|
147
|
+
console.log(JSON.stringify(diff, null, 2));
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
if (diff.changes.length === 0) {
|
|
151
|
+
console.log("No environment changes detected.");
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
console.log(`Environment Diff (${diff.severity}):\n`);
|
|
155
|
+
for (const change of diff.changes) {
|
|
156
|
+
const severityTag = change.severity === "breaking" ? "!!!" : change.severity === "warning" ? " !" : " ";
|
|
157
|
+
console.log(` ${severityTag} [${change.category}] ${change.field}`);
|
|
158
|
+
console.log(` old: ${change.oldValue ?? "(none)"}`);
|
|
159
|
+
console.log(` new: ${change.newValue ?? "(none)"}`);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
finally {
|
|
163
|
+
closeDatabase(db);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
/** `adit env history` — list env snapshots for the session */
|
|
167
|
+
export async function envHistoryCommand(opts) {
|
|
168
|
+
const config = loadConfig();
|
|
169
|
+
const db = openDatabase(config.dbPath);
|
|
170
|
+
try {
|
|
171
|
+
const session = getActiveSession(db, config.projectId, config.clientId);
|
|
172
|
+
if (!session) {
|
|
173
|
+
console.error("No active session. Run 'adit init' first.");
|
|
174
|
+
process.exit(1);
|
|
175
|
+
}
|
|
176
|
+
const snapshots = listEnvSnapshots(db, session.id, opts?.limit ?? 20);
|
|
177
|
+
if (snapshots.length === 0) {
|
|
178
|
+
console.log("No environment snapshots found.");
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
if (opts?.json) {
|
|
182
|
+
console.log(JSON.stringify(snapshots, null, 2));
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
console.log(`Environment Snapshots (${snapshots.length}):\n`);
|
|
186
|
+
for (const snap of snapshots) {
|
|
187
|
+
const id = snap.id.substring(0, 10);
|
|
188
|
+
console.log(` ${id} ${snap.capturedAt} ${snap.gitBranch} @ ${snap.gitHeadSha.substring(0, 7)}`);
|
|
189
|
+
if (snap.nodeVersion)
|
|
190
|
+
console.log(` Node: ${snap.nodeVersion}`);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
finally {
|
|
194
|
+
closeDatabase(db);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
/** Print a formatted env snapshot to the console */
|
|
198
|
+
function printEnvSnapshot(snap) {
|
|
199
|
+
console.log(`Environment Snapshot: ${snap.id}`);
|
|
200
|
+
console.log(` Branch: ${snap.gitBranch}`);
|
|
201
|
+
console.log(` HEAD: ${snap.gitHeadSha}`);
|
|
202
|
+
console.log(` Captured: ${snap.capturedAt}`);
|
|
203
|
+
if (snap.nodeVersion)
|
|
204
|
+
console.log(` Node: ${snap.nodeVersion}`);
|
|
205
|
+
if (snap.pythonVersion)
|
|
206
|
+
console.log(` Python: ${snap.pythonVersion}`);
|
|
207
|
+
if (snap.osInfo)
|
|
208
|
+
console.log(` OS: ${snap.osInfo}`);
|
|
209
|
+
if (snap.depLockPath) {
|
|
210
|
+
console.log(` Lock file: ${snap.depLockPath}`);
|
|
211
|
+
console.log(` Lock hash: ${snap.depLockHash ?? "-"}`);
|
|
212
|
+
}
|
|
213
|
+
if (snap.containerInfo) {
|
|
214
|
+
try {
|
|
215
|
+
const info = JSON.parse(snap.containerInfo);
|
|
216
|
+
console.log(` Container: ${info.inDocker ? "Docker" : "None"}${info.image ? ` (${info.image})` : ""}`);
|
|
217
|
+
}
|
|
218
|
+
catch { /* ignore */ }
|
|
219
|
+
}
|
|
220
|
+
if (snap.runtimeVersionsJson) {
|
|
221
|
+
try {
|
|
222
|
+
const versions = JSON.parse(snap.runtimeVersionsJson);
|
|
223
|
+
for (const [name, ver] of Object.entries(versions)) {
|
|
224
|
+
console.log(` ${name.charAt(0).toUpperCase() + name.slice(1)}:${" ".repeat(Math.max(1, 9 - name.length))}${ver}`);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
catch { /* ignore */ }
|
|
228
|
+
}
|
|
229
|
+
if (snap.shellInfo) {
|
|
230
|
+
try {
|
|
231
|
+
const info = JSON.parse(snap.shellInfo);
|
|
232
|
+
console.log(` Shell: ${info.shell}${info.version ? ` (${info.version})` : ""}`);
|
|
233
|
+
}
|
|
234
|
+
catch { /* ignore */ }
|
|
235
|
+
}
|
|
236
|
+
if (snap.systemResourcesJson) {
|
|
237
|
+
try {
|
|
238
|
+
const res = JSON.parse(snap.systemResourcesJson);
|
|
239
|
+
const totalGB = (res.totalMem / (1024 ** 3)).toFixed(1);
|
|
240
|
+
const freeGB = (res.freeMem / (1024 ** 3)).toFixed(1);
|
|
241
|
+
console.log(` Arch: ${res.arch}`);
|
|
242
|
+
console.log(` CPU: ${res.cpuModel}`);
|
|
243
|
+
console.log(` Memory: ${freeGB}GB free / ${totalGB}GB total`);
|
|
244
|
+
}
|
|
245
|
+
catch { /* ignore */ }
|
|
246
|
+
}
|
|
247
|
+
if (snap.packageManagerJson) {
|
|
248
|
+
try {
|
|
249
|
+
const pm = JSON.parse(snap.packageManagerJson);
|
|
250
|
+
console.log(` Pkg Mgr: ${pm.name} v${pm.version}`);
|
|
251
|
+
}
|
|
252
|
+
catch { /* ignore */ }
|
|
253
|
+
}
|
|
254
|
+
if (snap.modifiedFiles) {
|
|
255
|
+
try {
|
|
256
|
+
const files = JSON.parse(snap.modifiedFiles);
|
|
257
|
+
console.log(` Modified: ${files.length} files`);
|
|
258
|
+
for (const f of files) {
|
|
259
|
+
console.log(` - ${f}`);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
catch { /* ignore */ }
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
//# sourceMappingURL=diff.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/commands/diff.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,UAAU,EACV,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,GAEjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE/E,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAe,EACf,IAAgE;IAEhE,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAEnD,IAAI,CAAC;QACH,IAAI,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5E,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,2BAA2B,OAAO,EAAE,CAAC,CAAC;YACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,yCAAyC;QACzC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,GAAG,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;gBACjB,OAAO,CAAC,KAAK,CAAC,8BAA8B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;YAAS,CAAC;QACT,aAAa,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,iEAAiE;AACjE,SAAS,gBAAgB,CAAC,IAAY,EAAE,QAAgB;IACtD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAClC,wDAAwD;YACxD,SAAS;gBACP,IAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC;QACrE,CAAC;QACD,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,OAAe,EACf,IAA6C;IAE7C,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAEnD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,4BAA4B,OAAO,EAAE,CAAC,CAAC;YACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC;QAC5B,MAAM,KAAK,GAAG,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC;QAChC,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,EAAE,QAAQ,EAAE,CAAC;YAChC,MAAM,GAAG,GAAG,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;YACjE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC9B,IAAI,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;gBAClC,IAAI,IAAI,qBAAqB,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,GAAG,mBAAmB,CAAC;YAChF,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;YAAS,CAAC;QACT,aAAa,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,sEAAsE;AACtE,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAe;IAC9C,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAEnD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,qCAAqC,OAAO,EAAE,CAAC,CAAC;YAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,IAAI,GAAG,kBAAkB,CAAC,EAAE,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;QACzD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,mCAAmC,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC;YACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;YAAS,CAAC;QACT,aAAa,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,mFAAmF;AACnF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAyB;IAC9D,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEvC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,gBAAgB,CAAC,EAAE,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QACxE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,IAAI,GAAG,oBAAoB,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;YAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;YAAS,CAAC;QACT,aAAa,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,sEAAsE;AACtE,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,GAAW,EACX,GAAW,EACX,IAAyB;IAEzB,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEvC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,kBAAkB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,kBAAkB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAE1C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAC;YAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAC;YAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAE5C,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC3C,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;YAChD,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,CAAC,QAAQ,MAAM,CAAC,CAAC;QACtD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YACzG,OAAO,CAAC,GAAG,CAAC,KAAK,WAAW,KAAK,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YACrE,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,QAAQ,IAAI,QAAQ,EAAE,CAAC,CAAC;YAC1D,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,QAAQ,IAAI,QAAQ,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;YAAS,CAAC;QACT,aAAa,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,8DAA8D;AAC9D,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,IAAyC;IAEzC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEvC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,gBAAgB,CAAC,EAAE,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QACxE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,SAAS,GAAG,gBAAgB,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QAEtE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QAED,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAChD,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,0BAA0B,SAAS,CAAC,MAAM,MAAM,CAAC,CAAC;QAC9D,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACnG,IAAI,IAAI,CAAC,WAAW;gBAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;YAAS,CAAC;QACT,aAAa,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,oDAAoD;AACpD,SAAS,gBAAgB,CAAC,IAAiB;IACzC,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAChD,IAAI,IAAI,CAAC,WAAW;QAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACvE,IAAI,IAAI,CAAC,aAAa;QAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IAC3E,IAAI,IAAI,CAAC,MAAM;QAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7D,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,WAAW,IAAI,GAAG,EAAE,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3G,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAC1B,CAAC;IACD,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAA2B,CAAC;YAChF,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnD,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;YACrH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAC1B,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACxF,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAC1B,CAAC;IACD,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACjD,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACxD,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,aAAa,OAAO,UAAU,CAAC,CAAC;QACrE,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAC1B,CAAC;IACD,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QACzD,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAC1B,CAAC;IACD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAa,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,CAAC,MAAM,QAAQ,CAAC,CAAC;YACnD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `adit doctor` — Validate ADIT installation health.
|
|
3
|
+
*
|
|
4
|
+
* Checks: git repo, data dir, database, hooks, checkpoint refs,
|
|
5
|
+
* Claude settings, adit-hook binary, schema version, disk space,
|
|
6
|
+
* SQLite integrity, stale sessions, orphaned diffs.
|
|
7
|
+
*
|
|
8
|
+
* `adit doctor --fix` attempts automatic fixes.
|
|
9
|
+
* `adit doctor --json` outputs results as JSON.
|
|
10
|
+
*/
|
|
11
|
+
export declare function doctorCommand(opts?: {
|
|
12
|
+
fix?: boolean;
|
|
13
|
+
json?: boolean;
|
|
14
|
+
}): Promise<void>;
|
|
15
|
+
//# sourceMappingURL=doctor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAsBH,wBAAsB,aAAa,CACjC,IAAI,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GACvC,OAAO,CAAC,IAAI,CAAC,CAuQf"}
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `adit doctor` — Validate ADIT installation health.
|
|
3
|
+
*
|
|
4
|
+
* Checks: git repo, data dir, database, hooks, checkpoint refs,
|
|
5
|
+
* Claude settings, adit-hook binary, schema version, disk space,
|
|
6
|
+
* SQLite integrity, stale sessions, orphaned diffs.
|
|
7
|
+
*
|
|
8
|
+
* `adit doctor --fix` attempts automatic fixes.
|
|
9
|
+
* `adit doctor --json` outputs results as JSON.
|
|
10
|
+
*/
|
|
11
|
+
import { existsSync, statSync } from "node:fs";
|
|
12
|
+
import { execSync } from "node:child_process";
|
|
13
|
+
import { loadConfig, openDatabase, closeDatabase, queryEvents, listSessions, endSession, } from "@varveai/adit-core";
|
|
14
|
+
import { isGitRepo, listCheckpointRefs, deleteCheckpointRef } from "@varveai/adit-engine";
|
|
15
|
+
import { detectPlatform, getAdapter, listAdapters } from "@varveai/adit-hooks/adapters";
|
|
16
|
+
export async function doctorCommand(opts) {
|
|
17
|
+
const checks = [];
|
|
18
|
+
const config = loadConfig();
|
|
19
|
+
// 1. Git repo
|
|
20
|
+
const gitOk = await isGitRepo(config.projectRoot);
|
|
21
|
+
checks.push({
|
|
22
|
+
name: "Git repository",
|
|
23
|
+
ok: gitOk,
|
|
24
|
+
detail: gitOk ? config.projectRoot : "Not a git repository",
|
|
25
|
+
});
|
|
26
|
+
// 2. Data directory
|
|
27
|
+
const dataDirOk = existsSync(config.dataDir);
|
|
28
|
+
checks.push({
|
|
29
|
+
name: "Data directory",
|
|
30
|
+
ok: dataDirOk,
|
|
31
|
+
detail: dataDirOk ? config.dataDir : "Run 'adit init' first",
|
|
32
|
+
});
|
|
33
|
+
// 3. Database
|
|
34
|
+
let dbOk = false;
|
|
35
|
+
let db = null;
|
|
36
|
+
try {
|
|
37
|
+
db = openDatabase(config.dbPath);
|
|
38
|
+
queryEvents(db, { limit: 1 });
|
|
39
|
+
dbOk = true;
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
// DB failed
|
|
43
|
+
}
|
|
44
|
+
checks.push({
|
|
45
|
+
name: "Database",
|
|
46
|
+
ok: dbOk,
|
|
47
|
+
detail: dbOk ? `${config.dbPath} (accessible)` : "Cannot open database",
|
|
48
|
+
});
|
|
49
|
+
// 4. SQLite integrity
|
|
50
|
+
if (db && dbOk) {
|
|
51
|
+
let integrityOk = false;
|
|
52
|
+
try {
|
|
53
|
+
const result = db.pragma("integrity_check");
|
|
54
|
+
integrityOk = result.length === 1 && result[0].integrity_check === "ok";
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
// ignore
|
|
58
|
+
}
|
|
59
|
+
checks.push({
|
|
60
|
+
name: "SQLite integrity",
|
|
61
|
+
ok: integrityOk,
|
|
62
|
+
detail: integrityOk ? "PRAGMA integrity_check: ok" : "Database integrity check failed",
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
// 5. adit-hook binary
|
|
66
|
+
let binaryOk = false;
|
|
67
|
+
try {
|
|
68
|
+
execSync("npx adit-hook --help 2>/dev/null", { timeout: 5000, stdio: "pipe" });
|
|
69
|
+
binaryOk = true;
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
// Try direct binary
|
|
73
|
+
try {
|
|
74
|
+
execSync("which adit-hook 2>/dev/null", { timeout: 3000, stdio: "pipe" });
|
|
75
|
+
binaryOk = true;
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
// not found
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
checks.push({
|
|
82
|
+
name: "adit-hook binary",
|
|
83
|
+
ok: binaryOk,
|
|
84
|
+
detail: binaryOk ? "Available on PATH or via npx" : "Not found. Ensure @varveai/adit-hooks is installed.",
|
|
85
|
+
});
|
|
86
|
+
// 6. Hooks — validate via platform adapters
|
|
87
|
+
// Check all implemented adapters; report per-platform status.
|
|
88
|
+
const implementedAdapters = listAdapters().filter((a) => a.hookMappings.length > 0);
|
|
89
|
+
let hooksOk = false;
|
|
90
|
+
const hooksDetails = [];
|
|
91
|
+
const adaptersNeedingFix = [];
|
|
92
|
+
for (const adapter of implementedAdapters) {
|
|
93
|
+
const result = await adapter.validateInstallation(config.projectRoot);
|
|
94
|
+
if (result.valid) {
|
|
95
|
+
hooksOk = true;
|
|
96
|
+
hooksDetails.push(`${adapter.displayName}: OK`);
|
|
97
|
+
}
|
|
98
|
+
else if (result.checks.some((c) => c.ok)) {
|
|
99
|
+
// Platform directory exists but hooks incomplete
|
|
100
|
+
hooksDetails.push(`${adapter.displayName}: ${result.checks.filter((c) => !c.ok).map((c) => c.detail).join("; ")}`);
|
|
101
|
+
adaptersNeedingFix.push(adapter);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
if (hooksDetails.length === 0) {
|
|
105
|
+
const detected = detectPlatform();
|
|
106
|
+
const detectedAdapter = getAdapter(detected);
|
|
107
|
+
hooksDetails.push(`No platform hooks found (detected: ${detectedAdapter.displayName})`);
|
|
108
|
+
adaptersNeedingFix.push(detectedAdapter);
|
|
109
|
+
}
|
|
110
|
+
checks.push({
|
|
111
|
+
name: "Hooks config",
|
|
112
|
+
ok: hooksOk,
|
|
113
|
+
detail: hooksDetails.join("; "),
|
|
114
|
+
fixable: !hooksOk,
|
|
115
|
+
});
|
|
116
|
+
// 7. Checkpoint refs integrity
|
|
117
|
+
let refsOk = true;
|
|
118
|
+
let refCount = 0;
|
|
119
|
+
let orphanedRefs = 0;
|
|
120
|
+
const orphanedRefPaths = [];
|
|
121
|
+
try {
|
|
122
|
+
const refs = await listCheckpointRefs(config.projectRoot);
|
|
123
|
+
refCount = refs.length;
|
|
124
|
+
if (db && dbOk) {
|
|
125
|
+
const checkpointEvents = queryEvents(db, { hasCheckpoint: true, limit: 1000 });
|
|
126
|
+
const eventShas = new Set(checkpointEvents.map((e) => e.checkpointSha));
|
|
127
|
+
for (const ref of refs) {
|
|
128
|
+
if (!eventShas.has(ref.sha)) {
|
|
129
|
+
orphanedRefs++;
|
|
130
|
+
orphanedRefPaths.push(ref.stepId);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
catch {
|
|
136
|
+
refsOk = false;
|
|
137
|
+
}
|
|
138
|
+
checks.push({
|
|
139
|
+
name: "Checkpoint refs",
|
|
140
|
+
ok: refsOk && orphanedRefs === 0,
|
|
141
|
+
detail: `${refCount} refs${orphanedRefs > 0 ? `, ${orphanedRefs} orphaned` : ""}`,
|
|
142
|
+
fixable: orphanedRefs > 0,
|
|
143
|
+
});
|
|
144
|
+
// 8. Platform hook completeness — detailed per-adapter validation
|
|
145
|
+
// (check #6 above gives a summary; this gives per-check detail)
|
|
146
|
+
const detectedPlatform = detectPlatform();
|
|
147
|
+
const platformAdapter = getAdapter(detectedPlatform);
|
|
148
|
+
const platformResult = await platformAdapter.validateInstallation(config.projectRoot);
|
|
149
|
+
checks.push({
|
|
150
|
+
name: `${platformAdapter.displayName} settings`,
|
|
151
|
+
ok: platformResult.valid,
|
|
152
|
+
detail: platformResult.checks.map((c) => `${c.name}: ${c.detail}`).join("; "),
|
|
153
|
+
fixable: !platformResult.valid,
|
|
154
|
+
});
|
|
155
|
+
// 9. Stale sessions
|
|
156
|
+
let staleCount = 0;
|
|
157
|
+
const staleSessions = [];
|
|
158
|
+
if (db && dbOk) {
|
|
159
|
+
const sessions = listSessions(db, config.projectId);
|
|
160
|
+
const dayAgo = new Date(Date.now() - 24 * 60 * 60 * 1000).toISOString();
|
|
161
|
+
for (const s of sessions) {
|
|
162
|
+
if (s.status === "active" && s.startedAt < dayAgo) {
|
|
163
|
+
staleCount++;
|
|
164
|
+
staleSessions.push(s.id);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
checks.push({
|
|
169
|
+
name: "Stale sessions",
|
|
170
|
+
ok: staleCount === 0,
|
|
171
|
+
detail: staleCount > 0 ? `${staleCount} sessions active >24h` : "No stale sessions",
|
|
172
|
+
fixable: staleCount > 0,
|
|
173
|
+
});
|
|
174
|
+
// 10. Disk space
|
|
175
|
+
let diskOk = true;
|
|
176
|
+
let diskDetail = "OK";
|
|
177
|
+
try {
|
|
178
|
+
const stat = statSync(config.dataDir);
|
|
179
|
+
if (stat.isDirectory()) {
|
|
180
|
+
// Simple check: if adit.sqlite > 100MB, warn
|
|
181
|
+
const dbStat = statSync(config.dbPath);
|
|
182
|
+
const sizeMB = dbStat.size / (1024 * 1024);
|
|
183
|
+
diskOk = sizeMB < 100;
|
|
184
|
+
diskDetail = `Database: ${sizeMB.toFixed(1)}MB${sizeMB >= 100 ? " (large)" : ""}`;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
catch {
|
|
188
|
+
diskDetail = "Cannot check disk usage";
|
|
189
|
+
}
|
|
190
|
+
checks.push({
|
|
191
|
+
name: "Disk usage",
|
|
192
|
+
ok: diskOk,
|
|
193
|
+
detail: diskDetail,
|
|
194
|
+
});
|
|
195
|
+
// Attempt fixes if --fix
|
|
196
|
+
if (opts?.fix) {
|
|
197
|
+
const fixes = [];
|
|
198
|
+
// Fix orphaned refs
|
|
199
|
+
if (orphanedRefs > 0) {
|
|
200
|
+
for (const refPath of orphanedRefPaths) {
|
|
201
|
+
try {
|
|
202
|
+
await deleteCheckpointRef(config.projectRoot, refPath);
|
|
203
|
+
fixes.push(`Removed orphaned ref: ${refPath}`);
|
|
204
|
+
}
|
|
205
|
+
catch {
|
|
206
|
+
// ignore
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
// Fix stale sessions
|
|
211
|
+
if (staleCount > 0 && db) {
|
|
212
|
+
for (const sid of staleSessions) {
|
|
213
|
+
try {
|
|
214
|
+
endSession(db, sid, "completed");
|
|
215
|
+
fixes.push(`Closed stale session: ${sid.substring(0, 10)}`);
|
|
216
|
+
}
|
|
217
|
+
catch {
|
|
218
|
+
// ignore
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
// Fix missing hooks via plugin install
|
|
223
|
+
if (!hooksOk) {
|
|
224
|
+
for (const adapter of adaptersNeedingFix) {
|
|
225
|
+
try {
|
|
226
|
+
const { resolveAditHookBinary } = await import("@varveai/adit-hooks/adapters");
|
|
227
|
+
await adapter.installHooks(config.projectRoot, resolveAditHookBinary());
|
|
228
|
+
fixes.push(`Installed ADIT hooks for ${adapter.displayName}`);
|
|
229
|
+
}
|
|
230
|
+
catch {
|
|
231
|
+
// ignore
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
if (fixes.length > 0 && !opts.json) {
|
|
236
|
+
console.log("\nFixes applied:");
|
|
237
|
+
for (const fix of fixes) {
|
|
238
|
+
console.log(` [*] ${fix}`);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
if (db)
|
|
243
|
+
closeDatabase(db);
|
|
244
|
+
// Output
|
|
245
|
+
if (opts?.json) {
|
|
246
|
+
console.log(JSON.stringify({
|
|
247
|
+
checks: checks.map((c) => ({ name: c.name, ok: c.ok, detail: c.detail })),
|
|
248
|
+
allPassed: checks.every((c) => c.ok),
|
|
249
|
+
}, null, 2));
|
|
250
|
+
return;
|
|
251
|
+
}
|
|
252
|
+
console.log("ADIT Health Check\n");
|
|
253
|
+
let allOk = true;
|
|
254
|
+
for (const check of checks) {
|
|
255
|
+
const symbol = check.ok ? "+" : "x";
|
|
256
|
+
const fixTag = !check.ok && check.fixable ? " (--fix)" : "";
|
|
257
|
+
console.log(` [${symbol}] ${check.name}: ${check.detail}${fixTag}`);
|
|
258
|
+
if (!check.ok)
|
|
259
|
+
allOk = false;
|
|
260
|
+
}
|
|
261
|
+
console.log(allOk
|
|
262
|
+
? "\nAll checks passed."
|
|
263
|
+
: "\nSome checks failed. Run 'adit doctor --fix' to attempt repairs.");
|
|
264
|
+
}
|
|
265
|
+
//# sourceMappingURL=doctor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `adit export` — Export event data in various formats.
|
|
3
|
+
*
|
|
4
|
+
* Supports single-event bundles, full session exports,
|
|
5
|
+
* JSONL streaming, markdown reports, and gzip compression.
|
|
6
|
+
*/
|
|
7
|
+
/** `adit export <id>` — export a single event bundle */
|
|
8
|
+
export declare function exportCommand(eventId: string, opts: {
|
|
9
|
+
format?: string;
|
|
10
|
+
output?: string;
|
|
11
|
+
includeDiffs?: boolean;
|
|
12
|
+
includeEnv?: boolean;
|
|
13
|
+
}): Promise<void>;
|
|
14
|
+
/** `adit export session [session-id]` — export entire session */
|
|
15
|
+
export declare function exportSessionCommand(sessionId?: string, opts?: {
|
|
16
|
+
format?: string;
|
|
17
|
+
output?: string;
|
|
18
|
+
from?: string;
|
|
19
|
+
to?: string;
|
|
20
|
+
includeDiffs?: boolean;
|
|
21
|
+
includeEnv?: boolean;
|
|
22
|
+
gzip?: boolean;
|
|
23
|
+
}): Promise<void>;
|
|
24
|
+
//# sourceMappingURL=export.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAqBH,wDAAwD;AACxD,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE;IACJ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,GACA,OAAO,CAAC,IAAI,CAAC,CA6Bf;AAED,iEAAiE;AACjE,wBAAsB,oBAAoB,CACxC,SAAS,CAAC,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE;IACL,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,GACA,OAAO,CAAC,IAAI,CAAC,CAwFf"}
|