@sanctix/client 0.1.0 → 0.1.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/cli/stop.js +37 -27
- package/package.json +1 -1
package/cli/stop.js
CHANGED
|
@@ -32,22 +32,7 @@ export async function stop(_options = {}) {
|
|
|
32
32
|
const auditUrl = manifest.auditUrl.replace(/\/$/, '');
|
|
33
33
|
const apiKey = process.env.SANCTIX_API_KEY || readEnvKey(cwd, 'SANCTIX_API_KEY');
|
|
34
34
|
|
|
35
|
-
// Step 4:
|
|
36
|
-
const sessionRes = await httpRequestJson('GET', auditUrl + '/session/' + correlationId, {
|
|
37
|
-
apiKey: apiKey || null,
|
|
38
|
-
timeoutMs: 3000,
|
|
39
|
-
});
|
|
40
|
-
let summaryLine = null;
|
|
41
|
-
if (sessionRes.status === 200 && sessionRes.body && typeof sessionRes.body === 'object') {
|
|
42
|
-
const count = sessionRes.body.event_count;
|
|
43
|
-
const chain = sessionRes.body.chain_status;
|
|
44
|
-
summaryLine = 'Events: ' + (count !== undefined ? count : 'n/a') +
|
|
45
|
-
(chain ? ' (chain: ' + chain + ')' : '');
|
|
46
|
-
} else {
|
|
47
|
-
summaryLine = 'Session data not yet available.';
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
// Step 5: Post SANCTIX_SESSION_COMPLETED event.
|
|
35
|
+
// Step 4: Post sanctix.session.completed event.
|
|
51
36
|
const completedAt = new Date().toISOString();
|
|
52
37
|
const userId = process.env.USER || process.env.USERNAME || 'user';
|
|
53
38
|
const postRes = await httpRequestJson('POST', auditUrl + '/events', {
|
|
@@ -76,23 +61,48 @@ export async function stop(_options = {}) {
|
|
|
76
61
|
));
|
|
77
62
|
}
|
|
78
63
|
|
|
64
|
+
// Step 5: Fetch session summary from audit service.
|
|
65
|
+
const sessionRes = await httpRequestJson('GET', auditUrl + '/session/' + correlationId, {
|
|
66
|
+
apiKey: apiKey || null,
|
|
67
|
+
timeoutMs: 3000,
|
|
68
|
+
});
|
|
69
|
+
|
|
79
70
|
// Step 6: Remove session env file.
|
|
80
71
|
await fs.remove(sessionEnvPath);
|
|
81
72
|
|
|
82
73
|
// Step 7: Print summary.
|
|
83
74
|
const duration = formatDuration(startedAt, completedAt);
|
|
84
75
|
console.log('');
|
|
85
|
-
console.log(chalk.bold('=== Sanctix Session
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
76
|
+
console.log(chalk.bold('=== Sanctix Session Summary ==='));
|
|
77
|
+
if (sessionRes.status === 200 && sessionRes.body && typeof sessionRes.body === 'object') {
|
|
78
|
+
const s = sessionRes.body;
|
|
79
|
+
const toolBreakdown = s.tool_breakdown || {};
|
|
80
|
+
const toolCalls = Object.values(toolBreakdown).reduce((a, b) => a + (Number(b) || 0), 0);
|
|
81
|
+
const filesChanged = Array.isArray(s.files_changed) ? s.files_changed : [];
|
|
82
|
+
|
|
83
|
+
console.log('Task: ' + task);
|
|
84
|
+
console.log('Risk: ' + risk);
|
|
85
|
+
console.log('Duration: ' + duration);
|
|
86
|
+
console.log('');
|
|
87
|
+
console.log('What happened:');
|
|
88
|
+
console.log(' Tool calls: ' + toolCalls);
|
|
89
|
+
console.log(' Files changed: ' + filesChanged.length);
|
|
90
|
+
console.log(' Commands run: ' + (s.commands_run || 0));
|
|
91
|
+
console.log(' Agent spawns: ' + (s.agent_spawns || 0));
|
|
92
|
+
if (filesChanged.length > 0) {
|
|
93
|
+
console.log('');
|
|
94
|
+
console.log('Files touched:');
|
|
95
|
+
for (const f of filesChanged) console.log(' ' + f);
|
|
96
|
+
}
|
|
97
|
+
console.log('');
|
|
98
|
+
console.log('Audit:');
|
|
99
|
+
console.log(' Events: ' + (s.event_count != null ? s.event_count : 'n/a'));
|
|
100
|
+
console.log(' Chain: ' + (s.chain_status || 'unknown'));
|
|
101
|
+
console.log(' Session: ' + correlationId);
|
|
102
|
+
} else {
|
|
103
|
+
console.log('Session: ' + correlationId);
|
|
104
|
+
}
|
|
105
|
+
console.log('================================');
|
|
96
106
|
}
|
|
97
107
|
|
|
98
108
|
function parseEnvFile(text) {
|
package/package.json
CHANGED