@ai2qa/local-agent 0.1.0 → 0.1.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/index.d.ts.map +1 -1
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/server.d.ts +7 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +80 -1
- package/dist/server.js.map +1 -1
- package/dist/session.d.ts +120 -0
- package/dist/session.d.ts.map +1 -0
- package/dist/session.js +307 -0
- package/dist/session.js.map +1 -0
- package/package.json +1 -1
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAuMH,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAChF,cAAc,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -24,7 +24,7 @@ exports.BrowserConnection = exports.Ai2qaMcpServer = exports.createMcpServer = v
|
|
|
24
24
|
const commander_1 = require("commander");
|
|
25
25
|
const server_js_1 = require("./server.js");
|
|
26
26
|
const config_js_1 = require("./config.js");
|
|
27
|
-
const VERSION = '0.1.
|
|
27
|
+
const VERSION = '0.1.2';
|
|
28
28
|
async function main() {
|
|
29
29
|
const program = new commander_1.Command();
|
|
30
30
|
program
|
|
@@ -38,6 +38,7 @@ async function main() {
|
|
|
38
38
|
.option('--port <port>', 'CDP port for sidecar mode', '9222')
|
|
39
39
|
.option('--headless', 'Run in headless mode (launch mode only)', false)
|
|
40
40
|
.option('--cloud', 'Connect to AI2QA cloud via WebSocket', false)
|
|
41
|
+
.option('--metering', 'Enable session-based metering (requires login)', false)
|
|
41
42
|
.action(async (options) => {
|
|
42
43
|
const mode = options.sidecar ? 'sidecar' : 'launch';
|
|
43
44
|
const cdpUrl = `http://localhost:${options.port}`;
|
|
@@ -58,13 +59,14 @@ async function main() {
|
|
|
58
59
|
console.error('╠════════════════════════════════════════════════════════════╣');
|
|
59
60
|
console.error(`║ Mode: ${mode.padEnd(51)}║`);
|
|
60
61
|
console.error(`║ Transport: ${(useCloud ? 'WebSocket (cloud)' : 'stdio (local)').padEnd(46)}║`);
|
|
62
|
+
console.error(`║ Metering: ${(options.metering ? 'Enabled (1 credit/session)' : 'Disabled').padEnd(47)}║`);
|
|
61
63
|
if (mode === 'sidecar') {
|
|
62
64
|
console.error(`║ CDP URL: ${cdpUrl.padEnd(48)}║`);
|
|
63
65
|
console.error('║ ║');
|
|
64
66
|
console.error('║ Make sure Chrome is running with: ║');
|
|
65
67
|
console.error('║ --remote-debugging-port=9222 ║');
|
|
66
68
|
}
|
|
67
|
-
if (useCloud) {
|
|
69
|
+
if (useCloud || options.metering) {
|
|
68
70
|
const config = (0, config_js_1.loadConfig)();
|
|
69
71
|
console.error('║ ║');
|
|
70
72
|
console.error(`║ Agent ID: ${config.agentId.substring(0, 8)}... ║`);
|
|
@@ -77,6 +79,7 @@ async function main() {
|
|
|
77
79
|
cdpUrl,
|
|
78
80
|
headless: options.headless,
|
|
79
81
|
},
|
|
82
|
+
meteringEnabled: options.metering,
|
|
80
83
|
});
|
|
81
84
|
// Handle graceful shutdown
|
|
82
85
|
const shutdown = async (signal) => {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;AAEH,yCAAoC;AACpC,2CAA8C;AAE9C,2CAOqB;AAErB,MAAM,OAAO,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
CHANGED
|
@@ -13,6 +13,8 @@ import { KnowledgeApiConfig } from './tools/report.js';
|
|
|
13
13
|
export interface ServerConfig {
|
|
14
14
|
browser?: Partial<BrowserConfig>;
|
|
15
15
|
knowledgeApi?: KnowledgeApiConfig;
|
|
16
|
+
/** Enable session-based metering (requires authentication) */
|
|
17
|
+
meteringEnabled?: boolean;
|
|
16
18
|
}
|
|
17
19
|
/**
|
|
18
20
|
* AI2QA MCP Server
|
|
@@ -20,6 +22,7 @@ export interface ServerConfig {
|
|
|
20
22
|
export declare class Ai2qaMcpServer {
|
|
21
23
|
private readonly server;
|
|
22
24
|
private readonly browserConnection;
|
|
25
|
+
private readonly sessionManager;
|
|
23
26
|
private page;
|
|
24
27
|
constructor(config?: ServerConfig);
|
|
25
28
|
/**
|
|
@@ -44,6 +47,10 @@ export declare class Ai2qaMcpServer {
|
|
|
44
47
|
* Stop the server and clean up resources.
|
|
45
48
|
*/
|
|
46
49
|
stop(): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* Extract domain from tool arguments or current page URL.
|
|
52
|
+
*/
|
|
53
|
+
private extractDomain;
|
|
47
54
|
/**
|
|
48
55
|
* Get the underlying MCP server instance.
|
|
49
56
|
*/
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAEnE,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAQ1E,OAAO,EAAqB,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAsB,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAWzF,OAAO,EAAwC,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAEnE,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAQ1E,OAAO,EAAqB,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAsB,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAWzF,OAAO,EAAwC,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AA4M7F,mCAAmC;AACnC,MAAM,WAAW,YAAY;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IACjC,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,8DAA8D;IAC9D,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;GAEG;AACH,qBAAa,cAAc;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;IACtD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,IAAI,CAAqB;gBAErB,MAAM,CAAC,EAAE,YAAY;IAwBjC;;OAEG;IACH,qBAAqB,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAIvD,OAAO,CAAC,aAAa;YA2GP,WAAW;IAmCzB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5B;;OAEG;IACG,kBAAkB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzE;;OAEG;IACG,kBAAkB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7D;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ3B;;OAEG;IAEH,OAAO,CAAC,aAAa;IA0BrB;;OAEG;IACH,SAAS,IAAI,MAAM;CAGtB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,cAAc,CAErE"}
|
package/dist/server.js
CHANGED
|
@@ -25,6 +25,7 @@ const wait_js_1 = require("./tools/wait.js");
|
|
|
25
25
|
const evaluate_js_1 = require("./tools/evaluate.js");
|
|
26
26
|
const report_js_1 = require("./tools/report.js");
|
|
27
27
|
const knowledge_js_1 = require("./tools/knowledge.js");
|
|
28
|
+
const session_js_1 = require("./session.js");
|
|
28
29
|
/** MCP tool definitions */
|
|
29
30
|
const TOOLS = [
|
|
30
31
|
{
|
|
@@ -230,16 +231,18 @@ const TOOLS = [
|
|
|
230
231
|
class Ai2qaMcpServer {
|
|
231
232
|
server;
|
|
232
233
|
browserConnection;
|
|
234
|
+
sessionManager;
|
|
233
235
|
page = null;
|
|
234
236
|
constructor(config) {
|
|
235
237
|
this.browserConnection = new connection_js_1.BrowserConnection(config?.browser);
|
|
238
|
+
this.sessionManager = (0, session_js_1.initSessionManager)(config?.meteringEnabled ?? false);
|
|
236
239
|
// Configure knowledge API if provided
|
|
237
240
|
if (config?.knowledgeApi) {
|
|
238
241
|
(0, report_js_1.configureKnowledgeApi)(config.knowledgeApi);
|
|
239
242
|
}
|
|
240
243
|
this.server = new index_js_1.Server({
|
|
241
244
|
name: 'ai2qa-local-agent',
|
|
242
|
-
version: '0.1.
|
|
245
|
+
version: '0.1.2',
|
|
243
246
|
}, {
|
|
244
247
|
capabilities: {
|
|
245
248
|
tools: {},
|
|
@@ -261,6 +264,26 @@ class Ai2qaMcpServer {
|
|
|
261
264
|
// Handle tool calls
|
|
262
265
|
this.server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
|
|
263
266
|
const { name, arguments: args } = request.params;
|
|
267
|
+
const startTime = Date.now();
|
|
268
|
+
// Check and deduct credit if at boundary (call 1, 21, 41, etc.)
|
|
269
|
+
// Only phones home when needed, not on every call
|
|
270
|
+
try {
|
|
271
|
+
await this.sessionManager.checkAndDeductCredit();
|
|
272
|
+
}
|
|
273
|
+
catch (error) {
|
|
274
|
+
const message = error instanceof Error ? error.message : 'Credit deduction failed';
|
|
275
|
+
return {
|
|
276
|
+
content: [
|
|
277
|
+
{
|
|
278
|
+
type: 'text',
|
|
279
|
+
text: JSON.stringify({
|
|
280
|
+
success: false,
|
|
281
|
+
error: message,
|
|
282
|
+
}),
|
|
283
|
+
},
|
|
284
|
+
],
|
|
285
|
+
};
|
|
286
|
+
}
|
|
264
287
|
// Ensure browser is connected
|
|
265
288
|
if (!this.page) {
|
|
266
289
|
const result = await this.browserConnection.connect();
|
|
@@ -281,6 +304,31 @@ class Ai2qaMcpServer {
|
|
|
281
304
|
}
|
|
282
305
|
// Execute the tool
|
|
283
306
|
const toolResult = await this.executeTool(name, args ?? {});
|
|
307
|
+
const durationMs = Date.now() - startTime;
|
|
308
|
+
// Collect memory for hippocampus (if metering enabled)
|
|
309
|
+
if (this.sessionManager.isMeteringEnabled()) {
|
|
310
|
+
const memory = {
|
|
311
|
+
tool: name,
|
|
312
|
+
success: toolResult.success ?? false,
|
|
313
|
+
durationMs,
|
|
314
|
+
timestamp: Date.now(),
|
|
315
|
+
};
|
|
316
|
+
// Extract domain from args or page URL
|
|
317
|
+
const domain = this.extractDomain(args, this.page);
|
|
318
|
+
if (domain) {
|
|
319
|
+
memory.domain = domain;
|
|
320
|
+
}
|
|
321
|
+
// Extract selector if present
|
|
322
|
+
const selector = args?.selector ?? args?.ref;
|
|
323
|
+
if (selector) {
|
|
324
|
+
memory.selectorUsed = selector;
|
|
325
|
+
}
|
|
326
|
+
// Extract error message if present
|
|
327
|
+
if (!toolResult.success && toolResult.error) {
|
|
328
|
+
memory.errorMessage = String(toolResult.error);
|
|
329
|
+
}
|
|
330
|
+
this.sessionManager.collectMemory(memory);
|
|
331
|
+
}
|
|
284
332
|
// Format response based on tool type
|
|
285
333
|
if (name === types_js_2.TOOL_NAMES.SCREENSHOT && toolResult.success && 'data' in toolResult) {
|
|
286
334
|
return {
|
|
@@ -366,10 +414,41 @@ class Ai2qaMcpServer {
|
|
|
366
414
|
* Stop the server and clean up resources.
|
|
367
415
|
*/
|
|
368
416
|
async stop() {
|
|
417
|
+
// End session and upload collected memory to cloud
|
|
418
|
+
await this.sessionManager.endSession();
|
|
369
419
|
await this.browserConnection.disconnect();
|
|
370
420
|
await this.server.close();
|
|
371
421
|
console.error('[Ai2qaMcpServer] Server stopped');
|
|
372
422
|
}
|
|
423
|
+
/**
|
|
424
|
+
* Extract domain from tool arguments or current page URL.
|
|
425
|
+
*/
|
|
426
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
427
|
+
extractDomain(args, page) {
|
|
428
|
+
// Check for URL in args (navigate tool)
|
|
429
|
+
if (args?.url && typeof args.url === 'string') {
|
|
430
|
+
try {
|
|
431
|
+
const url = new URL(args.url);
|
|
432
|
+
return url.hostname;
|
|
433
|
+
}
|
|
434
|
+
catch {
|
|
435
|
+
// Not a valid URL
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
// Fall back to current page URL
|
|
439
|
+
if (page) {
|
|
440
|
+
try {
|
|
441
|
+
const url = new URL(page.url());
|
|
442
|
+
if (url.protocol === 'http:' || url.protocol === 'https:') {
|
|
443
|
+
return url.hostname;
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
catch {
|
|
447
|
+
// Page might not have a valid URL
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
return null;
|
|
451
|
+
}
|
|
373
452
|
/**
|
|
374
453
|
* Get the underlying MCP server instance.
|
|
375
454
|
*/
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AA2ZH,0CAEC;AA3ZD,wEAAmE;AACnE,wEAAiF;AAEjF,iEAI4C;AAG5C,2DAA2E;AAC3E,4DAAyF;AACzF,+CAA8C;AAC9C,qDAA+C;AAC/C,+CAAyC;AACzC,6CAAuC;AACvC,+CAAyC;AACzC,uDAAgD;AAChD,yDAAmD;AACnD,qDAA+C;AAC/C,6CAAuC;AACvC,qDAA+C;AAC/C,iDAA6F;AAC7F,uDAAoD;AAEpD,2BAA2B;AAC3B,MAAM,KAAK,GAAW;IAClB;QACI,IAAI,EAAE,qBAAU,CAAC,QAAQ;QACzB,WAAW,EAAE,yEAAyE;QACtF,WAAW,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACR,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE;gBAC1D,IAAI,EAAE;oBACF,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC;oBAC3C,WAAW,EAAE,iCAAiC;iBACjD;gBACD,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0CAA0C,EAAE;aACvF;YACD,QAAQ,EAAE,CAAC,KAAK,CAAC;SACpB;KACJ;IACD;QACI,IAAI,EAAE,qBAAU,CAAC,KAAK;QACtB,WAAW,EAAE,+CAA+C;QAC5D,WAAW,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACR,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kCAAkC,EAAE;gBAC7E,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0CAA0C,EAAE;gBAChF,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,WAAW,EAAE,cAAc,EAAE;gBAC1F,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+BAA+B,EAAE;gBAC5E,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE;aACtE;SACJ;KACJ;IACD;QACI,IAAI,EAAE,qBAAU,CAAC,IAAI;QACrB,WAAW,EAAE,iCAAiC;QAC9C,WAAW,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACR,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+BAA+B,EAAE;gBAC1E,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4BAA4B,EAAE;gBAClE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE;gBAC5D,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,8CAA8C,EAAE;gBACvF,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE;aACtE;YACD,QAAQ,EAAE,CAAC,OAAO,CAAC;SACtB;KACJ;IACD;QACI,IAAI,EAAE,qBAAU,CAAC,KAAK;QACtB,WAAW,EAAE,uBAAuB;QACpC,WAAW,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACR,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE;gBACpE,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4BAA4B,EAAE;gBAClE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE;aACtE;SACJ;KACJ;IACD;QACI,IAAI,EAAE,qBAAU,CAAC,SAAS;QAC1B,WAAW,EAAE,yCAAyC;QACtD,WAAW,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACR,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yCAAyC,EAAE;gBAC/E,SAAS,EAAE;oBACP,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;oBACpE,WAAW,EAAE,uBAAuB;iBACvC;aACJ;YACD,QAAQ,EAAE,CAAC,KAAK,CAAC;SACpB;KACJ;IACD;QACI,IAAI,EAAE,qBAAU,CAAC,UAAU;QAC3B,WAAW,EAAE,0CAA0C;QACvD,WAAW,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACR,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,8BAA8B,EAAE;gBAC1E,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uCAAuC,EAAE;gBAClF,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,cAAc,EAAE;gBAC9E,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE;aACnE;SACJ;KACJ;IACD;QACI,IAAI,EAAE,qBAAU,CAAC,QAAQ;QACzB,WAAW,EAAE,mEAAmE;QAChF,WAAW,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACR,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,kCAAkC,EAAE;gBAC7E,IAAI,EAAE;oBACF,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC;oBACvC,WAAW,EAAE,wCAAwC;iBACxD;aACJ;SACJ;KACJ;IACD;QACI,IAAI,EAAE,qBAAU,CAAC,IAAI;QACrB,WAAW,EAAE,qCAAqC;QAClD,WAAW,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACR,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE;gBACtE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE;gBAChE,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE;gBAC5D,KAAK,EAAE;oBACH,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC;oBACnD,WAAW,EAAE,2BAA2B;iBAC3C;gBACD,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,EAAE;aAChE;SACJ;KACJ;IACD;QACI,IAAI,EAAE,qBAAU,CAAC,QAAQ;QACzB,WAAW,EAAE,oCAAoC;QACjD,WAAW,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACR,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4BAA4B,EAAE;gBACrE,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,iCAAiC,EAAE;aAC1E;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACvB;KACJ;IACD;QACI,IAAI,EAAE,qBAAU,CAAC,cAAc;QAC/B,WAAW,EAAE,0DAA0D;QACvE,WAAW,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACR,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uCAAuC,EAAE;gBAChF,OAAO,EAAE;oBACL,IAAI,EAAE,OAAO;oBACb,WAAW,EAAE,sCAAsC;oBACnD,KAAK,EAAE;wBACH,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACR,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE;4BACxE,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE;4BACrE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,4BAA4B,EAAE;4BACvE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE;4BACnE,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE;yBAC3E;wBACD,QAAQ,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC;qBACtC;iBACJ;gBACD,WAAW,EAAE;oBACT,IAAI,EAAE,OAAO;oBACb,WAAW,EAAE,yCAAyC;oBACtD,KAAK,EAAE;wBACH,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACR,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kCAAkC,EAAE;4BACxE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE;4BAC/D,YAAY,EAAE;gCACV,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC;gCACrD,WAAW,EAAE,kBAAkB;6BAClC;4BACD,WAAW,EAAE;gCACT,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC;gCAC7C,WAAW,EAAE,iBAAiB;6BACjC;4BACD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iCAAiC,EAAE;4BACzE,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4BAA4B,EAAE;yBAC7E;wBACD,QAAQ,EAAE,CAAC,KAAK,CAAC;qBACpB;iBACJ;aACJ;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACvB;KACJ;IACD;QACI,IAAI,EAAE,qBAAU,CAAC,aAAa;QAC9B,WAAW,EAAE,wDAAwD;QACrE,WAAW,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACR,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uCAAuC,EAAE;gBAChF,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2CAA2C,EAAE;gBACtF,gBAAgB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,2CAA2C,EAAE;gBAC/F,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,qCAAqC,EAAE;aACzF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACvB;KACJ;CACJ,CAAC;AAQF;;GAEG;AACH,MAAa,cAAc;IACN,MAAM,CAAS;IACf,iBAAiB,CAAoB;IAC9C,IAAI,GAAgB,IAAI,CAAC;IAEjC,YAAY,MAAqB;QAC7B,IAAI,CAAC,iBAAiB,GAAG,IAAI,iCAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAEhE,sCAAsC;QACtC,IAAI,MAAM,EAAE,YAAY,EAAE,CAAC;YACvB,IAAA,iCAAqB,EAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,iBAAM,CACpB;YACI,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,OAAO;SACnB,EACD;YACI,YAAY,EAAE;gBACV,KAAK,EAAE,EAAE;aACZ;SACJ,CACJ,CAAC;QAEF,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,qBAAqB,CAAC,MAA0B;QAC5C,IAAA,iCAAqB,EAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAEO,aAAa;QACjB,uBAAuB;QACvB,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,iCAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;YAC/D,KAAK,EAAE,KAAK;SACf,CAAC,CAAC,CAAC;QAEJ,oBAAoB;QACpB,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,gCAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACnE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;YAEjD,8BAA8B;YAC9B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACb,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;gBACtD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBAClB,OAAO;wBACH,OAAO,EAAE;4BACL;gCACI,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oCACjB,OAAO,EAAE,KAAK;oCACd,KAAK,EAAE,iCAAiC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE;iCACjE,CAAC;6BACL;yBACJ;qBACJ,CAAC;gBACN,CAAC;gBACD,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC;YAC7B,CAAC;YAED,mBAAmB;YACnB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;YAE5D,qCAAqC;YACrC,IAAI,IAAI,KAAK,qBAAU,CAAC,UAAU,IAAI,UAAU,CAAC,OAAO,IAAI,MAAM,IAAI,UAAU,EAAE,CAAC;gBAC/E,OAAO;oBACH,OAAO,EAAE;wBACL;4BACI,IAAI,EAAE,OAAO;4BACb,IAAI,EAAE,UAAU,CAAC,IAAI;4BACrB,QAAQ,EAAE,UAAU,CAAC,QAAQ,IAAI,WAAW;yBAC/C;qBACJ;iBACJ,CAAC;YACN,CAAC;YAED,OAAO;gBACH,OAAO,EAAE;oBACL;wBACI,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;qBAC5C;iBACJ;aACJ,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;IAED,8DAA8D;IACtD,KAAK,CAAC,WAAW,CAAC,IAAY,EAAE,IAA6B;QACjE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACb,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAC;QAClE,CAAC;QAED,QAAQ,IAAI,EAAE,CAAC;YACX,KAAK,qBAAU,CAAC,QAAQ;gBACpB,OAAO,IAAA,sBAAQ,EAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACrC,KAAK,qBAAU,CAAC,KAAK;gBACjB,OAAO,IAAA,gBAAK,EAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAClC,KAAK,qBAAU,CAAC,IAAI;gBAChB,OAAO,IAAA,cAAI,EAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACjC,KAAK,qBAAU,CAAC,KAAK;gBACjB,OAAO,IAAA,gBAAK,EAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAClC,KAAK,qBAAU,CAAC,SAAS;gBACrB,OAAO,IAAA,uBAAQ,EAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACrC,KAAK,qBAAU,CAAC,UAAU;gBACtB,OAAO,IAAA,0BAAU,EAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACvC,KAAK,qBAAU,CAAC,QAAQ;gBACpB,OAAO,IAAA,sBAAQ,EAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACrC,KAAK,qBAAU,CAAC,IAAI;gBAChB,OAAO,IAAA,cAAI,EAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACjC,KAAK,qBAAU,CAAC,QAAQ;gBACpB,OAAO,IAAA,sBAAQ,EAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACrC,KAAK,qBAAU,CAAC,cAAc;gBAC1B,+CAA+C;gBAC/C,OAAO,IAAA,yBAAa,EAAC,IAAI,CAAC,CAAC;YAC/B,KAAK,qBAAU,CAAC,aAAa;gBACzB,8CAA8C;gBAC9C,OAAO,IAAA,2BAAY,EAAC,IAAI,CAAC,CAAC;YAC9B;gBACI,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,IAAI,EAAE,EAAE,CAAC;QAClE,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACP,MAAM,SAAS,GAAG,IAAI,+BAAoB,EAAE,CAAC;QAC7C,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CAAC,MAAgC;QACrD,MAAM,SAAS,GAAG,IAAI,iCAAkB,CAAC,MAAM,CAAC,CAAC;QACjD,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;QACxB,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAC1E,OAAO,CAAC,KAAK,CAAC,kCAAkC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IAClE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CAAC,SAAoB;QACzC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACN,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC;QAC1C,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAC1B,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,SAAS;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;CACJ;AA1KD,wCA0KC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,MAAqB;IACjD,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session Manager
|
|
3
|
+
*
|
|
4
|
+
* Manages session-based metering for sidecar mode.
|
|
5
|
+
* Uses incremental deduction: 1 credit per N tool calls (configurable).
|
|
6
|
+
*
|
|
7
|
+
* Phone home pattern:
|
|
8
|
+
* - Call 1: Phone home, deduct 1 credit
|
|
9
|
+
* - Calls 2-20: Use local counter, no network
|
|
10
|
+
* - Call 21: Phone home again, deduct 1 credit
|
|
11
|
+
* - Continue at boundaries: 41, 61, 81, etc.
|
|
12
|
+
*
|
|
13
|
+
* Memory uploaded at session end (hippocampus grows).
|
|
14
|
+
* Fail closed if can't reach cloud.
|
|
15
|
+
*/
|
|
16
|
+
/** Memory entry collected during session */
|
|
17
|
+
export interface AgentMemory {
|
|
18
|
+
tool: string;
|
|
19
|
+
domain?: string;
|
|
20
|
+
selectorUsed?: string;
|
|
21
|
+
success: boolean;
|
|
22
|
+
durationMs?: number;
|
|
23
|
+
errorMessage?: string;
|
|
24
|
+
timestamp: number;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Session Manager for metered sidecar mode.
|
|
28
|
+
*
|
|
29
|
+
* Incremental deduction model:
|
|
30
|
+
* 1. First tool call -> Phone home -> Verify credits >= 1 -> Deduct 1 credit
|
|
31
|
+
* 2. Next (callsPerCredit - 1) calls are free (within current credit block)
|
|
32
|
+
* 3. At call #(callsPerCredit + 1) -> Phone home again -> Deduct 1 more credit
|
|
33
|
+
* 4. Repeat at every callsPerCredit boundary
|
|
34
|
+
* 5. When session ends -> Upload learnings to cloud (hippocampus grows)
|
|
35
|
+
* 6. If credits = 0 at any boundary -> Reject with "Insufficient credits" error
|
|
36
|
+
*/
|
|
37
|
+
export declare class SessionManager {
|
|
38
|
+
private apiUrl;
|
|
39
|
+
private deviceToken;
|
|
40
|
+
private sessionId;
|
|
41
|
+
private state;
|
|
42
|
+
private collectedMemory;
|
|
43
|
+
private creditsRemaining;
|
|
44
|
+
private readonly meteringEnabled;
|
|
45
|
+
/** Total tool calls in this session */
|
|
46
|
+
private toolCallCount;
|
|
47
|
+
/** Calls per credit (received from server, can be adjusted without agent redeploy) */
|
|
48
|
+
private callsPerCredit;
|
|
49
|
+
constructor(meteringEnabled?: boolean);
|
|
50
|
+
/**
|
|
51
|
+
* Check and deduct credit if needed.
|
|
52
|
+
* Called BEFORE every tool execution.
|
|
53
|
+
*
|
|
54
|
+
* Only phones home at boundaries:
|
|
55
|
+
* - Call 1 (first call, new session)
|
|
56
|
+
* - Call 21, 41, 61, etc. (every callsPerCredit boundary)
|
|
57
|
+
*
|
|
58
|
+
* @throws Error if authentication fails or insufficient credits
|
|
59
|
+
*/
|
|
60
|
+
checkAndDeductCredit(): Promise<void>;
|
|
61
|
+
/**
|
|
62
|
+
* @deprecated Use checkAndDeductCredit() instead. This method is kept for backward compatibility.
|
|
63
|
+
* Start a metered session. Now delegates to checkAndDeductCredit().
|
|
64
|
+
*/
|
|
65
|
+
startSession(): Promise<void>;
|
|
66
|
+
/**
|
|
67
|
+
* Collect memory entry during test execution.
|
|
68
|
+
*
|
|
69
|
+
* @param entry Memory entry to collect
|
|
70
|
+
*/
|
|
71
|
+
collectMemory(entry: AgentMemory): void;
|
|
72
|
+
/**
|
|
73
|
+
* End the session and upload collected memory.
|
|
74
|
+
* Called on SIGINT/SIGTERM or explicit disconnect.
|
|
75
|
+
*/
|
|
76
|
+
endSession(): Promise<void>;
|
|
77
|
+
/**
|
|
78
|
+
* Check if session is active.
|
|
79
|
+
*/
|
|
80
|
+
isActive(): boolean;
|
|
81
|
+
/**
|
|
82
|
+
* Get current session ID.
|
|
83
|
+
*/
|
|
84
|
+
getSessionId(): string | null;
|
|
85
|
+
/**
|
|
86
|
+
* Get remaining credits (only valid after first deduction).
|
|
87
|
+
*/
|
|
88
|
+
getCreditsRemaining(): number;
|
|
89
|
+
/**
|
|
90
|
+
* Get total tool calls in this session.
|
|
91
|
+
*/
|
|
92
|
+
getToolCallCount(): number;
|
|
93
|
+
/**
|
|
94
|
+
* Get current calls-per-credit setting (received from server).
|
|
95
|
+
*/
|
|
96
|
+
getCallsPerCredit(): number;
|
|
97
|
+
/**
|
|
98
|
+
* Check if metering is enabled.
|
|
99
|
+
*/
|
|
100
|
+
isMeteringEnabled(): boolean;
|
|
101
|
+
/**
|
|
102
|
+
* Extract domain from URL or string.
|
|
103
|
+
*/
|
|
104
|
+
private extractDomain;
|
|
105
|
+
/**
|
|
106
|
+
* Check if a string contains potentially sensitive data.
|
|
107
|
+
*/
|
|
108
|
+
private containsSensitiveData;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Initialize the session manager.
|
|
112
|
+
*
|
|
113
|
+
* @param meteringEnabled Whether to enable session-based metering
|
|
114
|
+
*/
|
|
115
|
+
export declare function initSessionManager(meteringEnabled?: boolean): SessionManager;
|
|
116
|
+
/**
|
|
117
|
+
* Get the session manager instance.
|
|
118
|
+
*/
|
|
119
|
+
export declare function getSessionManager(): SessionManager | null;
|
|
120
|
+
//# sourceMappingURL=session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAOH,4CAA4C;AAC5C,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACrB;AAmBD;;;;;;;;;;GAUG;AACH,qBAAa,cAAc;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,KAAK,CAAwB;IACrC,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,gBAAgB,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAU;IAE1C,uCAAuC;IACvC,OAAO,CAAC,aAAa,CAAa;IAElC,sFAAsF;IACtF,OAAO,CAAC,cAAc,CAAoC;gBAE9C,eAAe,GAAE,OAAe;IAe5C;;;;;;;;;OASG;IACG,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAsF3C;;;OAGG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAInC;;;;OAIG;IACH,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAkCvC;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAsCjC;;OAEG;IACH,QAAQ,IAAI,OAAO;IAInB;;OAEG;IACH,YAAY,IAAI,MAAM,GAAG,IAAI;IAI7B;;OAEG;IACH,mBAAmB,IAAI,MAAM;IAI7B;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAI1B;;OAEG;IACH,iBAAiB,IAAI,MAAM;IAI3B;;OAEG;IACH,iBAAiB,IAAI,OAAO;IAM5B;;OAEG;IACH,OAAO,CAAC,aAAa;IAcrB;;OAEG;IACH,OAAO,CAAC,qBAAqB;CAShC;AAOD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,eAAe,GAAE,OAAe,GAAG,cAAc,CAKnF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,GAAG,IAAI,CAEzD"}
|
package/dist/session.js
ADDED
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Session Manager
|
|
4
|
+
*
|
|
5
|
+
* Manages session-based metering for sidecar mode.
|
|
6
|
+
* Uses incremental deduction: 1 credit per N tool calls (configurable).
|
|
7
|
+
*
|
|
8
|
+
* Phone home pattern:
|
|
9
|
+
* - Call 1: Phone home, deduct 1 credit
|
|
10
|
+
* - Calls 2-20: Use local counter, no network
|
|
11
|
+
* - Call 21: Phone home again, deduct 1 credit
|
|
12
|
+
* - Continue at boundaries: 41, 61, 81, etc.
|
|
13
|
+
*
|
|
14
|
+
* Memory uploaded at session end (hippocampus grows).
|
|
15
|
+
* Fail closed if can't reach cloud.
|
|
16
|
+
*/
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.SessionManager = void 0;
|
|
19
|
+
exports.initSessionManager = initSessionManager;
|
|
20
|
+
exports.getSessionManager = getSessionManager;
|
|
21
|
+
const config_js_1 = require("./config.js");
|
|
22
|
+
/** Default calls per credit (can be overridden by server) */
|
|
23
|
+
const DEFAULT_CALLS_PER_CREDIT = 20;
|
|
24
|
+
/**
|
|
25
|
+
* Session Manager for metered sidecar mode.
|
|
26
|
+
*
|
|
27
|
+
* Incremental deduction model:
|
|
28
|
+
* 1. First tool call -> Phone home -> Verify credits >= 1 -> Deduct 1 credit
|
|
29
|
+
* 2. Next (callsPerCredit - 1) calls are free (within current credit block)
|
|
30
|
+
* 3. At call #(callsPerCredit + 1) -> Phone home again -> Deduct 1 more credit
|
|
31
|
+
* 4. Repeat at every callsPerCredit boundary
|
|
32
|
+
* 5. When session ends -> Upload learnings to cloud (hippocampus grows)
|
|
33
|
+
* 6. If credits = 0 at any boundary -> Reject with "Insufficient credits" error
|
|
34
|
+
*/
|
|
35
|
+
class SessionManager {
|
|
36
|
+
apiUrl;
|
|
37
|
+
deviceToken;
|
|
38
|
+
sessionId = null;
|
|
39
|
+
state = 'idle';
|
|
40
|
+
collectedMemory = [];
|
|
41
|
+
creditsRemaining = -1;
|
|
42
|
+
meteringEnabled;
|
|
43
|
+
/** Total tool calls in this session */
|
|
44
|
+
toolCallCount = 0;
|
|
45
|
+
/** Calls per credit (received from server, can be adjusted without agent redeploy) */
|
|
46
|
+
callsPerCredit = DEFAULT_CALLS_PER_CREDIT;
|
|
47
|
+
constructor(meteringEnabled = false) {
|
|
48
|
+
this.meteringEnabled = meteringEnabled;
|
|
49
|
+
const config = (0, config_js_1.loadConfig)();
|
|
50
|
+
const cloudConfig = (0, config_js_1.getCloudConfig)();
|
|
51
|
+
// Convert WebSocket URL to HTTP URL for REST calls
|
|
52
|
+
this.apiUrl = config.cloudUrl
|
|
53
|
+
.replace('wss://', 'https://')
|
|
54
|
+
.replace('ws://', 'http://')
|
|
55
|
+
.replace('/agents/connect', '');
|
|
56
|
+
this.deviceToken = cloudConfig?.token ?? null;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Check and deduct credit if needed.
|
|
60
|
+
* Called BEFORE every tool execution.
|
|
61
|
+
*
|
|
62
|
+
* Only phones home at boundaries:
|
|
63
|
+
* - Call 1 (first call, new session)
|
|
64
|
+
* - Call 21, 41, 61, etc. (every callsPerCredit boundary)
|
|
65
|
+
*
|
|
66
|
+
* @throws Error if authentication fails or insufficient credits
|
|
67
|
+
*/
|
|
68
|
+
async checkAndDeductCredit() {
|
|
69
|
+
// If metering is disabled, skip
|
|
70
|
+
if (!this.meteringEnabled) {
|
|
71
|
+
this.state = 'active';
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
// Increment call counter
|
|
75
|
+
this.toolCallCount++;
|
|
76
|
+
// Determine if we need to phone home
|
|
77
|
+
// Phone home at: call 1, call (1 + callsPerCredit), call (1 + 2*callsPerCredit), etc.
|
|
78
|
+
const shouldDeduct = this.toolCallCount === 1 ||
|
|
79
|
+
((this.toolCallCount - 1) % this.callsPerCredit === 0);
|
|
80
|
+
if (!shouldDeduct) {
|
|
81
|
+
// Within current credit block, no network call needed
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
// Wait if another deduction is in progress
|
|
85
|
+
if (this.state === 'deducting') {
|
|
86
|
+
while (this.state === 'deducting') {
|
|
87
|
+
await new Promise(resolve => setTimeout(resolve, 50));
|
|
88
|
+
}
|
|
89
|
+
// Re-check after wait (another call might have deducted)
|
|
90
|
+
if (this.state === 'active')
|
|
91
|
+
return;
|
|
92
|
+
throw new Error('Credit deduction failed');
|
|
93
|
+
}
|
|
94
|
+
if (!this.deviceToken) {
|
|
95
|
+
throw new Error('Authentication required. Run: ai2qa-agent login <token>');
|
|
96
|
+
}
|
|
97
|
+
this.state = 'deducting';
|
|
98
|
+
try {
|
|
99
|
+
const response = await fetch(`${this.apiUrl}/api/v1/agents/session/deduct`, {
|
|
100
|
+
method: 'POST',
|
|
101
|
+
headers: {
|
|
102
|
+
'Authorization': `Bearer ${this.deviceToken}`,
|
|
103
|
+
'Content-Type': 'application/json',
|
|
104
|
+
},
|
|
105
|
+
body: JSON.stringify({
|
|
106
|
+
sessionId: this.sessionId, // null on first call, creates new session
|
|
107
|
+
}),
|
|
108
|
+
});
|
|
109
|
+
if (!response.ok) {
|
|
110
|
+
const errorBody = await response.json().catch(() => ({}));
|
|
111
|
+
if (response.status === 402 || errorBody.code === 'INSUFFICIENT_CREDITS') {
|
|
112
|
+
throw new Error('Insufficient credits. Please purchase more at ai2qa.com/pricing');
|
|
113
|
+
}
|
|
114
|
+
if (response.status === 401) {
|
|
115
|
+
throw new Error('Invalid or expired token. Run: ai2qa-agent login <token>');
|
|
116
|
+
}
|
|
117
|
+
throw new Error(errorBody.message ?? errorBody.error ?? `Credit deduction failed: ${response.status}`);
|
|
118
|
+
}
|
|
119
|
+
const data = await response.json();
|
|
120
|
+
this.sessionId = data.sessionId;
|
|
121
|
+
this.creditsRemaining = data.creditsRemaining;
|
|
122
|
+
// Server can adjust callsPerCredit without agent redeployment
|
|
123
|
+
if (data.callsPerCredit && data.callsPerCredit > 0) {
|
|
124
|
+
this.callsPerCredit = data.callsPerCredit;
|
|
125
|
+
}
|
|
126
|
+
this.state = 'active';
|
|
127
|
+
console.error(`[SessionManager] Credit deducted (call #${this.toolCallCount}). Credits remaining: ${this.creditsRemaining}. Calls per credit: ${this.callsPerCredit}`);
|
|
128
|
+
}
|
|
129
|
+
catch (error) {
|
|
130
|
+
// Decrement counter since the call didn't actually succeed
|
|
131
|
+
this.toolCallCount--;
|
|
132
|
+
this.state = this.sessionId ? 'active' : 'idle';
|
|
133
|
+
if (error instanceof TypeError && error.message.includes('fetch')) {
|
|
134
|
+
throw new Error('Cannot reach AI2QA. Please check your internet connection.');
|
|
135
|
+
}
|
|
136
|
+
throw error;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* @deprecated Use checkAndDeductCredit() instead. This method is kept for backward compatibility.
|
|
141
|
+
* Start a metered session. Now delegates to checkAndDeductCredit().
|
|
142
|
+
*/
|
|
143
|
+
async startSession() {
|
|
144
|
+
await this.checkAndDeductCredit();
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Collect memory entry during test execution.
|
|
148
|
+
*
|
|
149
|
+
* @param entry Memory entry to collect
|
|
150
|
+
*/
|
|
151
|
+
collectMemory(entry) {
|
|
152
|
+
// Sanitize sensitive data
|
|
153
|
+
const sanitized = {
|
|
154
|
+
tool: entry.tool,
|
|
155
|
+
success: entry.success,
|
|
156
|
+
timestamp: entry.timestamp,
|
|
157
|
+
};
|
|
158
|
+
// Only include domain if it looks like a domain (no paths, no credentials)
|
|
159
|
+
if (entry.domain) {
|
|
160
|
+
const domain = this.extractDomain(entry.domain);
|
|
161
|
+
if (domain) {
|
|
162
|
+
sanitized.domain = domain;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
// Include non-sensitive selector info
|
|
166
|
+
if (entry.selectorUsed && !this.containsSensitiveData(entry.selectorUsed)) {
|
|
167
|
+
sanitized.selectorUsed = entry.selectorUsed;
|
|
168
|
+
}
|
|
169
|
+
// Include timing
|
|
170
|
+
if (entry.durationMs != null) {
|
|
171
|
+
sanitized.durationMs = entry.durationMs;
|
|
172
|
+
}
|
|
173
|
+
// Include error message (truncated)
|
|
174
|
+
if (entry.errorMessage) {
|
|
175
|
+
sanitized.errorMessage = entry.errorMessage.substring(0, 200);
|
|
176
|
+
}
|
|
177
|
+
this.collectedMemory.push(sanitized);
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* End the session and upload collected memory.
|
|
181
|
+
* Called on SIGINT/SIGTERM or explicit disconnect.
|
|
182
|
+
*/
|
|
183
|
+
async endSession() {
|
|
184
|
+
if (!this.meteringEnabled) {
|
|
185
|
+
this.state = 'ended';
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
if (this.state !== 'active' || !this.sessionId) {
|
|
189
|
+
this.state = 'ended';
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
this.state = 'ending';
|
|
193
|
+
try {
|
|
194
|
+
await fetch(`${this.apiUrl}/api/v1/agents/session/end`, {
|
|
195
|
+
method: 'POST',
|
|
196
|
+
headers: {
|
|
197
|
+
'Authorization': `Bearer ${this.deviceToken}`,
|
|
198
|
+
'Content-Type': 'application/json',
|
|
199
|
+
},
|
|
200
|
+
body: JSON.stringify({
|
|
201
|
+
sessionId: this.sessionId,
|
|
202
|
+
memory: this.collectedMemory,
|
|
203
|
+
totalToolCalls: this.toolCallCount,
|
|
204
|
+
}),
|
|
205
|
+
});
|
|
206
|
+
console.error(`[SessionManager] Session ended. Total tool calls: ${this.toolCallCount}. Uploaded ${this.collectedMemory.length} memory entries.`);
|
|
207
|
+
}
|
|
208
|
+
catch (error) {
|
|
209
|
+
console.error('[SessionManager] Failed to end session:', error);
|
|
210
|
+
}
|
|
211
|
+
finally {
|
|
212
|
+
this.state = 'ended';
|
|
213
|
+
this.sessionId = null;
|
|
214
|
+
this.collectedMemory = [];
|
|
215
|
+
this.toolCallCount = 0;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Check if session is active.
|
|
220
|
+
*/
|
|
221
|
+
isActive() {
|
|
222
|
+
return this.state === 'active';
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Get current session ID.
|
|
226
|
+
*/
|
|
227
|
+
getSessionId() {
|
|
228
|
+
return this.sessionId;
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Get remaining credits (only valid after first deduction).
|
|
232
|
+
*/
|
|
233
|
+
getCreditsRemaining() {
|
|
234
|
+
return this.creditsRemaining;
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Get total tool calls in this session.
|
|
238
|
+
*/
|
|
239
|
+
getToolCallCount() {
|
|
240
|
+
return this.toolCallCount;
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Get current calls-per-credit setting (received from server).
|
|
244
|
+
*/
|
|
245
|
+
getCallsPerCredit() {
|
|
246
|
+
return this.callsPerCredit;
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Check if metering is enabled.
|
|
250
|
+
*/
|
|
251
|
+
isMeteringEnabled() {
|
|
252
|
+
return this.meteringEnabled;
|
|
253
|
+
}
|
|
254
|
+
// ==================== Helper Methods ====================
|
|
255
|
+
/**
|
|
256
|
+
* Extract domain from URL or string.
|
|
257
|
+
*/
|
|
258
|
+
extractDomain(input) {
|
|
259
|
+
try {
|
|
260
|
+
// Try parsing as URL
|
|
261
|
+
const url = new URL(input);
|
|
262
|
+
return url.hostname;
|
|
263
|
+
}
|
|
264
|
+
catch {
|
|
265
|
+
// Check if it looks like a domain
|
|
266
|
+
if (/^[a-zA-Z0-9][a-zA-Z0-9-_.]+\.[a-zA-Z]{2,}$/.test(input)) {
|
|
267
|
+
return input;
|
|
268
|
+
}
|
|
269
|
+
return null;
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Check if a string contains potentially sensitive data.
|
|
274
|
+
*/
|
|
275
|
+
containsSensitiveData(value) {
|
|
276
|
+
const lowerValue = value.toLowerCase();
|
|
277
|
+
const sensitivePatterns = [
|
|
278
|
+
'password', 'passwd', 'secret', 'token', 'api_key', 'apikey',
|
|
279
|
+
'authorization', 'auth', 'credential', 'ssn', 'social_security',
|
|
280
|
+
'credit_card', 'card_number', 'cvv', 'pin',
|
|
281
|
+
];
|
|
282
|
+
return sensitivePatterns.some(pattern => lowerValue.includes(pattern));
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
exports.SessionManager = SessionManager;
|
|
286
|
+
/**
|
|
287
|
+
* Singleton instance for global session management.
|
|
288
|
+
*/
|
|
289
|
+
let sessionManager = null;
|
|
290
|
+
/**
|
|
291
|
+
* Initialize the session manager.
|
|
292
|
+
*
|
|
293
|
+
* @param meteringEnabled Whether to enable session-based metering
|
|
294
|
+
*/
|
|
295
|
+
function initSessionManager(meteringEnabled = false) {
|
|
296
|
+
if (!sessionManager) {
|
|
297
|
+
sessionManager = new SessionManager(meteringEnabled);
|
|
298
|
+
}
|
|
299
|
+
return sessionManager;
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* Get the session manager instance.
|
|
303
|
+
*/
|
|
304
|
+
function getSessionManager() {
|
|
305
|
+
return sessionManager;
|
|
306
|
+
}
|
|
307
|
+
//# sourceMappingURL=session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED