@codified/cli 0.3.5 → 0.3.6
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/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 +574 -491
- 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 +1 -1
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
// codify triage — interactive gap resolution walkthrough
|
|
2
|
+
import { Command } from "commander";
|
|
3
|
+
import { loadProjectConfig } from "../lib/config.js";
|
|
4
|
+
import { createInterface } from "node:readline";
|
|
5
|
+
import { collectEvidenceForGap } from "./collect.js";
|
|
6
|
+
// --- Color helpers (ANSI escape codes) ---
|
|
7
|
+
const RESET = "\x1b[0m";
|
|
8
|
+
const BOLD = "\x1b[1m";
|
|
9
|
+
const DIM = "\x1b[2m";
|
|
10
|
+
const RED = "\x1b[31m";
|
|
11
|
+
const YELLOW = "\x1b[33m";
|
|
12
|
+
const GREEN = "\x1b[32m";
|
|
13
|
+
const CYAN = "\x1b[36m";
|
|
14
|
+
const MAGENTA = "\x1b[35m";
|
|
15
|
+
const WHITE = "\x1b[37m";
|
|
16
|
+
const BG_RED = "\x1b[41m";
|
|
17
|
+
function severityBadge(severity) {
|
|
18
|
+
switch (severity) {
|
|
19
|
+
case "critical":
|
|
20
|
+
return `${BG_RED}${WHITE}${BOLD} CRITICAL ${RESET}`;
|
|
21
|
+
case "high":
|
|
22
|
+
return `${RED}${BOLD} HIGH ${RESET}`;
|
|
23
|
+
case "medium":
|
|
24
|
+
return `${YELLOW}${BOLD} MEDIUM ${RESET}`;
|
|
25
|
+
case "low":
|
|
26
|
+
return `${CYAN} LOW ${RESET}`;
|
|
27
|
+
default:
|
|
28
|
+
return `${DIM} ${severity?.toUpperCase() ?? "UNKNOWN"} ${RESET}`;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
function formatDate(dateStr) {
|
|
32
|
+
const d = new Date(dateStr);
|
|
33
|
+
return d.toISOString().slice(0, 10);
|
|
34
|
+
}
|
|
35
|
+
/** Wrap rl.question in a promise for async/await */
|
|
36
|
+
function askQuestion(rl, prompt) {
|
|
37
|
+
return new Promise((resolve) => {
|
|
38
|
+
rl.question(prompt, (answer) => {
|
|
39
|
+
resolve(answer.trim().toLowerCase());
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
// --- Command definition ---
|
|
44
|
+
export const triageCommand = new Command("triage")
|
|
45
|
+
.description("Interactive gap resolution — walk through gaps one by one")
|
|
46
|
+
.option("--severity <level>", "Filter by severity: critical, high, medium, low")
|
|
47
|
+
.option("--limit <n>", "Maximum gaps to present")
|
|
48
|
+
.action(async (opts) => {
|
|
49
|
+
try {
|
|
50
|
+
await loadProjectConfig();
|
|
51
|
+
const { getPool, closePool } = await import("@codify/graph");
|
|
52
|
+
const pool = getPool();
|
|
53
|
+
try {
|
|
54
|
+
await pool.query("SELECT 1");
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
console.error(" ERROR: Cannot connect to PostgreSQL. Run 'codify init' first.\n");
|
|
58
|
+
process.exit(1);
|
|
59
|
+
}
|
|
60
|
+
// Validate options
|
|
61
|
+
if (opts.severity) {
|
|
62
|
+
const valid = ["critical", "high", "medium", "low"];
|
|
63
|
+
if (!valid.includes(opts.severity)) {
|
|
64
|
+
console.error(`\n ERROR: Invalid severity "${opts.severity}". Use: ${valid.join(", ")}\n`);
|
|
65
|
+
process.exit(1);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
let maxGaps;
|
|
69
|
+
if (opts.limit !== undefined) {
|
|
70
|
+
maxGaps = parseInt(opts.limit, 10);
|
|
71
|
+
if (isNaN(maxGaps) || maxGaps < 1) {
|
|
72
|
+
console.error("\n ERROR: --limit must be a positive integer.\n");
|
|
73
|
+
process.exit(1);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
// Query gaps sorted by severity (critical first), then freshness desc
|
|
77
|
+
const conditions = [
|
|
78
|
+
"type = 'Gap'",
|
|
79
|
+
"superseded_by IS NULL",
|
|
80
|
+
"COALESCE(properties->>'status', 'detected') NOT IN ('resolved', 'wont_fix')",
|
|
81
|
+
];
|
|
82
|
+
const params = [];
|
|
83
|
+
let paramIdx = 1;
|
|
84
|
+
if (opts.severity) {
|
|
85
|
+
conditions.push(`properties->>'severity' = $${paramIdx++}`);
|
|
86
|
+
params.push(opts.severity);
|
|
87
|
+
}
|
|
88
|
+
let limitClause = "";
|
|
89
|
+
if (maxGaps !== undefined) {
|
|
90
|
+
limitClause = ` LIMIT $${paramIdx}`;
|
|
91
|
+
params.push(maxGaps);
|
|
92
|
+
}
|
|
93
|
+
const gapsSql = `SELECT id, properties, metadata, freshness, created_at
|
|
94
|
+
FROM nodes
|
|
95
|
+
WHERE ${conditions.join(" AND ")}
|
|
96
|
+
ORDER BY
|
|
97
|
+
CASE properties->>'severity'
|
|
98
|
+
WHEN 'critical' THEN 0
|
|
99
|
+
WHEN 'high' THEN 1
|
|
100
|
+
WHEN 'medium' THEN 2
|
|
101
|
+
WHEN 'low' THEN 3
|
|
102
|
+
ELSE 4
|
|
103
|
+
END ASC,
|
|
104
|
+
freshness DESC${limitClause}`;
|
|
105
|
+
const gapsResult = await pool.query(gapsSql, params);
|
|
106
|
+
const gaps = gapsResult.rows;
|
|
107
|
+
console.log(`\n ${BOLD}Codify — Gap Triage${RESET}\n`);
|
|
108
|
+
if (gaps.length === 0) {
|
|
109
|
+
const filterDesc = [];
|
|
110
|
+
if (opts.severity)
|
|
111
|
+
filterDesc.push(`severity=${opts.severity}`);
|
|
112
|
+
const filterStr = filterDesc.length > 0 ? ` (filters: ${filterDesc.join(", ")})` : "";
|
|
113
|
+
console.log(` No actionable gaps found${filterStr}.`);
|
|
114
|
+
console.log(` All gaps may already be resolved or dismissed.\n`);
|
|
115
|
+
await closePool();
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
console.log(` ${gaps.length} gap${gaps.length === 1 ? "" : "s"} to triage.\n`);
|
|
119
|
+
const gapsWithAffected = [];
|
|
120
|
+
for (const gap of gaps) {
|
|
121
|
+
const affectedResult = await pool.query(`SELECT n.id, n.type, n.properties, n.metadata, n.freshness, n.created_at
|
|
122
|
+
FROM nodes n
|
|
123
|
+
JOIN edges e ON (e.source_id = n.id OR e.target_id = n.id)
|
|
124
|
+
WHERE (e.source_id = $1 OR e.target_id = $1)
|
|
125
|
+
AND n.id != $1
|
|
126
|
+
AND n.superseded_by IS NULL
|
|
127
|
+
GROUP BY n.id, n.type, n.properties, n.metadata, n.freshness, n.created_at
|
|
128
|
+
ORDER BY n.type`, [gap.id]);
|
|
129
|
+
const affectedNodes = [];
|
|
130
|
+
for (const r of affectedResult.rows) {
|
|
131
|
+
const p = r.properties ?? {};
|
|
132
|
+
const m = r.metadata ?? {};
|
|
133
|
+
const title = p.title ?? m.title ??
|
|
134
|
+
p.name ?? m.name ?? "(untitled)";
|
|
135
|
+
const description = p.description ?? p.rationale ??
|
|
136
|
+
m.description ?? null;
|
|
137
|
+
// Count evidence edges (edges connecting to this node, excluding the gap itself)
|
|
138
|
+
const evResult = await pool.query(`SELECT COUNT(*) as count FROM edges
|
|
139
|
+
WHERE (source_id = $1 OR target_id = $1)
|
|
140
|
+
AND source_id != $2 AND target_id != $2`, [r.id, gap.id]);
|
|
141
|
+
const evidenceCount = parseInt(evResult.rows[0].count, 10);
|
|
142
|
+
// Count downstream nodes (nodes that depend on this one)
|
|
143
|
+
const dsResult = await pool.query(`SELECT COUNT(DISTINCT n2.id) as count FROM edges e
|
|
144
|
+
JOIN nodes n2 ON (e.source_id = n2.id AND e.target_id = $1)
|
|
145
|
+
WHERE e.type IN ('depends_on', 'informed_by', 'implements', 'derived_from')
|
|
146
|
+
AND n2.superseded_by IS NULL
|
|
147
|
+
AND n2.id != $1`, [r.id]);
|
|
148
|
+
const downstreamCount = parseInt(dsResult.rows[0].count, 10);
|
|
149
|
+
affectedNodes.push({
|
|
150
|
+
id: r.id,
|
|
151
|
+
type: r.type,
|
|
152
|
+
title,
|
|
153
|
+
description,
|
|
154
|
+
freshness: r.freshness,
|
|
155
|
+
createdAt: r.created_at,
|
|
156
|
+
evidenceCount,
|
|
157
|
+
downstreamCount,
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
gapsWithAffected.push({ ...gap, affectedNodes });
|
|
161
|
+
}
|
|
162
|
+
// Create readline interface for interactive input
|
|
163
|
+
const rl = createInterface({
|
|
164
|
+
input: process.stdin,
|
|
165
|
+
output: process.stdout,
|
|
166
|
+
});
|
|
167
|
+
// Triage counters
|
|
168
|
+
let acknowledged = 0;
|
|
169
|
+
let dismissed = 0;
|
|
170
|
+
let resolved = 0;
|
|
171
|
+
let skipped = 0;
|
|
172
|
+
let quitRequested = false;
|
|
173
|
+
for (let i = 0; i < gapsWithAffected.length; i++) {
|
|
174
|
+
if (quitRequested)
|
|
175
|
+
break;
|
|
176
|
+
let showGapAgain = true;
|
|
177
|
+
while (showGapAgain) {
|
|
178
|
+
showGapAgain = false;
|
|
179
|
+
const gap = gapsWithAffected[i];
|
|
180
|
+
const props = gap.properties;
|
|
181
|
+
const severity = props.severity ?? "unknown";
|
|
182
|
+
const title = props.title ?? props.description?.slice(0, 60) ?? "(untitled)";
|
|
183
|
+
const description = props.description ?? "No description available.";
|
|
184
|
+
const detected = formatDate(gap.created_at);
|
|
185
|
+
// Display gap
|
|
186
|
+
console.log(` ${BOLD}Gap ${i + 1} of ${gapsWithAffected.length}${RESET} ${severityBadge(severity)} ${BOLD}${title}${RESET}`);
|
|
187
|
+
console.log(` ${description}`);
|
|
188
|
+
// Show rich context for affected nodes
|
|
189
|
+
if (gap.affectedNodes.length > 0) {
|
|
190
|
+
console.log("");
|
|
191
|
+
for (const node of gap.affectedNodes.slice(0, 3)) {
|
|
192
|
+
const freshPct = Math.round(node.freshness * 100);
|
|
193
|
+
const freshColor = freshPct >= 80 ? GREEN : freshPct >= 50 ? YELLOW : RED;
|
|
194
|
+
console.log(` ${CYAN}${node.type}:${RESET} ${BOLD}${node.title}${RESET}`);
|
|
195
|
+
if (node.description) {
|
|
196
|
+
const desc = node.description.length > 80 ? node.description.slice(0, 77) + "..." : node.description;
|
|
197
|
+
console.log(` ${DIM}${desc}${RESET}`);
|
|
198
|
+
}
|
|
199
|
+
console.log(` ${DIM}Created: ${formatDate(node.createdAt)}${RESET} ${freshColor}Freshness: ${freshPct}%${RESET} ${DIM}Evidence: ${node.evidenceCount} edges Downstream: ${node.downstreamCount} nodes${RESET}`);
|
|
200
|
+
}
|
|
201
|
+
if (gap.affectedNodes.length > 3) {
|
|
202
|
+
console.log(` ${DIM}...and ${gap.affectedNodes.length - 3} more affected nodes${RESET}`);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
console.log(`\n ${DIM}Detected: ${detected}${RESET}`);
|
|
206
|
+
console.log("");
|
|
207
|
+
console.log(` ${GREEN}[a]${RESET}cknowledge ${YELLOW}[d]${RESET}ismiss ${MAGENTA}[r]${RESET}esolve ${CYAN}[c]${RESET}ollect ${DIM}[s]kip${RESET} ${RED}[q]${RESET}uit`);
|
|
208
|
+
const action = await askQuestion(rl, " > ");
|
|
209
|
+
if (action === "a" || action === "acknowledge") {
|
|
210
|
+
// Acknowledge: set status to 'acknowledged'
|
|
211
|
+
await pool.query(`UPDATE nodes
|
|
212
|
+
SET properties = jsonb_set(properties, '{status}', '"acknowledged"'),
|
|
213
|
+
updated_at = now()
|
|
214
|
+
WHERE id = $1`, [gap.id]);
|
|
215
|
+
acknowledged++;
|
|
216
|
+
console.log(` ${GREEN}Acknowledged.${RESET}\n`);
|
|
217
|
+
}
|
|
218
|
+
else if (action === "d" || action === "dismiss") {
|
|
219
|
+
// Dismiss: prompt for reason, set status to 'wont_fix'
|
|
220
|
+
const reason = await askQuestion(rl, ` ${DIM}Reason for dismissal:${RESET} `);
|
|
221
|
+
const reasonValue = reason || "No reason given";
|
|
222
|
+
await pool.query(`UPDATE nodes
|
|
223
|
+
SET properties = properties
|
|
224
|
+
|| jsonb_build_object('status', 'wont_fix', 'dismiss_reason', $2::text),
|
|
225
|
+
updated_at = now()
|
|
226
|
+
WHERE id = $1`, [gap.id, reasonValue]);
|
|
227
|
+
dismissed++;
|
|
228
|
+
console.log(` ${YELLOW}Dismissed.${RESET}\n`);
|
|
229
|
+
}
|
|
230
|
+
else if (action === "r" || action === "resolve") {
|
|
231
|
+
// Resolve: prompt for resolution note, set status to 'resolved'
|
|
232
|
+
const note = await askQuestion(rl, ` ${DIM}Resolution note:${RESET} `);
|
|
233
|
+
const noteValue = note || "Resolved via triage";
|
|
234
|
+
await pool.query(`UPDATE nodes
|
|
235
|
+
SET properties = properties
|
|
236
|
+
|| jsonb_build_object('status', 'resolved', 'resolution_note', $2::text),
|
|
237
|
+
updated_at = now()
|
|
238
|
+
WHERE id = $1`, [gap.id, noteValue]);
|
|
239
|
+
resolved++;
|
|
240
|
+
console.log(` ${MAGENTA}Resolved.${RESET}\n`);
|
|
241
|
+
}
|
|
242
|
+
else if (action === "c" || action === "collect") {
|
|
243
|
+
// Collect: mine graph for evidence
|
|
244
|
+
console.log(`\n ${CYAN}Searching graph for evidence...${RESET}`);
|
|
245
|
+
const affectedForCollect = gap.affectedNodes.map((n) => ({
|
|
246
|
+
id: n.id,
|
|
247
|
+
type: n.type,
|
|
248
|
+
title: n.title,
|
|
249
|
+
}));
|
|
250
|
+
const { evidenceNodes, edgesCreated } = await collectEvidenceForGap(pool, gap.id, affectedForCollect);
|
|
251
|
+
if (evidenceNodes.length > 0) {
|
|
252
|
+
console.log(` ${GREEN}Found ${evidenceNodes.length} relevant node${evidenceNodes.length === 1 ? "" : "s"}, created ${edgesCreated} evidence edge${edgesCreated === 1 ? "" : "s"}.${RESET}`);
|
|
253
|
+
for (const ev of evidenceNodes) {
|
|
254
|
+
console.log(` ${GREEN}+${RESET} ${CYAN}${ev.type}:${RESET} "${ev.title}"`);
|
|
255
|
+
}
|
|
256
|
+
// Update evidence counts for affected nodes (refresh in-memory data)
|
|
257
|
+
for (const node of gap.affectedNodes) {
|
|
258
|
+
const evResult = await pool.query(`SELECT COUNT(*) as count FROM edges
|
|
259
|
+
WHERE (source_id = $1 OR target_id = $1)
|
|
260
|
+
AND source_id != $2 AND target_id != $2`, [node.id, gap.id]);
|
|
261
|
+
node.evidenceCount = parseInt(evResult.rows[0].count, 10);
|
|
262
|
+
}
|
|
263
|
+
// Ask if they want to resolve
|
|
264
|
+
console.log("");
|
|
265
|
+
const resolveAnswer = await askQuestion(rl, ` Evidence found. Mark gap as resolved? ${GREEN}[y]${RESET}/${RED}[n]${RESET} `);
|
|
266
|
+
if (resolveAnswer === "y" || resolveAnswer === "yes") {
|
|
267
|
+
await pool.query(`UPDATE nodes
|
|
268
|
+
SET properties = properties
|
|
269
|
+
|| jsonb_build_object('status', 'resolved', 'resolution_note', 'Resolved via evidence collection'),
|
|
270
|
+
updated_at = now()
|
|
271
|
+
WHERE id = $1`, [gap.id]);
|
|
272
|
+
resolved++;
|
|
273
|
+
console.log(` ${MAGENTA}Resolved.${RESET}\n`);
|
|
274
|
+
}
|
|
275
|
+
else {
|
|
276
|
+
// Show the same gap again with updated context
|
|
277
|
+
console.log("");
|
|
278
|
+
showGapAgain = true;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
else {
|
|
282
|
+
console.log(` ${DIM}No new evidence found.${RESET}\n`);
|
|
283
|
+
// Show the same gap again
|
|
284
|
+
showGapAgain = true;
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
else if (action === "q" || action === "quit") {
|
|
288
|
+
skipped += gapsWithAffected.length - i - 1;
|
|
289
|
+
quitRequested = true;
|
|
290
|
+
console.log("");
|
|
291
|
+
}
|
|
292
|
+
else {
|
|
293
|
+
// Default: skip
|
|
294
|
+
skipped++;
|
|
295
|
+
console.log(` ${DIM}Skipped.${RESET}\n`);
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
rl.close();
|
|
300
|
+
// Summary
|
|
301
|
+
console.log(` ${BOLD}Triage Summary:${RESET}`);
|
|
302
|
+
const parts = [];
|
|
303
|
+
if (acknowledged > 0)
|
|
304
|
+
parts.push(`${GREEN}${acknowledged} acknowledged${RESET}`);
|
|
305
|
+
if (dismissed > 0)
|
|
306
|
+
parts.push(`${YELLOW}${dismissed} dismissed${RESET}`);
|
|
307
|
+
if (resolved > 0)
|
|
308
|
+
parts.push(`${MAGENTA}${resolved} resolved${RESET}`);
|
|
309
|
+
if (skipped > 0)
|
|
310
|
+
parts.push(`${DIM}${skipped} skipped${RESET}`);
|
|
311
|
+
if (parts.length > 0) {
|
|
312
|
+
console.log(` ${parts.join(", ")}`);
|
|
313
|
+
}
|
|
314
|
+
else {
|
|
315
|
+
console.log(` No actions taken.`);
|
|
316
|
+
}
|
|
317
|
+
console.log("");
|
|
318
|
+
await closePool();
|
|
319
|
+
}
|
|
320
|
+
catch (err) {
|
|
321
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
322
|
+
if (message.includes("ECONNREFUSED")) {
|
|
323
|
+
console.error("\n ERROR: Cannot connect to Codify services.");
|
|
324
|
+
console.error(" Run 'codify init' to start the infrastructure.\n");
|
|
325
|
+
}
|
|
326
|
+
else if (message.includes("ANTHROPIC_API_KEY")) {
|
|
327
|
+
console.error("\n ERROR: ANTHROPIC_API_KEY not set.");
|
|
328
|
+
console.error(" Export your API key: export ANTHROPIC_API_KEY=sk-...\n");
|
|
329
|
+
}
|
|
330
|
+
else {
|
|
331
|
+
console.error(`\n ERROR: ${message}\n`);
|
|
332
|
+
}
|
|
333
|
+
process.exit(1);
|
|
334
|
+
}
|
|
335
|
+
});
|
|
336
|
+
//# sourceMappingURL=triage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"triage.js","sourceRoot":"","sources":["../../src/commands/triage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"up.d.ts","sourceRoot":"","sources":["../../src/commands/up.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,eAAO,MAAM,SAAS,SA+VlB,CAAC"}
|