proofscan 0.3.0 → 0.3.2
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/analyzers/IAnalyzer.d.ts +87 -0
- package/dist/analyzers/IAnalyzer.d.ts.map +1 -0
- package/dist/analyzers/IAnalyzer.js +48 -0
- package/dist/analyzers/IAnalyzer.js.map +1 -0
- package/dist/analyzers/NoopAnalyzer.d.ts +24 -0
- package/dist/analyzers/NoopAnalyzer.d.ts.map +1 -0
- package/dist/analyzers/NoopAnalyzer.js +50 -0
- package/dist/analyzers/NoopAnalyzer.js.map +1 -0
- package/dist/analyzers/index.d.ts +13 -0
- package/dist/analyzers/index.d.ts.map +1 -0
- package/dist/analyzers/index.js +23 -0
- package/dist/analyzers/index.js.map +1 -0
- package/dist/cli.js +20 -5
- package/dist/cli.js.map +1 -1
- package/dist/commands/events.d.ts +7 -0
- package/dist/commands/events.d.ts.map +1 -0
- package/dist/commands/events.js +185 -0
- package/dist/commands/events.js.map +1 -0
- package/dist/commands/index.d.ts +1 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +1 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/monitor.d.ts +1 -0
- package/dist/commands/monitor.d.ts.map +1 -1
- package/dist/commands/monitor.js +70 -12
- package/dist/commands/monitor.js.map +1 -1
- package/dist/commands/scan.d.ts.map +1 -1
- package/dist/commands/scan.js +12 -7
- package/dist/commands/scan.js.map +1 -1
- package/dist/commands/view.d.ts.map +1 -1
- package/dist/commands/view.js +69 -2
- package/dist/commands/view.js.map +1 -1
- package/dist/db/connection.d.ts.map +1 -1
- package/dist/db/connection.js +45 -4
- package/dist/db/connection.js.map +1 -1
- package/dist/db/events-store.d.ts +3 -0
- package/dist/db/events-store.d.ts.map +1 -1
- package/dist/db/events-store.js +6 -3
- package/dist/db/events-store.js.map +1 -1
- package/dist/db/schema.d.ts +8 -2
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +29 -3
- package/dist/db/schema.js.map +1 -1
- package/dist/db/types.d.ts +3 -0
- package/dist/db/types.d.ts.map +1 -1
- package/dist/eventline/normalizer.d.ts +19 -1
- package/dist/eventline/normalizer.d.ts.map +1 -1
- package/dist/eventline/normalizer.js +120 -0
- package/dist/eventline/normalizer.js.map +1 -1
- package/dist/eventline/types.d.ts +24 -0
- package/dist/eventline/types.d.ts.map +1 -1
- package/dist/eventline/types.js.map +1 -1
- package/dist/protocols/A2aAdapter.d.ts +39 -0
- package/dist/protocols/A2aAdapter.d.ts.map +1 -0
- package/dist/protocols/A2aAdapter.js +48 -0
- package/dist/protocols/A2aAdapter.js.map +1 -0
- package/dist/protocols/IProtocolAdapter.d.ts +106 -0
- package/dist/protocols/IProtocolAdapter.d.ts.map +1 -0
- package/dist/protocols/IProtocolAdapter.js +57 -0
- package/dist/protocols/IProtocolAdapter.js.map +1 -0
- package/dist/protocols/McpAdapter.d.ts +23 -0
- package/dist/protocols/McpAdapter.d.ts.map +1 -0
- package/dist/protocols/McpAdapter.js +162 -0
- package/dist/protocols/McpAdapter.js.map +1 -0
- package/dist/protocols/index.d.ts +14 -0
- package/dist/protocols/index.d.ts.map +1 -0
- package/dist/protocols/index.js +24 -0
- package/dist/protocols/index.js.map +1 -0
- package/dist/scanner/index.d.ts +1 -0
- package/dist/scanner/index.d.ts.map +1 -1
- package/dist/scanner/index.js +97 -60
- package/dist/scanner/index.js.map +1 -1
- package/package.json +1 -1
package/dist/commands/monitor.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Monitor commands - reads from SQLite
|
|
3
|
+
* Phase 2.1: Added --follow mode for live event streaming
|
|
3
4
|
*/
|
|
4
5
|
import { Command } from 'commander';
|
|
5
6
|
import { ConfigManager } from '../config/index.js';
|
|
6
|
-
import {
|
|
7
|
+
import { EventLineStore } from '../eventline/store.js';
|
|
7
8
|
import { output, outputError, getOutputOptions } from '../utils/output.js';
|
|
9
|
+
import { formatTimestamp, getKindSymbol, shortenId, } from '../eventline/types.js';
|
|
8
10
|
function formatEvent(event) {
|
|
9
11
|
const time = new Date(event.ts).toLocaleTimeString();
|
|
10
12
|
const dir = event.direction === 'client_to_server' ? '→' : '←';
|
|
@@ -51,6 +53,8 @@ export function createMonitorCommand(getConfigPath) {
|
|
|
51
53
|
.description('Show recent events for a connector')
|
|
52
54
|
.requiredOption('--id <id>', 'Connector ID')
|
|
53
55
|
.option('--last <n>', 'Number of events to show', '20')
|
|
56
|
+
.option('-f, --follow', 'Follow mode: watch for new events')
|
|
57
|
+
.option('--interval <ms>', 'Poll interval in milliseconds for follow mode', '1000')
|
|
54
58
|
.action(async (options) => {
|
|
55
59
|
try {
|
|
56
60
|
const manager = new ConfigManager(getConfigPath());
|
|
@@ -59,23 +63,65 @@ export function createMonitorCommand(getConfigPath) {
|
|
|
59
63
|
outputError(`Connector not found: ${options.id}`);
|
|
60
64
|
process.exit(1);
|
|
61
65
|
}
|
|
62
|
-
const
|
|
66
|
+
const store = new EventLineStore(manager.getConfigDir());
|
|
63
67
|
const count = parseInt(options.last, 10);
|
|
64
|
-
|
|
65
|
-
|
|
68
|
+
// Get initial events
|
|
69
|
+
const events = store.getRecentEvents({
|
|
70
|
+
limit: count,
|
|
71
|
+
connector: options.id,
|
|
72
|
+
});
|
|
73
|
+
if (events.length === 0 && !options.follow) {
|
|
66
74
|
output({ events: [] }, `No events found for connector: ${options.id}`);
|
|
67
75
|
return;
|
|
68
76
|
}
|
|
69
|
-
if (getOutputOptions().json) {
|
|
77
|
+
if (getOutputOptions().json && !options.follow) {
|
|
70
78
|
output(events);
|
|
79
|
+
return;
|
|
71
80
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
81
|
+
// Print header
|
|
82
|
+
console.log(`Events for '${options.id}'${options.follow ? ' (following, Ctrl+C to stop)' : ` (last ${events.length})`}:\n`);
|
|
83
|
+
console.log('Time Sym Dir St Method Session');
|
|
84
|
+
console.log('-'.repeat(80));
|
|
85
|
+
// Print initial events
|
|
86
|
+
for (const event of events) {
|
|
87
|
+
console.log(formatEventLine(event));
|
|
88
|
+
}
|
|
89
|
+
// Follow mode
|
|
90
|
+
if (options.follow) {
|
|
91
|
+
let lastTs = events.length > 0 ? events[events.length - 1].ts_ms : Date.now();
|
|
92
|
+
const interval = parseInt(options.interval, 10);
|
|
93
|
+
// Handle Ctrl+C gracefully
|
|
94
|
+
process.on('SIGINT', () => {
|
|
95
|
+
console.log('\n\nStopped following.');
|
|
96
|
+
process.exit(0);
|
|
97
|
+
});
|
|
98
|
+
// Poll for new events
|
|
99
|
+
const poll = async () => {
|
|
100
|
+
try {
|
|
101
|
+
const newEvents = store.getRecentEvents({
|
|
102
|
+
limit: 50,
|
|
103
|
+
connector: options.id,
|
|
104
|
+
}).filter(e => e.ts_ms > lastTs);
|
|
105
|
+
if (newEvents.length > 0) {
|
|
106
|
+
for (const event of newEvents) {
|
|
107
|
+
if (getOutputOptions().json) {
|
|
108
|
+
console.log(JSON.stringify(event));
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
console.log(formatEventLine(event));
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
lastTs = newEvents[newEvents.length - 1].ts_ms;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
// Ignore errors during polling
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
// Start polling
|
|
122
|
+
setInterval(poll, interval);
|
|
123
|
+
// Keep process alive
|
|
124
|
+
await new Promise(() => { });
|
|
79
125
|
}
|
|
80
126
|
}
|
|
81
127
|
catch (error) {
|
|
@@ -85,4 +131,16 @@ export function createMonitorCommand(getConfigPath) {
|
|
|
85
131
|
});
|
|
86
132
|
return cmd;
|
|
87
133
|
}
|
|
134
|
+
/**
|
|
135
|
+
* Format EventLine for terminal display
|
|
136
|
+
*/
|
|
137
|
+
function formatEventLine(event) {
|
|
138
|
+
const ts = formatTimestamp(event.ts_ms);
|
|
139
|
+
const symbol = getKindSymbol(event.kind);
|
|
140
|
+
const status = event.status === 'OK' ? '✓' : event.status === 'ERR' ? '✗' : ' ';
|
|
141
|
+
const dir = event.direction || ' ';
|
|
142
|
+
const method = event.label.slice(0, 30).padEnd(30);
|
|
143
|
+
const session = event.session_id ? `ses=${shortenId(event.session_id, 6)}` : '';
|
|
144
|
+
return `${ts} ${symbol} ${dir} ${status} ${method} ${session}`;
|
|
145
|
+
}
|
|
88
146
|
//# sourceMappingURL=monitor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../src/commands/monitor.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../src/commands/monitor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EACL,eAAe,EAEf,aAAa,EACb,SAAS,GAEV,MAAM,uBAAuB,CAAC;AAG/B,SAAS,WAAW,CAAC,KAAY;IAC/B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,kBAAkB,EAAE,CAAC;IACrD,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,KAAK,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAE/D,oDAAoD;IACpD,IAAI,MAAM,GAAG,GAAG,CAAC;IACjB,IAAI,OAAO,GAAG,EAAE,CAAC;IAEjB,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAEvC,mCAAmC;YACnC,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC9B,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC/B,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;oBACd,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC;gBACxD,CAAC;YACH,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;gBAClD,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC;YACvB,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;gBACvD,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC;YACvB,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;gBAC5C,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,WAAW,GAAG,CAAC;gBACzC,IAAI,GAAG,CAAC,KAAK;oBAAE,OAAO,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;gBAC1C,IAAI,GAAG,CAAC,IAAI;oBAAE,OAAO,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;gBAC7D,IAAI,GAAG,CAAC,OAAO;oBAAE,OAAO,IAAI,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,GAAG,eAAe,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,GAAG,IAAI,IAAI,GAAG,IAAI,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,aAA2B;IAC9D,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC;SAC/B,WAAW,CAAC,qBAAqB,CAAC,CAAC;IAEtC,GAAG;SACA,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,oCAAoC,CAAC;SACjD,cAAc,CAAC,WAAW,EAAE,cAAc,CAAC;SAC3C,MAAM,CAAC,YAAY,EAAE,0BAA0B,EAAE,IAAI,CAAC;SACtD,MAAM,CAAC,cAAc,EAAE,mCAAmC,CAAC;SAC3D,MAAM,CAAC,iBAAiB,EAAE,+CAA+C,EAAE,MAAM,CAAC;SAClF,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,aAAa,EAAE,CAAC,CAAC;YACnD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAEzD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,WAAW,CAAC,wBAAwB,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;gBAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;YACzD,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAEzC,qBAAqB;YACrB,MAAM,MAAM,GAAG,KAAK,CAAC,eAAe,CAAC;gBACnC,KAAK,EAAE,KAAK;gBACZ,SAAS,EAAE,OAAO,CAAC,EAAE;aACtB,CAAC,CAAC;YAEH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC3C,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,kCAAkC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;gBACvE,OAAO;YACT,CAAC;YAED,IAAI,gBAAgB,EAAE,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC/C,MAAM,CAAC,MAAM,CAAC,CAAC;gBACf,OAAO;YACT,CAAC;YAED,eAAe;YACf,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,UAAU,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;YAC5H,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;YAC9E,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAE5B,uBAAuB;YACvB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;YACtC,CAAC;YAED,cAAc;YACd,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC9E,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAEhD,2BAA2B;gBAC3B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;oBACxB,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;oBACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC,CAAC,CAAC;gBAEH,sBAAsB;gBACtB,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;oBACtB,IAAI,CAAC;wBACH,MAAM,SAAS,GAAG,KAAK,CAAC,eAAe,CAAC;4BACtC,KAAK,EAAE,EAAE;4BACT,SAAS,EAAE,OAAO,CAAC,EAAE;yBACtB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC;wBAEjC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACzB,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;gCAC9B,IAAI,gBAAgB,EAAE,CAAC,IAAI,EAAE,CAAC;oCAC5B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;gCACrC,CAAC;qCAAM,CAAC;oCACN,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;gCACtC,CAAC;4BACH,CAAC;4BACD,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;wBACjD,CAAC;oBACH,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,+BAA+B;oBACjC,CAAC;gBACH,CAAC,CAAC;gBAEF,gBAAgB;gBAChB,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAE5B,qBAAqB;gBACrB,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,WAAW,CAAC,sBAAsB,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAChF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,KAAgB;IACvC,MAAM,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAChF,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,IAAI,GAAG,CAAC;IACnC,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,SAAS,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAEhF,OAAO,GAAG,EAAE,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;AACjE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../src/commands/scan.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,MAAM,MAAM,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../src/commands/scan.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,MAAM,MAAM,GAAG,OAAO,CAyFtE"}
|
package/dist/commands/scan.js
CHANGED
|
@@ -13,6 +13,7 @@ export function createScanCommand(getConfigPath) {
|
|
|
13
13
|
.description('Start scanning a connector')
|
|
14
14
|
.requiredOption('--id <id>', 'Connector ID')
|
|
15
15
|
.option('--timeout <seconds>', 'Timeout in seconds', '30')
|
|
16
|
+
.option('--dry-run', 'Run scan without saving to database')
|
|
16
17
|
.action(async (options) => {
|
|
17
18
|
try {
|
|
18
19
|
const manager = new ConfigManager(getConfigPath());
|
|
@@ -26,12 +27,14 @@ export function createScanCommand(getConfigPath) {
|
|
|
26
27
|
process.exit(1);
|
|
27
28
|
}
|
|
28
29
|
const opts = getOutputOptions();
|
|
30
|
+
const dryRun = options.dryRun || false;
|
|
29
31
|
if (!opts.json) {
|
|
30
|
-
console.log(
|
|
32
|
+
console.log(`${dryRun ? '[DRY RUN] ' : ''}Scanning connector: ${options.id}...`);
|
|
31
33
|
}
|
|
32
34
|
const scanner = new Scanner(manager.getConfigDir());
|
|
33
35
|
const result = await scanner.scan(connector, {
|
|
34
36
|
timeout: parseInt(options.timeout, 10),
|
|
37
|
+
dryRun,
|
|
35
38
|
});
|
|
36
39
|
if (result.success) {
|
|
37
40
|
const toolCount = result.tools?.length || 0;
|
|
@@ -43,30 +46,32 @@ export function createScanCommand(getConfigPath) {
|
|
|
43
46
|
}) || [];
|
|
44
47
|
output({
|
|
45
48
|
success: true,
|
|
49
|
+
dry_run: dryRun,
|
|
46
50
|
connector_id: result.connectorId,
|
|
47
51
|
session_id: result.sessionId,
|
|
48
52
|
tools_count: toolCount,
|
|
49
53
|
tools: toolNames,
|
|
50
54
|
event_count: result.eventCount,
|
|
51
|
-
}, `✓ Scan successful
|
|
55
|
+
}, `✓ Scan successful!${dryRun ? ' (dry run - not saved)' : ''}\n` +
|
|
52
56
|
` Connector: ${result.connectorId}\n` +
|
|
53
|
-
` Session: ${result.sessionId}\n` +
|
|
57
|
+
(dryRun ? '' : ` Session: ${result.sessionId}\n`) +
|
|
54
58
|
` Tools found: ${toolCount}\n` +
|
|
55
59
|
(toolNames.length > 0 ? ` Tool names: ${toolNames.join(', ')}\n` : '') +
|
|
56
|
-
` Events
|
|
60
|
+
` Events: ${result.eventCount}${dryRun ? ' (not recorded)' : ' recorded'}`);
|
|
57
61
|
}
|
|
58
62
|
else {
|
|
59
63
|
output({
|
|
60
64
|
success: false,
|
|
65
|
+
dry_run: dryRun,
|
|
61
66
|
connector_id: result.connectorId,
|
|
62
67
|
session_id: result.sessionId,
|
|
63
68
|
error: result.error,
|
|
64
69
|
event_count: result.eventCount,
|
|
65
|
-
}, `✗ Scan failed
|
|
70
|
+
}, `✗ Scan failed!${dryRun ? ' (dry run)' : ''}\n` +
|
|
66
71
|
` Connector: ${result.connectorId}\n` +
|
|
67
|
-
` Session: ${result.sessionId}\n` +
|
|
72
|
+
(dryRun ? '' : ` Session: ${result.sessionId}\n`) +
|
|
68
73
|
` Error: ${result.error}\n` +
|
|
69
|
-
` Events
|
|
74
|
+
` Events: ${result.eventCount}${dryRun ? ' (not recorded)' : ' recorded'}`);
|
|
70
75
|
process.exit(1);
|
|
71
76
|
}
|
|
72
77
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../../src/commands/scan.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAiB,WAAW,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE1F,MAAM,UAAU,iBAAiB,CAAC,aAA2B;IAC3D,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;SAC5B,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAEnC,GAAG;SACA,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,4BAA4B,CAAC;SACzC,cAAc,CAAC,WAAW,EAAE,cAAc,CAAC;SAC3C,MAAM,CAAC,qBAAqB,EAAE,oBAAoB,EAAE,IAAI,CAAC;SACzD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,aAAa,EAAE,CAAC,CAAC;YACnD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAEzD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,WAAW,CAAC,wBAAwB,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;gBAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;gBACvB,WAAW,CAAC,cAAc,OAAO,CAAC,EAAE,iCAAiC,CAAC,CAAC;gBACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,MAAM,IAAI,GAAG,gBAAgB,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,uBAAuB,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../../src/commands/scan.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../src/commands/view.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../src/commands/view.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2IpC,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,MAAM,MAAM,GAAG,OAAO,CAwGtE;AAGD,OAAO,EAAE,iBAAiB,IAAI,cAAc,EAAE,CAAC"}
|
package/dist/commands/view.js
CHANGED
|
@@ -7,6 +7,7 @@ import { Command } from 'commander';
|
|
|
7
7
|
import { ConfigManager } from '../config/index.js';
|
|
8
8
|
import { EventLineStore } from '../eventline/store.js';
|
|
9
9
|
import { formatTimestamp, formatDuration, formatBytes, shortenId, getKindSymbol, } from '../eventline/types.js';
|
|
10
|
+
import { groupEventsToPairs } from '../eventline/normalizer.js';
|
|
10
11
|
import { output, getOutputOptions } from '../utils/output.js';
|
|
11
12
|
/**
|
|
12
13
|
* Render a single EventLine to terminal string
|
|
@@ -61,6 +62,40 @@ function renderEventLine(event, options) {
|
|
|
61
62
|
}
|
|
62
63
|
return parts.join(' ');
|
|
63
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* Render an EventLinePair to terminal string
|
|
67
|
+
*/
|
|
68
|
+
function renderPairLine(pair, options) {
|
|
69
|
+
const ts = formatTimestamp(pair.request.ts_ms, options.fulltime);
|
|
70
|
+
const status = pair.success ? '✓' : pair.response ? '✗' : '?';
|
|
71
|
+
// Build the line
|
|
72
|
+
const parts = [
|
|
73
|
+
ts,
|
|
74
|
+
'↔',
|
|
75
|
+
status,
|
|
76
|
+
pair.method.slice(0, 30).padEnd(30),
|
|
77
|
+
];
|
|
78
|
+
// Session ID (shortened)
|
|
79
|
+
if (pair.request.session_id) {
|
|
80
|
+
parts.push(`ses=${shortenId(pair.request.session_id, 6)}`);
|
|
81
|
+
}
|
|
82
|
+
// Latency
|
|
83
|
+
if (pair.latency_ms !== undefined) {
|
|
84
|
+
parts.push(`lat=${pair.latency_ms}ms`);
|
|
85
|
+
}
|
|
86
|
+
else if (!pair.response) {
|
|
87
|
+
parts.push('(pending)');
|
|
88
|
+
}
|
|
89
|
+
// Response size
|
|
90
|
+
if (pair.response?.size_bytes !== undefined) {
|
|
91
|
+
parts.push(`size=${formatBytes(pair.response.size_bytes)}`);
|
|
92
|
+
}
|
|
93
|
+
// Error code
|
|
94
|
+
if (pair.response?.error_code !== undefined) {
|
|
95
|
+
parts.push(`err=${pair.response.error_code}`);
|
|
96
|
+
}
|
|
97
|
+
return parts.join(' ');
|
|
98
|
+
}
|
|
64
99
|
/**
|
|
65
100
|
* Print hint line
|
|
66
101
|
*/
|
|
@@ -91,18 +126,19 @@ export function createViewCommand(getConfigPath) {
|
|
|
91
126
|
.option('--session <id>', 'Filter by session ID (partial match)')
|
|
92
127
|
.option('--fulltime', 'Show full timestamp (YYYY-MM-DD HH:MM:SS.mmm)')
|
|
93
128
|
.option('--with-sessions', 'Include session start/end events')
|
|
129
|
+
.option('--pairs', 'Show request/response pairs instead of individual events')
|
|
94
130
|
.action(async (options) => {
|
|
95
131
|
try {
|
|
96
132
|
const manager = new ConfigManager(getConfigPath());
|
|
97
133
|
const store = new EventLineStore(manager.getConfigDir());
|
|
98
134
|
const events = store.getRecentEvents({
|
|
99
|
-
limit: parseInt(options.limit, 10),
|
|
135
|
+
limit: parseInt(options.limit, 10) * (options.pairs ? 2 : 1), // Get more events for pairing
|
|
100
136
|
since: options.since,
|
|
101
137
|
errors: options.errors,
|
|
102
138
|
method: options.method,
|
|
103
139
|
connector: options.connector,
|
|
104
140
|
session: options.session,
|
|
105
|
-
includeSessionEvents: options.withSessions,
|
|
141
|
+
includeSessionEvents: options.withSessions && !options.pairs,
|
|
106
142
|
});
|
|
107
143
|
if (events.length === 0) {
|
|
108
144
|
console.log('No events found.');
|
|
@@ -110,6 +146,37 @@ export function createViewCommand(getConfigPath) {
|
|
|
110
146
|
console.log('hint: Run a scan first: pfscan scan start --id <connector>');
|
|
111
147
|
return;
|
|
112
148
|
}
|
|
149
|
+
// Pair mode
|
|
150
|
+
if (options.pairs) {
|
|
151
|
+
const pairs = groupEventsToPairs(events);
|
|
152
|
+
if (pairs.length === 0) {
|
|
153
|
+
console.log('No RPC pairs found.');
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
// Limit pairs
|
|
157
|
+
const limitedPairs = pairs.slice(0, parseInt(options.limit, 10));
|
|
158
|
+
if (getOutputOptions().json) {
|
|
159
|
+
output(limitedPairs);
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
// Print header for pairs
|
|
163
|
+
const header = options.fulltime
|
|
164
|
+
? 'Time ↔ St Method Session Latency Size'
|
|
165
|
+
: 'Time ↔ St Method Session Latency Size';
|
|
166
|
+
console.log(header);
|
|
167
|
+
console.log('-'.repeat(header.length));
|
|
168
|
+
// Print pairs
|
|
169
|
+
for (const pair of limitedPairs) {
|
|
170
|
+
console.log(renderPairLine(pair, { fulltime: options.fulltime }));
|
|
171
|
+
}
|
|
172
|
+
// Print summary
|
|
173
|
+
console.log();
|
|
174
|
+
const successCount = limitedPairs.filter(p => p.success).length;
|
|
175
|
+
const errorCount = limitedPairs.filter(p => p.response && !p.success).length;
|
|
176
|
+
const pendingCount = limitedPairs.filter(p => !p.response).length;
|
|
177
|
+
console.log(`${limitedPairs.length} pairs: ${successCount} OK, ${errorCount} ERR, ${pendingCount} pending`);
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
113
180
|
if (getOutputOptions().json) {
|
|
114
181
|
output(events);
|
|
115
182
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view.js","sourceRoot":"","sources":["../../src/commands/view.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EACL,eAAe,EACf,cAAc,EACd,WAAW,EACX,SAAS,EACT,aAAa,
|
|
1
|
+
{"version":3,"file":"view.js","sourceRoot":"","sources":["../../src/commands/view.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/db/connection.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAUtC;;GAEG;AACH,wBAAgB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAEnD;
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/db/connection.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAUtC;;GAEG;AACH,wBAAgB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAEnD;AAsFD;;GAEG;AACH,wBAAgB,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAkBjE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAkBjE;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAUlC;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAqBjF"}
|
package/dist/db/connection.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import Database from 'better-sqlite3';
|
|
5
5
|
import { join } from 'path';
|
|
6
6
|
import { mkdirSync, statSync } from 'fs';
|
|
7
|
-
import { EVENTS_DB_SCHEMA, PROOFS_DB_SCHEMA, EVENTS_DB_VERSION, PROOFS_DB_VERSION } from './schema.js';
|
|
7
|
+
import { EVENTS_DB_SCHEMA, PROOFS_DB_SCHEMA, EVENTS_DB_VERSION, PROOFS_DB_VERSION, EVENTS_DB_MIGRATION_1_TO_2 } from './schema.js';
|
|
8
8
|
import { getDefaultConfigDir } from '../utils/config-path.js';
|
|
9
9
|
let eventsDb = null;
|
|
10
10
|
let proofsDb = null;
|
|
@@ -16,7 +16,7 @@ export function getDbDir(configDir) {
|
|
|
16
16
|
return configDir || getDefaultConfigDir();
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
19
|
-
* Initialize events.db
|
|
19
|
+
* Initialize events.db with migrations
|
|
20
20
|
*/
|
|
21
21
|
function initEventsDb(dir) {
|
|
22
22
|
const dbPath = join(dir, 'events.db');
|
|
@@ -25,13 +25,54 @@ function initEventsDb(dir) {
|
|
|
25
25
|
db.pragma('foreign_keys = ON');
|
|
26
26
|
// Check version
|
|
27
27
|
const currentVersion = db.pragma('user_version', { simple: true });
|
|
28
|
-
if (currentVersion
|
|
29
|
-
//
|
|
28
|
+
if (currentVersion === 0) {
|
|
29
|
+
// Fresh database - create full schema
|
|
30
30
|
db.exec(EVENTS_DB_SCHEMA);
|
|
31
31
|
db.pragma(`user_version = ${EVENTS_DB_VERSION}`);
|
|
32
32
|
}
|
|
33
|
+
else if (currentVersion < EVENTS_DB_VERSION) {
|
|
34
|
+
// Run incremental migrations
|
|
35
|
+
runEventsMigrations(db, currentVersion);
|
|
36
|
+
db.pragma(`user_version = ${EVENTS_DB_VERSION}`);
|
|
37
|
+
}
|
|
33
38
|
return db;
|
|
34
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* Run incremental migrations for events.db
|
|
42
|
+
*/
|
|
43
|
+
function runEventsMigrations(db, fromVersion) {
|
|
44
|
+
// Migration 1 → 2: Add seq, summary, payload_hash columns
|
|
45
|
+
if (fromVersion < 2) {
|
|
46
|
+
try {
|
|
47
|
+
// Run migration in a transaction
|
|
48
|
+
db.exec('BEGIN TRANSACTION');
|
|
49
|
+
// SQLite doesn't support multiple ALTER TABLE in one exec
|
|
50
|
+
// Split the migration into individual statements
|
|
51
|
+
const statements = EVENTS_DB_MIGRATION_1_TO_2
|
|
52
|
+
.split(';')
|
|
53
|
+
.map(s => s.trim())
|
|
54
|
+
.filter(s => s.length > 0 && !s.startsWith('--'));
|
|
55
|
+
for (const stmt of statements) {
|
|
56
|
+
try {
|
|
57
|
+
db.exec(stmt + ';');
|
|
58
|
+
}
|
|
59
|
+
catch (err) {
|
|
60
|
+
// Ignore "duplicate column" errors (column already exists)
|
|
61
|
+
if (err instanceof Error && !err.message.includes('duplicate column')) {
|
|
62
|
+
throw err;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
db.exec('COMMIT');
|
|
67
|
+
}
|
|
68
|
+
catch (err) {
|
|
69
|
+
db.exec('ROLLBACK');
|
|
70
|
+
throw err;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
// Future migrations go here:
|
|
74
|
+
// if (fromVersion < 3) { ... }
|
|
75
|
+
}
|
|
35
76
|
/**
|
|
36
77
|
* Initialize proofs.db
|
|
37
78
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/db/connection.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/db/connection.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,9 @@ export declare class EventsStore {
|
|
|
15
15
|
saveEvent(sessionId: string, direction: EventDirection, kind: EventKind, options?: {
|
|
16
16
|
rpcId?: string;
|
|
17
17
|
rawJson?: string;
|
|
18
|
+
seq?: number;
|
|
19
|
+
summary?: string;
|
|
20
|
+
payloadHash?: string;
|
|
18
21
|
}): Event;
|
|
19
22
|
getEventsBySession(sessionId: string, limit?: number): Event[];
|
|
20
23
|
getRecentEventsByConnector(connectorId: string, limit?: number): Event[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events-store.d.ts","sourceRoot":"","sources":["../../src/db/events-store.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EACV,OAAO,EACP,KAAK,EACL,OAAO,EACP,UAAU,EACV,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,cAAc,EACf,MAAM,YAAY,CAAC;AAEpB,qBAAa,WAAW;IACtB,OAAO,CAAC,SAAS,CAAC,CAAS;gBAEf,SAAS,CAAC,EAAE,MAAM;IAI9B,OAAO,KAAK,EAAE,GAEb;IAID,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IA6B3C,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAO3D,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IAK7C,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAgB/E,cAAc,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAelD,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAOvC,SAAS,CACP,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,cAAc,EACzB,IAAI,EAAE,SAAS,EACf,OAAO,GAAE;QACP,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"events-store.d.ts","sourceRoot":"","sources":["../../src/db/events-store.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EACV,OAAO,EACP,KAAK,EACL,OAAO,EACP,UAAU,EACV,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,cAAc,EACf,MAAM,YAAY,CAAC;AAEpB,qBAAa,WAAW;IACtB,OAAO,CAAC,SAAS,CAAC,CAAS;gBAEf,SAAS,CAAC,EAAE,MAAM;IAI9B,OAAO,KAAK,EAAE,GAEb;IAID,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IA6B3C,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAO3D,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IAK7C,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAgB/E,cAAc,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAelD,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAOvC,SAAS,CACP,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,cAAc,EACzB,IAAI,EAAE,SAAS,EACf,OAAO,GAAE;QACP,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;KACjB,GACL,KAAK;IAmCR,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,EAAE;IAS9D,0BAA0B,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,KAAK,EAAE;IAc5E,WAAW,CACT,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,OAAO;IA6BV,eAAe,CACb,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,EAChB,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI;IAeP,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,EAAE;IASlD;;OAEG;IACH,kBAAkB,CAAC,OAAO,GAAE;QAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,cAAc,EAAE;IAmEzB;;OAEG;IACH,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM;IAc5C;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;KACvB,GAAG,MAAM;IAyBV;;OAEG;IACH,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAcjD;;OAEG;IACH,cAAc,IAAI,MAAM;IAMxB;;OAEG;IACH,MAAM,IAAI,IAAI;CAGf"}
|
package/dist/db/events-store.js
CHANGED
|
@@ -81,13 +81,16 @@ export class EventsStore {
|
|
|
81
81
|
direction,
|
|
82
82
|
kind,
|
|
83
83
|
ts: new Date().toISOString(),
|
|
84
|
+
seq: options.seq || null,
|
|
85
|
+
summary: options.summary || null,
|
|
86
|
+
payload_hash: options.payloadHash || null,
|
|
84
87
|
raw_json: options.rawJson || null,
|
|
85
88
|
};
|
|
86
89
|
const stmt = this.db.prepare(`
|
|
87
|
-
INSERT INTO events (event_id, session_id, rpc_id, direction, kind, ts, raw_json)
|
|
88
|
-
VALUES (?, ?, ?, ?, ?, ?, ?)
|
|
90
|
+
INSERT INTO events (event_id, session_id, rpc_id, direction, kind, ts, seq, summary, payload_hash, raw_json)
|
|
91
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
89
92
|
`);
|
|
90
|
-
stmt.run(event.event_id, event.session_id, event.rpc_id, event.direction, event.kind, event.ts, event.raw_json);
|
|
93
|
+
stmt.run(event.event_id, event.session_id, event.rpc_id, event.direction, event.kind, event.ts, event.seq, event.summary, event.payload_hash, event.raw_json);
|
|
91
94
|
return event;
|
|
92
95
|
}
|
|
93
96
|
getEventsBySession(sessionId, limit) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events-store.js","sourceRoot":"","sources":["../../src/db/events-store.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAY9C,MAAM,OAAO,WAAW;IACd,SAAS,CAAU;IAE3B,YAAY,SAAkB;QAC5B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,IAAY,EAAE;QACZ,OAAO,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC;IAED,qDAAqD;IAErD,aAAa,CAAC,WAAmB;QAC/B,MAAM,OAAO,GAAY;YACvB,UAAU,EAAE,UAAU,EAAE;YACxB,YAAY,EAAE,WAAW;YACzB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACpC,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,IAAI;YACjB,SAAS,EAAE,CAAC;YACZ,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACrC,CAAC;QAEF,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;KAG5B,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CACN,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,YAAY,EACpB,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,UAAU,CACnB,CAAC;QAEF,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,UAAU,CAAC,SAAiB,EAAE,UAAsB;QAClD,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;KAE5B,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IAC5D,CAAC;IAED,UAAU,CAAC,SAAiB;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC;QAC5E,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAmB,CAAC;IAC/C,CAAC;IAED,sBAAsB,CAAC,WAAmB,EAAE,KAAc;QACxD,IAAI,GAAG,GAAG;;;;;;;KAOT,CAAC;QACF,IAAI,KAAK,EAAE,CAAC;YACV,GAAG,IAAI,UAAU,KAAK,EAAE,CAAC;QAC3B,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAuB,CAAC;IACrD,CAAC;IAED,cAAc,CAAC,KAAc;QAC3B,IAAI,GAAG,GAAG;;;;;;KAMT,CAAC;QACF,IAAI,KAAK,EAAE,CAAC;YACV,GAAG,IAAI,UAAU,KAAK,EAAE,CAAC;QAC3B,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC,GAAG,EAAwB,CAAC;IAC1C,CAAC;IAED,cAAc,CAAC,SAAiB;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,wDAAwD,CAAC,CAAC;QACvF,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACtB,CAAC;IAED,mDAAmD;IAEnD,SAAS,CACP,SAAiB,EACjB,SAAyB,EACzB,IAAe,EACf,
|
|
1
|
+
{"version":3,"file":"events-store.js","sourceRoot":"","sources":["../../src/db/events-store.ts"],"names":[],"mappings":"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"}
|
package/dist/db/schema.d.ts
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Database schema definitions and migrations
|
|
3
|
+
* Phase 2.1: Schema version 2 with seq, summary, payload_hash
|
|
3
4
|
*/
|
|
4
|
-
export declare const EVENTS_DB_VERSION =
|
|
5
|
+
export declare const EVENTS_DB_VERSION = 2;
|
|
5
6
|
export declare const PROOFS_DB_VERSION = 1;
|
|
6
|
-
export declare const EVENTS_DB_SCHEMA = "\n-- Sessions table\nCREATE TABLE IF NOT EXISTS sessions (\n session_id TEXT PRIMARY KEY,\n connector_id TEXT NOT NULL,\n started_at TEXT NOT NULL,\n ended_at TEXT,\n exit_reason TEXT CHECK(exit_reason IN ('normal', 'error', 'killed')),\n protected INTEGER DEFAULT 0,\n created_at TEXT NOT NULL\n);\n\nCREATE INDEX IF NOT EXISTS idx_sessions_connector ON sessions(connector_id);\nCREATE INDEX IF NOT EXISTS idx_sessions_started ON sessions(started_at);\nCREATE INDEX IF NOT EXISTS idx_sessions_protected ON sessions(protected);\n\n-- RPC calls table\nCREATE TABLE IF NOT EXISTS rpc_calls (\n rpc_id TEXT NOT NULL,\n session_id TEXT NOT NULL,\n method TEXT NOT NULL,\n request_ts TEXT NOT NULL,\n response_ts TEXT,\n success INTEGER,\n error_code INTEGER,\n PRIMARY KEY (rpc_id, session_id),\n FOREIGN KEY (session_id) REFERENCES sessions(session_id) ON DELETE CASCADE\n);\n\nCREATE INDEX IF NOT EXISTS idx_rpc_calls_session ON rpc_calls(session_id);\nCREATE INDEX IF NOT EXISTS idx_rpc_calls_method ON rpc_calls(method);\n\n-- Events table\nCREATE TABLE IF NOT EXISTS events (\n event_id TEXT PRIMARY KEY,\n session_id TEXT NOT NULL,\n rpc_id TEXT,\n direction TEXT NOT NULL CHECK(direction IN ('client_to_server', 'server_to_client')),\n kind TEXT NOT NULL CHECK(kind IN ('request', 'response', 'notification', 'transport_event')),\n ts TEXT NOT NULL,\n raw_json TEXT,\n FOREIGN KEY (session_id) REFERENCES sessions(session_id) ON DELETE CASCADE\n);\n\nCREATE INDEX IF NOT EXISTS idx_events_session ON events(session_id);\nCREATE INDEX IF NOT EXISTS idx_events_ts ON events(ts);\nCREATE INDEX IF NOT EXISTS idx_events_rpc ON events(rpc_id);\n";
|
|
7
|
+
export declare const EVENTS_DB_SCHEMA = "\n-- Sessions table\nCREATE TABLE IF NOT EXISTS sessions (\n session_id TEXT PRIMARY KEY,\n connector_id TEXT NOT NULL,\n started_at TEXT NOT NULL,\n ended_at TEXT,\n exit_reason TEXT CHECK(exit_reason IN ('normal', 'error', 'killed')),\n protected INTEGER DEFAULT 0,\n created_at TEXT NOT NULL\n);\n\nCREATE INDEX IF NOT EXISTS idx_sessions_connector ON sessions(connector_id);\nCREATE INDEX IF NOT EXISTS idx_sessions_started ON sessions(started_at);\nCREATE INDEX IF NOT EXISTS idx_sessions_protected ON sessions(protected);\n\n-- RPC calls table\nCREATE TABLE IF NOT EXISTS rpc_calls (\n rpc_id TEXT NOT NULL,\n session_id TEXT NOT NULL,\n method TEXT NOT NULL,\n request_ts TEXT NOT NULL,\n response_ts TEXT,\n success INTEGER,\n error_code INTEGER,\n PRIMARY KEY (rpc_id, session_id),\n FOREIGN KEY (session_id) REFERENCES sessions(session_id) ON DELETE CASCADE\n);\n\nCREATE INDEX IF NOT EXISTS idx_rpc_calls_session ON rpc_calls(session_id);\nCREATE INDEX IF NOT EXISTS idx_rpc_calls_method ON rpc_calls(method);\n\n-- Events table (version 2: added seq, summary, payload_hash)\nCREATE TABLE IF NOT EXISTS events (\n event_id TEXT PRIMARY KEY,\n session_id TEXT NOT NULL,\n rpc_id TEXT,\n direction TEXT NOT NULL CHECK(direction IN ('client_to_server', 'server_to_client')),\n kind TEXT NOT NULL CHECK(kind IN ('request', 'response', 'notification', 'transport_event')),\n ts TEXT NOT NULL,\n seq INTEGER,\n summary TEXT,\n payload_hash TEXT,\n raw_json TEXT,\n FOREIGN KEY (session_id) REFERENCES sessions(session_id) ON DELETE CASCADE\n);\n\nCREATE INDEX IF NOT EXISTS idx_events_session ON events(session_id);\nCREATE INDEX IF NOT EXISTS idx_events_ts ON events(ts);\nCREATE INDEX IF NOT EXISTS idx_events_rpc ON events(rpc_id);\nCREATE INDEX IF NOT EXISTS idx_events_seq ON events(session_id, seq);\nCREATE INDEX IF NOT EXISTS idx_events_payload_hash ON events(payload_hash);\n";
|
|
8
|
+
/**
|
|
9
|
+
* Migration from version 1 to version 2
|
|
10
|
+
* Adds: seq, summary, payload_hash columns to events table
|
|
11
|
+
*/
|
|
12
|
+
export declare const EVENTS_DB_MIGRATION_1_TO_2 = "\n-- Add seq column (sequence number within session)\nALTER TABLE events ADD COLUMN seq INTEGER;\n\n-- Add summary column (human-readable summary)\nALTER TABLE events ADD COLUMN summary TEXT;\n\n-- Add payload_hash column (SHA-256 first 16 chars)\nALTER TABLE events ADD COLUMN payload_hash TEXT;\n\n-- Create index for seq lookups\nCREATE INDEX IF NOT EXISTS idx_events_seq ON events(session_id, seq);\n\n-- Create index for payload_hash lookups\nCREATE INDEX IF NOT EXISTS idx_events_payload_hash ON events(payload_hash);\n";
|
|
7
13
|
export declare const PROOFS_DB_SCHEMA = "\n-- Proofs table (immutable, never pruned)\nCREATE TABLE IF NOT EXISTS proofs (\n proof_id TEXT PRIMARY KEY,\n connector_id TEXT NOT NULL,\n session_id TEXT,\n rpc_id TEXT,\n method TEXT,\n payload_hash TEXT NOT NULL,\n hash_algo TEXT NOT NULL,\n inscriber_type TEXT NOT NULL,\n inscriber_ref TEXT NOT NULL,\n artifact_uri TEXT,\n created_at TEXT NOT NULL\n);\n\nCREATE INDEX IF NOT EXISTS idx_proofs_connector ON proofs(connector_id);\nCREATE INDEX IF NOT EXISTS idx_proofs_session ON proofs(session_id);\nCREATE INDEX IF NOT EXISTS idx_proofs_created ON proofs(created_at);\n";
|
|
8
14
|
//# sourceMappingURL=schema.d.ts.map
|
package/dist/db/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,iBAAiB,IAAI,CAAC;AAGnC,eAAO,MAAM,gBAAgB,i4DAoD5B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,0BAA0B,khBAetC,CAAC;AAGF,eAAO,MAAM,gBAAgB,klBAmB5B,CAAC"}
|