@codified/cli 0.3.5 → 0.3.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +115 -0
- package/dist/commands/add.d.ts +3 -0
- package/dist/commands/add.d.ts.map +1 -0
- package/dist/commands/add.js +163 -0
- package/dist/commands/add.js.map +1 -0
- package/dist/commands/bootstrap.d.ts.map +1 -0
- package/dist/commands/bootstrap.js +141 -0
- package/dist/commands/bootstrap.js.map +1 -0
- package/dist/commands/check.d.ts +3 -0
- package/dist/commands/check.d.ts.map +1 -0
- package/dist/commands/check.js +332 -0
- package/dist/commands/check.js.map +1 -0
- package/dist/commands/cleanup.d.ts +3 -0
- package/dist/commands/cleanup.d.ts.map +1 -0
- package/dist/commands/cleanup.js +166 -0
- package/dist/commands/cleanup.js.map +1 -0
- package/dist/commands/collect.d.ts +26 -0
- package/dist/commands/collect.d.ts.map +1 -0
- package/dist/commands/collect.js +269 -0
- package/dist/commands/collect.js.map +1 -0
- package/dist/commands/connect.d.ts +3 -0
- package/dist/commands/connect.d.ts.map +1 -0
- package/dist/commands/connect.js +321 -0
- package/dist/commands/connect.js.map +1 -0
- package/dist/commands/explain.d.ts +3 -0
- package/dist/commands/explain.d.ts.map +1 -0
- package/dist/commands/explain.js +527 -0
- package/dist/commands/explain.js.map +1 -0
- package/dist/commands/export.d.ts +3 -0
- package/dist/commands/export.d.ts.map +1 -0
- package/dist/commands/export.js +59 -0
- package/dist/commands/export.js.map +1 -0
- package/dist/commands/gaps.d.ts +3 -0
- package/dist/commands/gaps.d.ts.map +1 -0
- package/dist/commands/gaps.js +315 -0
- package/dist/commands/gaps.js.map +1 -0
- package/dist/commands/graph.d.ts +3 -0
- package/dist/commands/graph.d.ts.map +1 -0
- package/dist/commands/graph.js +293 -0
- package/dist/commands/graph.js.map +1 -0
- package/dist/commands/import-cmd.d.ts +3 -0
- package/dist/commands/import-cmd.d.ts.map +1 -0
- package/dist/commands/import-cmd.js +199 -0
- package/dist/commands/import-cmd.js.map +1 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +215 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/project.d.ts +3 -0
- package/dist/commands/project.d.ts.map +1 -0
- package/dist/commands/project.js +179 -0
- package/dist/commands/project.js.map +1 -0
- package/dist/commands/reset.d.ts +3 -0
- package/dist/commands/reset.d.ts.map +1 -0
- package/dist/commands/reset.js +157 -0
- package/dist/commands/reset.js.map +1 -0
- package/dist/commands/search.d.ts +3 -0
- package/dist/commands/search.d.ts.map +1 -0
- package/dist/commands/search.js +183 -0
- package/dist/commands/search.js.map +1 -0
- package/dist/commands/start.d.ts.map +1 -0
- package/dist/commands/start.js +205 -0
- package/dist/commands/start.js.map +1 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +242 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/timeline.d.ts +3 -0
- package/dist/commands/timeline.d.ts.map +1 -0
- package/dist/commands/timeline.js +424 -0
- package/dist/commands/timeline.js.map +1 -0
- package/dist/commands/triage.d.ts +3 -0
- package/dist/commands/triage.d.ts.map +1 -0
- package/dist/commands/triage.js +336 -0
- package/dist/commands/triage.js.map +1 -0
- package/dist/commands/up.d.ts +3 -0
- package/dist/commands/up.d.ts.map +1 -0
- package/dist/commands/up.js +312 -0
- package/dist/commands/up.js.map +1 -0
- package/dist/commands/watch.d.ts +3 -0
- package/dist/commands/watch.d.ts.map +1 -0
- package/dist/commands/watch.js +224 -0
- package/dist/commands/watch.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +636 -506
- package/dist/index.js.map +1 -0
- package/dist/lib/config.d.ts +52 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +142 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/docker.d.ts +23 -0
- package/dist/lib/docker.d.ts.map +1 -0
- package/dist/lib/docker.js +84 -0
- package/dist/lib/docker.js.map +1 -0
- package/dist/lib/migrate.d.ts +9 -0
- package/dist/lib/migrate.d.ts.map +1 -0
- package/dist/lib/migrate.js +97 -0
- package/dist/lib/migrate.js.map +1 -0
- package/dist/lib/paths.d.ts +9 -0
- package/dist/lib/paths.d.ts.map +1 -0
- package/dist/lib/paths.js +28 -0
- package/dist/lib/paths.js.map +1 -0
- package/dist/lib/prompt.d.ts +14 -0
- package/dist/lib/prompt.d.ts.map +1 -0
- package/dist/lib/prompt.js +87 -0
- package/dist/lib/prompt.js.map +1 -0
- package/package.json +4 -2
|
@@ -0,0 +1,424 @@
|
|
|
1
|
+
// codify timeline — chronological view of graph evolution
|
|
2
|
+
import { Command } from "commander";
|
|
3
|
+
import { loadProjectConfig } from "../lib/config.js";
|
|
4
|
+
// --- ANSI color helpers ---
|
|
5
|
+
const RESET = "\x1b[0m";
|
|
6
|
+
const BOLD = "\x1b[1m";
|
|
7
|
+
const DIM = "\x1b[2m";
|
|
8
|
+
const GREEN = "\x1b[32m";
|
|
9
|
+
const YELLOW = "\x1b[33m";
|
|
10
|
+
const RED = "\x1b[31m";
|
|
11
|
+
const CYAN = "\x1b[36m";
|
|
12
|
+
// --- Duration parsing ---
|
|
13
|
+
/**
|
|
14
|
+
* Parse a relative duration string (e.g. "7d", "2w", "1m") into milliseconds.
|
|
15
|
+
*/
|
|
16
|
+
function parseDuration(input) {
|
|
17
|
+
const match = input.match(/^(\d+)(d|w|m)$/);
|
|
18
|
+
if (!match)
|
|
19
|
+
return null;
|
|
20
|
+
const value = parseInt(match[1], 10);
|
|
21
|
+
const unit = match[2];
|
|
22
|
+
switch (unit) {
|
|
23
|
+
case "d":
|
|
24
|
+
return value * 24 * 60 * 60 * 1000;
|
|
25
|
+
case "w":
|
|
26
|
+
return value * 7 * 24 * 60 * 60 * 1000;
|
|
27
|
+
case "m":
|
|
28
|
+
return value * 30 * 24 * 60 * 60 * 1000;
|
|
29
|
+
default:
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Resolve the cutoff date from --last or --since flags.
|
|
35
|
+
* Defaults to 7 days ago.
|
|
36
|
+
*/
|
|
37
|
+
function resolveCutoff(opts) {
|
|
38
|
+
if (opts.since) {
|
|
39
|
+
const d = new Date(opts.since);
|
|
40
|
+
if (isNaN(d.getTime())) {
|
|
41
|
+
console.error(`\n ERROR: Invalid date "${opts.since}". Use YYYY-MM-DD format.\n`);
|
|
42
|
+
process.exit(1);
|
|
43
|
+
}
|
|
44
|
+
return d;
|
|
45
|
+
}
|
|
46
|
+
if (opts.last) {
|
|
47
|
+
const ms = parseDuration(opts.last);
|
|
48
|
+
if (ms === null) {
|
|
49
|
+
console.error(`\n ERROR: Invalid duration "${opts.last}". Use formats like 7d, 2w, 1m.\n`);
|
|
50
|
+
process.exit(1);
|
|
51
|
+
}
|
|
52
|
+
return new Date(Date.now() - ms);
|
|
53
|
+
}
|
|
54
|
+
// Default: 7 days
|
|
55
|
+
return new Date(Date.now() - 7 * 24 * 60 * 60 * 1000);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Build a human-readable label for the time range.
|
|
59
|
+
*/
|
|
60
|
+
function rangeLabel(opts) {
|
|
61
|
+
if (opts.since)
|
|
62
|
+
return `since ${opts.since}`;
|
|
63
|
+
if (opts.last)
|
|
64
|
+
return `last ${opts.last}`;
|
|
65
|
+
return "last 7 days";
|
|
66
|
+
}
|
|
67
|
+
// --- Command definition ---
|
|
68
|
+
export const timelineCommand = new Command("timeline")
|
|
69
|
+
.description("Show chronological view of graph evolution")
|
|
70
|
+
.option("--last <duration>", "Relative time range (e.g. 7d, 2w, 1m)")
|
|
71
|
+
.option("--since <date>", "Absolute start date (YYYY-MM-DD)")
|
|
72
|
+
.option("--type <type>", "Filter by node type")
|
|
73
|
+
.option("--json", "Output raw JSON")
|
|
74
|
+
.action(async (opts) => {
|
|
75
|
+
try {
|
|
76
|
+
await loadProjectConfig();
|
|
77
|
+
const { getPool, closePool } = await import("@codify/graph");
|
|
78
|
+
const pool = getPool();
|
|
79
|
+
try {
|
|
80
|
+
await pool.query("SELECT 1");
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
console.error(" ERROR: Cannot connect to PostgreSQL. Run 'codify init' first.\n");
|
|
84
|
+
process.exit(1);
|
|
85
|
+
}
|
|
86
|
+
const cutoff = resolveCutoff(opts);
|
|
87
|
+
const events = [];
|
|
88
|
+
// --- Query 1: New nodes created in range ---
|
|
89
|
+
{
|
|
90
|
+
const typeFilter = opts.type ? "AND type = $2" : "";
|
|
91
|
+
const params = [cutoff.toISOString()];
|
|
92
|
+
if (opts.type)
|
|
93
|
+
params.push(opts.type);
|
|
94
|
+
const result = await pool.query(`SELECT id, type, properties, metadata, created_at,
|
|
95
|
+
source_system, source_reference
|
|
96
|
+
FROM nodes
|
|
97
|
+
WHERE created_at >= $1 AND superseded_by IS NULL ${typeFilter}
|
|
98
|
+
ORDER BY created_at DESC`, params);
|
|
99
|
+
for (const row of result.rows) {
|
|
100
|
+
const props = row.properties ?? {};
|
|
101
|
+
const meta = row.metadata ?? {};
|
|
102
|
+
const title = props.title ??
|
|
103
|
+
meta.title ??
|
|
104
|
+
props.name ??
|
|
105
|
+
meta.name ??
|
|
106
|
+
"";
|
|
107
|
+
const created = new Date(row.created_at);
|
|
108
|
+
events.push({
|
|
109
|
+
day: created.toISOString().slice(0, 10),
|
|
110
|
+
timestamp: created,
|
|
111
|
+
kind: "addition",
|
|
112
|
+
type: row.type,
|
|
113
|
+
title,
|
|
114
|
+
source: row.source_system,
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
// --- Query 2: Gap status changes (updated but not just created) ---
|
|
119
|
+
if (!opts.type || opts.type === "Gap") {
|
|
120
|
+
const gapResult = await pool.query(`SELECT id, type, properties, metadata, created_at, updated_at
|
|
121
|
+
FROM nodes
|
|
122
|
+
WHERE type = 'Gap' AND updated_at >= $1 AND updated_at != created_at
|
|
123
|
+
AND superseded_by IS NULL
|
|
124
|
+
ORDER BY updated_at DESC`, [cutoff.toISOString()]);
|
|
125
|
+
for (const row of gapResult.rows) {
|
|
126
|
+
const props = row.properties ?? {};
|
|
127
|
+
const meta = row.metadata ?? {};
|
|
128
|
+
const title = props.title ??
|
|
129
|
+
meta.title ??
|
|
130
|
+
props.description?.slice(0, 60) ??
|
|
131
|
+
meta.description?.slice(0, 60) ??
|
|
132
|
+
"";
|
|
133
|
+
const status = props.status ??
|
|
134
|
+
meta.status ??
|
|
135
|
+
"updated";
|
|
136
|
+
const updated = new Date(row.updated_at);
|
|
137
|
+
events.push({
|
|
138
|
+
day: updated.toISOString().slice(0, 10),
|
|
139
|
+
timestamp: updated,
|
|
140
|
+
kind: "gap_change",
|
|
141
|
+
type: "Gap",
|
|
142
|
+
title,
|
|
143
|
+
detail: status.toUpperCase(),
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
// --- Query 3: Metabolism audit events (if the table exists) ---
|
|
148
|
+
if (!opts.type) {
|
|
149
|
+
try {
|
|
150
|
+
const metabResult = await pool.query(`SELECT event_type, action, reason, created_at
|
|
151
|
+
FROM metabolism_audit
|
|
152
|
+
WHERE created_at >= $1
|
|
153
|
+
ORDER BY created_at DESC`, [cutoff.toISOString()]);
|
|
154
|
+
for (const row of metabResult.rows) {
|
|
155
|
+
const created = new Date(row.created_at);
|
|
156
|
+
const reason = row.reason ? ` -- ${row.reason}` : "";
|
|
157
|
+
events.push({
|
|
158
|
+
day: created.toISOString().slice(0, 10),
|
|
159
|
+
timestamp: created,
|
|
160
|
+
kind: "metabolism",
|
|
161
|
+
detail: `${row.event_type} ${row.action}${reason}`,
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
catch {
|
|
166
|
+
// metabolism_audit table may not exist yet — skip silently
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
// --- Group events by day ---
|
|
170
|
+
const dayMap = new Map();
|
|
171
|
+
for (const ev of events) {
|
|
172
|
+
const existing = dayMap.get(ev.day);
|
|
173
|
+
if (existing) {
|
|
174
|
+
existing.push(ev);
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
dayMap.set(ev.day, [ev]);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
// Sort days descending
|
|
181
|
+
const sortedDays = [...dayMap.keys()].sort((a, b) => b.localeCompare(a));
|
|
182
|
+
const dayLines = new Map();
|
|
183
|
+
// Summary counters
|
|
184
|
+
let totalAdded = 0;
|
|
185
|
+
let gapsOpened = 0;
|
|
186
|
+
let gapsResolved = 0;
|
|
187
|
+
let gapsDismissed = 0;
|
|
188
|
+
let metabolismCount = 0;
|
|
189
|
+
for (const day of sortedDays) {
|
|
190
|
+
const dayEvents = dayMap.get(day);
|
|
191
|
+
const lines = [];
|
|
192
|
+
// Group additions by (type, source)
|
|
193
|
+
const additionGroups = new Map();
|
|
194
|
+
const gapChanges = [];
|
|
195
|
+
const gapDetections = [];
|
|
196
|
+
const metabolismEvents = [];
|
|
197
|
+
for (const ev of dayEvents) {
|
|
198
|
+
if (ev.kind === "addition") {
|
|
199
|
+
// Newly created Gap nodes are "gap detected"
|
|
200
|
+
if (ev.type === "Gap") {
|
|
201
|
+
gapDetections.push(ev);
|
|
202
|
+
gapsOpened++;
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
const key = `${ev.type}||${ev.source ?? "unknown"}`;
|
|
206
|
+
const group = additionGroups.get(key);
|
|
207
|
+
if (group) {
|
|
208
|
+
group.count++;
|
|
209
|
+
if (ev.title && group.titles.length < 3)
|
|
210
|
+
group.titles.push(ev.title);
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
additionGroups.set(key, {
|
|
214
|
+
count: 1,
|
|
215
|
+
titles: ev.title ? [ev.title] : [],
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
totalAdded++;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
else if (ev.kind === "gap_change") {
|
|
222
|
+
gapChanges.push(ev);
|
|
223
|
+
const detail = ev.detail?.toUpperCase() ?? "";
|
|
224
|
+
if (detail.includes("RESOLVED"))
|
|
225
|
+
gapsResolved++;
|
|
226
|
+
else if (detail.includes("DISMISSED"))
|
|
227
|
+
gapsDismissed++;
|
|
228
|
+
}
|
|
229
|
+
else if (ev.kind === "metabolism") {
|
|
230
|
+
metabolismEvents.push(ev);
|
|
231
|
+
metabolismCount++;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
// Emit addition lines
|
|
235
|
+
for (const [key, group] of additionGroups) {
|
|
236
|
+
const [type, source] = key.split("||");
|
|
237
|
+
const sourceLabel = source && source !== "unknown" ? ` (${source})` : "";
|
|
238
|
+
if (group.count === 1 && group.titles[0]) {
|
|
239
|
+
lines.push({
|
|
240
|
+
kind: "addition",
|
|
241
|
+
text: `${type}: "${truncate(group.titles[0], 60)}"${sourceLabel}`,
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
else if (group.count <= 3 && group.titles.length === group.count) {
|
|
245
|
+
// Show each individually
|
|
246
|
+
for (const title of group.titles) {
|
|
247
|
+
lines.push({
|
|
248
|
+
kind: "addition",
|
|
249
|
+
text: `${type}: "${truncate(title, 60)}"${sourceLabel}`,
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
else {
|
|
254
|
+
lines.push({
|
|
255
|
+
kind: "addition_group",
|
|
256
|
+
text: `${group.count} ${type}${group.count > 1 ? "s" : ""} added${sourceLabel}`,
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
// Emit gap detection lines
|
|
261
|
+
if (gapDetections.length > 0) {
|
|
262
|
+
// Count by severity
|
|
263
|
+
const severityCounts = {};
|
|
264
|
+
for (const g of gapDetections) {
|
|
265
|
+
const sev = (g.severity) ??
|
|
266
|
+
(g
|
|
267
|
+
.detail) ??
|
|
268
|
+
"unknown";
|
|
269
|
+
// Extract severity from properties if stored there
|
|
270
|
+
severityCounts[sev] = (severityCounts[sev] ?? 0) + 1;
|
|
271
|
+
}
|
|
272
|
+
if (gapDetections.length <= 3) {
|
|
273
|
+
for (const g of gapDetections) {
|
|
274
|
+
const title = g.title ? `"${truncate(g.title, 60)}"` : "(untitled)";
|
|
275
|
+
lines.push({
|
|
276
|
+
kind: "gap_detected",
|
|
277
|
+
text: `New gap: ${title}`,
|
|
278
|
+
});
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
else {
|
|
282
|
+
lines.push({
|
|
283
|
+
kind: "gap_detected",
|
|
284
|
+
text: `${gapDetections.length} new gaps detected`,
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
totalAdded += gapDetections.length;
|
|
288
|
+
}
|
|
289
|
+
// Emit gap change lines (group if more than 3)
|
|
290
|
+
if (gapChanges.length <= 3) {
|
|
291
|
+
for (const gc of gapChanges) {
|
|
292
|
+
const title = gc.title ? `"${truncate(gc.title, 60)}"` : "(untitled)";
|
|
293
|
+
const status = gc.detail ?? "UPDATED";
|
|
294
|
+
lines.push({
|
|
295
|
+
kind: "gap_change",
|
|
296
|
+
text: `Gap ${status}: ${title}`,
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
else {
|
|
301
|
+
// Group by status
|
|
302
|
+
const statusGroups = new Map();
|
|
303
|
+
for (const gc of gapChanges) {
|
|
304
|
+
const status = gc.detail ?? "UPDATED";
|
|
305
|
+
statusGroups.set(status, (statusGroups.get(status) ?? 0) + 1);
|
|
306
|
+
}
|
|
307
|
+
for (const [status, count] of statusGroups) {
|
|
308
|
+
lines.push({
|
|
309
|
+
kind: "gap_change",
|
|
310
|
+
text: `${count} gaps ${status.toLowerCase()}`,
|
|
311
|
+
});
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
// Emit metabolism lines
|
|
315
|
+
for (const me of metabolismEvents) {
|
|
316
|
+
lines.push({
|
|
317
|
+
kind: "metabolism",
|
|
318
|
+
text: `Metabolism: ${me.detail ?? "activity"}`,
|
|
319
|
+
});
|
|
320
|
+
}
|
|
321
|
+
dayLines.set(day, lines);
|
|
322
|
+
}
|
|
323
|
+
// --- JSON output ---
|
|
324
|
+
if (opts.json) {
|
|
325
|
+
const jsonOutput = {};
|
|
326
|
+
for (const day of sortedDays) {
|
|
327
|
+
jsonOutput[day] = dayLines.get(day).map((l) => ({
|
|
328
|
+
kind: l.kind,
|
|
329
|
+
text: l.text,
|
|
330
|
+
}));
|
|
331
|
+
}
|
|
332
|
+
console.log(JSON.stringify({
|
|
333
|
+
range: rangeLabel(opts),
|
|
334
|
+
cutoff: cutoff.toISOString(),
|
|
335
|
+
days: jsonOutput,
|
|
336
|
+
summary: {
|
|
337
|
+
total_added: totalAdded,
|
|
338
|
+
gaps_opened: gapsOpened,
|
|
339
|
+
gaps_resolved: gapsResolved,
|
|
340
|
+
gaps_dismissed: gapsDismissed,
|
|
341
|
+
metabolism_events: metabolismCount,
|
|
342
|
+
},
|
|
343
|
+
}, null, 2));
|
|
344
|
+
await closePool();
|
|
345
|
+
return;
|
|
346
|
+
}
|
|
347
|
+
// --- Pretty output ---
|
|
348
|
+
console.log(`\n ${BOLD}Codify — Timeline (${rangeLabel(opts)})${RESET}\n`);
|
|
349
|
+
if (sortedDays.length === 0) {
|
|
350
|
+
console.log(` No activity found in this time range.`);
|
|
351
|
+
console.log(` Try a longer range: codify timeline --last 2w\n`);
|
|
352
|
+
await closePool();
|
|
353
|
+
return;
|
|
354
|
+
}
|
|
355
|
+
for (const day of sortedDays) {
|
|
356
|
+
console.log(` ${BOLD}${day}${RESET}`);
|
|
357
|
+
const lines = dayLines.get(day);
|
|
358
|
+
for (const line of lines) {
|
|
359
|
+
switch (line.kind) {
|
|
360
|
+
case "addition":
|
|
361
|
+
console.log(` ${GREEN}+${RESET} ${line.text}`);
|
|
362
|
+
break;
|
|
363
|
+
case "addition_group":
|
|
364
|
+
console.log(` ${GREEN}+${RESET} ${line.text}`);
|
|
365
|
+
break;
|
|
366
|
+
case "gap_detected":
|
|
367
|
+
console.log(` ${RED}!${RESET} ${line.text}`);
|
|
368
|
+
break;
|
|
369
|
+
case "gap_change":
|
|
370
|
+
console.log(` ${YELLOW}~${RESET} ${line.text}`);
|
|
371
|
+
break;
|
|
372
|
+
case "metabolism":
|
|
373
|
+
console.log(` ${CYAN}*${RESET} ${line.text}`);
|
|
374
|
+
break;
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
console.log("");
|
|
378
|
+
}
|
|
379
|
+
// Summary line
|
|
380
|
+
const parts = [];
|
|
381
|
+
if (totalAdded > 0)
|
|
382
|
+
parts.push(`${totalAdded} nodes added`);
|
|
383
|
+
if (gapsOpened > 0)
|
|
384
|
+
parts.push(`${gapsOpened} gaps opened`);
|
|
385
|
+
if (gapsResolved > 0)
|
|
386
|
+
parts.push(`${gapsResolved} resolved`);
|
|
387
|
+
if (gapsDismissed > 0)
|
|
388
|
+
parts.push(`${gapsDismissed} dismissed`);
|
|
389
|
+
if (metabolismCount > 0)
|
|
390
|
+
parts.push(`${metabolismCount} metabolism events`);
|
|
391
|
+
if (parts.length > 0) {
|
|
392
|
+
console.log(` ${DIM}Summary: ${parts.join(", ")}${RESET}`);
|
|
393
|
+
}
|
|
394
|
+
else {
|
|
395
|
+
console.log(` ${DIM}Summary: no activity${RESET}`);
|
|
396
|
+
}
|
|
397
|
+
console.log("");
|
|
398
|
+
await closePool();
|
|
399
|
+
}
|
|
400
|
+
catch (err) {
|
|
401
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
402
|
+
if (message.includes("ECONNREFUSED")) {
|
|
403
|
+
console.error("\n ERROR: Cannot connect to Codify services.");
|
|
404
|
+
console.error(" Run 'codify init' to start the infrastructure.\n");
|
|
405
|
+
}
|
|
406
|
+
else if (message.includes("ANTHROPIC_API_KEY")) {
|
|
407
|
+
console.error("\n ERROR: ANTHROPIC_API_KEY not set.");
|
|
408
|
+
console.error(" Export your API key: export ANTHROPIC_API_KEY=sk-...\n");
|
|
409
|
+
}
|
|
410
|
+
else {
|
|
411
|
+
console.error(`\n ERROR: ${message}\n`);
|
|
412
|
+
}
|
|
413
|
+
process.exit(1);
|
|
414
|
+
}
|
|
415
|
+
});
|
|
416
|
+
/**
|
|
417
|
+
* Truncate a string to maxLen characters, adding "..." if truncated.
|
|
418
|
+
*/
|
|
419
|
+
function truncate(str, maxLen) {
|
|
420
|
+
if (str.length <= maxLen)
|
|
421
|
+
return str;
|
|
422
|
+
return str.slice(0, maxLen - 3) + "...";
|
|
423
|
+
}
|
|
424
|
+
//# sourceMappingURL=timeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeline.js","sourceRoot":"","sources":["../../src/commands/timeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"triage.d.ts","sourceRoot":"","sources":["../../src/commands/triage.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiDpC,eAAO,MAAM,aAAa,SAyXtB,CAAC"}
|