agentmb 0.1.0

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.
Files changed (91) hide show
  1. package/INSTALL.md +154 -0
  2. package/README.md +228 -0
  3. package/dist/audit/logger.d.ts +25 -0
  4. package/dist/audit/logger.d.ts.map +1 -0
  5. package/dist/audit/logger.js +56 -0
  6. package/dist/audit/logger.js.map +1 -0
  7. package/dist/browser/actions.d.ts +111 -0
  8. package/dist/browser/actions.d.ts.map +1 -0
  9. package/dist/browser/actions.js +291 -0
  10. package/dist/browser/actions.js.map +1 -0
  11. package/dist/browser/manager.d.ts +51 -0
  12. package/dist/browser/manager.d.ts.map +1 -0
  13. package/dist/browser/manager.js +233 -0
  14. package/dist/browser/manager.js.map +1 -0
  15. package/dist/cli/client.d.ts +13 -0
  16. package/dist/cli/client.d.ts.map +1 -0
  17. package/dist/cli/client.js +109 -0
  18. package/dist/cli/client.js.map +1 -0
  19. package/dist/cli/commands/actions.d.ts +3 -0
  20. package/dist/cli/commands/actions.d.ts.map +1 -0
  21. package/dist/cli/commands/actions.js +349 -0
  22. package/dist/cli/commands/actions.js.map +1 -0
  23. package/dist/cli/commands/pages.d.ts +3 -0
  24. package/dist/cli/commands/pages.d.ts.map +1 -0
  25. package/dist/cli/commands/pages.js +107 -0
  26. package/dist/cli/commands/pages.js.map +1 -0
  27. package/dist/cli/commands/route.d.ts +3 -0
  28. package/dist/cli/commands/route.d.ts.map +1 -0
  29. package/dist/cli/commands/route.js +72 -0
  30. package/dist/cli/commands/route.js.map +1 -0
  31. package/dist/cli/commands/session.d.ts +3 -0
  32. package/dist/cli/commands/session.d.ts.map +1 -0
  33. package/dist/cli/commands/session.js +57 -0
  34. package/dist/cli/commands/session.js.map +1 -0
  35. package/dist/cli/commands/start.d.ts +8 -0
  36. package/dist/cli/commands/start.d.ts.map +1 -0
  37. package/dist/cli/commands/start.js +66 -0
  38. package/dist/cli/commands/start.js.map +1 -0
  39. package/dist/cli/commands/status.d.ts +6 -0
  40. package/dist/cli/commands/status.d.ts.map +1 -0
  41. package/dist/cli/commands/status.js +25 -0
  42. package/dist/cli/commands/status.js.map +1 -0
  43. package/dist/cli/commands/stop.d.ts +6 -0
  44. package/dist/cli/commands/stop.d.ts.map +1 -0
  45. package/dist/cli/commands/stop.js +53 -0
  46. package/dist/cli/commands/stop.js.map +1 -0
  47. package/dist/cli/commands/trace.d.ts +3 -0
  48. package/dist/cli/commands/trace.d.ts.map +1 -0
  49. package/dist/cli/commands/trace.js +43 -0
  50. package/dist/cli/commands/trace.js.map +1 -0
  51. package/dist/cli/index.d.ts +3 -0
  52. package/dist/cli/index.d.ts.map +1 -0
  53. package/dist/cli/index.js +44 -0
  54. package/dist/cli/index.js.map +1 -0
  55. package/dist/daemon/config.d.ts +25 -0
  56. package/dist/daemon/config.d.ts.map +1 -0
  57. package/dist/daemon/config.js +35 -0
  58. package/dist/daemon/config.js.map +1 -0
  59. package/dist/daemon/index.d.ts +7 -0
  60. package/dist/daemon/index.d.ts.map +1 -0
  61. package/dist/daemon/index.js +84 -0
  62. package/dist/daemon/index.js.map +1 -0
  63. package/dist/daemon/routes/actions.d.ts +5 -0
  64. package/dist/daemon/routes/actions.d.ts.map +1 -0
  65. package/dist/daemon/routes/actions.js +425 -0
  66. package/dist/daemon/routes/actions.js.map +1 -0
  67. package/dist/daemon/routes/sessions.d.ts +5 -0
  68. package/dist/daemon/routes/sessions.d.ts.map +1 -0
  69. package/dist/daemon/routes/sessions.js +507 -0
  70. package/dist/daemon/routes/sessions.js.map +1 -0
  71. package/dist/daemon/server.d.ts +6 -0
  72. package/dist/daemon/server.d.ts.map +1 -0
  73. package/dist/daemon/server.js +66 -0
  74. package/dist/daemon/server.js.map +1 -0
  75. package/dist/daemon/session.d.ts +52 -0
  76. package/dist/daemon/session.d.ts.map +1 -0
  77. package/dist/daemon/session.js +191 -0
  78. package/dist/daemon/session.js.map +1 -0
  79. package/dist/daemon/types.d.ts +17 -0
  80. package/dist/daemon/types.d.ts.map +1 -0
  81. package/dist/daemon/types.js +3 -0
  82. package/dist/daemon/types.js.map +1 -0
  83. package/dist/policy/engine.d.ts +43 -0
  84. package/dist/policy/engine.d.ts.map +1 -0
  85. package/dist/policy/engine.js +234 -0
  86. package/dist/policy/engine.js.map +1 -0
  87. package/dist/policy/types.d.ts +40 -0
  88. package/dist/policy/types.d.ts.map +1 -0
  89. package/dist/policy/types.js +53 -0
  90. package/dist/policy/types.js.map +1 -0
  91. package/package.json +61 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/daemon/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { FastifyInstance } from 'fastify';
2
+ import { SessionRegistry } from '../session';
3
+ import '../types';
4
+ export declare function registerActionRoutes(server: FastifyInstance, registry: SessionRegistry): void;
5
+ //# sourceMappingURL=actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../src/daemon/routes/actions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAgC,MAAM,SAAS,CAAA;AACvE,OAAO,EAAE,eAAe,EAA4B,MAAM,YAAY,CAAA;AAEtE,OAAO,UAAU,CAAA;AAoIjB,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI,CA0S7F"}
@@ -0,0 +1,425 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.registerActionRoutes = registerActionRoutes;
37
+ require("../types"); // T11: Fastify type augmentation
38
+ const Actions = __importStar(require("../../browser/actions"));
39
+ const actions_1 = require("../../browser/actions");
40
+ const engine_1 = require("../../policy/engine");
41
+ /** Structured error when a frame selector matches no frame in the page. */
42
+ class FrameResolutionError extends Error {
43
+ selector;
44
+ availableFrames;
45
+ constructor(page, selector) {
46
+ super(`Frame not found: type='${selector.type}', value='${String(selector.value)}'`);
47
+ this.name = 'FrameResolutionError';
48
+ this.selector = selector;
49
+ this.availableFrames = page.frames().map((f) => ({ name: f.name(), url: f.url() }));
50
+ }
51
+ }
52
+ /**
53
+ * Resolve a frame selector to an Actionable target.
54
+ * Throws FrameResolutionError (→ 422) if a frame selector is given but no
55
+ * matching frame is found. Does NOT fall back silently to the main page.
56
+ */
57
+ function resolveFrame(page, frame) {
58
+ if (!frame)
59
+ return page;
60
+ let f = null;
61
+ if (frame.type === 'name')
62
+ f = page.frame({ name: frame.value });
63
+ else if (frame.type === 'url')
64
+ f = page.frame({ url: frame.value });
65
+ else if (frame.type === 'nth')
66
+ f = page.frames()[frame.value] ?? null;
67
+ if (!f)
68
+ throw new FrameResolutionError(page, frame);
69
+ return f;
70
+ }
71
+ /**
72
+ * Resolve a frame selector and, if resolution fails, send a 422 and return
73
+ * null so the caller can early-return. Avoids repeating try/catch everywhere.
74
+ */
75
+ function resolveOrReply(page, frame, reply) {
76
+ try {
77
+ return resolveFrame(page, frame);
78
+ }
79
+ catch (e) {
80
+ if (e instanceof FrameResolutionError) {
81
+ reply.code(422).send({
82
+ error: e.message,
83
+ frame_selector: e.selector,
84
+ available_frames: e.availableFrames,
85
+ });
86
+ return null;
87
+ }
88
+ throw e;
89
+ }
90
+ }
91
+ // ---------------------------------------------------------------------------
92
+ // T09: operator auto-inference
93
+ // ---------------------------------------------------------------------------
94
+ /**
95
+ * Infer the operator string from (in order of precedence):
96
+ * 1. Explicitly provided in request body
97
+ * 2. X-Operator request header
98
+ * 3. Session's agent_id
99
+ * 4. Fallback: 'agentmb-daemon'
100
+ */
101
+ function inferOperator(req, s, explicit) {
102
+ if (explicit)
103
+ return explicit;
104
+ const xOp = req.headers['x-operator'];
105
+ if (xOp)
106
+ return xOp;
107
+ if (s.agentId)
108
+ return s.agentId;
109
+ return 'agentmb-daemon';
110
+ }
111
+ // ---------------------------------------------------------------------------
112
+ // r06-c02: Policy check helper
113
+ // ---------------------------------------------------------------------------
114
+ /**
115
+ * Run a policy check before executing an action.
116
+ * Returns true if the action is allowed (possibly after waiting for throttle/jitter).
117
+ * Returns false and sends a 403 response if the action is denied.
118
+ */
119
+ async function applyPolicy(server, sessionId, domain, action, opts, reply) {
120
+ const engine = server.policyEngine;
121
+ if (!engine)
122
+ return true;
123
+ const result = await engine.checkAndWait({
124
+ sessionId,
125
+ domain,
126
+ action,
127
+ sensitive: opts.sensitive,
128
+ retry: opts.retry,
129
+ auditLogger: server.auditLogger,
130
+ });
131
+ if (!result.allowed) {
132
+ reply.code(403).send({
133
+ error: result.reason,
134
+ policy_event: result.policyEvent,
135
+ domain,
136
+ });
137
+ return false;
138
+ }
139
+ return true;
140
+ }
141
+ function registerActionRoutes(server, registry) {
142
+ function getLogger() {
143
+ return server.auditLogger;
144
+ }
145
+ /** Resolve a live session or send 404/410 and return null */
146
+ function resolve(id, reply) {
147
+ const result = registry.getLive(id);
148
+ if ('notFound' in result) {
149
+ reply.code(404).send({ error: `Session not found: ${id}` });
150
+ return null;
151
+ }
152
+ if ('zombie' in result) {
153
+ const info = result.info;
154
+ reply.code(410).send({
155
+ error: `Session ${id} exists but browser is not running. Run 'agentmb session new --profile ${info.profile}' to relaunch.`,
156
+ state: 'zombie',
157
+ profile: info.profile,
158
+ });
159
+ return null;
160
+ }
161
+ return result;
162
+ }
163
+ // POST /api/v1/sessions/:id/navigate
164
+ server.post('/api/v1/sessions/:id/navigate', async (req, reply) => {
165
+ const s = resolve(req.params.id, reply);
166
+ if (!s)
167
+ return;
168
+ const { url, wait_until = 'load', purpose, operator, sensitive, retry } = req.body;
169
+ const domain = (0, engine_1.extractDomain)(url);
170
+ if (!await applyPolicy(server, req.params.id, domain, 'navigate', { sensitive, retry }, reply))
171
+ return;
172
+ return Actions.navigate(s.page, url, wait_until, getLogger(), s.id, purpose, inferOperator(req, s, operator));
173
+ });
174
+ // POST /api/v1/sessions/:id/click
175
+ server.post('/api/v1/sessions/:id/click', async (req, reply) => {
176
+ const s = resolve(req.params.id, reply);
177
+ if (!s)
178
+ return;
179
+ const { selector, timeout_ms = 5000, frame, purpose, operator, sensitive, retry } = req.body;
180
+ if (!await applyPolicy(server, req.params.id, (0, engine_1.extractDomain)(s.page.url()), 'click', { sensitive, retry }, reply))
181
+ return;
182
+ const target = resolveOrReply(s.page, frame, reply);
183
+ if (!target)
184
+ return;
185
+ return Actions.click(target, selector, timeout_ms, getLogger(), s.id, purpose, inferOperator(req, s, operator));
186
+ });
187
+ // POST /api/v1/sessions/:id/fill
188
+ server.post('/api/v1/sessions/:id/fill', async (req, reply) => {
189
+ const s = resolve(req.params.id, reply);
190
+ if (!s)
191
+ return;
192
+ const { selector, value, frame, purpose, operator, sensitive, retry } = req.body;
193
+ if (!await applyPolicy(server, req.params.id, (0, engine_1.extractDomain)(s.page.url()), 'fill', { sensitive, retry }, reply))
194
+ return;
195
+ const target = resolveOrReply(s.page, frame, reply);
196
+ if (!target)
197
+ return;
198
+ return Actions.fill(target, selector, value, getLogger(), s.id, purpose, inferOperator(req, s, operator));
199
+ });
200
+ // POST /api/v1/sessions/:id/eval
201
+ server.post('/api/v1/sessions/:id/eval', async (req, reply) => {
202
+ const s = resolve(req.params.id, reply);
203
+ if (!s)
204
+ return;
205
+ const { expression, frame, purpose, operator, sensitive, retry } = req.body;
206
+ if (!await applyPolicy(server, req.params.id, (0, engine_1.extractDomain)(s.page.url()), 'eval', { sensitive, retry }, reply))
207
+ return;
208
+ const target = resolveOrReply(s.page, frame, reply);
209
+ if (!target)
210
+ return;
211
+ try {
212
+ return await Actions.evaluate(target, expression, getLogger(), s.id, purpose, inferOperator(req, s, operator));
213
+ }
214
+ catch (e) {
215
+ if (e instanceof actions_1.ActionDiagnosticsError)
216
+ return reply.code(422).send(e.diagnostics);
217
+ throw e;
218
+ }
219
+ });
220
+ // POST /api/v1/sessions/:id/extract — safe selector-based content extraction
221
+ server.post('/api/v1/sessions/:id/extract', async (req, reply) => {
222
+ const s = resolve(req.params.id, reply);
223
+ if (!s)
224
+ return;
225
+ const { selector, attribute, frame, purpose, operator, sensitive, retry } = req.body;
226
+ if (!await applyPolicy(server, req.params.id, (0, engine_1.extractDomain)(s.page.url()), 'extract', { sensitive, retry }, reply))
227
+ return;
228
+ const target = resolveOrReply(s.page, frame, reply);
229
+ if (!target)
230
+ return;
231
+ try {
232
+ return await Actions.extract(target, selector, attribute, getLogger(), s.id, purpose, inferOperator(req, s, operator));
233
+ }
234
+ catch (e) {
235
+ if (e instanceof actions_1.ActionDiagnosticsError)
236
+ return reply.code(422).send(e.diagnostics);
237
+ throw e;
238
+ }
239
+ });
240
+ // POST /api/v1/sessions/:id/screenshot
241
+ server.post('/api/v1/sessions/:id/screenshot', async (req, reply) => {
242
+ const s = resolve(req.params.id, reply);
243
+ if (!s)
244
+ return;
245
+ const { format = 'png', full_page = false, purpose, operator } = req.body ?? {};
246
+ try {
247
+ return await Actions.screenshot(s.page, format, full_page, getLogger(), s.id, purpose, inferOperator(req, s, operator));
248
+ }
249
+ catch (e) {
250
+ if (e instanceof actions_1.ActionDiagnosticsError)
251
+ return reply.code(422).send(e.diagnostics);
252
+ throw e;
253
+ }
254
+ });
255
+ // POST /api/v1/sessions/:id/type
256
+ server.post('/api/v1/sessions/:id/type', async (req, reply) => {
257
+ const s = resolve(req.params.id, reply);
258
+ if (!s)
259
+ return;
260
+ const { selector, text, delay_ms = 0, frame, purpose, operator, sensitive, retry } = req.body;
261
+ if (!await applyPolicy(server, req.params.id, (0, engine_1.extractDomain)(s.page.url()), 'type', { sensitive, retry }, reply))
262
+ return;
263
+ const target = resolveOrReply(s.page, frame, reply);
264
+ if (!target)
265
+ return;
266
+ try {
267
+ return await Actions.typeText(target, selector, text, delay_ms, getLogger(), s.id, purpose, inferOperator(req, s, operator));
268
+ }
269
+ catch (e) {
270
+ if (e instanceof actions_1.ActionDiagnosticsError)
271
+ return reply.code(422).send(e.diagnostics);
272
+ throw e;
273
+ }
274
+ });
275
+ // POST /api/v1/sessions/:id/press
276
+ server.post('/api/v1/sessions/:id/press', async (req, reply) => {
277
+ const s = resolve(req.params.id, reply);
278
+ if (!s)
279
+ return;
280
+ const { selector, key, frame, purpose, operator, sensitive, retry } = req.body;
281
+ if (!await applyPolicy(server, req.params.id, (0, engine_1.extractDomain)(s.page.url()), 'press', { sensitive, retry }, reply))
282
+ return;
283
+ const target = resolveOrReply(s.page, frame, reply);
284
+ if (!target)
285
+ return;
286
+ try {
287
+ return await Actions.press(target, selector, key, getLogger(), s.id, purpose, inferOperator(req, s, operator));
288
+ }
289
+ catch (e) {
290
+ if (e instanceof actions_1.ActionDiagnosticsError)
291
+ return reply.code(422).send(e.diagnostics);
292
+ throw e;
293
+ }
294
+ });
295
+ // POST /api/v1/sessions/:id/select
296
+ server.post('/api/v1/sessions/:id/select', async (req, reply) => {
297
+ const s = resolve(req.params.id, reply);
298
+ if (!s)
299
+ return;
300
+ const { selector, values, frame, purpose, operator } = req.body;
301
+ const target = resolveOrReply(s.page, frame, reply);
302
+ if (!target)
303
+ return;
304
+ try {
305
+ return await Actions.selectOption(target, selector, values, getLogger(), s.id, purpose, inferOperator(req, s, operator));
306
+ }
307
+ catch (e) {
308
+ if (e instanceof actions_1.ActionDiagnosticsError)
309
+ return reply.code(422).send(e.diagnostics);
310
+ throw e;
311
+ }
312
+ });
313
+ // POST /api/v1/sessions/:id/hover
314
+ server.post('/api/v1/sessions/:id/hover', async (req, reply) => {
315
+ const s = resolve(req.params.id, reply);
316
+ if (!s)
317
+ return;
318
+ const { selector, frame, purpose, operator } = req.body;
319
+ const target = resolveOrReply(s.page, frame, reply);
320
+ if (!target)
321
+ return;
322
+ try {
323
+ return await Actions.hover(target, selector, getLogger(), s.id, purpose, inferOperator(req, s, operator));
324
+ }
325
+ catch (e) {
326
+ if (e instanceof actions_1.ActionDiagnosticsError)
327
+ return reply.code(422).send(e.diagnostics);
328
+ throw e;
329
+ }
330
+ });
331
+ // POST /api/v1/sessions/:id/wait_for_selector
332
+ server.post('/api/v1/sessions/:id/wait_for_selector', async (req, reply) => {
333
+ const s = resolve(req.params.id, reply);
334
+ if (!s)
335
+ return;
336
+ const { selector, state = 'visible', timeout_ms = 5000, frame, purpose, operator } = req.body;
337
+ const target = resolveOrReply(s.page, frame, reply);
338
+ if (!target)
339
+ return;
340
+ try {
341
+ return await Actions.waitForSelector(target, selector, state, timeout_ms, getLogger(), s.id, purpose, inferOperator(req, s, operator));
342
+ }
343
+ catch (e) {
344
+ if (e instanceof actions_1.ActionDiagnosticsError)
345
+ return reply.code(422).send(e.diagnostics);
346
+ throw e;
347
+ }
348
+ });
349
+ // POST /api/v1/sessions/:id/wait_for_url
350
+ server.post('/api/v1/sessions/:id/wait_for_url', async (req, reply) => {
351
+ const s = resolve(req.params.id, reply);
352
+ if (!s)
353
+ return;
354
+ const { url_pattern, timeout_ms = 5000, purpose, operator } = req.body;
355
+ try {
356
+ return await Actions.waitForUrl(s.page, url_pattern, timeout_ms, getLogger(), s.id, purpose, inferOperator(req, s, operator));
357
+ }
358
+ catch (e) {
359
+ if (e instanceof actions_1.ActionDiagnosticsError)
360
+ return reply.code(422).send(e.diagnostics);
361
+ throw e;
362
+ }
363
+ });
364
+ // POST /api/v1/sessions/:id/wait_for_response
365
+ server.post('/api/v1/sessions/:id/wait_for_response', async (req, reply) => {
366
+ const s = resolve(req.params.id, reply);
367
+ if (!s)
368
+ return;
369
+ const { url_pattern, timeout_ms = 10000, trigger, purpose, operator } = req.body;
370
+ const triggerArg = trigger ? { type: trigger.type, url: trigger.url, waitUntil: trigger.wait_until } : undefined;
371
+ try {
372
+ return await Actions.waitForResponse(s.page, url_pattern, timeout_ms, triggerArg, getLogger(), s.id, purpose, inferOperator(req, s, operator));
373
+ }
374
+ catch (e) {
375
+ if (e instanceof actions_1.ActionDiagnosticsError)
376
+ return reply.code(422).send(e.diagnostics);
377
+ throw e;
378
+ }
379
+ });
380
+ // POST /api/v1/sessions/:id/upload
381
+ server.post('/api/v1/sessions/:id/upload', async (req, reply) => {
382
+ const s = resolve(req.params.id, reply);
383
+ if (!s)
384
+ return;
385
+ const { selector, content, filename, mime_type = 'application/octet-stream', purpose, operator } = req.body;
386
+ // Guard: base64 content must not exceed 50 MB decoded
387
+ const approxBytes = Math.floor(content.length * 0.75);
388
+ if (approxBytes > 50 * 1024 * 1024) {
389
+ return reply.code(413).send({ error: 'File too large: maximum upload size is 50 MB' });
390
+ }
391
+ try {
392
+ return await Actions.uploadFile(s.page, selector, content, filename, mime_type, getLogger(), s.id, purpose, inferOperator(req, s, operator));
393
+ }
394
+ catch (e) {
395
+ if (e instanceof actions_1.ActionDiagnosticsError)
396
+ return reply.code(422).send(e.diagnostics);
397
+ throw e;
398
+ }
399
+ });
400
+ // POST /api/v1/sessions/:id/download
401
+ server.post('/api/v1/sessions/:id/download', async (req, reply) => {
402
+ const s = resolve(req.params.id, reply);
403
+ if (!s)
404
+ return;
405
+ const { selector, timeout_ms = 30000, max_bytes = 50 * 1024 * 1024, purpose, operator } = req.body;
406
+ try {
407
+ return await Actions.downloadFile(s.page, selector, timeout_ms, max_bytes, getLogger(), s.id, purpose, inferOperator(req, s, operator));
408
+ }
409
+ catch (e) {
410
+ if (e instanceof actions_1.ActionDiagnosticsError)
411
+ return reply.code(422).send(e.diagnostics);
412
+ throw e;
413
+ }
414
+ });
415
+ // GET /api/v1/sessions/:id/logs
416
+ server.get('/api/v1/sessions/:id/logs', async (req, reply) => {
417
+ // 404 check: we still want logs for a just-closed session → skip session check
418
+ const logger = getLogger();
419
+ if (!logger)
420
+ return reply.code(503).send({ error: 'Audit logger not initialized' });
421
+ const tail = req.query.tail ? parseInt(req.query.tail) : 50;
422
+ return logger.tail(req.params.id, tail);
423
+ });
424
+ }
425
+ //# sourceMappingURL=actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../../src/daemon/routes/actions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwIA,oDA0SC;AA9aD,oBAAiB,CAAC,iCAAiC;AAInD,+DAAgD;AAChD,mDAA0E;AAC1E,gDAAmD;AAWnD,2EAA2E;AAC3E,MAAM,oBAAqB,SAAQ,KAAK;IAC7B,QAAQ,CAAe;IACvB,eAAe,CAAsC;IAC9D,YAAY,IAAU,EAAE,QAAuB;QAC7C,KAAK,CAAC,0BAA0B,QAAQ,CAAC,IAAI,aAAa,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACpF,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAA;QAClC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAA;IACrF,CAAC;CACF;AAED;;;;GAIG;AACH,SAAS,YAAY,CAAC,IAAU,EAAE,KAAqB;IACrD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IACvB,IAAI,CAAC,GAAiB,IAAI,CAAA;IAC1B,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;QAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAe,EAAE,CAAC,CAAA;SACrE,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK;QAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,KAAe,EAAE,CAAC,CAAA;SACxE,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK;QAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,KAAe,CAAC,IAAI,IAAI,CAAA;IAC/E,IAAI,CAAC,CAAC;QAAE,MAAM,IAAI,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACnD,OAAO,CAAC,CAAA;AACV,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CACrB,IAAU,EACV,KAAgC,EAChC,KAAmB;IAEnB,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IAClC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,oBAAoB,EAAE,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnB,KAAK,EAAE,CAAC,CAAC,OAAO;gBAChB,cAAc,EAAE,CAAC,CAAC,QAAQ;gBAC1B,gBAAgB,EAAE,CAAC,CAAC,eAAe;aACpC,CAAC,CAAA;YACF,OAAO,IAAI,CAAA;QACb,CAAC;QACD,MAAM,CAAC,CAAA;IACT,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,+BAA+B;AAC/B,8EAA8E;AAE9E;;;;;;GAMG;AACH,SAAS,aAAa,CACpB,GAAmB,EACnB,CAA8B,EAC9B,QAAiB;IAEjB,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAA;IAC7B,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,CAAuB,CAAA;IAC3D,IAAI,GAAG;QAAE,OAAO,GAAG,CAAA;IACnB,IAAI,CAAC,CAAC,OAAO;QAAE,OAAO,CAAC,CAAC,OAAO,CAAA;IAC/B,OAAO,gBAAgB,CAAA;AACzB,CAAC;AAED,8EAA8E;AAC9E,+BAA+B;AAC/B,8EAA8E;AAE9E;;;;GAIG;AACH,KAAK,UAAU,WAAW,CACxB,MAAuB,EACvB,SAAiB,EACjB,MAAc,EACd,MAAc,EACd,IAA8C,EAC9C,KAAmB;IAEnB,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAA;IAClC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IAExB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;QACvC,SAAS;QACT,MAAM;QACN,MAAM;QACN,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,WAAW,EAAE,MAAM,CAAC,WAAW;KAChC,CAAC,CAAA;IAEF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YACnB,KAAK,EAAE,MAAM,CAAC,MAAM;YACpB,YAAY,EAAE,MAAM,CAAC,WAAW;YAChC,MAAM;SACP,CAAC,CAAA;QACF,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAgB,oBAAoB,CAAC,MAAuB,EAAE,QAAyB;IACrF,SAAS,SAAS;QAChB,OAAO,MAAM,CAAC,WAAW,CAAA;IAC3B,CAAC;IAED,6DAA6D;IAC7D,SAAS,OAAO,CAAC,EAAU,EAAE,KAAmB;QAC9C,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACnC,IAAI,UAAU,IAAI,MAAM,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,EAAE,EAAE,CAAC,CAAA;YAC3D,OAAO,IAAI,CAAA;QACb,CAAC;QACD,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAmB,CAAA;YACvC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnB,KAAK,EAAE,WAAW,EAAE,0EAA0E,IAAI,CAAC,OAAO,gBAAgB;gBAC1H,KAAK,EAAE,QAAQ;gBACf,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CAAA;YACF,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,MAAsB,CAAA;IAC/B,CAAC;IAED,qCAAqC;IACrC,MAAM,CAAC,IAAI,CAGR,+BAA+B,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACvD,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QACvC,IAAI,CAAC,CAAC;YAAE,OAAM;QACd,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,IAAI,CAAA;QAClF,MAAM,MAAM,GAAG,IAAA,sBAAa,EAAC,GAAG,CAAC,CAAA;QACjC,IAAI,CAAC,MAAM,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC;YAAE,OAAM;QACtG,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAA;IAC/G,CAAC,CAAC,CAAA;IAEF,kCAAkC;IAClC,MAAM,CAAC,IAAI,CAGR,4BAA4B,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACpD,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QACvC,IAAI,CAAC,CAAC;YAAE,OAAM;QACd,MAAM,EAAE,QAAQ,EAAE,UAAU,GAAG,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,IAAI,CAAA;QAC5F,IAAI,CAAC,MAAM,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,IAAA,sBAAa,EAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC;YAAE,OAAM;QACxH,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;QACnD,IAAI,CAAC,MAAM;YAAE,OAAM;QACnB,OAAO,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAA;IACjH,CAAC,CAAC,CAAA;IAEF,iCAAiC;IACjC,MAAM,CAAC,IAAI,CAGR,2BAA2B,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACnD,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QACvC,IAAI,CAAC,CAAC;YAAE,OAAM;QACd,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,IAAI,CAAA;QAChF,IAAI,CAAC,MAAM,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,IAAA,sBAAa,EAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC;YAAE,OAAM;QACvH,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;QACnD,IAAI,CAAC,MAAM;YAAE,OAAM;QACnB,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAA;IAC3G,CAAC,CAAC,CAAA;IAEF,iCAAiC;IACjC,MAAM,CAAC,IAAI,CAGR,2BAA2B,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACnD,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QACvC,IAAI,CAAC,CAAC;YAAE,OAAM;QACd,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,IAAI,CAAA;QAC3E,IAAI,CAAC,MAAM,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,IAAA,sBAAa,EAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC;YAAE,OAAM;QACvH,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;QACnD,IAAI,CAAC,MAAM;YAAE,OAAM;QACnB,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAA;QAChH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,gCAAsB;gBAAE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;YACnF,MAAM,CAAC,CAAA;QACT,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,6EAA6E;IAC7E,MAAM,CAAC,IAAI,CAGR,8BAA8B,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACtD,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QACvC,IAAI,CAAC,CAAC;YAAE,OAAM;QACd,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,IAAI,CAAA;QACpF,IAAI,CAAC,MAAM,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,IAAA,sBAAa,EAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC;YAAE,OAAM;QAC1H,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;QACnD,IAAI,CAAC,MAAM;YAAE,OAAM;QACnB,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAA;QACxH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,gCAAsB;gBAAE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;YACnF,MAAM,CAAC,CAAA;QACT,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,uCAAuC;IACvC,MAAM,CAAC,IAAI,CAGR,iCAAiC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACzD,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QACvC,IAAI,CAAC,CAAC;YAAE,OAAM;QACd,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,SAAS,GAAG,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAA;QAC/E,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAA;QACzH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,gCAAsB;gBAAE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;YACnF,MAAM,CAAC,CAAA;QACT,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,iCAAiC;IACjC,MAAM,CAAC,IAAI,CAGR,2BAA2B,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACnD,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QACvC,IAAI,CAAC,CAAC;YAAE,OAAM;QACd,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,IAAI,CAAA;QAC7F,IAAI,CAAC,MAAM,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,IAAA,sBAAa,EAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC;YAAE,OAAM;QACvH,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;QACnD,IAAI,CAAC,MAAM;YAAE,OAAM;QACnB,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAA;QAC9H,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,gCAAsB;gBAAE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;YACnF,MAAM,CAAC,CAAA;QACT,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,kCAAkC;IAClC,MAAM,CAAC,IAAI,CAGR,4BAA4B,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACpD,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QACvC,IAAI,CAAC,CAAC;YAAE,OAAM;QACd,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,IAAI,CAAA;QAC9E,IAAI,CAAC,MAAM,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,IAAA,sBAAa,EAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC;YAAE,OAAM;QACxH,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;QACnD,IAAI,CAAC,MAAM;YAAE,OAAM;QACnB,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAA;QAChH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,gCAAsB;gBAAE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;YACnF,MAAM,CAAC,CAAA;QACT,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,mCAAmC;IACnC,MAAM,CAAC,IAAI,CAGR,6BAA6B,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACrD,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QACvC,IAAI,CAAC,CAAC;YAAE,OAAM;QACd,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,IAAI,CAAA;QAC/D,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;QACnD,IAAI,CAAC,MAAM;YAAE,OAAM;QACnB,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAA;QAC1H,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,gCAAsB;gBAAE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;YACnF,MAAM,CAAC,CAAA;QACT,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,kCAAkC;IAClC,MAAM,CAAC,IAAI,CAGR,4BAA4B,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACpD,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QACvC,IAAI,CAAC,CAAC;YAAE,OAAM;QACd,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,IAAI,CAAA;QACvD,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;QACnD,IAAI,CAAC,MAAM;YAAE,OAAM;QACnB,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAA;QAC3G,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,gCAAsB;gBAAE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;YACnF,MAAM,CAAC,CAAA;QACT,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,8CAA8C;IAC9C,MAAM,CAAC,IAAI,CAGR,wCAAwC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QAChE,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QACvC,IAAI,CAAC,CAAC;YAAE,OAAM;QACd,MAAM,EAAE,QAAQ,EAAE,KAAK,GAAG,SAAS,EAAE,UAAU,GAAG,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,IAAI,CAAA;QAC7F,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;QACnD,IAAI,CAAC,MAAM;YAAE,OAAM;QACnB,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAA;QACxI,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,gCAAsB;gBAAE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;YACnF,MAAM,CAAC,CAAA;QACT,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,yCAAyC;IACzC,MAAM,CAAC,IAAI,CAGR,mCAAmC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QAC3D,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QACvC,IAAI,CAAC,CAAC;YAAE,OAAM;QACd,MAAM,EAAE,WAAW,EAAE,UAAU,GAAG,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,IAAI,CAAA;QACtE,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAA;QAC/H,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,gCAAsB;gBAAE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;YACnF,MAAM,CAAC,CAAA;QACT,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,8CAA8C;IAC9C,MAAM,CAAC,IAAI,CASR,wCAAwC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QAChE,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QACvC,IAAI,CAAC,CAAC;YAAE,OAAM;QACd,MAAM,EAAE,WAAW,EAAE,UAAU,GAAG,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,IAAI,CAAA;QAChF,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAkB,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,UAAiB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;QACrI,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAA;QAChJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,gCAAsB;gBAAE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;YACnF,MAAM,CAAC,CAAA;QACT,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,mCAAmC;IACnC,MAAM,CAAC,IAAI,CAGR,6BAA6B,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACrD,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QACvC,IAAI,CAAC,CAAC;YAAE,OAAM;QACd,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,GAAG,0BAA0B,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,IAAI,CAAA;QAC3G,sDAAsD;QACtD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;QACrD,IAAI,WAAW,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;YACnC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,8CAA8C,EAAE,CAAC,CAAA;QACxF,CAAC;QACD,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAA;QAC9I,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,gCAAsB;gBAAE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;YACnF,MAAM,CAAC,CAAA;QACT,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,qCAAqC;IACrC,MAAM,CAAC,IAAI,CAGR,+BAA+B,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACvD,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QACvC,IAAI,CAAC,CAAC;YAAE,OAAM;QACd,MAAM,EAAE,QAAQ,EAAE,UAAU,GAAG,KAAK,EAAE,SAAS,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,IAAI,CAAA;QAClG,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAA;QACzI,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,gCAAsB;gBAAE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;YACnF,MAAM,CAAC,CAAA;QACT,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,gCAAgC;IAChC,MAAM,CAAC,GAAG,CAGP,2BAA2B,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACnD,+EAA+E;QAC/E,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;QAC1B,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,8BAA8B,EAAE,CAAC,CAAA;QACnF,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAC3D,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;IACzC,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { FastifyInstance } from 'fastify';
2
+ import { SessionRegistry } from '../session';
3
+ import '../types';
4
+ export declare function registerSessionRoutes(server: FastifyInstance, registry: SessionRegistry): void;
5
+ //# sourceMappingURL=sessions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../../src/daemon/routes/sessions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAG5C,OAAO,UAAU,CAAA;AAoBjB,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI,CAyd9F"}