@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,219 @@
|
|
|
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
|
+
import { writeFileSync } from "node:fs";
|
|
8
|
+
import { createWriteStream } from "node:fs";
|
|
9
|
+
import { createGzip } from "node:zlib";
|
|
10
|
+
import { pipeline } from "node:stream/promises";
|
|
11
|
+
import { Readable } from "node:stream";
|
|
12
|
+
import { loadConfig, openDatabase, closeDatabase, getEnvSnapshotById, getEventsBySession, getActiveSession, getSessionById, parseLabels, parseDiffStats, } from "@varveai/adit-core";
|
|
13
|
+
import { createTimelineManager } from "@varveai/adit-engine";
|
|
14
|
+
/** `adit export <id>` — export a single event bundle */
|
|
15
|
+
export async function exportCommand(eventId, opts) {
|
|
16
|
+
const config = loadConfig();
|
|
17
|
+
const db = openDatabase(config.dbPath);
|
|
18
|
+
const timeline = createTimelineManager(db, config);
|
|
19
|
+
try {
|
|
20
|
+
const event = await timeline.get(eventId);
|
|
21
|
+
if (!event) {
|
|
22
|
+
console.error(`Event not found: ${eventId}`);
|
|
23
|
+
process.exit(1);
|
|
24
|
+
}
|
|
25
|
+
const diff = await timeline.getDiff(eventId);
|
|
26
|
+
const envSnapshot = event.envSnapshotId
|
|
27
|
+
? getEnvSnapshotById(db, event.envSnapshotId)
|
|
28
|
+
: null;
|
|
29
|
+
const bundle = buildEventBundle(event, diff, envSnapshot);
|
|
30
|
+
const output = JSON.stringify(bundle, null, 2);
|
|
31
|
+
if (opts.output) {
|
|
32
|
+
writeFileSync(opts.output, output);
|
|
33
|
+
console.log(`Exported to ${opts.output}`);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
console.log(output);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
finally {
|
|
40
|
+
closeDatabase(db);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/** `adit export session [session-id]` — export entire session */
|
|
44
|
+
export async function exportSessionCommand(sessionId, opts) {
|
|
45
|
+
const config = loadConfig();
|
|
46
|
+
const db = openDatabase(config.dbPath);
|
|
47
|
+
const timeline = createTimelineManager(db, config);
|
|
48
|
+
try {
|
|
49
|
+
let sid = sessionId;
|
|
50
|
+
if (!sid) {
|
|
51
|
+
const session = getActiveSession(db, config.projectId, config.clientId);
|
|
52
|
+
if (!session) {
|
|
53
|
+
console.error("No active session. Provide a session ID.");
|
|
54
|
+
process.exit(1);
|
|
55
|
+
}
|
|
56
|
+
sid = session.id;
|
|
57
|
+
}
|
|
58
|
+
const session = getSessionById(db, sid);
|
|
59
|
+
if (!session) {
|
|
60
|
+
console.error(`Session not found: ${sid}`);
|
|
61
|
+
process.exit(1);
|
|
62
|
+
}
|
|
63
|
+
let events = getEventsBySession(db, sid);
|
|
64
|
+
// Date range filter
|
|
65
|
+
if (opts?.from) {
|
|
66
|
+
const fromDate = new Date(opts.from).toISOString();
|
|
67
|
+
events = events.filter((e) => e.startedAt >= fromDate);
|
|
68
|
+
}
|
|
69
|
+
if (opts?.to) {
|
|
70
|
+
const toDate = new Date(opts.to).toISOString();
|
|
71
|
+
events = events.filter((e) => e.startedAt <= toDate);
|
|
72
|
+
}
|
|
73
|
+
const format = opts?.format ?? "json";
|
|
74
|
+
if (format === "markdown") {
|
|
75
|
+
const md = generateMarkdownReport(session, events, timeline, db, opts);
|
|
76
|
+
await outputResult(md, opts?.output, opts?.gzip);
|
|
77
|
+
}
|
|
78
|
+
else if (format === "jsonl") {
|
|
79
|
+
const lines = [];
|
|
80
|
+
// Header line
|
|
81
|
+
lines.push(JSON.stringify({
|
|
82
|
+
type: "session",
|
|
83
|
+
id: session.id,
|
|
84
|
+
platform: session.platform,
|
|
85
|
+
startedAt: session.startedAt,
|
|
86
|
+
endedAt: session.endedAt,
|
|
87
|
+
status: session.status,
|
|
88
|
+
}));
|
|
89
|
+
for (const event of events) {
|
|
90
|
+
const diff = opts?.includeDiffs ? await timeline.getDiff(event.id) : null;
|
|
91
|
+
const env = opts?.includeEnv && event.envSnapshotId
|
|
92
|
+
? getEnvSnapshotById(db, event.envSnapshotId)
|
|
93
|
+
: null;
|
|
94
|
+
lines.push(JSON.stringify({
|
|
95
|
+
type: "event",
|
|
96
|
+
...buildEventBundle(event, diff ?? undefined, env),
|
|
97
|
+
}));
|
|
98
|
+
}
|
|
99
|
+
await outputResult(lines.join("\n") + "\n", opts?.output, opts?.gzip);
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
// JSON
|
|
103
|
+
const bundle = {
|
|
104
|
+
version: "1.0",
|
|
105
|
+
exportedAt: new Date().toISOString(),
|
|
106
|
+
session: {
|
|
107
|
+
id: session.id,
|
|
108
|
+
platform: session.platform,
|
|
109
|
+
startedAt: session.startedAt,
|
|
110
|
+
endedAt: session.endedAt,
|
|
111
|
+
status: session.status,
|
|
112
|
+
},
|
|
113
|
+
events: events.map((e) => buildEventBundle(e, undefined, null)),
|
|
114
|
+
eventCount: events.length,
|
|
115
|
+
};
|
|
116
|
+
await outputResult(JSON.stringify(bundle, null, 2), opts?.output, opts?.gzip);
|
|
117
|
+
}
|
|
118
|
+
if (opts?.output) {
|
|
119
|
+
console.log(`Exported ${events.length} events to ${opts.output}${opts?.gzip ? ".gz" : ""}`);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
finally {
|
|
123
|
+
closeDatabase(db);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
function buildEventBundle(event, diff, envSnapshot) {
|
|
127
|
+
return {
|
|
128
|
+
version: "1.0",
|
|
129
|
+
exportedAt: new Date().toISOString(),
|
|
130
|
+
event: {
|
|
131
|
+
id: event.id,
|
|
132
|
+
sessionId: event.sessionId,
|
|
133
|
+
sequence: event.sequence,
|
|
134
|
+
eventType: event.eventType,
|
|
135
|
+
actor: event.actor,
|
|
136
|
+
startedAt: event.startedAt,
|
|
137
|
+
endedAt: event.endedAt,
|
|
138
|
+
status: event.status,
|
|
139
|
+
gitBranch: event.gitBranch,
|
|
140
|
+
gitHeadSha: event.gitHeadSha,
|
|
141
|
+
checkpointSha: event.checkpointSha,
|
|
142
|
+
labels: parseLabels(event.labelsJson),
|
|
143
|
+
fileStats: parseDiffStats(event.diffStatJson),
|
|
144
|
+
},
|
|
145
|
+
prompt: event.promptText ?? null,
|
|
146
|
+
chainOfThought: event.cotText ?? null,
|
|
147
|
+
response: event.responseText ?? null,
|
|
148
|
+
tool: event.toolName
|
|
149
|
+
? {
|
|
150
|
+
name: event.toolName,
|
|
151
|
+
input: event.toolInputJson ? JSON.parse(event.toolInputJson) : null,
|
|
152
|
+
output: event.toolOutputJson ? JSON.parse(event.toolOutputJson) : null,
|
|
153
|
+
}
|
|
154
|
+
: null,
|
|
155
|
+
diff: diff ?? null,
|
|
156
|
+
environment: envSnapshot
|
|
157
|
+
? {
|
|
158
|
+
gitBranch: envSnapshot.gitBranch,
|
|
159
|
+
gitHeadSha: envSnapshot.gitHeadSha,
|
|
160
|
+
nodeVersion: envSnapshot.nodeVersion,
|
|
161
|
+
pythonVersion: envSnapshot.pythonVersion,
|
|
162
|
+
osInfo: envSnapshot.osInfo,
|
|
163
|
+
depLockPath: envSnapshot.depLockPath,
|
|
164
|
+
depLockHash: envSnapshot.depLockHash,
|
|
165
|
+
}
|
|
166
|
+
: null,
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
function generateMarkdownReport(session, events, _timeline, _db, _opts) {
|
|
170
|
+
const lines = [];
|
|
171
|
+
lines.push(`# ADIT Session Export`);
|
|
172
|
+
lines.push("");
|
|
173
|
+
lines.push(`- **Session**: ${session.id}`);
|
|
174
|
+
lines.push(`- **Platform**: ${session.platform}`);
|
|
175
|
+
lines.push(`- **Started**: ${session.startedAt}`);
|
|
176
|
+
lines.push(`- **Ended**: ${session.endedAt ?? "(active)"}`);
|
|
177
|
+
lines.push(`- **Status**: ${session.status}`);
|
|
178
|
+
lines.push(`- **Events**: ${events.length}`);
|
|
179
|
+
lines.push("");
|
|
180
|
+
lines.push("## Timeline");
|
|
181
|
+
lines.push("");
|
|
182
|
+
for (const event of events) {
|
|
183
|
+
const time = event.startedAt.substring(5, 19).replace("T", " ");
|
|
184
|
+
const actor = event.actor[0].toUpperCase();
|
|
185
|
+
const checkpoint = event.checkpointSha ? " [checkpoint]" : "";
|
|
186
|
+
lines.push(`### ${time} [${actor}] ${event.eventType}${checkpoint}`);
|
|
187
|
+
lines.push("");
|
|
188
|
+
if (event.promptText) {
|
|
189
|
+
lines.push(`> ${event.promptText.substring(0, 500)}`);
|
|
190
|
+
lines.push("");
|
|
191
|
+
}
|
|
192
|
+
if (event.toolName) {
|
|
193
|
+
lines.push(`**Tool**: ${event.toolName}`);
|
|
194
|
+
lines.push("");
|
|
195
|
+
}
|
|
196
|
+
if (event.responseText) {
|
|
197
|
+
lines.push(`${event.responseText.substring(0, 500)}`);
|
|
198
|
+
lines.push("");
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
return lines.join("\n");
|
|
202
|
+
}
|
|
203
|
+
async function outputResult(content, outputPath, gzip) {
|
|
204
|
+
if (!outputPath) {
|
|
205
|
+
console.log(content);
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
if (gzip) {
|
|
209
|
+
const gzipPath = outputPath.endsWith(".gz") ? outputPath : `${outputPath}.gz`;
|
|
210
|
+
const readable = Readable.from([content]);
|
|
211
|
+
const gzipStream = createGzip();
|
|
212
|
+
const writable = createWriteStream(gzipPath);
|
|
213
|
+
await pipeline(readable, gzipStream, writable);
|
|
214
|
+
}
|
|
215
|
+
else {
|
|
216
|
+
writeFileSync(outputPath, content);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
//# sourceMappingURL=export.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EACL,UAAU,EACV,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,cAAc,GAEf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,wDAAwD;AACxD,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,OAAe,EACf,IAKC;IAED,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;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC7C,MAAM,WAAW,GAAG,KAAK,CAAC,aAAa;YACrC,CAAC,CAAC,kBAAkB,CAAC,EAAE,EAAE,KAAK,CAAC,aAAa,CAAC;YAC7C,CAAC,CAAC,IAAI,CAAC;QAET,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAE/C,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;YAAS,CAAC;QACT,aAAa,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,iEAAiE;AACjE,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,SAAkB,EAClB,IAQC;IAED,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,GAAG,GAAG,SAAS,CAAC;QACpB,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,OAAO,GAAG,gBAAgB,CAAC,EAAE,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YACxE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;gBAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,GAAG,GAAG,OAAO,CAAC,EAAE,CAAC;QACnB,CAAC;QAED,MAAM,OAAO,GAAG,cAAc,CAAC,EAAE,EAAE,GAAI,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,sBAAsB,GAAG,EAAE,CAAC,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,MAAM,GAAG,kBAAkB,CAAC,EAAE,EAAE,GAAI,CAAC,CAAC;QAE1C,oBAAoB;QACpB,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YACnD,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,QAAQ,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YAC/C,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,MAAM,CAAC;QAEtC,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;YAC1B,MAAM,EAAE,GAAG,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;YACvE,MAAM,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACnD,CAAC;aAAM,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,cAAc;YACd,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;gBACxB,IAAI,EAAE,SAAS;gBACf,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC,CAAC,CAAC;YAEJ,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,IAAI,GAAG,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC1E,MAAM,GAAG,GAAG,IAAI,EAAE,UAAU,IAAI,KAAK,CAAC,aAAa;oBACjD,CAAC,CAAC,kBAAkB,CAAC,EAAE,EAAE,KAAK,CAAC,aAAa,CAAC;oBAC7C,CAAC,CAAC,IAAI,CAAC;gBACT,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;oBACxB,IAAI,EAAE,OAAO;oBACb,GAAG,gBAAgB,CAAC,KAAK,EAAE,IAAI,IAAI,SAAS,EAAE,GAAG,CAAC;iBACnD,CAAC,CAAC,CAAC;YACN,CAAC;YAED,MAAM,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACxE,CAAC;aAAM,CAAC;YACN,OAAO;YACP,MAAM,MAAM,GAAG;gBACb,OAAO,EAAE,KAAK;gBACd,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACpC,OAAO,EAAE;oBACP,EAAE,EAAE,OAAO,CAAC,EAAE;oBACd,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,MAAM,EAAE,OAAO,CAAC,MAAM;iBACvB;gBACD,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;gBAC/D,UAAU,EAAE,MAAM,CAAC,MAAM;aAC1B,CAAC;YAEF,MAAM,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAChF,CAAC;QAED,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,MAAM,cAAc,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;YAAS,CAAC;QACT,aAAa,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CACvB,KAAgB,EAChB,IAAoB,EACpB,WAAuM;IAEvM,OAAO;QACL,OAAO,EAAE,KAAK;QACd,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACpC,KAAK,EAAE;YACL,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC;YACrC,SAAS,EAAE,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC;SAC9C;QACD,MAAM,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI;QAChC,cAAc,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI;QACrC,QAAQ,EAAE,KAAK,CAAC,YAAY,IAAI,IAAI;QACpC,IAAI,EAAE,KAAK,CAAC,QAAQ;YAClB,CAAC,CAAC;gBACE,IAAI,EAAE,KAAK,CAAC,QAAQ;gBACpB,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI;gBACnE,MAAM,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI;aACvE;YACH,CAAC,CAAC,IAAI;QACR,IAAI,EAAE,IAAI,IAAI,IAAI;QAClB,WAAW,EAAE,WAAW;YACtB,CAAC,CAAC;gBACE,SAAS,EAAE,WAAW,CAAC,SAAS;gBAChC,UAAU,EAAE,WAAW,CAAC,UAAU;gBAClC,WAAW,EAAE,WAAW,CAAC,WAAW;gBACpC,aAAa,EAAE,WAAW,CAAC,aAAa;gBACxC,MAAM,EAAE,WAAW,CAAC,MAAM;gBAC1B,WAAW,EAAE,WAAW,CAAC,WAAW;gBACpC,WAAW,EAAE,WAAW,CAAC,WAAW;aACrC;YACH,CAAC,CAAC,IAAI;KACT,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAC7B,OAAoG,EACpG,MAAmB,EACnB,SAAkB,EAClB,GAAY,EACZ,KAAwD;IAExD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACpC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,kBAAkB,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IAC3C,KAAK,CAAC,IAAI,CAAC,mBAAmB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAClD,KAAK,CAAC,IAAI,CAAC,kBAAkB,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IAClD,KAAK,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,OAAO,IAAI,UAAU,EAAE,CAAC,CAAC;IAC5D,KAAK,CAAC,IAAI,CAAC,iBAAiB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9C,KAAK,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAChE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,UAAU,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,KAAK,KAAK,KAAK,KAAK,CAAC,SAAS,GAAG,UAAU,EAAE,CAAC,CAAC;QACrE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YACtD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,KAAK,CAAC,IAAI,CAAC,aAAa,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC1C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QACD,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YACtD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,OAAe,EACf,UAAmB,EACnB,IAAc;IAEd,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,KAAK,CAAC;QAC9E,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAG,UAAU,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IACjD,CAAC;SAAM,CAAC;QACN,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `adit init` — Initialize ADIT in the current project.
|
|
3
|
+
*
|
|
4
|
+
* Creates the .adit/ data directory, initializes the database,
|
|
5
|
+
* and installs hooks for detected (or specified) AI platforms via adapters.
|
|
6
|
+
*/
|
|
7
|
+
export declare function initCommand(opts: {
|
|
8
|
+
cwd?: string;
|
|
9
|
+
platform?: string;
|
|
10
|
+
force?: boolean;
|
|
11
|
+
}): Promise<void>;
|
|
12
|
+
//# sourceMappingURL=init.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAcH,wBAAsB,WAAW,CAAC,IAAI,EAAE;IACtC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+HhB"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `adit init` — Initialize ADIT in the current project.
|
|
3
|
+
*
|
|
4
|
+
* Creates the .adit/ data directory, initializes the database,
|
|
5
|
+
* and installs hooks for detected (or specified) AI platforms via adapters.
|
|
6
|
+
*/
|
|
7
|
+
import { mkdirSync, readFileSync, writeFileSync, existsSync } from "node:fs";
|
|
8
|
+
import { join } from "node:path";
|
|
9
|
+
import { loadConfig, openDatabase, closeDatabase, findGitRoot } from "@varveai/adit-core";
|
|
10
|
+
import { isGitRepo } from "@varveai/adit-engine";
|
|
11
|
+
import { getAdapter, listAdapters, detectPlatforms, resolveAditHookBinary, } from "@varveai/adit-hooks/adapters";
|
|
12
|
+
export async function initCommand(opts) {
|
|
13
|
+
const cwd = opts.cwd ?? process.cwd();
|
|
14
|
+
console.log();
|
|
15
|
+
console.log(" ADIT — AI Development Intent Tracker");
|
|
16
|
+
console.log(" =====================================");
|
|
17
|
+
console.log();
|
|
18
|
+
// Verify we're in a git repo
|
|
19
|
+
if (!(await isGitRepo(cwd))) {
|
|
20
|
+
console.error(" [x] Not a git repository. Run 'git init' first.");
|
|
21
|
+
process.exit(1);
|
|
22
|
+
}
|
|
23
|
+
const config = loadConfig(cwd);
|
|
24
|
+
const gitRoot = findGitRoot(cwd) ?? cwd;
|
|
25
|
+
// --- Step 1: Clean up if --force ---
|
|
26
|
+
if (opts.force) {
|
|
27
|
+
console.log(" Removing existing hooks (--force)...");
|
|
28
|
+
for (const adapter of listAdapters()) {
|
|
29
|
+
if (adapter.hookMappings.length === 0)
|
|
30
|
+
continue;
|
|
31
|
+
try {
|
|
32
|
+
const result = await adapter.validateInstallation(gitRoot);
|
|
33
|
+
if (result.valid) {
|
|
34
|
+
await adapter.uninstallHooks(gitRoot);
|
|
35
|
+
console.log(` [~] Removed ${adapter.displayName} hooks`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
// best-effort cleanup
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
console.log();
|
|
43
|
+
}
|
|
44
|
+
// --- Step 2: Data directory & database ---
|
|
45
|
+
console.log(" Setup");
|
|
46
|
+
console.log(" -----");
|
|
47
|
+
mkdirSync(config.dataDir, { recursive: true });
|
|
48
|
+
console.log(` [+] Data directory: ${config.dataDir}`);
|
|
49
|
+
const db = openDatabase(config.dbPath);
|
|
50
|
+
closeDatabase(db);
|
|
51
|
+
console.log(` [+] Database: ${config.dbPath}`);
|
|
52
|
+
// Add .adit/ to .gitignore if not already there
|
|
53
|
+
const gitignorePath = join(gitRoot, ".gitignore");
|
|
54
|
+
if (existsSync(gitignorePath)) {
|
|
55
|
+
const content = readFileSync(gitignorePath, "utf-8");
|
|
56
|
+
if (!content.includes(".adit/")) {
|
|
57
|
+
writeFileSync(gitignorePath, content.trimEnd() + "\n.adit/\n");
|
|
58
|
+
console.log(" [+] Added .adit/ to .gitignore");
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
console.log(" [+] .gitignore already includes .adit/");
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
writeFileSync(gitignorePath, ".adit/\n");
|
|
66
|
+
console.log(" [+] Created .gitignore with .adit/");
|
|
67
|
+
}
|
|
68
|
+
// --- Step 3: Platform detection & hook installation ---
|
|
69
|
+
console.log();
|
|
70
|
+
console.log(" Platforms");
|
|
71
|
+
console.log(" ---------");
|
|
72
|
+
const aditBinaryPath = resolveAditHookBinary();
|
|
73
|
+
const installed = [];
|
|
74
|
+
const skipped = [];
|
|
75
|
+
if (opts.platform) {
|
|
76
|
+
// Explicit platform specified
|
|
77
|
+
const platform = opts.platform;
|
|
78
|
+
try {
|
|
79
|
+
const adapter = getAdapter(platform);
|
|
80
|
+
await adapter.installHooks(gitRoot, aditBinaryPath);
|
|
81
|
+
installed.push(adapter.displayName);
|
|
82
|
+
console.log(` [+] ${adapter.displayName} — ${adapter.hookMappings.length} hook events installed`);
|
|
83
|
+
}
|
|
84
|
+
catch (err) {
|
|
85
|
+
skipped.push(platform);
|
|
86
|
+
console.log(` [x] ${platform} — install failed: ${err.message}`);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
// Auto-detect: install hooks for all detected platforms
|
|
91
|
+
const platforms = detectPlatforms(gitRoot);
|
|
92
|
+
if (platforms.length === 0) {
|
|
93
|
+
console.log(" [ ] No AI platforms detected in this project.");
|
|
94
|
+
console.log(" Supported: Claude Code (.claude/), OpenCode (.opencode/)");
|
|
95
|
+
console.log(" Run 'adit plugin install <platform>' to add one manually.");
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
for (const platform of platforms) {
|
|
99
|
+
try {
|
|
100
|
+
const adapter = getAdapter(platform);
|
|
101
|
+
// Skip stub adapters (no hook mappings)
|
|
102
|
+
if (adapter.hookMappings.length === 0) {
|
|
103
|
+
skipped.push(adapter.displayName);
|
|
104
|
+
console.log(` [-] ${adapter.displayName} — detected but not yet supported`);
|
|
105
|
+
continue;
|
|
106
|
+
}
|
|
107
|
+
await adapter.installHooks(gitRoot, aditBinaryPath);
|
|
108
|
+
installed.push(adapter.displayName);
|
|
109
|
+
console.log(` [+] ${adapter.displayName} — ${adapter.hookMappings.length} hook events installed`);
|
|
110
|
+
}
|
|
111
|
+
catch (err) {
|
|
112
|
+
skipped.push(platform);
|
|
113
|
+
console.log(` [x] ${platform} — install failed: ${err.message}`);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
// --- Summary ---
|
|
119
|
+
console.log();
|
|
120
|
+
if (installed.length > 0) {
|
|
121
|
+
console.log(" Done! ADIT is ready.");
|
|
122
|
+
console.log();
|
|
123
|
+
console.log(` Installed for: ${installed.join(", ")}`);
|
|
124
|
+
console.log(" Run 'adit list' to view the timeline after your first prompt.");
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
console.log(" Done! ADIT data directory is ready.");
|
|
128
|
+
console.log();
|
|
129
|
+
console.log(" No platform hooks were installed.");
|
|
130
|
+
console.log(" Run 'adit plugin install <platform>' when you're ready to add one.");
|
|
131
|
+
}
|
|
132
|
+
if (skipped.length > 0) {
|
|
133
|
+
console.log(` Skipped: ${skipped.join(", ")}`);
|
|
134
|
+
}
|
|
135
|
+
console.log();
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `adit list` — Show timeline entries.
|
|
3
|
+
*
|
|
4
|
+
* Displays a compact, token-efficient table of recent events.
|
|
5
|
+
*/
|
|
6
|
+
import { type AditEvent } from "@varveai/adit-core";
|
|
7
|
+
export type SortField = "ACTOR" | "TIME";
|
|
8
|
+
export interface ListCommandOptions {
|
|
9
|
+
limit?: number;
|
|
10
|
+
actor?: string;
|
|
11
|
+
type?: string;
|
|
12
|
+
checkpoints?: boolean;
|
|
13
|
+
query?: string;
|
|
14
|
+
expand?: boolean;
|
|
15
|
+
sort?: SortField;
|
|
16
|
+
json?: boolean;
|
|
17
|
+
}
|
|
18
|
+
export declare function listCommand(opts: ListCommandOptions): Promise<void>;
|
|
19
|
+
export declare function sortEvents(events: AditEvent[], field: SortField): AditEvent[];
|
|
20
|
+
//# sourceMappingURL=list.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAA2C,KAAK,SAAS,EAA8B,MAAM,oBAAoB,CAAC;AAMzH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AAEzC,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmEzE;AAoCD,wBAAgB,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,GAAG,SAAS,EAAE,CAY7E"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `adit list` — Show timeline entries.
|
|
3
|
+
*
|
|
4
|
+
* Displays a compact, token-efficient table of recent events.
|
|
5
|
+
*/
|
|
6
|
+
import { loadConfig, openDatabase, closeDatabase } from "@varveai/adit-core";
|
|
7
|
+
import { getEventSummary } from "../utils/summary.js";
|
|
8
|
+
import { padRight, formatDateTime } from "../utils/format.js";
|
|
9
|
+
import { createTimelineManager } from "@varveai/adit-engine";
|
|
10
|
+
import pc from "picocolors";
|
|
11
|
+
export async function listCommand(opts) {
|
|
12
|
+
const config = loadConfig();
|
|
13
|
+
const db = openDatabase(config.dbPath);
|
|
14
|
+
const timeline = createTimelineManager(db, config);
|
|
15
|
+
try {
|
|
16
|
+
let events;
|
|
17
|
+
if (opts.query) {
|
|
18
|
+
events = await timeline.search(opts.query, opts.limit ?? 20);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
events = await timeline.list({
|
|
22
|
+
actor: opts.actor,
|
|
23
|
+
eventType: opts.type,
|
|
24
|
+
hasCheckpoint: opts.checkpoints,
|
|
25
|
+
limit: opts.limit ?? 50,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
if (events.length === 0) {
|
|
29
|
+
console.log("No events found.");
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
// Sort events — default is TIME (descending, most recent first)
|
|
33
|
+
const sortField = opts.sort ?? "TIME";
|
|
34
|
+
events = sortEvents(events, sortField);
|
|
35
|
+
// JSON output
|
|
36
|
+
if (opts.json) {
|
|
37
|
+
console.log(JSON.stringify(events, null, 2));
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
// Print header
|
|
41
|
+
console.log(pc.bold(padRight("ID", 12) +
|
|
42
|
+
padRight("ACTOR", 6) +
|
|
43
|
+
padRight("TYPE", 20) +
|
|
44
|
+
padRight("TIME", 20) +
|
|
45
|
+
"SUMMARY"));
|
|
46
|
+
console.log(pc.dim("-".repeat(85)));
|
|
47
|
+
for (const event of events) {
|
|
48
|
+
const actor = actorSymbol(event.actor);
|
|
49
|
+
const time = formatDateTime(event.startedAt);
|
|
50
|
+
const summary = getSummary(event, opts.expand);
|
|
51
|
+
const idShort = event.id.substring(0, 10);
|
|
52
|
+
const checkpoint = event.checkpointSha ? " " + pc.green("*") : "";
|
|
53
|
+
console.log(pc.dim(padRight(idShort, 12)) +
|
|
54
|
+
colorActor(padRight(actor, 6), event.actor) +
|
|
55
|
+
padRight(event.eventType, 20) +
|
|
56
|
+
pc.dim(padRight(time, 20)) +
|
|
57
|
+
summary +
|
|
58
|
+
checkpoint);
|
|
59
|
+
}
|
|
60
|
+
console.log(pc.dim(`\n${events.length} events shown (sorted by ${sortField}).`));
|
|
61
|
+
}
|
|
62
|
+
finally {
|
|
63
|
+
closeDatabase(db);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
function actorSymbol(actor) {
|
|
67
|
+
switch (actor) {
|
|
68
|
+
case "assistant":
|
|
69
|
+
return "[A]";
|
|
70
|
+
case "user":
|
|
71
|
+
return "[U]";
|
|
72
|
+
case "tool":
|
|
73
|
+
return "[T]";
|
|
74
|
+
case "system":
|
|
75
|
+
return "[S]";
|
|
76
|
+
default:
|
|
77
|
+
return "[?]";
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
function colorActor(text, actor) {
|
|
81
|
+
switch (actor) {
|
|
82
|
+
case "assistant":
|
|
83
|
+
return pc.green(text);
|
|
84
|
+
case "user":
|
|
85
|
+
return pc.cyan(text);
|
|
86
|
+
case "tool":
|
|
87
|
+
return pc.yellow(text);
|
|
88
|
+
case "system":
|
|
89
|
+
return pc.magenta(text);
|
|
90
|
+
default:
|
|
91
|
+
return text;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
function getSummary(event, expand) {
|
|
95
|
+
return getEventSummary(event, expand ? 200 : 60);
|
|
96
|
+
}
|
|
97
|
+
export function sortEvents(events, field) {
|
|
98
|
+
const sorted = [...events];
|
|
99
|
+
switch (field) {
|
|
100
|
+
case "ACTOR":
|
|
101
|
+
sorted.sort((a, b) => a.actor.localeCompare(b.actor));
|
|
102
|
+
break;
|
|
103
|
+
case "TIME":
|
|
104
|
+
default:
|
|
105
|
+
sorted.sort((a, b) => b.startedAt.localeCompare(a.startedAt));
|
|
106
|
+
break;
|
|
107
|
+
}
|
|
108
|
+
return sorted;
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `adit perf` — Performance stats for time-sensitive operations.
|
|
3
|
+
*
|
|
4
|
+
* Reads daily JSONL perf logs from .adit/perf-logs/ and generates
|
|
5
|
+
* an aggregated stats report showing call counts, timing distributions,
|
|
6
|
+
* and failure rates.
|
|
7
|
+
*/
|
|
8
|
+
/** Show performance stats report */
|
|
9
|
+
export declare function perfCommand(opts?: {
|
|
10
|
+
from?: string;
|
|
11
|
+
to?: string;
|
|
12
|
+
category?: string;
|
|
13
|
+
json?: boolean;
|
|
14
|
+
}): void;
|
|
15
|
+
/** Clear all performance logs */
|
|
16
|
+
export declare function perfClearCommand(opts?: {
|
|
17
|
+
json?: boolean;
|
|
18
|
+
}): void;
|
|
19
|
+
//# sourceMappingURL=perf.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"perf.d.ts","sourceRoot":"","sources":["../../src/commands/perf.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAUH,oCAAoC;AACpC,wBAAgB,WAAW,CAAC,IAAI,CAAC,EAAE;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,GAAG,IAAI,CAiBP;AAED,iCAAiC;AACjC,wBAAgB,gBAAgB,CAAC,IAAI,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAchE"}
|